Professional Documents
Culture Documents
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.
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.
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
12.2.3.
Utilizao de variveis
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.
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:
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:
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.
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.
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
ARRAY
STRUCT
12.2.8.
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
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: