• Nenhum resultado encontrado

Reset Ligação de um sinal de reset (botão de emergência ou outro)

N/A
N/A
Protected

Academic year: 2021

Share "Reset Ligação de um sinal de reset (botão de emergência ou outro)"

Copied!
12
0
0

Texto

(1)

12. Automação

12.1. Programação sequencial

O S7 da SIEMENS como todos os PLC’s, caracterizam-se por executar os seus programas por “varrimentos” cíclicos. Ou seja a cada período de tempo (milissegundos dependendo do tamanho do programa), todas as linhas de código são percorridas e executadas. Apesar de vantajoso, esta forma de executar os programas também causa algumas dificuldades adicionais sempre que se pretende que exista uma estrutura de código sequencial. Ou seja, execução de operações encadeadas em que não se executa a acção i se não se tiver concluído a acção i-1.

A forma de ultrapassar este problema passa pela utilização da expressão genérica vulgarmente conhecida por equação geral de etapa:

(

i i i

)

i i E setE T E E = +1 Re 1 + Sendo: • Ei - Etapa presente • Ei−1 - Etapa anterior • Ei+1 - Etapa seguinte

Ti - Transição que deve ser verdadeira para que se cumpra Ei

• Reset – Ligação de um sinal de reset (botão de emergência ou outro)

Apesar de no S7 apenas se disponibilizar a programação em Higraph (Grafcet) como opcional, a elaboração do Grafcet nível 1 e nível 2 apresenta-se como uma boa escolha para uma mais fácil interpretação do problema e passagem a código em qualquer linguagem de programação de PLC’s. O Grafcet poderá então funcionar como um algoritmo para a programação de blocos de código sequenciais.

Como base o S7 disponibiliza de imediato as programação em:

• KOP (Ladder ou linguagem de contactos) – Mais destinada a utilizadores familiarizados com esquemas eléctricos

(2)

• AWL - Mais destinada a utilizadores que preferem programar a nível de máquina Exemplo de AWL

• FUP - Mais destinada a utilizadores mais familiarizados com álgebra booleana. Exemplo de FUP

Como opção é ainda possível obter pacotes de software de programação em:

• SCL - Mais destinada a utilizadores familiarizados com linguagens de alto nível como Pascal, C etc.

• Graph - Mais destinada a utilizadores familiarizados com Grafcet

• HiGraph – Também mais destinada a utilizadores familiarizados com Grafcet • CFC – Para utilizadores com poucos conhecimentos de autómatos programáveis.

(3)

12.2. SIEMENS S7

12.2.1. Configuração do hardware

Faz-se através de:

Aqui abre-se o software “HW Config” que permite seleccionar os módulos existentes no PLC e os “racks” onde se encontram ligados. Não será possível fazer o correcto endereçamento ao hardware existente (por exemplo I/Os), se este não estiver devidamente configurado.

(4)

12.2.2. Tabela de símbolos

Torna possível a atribuição de nomes com algum significado para programador, às “variáveis” do programa que está a construir.

Está acessível através de:

Exemplo de preenchimento

(5)

12.2.3.

Utilização de variáveis

• As variáveis globais utilizam-se entre plicas (“ “) • As variáveis locais utilizam-se precedidas de #

12.2.4. Blocos lógicos

o OB’s – Organization Bloc – Programação de utilizador. Consultar os vários tipos de OB’s disponíveis e suas prioridades. Torna-se necessário que a execução de um OB pode ser interrompida por outro de maior prioridade. Aconselha-se a consulta da ajuda do Step 7 para uma abordagem mais exaustiva, mas entre eles, destacam-se os seguintes:

ƒ OB1 – É executado ciclicamente, e é tipicamente o OB onde se constrói o corpo do programa de utilizador. Tem a prioridade mais baixa.

ƒ OB100 a OB101 – OB’s executados em situações de arranque do PLC. Têm prioridade elevadíssima. Podem por exemplo ser utilizados numa situação em que queremos que num programa sequencial, o programa se posicione em determinado ponto da sequência. Por exemplo ponto de arranque (0).

ƒ OB10 a OB17 – OB’s de execução por alarme horário. Executam-se em determinada altura ou então com determinada periodicidade. o FC’s – Blocos de funções programáveis, que não têm associada nenhuma

memória. Ou seja, não é necessário (mas é possível) a utilização de um DB para transferência de dados memorizados. Assim sendo as variáveis são apenas locais, perdendo-se após cada chamada do FC.

o FB’s – Function Bloc – Pode ser considerado como uma sub-rotina que é executada sempre que chamada por outro bloco de programação. Diferencia-se dos FC’s por possuir memória (memória de instância). Os parâmetros que se transferem para o FB, assim como as variáveis estáticas, memorizam-se no DB. As variáveis temporais memorizam-se na pilha de dados locais.

