Introdução 5
Funcionamento Básico 8
Vantagens 11
Controladores SIEMENS 12
Elementos da CPU 15
Sistemas de Numeração 18
Operações Lógicas 31
Princípio de Funcionamento 33
Estrutura de Programação 35
Tipos de Estruturas 36
Blocos de Programa 38
Chamada de Blocos 41
Tipos de Dados 43
Linguagem de Programação 49
Set e Reset 67
Flanco de Impulso 69
Temporizadores 71
Contadores 82
Comparadores 88
3
Operações Lógicas Digitais 92
Exercícios 100
4
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 facilmen-
te 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ógi-
ca do tipo E e OU, motivo pelo qual passaram a ser chamados apenas de Controladores Pro-
gramáveis - CP. Os primeiros controladores tinham pouca capacidade de processamento e
suas aplicações limitavam-se à máquinas e pequenos processos que necessitavam de opera-
ções repetitivas. A partir de 1970, com o advento da tecnologia de microprocessadores, os
controladores passaram ter uma grande capacidade de processamento e alta flexibilidade de
programação e expansão. Entre outras características citamos: a capacidade de operar com
números, realizar operações aritméticas com ponto decimal flutuante, manusear dados e se
comunicar com computadores. Desta forma, os CP’s atuais podem atuar tanto em controle
discreto, tais como, automação da manufatura, onde as máquinas apresentam ações automá-
ticas e discretizada no tempo, como em controle contínuo, tais como, processos químicos e
siderúrgicos, com características primordialmente analógicas.
5
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 jar-
gã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 supe-
rior. Com isto foi possível combinar o desempenho do controlador programável com a capaci-
dade 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 computado-
res. A evolução do hardware, conduziu a melhoras significativas nas características do contro-
lador, entre outras citamos:
• Interfaces de E/S microprocessadas. Ex.: módulo PID, módulo ASCII, módulo de posi-
cionamento;
6
MOTORES
LUZES
BOMBAS
BOTÕES
SENSORES
7
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 dispositi-
vos de campo (sensores) e os converte em uma lógica que a CPU pode usar. As CPU tomam
as decisões e executa as instruções de controle baseadas nas instruções do programa da
memória. Os módulos de saída convertem as instruções de controle da CPU em um sinal digi-
tal ou analógico que se pode usar para controlar dispositivos de campo (atuadores). Usa-se
um dispositivo de programação para introduzir as instruções desejadas. Estas instruções es-
pecificam 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.
Saídas
Unidade de
Processo
Central
Programação
8
ATUADORES
MOTOR
SAÍDAS
BOTÕES
CONTROLADOR
ENTRADA
Controle
Anteriormente aos controladores, muitas destas tarefas de controle solucionavam-se mediante
relés ou contatores. Isto se denominava 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 o componente necessário para realizar
uma tarefa especifica. Quando se cometia um erro, os cabos tinham que ser novamente co-
nectados corretamente. Uma alteração em sua função ou uma ampliação do sistema requeria
grandes alterações nos componentes e seu cabeamento.
9
Controlador
Mesmo a tarefa mais complexa, 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 ne-
cessidade de cabeamento para conectar os dispositivos de campo, este é menos intensivo. A
modificação da aplicação e a correção de erros são mais fáceis de realizar. É mais fácil criar e
alterar um programa em um controlador do que cabear e recabear um circuito.
10
Vantagem
Por que CLP?
- Com o uso do CLP ( controlador lógico programável), além de reduções de custos, oferecem
outras vantagens:
-Flexibilidade - modificações de programas podem ser feitos com pouca digitação, pode se
fazer atualizações do sistema sem a presença de um técnico do fabricante, bastando apenas
enviar um novo programa.
- Funções avançadas - os CLPs podem realizar uma grande variação de tarefas de contro-
le, desde ações simples e repetitivas até ações de manipulação de dados complexos.
- Redução de custos - com o uso de CLP, a uma redução significativa em termos de custos
na montagem de máquinas.
11
Controladores SIEMENS
S7-200
O S7-200 denomina-se micro sistema 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 podem utilizar-se em aplicações in-
dustriais mais complexas como máquinas de embutimentos e empacotamentos.
S7-300 e S7-400
Estes controladores usam-se em aplicações mais complexas, que necessitam de um maior
número de Entradas/Saídas. Ambos são modulares e ampliáveis. A fonte de alimentação e as
Entradas/Saídas consistem em módulos independentes conectados a CPU. A escolha entre o
S7-300 e o S7-400 depende da complexidade da tarefa e de uma possível ampliação futura.
12
SIMATIC S7 300 SIEMENS
• Pode ser ligado em rede com interface multi-point ( MPI ), PROFIBUS e Industrial Ether-
net.
• Não há regras para alocação das placas. Configuração e parametrização via Software S7.
13
Dados Técnicos :
A Família S7-300 suporta um set de instruções e endereçamento co-
muns. A tabela acima mostra as especificações técnicas mais importan-
tes para CPU´s 312 a 315.
Numero de Blocos :
Diferenças nas quantidades de números de blocos ( FB, FC, DB ).
Trilhos :
Para as CPU´s 312 e 313, é possível somente um trilho ( sem expansão ) As
CPU´s 314 e 315 suportam até quatro trilhos ( 3 trilhos de expansão ).
Conexão DP :
O S7-315-DP possui uma interface adicional para PROFIBUS DP ( Periferia
Distribuída )
14
ELEMENTOS DA CPU
3. Expulsor do MMC.
5. Segunda Interface X2 - DP
6. Primeira Interface X1 - MPI, conexão 9 pinos. Porta de programação da CPU do S7-300.
7. Conexão da Fonte de Alimentação. Existe um local para bateria de lithium em baixo da
tampa. A bateria salva o conteúdo da memória RAM no caso de uma falha na alimentação
da CPU.
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.
16
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 ex-
pansão. No módulo de expansão são permitidos somente módulos de I/O ( SM )
17
SISTEMAS 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úme-
ros, 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, ...
Sistema Binário
O sistema binário é usado nos controladores programáveis. Tem as seguintes características:
Dois dígitos 0, 1
18
Base 2
Potências de base 2 (1, 2, 4, 8, 16, ...)
No sistema binário, os 1s e 0s se ordenam em colunas. Cada coluna tem um peso. A primeira
coluna tem um peso binário de 20. Isto equivale ao decimal 1. Este é denominado bit menos
significativo. O peso binário dobra-se a cada coluna sucessivamente. A coluna seguinte, por
exemplo, tem um peso de 21, que equivale ao decimal 2. O valor decimal dobra-se em cada
coluna sucessivamente. O número mais a esquerda denomina-se bit mais significativo. No
exemplo abaixo, o bit mais significativo tem um peso binário de 27. É equivalente ao decimal
128.
Conversão 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 de-
cimal 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.
19
No exemplo seguinte, as colunas quarta e quinta a partir da direita contém um 1. O valor de-
cimal da quarta coluna a partir da direita é 8, e o valor decimal da sexta coluna a partir da di-
reita é 32. O decimal equivalente a este número binário é 40.
Outro Método:
Divide-se o número sucessivamente pela base desejada até que o dividendo seja nulo. O nú-
mero na nova base é obtido tomando-se na ordem inversa os restos da divisão, isto é, o digito
mais significativo é o último resto e o menos significativo é o primeiro resto.
número na
base original
11 2 base desejada
LSB 1 5 2
1 2 2
0 1 2
1 0 fim da
conversão
MSB
20
Hexadecimal
A = 10 D = 13
B = 11 E = 14
C = 12 F = 15
428 16 12=C
12 26 10=A
16
10 1 16
1 0 = 1AC16
O decimal 428 dividido por 16 é 26 com um resto de 12. Doze é equivalente a C em hexade-
cimal. Resta 26 que dividido por 16 é 1 com um resto de 10 que é equivalente a letra A. O
hexadecimal equivalente do decimal 428 será então 1AC.
21
160 = 1
161 = 16
B =11
Binário Hexadecimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
Como pode ser observado na tabela acima cada dígito hexadecimal corresponde a um con-
junto de 4 dígitos binários e vice-versa.
22
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 com-
putacional.
23
Conversão de Números
A tabela seguinte mostra alguns poucos valores numéricos em representação decimal, biná-
rio, BCD e hexadecimal.
24
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.
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
0 0 1 1
-0 - 1 -0 -1
0 1 1 0
Observamos que para o caso 0 - 1, o resultado será igual a 1, porém haverá um transporte
para a coluna seguinte que deve ser acumulado no subtraendo e, obviamente, subtraído do
minuendo.
0x0=0
0x1=0
1x0=0
1x1=1
A representação de números binários positivos e negativos pode ser feita utilizando-se os si-
nais " + " ou " - " respectivamente. Na prática, porém em hardware dos sistemas digitais que
processam operações aritméticas, microprocessadores por exemplo, estes sinais não podem
25
ser utilizados, pois tudo deve ser codificador em 0 ou 1. Uma forma para representar0 núme-
ros 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 com-
plemento de 1, conforme se segue.
Complemento De 1
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
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
26
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 )
27
Formato e 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:
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.
28
Exemplo : +310
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
29
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
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
30
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ímbolos “ 0 “ e “1 “.
Podemos ter uma variável Booleana dependente de uma ou mais variáveis Booleanas. Por
exemplo, em resposta à condição de uma chave (variável A ) a qual pode estar aberta ou fe-
chada podemos ter a condição de uma lâmpada (variável L ) acesa ou apagada em respos-
ta. De acordo com uma determinada convenção , como na figura abaixo se convencionamos
que chave aberta A = 0 , a chave fechada A = 1 teremos como resposta a lâmpada apagada
L = 0 ou acesa L = 1.
Expressão Booleana : L = A
Tabela Verdade
ou
A L A L
Aberta ( 0 ) Apagada ( 0 ) 0 0
Fechada ( 1 ) Acesa ( 1 ) 1 1
Lógica E ( And )
Antigamente os circuitos lógicos eram feitos ( implementados ) com relés, hoje usamos por-
tas 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 corresponden-
te é 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
31
Lógica OU ( OR )
A B L A B L
0 (aberta) 0 (aberta) 0 ( apagada ) 0 0 0
0 ( aberta ) 1 ( fechada ) 1 ( acesa ) 0 1 0
1( fechada ) 0 ( aberta ) 1 ( acesa ) 1 0 0
1( fechada ) 1 ( fechada ) 1 ( acesa ) 1 1 1
Lógica Inversora
A função Não ( NOT ) ou função Inversora dá uma saída que é o complemento ( inverso )
A L A L
Aberta ( 0 ) Acesa ( 1 ) 0 1
Fechada ( 1 ) Apagada ( 0 ) 1 0
32
Principio de Funcionamento
Sistema Operacional
inicia vigilância do
Tempo de Ciclo.
PIQ
PII PIQ
PII
Inicialização
No momento em que é ligado o CLP executa uma série de operações pré - programa-
das, gravadas em seu Programa Monitor:
• Verifica o funcionamento eletrônico da C.P.U. , memórias e circuitos auxiliares;
• Verifica a configuração interna e compara com os circuitos instalados;
• Verifica o estado das chaves principais ( RUN / STOP , PROG, etc. );
• Desativa todas as saídas;
• Verifica a existência de um programa de usuário;
• Emite um aviso de erro caso algum dos itens acima falhe.
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á consulta-
33
da pelo CLP no decorrer do processamento do programa do usuário. Comparar com o Pro-
grama do Usuário
O CLP ao executar o programa do usuário , após consultar a Memória Imagem das Entradas ,
atualiza o estado da Memória Imagem das Saídas, de acordo com as instruções definidas
pelo usuário em seu programa.
O CLP escreve o valor contido na Memória das Saídas , atualizando as interfaces ou módulos
de
saída. Inicia - se então, um novo ciclo de varredura.
Em comparação com o acesso direto aos módulos de entrada e saída, o acesso a imagem de
processo oferece a vantagem de que a CPU dispões de uma imagem coerente dos sinais do
processo durante a execução cíclica do programa. Se durante a execução do programa varia
um estado de sinal em um módulo de entrada, este estado de sinal se conserva na imagem
de processo até que esta seja atualizada no próximo ciclo.
Além disso, o acesso a imagem de processo requer muito menos tempo que o acesso
direto aos módulos de sinais, já que a imagem de processo 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íclico, assim como todas as partes do programa que interrompem este ciclo, por exemplo a
execução de outros blocos de organização e as atividades do sistema como a atualização das
imagens do processo. Este tempo é vigiado pelo sistema. Transcorrido este tempo a CPU
passa para o estado STOP e chama a OB de erro de tempo.
34
Estrutura de Programação
35
Tipos de Estrutura
Programa Linear
O programa inteiro reside em um único bloco de instrução contínuo ( OB1 ). Esta estrutura é
semelhante a um circuito de relés substituído por um controlador lógico programável. Como o
nome diz, um programa descreve um grupo de instruções que são repetidamente realizadas
sequencialmente. Simplifica-se as funções de administração do software considerando que há
somente um bloco. Por outro lado, pelas instruções estarem dentro do mesmo bloco elas são
executadas a cada ciclo até mesmo as partes que não são usadas pelo programa. Este méto-
do não utiliza a CPU de forma eficiente. Outra dificuldade está na manutenção do software já
que será necessário analisar todo o programa para fazer uma pequena alteração.
Programa particionado
O programa é dividido em blocos, cada bloco contém uma lógica específica para dispositivos
ou tarefas. As informações residentes no bloco de organização ( OB1) determinam a ordem
de execução dos blocos a serem processados. Um programa particionado pode, por exemplo,
conter blocos de instruções com os quais os modos 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
36
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 uni-
versalmente ( Genéricos ). Os parâmetros atuais ( os endereços de entradas e saídas ) são
especificados durante a chamada do bloco.
FC 10
Motor 1
OB 1 FC 10
Motor 2
FC 10
Motor 3
37
Blocos de Programa
O Simatic S7 dispõe de uma série de blocos que dividem a memória de programa e a de da-
dos em seções, permitindo uma programação estruturada e um acesso ordenado aos dados.
O número de blocos vai depender do tipo de CPU empregada, dispondo em geral dos seguin-
tes:
Tipos de Módulos
• OB 1 (ciclo livre): é o módulo principal. Você pode salvar o seu programa inteiro no OB1 e
deixar processando a cada ciclo. Você pode também salvar o seu programa em vários blocos
e usar o OB1 para chamar estes blocos quando necessário.
• OB de erro e alarme: são os que contém a seqüência de ações a realizar no caso de que se
produza um alarme ou erro programado. Ex. : OB40 - OB80
• OB de arranque: neste módulo podemos introduzir valores para que permitam o arranque
definido da instalação, bem como um arranque inicial caso haja uma falha de alimentação. Ex.
: OB100 - OB101
A Função é um bloco de operação lógica similar ao bloco de função para o qual não é desig-
nado á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 perdi-
das 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, deve-se sempre indicar parâmetros
atuais.
Campo de Aplicação:
A FC contém um programa que se executa cada vez que a FC é chamada por outro bloco
lógico. As funções podem ser utilizadas para devolver um valor de função ao bloco invocante,
por exemplo, funções matemáticas. Executar uma função tecnológica, por exemplo, controle
individual com combinação binária.
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, pa-
râmetro formal “START” um parâmetro atual “I 3.6”. Podem ser utilizados em parâmetros de
entrada e saída.
Um bloco de dados é uma área de dados permanente na qual dados ou informações que ou-
tras funções coletaram são armazenados. Bloco de dados são áreas de leitura/escrita que
pode ser carregado na CPU como parte de seu programa.
39
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.
Um bloco de função de sistema é parte integral da CPU. Você pode utilizar um SFB em seu
programa, sem carregar como parte de seu programa porque os SFB’s são parte do sistema
operacional. SFB’s devem ser associados a um DB, o qual deverá ser transferido para a CPU
como parte de seu programa.
Exemplo: na CPU 312 -> SFB 29 “ HS_COUNT “ Contador de Alta Velocidade.
Função de sistema é uma pré programada e testada função que é integrada a CPU. Algumas
das tarefas suportadas por estas funções são setar parâmetros para módulos, comunicação
de dados, funções de cópia, manipulação do relógio, contador de horas de funcionamento.
etc. Uma SFC pode ser chamada pelo seu programa, porém sem precisar fazer parte dele (
não ocupa memória de trabalho ).
Um bloco de dados de sistema é uma área de memória que a ferramenta STEP 7 gera para
arquivar dados necessários para o controle de operações. Informações, tais como dados de
configuração, conexões de comunicação e parâmetros são salvos em SDB’s.
OBS. :
Cada CPU possuí seus SFBs e SFCs específicos. Para obter maiores detalhes, consulte o
manual Funções Standart e Funções de Sistema das CPUs Step 7-300.
40
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
tratamento do bloco chamado, continua-se o processamento do bloco invocante com a opera-
ção subseqüente a da chamada do bloco.
41
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 blo-
cos.
· Cada bloco que se chame já deverá existir. Portanto, em uma fila de blocos, a ordem de cri-
ação deverá ser da direita para esquerda.
Conforme estas regras, a ordem de criação dos blocos da figura de exemplo seria o seguinte:
42
Tipos de Dados
Os operandos das instruções compõem-se de um dado que pode ser de distintos tipos. Os
tipos de dados possíveis são:
• bit
• B: Byte (8 bits).
• W: Word ( Palavra 16 bits).
• D: Double Word ( Palavra Dupla 32 bits).
Marcas de Memória
Quando realizamos nosso programa e operamos a nível de bit em operações lógicas (and, or,
etc.) pode ser que nos apareça a necessidade de armazenar o resultado lógico que tenhamos
em um determinado momento. Para isso dispomos de 256 marcas de memória de 1 byte, ou
seja , um total de 2048 marcas de 1 bit, que podemos endereçar como:
43
Entradas e saídas
Entrada
Byte
Bit
É um elemento usado para monitorar uma ação ou um evento, como um interruptor, pressos-
tato, 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
44
IMAGEM DO PROCESSO DAS SAÍDAS: PIQ
• E/S digitais:
São as e/s mais freqüentes e que em maior quantidade vamos ter.
• E/S analógicas:
Estas sim são e/s adicionais, porem tem que ser configuradas também no Step7 para
especificar a faixa de endereços que vão ocupar.
45
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
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
46
Exemplos :
ID10 = IB 10 + IB 11 + IB 12 + IB13
47
Endereçamento Absoluto e Simbólico
Endereços Absolutos:
Endereços Simbólicos :
O Endereçamento simbólico torna possível trabalhar com símbolos tais como Motor_liga, ao
invés do endereçamento absoluto. Os símbolos para entradas, saídas, temporizadores, con-
tadores, memory makers e blocos são arquivados na lista de simbólicos. Neste caso, os sím-
bolos 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.
48
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 con-
junto de símbolos, comandos, blocos, figuras, etc, com regras de sintaxe e semântica.
49
50
51
52
53
54
55
56
57
58
59
60
61
Instruções com Bits
As instruções de BIT trabalham com dois valores, 1 e 0. Com instrução na forma de um conta-
to ou de uma saída, 1 indica ativado ou energizado; 0 indica desativado ou desenergizado.
Instruções de BIT interpretam o estado do sinal 0 ou 1 e os combina de acordo com a Lógica
Booleana. O resultado destas combinações é 0 ou 1, denominado como “Resultado Lógico da
Operação” ( R L O ).
62
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.
63
Operações Lógicas com Ladder
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
Na situação acima, quando tivermos “1” nas entradas I 32.0 E I 32.1 a saída Q 32.0 é liga-
da, 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
Na situação acima, quando não tivermos “1” nas entradas I 32.0 E I 32.1 a saída Q 32.0 é
ligada, e se qualquer das entradas tornar-se “1” a saída Q 32.0 é desligada.
OR
Na situação acima, quando tivermos “1” nas entradas I 32.0 OU I 32.1 a saída Q 32.0 é liga-
da.
64
NOR
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”
).
Exemplo :
Conector
Conector é um elemento intercalado que cumpre uma função de armazenar; o conector arma-
zena o RLO atual ( o estado do sinal de fluxo de corrente ) no < Operando > que foi especifi-
cado.
65
Este elemento de armazenamento memoriza a combinação lógica de bits da ultima linha aber-
ta e que está antes dele. È inserido em série com outros elementos como um contato. O ele-
mento 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 :
66
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 indica-
do 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”.
Se o estado do sinal de entrada S=1, e a entrada R=0 o operando ( bloco acima ) é setado.
Se o estado do sinal R torna-se “1”, o operando setado anteriormente é resetado para “0”,
independente do estado da entrada S ( Reset Dominante )
67
Bloco Reset/Set - Set Dominante
68
Flanco de Impulso
RLO
1
Detecta uma mudança de estado de sinal do <Operando> de “1” para “0” e indica esta mu-
dança com RLO = 1 com um pulso de um ciclo ( scan ).
Exemplo :
69
Detectar Flanco Crescente 0 -> 1
Detecta uma mudança de estado de sinal do <Operando> de “0” para “1” e indica esta mu-
dança com RLO = 1 por um ciclo ( Scan ).
70
71
72
73
74
75
76
77
78
79
80
81
82
Temporizadores
A CPU reserva uma área de memória para os temporizadores. Nesta área de memória, uma
palavra de 16 bits é reservada para cada endereço de temporizador até 256.
Consulte os Dados Técnicos da CPU para saber quantos temporizadores estão disponíveis. O
Valor de tempo pode ser parametrizado na faixa de 10 ms até 9990 s ( 2 horas, 46 minutos,
30 segundos ) em incrementos de 10 milisegundos.
Identificação
Identifica-se com a letra T.
De T0 a T255
Valores de Temporização
O Valor de temporização é carregado nos seguintes formatos e sintaxe :
S5TIME#aH_bM_cS_dMS
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
83
Ativar Temporizadores
PULSO
<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 funcio-
nando 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 tempori-
zador T5 inicia. O temporizador continua em funcionando com o valor de temporização indica-
do de 2 s enquanto I 0.0 seja "1". Se o estado de sinal em I 0.0 muda de "1" para "0" antes de
transcorrer o tempo, o temporizador para. A saída Q 4.0 é "1" enquanto o temporizador está
funcionando. Se o estado do sinal na entrada I 0.1 muda de "0" para "1", o temporizador T5
vai a 0, ou seja, para e o valor de temporização restante vai para "0".
O Tempo máximo durante o qual o sinal de saída permanece em “1”é idêntico ao tempo pro-
gramado. O sinal de saída permanece em “1” por um período menor se o sinal de entrada
muda para “0”.
84
EXTENDED PULSE (PULSO PROLONGADO)
<Nº de T>
---( SE )
<Valor de temporização>
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 transcor-
rer o tempo. O estado do temporizador é "1" enquanto está em funcionamento. O temporiza-
dor volta 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 tempo-
rizador T5 inicia. O temporizador continua em funcionamento com o valor de temporização
indicado, sem ser afetado por um flanco negativo no RLO. Se o estado do sinal na I 0.0 muda
de "0" para "1" antes de transcorrer o tempo, o temporizador reinicia. A saída Q 4.0 é "1" en-
quanto 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".
85
ON DELAY (COM RETARDO NA CONEXÃO)
<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
temporizador será "1" se o <valor de temporização> transcorreu sem erros e o RLO continua
sendo "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 tem-
porizador T5 inicia. Se transcorre o tempo e o estado do sinal na I 0.0 continua sendo "1", a
saída Q 4.0 é "1". Se o estado do sinal na entrada I 0.0 muda de "1" para "0", o temporizador é
resetado e Q 4.0 é "0". Se o estado do sinal na entrada I 0.1 muda de "0" para "1", o tempori-
zador 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”.
86
STORED ON DELAY (COM RETARDO NA CONEXÃO COM MEMÓRIA)
<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
expressamente em 0. O estado do temporizador só pode ser resetado se for colocado em ze-
ro. O temporizador volta a iniciar-se com o valor de temporização indicado se o RLO muda de
"0" para "1" enquanto transcorre o tempo.
Se o estado do sinal na entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), o tem-
porizador T5 inicia. Se o estado do sinal na entrada I 0.0 muda de "0" para "1" antes de trans-
correr 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, in-
dependentemente do tempo em que o sinal de entrada esteja em “1”.
87
OFF DELAY (COM RETARDO NA DESCONEXÃO)
<Nº de T>
---( SF )
<Valor de temporização>
Descrição da operação
Se o estado do sinal na entrada I 0.0 muda de "1" para "0", o temporizador inicia. Q 4.0 é "1"
se I 0.0 for "1" ou se o temporizador está em funcionamento. Se o estado do sinal na entrada I
0.1 muda de "0" para "1", o temporizador T5 vai para “0”, ou seja, para, e o valor de tempori-
zaçã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”.
88
Ativar e Parametrizar Blocos Temporizadores
S_PULSE
Descrição da operação
O valor de temporização atual fica depositado nas saídas BI e BCD. O valor de temporização
na saída BI está em código binário, o valor na saída BCD está em formato decimal codificado
em binário. O valor de temporização atual eqüivale ao valor inicial de TV menos o valor de
temporização que foi transcorrido desde o início do temporizador.
Se o estado do sinal da entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), se ativa
o temporizador T5. O temporizador continua em funcionamento com o valor de temporização
indicado de 2 segundos (2 s) enquanto a entrada I 0.0 seja “1”. Se o estado de sinal da entra-
da I 0.0 muda de "1" para "0" antes de transcorrer o tempo, o temporizador para. A saída Q
4.0 é "1" enquanto o temporizador estiver em funcionamento, e "0" se o tempo transcorrido ou
se o temporizador foi posto em “0”.
89
S-PEXT
Descrição da operação
Se o estado do sinal da entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), ativa-se
o temporizador T5. O temporizador continua em funcionamento com o valor de temporização
indicado de 2 segundos sem ser afetado por um flanco decrescente na entrada S. Se o estado
do sinal da entrada I 0.0 muda de "0" para "1" antes de transcorrer o tempo, o temporizador
reinicia. Se o estado do sinal da entrada I 0.1 muda de "0" para "1" enquanto o temporizador
estiver funcionando, este vai para “0”. A saída Q 4.0 é "1" enquanto o temporizador estiver
funcionando.
90
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
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
continua 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).
91
S_ODTS
Descrição da operação
S_ODTS (Parametrizar e iniciar o temporizador com retardo na conexão com memória) inicia
o temporizador indicado quando há um flanco crescente na entrada de início S. Para iniciar
um temporizador, tem que produzir-se necessariamente uma mudança de sinal. O temporiza-
dor continua em funcionamento com o valor de temporização indicado na entrada TV mesmo
que o estado do sinal na entrada S for a "0" antes de que transcorra o tempo. O estado do
sinal na saída Q será "1" se transcorrido o tempo, independentemente do estado do sinal que
tenha a entrada S. O temporizador reinicia com o valor de temporização indicado se o estado
do sinal na entrada S mude de "0" para "1" enquanto o temporizador está em funcionamento.
O temporizador vai para “0” se a entrada de desativação R do temporizador for a "1", indepen-
dentemente do RLO na entrada S. Então o estado do sinal na saída Q é "0". O valor de tem-
porização atual fica depositado nas saídas BI e BCD. O valor de temporização na saída BI
está em código binário, o valor na saída BCD está em formato decimal codificado em binário.
O valor de temporização atual eqüivale ao valor inicial de TV menos o valor de temporização
que foi transcorrido desde o início do temporizador.
Se o estado do sinal da entrada I 0.0 muda de "0" para "1" (flanco crescente no RLO), Ativa-se
o temporizador T5. O temporizador continua em funcionamento sem que uma mudança de
sinal de "1" para "0" na entrada I 0.0 repercuta nele. Se o estado do sinal da entrada I 0.0 mu-
da 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).
92
S_OFFDT
Descrição da operação
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”).
93
Contadores
A CPU reserva uma área de memória para os contadores. Nesta área de memória, uma pala-
vra de 16 bits é reservada para cada endereço de contador até 256. Consulte os Dados Téc-
nicos da CPU para saber quantos contadores estão disponíveis. O Valor máximo presetado é
999 (BCD).
Identificação
Identifica-se com a letra C.
De C0 a C255
Valores de Temporização
O Valor de Contagem é carregado no seguinte formato e sintaxe :
C#127
c#32
C#5
Sendo :
C# Identifica o Formato Decimal Codificado em Binário BCD
127
32 Números de Contagem entre 0 e 999
5
Contador Crescente
Contador Decrescente
Contador Crescente / Decrescente
94
Descrição da Operação
Exemplo:
Contar para frente incrementa em “1” o valor do contador indicado se houver um flanco as-
cendente 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:
95
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 ).
Contar para trás decrementa em “1” o valor do contador indicado se houver um flanco ascen-
dente 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:
96
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 ).
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
97
zero. Em CV é armazenado o valor de contagem atual em Hexadecimal e em CV_BCD é ar-
mazenado o valor de contagem atual em BCD.
S_CD
CD
Exemplo :
S_CD
CD
Ao mudar a entrada I 0.2 de “0” para “1” , o contador toma o valor predeterminado em PV. Se
o estado do sinal em I 0.0 muda de “0” para “1”, o valor do contador C5 decrementa-se em “1”,
menos se o valor de C5 for “0”. A Saída Q 4.0 será “1” sempre que o valor de C5 não seja
zero. Em CV é armazenado o valor de contagem atual em Hexadecimal e em CV_BCD é ar-
mazenado o valor de contagem atual em BCD.
98
Parametrizar e Incrementar/Decrementar Bloco - Counter Up/Down
Exemplo:
Ao mudar a entrada I 0.2 de “0” para “1”, o contador toma o valor de pré-seleção em PV. Se o
estado do sinal em I 0.0 muda de “0” para “1”, o valor do contador C5 incrementa em “1”, a
menos que o valor de C5 for “999”. Se I 0.1 muda de “0” para “1”, C5 decrementa em “1”, a
não ser que o valor ce C5 seja “0”. A Saída Q 4.0 será “1” se o valor cd C10 não for zero.
Em CV é armazenado o valor de contagem atual em Hexadecimal e em CV_BCD é armaze-
nado o valor de contagem atual em BCD.
99
Comparadores
Com instruções de comparação, você pode comparar os seguintes pares de valores numéri-
cos :
? - Tipo de Comparador
Tipo de Compara-
dor
A saída Q 4.0 será ativada se I 0.0 “e” I 0.1 forem “1” e se MW0 for >= MW2.
100
Saltos e Chamada de Blocos
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 exe-
cutarão as operações que se encontram entre a operação de salto e o destino
Operações Intermediária
O salto executa-se em todos os casos, omitindo-se (“passando por cima“) as operações que
se encontram entre a operação de salto e o destino.
101
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.
102
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”.
103
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.
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”.
104
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
especificado em OUT. A instrução é executada se o sinal de entrada de EN = 1. ENO tem o
mesmo estado do sinal de EN.
Tabela Verdade OR :
A B S
0 0 0
0 1 1
1 0 1
1 1 1
Exemplo: Setando o bit 0 na MW20. A lógica será executada se a entrada I 5.1 for “1”.
105
Operações Aritméticas Básicas
O set de instruções contém várias funções aritméticas, como exibidas abaixo :
Identificação da Opera-
ção
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
106
Manipulação de Blocos
Parametrizáveis
Criaremos a partir de agora um programa exemplo com uma função passo a passo.
MISTURADOR PROGRAMÁVEL
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
107
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 contex-
tual.
No quadro de diálogo propriedades selecione o nome e a linguagem desejada. Em se-
guida OK.
108
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 tem-
pos. Chamaremos esta função de RECEITA.
Abra FC1 .
109
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ál-
vula da Farinha V1 ( Q 124.0 ). Na entrada R do temporizador insira um contato aberto e atri-
bua 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 esque-
cendo 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.
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.
Click e Arraste
110
A linha ficará como mostrado na figura abaixo.
Farinha → S5T#2S
Leite → S5T#5S
Motor → S5T#4S
111
Exercícios
1 – 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.
112
2 - FURADEIRA
Entradas:
S1 - Sensor Acima
S2 - Sensor Abaixo
B1 - Sobe Furadeira
B2 - Desce Furadeira
B3 - Parada
Saídas:
113
3 - REVERSÃO DE SENTIDO DE ROTAÇÃO DE MOTOR
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 :
Saídas :
TÉRMICO
MOTOR
114
4 -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.
115
5 - SISTEMA ESTRELA / TRIÂNGULO PARTIDA DE MOTORES
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
116
6 - 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 pressionando-se
o botão desligar. A seleção do tipo de garrafa é feita a partir de 3 botões pulsadores indepen-
dentes 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 recebe nível
lógico “1”.
Entradas :
Botão Liga
Botão Desliga
Botão de Seleção P
Botão de Seleção M
Botão de Seleção G
Sensor A
Sensor B
Sensor C
Relé Térmico
Saída :
Motor
SENSORES C
B
A
G G G
M P M
MOTOR
117
7 - CONTROLE DE MISTURA
V1 V2 V3 V4
MOTOR DO
AGITADOR
LIGA VÁLVULA
DE SAÍDA
DESL.
Entradas :
Botoeira Liga
Botoeira Desliga
Saídas:
118
Funcionamento :
119
8 - 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 acesa, todas deve-
rã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
120
9 - SEQUENCIAL
PASSO
CANAL
121
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á estar acesa outra
luz indicando “LIVRE”.
Entradas :
S1 - Sensor de Saída
S2 - Sensor de Entrada
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
122
PROJETO
A figura mostra um sistema com duas esteiras transportadoras e uma área de armazenamento
temporário colocada entre ambas. A esteira transportadora 1 transporta peças para área de
armazenamento. Uma barreira óptica situada no final da esteira 1 junto da área de armaze-
namento 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 ca-
minhões e os recolhem para entrega-los aos clientes. Uma barreira óptica situada no final da
esteira transportadora 2 junto a área de armazenamento determina quantas peças abando-
nam a área de armazenamento para ser transportados a plataforma de carga.Um painel indi-
cador com três lâmpadas assinala o nível da área de armazenamento temporário. Um sinali-
zador sonoro deverá soar por 2 segundos quando a área de armazenamento encher com 20
peças. Enquanto a área de armazenamento estiver cheia , ou seja 20 peças ou mais, o motor
E1 da esteira 1 não poderá ser acionado. Deverá haver um botão para ligar o sistema e um
para desligar o sistema. Deverá contar também com um botão de emergência.
124
Referências Bibliográficas
Edição 08/2000
125