Você está na página 1de 50

Software de programação

A1 (IEC 61131-3)
Manual Rev. 1.10 Setembro/2006 Ref.5-085.110
ATOS

A apostila do curso foi elaborada a partir dos materiais citados abaixo:

• Programming insdustrial control systems using IEC 1131-3, R. W.


Lewis, The Institution of Electrical Engineers, London United Kingdon,
1998.
• Manual de Utilização – Família MPC4004 CPU Blackfin – Rev. 1.00
Maio/2006

Este manual não pode ser reproduzido, total ou parcialmente, sem autorização por escrito da Atos.

Seu conteúdo tem caráter exclusivamente técnico/informativo e a Atos se reserva no direito, sem
qualquer aviso prévio, de alterar as informações deste documento.

2
Termo de Garantia
A Atos Automação Industrial LTDA. assegura ao comprador deste produto,
garantia contra qualquer defeito de material ou de fabricação, que nele apresentar no
prazo de 360 dias contados a partir da emissão da nota fiscal de venda.

A Atos Automação Industrial LTDA. restringe sua responsabilidade à


substituição de peças defeituosas, desde que o critério de seu Departamento de
Assistência Técnica, se constate falha em condições normais de uso. A garantia não
inclui a troca gratuita de peças ou acessórios que se desgastem naturalmente com o
uso, cabos, chaves, conectores externos e relés. A garantia também não inclui fusíveis,
baterias e memórias regraváveis tipo EPROM.

A Atos Automação Industrial LTDA. declara a garantia nula e sem efeito


se este produto sofrer qualquer dano provocado por acidentes, agentes da natureza, uso
em desacordo com o manual de instruções, ou por ter sido ligado à rede elétrica
imprópria, sujeita a flutuações excessivas, ou com interferência eletromagnética acima
das especificações deste produto. A garantia será nula se o equipamento apresentar
sinais de ter sido consertado por pessoa não habilitada e se houver remoção e/ou
alteração do número de série ou etiqueta de identificação.

A Atos Automação Industrial LTDA. somente obriga-se a prestar os


serviços referidos neste termo de garantia em sua sede em São Paulo - SP, portanto,
compradores estabelecidos em outras localidades serão os únicos responsáveis pelas
despesas e riscos de transportes (ida e volta).

• Serviço de Suporte Atos

A Atos conta com uma equipe de engenheiros e representantes treinados na própria


fábrica e oferece a seus clientes um sistema de trabalho em parceria para especificar,
configurar e desenvolver software usuário e soluções em automação e presta serviços de
aplicações e startup.

A Atos mantém ainda o serviço de assistência técnica em toda a sua linha de


produtos, que é prestado em suas instalações.

Com o objetivo de criar um canal de comunicação entre a Atos e seus usuários,


criamos um serviço denominado Central de Atendimento Técnico. Este serviço
centraliza as eventuais dúvidas e sugestões, visando a excelência dos produtos e
serviços comercializados pela Atos.

Central de Atendimento Técnico


De Segunda a Sexta-feira
Das 7:30 às 12:00 h e das 13:00 às 17:30 h
Telefone: 55 11 5547 7411
E-mail: suportec@atos.com.br

3
CONVENÇÕES UTILIZADAS
• Títulos de capítulos estão destacados no índice e aparecem no cabeçalho das
páginas;

• Palavras em outras línguas são apresentadas em itálico, porém algumas


palavras são empregadas livremente por causa de sua generalidade e freqüência
de uso. Como, por exemplo, às palavras software e hardware.

Números seguidos da letra h subscrita (ex:1024h) indicam numeração


hexadecimal e seguidos da letra b (ex:10b), binário. Qualquer outra numeração
presente deve ser interpretada em decimal.

• O destaque de algumas informações é dado através de ícones localizados


sempre à esquerda da página. Cada um destes ícones caracteriza um tipo de
informação diferente, sendo alguns considerados somente com caráter
informativo e outros de extrema importância e cuidado. Eles estão identificados
mais abaixo:

NOTA: De caráter informativo, mostra dicas de utilização e/ou


configuração possíveis, ou ressalta alguma informação relevante no
equipamento.

OBSERVAÇÃO: De caráter informativo, mostra alguns pontos


importantes no comportamento / utilização ou configuração do
equipamento. Ressalta tópicos necessários para a correta abrangência
do conteúdo deste manual.

IMPORTANTE: De caráter informativo, mostrando pontos e trechos


importantes do manual. Sempre observe e analise bem o conteúdo das
informações que são identificadas por este ícone.

ATENÇÃO: Este ícone identifica tópicos que devem ser lidos com
extrema atenção, pois afetam no correto funcionamento do equipamento
em questão, podendo até causar danos à máquina / processo, ou mesmo
ao operador, se não forem observados e obedecidos.

4
ATOS

Conteúdo
CAPÍTULO 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . 7

. INTRO DUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . 7


A Norma IEC 61131-
61131 - 3 ................................ ................................ ................................ ....................... 9

Padronização Internacional de Linguagens ................................ ................................ ......................... 10

Vantagens da IEC 61131 - 3 para programar ................................ ................................ ........................ 10

Linguagens de
d e Programação ................................ ................................ ................................ ............. 11

Linguagens Textuais ........................................................................................................................................11


Linguagens Gráficas ........................................................................................................................................11

PLCO pen: ................................ ................................ ................................ ................................ ...... 13

CAPÍTULO 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . 15

. PARTE COMUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... 15


Introdução ................................ ................................ ................................ ................................ ...... 17

Modelo de Software IEC ................................ ................................ ................................ ................... 18

Configuração (Configurations): .............................................................................................................................18


Recurso (Resources):...........................................................................................................................................19
Programas (Programs): ........................................................................................................................................19
Blocos Funcionais (Functions Blocks):..................................................................................................................19
Funções (Functions):............................................................................................................................................20
Tarefas (Tasks): ...................................................................................................................................................20
Task não-preemptiva .......................................................................................................................................21
Task preemptiva ..............................................................................................................................................21
Caminho de Acesso (Access Paths):....................................................................................................................21
Fluxo de controle: .................................................................................................................................................21
Partida: ............................................................................................................................................................21
Parada: ............................................................................................................................................................21

Exemplos de sistemas reais aplicando o modelo de software IEC: ................................ ......................... 22

Tipos de dados (Data Types): ................................ ................................ ................................ ........... 24

Tipos de dados genéricos: ...............................................................................................................................25


Valor inicial dos dados: ....................................................................................................................................25
Tipos de dados derivados: ...............................................................................................................................25
Estruturas: .......................................................................................................................................................25

Variáveis ................................ ................................ ................................ ................................ ........ 26

Variáveis de escopo Local e Global......................................................................................................................26


Variáveis de representação direta: .......................................................................................................................26
Atributos de variáveis:......................................................................................................................................27

Program Organization Unit (POU): ................................ ................................ ................................ ..... 27

CAPÍTULO 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . 29

5
ATOS

. EXERCÍCIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . 29


Exercício 1 – Conversão para diagrama de contatos ................................ ................................ ............ 31

Exercício 2 – Acionamento de uma válvula ................................ ................................ ......................... 32

Exercício 3 - Contador ................................ ................................ ................................ ..................... 33

Exercício 4 – Comando bi - manual ................................ ................................ ................................ ..... 33

Exercício 5 - Máquina
Máquin a de encher garrafas ................................ ................................ ........................... 33

Exercício 6 – Temporizador com base de tempo de 1 segundo ................................ .............................. 35

Exercício 7 – Equação matemática ................................ ................................ ................................ .... 35

Exercício 8 – Comparação de variáveis ................................ ................................ .............................. 35

Exercício 09 – TELAS DE ALARMES ................................ ................................ ................................ . 36

Exercício 10 – Contador UP/DOWN ................................ ................................ ................................ ... 36

Exercício 11 – Acionamento de motores ................................ ................................ ............................. 36

Exercício 12 – Controle do nível de um reservatório ................................ ................................ ............. 36

Exercício 13 - Controle da dosagem de produto químico ................................ ................................ ...... 37

