Você está na página 1de 95

SENAI GERALDO ALCKMIN

Pindamonhangaba

Av. Abel Correa Guimarães, 971 - Jd. Rezende


Pindamonhangaba - SP
CEP 12420-680
Fone/Fax: 3642-6207
Endereço Eletrônico: www.sp.senai.br/pindamonhangaba

Controlador
Lógico
Programável
CLP – Step 7
1
Sumário

1. Introdução ----------------------------------------------------------------------- 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

Um controlador programável consiste em módulos de entradas, uma CPU, e módulos de saídas.


Uma entrada aceita uma grande variedade de sinais analógicos ou digitais de vários dispositivos
de campo (sensores) e os converte em uma lógica que a CPU pode usar. A CPU tomas as deci-
sões e executa as instruções de controle baseadas nas instruções do programa da memória. Os
módulos de saída convertem as instruções de controle da CPU em um sinal digital ou analógico
que pode-se usar para controlar dispositivos de campo (atuadores). Usa-se um dispositivo de
programação para introduzir as instruções desejadas. Estas instruções especificam o que deve
fazer o controlador segundo uma entrada específica. Um dispositivo operador permite processar
a informação para ser visualizada e introduzir novos parâmetros de controle.

Unidade de
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

Anteriormente aos controladores, muitas destas tarefas de controle solucionavam-se mediante


relés ou contatoras. Isto denominava-se controle mediante lógica de cabeamento. Tinham que
projetar os diagramas do circuito, especificar e instalar os componentes elétricos, e criar listas de
cabeamento. Então os eletricistas deviam cabear os componentes necessários para realizar uma
tarefa especifica. Quando cometia-se um erro, os cabos tinham que ser novamente conectados
corretamente. Uma alteração em sua função ou uma ampliação do sistema, requeria grandes
alterações nos componentes e seu cabeamento.

8
Controlador

Mesmo as tarefas mais complexas, pode-se fazer com um controlador. O cabeamento entre 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

Por que CLP?


- Com o uso do CLP ( controlador lógico programável), além de reduções de custos, oferecem
outras vantagens:

- Confiabilidade - depois de escrito e depurado, um programa pode ser transferido e arma-


zenado facilmente em outros CLPs.

- Flexibilidade - modificações de programas podem ser feitos com pouca digitação, pode
se fazer atualizações do sistema sem a presença de um técnico do fabricante, bastando 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.

- Comunicações - a comunicação com interfaces de operação, outros CLPs ou computado-


res, facilita a coleta de dados e o intercâmbio de informações.

- Velocidade - certas máquinas automatizadas processam milhares de informações por mi-


nuto, objetos estão expostos a sensores e frações de segundos, logo, necessita-se de resposta
rápida e segura, por isso o uso de CLPs.

- Diagnóstico - a capacidade de resoluções de problemas com o CLP é muito mais rápida,


permitindo a soluções de problemas de software e hardware.

- Redução de custos - com o uso de CLP, a uma redução significativa em termos de cus-
tos na montagem de máquinas.

10
Funcionamento Básico

A Siemens fabrica várias linhas de controladores da família SIMATIC S7.


S7-200, 300 e 400.

S7-200
O S7-200 denomina-se microsistema por causa de seu pequeno tamanho. O S7-200 tem um
design compacto em que a fonte de alimentação e as Entradas/Saídas são incorporadas.O S7-200
pode ser usado em pequenas aplicações independentes como elevadores, lavador de veículos,
máquinas misturadoras, entre outros. Também pode utilizar-se em aplicações industriais mais
complexas como máquinas de embutimentos e empacotamentos.

S7-300 e S7-400
Estes controladores usam-se em aplicações mais complexas, que necessitam de um maior nú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

O S7-300 possui as seguintes características :

• Diversas CPU´s com diferentes capacidades.


• Extensivo espectro de módulos. Pode ser expandido em até 32 módulos.
• Módulos integrados em barramento backplane.
• Pode ser ligado em rede com interface multi-point ( MPI ), PROFIBUS e Industrial Ethernet.
• Conexão central com PC acessa todos os módulos ( FM e CP ).
• Não há regras para alocação das placas. Configuração e parametrização via Software S7.

Especificações Técnicas S7-300

CPU 312 CPU314


CPU 313 CPU 314 CPU 315
IFM IFM
Memória de Trabalho 6 KByte 12 KByte 24 KByte 24 KByte 48 KByte
Memória de Carga ( RAM Integrada ) 20 KByte 20 KByte 40 KByte 40 KByte 80 KByte
Memória de Carga ( Flash EPROM ) - 512 KByte 512 KByte - 512 KByte
DI / DQ 128 128 512 992 1024
AI / AQ 32 32 64 248 128
I/O Integradas DI / DQ 10 / 6 - - 20 / 16 -
I/O Integradas AI / AQ - - - 4/1 -
Tempo de Execução para 1K de Instrução 0,6 ms 0,6 ms 0,3 ms 0,3 ms 0,3 ms
Memory Markers ( Flags ) 1024 2048 2048 2048 2048
Contadores / Temporizadores 32 / 64 64 / 128 64 / 128 64 / 128 64 / 128
Funções Integradas sim não não sim não
Máximo Conexões Ativas por Interface MPI 4 4 4 4 4

Dados Técnicos :
A Família S7-300 suporta um set de instruções e endereçamento comuns.
A tabela acima mostra as especificações técnicas mais importantes para
CPU´s 312 a 315.
Numero de Blocos :
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

1. Localização do Módulo de Memória ( Micro Memory Card – MMC ) . O MMC é inserido


