Você está na página 1de 17

AULA 3

AUTOMAÇÃO E CONTROLE
INDUSTRIAL

Profª Carla Eduarda Orlando de Moraes de Lara


CONVERSA INICIAL

Continuando nossos estudos sobre os controles industriais, trataremos,


nesta aula, dos controladores lógicos programáveis, que surgiram como soluções
em termos de flexibilidade de reprogramação de funções. Com os antigos painéis
a relés, qualquer mudança na lógica implicava em mudanças físicas, o que
implicava em custos e tempo. Neste contexto, surgem os controladores lógicos
programáveis, com o objetivo de trazer agilidade e mais versatilidade aos
processos industriais. Durante esta aula, conheceremos a história desses
controladores, sua arquitetura, suas funções, além de vermos como se dá sua
programação.

TEMA 1 – INTRODUÇÃO AOS CONTROLADORES LÓGICOS PROGRAMÁVEIS

O primeiro Controlador Lógico Programável (CLP) surgiu no final da década


de 1960, General Motors, uma indústria do ramo automobilístico ainda em
atuação. Nessa indústria havia uma grande necessidade de flexibilizar e otimizar
as plantas de produção de veículos. Naquela época, os painéis a relés faziam o
papel do CLP, porém, qualquer alteração de projeto ou layout das plantas
necessitava de longas e custosas paradas nas linhas de produção. Aproveitando
que o primeiro microprocessador havia acabado de ser fabricado pela Intel, a
General Motors determinou critérios para o desenvolvimento do CLP, que por sua
vez foi desenvolvido pela Gould Modicom, em 1969.
Por meio da criação do CLP, não havia mais a necessidade de
desmontagem de grandes painéis de comandos elétricos para manutenções, pois
os processos se tornaram mais simplificados, reduzindo tempo, mão de obra e
obtendo lucros significativos, uma vez que a operação consistia em um
computador e uma pessoa para realizar a programação do dispositivo.
Como qualquer dispositivo recente, as melhorias vieram rapidamente,
agregando, ano após ano, funções novas ao controlador. Entre essas funções
podemos mencionar: temporização e contagem, operações aritméticas,
comunicação com interfaces homem-máquina, inclusão de controles analógicos e
comunicação via rede.
Falando especificamente de sua definição, podemos definir o CLP como
um computador que faz uso de instruções armazenadas para executar ações de
lógicas, temporização e outras funções, por meio de entradas e saídas, que irão

2
controlar os sistemas de produção (Groover, 2011). Embora existam diferentes
modelos, ambos contam com a mesma arquitetura, a qual discutiremos na
sequência.

1.1 Arquitetura do CLP

A arquitetura de um CLP é formada por três elementos fundamentais,


sendo estes:

 Unidade central;
 Unidade de entrada/saída;
 Unidade de programação.

A Figura 1 ilustra como se relacionam cada uma das unidades. Por meio
da causa, podemos verificar que a unidade de entrada/saída, também chamada
de unidade I/O, realiza a comunicação entre o CLP e as máquinas ou processos.
Além disso podemos verificar que a unidade central recebe as informações da
unidade I/O, realizando ações baseadas no programa de instruções que está
armazenado na memória. A unidade de programação é a interface que o usuário
conta para programação do CLP.

Figura 1 – Sistema de controle em malha aberta

Fonte: Adaptado de Prudente, 2015

Alimentação também desempenha funções essenciais no CLP, e será


discutida na sequência. Ademais, cada uma das unidades também será melhor
explorada.

3
1.1.1 Alimentação

A fonte de alimentação é responsável pela energização dos módulos


internos e externos do CLP, tendo também como objetivo manter a carga das
baterias internas do dispositivo, que são responsáveis pelo sistema de horário e
pelo sistema de memórias do CLP. Além disso, a fonte de alimentação é
responsável por fornecer tensão para a alimentação das entradas e saídas do
controlador. No caso de CLPs modulares, se mais módulos de entradas e saídas
forem agregados ao sistema, se faz necessário o uso de mais fontes de
alimentação.

1.1.2 Unidade de Entrada