Exercício 14 - Contagem dos produtos de uma linha de produção ................................ .......................... 38

Exercício 15 – Contagem das garrafas de um sistema de envasamento ................................ .................. 39

Exercício 16 – Manutenção Preventiva ................................ ................................ ............................... 41

Exercício 17 – Leitura da Entrada Analógica ................................ ................................ ....................... 42

Exercício 18 – Leitura da rotação do motor de uma extrusora ................................ ................................ 42

Exercício 19 – Análise de Ph ................................ ................................ ................................ ............ 43

Exercício 20 - Rampa de aceleração ................................ ................................ ................................ .. 44

Exercício 21 - Teste de vazamento em câmaras sem frascos ................................ ................................ 44

Exercício 22 – Controle da temperatura de um forno ................................ ................................ ............ 45

Exercício 23 - Leitura e ajuste de hora e data ................................ ................................ ..................... 46

Exercício 24 – Impressão de dados ................................ ................................ ................................ ... 46

CAPÍTULO 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . 47

. GLOSSÁRIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . . . . . 47

6
ATOS

CAPÍTULO 1
.INTRODUÇÃO.

7
ATOS INTRODUÇÃO

8
INTRODUÇÃO ATOS

A Norma IEC 61131-3


A criação de diversos modelos de equipamentos dedicados à automação
industrial gerou uma grande variedade de equipamentos e como conseqüência
uma incompatibilidade das características com referência a programação dos
mesmos.
Para atender às demandas da comunidade industrial internacional, foi
formado um grupo de trabalho dentro da International Electro-technical
Commission (IEC), para avaliar o projeto completo de controladores lógicos
programáveis, incluindo hardware, instalação, testes, documentação,
programação e comunicação. O IEC é uma organização normativa internacional
com base em Geneva, formada por representantes de diferentes fabricantes de
CLP’s, fabricantes de softwares e usuários.
Algumas forças tarefas de especialistas foram então estabelecidas para
desenvolver as diferentes partes do padrão. A força-tarefa 3 recebeu o objetivo
primário de desenvolver um novo padrão de linguagens que se tornou então a
parte 3 da então chamada norma IEC 1131. A partir de 1998, a IEC 1131
passou a ser chamada de IEC 61131. IEC 61131-3 é o primeiro esforço real para
a padronização das linguagens de programação para a automação industrial,
sendo a terceira parte da família IEC 61131. A tabela 1.0 apresenta o estado
atual da norma:

Parte Título Conteúdo Publicação


Parte 1 General Definição da terminologia e conceitos. 2003 (2ª Ed.)
Information

Parte 2 Equipment Teste de verificação e fabricação eletrônica e 2003 (2ª Ed.)


requirements and mecânica.
tests
Parte 3 Programmable Estrutura do software do CLP, linguagens e execução 2003 (2ª Ed.)
Languages de programas.

Parte 4 User guidelines Orientações para seleção, instalação e manutenção de 2004 (2ª Ed.)
CLP’s.

Parte 5 Communications Funcionalidades para comunicação com outros 2000 (1ª Ed.)
dispositivos.

Parte 6 Reservada

Parte 7 Fuzzy Control Funcionalidades de software, incluindo blocos 2000 (1ª Ed.)
Programming funcionais padrões para tratamento de lógica nebulosa
dentro de CLP’s.
Parte 8 Guidelines for the Orientações para implementação das linguagens IEC 2003 (2ª Ed.)
Application and 1131-3.
Implementation of
Programming
Languages

Tabela 1 – Partes da norma IEC 61131

9
ATOS INTRODUÇÃO

Padronização Internacional de Linguagens

NEMA Programmable Controllers Committee formed (USA)


GRAFCET (France)
DIN 40719, Function Charts (Germany)
NEMA ICS-3-304, Programmable Controllers (USA)
IEC SC65A/WG6 formed
DIN 19 239, Programmable Controller (Germany)
IEC 65A(Sec)38, Programmable Controllers
MIL-STD-1815 Ada (USA)
IEC SC65A(Sec)49, PC Languages
IEC SC65A(Sec)67
IEC 848, Function Charts
IEC 64A(Sec)90
IEC 1131-3
Type 3 report
recommendation

IEC 61131-3
name change
70 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

Gráfico 1 – Evolução da padronização das linguagens de programação.

Vantagens da IEC 61131-3 para programar


 Padrão Internacional Aceito:
• Passo a passo de como os fornecedores deverão atendê-la;
• Estruturas uniformes.

 Gera economia do seu tempo:


• Modelo de software e definição sólida dos tipos de dados padrões os
“Data Types”;
• Você aprende apenas uma vez para diferentes tipos de controle;
• Reduz a dificuldade de entendimento e os erros;
• Funções e blocos de funções padrões;
• Orienta a reutilização do software testado.

 Suporte seguro e qualidade na programação:


• Fácil e confortável estruturação;
• Erros na programação de tipos de dados proibidos.

 Oferece a melhor linguagem para cada problema:


• Explicação consistente das cinco linguagens;
• Duas linguagens textuais e gráficas;
• Estruturação de linguagem, permitindo revisão;
• Disponibilidade de linguagem de alto nível;
• Possibilidade de “misturar” diferentes tipos de linguagens.

10
INTRODUÇÃO ATOS

Linguagens de Programação
O IEC (International Electrotechinal Commitee) é responsável pela
padronização das linguagens de programação. Existem cinco tipos básicos de
linguagem que normalmente são encontradas em controladores programáveis e
são padronizadas pela norma IEC 61131-3:

Linguagens Textuais

 Texto Estruturado (Strutured Text – ST)


 Lista de Instruções (Instruction List – IL)

Linguagens Gráficas

Diagrama Ladder (LD)


Diagrama Blocos Funcionais (Function Block Diagram – FBD)

Dentro dos elementos comuns definidos pela norma existe o Seqüenciamento


Gráfico de Funções – SFC:
O SFC descreve graficamente o comportamento seqüencial de um programa de
controle e é derivado das redes de Petri e da norma IEC 848 Grafcet, com as
alterações necessárias para converter a representação de uma documentação
padrão, para um conjunto de elementos de controle de execução.
O SFC consiste de passos, interligados com blocos de ações e transições. Cada
passo representa um estado particular do sistema sendo controlado. Cada
elemento pode ser programado em qualquer linguagem IEC, incluindo o próprio
SFC.
Devido a sua estrutura geral, o SFC funciona também como uma ferramenta de
comunicação, integrando pessoas de diferentes formações, departamentos e
países.

Step 1 N FILL

Transition 1

Step 2 S Empty

Transition 2

Step 3

Figura 1 – Sequenciamento Gráfico de Funções (SFC)

11
ATOS INTRODUÇÃO

L i n gu a g e n s T ex tu a i s

 Texto Estruturado (Strutured Text – ST)

É uma linguagem de alto nível muito poderosa, com raízes em Pascal e “C”.
Contém todos os elementos essências de uma linguagem de programação
moderna, incluindo condicionais (IF-THEN-ELSE e CASE OF) e iterações (FOR,
WHILE e REPEAT).
Exemplo:

I:=25;
WHILE J<5 DO
Z:= F(I+J);
END_WHILE

IF B_1 THEN
%QW100:= INT_TO_BCD(Display)
ENDIF

CASE TW OF
1,5: TEMP := TEMP_1;
2: TEMP := 40;
4: TEMP := FTMP(TEMP_2);
ELSE
TEMP := 0;
B_ERROR :=1;
END_CASE

Figura 2 – Texto Estruturado (ST)

• Lista de Instruções (Instruction List – IL)

Consiste de uma seqüência de comandos padronizados


correspondentes a funções. Assemelha-se a linguagem
Assembler.
O programa representado pela linguagem descritiva:
Se as entradas E00 e E01 estiverem ligadas, então ligar
saída S80.
Pode ser representado em lista de instruções por:

A E00 : Contato E00


AND A E01 : EM SÉRIE Contato E01
= S80 : = Acionamento de saída S80

L i n gu a g e n s G r á fi c a s