neste local. O módulo arquiva o programa para quando existir uma falha na alimentação,
mesmo no caso de ausência da bateria.
2. Status da CPU - Leds :
SF - Erro interno na CPU ou erro de diagnóstico nos módulos.
BATF - Sem bateria ou carga baixa.
DC5V - Fonte +5V; indicador de tensão DC Ok.
FRCE - Indica que pelo menos uma entrada ou saída está forçada.
RUN - Piscando durante a inicialização da CPU, acesa quando a CPU está em
modo RUN ( processando o programa ).
STOP - Pisca se um reset de memória é necessário, acesa indica que a CPU está
no modo STOP ( programa não está sendo executado ).
3. Expulsor do MMC.
4. Chave para seleção manual do modo de operação da CPU :
MRES - Reset de memória ( overall reset )
STOP - O programa não é executado, mesmo se a CPU estiver em On-Line.
RUN - O programa é processado porém o terminal de programação tem só acesso
ao programa sem poder altera-lo
RUN-P - A CPU está processando o programa, e o terminal de programação pode
acessar e alterar o programa e o modo de operação. ( não existe trava ).
5. Segunda Interface X2 - DP
6. Primeira Interface X1 - MPI, conexão 9 pinos. Porta de programação da CPU do S7-300.
7. Conexão da Fonte de Alimentação. Existe um local para bateria de lithium em baixo da tam-
pa. A bateria salva o conteúdo da memória RAM no caso de uma falha na alimentação da
CPU.
8. Conexão das Entradas e Saídas.

13
S7-300 Espectro do Módulo

A Figura acima mostra a configuração máxima do S7-300.


1. Trilho 1 ( Bastidor 0 ) - Rack Central.
2. Trilho 2 ( Bastidor 1 ) - Rack de Ampliação.
3. Trilho 3 ( Bastidor 2 ) - Rack de Ampliação.
4. Trilho 4 ( Bastidor 3 ) - Rack de Ampliação.
5. Linha de Conexão 368.
6. A limitação para CPU 31xC não pode inserir no Rack 4 o módulo de Sinais 8.
PS - Fonte de Alimentação.
IM - Módulos de Interface. Os módulos de interface torna possível a configuração de vários
trilhos ( expansão ). Esta configuração faz a conexão entre os trilhos. Módulo de Transmissão,
IM360 conectado no Rack Central. Módulo de Recepção IM361 conectado no Rack de expan-
são. No módulo de expansão são permitidos somente módulos de I/O ( SM )
SM - Módulo de Sinal. Os módulos de Sinais recebem do campo os sinais elétricos e os adapta
aos vários tipos de sinais do módulo S7-300. Entradas e Saídas Digitais, Entradas e Saídas Ana-
lógicas. Acessórios : Conectores de bus e conectores frontais.
FM - Módulo de Funções. O módulo de função oferece funções especiais como Contagem, Po-
sicionamento, Regulação em Malha Fechada.
CP - Módulos de Comunicação. Possibilidades de Rede : Ponto a Ponto, PROFIBUS e Industri-
al Ethernet.

14
Sistema de Numeração
0 lógico, 1 lógico
Os controladores programáveis só podem entender um sinal que seja On ou Off (presente ou não
presente, ligado ou desligado). O sistema binário é um sistema na qual só há dois números, 1 e
0. O binário 1 indica que um sinal está presente, ou o interruptor está ligado ( On ). O binário 0
indica que o sinal não está presente, ou o interruptor está desligado ( Off ).

As vezes os dígitos binários usam-se individualmente e outras são utilizados para representar
valores numéricos.

Sistema 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

O sistema binário é usado nos controladores programáveis. Tem as seguintes características:


Dois dígitos 0, 1
Base 2
Potências de base 2 (1, 2, 4, 8, 16, ...)
No sistema binário, os 1s e 0s se ordenam em colunas. Cada coluna tem um peso. A primeira
coluna tem um peso binário de 20. Isto equivale ao decimal 1. Este é denominado bit menos sig-
nificativo. O peso binário dobra-se a cada coluna sucessivamente. A coluna seguinte, por exem-
plo, tem um peso de 21, que equivale ao decimal 2. O valor decimal dobra-se em cada coluna
sucessivamente. O número mais a esquerda denomina-se bit mais significativo. No exemplo
abaixo, o bit mais significativo tem um peso binário de 27. É equivalente ao decimal 128.

BIT Mais Significativo BIT Menos Significativo

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


decimal da quarta coluna a partir da direita é 8, e o valor decimal da quinta coluna a partir da
direita é 16. O decimal equivalente a este número binário é 24. A soma de todas as colunas com
peso que contém um 1 é o número decimal que o controlador armazenou.

No exemplo seguinte, as colunas quarta e quinta a partir da direita contém um 1. O valor 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.

Ex.: Conversão do número 11 para a base 2 (binária)

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

Utiliza-se o sistema hexadecimal nos controladores programáveis porque permite representar o


estado de um grande número de bits binários em um pequeno espaço como no monitor de um
computador ou um visualizador de uma unidade de programação. Cada dígito hexadecimal re-
presenta o estado exato de 4 bits binários. Para converter um número decimal em um número
hexadecimal o número decimal se dividirá por base 16. Por exemplo, para converter o decimal
428 em hexadecimal:

Ex.: Conversão do número 428 para a base 16 (hexadecimal)

428 16 12=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

Conversão de bases: Hexa ↔ binária

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.

a) 1011 = B b)0001 1010 1100 = 1AC

20
Código BCD

O código BCD (Binary-Coded Decimal, Decimal Codificado em Binário) são números decimais
em que cada dígito está representado por um número binário de 4 bits.

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

11 = 0001 0001 (Obs.: 11 na base 2 é igual a 1011)


35 = 0011 0101 (Obs.: 35 na base 2 é igual a 100011)

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.

Adição no Sistema Binário.


Para efetuarmos a adição no sistema binário, devemos agir como uma adição convencional no
sistema decimal, lembrando que, no sistema binário temos apenas dois algarismos. Temos então:

0 0 1 1
+0 +1 +0 +1
0 1 1 10

Convém observar que no sistema decimal 1 + 1 = 2 e no sistema binário representamos o núme-


ro 2 por 10. Pela operação realizada, notamos a regra de transporte para a próxima coluna :
1+1=0 e "vai um" .

Subtração no Sistema Binário.


O método de resolução é análogo a uma subtração no sistema decimal. Temos então:

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

Multiplicação nos Sistema Binário.


Procede-se como em uma multiplicação decimal. Assim sendo temos:

0x0=0
0x1=0
1x0=0
1x1=1

23
Notação dos Números Binários Positivos e Negativos.
A representação de números binários positivos e negativos pode ser feita utilizando-se os sinais
" + " ou " - " respectivamente. Na prática, porém em hardware dos sistemas digitais que 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 )

Double Word ( Palavra Dupla )

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#

