Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila CLP Step7 PDF
Apostila CLP Step7 PDF
Pindamonhangaba
Controlador
Lógico
Programável
CLP – Step 7
1
Sumário
1. Introdução ----------------------------------------------------------------------- 03
2. Funcionamento Básico -------------------------------------------------------- 06
3. Vantagens ----------------------------------------------------------------------- 09
4. Controladores Siemens ------------------------------------------------------- 10
5. Simatic S7 300 Siemens ------------------------------------------------------ 11
6. Elementos da CPU ------------------------------------------------------------ 12
7. S7 300 - Espectro do Módulo ----------------------------------------------- 13
8. Sistemas de Numeração ------------------------------------------------------ 14
9. Operações Aritméticas no Sistema Binário -------------------------------- 22
10. Bits, Bytes e Palavras -------------------------------------------------------- 24
11. Formato e Representação dos Números ----------------------------------- 24
12. Operações Lógicas ------------------------------------------------------------ 27
13. Estrutura de Programação ---------------------------------------------------- 30
14. Princípio de Funcionamento ------------------------------------------------- 31
15. Tipos de Estruturas ------------------------------------------------------------ 33
16. Blocos de Programa ----------------------------------------------------------- 34
17. Chamada de Blocos ------------------------------------------------------------ 37
18. Tipos de Dados ----------------------------------------------------------------- 38
19. Endereçamento Absoluto e Simbólico -------------------------------------- 41
20. Linguagem de Programação -------------------------------------------------- 43
21. Operações com bits ------------------------------------------------------------ 43
22. Contatos Abertos, Fechados e Bobinas ------------------------------------- 44
23. Operações Lógicas ------------------------------------------------------------ 45
24. Set e Reset --------------------------------------------------------------------- 47
25. Flancos Positivos e Negativos ----------------------------------------------- 48
26. Temporizadores ---------------------------------------------------------------- 50
27. Ativar Temporizadores ------------------------------------------------------- 51
28. Ativar e Parametrizar Temporizadores ------------------------------------- 56
2
29. Contadores --------------------------------------------------------------------- 61
30. Setar e Iniciar Contadores ---------------------------------------------------- 62
31. Parametrizar e Iniciar Contadores ------------------------------------------- 65
32. Comparadores ------------------------------------------------------------------ 68
33. Saltos e Chamadas de Blocos ------------------------------------------------ 69
34. Operações Lógicas Digitais -------------------------------------------------- 72
35. Operações Aritméticas Básicas ---------------------------------------------- 74
36. Manipulação de Blocos Parametrizáveis ----------------------------------- 75
37. Exercícios ----------------------------------------------------------------------- 79
38. Projeto --------------------------------------------------------------------------- 89
39. Anexos -------------------------------------------------------------------------- 90
40. Referências Bibliográficas --------------------------------------------------- 91
41. Introdução ao Step 7 Lite ---------------------------------------------------- 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 chama-
dos 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 passa-
ram ter uma grande capacidade de processamento e alta flexibilidade de programação e expan-
sã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 computado-
res. 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 primor-
dialmente 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 posicio-
namento, 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 uni-
dade central de processamento e perto do equipamento a ser controlado. Ao invés de trazer cen-
tenas de fios para o armário do CP, os sinais dos subsistemas podem ser multiplexados e trans-
mitidos 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 superi-
or. 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
Funcionamento Básico
Unidade de
Saídas
Processo
Central
Programação
7
Os botões (sensores), do exemplo abaixo, conectados as entradas do controlador, podem ser u-
sados para acionar e parar um motor conectado a um controlador através de uma contatora.
ATUADORES
MOTOR
SAÍDAS
CONTROLADOR BOTÕES
ENTRADA
Controle
8
Controlador
Mesmo as tarefas mais complexas, pode-se fazer com um controlador. O cabeamento entre dis-
positivos e os contatos entre relés fazem-se no programa do controlador. Entretanto há a neces-
sidade de cabeamento para conectar os dispositivos de campo, este é menos intensivo. A modifi-
caçã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
Controladores
Vantagens
Siemens
- 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 ape-
nas 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.
- 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
Funcionamento Básico
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úme-
ro de Entradas/Saídas. Ambos são modulares e ampliáveis. A fonte de alimentação e as Entra-
das/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
Simatic S7 300 Siemens
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 :
Diferenças nas quantidades de números de blocos ( FB, FC, DB ).
CPU 312 CPU 313 / 314 / 315
32 FB 128 FB FB Blocos de Funções
32 FC 128 FC FC Funções
63 DB 127 DB DB Blocos de dados
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 Dis-
tribuída )
12
Elementos da CPU
13
S7-300 Espectro do Módulo
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 Decimal
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
16
Converter em 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 deci-
mal 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.
número na
base original
11 2 base desejada
LSB 1 5 2
1 2 2
0 1 2
1 0 fim da
conversão
MSB
18
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 hexade-
cimal. 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
428 16 12=C
12 26 10=A
16
10 1 16
1 0 = 1AC16
O decimal 428 dividido por 16 é 26 com um resto de 12. Doze é equivalente a C em hexadeci-
mal. Resta 26 que dividido por 16 é 1 com um resto de 10 que é equivalente a letra A. O hexa-
decimal 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
Binário Hexadecimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 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.
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 Decimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
Este código é utilizado para facilitar a interpretação por parte do usuário em um sistema compu-
tacional.
Ex.: observe que há diferença em representar um numero em código BCD e em convertê-lo sim-
plesmente para a base 2.
21
Funcionamento 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 Aritméticas no sistema 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.
0 0 1 1
+0 +1 +0 +1
0 1 1 10
0 0 1 1
-0 - 1 -0 -1
0 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.
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 proces-
sam operações aritméticas, microprocessadores por exemplo, estes sinais não podem ser utiliza-
dos, 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, con-
forme 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 comple-
mento 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 inici-
al. Para exemplificar, vamos representar o número 11001101 na notação do complemento de 2:
Número binário Î 1 1 0 0 1 1 0 1
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 Palavras ( Words )
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 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 1
Word ( Palavra )
25
Formatos de representação dos números
Binário
Limite : 32 bits
Representação : 2#
Faixa :
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#
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
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
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
28
Operações Lógicas
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ímbo-
los “ 0 “ e “1 “.
Podemos ter uma variável Booleana dependente de uma ou mais variáveis Booleanas. Por e-
xemplo 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 acor-
do com uma determinada convenção , como na figura abaixo se convencionamos que chave a-
berta 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 A L
Aberta ( 0 ) Apagada ( 0 ) 0 0
Fechada ( 1 ) Acesa ( 1 ) 1 1
29
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 B L A B L
0 (aberta) 0 (aberta) 0 (apagada ) 0 0 0
0 ( aberta ) 1 ( fechada ) 0 ( apagada ) 0 1 0
1( fechada ) 0 ( aberta ) 0 ( apagada ) 1 0 0
1( fechada ) 1 ( fechada ) 1 ( acessa ) 1 1 1
Lógica OU ( OR )
A B L A B L
0 (aberta) 0 (aberta) 0 ( apagada ) 0 0 0
0 ( aberta ) 1 ( fechada ) 1 ( acesa ) 0 1 1
1( fechada ) 0 ( aberta ) 1 ( acesa ) 1 0 1
1( fechada ) 1 ( fechada ) 1 ( acesa )
1 1 1
30
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 A L
Aberta ( 0 ) Acesa ( 1 ) 0 1
Fechada ( 1 ) Apagada ( 0 ) 1 0
31
Estrutura
Funcionamento
de programação
Básico
32
Princípo de funcionamento
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, grava-
das 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.
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 - se-
gundos ( 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.
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.
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.
O tempo de Ciclo é o tempo que o sistema operacional necessita para executar o programa cícli-
co, 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
Blocos
Tipos de
deprograma
estrutura
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 se-
quencialmente. Simplifica-se as funções de administração do software considerando que há so-
mente um bloco. Por outro lado, pelas instruções estarem dentro do mesmo bloco elas são exe-
cutadas 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 exe-
cução dos blocos a serem processados. Um programa particionado pode, por exemplo, conter
blocos de instruções com os quais os modos de operações individuais de um processo industrial
são controlados. Neste caso, a vantagem é que os blocos somente são 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
OB 1 FC 15
Motor 2
FC 20
Motor 3
Programa Estruturado
Um Programa estruturado contém blocos de instruções com parâmetros definidos pelo usuário
(blocos parametrizados). Estes blocos são projetados de forma que possam ser usados univer-
salmente ( Genéricos ). Os parâmetros atuais ( os endereços de entradas e saídas ) são especifi-
cados durante a chamada do bloco.
FC 10
Motor 1
OB 1 FC 10
Motor 2
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 de-
pender 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. Exis-
tem 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 pro-
cessando 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
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, diferen-
tes 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 e-
xemplo, funções matemáticas. Executar uma função tecnológica, por exemplo, controle individu-
al 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.
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 de-
vem 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çã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 ).
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 Blocos
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 trata-
mento do bloco chamado, continua-se o processamento do bloco invocante com a operação sub-
sequente a da chamada do bloco.
39
Tipos 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:
• bit
• B: Byte (8 bits).
• W: Word ( Palavra 16 bits).
• D: Double Word ( Palavra Dupla 32 bits).
Marcas de Memória
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:
40
Entradas e saídas
Entrada
Byte
Bit
Saída
Byte
Bit
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:
41
IMAGEM DO PROCESSO DAS SAÍDAS : PIQ
• E/S digitais:
são as e/s mais freqüentes e que em maior quantidade vamos ter.
• 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 :
231 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 20
ID n Æ Palavra Dupla de Entrada n ( Input Double Word n ) =
IB n Æ Byte de Entrada n + IB n+1 Æ Byte de Entrada n+1 +
43
Endereçamento absoluto e simbólico
Endereços Absolutos :
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, contado-
res, 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
Linguagem de programaçã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 re-
presentar 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 lin-
guagem a um amplo círculo de usuários, na confecção e modificação de programas. Uma biblio-
teca 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.
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 Boolea-
na. O resultado destas combinações é 0 ou 1, denominado como “Resultado Lógico da Opera-
ção” ( R L O ).
O Contato Normalmente Aberto fecha-se se o valor do bit consultado, que armazena-se no <O-
perando> 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 <Operando> 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”.
O Contato Normalmente Fechado abre-se se o valor do bit consultado, que armazena-se no <O-
perando> 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 <Operando> 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 <Operando> torna-se “1”. Se não flui corrente até a bobina (RLO = 0), o bit no
<Operando> 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ógicas
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 é li-
gada, 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)
Conector
Conector é um elemento intercalado que cumpre uma função de armazenar; o conector armaze-
na 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 :
49
SET e RESET
Ativar Saída
Ativar Saída ( Setar ) só é executado se o RLO das operações anteriores for “1” ( fluxo de cor-
rente na bobina ). Se o RLO for “1” o <Operando> indicado do elemento se torna “1” e mesmo
que logo em seguida o RLO tornar-se “0”, o <Operando> 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 <Operando> 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 <Operando> 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”, inde-
pendente do estado da entrada S ( Reset Dominante )
50
Bloco Reset/Set - Set Dominante
51
Flanco de impulso
RLO
1
Detecta uma mudança de estado de sinal do <Operando> de “1” para “0” e indica esta mudança
com RLO = 1 com um pulso de um ciclo ( scan ).
Exemplo :
52
Detectar Flanco Crescente 0 -> 1
Detecta uma mudança de estado de sinal do <Operando> de “0” para “1” e indica esta mudança
com RLO = 1 por um ciclo ( Scan ).
53
AtivarTemporizadores
temporizadores
A CPU reserva uma área de memória para os temporizadores. Nesta área de memória, uma pa-
lavra 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 incre-
mentos 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
S5T#aH_bM_cS_dMS
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
<Nº do T>
---( SP )
<Valor de temporização>
Descrição da operação
---( SP ) (Inicia o temporizador com pulso) Inicia o temporizador indicado com o <valor de
temporização> se no RLO se produz um flanco crescente. O temporizador continua funcionan-
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 temporiza-
dor 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 trans-
correr o tempo, o temporizador para. A saída Q 4.0 é "1" enquanto o temporizador está funcio-
nando. 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 pro-
gramado. O sinal de saída permanece em “1” por um período menor se o sinal de entrada muda
para “0”.
<Nº de T>
---( SE )
<Valor de temporização>
55
Descrição da operação
---( SE ) (Inicia o temporizador com pulso prolongado ) Inicia o temporizador indicado com o
<valor de temporização> se o RLO produz um flanco crescente. O temporizador continua fun-
cionando 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 vol-
ta a habilitar-se com o valor de temporização indicado se o RLO muda de "0" para "1" enquanto
o temporizador está em funcionamento.
Se o estado do sinal na entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO),o tempori-
zador T5 inicia. O temporizador continua em funcionamento com o valor de temporização indi-
cado, 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".
56
<Nº de T>
---( SD )
<Valor de temporização>
Descrição da operação
---( SD ) (Inicia o temporizador com retardo na conexão) Inicia o temporizador indicado com o
<valor de temporização> se no RLO se produz um flanco crescente. O estado do sinal do tem-
porizador será "1" se o <valor de temporização> transcorreu sem erros e o RLO continua sen-
do "1". Se o RLO muda de "1" para "0" enquanto o temporizador está em funcionamento, este é
resetado. Neste caso, uma consulta de "1", da como resultado o valor "0".
Se o estado do sinal na entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), o tempo-
rizador 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 é reseta-
do 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
<Nº de T>
---( SS )
<Valor de temporização>
Descrição da operação
---( SS ) (Inicia o temporizador com retardo na conexão com memória) Inicia o temporizador
indicado se no RLO se produz um flanco crescente. O estado do sinal do temporizador é "1" se o
tempo foi transcorrido. Um reinício do temporizador só é possível se este foi colocado expres-
samente em 0. O estado do temporizador só pode ser resetado se for colocado em zero. O tem-
porizador 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 tempo-
rizador 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, independen-
temente do tempo em que o sinal de entrada esteja em “1”.
58
<Nº de T>
---( SF )
<Valor de temporização>
Descrição da operaçã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
Nº do 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
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 tem-
porizador foi posto em “0”.
60
S-PEXT
Nº do Temporizador 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
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 reinici-
a. 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 funcionan-
do.
61
S_ODT
Nº do Temporizador
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 fun-
cionamento 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 tam-
bé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 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üi-
vale 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. Se transcorre o tempo de 2 segundos e o estado do sinal na entrada I 0.0 conti-
nua sendo "1", a saída Q 4.0 será "1". Se o estado do sinal da entrada I0.0 muda de "1" para "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
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 con-
tinua 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 deposita-
do 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üi-
vale 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 o tempo (se o estado do sinal da entrada I 0.1 muda de "0" para "1", o
temporizador vai a "0", independentemente de qual seja o RLO em S).
63
S_OFFDT
Descrição da operação
S_OFFDT (Parametrizar e iniciar o temporizador com retardo na desconexão) inicia o tempori-
zador indicado quando há um flanco decrescente na entrada de ativação S. Para iniciar um tem-
porizador, 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 desati-
vaçã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 trans-
corrido 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
Contador Crescente
Contador Decrescente
Contador Crescente / Decrescente
65
Setar e inciar contadores
Descrição da Operação
Exemplo :
O valor “100” ficará pre-selecionado para o contador C5 se na entrada I 0.0 produz-se um flan-
co 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 ascen-
dente 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 ).
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
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 é arma-
zenado o valor de contagem atual em BCD.
69
Parametrizar e Decrementar Bloco Contador - Counter Down
S_CD
CD
Exemplo :
S_CD
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
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 :
A saída Q 4.0 será ativada se I 0.0 “e” I 0.1 forem “1” e se MW0 for >= MW2.
72
Saltos – 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 execu-
tarã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 en-
contram-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 Blocos
CALL - Chamar uma Função especificada em < Bloco >. Executa se o RLO = “1”.
75
Operações Lógicas Digitais
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.
Exemplo : Fazendo uma máscara de quatro décadas. A lógica será executada se a entrada I 5.0
for “1”.
76
WOR_W
A instrução “Word OR” combina dois valores especificados na entrada IN1 e IN2 bit a bit, ba-
seado na tabela verdade OR. O resultado da operação é salvo ( armazenado ) no endereço espe-
cificado 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”.
77
Operações matemáticas básicas
Operações Matemáticas :
Adição :
ADD_I Æ Soma Inteiros
ADD_DI Æ Soma Inteiros Duplos
ADD_R Æ Soma Números Reais
Subtração :
SUB_I Æ Subtrai Inteiros
SUB_DI Æ Subtrai Inteiros Duplos
SUB_R Æ Subtrai Números Reais
Multiplicação :
MUL_I Æ Multiplica Inteiros
MUL_DI Æ Multiplica Inteiros Duplos
MUL_R Æ Multiplica Números Reais
Divisão :
DIV_I Æ Divide Inteiros
DIV_DI Æ Divide Inteiros Duplos
DIV_R Æ Divide Números Reais
78
Manipulação de blocos parametrizá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
79
Utilizaremos os endereços absolutos como a seguir :
B1 - Botão para Pães Æ I 124.1
B2 - Botão para Biscoitos Æ I 124.2
B3 - Botão para Sequilhos Æ I 124.3
B4 - Botão para Ativação do Processo Æ I 124.4
B5 - Botão de Parada Æ 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.
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 armaze-
nados as variáveis de tempo. Note também que entre 0.0 e 2.0 e entre 2.0 e 4.0 temos exatamen-
te 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.
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 mou-
se e estará inserido no Network 1.
Click e Arraste
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
82
Exercícios
EXERCÍCIO 01
Controle 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
Funcionamento :
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
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
Através dos botões 1 e 2 deveremos selecionar o sentido de giro do motor sem este
estar em 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 FUSÍVEL
Relé Térmico
Saídas :
Contator K1 - Sentido Normal
Contator K2 - Sentido Reverso
K1 K2
TÉRMICO
MOTOR
85
EXERCÍCIO 04
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 DESL.
SAÍDA
Entradas :
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
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 K3
Térmico
Motor
87
EXERCÍCIO 06
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 C
B
A
G G G
M P M
MOTOR
88
EXERCÍCIO 07
CONTROLE DE MISTURA
V1 V2 V3 V4
MOTOR DO
AGITADOR
LIGA VÁLVULA
DE SAÍDA
DESL.
Entradas :
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;
3 - A Válvula do Tanque de Glucose é acionada por 15 segundos, fechando - se em seguida;
4 - O Motor do Agitador é ligado;
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 15 segundos da entrada de todos os ingredien-
tes.
8 - Após o Motor do Agitador ser desligado, a Válvula de Saída do Tanque de Mistura é acio-
nada.
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 acender-
se uma atrás da outra, uma a cada segundo. Após um segundo da última lâmpada a-
cesa, todas deverão apagar-se.
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
PASSO
CANAL
91
EXERCÍCIO 10
CONTROLE DE GARAGEM
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á es-
tar 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 L1
S2
L2
M1 Saída M2
92
Projeto
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 Bibliográficas
95