A unidade de entrada do CLP faz o tratamento dos sinais que entram no


dispositivo, para que eles possam ser processados pela unidade Central de
Processamento (CPU). A unidade de entrada pode receber sinais digitais ou
analógicos. Sinais digitais são aqueles que possuem apenas dois estados
possíveis, ligado ou desligado. Alguns exemplos de dispositivos que podem ser
ligados nos módulos de entradas digitais são as botoeiras, chaves fim-de-curso,
sensores de proximidade e sensores de nível.
Além dos sinais digitais, as unidades de entrada também podem receber e
tratar dados de forma analógica, que chegam no dispositivo em sinais de corrente
ou tensão. Alguns exemplos de entradas analógicas são: sensores de pressão,
transmissores de temperatura, transmissores de luminosidade e de umidade
relativa.

1.1.3 Unidade de Saída

A unidade de saída ou interfaces de saída adequam eletricamente os sinais


vindos da CPU para que seja possível atuar nos circuitos controlados. Da mesma
forma que a unidade de entrada, a unidade de saída atua com dois tipos de sinais,
os digitais e os analógicos. Alguns dispositivos comuns de atuação das unidades
de saída digitais são: relés, contatores, solenoides e válvulas.
Da mesma forma, algumas saídas analógicas convencionais podem ser
exemplificadas como: válvulas proporcionais, motores CC, servomotores CC,
inversores de frequência e posicionadores rotativos.

4
1.1.4 Unidade Central

A unidade central é a parte mais importante do CLP, pois é responsável


pelo gerenciamento de todos os outros dispositivos e ainda abriga a CPU. A
central faz o tratamento de dados, gerenciamento da memória e a interface do
dispositivo físico com a interface de programação. De forma geral, a unidade
central do controlador faz a leitura dos valores lógicos presentes na unidade de
entrada, executa as instruções realizadas no programa carregado no dispositivo,
e transmite o resultado para a unidade de saída.

1.1.5 Unidade de Programação

Alguns modelos de CLP possuem uma interface de programação


denominada IHM, que permite o usuário desenvolver uma lógica de programação
diretamente em um visor alocado fisicamente no dispositivo. Entretanto, para
aplicações mais complexas, se faz o uso de um computador pessoal para realizar
a programação e a transferência da mesma para o controlador.

TEMA 2 – PRINCÍPIO DE FUNCIONAMENTO

Trataremos agora de como ocorre a execução das ações em um CLP, dos


seus modos de operação, sua classificação quanto a sua estrutura física e suas
capacidades adicionais.

2.1 Ciclo de varredura

Podemos definir como princípio fundamental de funcionamento de um CLP


como a execução, pela CPU, do programa de instruções armazenado nela. No
entanto, para que a execução seja correta, o CLP realiza esse trabalho de forma
cíclica. A esse ciclo atribuímos o nome de ciclo de varredura, que também é
chamado de scanning (Silveira; Santos, 2009). A Figura 2 apresenta o fluxograma
do ciclo de varredura.

5
Figura 2 – Ciclo de varredura de um CLP

Fonte: Adaptado de Silveira e Santos, 2009

Analisando a imagem, podemos verificar que esse ciclo começa pela leitura
das entradas, ou seja, a cada ciclo a CPU realiza esta leitura como o objetivo de
atualizar mudanças nos estados das entradas. Após a leitura das entradas, a CPU
passa a executar o programa de instruções. Por meio das informações e da lógica
são definidas ações de controle, as quais são enviadas para as saídas, e com isso
ciclo se fecha com a atualização das saídas.
O tempo de duração do ciclo, que também pode ser definido como tempo
total para execução das tarefas, depende de fatores como: características do
processador empregado, tamanho do programa de instruções e a quantidade de
entradas/saída utilizadas.
Podem ocorrer situações em que o CLP não possa esperar o final do ciclo
de varredura para tratar alguma situação. Quando isso ocorre, entra em ação uma
rotina para tratamento de interrupções. A CPU pode operar de quatro maneiras
distintas. A seguir, entraremos em detalhes sobre os modos de operação
possíveis dentro de um CLP.

2.2 Modos de operação