Word ( Palavra )Æ W#16#

Double Word ( Palavra Dupla )Æ DW#16#


Faixa :
Byte : B#16#0 até B#16#FF
Word : W#16#0 até W#16#FFFF
Double Word : DW#16#0 até DW#16#FFFFFFFF

BCD
BCD “ Decimal Codificado em Binário”. Cada 4 bits representa um dígito.
Há 2 formatos de BCD, de 3 dígitos e de 7 dígitos.
Palavra ( 16 bits ) : BCD de 3 dígitos com sinal.
Exemplo : +310

Sinal : 0000 Æ positivo


1111 Æ negativo
Faixa : -999 até 999

26
Dupla Palavra ( 32 bits ) : BCD de 7 dígitos com sinal.
Faixa : -9999999 até 9999999

Formatos de Números
Números Inteiros :
Um número Inteiro é representado pela letra “I”. É um número binário de 16 bits que tem como
sinal o bit mais significativo.
Limite : Positivo 215 - 1 = 32767 ( o “0” considera-se positivo )
Negativo 215 = -32368

Números Negativos : Faz-se o complemento de 2, mudando zeros por uns e somando 1.


Exemplo : -3 O número -3 portanto seria :
3 = 0000 0000 0011
C1 = 1111 1111 1100
+1 = 1111 1111 1101

Números Duplos Inteiros :


Um número Duplo Inteiro é representado pela letra “D”. É um número binário de 32 bits que
tem como sinal o bit mais significativo.
Limite : Positivo 231 - 1 = 2147483647 ( o “0” considera-se positivo )
Negativo 231 = -2147483648

27
Números Reais :
Um número Real, também chamado de número de Ponto Flutuante, é representado pela letra
“R”. É um número binário de 32 bits que constam de 2 pares :
Expoente : 8 bits
Mantissa : 24 bits

O bit mais significativo define o sinal do número.

Limite : Positivo = 3.402823 1038


Negativo = -3.402823 1038

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 função OU ( OR ) tem a seguinte lógica se pensarmos em termos de chaves ( não esqueça


chave aberta ⇒ “ 0 “, fechada ⇒“ 1 “ ): “A lâmpada acenderá se a chave A OU a chave
B estiverem ligadas na Figura abaixo “. Expressão Booleana: L = A+B ( Lemos A ou B, mas
por analogia com a operação soma dizemos A mais B ).

A 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

Passos para a Automação de um Equipamento com CLPs

32
Princípo de funcionamento

CPU´s antes de 10/1998 CPU´s após 10/1998

Sistema Operacional
inicia vigilância do
Tempo de Ciclo.

PIQ
PII PIQ

PII

Inicialização

No momento em que é ligado o CLP executa uma série de operações pré - programadas, 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.

Verificar Estado das Entradas

O CLP lê o estados de cada uma das entradas, verificando se alguma foi acionada. O processo
de leitura recebe o nome de Ciclo de Varredura ( Scan ) e normalmente é de alguns micro - 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.

Comparar com o Programa do Usuário

O CLP ao executar o programa do usuário , após consultar a Memória Imagem das Entradas ,
atualiza o estado da Memória Imagem das Saídas, de acordo com as instruções definidas pelo
usuário em seu programa.

Atualizar o Estado das Saídas

O CLP escreve o valor contido na Memória das Saídas , atualizando as interfaces ou módulos de
saída. Inicia - se então, um novo ciclo de varredura.

Vantagens da Imagem do Processo


Em comparação com o acesso direto aos módulos de entrada e saída, o acesso a imagem de pro-
cesso oferece a vantagem de que a CPU dispões de uma imagem coerente dos sinais do processo
durante a execução cíclica do programa. Se durante a execução do programa varia um estado de
sinal em um módulo de entrada, este estado de sinal se conserva na imagem de processo até que
esta seja atualizada no próximo ciclo. Além disso, o acesso a imagem de processo requer muito
menos tempo que o acesso direto aos módulos de sinais, já que a imagem de processo encontra-
se na memória interna da CPU.

Tempo de Ciclo ( SCAN TIME )

O tempo de Ciclo é o tempo que o sistema operacional necessita para executar o programa cí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

O STEP 7 fornece 3 possibilidades para o desenvolvimento de seus programas. Baseado nesta


diretriz, você pode decidir qual é a estrutura de programa mais apropriada para a sua aplicação.

Programa Linear
O programa inteiro reside em um único bloco de instrução contínuo ( OB1 ). Esta estrutura é
semelhante a um circuito de relés substituído por um controlador lógico programável. Como o
nome diz, um programa descreve um grupo de instruções que são repetidamente realizadas 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

Blocos de Funções (FB)


Um bloco de função é uma função ou uma sequencia de comandos armazenados em um bloco lógico,
onde os parâmetros podem ser arquivados em uma memória. O FB utiliza esta memória adicional na
forma de um “Bloco de Dados Instance” DB . Parâmetros passados para o FB, e alguns dos dados locais
são arquivados neste blocos de dados associado ( Instance DB ). Outros dados temporários são arquiva-
dos na pilha local ( L stack ). Dados arquivados em Instance DB são retidos ( armazenados ) quando o
Bloco de Função é fechado. Dados arquivados na pilha L stack não são retidos.

Campo de Aplicação :
Um FB contém um programa que executa-se sempre quando o FB é chamado por outro bloco
lógico. Os blocos de função simplificam a programação de funções complexas de uso frequente.
A cada chamada de um bloco de funções que transfere parâmetros está associado um bloco de
dados Instance. Mediante a chamada de várias instancias de um FB é possível controlar vários
equipamentos com um FB. Um FB para um tipo de motor pode controlar, por exemplo, 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.

Blocos de funções de Sistema (SFB)

37
Um bloco de função de sistema é parte integral da CPU. Você pode utilizar um SFB em seu programa,
sem carregar como parte de seu programa porque os SFB’s são parte do sistema operacional. SFB’s 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ções de Sistema (SFC)

Função de sistema é uma pré programada e testada função que é integrada a CPU. Algumas das tarefas
suportadas por estas funções são setar parâmetros para módulos, comunicação de dados, funções de có-
pia, manipulação do relógio, contador de horas de funcionamento. etc. Uma SFC pode ser chamada pelo
seu programa, porém sem precisar fazer parte dele ( não ocupa memória de trabalho ).

