You are on page 1of 12

Universidade de vora Engenharia Mecatrnica Controlo e Automao II

12. Automao 12.1. Programao sequencial


O S7 da SIEMENS como todos os PLCs, caracterizam-se por executar os seus programas por varrimentos cclicos. Ou seja a cada perodo de tempo (milissegundos dependendo do tamanho do programa), todas as linhas de cdigo so percorridas e executadas. Apesar de vantajoso, esta forma de executar os programas tambm causa algumas dificuldades adicionais sempre que se pretende que exista uma estrutura de cdigo sequencial. Ou seja, execuo de operaes encadeadas em que no se executa a aco i se no se tiver concludo a aco i-1. A forma de ultrapassar este problema passa pela utilizao da expresso genrica vulgarmente conhecida por equao geral de etapa: Ei = Ei +1 Reset(Ei 1 Ti + Ei ) Sendo: Ei - Etapa presente Ei 1 - Etapa anterior Ei +1 - Etapa seguinte
Ti - Transio que deve ser verdadeira para que se cumpra Ei Reset Ligao de um sinal de reset (boto de emergncia ou outro)

Apesar de no S7 apenas se disponibilizar a programao em Higraph (Grafcet) como opcional, a elaborao do Grafcet nvel 1 e nvel 2 apresenta-se como uma boa escolha para uma mais fcil interpretao do problema e passagem a cdigo em qualquer linguagem de programao de PLCs. O Grafcet poder ento funcionar como um algoritmo para a programao de blocos de cdigo sequenciais. Como base o S7 disponibiliza de imediato as programao em: KOP (Ladder ou linguagem de contactos) Mais destinada a utilizadores familiarizados com esquemas elctricos Exemplo de KOP

Universidade de vora Engenharia Mecatrnica Controlo e Automao II AWL - Mais destinada a utilizadores que preferem programar a nvel de mquina Exemplo de AWL

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

Como opo ainda possvel obter pacotes de software de programao em: SCL - Mais destinada a utilizadores familiarizados com linguagens de alto nvel como Pascal, C etc. Graph - Mais destinada a utilizadores familiarizados com Grafcet HiGraph Tambm mais destinada a utilizadores familiarizados com Grafcet CFC Para utilizadores com poucos conhecimentos de autmatos programveis.

Universidade de vora Engenharia Mecatrnica Controlo e Automao II

12.2. SIEMENS S7 12.2.1. Configurao do hardware

Faz-se atravs de:

Aqui abre-se o software HW Config que permite seleccionar os mdulos existentes no PLC e os racks onde se encontram ligados. No ser possvel fazer o correcto endereamento ao hardware existente (por exemplo I/Os), se este no estiver devidamente configurado.

Universidade de vora Engenharia Mecatrnica Controlo e Automao II

12.2.2.

Tabela de smbolos

Torna possvel a atribuio de nomes com algum significado para programador, s variveis do programa que est a construir. Est acessvel atravs de:

Exemplo de preenchimento

Exemplo de programa que utiliza a tabela de smbolos

Universidade de vora Engenharia Mecatrnica Controlo e Automao II

12.2.3.

Utilizao de variveis

As variveis globais utilizam-se entre plicas ( ) As variveis locais utilizam-se precedidas de #

12.2.4.

Blocos lgicos
o OBs Organization Bloc Programao de utilizador. Consultar os vrios tipos de OBs disponveis e suas prioridades. Torna-se necessrio que a execuo 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 constri o corpo do programa de utilizador. Tem a prioridade mais baixa. OB100 a OB101 OBs executados em situaes de arranque do PLC. Tm prioridade elevadssima. Podem por exemplo ser utilizados numa situao em que queremos que num programa sequencial, o programa se posicione em determinado ponto da sequncia. Por exemplo ponto de arranque (0). OB10 a OB17 OBs de execuo por alarme horrio. Executam-se em determinada altura ou ento com determinada periodicidade. o FCs Blocos de funes programveis, que no tm associada nenhuma memria. Ou seja, no necessrio (mas possvel) a utilizao de um DB para transferncia de dados memorizados. Assim sendo as variveis so apenas locais, perdendo-se aps cada chamada do FC. o FBs Function Bloc Pode ser considerado como uma sub-rotina que executada sempre que chamada por outro bloco de programao. Diferenciase dos FCs por possuir memria (memria de instncia). Os parmetros que se transferem para o FB, assim como as variveis estticas, memorizam-se no DB. As variveis temporais memorizam-se na pilha de dados locais.

Universidade de vora Engenharia Mecatrnica Controlo e Automao II o DB Data Bloc Local de definio de dados para serem utilizados pelos FCs (globais) e FBs. A estrutura de blocos de dados (DBs) associados a um FB (de instancia) no se pode alterar. Se tal se tornasse necessrio, seria mais conveniente modificar-se antes o FB em questo e criar novamente o DB associado.

o SFBs, SFCs FBs ou FCs de sistema pr-feitos. Utilizam-se da mesma forma que os FBs e FCs de utilizador.

12.2.5.

Programao estruturada

Torna-se evidente que para programas extremamente simples, possvel elaborar o programa recorrendo apenas ao OB1. Contudo para programas mais complexos justifica-se uma melhor arquitectura do cdigo, facilitando a sua interpretao. O conceito de blocos de cdigo reutilizveis torna-se uma realidade com a utilizao de FBs e FCs.

Universidade de vora Engenharia Mecatrnica Controlo e Automao II

12.2.5.1. Chamada de um FC (KOP)


Comea-se por fazer as associaes das descries endereos/funes na tabela de smbolos, como por exemplo: textuais com os