Diagrama Ladder (LD)

A linguagem Ladder é uma representação gráfica da linguagem de programação


do CLP. Também conhecida como lógica de diagrama de contatos. A linguagem
Ladder é o sistema de representação que mais se assemelha à tradicional
notação de diagramas elétricos.
O mesmo esquema elétrico apresentado na pode ser representado em diagrama
Ladder por:

12
INTRODUÇÃO ATOS

Figura 3 – Diagrama Ladder (LD)

Diagrama de Blocos Funcionais (Function Block Diagram – FBD)

O diagrama funcional é uma forma gráfica de representação de instruções ou


comandos que devem ser executados. Possui blocos indicando, por exemplo,
uma porta AND.
O programa representado pela linguagem descritiva:
Se as entradas E00 e E01 estiverem ligadas, então ligar saída S80.
Pode ser representado em blocos funcionais por:

Figura 4 – Diagrama de Blocos Funcionais (FBD)

PLCOpen:
A PLCOpen é uma associação mundial independente de produtos e
fabricantes. Como tal, a missão desta associação é ser a líder na solução de
assuntos relacionados à programação de controle para suportar o uso de normas
internacionais neste campo.
A PLCopen foi fundada em 1992 e tem sua sede na Holanda. Para atingir
os seus objetivos, a organização PLCopen trabalha em aperfeiçoamentos para a
programação de controladores industriais, para gerar maior eficiência no
controle em si.
Uma das principais atividades da PLCopen está focada na IEC 61131-3, a
única norma mundial para programação de controladores industriais. A norma
harmoniza a forma como pessoas projetam e operam os controladores
industriais, padronizando a interface de programação. Uma interface de
programação padronizada permite que pessoas de diferentes formações e
habilidades possam criar diferentes elementos de um programa em diferentes
estágios do ciclo de vida software: especificação, projeto, implementação, teste,
implantação e manutenção. Todas as partes aderem a uma estrutura comum e
funcionam juntas de forma harmoniosa. A norma inclui a definição da linguagem
Sequenciamento Gráfico de Funções (SFC), usada para estruturar a organização
interna do programa, e quatro linguagens de programação interoperáveis: Lista
de Instruções (IL), Diagrama Ladder(LD), Diagrama de Blocos (FBD) e Texto
Estruturado (ST). Através da decomposição em elementos lógicos,
modularização e modernas técnicas de software, cada programa é estruturado,
aumentando a sua reutilização, reduzindo erros e melhorando a programação e
eficiência do usuário.

13
ATOS INTRODUÇÃO

As atividades de certificação da PLCOpen incluem três níveis de


conformidade:
 Base Level: Define as características mínimas a serem obedecidas
para que os produtos sejam considerados como aderentes à norma
IEC 61131-3 e que utilizam a sintaxe padrão.
 Portability Level: Define os requisitos para que alguns elementos de
software (blocos) possam ser portados entre diferentes produtos
compatíveis com este nível.
 Full Compliance Level: Define os requisitos para que todos os
elementos de software, incluindo toda uma configuração, sejam
conformes e compatíveis entre diferentes produtos certificados
neste nível.
Os produtos testados e aprovados pela PLCopen recebem um selo de
conformidade de acordo com o nível de certificação obtido:

Atualmente, apenas algumas especificações e testes de certificação estão


disponíveis, fazendo com que o número de produtos certificados seja modesto.
Mas, já é perceptível a tendência dos fabricantes em atender às características
da norma IEC 61131-3.
Site PLCOpen: http://www.plcopen.org
Site Atos: http://www.iec61131.com.br

14
ATOS

CAPÍTULO 2
.PARTE COMUM.

15
ATOS PARTE COMUM

16
PARTE COMUM ATOS

Introdução
Neste item serão apresentados os elementos comuns da norma que são
usados por todas as linguagens de programação da norma. O correto
entendimento de elementos como variáveis e tipos de dados que são utilizados é
essencial para permitir a utilização de qualquer linguagem de programação.
Ao final deste item você será capaz de:
 Nomear os elementos de software usando identificadores, tais como
variáveis;
 Declarar variáveis utilizando tipos de dados padrões;
 Declarar variáveis utilizando tipos de dados, vetores e estruturas;
 Inicializar as variáveis.
Um dos aspectos mais importantes da programação de qualquer sistema é
a capacidade de decompor o software em partes menores. A norma proporciona
que sejam desenvolvidos ambientes de programação capazes de decompor
programas complexos em diferentes elementos de software, os quais possuem
uma interface padronizada e bem definida entre os mesmos. O modelo de
software (software model) é muito importante, pois consiste em um conjunto de
conceitos que definem uma infra-estrutura para decomposição do projeto de
automação em partes. Também são definidas cinco linguagens de programação
para o desenvolvimento de módulos ou componentes de software.
A programação baseada na norma IEC é orientada para o
desenvolvimento de programas a partir da abordagem de cima para baixo (top-
down) e de baixo para cima (botton-up).

Norma IEC 61131-3


De cima
para baixo

Elementos Comuns

Linguagens de Programação
De baixo
para cima

Figura 5 – Desenvolvimento up-down e top-down.

17
ATOS PARTE COMUM

Modelo de Software IEC


O grupo responsável por desenvolver os conceitos da norma IEC
considerou o contexto de um programa de um Controlador Lógico Programável.
Todo o programa tem que existir e interagir com o ambiente onde está inserido.
Não é possível definir a estrutura de um programa de CLP sem um bom
entendimento das interfaces e interações com o sistema de controle e com a
planta externa.
Quando um CLP está executando são necessárias as seguintes interfaces:
 Interfaces de Entrada/Saída: permite o acesso aos dispositivos
para leitura dos sinais do processo como: pressões, níveis,
temperaturas, etc..., assim como fazer o comando dos atuadores.
 Interfaces de comunicação: muitos sistemas necessitam trocar
informações com outros CLP’s, IHM’s, etc.
 Interfaces de sistema: corresponde a interface entre o programa
do CLP e o hardware do mesmo, a fim que ocorra um correto
funcionamento.
A figura 6 mostra o modelo de software definido pela norma IEC 61131-3:

Configuração
Recurso Recurso caminho de acesso

Tarefa Tarefa Tarefa Tarefa FB


Bloco de
Função

Programa Programa Programa Programa


Variável
FB FB FB FB

Variáveis globais e de Representação direta


Caminho do controle
de execução

Caminho de acesso

Função de Comunicação
Figura 6 – Modelo de software IEC 61131-3

Configuração (Configurations):
No nível mais alto, o software para um sistema de controle está contido em
uma configuração. Uma configuração corresponde ao software necessário para
um único CLP. Mas, em sistemas mais complexos como em uma manufatura
pode existir diversas configurações ou uma configuração com diversos CLP’s, as
quais interagem entre si através de interfaces de comunicação padronizada pela
norma.

18
PARTE COMUM ATOS

Configuração no Âmbito da norma IEC não deve ser confundida com o termo
normalmente usado para expressar os passos para definição de parâmetros e
setups para um sistema, ou seja, “configurando um sistema”.

Recurso (Resources):
Dentro de cada configuração podem existir um ou mais recursos. Um recurso
é basicamente qualquer elemento com capacidade de processamento,
responsável pela execução dos programas. Este elemento pode ser visto como
uma máquina virtual capaz de executar um ou mais programas. Uma
característica interessante dos resources é que eles são uma divisão de software
mas que também podem refletir uma divisão no hardware. Cada recurso deve
ser independente, não podendo ser influenciado por outros recursos.

Programas (Programs):
Um Programa IEC pode ser construído a partir de diferentes elementos de
software, cada um escrito em qualquer uma das diferentes linguagens da
norma.
Tipicamente, um Programa consiste de um número de blocos funcionais
interconectados, capazes de trocar dados através das conexões de software. Um
Program pode acessar as variáveis do CLP e comunicar com outros Programs. A
execução de diferentes partes de um Program, function blocks por exemplo,
pode ser controlada usando Tasks.
Segundo a norma, “programa é uma montagem lógica de todos os elementos
de linguagens e construções necessárias para o processamento de sinal
requerido para o controle de uma máquina ou processo por um sistema
controlador programável”.