Blocos de Dados de Sistema (SDB)

Um bloco de dados de sistema é uma área de memória que a ferramenta STEP 7 gera para arquivar dados
necessários para o controle de operações. Informações, tais como dados de configuração, conexões de
comunicação e parâmetros são salvos em SDB’s.

OBS. :
Cada CPU possuí seus SFBs e SFCs específicos. Para obter maiores detalhes, consulte o manual
Funções Standart e Funções de Sistema das CPUs Step 7-300.

38
Chamada de 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.

Seqüência e profundidade de agrupamento


A seqüência e o agrupamento das chamadas de blocos denomina-se hierarquia de chamadas. A
profundidade de agrupamento admissível depende do tipo de CPU. A figura seguinte mostra, em
um exemplo, a seqüência e a profundidade de agrupamento das chamadas de blocos dentro de
um ciclo de execução.

Ordem de criação de blocos:


· Os blocos criam-se de cima para baixo, ou seja, que começa-se com a fila superior de blocos.
· Cada bloco que se chame já deverá existir. Portanto, em uma fila de blocos, a ordem de criação
deverá ser da direita para esquerda.
· O OB 1 é o último bloco que se cria.
Conforme estas regras, a ordem de criação dos blocos da figura de exemplo seria o seguinte:
FC 1 > FB 1 + DB 1 de instancia > DB 1 > SFC 1 > FB 2 + DB 2 de instancia > OB 1

39
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:

M Memory Markers ( Marcas de Memória - Flag )


I Entradas
Q Saídas
T Temporizadores
C Contadores
DB Data Block ( Módulo de Dados )

Cada um destes tipos podem endereçar-se em 4 possíveis modos (salvo T e C):

• bit
• B: Byte (8 bits).
• W: Word ( Palavra 16 bits).
• D: Double Word ( Palavra Dupla 32 bits).

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:

Bit de Marcas M 0.0 a M 255.7


Byte de marcas MB 0 a MB 255
Palavra de marcas MW 0 a MW 254
Palavra dupla de marcas MD 0 a MD 252

40
Entradas e saídas

O que são Entradas e Saídas ?

Entrada
Byte
Bit

I x.x - Designa uma entrada.


É um elemento usado para monitorar uma ação ou um evento, como um interruptor, pressostato,
termostato, etc.
Na CPU 312C nós temos 10 Entradas Digitais Integradas. São elas:
I 124.0, I 124.1, I 124.2, I 124.3, I 124.4, I 124.5, I 124.6, I 124.7, I 125.0, I 125.1

Saída
Byte
Bit

Q x.x - Designa uma Saída.


É usada para controlar um equipamento como um motor, uma válvula ou um LED.
Na CPU 312C nós temos 6 Saídas Digitais Integradas. São elas:
Q 124.0, Q 124.1, Q 124.2, Q 124.3, Q 124.4, Q 124.5

Tal como comentamos anteriormente, manejaremos uma imagem das entradas e das saídas.
O número de e/s disponíveis dependerá do tipo de CPU que empregarmos, além dos módulos
externos que tenhamos conectados. Como máximo o controlador pode manejar até 65536 bytes
para cada tipo de e/s. Em cada caso podemos endereçar como:

IMAGEM DO PROCESSO DAS ENTRADAS : PII

Bit de Entrada I 0.0 a I 65535.7


Byte de entrada IB 0 a IB 65535
Palavra de entrada IW 0 a IW 65534
Palavra dupla de entrada ID 0 a ID 65532

41
IMAGEM DO PROCESSO DAS SAÍDAS : PIQ

Bit de Saída Q 0.0 a Q 65535.7


Byte de saída QB 0 a QB 65535
Palavra de saída QW 0 a QW 65534
Palavra dupla de saída QD 0 a QD 65532

ENTRADAS EXTERNAS: Periferia

Byte de entrada da periferia PIB 0 a PIB 65535


Palavra de entrada da periferia PIW 0 a PIW 65534
Palavra dupla de entrada da periferia PID 0 a PID 65532

SAÍDAS EXTERNAS: Periferia

Byte de saída da periferia PQB 0 a PQB 65535


Palavra de saída da periferia PQW 0 a PQW 65534
Palavra dupla de saída da periferia PQD 0 a PQD 65532

Todas estas entradas e saídas podem ser de três tipos:

• E/S digitais:
são as e/s mais freqüentes e que em maior quantidade vamos ter.

• E/S digitais de alarme/erro:


não são e/s adicionais, configuram-se dentro do Step7 e ocupam uma das e/s digitais normais.

• E/S analógicas:
estas sim são e/s adicionais, porem tem que ser configuradas também no Step7 para especificar a
faixa de endereços que vão ocupar.

42
ENDEREÇAMENTOS
Os endereçamentos são sempre realizados em grupos de 8 bits ou seja em Byte. Quando são
realizados em Palavra ( Word ) devem ser endereçados conforme abaixo :

215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20

IW n Æ Palavra de Entrada n ( Input Word n ) =


IB n Æ Byte de Entrada n ( Input Byte n ) +
IB n+1 Æ Byte de Entrada n+1 ( Byte de Entrada n + 1 )
Exemplos :
IW10 = IB 10 + IB 11
QW101 = QB 101 + QB102
MW26 = MB26 + MB27
Quando são realizados em Palavra Dupla ( Double Word ) devem ser endereçados conforme
abaixo :

231 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 20
ID n Æ Palavra Dupla de Entrada n ( Input Double Word n ) =
IB n Æ Byte de Entrada n + IB n+1 Æ Byte de Entrada n+1 +

IB n+2 Æ Byte de Entrada n+2 + IB n+3 Æ Byte de Entrada n+3


Exemplos :
ID10 = IB 10 + IB 11 + IB 12 + IB13
QD101 = QB 101 + QB102 + QB102 + QB103
MD26 = MB26 + MB27 + MB28 + MB29

43
Endereçamento absoluto e simbólico

Endereços Absolutos :

Um endereço absoluto é um endereço específico na CPU ( operandos Formais ), por exemplo,


entrada I 1.0. Neste caso, não é necessário editar uma lista de simbólicos, o programa porém é
mais dicícil de entender.

