Conforme ilustrado na primeira parte da publicação sobre a norma IEC61131 para PLCs, o conhecimento dessa norma é bastante importante para os técnicos que trabalham na área de automação e controle de processos. Seria muito importante que o estudo dela fosse adicionado à grade curricular de todos os cursos técnicos em eletrônica e automação, tendo em vista que boa parte dos técnicos que trabalham com PLCs e automação industrial são técnicos com formação em automação, instrumentação ou eletrônica.
Nesta parte do artigo, iremos tratar da parte 3 da norma a IEC61131-3.
- General Overview (Informações Gerais);
- Hardware;
- Linguagens de Programação;
- User Guidelines (Pesquisar);
- Communication (Comunicação);
Parte 3 – Programming Languages (Linguagens de Programação)
Dentre as diversas partes que compõem um CLP ou PLC, como queira chamar, o programa é de fato uma das mais controversas. Na verdade, podemos dizer que um CLP possui três programas ou softwares:
Programa Monitor: É o programa que está contido no microcontrolador presente na arquitetura de hardware ou em uma memória ROM, Flash, EPROM ou EEPROM quando a arquitetura de um CLP usa microprocessador ao invés do microcontrolador. No entanto, esse programa existe, mas não é passado para o comprador do CLP em nenhuma hipótese, pois é o “segredo” do CLP em si (nós não interagimos de forma direta com esse programa, pois ele serve para controlar a eletrônica do CLP).
Programa de Desenvolvimento “IDE”: Segundo programa de que falo, vem em um CD para instalar no computador. Com ele é possível estabelecer comunicação, configurar e programar o CLP.
Programa aplicativo ou Aplicação: É a aplicação desenvolvida pelo programador do CLP; fica dentro do equipamento em uma segunda memória ROM ou de outro tipo permanente.
A norma IEC 61131-3 afeta diretamente o programa de desenvolvimento, principalmente o programa aplicativo. Na verdade, o objetivo da norma é possibilitar que um programa de Desenvolvimento IDE possa programar qualquer CLP, um exemplo dessa tentativa é o CoDeSys.
“O Automation Suite CoDeSys é uma ferramenta de softwares abrangentes para a tecnologia de automação industrial. Todas as tarefas de automação comuns resolvidas por meio de software podem ser realizadas com a Suite CoDeSys baseada no controlador generalizado e desenvolvimento do sistema PLC com o mesmo nome.”
Disponível em http://www.3s-software.com/index.shtml?en_CoDeSysV3_en
Conforme a PLCopem
Existem muitas formas de entender a parte 3 da norma.
Vamos identificar algumas:
- É o resultado da Força Tarefa 3, Linguagens de Programação, dentro do IEC TC65 SC65B;
- É o resultado do trabalho árduo de 7 empresas internacionais, somando dezenas de anos de experiência no campo da automação industrial;
- Aproximadamente 200 páginas de texto, com cerca de 60 tabelas, incluindo tabelas de características;
- É a especificação da sintaxe e semântica de uma suíte unificada de linguagens de programação, incluindo o modelo geral de software e uma linguagem de estruturação.
Outra elegante forma é dividir a norma em duas partes (ver figura 1):
- Elementos Comuns (Common Elements)
Linguagens de programação (Programming Languages)

Vamos olhar para essas partes com mais detalhes:
Elementos Comuns
Tipagem de Dados
Dentro dos elementos comuns, os tipos de dados são definidos. A tipagem de dados previne erros na fase inicial. É usada para definição do tipo de qualquer parâmetro usado. Isso evita, por exemplo, a divisão de uma data por um inteiro. Os tipos de dados comuns são
Boolean, Integer, Real, Byte e Word, mas há também os Date, Time_of_Day e String. Baseado nisso, é possível definir os nossos tipos de dados pessoais, chamados de tipos derivados. Dessa forma, pode-se definir uma entrada analógica como tipo de dado e reutilizá-la inúmeras vezes.
Alguns exemplos de tipos de dados utilizados no Programa A1 da ATOS

Variáveis
Variáveis são associadas somente a endereços explícitos de hardware (entradas e saídas, por exemplo) nas configurações, recursos e programas. Dessa forma, cria-se um alto nível de independência do hardware, proporcionando a reutilização do software.
O escopo das variáveis é normalmente limitado à unidade de organização nas quais elas são declaradas (escopo local).
Isso significa que os nomes delas podem ser reutilizados em outras partes sem nenhum conflito, eliminando outra fonte de erros muito comum, dados corrompidos pelo programa. Se as variáveis tiverem escopo global, devem ser declaradas como tal (VAR_GLOBAL).
A cada parâmetro pode ser atribuído um valor inicial na partida a quente e a frio do sistema, de forma a garantir valores corretos.
*Entre outras informações para a padronização das ides e dos programas aplicativos desenvolvidos.
Conclusão
A IEC61131-3 é a mais difundida das versões da IEC61131. No entanto, quando se trata de aplicação prática não é tão simples. Já ouvi de muitos especialistas que a ideia é louvável, mas aplicá-la é difícil. Primeiro porque a arquitetura de hardware e software é muito diversificada entre os fabricantes de CLPs, depois porque alguns recursos dos quais alguns fabricantes se orgulham e têm patente não estarão disponíveis em um software como o CoDeSys, que hoje é um exemplo de caminhamento da norma. Eu, em 6 anos de trabalho direto com CLP, nunca usei o CoDeSys, no entanto, espero a oportunidade de testá-lo e compartilhar com todos. Acredito ser possível uma unificação de todos os programas de CLP para que possamos usar CLPs como computadores, podendo instalar e rodar o programa de qualquer fabricante e usar peças também de qualquer fabricante. Mas ainda temos muito a caminhar e padronizar. Basta salientar que isso já funciona perfeitamente com computadores que também são utilizados na automação em certos casos com nível de complexidade igual ou superior aos CLPs.
Para mais detalhes acessem: http://kleberautomation.blogspot.com e baixem os conteúdos sobre a IEC61131-3, e na lateral esquerda, na seção SLIDES UTILIZADOS NAS AULAS, baixe CLP Avançado.