Escolar Documentos
Profissional Documentos
Cultura Documentos
AUTOMAÇÃO INDUSTRIAL E
ROBÓTICA
AULA 3
Nesta etapa, dedicaremos nossos estudos aos controladores lógicos programáveis, sobre os
quais já havíamos comentado em conteúdo anterior. Entretanto, nesta etapa, analisaremos todos os
aspectos relacionados a eles, começando pelo histórico do seu desenvolvimento, além de falar sobre
sua arquitetura e classificação. Ainda, discutiremos a respeito do seu princípio de funcionamento, que
Ainda nesta etapa, abordaremos a norma IEC – 61131, a qual foi responsável pela padronização
do controlador lógico programável (CLP), abordando tanto aspectos de hardware quanto de software
destes dispositivos. Também analisaremos quais são as linguagens de programação para CLP
definidas por essa norma, entre as quais a linguagem ladder se destaca no chão de fábrica.
Finalizaremos com os blocos funcionais, que são úteis na programação do CLP, tanto como uma
linguagens, como a linguagem ladder. E, falando em linguagem ladder, ela também será nosso tema
de estudo, pois conforme já havíamos comentado, ela é uma das mais utilizadas na programação de
CLP.
Cabe mencionar que os CLPs são dispositivos extremamente versáteis, e por mais que
discutamos a sua aplicação no ambiente industrial, eles possuem diversas aplicações em sistemas de
automação fora das plantas industriais também. Devido a sua versatilidade, podem ser empregados
discutir sobre sua evolução e seus aspectos construtivos, ou seja, vamos analisar quais são os
elementos básicos que o formam e as possíveis classificações adotadas para esses dispositivos. É
comum ouvir referências ao CLP pela sigla PLC, isso porque seu nome em inglês é programmable
logic controller.
Mesmo assim, tanto empregando o termo CLP quanto o PLC, estamos nos referindo ao mesmo
Quando falamos na criação do CLP, precisamos discutir o contexto em que ele surgiu, pois as
necessidades sentidas pela indústria automobilística da década de 1960 são consideradas o incentivo
para a criação destes. Essas indústrias estavam sofrendo com a falta de flexibilidade dos sistemas de
comandos elétricos que estudamos em conteúdo anterior. Essas tecnologias eram limitadas do ponto
plantas industriais.
Seguindo essa ideia, no final da década de 1960, a GM especificou os requisitos necessários que
um controlador deveria ter para atender às necessidades da indústria, os quais seriam os requisitos
para o CLP, que, na época, ainda não existia. Segundo Moraes (2015), as especificações para o CLP
Facilidade de programação;
Expansão em módulos;
Mínimo de 4000 palavras na memória.
O primeiro dispositivo criado considerando essas especificações foi desenvolvido pela Gould
Modicon em 1969, empregando os processadores que foram desenvolvidos. Aos poucos, foram
surgindo outros modelos de CLP, acompanhando as inovações tecnológicas até chegar nos modelos
atuais que possuem diversas funções além das que foram especificadas inicialmente. Porém, vale
lembrar que esses dispositivos sempre tiveram uma boa aceitação no ambiente industrial, pois
trouxeram a solução para diversos problemas enfrentados, como longas paradas para manutenção,
difícil reprogramação, além da redução de espaço ocupado dentro da planta devido às suas
dimensões reduzidas. Isso fez com que os CLPs passassem a ser empregados tanto em outras
indústrias automobilísticas quanto em outros tipos de indústrias, sendo até hoje um dos dispositivos
mais empregados em sistemas de automação programável.
Agora, passaremos à discussão sobre a sua arquitetura, ou seja, sobre os elementos básicos que
formam esses dispositivos e, na sequência, falaremos sobre as possíveis classificações adotadas para
esses controladores.
Atualmente, existem diversos modelos e opções de CLP no mercado, porém, todos são formados
basicamente pelos mesmos elementos, que se relacionam entre si. À configuração dos elementos e
suas conexões chamamos de arquitetura do CLP. A figura 1 ilustra essa arquitetura, sendo possível
observar os elementos que o compõem e suas conexões. A seguir, vamos tratar com mais detalhes
Basicamente, um CLP é formado por: módulo de entrada, CPU, memória, fonte de alimentação,
O módulo de entrada é responsável pela interface entre os sinais oriundos do meio externo com
responsáveis por fornecer informações sobre o processo. Um CLP pode contar com módulos de
digitais são responsáveis pelos sinais digitais. Dependendo da configuração do CLP, o módulo de
entrada pode ser embarcado, ou seja, montado dentro da mesma estrutura que os demais
componentes, como no caso do CLP compacto, ou ainda, em módulo separado, como no caso do
CLP modular, que possui cada elemento em módulo. Ainda, segundo Moraes (2015), o número de
acionamentos que um módulo de entrada tem durante sua vida útil é de aproximadamente 10x106
por entrada.
O módulo de saída, assim como o de entrada, tem capacidade de lidar tanto com sinais
analógicos quanto com sinais digitais, porém, o número de saídas analógicas e digitais vai depender
do modelo do CLP.
Ainda, podemos descrever sua função como adequação do sinal de saída gerado pela CPU para
níveis adequados aos atuadores que estão conectados a esses módulos. São esses atuadores que
farão as modificações necessárias no processo, baseados em ações de controle definidas pela CPU e
transmitidas a eles pelo módulo de saída.
Agora que entendemos como funciona a obtenção de dados e o envio de comandos do CLP,
vamos tratar do processamento desses dados. O processamento de dados é realizado pela CPU,
bloco responsável por interpretar os sinais enviados pelo módulo de entrada, comparar com um
programa de instruções definido pelo usuário com a intenção de tomar decisões a respeito do
processo e, na sequência, enviar esses comandos ao módulo de saída. Basicamente, a CPU funciona
como o cérebro do CLP, sendo assim, é a parte mais importante, responsável pelo gerenciamento de
todos os demais dispositivos. Além disso, acumula as funções de tratamento de dados,
Já falamos sobre o programa de instruções definido pelo usuário, porém, não mencionamos
onde ele fica armazenado, sendo assim, apresentamos agora a memória do CLP. Todos os programas
de instruções definidos pelo usuário são armazenados na memória do dispositivo, além disso, a
memória também é responsável por armazenar os dados dos módulos de entrada e saída,
Para que todos os outros elementos apresentados na figura 1 funcionem, é importante que seja
fornecido a esses a energia necessária, por isso, outro elemento fundamental do CLP é a fonte de
energia. Ela é responsável por energizar todos os elementos, além de manter o banco de baterias, o
qual será responsável por manter a memória energizada quando o CLP estiver desconectado da
alimentação. Dessa forma, podemos perceber que a fonte de alimentação é importante tanto durante
o uso do CLP quanto nos momentos em que este se encontra parado, pois ainda existe a
E, por fim, temos a unidade de programação, a qual tem como função realizar a entrada de
dados referentes aos programas de instruções definidos pelo usuário. Ainda, essa unidade pode
também atuar tanto no download quanto no upload de dados por parte do usuário. Por meio do
download de programas é possível inserir novos programas de instruções no CLP, enquanto que por
meio do upload é possível transferir para um computador programas que já estejam na memória do
CLP. Apresentados os elementos que formam a arquitetura desses dispositivos, vamos abordar suas
classificações.
Classificar um CLP quanto à sua estrutura considera como critério a disposição dos elementos
que formam a sua arquitetura, conforme vimos anteriormente. Basicamente, existem duas categorias,
sendo elas: CLP compacto e CLP modular.
O CLP compacto apresenta todos os componentes em uma única caixa, ou seja, tanto módulos
de entradas/saídas, CPU e os demais componentes estão dentro de uma única estrutura. Devido a
essa característica, os CLPs compactos não permitem a expansão, pois não é possível acrescentar
mais componentes no interior de sua estrutura. Normalmente, esses CLPs são do tamanho micro ou
nano, possuindo menor capacidade de processamento e memória. Porém, quando comparados aos
CLPs modulares, possuem tamanho e custos menores, sendo ideias para aplicações que não exigem
modelos mais robustos ou complexos.
A outra configuração possível para o CLP é a modular, a qual possui sua estrutura dividida em
módulos, os quais são montados sobre uma base também denominada de rack. A figura 3 apresenta
um exemplo de CLP modular, em que é possível verificar a divisão em módulos posicionados sobre
uma base.
Este modelo é interessante para aplicações que constantemente são alteradas, sendo possível
agregar módulos, tais como módulos de entradas e módulos de saída, módulos de memórias, entre
outros. Essa possibilidade de expansão torna esses dispositivos mais flexíveis, entretanto, eles
possuem custos mais elevados. Além disso, costumam ter maiores dimensões, porém, com maior
capacidade de processamento. A escolha do modelo vai depender da aplicação e de suas
necessidades.
(E/S) que eles possuem, chamada de classificação quanto ao tamanho. Essa classificação considera
que quanto mais E/S o CLP tiver, maior ele será, portanto, os CLPs grandes possuem grandes
quantidades de E/S. A tabela 1 apresenta a classificação, na qual podemos verificar que os possíveis
tamanhos são: grande, médio, pequeno, micro e nano. Estes possuem a quantidade de E/S conforme
CLP micro ≤ 32
CLP nano ≤ 16
Assim como foi discutido para a classificação anterior, a especificação do tamanho do CLP deve
atender aos requisitos da aplicação na qual ele será inserido, isso porque quanto maior o CLP, maior
tende a ser seu custo. Sendo assim, é importante uma especificação correta para viabilizar a
implantação do sistema.
Agora que conhecemos os elementos que formam a arquitetura do CLP e suas classificações,
vamos aprofundar nossos estudos a respeito do funcionamento desses dispositivos. Segundo Rosário
(2015), o funcionamento do CLP pode ser definido como a execução do programa elaborado pelo
fabricante, isso dentro da CPU. Entretanto, todos os fabricantes empregam o mesmo tipo de
programa para isso, sendo este uma rotina cíclica que é chamada de ciclo de varredura, sendo
conhecido também como ciclo de scan. A figura 4 ilustra o fluxograma do ciclo de varredura, por
meio do qual podemos observar o fluxo, o qual é composto pela etapa de inicialização e, na
Execução do programa;
Essas etapas podem ser chamadas também de: varredura de entrada, varredura de programa e
varredura de saída, respectivamente. O ciclo de varredura começa quando ligamos o CLP e ocorre a
inicialização, processo que podemos descrever como a verificação do funcionamento da CPU, dos
Após a inicialização, acontece a varredura das entradas, que consiste na leitura das entradas com
a intenção de armazenar os dados oriundos deste módulo, sendo que os estados das entradas são
armazenados na memória do CLP. Vale lembrar que podem estar conectados diversos tipos de
sensores ao módulo de entrada, e qualquer medição realizada por esses elementos será convertida
Na sequência, ocorre a varredura do programa, que pode ser considerada também como a
execução do programa de instruções definido pelo usuário. Nessa etapa, os valores armazenados
referentes às entradas são comparados com o programa de instruções, sendo realizados cálculos da
lógica de controle para determinar os valores das saídas, que correspondem às ações de controle
E, por fim, temos a varredura de saída, em que os resultados determinados pelo controlador são
enviados para os módulos de saída com o objetivo de realizar a atualização das saídas. É nessa etapa
que são enviadas as ações de controle para o sistema automatizado, as quais serão implementadas
pelos atuadores.
Ainda, temos o tempo de varredura, que, segundo Groover (2011), pode ser definido como o
tempo de execução de todas as etapas de varredura que acabamos de descrever. Para cada CLP e
para cada programa de instruções, esse tempo pode ser diferente, pois vários fatores o influenciam,
como o processador utilizado no modelo do CLP, o número de entradas que são lidas, a
complexidade do programa de instruções, entre outros. Além disso, é importante pontuar que o ciclo
de varredura fica ocorrendo enquanto o CLP estiver ligado e no modo de operação destinado à
A seguir, vamos estudar os métodos de processamento que o CLP poderá executar, além de
varredura.
mencionado.
O processamento por interrupção tem como objetivo atender às situações que podem ocorrer
com o processo controlado pelo CLP e que não podem esperar que o ciclo de varredura seja
completado, ou seja, situações em que é necessário resolvê-las imediatamente. Neste caso, a CPU
deve parar o ciclo de varredura e executar um programa específico para tratar da situação adversa
Porém, a CPU não pode apenas parar um ciclo e executar outro, é necessário que ela guarde em
sua memória o ponto de parada do ciclo de varredura e volte exatamente para este ponto quando
finalizar o tratamento da interrupção. Sendo assim, quando o sistema termina de lidar com a
execução do programa de interrupção, ele volta e retoma o ciclo de varredura do ponto em que foi
interrompido.
por interrupção, entretanto, neste método, temos intervalos de tempos regulares envolvidos. Sendo
assim, podemos definir o processamento por tempo como um processo para tratar situações em que
E, por fim, temos o processamento por evento, o qual está condicionado à ocorrência de eventos
específicos. Podemos citar como exemplos de eventos os problemas que podem ocorrer com o
Além disso, existe um evento muito importante que pode ocorrer com o CLP, que é o estouro do
tempo de execução do ciclo de varredura por conta de alguma anomalia. Nestes casos, a CPU
também passará a realizar o processamento de maneira diferente.
Além dos métodos de processamento que acabamos de estudar, outro assunto muito
operação se refere ao tipo de funcionamento empregado pela CPU, sendo que cada modo de
operação está relacionado à necessidade da situação na qual o CLP se encontra.
Neste contexto, existem quatro modos de operação nos quais a CPU pode trabalhar:
Modo de programação;
Modo run;
Modo stop;
Modo reset.
Cada modo de operação, como já mencionamos, está associado a uma necessidade de operação
do CLP. Ainda, existem alguns modelos de CLP que indicam em qual modo de operação ele está
Neste modo é possível tanto fazer o download quanto o upload de programas de instruções
desenvolvidos pelo usuário em dispositivos de programação, porém, neste caso, é necessário que
esse dispositivo esteja de alguma maneira conectado ao CLP. É importante salientar que somente
com o CLP no modo de programação é possível fazer o envio de programas de instruções. Caso essa
operação seja realizada com o CLP em outro modo, este não receberá o programa enviado.
Após finalizado o envio do programa de instruções, é necessário alterar o modo do CLP para que
ele passe então a executar esse programa. Neste caso, o CLP deverá ser colocado no modo run.
Quando o CLP se encontra no modo run, ocorre a execução do ciclo de varredura, sendo
executado o programa de instruções enviado. Sendo assim, todas as ações performadas pelo CLP,
quando este se encontra neste modo, dependem da lógica que foi implementada no programa de
instruções definido pelo usuário.
Outro ponto importante a respeito desse modo é que quando o CLP se encontra nele, existe a
possibilidade de comunicação com outros dispositivos, como outros CLPs, interfaces homem-
máquina (IHMs), entre outros. Porém, essa possibilidade de comunicação não esteve sempre
presente nos CLPs, sendo uma característica dos modelos mais recentes.
verificação das entradas do dispositivo, permitindo que sejam detectadas possíveis falhas ou erros
Além disso, cabe mencionar que quando o CLP se encontra no modo stop, ele não recebe o
download de programas e não executa nenhum programa que esteja gravado em sua memória.
Portanto, enquanto ele estiver nesse modo, não ocorre a execução do ciclo de varredura.
seja, quando um CLP se encontra nesse modo, todas as ações definidas pelos programas de
instruções que foram enviados a ele são resetadas. Neste caso, o CLP passa a assumir as condições
originais definidas pelo fabricante. Existem diferente tipos de reset, sendo possível apagar apenas
dados da operação, ou ainda apagar por completo, resetando as entradas e saídas, as memórias e os
registradores.
TEMA 3 – NORMA IEC – 61131 E LINGUAGENS DE PROGRAMAÇÃO
Neste tópico, abordaremos a norma IEC – 61131, que foi responsável pela padronização dos
CLPs, e discutiremos sobre as linguagens de programação definidas por essa norma. Entretanto,
antes de entrarmos neste assunto propriamente, vamos relembrar alguns conceitos sobre linguagem
de programação e analisar as razões pelas quais é necessário programar um CLP.
Relembrando o conceito de linguagem de baixo nível, temos que são aquelas que mais se
mais rapidamente, o que a torna mais eficaz e otimizada sob este ponto de vista. Por ela ser muito
próxima da linguagem de máquina, não existe necessidade de ocorrer uma tradução, como no caso
das linguagens de alto nível, porém, para programar esse tipo de linguagem é necessário
expresse de maneira mais simples e concisa as instruções contidas no código. Nesses casos, ocorre
uma espécie de tradução da linguagem para o processador, não sendo necessário inserir informações
sobre as listas de instruções e registradores. Assim, podemos citar como exemplos desse tipo de
linguagem a C, C++, Python e Java.
Com a grande aceitação que o CLP teve pelos diferentes tipos de indústrias e áreas, muitos
fabricantes de equipamentos se interessaram por sua fabricação, surgindo, assim, diversas marcas e
modelos. Isso fez com que fossem gerados diversos problemas de incompatibilidade em relação à
programação desses dispositivos, uma vez que cada fabricante criava sua própria linguagem para a
programação do modelo que ele desenvolvia. Nesse cenário, surgiu a necessidade de uma
International Electrotechnical Comission (IEC) para avaliar o projeto completo de CLP, englobando
temas como hardware, instalação, testes, documentação e programação. Como deveriam ser
padronizados diferentes temas, foram estabelecidas diversas forças-tarefas com a ajuda de empresas
norma IEC 61131, cujo art. 3º é dedicado às linguagens padrões para CLP.
A norma mencionada estabelece cinco linguagens de programação para o CLP, sendo cada uma
com características diferentes que visam atender às necessidades dos controladores atuais. Essas
linguagens, por sua vez, estão divididas em duas categorias: as gráficas e as textuais.
A seguir, abordaremos quatro dessas linguagens, sendo que a mais utilizada delas será abordada
em um tópico separado.
3.1 LINGUAGENS DE PROGRAMAÇÃO PARA CLP
Conforme já discutimos, existem cinco linguagens padrões para a programação de CLP, e cada
fabricante deve adotar uma ou mais entre essas linguagens. Sendo assim, um fabricante não pode
desenvolver um CLP que não possa ser programado por meio de uma dessas cinco linguagens.
As subseções a seguir têm como intenção apresentar algumas características importantes sobre
essas linguagens, não abordando apenas o diagrama ladder, pois, devido ao fato desta linguagem
ser a mais utilizada, a abordaremos com mais detalhes em um tópico exclusivo para ela.
programação, sendo duas textuais e três gráficas. Vamos, agora, abordar uma das linguagens
textuais, a qual é denominada lista de instruções. Além do nome em português, essa linguagem
também é chamada pela sigla IL, que é referente ao seu nome em inglês instruction list.
A lista de instruções se assemelha à linguagem Assembly, sendo que esta faz uso de
mnemônicas padronizadas pela norma IEC 61131-3 para o desenvolvimento do código pelo usuário.
Além disso, como é uma linguagem de baixo nível, ela interage mais rapidamente com a CPU do
controlador, pelos motivos que já mencionamos anteriormente. Porém, a programação dos
linguagem Assembly, utilizando comandos como load e store, aplicando o conceito de acumulador
para o armazenamento de resultados intermediários. Sendo assim, empregando uma sintaxe própria
é possível definir quais valores devem ser atribuídos a determinadas variáveis, além de desenvolver
lógicas como AND e OR, empregar temporizadores e muitos outros tipos de comandos.
OR N Função lógica OR
Cada linha de instrução segue uma sequência de dados contendo as informações necessárias
para o CLP executar o comando. A figura 6 apresenta a estrutura de uma linha de instrução da
linguagem lista de instruções, sendo a linha formada por: rótulo, operador e modificador, operando e
Linha de instrução
Podemos verificar um exemplo de código desenvolvido nesta linguagem por meio da figura 7, o
qual consiste na implementação de uma lógica AND entre duas entradas do CLP (I.01 e I.02)
armazenando o resultando na saída Q.01. Também é possível observar os comentários que auxiliam
na compreensão do código. Por não ser uma linguagem muito intuitiva e de fácil visualização, é
comum que eventuais modificações no programa de instruções sejam complexas e trabalhosas, nesse
A segunda linguagem textual definida pela norma IEC 61131-3 é o texto estruturado, do inglês
structured text (ST). Esta linguagem é formada por escritas que são denominadas statements,
separadas por ponto e vírgula, sendo que essas escritas empregam funções e sub-rotinas
predefinidas para modificar variáveis e descrever o funcionamento do programa. Podemos dizer que
esse linguagem faz uso de estruturas de laços de repetição, contadores e lógicas de condição, como
if, then e for, para o desenvolvimento de programas de instrução.
Outra característica importante dessa linguagem é que ela é considerada a mais robusta entre as
linguagens de programação de CLP, isso porque todos os programas de instruções desenvolvidos
nas outras linguagens, quando são convertidos por linguagem de máquina por meio da compilação,
tornam-se texto estruturado. Sendo assim, quando se programa diretamente nesta linguagem, ela já
meio do qual podemos observar a implementação de um laço de repetição do tipo faça tal ação
enquanto tal condição for verdadeira, realizando o incremento de uma variável a cada rodada.
para os CLPs. A primeira que estudaremos é o diagrama de blocos, sendo essa linguagem também
chamada de diagrama de blocos de funções, do inglês function block diagram (FBD).
Essa linguagem permite a inserção de blocos de operacionais contendo instruções de alto nível,
formando os programas de instruções. Cada bloco é formado por uma ou mais entradas, além de
uma ou mais saídas, sendo que as operações acontecem sobre as entradas e, consequentemente,
alteram as saídas. Esses blocos também existem e são empregados dentro das outras linguagens de
programação, tornando o código mais dinâmico e flexível.
Entres os principais blocos de funções empregados tanto nesta quanto em outras linguagens,
Blocos biestáveis;
Blocos contadores;
Blocos temporizadores.
Devido às características desta linguagem, ela se torna a preferida pelos profissionais da área da
eletrônica, os quais já possuem afinidade com blocos funcionais. Como os blocos empregados nessa
linguagem também são muito utilizados nas demais, vamos abordá-los com mais detalhes no
próximo tema, o qual será todo dedicado a eles.
funções, do inglês sequential function chat (SFC). Trata-se de uma linguagem baseada em GRAFCET,
que é um acrônimo do francês graphe fonctionnel de comande étapes transitions. O GRAFCET consiste
que formarão a lógica de comandos para o CLP. Esses elementos básicos são:
Etapa;
A figura 9 apresenta esses elementos e a conexão entre eles. Cada etapa é representada por um
quadro. Cada quadro é enumerado de forma sequencial, sendo que um código pode ter quantas
etapas forem necessárias. A cada etapa está associada uma ou mais ações que devem
necessariamente ocorrer naquela etapa. O fluxo do programa segue a numeração das etapas, porém,
só avançará de uma etapa para a próxima caso a transição ocorra. A transição é representada por um
traço entre as etapas, e comumente existem condições assoadas a cada transição. Dessa forma, ao
ser acionado, um botão faz com que ocorra o final de uma contagem de tempo, por exemplo.
Portanto, cada condição está relacionada à condição lógica que fará com que o processo avance para
a próxima etapa.
mencionamos que aqueles blocos eram empregados dentro de outras linguagens de programação
de CLP. Por este motivo, vamos dedicar nossos estudos aos principais blocos empregados no
Basicamente, cada bloco possui entradas e saídas que devem ser configuradas, enquanto a
relação entre esses elementos fica condicionada ao tipo do bloco, como no exemplo apresentado na
figura 10, no qual temos o uso de um bloco de função AND e um de função OR combinados a fim de
relacionar as entradas conforme a expressão.
A norma IEC 61131-3 define diversos tipos de blocos, os quais são definidos por duas partes,
sendo uma delas a especificação da estrutura e seu algoritmo, podendo este ser expresso em
qualquer uma das cinco linguagens definidas por tal norma (Moraes, 2015). Nas subseções a seguir,
vamos analisar alguns dos principais blocos de funções, verificando seu funcionamento e as relações
Os blocos biestáveis podem ser definidos como blocos responsáveis por memorizar estados
atribuídos a eles, sendo ligados ou desligados. Existem dois tipos de blocos biestáveis: o bloco set
sejam verdadeiros os sinais de set e reset, ele acionará a saída, ou seja, a saída Q1 será setada como
verdadeira. Uma representação desse bloco é apresentada na figura 11, na qual podemos verificar os
parâmetros de entrada e de saída do bloco. Além disso, essa mesma figura apresenta a lógica
Já no caso do bloco RS, a função predominante é a reset, ou seja, a desativação da saída. Sendo
assim, caso sejam verdadeiros os sinais de set e reset, ele desligará a saída, ou seja, a saída Q1 será
Uma representação desse bloco é apresentada na figura 12, na qual podemos verificar os
parâmetros de entrada e de saída do bloco. Além disso, essa mesma figura apresenta a lógica
4.2 TEMPORIZADORES
Outros blocos que são muito utilizados no desenvolvimento de lógicas de comandos para CLP
são os temporizadores. Isso porque é comum existir a necessidade de submeter determinadas ações
no decorrer do tempo, ou ainda gerar sinais de comando de duração preestabelecida (Prudente,
2015).
empregados ou para retardar ações de acionamento ou então para retardar ações de desligamento.
A seguir, vamos explorar duas possíveis configurações para temporizadores, lembrando que cada
fabricante pode desenvolver blocos temporizadores com diferentes relações entre os parâmetros de
entrada e de saída, por isso é sempre interessante verificar o diagrama que relaciona esses
parâmetros, o qual é fornecido no manual do CLP.
(TON), têm como função atrasar ações de acionamento. Uma representação para esse bloco pode ser
observada por meio da figura 13, na qual é possível notar que esse bloco possui dois parâmetros de
entrada, entrada (IN) e tempo de entrada (PT), e dois parâmetros de saída, saída (Q) e tempo
decorrido (ET).
tempo predefinido por meio da energização da sua entrada, ou seja, ao acionar IN, ele começa a
contar o tempo definido em PT e, ao final da contagem, aciona a saída Q. Além disso, ele atualiza a
de Q em função de IN.
subida, o qual também é conhecido como temporizador turn-off delay (TOF). Além disso, esse bloco
tem como função atrasar uma ação de desligamento, e uma representação para ele pode ser vista na
figura 15. Analisando essa figura, podemos perceber que esse bloco também possui dois parâmetros
de entrada, entrada IN e tempo de entrada PT, e dois parâmetros de saída, saída Q e tempo
decorrido PT, assim como no bloco TON. Entretanto, somente os parâmetros são iguais, enquanto o
Podemos descrever o seu funcionamento como um atraso, com duração definida em PT, no
desligamento da saída Q a partir do momento em que ocorre o desligamento da entrada IN. Sendo
assim, a partir do momento em que a entrada IN é desenergizada, inicia-se a contagem de tempo em
ET, e quando esse valor atinge o intervalo de tempo definido em PT, ocorre o desligamento da saída.
A figura 16 apresenta a relação entre a entrada IN e a saída Q, considerando sua energização e
contagem de tempo e somente após segundo realizará a desernegização da saída Q. Por esse
4.3 CONTADORES
contagem de eventos, neste caso, chamados de blocos contadores. Esses blocos são úteis, pois
contabilizam eventos responsáveis por acionar suas entradas e, ao final da contagem de um valor
predefinido, acionam a suas saídas, sendo importantes no desenvolvimento de programas de
instruções complexos.
Podemos classificar os blocos contadores conforme o seu princípio de contagem, sendo esses
desses blocos.
recebidos em sua entrada a partir do zero indo até o valor definido como máximo da contagem. A
figura 17 ilustra uma representação para esse bloco, sendo possível verificar seus parâmetros de
entrada: contador (IN), reset (R) e valor máximo (PV), enquanto os parâmetros de saída são saída (Q)
e valor atual (CV).
Seu funcionamento consiste em contar cada pulso recebido na entrada IN, começando em zero
e indo até o valor definido na entrada PV, enquanto isso, a saída CV atualizará o valor atual da
contagem e quando atingir o valor de PV, a saída será acionada. Neste caso, se a entrada IN
continuar recebendo pulsos, a contagem continuará, mas não afetará a saída, pois ela já se encontra
acionada. Caso seja necessário desativar a saída Q novamente e reiniciar a contagem, é preciso
acionar a entrada de reset (R). Quando é aplicado um pulso em R, o contador é zerado novamente e
Quando falamos em contador decrescente, temos que este também é conhecido pelo termo em
inglês counter down (CTD). Além disso, o processo de contagem de maneira incremental, ou seja,
valor máximo (PV), além de suas saídas: saída (Q) e valor atual (PV).
Se comparamos os parâmetros do bloco CTD com os do bloco CTU, perceberemos que existe
uma diferença no parâmetro de entrada load para o CTD e no de reset para o CTU. Além disso, o
princípio de contagem também é diferente, sendo que o funcionamento do bloco CTD consiste em
começar a contagem com o valor atual já no valor máximo e a saída Q acionada e, durante o
processo de contagem regressivo, ir mostrando o resultado em CV. Ao final da contagem, o valor de
Por mais que a entrada IN receba mais pulsos, o valor atual da contagem não é alterado,
somente sendo possível reiniciar a contagem após fornecer pulso na entrada load (LD). Caso seja
acionada a entrada LD, o valor atual é recarregado para o valor máximo e o processo de contagem
pode ser reiniciado.
Neste último tópico, nos dedicaremos à compreensão dos conceitos da linguagem mais utilizada
atribuir a popularização desta linguagem ao fato desta se assemelhar a comandos elétricos, os quais
estudamos em conteúdo anterior. Vimos que ao longo da evolução dos sistemas automatizados,
ocorreu uma substituição dos painéis a reles pelo CLP, neste contexto, a linguagem ladder, que é
baseada na lógica de contatos, assim como os comandos elétricos, passou a ser a mais utilizada no
chão de fábrica.
Além da semelhança com comandos elétricos, essa linguagem é muito intuitiva e pode ser
utilizada mesmo por pessoas que não tenham muito conhecimento de linguagens de programação.
Mas antes de entendermos o funcionamento e o desenvolvimento dos códigos nessa linguagem,
vamos entender quais são os elementos que formam as lógicas de comandos nela. A figura 19
apresenta os elementos básicos do diagrama ladder e sua relação com os elementos de comandos
elétricos.
contatos também.
Os diagramas ladder são formados por duas linhas verticais, conhecidas como linhas de
alimentação, unidas por linhas horizontais que representam causalidades, além de serem
equivalentes às linhas de código de instruções. Cada linha de código é formada por um elemento
controlado (bobina) e um conjunto de condições para o controle do elemento, formados por uma
Além da associação de contatos, podemos utilizar nas linhas de comando os blocos funcionais
que vimos no tópico anterior, desenvolvendo, assim, lógicas mais complexas. A seguir, abordaremos
condições lógicas como AND, OR, NAND, NOR, entre outras. Existem blocos com essas funções
também, porém, aqui mostraremos como elas podem ser implementadas empregando a associação
de contatos.
A primeira associação que veremos é a de contatos do tipo NA, que podem ser associados em
série, conforme a figura 21 (a), ou então em paralelo, como na figura 21 (b). Quando associamos
em série na figura 22 (a) e uma associação deles em paralelo na figura 22 (b). quando ocorre a
associação de contatos NF em série, temos a formação de uma lógica NOR, ao passo que quando
ocorre a associação de contatos NF em paralelo, temos a implementação de uma lógica NAND.
Diversos sistemas podem ser controlados por meio do CLP, porém, independentemente do
5.2.1 EXEMPLO 1
rotação. Para tal, foram empregadas quatro botoeiras do tipo pulsadoras, B1, D1, B2 e D2, destinadas
à partida e ao desligamento do motor em ambos os sentidos de rotação. Caso seja acionada a
botoeira B1, o motor deverá ser ligado no sentido horário; caso acionada a botoeira B2, o motor
deverá ligar no sentido anti-horário. Além disso, o botão D0 desliga ambos os sentidos. As botoeiras
estão conectadas às entradas do CLP conforme a figura 23. O sentido de rotação horário é acionado
pelo contator K1, o qual se encontra conectado à saída Q0 do CLP. Em contrapartida, o sentido de
rotação anti-horário é comandado pelo contator K2, que está conectado à saída Q1 do CLP.
Portanto, para ligar o motor no sentido horário, deverá ser acionado o botão B1, o qual enviará
sua mudança de estado à entrada I1 do CLP, que, de acordo com a lógica implementada no código
ladder desenvolvido, deverá acionar a saída Q0. Caso seja acionado o botão D0, a entrada I2 receberá
a mudança em seu estado e, conforme o programa de instruções, o CLP deve desligar a saída Q0.
O mesmo processo deve ocorrer quando B2 for acionada, a única diferença é que a entrada que
receberá a mudança de estado será a I3, e a saída que deverá ser acionada é a Q1. O CLP não sabe
quais elementos estão conectados a suas entradas ou saídas, ele apenas identifica variações de sinais
obtidas em suas entradas e saídas, portanto, no código ladder devem estar contidos os endereços
das entradas e saídas do CLP nas quais estão sendo conectados os elementos. A figura 24 apresenta
o código em linguagem ladder desenvolvido para o controle do processo descrito.
Analisando o diagrama apresentado na figura 24, podemos perceber que quando a entrada I1
for acionada, o contato se fechará permitindo a passagem de corrente elétrica que chegará até a
bobina Q0, acionando esta saída. Ao acionar Q0, o contato associado a ela que está paralelo ao
contato da entrada I1 se fechará e permanecerá assim até que a saída Q0 seja desligada. Este é o
conceito de contato de selo, que faz com que seja possível acionar e manter saídas ligadas apenas
com um pulso na entrada que a aciona. O contato referente à entrada I2 é fechado, portanto, quando
essa entrada for acionada, este contato abrirá, desligando Q0. Ainda, existe um contato NA da saída
Q1 que corresponde à lógica de intertravamento que desenvolvemos para que o motor não seja
acionado no sentido anti-horário caso já esteja ligado no sentido horário, sendo necessário que
primeiro ele seja desligado para depois inverter o sentido de rotação.
Analisando a segunda linha do código, temos o acionamento da saída Q1, a qual é responsável
por ligar o motor no sentido anti-horário. Quando a entrada I3 é acionada, o contato referente a ela
se fecha, acionando, assim, a saída Q1. Quando a entrada I2 é acionada, seu contato abre e desliga
Q1. Ainda, temos a mesma situação do contato de selo implementado com o contato de Q1 em
paralelo com a entrada I3, além da condição de intertravamento com o sentido de rotação horário
Basicamente, precisamos nos atentar ao fato de que a execução do código sempre acontece da
esquerda para a direita e de cima para baixo, e que ao acionar um dispositivo conectado a uma
entrada, esta será acionada também.
Já com a saída, sempre que ela for acionada, automaticamente acionará os dispositivos que
estiverem conectados a ela.
5.2.2 EXEMPLO 2
Nosso segundo exemplo consiste no acionamento de dois motores elétricos que são acionados
Antes de analisarmos a lógica desenvolvida para controlar o acionamento dos motores conforme
as condições apresentadas, precisamos entender como estão conectados os elementos às entradas e
às saídas do CLP.
observar que o botão B1 está conectado à entrada I1 e o D1 à entrada I2, ainda, temos conectados às
saídas Q0 e Q2 os contatores K1 e K2, respectivamente. Além disso, o contator K1 liga o motor M1,
enquanto o contator K2 liga o motor M2. Para acionar entradas e saídas, será o mesmo processo
executado no exemplo anterior, ou seja, quando acionamos um botão conectado a uma determinada
entrada, esta será acionada; quando ligamos uma saída do CLP, o elemento conectado a ela será
acionado.
Por meio dele, podemos perceber que quando a entrada I2 é acionada, ela liga a saída Q0, que, por
sua vez, aciona o temporizador T1. Na sequência, esse temporizador conta dez segundos, que é o
tempo no qual o motor M1 deve permanecer ligado sozinho. Após os dez segundos, é acionada a
iniciando a contagem dos 15 segundos, que é o tempo no qual os dois motores devem permanecer
ligados juntos. Ao final da contagem de tempo, um contato NF da saída de T2 desliga ambos os
motores por meio da desenergização das saídas Q0 e Q1. Ainda, o botão D1 conectado à entrada I2
Finalizamos esta etapa, a qual foi dedicada ao estudo dos controladores lógicos programáveis
Durante esta etapa, também discutimos como ocorreu a criação, o desenvolvimento, a evolução
e a padronização, que foi implementada por meio da norma IEC 61131. Essa padronização foi
necessária devido às incompatibilidades entre os equipamentos, uma vez que cada fabricante possui
uma maneira diferente de desenvolver um CLP. Ainda, pudemos discutir a respeito da arquitetura
operação cíclica chamada de ciclo de varredura. Ainda, vimos que existem casos em que a CPU do
controlador precisa processar informações de maneira diferente desse ciclo, portanto, o
processamento pode assumir diferentes formas. Vimos, também, que o controlador possui modos de
operação, sendo eles: modo de programação, modo run, modo stop e modo reset. Cada um desses
modos está relacionado a uma situação na qual o CLP precisa atuar. A padronização do CLP pela
norma IEC 61131 foi além das suas características construtivas, definindo também as linguagens de
programação, sendo assim, essa norma definiu linguagens textuais e gráficas, conforme vimos.
Entre essas linguagens, destaca-se a linguagem ladder, que faz uso de contatos NA e NF, além
A versatilidade do CLP permite que ele seja utilizado tanto na automação industrial quando em
outras áreas. Além disso, ele pode se comunicar com outros dispositivos empregados na automação.
Sendo assim, em estudos posteriores, veremos também como é feita essa comunicação.
REFERÊNCIAS
2017.
GROOVER, M. Automação industrial e sistemas de manufatura. 3. ed. São Paulo: Pearson
PRUDENTE, F. Automação industrial PLC: teoria e aplicações – curso básico. Rio de Janeiro: LTC,
2015.
SILVEIRA, P. R. da.; SANTOS, W. E. Automação e controle discreto. 9. ed. São Paulo: Érica, 2009.