(6)

o DB – Data Bloc – Local de definição de dados para serem utilizados pelos FC’s (globais) e FB’s. A estrutura de blocos de dados (DB’s) associados a um FB (de instancia) não se pode alterar. Se tal se tornasse necessário, seria mais conveniente modificar-se antes o FB em questão e criar novamente o DB associado.

o SFB’s, SFC’s – FB’s ou FC’s de sistema pré-feitos. Utilizam-se da mesma forma que os FB’s e FC’s de utilizador.

12.2.5. Programação estruturada

Torna-se evidente que para programas extremamente simples, é possível elaborar o programa recorrendo apenas ao OB1. Contudo para programas mais complexos justifica-se uma melhor arquitectura do código, facilitando a sua interpretação. O conceito de blocos de código reutilizáveis torna-se uma realidade com a utilização de FB’s e FC’s.

(7)

12.2.5.1. Chamada de um FC (KOP)

Começa-se por fazer as associações das descrições textuais com os “endereços/funções” na tabela de símbolos, como por exemplo:

Posteriormente ao criar o nosso FC, fazem-se as declarações dos parâmetros no seu cabeçalho, como por exemplo:

Por não parecer interessante, não é aqui visualizado o conteúdo do FC.

Note-se que o parâmetro Engine_On e Timer_Function são parâmetros de entrada, e Fan_on é um parâmetro de saída. A chamada do FC pode ser feita por exemplo no OB1 da seguinte forma:

12.2.5.2. Chamada de um FB (KOP)

É bastante semelhante à chamada dos FC’s, distinguindo-se pela necessidade de existir um bloco de dados de instância (DB) associado à chamada do FB. Como exemplo:

(8)

Posteriormente ao criar o nosso FB1 “Motor”, fazem-se as declarações dos parâmetros no seu cabeçalho, como por exemplo:

Relembrar que dentro do FB, a utilização dos parâmetros locais é precedida por um símbolo # em vez das habituais plicas “X”. Pode ver-se o exemplo do segmento existente no FB1 “Motor”

Neste ponto podemos então que criar o DB 1 “Gasolina” necessário para transferir os dados para o FB 1 “Motor”. Saliente-se que este DB tem que ter os dados estruturados da mesma forma que o cabeçalho de parâmetros do nosso FB1 “Motor”.

A cria ção de DB’s permite “importar” automaticamente a estrutura dos FB´s por uma simples associação. Para tal, primeiro insere-se um DB, depois ao tentar editá-lo, surge uma janela com o seguinte formato:

(9)

que permite associar o DB ao FB afim de “importar a estrutura deste”.

Pode-se então fazer a chamada no corpo do programa (ou outro bloco lógico da seguinte forma).

Desta forma poderia chamar-se o FB 1 “Motor”, recorrendo a vários DB’s diferentes, contendo a informação necessária a vários motores diferentes Essa informação contida nos DB’s estaria permanentemente disponível (memorizada). Ou seja o código seria o mesmo, haveria configurações diferentes em diferentes DB’s, disponíveis para motores diferentes.

(10)

12.2.7. Tipos de dados

O S7 permite manipular uma grande variedade de dados simples ou compostos. O estudo mais intensivo poderá ser feito recorrendo à ajuda do S7. Contudo fica aqui uma resumida apresentação.

12.2.7.1. Tipos de dados simples

Podem resumir-se conforme a tabela seguinte 1 Bit 1 Byte (8 bits) 1 Palavra (2 Bytes, 16 bits) 1 Palavra dupla (4 bytes, 32 bits)

BOOL BYTE WORD DWORD

CHAR INT DINT

DATE REAL

S5TIME TIME TIME OF DAY

A representação de um ‘Número pode ser feita sobe várias formas como se descreve na tabela que se segue:

Formato Tamanho em bits Representação do prefixo a utilizar Hexadecimal 8, 16 e 32 B#16#, W#16# e DW#16# Binário 8, 16 e 32 2# Decimal 8, 16 e 32 L# Data 16 D# Tempo 32 T# S5Tempo 16 S5T# Hora Time of day 32 TOD# BYTE 8 'A'

• BOOL – TRUE ou FALSE, 0 ou 1

• BYTE – No formato Hexadecimal pode assumir valores entre B#16#0 e B#16#FF • CHAR – Caracteres ASCII por exemplo ‘A’ ou ‘b’, etc...

• WORD – Ocupando 16 bits, pode assumir números entre 2#0 a 2#1111111111111111, ou B#16#0 até B#16#FFFF ou então

• INT – Inteiros com sinal possíveis de representar com 16 bits. O MSB (most significant bit) corresponde ao sinal, pelo que é possível representar ±215=±32768. Desta forma pode representar números entre L#-32768 até L#+32768.