Blocos Funcionais (Functions Blocks):


O conceito de Blocos funcionais é um dos mais importantes da norma
IEC61131-3, para permitir o projeto de software de forma hierárquica e
estruturada. Blocos funcionais podem ser utilizados para a criação de elementos
de software totalmente reutilizáveis, desde a criação de outros Blocos funcionais
mais simples, até Programas mais complexos.
As principais características dos Blocos funcionais são que estes possuem um
conjunto de dados, os quais podem ser alterados por um algoritmo interno.
Somente o conjunto de dados é mantido na memória para uma determinada
instância do Bloco funcional.
Blocos funcionais podem ser utilizados para a criação de outros Blocos
funcionais (blocos derivados), aumentando ainda mais a capacidade de
reutilização do software.

19
ATOS PARTE COMUM

Funções (Functions):
Funções são elementos de software que não aparecem no modelo de
software. Funções não possuem persistência, existindo apenas em tempo de
execução, assim como sub-rotinas. Portanto, sempre produzem o mesmo
resultado para o mesmo conjunto de entradas.
Funções podem ter apenas uma saída, sem considerar a saída ENO para
controle de execução, ao contrário dos Blocos de Funções que podem ter várias.
O resultado pode ser um tipo de dado simples de múltiplos elementos (vetores e
estruturas). As funções trigonométricas são os tipos mais comuns de funções.

Tarefas (Tasks):
Uma Task é um mecanismo de escalonamento muito útil para sistemas de
tempo real, que executa Programas ou Blocos funcionais periodicamente ou em
resposta a um evento (mudança de estado de alguma variável booleana),
permitindo a execução de programas em diferentes taxas.
A necessidade de se executar programas em taxas diferentes tem por
objetivo atender as exigências de tempo de resposta do processo sob controle e
de otimizar o uso da capacidade de processamento do CLP.
Um forno, por exemplo, que possui uma capacidade térmica muito
grande, pode ser controlado por um algoritmo que executa uma vez a cada
minuto, permanecendo estável. Já as funções de intertravamento de segurança
de uma máquina ferramenta devem ser executadas a cada 5 ms. A cada tarefa
podemos atribuir um período de execução e uma prioridade.

A norma IEC assume tarefas em diferentes recursos sempre executam de


forma independente. Entretanto, em algumas implementações, pode ser
necessário a utilização de mecanismos de sincronização.
Neste contexto, uma simples execução de um Programa ou Blocos
funcionais implica que todos os elementos de software dentro dos mesmos são
processados uma vez.
A norma IEC não define nenhum mecanismo implícito para execução de
Programas. Ou seja, um Programa ou Blocos funcionais ficará aguardando a sua
execução até que seja associado a uma determinada Tarefa e esta seja ativada
por uma execução periódica ou por um determinado evento.
Um Bloco funcional devidamente associado a uma tarefa, será executado
na mesma Tarefa do Programa onde esteja contido, ou seja, Programa pai.

Existem 2 tipos diferentes de Task: Preemptivas (ou periódicas) e Não-


Preenptivas (não-periódicas), sendo estas divididas em 3 subcategorias:
Cíclica, Tempo e Evento.

Quando existem tarefas múltiplas, normalmente são atribuídos diferentes


intervalos e prioridades para cada uma. Para permitir o funcionamento das
tarefas, podem ser utilizados dois métodos de escalonamento, o preemptivo e o
não-preemptivo. O método adotado por um CLP pode alterar significantemente o
comportamento do sistema.

20
PARTE COMUM ATOS

Task não-preemptiva

Neste tipo de escalonamento uma Task sempre completa seu


processamento, uma vez iniciado. Após a sua execução, uma Task só será
escalonada, quando o seu intervalo de execução se esgotar.Uma Task não-
preemptiva pode ser interrompida por uma preemptiva. O intervalo entre a
execução de Tasks pode variar muito neste tipo de escalonamento.

Task preemptiva

É recomendado para sistemas que devam apresentar comportamento


determinístico no tempo. Neste sistema quando o intervalo de uma Task de
maior prioridade vence, a Task em execução sofre preempção (é suspensa) e a
nova Task de prioridade maior passa a executar imediatamente. Quando a Task
de maior prioridade termina, a Task suspensa anteriormente volta a executar do
ponto onde parou.

Caminho de Acesso (Access Paths):


Os caminhos de acesso permitem a transferência de dados entre
diferentes configurações. Cada configuração pode definir um número de
variáveis para acesso por configurações remotas. Estas variáveis podem ser de
leitura, escrita ou ambos. A norma assume que estarão disponíveis mecanismos
de comunicação para troca de informações, não abordando a forma à ser
adotada.

Fluxo de controle:
A norma IEC não define os mecanismos para controle de execução dos
elementos de software, os quais são dependentes da implementação.
Entretanto, são definidos os comportamentos na partida e parada do sistema:

Partida:
Quando uma configuração parte, todas as variáveis globais são
inicializadas e todos os recursos são atividados.
Quando um recurso parte, todas as variáveis dentro do recurso são inicializadas
e todas tarefas são habilitadas.
Uma vez habilitada as tarefas, todos os programas e blocos funcionais
associados às mesmas executarão quando a tarefa estiver ativa.

Parada:
Quando uma configuração para, todos os recursos da mesma param.
Quando um recurso para, todas as tarefas são desabilitadas, interrompendo a
execução dos programas e blocos funcionai.
Deve ser observado que um programa somente controla a execução dos
blocos funcionais associados à mesma tarefa. Entretanto, os blocos funcionais
podem ser associados a tarefas distintas, não sendo necessariamente
sincronizados com os programas.

21
ATOS PARTE COMUM

Exemplos de sistemas reais aplicando o


modelo de software IEC:
Em aplicações onde tem somente uma CPU, o modelo a ser adotado será
constituído por uma configuração e um recurso, podendo ter um ou mais
programas. Conforme figura 7:
CONFIGURAÇÃO

RECURSO

PROGRAMA

Figura 7 – Configuração com um único CLP

Em aplicações de grande porte com diversos CLP’s, pode ser considerado


como uma única configuração, que refere-se à planta, com diversos recursos,
onde cada CLP corresponderá a um recurso. Conforme figura 8:

CONFIGURAÇÃO

RECURSO RECURSO RECURSO

PROGRAMA PROGRAMA PROGRAMA PROGRAMA PROGRAMA PROGRAMA

Figura 8 – Configuração com diversos CLP’s

22
PARTE COMUM ATOS

Aplicações com mais de uma planta/estação interligada, e diversos CLP’s


podem ser considerados como uma ou várias configurações. Conforme figura 9:

CONFIGURAÇÃO CONFIGURAÇÃO
RECURSOS

RECURSOS
CONFIGURAÇÃO

Figura 9 – Configuração com diversas estações.

23
ATOS PARTE COMUM

Tipos de dados (Data Types):


Como os CLP’s atuais são utilizados em diversas aplicações, a norma
define a capacidade de se utilizarem diversos tipos de dados. É suportado o uso
de literais para todos os tipos de dados, os quais devem iniciar com uma
identificação do mesmo.
A norma IEC61131-3 trabalha com diversos tipos de dados no CLP. Cada
um possui características específicas, listadas abaixo:

TAMANHO
TIPO DE DADO INTERVALO
(em memória)
BOOL 1 bit TRUE e FALSE
BYTE 8 INFORMAÇÃO BINÁRIA
SINT 8 bits -127 a +127
INT 16 bits -32768 a +32767
DINT 32 bits -2147483648 a +2147483647
LINT 64 bits 2e+63 a (2e+63)-1
USINT 8 bits 0 a 256
UINT 16 bits 0 a 65535
UDINT 32 bits 0 a 4294967295
ULINT 64 bits 0 a (( 2e+64)-1)
WORD 16 bits 0 a FFFF
DWORD 32 bits 0 a FFFFFFFF
LWORD 64 bits 0 a FFFFFFFFFFFF
-3.40282346638528860e+38a 3.40282346638528860e+38
REAL 32 bits
Underflow: 1.1754943508222875e-38