Endereços Simbólicos :

O Endereçamento simbólico torna possível trabalhar com símbolos tais como Motor_liga, ao
invés do endereçamento absoluto. Os símbolos para entradas, saídas, temporizadores, 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.

A linguagem que utilizaremos neste módulo será a linguagem LADDER.


Ladder segue os princípios de linguagem de Esquemas de Contatos fixados pela norma IEC
1131-3.

45
Instruções com bits

As instruções de BIT trabalham com dois valores, 1 e 0. Com instrução na forma de um contato
ou de uma saída, 1 indica ativado ou energizado; 0 indica desativado ou desenergizado. Instru-
ções de BIT interpretam o estado do sinal 0 ou 1 e os combina de acordo com a Lógica Boolea-
na. O resultado destas combinações é 0 ou 1, denominado como “Resultado Lógico da Opera-
ção” ( R L O ).

22 - Contato Normalmente Aberto

O Contato Normalmente Aberto fecha-se se o valor do bit consultado, que armazena-se no <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”.

22 - Contato Normalmente Fechado

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)

Inverte o bit do RLO ( Resultado Lógico da Operação )


Exemplo :

A Saída Q 4.0 será “0” se :


O estado da entrada I 0.0 for “1” OU o estado da entrada I 0.1 E I 0.2 for “1”.

Conector

Conector é um elemento intercalado que cumpre uma função de armazenar; o conector 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 :

M 0.0 tem o RLO de I 1.0 e I 1.1


M 1.1 tem o RLO de I 1.0, I 1.1, I2.2, I1.3 e NOT
M 2.2 tem o RLO de toda a combinação de bits.

49
SET e RESET

Ativar Saída

Ativar Saída ( Setar ) só é executado se o RLO das operações anteriores for “1” ( fluxo de 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

Se o estado do sinal de entrada R = 1, e a entrada S = 0 o operando ( bloco acima ) é resetado.


Se o estado do sinal S torna-se “1”, o operando resetado anteriormente é setado para “1”, inde-
pendente do estado da entrada R ( Set Dominante )

51
Flanco de impulso

Flanco Positivo Flanco Negativo

RLO
1

A avaliação do flanco de impulso é frequentemente necessária em um programa, na realidade,


sempre quando no programa uma entrada muda para ON ou para OFF, ou quando o endereço é
setado ou resetado isto ocorre.

Detectar Flanco Decrescente 1 -> 0

Detecta uma mudança de estado de sinal do <Operando> de “1” para “0” e indica esta mudança
com RLO = 1 com um pulso de um ciclo ( scan ).

Exemplo :

Na figura acima, a Marca de Flancos M 0. 0 armazena o estado de sinal do RLO da combinação


de bits em seu conjunto, Se o estado do sinal do RLO muda de “1” para “0” a saída Q 3.0 torna-
se “1” por um ciclo ( Scan ).

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

Na figura acima, a Marca de Flancos M 0. 0 armazena o estado de sinal do RLO da combinação


de bits em seu conjunto, Se o estado do sinal do RLO muda de “0” para “1” a saída Q 3.0 torna-
se “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".

O sinal de saída permanece em “1” durante o tempo programado, independentemente do tempo


em que o sinal de entrada esteja em “1”.

56
<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

---( SF ) (Inicia o temporizador com retardo na desconexão) Inicia o temporizador indicado se


no RLO se produz um flanco decrescente. O estado do sinal do temporizador é "1" se o RLO é
"1" ou enquanto funcione o temporizador com o <valor de temporização>. O temporizador vai
para zero se o RLO muda de "0" para "1" enquanto está em funcionamento o temporizador. O
temporizador sempre volta a iniciar se o RLO muda de "1" para "0".

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

S_PULSE (Parametrizar e iniciar o temporizador com pulso) Inicia o temporizador indicado


quando há um flanco crescente na entrada de ativação S. Para iniciar um temporizador tem que
produzir-se necessariamente uma mudança de sinal. O temporizador funciona enquanto o estado
do sinal na entrada S seja "1", porém, como máximo, durante o tempo indicado pelo valor de
temporização na entrada TV. O estado do sinal na saída Q é "1" enquanto funcionar o tempori-
zador. Se o estado do sinal na entrada S muda de "1" para "0" antes de transcorrer o intervalo de
tempo, o temporizador para. Neste caso o estado do sinal na saída Q é "0". O temporizador vai a
“0” se a entrada de desativação R do temporizador vai a "1" enquanto funcione o temporizador.
O valor de temporização atual e a base de tempo também vai a “0”. Um sinal "1" na entrada R
do temporizador não tem efeito algum se o temporizador não está em funcionamento.
O valor de temporização atual fica depositado nas saídas BI e BCD. O valor de temporização na
saída BI está em código binário, o valor na saída BCD está em formato decimal codificado em
binário. O valor de temporização atual eqüivale ao valor inicial de TV menos o valor de tempo-
rização que foi transcorrido desde o início do temporizador.

Se o estado do sinal da entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), se ativa o
temporizador T5. O temporizador continua em funcionamento com o valor de temporização
indicado de 2 segundos (2 s) enquanto a entrada I 0.0 seja “1”. Se o estado de sinal da entrada I
0.0 muda de "1" para "0" antes de transcorrer o tempo, o temporizador para. A saída Q 4.0 é "1"
enquanto o temporizador estiver em funcionamento, e "0" se o tempo transcorrido ou se o 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

S_PEXT (Parametrizar e iniciar o temporizador com pulso prolongado) Inicia o temporizador


indicado quando há um flanco crescente na entrada de ativação S. Para iniciar um temporizador
tem que produzir-se necessariamente uma mudança de sinal. O temporizador continua em fun-
cionamento durante o tempo pré-determinado, indicado na entrada TV, mesmo que o estado do
sinal na entrada S for a "0" antes de haver transcorrido o intervalo de tempo. O estado do sinal
na saída Q é "1" enquanto o temporizador estiver em funcionamento. O temporizador reiniciará
com o valor de temporização pré-determinado se o estado do sinal na entrada S muda de "0"
para "1" enquanto o temporizador estiver em funcionamento. O temporizador vai a “0” se a en-
trada de desativação R do temporizador for "1" enquanto o temporizador estiver funcionando. O
valor de temporização atual e a base de tempo vai a “0”. O valor de temporização atual fica de-
positado nas saídas BI e BCD. O valor de temporização na saída BI está em código binário, o
valor na saída BCD está em formato decimal codificado em binário. O valor de temporização
atual eqüivale ao valor inicial de TV menos o valor de temporização que foi transcorrido desde o
início do temporizador.

