SENAI GERALDO AL CKMIN Pindamonhangaba
Av. Abel Correa Guim arães, 971 - Jd. Rezende Pindamonhangaba - SP CEP 12420-680 Fone/Fax: 3642-6207 Endereço Eletrônico: www.sp.senai.br/pindamonhangaba
Controlador Lógico Programável CLP – Step 7 1
Sumário 1. Introdução ----------------------------------------------------------------------2. Funcionamento Básico -------------------------------------------------------3. Vantagens ----------------------------------------------------------------------4. Controladores Siemens ------------------------------------------------------5. Simatic S7 300 Siemens -----------------------------------------------------6. Elementos da CPU -----------------------------------------------------------7. S7 300 - Espectro do Módulo ----------------------------------------------8. Sistemas de Numeração -----------------------------------------------------9. Operações Aritméticas no Sistema Binário -------------------------------10. Bits, Bytes e Palavras -------------------------------------------------------11. Formato e Representação dos Números ----------------------------------12. Operações Lógicas ------------------------------------------------------------
03 06 09 10 11 12 13 14 22 24 24 27
13. Estrutura de Programação ---------------------------------------------------14. Princípio de Funcionamento ------------------------------------------------15. Tipos de Estruturas -----------------------------------------------------------16. Blocos de Programa ----------------------------------------------------------17. Chamada de Blocos -----------------------------------------------------------18. Tipos de Dados ----------------------------------------------------------------19. Endereçamento Absoluto e Simbólico -------------------------------------20. Linguagem de Programação -------------------------------------------------21. Operações com bits -----------------------------------------------------------22. Contatos Abertos, Fechados e Bobinas -------------------------------------
30 31 33 34 37 38 41 43 43 44
23. Operações Lógicas -----------------------------------------------------------24. Set e Reset --------------------------------------------------------------------25. Flancos Positivos e Negativos ----------------------------------------------26. Temporizadores ---------------------------------------------------------------27. Ativar Temporizadores ------------------------------------------------------28. Ativar e Parametrizar Temporizadores -------------------------------------
45 47 48 50 51 56
2
29. Contadores --------------------------------------------------------------------30. Setar e Iniciar Contadores ---------------------------------------------------31. Parametrizar e Iniciar Contadores ------------------------------------------32. Comparadores ------------------------------------------------------------------
61 62 65 68
33. Saltos e Chamadas de Blocos -----------------------------------------------34. Operações Lógicas Digitais -------------------------------------------------35. Operações Aritméticas Básicas ---------------------------------------------36. Manipulação de Blocos Parametrizáveis ----------------------------------37. Exercícios ----------------------------------------------------------------------38. Projeto --------------------------------------------------------------------------39. Anexos -------------------------------------------------------------------------40. Referências Bibliográficas --------------------------------------------------41. Introdução ao Step 7 Lite ----------------------------------------------------
69 72 74 75 79 89 90 91 92
3
Introdução O CLP O critério de projeto para o primeiro controlador programável foi especificado em 1968 por uma divisão da GENERAL MOTORS CORPORATION. O objetivo inicial era eliminar o alto custo associado com os sistemas controlados a relés. As especificações iniciais requeriam um sistema de estado sólido com a flexibilidade do computador, capaz de suportar o ambiente industrial, ser facilmente programado e reprogramado, manutenção fácil e por último facilmente expansível e utilizável. Devido ao intuito inicial de substituírem os painéis de relés no controle discreto, foram chamados de Controladores Lógicos Programáveis - CLP ( Programmable Logic Controllers - PLC). Porém, atualmente, os controladores são bem mais complexos e não executam somente lógica do tipo E e OU, motivo pelo qual passaram a ser chamados apenas de Controladores Programáveis - CP. Os primeiros controladores tinham pouca capacidade de processamento e suas aplicações limitavam-se à máquinas e pequenos processos que necessitavam de operações repetitivas. A partir de 1970, com o advento da tecnologia de microprocessadores, os controladores passaram ter uma grande capacidade de processamento e alta flexibilidade de programação e expansão. Entre outras características citamos: a capacidade de operar com números, realizar operações aritméticas com ponto decimal flutuante, manusear dados e se comunicar com computadores. Desta forma, os CP’s atuais podem atuar tanto em controle discreto, tais como, automação da manufatura, onde as máquinas apresentam ações automáticas e discretizada no tempo, como em controle contínuo, tais como, processos químicos e siderúrgicos, com características primordialmente analógicas. O sistema utilizado para programar o controlador era um dispositivo dedicado e acondicionado em um maleta portátil, chamada de maleta de programação, de forma que podia ser levada para "campo" afim de alterar dados e realizar pequenas modificações no programa. O sistema de memória do controlador não permitia facilidades de programação por utilizar memórias do tipo EPROM. Inovações no hardware e software entre 1975 e 1979 proporcionaram ao controlador maior
4
flexibilidade e capacidade de processamento, isto significou aumento na capacidade de memória e de entradas/saídas, permitiu entradas/saídas remotas, controle analógico, controle de posicionamento, comunicações, etc. A expansão de memória permitiu um programa de aplicação maior e uma maior quantidade de dados de forma que os programas de controle não ficassem restritos à lógica e seqüenciamento, mas também realizassem aquisição e manipulação de dados. Com o desenvolvimento do controle analógico, o controlador programável preencheu o "gap" entre controle discreto e controle contínuo. Os custos com fiação foram reduzidos significativamente com a capacidade do controlador de comunicar-se com subsistemas de entrada/saída localizados em pontos remotos, distante da unidade central de processamento e perto do equipamento a ser controlado. Ao invés de trazer centenas de fios para o armário do CP, os sinais dos subsistemas podem ser multiplexados e transmitidos por um único par de fios trançados. Esta técnica permitiu a decomposição de grandes sistemas em pequenos subsistemas melhorando a confiabilidade, manutenção e partida gradual dos subsistemas principais. Em 1979 foi desenvolvida a rede de comunicação de alta velocidade (Data Highways - no jargão dos fabricantes da época) permitindo um controle sincronizado entre vários controladores, comunicação com microcomputadores e outros sistemas situados em um nível funcional superior. Com isto foi possível combinar o desempenho do controlador programável com a capacidade de controle distribuído de alta velocidade e interface com computadores resultando em uma grande potencialidade de controle e supervisão. Atualmente, existem vários tipos de controladores, desde pequena capacidade até os mais sofisticados realizando operações que antes eram consideradas específicas para computadores. A evolução do hardware, conduziu a melhoras significativas nas características do controlador, entre outras citamos: •
Redução no tempo de varredura;
•
Interfaces de E/S microprocessadas. Ex.: módulo PID, módulo ASCII, módulo de posiciona-
mento; •
Uma Interface Homem Máquina (IHM) mais poderosa e amigável.
No software também surgiram novas características, tais como: •
Linguagem em blocos funcionais e estruturação de programa;
•
Linguagens de programação de alto nível, baseadas em BASIC;
•
Diagnósticos e detecção de falhas;
•
Operações matemáticas em ponto flutuante através de coprocessadores matemáticos, etc. 5
Os Controladores Lógicos Programáveis (CLPs), também chamado de controladores programáveis, fazem parte da família dos computadores. Usam-se em aplicações comerciais e industriais. Um controlador, monitora as entradas, toma decisões baseadas em seu programa, e controla as saídas para automatizar um processo ou máquina. Este curso trata de mostrar informação básica sobre as funções e as configurações dos controladores programáveis.
MOTORES
LUZES BOMBAS
BOTÕES
SENSORES
6
Funci oname nto Básico
Um controlador programável consiste em módulos de entradas, uma CPU, e módulos de saídas. Uma entrada aceita uma grande variedade de sinais analógicos ou digitais de vários dispositivos de campo (sensores) e os converte em uma lógica que a CPU pode usar. A CPU tomas as decisões e executa as instruções de controle baseadas nas instruções do programa da memória. Os módulos de saída convertem as instruções de controle da CPU em um sinal digital ou analógico que pode-se usar para controlar dispositivos de campo (atuadores). Usa-se um dispositivo de programação para introduzir as instruções desejadas. Estas instruções especificam o que deve fazer o controlador segundo uma entrada específica. Um dispositivo operador permite processar a informação para ser visualizada e introduzir novos parâmetros de controle.
Unidade de Processo Central
Programação
7
Saídas
Os botões (sensores), do exemplo abaixo, conectados as entradas do controlador, podem ser usados para acionar e parar um motor conectado a um controlador através de uma contatora.
ATUADORES
MOTOR
SAÍDAS
BOTÕES
CONTROLADOR
ENTRADA
Controle Anteriormente aos controladores, muitas destas tarefas de controle solucionavam-se mediante relés ou contatoras. Isto denominava-se controle mediante lógica de cabeamento. Tinham que projetar os diagramas do circuito, especificar e instalar os componentes elétricos, e criar listas de cabeamento. Então os eletricistas deviam cabear os componentes necessários para realizar uma tarefa especifica. Quando cometia-se um erro, os cabos tinham que ser novamente conectados corretamente. Uma alteração em sua função ou uma ampliação do sistema, requeria grandes alterações nos componentes e seu cabeamento.
8
Controlador Mesmo as tarefas mais complexas, pode-se fazer com um controlador. O cabeamento entre dispositivos e os contatos entre relés fazem-se no programa do controlador. Entretanto há a necessidade de cabeamento para conectar os dispositivos de campo, este é menos intensivo. A modificação da aplicação e a correção de erros são mais fáceis de realizar. É mais fácil criar e alterar um programa em um controlador do que cabear e recabear um circuito.
9
Cont rol adoresVantagens Sie mens Por que CLP? - Com o uso do CLP ( controlador lógico programável), além de reduções de custos, oferecem outras vantagens: - Confiabilidade - depois de escrito e depurado, um programa pode ser transferido e armazenado facilmente em outros CLPs. -
Flexibilidade - modificações de programas podem ser feitos com pouca digitação, pode se fazer atualizações do sistema sem a presença de um técnico do fabricante, bastando apenas enviar um novo programa.
- Funções
avançadas - os CLPs podem realizar uma grande variação de tarefas de con-
trole, desde ações simples e repetitivas até ações de manipulação de dados complexos. - Comunicações - a comunicação com interfaces de operação, outros CLPs ou computadores, facilita a coleta de dados e o intercâmbio de informações. - Velocidade - certas máquinas automatizadas processam milhares de informações por minuto, objetos estão expostos a sensores e frações de segundos, logo, necessita-se de resposta rápida e segura, por isso o uso de CLPs.
- Diagnóstico - a capacidade de resoluções de problemas com o CLP é muito mais rápida, permitindo a soluções de problemas de software e hardware. - Redução
de custos - com o uso de CLP, a uma redução significativa em termos de cus-
tos na montagem de máquinas.
10
Funci oname nto Básico A Siemens fabrica várias linhas de controladores da família SIMATIC S7. S7-200, 300 e 400.
S7-200 O S7-200 denomina-se microsistema por causa de seu pequeno tamanho. O S7-200 tem um design compacto em que a fonte de alimentação e as Entradas/Saídas são incorporadas.O S7-200 pode ser usado em pequenas aplicações independentes como elevadores, lavador de veículos, máquinas misturadoras, entre outros. Também pode utilizar-se em aplicações industriais mais complexas como máquinas de embutimentos e empacotamentos.
S7-300 e S7-400 Estes controladores usam-se em aplicações mais complexas, que necessitam de um maior número de Entradas/Saídas. Ambos são modulares e ampliáveis. A fonte de alimentação e as Entradas/Saídas consistem em módulos independentes conectados a CPU. A escolha entre o S7-300 e o S7-400 depende da complexidade da tarefa e de uma possível ampliação futura.
11
Simat ic S7 300 Siemens O S7-300 possui as seguintes características : • • • • • •
Diversas CPU´s com diferentes capacidades. Extensivo espectro de módulos. Pode ser expandido em até 32 módulos. Módulos integrados em barramento backplane. Pode ser ligado em rede com interface multi-point ( MPI ), PROFIBUS e Industrial Ethernet. Conexão central com PC acessa todos os módulos ( FM e CP ). Não há regras para alocação das placas. Configuração e parametrização via Software S7.
Especificações Técnicas S7-300
Memória de Trabalho Memória de Carga ( RAM Integrada ) Memória de Carga ( Flash EPROM ) DI / DQ AI / AQ I/O Integradas DI / DQ I/O Integradas AI / AQ Tempo de Execução para 1K de Instrução Memory Markers ( Flags ) Contadores / Temporizadores Funções Integradas Máximo Conexões Ativas por Interface MPI
CPU 312 IFM
CPU 313
CPU 314 CPU314 IFM CPU 315
6 KByte 20 KByte 128 32 10 / 6 0,6 ms 1024 32 / 64 sim 4
12 KByte 20 KByte 512 KByte 128 32 0,6 ms 2048 64 / 128 não 4
24 KByte 40 KByte 512 KByte 512 64 0,3 ms 2048 64 / 128 não 4
24 KByte 48 KByte 40 KByte 80 KByte 512 KByte 992 1024 248 128 20 / 16 4/1 0,3 ms 0,3 ms 2048 2048 64 / 128 64 / 128 sim não 4 4
Dados Técnicos : A Família S7-300 suporta um set de instruções e endereçamento comuns. A tabela acima mostra as especificações técnicas mais importantes para CPU´s 312 a 315.
Numero de Blocos : CPU 312 32 FB 32 FC 63 DB
Diferenças nas quantidades de números de blocos ( FB, FC, DB ). CPU 313 / 314 / 315 FB Blocos de Funções 128 FB 128 FC FC Funções DB Blocos de dados 127 DB
Trilhos : Para as CPU´s 312 e 313, é possível somente um trilho ( sem expansão ) As CPU´s 314 e 315 suportam até quatro trilhos ( 3 trilhos de expansão ).
Conexão DP : O S7-315-DP possui uma interface adicional para PROFIBUS DP ( Periferia Distribuída ) 12
Element os da CPU
1. Localização do Módulo de Memória ( Micro Memory Card – MMC ) . O MMC é inserido neste local. O módulo arquiva o programa para quando existir uma falha na alimentação, mesmo no caso de ausência da bateria. 2. Status da CPU - Leds : SF - Erro interno na CPU ou erro de diagnóstico nos módulos. BATF ou carga baixa. DC5V -- Sem Fontebateria +5V; indicador de tensão DC Ok. FRCE - Indica que pelo menos uma entrada ou saída está forçada. RUN - Piscando durante a inicialização da CPU, acesa quando a CPU está em modo RUN ( processando o programa ). STOP - Pisca se um reset de memória é necessário, acesa indica que a CPU está no modo STOP ( programa não está sendo executado ).
3. Expulsor do MMC. 4. Chave para seleção manual do modo de operação da CPU : MRES - Reset de memória ( overall reset ) STOP - O programa não é executado, mesmo se a CPU estiver em On-Line. RUN - O programa é processado porém o terminal de programação tem só acesso ao programa sem poder altera-lo RUN-P - A CPU está processando o programa, e o terminal de programação pode acessar e alterar o programa e o modo de operação. ( não existe trava ). 5. Segunda Interface X2 - DP
6. Primeira Interface X1 - MPI, conexão 9 pinos. Porta de programação da CPU do S7-300. 7. Conexão da Fonte de Alimentação. Existe um local para bateria de lithium em baixo da tampa. A bateria salva o conteúdo da memória RAM no caso de uma falha na alimentação da CPU. 8. Conexão das Entradas e Saídas. 13
S7-300 Esp ectro do Módul o
A Figura acima mostra a configuração máxima do S7-300. 1. Trilho 1 ( Bastidor 0 ) - Rack Central. 2. Trilho 2 ( Bastidor 1 ) - Rack de Ampliação. 3. Trilho 3 ( Bastidor 2 ) - Rack de Ampliação. 4. Trilho 4 ( Bastidor 3 ) - Rack de Ampliação. 5. Linha de Conexão 368. 6. A limitação para CPU 31xC não pode inserir no Rack 4 o módulo de Sinais 8. PS - Fonte de Alimentação. IM - Módulos de Interface. Os módulos de interface torna possível a configuração de vários trilhos expansão no ). Esta faz a de conexão entreIM361 os trilhos. Módulo Transmissão, IM360 (conectado Rackconfiguração Central. Módulo Recepção conectado nodeRack de expansão. No módulo de expansão são permitidos somente módulos de I/O ( SM ) SM - Módulo de Sinal. Os módulos de Sinais recebem do campo os sinais elétricos e os adapta aos vários tipos de sinais do módulo S7-300. Entradas e Saídas Digitais, Entradas e Saídas Analógicas. Acessórios : Conectores de bus e conectores frontais. FM - Módulo de Funções. O módulo de função oferece funções especiais como Contagem, Posicionamento, Regulação em Malha Fechada. CP - Módulos de Comunicação. Possibilidades de Rede : Ponto a Ponto, PROFIBUS e Industrial Ethernet. 14
Sistema de Numeração 0 lógico, 1 lógico Os controladores programáveis só podem entender um sinal que seja On ou Off (presente ou não presente, ligado ou desligado). O sistema binário é um sistema na qual só há dois números, 1 e 0. O binário 1 indica que um sinal está presente, ou o interruptor está ligado ( On ). O binário 0 indica que o sinal não está presente, ou o interruptor está desligado ( Off ).
As vezes os dígitos binários usam-se individualmente e outras são utilizados para representar valores numéricos.
Sistema De ci mal Nos controladores usam-se vários sistemas numéricos. Todos os sistemas de números, tem as mesmas características: dígitos, base, potência. O sistema decimal, que é de utilização comum na vida diária, tem as seguintes características : Dez dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Base 10 Potências 1, 10, 100, 1000, ...
15
Sistema Binário O sistema binário é usado nos controladores programáveis. Tem as seguintes características: Dois dígitos 0, 1 Base 2 Potências de base 2 (1, 2, 4, 8, 16, ...) No sistema binário, os 1s e 0s se ordenam em colunas. Cada coluna tem um peso. A primeira coluna tem um peso binário de 20. Isto equivale ao decimal 1. Este é denominado bit menos significativo. O peso binário dobra-se a cada coluna sucessivamente. A coluna seguinte, por exemplo, tem um peso de 21, que equivale ao decimal 2. O valor decimal dobra-se em cada coluna sucessivamente. O número mais a esquerda denomina-se bit mais significativo. No exemplo abaixo, o bit mais significativo tem um peso binário de 2 7. É equivalente ao decimal 128.
BIT Menos Significativo
BIT Mais Significativo
16
Converter e m binário Os seguintes passos podem ser usados para interpretar um número decimal a partir de um valor binário: 1. Buscar de direita a esquerda (de menos significativo ao mais significativo) os 1s. 2. Escrever a representação decimal de cada coluna que contenha um 1. 3. Somar os valores dessas colunas. No exemplo seguinte, as colunas quarta e quinta a partir da direita, contém um 1. O valor decimal da quarta coluna a partir da direita é 8, e o valor decimal da quinta coluna a partir da direita é 16. O decimal equivalente a este número binário é 24. A soma de todas as colunas com peso que contém um 1 é o número decimal que o controlador armazenou.
No exemplo seguinte, as colunas quarta e quinta a partir da direita contém um 1. O valor decimal da quarta coluna a partir da direita é 8, e o valor decimal da sexta coluna a partir da direita é 32. O decimal equivalente a este número binário é 40.
Outro Mé todo :
17
Divide-se o número sucessivamente pela base desejada até que o dividendo seja nulo. O número na nova base é obtido tomando-se na ordem inversa os restos da divisão, isto é, o digito mais significativo é o último resto e o menos significativo é o primeiro resto.
Ex.: Conversão do número 11 para a base 2 (binária)
número na base srcinal LSB
11 1
2 5 1
base desejada 2 2 0
2 1 1
2 0
MSB
18
fim da conversão
Hexadecimal O hexadecimal é outro sistema usado nos controladores programáveis. O sistema hexadecimal tem as seguintes características : 16 dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Base 16 Potências de base 16 ( 1, 16, 256, 4096 ...) Utilizam-se os dez dígitos do sistema decimal para os primeiros dez dígitos do sistema hexadecimal. Usam-se as primeiras seis letras do alfabeto para os seis dígitos restantes. A = 10
D = 13
B = 11
E = 14
C = 12
F = 15
Utiliza-se o sistema hexadecimal nos controladores programáveis porque permite representar o estado de um grande número de bits binários em um pequeno espaço como no monitor de um computador ou um visualizador de uma unidade de programação. Cada dígito hexadecimal representa o estado exato de 4 bits binários. Para converter um número decimal em um número hexadecimal o número decimal se dividirá por base 16. Por exemplo, para converter o decimal 428 em hexadecimal: Ex.: Conversão do número 428 para a base 16 (hexadecimal)
428 16 12 26 10
16 1 1
12=C 10=A 16 0
=
1AC16
O decimal 428 dividido por 16 é 26 com um resto de 12. Doze é equivalente a C em hexadecimal. Resta 26 que dividido por 16 é 1 com um resto de 10 que é equivalente a letra A. O hexadecimal equivalente do decimal 428 será então 1AC.
19
O valor decimal de um número hexadecimal, obtém-se multiplicando individualmente os dígitos hexadecimais pelo peso de base 16 e depois somando os resultados. No exemplo seguinte o número hexadecimal 2B converte-se em seu decimal equivalente que é 43. 160 = 1 161 = 16 B =11
Conversão de bases: Hexa
binária Binário 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Como pode ser observado na tabela acima cada dígito hexadecimal corresponde a um conjunto de 4 dígitos binários e vice-versa. a) 1011 = B
b)0001 1010 1100 = 1AC
20
Código BCD O código BCD (Binary-Coded Decimal, Decimal Codificado em Binário) são números decimais em que cada dígito está representado por um número binário de 4 bits.
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Decimal 0 1 2 3 4 5 6 7 8 9
Este código é utilizado para facilitar a interpretação por parte do usuário em um sistema computacional. Ex.: observe que há diferença em representar um numero em código BCD e em convertê-lo simplesmente para a base 2. 11 = 0001 0001 35 = 0011 0101
(Obs.: 11 na base 2 é igual a 1011) (Obs.: 35 na base 2 é igual a 100011)
21
Funci oname nto Básico Conversão de Números A tabela seguinte mostra alguns poucos valores numéricos em representação decimal, binário, BCD e hexadecimal.
22
Opera ções Arit méticas no si stema bin ário Nas áreas de eletrônica digital e dos microprocessadores, o estudo das operações aritméticas no sistema binário é muito importante pois estas serão utilizadas em circuitos aritméticos.
Adição no Sistema Binário. Para efetuarmos a adição no sistema binário, devemos agir como uma adição convencional no sistema decimal, lembrando que, no sistema binário temos apenas dois algarismos. Temos então: 0 +0 0
0 +1 1
1 +0 1
1 +1 10
Convém observar que no sistema decimal 1 + 1 = 2 e no sistema binário representamos o número 2 por 10. Pela operação realizada, notamos a regra de transporte para a próxima coluna : 1+1=0 e "vai um" .
Subtração no Sistema Binário. O método de resolução é análogo a uma subtração no sistema decimal. Temos então: 0 -0 0
0 - 1 1
1 -0 1
1 -1 0
Observamos que para o caso 0 - 1, o resultado será igual a 1, porém haverá um transporte para a coluna seguinte que deve ser acumulado no subtraendo e, obviamente, subtraído do minuendo.
Multiplicação nos Sistema Binário. Procede-se como em uma multiplicação decimal. Assim sendo temos: 0x0=0 0x1=0 1x0=0 1x1=1 23
Notação dos Números Binários Positivos e Negativos. A representação de números binários positivos e negativos pode ser feita utilizando-se os sinais " + " ou " - " respectivamente. Na prática, porém em hardware dos sistemas digitais que processam operações aritméticas, microprocessadores por exemplo, estes sinais não podem ser utilizados, pois tudo deve ser codificador em 0 ou 1. Uma forma para representar0 números binários negativos bastante utilizada nos sistemas já citados é a notação do complemento de 2, mas para entendê-la, devemos primeiramente converter o número na notação do complemento de 1, conforme se segue.
Complemento De 1 A obtenção do complemento de 1 de um número binário se dá pela troca de cada bit do número pelo seu inverso ou complemento. Para demonstrar esse procedimento, vamos obter o complemento de 1 do número 10011011. Assim sendo, temos: Número binário 1 0 0 1 1 0 1 1 Complemento de 1 0 1 1 0 0 1 0 0
Complemento De 2 A notação do complemento de 2, como já dissemos, é utilizada para representar números binários negativos. Sua obtenção se dá somando-se 1 ao complemento de 1 do número binário inicial. Para exemplificar, vamos representar o número 11001101 na notação do complemento de 2: 1 1 0 0 1 1 0 1 Número binário Complemento de 1 0 0 1 1 0 0 1 0 + 1 Complemento de 2 0 0 1 1 0 0 1 1
24
10 - Bits , Bytes e Pa lavras ( Word s ) Cada unidade binária de dados é um bit. Cada 8 bits fazem 1 Byte. 2 bytes ou 16 bits, fazem 1 Palavra ( Word ). 2 Palavras ou 4 Bytes ou 32 bits fazem uma Palavra Dupla ( Double Word ).
Byte
bit 31
24 23
16 15 87 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 011011 0 1
Word ( Palavra )
Double Word ( Palavra Dupla )
25
0
Form atos de re presenta ção dos n úmeros Binário Limite : 32 bits Representação : Faixa :
2#
Palavra ( Word ) : 2#0 até 2#1111111111111111 ( 16 uns ) Palavra Dupla ( Double Word ) : 2#0 até 2#11111111111111111111111111111111 ( 32 uns )
Hexadecimal Limite : 32 bits Representação : Byte B#16# Word ( Palavra ) W#16#
Faixa :
Double Word ( Palavra Dupla ) DW#16# Byte : B#16#0 até B#16#FF Word :
W#16#0 até W#16#FFFF
Double Word : DW#16#0 até DW#16#FFFFFFFF
BCD BCD “ Decimal Codificado em Binário”. Cada 4 bits representa um dígito. Há 2 formatos de BCD, de 3 dígitos e de 7 dígitos.
Palavra ( 16 bits ) : BCD de 3 dígitos com sinal. Exemplo : +310
Sinal : 0000 positivo 1111 negativo Faixa : -999 até 999 26
Dupla Palavra ( 32 bits ) : BCD de 7 dígitos com sinal. Faixa : -9999999 até 9999999
Formatos de Números Números Inteiros : Um número Inteiro é representado pela letra “I”. É um número binário de 16 bits que tem como sinal o bit mais significativo. Limite :
Positivo 215 - 1 = 32767 ( o “0” considera-se positivo ) Negativo 215 = -32368
Números Negativos : Faz-se o complemento de 2, mudando zeros por uns e somando 1. Exemplo : -3 3 = 0000 0000 0011
O número -3 portanto seria :
C1 = 1111 1111 1100 +1 = 1111 1111 1101
Números Duplos Inteiros : Um número Duplo Inteiro é representado pela letra “D”. É um número binário de 32 bits que tem como sinal o bit mais significativo. Limite :
Positivo 231 - 1 = 2147483647 ( o “0” considera-se positivo ) Negativo 231 = -2147483648
27
Números Reais : Um número Real, também chamado de número de Ponto Flutuante, é representado pela letra
“R”. É um número binário de 32 bits que constam de 2 pares : Expoente : 8 bits Mantissa : 24 bits
O bit mais significativo define o sinal do número. 38
Limite :
Positivo = 3.402823 10 Negativo = -3.402823 1038
28
Opera ções Lóg icas Chamamos de variável Booleana a uma variável que pode assumir só duas condições. Um exemplo de variável Booleana é uma chave (C ) que só pode estar aberta ou fechada, não existe outra condição. Em eletrônica digital costumamos associar a uma variável Booleana os símbolos “ 0 “ e “1 “. Podemos ter uma variável Booleana dependente de uma ou mais variáveis Booleanas. Por exemplo em resposta à condição de uma chave (variável A ) a qual pode estar aberta ou fechada podemos ter a condição de uma lâmpada (variável L ) acesa ou apagada em resposta. De acordo com uma determinada convenção , como na figura abaixo se convencionamos que chave aberta A = 0 , a chave fechada A = 1 teremos como resposta a lâmpada apagada L = 0 ou acesa L = 1. Para caracterizar o comportamento lógico estabelecemos o que chamamos de tabela verdade do circuito. Expressão Booleana : L = A Tabela Verdade ou A
L
Aberta ( 0 ) Apagada ( 0 ) Fechada ( 1 ) Acesa ( 1 )
29
A 0 1
L 0 1
Lógica E ( And ) Antigamente os circuitos lógicos eram feitos ( implementados ) com relés, hoje usamos portas lógicas em CI para realizar uma determinada lógica. A seguir mostraremos as principais portas lógicas e as sua características .Podemos Ter uma variável Booleana dependente de mais de uma variável Booleana , assim é que podemos Ter duas chaves A e B ligadas em série para ligar a lâmpada L. A lógica existente é : “ a lâmpada acenderá se A e B estiverem fechadas “. Dizemos que esta é uma lógica E ( AND em inglês ). A porta lógica correspondente é chamada porta E ( AND ) e cujo símbolo está representado na Figura abaixo. Expressão Booleana: L = ªB ( lê-se A e B , mas por analogia com a operação multiplicação dizemos também A vezes B) A 0 (aberta) 0 ( aberta ) 1( fechada ) 1( fechada )
B 0 (aberta) 1 ( fechada ) 0 ( aberta ) 1 ( fechada )
L 0 (apagada ) 0 ( apagada ) 0 ( apagada ) 1 ( acessa )
A 0 0 1 1
B 0 1 0 1
L 0 0 0 1
Lógica OU ( OR ) A função OU ( OR ) tem a seguinte lógica se pensarmos em termos de chaves ( não esqueça chave aberta
⇒
“ 0 “, fechada
⇒
“ 1 “ ): “A lâmpada acenderá se a chave A OU a chave
B estiverem ligadas na Figura abaixo “. Expressão Booleana: L = A+B ( Lemos A ou B, mas
por analogia com a operação soma dizemos A mais B ).
A 0 (aberta) 0 ( aberta ) 1( fechada ) 1( fechada )
30
B 0 (aberta) 1 ( fechada ) 0 ( aberta ) 1 ( fechada )
L 0 ( apagada ) 1 ( acesa ) 1 ( acesa ) 1 ( acesa )
A B 0 0 0 1 1 0 1 1
L 0 1 1 1
Lógica Inversora A função Não ( NOT ) ou função Inversora dá uma saída que é o complemento ( inverso ) da entrada. Expressão Booleana : L = A
A
L
Aberta ( 0 ) Acesa ( 1 ) Fechada ( 1 ) Apagada ( 0 )
31
A 0 1
L 1 0
EstrFunci utu raoname de pronto gramaçã Básicoo Passos para a Automação de um Equipamento com CLPs
32
Princípo de func ioname nto CPU´s antes de 10/1998
CPU´s após 10/1998 Sistema Operacional inicia vigilância do Tempo de Ciclo.
PIQ
PII
PIQ PII
Inicialização No momento em que é ligado o CLP executa uma série de operações pré - programadas, gravadas em seu Programa Monitor : • • • • • •
Verifica o funcionamento eletrônico da C.P.U. , memórias e circuitos auxiliares; Verifica a configuração interna e compara com os circuitos instalados; Verifica o estado das chaves principais ( RUN / STOP , PROG, etc. ); Desativa todas as saídas; Verifica a existência de um programa de usuário; Emite um aviso de erro caso algum dos itens acima falhe.
Verificar Estado das Entradas O CLP lê o estados de cada uma das entradas, verificando se alguma foi acionada. O processo de leitura recebe o nome de Ciclo de Varredura ( Scan ) e normalmente é de alguns micro - segundos ( scan time ). 33
Transferir para a Memória - Imagem do Processo PIQ e PII Após o Ciclo de Varredura, o CLP armazena os resultados obtidos em uma região de memória chamada de Memória Imagem ( Imagem do Processo ) das Entradas e Saídas. Ela recebe este nome por ser um espelho do estado das entradas e saídas. Esta memória será consultada pelo CLP no decorrer do processamento do programa do usuário.
Comparar com o Programa do Usuário O CLP ao executar o programa do usuário , após consultar a Memória Imagem das Entradas , atualiza o estado da Memória Imagem das Saídas, de acordo com as instruções definidas pelo usuário em seu programa.
Atualizar o Estado das Saídas O CLP escreve o valor contido na Memória das Saídas , atualizando as interfaces ou módulos de saída. Inicia - se então, um novo ciclo de varredura.
Vantagens da Imagem do Processo Em comparação com o acesso direto aos módulos de entrada e saída, o acesso a imagem de processo oferece a vantagem de que a CPU dispões de uma imagem coerente dos sinais do processo durante a execução cíclica do programa. Se durante a execução do programa varia um estado de sinal em um módulo de entrada, este estado de sinal se conserva na imagem de processo até que esta seja atualizada no próximo ciclo. Além disso, o acesso a imagem de processo requer muito menos tempo que o acesso direto aos módulos de sinais, já que a imagem de processo encontrase na memória interna da CPU.
Tempo de Ciclo ( SCAN TIME ) O tempo de Ciclo é o tempo que o sistema operacional necessita para executar o programa cíclico, assim como todas as partes do programa que interrompem este ciclo, por exemplo a execução de outros blocos de organização e as atividades do sistema como a atualização das imagens do processo. Este tempo é vigiado pelo sistema. Transcorrido este tempo a CPU passa para o estado STOP e chama a OB de erro de tempo.
34
Bloco Tiposs de estrutura prog rama O STEP 7 fornece 3 possibilidades para o desenvolvimento de seus programas. Baseado nesta diretriz, você pode decidir qual é a estrutura de programa mais apropriada para a sua aplicação. Programa Linear
O programa inteiro reside em um único bloco de instrução contínuo ( OB1 ). Esta estrutura é semelhante a um circuito de relés substituído por um controlador lógico programável. Como o nome diz, um programa descreve um grupo de instruções que são repetidamente realizadas sequencialmente. Simplifica-se as funções de administração do software considerando que há somente um bloco. Por outro lado, pelas instruções estarem dentro do mesmo bloco elas são executadas a cada ciclo até mesmo as partes que não são usadas pelo programa. Este método não utiliza a CPU de forma eficiente. Outra dificuldade está na manutenção do software já que será necessário analisar todo o programa para fazer uma pequena alteração. Programa particionado
O programa é dividido em blocos, cada bloco contém uma lógica específica para dispositivos ou tarefas. As informações residentes no bloco de organização ( OB1) determinam a ordem de execução dos blocos a serem processados. Um programa particionado pode, por exemplo, conter blocos de instruções com os quais os modos deos operações individuais um processo industrial são controlados. Neste caso, a vantagem é que blocos somente são de chamados durante o ciclo quando necessários, otimizando assim a utilização da CPU. Além disso, em sua manutenção, podemos fazer alterações em seus blocos específicos ( individuais ) não havendo a necessidade de analise de todo o programa. FC 10 Motor 1 FC 15 Motor 2
OB 1
FC 20 Motor 3
Programa Estruturado
Um Programa estruturado contém blocos de instruções com parâmetros definidos pelo usuário (blocos blocos são projetados de forma que possam ser usados universalmenteparametrizados). ( Genéricos ). OsEstes parâmetros atuais ( os endereços de entradas e saídas ) são especificados durante a chamada do bloco. FC 10 Motor 1 FC 10 Motor 2
OB 1
FC 10 Motor 3
35
O Simatic S7 dispõe de uma série de blocos que dividem a memória de programa e a de dados em seções, permitindo uma programação estruturada e um acesso ordenado aos dados. O número de blocos vai depender do tipo de CPU empregada, dispondo em geral dos seguintes:
Tipos de Módulos Blocos de Organização (OB) Constituem a forma de comunicação entre o sistema operacional da CPU e o programa do usuário. Existem 3 tipos de OB, aos quais estão acessíveis segundo o tipo de CPU:
• OB 1 (ciclo livre): é o módulo principal. Você pode salvar o seu programa inteiro no OB1 e deixar processando a cada ciclo. Você pode também salvar o seu programa em vários blocos e usar o OB1 para chamar estes blocos quando necessário.
• OB de erro e alarme: são os que contém a seqüência de ações a realizar no caso de que se produza um alarme ou erro programado. Ex. : OB40 - OB80
• OB de arranque: neste módulo podemos introduzir valores para que permitam o arranque definido da instalação, bem como um arranque inicial caso haja uma falha de alimentação. Ex. : OB100 - OB101
Blocos de Funções (FB) Um bloco de função é uma função ou uma sequencia de comandos armazenados em um bloco lógico, onde os parâmetros podem ser arquivados em uma memória. O FB utiliza esta memória adicional na forma de um “Bloco de Dados Instance” DB . Parâmetros passados para o FB, e alguns dos dados locais são arquivados neste blocos de dados associado ( Instance DB ). Outros dados temporários são arquivados na pilha local ( L stack ). Dados arquivados em Instance DB são retidos ( armazenados ) quando o Bloco de Função é fechado. Dados arquivados na pilha L stack não são retidos. Campo de Aplicação : Um FB contém um programa que executa-se sempre quando o FB é chamado por outro bloco lógico. Os blocos de função simplificam a programação de funções complexas de uso frequente. A cada chamada de um bloco de funções que transfere parâmetros está associado um bloco de dados Instance. Mediante a chamada de várias instancias de um FB é possível controlar vários equipamentos com um FB. Um FB para um tipo de motor pode controlar, por exemplo, diferentes motores utilizando dados de instancia diferentes para os diferentes motores. Os dados para cada motor ( tais como número de RPM, rampas, tempos de funcionamento acumulado, etc. ) podem ser memorizados em um dos vários DBs de instancia.
36
Funções (FC) A Função é um bloco de operação lógica similar ao bloco de função para o qual não é designado área de memória. Um FC não necessita de um Bloco de Dados Instance. As Variáveis locais são arquivadas na pilha local ( L stack ) até que a função esteja concluída, sendo perdidas quando o FC termina a execução. Para fins de memorização de dados, as funções podem utilizar blocos de dados globais. Como uma FC não tem associada nenhuma memória, devem-se sempre indicar parâmetros atuais. Campo de Aplicação : A FC contém um programa que executa-se cada vez que a FC é chamada por outro bloco lógico. As funções podem ser utilizadas para devolver um valor de função ao bloco invocante, por exemplo, funções matemáticas. Executar uma função tecnológica, por exemplo, controle individual com combinação binária.
Associação de parâmetros atuais e parâmetros formais : O parâmetro formal é um nome ( apelido ) para o parâmetro real, ou seja, o parâmetro atual. Os parâmetros atuais substituem os parâmetros formais ao efetuar-se a chamada a um FC. A um parâmetro formal de um FC devem sempre associar parâmetros atuais, por exemplo, parâmetro formal “START” um parâmetro atual “ I 3.6”. Podem ser utilizados em parâmetros de entrada e saída.
Blocos de dados(DB) Um bloco de dados é uma área de dados permanente na qual dados ou informações que outras funções coletaram são armazenados. Bloco de dados são áreas de leitura/escrita que podem ser carregados na CPU como parte de seu programa. Os blocos de dados podem ser de dois tipos:
• Blocos de dados globais: podem ser utilizados por qualquer módulo do programa. • Blocos de dados de instancia: atribui-se a um determinado bloco de função e só podem ser manejados a partir deste bloco. Podem atribuir-se vários blocos de dados de instancia a um bloco de função.
Blocos de funções de Sistema (SFB)
37
Um bloco de função de sistema é parte integral da CPU. Você pode utilizar um SFB em seu programa, sem carregar como parte de seu programa porque os SFB’s são parte do sistema operacional. SFB’s devem ser associados a um DB, o qual deverá ser transferido para a CPU como parte de seu programa. Exemplo : na CPU 312 -> SFB 29 “ HS_COUNT “ Contador de Alta Velocidade.
Funções de Sistema (SFC) Função de sistema é uma pré programada e testada função que é integrada a CPU. Algumas das tarefas suportadas por estas funções são setar parâmetros para módulos, comunicação de dados, funções de cópia, manipulação do relógio, contador de horas de funcionamento. etc. Uma SFC pode ser chamada pelo seu programa, porém sem precisar fazer parte dele ( não ocupa memória de trabalho ).
Blocos de Dados de Sistema (SDB) Um bloco de dados de sistema é uma área de memória que a ferramenta STEP 7 gera para arquivar dados necessários para o controle de operações. Informações, tais como dados de configuração, conexões de comunicação e parâmetros são salvos em SDB’s.
OBS. : Cada CPU possuí seus SFBs e SFCs específicos. Para obter maiores detalhes, consulte o manual Funções Standart e Funções de Sistema das CPUs Step 7-300.
38
Chamada de Blo co s A figura seguinte ilustra a seqüência da chamada de um bloco dentro do programa do usuário. O programa chama o segundo bloco, cujas operações executam-se até o final. Finalizado o tratamento do bloco chamado, continua-se o processamento do bloco invocante com a operação subsequente a da chamada do bloco.
Seqüência e profundidade de agrupamento A seqüência e o agrupamento das chamadas de blocos denomina-se hierarquia de chamadas. A profundidade de agrupamento admissível depende do tipo de CPU. A figura seguinte mostra, em um exemplo, a seqüência e a profundidade de agrupamento das chamadas de blocos dentro de um ciclo de execução.
Ordem de criação de blocos: · Os blocos criam-se de cima para baixo, ou seja, que começa-se com a fila superior de blocos. · Cada bloco que se chame já deverá existir. Portanto, em uma fila de blocos, a ordem de criação deverá ser da direita para esquerda. · O OB 1 é o último bloco que se cria. Conforme estas regras, a ordem de criação dos blocos da figura de exemplo seria o seguinte: FC 1 > FB 1 + DB 1 de instancia > DB 1 > SFC 1 > FB 2 + DB 2 de instancia > OB 1 39
Tipo s de dados Os operandos das instruções compõem-se de um dado que pode ser de distintos tipos. Os tipos de dados possíveis são:
M I
Memory Markers ( Marcas de Memória - Flag ) Entradas
Q
Saídas
T
Temporizadores
C
Contadores
DB
Data Block ( Módulo de Dados )
Cada um destes tipos podem endereçar-se em 4 possíveis modos (salvo T e C):
•
bit
•
B: Byte (8 bits).
•
W: Word ( Palavra 16 bits).
•
D: Double Word ( Palavra Dupla 32 bits).
Marc as de Memór ia Quando realizamos nosso programa e operamos a nível de bit em operações lógicas (and, or, etc.) pode ser que nos apareça a necessidade de armazenar o resultado lógico que tenhamos em um determinado momento. Para isso dispomos de 256 marcas de memória de 1 byte, ou seja , um total de 2048 marcas de 1 bit, que podemos endereçar como:
Bit de Marcas M 0.0 a M 255.7 Byte de marcas MB 0 a MB 255 Palavra de marcas MW 0 a MW 254 Palavra dupla de marcas MD 0 a MD 252
40
Entradas e saídas O que são Entradas e Saídas ? Entrada Byte Bit
I x.x - Designa uma entrada. É um elemento usado para monitorar uma ação ou um evento, como um interruptor, pressostato, termostato, etc. Na CPU 312C nós temos 10 Entradas Digitais Integradas. São elas:
I 124.0, I 124.1, I 124.2, I 124.3, I 124.4, I 124.5, I 124.6, I 124.7, I 125.0, I 125.1 Saída Byte Bit
Q x.x - Designa uma Saída. É usada para controlar um equipamento como um motor, uma válvula ou um LED. Na CPU 312C nós temos 6 Saídas Digitais Integradas. São elas:
Q 124.0, Q 124.1, Q 124.2, Q 124.3, Q 124.4, Q 124.5 Tal como comentamos anteriormente, manejaremos uma imagem das entradas e das saídas. O número de e/s disponíveis dependerá do tipo de CPU que empregarmos, além dos módulos externos que tenhamos conectados. Como máximo o controlador pode manejar até 65536 bytes para cada tipo de e/s. Em cada caso podemos endereçar como: IMAGEM DO PROCESSO DAS ENTRADAS : PII
Bit de Entrada I 0.0 a I 65535.7 Byte de entrada IB 0 a IB 65535 Palavra de entrada IW 0 a IW 65534 Palavra dupla de entrada ID 0 a ID 65532
41
IMAGEM DO PROCESSO DAS SAÍDAS : PIQ Bit de Saída Q 0.0 a Q 65535.7 Byte de saída QB 0 a QB 65535 Palavra de saída QW 0 a QW 65534 Palavra dupla de saída QD 0 a QD 65532
ENTRADAS EXTERNAS: Periferia Byte de entrada da periferia PIB 0 a PIB 65535 Palavra de entrada da periferia PIW 0 a PIW 65534 Palavra dupla de entrada da periferia PID 0 a PID 65532
SAÍDAS EXTERNAS: Periferia Byte de saída da periferia PQB 0 a PQB 65535 Palavra de saída da periferia PQW 0 a PQW 65534 Palavra dupla de saída da periferia PQD 0 a PQD 65532 Todas estas entradas e saídas podem ser de três tipos:
• E/S digitais: são as e/s mais freqüentes e que em maior quantidade vamos ter.
• E/S digitais de alarme/erro: não são e/s adicionais, configuram-se dentro do Step7 e ocupam uma das e/s digitais normais.
• E/S analógicas: estas sim são e/s adicionais, porem tem que ser configuradas também no Step7 para especificar a faixa de endereços que vão ocupar.
42
ENDEREÇAMENTOS Os endereçamentos são sempre realizados em grupos de 8 bits ou seja em Byte. Quando são realizados em Palavra ( Word ) devem ser endereçados conforme abaixo :
215 214 213 212 211 210 29 28 27 26 25 24
23
22 21 20
IW n Palavra de Entrada n ( Input Word n ) = IB n Byte de Entrada n ( Input Byte n ) + IB n+1 Byte de Entrada n+1 ( Byte de Entrada n + 1 ) Exemplos :
IW10 = IB 10 + IB 11 QW101 = QB 101 + QB102 MW26 = MB26 + MB27 Quando são realizados em Palavra Dupla ( Double Word ) devem ser endereçados conforme abaixo :
231 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------20
ID n Palavra Dupla de Entrada n ( Input Double Word n ) =
+ IB n+1 Byte de Entrada n+1 + IB n+2 Byte de Entrada n+2 + IB n+3 Byte de Entrada n+3 IB n Byte de Entrada n Exemplos :
ID10 = IB 10 + IB 11 + IB 12 + IB13 QD101 = QB 101 + QB102 + QB102 + QB103 MD26 = MB26 + MB27 + MB28 + MB29 43
Endere çame nto absolu to e simbó lico Endereços Absolutos : Um endereço absoluto é um endereço específico na CPU ( operandos Formais ), por exemplo, entrada I 1.0. Neste caso, não é necessário editar uma lista de simbólicos, o programa porém é mais dicícil de entender.
Endereços Simbólicos : O Endereçamento simbólico torna possível trabalhar com símbolos tais como Motor_liga, ao invés do endereçamento absoluto. Os símbolos para entradas, saídas, temporizadores, contadores, memory makers e blocos são arquivados na lista de simbólicos. Neste caso, os si]ímbolos são também chamados de símbolos globais porque o acesso é possível por todos os blocos
A lista de simbólicos para os Símbolos Globais é criado com a ferramenta Symbol Editor. As outras ferramentas do STEP 7, também tem condição de acessar a lista de simbólicos para exibir os endereços simbólicos.
44
Lin guagem de pro gramaçã o Para facilitar a programação dos CLPs , foram sendo desenvolvidas durante o tempo, diversas Linguagens de Programação. Essas linguagens de programação constituem-se em um conjunto de símbolos, comandos, blocos , figuras, etc, com regras de sintaxe e semântica. Essas linguagens se mostram bastante eficientes, principalmente porque permite ao usuário representar o programa de automação, tanto em Diagrama de Contatos ( LAD ou LADDER ), em Diagrama Lógico ( CFS ) e como uma Lista de Instruções ( STL ). Isso facilita o manejo da linguagem a um amplo círculo de usuários, na confecção e modificação de programas. Uma biblioteca dos denominados Blocos Funcionais Estandarizados , posta à disposição dos usuários, é um passo a mais na confecção racional de programas e redução dos custos de software.
A linguagem que utilizaremos neste módulo será a linguagem LADDER. Ladder segue os princípios de linguagem de Esquemas de Contatos fixados pela norma IEC 1131-3.
45
Instru ções com bits As instruções de BIT trabalham com dois valores, 1 e 0. Com instrução na forma de um contato ou de uma saída, 1 indica ativado ou energizado; 0 indica desativado ou desenergizado. Instruções de BIT interpretam o estado do sinal 0 ou 1 e os combina de acordo com a Lógica Booleana. O resultado destas combinações é 0 ou 1, denominado como “Resultado Lógico da Opera-
ção” ( R L O ).
22 - Contato Normalmente Aberto
O Contato Normalmente Aberto fecha-se se o valor do bit consultado, que armazena-se no indicado, é “1”. Se o contato está fechado, a corrente flui através do contato e o RLO ( Resultado Lógico ) é “1”. Do contrário, se o estado do sinal no indicado é “0”, o contato está aberto. Se o contato está aberto não há fluxo de corrente e o Resultado Lógico da Operação ( RLO ) é “0”.
22 - Contato Normalmente Fechado
O Contato Normalmente Fechado abre-se se o valor do bit consultado, que armazena-se no indicado, é “0”. Se o contato está fechado, a corrente flui através do contato e o RLO ( Resultado Lógico ) é “1”. Do contrário, se o estado do sinal no indicado é “1”, o contato está aberto. Se o contato está aberto não há fluxo de corrente e o Resultado Lógico da Operação ( RLO ) é “0”.
46
22 - Bobina, Saída
Saída opera como uma bobina em um esquema de circuitos. Se a corrente flui até a bobina (RLO = 1), o bit no torna-se “1”. Se não flui corrente até a bobina (RLO = 0), o bit no torna-se “0”. Uma bobina de saída só pode colocar-se dentro de um esquema de contatos no extremo direito de um circuito ( Final da Linha ). Pode haver no máximo 16 saídas múltiplas.
47
Opera ções Lóg icas As Operações Lógicas com bits interpretam os estados dos sinais “1” e “0”, e os combinam de acordo com a Lógica de Boole.
AND Representado pela associação série :
Na situação acima, quando tivermos “1” nas entradas I 32.0 E I 32.1 a saída Q 32.0 é ligada, A saída não continuará ligada se uma das entradas vir a “0”. Adiante estudaremos uma situação onde a saída continuaria ligada mesmo que uma das entradas viesse a “0”.
NAND Representado pela associação série negada :
Na situação acima, quando não tivermos “1” nas entradas I 32.0 E I 32.1 a saída Q 32.0 é ligada, e se qualquer das entradas tornar-se “1” a saída Q 32.0 é desligada.
OR
Na situação acima, quando tivermos “1” nas entradas I 32.0 OU I 32.1 a saída Q 32.0 é ligada. NOR
48
Na situação acima, enquanto as duas entradas estiverem desligadas ( “0” ), a saída Q 32.0 estará ligada. Para que a saída Q 32.0 desligue deveremos ter as duas entradas ligadas ( “1” ).
A seguir mais algumas instruções de Bits. NOT - Inverter Resultado Lógico (RLO)
Inverte o bit do RLO ( Resultado Lógico da Operação ) Exemplo :
A Saída Q 4.0 será “0” se : O estado da entrada I 0.0 for “1” OU o estado da entrada I 0.1 E I 0.2 for “1”.
Conector
Conector é um elemento intercalado que cumpre uma função de armazenar; o conector armazena o RLO atual ( o estado do sinal de fluxo de corrente ) no < Operando > que foi especificado. Este elemento de armazenamento memoriza a combinação lógica de bits da ultima linha aberta e que está antes dele. È inserido em série com outros elementos como um contato. O elemento conector nunca deve ser conectado a uma barra de alimentação nem deve empregar-se no final de uma linha. Pode-se criar a negação do elemento conector colocando antes o elemento NOT. Exemplo :
M 0.0 tem o RLO de I 1.0 e I 1.1 M 1.1 tem o RLO de I 1.0, I 1.1, I2.2, I1.3 e NOT M 2.2 tem o RLO de toda a combinação de bits.
49
SET e RESET Ativar Saída
Ativar Saída ( Setar ) só é executado se o RLO das operações anteriores for “1” ( fluxo de corrente na bobina ). Se o RLO for “1” o indicado do elemento se torna “1” e mesmo que logo em seguida o RLO tornar-se “0”, o continuará “1” . Um RLO = “0” não tem efeito algum, de forma que o estado do sinal atual do operando não se altera.
Desativar Saída
Desativar saída ( Resetar ) só é executado se o RLO das operações anteriores for “1” ( fluxo de corrente na bobina ). Se o RLO for “1” o indicado do elemento se torna “0”. Um RLO = “0” não tem efeito algum, de forma que o estado do sinal atual do operando indicado do elemento não se altera. O também pode ser um Temporizador ( Nº de T ) cujo valor de temporização torna-se “0” ou um Contador ( Nº de C ) cujo valor de contagem torna-se “0”.
Bloco Set/Reset - Reset Dominante
Se o estado do sinal de entrada S=1, e a entrada R=0 o operando ( bloco acima ) é setado. Se o estado do sinal R torna-se “1”, o operando setado anteriormente é resetado para “0”, independente do estado da entrada S ( Reset Dominante )
50
Bloco Reset/Set - Set Dominante
Se o estado do sinal de entrada R = 1, e a entrada S = 0 o operando ( bloco acima ) é resetado. Se o estado do sinal S torna-se “1”, o operando resetado anteriormente é setado para “1”, independente do estado da entrada R ( Set Dominante )
51
Flanco de impu lso Flanco Positivo
Flanco Negativo
RLO 1 0
A avaliação do flanco de impulso é frequentemente necessária em um programa, na realidade, sempre quando no programa uma entrada muda para ON ou para OFF, ou quando o endereço é setado ou resetado isto ocorre.
Detectar Flanco Decrescente 1 -> 0
Detecta uma mudança de estado de sinal do de “1” para “0” e indica esta mudança com RLO = 1 com um pulso de um ciclo ( scan ). Exemplo :
Na figura acima, a Marca de Flancos M 0. 0 armazena o estado de sinal do RLO da combinação de bits em seu conjunto, Se o estado do sinal do RLO muda de “1” para “0” a saída Q 3.0 tornase “1” por um ciclo ( Scan ).
52
Detectar Flanco Crescente 0 -> 1
Detecta uma mudança de estado de sinal do de “0” para “1” e indica esta mudança com RLO = 1 por um ciclo ( Scan ).
Na figura acima, a Marca de Flancos M 0. 0 armazena o estado de sinal do RLO da combinação de bits em seu conjunto, Se o estado do sinal do RLO muda de “0” para “1” a saída Q 3.0 tornase “1” por um ciclo ( Scan )..
53
Ativar Temporizadores temporizadores A CPU reserva uma área de memória para os temporizadores. Nesta área de memória, uma palavra de 16 bits é reservada para cada endereço de temporizador até 256. Consulte os Dados Técnicos da CPU para saber quantos temporizadores estão disponíveis. O Valor de tempo pode ser parametrizado na faixa de 10 ms até 9990 s ( 2 horas, 46 minutos, 30 segundos ) em incrementos de 10 milisegundos.
Identificação Identifica-se com a letra T. De T0 a T255
Valores de Temporização O Valor de temporização é carregado nos seguintes formatos e sintaxe :
S5TIME#aH_bM_cS_dMS aH_bM_cS_dMS S5T# Sendo : S5TIME# Formato de Tempo S5T# Formato de Tempo Simplificado H - Horas M - Minutos S - Segundos MS - Milisegundos a,b,c,d - Valores definidos pelo usuário. Exemplos : S5TIME#4S
4 segundos
S5#2h_15m 2 horas e 15 minutos S5T#1H12M18S 1 hora 12 minutos e 18 segundos O Step 7 oferece 5 tipos de temporizadores a seguir :
54
---( SP ) Descrição da operação temporizador com um pulso) Inicia o temporizador indicado com o funcionan---( SP ) (Inicia seo no RLO se produz flanco crescente. O temporizador continua do com o intervalo de tempo indicado enquanto o RLO seja positivo ("1"). O estado do contador é "1" enquanto está habilitado o temporizador. Se o RLO muda de "1" a "0" antes de transcorrer o valor de temporização, o temporizador para. Neste caso o estado do temporizador é "0".
Se o estado do sinal na entrada I 0.0 muda de "0" a "1" (flanco crescente no RLO), o temporizador T5 inicia. O temporizador continua em funcionando com o valor de temporização indicado de 2 s enquanto I 0.0 seja "1". Se o estado de sinal em I 0.0 muda de "1" para "0" antes de transcorrer o tempo, o temporizador para. A saída Q 4.0 é "1" enquanto o temporizador está funcionando. Se o estado do sinal na entrada I 0.1 muda de "0" para "1", o temporizador T5 vai a 0, ou seja, para e o valor de temporização restante vai para "0". O Tempo máximo durante o qual o sinal de saída permanece em “1”é idêntico ao tempo programado. para “0”. O sinal de saída permanece em “1” por um período menor se o sinal de entrada muda
---( SE ) 55
Descrição da operação ---( SE ) (Inicia o temporizador com pulso prolongado ) Inicia o temporizador indicado com o se o RLO produz um flanco crescente. O temporizador continua funcionando com o intervalo de tempo indicado mesmo que o RLO for para "0" antes de transcorrer o tempo. O estado do temporizador é "1" enquanto está em funcionamento. O temporizador volta a habilitar-se está comem o valor de temporização indicado se o RLO muda de "0" para "1" enquanto o temporizador funcionamento.
Se o estado do sinal na entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO),o temporizador T5 inicia. O temporizador continua em funcionamento com o valor de temporização indicado, sem ser afetado por um flanco negativo no RLO. Se o estado do sinal na I 0.0 muda de "0" para "1" antes de transcorrer o tempo, o temporizador reinicia. A saída Q 4.0 é "1" enquanto o temporizador está em funcionamento. Se o estado do sinal na entrada I 0.1 muda de "0" para "1", o temporizador T5 vai para “0”, ou seja, para e o valor de temporização restante vai para "0". O sinal de saída permanece em “1” durante o tempo programado, independentemente do tempo em que o sinal de entrada esteja em “1”.
56
---( SD ) Descrição da operação ---( SD ) (Inicia o temporizador com retardo na conexão) Inicia o temporizador indicado com o se nodeRLO se produz umtranscorreu flanco crescente. O estado do continua sinal do tem temporização> porizador "1" se o
Se o estado do sinal na entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), o temporizador T5 inicia. Se transcorre o tempo e o estado do sinal na I 0.0 continua sendo "1", a saída Q 4.0 é "1". Se o estado do sinal na entrada I 0.0 muda de "1" para "0", o temporizador é resetado e Q 4.0 é "0". Se o estado do sinal na entrada I 0.1 muda de "0" para "1", o temporizador T5 vai para “0”, ou seja, para e o valor de temporização restante vai para a "0". O sinal de saída muda de “0”para “1” somente se o tempo programado transcorreu e o sinal de entrada ainda continua em “1”.
57
---( SS )
Descrição da operação (Inicia o temporizador retardo na conexão com Inicia o temporizador ---( SS ) se indicado no RLO se produz umcom flanco crescente. O estado domemória) sinal do temporizador é "1" se o tempo foi transcorrido. Um reinício do temporizador só é possível se este foi colocado expressamente em 0. O estado do temporizador só pode ser resetado se for colocado em zero. O temporizador volta a iniciar-se com o valor de temporização indicado se o RLO muda de "0" para "1" enquanto transcorre o tempo.
Se o estado do sinal na entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), o temporizador T5 inicia. Se o estado do sinal na entrada I 0.0 muda de "0" para "1" antes de transcorrer o tempo, o temporizador volta a iniciar. A saída Q 4.0 é "1" se foi transcorrido o tempo. Se o estado do sinal na entrada I 0.1 é "1", o temporizador T5 vai para “0”, ou seja, para e o valor de temporização restante vai para "0".
O sinal de saída muda de “0”para “1” somente se o tempo programado transcorreu, independentemente do tempo em que o sinal de entrada esteja em “1”.
58
---( SF ) Descrição da operação ---( SF ) (Inicia o temporizador com retardo na desconexão) Inicia o temporizador indicado se no RLO se produz um flanco decrescente.com O estado do sinal do temporizador "1" se o RLOvai é de temporização> "1" ou enquanto funcione o temporizador o
Se o estado do sinal na entrada I 0.0 muda de "1" para "0", o temporizador inicia. Q 4.0 é "1" se I 0.0 for "1" ou se o temporizador está em funcionamento. Se o estado do sinal na entrada I 0.1 muda de "0" para "1", o temporizador T5 vai para “0”, ou seja, para, e o valor de temporização restante vai para "0".
O sinal de saída muda de “0”para “1” quando o sinal de entrada muda de “1”para “0”. O sinal da saída permanece em “1” durante o tempo programado. O temporizador inicia quando o sinal de entrada muda de “0”para 1.
59
Ativar e parametrizar blocos temporizadores S_PULSE S -> SET - Ativar Temporizador TV -> Time Variable - Valor da Temporização R -> RESET - Desativar Temporizador Q -> Output - Saída BI -> Temporização Atual em Binário BCD - > Temporização Atual em BCD
Nº do Tem orizador
Descrição da operação S_PULSE (Parametrizar e iniciar o temporizador com pulso) Inicia o temporizador indicado quando há um flanco crescente na entrada de ativação S. Para iniciar um temporizador tem que produzir-se necessariamente uma mudança de sinal. O temporizador funciona enquanto o estado do sinal na entrada S seja "1", porém, como máximo, durante o tempo indicado pelo valor de temporização na entrada TV. O estado do sinal na saída Q é "1" enquanto funcionar o temporizador. Se o estado do sinal na entrada S muda de "1" para "0" antes de transcorrer o intervalo de tempo, o temporizador para. Neste caso o estado do sinal na saída Q é "0". O temporizador vai a “0” se a entrada de desativação R do temporizador vai a "1" enquanto funcione o temporizador. O valor de temporização atual e a base de tempo também vai a “0”. Um sinal "1" na entrada R do temporizador não tem efeito algum se o temporizador não está em funcionamento. O valor de temporização atual fica depositado nas saídas BI e BCD. O valor de temporização na saída BI está em código binário, o valor na saída BCD está em formato decimal codificado em binário. O valor de temporização atual eqüivale ao valor inicial de TV menos o valor de temporização que foi transcorrido desde o início do temporizador.
Se o estado do sinal da entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), se ativa o temporizador T5. O temporizador continua em funcionamento com o valor de temporização indicado de 2 segundos (2 s) enquanto a entrada I 0.0 seja “1”. Se o estado de sinal da entrada I 0.0 muda de "1" para "0" antes de transcorrer o tempo, o temporizador para. A saída Q 4.0 é "1" enquanto o temporizador estiver em funcionamento, e "0" se o tempo transcorrido ou se o temporizador foi posto em “0”.
60
S-PEXT Nº do Tem orizador
S -> SET - Ativar Temporizador TV -> Time Variable - Valor da Temporização R -> RESET - Desativar Temporizador Q -> Output - Saída BI -> Temporização Atual em Binário BCD - > Temporização Atual em BCD
Descrição da operação S_PEXT (Parametrizar e iniciar o temporizador com pulso prolongado) Inicia o temporizador indicado quando há um flanco crescente na entrada de ativação S. Para iniciar um temporizador tem que produzir-se necessariamente uma mudança de sinal. O temporizador continua em funcionamento durante o tempo pré-determinado, indicado na entrada TV, mesmo que o estado do sinal na entrada S for a "0" antes de haver transcorrido o intervalo de tempo. O estado do sinal na saída Q é "1" enquanto o temporizador estiver em funcionamento. O temporizador reiniciará com o valor de temporização pré-determinado se o estado do sinal na entrada S muda de "0" para "1" enquanto o temporizador estiver em funcionamento. O temporizador vai a “0” se a entrada de desativação R do temporizador for "1" enquanto o temporizador estiver funcionando. O valor de temporização atual e a base de tempo vai a “0”. O valor de temporização atual fica depositado nas saídas BI e BCD. O valor de temporização na saída BI está em código binário, o valor na saída BCD está em formato decimal codificado em binário. O valor de temporização atual eqüivale ao valor inicial de TV menos o valor de temporização que foi transcorrido desde o início do temporizador.
Se o estado do sinal da entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), ativa-se o temporizador T5. O temporizador continua em funcionamento com o valor de temporização indicado de 2 segundos sem ser afetado por um flanco decrescente na entrada S. Se o estado do sinal da entrada I 0.0 muda de "0" para "1" antes de transcorrer o tempo, o temporizador reinicia. Se o estado do sinal da entrada I 0.1 muda de "0" para "1" enquanto o temporizador estiver funcionando, este vai para “0”. A saída Q 4.0 é "1" enquanto o temporizador estiver funcionando.
61
S_ODT Nº do Tem orizador
S -> SET - Ativar Temporizador TV -> Time Variable - Valor da Temporização R -> RESET - Desativar Temporizador Q -> Output - Saída BI -> Temporização Atual em Binário BCD - > Temporização Atual em BCD
Descrição da operação S_ODT (Parametrizar e iniciar o temporizador com retardo na conexão) Inicia o temporizador indicado quando há um flanco crescente na entrada de início S. Para iniciar um temporizador, tem que produzir-se necessariamente uma mudança de sinal. O temporizador continua em funcionamento com o valor de temporização indicado na entrada TV enquanto o estado do sinal na entrada S seja positivo. O estado do sinal na saída Q será "1" se o tempo transcorreu sem que se produzam erros e se o estado do sinal na entrada S for "1". Se o estado do sinal na entrada S muda de "1" para "0" enquanto o temporizador estiver funcionando, este para. Neste caso, o estado do sinal na saída Q será "0". O temporizador vai a “0” se a entrada de desativação R do temporizador for para "1" enquanto o temporizador estiver funcionando. O valor de temporização e a base de tempo vai a “0. Então o estado do sinal na saída Q é "0". O temporizador também vai a “0” se na entrada de desativação R o valor for "1", enquanto o temporizador não está em funcionamento e o RLO na entrada S for "1". O valor de temporização atual fica depositado nas saídas BCD. O valor de temporização na binário. saída BIOestá emdecódigo binário, atual o valor na saída BCD BI estáe em formato decimal codificado em valor temporização eqüivale ao valor inicial de TV menos o valor de temporização que foi transcorrido desde o início do temporizador.
Se o estado do sinal da entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO) Ativa-se o temporizador Se transcorre tempo 2 segundos e o da estado do sinal na entrada nua sendo "1",T5. a saída Q 4.0 seráo "1". Sede o estado do sinal entrada I0.0 muda de "1"I 0.0 paraconti"0", o temporizador para e a saída Q 4.0 será "0". (Se o estado do sinal da entrada I 0.1 muda de "0" para "1", o temporizador vai a “0”, se estiver funcionando o temporizador ou não).
62
S_ODTS Nº do Tem orizador
S -> SET - Ativar Temporizador TV -> Time Variable - Valor da Temporização R -> RESET - Desativar Temporizador Q -> Output - Saída BI -> Temporização Atual em Binário BCD - > Temporização Atual em BCD
Descrição da operação S_ODTS (Parametrizar e iniciar o temporizador com retardo na conexão com memória) inicia o temporizador indicado quando há um flanco crescente na entrada de início S. Para iniciar um temporizador, tem que produzir-se necessariamente uma mudança de sinal. O temporizador continua em funcionamento com o valor de temporização indicado na entrada TV mesmo que o estado do sinal na entrada S for a "0" antes de que transcorra o tempo. O estado do sinal na saída Q será "1" se transcorrido o tempo, independentemente do estado do sinal que tenha a entrada S. O temporizador reinicia com o valor de temporização indicado se o estado do sinal na entrada S mude de "0" para "1" enquanto o temporizador está em funcionamento. O temporizador vai para “0” se a entrada de desativação R do temporizador for a "1", independentemente do RLO na entrada S. Então o estado do sinal na saída Q é "0". O valor de temporização atual fica depositado nas saídas BI e BCD. O valor de temporização na saída BI está em código binário, o valor na saída BCD está em formato decimal codificado em binário. O valor de temporização atual eqüivale ao valor inicial de TV menos o valor de temporização que foi transcorrido desde o início do temporizador.
Se o estado do sinal da entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), Ativa-se o temporizador T5. O temporizador continua em funcionamento sem que uma mudança de sinal de "1" para "0" na entrada I 0.0 repercuta nele. Se o estado do sinal da entrada I 0.0 muda de "1" para "0" antes de que haja transcorrido o tempo, o temporizador reinicia. A saída QA 4.0 será "1" se foi transcorrido tempo (se o estadodedoqual sinal 0.1 muda de "0" para "1", o temporizador vai a "0", oindependentemente sejadao entrada RLO emI S).
63
S_OFFDT Nº do Tem orizador
S -> SET - Ativar Temporizador TV -> Time Variable - Valor da Temporização R -> RESET - Desativar Temporizador Q -> Output - Saída BI -> Temporização Atual em Binário BCD - > Temporização Atual em BCD
Descrição da operação S_OFFDT (Parametrizar e iniciar o temporizador com retardo na desconexão) inicia o temporizador indicado quando há um flanco decrescente na entrada de ativação S. Para iniciar um temporizador, tem que produzir-se necessariamente uma mudança de sinal. O estado do sinal na saída Q será "1" se o estado do sinal na entrada S for "1", e também enquanto o temporizador esteja funcionando. O temporizador para se o estado do sinal na entrada S muda de "0" para "1" enquanto o temporizador está em funcionamento. O temporizador só reinicia se o estado do sinal na entrada S volte a mudar de "1" para "0". O temporizador vai para “0” se a entrada de desativação R for para "1" enquanto o temporizador estiver em funcionamento. O valor de temporização atual fica depositado nas saídas BI e BCD. O valor de temporização na saída BI está em código binário, o valor na saída BCD está em formato decimal codificado em binário. O valor de temporização atual eqüivale ao valor inicial de TV menos o valor de temporização que foi transcorrido desde o início do temporizador.
O temporizador inicia se o estado do sinal na entrada I 0.0 muda de "1" para "0". Q 4.0 é "1" se I 0.0 es "1" ou o temporizador está em marcha (Se o estado do sinal em I0.1 muda de "0" para "1", enquanto o temporizador está em funcionamento, este vai a “0”).
64
Contadores A CPU reserva uma área de memória para os contadores. Nesta área de memória, uma palavra de 16 bits é reservada para cada endereço de contador até 256. Consulte os Dados Técnicos da CPU para saber quantos contadores estão disponíveis. O Valor máximo presetado é 999 (BCD).
Identificação Identifica-se com a letra C. De C0 a C255
Valores de Temporização O Valor de Contagem é carregado no seguinte formato e sintaxe :
C#127 c#32 C#5 Sendo :
C# Identifica o Formato Decimal Codificado em Binário BCD 127 32
Números de Contagem entre 0 e 999
5 O Step 7 oferece 3 tipos de contadores a seguir :
Contador Crescente Contador Decrescente Contador Crescente / Decrescente
65
Setar e inc iar co ntador es Colocar Contador no Valor Inicial - Set Counter
Descrição da Operação Inicializar o Contador executa-se somente se houver um flanco ascendente ( positivo ) na RLO. Neste caso transmite-se o ao contador indicado em < Nº de C >. Exemplo :
O valor “100” ficará pre-selecionado para o contador C5 se na entrada I 0.0 produz-se um flanco ascendente( mudança de “0” para “1” ). O Valor do contador C5 não se altera no caso de que não se produza nenhum flanco ascendente.
66
Incrementar Contador - Counter Up
Contar para frente incrementa em “1” o valor do contador indicado se houver um flanco ascendente no RLO e o valor do contador for menor que “999”. O valor do contador não se altera se não houver nenhum flanco ascendente e também se o contador já tenha alcançado o valor “999”. Exemplo :
Se o estado do sinal de I 0.0 muda de “0” para “1” ( flanco ascendente no RLO ), carrega-se 0 valor predeterminado de “100”no contador C5. Se o estado do sinal de I 0.1 muda de “0” para “1” ( flanco ascendente no RLO ), incrementa-se em “1” o valor de contagem do contador C5, menos se o valor de contagem seja igual a “999”. O valor de contagem não se altera se não houver nenhum flanco ascendente no RLO. Se o estado do sinal de I 0.2 for “1” o contador torna-se “0” ( Reset em C5 ).
Decrementar Contador - Counter Down 67
Contar para trás decrementa em “1” o valor do contador indicado se houver um flanco ascendente no RLO e o valor do contador for maior que “0”. O valor do contador não se altera se não houver nenhum flanco ascendente e também se o contador já tenha alcançado o valor “0”. Exemplo :
Detecção de Valor “0”
Se o estado do sinal de I 0.0 muda de “0” para “1” ( flanco ascendente no RLO ), carrega-se 0 valor predeterminado de “100”no contador C5. Se o estado do sinal de I 0.1 muda de “0” para “1” ( flanco ascendente no RLO ), decrementa-se em “1” o valor de contagem do contador C5, menos se o valor de contagem seja igual a “0”. O valor de contagem não se altera se não houver nenhum flanco ascendente no RLO. A Saída Q 4.0 torna-se 1 se o valor de contagem equivale a zero. Se o estado do sinal de I 0.2 for “1” o contador torna-se “0” ( Reset em C5 ).
68
Parametrizar e iniciar contadores Parametrizar e Incrementar Bloco Contador - Counter UP
S_CU - Parametrizar e Incrementar Contador toma o valor predeterminado da entrada PV se na entrada S houver um flanco crescente. Se o estado do sinal da entrada R for “1” o contador torna-se “0” e então o valor de contagem é zero. O contador incrementa em “1” se o estado do sinal da entrada CU muda de “0” para “1”, sempre que o valor de contagem seja menor que “999”. Se inicializa-se o contador e o valor da entrada CU = 1 , o contador contará mesmo que não haja nenhum flanco ascendente. O estado do sinal da saída “Q” será “1” sempre que o valor de contagem seja maior que zero e será “0” se o valor de contagem for zero. Exemplo :
Ao mudar a entrada I 0.2 de “0” para “1” , o contador toma o valor predeterminado em PV. Se o estado do sinal em I 0.0 muda de “0” para “1”, o valor do contador C5 incrementa-se em “1”, menos se o valor de C5 for “999”. A Saída Q 4.0 será “1” sempre que o valor de C5 não seja zero. Em CV é armazenado o valor de contagem atual em Hexadecimal e em CV_BCD é armazenado o valor de contagem atual em BCD.
69
Parametrizar e Decrementar Bloco Contador - Counter Down CD
S_CD
S_CD - Parametrizar e Decrementar Contador toma o valor predeterminado da entrada PV se na entrada S houver um flanco crescente. Se o estado do sinal da entrada R for “1” o contador torna-se “0” e então o valor de contagem é zero. O contador decrementa em “1” se o estado do sinal da entrada CD muda de “0” para “1”, sempre que o valor de contagem seja maior que “0”. Se inicializa-se o contador e o valor da entrada CU = 1 , o contador contará mesmo que não haja nenhum flanco ascendente. O estado do sinal da saída “Q” será “1” sempre que o valor de contagem seja maior que zero e será “0” se o valor de contagem for zero. Exemplo :
CD
S_CD
Ao mudar a entrada I 0.2 de “0” para “1” , o contador toma o valor predeterminado em PV. Se o estado do sinal em I 0.0 muda de “0” para “1”, o valor do contador C5 decrementa-se em “1”, menos se o valor de C5 for “0”. A Saída Q 4.0 será “1” sempre que o valor de C5 não seja zero. Em CV é armazenado o valor de contagem atual em Hexadecimal e em CV_BCD é armazenado o valor de contagem atual em BCD.
70
Parametrizar e Incrementar/Decrementar Bloco - Counter Up/Down
S_CUD - Parametrizar e Incrementar / Decrementar Contador é inicializado com o valor de PV quando produz-se um flanco ascendente na entrada S. Se há “1” na entrada R, o contador tornase zero e o valor de contagem é “0”. O Contador incrementa em “1” se o estado do sinal da entrada CU muda de “0” para “1” e o valor do contador for menor que “999”. O Contador decrementa em “1” se na entrada CD produz-se um flanco ascendente e o valor do contador for maior que “0”. Ao produzir-se um flanco ascendente em ambas as entradas de contagem ( CU e CD ) , executam-se ambas as operações e o valor de contagem não varia. Se inicializa-se o contador e o RLO das entradas CU / CD = 1 , o contador contará mesmo que não haja nenhum mudança de flanco. O estado do sinal da Saída Q será “1” se o valor de contagem for maior que zero e será “0” se o valor de contagem for igual a zero. Exemplo :
Ao mudar a entrada I 0.2 de “0” para “1”, o contador toma o valor de pré-seleção em PV. Se o estado do sinal em I 0.0 muda de “0” para “1”, o valor do contador C5 incrementa em “1”, a menos que o valor de C5 for “999”. Se I 0.1 muda de “0” para “1”, C5 decrementa em “1”, a não ser que o valor ce C5 seja “0”. A Saída Q 4.0 será “1” se o valor cd C10 não for zero. Em CV é armazenado o valor de contagem atual em Hexadecimal e em CV_BCD é armazenado o valor de contagem atual em BCD. 71
Comparadores Com instruções de comparação, você pode comparar os seguintes pares de valores numéricos :
CMP ? I - Dois Inteiros ( cada um com 16 bits ) CMP ? D - Dois Inteiros Duplos ( cada um com 32 bits ) CMP ? R - Dois Números Reais ( número de ponto flutuante, cada um com 32 bits )
? - Tipo de Comparador
Tipo de Comparador Todas as instruções de comparação compara os “ valores” das entradas IN1 e IN2 baseados nas seguintes relações : CMP = = I CMP < > I
IN1 é igual ( = = ) a IN2 IN1 não é igual ( < > ) a IN2
CMP > I
IN1 é maior que ( > ) IN2
CMP < I
IN1 é menor que ( < ) IN2
CMP > = I IN1 é maior ou igual a ( > = ) IN2 CMP < = I IN1 é menor ou igual a ( < = ) IN2 Se a comparação é satisfeita, o resultado da operação lógica é 1. Exemplo :
A saída Q 4.0 será ativada se I 0.0 “e” I 0.1 forem “1” e se MW0 for >= MW2.
72
Salt os – JUMP Podem-se utilizar estas operações em todos os blocos lógicos: blocos de organização (OBs), blocos de função (FBs) e funções (FCs). As operações de Salto são as seguintes :
Salto Incondicional
JMP - Funciona como um salto direto quando não há outro elemento LAD entre o condutor esquerdo e a operação (ver acima). Cada salto tem que ter um destino (LABEL). Não se executarão as operações que encontram-se entre a operação de salto e o destino.
Operações Intermediárias
O salto executa-se em todos os casos, omitindo-se (“passando por cima“) as operações que encontram-se entre a operação de salto e o destino.
73
Salto Condicional - JMP
Funciona como um salto condicional quando o RLO da combinação lógica anterior for “1”. Exemplo :
Operações Intermediárias
Se a entrada I 5.0 “E” I 5.1 forem “1” executa-se o salto para o destino CAS1. As operações intermediárias não serão executadas se houver o salto.
74
Salto Condicional - JMPN
Funciona como um salto condicional quando o RLO da combinação lógica anterior for “0”. Exemplo :
Operações Intermediárias
Se a entrada I 5.0 “OU” I 5.1 for “0” executa-se o salto para o destino CAS1. As operações intermediárias não serão executadas se houver o salto.
Label – Destino LABEL marca o destino de uma operação de salto. Este destino pode ter até um máximo de 4 caracteres. Primeiro caracter : letra ; os demais caracteres : letras ou alfanuméricos, por exemplo CAS1.
Chamada de Blo cos
CALL - Chamar uma Função especificada em < Bloco >. Executa se o RLO = “1”. 75
Opera ções L ógi cas D igi tais As Operações Lógicas Digitais com palavras, comparam bit a bit pares de palavras ( Word - 16 bits ) e palavras duplas ( Double Word - 32 bits ) segundo a lógica de Boole. Para executar as operações lógicas com palavras, dispõe-se das seguintes operações :
WAND_W
Resolução do Exercício 08 A instrução “Word AND” combina dois valores especificados na entrada IN1 e IN2 bit a bit, baseado na tabela verdade AND. O resultado da operação é salvo ( armazenado ) no endereço especificado em OUT. A instrução é executada se o sinal de entrada de EN = 1. ENO tem o mesmo estado do sinal de EN. Tabela Verdade AND :
A B S 0 0 0 0 1 0 1 0 0 1 1 1 Exemplo : Fazendo uma máscara de quatro décadas. A lógica será executada se a entrada I 5.0 for “1”.
IN1 IN2
IW10 0100 0100 1100 0100 W#16#00FF 0000 0000 1111 1111 MW30
0000 0000 1100 0100 76
WOR_W
A instrução “Word OR” combina dois valores especificados na entrada IN1 e IN2 bit a bit, baseado na tabela verdade OR. O resultado da operação é salvo ( armazenado ) no endereço especificado em OUT. A instrução é executada se o sinal de entrada de EN = 1. ENO tem o mesmo estado do sinal de EN. Tabela Verdade OR :
A B S 0 0 0 0 1 1 1 0 1
1
1
1
Exemplo : Setando o bit 0 na MW20. A lógica será executada se a entrada I 5.1 for “1”.
IN1 IN2
MW20 0100 0010 0110 1010 W#16#0001 0000 0000 0000 0001 MW32
0100 0010 1100 0100
77
Operações m atemáti cas básic as O set de instruções contém várias funções aritméticas, como exibidas abaixo : Identificação da Operação
A operação só é realizada se o operando < Condição > for “1”.
IN1 = Valor de Entrada 1 - Esta palavra é lida como o Primeiro Operando. IN2 = Valor de Entrada 2 - Esta palavra é lida como o Segundo Operando. O = Valor de Saída - Esta palavra é o resultado da operação aritmética. Operações Matemáticas : Adição : ADD_I ADD_DI
Soma Inteiros Soma Inteiros Duplos
ADD_R
Soma Números Reais
Subtração : SUB_I SUB_DI SUB_R
Subtrai Inteiros Subtrai Inteiros Duplos Subtrai Números Reais
Multiplicação : MUL_I MUL_DI
Multiplica Inteiros Multiplica Inteiros Duplos
MUL_R
Multiplica Números Reais
Divisão : DIV_I
Divide Inteiros
DIV_DI DIV_R
Divide Inteiros Duplos Divide Números Reais 78
Manip ulação de b loc os para metrizá veis Programar uma Função FC : A Função, como o Bloco de Função, está subordinada ao bloco de organização. Para que possa ser processada pela CPU, esta tem que ser chamada também pelo bloco de ordem superior. Nas funções, os parâmetros são listados na tabela de declaração de variáveis. Criaremos a partir de agora um programa exemplo com uma função passo a passo.
MISTURADOR PROGRAMÁVEL O programa consiste em um misturador de confeitaria . Há uma válvula para introduzir leite V2 e outra para introduzir farinha V1; o misturador agita-se mediante uma paleta acionada por um motor M1. Dependendo dos tempos de introdução dos ingredientes e de funcionamento da paleta, poderemos fazer três diferentes produtos segundo a tabela seguinte: Entrada : Saídas : B1 - Botão para Pães V1 - Válvula de Farinha B2 - Botão para Biscoitos V2 - Válvula de Leite B3 - Botão para Sequilhos M1 - Motor do Batedor B4 - Botão de Ativação do Processo B5 - Botão de Parada Obs. : Haverá um Botão para acionar e um Botão para interromper o processo.
79
Utilizaremos os endereços absolutos como a seguir :
B1 - Botão para Pães
I 124.1
B2 - Botão para Biscoitos
B3 - Botão para Sequilhos
I 124.2 I 124.3
B4 - Botão para Ativação do Processo B5 - Botão de Parada
I 124.4
I 124.5
V1 - Válvula de Farinha Q 124.0 V2 - Válvula de leite Q 124.1 M1 - Motor do Batedor
Q 124.2
Criação da Função FC No administrador Simatic, navegue até a pasta de blocos e abra. Click com a tecla direita do mouse na metade direita da janela. Insira uma Função ( FC ) com a ajuda do menu contextual. No quadro de diálogo propriedades selecione o nome e a linguagem desejada. Em seguida OK. A função FC1 estará criada na pasta de blocos. Note que no programa os ingredientes para fabricação dos produtos são sempre os mesmos, o que altera são os “tempos” de despejo dos ingredientes e o “tempo” do batedor. Como o que muda são os tempos, ou sejam eles variam, criaremos variáveis para estes tempos. Chamaremos esta função de RECEITA. Abra FC1 . Criaremos a seguir variáveis de tempos.
Na tabela de declarações de variáveis na parte superior da janela do editor ( figura acima ), na primeira linha , declaração IN, no campo NAME, insira o nome “Farinha” em seguida click enter. No próximo campo TYPE definiremos o tipo de variável, neste caso variável de tempo, digitaremos S5TIME. Click enter mais duas vezes e será criada uma nova linha de declaração
IN. Novamente no campo NAME digite o nome “Leite” em seguida click enter. No próximo campo Type digite novamente S5TIME. . Click enter mais duas vezes e será criada uma nova
80
linha outra vez. Na nova linha criada no campo NAME digite agora “Motor” em seguida enter e no campo Type digite S5TIME e enter mais duas vezes. Note que no campo ADDRESS na primeira linha aparece “0.0” e na segunda linha “2.0” e na terceira linha “4.0”. Estes valores definem os endereços de memória iniciais onde são armazenados as variáveis de tempo. Note também que entre 0.0 e 2.0 e entre 2.0 e 4.0 temos exatamente 16 bits ou seja de 0.0 a 0.7 - 1.0 a 1.7 e de 2.0 a 2.1 - 3.1 a 3.7. Lembre-se que as variáveis de tempo necessitam de uma palavra ( 16 bits ) para armazenamento de valores de tempo.
Pronto, está criado as variáveis da nossa função. Agora criaremos os temporizadores que utilizarão estas variáveis. No Network 1, selecione a linha e insira um contato aberto e nele atribua o endereço do botão de acionamento B4 ( I 124.4 ). A seguir insira um bloco temporizador S_PEXT que chamaremos de T1. Na saída do temporizador insira uma bobina e atribua o endereço da válvula da Farinha
V1 ( Q 124.0 ). Na entrada R do temporizador insira um contato aberto e atribua o endereço do botão de parada B5 ( I 124.5 ). Finalmente, na entrada TV ( Time Variable ) do temporizador insira o nome da variável Farinha exatamente como você declarou na tabela de variáveis. Note que após inserir e teclar enter, a variável apareceu com o símbolo
# antes da palavra Farinha.
Este símbolo determina que é uma variável local e que está declarada na tabela. Caso você digite diferente da tabela, além de não aparecer com o símbolo, aparecerá uma mensagem alertando sobre o erro e após enter o nome digitado estará em vermelho. Insira agora um novo Network ( 2 ) e faça o mesmo para as outras variáveis não se esquecendo que o botão acionador e o botão de parada é o mesmo para os três temporizadores. O que muda são as variáveis de tempo ( TV ) e as saídas. Terminado, salve o bloco e feche-o. Abra agora o bloco OB1. Selecione a linha do primeiro Network e insira um contato aberto. Nele atribua o endereço do botão B1 ( I 124.1 ) ou seja, o botão que seleciona a receita para a fabricação de pães.
81
Em seguida, na janela Program elements, mova a barra de rolagem até chegar em FC blocks, abra-o e selecione FC1 Receitas arrastando-o até a linha onde desejamos inseri-lo. Solte o mouse e estará inserido no Network 1.
Click e Arraste
A linha ficará como mostrado na figura abaixo.
Onde aparece os pontos de interrogação, insira os tempos no formato S5T# de acordo com a tabela de receita mostrada no exercício para a fabricação de Pães.
Farinha
S5T#2S
Leite S5T#5S Motor S5T#4S
Faça o mesmo com as receitas para Biscoitos e Sequilhos. Carregue e simule o programa parametrizado.
82
Exercícios EXERCÍCIO 01
Contro le de Ní vel
VÁLVULA DE ENTRADA SENSOR DE NÍVEL MÁXIMO PAINEL SENSOR DE NÍVEL MÍNIMO
LIGA DESL.
Entradas : Botoeira Liga Botoeira Desliga Sensor de Nível Máximo Sensor de Nível Mínimo Saídas : Válvula de Entrada Funcioname nto : 1 - A Botoeira Liga inicia o processo e a Desliga encerra ; 2 - Quando o Nível de liquido cair abaixo do Mínimo a Válvula se abre; 3 - Quando o Nível de liquido passar do Nível Máximo a Válvula se fecha.
83
EXERCÍCIO 02
FURADEIRA No estado de repouso, a furadeira estará acima, acionando o final de curso S 1. Se acionarmos o botão B 1 a furadeira abaixará acionado pelo motor de abaixar M 2. Quando ativa-se o final de curso de abaixado S 2, a furadeira subirá de novo. Se em algum momento, aciona-se o botão de parada B 2, a furadeira deverá subir. Entradas : S1 - Sensor Acima S2 - Sensor Abaixo B1 - Desce Furadeira B2 - Parada Saídas : M1 - Motor para Cima M2 - Motor para Baixo
84
EXERCÍCIO 03
REVERSÃO DE SENTIDO DE ROTAÇÃO DE MOTOR Desenvolver um programa com as seguintes características : Através botões 1 e 2 deveremos selecionar o sentido de giro do motor sem este estar emdos movimento. Depois de selecionado o sentido, através do botão 3 acionaremos o motor. O mesmo não será acionado sem antes termos selecionado o sentido do giro. Não poderemos inverter o sentido dos motores sem antes acionarmos o botão 4 de parada de motor. O circuito deverá possuir um relé térmico. Entradas : Botão 1 - Sentido Normal Botão 2 - Sentido Reverso Botão 3 - Acionamento Botão 4 - Parada Relé Térmico
FUSÍVEL
Saídas :
Contator Contator K1 K2 -- Sentido Sentido Normal Reverso K1
K2
TÉRMICO
MOTOR
85
EXERCÍCIO 04
TANQUE DE A GITAÇÃO DE PRODUTOS
MOTOR DO AGITADOR VÁLVULA DE ENTRADA SENSOR DE NÍVEL MÁXIMO SENSOR DE NÍVEL MÍNIMO
PAINEL
SENSOR DE TANQUE VAZIO
LIGA
VÁLVULA DE SAÍDA
DESL.
Entrada s : Botoeira Liga Botoeira Desliga Sensor de Nível Máximo Sensor de Nível Mínimo Sensor de Tanque Vazio Saídas : Motor do Agitador Válvula de Entrada Válvula de Saída Funcionamento : 1- Inicialmente a Válvula de Saída está Fechada 2- A botoeira liga inicia o processo e a Desliga interrompe o processo. 3- A Válvula de entrada é aberta até o Nível Máximo ser atingido fechando em seguida. 4 - O Motor do Agitador é ligado. 5 - Após 20 segundos, a válvula de Saída é aberta. 6 - Quando o nível Mínimo é atingido, o Motor do Agitador é desligado. 7 - Ao ser detectado que o Tanque está vazio, a Válvula de Saída é fechada. 8 - Termina o ciclo.
86
EXERCÍCIO 05
SISTEMA ESTRELA / TRIÂNGULO PARTIDA DE MOTORES Desenvolver um programa com as seguintes características : Através do Botão 1 acionaremos o motor no sistema estrela e após 5 segundos ele deverá passar para o sistema triângulo automaticamente. Com o Botão 2, desligaremos o motor. O circuito deverá possuir um relé térmico. Entradas : Botão 1 - Liga Botão 2 - Desliga Relé Térmico Saídas : Contatora 1 - K1 Contatora 2 - K2 Contatora 3 - K3
Fusível
K1
K2
Térmico
Motor
87
K3
EXERCÍCIO 06
SELEÇÃO DE GARRAFAS PA RA ENVAZAMENTO Uma esteira acionada por um motor, transporta garrafas de três tamanhos ( pequenas, médias e grandes ) que sensibilizam três sensores fotoelétricos A, B e C, conforme mostrado na figura.
O processo tem início pressionando-se o botão ligar, e pode ser interrompido pressionando-seindependentes o botão desligar. A seleção garrafa é um feitatipo a partir de 3 botões pulsadores para ( P, M edo G tipo ). Aodeselecionar de garrafa, a esteira deve parar quando forem detectadas garrafas dos tipos não desejados, soando um alarme. Após a retirada manual da garrafa indesejada, o sistema deve ser reativado. O circuito deverá ser protegido com relé térmico. Obs.: Quando qualquer botão é pressionado ou qualquer sensor é ativado, o CLP recebe nível lógico “1”. Entradas : Botão Liga Botão Desliga Botão de Seleção P Botão de Seleção M Botão de Seleção G Sensor A Sensor B
Sensor C Relé Térmico Saída : Motor SENSORES
G
G
M
G
P
MOTOR
88
C B A
M
EXERCÍCIO 07
CONTROLE DE MISTURA LEITE
V1
GLUCOSE
ESSÊNCIA
GORDURA
V2
V3
V4 MOTOR DO AGITADOR VÁLVULA DE SAÍDA
LIGA DESL.
Entrada s : Botoeira Liga Botoeira Desliga Saídas: Válvula de Saída do Tanque Motor do Agitador V1 - Válvula de Entrada de Leite V2 - Válvula de Entrada de Glucose V3 - Válvula de Entrada de Essência V4 - Válvula de Entrada de Gordura Funcionamento : 1- A Botoeira liga inicia o processo e a Desliga encerra; 2 - A Válvula do Tanque de Leite é acionada por 10 segundos, fechando - se em seguida; 34 -- A Tanqueédeligado; Glucose é acionada por 15 segundos, fechando - se em seguida; O Válvula Motor dodoAgitador 5 - A Válvula do Tanque de Essência é acionada por 5 segundos, fechando - se em seguida; 6 - A Válvula do Tanque de Gordura é acionada por 10 segundos, fechando - se em seguida; 7 - O Motor do Agitador é desligado depois de 15segundos da entrada de todos os ingredientes. 8 - Após o Motor do Agitador ser desligado, a Válvula de Saída do Tanque de Mistura é acionada. 9 - O ciclo termina.
89
EXERCÍCIO 08
SINALEIRA DE FORMULA 1 Ativando-se o Botão Pulsador B1, as cinco lâmpadas de uma sinaleira devem acenderse uma atrás da outra, uma a cada segundo. Após um segundo da última lâmpada acesa, todas deverão apagar-se. O diagrama de tempo abaixo, mostra, nas linhas intermediárias, o desenvolvimento das saídas do PLC que controlam as lâmpadas da sinaleira, em função da entrada START indicada na primeira linha. Entradas : B1 - Botão de Start Saídas : L1 - Lâmpada 1 L2 - Lâmpada 2 L3 - Lâmpada 3 L4 - Lâmpada 4 L5 - Lâmpada 5
90
EXERCÍCIO 09
SEQUENCIAL Construir um sequenciador de 4 canais que mostre o seguinte esquema de acendimento :
PASSO
CANAL
O esquema estabelece a seqüência de acendimento das luzes conectadas a quatro canais. Os círculos em preto indicam a ativação do canal durante seu passo específico. Assim, durante o passo 0 estará ativo o canal 0, durante o passo 1 o canal 1, e assim sucessivamente. Se as luzes dispõem-se em linha, o efeito será o de um deslocamento de fonte luminosa, desde a primeira até a última posição e logo ao contrario. Após o passo 5, acontece no passo 6, idêntico ao 0 e logo outro idêntico ao passo 1, ou seja, o diagrama acontece ciclicamente. Deverá haver um intervalo entre o acendimento de uma lâmpada e outra de 500 milisegundos.
91
EXERCÍCIO 10
CONTROLE DE GA RAGEM Automatizar uma garagem de quatro vagas de tal forma que se esta encontrar-se cheia, acenda uma luz indicando e que não suba a cancela. Caso contrário deverá estar acesa outra luz indicando “LIVRE”. Entradas : S1 - Sensor de Saída ( Conta os Carros que Saem ) S2 - Sensor de Entrada ( Contam os Carros que Entram ) B1 - Botão Abre Cancela Entrada ( Acionado por Fora ) B2 - Botão Abre Cancela Saída ( Acionado por Dentro ) Saídas : M1 - Motor Cancela de Saída M2 - Motor Cancela de Entrada L1 - Lâmpada de Estacionamento Cheio L2 - Lâmpada de Estacionamento Livre
S1 M1
S2
Saída
M2
92
L1 L2
Projeto Área de ar mazenamento com Contador, Comparador e Temporizador A figura mostra um sistema com duas esteiras transportadoras e uma área de armazenamento temporário colocada entre ambas. A esteira transportadora 1 transporta peças para área de armazenamento. Uma barreira óptica situada no final da esteira 1 junto da área de armazenamento determina quantas peças transportam-se para esta área. A esteira transportadora 2 transporta peças da área de armazenamento até uma plataforma de carga onde chegam caminhões e os recolhem para entrega-los aos clientes. Uma barreira óptica situada no final da esteira transportadora 2 junto a área de armazenamento determina quantas peças abandonam a área de armazenamento para ser transportados a plataforma de carga. Um painel indicador com três lâmpadas assinalam o nível da área de armazenamento temporário. Um sinalizador sonoro deverá soar por 2 segundos quando a área de armazenamento encher com 20 peças. Enquanto a área de armazenamento estiver cheia , ou seja 20 peças , o motor E1 da esteira 1 não poderá ser acionado. Deverá haver um botão para ligar o sistema e um para desligar o sistema. Deverá contar também com um botão de emergência.
93
Anexos Tipos de dados simples Cada tipo de dado simples tem um tamanho definido. A tabela seguinte mostra os tipos de dados simples.
94
Referências Bi bli ogr áfic as Elaboração
Luiz Henrique Casagrande Pindamonhangaba - SP, 2004
STEP 7 - SIMATIC SIEMENS Programar com STEP 7 Lite - SIMATIC - Siemens - Edição 03/2002 Esquema de contatos LAD para S7 300 e 400 - Manual de Referência Edição 08/2000 Introdução a STEP 7 Lite V 2.0 - Getting Started Edição 03/2002 – Siemens Diagramação
Hélio J.G.A. Hernandes
95