LREAL 64 bits ± 10 ±308


DATE 32 bits 01/01/2000 a 31/12/2080
TIME 32 bits 0 a 49d17h2m47s290ms
TIME_OF_DAY 32 bits 00:00:00 a 23:59:59
DATE_AND_TIME 32 bits
STRING ------- Caracteres ASCII
ARRAY ------- -----------------------
STRUCT ------- -----------------------

Uso de literais para os tipos de dados:

 Inteiro:
o Decimais: -123 0 +463 23_123

 Ponto flutuante:
o 10.123 +12_123.21 -1.65E-10

 Tempo:
Declarações: d=dias, h=horas, m=minutos, s=segundos, ms=milisegundos.
o Forma curta: T#12d3h3s T#12d3.5h
o Forma longa: TIME#6d_5h_3m_4s
 Data e hora:
o D#1994-06-10 d#1995-01-13 DATE#1993-10-15
o TOD#10:10:30 TOD#23:59:59 TIME_OF_DAY#05:00:00:56

24
PARTE COMUM ATOS

o DT#1993-06-12-15:36:55.40
o DATE_ABND_TIME#1995-02-01-12:00:00

 Bits:
o False 0 True 1

Tipos de dados genéricos:


Os tipos de dados elementares são organizados conforme Figura 3. Os tipos
de dados genéricos utilizam o prefixo ANY, podendo ser utilizados em funções ou
blocos funcionais.
ANY
ANY_NUM
ANY_REAL
LREAL REAL

ANY_INT
SINT INT DINT LINT USINT UINT ULINT UDINT

ANY_BIT
BOOL BYTE WORD DWORD LWORD

STRING

ANY_DATE
DATE_AND_TIME DATE TIME_OF_DAY

TIME
Figura 10 – Hierarquia dos tipos de dados elementares

Valor inicial dos dados:


Pela norma IEC toda variável deve ter um valor inicial, e este valor pode ser
inicializado na declaração de variáveis.

Figura 11 – Valor inicial das variáveis.

Tipos de dados derivados:


Novos tipos de dados podem ser definidos a partir dos tipos elementares para
facilitar o entendimento do programa. A declaração de um novo tipo de dado é
feita através do uso das palavras-chave TYPE e END_TYPE.

Estruturas:
Tipos de dados compostos podem ser derivados pela definição de uma
estrutura, através do uso de palavras-chave STRUCT e END_STRUCT.

25
ATOS PARTE COMUM

Variáveis
Variáveis de escopo Local e Global
A norma exige a declaração de variáveis dentro de diferentes elementos
de software, tais como Programas e Blocos Funcionais. As variáveis podem
utilizar nomes com significado abrangente (simbólicos) e serem de diferentes
tipos de dados. As variáveis podem ser de alocação dinâmica e associadas a
posições de memória (representação direta). O escopo das variáveis é local ao
elemento de software que as declara, permitindo acesso dentro do próprio
elemento que pode ser uma Configuração, Recurso, Programa, Bloco Funcional
ou Função. Variáveis também podem ser de escopo global, sendo acessadas por
todos os elementos contidos no mesmo, incluindo os elementos aninhados.

A seguir um exemplo da utilização de variáveis globais, onde a variável


EFETIVO_TEMP é utilizada no Programa_1 (Program) e no FB_1 (Function Block)
contido no Programa_2 (Program):

CONFIGURAÇÃO

RECURSO

PROGRAMA_1 PROGRAMA_2
VARIÁVEIS GLOBAIS

FB_1 FB_2
EFETIVO_TEMP

Figura 12 – Variáveis Globais

Variáveis de representação direta:


Posições de memória do CLP podem ser acessadas usando variáveis de
representação direta. A representação direta permite a leitura e escrita de dados
em posições conhecidas de memória, tais como entradas, saídas e endereços
internos. As variáveis de representação direta têm seu uso restrito aos
Programas não permitindo que Blocos Funcionais façam acesso direto para
garantir a reutilização dos blocos. A notação utilizada é padronizada para
permitir a portabilidade.
Todas começam com o caracter % seguido de uma ou duas letras.

Sinal inicial Identificação Tamanho DESCRIÇÃO

26
PARTE COMUM ATOS

(IEC std) de memória do dado

X (1 bit) Acesso à variáveis booleanas.


M Acesso à variáveis com 16 bits de
(Acesso à memória)
W (16 bits) tamanho:
INT, UINT e WORD.
Acesso à variáveis com 32 bits de
I
% (Entrada física do CLP) D (32 bits)
tamanho:
DINT, UDINT, DWORD, TIME, DATE e
TOD.

Q B (8 bits) Acesso à variáveis com 8 bits

(Saída física do CLP)


L (64 bits) Acesso à variáveis com 64 bits

Os demais dígitos representam a posição de memória e estabelecem uma


hierarquia quando o endereço é constituído por números separados por pontos.
Normalmente os pontos identificam subdivisões de hardware, módulos, canais,
etc... O significado de cada campo é dependente de implementação.

Exemplos de acesso a dados utilizando a nomenclatura IEC:

%I0.0 Leitura de sinal da entrada E0 da CPU (slot 0, entrada 0)

%IW8.0 Leitura de sinal da entrada proveniente de uma placa analógica (slot 8, entrada 0)

%Q0.0 Escrita de sinal na saída S0 da CPU (slot 0, saída 0)

%QW8.0 Escrita de sinal na saída proveniente de uma placa analógica (slot 8, saída 0)

%MX1 Acesso à leitura/escrita de variável booleana na memória do CLP

%MW1 Acesso à leitura/escrita de variável de 16 bits na memória do CLP

%MD1 Acesso à leitura/escrita de variável de 32 bits na memória do CLP

Ao acessar entradas e saídas físicas da CPU, a nomenclatura do


tamanho do dado (X) não é utilizada, sendo necessário apenas
informar a posição física (slot. posição) que o dado se encontra. A
definição dos slots é feita ao montar a configuração de hardware no
aplicativo.

Atributos de variáveis:
 Retenção: Indica que as variáveis seguintes serão colocadas em memória
retentiva, isto é que mantêm o seu valor em caso de perda de
alimentação do CLP. São declaradas utilizando Retain.
 Constante: Indica que os valores de uma lista de variáveis não podem ser
modificados.


Program Organization Unit (POU):

A norma IEC61131-3 descreve os programas (Programs), funções (Functions)


e blocos funcionais (Functions Block) como sendo POUs (Program Organization
Units).

27
ATOS PARTE COMUM

Estes componentes permitem que você estruture e organize seu projeto de


maneira a minimizar a escrita de códigos e a manutenção de todo o sistema.
A criação e utilização de Functions e Function Blocks cria uma portabilidade de
código entre projetos, de maneira que o programador não precisa digitar "n"
vezes o mesmo código quando existe a necessidade de utilizá-lo várias vezes no
mesmo projeto.
A norma IEC61131-3 descreve os programas (Programs), funções (Functions)
e blocos funcionais (Functions Block) como sendo POUs (Program Organization
Units).
Uma importante característica da norma é a ênfase dada ao projeto de forma
hierárquica. Isto significa que um sistema de controle pode ser divido em níveis
de complexidade de cima para baixo e estruturado de baixo para cima em
função das necessidades de controle.
Isto implica na utilização de Function Blocks e Functions padrões, através de
bibliotecas que podem ser fornecidas pelo fabricante do CLP, ou pela criação de
blocos e funções específicos definidos pelo usuário para atender às necessidades
do processo. O uso de bibliotecas baseadas nos blocos padrões permite a
portabilidade de soluções para diferentes sistemas de controle.

Reutilização:

A norma IEC estimula a reutilização desde o nível mais macro, com Programs,
até o nível mais micro, com Functions e Function Blocks. A recursividade não é
permitida dentro de uma POU, para garantir a estabilidade da aplicação.

Tipo de POU Aplicado como Comentário