Se o estado do sinal da entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), ativa-se o
temporizador T5. O temporizador continua em funcionamento com o valor de temporização
indicado de 2 segundos sem ser afetado por um flanco decrescente na entrada S. Se o estado do
sinal da entrada I 0.0 muda de "0" para "1" antes de transcorrer o tempo, o temporizador 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

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_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

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_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

O Step 7 oferece 3 tipos de contadores a seguir :

Contador Crescente
Contador Decrescente
Contador Crescente / Decrescente

65
Setar e inciar contadores

Colocar Contador no Valor Inicial - Set Counter

Descrição da Operação

Inicializar o Contador executa-se somente se houver um flanco ascendente ( positivo ) na RLO.


Neste caso transmite-se o <Valor Predeterminado> ao contador indicado em < Nº de C >.

Exemplo :

O valor “100” ficará pre-selecionado para o contador C5 se na entrada I 0.0 produz-se um 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 ).

Decrementar Contador - Counter Down


67
Contar para trás decrementa em “1” o valor do contador indicado se houver um flanco ascenden-
te no RLO e o valor do contador for maior que “0”. O valor do contador não se altera se não
houver nenhum flanco ascendente e também se o contador já tenha alcançado o valor “0”.
Exemplo :

Detecção de Valor “0”

Se o estado do sinal de I 0.0 muda de “0” para “1” ( flanco ascendente no RLO ), carrega-se 0
valor predeterminado de “100”no contador C5.
Se o estado do sinal de I 0.1 muda de “0” para “1” ( flanco ascendente no RLO ), decrementa-se
em “1” o valor de contagem do contador C5, menos se o valor de contagem seja igual a “0”. O
valor de contagem não se altera se não houver nenhum flanco ascendente no RLO.
A Saída Q 4.0 torna-se 1 se o valor de contagem equivale a zero.
Se o estado do sinal de I 0.2 for “1” o contador torna-se “0” ( Reset em C5 ).

68
Parametrizar e iniciar contadores

Parametrizar e Incrementar Bloco Contador - Counter UP

S_CU - Parametrizar e Incrementar Contador toma o valor predeterminado da entrada PV se na


entrada S houver um flanco crescente.
Se o estado do sinal da entrada R for “1” o contador torna-se “0” e então o valor de contagem é
zero. O contador incrementa em “1” se o estado do sinal da entrada CU muda de “0” para “1”,
sempre que o valor de contagem seja menor que “999”.
Se inicializa-se o contador e o valor da entrada CU = 1 , o contador contará mesmo que não haja
nenhum flanco ascendente.
O estado do sinal da saída “Q” será “1” sempre que o valor de contagem seja maior que zero e
será “0” se o valor de contagem for zero.

Exemplo :

Ao mudar a entrada I 0.2 de “0” para “1” , o contador toma o valor predeterminado em PV. Se o
estado do sinal em I 0.0 muda de “0” para “1”, o valor do contador C5 incrementa-se em “1”,
menos se o valor de C5 for “999”. A Saída Q 4.0 será “1” sempre que o valor de C5 não seja
zero. Em CV é armazenado o valor de contagem atual em Hexadecimal e em CV_BCD é arma-
zenado o valor de contagem atual em BCD.

69
Parametrizar e Decrementar Bloco Contador - Counter Down

S_CD
CD

S_CD - Parametrizar e Decrementar Contador toma o valor predeterminado da entrada PV se na


entrada S houver um flanco crescente.
Se o estado do sinal da entrada R for “1” o contador torna-se “0” e então o valor de contagem é
zero. O contador decrementa em “1” se o estado do sinal da entrada CD muda de “0” para “1”,
sempre que o valor de contagem seja maior que “0”.
Se inicializa-se o contador e o valor da entrada CU = 1 , o contador contará mesmo que não haja
nenhum flanco ascendente.
O estado do sinal da saída “Q” será “1” sempre que o valor de contagem seja maior que zero e
será “0” se o valor de contagem for zero.

Exemplo :

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

S_CUD - Parametrizar e Incrementar / Decrementar Contador é inicializado com o valor de PV


quando produz-se um flanco ascendente na entrada S. Se há “1” na entrada R, o contador torna-
se zero e o valor de contagem é “0”.
O Contador incrementa em “1” se o estado do sinal da entrada CU muda de “0” para “1” e o
valor do contador for menor que “999”.
O Contador decrementa em “1” se na entrada CD produz-se um flanco ascendente e o valor do
contador for maior que “0”.
Ao produzir-se um flanco ascendente em ambas as entradas de contagem ( CU e CD ) , execu-
tam-se ambas as operações e o valor de contagem não varia.
Se inicializa-se o contador e o RLO das entradas CU / CD = 1 , o contador contará mesmo que
não haja nenhum mudança de flanco.
O estado do sinal da Saída Q será “1” se o valor de contagem for maior que zero e será “0” se o
valor de contagem for igual a zero.

Exemplo :

Ao mudar a entrada I 0.2 de “0” para “1”, o contador toma o valor de pré-seleção em PV. Se o
estado do sinal em I 0.0 muda de “0” para “1”, o valor do contador C5 incrementa em “1”, a
menos que o valor de C5 for “999”. Se I 0.1 muda de “0” para “1”, C5 decrementa em “1”, a
não ser que o valor ce C5 seja “0”. A Saída Q 4.0 será “1” se o valor cd C10 não for zero.
Em CV é armazenado o valor de contagem atual em Hexadecimal e em CV_BCD é armazenado
o valor de contagem atual em BCD.

71
Comparadores
Com instruções de comparação, você pode comparar os seguintes pares de valores numéricos :
CMP ? I - Dois Inteiros ( cada um com 16 bits )
CMP ? D - Dois Inteiros Duplos ( cada um com 32 bits )
CMP ? R - Dois Números Reais ( número de ponto flutuante, cada um com 32 bits )