• DATE – A data apresenta-se como sendo um inteiro sem sinal (0 a 65536) em que o primeiro dia é 1 de Janeiro de 1990. Apresenta-se com o formato yyyy-MM-dd e consegue representar datas desde D#1990-01-01 até D#2168-12-31

• S5TIME – A utilização deste formato nos temporizadores permite definir a base de tempo com que se pretende que os temporizadores reduzam uma unidade de tempo até chegar a 0. Pode assumir valores entre S5T#10ms até S5T#2h46m30s.

(11)

• DWORD – Semelhante ao WORD apenas que com 32bits. Pode assumir valores entre 2#0 até 2#11111111111111111111111111111111 ou de DW#16#0 até DW#16#FFFFFFFF • DINT – Semelhante ao INT, apenas que tem ao seu dispor 32bits. Desta forma consegue

representar números desde L#-2147483648 até L#+2147483648.

• REAL – Permite representar números reais sob a forma de vírgula flutuante. Desta forma consegue representar números entre -3.402823e+38 até +3.402823e+38. O menor número possível de representar será 1.175495e-38.

• TIME – É uma representação de intervalo de tempo que dispõe de 32 bits. Tem como grande vantagem não necessitar da representação completa do tempo, podendo aceitar por exemplo T#5h10s. Tem representações limite T#-24d20h31m23s647ms e T#+24d20h31m23s647ms.

• TIME OF DAY – Representa determinada hora do dia no formato Horas:minutos:segundos.milisegundos. por exemplo TOD#23:59:59.999

12.2.7.2. Tipos de dados compostos

Serão apenas abordados os seguintes 4 tipos de dados compostos Tipo de dados Descrição

DATE_AND_TIME ou

DT

Define uma area de 64 bits. Para representação de uma data e hora com o formato Ano-Mês-dia-Hora:Minito:Segundo.Milisegundo. Como exemplo DT#1995-02-02-08:30:01.999

STRING Define um grupo de um máximo de 254 caracteres (tipo de dados CHAR). A área standard reservada para una cadeia de caracteres consta de 256 bytes. Este é o espaço requerido para memorizar 254 caracteres e um cabeçalho de 2 bytes. A memória requerida para memorizar uma cadeia de caracteres pode ser reduzida (por exemplo: string[9] 'Siemens').

ARRAY Define um agrupamento multidimensinal, semelhante a um matriz de um tipo de dados (simples ou compostos). Por exemplo

“ARRAY [1..2,1..3] OF INT”. Para este exemplo acede-se aos dados através do seu índice por exemplo [2,2]

STRUCT Semelhante às estruturas RECORD em PASCAL.

12.2.8. Acesso a dados periféricos - Carta analógica

O CPU pode aceder directamente às entradas e saídas dos módulos I/O analógicos através do BUS posterior. O endereçamento dos módulos é feito na configuração de Hardware (Também seria possível utilizar PROFIBUS-DP, mas que não será abordado de momento). A direcção de uma área de periferia deve conter, para além da indicação de BYTE ou palavra (WORD), o identificador E-Alemão (I-Inglês) para as entradas ou A-Alemão (Q-Inglês) para as saídas. Como se exemplifica na tabela que se segue:

(12)

Área de operandos Aceso a través de unidades do tamanho seguinte:

Notação S7 (Alemão) Área de periferia: entradas Byte de entrada de periferia

Palavra de entrada de periferia Palavra dupla de entrada de periferia

PEB PEW PED Área de periferia: saídas Byte de saída de periferia

Palavra de saída de periferia Palavra dupla de saída de periferia

PAB PAW PAD Ejemplo prático:

Exemplo de declaração na tabela de símbolos.

Utilização num FC em que a entrada analógica do endereço 304 (PIW304) de 16 bits é inicialmente convertida de INT (16Bits) em DINT(32Bits) e posteriormente convertida de DINT em REAL:

Referências

Documentos relacionados

Discussion The present results show that, like other conditions that change brain excitability, early environmental heat exposure also enhanced CSD propagation in adult rats.. The

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Após a realização de todas as atividades teóricas e práticas de campo, pode-se concluir que não há grande erosão do conhecimento popular e tradicional de plantas medicinais, que

Os maiores coeficientes da razão área/perímetro são das edificações Kanimbambo (12,75) e Barão do Rio Branco (10,22) ou seja possuem uma maior área por unidade de

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Aiguille des secondes du chronographe Chronograph’s seconds hand Chronograph-Sekundenzeiger Lancetta dei secondi del cronografo Aguja de segundos del cronógrafo Ponteiro dos segundos

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos

Nº APELIDO ATLETAS NOMES CLUBE