Posteriormente ao criar o nosso FC, fazem-se as declaraes dos parmetros no seu cabealho, como por exemplo:

Por no parecer interessante, no aqui visualizado o contedo do FC. Note-se que o parmetro Engine_On e Timer_Function so parmetros de entrada, e Fan_on um parmetro de sada. 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 FCs, distinguindo-se pela necessidade de existir um bloco de dados de instncia (DB) associado chamada do FB. Como exemplo: Associaes na tabela de smbolos:

Universidade de vora Engenharia Mecatrnica Controlo e Automao II Posteriormente ao criar o nosso FB1 Motor, fazem-se as declaraes dos parmetros no seu cabealho, como por exemplo:

Relembrar que dentro do FB, a utilizao dos parmetros locais precedida por um smbolo # em vez das habituais plicas X. Pode ver-se o exemplo do segmento existente no FB1 Motor

Neste ponto podemos ento que criar o DB 1 Gasolina necessrio 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 cabealho de parmetros do nosso FB1 Motor.

A cria o de DBs permite importar automaticamente a estrutura dos FBs por uma simples associao. Para tal, primeiro insere-se um DB, depois ao tentar edit-lo, surge uma janela com o seguinte formato:

Universidade de vora Engenharia Mecatrnica Controlo e Automao II

que permite associar o DB ao FB afim de importar a estrutura deste. Pode-se ento fazer a chamada no corpo do programa (ou outro bloco lgico da seguinte forma).

Desta forma poderia chamar-se o FB 1 Motor, recorrendo a vrios DBs diferentes, contendo a informao necessria a vrios motores diferentes Essa informao contida nos DBs estaria permanentemente disponvel (memorizada). Ou seja o cdigo seria o mesmo, haveria configuraes diferentes em diferentes DBs, disponveis para motores diferentes.

Universidade de vora Engenharia Mecatrnica Controlo e Automao II

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 apresentao.

12.2.7.1. Tipos de dados simples


Podem resumir-se conforme a tabela seguinte 1 Bit BOOL 1 Byte (8 bits) BYTE CHAR 1 Palavra (2 Bytes, 16 bits) WORD INT DATE S5TIME 1 Palavra dupla (4 bytes, 32 bits) DWORD DINT REAL TIME TIME OF DAY

A representao de um Nmero pode ser feita sobe vrias formas como se descreve na tabela que se segue: Formato Tamanho em bits Representao do prefixo a utilizar Hexadecimal 8, 16 e 32 B#16#, W#16# e DW#16# Binrio 8, 16 e 32 2# Decimal 8, 16 e 32 L# Data 16 D# Tempo 32 T# S5Tempo 16 S5T# Hora 32 TOD# Time of day 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 nmeros entre 2#0 a 2#1111111111111111, ou B#16#0 at B#16#FFFF ou ento INT Inteiros com sinal possveis de representar com 16 bits. O MSB (most significant bit) corresponde ao sinal, pelo que possvel representar 215=32768. Desta forma pode representar nmeros 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 utilizao 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.

Universidade de vora Engenharia Mecatrnica Controlo e Automao II 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 nmeros desde L#-2147483648 at L#+2147483648. REAL Permite representar nmeros reais sob a forma de vrgula flutuante. Desta forma consegue representar nmeros entre -3.402823e+38 at +3.402823e+38. O menor nmero possvel de representar ser 1.175495e-38. TIME uma representao de intervalo de tempo que dispe de 32 bits. Tem como grande vantagem no necessitar da representao completa do tempo, podendo aceitar por exemplo T#5h10s. Tem representaes 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


Sero apenas abordados os seguintes 4 tipos de dados compostos Tipo de dados DATE_AND_TIME ou DT STRING Descrio Define uma area de 64 bits. Para representao de uma data e hora com o formato Ano-Ms-dia-Hora:Minito:Segundo.Milisegundo. Como exemplo DT#1995-02-02-08:30:01.999 Define um grupo de um mximo de 254 caracteres (tipo de dados CHAR). A rea standard reservada para una cadeia de caracteres consta de 256 bytes. Este o espao requerido para memorizar 254 caracteres e um cabealho de 2 bytes. A memria requerida para memorizar uma cadeia de caracteres pode ser reduzida (por exemplo: string[9] 'Siemens'). 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 atravs do seu ndice por exemplo [2,2] Semelhante s estruturas RECORD em PASCAL.

ARRAY

STRUCT

12.2.8.

Acesso a dados perifricos - Carta analgica

O CPU pode aceder directamente s entradas e sadas dos mdulos I/O analgicos atravs do BUS posterior. O endereamento dos mdulos feito na configurao de Hardware (Tambm seria possvel utilizar PROFIBUS-DP, mas que no ser abordado de momento). A direco de uma rea de periferia deve conter, para alm da indicao de BYTE ou palavra (WORD), o identificador E-Alemo (I-Ingls) para as entradas ou A-Alemo (Q-Ingls) para as sadas. Como se exemplifica na tabela que se segue:

Universidade de vora Engenharia Mecatrnica Controlo e Automao II rea de operandos rea de periferia: entradas Aceso a travs de unidades do tamanho seguinte: Byte de entrada de periferia Palavra de entrada de periferia Palavra dupla de entrada de periferia Byte de sada de periferia Palavra de sada de periferia Palavra dupla de sada de periferia Notao S7 (Alemo) PEB PEW PED PAB PAW PAD

rea de periferia: sadas

Ejemplo prtico: Exemplo de declarao na tabela de smbolos.

Utilizao num FC em que a entrada analgica do endereo 304 (PIW304) de 16 bits inicialmente convertida de INT (16Bits) em DINT(32Bits) e posteriormente convertida de DINT em REAL:

You might also like