A CPU pode operar conforme a necessidade da situação na qual se


encontra. Estes modos são definidos como:

6
 Modo de Programação;
 Modo Stop;
 Modo Run;
 Modo Reset.

Agora vamos explorar um pouco mais sobre cada um destes modos.


Começando com o modo de programação, como o próprio nome já diz, neste
modo a CPU permite que seja realizada a programação do CLP.
Quando o CLP está no modo programação, ele permite que seja realizado
o download do programa de instruções contendo a lógica de programação do
processo. Em seguida, após o download do programa, o CLP pode ser colocado
em operação, que no caso é o modo RUN.
No modo RUN o CLP executa seu ciclo de operação, realizando os
procedimentos descritos no ciclo de varredura, realizando ações conforme a
lógica implementada. Neste modo, o CLP pode realizar a comunicação com outros
dispositivos, como demais CLPs e IHMs. Esta comunicação é realizada por meio
das redes industriais, que também serão estudadas nesta disciplina.
Enquanto que no modo Stop o CLP fica parado, ou seja, todos as
atualizações de saídas são paradas. Nessas condições é possível realizar a
verificação das entradas com o objetivo de detectar erros e falhas. Além disso,
nesse modo, o CLP não aceita downloads de programa e nem executa programas
que já estejam em sua memória.
Por fim, o modo Reset é responsável por restaurar as condições de fábrica
do CLP, isto é, todas as ações definidas pelos programas de instruções são
restauradas para as condições iniciais do CLP.

2.3 Capacidades adicionais do CLP

Além das capacidades de controle lógico e sequenciamento, que


representam as principais funções do CLP, os mesmos podem apresentar
capacidades adicionais. Com a evolução destes controladores, foram
aprimorando suas funções, com o objetivo de incrementar suas funções. Segundo
Groover (2011), algumas das capacidades adicionais dos CLPs são:

 Controle analógico: nessa função é possível implementar controle


analógico mesmo em controladores digitais, como no caso do CLP. Um
exemplo disto é o controle proporcional-integral-derivativo (PID), que

7
originalmente foi desenvolvido por controladores analógicos, porém hoje já
é disponibilizado no CLP.
 Funções aritméticas: o CLP possui capacidade de lidar com operações
aritméticas do tipo soma, subtração, multiplicação e divisão. Isto faz com
que seja possível a implementação de lógicas mais complexas.
 Processamento e relatório de dados: é possível obter relatórios das
operações, o que é útil nas aplicações de negócios de PCs.

TEMA 3 – LINGUAGENS DE PROGRAMAÇÃO E NORMA IEC 61131-3

Para que seja possível a comunicação com a CPU do controlador lógico


programável, é necessária implementação de um programa de instruções, que é
escrito em forma de código e pode ser compilado, para que vire uma lista de
instruções para o CLP. Esse código é escrito respeitando uma linguagem de
programação, que é comumente dividida em duas vertentes, linguagens de baixo
nível e linguagens de alto nível.
As linguagens de baixo nível são as que se mais se assemelham a
linguagem de máquina, e tem como objetivo se comunicar com o computador mais
rapidamente, de uma forma mais eficaz e otimizada. Por isso, as linguagens de
programação de baixo nível atuam diretamente nos bits e bytes do processador
sendo programado, encurtando o caminho ao serem traduzidas a linguagem de
máquina. Este tipo de linguagem está diretamente relacionado com a arquitetura
do processador que é programado, pois se faz necessário conhecer a lista de
instruções e registradores específicos de cada componente. A linguagem de
programação de baixo nível mais conhecida atualmente é a Assembly.
Já as linguagens de alto nível são as que mais se assemelham com a
linguagem humana, e tem como objetivo facilitar a maneira de programar, fazendo
com que o programador se expresse de maneira mais simples e concisa. Na
linguagem de alto nível, as informações de registradores e lista de instruções não
são necessárias, pois a própria linguagem já faz interface com processador.
Algumas das linguagens de programação de alto nível mais comuns são: Java, C,
C++, Python e C#.
A evolução dos controladores lógicos programáveis acabou levando a uma
grande quantidade de marcas e modelos de equipamentos, e como consequência,
gerou uma incompatibilidade em relação a programação dos mesmos.