Instância de um Permite reutilização no nível macro, como programas para
Program
Program reatores, transportadores, caldeiras, etc.
Possibilita a reutilização desde simples a complexas
Function Instância de um
estratégias de controle e algoritmos, como controle PID,
Block Function Block
filtros, motores, etc.
Usada para tratamento comum de dados, como lógica E, OU,
Function Função
seno, cosseno, soma e etc.

28
ATOS

CAPÍTULO 3
.EXERCÍCIOS.

29
ATOS EXERCÍCIOS

30
EXERCÍCIOS ATOS

Exercício 1 – Conversão para diagrama de


contatos
Converter para diagrama de contatos, os seguintes esquemas elétricos:

a) Acionamento de solenóide:

b) Botoeira liga-desliga solenóide:

31
ATOS EXERCÍCIOS

c) Acionamento, com retardo, de um solenóide ou bobina:

d) Acionamento de um motor ( estrela – triângulo ):

Exercício 2 – Acionamento de uma válvula


Programe o acionamento de uma válvula solenóide. Este acionamento deve
ocorrer depois de 5 segundos, ou seja, devemos disparar um temporizador, que
no final deste tempo acione a válvula. Considere um botão para pausa no
acionamento da válvula. Programe também uma tela com um campo de edição e
um campo de visualização.

Tela exemplo:
TEMPORIZADOR
PRE. EFE.

32
EXERCÍCIOS ATOS

Exercício 3 - Contador
Programe um contador, que conte pulsos com a 1ª entrada digital e seja
resetado com a 2ª entrada digital. No final da contagem deverá acionar a 1ª
saída digital, sinalizando assim o final da contagem. Programe também uma tela
com um campo de edição e um campo de visualização. Considere que o número
de pulsos a ser definido através da IHM varie de 0 a 100 pulsos.

Tela exemplo:

CONTADOR
PRE. EFE.

Exercício 4 – Comando bi-manual


Programe um comando bi-manual. O bi-manual deve manter as mãos do
operador em local seguro, enquanto ciclos perigosos da máquina estão em
andamento, em aplicações como prensas.
Modo de funcionamento:
- O operador só consegue acionar a máquina quando os dois botões forem
acionados simultaneamente, um botão longe do outro, de tal forma que cada
botão seja acionado somente por uma das mãos do operador.
- Quando acionado um dos botões deve-se disparar um temporizador, com o
tempo muito curto, não deixando assim que a máquina seja acionada se os dois
botões não forem acionados praticamente ao mesmo tempo.
Programe as telas abaixo para esta aplicação.

PRENSAS ABCD TEMPORIZADOR


APERTE BOTOES 1 E 2 EFE.

Exercício 5 - Máquina de encher garrafas


Automatizar a máquina de encher garrafas, conforme o desenho, considerando
que já exista uma garrafa embaixo do bico de enchimento. Quando o processo
for iniciado, abrir o bico de enchimento durante certo tempo, para que o líquido
encha a garrafa, depois acione o motor da esteira para a troca de garrafas.
Encha 20 garrafas, com processo contínuo.

33
ATOS EXERCÍCIOS

Programe as seguintes telas para a IHM:

Tela 000 - Tela texto, na primeira linha nome da empresa, na segunda linha
nome da máquina.
MAC VIDROS
ENCHEDORA SR 2000

Tela 001 - Tela de navegação, S1 salta para a primeira tela de tempos e S2


salta para a tela de contagem.

SELECIONE
S1-TEMPOS S2-CONT.

Tela 002 - Tela com um campo de edição e um campo de visualização do tempo


de enchimento das garrafas.

TEMPO ENCHER GARR


PRE. EFE.

Tela 003 - Tela com um campo de edição e um campo de visualização do tempo


de acionamento da esteira.
TEMPO ESTEIRA
PRE. EFE.

Tela 004 - Tela com um campo de edição e um campo de visualização da


contagem de garrafas.
CONTA GARRAFAS
PRE. EFE.

34
EXERCÍCIOS ATOS

Exercício 6 – Temporizador com base de


tempo de 1 segundo
Programar um temporizador de base de tempo de 1s, que no final de 20s acione
uma saída digital. Programe uma tela com um campo de edição e um campo de.
Defina senha para editar o preset do temporizador.
Exemplo de tela:

TEMPORIZADOR
0000 PRE. 0000 EFE.

Exercício 7 – Equação matemática


Faça um programa usuário que resolva a seguinte equação matemática:

C= A*B
A+B

Programe as telas abaixo:


1. Editar A e B;
2. Visualizar A*B;
3 Visualizar A+B;
4. Visualizar C.

Exercício 8 – Comparação de variáveis


Faça um programa de usuário que:

- Atribua a variável A, o valor 500;


- Edite a variável B com um valor qualquer;
- Compare A com B e sinalize utilizando string quando:

A=B
A<B
A>B

35
ATOS EXERCÍCIOS

Exercício 09 – TELAS DE ALARMES

Programe uma tela para editar B, visualizar A e mostrar string dos possíveis
resultados da comparação

Exercício 9 – Telas de alarme


Programe duas telas de texto, de forma que a cada 1s elas se alternem no
display da IHM (utilizar programação de alarmes). Mostrar:
Tela 1 Tela 2

ATOS MPC 4004


AUTOMACAO INDUSTRIAL

Exercício 10 – Contador UP/DOWN


Programe um contador UP/DOWN, que conte até 10, sinalize com uma saída
digital, e automaticamente pare de contar.

Exercício 11 – Acionamento de motores


Em uma aplicação industrial temos 6 motores. Quando acionamos um botão
START, temos que acionar os motores 1, 3 e 4. Depois de 15 segundos, temos
que acionar os motores 2, 5 e 6, durante 20 segundos e finalmente desligar
todos os motores. Só será possível novo acionamento, quando o botão START
for pressionado novamente. Utilizar a instrução WBIT e deixar a IHM
desabilitada.

Exercício 12 – Controle do nível de um


reservatório
Controle o nível do reservatório, de forma que ocorra o comando da bomba. No
reservatório temos um sensor de nível alto (SNA), e um sensor de nível baixo
(SNB). Se o nível da água for superior ao SNA, devemos desligar a bomba que
está recalcando água para o reservatório. Se o nível da água for inferior ao SNB,
devemos ligar a bomba que está recalcando água para o reservatório.

Considerar também que o sistema possua dois botões:

1 - Manual/Automático, para definir se o processo está operando


automaticamente ou em modo manual. Botão: ON – Modo Manual e OFF –
Automático.

2- Liga/Desliga bomba, acionamento realizado manualmente, sendo: Botão: ON


– Bomba ligada e OFF – Bomba desligada.

Programe a IHM, para mostrar mensagens para o operador, nas seguintes


situações:

36
EXERCÍCIOS ATOS

1. Nível Baixo, portanto a bomba de recalque de água para o reservatório


estará ligada.
BOMBA LIGADA
NÍVEL BAIXO

2. Nível Alto, portanto a bomba de recalque de água para o reservatório


estará desligada.
BOMBA DESLIGADA
NÍVEL ALTO

3. Bomba Ligada – Modo Manual, portanto a bomba de recalque de água


para o reservatório estará ligada.
BOMBA LIGADA
MODO MANUAL

4. Bomba Desligada – Modo Manual, portanto a bomba de recalque de água


para o reservatório estará desligada.

BOMBA DESLIGADA
MODO MANUAL

Exercício 13 - Controle da dosagem de


produto químico
Controle a dosagem de produto químico, no equipamento da figura abaixo. No
recipiente temos um sensor de nível alto (SNA - 4 litros), e um sensor de nível
baixo (SNB - 1 litro). Se o nível de produto químico for inferior a 1 litro,
devemos abrir a válvula 1 para encher o recipiente, não deixando ultrapassar 4
litros, ou o sensor de nível alto (SNA). Para escoar o produto temos um sinal
externo, ativado por um botão (sistema manual) ou sinal do próprio processo
(sistema automático). Para selecionar o controle da dosagem em Modo Manual
ou em Modo Automático temos um botão de seleção Manual/Automático. As
válvulas 1 e 2 não poderão estar abertas ao mesmo tempo.

