Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pindamonhangaba
Controlador
Lgico
Programvel
CLP Step 7
1
Sumrio
1. Introduo ----------------------------------------------------------------------- 03
2. Funcionamento Bsico -------------------------------------------------------- 06
3. Vantagens ----------------------------------------------------------------------- 09
4. Controladores Siemens ------------------------------------------------------- 10
5. Simatic S7 300 Siemens ------------------------------------------------------ 11
6. Elementos da CPU ------------------------------------------------------------ 12
7. S7 300 - Espectro do Mdulo ----------------------------------------------- 13
8. Sistemas de Numerao ------------------------------------------------------ 14
9. Operaes Aritmticas no Sistema Binrio -------------------------------- 22
10. Bits, Bytes e Palavras -------------------------------------------------------- 24
11. Formato e Representao dos Nmeros ----------------------------------- 24
12. Operaes Lgicas ------------------------------------------------------------ 27
13. Estrutura de Programao ---------------------------------------------------- 30
14. Princpio de Funcionamento ------------------------------------------------- 31
15. Tipos de Estruturas ------------------------------------------------------------ 33
16. Blocos de Programa ----------------------------------------------------------- 34
17. Chamada de Blocos ------------------------------------------------------------ 37
18. Tipos de Dados ----------------------------------------------------------------- 38
19. Endereamento Absoluto e Simblico -------------------------------------- 41
20. Linguagem de Programao -------------------------------------------------- 43
21. Operaes com bits ------------------------------------------------------------ 43
22. Contatos Abertos, Fechados e Bobinas ------------------------------------- 44
23. Operaes Lgicas ------------------------------------------------------------ 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. Operaes Lgicas Digitais -------------------------------------------------- 72
35. Operaes Aritmticas Bsicas ---------------------------------------------- 74
36. Manipulao de Blocos Parametrizveis ----------------------------------- 75
37. Exerccios ----------------------------------------------------------------------- 79
38. Projeto --------------------------------------------------------------------------- 89
39. Anexos -------------------------------------------------------------------------- 90
40. Referncias Bibliogrficas --------------------------------------------------- 91
41. Introduo ao Step 7 Lite ---------------------------------------------------- 92
3
Introduo
O CLP
O critrio de projeto para o primeiro controlador programvel foi especificado em 1968 por uma
diviso da GENERAL MOTORS CORPORATION. O objetivo inicial era eliminar o alto custo
associado com os sistemas controlados a rels. As especificaes iniciais requeriam um sistema
de estado slido com a flexibilidade do computador, capaz de suportar o ambiente industrial, ser
facilmente programado e reprogramado, manuteno fcil e por ltimo facilmente expansvel e
utilizvel.
Devido ao intuito inicial de substiturem os painis de rels no controle discreto, foram chama-
dos de Controladores Lgicos Programveis - CLP (Programmable Logic Controllers - PLC).
Porm, atualmente, os controladores so bem mais complexos e no executam somente lgica
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 mquinas e pequenos processos que necessitavam de operaes 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 programao e expan-
so. Entre outras caractersticas citamos: a capacidade de operar com nmeros, realizar opera-
es aritmticas com ponto decimal flutuante, manusear dados e se comunicar com computado-
res. Desta forma, os CPs atuais podem atuar tanto em controle discreto, tais como, automao
da manufatura, onde as mquinas apresentam aes automticas e discretizada no tempo, como
em controle contnuo, tais como, processos qumicos e siderrgicos, com caractersticas primor-
dialmente analgicas.
O sistema utilizado para programar o controlador era um dispositivo dedicado e acondicionado
em um maleta porttil, chamada de maleta de programao, de forma que podia ser levada para
"campo" afim de alterar dados e realizar pequenas modificaes no programa. O sistema de
memria do controlador no permitia facilidades de programao por utilizar memrias do tipo
EPROM.
Inovaes no hardware e software entre 1975 e 1979 proporcionaram ao controlador maior
4
flexibilidade e capacidade de processamento, isto significou aumento na capacidade de memria
e de entradas/sadas, permitiu entradas/sadas remotas, controle analgico, controle de posicio-
namento, comunicaes, etc. A expanso de memria permitiu um programa de aplicao maior
e uma maior quantidade de dados de forma que os programas de controle no ficassem restritos
lgica e seqenciamento, mas tambm realizassem aquisio e manipulao de dados. Com o
desenvolvimento do controle analgico, o controlador programvel preencheu o "gap" entre
controle discreto e controle contnuo.
Os custos com fiao foram reduzidos significativamente com a capacidade do controlador de
comunicar-se com subsistemas de entrada/sada localizados em pontos remotos, distante da uni-
dade central de processamento e perto do equipamento a ser controlado. Ao invs de trazer cen-
tenas de fios para o armrio do CP, os sinais dos subsistemas podem ser multiplexados e trans-
mitidos por um nico par de fios tranados. Esta tcnica permitiu a decomposio de grandes
sistemas em pequenos subsistemas melhorando a confiabilidade, manuteno e partida gradual
dos subsistemas principais.
Em 1979 foi desenvolvida a rede de comunicao de alta velocidade (Data Highways - no jargo
dos fabricantes da poca) permitindo um controle sincronizado entre vrios controladores,
comunicao com microcomputadores e outros sistemas situados em um nvel funcional superi-
or. Com isto foi possvel combinar o desempenho do controlador programvel com a capacidade
de controle distribudo de alta velocidade e interface com computadores resultando em uma
grande potencialidade de controle e superviso.
Atualmente, existem vrios tipos de controladores, desde pequena capacidade at os mais
sofisticados realizando operaes que antes eram consideradas especficas para computadores. A
evoluo do hardware, conduziu a melhoras significativas nas caractersticas do controlador,
entre outras citamos:
Reduo no tempo de varredura;
Interfaces de E/S microprocessadas. Ex.: mdulo PID, mdulo ASCII, mdulo de posiciona-
mento;
Uma Interface Homem Mquina (IHM) mais poderosa e amigvel.
No software tambm surgiram novas caractersticas, tais como:
Linguagem em blocos funcionais e estruturao de programa;
Linguagens de programao de alto nvel, baseadas em BASIC;
Diagnsticos e deteco de falhas;
Operaes matemticas em ponto flutuante atravs de coprocessadores matemticos, etc.
5
Os Controladores Lgicos Programveis (CLPs), tambm chamado de controladores program-
veis, fazem parte da famlia dos computadores. Usam-se em aplicaes comerciais e industriais.
Um controlador, monitora as entradas, toma decises baseadas em seu programa, e controla as
sadas para automatizar um processo ou mquina. Este curso trata de mostrar informao bsica
sobre as funes e as configuraes dos controladores programveis.
MOTORES
LUZES
BOMBAS
BOTES
SENSORES
6
Funcionamento Bsico
Unidade de
Sadas
Processo
Central
Programao
7
Os botes (sensores), do exemplo abaixo, conectados as entradas do controlador, podem ser u-
sados para acionar e parar um motor conectado a um controlador atravs de uma contatora.
ATUADORES
MOTOR
SADAS
CONTROLADOR BOTES
ENTRADA
Controle
8
Controlador
Mesmo as tarefas mais complexas, pode-se fazer com um controlador. O cabeamento entre dis-
positivos e os contatos entre rels fazem-se no programa do controlador. Entretanto h a neces-
sidade de cabeamento para conectar os dispositivos de campo, este menos intensivo. A modifi-
cao da aplicao e a correo de erros so mais fceis de realizar. mais fcil criar e alterar
um programa em um controlador do que cabear e recabear um circuito.
9
Controladores
Vantagens
Siemens
- Flexibilidade - modificaes de programas podem ser feitos com pouca digitao, pode
se fazer atualizaes do sistema sem a presena de um tcnico do fabricante, bastando ape-
nas enviar um novo programa.
- Funes avanadas - os CLPs podem realizar uma grande variao de tarefas de con-
trole, desde aes simples e repetitivas at aes de manipulao de dados complexos.
- Reduo de custos - com o uso de CLP, a uma reduo significativa em termos de cus-
tos na montagem de mquinas.
10
Funcionamento Bsico
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 alimentao e as Entradas/Sadas so incorporadas.O S7-200
pode ser usado em pequenas aplicaes independentes como elevadores, lavador de veculos,
mquinas misturadoras, entre outros. Tambm pode utilizar-se em aplicaes industriais mais
complexas como mquinas de embutimentos e empacotamentos.
S7-300 e S7-400
Estes controladores usam-se em aplicaes mais complexas, que necessitam de um maior nme-
ro de Entradas/Sadas. Ambos so modulares e ampliveis. A fonte de alimentao e as Entra-
das/Sadas consistem em mdulos independentes conectados a CPU. A escolha entre o S7-300 e
o S7-400 depende da complexidade da tarefa e de uma possvel ampliao futura.
11
Simatic S7 300 Siemens
Dados Tcnicos :
A Famlia S7-300 suporta um set de instrues e endereamento comuns.
A tabela acima mostra as especificaes tcnicas mais importantes para
CPUs 312 a 315.
Numero de Blocos :
Diferenas nas quantidades de nmeros de blocos ( FB, FC, DB ).
CPU 312 CPU 313 / 314 / 315
32 FB 128 FB FB Blocos de Funes
32 FC 128 FC FC Funes
63 DB 127 DB DB Blocos de dados
Trilhos :
Para as CPUs 312 e 313, possvel somente um trilho ( sem expanso ) As
CPUs 314 e 315 suportam at quatro trilhos ( 3 trilhos de expanso ).
Conexo DP :
O S7-315-DP possui uma interface adicional para PROFIBUS DP ( Periferia Dis-
tribuda )
12
Elementos da CPU
13
S7-300 Espectro do Mdulo
14
Sistema de Numerao
0 lgico, 1 lgico
Os controladores programveis s podem entender um sinal que seja On ou Off (presente ou no
presente, ligado ou desligado). O sistema binrio um sistema na qual s h dois nmeros, 1 e
0. O binrio 1 indica que um sinal est presente, ou o interruptor est ligado ( On ). O binrio 0
indica que o sinal no est presente, ou o interruptor est desligado ( Off ).
Sistema Decimal
Nos controladores usam-se vrios sistemas numricos. Todos os sistemas de nmeros, tem as
mesmas caractersticas: dgitos, base, potncia. O sistema decimal, que de utilizao comum
na vida diria, tem as seguintes caractersticas :
Dez dgitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Base 10
Potncias 1, 10, 100, 1000, ...
15
Sistema Binrio
16
Converter em binrio
Os seguintes passos podem ser usados para interpretar um nmero decimal a partir de um valor
binrio:
1. Buscar de direita a esquerda (de menos significativo ao mais significativo) os 1s.
2. Escrever a representao 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 contm 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 nmero binrio 40.
Outro Mtodo :
17
Divide-se o nmero 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 diviso, isto , o digito
mais significativo o ltimo resto e o menos significativo o primeiro resto.
nmero na
base original
11 2 base desejada
LSB 1 5 2
1 2 2
0 1 2
1 0 fim da
converso
MSB
18
Hexadecimal
O hexadecimal outro sistema usado nos controladores programveis. O sistema hexadecimal
tem as seguintes caractersticas :
16 dgitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Base 16
Potncias de base 16 ( 1, 16, 256, 4096 ...)
Utilizam-se os dez dgitos do sistema decimal para os primeiros dez dgitos do sistema hexade-
cimal. Usam-se as primeiras seis letras do alfabeto para os seis dgitos 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 ento 1AC.
19
O valor decimal de um nmero hexadecimal, obtm-se multiplicando individualmente os dgitos
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
Binrio 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 dgito hexadecimal corresponde a um conjunto
de 4 dgitos binrios e vice-versa.
20
Cdigo BCD
BCD Decimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
Este cdigo utilizado para facilitar a interpretao por parte do usurio em um sistema compu-
tacional.
Ex.: observe que h diferena em representar um numero em cdigo BCD e em convert-lo sim-
plesmente para a base 2.
21
Funcionamento Bsico
Converso de Nmeros
A tabela seguinte mostra alguns poucos valores numricos em representao decimal, binrio,
BCD e hexadecimal.
22
Operaes Aritmticas no sistema binrio
Nas reas de eletrnica digital e dos microprocessadores, o estudo das operaes aritmticas no
sistema binrio muito importante pois estas sero utilizadas em circuitos aritmticos.
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, porm haver um transporte para a
coluna seguinte que deve ser acumulado no subtraendo e, obviamente, subtrado do minuendo.
0x0=0
0x1=0
1x0=0
1x1=1
23
Notao dos Nmeros Binrios Positivos e Negativos.
A representao de nmeros binrios positivos e negativos pode ser feita utilizando-se os sinais
" + " ou " - " respectivamente. Na prtica, porm em hardware dos sistemas digitais que proces-
sam operaes aritmticas, microprocessadores por exemplo, estes sinais no podem ser utiliza-
dos, pois tudo deve ser codificador em 0 ou 1. Uma forma para representar0 nmeros binrios
negativos bastante utilizada nos sistemas j citados a notao do complemento de 2, mas para
entend-la, devemos primeiramente converter o nmero na notao do complemento de 1, con-
forme se segue.
Complemento De 1
A obteno do complemento de 1 de um nmero binrio se d pela troca de cada bit do nmero
pelo seu inverso ou complemento. Para demonstrar esse procedimento, vamos obter o comple-
mento de 1 do nmero 10011011. Assim sendo, temos:
Nmero binrio 1 0 0 1 1 0 1 1
Complemento de 1 0 1 1 0 0 1 0 0
Complemento De 2
A notao do complemento de 2, como j dissemos, utilizada para representar nmeros bin-
rios negativos. Sua obteno se d somando-se 1 ao complemento de 1 do nmero binrio inici-
al. Para exemplificar, vamos representar o nmero 11001101 na notao do complemento de 2:
Nmero binrio 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 binria 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 representao dos nmeros
Binrio
Limite : 32 bits
Representao : 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
Representao :
Byte B#16#
BCD
BCD Decimal Codificado em Binrio. Cada 4 bits representa um dgito.
H 2 formatos de BCD, de 3 dgitos e de 7 dgitos.
Palavra ( 16 bits ) : BCD de 3 dgitos com sinal.
Exemplo : +310
26
Dupla Palavra ( 32 bits ) : BCD de 7 dgitos com sinal.
Faixa : -9999999 at 9999999
Formatos de Nmeros
Nmeros Inteiros :
Um nmero Inteiro representado pela letra I. um nmero binrio 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
Nmeros Reais :
Um nmero Real, tambm chamado de nmero de Ponto Flutuante, representado pela letra
R. um nmero binrio de 32 bits que constam de 2 pares :
Expoente : 8 bits
Mantissa : 24 bits
28
Operaes Lgicas
Chamamos de varivel Booleana a uma varivel que pode assumir s duas condies. Um
exemplo de varivel Booleana uma chave (C ) que s pode estar aberta ou fechada, no existe
outra condio. Em eletrnica digital costumamos associar a uma varivel Booleana os smbo-
los 0 e 1 .
Podemos ter uma varivel Booleana dependente de uma ou mais variveis Booleanas. Por e-
xemplo em resposta condio de uma chave (varivel A ) a qual pode estar aberta ou fechada
podemos ter a condio de uma lmpada (varivel L ) acesa ou apagada em resposta. De acor-
do com uma determinada conveno , como na figura abaixo se convencionamos que chave a-
berta A = 0 , a chave fechada A = 1 teremos como resposta a lmpada apagada L = 0 ou acesa
L = 1.
Para caracterizar o comportamento lgico estabelecemos o que chamamos de tabela verdade do
circuito.
Expresso Booleana : L = A
Tabela Verdade
ou
A L A L
Aberta ( 0 ) Apagada ( 0 ) 0 0
Fechada ( 1 ) Acesa ( 1 ) 1 1
29
Lgica E ( And )
Antigamente os circuitos lgicos eram feitos ( implementados ) com rels, hoje usamos
portas lgicas em CI para realizar uma determinada lgica. A seguir mostraremos as principais
portas lgicas e as sua caractersticas .Podemos Ter uma varivel Booleana dependente de mais
de uma varivel Booleana , assim que podemos Ter duas chaves A e B ligadas em srie para
ligar a lmpada L. A lgica existente : a lmpada acender se A e B estiverem fechadas .
Dizemos que esta uma lgica E ( AND em ingls ). A porta lgica correspondente chamada
porta E ( AND ) e cujo smbolo est representado na Figura abaixo. Expresso Booleana: L =
B ( l-se A e B , mas por analogia com a operao multiplicao dizemos tambm 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
Lgica 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
Lgica Inversora
A L A L
Aberta ( 0 ) Acesa ( 1 ) 0 1
Fechada ( 1 ) Apagada ( 0 ) 1 0
31
Estrutura
Funcionamento
de programao
Bsico
32
Princpo de funcionamento
Sistema Operacional
inicia vigilncia do
Tempo de Ciclo.
PIQ
PII PIQ
PII
Inicializao
No momento em que ligado o CLP executa uma srie de operaes pr - programadas, grava-
das em seu Programa Monitor :
Verifica o funcionamento eletrnico da C.P.U. , memrias e circuitos auxiliares;
Verifica a configurao interna e compara com os circuitos instalados;
Verifica o estado das chaves principais ( RUN / STOP , PROG, etc. );
Desativa todas as sadas;
Verifica a existncia de um programa de usurio;
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 Memria - Imagem do Processo PIQ e PII
Aps o Ciclo de Varredura, o CLP armazena os resultados obtidos em uma regio de memria
chamada de Memria Imagem ( Imagem do Processo ) das Entradas e Sadas. Ela recebe este
nome por ser um espelho do estado das entradas e sadas. Esta memria ser consultada pelo
CLP no decorrer do processamento do programa do usurio.
O CLP ao executar o programa do usurio , aps consultar a Memria Imagem das Entradas ,
atualiza o estado da Memria Imagem das Sadas, de acordo com as instrues definidas pelo
usurio em seu programa.
O CLP escreve o valor contido na Memria das Sadas , atualizando as interfaces ou mdulos de
sada. Inicia - se ento, um novo ciclo de varredura.
O tempo de Ciclo o tempo que o sistema operacional necessita para executar o programa ccli-
co, assim como todas as partes do programa que interrompem este ciclo, por exemplo a execu-
o de outros blocos de organizao e as atividades do sistema como a atualizao 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 instruo contnuo ( OB1 ). Esta estrutura
semelhante a um circuito de rels substitudo por um controlador lgico programvel. Como o
nome diz, um programa descreve um grupo de instrues que so repetidamente realizadas se-
quencialmente. Simplifica-se as funes de administrao do software considerando que h so-
mente um bloco. Por outro lado, pelas instrues estarem dentro do mesmo bloco elas so exe-
cutadas a cada ciclo at mesmo as partes que no so usadas pelo programa. Este mtodo no
utiliza a CPU de forma eficiente. Outra dificuldade est na manuteno do software j que ser
necessrio analisar todo o programa para fazer uma pequena alterao.
Programa particionado
O programa dividido em blocos, cada bloco contm uma lgica especfica para dispositivos ou
tarefas. As informaes residentes no bloco de organizao ( OB1) determinam a ordem de exe-
cuo dos blocos a serem processados. Um programa particionado pode, por exemplo, conter
blocos de instrues com os quais os modos de operaes individuais de um processo industrial
so controlados. Neste caso, a vantagem que os blocos somente so chamados durante o ciclo
quando necessrios, otimizando assim a utilizao da CPU. Alm disso, em sua manuteno,
podemos fazer alteraes em seus blocos especficos ( individuais ) no 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 contm blocos de instrues com parmetros definidos pelo usurio
(blocos parametrizados). Estes blocos so projetados de forma que possam ser usados univer-
salmente ( Genricos ). Os parmetros atuais ( os endereos de entradas e sadas ) so 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 dispe de uma srie de blocos que dividem a memria de programa e a de dados em sees,
permitindo uma programao estruturada e um acesso ordenado aos dados. O nmero de blocos vai de-
pender do tipo de CPU empregada, dispondo em geral dos seguintes:
Tipos de Mdulos
Blocos de Organizao (OB)
Constituem a forma de comunicao entre o sistema operacional da CPU e o programa do usurio. Exis-
tem 3 tipos de OB, aos quais esto acessveis segundo o tipo de CPU:
OB 1 (ciclo livre): o mdulo principal. Voc pode salvar o seu programa inteiro no OB1 e deixar pro-
cessando a cada ciclo. Voc pode tambm salvar o seu programa em vrios blocos e usar o OB1 para
chamar estes blocos quando necessrio.
OB de erro e alarme: so os que contm a seqncia de aes a realizar no caso de que se produza um
alarme ou erro programado. Ex. : OB40 - OB80
OB de arranque: neste mdulo podemos introduzir valores para que permitam o arranque definido da
instalao, bem como um arranque inicial caso haja uma falha de alimentao. Ex. : OB100 - OB101
Campo de Aplicao :
Um FB contm um programa que executa-se sempre quando o FB chamado por outro bloco
lgico. Os blocos de funo simplificam a programao de funes complexas de uso frequente.
A cada chamada de um bloco de funes que transfere parmetros est associado um bloco de
dados Instance. Mediante a chamada de vrias instancias de um FB possvel controlar vrios
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 nmero de RPM, rampas, tempos de funcionamento acumulado, etc. )
podem ser memorizados em um dos vrios DBs de instancia.
36
Funes (FC)
A Funo um bloco de operao lgica similar ao bloco de funo para o qual no designado rea de
memria. Um FC no necessita de um Bloco de Dados Instance. As Variveis locais so arquivadas na
pilha local ( L stack ) at que a funo esteja concluda, sendo perdidas quando o FC termina a execuo.
Para fins de memorizao de dados, as funes podem utilizar blocos de dados globais.
Como uma FC no tem associada nenhuma memria, devem-se sempre indicar parmetros atuais.
Campo de Aplicao :
A FC contm um programa que executa-se cada vez que a FC chamada por outro bloco lgico.
As funes podem ser utilizadas para devolver um valor de funo ao bloco invocante, por e-
xemplo, funes matemticas. Executar uma funo tecnolgica, por exemplo, controle individu-
al com combinao binria.
Associao de parmetros atuais e parmetros formais :
O parmetro formal um nome ( apelido ) para o parmetro real, ou seja, o parmetro atual.
Os parmetros atuais substituem os parmetros formais ao efetuar-se a chamada a um FC. A um
parmetro formal de um FC devem sempre associar parmetros atuais, por exemplo, parmetro
formal START um parmetro atual I 3.6. Podem ser utilizados em parmetros de entrada e
sada.
Blocos de dados(DB)
Um bloco de dados uma rea de dados permanente na qual dados ou informaes que outras funes
coletaram so armazenados. Bloco de dados so 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 mdulo do programa.
Blocos de dados de instancia: atribui-se a um determinado bloco de funo e s podem ser manejados a
partir deste bloco. Podem atribuir-se vrios blocos de dados de instancia a um bloco de funo.
37
Um bloco de funo de sistema parte integral da CPU. Voc pode utilizar um SFB em seu programa,
sem carregar como parte de seu programa porque os SFBs so parte do sistema operacional. SFBs 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.
Funo de sistema uma pr programada e testada funo que integrada a CPU. Algumas das tarefas
suportadas por estas funes so setar parmetros para mdulos, comunicao de dados, funes de c-
pia, manipulao do relgio, contador de horas de funcionamento. etc. Uma SFC pode ser chamada pelo
seu programa, porm sem precisar fazer parte dele ( no ocupa memria de trabalho ).
Um bloco de dados de sistema uma rea de memria que a ferramenta STEP 7 gera para arquivar dados
necessrios para o controle de operaes. Informaes, tais como dados de configurao, conexes de
comunicao e parmetros so salvos em SDBs.
OBS. :
Cada CPU possu seus SFBs e SFCs especficos. Para obter maiores detalhes, consulte o manual
Funes Standart e Funes de Sistema das CPUs Step 7-300.
38
Chamada de Blocos
A figura seguinte ilustra a seqncia da chamada de um bloco dentro do programa do usurio. O
programa chama o segundo bloco, cujas operaes executam-se at o final. Finalizado o trata-
mento do bloco chamado, continua-se o processamento do bloco invocante com a operao sub-
sequente a da chamada do bloco.
39
Tipos de dados
Os operandos das instrues compem-se de um dado que pode ser de distintos tipos. Os tipos de dados
possveis so:
bit
B: Byte (8 bits).
W: Word ( Palavra 16 bits).
D: Double Word ( Palavra Dupla 32 bits).
Marcas de Memria
Quando realizamos nosso programa e operamos a nvel de bit em operaes lgicas (and, or, etc.) pode
ser que nos aparea a necessidade de armazenar o resultado lgico que tenhamos em um determinado
momento. Para isso dispomos de 256 marcas de memria de 1 byte, ou seja , um total de 2048 marcas de
1 bit, que podemos enderear como:
40
Entradas e sadas
Entrada
Byte
Bit
Sada
Byte
Bit
Tal como comentamos anteriormente, manejaremos uma imagem das entradas e das sadas.
O nmero de e/s disponveis depender do tipo de CPU que empregarmos, alm dos mdulos
externos que tenhamos conectados. Como mximo o controlador pode manejar at 65536 bytes
para cada tipo de e/s. Em cada caso podemos enderear como:
41
IMAGEM DO PROCESSO DAS SADAS : PIQ
E/S digitais:
so as e/s mais freqentes e que em maior quantidade vamos ter.
E/S analgicas:
estas sim so e/s adicionais, porem tem que ser configuradas tambm no Step7 para especificar a
faixa de endereos que vo ocupar.
42
ENDEREAMENTOS
Os endereamentos so sempre realizados em grupos de 8 bits ou seja em Byte. Quando so
realizados em Palavra ( Word ) devem ser endereados 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
Endereamento absoluto e simblico
Endereos Absolutos :
Endereos Simblicos :
O Endereamento simblico torna possvel trabalhar com smbolos tais como Motor_liga, ao
invs do endereamento absoluto. Os smbolos para entradas, sadas, temporizadores, contado-
res, memory makers e blocos so arquivados na lista de simblicos. Neste caso, os si]mbolos
so tambm chamados de smbolos globais porque o acesso possvel por todos os blocos
A lista de simblicos para os Smbolos Globais criado com a ferramenta Symbol Editor. As
outras ferramentas do STEP 7, tambm tem condio de acessar a lista de simblicos para exibir
os endereos simblicos.
44
Linguagem de programao
Para facilitar a programao dos CLPs , foram sendo desenvolvidas durante o tempo, diversas
Linguagens de Programao. Essas linguagens de programao constituem-se em um conjunto
de smbolos, comandos, blocos , figuras, etc, com regras de sintaxe e semntica.
Essas linguagens se mostram bastante eficientes, principalmente porque permite ao usurio re-
presentar o programa de automao, tanto em Diagrama de Contatos ( LAD ou LADDER ), em
Diagrama Lgico ( CFS ) e como uma Lista de Instrues ( STL ). Isso facilita o manejo da lin-
guagem a um amplo crculo de usurios, na confeco e modificao de programas. Uma biblio-
teca dos denominados Blocos Funcionais Estandarizados , posta disposio dos usurios, um
passo a mais na confeco racional de programas e reduo dos custos de software.
45
Instrues com bits
As instrues de BIT trabalham com dois valores, 1 e 0. Com instruo na forma de um contato
ou de uma sada, 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 Lgica Boolea-
na. O resultado destas combinaes 0 ou 1, denominado como Resultado Lgico 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 atravs do contato e o RLO (
Resultado Lgico ) 1. Do contrrio, se o estado do sinal no <Operando> indicado 0, o
contato est aberto. Se o contato est aberto no h fluxo de corrente e o Resultado Lgico da
Operao ( 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 atravs do contato e o RLO (
Resultado Lgico ) 1. Do contrrio, se o estado do sinal no <Operando> indicado 1, o
contato est aberto. Se o contato est aberto no h fluxo de corrente e o Resultado Lgico da
Operao ( RLO ) 0.
46
22 - Bobina, Sada
Sada 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 no flui corrente at a bobina (RLO = 0), o bit no
<Operando> torna-se 0. Uma bobina de sada s pode colocar-se dentro de um esquema de
contatos no extremo direito de um circuito ( Final da Linha ). Pode haver no mximo 16 sadas
mltiplas.
47
Operaes Lgicas
AND
Representado pela associao srie :
Na situao acima, quando tivermos 1 nas entradas I 32.0 E I 32.1 a sada Q 32.0 ligada,
A sada no continuar ligada se uma das entradas vir a 0. Adiante estudaremos uma situao
onde a sada continuaria ligada mesmo que uma das entradas viesse a 0.
NAND
Representado pela associao srie negada :
Na situao acima, quando no tivermos 1 nas entradas I 32.0 E I 32.1 a sada Q 32.0 li-
gada, e se qualquer das entradas tornar-se 1 a sada Q 32.0 desligada.
OR
Na situao acima, quando tivermos 1 nas entradas I 32.0 OU I 32.1 a sada Q 32.0 ligada.
NOR
48
Na situao acima, enquanto as duas entradas estiverem desligadas ( 0 ), a sada Q 32.0 estar
ligada. Para que a sada Q 32.0 desligue deveremos ter as duas entradas ligadas ( 1 ).
A seguir mais algumas instrues de Bits.
NOT - Inverter Resultado Lgico (RLO)
Conector
Conector um elemento intercalado que cumpre uma funo 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 combinao lgica de bits da ultima linha aberta e
que est antes dele. inserido em srie com outros elementos como um contato. O elemento
conector nunca deve ser conectado a uma barra de alimentao nem deve empregar-se no final
de uma linha. Pode-se criar a negao do elemento conector colocando antes o elemento NOT.
Exemplo :
49
SET e RESET
Ativar Sada
Ativar Sada ( Setar ) s executado se o RLO das operaes 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 no
tem efeito algum, de forma que o estado do sinal atual do operando no se altera.
Desativar Sada
Desativar sada ( Resetar ) s executado se o RLO das operaes anteriores for 1 ( fluxo de
corrente na bobina ). Se o RLO for 1 o <Operando> indicado do elemento se torna 0. Um
RLO = 0 no tem efeito algum, de forma que o estado do sinal atual do operando indicado do
elemento no se altera. O <Operando> tambm pode ser um Temporizador ( N de T ) cujo valor
de temporizao 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 mudana de estado de sinal do <Operando> de 1 para 0 e indica esta mudana
com RLO = 1 com um pulso de um ciclo ( scan ).
Exemplo :
52
Detectar Flanco Crescente 0 -> 1
Detecta uma mudana de estado de sinal do <Operando> de 0 para 1 e indica esta mudana
com RLO = 1 por um ciclo ( Scan ).
53
AtivarTemporizadores
temporizadores
A CPU reserva uma rea de memria para os temporizadores. Nesta rea de memria, uma pa-
lavra de 16 bits reservada para cada endereo de temporizador at 256. Consulte os Dados
Tcnicos da CPU para saber quantos temporizadores esto disponveis. 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.
Identificao
Identifica-se com a letra T.
De T0 a T255
Valores de Temporizao
O Valor de temporizao 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 usurio.
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 temporizao>
Descrio da operao
---( SP ) (Inicia o temporizador com pulso) Inicia o temporizador indicado com o <valor de
temporizao> 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 temporizao, 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 temporizao 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 sada 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 temporizao restante vai para "0".
O Tempo mximo durante o qual o sinal de sada permanece em 1 idntico ao tempo pro-
gramado. O sinal de sada permanece em 1 por um perodo menor se o sinal de entrada muda
para 0.
<N de T>
---( SE )
<Valor de temporizao>
55
Descrio da operao
---( SE ) (Inicia o temporizador com pulso prolongado ) Inicia o temporizador indicado com o
<valor de temporizao> 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 temporizao 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 temporizao 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 sada 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 temporizao restante vai para
"0".
56
<N de T>
---( SD )
<Valor de temporizao>
Descrio da operao
---( SD ) (Inicia o temporizador com retardo na conexo) Inicia o temporizador indicado com o
<valor de temporizao> se no RLO se produz um flanco crescente. O estado do sinal do tem-
porizador ser "1" se o <valor de temporizao> 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 sada
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 temporizao restante vai para a "0".
57
<N de T>
---( SS )
<Valor de temporizao>
Descrio da operao
---( SS ) (Inicia o temporizador com retardo na conexo com memria) 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 reincio do temporizador s possvel 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 temporizao 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 sada 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
temporizao restante vai para "0".
58
<N de T>
---( SF )
<Valor de temporizao>
Descrio da operao
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 temporizao
restante vai para "0".
O sinal de sada muda de 0para 1 quando o sinal de entrada muda de 1para 0. O sinal
da sada permanece em 1 durante o tempo programado. O temporizador inicia quando o sinal
de entrada muda de 0para 1.
59
Ativar e parametrizar blocos temporizadores
S_PULSE
S -> SET - Ativar Temporizador
N do Temporizador
TV -> Time Variable - Valor da Temporizao
R -> RESET - Desativar Temporizador
Q -> Output - Sada
BI -> Temporizao Atual em Binrio
BCD - > Temporizao Atual em BCD
Descrio da operao
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 temporizao
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 sada 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 Temporizao
R -> RESET - Desativar Temporizador
Q -> Output - Sada
BI -> Temporizao Atual em Binrio
BCD - > Temporizao Atual em BCD
Descrio da operao
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 temporizao
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 sada 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 Temporizao
R -> RESET - Desativar Temporizador
Q -> Output - Sada
BI -> Temporizao Atual em Binrio
BCD - > Temporizao Atual em BCD
Descrio da operao
S_ODT (Parametrizar e iniciar o temporizador com retardo na conexo) Inicia o temporizador
indicado quando h um flanco crescente na entrada de incio S. Para iniciar um temporizador,
tem que produzir-se necessariamente uma mudana de sinal. O temporizador continua em fun-
cionamento com o valor de temporizao indicado na entrada TV enquanto o estado do sinal na
entrada S seja positivo. O estado do sinal na sada 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 sada Q ser "0". O temporizador vai a 0 se a entrada de desativao R do
temporizador for para "1" enquanto o temporizador estiver funcionando. O valor de temporiza-
o e a base de tempo vai a 0. Ento o estado do sinal na sada Q "0". O temporizador tam-
bm vai a 0 se na entrada de desativao R o valor for "1", enquanto o temporizador no est
em funcionamento e o RLO na entrada S for "1". O valor de temporizao atual fica depositado
nas sadas BI e BCD. O valor de temporizao na sada BI est em cdigo binrio, o valor na
sada BCD est em formato decimal codificado em binrio. O valor de temporizao atual eqi-
vale ao valor inicial de TV menos o valor de temporizao que foi transcorrido desde o incio 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 sada Q 4.0 ser "1". Se o estado do sinal da entrada I0.0 muda de "1" para "0",
o temporizador para e a sada 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 no).
62
S_ODTS
Descrio da operao
S_ODTS (Parametrizar e iniciar o temporizador com retardo na conexo com memria) inicia o
temporizador indicado quando h um flanco crescente na entrada de incio S. Para iniciar um
temporizador, tem que produzir-se necessariamente uma mudana de sinal. O temporizador con-
tinua em funcionamento com o valor de temporizao 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 sada
Q ser "1" se transcorrido o tempo, independentemente do estado do sinal que tenha a entrada S.
O temporizador reinicia com o valor de temporizao 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 desativao R do temporizador for a "1", independentemente do RLO na
entrada S. Ento o estado do sinal na sada Q "0". O valor de temporizao atual fica deposita-
do nas sadas BI e BCD. O valor de temporizao na sada BI est em cdigo binrio, o valor na
sada BCD est em formato decimal codificado em binrio. O valor de temporizao atual eqi-
vale ao valor inicial de TV menos o valor de temporizao que foi transcorrido desde o incio 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 mudana 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 sada 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
Descrio da operao
S_OFFDT (Parametrizar e iniciar o temporizador com retardo na desconexo) inicia o tempori-
zador indicado quando h um flanco decrescente na entrada de ativao S. Para iniciar um tem-
porizador, tem que produzir-se necessariamente uma mudana de sinal. O estado do sinal na
sada Q ser "1" se o estado do sinal na entrada S for "1", e tambm 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-
vao R for para "1" enquanto o temporizador estiver em funcionamento. O valor de temporiza-
o atual fica depositado nas sadas BI e BCD. O valor de temporizao na sada BI est em
cdigo binrio, o valor na sada BCD est em formato decimal codificado em binrio. O valor de
temporizao atual eqivale ao valor inicial de TV menos o valor de temporizao que foi trans-
corrido desde o incio 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 memria para os contadores. Nesta rea de memria, uma palavra
de 16 bits reservada para cada endereo de contador at 256. Consulte os Dados Tcnicos da
CPU para saber quantos contadores esto disponveis. O Valor mximo presetado 999 (BCD).
Identificao
Identifica-se com a letra C.
De C0 a C255
Valores de Temporizao
O Valor de Contagem carregado no seguinte formato e sintaxe :
C#127
c#32
C#5
Sendo :
C# Identifica o Formato Decimal Codificado em Binrio BCD
127
32 Nmeros de Contagem entre 0 e 999
5
Contador Crescente
Contador Decrescente
Contador Crescente / Decrescente
65
Setar e inciar contadores
Descrio da Operao
Exemplo :
O valor 100 ficar pre-selecionado para o contador C5 se na entrada I 0.0 produz-se um flan-
co ascendente( mudana de 0 para 1 ). O Valor do contador C5 no se altera no caso de que
no 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 no se altera se
no houver nenhum flanco ascendente e tambm se o contador j tenha alcanado o valor 999.
Exemplo :
Deteco de Valor 0
68
Parametrizar e iniciar contadores
Exemplo :
69
Parametrizar e Decrementar Bloco Contador - Counter Down
S_CD
CD
Exemplo :
S_CD
CD
70
Parametrizar e Incrementar/Decrementar Bloco - Counter Up/Down
Exemplo :
71
Comparadores
Com instrues de comparao, voc pode comparar os seguintes pares de valores numricos :
CMP ? I - Dois Inteiros ( cada um com 16 bits )
CMP ? D - Dois Inteiros Duplos ( cada um com 32 bits )
CMP ? R - Dois Nmeros Reais ( nmero de ponto flutuante, cada um com 32 bits )
? - Tipo de Comparador
Tipo de Comparador
Todas as instrues de comparao compara os valores das entradas IN1 e IN2 baseados nas
seguintes relaes :
A sada 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 operaes em todos os blocos lgicos: blocos de organizao (OBs),
blocos de funo (FBs) e funes (FCs). As operaes de Salto so as seguintes :
Salto Incondicional
JMP - Funciona como um salto direto quando no h outro elemento LAD entre o condutor
esquerdo e a operao (ver acima). Cada salto tem que ter um destino (LABEL). No se execu-
taro as operaes que encontram-se entre a operao de salto e o destino.
Operaes Intermedirias
O salto executa-se em todos os casos, omitindo-se (passando por cima) as operaes que en-
contram-se entre a operao de salto e o destino.
73
Salto Condicional - JMP
Funciona como um salto condicional quando o RLO da combinao lgica anterior for 1.
Exemplo :
Operaes Intermedirias
Se a entrada I 5.0 E I 5.1 forem 1 executa-se o salto para o destino CAS1. As operaes
intermedirias no sero executadas se houver o salto.
74
Salto Condicional - JMPN
Funciona como um salto condicional quando o RLO da combinao lgica anterior for 0.
Exemplo :
Operaes Intermedirias
Se a entrada I 5.0 OU I 5.1 for 0 executa-se o salto para o destino CAS1. As operaes
intermedirias no sero executadas se houver o salto.
Label Destino
LABEL marca o destino de uma operao de salto. Este destino pode ter at um mximo de 4
caracteres. Primeiro caracter : letra ; os demais caracteres : letras ou alfanumricos, por exemplo
CAS1.
Chamada de Blocos
CALL - Chamar uma Funo especificada em < Bloco >. Executa se o RLO = 1.
75
Operaes Lgicas Digitais
As Operaes Lgicas Digitais com palavras, comparam bit a bit pares de palavras ( Word - 16
bits ) e palavras duplas ( Double Word - 32 bits ) segundo a lgica de Boole. Para executar as
operaes lgicas com palavras, dispe-se das seguintes operaes :
WAND_W
Resoluo do Exerccio 08
A instruo Word AND combina dois valores especificados na entrada IN1 e IN2 bit a bit,
baseado na tabela verdade AND. O resultado da operao salvo ( armazenado ) no endereo
especificado em OUT. A instruo executada se o sinal de entrada de EN = 1. ENO tem o
mesmo estado do sinal de EN.
Exemplo : Fazendo uma mscara de quatro dcadas. A lgica ser executada se a entrada I 5.0
for 1.
76
WOR_W
A instruo Word OR combina dois valores especificados na entrada IN1 e IN2 bit a bit, ba-
seado na tabela verdade OR. O resultado da operao salvo ( armazenado ) no endereo espe-
cificado em OUT. A instruo 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 lgica ser executada se a entrada I 5.1 for 1.
77
Operaes matemticas bsicas
Operaes Matemticas :
Adio :
ADD_I Soma Inteiros
ADD_DI Soma Inteiros Duplos
ADD_R Soma Nmeros Reais
Subtrao :
SUB_I Subtrai Inteiros
SUB_DI Subtrai Inteiros Duplos
SUB_R Subtrai Nmeros Reais
Multiplicao :
MUL_I Multiplica Inteiros
MUL_DI Multiplica Inteiros Duplos
MUL_R Multiplica Nmeros Reais
Diviso :
DIV_I Divide Inteiros
DIV_DI Divide Inteiros Duplos
DIV_R Divide Nmeros Reais
78
Manipulao de blocos parametrizveis
Programar uma Funo FC :
A Funo, como o Bloco de Funo, est subordinada ao bloco de organizao. Para que possa
ser processada pela CPU, esta tem que ser chamada tambm pelo bloco de ordem superior. Nas
funes, os parmetros so listados na tabela de declarao de variveis.
Criaremos a partir de agora um programa exemplo com uma funo passo a passo.
MISTURADOR PROGRAMVEL
79
Utilizaremos os endereos absolutos como a seguir :
B1 - Boto para Pes I 124.1
B2 - Boto para Biscoitos I 124.2
B3 - Boto para Sequilhos I 124.3
B4 - Boto para Ativao do Processo I 124.4
B5 - Boto de Parada I 124.5
V1 - Vlvula de Farinha Q 124.0
V2 - Vlvula de leite Q 124.1
M1 - Motor do Batedor Q 124.2
Criao da Funo 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 Funo ( FC ) com a ajuda do menu contextual.
No quadro de dilogo propriedades selecione o nome e a linguagem desejada. Em seguida OK.
A funo FC1 estar criada na pasta de blocos.
Note que no programa os ingredientes para fabricao dos produtos so sempre os mesmos, o
que altera so os tempos de despejo dos ingredientes e o tempo do batedor. Como o que
muda so os tempos, ou sejam eles variam, criaremos variveis para estes tempos. Chamaremos
esta funo de RECEITA.
Abra FC1 .
Criaremos a seguir variveis 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 endereos de memria iniciais onde so armaze-
nados as variveis de tempo. Note tambm 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 variveis de
tempo necessitam de uma palavra ( 16 bits ) para armazenamento de valores de tempo.
que aps inserir e teclar enter, a varivel apareceu com o smbolo # antes da palavra Farinha.
Este smbolo determina que uma varivel local e que est declarada na tabela. Caso voc digite
diferente da tabela, alm de no aparecer com o smbolo, aparecer uma mensagem alertando
sobre o erro e aps enter o nome digitado estar em vermelho.
Insira agora um novo Network ( 2 ) e faa o mesmo para as outras variveis no se esquecendo
que o boto acionador e o boto de parada o mesmo para os trs temporizadores. O que muda
so as variveis de tempo ( TV ) e as sadas.
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 endereo do
boto B1 ( I 124.1 ) ou seja, o boto que seleciona a receita para a fabricao de pes.
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 interrogao, insira os tempos no formato S5T# de acordo com a
tabela de receita mostrada no exerccio para a fabricao de Pes.
Farinha S5T#2S
Leite S5T#5S
Motor S5T#4S
82
Exerccios
EXERCCIO 01
Controle de Nvel
VLVULA DE
ENTRADA
SENSOR DE
NVEL MXIMO
PAINEL
SENSOR DE
NVEL MNIMO
LIGA
DESL.
Entradas :
Botoeira Liga
Botoeira Desliga
Sensor de Nvel Mximo
Sensor de Nvel Mnimo
Sadas :
Vlvula de Entrada
Funcionamento :
1 - A Botoeira Liga inicia o processo e a Desliga encerra ;
2 - Quando o Nvel de liquido cair abaixo do Mnimo a Vlvula se abre;
3 - Quando o Nvel de liquido passar do Nvel Mximo a Vlvula se fecha.
83
EXERCCIO 02
FURADEIRA
Entradas :
S1 - Sensor Acima
S2 - Sensor Abaixo
B1 - Desce Furadeira
B2 - Parada
Sadas :
M1 - Motor para Cima
M2 - Motor para Baixo
84
EXERCCIO 03
Atravs dos botes 1 e 2 deveremos selecionar o sentido de giro do motor sem este
estar em movimento.
Depois de selecionado o sentido, atravs do boto 3 acionaremos o motor. O mesmo
no ser acionado sem antes termos selecionado o sentido do giro.
No poderemos inverter o sentido dos motores sem antes acionarmos o boto 4 de
parada de motor.
O circuito dever possuir um rel trmico.
Entradas :
Boto 1 - Sentido Normal
Boto 2 - Sentido Reverso
Boto 3 - Acionamento
Boto 4 - Parada FUSVEL
Rel Trmico
Sadas :
Contator K1 - Sentido Normal
Contator K2 - Sentido Reverso
K1 K2
TRMICO
MOTOR
85
EXERCCIO 04
MOTOR DO
AGITADOR
VLVULA DE
ENTRADA
SENSOR DE
NVEL MXIMO
SENSOR DE
NVEL MNIMO
PAINEL
SENSOR DE
TANQUE VAZIO
LIGA
VLVULA DE DESL.
SADA
Entradas :
Botoeira Liga
Botoeira Desliga
Sensor de Nvel Mximo
Sensor de Nvel Mnimo
Sensor de Tanque Vazio
Sadas :
Motor do Agitador
Vlvula de Entrada
Vlvula de Sada
Funcionamento :
1- Inicialmente a Vlvula de Sada est Fechada
2- A botoeira liga inicia o processo e a Desliga interrompe o processo.
3- A Vlvula de entrada aberta at o Nvel Mximo ser atingido fechando em seguida.
4 - O Motor do Agitador ligado.
5 - Aps 20 segundos, a vlvula de Sada aberta.
6 - Quando o nvel Mnimo atingido, o Motor do Agitador desligado.
7 - Ao ser detectado que o Tanque est vazio, a Vlvula de Sada fechada.
8 - Termina o ciclo.
86
EXERCCIO 05
Entradas :
Boto 1 - Liga
Boto 2 - Desliga
Rel Trmico
Sadas :
Contatora 1 - K1
Contatora 2 - K2
Contatora 3 - K3
Fusvel
K1 K2 K3
Trmico
Motor
87
EXERCCIO 06
Entradas :
Boto Liga
Boto Desliga
Boto de Seleo P
Boto de Seleo M
Boto de Seleo G
Sensor A
Sensor B
Sensor C
Rel Trmico
Sada :
Motor
SENSORES C
B
A
G G G
M P M
MOTOR
88
EXERCCIO 07
CONTROLE DE MISTURA
V1 V2 V3 V4
MOTOR DO
AGITADOR
LIGA VLVULA
DE SADA
DESL.
Entradas :
Botoeira Liga
Botoeira Desliga
Sadas:
Vlvula de Sada do Tanque
Motor do Agitador
V1 - Vlvula de Entrada de Leite
V2 - Vlvula de Entrada de Glucose
V3 - Vlvula de Entrada de Essncia
V4 - Vlvula de Entrada de Gordura
Funcionamento :
1- A Botoeira liga inicia o processo e a Desliga encerra;
2 - A Vlvula do Tanque de Leite acionada por 10 segundos, fechando - se em seguida;
3 - A Vlvula do Tanque de Glucose acionada por 15 segundos, fechando - se em seguida;
4 - O Motor do Agitador ligado;
5 - A Vlvula do Tanque de Essncia acionada por 5 segundos, fechando - se em seguida;
6 - A Vlvula 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 - Aps o Motor do Agitador ser desligado, a Vlvula de Sada do Tanque de Mistura acio-
nada.
9 - O ciclo termina.
89
EXERCCIO 08
SINALEIRA DE FORMULA 1
Ativando-se o Boto Pulsador B1, as cinco lmpadas de uma sinaleira devem acender-
se uma atrs da outra, uma a cada segundo. Aps um segundo da ltima lmpada a-
cesa, todas devero apagar-se.
Entradas :
B1 - Boto de Start
Sadas :
L1 - Lmpada 1
L2 - Lmpada 2
L3 - Lmpada 3
L4 - Lmpada 4
L5 - Lmpada 5
90
EXERCCIO 09
SEQUENCIAL
PASSO
CANAL
91
EXERCCIO 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 no suba a cancela. Caso contrrio dever es-
tar acesa outra luz indicando LIVRE.
Entradas :
S1 - Sensor de Sada ( Conta os Carros que Saem )
S2 - Sensor de Entrada ( Contam os Carros que Entram )
B1 - Boto Abre Cancela Entrada ( Acionado por Fora )
B2 - Boto Abre Cancela Sada ( Acionado por Dentro )
Sadas :
M1 - Motor Cancela de Sada
M2 - Motor Cancela de Entrada
L1 - Lmpada de Estacionamento Cheio
L2 - Lmpada de Estacionamento Livre
S1 L1
S2
L2
M1 Sada 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
Referncias Bibliogrficas
95