8
Devido à demanda de uma padronização das linguagens, um grupo de
trabalho dentro da International Electrotechnical Comission (IEC) foi formado, para
avaliar um projeto completo de CLP, envolvendo hardware, instalação, testes,
documentação, programação e documentação. Várias forças-tarefa com
empresas especialistas foram criadas para atender a demanda de todas as
variáveis a serem discutidas. Dentro da norma, a força-tarefa número três ficou
responsável pela padronização das linguagens de programação, estrutura de
software e execução de programas do CLP, e está parte da norma que
abordaremos na sequência.

3.1 Norma IEC 61131-3

A norma define cinco linguagens de programação, cada uma com suas


características, de forma a cobrir a maioria das necessidades de controles atuais.
As linguagens definidas são divididas em duas partes, linguagens textuais e
linguagens gráficas. São definidas como linguagens textuais: texto estruturado, e
lista de Instruções. Enquanto as linguagens gráficas são definidas como:
linguagem ladder, diagrama de blocos e sequenciamento gráfico de funções.
Trataremos agora de cada uma delas, verificando seu funcionamento e suas
características.

3.1.1 Texto estruturado

A linguagem texto estruturado, do inglês structured text (ST), é composta


por escritas denominadas statements, separados por ponto e vírgula. Esses
statements utilizam funções e sub-rotinas pré-definidas para alterar variáveis e
colocar o programa em funcionamento. A linguagem estruturada trabalha de uma
forma simples com a estrutura de laços de repetição, contadores e lógicas de
condição, como if, then e for.
É considerada a mais robusta dentre as cinco linguagens de programação
do CLP. Isso porque quando um programa, escrito nas outras linguagens, é
compilado, o código é convertido para uma linguagem de máquina, que na
verdade é o texto estruturado. Logo, todos os demais códigos nas outras
linguagens são traduzidos para o texto estruturado, por meio da compilação.

9
3.1.2 Lista de instruções

A linguagem denominada lista de instruções, do inglês Instruction List, (IL),


se assemelha à linguagem Assembly, utilizando o código através de mnemônicas
padronizados na norma IEC 61131-3. Esse tipo de linguagem é mais
recomendado para programas pequenos com poucas quebras no fluxo de
execução, que são implementados em CLPs de pequeno porte.
Pelo fato dessa linguagem ser parecida com a Assembly, ela interage de
forma mais rápida com o CPU do controlador. Entretanto, é uma linguagem
complexa para programação, pois é necessário ter familiaridade com linguagens
de baixo nível.

3.1.3 Linguagem ladder

A linguagem ladder foi desenvolvida com base nas lógicas de relés e


comandos elétricos, fazendo com que seus diagramas sejam facilmente
entendidos pelo pessoal do chão de fábrica, que algumas vezes podem não ter
familiaridade com programação. Por ser uma linguagem de alto nível, não é
necessário conhecer a estrutura interna do CLP para que um programa seja
desenvolvido, é necessário apenas certa familiaridade com a linguagem. Ela
recebe esse nome devido a sua estrutura de forma gráfica ser parecida com uma
escada (ladder), em que cada linha de código é definida comumente como degrau
(Rung). Por ser a linguagem mais utilizada na programação de CLPs, vamos
discorrer a respeito dela em um tema adiante.

3.1.4 Diagrama de blocos

Os diagramas de blocos, ou blocos de função, são blocos elementares, que


também são utilizados dentro das outras linguagens de programação. Esses
blocos deixam o código muito mais dinâmico e faz com que as linguagens sejam
mais flexíveis. Os principais blocos de função utilizados são:

 Blocos biestáveis;
 Blocos contadores;
 Blocos temporizadores.

As outras linguagens normalmente possuem bibliotecas com blocos de


função, que são padronizadas, alterando-se apenas os parâmetros de entrada e

10
saída. Pelos blocos de função também serem muito utilizados nas linguagens de
programação, também trataremos deles com mais detalhes no próximo tema.

3.1.5 Sequenciamento gráfico de instruções