Programe a IHM, para mostrar mensagens para o operador, nas seguintes


situações:

1. Válvula um aberta, portanto recipiente vazio.

FALTA PRODUTO
VALVULA 1 ABERTA

2. Válvula dois aberta

LIBERANDO PRODUTO
VALVULA 2 ABERTA

37
ATOS EXERCÍCIOS

3. Recipiente cheio, operação manual.

RECIPIENTE CHEIO
PODE LIBERAR PRODUTO

Exercício 14 - Contagem dos produtos de


uma linha de produção
Em uma linha de produção temos 3 produtos. O primeiro produto foi embalado
em uma caixa de 10 cm de altura, o segundo com 8 cm de altura e o terceiro
com 5 cm de altura. Temos que contar a quantidade de cada produto que passa
na esteira pelos sensores infravermelhos. Cada sensor possui a mesma altura
dos produtos, 1, 2 e 3 respectivamente SI-1, SI-2 e SI-3. Programe três
contadores utilizando uma lógica com os sensores, que contem os produtos.

Figura 95 – Ilustração de uma Linha de Contagem de Peças

Devemos mostrar na IHM, a quantidade dos produtos 1, 2 e 3.

Tela 000 - Mostrar o nome do produto ou código. Editar preset e visualizar o


efetivo. Utilizar uma tela com um campo de edição e um campo de visualização
de quatro dígitos. Deve ser uma tela de início.

Exemplo de tela:
PRODUTO 1
0000 PRE. 0000 EFE.
Tela 001 - Mostrar o nome do produto ou código. Editar o preset e visualizar o
efetivo Utilizar uma tela com um campo de edição e um campo de visualização
de quatro dígitos. Deve ser uma tela intermediária.
Exemplo de tela:
PRODUTO 2
0000 PRE. 0000 EFE.

38
EXERCÍCIOS ATOS

Tela 002 - Mostrar o nome do produto ou código. Editar o preset e visualizar o


efetivo deste contador. Utilizar uma tela de uma edição e uma visualização de
quatro dígitos.
Exemplo de tela:
PRODUTO 3
0000 PRE. 0000 EFE.

Exercício 15 – Contagem das garrafas de


um sistema de envasamento
Em um sistema de envasamento de garrafas de refrigerante, tem-se capacidade
de envasar 500.000 garrafas por dia. Para o transporte e o sistema de
verificação se as garrafas estão dentro do padrão estipulado, tem uma esteira
na qual estão dispostos: um sensor de verificação de nível (barreira ótica), um
sensor de presença e um pistão. O sensor de nível, monitora o nível mínimo de
refrigerante para que a garrafa seja aprovada. E o sensor de presença informará
quando a garrafa estiver na posição onde o pistão atuará, a atuação do pistão
ocorrerá quando a garrafa estiver fora do padrão (refugo). Todas as garrafas
que estiverem fora do padrão, serão deslocadas com o movimento do pistão
para o cesto de refugos.
Programe um contador de 8 dígitos para contar o número de garrafas envasadas
dentro do padrão e um contador para contar o número de refugos. Elabore uma
tela, onde seja possível editar a quantidade de garrafas a serem envasadas, o
preset do Alarme de Refugos; visualizar o número de garrafas aprovadas, e o
número de refugos. Mostre um alarme para o usuário, quando o número de
refugos for superior a 5000 garrafas, pois desta forma o índice de refugos é
crítico.

Programe as seguintes telas para a IHM:

Tela 000 – Tela do contador de garrafas aprovadas, com um campo de


edição do número de garrafas a serem envasadas e um campo de
visualização da quantidade de garrafas dentro do padrão.

ENVASAMENTO DIÁRIO:
. PRESET: garr.
EFETIVO: garr.

39
ATOS EXERCÍCIOS

Tela 001 – Tela do contador de refugos, com um campo de visualização do


número de garrafas fora do padrão, e um campo de edição para o preset do
alarme de índice crítico de refugos.

REFUGOS DIÁRIOS:
PR. ALARME: garr.
EFETIVO: garr.

Tela 002 – Tela de Alarme do Índice Crítico de Refugos.

QUANT. CRITICA
DE REFUGOS!
>5000 GARRAFAS
VERIFICAR!

40
EXERCÍCIOS ATOS

Exercício 16 – Manutenção Preventiva


Desenvolver um sistema de Manutenção Preventiva, onde um horímetro
correspondente à manutenção prevista seja acionado sempre que se inicia a
operação do sistema. Quando o período de manutenção prevista for completado,
um alarme será apresentado ao usuário indicando a situação e, também será
disponibilizado uma lista das verificações sugeridas. Estabelecer no software
usuário uma programação estimada de horas para que ocorra a manutenção
sugerida.

Programe as seguintes telas para a IHM:

Tela 000 – Tela texto, na primeira linha nome da empresa, na segunda linha
“MANUTENÇÃO PREVENTIVA”.

“xxxxxxxxxx”
MANUTENÇÃO PREVENTIVA

Tela 001 – Tela de Manutenção Preventiva, apresentar a programação


estimada de horas para que ocorra a manutenção sugerida, criar um
campo onde seja possível visualizar a hora atual de funcionamento do
processo. A relação das atividades que deve ser realizada estará
disponível através do acionamento da tecla “S1”. O texto definido para
zerar o Horímetro deverá ficar piscando quando completar o período
definido, e para zerar o horímetro e iniciar a contagem de um novo
período de horas, a tecla “S2” deverá ser acionada.

Manutenção Preventiva
A cada “xx” Horas.
Atual......................................[
xx]
[Vericacao]
[Zerar]

Tela 002 – Tela de Alarme, que será mostrada ao usuário depois de completado
o período para a realização da manutenção preventiva.

REALIZAR
MANUTEN. PREVENTIVA
E ZERAR O HORIMETRO

41
ATOS EXERCÍCIOS

Tela 003 e 004 – Telas com os itens da Lista de Verificação, descrever em


uma ou mais telas, conforme exemplo, as atividades a serem realizadas
quando completar o período definido para a Manutenção Preventiva. Essas
informações deverão ser chamadas assim que acionada a tecla “S1”.

Preventiva:
- Reapertar parafusos
da Base;
- Lubrificar eixo 1;

- Engraxar bicos existentes;


- Verificar nível do Óleo
Hidráulico.

Exercício 17 – Leitura da Entrada Analógica


Programe uma tela para somente visualização da primeira entrada analógica que
tem sua faixa de 0 a 10V, e da segunda entrada analógica que recebe um sinal
proveniente de uma régua potenciométrica e tem sua faixa de 0 a 20mA para o
curso da régua variando de 0 a 200mm. Use um botão do frontal para colocar
essa tela no display.

Exemplo de tela:
Eana1: V
cc
Régua:
mm

Exercício 18 – Leitura da rotação do motor


de uma extrusora
Programe uma tela para ler uma entrada analógica, que monitora um sinal
proveniente de um inversor de freqüência conectado no motor de uma
extrusora, o qual tem sua faixa variando de 0 a 20mA. A leitura deve ser
realizada em rotações por minuto, de acordo com a velocidade característica do
motor.

42
EXERCÍCIOS ATOS
Tela 000 – Tela de texto, na primeira linha nome da empresa, na segunda
linha nome da máquina.
“xxxxxxxxxx”
EXTRUSORA “xxxxx”
.

Tela 001 – Tela com um campo de edição e um campo de visualização da


velocidade do motor da extrusora.

Velocidade do Motor:
Fundo de escala:
rpm
Veloc. Atual:
rpm

Exercício 19 – Análise de Ph
Programe um sistema de análise do pH da água de uma Estação de Tratamento
de Água - ETA, para o controle da dosagem do alcalinizante. Considere um sinal
de uma entrada analógica, proveniente de um medidor de PH que tem sua faixa
de 0 a 20mA para variação do PH de 0,00 a 14,00. Programe também uma tela
para somente visualização da variação do pH na escala de 0,00 a 14,00 e na
escala de 0 a 20mA. E 4 telas para mostrar mensagens para o operador, nas
seguintes situações:

