programacao basica clp altus
TRANSCRIPT
Programação Básica Clp Altus.
MasterTools Programming.MasterTools Programming.
Al-600, PL103 e PO3045Al-600, PL103 e PO3045..
1
ÍndiceÍndice
MasterTools Programming............................................................................ 1
Al-600, PL103 e PO3045.................................................................................. 1
Índice........................................................................................................................... 2
1.0 Clp - Evolução histórica..................................................................................... 6
1.1 Filosofia básica................................................................................................... 6
1.2 Linguagens e formatos para programação......................................................... 6
1.3 Aplicabilidade..................................................................................................... 7
1.4 Hardware característico..................................................................................... 7
1.5 Sistemas de memória......................................................................................... 9
1.5.1 Memória Executiva (Rom e Eprom)............................................................. 9
1.5.2 Memória do Sistema (Ram)......................................................................... 9
1.5.3 Memória de Status (Ram)............................................................................ 9
1.5.4 Memória de dados (Ram)............................................................................ 9
1.5.5 Memória do Usuário (Ram e Eprom)........................................................... 9
2.0 Sistemas de numeração................................................................................... 10
3.0 Lógica digital.................................................................................................... 11
4.0 Portas lógicas básicas...................................................................................... 11
4.1.1Função “E” (AND)....................................................................................... 11
4.1.2 Função “OU” (OR).................................................................................... 11
4.1.3 Função NÃO (NOT)............................................................................... 13
4.1.4 Função NÃO E (NAND).......................................................................... 13
4.1.5 Função NÃO OU (NOR)........................................................................... 14
4.1.6 Função OU EXCLUSIVO (XOR)................................................................ 14
4.1.7 Função NÃO OR EXCLUSIVO (EXNOR).................................................. 15
4.1.8 Função Memória (FLIP-FLOP).................................................................. 15
5.0 Controlador AL-600.......................................................................................... 16
5.1 Programação básica dos CLPs Altus............................................................... 16
5.1.1 Aspectos gerais......................................................................................... 16
5.1.1.1 Lógicas................................................................................................ 16
5.1.1.2 Operandos ......................................................................................... 16
5.1.1.3 Operando relé de entrada – E............................................................. 17
2
5.1.1.4 Operando relé de saída - S................................................................. 17
5.1.1.5 Operando relé auxiliar – A................................................................... 17
5.1.1.6 Operando endereço de barramento – R............................................. 18
5.1.1.7 Operando memória - M....................................................................... 18
5.1.1.8 Operando decimal – D........................................................................ 18
5.1.1.9 Operando constante – KM e KD......................................................... 19
5.1.1.10 Operando tabela – TM e TD............................................................. 19
5.1.1.11 Acesso indireto - *............................................................................. 19
5.1.1.12 Instruções.......................................................................................... 19
5.1.1.13 Contatos normalmente aberto e fechado - RNA e RNF.................... 20
5.1.1.14 Bobina Simples, liga e desliga – BOB, BBL, BBD............................. 20
5.1.1.15 Bobina de salto – SLT....................................................................... 20
5.1.1.16 Relé de pulso – PLS.......................................................................... 20
5.1.1.17 Relé Mestre – RM e FRM.................................................................. 21
6.0 Introdução: Características dos CLPs.............................................................. 21
7.0 Conceitos básicos............................................................................................ 21
7.1.1 Controlador programável (CP).................................................................. 21
7.1.2 Terminal de programação......................................................................... 21
7.1.3 Terminal de supervisão............................................................................. 22
7.1.4 Unidade central de processamento.......................................................... 22
8.0 Arquitetura dos CPs Altus................................................................................ 23
8.1.1 Barramentos.............................................................................................. 23
8.1.2 Módulos de entradas e saídas................................................................... 23
9.0 MasterTools...................................................................................................... 24
9.1.1 Descrição.................................................................................................. 24
9.1.2 Conexões.................................................................................................. 24
9.1.3 Configuração do canal serial.................................................................... 24
9.2 Conceitos ........................................................................................................ 25
9.2.1 Projeto....................................................................................................... 25
9.2.2 Módulos..................................................................................................... 25
9.2.2.1 Módulo C: Configuração...................................................................... 25
9.2.2.2 Módulo E: Execução........................................................................... 26
3
9.2.2.2.1 E000 Módulo de Inicialização:......................................................... 26
9.2.2.2.2 E001 Módulo Seqüencial de Programa Aplicativo:......................... 26
9.2.2.2.3 E018 Módulo Acionado por Interrupção de Tempo:........................26
9.2.2.2.4 E020 Módulo Acionado pela Entrada de Interrupção:.....................27
9.2.2.3 Módulo P: Procedimento..................................................................... 27
9.2.2.4 Módulo F: Função. ............................................................................. 27
9.3 Linguagem estruturada em blocos................................................................... 28
10.0 Exemplo de programação em ambiente MasterTools................................... 29
10.1 Criando um projeto novo............................................................................... 29
10.1.1 Configurando o modelo de UCP.............................................................. 29
10.1.2 Configurando o Barramento de E/S......................................................... 30
10.1.3 Iniciando um programa:........................................................................... 31
10.1.3.1 Inserindo um contato......................................................................... 32
10.1.3.2 Introduzindo uma bobina:.................................................................. 33
10.1.4 Estabelecendo comunicação. ................................................................ 34
10.1.5 Compilando o programa......................................................................... 35
10.1.6 Monitorando o Programa........................................................................ 35
11.0 Programação de Controladores Programáveis............................................. 37
11.1 Diagrama de contatos................................................................................... 37
11.2 Diagrama de blocos lógicos.......................................................................... 37
11.3 Lista de instrução.......................................................................................... 38
11.4 Linguagem Corrente...................................................................................... 38
11.5 Análise das linguagens de programação...................................................... 38
11.5.1 Quanto a Forma de Programação .......................................................... 39
11.5.2 Documentação......................................................................................... 39
11.5.3 Conjunto de Instruções............................................................................ 39
11.6 Normalização................................................................................................ 40
12.0 Programação em Ladder.............................................................................. 41
12.1 Desenvolvimento do programa Ladder......................................................... 43
12.1.1 Associação de contatos no Ladder.......................................................... 45
12.1.2 Instruções................................................................................................ 46
12.1.3 Instruções Básicas................................................................................... 47
4
12.1.4 Funcionamento dos Principais Blocos..................................................... 47
12.1.5 Instrução de Temporização..................................................................... 48
12.1.6 Instrução de Contagem............................................................................ 49
12.1.7 Instrução Mover....................................................................................... 50
12.1.8 Instrução Comparar................................................................................. 52
12.1.9 Instruções Matemáticas........................................................................... 53
12.1.10 Instrução Soma...................................................................................... 53
12.1.11 Instrução Subtração............................................................................... 56
12.1.12 Instrução Multiplicação.......................................................................... 57
12.1.13 Instrução Divisão................................................................................... 59
12.1.14 Instruções Lógicas................................................................................. 60
12.1.15 Instrução And......................................................................................... 60
12.1.16 Instrução Or........................................................................................... 62
12.1.17 Instrução Xor......................................................................................... 63
13.0 Exercícios....................................................................................................... 66
14.0 Exercícios Intertravamento: Circuitos de Comando...................................... 69
15.0 Bibliografia..................................................................................................... 71
5
1.01.0 Clp -Clp - Evolução histórica.Evolução histórica.
• No final da década de 60, por uma questão de necessidade de aumento da
produção industrial, a GENERAL MOTORS delineou um projeto que foi
realizado por empresas prestadoras de serviço na área de automação
industrial, dando origem assim aos Controladores Lógicos Programáveis.
• Início da década de 70, algumas empresas já iniciavam um projeto de
implementação dos referidos controladores, substituindo os volumosos
circuitos de relés eletromecânicos.A implantação dos Cps nos diversos
processos da produção industrial gerou os seguintes resultados:
o Maior segurança.
o Maior velocidade e volume de produção.
o Melhor qualidade.
1.11.1 Filosofia básica.Filosofia básica.
Projetado para substituir antigos quadros de relés o controlador deve ocupar
pequeno espaço físico, apresentar flexibilidade para possíveis mudanças na lógica
de controle, ser resistente ao ambiente e ser imune a toda natureza de ruídos.
1.21.2 Linguagens e formatos para programação.Linguagens e formatos para programação.
O cuidado dedicado ao desenvolvimento de um a linguagem adequada é prioridade
do fabricante, desta forma, o formato torna-se fundamental para aceitação do
produto no mercado. Este deve ser de fácil operação e também oferecer uma
grande flexibilidade de programação e estruturação.
Entra os formatos encontrados no mercado o mais popular é o LADDER, que utiliza
diagramas de contatos. Dentre outros tipos existentes no mercado temos: Lista de
instruções, Blocos lógicos, Linguagens Descritivas, e etc.
6
1.31.3 Aplicabilidade.Aplicabilidade.
• Sistemas de segurança e intertravamento
• Processo em batelada.
• Controle contínuo.
1.41.4 Hardware característico.Hardware característico.
Um CP é basicamente um pequeno computador dedicado, em sua estrutura física
encontramos:
• Unidade Central de Processamento.
• Memória do tipo ROM para armazenamento do FIRMWARE (programa onde
se encontram os principais códigos de operação da máquina).
• Memória RAM para armazenamento de dados e programas do usuário
• Dispositivos de Entrada e Saída para a comunicação com o exterior
Por outro lado, algumas características são particulares nos Cps, como por exemplo:
• Espaço de memória RAM com mapeamento para uso específico na aplicação
fim, em outras palavras durante o projeto do controlador lógico programável
seus espaços de memória são previamente organizados durante a
elaboração do FIRMAWARE. Isto ocorre porque os Cps são equipamentos
dedicados a um tipo de aplicação específica, admitindo apenas serem
programados com SOFTWARES desenvolvidos especificamente para eles.
7
• Normalmente é utilizado um dispositivo de SOFTWARE que monitora o tempo
limite
• Para a varredura do programa do usuário (watch dog time)
• Os dispositivos de entrada saída (pontos digitais), são geralmente isolados para
evitar ruídos e também a danificação interna por picos de tensão na entrada ou
saída.
A operação simplificada de um CP pode ser representada pela estrutura abaixo:
• o processador de CP efetua a leitura das entradas a atualiza a tabela imagem
de entrada, logo após executa o programa do usuário e atualiza a tabela
imagem de saída.
8
1.51.5 Sistemas de memória.Sistemas de memória.
O sistema de memória é uma parte de vital importância no processador de um
controlador programável, pois armazena todas as instruções assim como os dados
necessários para executá-las.
A capacidade de memória de um CP pode ser representada pôr um mapa chamado
MAPA DE MEMÓRIA.
Independente dos tipos de memória utilizadas, o MAPA DE MEMÓRIA de um
controlador programável pode ser dividido em cinco áreas principais
1.5.11.5.1 Memória Executiva (Rom e Eprom).Memória Executiva (Rom e Eprom).
Armazena o sistema operacional, o qual é responsável pôr todas as funções
operacionais do CP.
1.5.21.5.2 Memória do Sistema (Ram).Memória do Sistema (Ram).
Armazenar resultados e/ou informações intermediárias, gerados pelo sistema
operacional.
1.5.31.5.3 Memória de Status (Ram).Memória de Status (Ram).
Armazenar os estados dos sinais de entradas e saídas.
1.5.41.5.4 Memória de dados (Ram).Memória de dados (Ram).
Armazenar dados referentes ao programa do usuário.
1.5.51.5.5 Memória do Usuário (Ram e Eprom)Memória do Usuário (Ram e Eprom)
Armazenar o programa de controle desenvolvido pelo usuário.
9
2.02.0 Sistemas de numeração.Sistemas de numeração.
DECIMAL: Sistema representado pôr dez algarismos 0, 1,2,3,4,5,6,7,8,9; este utiliza
a “base” 10.
BINÁRIO: Sistema representando somente pôr dois algarismos 0,1; portanto de
“base” 2.
OCTAL E HEXADECIMAL: Estes sistemas de numeração são de interesse pela sua
relação com o sistema binário. No sistema octal a “base” é oito e os dígitos usados
são: 0,1,2,3,4,5,6,7. No sistema hexadecimal a “base” é dezesseis e os dígitos são
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
A relação especial resulta do fato que 3 algarismos binários podem representar oito
números diferentes e que 4 algarismos binários podem representar 16 números
diferentes.
Abaixo a tabela nos mostra a equivalência entre os dois sistemas
Decimal Hexadecimal Binário Octal0 0 0000 01 1 0001 12 2 0010 23 3 0011 34 4 0100 45 5 0101 56 6 0110 67 7 0111 78 8 1000 109 9 1001 1110 A 1010 1211 B 1011 1312 C 1100 1413 D 1101 1514 E 1110 1615 F 1111 17
10
3.03.0 Lógica digital.Lógica digital.
A eletrônica utiliza o sistema numérico binário, devido a este simplificar os circuitos
eletrônicos. Desta forma criou-se à álgebra baseada em dois estados, zero (falso) e
um (verdadeiro).
Assim adotou-se a álgebra desenvolvida pôr George Boole (1815-1854), ficou
conhecida como álgebra de Boole. Esta álgebra é representada eletronicamente pôr
dois estados distintos.
4.04.0 Portas lógicas básicas.Portas lógicas básicas.
4.1.14.1.1 Função “E” (AND)Função “E” (AND)
A função “E” é igual a “1”, somente quando todas as variáveis forem iguais a “1”.
4.1.24.1.2 Função “OU” (OR)Função “OU” (OR)
A função “OU” é igual a “1” , somente se uma ou mais variáveis forem iguais a “1”.
11
4.1.34.1.3 Função NÃO (NOT)Função NÃO (NOT)
A saída da função “NÃO” é igual a “1” , somente se sua entrada é “0”. Se sua
entrada for igual a “0” sua saída será igual a “1”. A saída é a inversão da entrada.
4.1.44.1.4 Função NÃO E (NAND)Função NÃO E (NAND)
É a função “E” com a saída negada.
13
4.1.54.1.5 Função NÃO OU (NOR).Função NÃO OU (NOR).
É uma função “OU” com a saída negada.
4.1.64.1.6 Função OU EXCLUSIVO (XOR).Função OU EXCLUSIVO (XOR).
É uma função “OU EXCLUSIVO ” terá a saída verdadeira somente se as duas
entradas forem diferentes.
14
4.1.74.1.7 Função NÃO OR EXCLUSIVO (EXNOR).Função NÃO OR EXCLUSIVO (EXNOR).
É uma função “NOR EXCLUSIVO ” terá a saída verdadeira somente se as duas
entradas forem iguais .
4.1.84.1.8 Função Memória (FLIP-FLOP).Função Memória (FLIP-FLOP).
No caso da função memória (flip-flop), a saída “Q” existirá no momento em que a
entrada “A” existir e continuará existindo, não importando o estado subseqüente da
entrada “A”. A saída “Q” terminará quando for resetada pela entrada “B”.
15
5.05.0 Controlador AL-600Controlador AL-600
O CP AL-600 da ALTUS S.A. é uma máquina de pequeno porte que utiliza um
microcontrolador INTEL 80C32 operando à 15Mhz, memória flash EPROM e RAM
que contém programas e dados de programa. Este CP comunica-se externamente
através do protocolo ALNET (RS-233). Vejamos o diagrama em bloco
Características do módulo Básico
• entradas digitais
• 8 saídas digitais
• 2 entradas de contagem rápida
• 2 canais analógicos de entradas e 2 canais analógicos de saídas.
Quanto à programação:
Utiliza a linguagem LADDER desenvolvida pela própria Altus S.A., a seguir veremos
as principais instruções.
5.15.1 Programação básica dos CLPs Altus.Programação básica dos CLPs Altus.
5.1.15.1.1 Aspectos gerais.Aspectos gerais.
5.1.1.1 Lógicas
Uma lógica é uma matriz de programação formada por 32 células dispostas em 4
linhas e 8 colunas. Em cada uma das células podem ser colocadas instruções,
podendo portanto cada lógica ter até 32 instruções. Cada lógica do programa
representa um pequeno trecho de programa em linguagem de relés (Ladder logic).
As células são processadas na seguinte ordem:
1 5 9 13 17 21 25 292 6 10 14 18 22 26 303 7 11 15 19 23 27 314 8 12 16 20 24 28 32
5.1.1.2 Operandos
São elementos utilizados pelas instruções do programador para a elaboração de um
programa aplicativo.
16
Operando SímboloE Relé de entradaS Relé de saídaR Endereço do barramento de
E/SA Relés auxiliaresM Memórias D Decimais
KM Constante tipo memóriaKD Constante tipo decimalTM Tabelas de tipo memóriaTD Tabelas de tipo decimal
5.1.1.3 Operando relé de entrada – E
Usado para se referenciar aos módulos de entradas digitais. Cada operando ocupa
um byte contendo o estado de 8 entradas digitais.
Exemplos:
E0018.6 Ponto 6 do octeto de entrada 18 (.0 a .7).
E0021n0 Nibble inferior do octeto de entrada 21 (n0 ou n1).
E0025 Octeto de entrada 25.
5.1.1.4 Operando relé de saída - S
Usado para se referenciar aos módulos de saídas digitais. Cada operando ocupa um
byte contendo o estado de 8 saídas digitais.
S0011.2 Ponto 2 do octeto de saídas 11.
S0010n1 Nibble superior do octeto de saídas 10.
S0015 Octeto de saídas 15.
5.1.1.5 Operando relé auxiliar – A
Utilizados para armazenamento e manipulação de valores intermediários no
programa aplicativo. Cada operando ocupa um byte na memória contendo o estado
de 8 relés auxiliares.
Exemplos:
17
A0032.7 Ponto 7 (MSB) do auxiliar de saída 32.
A0087n0 Nibble superior do auxiliar de saída 87.
A0024 Octeto auxiliar 24.
5.1.1.6 Operando endereço de barramento – R
Usados para referência direta a periféricos no barramento. No CLP Altus cada
posição no barramento corresponde a dois octetos de operandos.
Exemplos:
R0026 Octeto 26 do barramento.
R0015.7 Ponto 7 do Octeto 15 do barramento.
5.1.1.7 Operando memória - M
Utilizados para processamento numérico. Armazenam um número inteiro com sinal
(-32768 a 32767).
Exemplos:
M0032 Memória 32.
M0064b0 Octeto inferior da memória 64 (b0 a b1).
M0072n1 Nibble 1 da memória 72 (n0 a n3).
M0084.F Ponto 15 (MSB) da memória 84 (.0 a .F).
5.1.1.8 Operando decimal – D
Utilizados para processamento numérico. Armazenam em formato BCD até 7 dígitos
com sinal.
Bit Sinal n6 n5 n4 n3 n2 n1 n0
Exemplos:
D0041 Decimal 41.
D0032b2 Octeto 2 do decimal 32 (b0 a b3).
D0059n6 Nibble 6 do decimal 59 (n0 a n6).
D0172hA Ponto 10 da palavra alta do decimal 172 (h0 a hF).
18
D0172.B Ponto 11 da palavra baixa do decimal 172 (.0 a .F).
5.1.1.9 Operando constante – KM e KD
Define valores fixos no programa. Podem ser do tipo memória (inteiro com sinal de
16 bits) ou decimal (até 7 dígitos BCD e sinal).
Exemplos:
KM+05172 Constante memória, +5172.
KD-0974231 Constante decimal, -974231.
5.1.1.10 Operando tabela – TM e TD
Conjunto de constantes formando um arranjo unidimensional, referenciados por
índices. Podem conter valores variáveis do tipo M e D, conforme já definidos.
Exemplos:
TM0026 Tabela de constante tipo memória número 36.
TD0015 Tabela de constante tipo decimal número 15.
5.1.1.11 Acesso indireto - *
Operando que em conjunto com um operando memória, permite a referência
indireta a outros operandos do sistema (tipo E, S, A, M, D, TM ou TD).
Exemplos:
M0043*E Octeto de entrada apontado pela memória 43.
M1824*A Octeto auxiliar apontado pela memória 1824.
M0371TD Tabela de decimais apontada pela memória 371 (Não usa o *).
M009*M Operando de memória apontado pela memória 9.
5.1.1.12 Instruções
São expressas em relés, bobinas e blocos.
19
5.1.1.13 Contatos normalmente aberto e fechado - RNA e RNF
Operandos: EXXXX.X
SXXXX.X
AXXXX.X
MXXXX.X
DXXXX.X
DXXXXhX
5.1.1.14 Bobina Simples, liga e desliga – BOB, BBL, BBD
As bobinas liga e desliga atuam como as entradas S e R de um flip-flop.
Operandos: SXXXX.X
AXXXX.X
MXXXX.X
DXXXX.X
DXXXXhX
5.1.1.15 Bobina de salto – SLT
Desvia o programa quando a bobina é ativada. Tem como operando uma constante
KM (+ ou -) que determina o número de lógicas a serem saltadas.
Operandos: KM+XXXXX
KM-XXXXX
5.1.1.16 Relé de pulso – PLS
Gera um pulso na saída com duração igual ao tempo de um ciclo completo do
programa aplicativo quando a entrada transiciona de 0 para 1. Utiliza-se um relé
auxiliar para memorização.
20
5.1.1.17 Relé Mestre – RM e FRM
Posicionadas na coluna 7 da lógica, delimitam trechos de programa, energizando ou
não a “alimentação” dos mesmos conforme a entrada do relé mestre seja 1 ou 0,
respectivamente.
6.06.0 Introdução: Características dos CLPsIntrodução: Características dos CLPs
O presente documento tem por objetivo apresentar as principais características de
programação dos Controladores Programáveis (CPs) utilizados na disciplina CP no
curso técnico em informática industrial. Nosso principal objetivo é a apresentação da
Linguagem Ladder, suas características principais e exemplos de sua utilização.
Para o desenvolvimento de nosso programa utilizaremos os CPs produzidos pela
Altus aqui do Rio Grande do Sul. Nas seguintes páginas temos uma breve
apresentação do ambiente de programação da Altus chamado MasterTools. Convém
salientar que este Software de programação é propriedade da Altus e a mesma o
vende para seus clientes finais para que o CP, que foi adquirido pelo cliente, possa
ser programado. Convém salientar que pode ser obtida uma cópia deste Software na
página www.altus.com.br para demonstração. Assim cabe frisar que não podemos,
em nenhuma hipótese, fornecer cópias do mesmo.
7.07.0 Conceitos básicosConceitos básicos
7.1.1 7.1.1 Controlador programável (CP)Controlador programável (CP)
Segundo a ABNT é um equipamento eletrônico digital com hardware e software
compatíveis com aplicações industriais.
7.1.27.1.2 Terminal de programação. Terminal de programação.
Basicamente é um computador que se conecta temporariamente ao CP. É utilizado
para criar e modificar programas aplicativos, verificar o funcionamento do sistema,
monitorando todos os passos do programa. Quando da instalação de um CP é
considerado um equipamento opcional.
21
7.1.37.1.3 Terminal de supervisão. Terminal de supervisão.
É um computador que permanece conectado ao CP, para a aquisição de dados da
máquina ou do processo. Este computador executa um software supervisório que
permite desenvolver telas, gráficos, etc. para melhor visualizar o estado do processo
ou da máquina que está sendo monitorada. Pode ser considerado como uma
interface Homem – máquina. Esta interface não possibilita a programação dos CPs.
7.1.47.1.4 Unidade central de processamento. Unidade central de processamento.
Considerada como a unidade inteligente do CP. Responsável pela tomada de
decisões para o controle de máquinas e processos. Recebe os dados de entrada,
realiza as decisões lógicas baseadas no programa de usuário (programa aplicativo),
armazena os dados e atualiza as saídas.
• Programa aplicativo: é a lógica existente entre os pontos de entradas e
saídas e que executa as funções desejadas.
• Microcontrolador: Executa todas as funções internas de controle de dados e
instruções nas memórias do CP.
• Memória RAM: Responsável pelo armazenamento do programa aplicativo
(programa de usuário responsável pelo controle da máquina ou processo). A
Ram é uma memória volátil, ou seja, perde seus dados quando não estiver
alimentada pela energia elétrica.
• Memória FLASH: É a responsável pelo armazenamento do programa
aplicativo. A Flash não necessita de alimentação de energia elétrica para reter
os seus dados.
• Memória EPROM: Armazena o programa executivo (desenvolvido pelo
fabricante do CP), não pode ser alterado ou lido pelo programador
MasterTools.
7.1.5 Entradas e saídas.Módulos responsáveis pela interface entre o CP e os dispositivos de campo,
realizando a isolação e filtragem dos sinais e a adaptação dos níveis de tensão e
22
corrente até a CPU. São divididos em pontos de entradas e saídas digitais ou canais
analógicos.
• Pontos de entradas: considera-se cada sinal recebido pelo CP, a partir dos
dispositivos ou componentes externos (sensores).
• Pontos de saídas: Cada sinal produzido pelo CP para adicionar dispositivos
ou componentes do sistema de controle (atuadores). Exemplos são
lâmpadas, solenóides, motores, contatores, relés, etc.
• Dispositivos de campo:São elementos do sistema de controle responsáveis
pela obtenção de informações (sensores) e atuação (atuadores) da máquina
ou processo.
8.08.0 Arquitetura dos CPs AltusArquitetura dos CPs Altus
A série Piccolo permite o controle de até 132 pontos de entradas/saídas com uma
unidade central de processamento e esta dividida em vários modelos.
A série PONTO, permite a conexão com outros CPs e outros módulos de E/S,
possui arquitetura aberta, permitindo a conexão com vários protocolos de
comunicação.
8.1.18.1.1 BarramentosBarramentos
Realiza a interligação da UCP aos módulos de entrada e saída. Cada barramento
comporta até 16 módulos de entradas e saídas. Dependendo do modelo da UCP
podem ser instalados até 8 barramentos. O barramento 0 é alimentado pela própria
UCP, enquanto que os demais barramentos, quando existentes, são alimentados por
uma fonte auxiliar ligada a CPU através de um cabo de conexão de barramento
estendido.
8.1.28.1.2 Módulos de entradas e saídasMódulos de entradas e saídas
Os módulos de entradas e saídas são conectados ao barramento. São responsáveis
pela interface entre os sinais de campo e a UCP.
23
9.09.0 MasterToolsMasterTools
9.1.19.1.1 DescriçãoDescrição
Utilizaremos para a programação dos produtos Altus o programador denominado
MasterTools Programming MT4100 que é executado em ambiente Windows 95, 98,
e ME. Este programador possui um ambiente com funções integradas, contendo
todas as ferramentas necessárias à programação simbólica, impressão, gravação e
monitoração em tempo real dos programas aplicativos desenvolvidos para
controladores programáveis das séries AL-600, PICOLLO (PL103) e PONTO
(PO3045). Sua operação como as demais aplicações Windows são orientadas por
comandos de menus e caixas de diálogos que permitem a realização das tarefas e
escolhas de opções. O MasterTools é utilizado para realizar a edição de programas
para os CPs Altus, verificar programas já enviados, modificar programas prontos ou
para examinar o estado dinâmico das variáveis do sistema de controle. É possível
acompanhar todos os passos do programa aplicativo em tempo real, forçando a
ocorrência de ações específicas. Caso seja desejado, o computador poderá operar
permanentemente conectado ao controlador programável.
9.1.29.1.2 ConexõesConexões
Nas aplicações realizadas no laboratório de automação o MasterTools comunica-se
com o CP, através da interface serial tipo RS-232C do microcomputador. Mesmo
que exista outra interface de comunicação serial, o MasterTools assume que a
comunicação será realizada pelo canal 1 (COM1).
9.1.39.1.3 Configuração do canal serialConfiguração do canal serial
É possível alterar esta configuração através do comando “Opções/Comunicação”
escolhendo o novo canal apropriado para a comunicação serial. O canal padrão
utilizado pelo MasterTools é o canal 1 (COM 1).
24
9.29.2 Conceitos Conceitos
9.2.19.2.1 ProjetoProjeto
Funcionalmente um projeto de programação é conhecido como programa aplicativo
e pode ser visto como uma coleção de módulos de software utilizados para realizar
uma tarefa específica. Cada CP deve possuir apenas um projeto.
9.2.29.2.2 MódulosMódulos
Os módulos são chamados para a execução pelo software executivo (sistema
operacional do CP) ou por outros módulos, através de instruções apropriadas.
Quando armazenado em disco, o projeto de programação corresponde a um
conjunto de arquivos, onde cada arquivo é um módulo, denominado conforme
descrito a baixo.
Nome do arquivo:
Onde:
C : Tipo de Módulo (C, E, P, F)
- : Identificador de módulo (-).
XXXXXX: Nome do módulo (até 6 caracteres).
. : Ponto de separação.
000: Número do módulo.
Freqüentemente os módulos são referenciados somente pelo seu tipo e número,
quando não for relevante o nome utilizado no mesmo. Exemplo: E0001, C000, E018,
etc.
Existem quatro tipos de módulos que podem fazer parte de um projeto de
programação:
9.2.2.1 Módulo C: Configuração.
Deve existir apenas um módulo de configuração por projeto, no qual deve conter os
parâmetros de configuração do CP (000). Este módulo é indispensável para o CP
entrar em execução normal do programa aplicativo.
C - XXXXXX . 000
25
Sua criação é pré-requisito para a edição dos demais módulos do projeto de
programação no MasterTools. A definição dos parâmetros contidos no mesmo é
realizada através da janela de edição do módulo C.
O nome do módulo C é igual ao nome do projeto seguido da terminação .000.
9.2.2.2 Módulo E: Execução.
Os módulos E contém trechos do programa aplicativo, sendo chamados para a
execução do software executivo. Existem quatro módulos E, diferenciando-se entre
si pelo modo como são chamados à execução, conforme o seu número.
9.2.2.2.1 E000 Módulo de Inicialização:
É executado uma única vez, ao se energizar o Cp ou na passagem do módulo de
programação para execução com o MasterTools, antes da execução contínua do
módulo E001. Módulo opcional na execução do programa executivo.
9.2.2.2.2 E001 Módulo Seqüencial de Programa Aplicativo:
Contém o trecho de programa principal do programa aplicativo, sendo executado
ciclicamente. Este módulo é indispensável para o CP entrar em execução normal do
programa aplicativo.
9.2.2.2.3 E018 Módulo Acionado por Interrupção de Tempo:
O trecho de programa aplicativo, colocado neste módulo é chamado para a
execução em intervalos de tempos periódicos. Define-se o período de chamada do
mesmo nos parâmetros gerais do módulo C, podendo ser escolhido entre 50ms e
0,625 ms. Ao ser transcorrido o tempo programado, a execução é interrompida e o
módulo E-018 é executado. Após o seu final, o sistema retorna a execução para o
ponto do processamento seqüencial onde o módulo E001 havia sido interrompido.
O tempo continua a ser contado durante a cada chamada do módulo E-018,
devendo a sua execução ser o mais breve possível para não haver o aumento
excessivo no tempo de ciclo E001. Este módulo é opcional na execução do
programa aplicativo.
26
9.2.2.2.4 E020 Módulo Acionado pela Entrada de Interrupção:
O trecho de programa aplicativo colocado neste módulo é executado com o
acionamento da entrada de interrupção dos CPs AL-600, PL103 e PO3045. Quando
ocorrer uma transição de subida no sinal presente nesta entrada, a execução
seqüencial do programa aplicativo é interrompida e o módulo E0020 é executado.
Após o seu final, o sistema retorna a execução para o ponto do processamento
seqüencial onde o módulo E001 havia sido interrompido. Se a entrada for acionada
com muita freqüência, o tempo de execução do módulo deve ser o mais breve
possível, para não haver o aumento excessivo no tempo de ciclo do módulo E001.
Módulo opcional na execução do programa aplicativo.
9.2.2.3 Módulo P: Procedimento.
Podem ser usados para melhorar a estrutura do programa principal, dividindo-o em
segmentos de acordo com as etapas da máquina ou processo.
São executados quando chamados pelos módulos de execução procedimento ou
função. Após serem executados, o processamento retorna para a instrução seguinte
à chamada.
Os módulos P funcionam como sub-rotinas, não permitindo a passagem de
parâmetros para o módulo chamado. Módulo opcional na execução do programa
aplicativo.
Podem existir até 112 módulos procedimento em um projeto.(P000 a P111).
9.2.2.4 Módulo F: Função.
Permitem a passagem de parâmetros para o módulo chamado, de forma a poderem
ser reutilizados em vários programas aplicativos diferentes. São semelhantes às
instruções podendo ser chamados por módulos de execução, procedimento ou
função.
Estes módulos são escritos de forma genérica para serem aproveitados por vários
programas aplicativos, em linguagens de relés ou de máquinas, sendo semelhantes
às instruções da linguagem de relés. Os valores dos parâmetros são enviados e
27
devolvidos através de listas de operandos existentes na instrução de chamada e no
módulo F.
A passagem de parâmetros é realizada através da cópia dos valores dos operandos
declarados (passagem de parâmetros por valor). Módulo opcional na execução do
programa aplicativo.
9.39.3 Linguagem estruturada em blocos.Linguagem estruturada em blocos.
A linguagem estruturada em blocos é definida como a divisão de um programa
único, para o controle de várias etapas de um processo, em vários programas
menores, permitindo assim, melhorar a organização do programa aplicativo, da
documentação e da manutenção do sistema. Além disso pode-se criar uma
biblioteca de sub-rotinas para a reutilização durante o programa aplicativo.
28
10.010.0 Exemplo de programação em ambiente MasterTools.Exemplo de programação em ambiente MasterTools.
10.110.1 Criando um projeto novo.Criando um projeto novo.
Para criar um projeto novo clique no menu <Projeto > <Novo>:Entre com o nome do projeto como mostrado abaixo. Nome: ex1 (Exemplo1).
10.1.110.1.1 Configurando o modelo de UCPConfigurando o modelo de UCP
Selecione o modelo do CP conforme a figura abaixo. Confirme a troca de modelo da
UCP caso necessário.
Selecionar em “modelo de Clp” o Clp que você está utilizando
Obs.: Dispomos do de dois modelos: PL103 E AL600 e PO3045.
:
29
Após confirmar a seleção com <Enter>, surgirá a seguinte mensagem:
Confirme a troca com <Enter>.
10.1.210.1.2 Configurando o Barramento de E/S.Configurando o Barramento de E/S.
Clicando em<barramento> surgirá a seguinte tela:
Clicando em <barramento 0>, surgirá a seguinte tela:
O exemplo abaixo se refere ao modelo de UCP PL103. Para o modelo AL-600 deve-
se digitar:
30
Clique em <fechar >até retornar a tela mostrada abaixo:
10.1.310.1.3 Iniciando um programa:Iniciando um programa:
No menu principal clique em <módulo > <novo>:
Após clique em modulo principal. Surgirá o quadro indicado abaixo.
Digite o nome do programa e confirme com enter.
Aqui introduziremos nosso programa.
31
10.1.3.1 Inserindo um contato
Para demonstrar o projeto exemplo, vamos inserir um contato aberto:
Surgirá a seguinte tela:
Obs.:
Modelo Clp Entradas SaídasPL103 E0.0 até E0.7
E1.0 até E1.7
S2.0 até S2.7
S3.0 até S3.7
32
AL600 E0.0 até E0.7
E1.0 até E1.7
S2.0 até S2.7
PO3045 E0.0 até E0.7
E1.0 até E1.7
S50.0 até
S50.7
S51.0 até
S51.7No exemplo digitaremos <E0.0> e confirmaremos com <enter>.
Obs.:
As ligações verticais podem ser feitas teclando a tecla “+”
As ligações horizontais podem ser feitas teclando a tecla “-”
10.1.3.2 Introduzindo uma bobina:
Denominando a bobina simples (que é uma saída) como S2.0, teremos a seguinte
tela
Para fazer as ligações automaticamente: Clique em <edição>; <conectar ligações>.
Surgirá a seguinte tela:
33
Para encerrar o programa: Clique em <edição ><encerrar modificação>. Surgirá a
seguinte tela:
Salve o programa clicando em <sim>.
10.1.410.1.4 Estabelecendo comunicação. Estabelecendo comunicação.
Clique em <Comunicação > <Estado > <Programação>.
Obs.: O led indicativo de estado de
programação (Prog) irá iluminar-
se.
34
Clique em <fechar>.
10.1.510.1.5 Compilando o programa.Compilando o programa.
Clique em <ler e enviar módulos>. Enviar <todos><Fechar>.
Clique em <comunicação > <Estado > <Execução>.
O led indicativo de estado de execução (exec) irá iluminar-se.
Clicar em <fechar>.
10.1.610.1.6 Monitorando o Programa.Monitorando o Programa.
Clique em <Módulo> < Abrir >.
35
11.011.0 Programação de Controladores Programáveis Programação de Controladores Programáveis
Normalmente podemos programar um controlador através de um software que
possibilita a sua apresentação ao usuário em quatro formas diferentes:
• Diagrama de contatos;
• Diagrama de blocos lógicos (lógica booleana);
• Lista de instruções;
• Linguagem corrente.
Alguns CLPs, possibilitam a apresentação do programa do usuário em uma ou mais
formas.
11.111.1 Diagrama de contatos Diagrama de contatos
Também conhecida como:
• Diagrama de relés;
• Diagrama escada;
• Diagrama "ladder".
Esta forma gráfica de apresentação está muito próxima a normalmente usada em
diagrama elétricos. Exemplo:
---| |------| |--------------------------( )------
------| |--------------
11.211.2 Diagrama de blocos lógicos Diagrama de blocos lógicos
Mesma linguagem utilizada em lógica digital, onde sua representação gráfica é feita
através das chamadas portas lógicas.
Exemplo:
37
11.311.3 Lista de instrução Lista de instrução
Linguagem semelhante à utilizada na elaboração de programas para computadores.
Exemplo:
: A I 1.5: A I 1.6: O : A I 1.4: A I 1.3: = Q 3.0(I 1.5. I 1.6) + (I 1.4. I 1.3) = Q 3.0
11.411.4 Linguagem Corrente Linguagem Corrente
É semelhante ao basic, que é uma linguagem popular de programação, e uma
linguagem de programação de alto nível. Comandos típicos podem ser "fechar
válvula A" ou "desligar bomba B", "ligar motor", "desligar solenóide",
11.511.5 Análise das linguagens de programação Análise das linguagens de programação
Com o objetivo de ajudar na escolha de um sistema que melhor se adapte as
necessidades de cada usuário, pode-se analisar as características das linguagens
programação disponíveis de CLPs.
Esta análise se deterá nos seguintes pontos:
• Quanto a forma de programação;
• Quanto a forma de representação;
• Documentação;
• Conjunto de Instruções.
38
11.5.111.5.1 Quanto a Forma de Programação Quanto a Forma de Programação
• Programação Linear - programa escrito escrita em único bloco
• Programação Estruturada - Estrutura de programação que permite:
• Organização;
• Desenvolvimento de bibliotecas de rotinas utilitárias para utilização em
vários programas;
• Facilidade de manutenção;
• Simplicidade de documentação e entendimento por outras pessoas
além do autor do software.
Permite dividir o programa segundo critérios funcionais, operacionais ou geográficos.
Quanto a Forma de Representação
• Diagrama de Contatos;
• Diagrama de Blocos;
• Lista de Instruções.
Estes já citados anteriormente.
11.5.211.5.2 DocumentaçãoDocumentação
A documentação é mais um recurso do editor de programa que de linguagem de
programação. De qualquer forma, uma abordagem neste sentido torna-se cada vez
mais importante, tendo em vista que um grande número de profissionais estão
envolvidos no projeto de um sistema de automação que se utiliza CLPs, desde sua
concepção até a manutenção.
Quanto mais rica em comentários, melhor a documentação que normalmente se
divide em vários níveis.
11.5.311.5.3 Conjunto de InstruçõesConjunto de Instruções
É o conjunto de funções que definem o funcionamento e aplicações de um CLP.
Podem servir para mera substituição de comandos a relés:
• Funções Lógicas;
• Memorização;
• Temporização;
• Contagem.
39
Como também manipulação de variáveis analógicas:
• Movimentação de dados;
• Funções aritméticas.
Se funções complexas de algoritmos, comunicação de dados, interfaces homem-
máquina, podem ser necessárias:
• Saltos controlados;
• Indexação de instruções;
• Conversão de dados;
• PID;
• seqüenciadores;
• aritmética com ponto flutuante;
• etc.
11.611.6 Normalização Normalização
Existe a tendência de utilização de um padrão de linguagem de programação onde
será possível a intercambiabilidade de programas entre modelos de CLPs e até de
fabricantes diferentes.
Esta padronização está de acordo com a norma IEC 1131-3, na verdade este tipo de
padronização é possível utilizando-se o conceito de linguagem de alto nível, onde
através de um chamado compilador, pode-se adaptar um programa para a
linguagem de máquina de qualquer tipo de microprocessador, isto é, um programa
padrão, pode servir tanto para o CLP de um fabricante A como de um fabricante B.
A norma IEC 1131-3 prevê três linguagens de programação e duas formas de
apresentação. As linguagens são:
• Ladder Diagram - programação como esquemas de relés.
• Boolean Blocks - blocos lógicos representando portas "E", "OU",
"Negação", "Ou exclusivo", etc.
Structured Control Language (SCL) - linguagem que vem substituir todas as
linguagens declarativas tais como linguagem de instruções, BASIC estruturado e
inglês estruturado. Esta linguagem é novidade no mercado internacional e é
baseada no Pascal.
As formas de representação são :
40
• Programação convencional;
• Sequencial Function Chart (SFC) - evolução do graphcet francês.A grande vantagem de se ter o software normalizado é que em se conhecendo um
conhecem-se todos, economizando em treinamento e garantindo que, por mais que
um fornecedor deixe o mercado, nunca se ficará sem condições de crescer ou repor
equipamentos.
12.012.0 Programação em LadderProgramação em Ladder
O diagrama ladder utiliza lógica de relé, com contatos (ou chaves) e bobinas, e por
isso é a linguagem de programação de CLP mais simples de ser assimilada por
quem já tenha conhecimento de circuitos de comando elétrico.
Compõe-se de vários circuitos dispostos horizontalmente, com a bobina na
extremidade direita, alimentados por duas barras verticais laterais. Por esse formato
é que recebe o nome de ladder que significa escada, em inglês.
Cada uma das linhas horizontais é uma sentença lógica onde os contatos são as
entradas das sentenças, as bobinas são as saídas e a associação dos contatos é a
lógica.
No ladder cada operando (nome genérico dos contatos e bobinas no ladder) é
identificado com um endereço da memória à qual se associa no CLP. Esse endereço
aparece no ladder com um nome simbólico, para facilitar a programação,
arbitrariamente escolhido pelo fabricante como os exemplos vistos a seguir.
Tabela de alguns CLPs versus endereçamento.
FABRICANTE MODELO E.D. S.D. E.A. S.A. BIT
AUX.
PALAVRA PALAVRA
DO SISTEMA
CONTADOR
/ TEMPORIZADOR
GEFANUC 90-70
90-30
90-20
90-MICRO
%I1
a
%I...
%Q1
a
%Q...
%AI
a
%AI...
%AQ1
a
%AQ...
%M1
a
%M...
%T1
a
%T...
%R1
a
%R...
%S %Rx
x
x+1
x+2
PARA CADA
ALLEN BRADLEY SLC-500 I:SLO.
PONTO:1
/0
a
O:SLOT.
PONTO
O:1/0
a
I:SLOT.P
ONTO
I:3.0
a
O:SLOT.PO
NTO
O:3.0
a
B3:0/0
a
B3:...
N7:0
a
N7:...
S:
R6:0
a
R6:...
T4:0
A
T4:...
C5:0
41
I:... O:... I:3.... O:3.... A
C5:...
ALTUS AL500 R0
a
R...
R60
a
R...
- - A0
a
A...
M0
a
M...
- M0
PARA CADA
ALTUS PICOLLO %E0.0
a
%E...
%S2.0
a
%S...
%M %M %A0.0
a
%A...
%M0
a
%M...
%M0
PARA CADA
FESTO FPC101
FPC103
I0.0
a
I...
O0.0
a
O...
II0
a
II3 OU
IU0 a IU3
OU0
e
OU1
F0.0
a
F15.15
R0
a
R64
FW0
a
FW15
T0
a
T31
C0
a
C15
Outros tipos de endereçamento; 125/04 (1 = entrada, 2 = gaveta, 5 = número do
cartão ou módulo, 04 = número do ponto), 013/01 (0 = saída, 1 = número da gaveta,
3 = número do módulo, 01 = número do ponto).
Nesta apostila os endereços serão identificados como:
• E - para entrada digital;
• EA - para entrada analógica;
• S - para saída digital;
• SA - para saída analógica.
• A - para bobina auxiliar
O estado de cada operando é representado em um bit correspondente na memória
imagem: este bit assume nível 1 se o operando estiver acionado e 0 quando
desacionado.
* As bobinas acionam os seus endereços.
Enquanto uma bobina, com endereço de saída, estiver acionada um par de terminais
no módulo de saída será mantido em condição de condução elétrica.
* Os contatos se acionam pelo endereço que os identifica.
42
Os contatos endereçados como entrada se acionam enquanto seu respectivo par de
terminais no módulo de entrada é acionado: fecham-se se forem NA e abrem-se se
forem NF.
Com relação ao que foi exposto acima sobre os contatos endereçados como
entrada, os que tiverem por finalidade acionar ou energizar uma bobina deverão ser
do mesmo tipo do contato externo que aciona seu respectivo ponto no módulo de
entrada.
Já os que forem usados para desacionar ou desenergizar uma bobina devem ser de
tipo contrário do contato externo que os aciona. Abaixo se vê um quadro elucidativo
a esse respeito.
Se a chave externa for o contato no Ladder deve ser
Para ligar NA NA
NF NF
Para desligar NA NF
NF NA
Percebe-se pois que pode ser usada chave externa de qualquer tipo, desde que no
ladder se utilize o contato de tipo conveniente. Mesmo assim, por questão de
segurança, não se deve utilizar chave externa NF para ligar nem NA para desligar.
12.112.1 Desenvolvimento do programa Ladder Desenvolvimento do programa Ladder
Após a definição da operação de um processo onde são geradas as necessidades
de sequenciamento e/ou intertravamento, esses dados e informações são passados
sob forma de diagrama lógico, diagrama funcional ou matriz de causas e efeitos e a
partir daí o programa é estruturado.
43
A lógica de diagrama de contatos do CLP assemelha-se à de relés. Para que um
relê seja energizado, necessita de uma continuidade elétrica, estabelecida por uma
corrente elétrica.
Ao ser fechada a CH1, a bobina K1 será energizada, pois será estabelecida uma
continuidade entre a fonte e os terminais da bobina.
O programa equivalente do circuito anterior, na linguagem ladder, será o seguinte.
Analisando os módulos de entrada e saída do CLP, quando o dispositivo ligado à
entrada digital E1 fechar, este acionará o contato E1, que estabelecerá uma
continuidade de forma a acionar a bobina S1, conseqüentemente o dispositivo ligado
à saída digital S1 será acionado.
Uma prática indispensável é a elaboração das tabelas de alocação dos dispositivos
de entrada/saída. Esta tabela é constituída do nome do elemento de entrada/saída,
sua localização e seu endereço de entrada/saída no CLP. Exemplo:
DISPOSITIVO LOCALIZAÇÃO ENDEREÇO
PSL - 100 Topo do tanque pressurizado 2 E1
TT - 400 Saída do misturador EA1
FS Saída de óleo do aquecedor E2
SV Ao lado da válvula FV400 S1O NF é um contado de negação ou inversor, como pode ser visto no exemplo abaixo
que é similar ao programa anterior substituindo o contato NA por um NF.
44
Analisando os módulos de entrada e saída, quando o dispositivo ligado a entrada
digital E1 abrir, este desacionará o contato E1, este por ser NF estabelecerá uma
continuidade de forma a acionar a bobina S1, conseqüentemente o dispositivo ligado
à saída digital S1 será acionado. A seguir temos o gráfico lógico referente aos dois
programas apresentados anteriormente.
12.1.112.1.1 Associação de contatos no LadderAssociação de contatos no Ladder
No ladder se associam contatos para criar as lógicas E e OU com a saída.
Os contatos em série executam a lógica E, pois a bobina só será acionada quando
todos os contatos estiverem fechados
A saída S1 será acionada quando:
E1 estiver acionada E
E2 estiver não acionada EE3 estiver acionada
45
Em álgebra booleana S=E1* E2* E3
A lógica OU é conseguida com a associação paralela, acionando a saída desde
que pelo menos um dos ramos paralelos estejam fechados
A saída S1 será acionada se
E1 for acionada OU
E2 não for acionada OU
E3 for acionada. O que equivale a lógica booleana.
S1=E1+E2+E3
Com associações mistas criam-se condições mais complexas como a do exemplo a
seguir:
Neste caso a saída é acionada quando
E3 for acionada & E1 for acionada
OU
E3 for acionada & E2 não for acionada
Em lógica booleana S1=E3 * (E1 + E2)
12.1.212.1.2 InstruçõesInstruções
Na UCP o programa residente possui diversos tipos de blocos de funções. Na
listagem a seguir apresentamos alguns dos mais comuns:
• contador;
• temporização de energização;
• temporização de desenergização;
• adição de registros;
• multiplicação de registros;
• divisão de registros;
• extração de raiz quadrada;
• bloco OU lógico de duas tabelas;
• bloco E lógico de duas tabelas;
• ou exclusivo lógico de duas tabelas;
• deslocar bits através de uma tabela-direita;
46
• deslocar bits através de uma tabela-esquerda;
• mover tabela para nova localização;
• mover dados para memória EEPROM;
• mover inverso da tabela para nova localização;
• mover complemento para uma nova localização;
• mover valor absoluto para uma nova localização;
• comparar valor de dois registros;
• ir para outra seqüência na memória;
• executar sub-rotina na memória;
• converter A/D e localizar em um endereço;
• converter D/A um dado localizado em um endereço;
• executar algoritmo PID;
• etc.
12.1.312.1.3 Instruções BásicasInstruções Básicas
As instruções básicas são representadas por blocos funcionais introduzidos na linha
de programação em lógica ladder. Estes blocos funcionais podem se apresentar de
formas diferentes de um CLP para outro, mas a filosofia de funcionamento é
invariável. Estes blocos auxiliam ou complementam o controle do equipamento,
introduzindo na lógica ladder instruções como de temporização, contagem, soma,
divisão, subtração, multiplicação, PID, conversão BCD/Decimal, conversão
Decimal/BCD, raiz quadrada, etc.
12.1.412.1.4 Funcionamento dos Principais BlocosFuncionamento dos Principais Blocos
47
O bloco funcional possui pontos de entrada ( localizados à esquerda ) e pontos de
saída ( localizados à direita do bloco ), também possui campos de entrada de
informações como; número do registro, memória, ponto de entrada analógico, bit de
saída, bit de entrada, ponto de saída analógico, constantes, etc.
As instruções seguintes será explicadas supondo o byte de oito bits. A análise para
o byte de dezesseis bits é exatamente a mesma.
12.1.512.1.5 Instrução de TemporizaçãoInstrução de Temporização
O temporizador conta o intervalo de tempo transcorrido a partir da sua habilitação
até este se igualar ao tempo preestabelecido. Quando a temporização estiver
completa esta instrução eleva a nível 1 um bit próprio na memória de dados e aciona
o operando a ela associado.
Segundo exemplo, quando a entrada E1 for acionada o temporizador será habilitado
e imediatamente após 30 segundos a saída S1 será acionada. Quando E1 for
desacionada, o temporizador será desabilitado, ou desenergizado, desacionando a
saída S1. Em alguns casos, esta instrução apresenta duas entradas uma de
habilitação da contagem e outra para zeramento ou reset da saída.
Para cada temporizador destina-se um endereço de memória de dados onde o valor
prefixado será armazenado.
Na memória de dados do CLP, o temporizador ocupa três bytes para o controle. O
primeiro byte reservado para o dado prefixado, o segundo byte reservado para a
48
temporização e o terceiro byte reservado para os bits de controle da instrução
temporizador.
Os temporizadores podem ser TON (temporiza no acionamento) e TOFF (temporiza
no desacionamento).
12.1.612.1.6 Instrução de ContagemInstrução de Contagem
O contador conta o número de eventos que ocorre e deposita essa contagem em um
byte reservado. Quando a contagem estiver completa, ou seja , igual ao valor
prefixado, esta instrução energiza um bit de contagem completa. A instrução
“contador” é utilizada para energizar ou desenergizar um dispositivo quando a
contagem estiver completa.
Para cada contador destina-se um endereço de memória de dados onde o valor
prefixado será armazenado.
Na memória de dados do CLP, o contador ocupa três bytes para o controle. O
primeiro byte reservado para o dado prefixado, o segundo byte reservado para a
contagem e o terceiro byte reservado para os bits de controle da instrução contador.
49
12.1.712.1.7 Instrução MoverInstrução Mover
A instrução mover transfere dados de um endereço de memória para outro endereço
de memória, manipula dados de endereço para endereço, permitindo que o
programa execute diferentes funções com o mesmo dado.
Abaixo temos cinco endereços da memória de dados do CLP. Observe que o dado
de D1 é distinto de D2.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 0 0 0 1 1 1 1
D2 0 0 1 1 0 0 0 0
50
D3 0 0 0 0 1 0 0 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Supondo que a instrução mover tenha sido acionada e que a movimentação será de
D1 para D2.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 0 0 0 1 1 1 1
D2 0 0 0 0 1 1 1 1
D3 0 0 0 0 1 0 0 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Observe que o conteúdo de D2 foi alterado. No momento em que a instrução mover
for desacionada, o dado de D2 permanecerá o mesmo.
Enquanto a entrada E1 estiver acionada, o dado será movido uma vez a cada ciclo
de varredura, portanto E1 deve ser acionado e desacionado rapidamente.
Temos o gráfico que ilustra antes e depois do acionamento de E1 para a instrução
mover.
51
12.1.812.1.8 Instrução CompararInstrução Comparar
A instrução comparar verifica se o dado de um endereço é igual, maior, menor,
maior/igual ou menor/igual que o dado de um outro endereço, permitindo que o
programa execute diferentes funções baseadas em um dado de referência.
No exemplo, quando a entrada E1 for acionada as duas instruções de comparação
serão acionadas, se D1 for maior que D2 o bit de saída S1 será acionado, se D1 for
menor que D2 o bit de saída S2 será acionado. A comparação só existirá se a
entrada E1 estiver acionada, caso contrário as duas saídas S1 e S2 serão
desacionadas.
52
Observe o gráfico acima, entre T0 e T1 a entrada E1 está desativada, logo não há
comparação e as saídas S1 e S2 são nulas. Entre T1 e T2 o dado D1 se encontra
com valor maior que D2, logo a instrução de comparação ativa a saída S1. Entre T2
a T3 o dado D1 é igual a D2, como não há instrução de igualdade as saídas estarão
desativadas. Entre T3 a T4 o dado D1 é menor que D2, logo a saída S2 será
ativada, a partir de T4 a entrada E1 foi desacionada, portanto as comparações são
desativadas e as saídas irão para estado lógico "0".
A mesma análise é válida para a instrução igual a, maior igual a e menor igual a.
12.1.912.1.9 Instruções MatemáticasInstruções Matemáticas
12.1.1012.1.10 Instrução SomaInstrução Soma
Permite somar valores na memória quando habilitado. Nesta instrução podem-se
usar os conteúdos de um contador, temporizador, byte da memória imagem, byte da
memória de dados.
53
Nesta instrução de programa, quando E1 for acionada, a soma do dado 1 com o
dado 2 será depositado no dado 3, portanto o conteúdo do dado 3 não deverá ter
importância. Caso o conteúdo do dado 3 seja importante, o mesmo deve ser movido
para um outro endereço ou o resultado da soma depositado em outro endereço.
Enquanto E1 estiver acionado o dado D1 será somado com D2 e depositado no
dado D3 a cada ciclo de varredura, portanto E1 deve ser acionado e desacionado
rapidamente.
Abaixo temos cinco endereços da memória de dados do CLP.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 0 0 1 1 0 1 0
D2 0 0 0 0 1 1 1 1
D3 0 0 0 0 1 0 0 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Supondo que a instrução somar tenha sido acionada e que a soma será de D1 e D2
em D3.
D1 equivale em decimal a 26 e D2 a 15, a soma resultará 41 no D3.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 0 0 1 1 0 1 0
54
D2 0 0 0 0 1 1 1 1
D3 0 0 1 0 1 0 0 1
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Observe que o conteúdo de D3 foi alterado, no momento em que a instrução soma
for desacionada, os dados de D1 e D2 permanecerão os mesmos.
A saída S1 será acionada quando a soma for concluída.
Caso o resultado da soma não ultrapasse o limite máximo ( overflow ), a saída S1
será acionada. Em alguns casos o um bit, do byte de controle da instrução soma,
assume valor lógico "1", determinando o estouro da capacidade. Através deste bit e
possível de se determinar quando a soma ultrapassou ou não o valor máximo.
55
12.1.1112.1.11 Instrução SubtraçãoInstrução Subtração
Permite subtrair valores na memória quando habilitado. Nesta instrução podem-se
usar os conteúdo de um contador, temporizador, byte da memória imagem, byte da
memória de dados.
Nesta instrução de programa, quando E1 for acionada, a subtração do dado 1 com o
dado 2 será depositado no dado 3, portanto o conteúdo do dado 3 não deverá ter
importância. Caso o conteúdo do dado 3 seja importante, o mesmo deve ser movido
para um outro endereço ou o resultado da soma depositado em outro endereço.
Enquanto E1 estiver acionado o dado D1 será subtraído do dado D2 e depositado no
dado D3 a cada ciclo de varredura, portanto E1 deve ser acionado e desacionado
rapidamente.
Abaixo se vêm cinco endereços da memória de dados do CLP.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 0 0 1 1 0 1 0
D2 0 0 0 0 1 1 1 1
D3 0 0 0 0 0 0 0 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Supondo que a instrução subtração tenha sido acionada e que a subtração será de
D1 menos D2 em D3.
D1 equivale em decimal a 26 e D2 a 15, a subtração resultará 9 no D3.
56
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 0 0 1 1 0 1 0
D2 0 0 0 0 1 1 1 1
D3 0 0 0 0 1 0 0 1
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Observe que o conteúdo de D3 foi alterado, no momento em que a instrução soma
for desacionada, os dados de D1 e D2 permanecerão os mesmos.
Caso o resultado da subtração possua sinal negativo ( underflow ), a saída S1 será
acionada. Em alguns casos o um bit, do byte de controle da instrução subtração,
assume valor lógico "1". Através deste bit e possível de se determinar quando a
subtração resultou positivo ou negativo.
12.1.1212.1.12 Instrução MultiplicaçãoInstrução Multiplicação
Permite multiplicar valores na memória se a condição for verdadeira.
57
Observe os cinco endereços do mapa de memória apresentado.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 0 0 1 1 0 1 0
D2 0 0 0 0 0 1 1 1
D3 0 0 0 0 0 0 0 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Supondo que a instrução multiplicação tenha sido acionada por E1 e que a
multiplicação será de D1 por D2 em D3.
D1 equivale em decimal a 26 e D2 a 7, a multiplicação resultará 182 no D3.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 0 0 1 1 0 1 0
D2 0 0 0 0 0 1 1 1
D3 1 0 1 1 0 1 1 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
58
Quando a entrada E1 for acionada, a multiplicação do dado D1 pelo dado D2 será
depositada no conteúdo do dado D3.
12.1.1312.1.13 Instrução DivisãoInstrução Divisão
Permite dividir valores na memória quando habilitado.
Observe os cinco endereços do mapa de memória apresentado.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 0 1 1 0 0 1 0
D2 0 0 0 0 0 1 0 0
D3 0 0 0 0 0 0 0 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Supondo que a instrução divisão tenha sido acionada por E1 e que a divisão será de
D1 por D2 em D3, D4.
D1 equivale em decimal a 50 e D2 a 4, a divisão resultará 12,5 no D3, D4.
B7 B6 B5 B4 B3 B3 B2 B1
59
D1 0 0 1 1 0 0 1 0
D2 0 0 0 0 0 1 0 0
D3 0 0 0 0 1 1 0 0
D4 0 0 0 0 0 1 0 1
D5 1 0 0 0 0 1 1 1
Quando a entrada E1 for acionada, a divisão do dado D1 pelo dado D2 será
depositada no conteúdo do dado D3, D4.
12.1.1412.1.14 Instruções LógicasInstruções Lógicas
Estas instruções destinam-se à comparação lógica entre bytes. São recursos
disponíveis para os programadores, podendo serem empregadas na análise de byte
e diagnose de dados.
12.1.1512.1.15 Instrução AndInstrução And
Permite executar função AND com valores da memória quando habilitada.
Observe os cinco endereços do mapa de memória apresentado.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 1 0 1 1 0 1 0
60
D2 0 1 0 0 0 1 1 1
D3 0 0 0 0 0 0 0 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Supondo que a instrução AND tenha sido acionada por E1 e que a instrução será de
D1 and D2 em D3.
Observe a tabela verdade abaixo e verifique o resultado da analise AND entre os
dois bytes D1 e D2.
E1 E2 SAÍDA
0 0 0
0 1 0
1 0 0
1 1 1E1 e E2 são as entradas e SAÍDA é o resultado.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 1 0 1 1 0 1 0
D2 0 1 0 0 0 1 1 1
D3 0 1 0 0 0 0 1 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Quando a entrada E1 for acionada, a instrução do dado D1 and dado D2 será
depositada no conteúdo do dado D3.
61
12.1.1612.1.16 Instrução OrInstrução Or
Permite executar função OU com valores da memória quando habilitada analisar
valores na memória quando habilitada.
Observe os cinco endereços do mapa de memória apresentado.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 1 0 1 1 0 1 0
D2 0 1 0 0 0 1 1 1
D3 0 0 0 0 0 0 0 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Supondo que a instrução OR tenha sido acionada por E1 e que a instrução será de
D1 or D2 em D3.
Observe a tabela verdade abaixo e verifique o resultado da analise OR entre os dois
bytes D1 e D2.
E1 E2 SAÍDA
0 0 0
62
0 1 1
1 0 1
1 1 1
E1 e E2 são as entradas e SAÍDA é o resultado.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 1 0 1 1 0 1 0
D2 0 1 0 0 0 1 1 1
D3 0 1 0 1 1 1 1 1
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Quando a entrada E1 for acionada, a instrução do dado D1 or dado D2 será
depositada no conteúdo do dado D3.
12.1.1712.1.17 Instrução XorInstrução Xor
Permite executar função ou exclusivo com valores da memória quando habilitada.
Observe os cinco endereços do mapa de memória apresentado.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 1 0 1 1 0 1 0
63
D2 0 1 0 0 0 1 1 1
D3 0 0 0 0 0 0 0 0
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Supondo que a instrução XOR ( ou exclusivo ) tenha sido acionada por E1 e que a
instrução será de D1 xor D2 em D3.
Observe a tabela verdade abaixo e verifique o resultado da análise xor entre os dois
bytes D1 e D2.
E1 E2 SAÍDA
0 0 0
0 1 1
1 0 1
1 1 0E1 e E2 são as entradas e SAÍDA é o resultado.
B7 B6 B5 B4 B3 B2 B1 B0
D1 0 1 0 1 1 0 1 0
D2 0 1 0 0 0 1 1 1
D3 0 0 0 1 1 1 0 1
D4 1 1 1 0 0 1 0 0
D5 1 0 0 0 0 1 1 1
Quando a entrada E1 for acionada, a instrução do dado D1 xor dado D2 será
depositada no conteúdo do dado D3.
Obviamente estas são apenas algumas instruções que a programação ladder
dispões. Uma série de outros recursos são disponíveis em função da capacidade do
CLP em questão.
64
As instruções apresentadas servirão como base para o entendimento das instruções
de programação ladder de qualquer CLP, para tal conte e não dispense o auxílio do
manual ou help on-line quando disponível no software de programação.
A utilização do software de programação é uma questão de estudo e pesquisa, uma
vez que o layout de tela e comandos não são padronizados.
65
13.013.0 Exercícios.Exercícios.
13.113.1 Na figura indicada abaixo temos um esteira que é acionada por um botão “liga”
e um de parada “desliga”. Necessita-se contar o número de tambores que passam
pela esteira. Uma vez atingido o número necessário, um alarme (AL) deverá ser
acionado. Desenvolva um programa em linguagem Ladder Altus que realize esta
função.
ST= Sensor de presença de tambor
M = Motor que movimenta a esteira,
Controlado pelo Clp.
Funcionamento solicitado:
• Ao ligarmos o botão de partida deveremos contar um lote de dez tambores e
desligar a esteira. No caso de parada, esperar a partida e continuar contando.
13.213.2 Queremos automatizar uma garagem comercial. A informação necessária é a
indicação se a garagem está lotada ou não. A garagem possui uma entrada e uma
saída sendo que cada uma delas possui um sensor que detecta a presença de
carros. Desenvolva um programa em linguagem Ladder que realize este controle.
66
13.313.3 Desenhar o diagrama de interconexões elétrico físicas e o programa de
controle do PLC para um sistema de reservatório composto de uma válvula de
entrada P, duas bombas (acionadas por M1 e M2), um alarme AL, e quatro sensores
de nível (a, b, c, d), conforme figura abaixo:
As condições de funcionamento são as seguintes: se o nível for ‘a’, então se
fecha a válvula P. Se o nível for inferior a ‘b’, então se abre a válvula P. Acima
de ‘b’, M1 e M2 bombeiam. Abaixo de ‘b’, somente M1 bombeia. Abaixo de ‘c’,
soa o alarme AL. Em ‘d’, nenhuma das bombas deverá funcionar.
13.4 Elaborar um programa PLC para controlar dois relés (R1 e R2) de tal maneira
que R1 pode atuar de forma independente e R2 só pode atuar se R1 estiver ligado,
mas pode continuar ligado após o desligamento de R1. Os relés são ligados pelas
botoeiras L1 e L2, e são desligados pelas botoeiras D1 e D2. 13.5 Elaborar um programa PLC capaz de efetuar o controle de uma prensa que é
manejada por dois operários. Cada um deles utiliza um atuador que exige o
emprego de ambas as mãos. A operação de prensagem realiza-se quando se põe
em marcha um motor que está comandado pelo contactor R. Por razões de
segurança dos operários, foi decidida a seguinte seqüência de funcionamento:
A) Com somente um operador, não se pode ativar a prensa;
B) Com os dois operários atuando nos comandos A e B, a prensa abaixa;
C) Se atua um operário, mas o outro tarda mais do que três segundos, a prensa não
deve operar e, é necessário repetir a manobra;
D) Se uma vez ativado o contactor R e qualquer um dos operários retirar as mãos
do contato, R desativa e não volta a se ativar se o operário demorar mais do que
três segundos, para recolocar suas mãos no contato, caso em que deverão
repetir-se a manobra por ambos os operários. 13.6 Elaborar um programa PLC para um processo industrial em que, uma esteira
acionada pelo motor E transporta garrafas de três tamanhos (pequena, média e
67
grande) que sensibilizam três sensores óticos A, B, C. O processo tem início quando
a botoeira L é acionada, e interrompido pela botoeira D. A seleção do tipo de garrafa
é feita a partir de uma chave seletora de três posições (P, M e G). Assim, caso, por
exemplo, sejam selecionadas garrafas grandes, a esteira deve parar e o alarme AL soar caso uma garrafa pequena ou média seja detectada. Após a retirada manual da
garrafa indesejada, o operador deve religar o sistema em L conforme ilustra a figura
abaixo:
13.7 Com base no circuito apresentado na figura abaixo (programa para detecção
de borda de subida) elabore um outro projeto capaz de detectar uma borda de
descida.
13.8 Em uma máquina de solda há dois elementos controlados por um PLC: um
contactor (A) para fechamento do arco, e um relé (E) para avanço do motor do
eletrodo. Quando o operador aciona o gatilho(G) a máquina deve entrar em
funcionamento atuando primeiramente o motor e 0,5 segundo após atuar o eletrodo.
No momento em que o operador solta o gatilho, uma operação reversa deve ocorrer,
ou seja, primeiramente desliga-se o eletrodo e após 0,5 segundos desliga-se o
68
motor. Com base nestas informações elabore um programa PLC para realizar tal
controle.
13.9 Utilizando-se apenas de um elemento temporizador, elabore um programa de
PLC capaz de acionar uma lâmpada de sinalização piscante com período de 2
segundos.
13.10 Elaborar um programa PLC capaz de interromper automaticamente o
funcionamento de uma esteira transportadora de peças. A parada se realiza sempre
que um sensor ótico não detectar a passagem de uma nova peça num intervalo
menor do que 5 segundos. O religamento da esteira se dá pelo comando do
operador em uma botoeira. Identifique qual esquema de temporização foi utilizado
na solução.
13.11 Utilizando-se dos recursos de contagem em PLC, elabore um programa capaz
de acionar uma lâmpada sinalizadora sempre que o número de pulsos recebidos em
sua entrada for múltiplo de 5 (cinco). Assim, no recebimento do quinto pulso a
lâmpada acende, desligando-se no sexto pulso; novamente acende no décimo e
desliga no décimo primeiro e assim sucessivamente
14.014.0 Exercícios Intertravamento: Circuitos de Comando.Exercícios Intertravamento: Circuitos de Comando.
Data de Entrega:
69
Para os circuitos abaixo indicados, implemente-os em linguagem de Clp . Descreva
o funcionamento do circuito.
Exercícios Intertravamento (continuação).
15.015.0 Bibliografia.Bibliografia.
Professor: William da Silva Vianna, professor do curso Pós-Técnico em Automação
e do curso Técnico em Instrumentação. Curso Cefet – Pelotas-RS.
71