? - Tipo de Comparador

Tipo de Comparador

Todas as instruções de comparação compara os “valores” das entradas IN1 e IN2 baseados nas
seguintes relações :

CMP = = I Æ IN1 é igual ( = = ) a IN2


CMP < > I Æ IN1 não é igual ( < > ) a IN2
CMP > I Æ IN1 é maior que ( > ) IN2
CMP < I Æ IN1 é menor que ( < ) IN2
CMP > = I Æ IN1 é maior ou igual a ( > = ) IN2
CMP < = I Æ IN1 é menor ou igual a ( < = ) IN2
Se a comparação é satisfeita, o resultado da operação lógica é 1.
Exemplo :

A saída Q 4.0 será ativada se I 0.0 “e” I 0.1 forem “1” e se MW0 for >= MW2.

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

Tabela Verdade AND :


A B S
0 0 0
0 1 0
1 0 0
1 1 1

Exemplo : Fazendo uma máscara de quatro décadas. A lógica será executada se a entrada I 5.0
for “1”.

IN1 Æ IW10 0100 0100 1100 0100


IN2 Æ W#16#00FF 0000 0000 1111 1111

MW30 Æ 0000 0000 1100 0100

76
WOR_W

A instrução “Word OR” combina dois valores especificados na entrada IN1 e IN2 bit a bit, 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”.

IN1 Æ MW20 0100 0010 0110 1010


IN2 Æ W#16#0001 0000 0000 0000 0001

MW32 Æ 0100 0010 1100 0100

77
Operações matemáticas básicas

O set de instruções contém várias funções aritméticas, como exibidas abaixo :


Identificação da Operação

A operação só é realizada se o operando < Condição > for “1”.

IN1 = Valor de Entrada 1 - Esta palavra é lida como o Primeiro Operando.


IN2 = Valor de Entrada 2 - Esta palavra é lida como o Segundo Operando.
O = Valor de Saída - Esta palavra é o resultado da operação aritmética.

Operações Matemáticas :
Adição :
ADD_I Æ 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

O programa consiste em um misturador de confeitaria . Há uma válvula para introduzir leite V2


e outra para introduzir farinha V1; o misturador agita-se mediante uma paleta acionada por um
motor M1. Dependendo dos tempos de introdução dos ingredientes e de funcionamento da pale-
ta, poderemos fazer três diferentes produtos segundo a tabela seguinte:
Entrada : Saídas :
B1 - Botão para Pães V1 - Válvula de Farinha
B2 - Botão para Biscoitos V2 - Válvula de Leite
B3 - Botão para Sequilhos M1 - Motor do Batedor
B4 - Botão de Ativação do Processo
B5 - Botão de Parada
Obs. : Haverá um Botão para acionar e um Botão para interromper o processo.

79
Utilizaremos os endereços absolutos como a seguir :
B1 - Botão para Pães Æ I 124.1
B2 - Botão para Biscoitos Æ 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.

Na tabela de declarações de variáveis na parte superior da janela do editor ( figura acima ), na


primeira linha , declaração IN, no campo NAME, insira o nome “Farinha” em seguida click
enter. No próximo campo TYPE definiremos o tipo de variável, neste caso variável de tempo,
digitaremos S5TIME. Click enter mais duas vezes e será criada uma nova linha de declaração
IN. Novamente no campo NAME digite o nome “Leite” em seguida click enter. No próximo
campo Type digite novamente S5TIME. . Click enter mais duas vezes e será criada uma nova

80
linha outra vez. Na nova linha criada no campo NAME digite agora “Motor” em seguida enter
e no campo Type digite S5TIME e enter mais duas vezes.
Note que no campo ADDRESS na primeira linha aparece “0.0” e na segunda linha “2.0” e na
terceira linha “4.0”. Estes valores definem os endereços de memória iniciais onde são 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.

Pronto, está criado as variáveis da nossa função.


Agora criaremos os temporizadores que utilizarão estas variáveis.
No Network 1, selecione a linha e insira um contato aberto e nele atribua o endereço do botão de
acionamento B4 ( I 124.4 ). A seguir insira um bloco temporizador S_PEXT que chamaremos
de T1. Na saída do temporizador insira uma bobina e atribua o endereço da válvula da Farinha
V1 ( Q 124.0 ). Na entrada R do temporizador insira um contato aberto e atribua o endereço do
botão de parada B5 ( I 124.5 ). Finalmente, na entrada TV ( Time Variable ) do temporizador
insira o nome da variável Farinha exatamente como você declarou na tabela de variáveis. Note

que após inserir e teclar enter, a variável apareceu com o símbolo # antes da palavra Farinha.
Este símbolo determina que é uma variável local e que está declarada na tabela. Caso você digite
diferente da tabela, além de não aparecer com o símbolo, aparecerá uma mensagem alertando
sobre o erro e após enter o nome digitado estará em vermelho.
Insira agora um novo Network ( 2 ) e faça o mesmo para as outras variáveis não se esquecendo
que o botão acionador e o botão de parada é o mesmo para os três temporizadores. O que muda
são as variáveis de tempo ( TV ) e as saídas.
Terminado, salve o bloco e feche-o.
Abra agora o bloco OB1.
Selecione a linha do primeiro Network e insira um contato aberto. Nele atribua o endereço do
botão B1 ( I 124.1 ) ou seja, o botão que seleciona a receita para a fabricação de pães.

81
Em seguida, na janela Program elements, mova a barra de rolagem até chegar em FC blocks,
abra-o e selecione FC1 Receitas arrastando-o até a linha onde desejamos inseri-lo. Solte o mou-
se e estará inserido no Network 1.

Click e Arraste

A linha ficará como mostrado na figura abaixo.

Onde aparece os pontos de interrogação, insira os tempos no formato S5T# de acordo com a
tabela de receita mostrada no exercício para a fabricação de Pães.

Farinha Æ S5T#2S
Leite Æ S5T#5S
Motor Æ S5T#4S

Faça o mesmo com as receitas para Biscoitos e Sequilhos.


Carregue e simule o programa parametrizado.

82
Exercícios

EXERCÍCIO 01

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

No estado de repouso, a furadeira estará acima, acionando o final de curso S 1.