5. pH Baixo, portanto a água está ácida.

pH BAIXO

6. pH Alto, portanto a água está alcalina.

pH ALTO

7. Verificar Alcalinizante - pH MUITO BAIXO, pois há falta de


alcalinizante.

VERIFICAR
ALCALINIZANTE
pH MUITO BAIXO

8. Dosagem parada – pH MUITO ALTO, pois há excesso de alcalinizante.


DOSAGEM PARADA
pH MUITO ALTO

Definir os parâmetros para os alarmes acima especificados.

43
ATOS EXERCÍCIOS

Exercício 20 - Rampa de aceleração


Construir uma rampa de aceleração, para acionamento de um motor, mostrada
no gráfico abaixo:

Volts

2 Tempo (s)

A cada 2 s o CP deve adicionar à sua saída analógica 1 volt, até alcançar 10


volts. Existe um inversor de freqüência utilizando a saída analógica de 0 a 10 V
do CP para o acionamento do motor.
Utilizar:

Exercício 21 - Teste de vazamento em


câmaras sem frascos
Projetar um sistema de teste de vazamento em câmaras:
- Ao acionar uma entrada digital ler a entrada analógica 1 e armazenar o
resultado em uma posição livre de memória.
- Esperar 4 segundos, e ler novamente a entrada analógica 1, e armazenar o
resultado em uma outra posição livre de memória.
- Fazer a diferença entre, leitura 1 e leitura 2 (vazamento real), e armazenar o
resultado da diferença em uma posição livre de memória..
- Fazer a comparação entre o vazamento real, e o máximo vazamento tolerável.
- Sinalizar através de alarmes, peça boa ou ruim.

- Programar as telas com as seguintes características:


Tela 1 - Edição o setpoint e visualizar o vazamento real.
Tela 2 – Apresentar o valor da 1ª e 2ª leitura.
Tela 3 – Alarme de Peça Boa.
Tela 4 – Alarme de Peça Ruim.

44
EXERCÍCIOS ATOS

Exercício 22 – Controle da temperatura de


um forno
Controle a temperatura de um forno, através de uma resistência elétrica ligada
em uma saída digital do Controlador Programável que ligará ou desligará,
conforme a temperatura esteja abaixo ou acima de 100°C (temperatura de
aquecimento da matéria prima). Programe uma tela para editar a temperatura
mínima e máxima da banda (sugerida banda de 5°C). Se a temperatura passar
da temperatura máxima definida, a medida é desligar a resistência e esperar
que o forno se esfrie por perda de calor. Considere dois alarmes de:
temperatura mínima permitida de 50 °C e, temperatura máxima permitida de
150 °C. Indique também utilizando alarmes quando o termopar romper e
quando estiver invertido.

Tela 000 – Tela com um campo de visualização do efetivo de temperatura,


dois campos de edição da temperatura mínima e máxima da banda definida.

TEMPERATURA DO FORNO
EFETIVO:
PRE. MÍNIMA:
oC
PRE. MAXIMA:
oC

Tela 001 – Tela com dois campos de edição da temperatura mínima e


máxima dos alarmes de temperatura permitida.

PRESET ALARMES:
TEMP. MÍNIMA: oC
TEMP. MAXIMA: oC

Tela 002 – Tela de Alarme: Termopar Invertido.

TERMOPAR
INVERTIDO

Tela 003 – Tela de Alarme: Termopar Aberto

TERMOPAR
ABERTO

Tela 004 – Tela de Alarme: Temperatura mínima permitida.

TEMPERATURA
MINIMA

Tela 005 – Tela de Alarme: Temperatura máxima permitida.

TEMPERATURA
MAXIMA

45
ATOS EXERCÍCIOS

Exercício 23 - Leitura e ajuste de hora e


data
Fazer um programa de usuário para ajustar e visualizar o calendário (hora e
data) do CP, desenvolva as telas que achar necessário.

Exercício 24 – Impressão de dados


Criar um programa para imprimir numa impressora de 80 colunas a seqüência
mostrada abaixo centralizada:

ATOS AUTOMAÇÃO INDUSTRIAL LTDA.


DATA DD/MM/AA HORA HH:MM:SS

onde DD/MM/AA e HH:MM:SS são a data e hora atuais do sistema.

46
ATOS

CAPÍTULO 4
.GLOSSÁRIO.

47
ATOS GLOSSÁRIO

48
GLOSSÁRIO ATOS

 Constante: atributo de uma variável.


 EN/ENO: controle das funções (Functions) e Blocos Funcionais (Functions
Blocks) na linguagem de programação: Ladder Diagram.
 FALSE: Uso literal de uma variável booleana para falso (desligado).
 Retain: Atributo de uma variável, onde define-se que a mesma será
colocada em memória retentiva.
 TASK: Usado para declarar uma Tarefa (Task).
 TRUE: Uso literal de uma variável booleana para verdadeiro (ligado).
 Access path: É a associação de uma função com uma variável com o
propósito de abrir a comunicação.
 Array: Uma seqüência de elementos (matriz), com atributos idênticos
formando um tipo de dado.
 Compile: Compilador. Traduzir a Unidade de Organização de Programa
(POU) ou o tipo de dado especificado para uma linguagem de máquina
equivalente ou em uma forma intermediária.
 Data type: Grupo de valores associados a um grupo de operações
permitidas. Tipos de dados.
 Date and time: Data com o ano e a hora do dia representada em um
elemento de linguagem único.
 Declaration: O mecanismo para estabelecer a definição do elemento da
linguagem.
 Double Word: Dado contendo 32 bits.
 Global Scope: Escopo da declaração aplicada a todas as Unidades de
Organização de programa (POU) dentro de um recurso ou configuração.
 Global Variable: Variáveis cujo escopo é global.
 Initial Value: Valor pré-determinado para iniciar a variável.
 Instance: Nome da cópia da estrutura de dados associado com um Bloco
Funcional (Function Block) ou um Programa (Program), ou seja, instâncias
da mesma classe, mas normalmente possuem valores diferentes para
suas variáveis de instância.
 Program Organization Unit: Função (Function), Blocos Funcionais
(Function Block) ou Programa (Program).
 Literal: Representação literal de um determinado tipo de dado.

49
ATOS GLOSSÁRIO

 Escalonamento não-preemptivo: O processo que obtiver o direito de


rodar, rodará até que seja bloqueado por uma interrupção, ou para
esperar por outro processo, ou até terminar.
 Escalonamento preemptivo: Há uma interrupção e suspensão
temporária da execução de processos não bloqueados após um tempo
máximo especificado.
 IEC: Comitê Internacional Eletrotécnico (International Electrotechnical
Commission).
 Portabilidade: Conjunto de atributos que evidenciam a capacidade do
Software em ser transferido de um ambiente para outro.
 CP: Controlador Programável.
 Algorítmo: Um método, ou um conjunto de passos para resolver um
problema.
 Booleana: Uma variável cujos únicos valores admissíveis são verdadeira
ou falsa.
 Variável local: Uma variável que está definida dentro de uma função e
que, portanto, só pode ser usada por comandos internos à função.
 Teclas F e K: São teclas da Interface Homem-máquina, que podem ser
utilizadas de duas formas: como um botão e chamada de tela.
 Preset: Valor pré-definido, Setpoint.
 Efetivo: Corresponde ao valor real relativo aos pontos físicos.
 Task: Elemento de controle da execução por tempo ou por evento, de um
grupo de Unidades de Organização de Programa (POU).
 CS: Chip Select. Corresponde a posição do módulo no conjunto do CLP.
 Controller: Corresponde a um Recurso (Resource) do modelo do software
IEC.
 Libraries: Organiza as bibliotecas de Funções (Functions) e Blocos
Funcionais (Functions Blocks).
 Recipes: Arquivos de receitas.
 Upload: Realiza a leitura do programa do CLP para o micro.
 PT: Este valor é também chamado de pré-seleção. Valor a atingir.
 ET: Saída que mostra o valor corrente.

50

Você também pode gostar