O sequenciamento gráfico de instruções, do inglês sequential function chart


(SFC), é baseado em GRAFCET, acrônimo do francês Graphe Fonctionnel de
Commande, Étapes Transitions, que é uma metodologia que surgiu com a
necessidade da criação de sequências gráficas para processos sequenciais.
O SFC possui conceitos básicos que são utilizados para que se forme a
sequência de operações, são eles: etapa, ação associada à etapa, transição e
condição associada à transição. A conexão entre as etapas é demonstrada na
Figura 3. Cada etapa é representada por um quadrado no qual consta o número
relacionado à esta. À direita do quadrado são apresentadas as ações que serão
executadas naquela etapa. E a transição de uma etapa para outra é representada
por um traço, e está relacionada a condição lógica que fará com que o processo
avance de uma etapa para outra.

Figura 3 – Conexão entre as etapas

Fonte: Adaptado de Prudente, 2015

TEMA 4 – BLOCOS DE FUNÇÕES

Como discutimos anteriormente, blocos de função são também utilizados


nas outras linguagens de programação. A conexão dos blocos de função é
orientada, ou seja, os dados entram pela esquerda e saem pela direita, seguindo
o fluxo de programação das linguagens gráficas utilizadas no CLP. Falaremos
agora sobre os blocos de função mais utilizados.

11
4.1 Blocos biestáveis

Os blocos biestáveis, conhecidos por bobinas Set e Reset, realizam a


memorização do estado atribuídos a eles, seja ligado ou desligado. As bobinas
convencionais alteram seu estado quando energizadas ou desenergizadas. As
bobinas com função Set e Reset armazenam um estado em uma variável toda vez
que uma borda de subida é identificada. Seu estado permanece, mesmo que a
bobina seja desenergizada, até que outra chamada futura faça a alteração de seu
valor. As bobinas Set e Reset são representadas Figura 4(a) e 4(b),
respectivamente, por meio da qual podemos observar sua simbologia.

Figura 4 – Simbologia das bobinas de Set/Reset

Crédito: Carla Eduarda Orlando de Moraes de Lara.

4.2 Blocos Contadores

Os blocos contadores são muito úteis no desenvolvimento de programas


complexos. Os contadores contabilizam eventos, que acionam suas entradas e,
após determinada quantidade de eventos, acionam suas saídas. Os contadores
são normalmente divididos em crescentes e decrescentes.
O contador crescente, do inglês counter up (CTU), é representado na
Figura 5.

Figura 5 – Representação de um contador crescente

Crédito: Carla Eduarda Orlando de Moraes de Lara.

12
Este conta os pulsos em sua entrada e armazena internamente até que o
valor máximo programado seja atingido, assim, acionando sua saída e zerando
os pulsos já contabilizados.
O contador decrescente, do inglês conter down (CTD), é apresentado na
Figura 6. Ele tem os mesmos princípios do contador crescente, porém, ao invés
de somar o contador com os pulsos, subtrai o valor da variável iniciada como valor
inicial.

Figura 6 – Representação de um contador decrescente

Crédito: Carla Eduarda Orlando de Moraes de Lara.

4.3 Blocos Temporizadores

Os blocos temporizadores são os blocos mais utilizados no


desenvolvimento de aplicações de CLP. Basicamente tem como função atrasar
as ações. São divididos em temporizadores de atraso na subida e temporizadores
de atraso na descida.

4.3.1 Temporizadores de atraso na subida

Os temporizadores de atraso na subida, também chamados de TON (sigla


que representa Turn-on Delay), ao receberem um pulso na entrada do bloco,
fazem a contagem do tempo pré-determinado, e ao final da contagem do intervalo
de tempo, acionam a saída, até que haja alteração no valor da entrada. Caso o
pulso de entrada seja menor que o tempo pré-determinado no bloco, a saída não
é acionada. O temporizador de atraso na subida é representado na Figura 7,
sendo possível observar os parâmetros deste bloco.

13
Figura 7 – Representação de um temporizador TON

Crédito: Carla Eduarda Orlando de Moraes de Lara.

