Escolar Documentos
Profissional Documentos
Cultura Documentos
CONTROLADORES
PROGRAMÁVEIS
ATUALIZAÇÃO TECNOLÓGICA EM MECATRÔNICA
CONTROLADORES
PROGRAMÁVEIS
CONFEDERAÇÃO NACIONAL DA INDÚSTRIA – CNI
Robson Braga de Andrade
Presidente
Conselho Nacional
CONTROLADORES
PROGRAMÁVEIS
© 2014. SENAI – Departamento Nacional
A reprodução total ou parcial desta publicação por quaisquer meios, seja eletrônico,
mecânico, fotocópia, de gravação ou outros, somente será permitida com prévia autorização,
por escrito, do SENAI – Departamento Regional do Rio Grande do Sul.
CDU – 681.51
SENAI Sede
Serviço Nacional de Setor Bancário Norte . Quadra 1 . Bloco C . Edifício Roberto
Aprendizagem Industrial Simonsen . 70040-903 . Brasília – DF . Tel.: (0xx61)3317-9190
Departamento Nacional http://www.senai.br
Sumário
1 Introdução.........................................................................................................................................................................7
2 Controladores Programáveis.......................................................................................................................................8
2.1 Princípios de funcionamento....................................................................................................................9
2.2 Memórias do controlador programável................................................................................................9
2.3 Arquitetura e especificação de hardware...........................................................................................11
2.3.1 Módulos ou interfaces de entrada.......................................................................................11
2.3.2 Módulos ou interfaces de saída............................................................................................13
3 Linguagens de programação....................................................................................................................................16
3.1 Norma IEC 61131-3 .....................................................................................................................................16
3.2 Estruturas de programação......................................................................................................................17
3.3 Entradas, saídas e memórias....................................................................................................................18
3.4 Leituras das entradas de programação................................................................................................20
3.5 Variáveis de programação.........................................................................................................................20
3.6 Comentários na programação................................................................................................................20
3.7 Dados de programação.............................................................................................................................21
3.8 Tipos de linguagens de programação..................................................................................................21
3.8.1 Linguagem de baixo nível......................................................................................................21
3.8.2 Linguagem de alto nível..........................................................................................................21
3.9 Aplicações das linguagens de programação aos CPs.....................................................................22
3.10 Técnicas estruturadas de programação.............................................................................................22
5 Referências.......................................................................................................................................................................39
Introdução
Os conhecimentos sobre a utilização dos CPs são fundamentais no ramo da mecatrônica, uma área
altamente integradora e em constante evolução. Para auxiliar a aquisição desses conhecimentos,
estudaremos o princípio de funcionamento, as memórias e a arquitetura dos CPs.
Quando pensamos na aplicação da automação na mecatrônica, uma das primeiras coisas que
imaginamos é o CP. Esse importante equipamento é utilizado em diversos segmentos da indústria, como
as áreas de alimentos, de bebidas, de plásticos, de papel e celulose de mineração, bem como a indústria
automotiva, química, têxtil, farmacêutica, siderúrgica, metalúrgica, entre outras. A Figura 1 apresenta as
múltiplas áreas de atuação do CP.
CLP
INSTITUIÇÃO CONCEITO
Associação Brasileira de Normas Equipamento eletrônico digital com hardware e software compatíveis com aplicações
Técnicas (ABNT) industriais e residenciais.
International Electrotechnical Sistema eletrônico que opera digitalmente, projetado para uso em ambiente industrial.
Commission (IEC) Utiliza memória programável para armazenagem interna de instruções orientadas ao
usuário, realizando funções específicas, tais como lógica, sequencial, temporização,
contagem e aritmética. Controla, por meio de entradas e saídas digitais ou analógicas,
vários tipos de máquinas ou processos. O CP e seus periféricos associados são
projetados para serem facilmente integráveis em um sistema de controle industrial e
facilmente usados em todas suas funções previstas.
National Electrical Manufacturers Aparelho eletrônico digital que utiliza uma memória programável para o
Association (NEMA) armazenamento interno de instruções com o objetivo de realizar funções específicas,
tais como: lógica, sequenciamento, temporização, contagem e aritmética. Controla,
por meio de módulos de entradas e saídas, vários tipos de máquinas ou processos.
Quadro 1 - Definição de CP.
Fonte: SENAI-RS.
VOCÊ Atualmente, o termo CLP (Controlador Lógico Programável) continua sendo utilizado,
SABIA? mas com o avanço da tecnologia dos controladores, muitos engenheiros e técnicos têm
utilizado, simplesmente, CP.
As instruções e os dados lidos internamente e externamente pelo CP são armazenados em uma área da
CPU destinada a essa função, conhecida como memória. As informações ali gravadas podem ser alteradas e
acessadas em qualquer momento.
MECATRÔNICA INDUSTRIAL
10
Devido a sua divisão por regiões (setores), a memória possui um recurso que informa em que parte dos
setores se encontram determinados dados. Alguns desses setores são destinados ao uso restrito do software
de gerenciamento do CP. Em outra grande parte da memória, encontramos as funções especiais e setores
para usuários. A Figura 2 apresenta as descrições de cada setor da memória do CP.
O acesso à memória é feito por meio de bytes (8 bits). No entanto, para o usuário, os dados são visíveis
em vários formatos: bits, bytes, words e double words, entre outras formas. As entradas/saídas analógicas,
os valores numéricos, os resultados de operações matemáticas e as contagens ou as temporizações são
armazenados em words. Já uma entrada/saída digital possui valor de tamanho de um bit que, agrupadas em
octetos, ocupam um byte. O Quadro 2 mostra a descrição de cada tipo de unidade de memória de um CP.
UNIDADE DESCRIÇÃO
Bit Menor unidade de informação. Possui apenas dois estados: ativo (1) ou inativo (0).
Nibble ou quarteto Agrupamento de quatro bits, utilizado principalmente para armazenamento de
códigos BCD.
Byte ou octeto Agrupamento de oito bits. Pode armazenar um caractere do tipo ASCII ou um
número entre 0 e 255, dois números BCD ou oito indicadores de um bit.
Word ou palavra Uma palavra corresponde a certa quantidade de bits, podendo variar de um
processador para outro. Entretanto, o mais comum é uma palavra ter 16 bits.
Double Word É a composição de duas palavras, ou seja, para os processadores de 16 bits
ou palavra dupla corresponde a um agrupamento de 32 bits.
Long Word É a composição de quatro palavras, ou seja, para os processadores de 16 bits,
ou palavra longa corresponde a um agrupamento de 64 bits.
Exemplo prático
Se você comprar um computador com um HD de 1 TB, por exemplo, perceberá que o sistema operacional
do computador mostrará uma capacidade menor do que a que está na relação do dispositivo. Ou seja, indicará
apenas 931GB de espaço livre. Isso acontece porque os sistemas operacionais, de modo geral, consideram 1
kilobyte como sendo equivalente a 1024 bytes e, assim, sucessivamente, com megabytes, gigabytes, terabytes
e outros. No entanto, para os fabricantes de discos rígidos, por exemplo, 1 kilobyte corresponde a 1000 bytes.
Você saberia responder quem está correto: o fabricante do hardware ou do software do sistema operacional?
Seriam 1000 bytes ou 1024 bytes? Ainda não temos um sistema único para resolver esse impasse, entretanto,
uma possível solução está nas terminologias e abreviações que a International Electrotechnical Commission
(IEC) estabeleceu para indicar as medições baseadas em 1024 bytes.
Terminal de programação
(IHM)
Entradas Saída
Digitais Unidade
Digitais
central de
Memória
processamento
(CPU)
Entradas Saídas
Analógicas Analógicas
Fonte de Alimentação
As interfaces de entradas, ou módulos de entrada, tornam compatíveis os sinais que serão recebidos
pela CPU. Eles representam a interface entre o CP e os elementos de sinais de entrada. Esses módulos de
interligação entre os componentes e a CPU dividem-se em dois tipos: digitais e analógicos.
MECATRÔNICA INDUSTRIAL
12
Entradas digitais
As entradas digitais são módulos que possuem apenas dois estados possíveis: ligado(1) ou desligado (0).
Nas entradas digitais, podem ser ligados diversos componentes, dentre eles temos: botoeiras, chaves de fim
de curso, sensores indutivos e capacitivos, chaves comutadoras, termostatos, pressostatos e sensores de
controle de nível.
Os módulos de entradas digitais operam tanto com tensões alternadas (127 ou 220 VCA) quanto com
tensões contínuas (24 VCC). A diferença entre estes dois tipos é que para acionar a entrada, no tipo N, é
necessário fornecer o potencial negativo da fonte de alimentação ao borne de entrada do CP e, no tipo P,
é necessário fornecer o potencial positivo. Em ambos os casos, a falta do sinal caracteriza nível lógico 0 e a
presença do sinal nível lógico 1.
Algumas aplicações preferem utilizar sinais de entrada em corrente alternada, pois alguns fabricantes de
PC oferecem circuitos de entrada para tensões alternadas. Entretanto, nos casos em que a distância entre os
dispositivos não ultrapassa 50m, são utilizadas as entradas de 24VCC, para evitar ruídos que possam causar
disparos acidentais. A Figura 4 apresenta a arquitetura interna do CP com uma entrada de corrente contínua
e uma entrada de corrente alternada.
a) V
C.P.U
ENTRADA 24 VCC
b) V
110/220 VCA C.P.U
Figura 4 - Arquitetura interna do CP: a) entrada corrente contínua; b) entrada corrente alternada.
Fonte: SENAI-RS.
FIQUE Nos casos de níveis elevados de tensão na entrada, deve haver uma isolação entre o
circuito de entrada e a CPU para proteger os circuitos e componentes internos do CP.
ALERTA Essa isolação é feita normalmente por meio de optoacopladores.
Entradas analógicas
As interfaces de entrada analógicas são projetadas para tratar sinais e permitir que o CP possa manipular
grandezas analógicas enviadas por esses módulos. Os sinais analógicos tratados por esses módulos são sinais
elétricos de tensão ou corrente. As faixas utilizadas para a tensão são: 0 a 10 VCC, 0 a 5 VCC, 1 a 5 VCC, -5 a +5
VCC, -10 a +10 VCC. No caso de correntes, as faixas utilizadas são: 0 a 20 mA ou de 4 a 20 mA.
Os principais componentes utilizados nas entradas analógicas são: sensores de pressão manométrica,
sensores de pressão mecânica (strain-gauges), tacogeradores, transmissores de temperatura, pressão, vazão,
nível e umidade relativa.
A Figura 5 mostra uma entrada analógica por tensão e uma entrada analógica por corrente.
2 CONCEITOS
13
a) ADC D0
+ D1
VIN D2
ENTRADA VREF + D3
D4 C.P.U
VREF - D5
D6
D7
b) bits ( digital )
Entrada em
corrente
A/D UCP
Conversor de
corrente Conversor
em tensão analógico
digital
No Quadro 3 a seguir, listamos algumas características importantes para a escolha do módulo de entrada
analógica.
CARACTERÍSTICAS DESCRIÇÃO
Quantidade de canais disponíveis Módulos de 2, 4, 8 ou 16 canais
Tipo e faixa de operação Corrente (0 a 20 mA, 4 a 20 mA). Tensão (0 a 10 V, ±10 V)
Resolução do conversor A/D De 8, 10, 12 ou 16 bits
Ciclo de atualização da amostragem Tempo de digitalização dos sinais analógicos para a CPU
Quadro 3 - Escolha do módulo de entrada analógica.
Fonte: SENAI-RS.
De forma prática, podemos dizer que as entradas digitais transmitem à CPU informações funcionais,
por exemplo: se a temperatura está adequada ou se uma determinada posição está correta. Já as entradas
analógicas transmitem informações relativas a valores de temperatura, pressão, entre outras.
Os módulos ou interfaces de saída realizam a adequação elétrica dos sinais vindos do microprocessador,
resultado da leitura do programa do usuário, para atuar nos circuitos. Existem dois tipos básicos de interfaces
de saída: as digitais e as analógicas.
MECATRÔNICA INDUSTRIAL
14
Saídas digitais
Da mesma forma que as entradas digitais, as saídas digitais também admitem somente dois estados:
ligado e desligado. Nessas saídas, podemos controlar dispositivos do tipo: relés, contatores, relés de estado
sólido, válvulas solenóides, inversores de frequência e soft starters.
As saídas digitais podem ser desenvolvidas de três formas básicas: saída digital a relé, saída digital a
transistor e saída digital a tiristor, ilustradas na Figura 6.
a)
C.P.U. SAÍDA
b) +V
C.P.U. SAÍDA
c)
C.P.U. SAÍDA
Saídas analógicas
As saídas analógicas seguem o mesmo princípio das entradas analógicas, porém, de forma inversa. Isto é,
o CP fornece um sinal com um certo número de bits, que é convertido em um sinal que geralmente está nas
faixas de 0 a 5V, 0 a 10 V,+/-10V, 0 a 20 mA, 4 a 20 mA. Esses sinais são utilizados para controlar dispositivos
atuadores como válvulas proporcionais, motores C.C., servomotores C.C., inversores de frequência e
posicionadores rotativos. A Figura 7, a seguir, mostra um circuito com saída analógica.
8 bits
C.P.U
+
DAC
V +
SAÍDA
Da mesma forma que as interfaces de entrada, as interfaces de saída também têm seus
VOCÊ módulos específicos como os conhecidos módulos PWM para controle de motores C.C.,
SABIA? os módulos para controle de servomotores, os módulos para controle de motores de
passo e os módulos para IHM.
Após nosso estudo sobre os módulos de entrada e saída, digitais e analógicas, podemos compreender a
utilização desses dispositivos e suas respectivas aplicações nos módulos, conforme ilustra a Figura 8.
0,000
0,000
IN IN IN
#####
RUN Módulo Digital
STOP Módulo Analógico
FAIL 8 Entradas e
CPU - DC/DC/DC
8 Saídas DC
*** ***
FIQUE Antes de fazer qualquer ligação no CP, certifique-se de que o componente seja digital
ou analógico. Verifique também os locais de entrada ou de saída, evitando, dessa
ALERTA forma, danificar o equipamento e o próprio CP.
Linguagens de programação
Como você já sabe, as instruções e funções, em que são operados os bits, bytes, words e double words,
são introduzidas na memória do CP por meio de uma interface destinada a esse fim. Agora, aprenderemos
como essas instruções e funções formam um programa que será desenvolvido com linguagens de
programação.
Imagine que você precisa se comunicar com outra pessoa. Para isso, você utiliza a linguagem, seja oral,
seja escrita. Nas máquinas e computadores não é diferente. Também realizamos essa comunicação, porém
de outra forma, ou seja, utiliza-se um conjunto padronizado de instruções que o sistema computacional é
capaz de reconhecer, denominado linguagens de programação.
Nos sistemas lógicos programáveis, as linguagens de programação permitem ao usuário inserir
programas de controle utilizando sintaxes preestabelecidas. Essa variedade de sintaxes é designada pelos
vários fabricantes dos CPs.
VOCÊ Em 1979 foi dado o primeiro passo para se estabelecer um padrão único para a
SABIA? programação e comunicação dos CPs: criou-se um grupo de trabalho com o IEC para a
elaboração da norma IEC 61131-3.
Um dos principais objetivos desta norma é unificar os conceitos de programação para a aplicação dos
processos de controle industrial. Quando essa norma foi desenvolvida, um grande número de conceitos
e linguagens de programação era utilizado no ambiente industrial. Com a aplicação da norma, reduziu-se
essa variedade de conceitos e linguagens para cinco linguagens de programação. Por isso, é fundamental
que todo o profissional da área de mecatrônica conheça como aplicar a IEC 61131. O Quadro 5 apresenta
as definições de cada uma das cinco linguagens de programação.
2 CONCEITOS
17
IL (INSTRUCTION LIST) Linguagem textual que utiliza uma sequência de instruções para
representar um programa. Com estrutura semelhante ao assembly, é
considerada uma linguagem de baixo nível.
ST (STRUCTURED TEXT) Linguagem textual que utiliza um texto estruturado para representar um
programa aplicativo.
FBD (FUNCTION BLOCK Linguagem de programação gráfica que utiliza diagramas de blocos de
DIAGRAM)
funções para representar o programa aplicativo.
LD (LADDER DIAGRAM) Linguagem de programação gráfica que utiliza diagramas Ladder para
representar o programa aplicativo.
SAIBA Aprofunde seus estudos sobre a norma IEC 61131-3, consultando o arquivo digital
MAIS http://www.zpss.aei.polsl.pl/content/dydaktyka/PC/PLC_IEC61131-3.pdf
1ª ETAPA Transfere os sinais existentes na interface de entrada para a memória de dados (RAM).
2ª ETAPA Inicia a varredura do software aplicativo armazenando-o na memória de dados. Durante esse ciclo, executará
todas as operações que estavam programadas no software aplicativo, como intertravamentos, habilitação de
temporizadores e contadores, armazenagem de dados processados na memória de dados, etc.
3ª ETAPA Concluída a varredura do software aplicativo, o CP transfere os dados processados (resultados das operações lógicas)
para a interface de saída. Paralelamente, novos dados provenientes da interface de entrada irão alimentar a memória
de dados. O programa completo para o controle do sistema é armazenado em uma área de memória denominada
programa do usuário. Divide-se o programa em partes, conhecidas como blocos. Os blocos podem ser identificados
por letras e números.
Quadro 6 - Estrutura de programação do CP.
Fonte: FRANCHI; CAMARGO, 2011.
• Registrador de deslocamento;
• Salto.
À medida que os CPs têm sua capacidade de processamento aumentada, surge a necessidade de funções
de software mais avançadas, tais como:
• Cálculos com ponto flutuante;
• Cálculos integrais e trigonométricos;
• Malha de controle PID;
• Posicionamento;
• Contagem rápida;
• Leitura de sinais analógicos;
• Linearização de sinais analógicos;
• Lógica fuzzy.
Os CPs recebem as informações externas por meio das entradas e controlam os dispositivos por meio das
saídas. Na memória dos CPs, são acessadas todas as variáveis que são identificadas por três regiões lógicas.
A primeira região lógica é representada por uma letra que identifica se a variável está mapeando uma
entrada, uma saída ou uma posição interna de memória, conforme mostra o Quadro 7 a seguir.
PRIMEIRA LETRA INGLÊS PORTUGUÊS
I input entrada
Q output saída
M memory memória
V memory memória
Quadro 7 - Mapeamento de posições de memória do CP.
Fonte: SENAI-RS.
Na segunda região lógica, a letra identifica o tipo de dado, como se observa no Quadro 8.
A terceira região lógica é para os dígitos subsequentes, que são representados pelas posições de memória,
que estabelecem uma hierarquia, dependendo do designado pelo fabricante do CP utilizado. O número de
níveis hierárquicos não é definido pela norma, visto que os fabricantes utilizam números separados por
pontos para a definição de um endereço. É importante saber que todo comentário inicia-se com parêntese
e asterisco e finaliza com asterisco e parêntese. A seguir, temos alguns exemplos das regiões com seus
respectivos comentários:
• I0.5 (*memória de entrada, tipo binária, palavra 0, bit 5*);
• IX8.3 (*bit 3 da palavra 8 da área de entradas*);
• QW6 (*a sexta palavra da área de saídas*);
• MB4 (*o quarto byte da área de memória interna*);
• MW1 (*a primeira palavra da área de memória interna*).
As memórias auxiliares servem para armazenamento temporário de dados (bits), e seu efeito é comparável
com o dos contatores auxiliares. Cada instrução de entrada ou saída indica a localização em que essa instrução
será armazenada na memória do CP.
A capacidade de memória varia de acordo com o modelo e fabricante de CP. Normalmente, as memórias
auxiliares dos CPs utilizam words, chamadas de registradores ou registros, bytes e variáveis de bit.
Todo controlador deverá ter uma área em sua tabela de dados que represente uma imagem virtual das
entradas ligadas aos cartões de entrada e uma área da tabela de dados que represente uma imagem virtual
das saídas ligadas aos cartões de saída.
No Quadro 9, vemos o descritivo das entradas, saídas e memórias auxiliares dos controladores programáveis.
ENTRADAS SAÍDAS MEMÓRIAS AUXILIARES
A leitura das entradas é feita do seguinte modo: se a entrada estiver energizada (recebendo alimentação),
armazena o valor 1; caso contrário, recebe o valor 0. O exemplo a seguir apresenta esse procedimento.
Exemplo prático
O acesso direto às variáveis de programação ocorre somente pelas entradas, saídas e memória interna do
controlador por meio do programa de controle. Esse acesso é definido pelo fabricante do equipamento. O
endereçamento direto é reconhecido pela utilização do símbolo “%” precedendo a sua designação. A seguir
temos alguns exemplos:
• %I2 (*bit 2 de entrada*);
• %IW10 (* Palavra 10 da área de entradas*);
• %QB6 (*Byte 6 da área de saídas*);
• %MW7 (*Palavra 7 da área de memória interna*).
Conforme definido pela norma IEC 61131-3, um comentário é iniciado e finalizado pela sequência de
caracteres. É recomendado comentar as linhas do programa sempre que sua interpretação não for óbvia.
Como já vimos, o comentário inicia-se com parêntese e asterisco e finaliza com asterisco e parêntese, conforme
exemplo a seguir.
Exemplo: %I2 (*bit 2 de entrada*)
2 CONCEITOS
21
Na programação de um CP, deve ser possível especificar valores para temporizadores, contadores, variáveis
discretas, variáveis analógicas, entre outros. Nesse programa de controle, todos os dados estão especificados
pela norma IEC 61131-3, e os tipos básicos podem ser vistos no Quadro 10 a seguir.
PALAVRA-CHAVE TIPO DE DADO FAIXA DE VALORES
Bool boolean 0 ou 1
Sint short integer 0 a 255
Int integer -32768 a +32767
Dint double integer -2147483648 a +2147483647
Uint Unsigned integer 0 a 65535
Real floating point ± 2,9 .10-39 a ± 3,4 .10+38
Time Tempo de duração Depende da implementação
String string Depende da implementação
Byte 8 bits Faixa de valores não declarada
Word 16 bits Faixa de valores não declarada
Quadro 10 - Tipos de dados especificados pela norma IEC 61131-3.
Fonte: ADAPTADO DE IEC, 2013.
Um programa é uma série de instruções ou comandos que o usuário desenvolve para fazer com que o CP
execute determinadas ações. Uma linguagem de programação estabelece regras para combinar as instruções
de forma que gerem as ações desejadas. As diversas linguagens utilizadas na programação classificam-se em
dois grupos, conhecidos como linguagem de baixo nível e de alto nível, como veremos a seguir.
Uma linguagem de programação é considerada de alto nível por apresentar uma sintaxe que se aproxima
da linguagem utilizada na comunicação interpessoal. Essa linguagem apresenta uma estrutura rígida devido
às regras utilizadas no momento da elaboração do programa. Uma única instrução em linguagem de alto
nível (programa fonte) corresponderá a várias instruções em linguagem de máquina (programa objeto). No
Quadro 11 a seguir, conhecemos algumas vantagens e desvantagens da utilização da linguagem de alto nível.
MECATRÔNICA INDUSTRIAL
22
VANTAGENS DESVANTAGENS
• Não requer do usuário conhecimento sobre a • O número de instruções do programa objeto somente
arquitetura do microprocessador. será conhecido após a compilação do programa fonte.
• Reduz o tempo gasto na elaboração de programas. • Programas maiores.
Quadro 11 - Vantagens e desvantagens da linguagem de alto nível.
Fonte: SENAI-RS.
Os controladores programáveis utilizam linguagens de alto nível para a sua programação, visando
atender aos diversos segmentos da indústria. Observamos que a norma IEC61131-3 definiu, sintática e
semanticamente, cinco linguagens de programação. As linguagens ST e IL são linguagens textuais (escritas)
e as linguagens FDB, LD e SFC são gráficas (por símbolos). No Quadro 12, temos um exemplo de uma mesma
lógica sendo aplicada nas linguagens IL, ST, FBD e LD.
LISTA DE INSTRUÇÕES LDN A
AND B
ST L
TEXTO ESTRUTURADO L:= NOT (A) AND B
DIAGRAMA DE BLOCOS FUNCIONAIS
A
& L
B
LINGUAGEM LADDER
A B L
( (
Quando os profissionais da área de automação e mecatrônica debatem questões sobre os sistemas lógicos
programáveis, a linguagem Ladder sempre surge nas conversas, pois foi a primeira a ser utilizada pelos
fabricantes, tornando-se a mais difundida mundialmente e, consequentemente, a linguagem mais utilizada
em quase todos os controladores programáveis existentes. Essa linguagem gráfica, conhecida simplesmente
como Ladder, é baseada na lógica de relés e contatos elétricos, e é usada em circuitos de comandos de
acionamentos.
A linguagem recebeu vários nomes desde a sua criação, entre eles diagrama escada, diagrama de
contatos e linguagem de contatos. Entretanto, ficou mundialmente conhecida como Ladder (escada, em
português) porque o diagrama final é semelhante à forma de uma escada. Os trilhos laterais representam
as linhas de alimentação, e cada lógica é associada a uma bobina, que são os degraus ou rung. Um degrau
é composto por um conjunto de condições de entrada (contatos NA e NF) e uma instrução de saída no
final da linha (representada pelo símbolo da bobina). Algumas vantagens e desvantagens da utilização da
linguagem Ladder estão listadas no Quadro 13 a seguir.
VANTAGENS DESVANTAGENS
• Possibilidade de rápida adaptação do pessoal técnico • Sua utilização em programas extensos ou com lógicas mais
(semelhança com diagramas elétricos convencionais com lógica complexas é bastante difícil;
a relés); • Programadores não familiarizados com a operação de relés
• Possibilidade de aproveitamento do raciocínio lógico na tendem a ter dificuldades com esta linguagem;
elaboração de um comando feito com relés; • Edição mais lenta.
• Fácil compreensão do diagrama original a partir do diagrama de
aplicação;
• Fácil visualização dos estados das variáveis sobre o diagrama
Ladder, permitindo rápida depuração e manutenção do
software;
• Documentação fácil e clara;
• Símbolos padronizados e mundialmente aceitos pelos
fabricantes e usuários;
• Técnica de programação mais difundida e aceita
industrialmente.
Quadro 13 - Vantagens e desvantagens da linguagem Ladder.
Fonte: SENAI-RS.
MECATRÔNICA INDUSTRIAL
24
O diagrama Ladder é uma técnica utilizada para descrever uma função lógica utilizando contatos e bobinas,
que se aproxima muito do projeto elétrico. O diagrama de contato é composto de duas barras verticais que
representam os polos positivos e negativos de alimentação.
A linha vertical à esquerda representa o polo positivo e a da direita, o polo negativo. A ideia principal
do diagrama em Ladder é representar graficamente um fluxo de “eletricidade virtual” entre as duas barras
verticais. Essa “corrente virtual” sempre flui do positivo para o negativo, conforme demonstrado na Figura 10.
Barra de Barra de
alimentação alimentação
positiva negativa
Figura 10 - Estrutura de um diagrama Ladder.
Fonte: SENAI-RS.
O conjunto de contatos que compõem um Ladder pode ser conhecido como condição de entrada ou
lógica de controle. As instruções de saída, como bobinas e blocos funcionais (contadores, temporizadores e
outros com funções especiais), devem ser os últimos elementos a serem colocados à direita.
Um Ladder é verdadeiro quando uma saída é energizada virtualmente. O fechamento combinado de todos
os contatos gera a corrente virtual que aciona a bobina. A Figura 11 mostra quatro exemplos das possíveis
combinações dessa corrente virtual para habilitar uma saída.
CONTINUIDADE CONTINUIDADE
CONTINUIDADE
CONTINUIDADE
Quando relés eletromecânicos são utilizados para implementar uma lógica Ladder, o fluxo de energia
pode ocorrer em qualquer sentido por meio dos contatos. Uma regra seguida por quase todos os fabricantes
de controladores é que o fluxo reverso, da direita para a esquerda, não é permitido, como se observa na
Figura 12. O fluxo de corrente elétrica virtual em uma lógica Ladder flui somente da esquerda para a direita.
3 CONCEITOS DE ELETRICIDADE BÁSICA
25
10.3 10.4
Fluxo Reverso
10.5
Se a lógica a ser implementada necessita de um fluxo reverso, devemos refazer o circuito, de modo que o
fluxo ocorra somente da esquerda para a direita, conforme demonstrado na Figura 13 a seguir.
10.3 10.4
10.4
Em um diagrama Ladder, uma bobina pode ter quantos contatos NA ou NF forem necessários. Isso
significa que um mesmo contato pode ser repetido diversas vezes. Cada conjunto de bobinas disponível e
seus respectivos contatos no controlador são identificados por um endereço de referência único. A Figura 14
mostra essa repetitividade de entradas e saídas.
12 M1
M1 12 Q1
12 Q1 Q2
Há circuitos de comandos de contatores para os quais não é possível converter um programa eletromecânico
para Ladder diretamente. Veremos um exemplo de uma chave de partida direta de motores e sua conversão
em um circuito de linguagem Ladder.
Exemplo prático
Vamos utilizar uma contatora, um botão liga e um botão desliga. Ao acionar o botão liga, o CP acionará
uma entrada para a atuação de uma das saídas com um nível de tensão alto. Essa tensão, por sua vez, acionará
a bobina da contatora principal. Para desligar o motor, deve ser acionado o botão desliga. Para tanto, nós
recebemos o seguinte circuito eletromecânico de partida direta de motor, como ilustra a Figura 15 a seguir.
CONTATO DE CONTATOS
RELÉ DE SOBRECARGA C1 DA CONTA-
CTORA C1
BOTOEIRA DE
B0
DESLIGAMENTO ELEMENTOS
DO RELÉ DE
CONTATO AUXILIAR SOBRECARGA
B1 C1 DE AUTO - RETENÇÃO
BOBINA DA
C1 CONTACTORA ATERRAMENTO
M MOTOR
3
NEUTRO
VOCÊ Profissionais que trabalham com circuitos elétricos têm mais facilidade de aprender a
linguagem Ladder, em comparação aos profissionais de outras áreas. Por isso, geralmente
SABIA? o curso de eletricidade básica é pré-requisito para a realização do curso de CP.
A avaliação da leitura é que define a ordem em que o processador executa o diagrama de contatos.
Programas compostos de vários degraus (também chamado de network) são executados da esquerda para
a direita e de cima para baixo, uma lógica após a outra, e são repetidos ciclicamente, exceto quando houver
instruções de desvio.
A prioridade de leitura é: primeiro da esquerda para a direita e depois de cima para baixo (de graus para
graus). Se tiver uma lógica “ou” (um degrau abaixo do outro), esta leitura é prioritária. A Figura 17 mostra um
exemplo de leitura com dois degraus.
NETWORK 0 NETWORK 1
12 Q0
10 13 Q1
10
11
11
Eventos ou ações impulsionais são conceitos importantes. Há situações nas quais é necessário registrar
o instante em que uma entrada comuta. Para isso, as ações impulsionais podem ser de borda de subida ou
borda de descida. Alguns CPs possuem uma instrução própria para essa finalidade. O Quadro 14 mostra as
representações dadas pelos fabricantes para borda de subida e descida.
DETECÇÃO DE CONTATO DETECTOR CONTATO DETECTOR BOBINA DETECTORA BOBINA DETECTORA
IMPULSOS DE DE BORDA DE SUBIDA DE BORDA DE DE BORDA DE SUBIDA DE BORDA DE
ALGUNS CLPS DESCIDA DESCIDA
Norma IEC 61131-3
P N P N
CP1
CP2
P N P N
Quadro 14 - Representações para borda de subida e descida.
Fonte: SENAI-RS.
MECATRÔNICA INDUSTRIAL
28
10 Q0
P
10 Q0
P
Figura 18 - Detecção da borda de subida por meio de um contato (cima) ou bobina (baixo).
Fonte: SENAI-RS.
Há CPs que possuem duas bobinas de detecção de eventos, chamados DIFU (borda de subida) ou DIFD
(borda de descida). Quando o contato “A” acionar, a bobina AU fica energizada por um único ciclo de varredura.
A Figura 19 mostra a utilização desse evento.
A AU
DIFU
Alguns CPs possuem contatos de detecção de eventos chamados ONS (One Shot - borda de subida).
Observe a Figura 20, que mostra a utilização desse evento. Quando o contato I:0 for fechado, a bobina B3:1
fica energizada por um único ciclo de varredura.
1: 0 B3:1 B3:1
ONS
0 4 5
Figura 20 - Detecção de borda de subida.
Fonte: SENAI-RS.
Também temos CPs que possuem duas bobinas de detecção de eventos, chamados OSR (One Shot Rising
- borda de subida) ou OSF (One Shot Falling - borda de descida). A Figura 21 mostra a utilização desse evento.
OSR
1:0 One Shot Rising
Storage Bit B3: 1/0
0 Output Bit B3:1/1
OSF
1:0 One Shot Falling
Storsge Bit B3: 1/2
0 Output Bit B3: 1/3
O funcionamento desse tipo de evento é o seguinte: quando é acionado o contato I:0, na transição de 0
para 1, o bit de saída (Output Bit) só vai ter o valor 1 no primeiro ciclo de varredura, enquanto que o bit de
armazenamento (Storage Bit) vai permanecer em 1, enquanto o contato I:0 permanecer fechado. Quando o
contato I:0 for aberto, tanto o bit de saída quanto o bit de armazenamento são postos com valor 0.
Caso o CP não possua borda de subida, esse pode ser implementado, conforme apresenta a Figura 22.
10 M1 M0
10 M1
10 Q0 M0
P S
Q0 M0
R
M0 Q0
A seguir, mostramos o funcionamento desse exemplo. Temos três linhas de programação. A linha 1 aciona
M0, a linha 2 desaciona M0 e a linha 3 aciona Q0.
Inicialmente, quando se aciona o comando I0, se Q0 estiver desacionado, aciona-se M0. Toda essa ação
acontece em função do comando I0 ter um contato de borda de subida na primeira linha, assim como Q0 ter
um contato NF e M0 uma bobina SET.
Agora, com M0 acionado, ele se desligará automaticamente caso não tenhamos o contato de borda
subida. Como no exemplo apresentado, M0 permanecerá ligado, pois temos o contato de borda de subida.
Essa memória acionará a bobina Q0.
Como Q0 foi acionado no passo anterior, os contatos NF e NA de Q0, das linhas 1 e 2, modificarão seu
estado. O Q0 da linha 2 se fechará, ao mesmo tempo em que o Q0 da linha 1 se abrirá. Com essa ação, I0 é
novamente acionado, fazendo com que a memória M0 seja desligada, juntamente, com Q0.
Para finalizar a explicação desse exemplo, sabemos que Q0 está desacionado e o estado de seus contatos,
antes invertidos, voltam à situação inicial. Com esse processo concluído, podemos reiniciar todo o ciclo de
ligação de motores.
MECATRÔNICA INDUSTRIAL
30
4.3 CONTADOR
O contador é um bloco lógico de incremento interno, em que sua saída é habilitada após alguns pulsos
(eventos). O contador pode incrementar, aumentando uma unidade no valor de uma variável, ou decrementar,
fazendo com que o valor de uma variável diminua uma unidade. Há três tipos básicos de contadores: contador
crescente, contador decrescente e contador bidirecional.
CTU
CU Q
PV CV
O Quadro 15, a seguir, mostra o formato do bloco de função de um contador crescente (CTU) da norma
IEC 61131-3.
SÍMBOLO NOME ENTRADA / SAÍDA DESCRIÇÃO TIPO DE DADO
CU Count up Entrada Entrada de contagem crescente (borda subida) BOOL, R_EDGE
R Reset Entrada Entrada de reset do contador (faz CV = 0) BOOL
PV Preset value Entrada Valor do limite superior desejado de contagem INT
CV Counter value Saída Contém o valor acumulado da contagem INT
Q Quit Saída É energizado quando CV >= PV BOOL
Quadro 15 - Formato do bloco de função de um contador crescente.
Fonte: SENAI-RS.
Esse bloco tem como função a contagem de eventos, isto é, contar transições falsas/verdadeiras na linha
de controle. O valor limite superior de contagem desejado é fornecido à entrada PV. Quando a entrada CV
detecta a mudança do nível lógico 0 para o nível lógico 1 (borda de subida), o valor acumulado CV aumenta
uma unidade. A saída binária Q será energizada quando o valor acumulado CV for igual ou maior que o valor
de PV. A entrada R corresponde à entrada de reinício da contagem. Sempre que for a nível lógico 1, faz com
que o valor de CV fique zero. Essa entrada é dominante; se estiver ativa, o valor de CV será sempre zero.
CTD
CD Q
LD
PV CV
O Quadro 16 apresenta o formato do bloco de função de um contador decrescente (CTD) da norma IEC
61131-3.
SÍMBOLO NOME ENTRADA / SAÍDA DESCRIÇÃO TIPO DE DADO
CD Count down Entrada Entrada de contagem decrescente (borda subida) BOOL, R_EDGE
LD Load Entrada Entrada de reinício do contador (faz CV = PV) INT
PV Preset value Entrada Valor desejado de contagem INT
CV Counter value Saída Contém o valor acumulado da contagem INT
Q Quit Saída É energizado quando CV <= 0 BOOL
Quadro 16 - Formato do bloco de função de um contador decrescente.
Fonte: SENAI-RS.
Quando a entrada LD recebe um valor verdadeiro (nível lógico 1), o valor presente em PV é transferido
para CV (CV = PV). A cada pulso recebido na entrada CD, o valor de CV é diminuído uma unidade, e a saída Q
energiza (vai para nível lógico 1) quando o valor de CV for menor ou igual a zero (CV <= 0).
Alguns CPs utilizam a instrução contador crescente em conjunto com o contador decrescente, formando
o contador bidirecional. Observe na Figura 26 um contador bidirecional (CTUD).
CTUD
CU QU
CD QD
LD
PV CV
Se for detectado um pulso na entrada de contagem crescente CU, o valor de CV será aumentado uma
unidade; da mesma forma, se for detectado um pulso na entrada decrescente CD, o valor de CV será diminuído
uma unidade. A saída limite superior QU é ativada quando o valor de CV for maior ou igual a PV. A saída limite
inferior QD é ativada quando o contador chegar a zero.
MECATRÔNICA INDUSTRIAL
32
Exemplo prático
Uma determinada máquina separa certa quantidade de cubos metálicos, que passam sobre uma
esteira. O atuador linear de avanço por solenoide e retorno por mola executa o trabalho de separação
desses cubos metálicos.
Inicialmente, sabe-se que esse atuador já está avançado. Para recuar o atuador, deve-se acionar o botão
de partida, permitindo a passagem das peças. O atuador só avançará novamente quando um sensor indutivo,
localizado em uma das extremidades da esteira, for acionado vinte vezes. O Quadro 17 identifica as entradas
e saídas para o desenvolvimento da programação em Ladder, que fará o acionamento do atuador para
separação das peças.
ENTRADAS SAÍDAS
• I0 – botão de partida • Q0 – solenoide de avanço
• I1 – sensor indutivo do atuador
Quadro 17 - Identificação das entradas e saídas.
Fonte: SENAI-RS.
Com base nessa tabela, desenvolvemos o circuito, conforme apresentado na Figura 28.
10 Q0
S
11 Q0
CU CTU Q R
10
R
20 PV CV
4.4 TEMPORIZADOR
Tx
IN Q
PT ET
Os tipos de dados do bloco temporizador, conforme norma IEC 61131-3, estão descritos no Quadro 18.
NOME SIGNIFICADO ENTRADA/SAÍDA DESCRIÇÃO TIPO DE DADO
IN Enable Entrada Bobina de energização do temporizador BOOL
PT Preset Time Entrada Programação do tempo desejado TIME
ET Elapsed Time Saída Valor do tempo decorrido TIME
Q Quit Saída Energiza quando ET >= PT BOOL
Quadro 18 - Tipos de dados para o bloco temporizador – IEC 61131-3.
Fonte: SENAI-RS.
A base de tempo varia de controlador para controlador. Alguns admitem a base de tempo fixa, outros
permitem a seleção na instrução. Esses valores podem variar de 1ms até alguns segundos. As três instruções
de temporização, conforme a norma IEC 61131-3 são:
• TP (Pulse Timer): Temporizador de pulso;
• TON (Timer On Delay): Retardo para ligar;
• TOF (Timer Off Delay): Retardo para desligar.
As instruções de comparação são utilizadas para testar pares de valores, de modo que possibilite manter a
continuidade lógica de uma linha. Observe as características de cada instrução de comparação no Quadro 19.
INSTRUÇÃO DESCRIÇÃO
Igual a (EQU, =) Testa se dois valores são iguais. Se a Origem A e Origem B são iguais, a lógica
da linha é verdadeira.
Diferente NEQ, <>) Testa se o primeiro valor não é igual ao segundo. Se Origem A e Origem B são
diferentes, a lógica da linha é verdadeira.
Menor que (LES, <) Testa se o primeiro valor é menor que o segundo. Se a Origem A é menor que
o valor da Origem B, a lógica da linha é verdadeira.
Menor ou igual a LEQ, <=) Testa se o primeiro valor é menor ou igual ao segundo. Se o valor da Origem A
é menor ou igual ao da Origem B, a lógica da linha é verdadeira.
Maior que (GRT, >) Testa se o primeiro valor é maior que o segundo. Se o valor da Origem A é
maior que o valor da Origem B, a lógica da linha é verdadeira.
Maior ou igual a GEQ, >=) Testa se o primeiro valor é maior ou igual ao segundo. Se o valor da Origem A
é maior ou igual ao valor da Origem B, a lógica da linha é verdadeira.
Quadro 19 - Instruções de comparação.
Fonte: SENAI-RS.
Sempre que a instrução move for habilitada na sua entrada EN, moverá o dado armazenado no campo IN
para uma área de memória determinada pelo usuário em OUT. É a partir do bloco move que pode ser realizado
o controle de saídas analógicas. O dado de entrada pode ser uma constante M, V, I, Q, no formato de byte, word
ou double word. O dado de saída deverá ser obrigatoriamente do mesmo formato do dado de entrada.
Sua função é converter um tipo de dado para outro. O Quadro 21 apresenta os tipos de conversão.
CONVERSOR AÇÃO
TRUNC (Truncate) Converte um dado no formato real para duplo inteiro. Só a parte inteira do número
real é convertida, a fração é descartada.
ROUND (Round) Converte um dado no formato real para duplo inteiro. Se a fração for 0,5 ou maior, o
arredondamento será para mais.
BCD_I (BCD to Integer - binary-coded Código decimal binário para inteiro - converte um dado no formato BCD para
decimal to integer) inteiro; I_BCD faz o inverso.
DI_R (Double Integer to Real) Converte um dado no formato duplo inteiro para real; R_DI faz o inverso.
DI_I (Double Integer to Integer) Converte um dado no formato duplo inteiro para inteiro; I_DI faz o inverso.
B_I (Byte to Integer) Converte um dado no formato de byte para inteiro; I_B faz o inverso.
Quadro 21 - Tipos de conversão.
Fonte: SENAI-RS.
4.9 PWM
A modulação por largura de pulso ou PWM consiste em gerar uma onda quadrada com tempo de ciclo
completo e constante. Modificando-se a largura de pulso, automaticamente aumentará ou diminuirá a tensão
média na saída. A Figura 30 ilustra o processo de PWM. Abrindo e fechando em tempos controlados, variamos
a tensão média.
Podemos notar que a Figura 30 mostra uma tensão média na saída de 50% em relação à tensão de
alimentação. Isso acontece porque o tempo de desligado e o tempo de ligado são os mesmos. Se aumentarmos
o tempo desligado (0), a largura do pulso aumentará conforme o tempo em que ele ficar nessa condição. O
intervalo entre os pulsos é dado pelo tempo em que ele fica ligado. Os dois tempos juntos definem o período,
isto é, uma frequência de controle. Se variarmos a largura do pulso e também o intervalo de modo, teremos
ciclos ativos diferentes. Assim, poderemos controlar a tensão média aplicada a uma carga, conforme mostra
a Figura 31 a seguir.
100 1%
Potência
aplicada á
carga 1%
Tempo
99 %
100
Tempo
A seguir, temos um exemplo prático de um PC, baseado no método fuzzy para ligação PWM, em
acionamentos de motores de indução com controle constante, relação V/Hz. O objetivo é fornecer uma ação
de controle eficaz para mudanças bruscas na velocidade de referência ou torque de carga.
Exemplo prático
Um controlador de mudança possui dois modos de controle: um controlador PID do tipo fuzzy e um
controlador PID convencional. Na fase inicial da ação de controle, a tarefa é tratada pelo controlador PID do
tipo fuzzy. Numa fase posterior, quando o absoluto de erro for menor do que um valor de limiar, a entrada
do integrador no lado de saída não será mais determinada por ação difusa, mas alimentada pela ação PID
incremental.
Em termos de ação de controle, ela é reforçada proporcionalmente e derivativamente quando o valor real
é fechado para referência. São apresentadas avaliações detalhadas de desempenho do controlador com base
em índices pré-definidos de desempenho sob diversas condições.
Os resultados demonstram a capacidade do método de controle para fornecer uma solução viável de
controle em resposta às condições de funcionamento e requisitos diferentes.
Na Figura 32, temos um controle PWM de um motor utilizando um controlador.
3 CONCEITOS DE ELETRICIDADE BÁSICA
37
Computador L1 L2 L3
Sinal Proteção
Controle
Sinal Controlador Inversor
IHM
Programável PWM
Controle
de
Reversão
Velocidade
Entrada
4.10 INTERRUPÇÕES
CASOS E RELATOS
RECAPITULANDO
Neste livro, destacamos os principais aspectos dos controladores programáveis, desde os princípios de
funcionamento, memória, hardware, até as interfaces de entrada e saída. Foram apresentadas, também, as
linguagens de programação – normas, estruturas, variáveis, tipos e aplicações. Ressaltamos a linguagem Ladder por
ser a primeira linguagem de programação utilizada pelos fabricantes, fato que a tornou a linguagem mais utilizada
mundialmente pelos controladores programáveis.
Enfatizamos a importância das aplicações das linguagens e suas técnicas estruturadas de programação para
a obtenção de êxito na implementação de qualquer sistema mecatrônico. Os conhecimentos aqui abordados
estão diretamente relacionados à capacidade do profissional em conseguir integrar todas essas linguagens e suas
tecnologias de forma a atender os requisitos do mercado industrial.
REFERÊNCIAS
FRANCHI, C. M.; CAMARGO, V. L. A. Controladores lógicos programáveis: sistemas discretos. 2. ed.
São Paulo: Érica, 2011.
______. IEC 61131-3 ed. 3.0: programmable controllers: part 3: programming languages. Geneva,
2013.
SENAI – DEPARTAMENTO NACIONAL
UNIDADE DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA – UNIEP
Fernando R. G. Schirmbeck
Coordenação Técnica
Marcelo de Quadros
Revisão Técnica
Enrique S. Blanco
Patricia C. da S. Rodrigues
Design Educacional
Aurélio Rauber
Direção de Arte
Aurélio Rauber
Camila J. S. Machado
Rafael Andrade
Ilustrações
Roberta Triaca
Apoio a Normatização
Enilda Hack
Normatização
Duploklick
Revisão Ortográfica e Gramatical