Se acionarmos o botão B 1 a furadeira abaixará acionado pelo motor de abaixar M 2.
Quando ativa-se o final de curso de abaixado S 2, a furadeira subirá de novo. Se em
algum momento, aciona-se o botão de parada B 2, a furadeira deverá subir.

Entradas :
S1 - Sensor Acima
S2 - Sensor Abaixo
B1 - Desce Furadeira
B2 - Parada

Saídas :
M1 - Motor para Cima
M2 - Motor para Baixo

84
EXERCÍCIO 03

REVERSÃO DE SENTIDO DE ROTAÇÃO DE MOTOR

Desenvolver um programa com as seguintes características :

Através 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

TANQUE DE AGITAÇÃO DE PRODUTOS

MOTOR DO
AGITADOR

VÁLVULA DE
ENTRADA

SENSOR DE
NÍVEL MÁXIMO

SENSOR DE
NÍVEL MÍNIMO

PAINEL
SENSOR DE
TANQUE VAZIO
LIGA

VÁLVULA DE 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

SISTEMA ESTRELA / TRIÂNGULO PARTIDA DE MOTORES


Desenvolver um programa com as seguintes características :

Através do Botão 1 acionaremos o motor no sistema estrela e após 5 segundos ele


deverá passar para o sistema triângulo automaticamente.
Com o Botão 2, desligaremos o motor.
O circuito deverá possuir um relé térmico.

Entradas :
Botão 1 - Liga
Botão 2 - Desliga
Relé Térmico

Saídas :
Contatora 1 - K1
Contatora 2 - K2
Contatora 3 - K3
Fusível

K1 K2 K3

Térmico

Motor

87
EXERCÍCIO 06

SELEÇÃO DE GARRAFAS PARA ENVAZAMENTO


Uma esteira acionada por um motor, transporta garrafas de três tamanhos ( pequenas, médias
e grandes ) que sensibilizam três sensores fotoelétricos A, B e C, conforme mostrado na figu-
ra.
O processo tem início pressionando-se o botão ligar, e pode ser interrompido pressio-
nando-se o botão desligar. A seleção do tipo de garrafa é feita a partir de 3 botões pul-
sadores independentes para ( P, M e G ). Ao selecionar um tipo de garrafa, a esteira
deve parar quando forem detectadas garrafas dos tipos não desejados, soando um
alarme. Após a retirada manual da garrafa indesejada, o sistema deve ser reativado. O
circuito deverá ser protegido com relé térmico.
Obs.: Quando qualquer botão é pressionado ou qualquer sensor é ativado, o CLP re-
cebe nível lógico “1”.

Entradas :
Botão Liga
Botão Desliga
Botão de Seleção P
Botão de Seleção M
Botão de Seleção G
Sensor A
Sensor B
Sensor C
Relé Térmico

Saída :
Motor
SENSORES C
B
A

G G G
M P M

MOTOR

88
EXERCÍCIO 07

CONTROLE DE MISTURA

LEITE GLUCOSE ESSÊNCIA GORDURA

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.

O diagrama de tempo abaixo, mostra, nas linhas intermediárias, o desenvolvimento


das saídas do PLC que controlam as lâmpadas da sinaleira, em função da entrada
START indicada na primeira linha.

Entradas :
B1 - Botão de Start

Saídas :
L1 - Lâmpada 1
L2 - Lâmpada 2
L3 - Lâmpada 3
L4 - Lâmpada 4
L5 - Lâmpada 5

90
EXERCÍCIO 09

SEQUENCIAL

Construir um sequenciador de 4 canais que mostre o seguinte esquema de acendimento :

PASSO

CANAL

O esquema estabelece a seqüência de acendimento das luzes conectadas a quatro


canais. Os círculos em preto indicam a ativação do canal durante seu passo especí-
fico. Assim, durante o passo 0 estará ativo o canal 0, durante o passo 1 o canal 1, e
assim sucessivamente. Se as luzes dispõem-se em linha, o efeito será o de um des-
locamento de fonte luminosa, desde a primeira até a última posição e logo ao con-
trario.
Após o passo 5, acontece no passo 6, idêntico ao 0 e logo outro idêntico ao passo
1, ou seja, o diagrama acontece ciclicamente.
Deverá haver um intervalo entre o acendimento de uma lâmpada e outra de 500
milisegundos.

91
EXERCÍCIO 10

CONTROLE DE 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

Área de armazenamento com Contador, Comparador e Temporizador


A figura mostra um sistema com duas esteiras transportadoras e uma área de armazenamento
temporário colocada entre ambas. A esteira transportadora 1 transporta peças para área de arma-
zenamento. Uma barreira óptica situada no final da esteira 1 junto da área de armazenamento
determina quantas peças transportam-se para esta área. A esteira transportadora 2 transporta
peças da área de armazenamento até uma plataforma de carga onde chegam caminhões e os re-
colhem para entrega-los aos clientes. Uma barreira óptica situada no final da esteira transporta-
dora 2 junto a área de armazenamento determina quantas peças abandonam a área de armazena-
mento para ser transportados a plataforma de carga. Um painel indicador com três lâmpadas
assinalam o nível da área de armazenamento temporário. Um sinalizador sonoro deverá soar por
2 segundos quando a área de armazenamento encher com 20 peças. Enquanto a área de armaze-
namento estiver cheia , ou seja 20 peças , o motor E1 da esteira 1 não poderá ser acionado. De-
verá haver um botão para ligar o sistema e um para desligar o sistema. Deverá contar também
com um botão de emergência.

93
Anexos
Tipos de dados simples
Cada tipo de dado simples tem um tamanho definido. A tabela seguinte mostra os tipos de
dados simples.

94
Referências Bibliográficas

Elaboração Luiz Henrique Casagrande


Pindamonhangaba - SP, 2004

STEP 7 - SIMATIC SIEMENS

Programar com STEP 7 Lite - SIMATIC - Siemens - Edição 03/2002

Esquema de contatos LAD para S7 300 e 400 - Manual de Referência


Edição 08/2000

Introdução a STEP 7 Lite V 2.0 - Getting Started Edição 03/2002 – Siemens

Diagramação Hélio J.G.A. Hernandes

95

Você também pode gostar