4.3.2 Temporizador de atraso na descida

Os temporizadores de atraso na descida, também chamados de TOF (sigla


que representa Turn-off Delay), funcionam, de uma forma particular, um pouco
diferente do bloco TON. Ao receberem um pulso na entrada, acionam diretamente
a saída, e permanece ativo, sem contagem do tempo, até que a entrada seja
desativada. Quando a entrada é desativada, o tempo pré-determinado começa a
contar, deixando a saída ativa pelo tempo definido no bloco. Este temporizador é
ilustrado na Figura 8, também sendo possível observar seus parâmetros.

Figura 8 – Representação de um temporizador TOF

Crédito: Carla Eduarda Orlando de Moraes de Lara.

Exemplos da aplicação de todos os blocos estudados podem ser


encontrados no livro de Prudente (2015).

TEMA 5 – PROGRAMAÇÃO EM LADDER

A linguagem ladder se assemelha muito com a lógica de comandos


elétricos que vimos nas aulas anteriores, contando com praticamente os mesmos
dispositivos, porém, representados graficamente de forma diferente. Isto é normal
pois, como já discutido, essa linguagem é baseada na lógica de relés. O diagrama
de ladder é constituído de três componentes, sendo eles: entradas (contatos),
saídas (bobinas) e blocos de função.

14
Existem dois tipos de entradas na linguagem Ladder, o contato
normalmente aberto (NA) e o contato normalmente fechado (NF), apresentados
na Figura 9(a) e 9(b), respectivamente.

Figura 9 – Simbologia dos elementos em ladder

Crédito: Carla Eduarda Orlando de Moraes de Lara.

As saídas são representadas por bobinas, que podem ser bobinas


convencionais como a representada na Figura 9(c), ou então bobinas com funções
Set e Reset, como já vistas.
Os contatos e bobina são associados, juntamente com os blocos de
funções, formando assim o programa de instruções do CLP.
Os contatos mudam de posição quando energizados, ou seja, se um
contato é NA quando é energizado se fecha e passa a conduzir. Já um contato
NF quando é energizado se abre e passa a bloquear a passagem de corrente.
Isso faz com que contatos NA sejam empregados para ligar bobinas, enquanto
contatos NF sejam utilizados para desligar bobinas.
Todas as funções lógicas E, ou, inversora, Não-E e Não-OU podem ser
implementadas apenas com a associação em série ou em paralelo de contatos
NA e NF. Para programar em ladder é necessário conhecer como ocorre seu ciclo
de execução do código.
Um diagrama ladder é composto por duas linhas verticais, e são ligadas
por contatos e bobinas, formando uma espécie de escada, como já mencionado
que foi o que originou o nome da linguagem.
A execução do código contido no diagrama ocorre de cima para baixo e da
esquerda para a direita. A Figura 10 ilustra um exemplo de diagrama ladder.

Figura 10 – Exemplo de diagrama em ladder

Crédito: Carla Eduarda Orlando de Moraes de Lara.

15
O diagrama apresentado possui duas entradas, I0 e I1, e uma saída Q0.
Podemos pensar que esse código faz o acionamento de uma lâmpada, por
exemplo. Logo, a entrada I0 estaria conectada a um botão de desliga, enquanto a
entrada I1 estaria conectada a um botão de ligar, e a saída Q0 estaria conectada
à lâmpada. Quando acionado o botão de ligar, o contato da entrada I1 se fecha e
a bobina é energizada, já quando é acionado o botão de desligar o contato da
entrada I0 é acionado e muda de fechado para aberto. Isso faz com que o circuito
se abra e ocorra a desenergização da bobina.
Esse é um exemplo bem simples que ilustra um acionamento de uma saída
com a possibilidade de desligamento. No entanto, várias lógicas podem ser
implementadas seguindo o mesmo raciocínio. Outros exemplos podem ser
encontrados nos livros citados durante esta aula, especialmente no livro de
Prudente (2015).

16
REFERÊNCIAS

GROOVER, M. Automação industrial e sistemas de manufatura. 3. ed. São


Paulo: Pearson Prentice Hall, 2011.

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.

17

Você também pode gostar