Você está na página 1de 59

Universidade Federal de Lavras

Departamento de Engenharia
Engenharia de Controle e Automação

GNE259 - INFORMÁTICA INDUSTRIAL

CADERNO DE ANOTAÇÕES

Prof. Dimitri Campos Viana


Dezembro de 2017
Avisos Importantes

Aos discentes: o estudo deste material não é suficiente para


lhe preparar para as avaliações da disciplina.
Para tal, consulte o arquivo “dúvidas frequentes”
em http://bit.do/dimicamp.

Aos docentes: sinta-se livre para utilizar este material, porém


não desvincule-o de seu autor.

GNE259 – Informática Industrial

GNE259 – Informática Industrial

Prof. Dimitri Campos Viana

Universidade Federal de Lavras

Outubro de 2017

Universidade Federal de Lavras Prof. Dimitri Campos Viana 2

GNE259 – Informática Industrial

SUMÁRIO

Aula 01 – História da Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Aula 03 – Prog. com Diagrama Ladder: Instruções Binárias e Decimais
Aula 04 – Prog. com Diagrama Ladder: Sub-Rotinas e Funções
Aula 05 – Prog. com Diagrama Ladder: Contadores e Temporizadores
Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Aula 08 – Conceitos Fundamentais sobre OPC
Aula 09 – Programação com Diagrama de Blocos de Funções
Aula 10 – Programação com Lista de Instruções
Aula 11 – Programação com Texto Estruturado
Aula 12 – Programação com Diagrama de Fluxo Sequencial

Universidade Federal de Lavras Prof. Dimitri Campos Viana 3


GNE259 – Informática Industrial
Aula 01 – História da Informática Industrial

Anotações:

Aula 1
História da Informática Industrial

Universidade Federal de Lavras Prof. Dimitri Campos Viana 4

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Linha do Tempo

• Primeiros Sistemas de Automação Industrial Anotações:


⇒ Evoluı́ram durante a Revolução Industrial (fim do século XIX).
⇒ Implementados por dispositivos puramente mecânicos.
⇒ Automatizavam algumas tarefas crı́ticas e repetitivas.
⇒ Os dispositivos precisavam ser desenvolvidos para cada tarefa.
· Possuı́am uma pequena vida útil.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 5

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Linha do Tempo

• Sistemas Eletromecânicos (com Relés) Anotações:

⇒ Começaram a substituir sistemas mecânicos (década de 1920).

⇒ Foram vastamente empregados


em todo o mundo.
· Funções de controle mais
complexas e sofisticadas;
· Custo viável, especialmente
em pequenas máquinas;
· Fácil projeto e manutenção
(em relação aos anteriores);

⇒ Ainda existem em um grande


número de processos antigos.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 6

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Linha do Tempo

• Primeiros Computadores Comerciais Anotações:

⇒ Utilização em sistemas de automação (década de 1970).


⇒ Programáveis, logo:
· Mais flexı́veis do que as lógicas por interligação elétrica.
⇒ No entanto, eram:
· Grandes, caros, difı́ceis de programar e muito sensı́veis
ao uso em ambientes agressivos, como os industriais.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 7


GNE259 – Informática Industrial
Aula 01 – História da Informática Industrial
Linha do Tempo

• Surgimento dos Controladores Lógico–Programáveis (CLPs) Anotações:

⇒ Demanda existente na indústria automobilı́stica dos EUA.


· Mudança na linha de montagem → Mudança nos relés.
· Gastos elevados de tempo (e dinheiro).
· Além disso, computadores comerciais não eram a solução.
⇒ Especificou-se as necessidades de muitos usuários de circuitos
a relés (não só da indústria automobilı́stica), dentre elas:
· Facilidade de programação e reprogramação;
· Confiabilidade apropriada para ambientes industriais;
· Possibilidade de reparo com componentes modulares;
· Possibilidade de expansões sem grandes alterações;
· Redução de tamanho em relação aos sistemas com relés;
· Custo competitivo em relação aos sistemas com relés.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 8

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Linha do Tempo

Anotações:
• Primeiros Controladores Lógico–Programáveis (CLPs)
⇒ Eram grandes e relativamente caros.
· Competitivos apenas para substituir pelo menos 150 relés.

⇒ Atualmente, com melhorias de projeto, pode-se utilizar um


CLP para circuitos equivalentes a 15 relés (ou menos).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 9

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Linha do Tempo

Anotações:

• Resumo (extraı́do de Franchi and De Camargo [2009])


⇒ Evolução da automação industrial desde o final do século XIX:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 10

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

• Surgimento (adaptado de Rehg and Sartori [2009]) Anotações:

⇒ O 1o modelo foi desenvolvido por Joseph Henry, em 1836.


⇒ Mais de 180 anos depois, ainda possuem 3 elementos básicos:
· O eletroı́mã, que cria o campo
magnético com a passagem da
corrente pela bobina;
· A armadura, que é puxada para
perto da bobina durante sua
ativação e afastada pela mola
na ausência de corrente;
· Os contatos, que criam os
caminhos elétricos entre os
terminais “Comum”, “NA”
e “NF”.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 11


GNE259 – Informática Industrial
Aula 01 – História da Informática Industrial
Relés Eletromecânicos

• Pergunta Anotações:
⇒ Imagine esse mecanismo encapsulado em uma caixa plástica.
· Quantos terminais elétricos essa caixa possui?

Universidade Federal de Lavras Prof. Dimitri Campos Viana 12

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

Anotações:
• Representações Esquemáticas
⇒ Nos projetos de sistemas elétricos, duas formas são usadas:

Circuitos de Potência Diagramas para Lógicas


e Comando Manual de Controle Automático

Universidade Federal de Lavras Prof. Dimitri Campos Viana 13

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

• Circuitos de Potência e Comando Manual Anotações:

⇒ Exemplo:

⇒ Pergunta: os contatos NA dos relés R1 e R2 aparecem em dois


pontos distintos do projeto. Como isso é possı́vel?

Universidade Federal de Lavras Prof. Dimitri Campos Viana 14

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

Anotações:
• Resposta
⇒ Existe uma grande variedade de relés no mercado.
· De diversos tamanhos e com diversas configurações
de contatos.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 15


GNE259 – Informática Industrial
Aula 01 – História da Informática Industrial
Relés Eletromecânicos

Anotações:
• Diagramas para Lógicas de Controle Automático
⇒ Sı́mbolos padronizados são usados para representar diferentes
elementos, como:

· Bobinas e contatos dos relés;


· Chaves seletoras e botoeiras;
· Pressostatos, termostatos etc;
· Motores e válvulas;
· Lâmpadas e sirenes;

⇒ Pergunta: quantos contatos de um mesmo relé posso usar


em meu diagrama?

Universidade Federal de Lavras Prof. Dimitri Campos Viana 16

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

• Diagramas para Lógicas de Controle Automático Anotações:

⇒ Note as linhas verticais:


· A linha da esquerda representa
a fase ou o pólo positivo do
circuito;
· A linha da direita representa o
neutro ou o pólo negativo;

⇒ Também são conhecidos como


“Diagrama Ladder”, pois seu
formato é muito semelhante
ao de uma escada.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 17

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

• Exemplo Anotações:
⇒ Um reservatório deve ser automatizado por meio de um
circuito de controle On/Off. Considere a vazão de entrada
constante e os materiais disponı́veis listados a seguir:
· LS1 – Chave de nı́vel baixo [NF]; · SS1 – Chave seletora;
· LS2 – Chave de nı́vel alto [NF]; · VS1 – Válvula de saı́da [NF];
· CR1 – Relé (com um contato NA e um contado NF);
· CR2 – Relé (com um contato NA e um contado NF);
· CR3 – Relé (com um contato NA e um contado NF).

Considerando que as chaves de


nı́vel e a válvula já estão instaladas,
faça um Diagrama Ladder usando
a chave SS1 para ativar e desativar
o sistema e os relés de controle de
forma que o nı́vel seja mantido
dentro da faixa desejada.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 18

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

• Solucionando... Anotações:

⇒ Tabela verdade com as ações que serão tomadas pelo sistema


em cada uma das possı́veis combinações das chaves de nı́vel.
Presença Presença
lı́quido lı́quido Ação
embaixo em cima

Não Não Fechar

Considerar
Não Sim como
impossı́vel
Manter
Sim Não último
estado

Sim Sim Abrir

Universidade Federal de Lavras Prof. Dimitri Campos Viana 19


GNE259 – Informática Industrial
Aula 01 – História da Informática Industrial
Relés Eletromecânicos

• Solucionando... Anotações:

⇒ Se as chaves de nı́vel são do tipo NF e a válvula também é NF,


temos:
Presença Presença
lı́quido lı́quido Ação
embaixo em cima

Não Não Fechar


(conduz corrente) (conduz corrente) (não energizar)
Considerar
Não Sim como
(conduz corrente) (corta corrente) impossı́vel
Manter
Sim Não último
(corta corrente) (conduz corrente) estado

Sim Sim Abrir


(corta corrente) (corta corrente) (energizar)

Universidade Federal de Lavras Prof. Dimitri Campos Viana 20

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

• Resposta Anotações:

⇒ De acordo com a lista de materiais e a descrição funcional


dadas no enunciado, o controle On/Off do reservatório
pode ser feito por meio do seguinte Diagrama Ladder:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 21

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

• Outras Questões Anotações:


⇒ Qual tensão foi utilizada para acionamento da válvula?
⇒ Como farı́amos se a válvula fosse 110 ou 220 VCA ?

Universidade Federal de Lavras Prof. Dimitri Campos Viana 22

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Relés Eletromecânicos

Anotações:
• Considerações Finais
⇒ Os relés eletromecânicos são utilizados a bastante tempo na
implementação de sistemas industriais de controle On/Off.
⇒ Entretanto, alguns pontos negativos sempre existiram:
· Grande complexidade da fiação em sistemas com muitos
relés (tanto para o projeto como para manutenção);
· Pouca flexibilidade para mudanças (qualquer modificação
implica refazer projetos, testes e documentação);
· Ocupam um grande espaço dentro dos painéis.
⇒ Assim, a partir de 1970, os relés vêm perdendo cada vez
mais espaço para os CLPs e outros tipos de controladores
microprocessados.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 23


GNE259 – Informática Industrial
Aula 01 – História da Informática Industrial
Relés Eletromecânicos

Anotações:
• Considerações Finais
⇒ No entanto, CLPs substituem apenas os Circuitos de Controle.
⇒ Os relés continuam sendo utilizados nos Circuitos de Potência.
· Se pensarmos no último cenário mostrado:

⇒ Além disso, devido ao baixo custo, relés ainda são usados em


alguns Circuitos de Controle simples, como controle de nı́vel.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 24

GNE259 – Informática Industrial


Aula 01 – História da Informática Industrial
Referências

Anotações:

• Referências dessa aula:


C. M. Franchi and V. L. A. De Camargo. Controladores Lógicos
Programáveis - Sistemas Discretos. Érica, 2 edition, 2009. ISBN
9788536501994.
J.A. Rehg and G.J. Sartori. Programmable logic controllers. Pearson
Prentice Hall, 2009.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 25


GNE259 – Informática Industrial
Aula 02 – Conceitos Fundamentais Sobre CLPs

Anotações:

Aula 2
Conceitos Fundamentais Sobre CLPs

Universidade Federal de Lavras Prof. Dimitri Campos Viana 26

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Introdução

• Caracterı́sticas Básicas Anotações:


⇒ São dispositivos microprocessados e programáveis.
⇒ Permitem a conexão de múltiplos sensores e atuadores.
· Ou seja, possibilitam monitorar e interferir no mundo real.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 27

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Introdução

• Hardware
Anotações:
⇒ A maioria dos CLPs possui hardware modular.
· Mais comuns: fonte, CPU e cartões de entradas e saı́das.
⇒ Além disso, existem módulos mais especializados, por exemplo:
· Módulos que permitem a comunicação por protocolos
não previstos originalmente (incluindo SMS e GPRS).

⇒ Isso acarreta em flexibilidade de configuração.


· Expansão do processo → Expansão do CLP (há limites).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 28

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Introdução

Anotações:
• Entradas e Saı́das (Input e Output, ou simplesmente I/O)
⇒ Os sinais de I/O podem ser binários ou decimais.
⇒ As denominações a seguir são bastante comuns:
· Entradas Digitais – Para sensores como chaves de nı́vel
e fluxostatos ou interfaces como botoeiras e seletores;
· Saı́das Digitais – Para atuadores como solenóides e
contatores ou interfaces como lâmpadas e sirenes;
· Entradas Analógicas – Para medidores contı́nuos como
de nı́vel e vazão ou interfaces como potenciômetros;
· Saı́das Analógicas – Para atuadores como válvulas
proporcionais e inversores de frequência ou interfaces
como displays do tipo bargraph;

Universidade Federal de Lavras Prof. Dimitri Campos Viana 29


GNE259 – Informática Industrial
Aula 02 – Conceitos Fundamentais Sobre CLPs
Introdução

• Programação e Configuração de Hardware Anotações:

⇒ Em geral, para se programar e configurar um CLP, utiliza-se


um PC, no qual se instala uma plataforma de desenvolvimento.
· Cada famı́lia de CLP tem a sua (gratuita ou não);
· Com ela, é possı́vel desenvolver programas e configurações
e descarregá-los no CLP (procedimento de download);
· Também permitem monitorar valores na memória do CLP;
· Além de mostrar, online, a execução do programa.
⇒ Exemplos:
· Pode-se ver que o valor dado por um sensor é 83 [o C].
· Pode-se monitorar uma lógica, em que um equipamento
é acionado somente se a condição “A” e a condição “B”
estiverem satisfeitas (e verificar qual dessas condições é
a responsável pelo equipamento estar parado).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 30

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Introdução

• Princı́pio de Funcionamento Anotações:

⇒ Basicamente, após alguns procedimentos de inicialização, como


testes de memória e de hardware, inicia-se o seguinte ciclo:
⇒ 1a Etapa: os valores fornecidos pela
eletrônica das entradas são coletados e
transferidos para uma área de memória.
⇒ 2a Etapa: consiste na interpretação das
diversas instruções do referido programa.
· Algumas instruções usam valores das
entradas, já disponı́veis na memória.
· Outras instruções produzem valores a
serem aplicados aos circuitos de saı́da.
· Porém, aqui, tais valores são apenas
armazenados em uma área de memória.
⇒ 3a Etapa: atualiza-se os circuitos de saı́da
com os valores produzidos na 2a etapa.
Universidade Federal de Lavras Prof. Dimitri Campos Viana 31

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Introdução

Anotações:
• Exemplo
⇒ Considere o programa a seguir e responda: quando tivermos
a situação IN P 1 = IN P 2 = 1, qual será o comportamento
do sinal elétrico na saı́da OU T 1?

· Trecho 1 (8ms)
· Se (IN P 1 = 1) → Set(OU T 1)
· Trecho 2 (4ms)
· Se (IN P 2 = 1) → Reset(OU T 1)
· Trecho 3 (8ms)

Universidade Federal de Lavras Prof. Dimitri Campos Viana 32

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Introdução

Anotações:
• Aplicações
⇒ Atualmente, pode-se dizer que os CLPs “movem” os processos
produtivos na maioria das indústrias do planeta.
⇒ Pode-se encontrá-los em plantas de pequeno à grande porte e
em diversos tipos de indústria, como:
· Têxtil · Farmacêutica
· Alimentı́cia · Metalúrgica e Siderúrgica
· Celulose · Quı́mica e Petroquı́mica
· Vidreira · etc

⇒ Quais os principais motivos para essa realidade?

Universidade Federal de Lavras Prof. Dimitri Campos Viana 33


GNE259 – Informática Industrial
Aula 02 – Conceitos Fundamentais Sobre CLPs
Introdução

Anotações:
• Vantagens
⇒ O vasto uso dos CLPs pode ser explicado pelas diversas
vantagens oferecidas por esses equipamentos, dentre elas:
· São relativamente pequenos e consomem pouca energia;
· Ótima confiabilidade (poucos defeitos);
· São expansı́veis, permitindo a inclusão de novos módulos;
· Fácil reprogramação (reaproveitamento de hardware);
· Comunicam via rede com diversos outros dispositivos;
· Pode-se fazer alterações no programa sem interromper
o processo produtivo;
· Desenvolvedores podem acumular trechos de programas
e formar uma biblioteca.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 34

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Uso da Memória

Anotações:

• Tipos Básicos de Memória


⇒ Memória não volátil.
· Capaz de manter informações mesmo na ausência
de alimentação elétrica.
· Armazena alguns blocos funcionais do S.O. do CLP.
· Armazena o programa desenvolvido pelo usuário.
⇒ Memória volátil (RAM);
· Também é compartilhada entre o S.O. e o usuário.
· Conforme mostrado mais adiante.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 35

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Uso da Memória

• Memória Não Volátil Anotações:

⇒ Os primeiros CLPs usavam EPROMs.


· Erasable Programmable Read-Only Memory.
· Podiam ser apagadas apenas com radiação ultravioleta.

⇒ Uma evolução foram as EEPROMs.


· Electrically Erasable Programmable Read-Only Memory.
⇒ Atualmente, usa-se cartões de memória FLASH.
· Similares aos usados em câmeras fotográficas.
· Ao se usar memória FLASH, pode-se atualizar firmware.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 36

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Uso da Memória

Anotações:

• Memória RAM
⇒ Como mencionado anteriormente, o uso é compartilhado:
· Algumas áreas são exclusivamente utilizadas pelo S.O.
· Outras são exclusivas para o armazenamento de valores
produzidos e consultados pelo programa do usuário.
⇒ Existem ainda áreas de interação entre os dois:
· O S.O. disponibiliza valores para o programa do usuário.
· Vice–versa.
⇒ Veja o exemplo a seguir...

Universidade Federal de Lavras Prof. Dimitri Campos Viana 37


GNE259 – Informática Industrial
Aula 02 – Conceitos Fundamentais Sobre CLPs
Uso da Memória

Anotações:

• Exemplo
⇒ Algumas subdivisões da memória RAM dos CLPs S7–1200,
fabricado pela Siemens, são identificas como:
· I – Entradas (digitais e analógicas);
· Q – Saı́das (digitais e analógicas);
· M – Exclusiva do usuário.
⇒ Pergunta: em quais áreas de memória ocorrem as interações
entre S.O. e programa do usuário citadas no slide anterior?
⇒ Dica: lembre-se do ciclo de funcionamento dos CLPs.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 38

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Uso da Memória

• Acesso a Valores Binários


Anotações:
⇒ Em geral, deve-se especificar um endereço que inclua:
· A área de memória a ser acessada;
· O número do byte em que o bit está contido;
· O número do próprio bit.
⇒ Exemplo para CLPs da famı́lia S7–1200:

⇒ Pergunta: supondo que um CLP dessa famı́lia tenha 23 saı́das


digitais, qual é o endereço da última?
Universidade Federal de Lavras Prof. Dimitri Campos Viana 39

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Uso da Memória

• Valores Decimais Anotações:

⇒ O acesso à bytes e words, permite manipular valores inteiros.


⇒ E o acesso a double words, além de permitir manipular valores
inteiros, também permite a utilização números reais.

Formato
Unsigned Signed
Byte 0 a 255 −128 a 127
Word 0 a 65.535 −32.768 a 32.767
Double Word 0 a 4.294.967.295 −2.147.483.648 a 2.147.483.647

Formato
Floating Point
−3, 402823 · 10 a −1, 175495 · 10−38
38
Double Word
+1, 175495 · 10−38 a +3, 402823 · 1038

Universidade Federal de Lavras Prof. Dimitri Campos Viana 40

GNE259 – Informática Industrial


Aula 02 – Conceitos Fundamentais Sobre CLPs
Uso da Memória

• Acesso a Valores Decimais Anotações:

⇒ Em geral, a nomenclatura do endereço deve designar:


· A área de memória a ser acessada;
· O tipo de dado (byte, word ou double word);
· O byte inicial da posição a ser acessada.
⇒ Exemplo para CLPs da famı́lia S7–1200:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 41


GNE259 – Informática Industrial
Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais

Anotações:

Aula 3
Programação com Diagrama Ladder:
Instruções Binárias e Decimais

Universidade Federal de Lavras Prof. Dimitri Campos Viana 42

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Revisão

Anotações:
• Relés Eletromecânicos (e uma Possı́vel Forma de Representação)
⇒ O sı́mbolo para a bobina é um cı́rculo.
· A letra “c” (de coil) pode estar presente ou não.
⇒ O sı́mbolo para o contato NA são duas linhas paralelas.
· Indicando um circuito aberto.
⇒ Para o contato NF, acrescenta-se a linha transversal.
· Indicando o fechamento dos terminais.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 43

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Revisão

• Diagrama Ladder (de Componentes Elétricos) Anotações:


⇒ Sı́mbolos padronizados são usados para
representar diferentes elementos, como:
· Bobinas e contatos dos relés;
· Chaves seletoras e botoeiras;
· Pressostatos, termostatos etc;
· Motores e válvulas;
· Lâmpadas e sirenes;
⇒ Note as linhas verticais:
· A linha da esquerda representa a fase ou
o pólo positivo do circuito;
· A linha da direita representa o neutro ou
o pólo negativo;
⇒ O diagrama é chamado “Ladder” pois sua forma lembra uma escada.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 44

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Revisão

Anotações:

• Desvantagens (Motivações para o Uso de CLPs)


⇒ Sistemas de automação baseados em relés estão sujeitos a:
· Número reduzido de contatos por relé;
· Ocupação de um grande espaço fı́sico;
· Grande quantidade de cabos elétricos;
· Difı́cil manutenção (apenas monitorações pontuais);
· Documentação trabalhosa (atualização dos diagramas).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 45


GNE259 – Informática Industrial
Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Introdução

Anotações:

• Diagrama Ladder como Linguagem de Programação


⇒ Os CLPs foram criados para substituir lógicas implementadas
com relés.
⇒ Desejava-se que a experiência dos técnicos fosse aproveitada.
⇒ O Diagrama Ladder foi adaptado para o mundo virtual.
· Ou seja, baseia-se na representação virtual dos relés.
· Assim, os elementos básicos são bobinas e contatos.
⇒ Foi a primeira linguagem disponibilizada pelos fabricantes.
· Difundiu-se bastante;
· É uma das mais utilizadas atualmente.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 46

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Introdução

• Elementos Básicos da Linguagem


⇒ Uma bobina pode modificar o nı́vel lógico de uma posição de memória, Anotações:
transferindo o resultado da lógica que a precede para o bit associado a ela.
· Se Q0.5 estiver associada a uma bobina, esta saı́da será
ativada quando a lógica que precede a bobina for verdadeira.
· Se a lógica for falsa, essa saı́da será desativada.
⇒ Um contato é usado para testar o nı́vel lógico de uma posição de memória.
· A condição gerada pelo uso de um contato NA é satisfeita quando
o bit associado ao contato está em nı́vel lógico 1.
· A condição gerada pelo uso de um contato NF é verdadeira quando
o bit associado ao contato está em nı́vel lógico 0.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 47

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Introdução

Anotações:

• Vantagens
⇒ O uso de um Diagrama Ladder virtual possibilita:
· Número praticamente irrestrito de contatos por relé;
· Ocupação de um pequeno espaço fı́sico;
· Diminuição dos cabos elétricos (as lógicas são virtuais);
· Fácil manutenção (monitorações amplas);
· Documentação simplificada (o programa é a própria documentação);
· Uso de outros elementos, além de bobinas e contatos.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 48

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções Set e Reset

Anotações:
• Caracterı́sticas
⇒ Uma bobina de Reset leva o bit associado a ela a nı́vel lógico 0
sempre que a lógica que a precede for verdadeira.
⇒ Para que esse bit seja levado a nı́vel lógico 1, outra instrução, como
uma bobina de Set, deve ser utilizada em outra parte do programa.
⇒ Os sı́mbolos para essas bobinas aparecem no exemplo a seguir.
· Controle de nı́vel com válvula de saı́da:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 49


GNE259 – Informática Industrial
Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções Set e Reset

Anotações:
• Analogia com Linguagens Textuais

· Bobina de Set:
if I0.0 = 1 then
Q0.0 = 1;

· Bobina de Reset:
if I0.0 = 1 then
Q0.0 = 0;

· Bobina Simples:
if I0.0 = 1 then
Q0.0 = 1;
else
Q0.0 = 0;

Universidade Federal de Lavras Prof. Dimitri Campos Viana 50

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções Set e Reset

Anotações:
• Outro Exemplo Simples
⇒ O motor M1 deve ser ligado pelo botão L1 e desligado por D1:
· Note que os endereços são simbólicos (e não posições de memória);
· Usa-se uma tabela para associar os sı́mbolos aos endereços.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 51

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções de Detecção de Borda

• Conceitos Anotações:
⇒ Algumas vezes, além de se saber o estado de uma variável, é importante
detectar o instante em que ela muda de valor.
⇒ A detecção desse instante de comutação é denominada detecção de borda.
⇒ Borda de Subida:
· Ocorre quando a variável comuta de nı́vel baixo para nı́vel alto.
⇒ Borda de Descida:
· Ocorre quando a variável comuta de nı́vel alto para nı́vel baixo.

⇒ Observe que o evento gerado é um


impulso.
⇒ Ou seja, só está disponı́vel por um
único ciclo de varredura.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 52

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções de Detecção de Borda

• Tipos de Instruções Anotações:


⇒ Geralmente, existem duas formas de detectar bordas:
· Com contatos ou com bobinas.

⇒ Simbologia adotada por alguns fabricantes:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 53


GNE259 – Informática Industrial
Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções de Detecção de Borda

Anotações:
• Exemplo
⇒ O motor M1 deve ser ligado e desligado pelo botão B1:
· Se estiver desligado, um toque deverá ligar;
· Se estiver ligado, um toque deverá desligar.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 54

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções Decimais

• Instrução “Move” Anotações:

⇒ Apenas transfere o valor contido em sua entrada para a posição


de memória indicada no endereço associado à sua saı́da.
· O valor em sua entrada pode ser uma constante
ou determinado por um endereço de memória.
⇒ Em alguns CLPs, existe uma instrução para cada tipo de dado:

⇒ Em outros, existe uma instrução genérica:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 55

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções Decimais

Anotações:
• Comparadores
⇒ Dois valores são parametrizados na entrada.
· Esses valores podem estar contidos em duas posições de
memória ou um deles pode ser apenas uma constante.
⇒ Se o resultado da comparação for verdadeiro, a saı́da é ativada.
⇒ Em geral, existe um conjunto de instruções para cada tipo de
dado (e suas representações gráficas podem variar):

Universidade Federal de Lavras Prof. Dimitri Campos Viana 56

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções Decimais

Anotações:
• Reflexão sobre Comparadores e Diagrama Ladder
⇒ Normalmente, os 6 tipos usuais de comparação estão
disponı́veis:

A == B A>B A >= B
A <> B A<B A <= B

⇒ Mas o que você faria, se em um determinado modelo de CLP,


a instrução para verificar se um valor é diferente de outro
não estiver disponı́vel?

Universidade Federal de Lavras Prof. Dimitri Campos Viana 57


GNE259 – Informática Industrial
Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções Decimais

Anotações:
• Conversores de Tipos de Dados
⇒ O bloco mostrado abaixo é o B I (Byte–To–Integer).
· O valor contido no byte especificado na entrada
é transferido para a word especificada na saı́da.
⇒ Existem diversos blocos similares, por exemplo:
Byte–To–Integer Integer–To–Byte
Integer–To–Double Double–To–Integer
Double–To–Real Real–To–Double (ROUND)

Universidade Federal de Lavras Prof. Dimitri Campos Viana 58

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções Decimais

• Operações Matemáticas Fundamentais Anotações:


⇒ Os 2 valores (constantes ou contidos em memória) nas
entradas do bloco são operados.
⇒ A posição de memória associada à saı́da recebe o resultado.
⇒ Para cada tipo de dado, há um conjunto de instruções.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 59

GNE259 – Informática Industrial


Aula 03 – Programação com Diagrama Ladder: Instruções Binárias e Decimais
Instruções Decimais

Anotações:

• Operações Matemáticas com Números Reais


⇒ Além das operações fundamentais, outras funções estão
disponı́veis, por exemplo:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 60


GNE259 – Informática Industrial
Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções

Anotações:

Aula 4
Programação com Diagrama Ladder:
Sub-Rotinas e Funções

Universidade Federal de Lavras Prof. Dimitri Campos Viana 61

GNE259 – Informática Industrial


Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Revisão

Anotações:
• Na Aula Passada...
⇒ Instruções binárias:
· Bobinas;
· Contatos;
· Instruções “Set” e “Reset”;
· Detecção de borda.
⇒ Instruções para manipulação de valores decimais;
· Move;
· Comparadores;
· Conversores de tipos de dados;
· Operações matemáticas.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 62

GNE259 – Informática Industrial


Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Introdução

Anotações:

• Na Aula de Hoje...
⇒ Técnicas para estruturação de programas:
· Subrotinas;
· Funções.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 63

GNE259 – Informática Industrial


Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Estruturação do Programa

• Bloco Principal Anotações:


⇒ Um programa de CLP baseia-se em um bloco principal.
· O sistema operacional executa-o ciclicamente.
⇒ Usuário pode usar apenas esse bloco.
· Todas as linhas concentradas em um só lugar.
· Mas, se o programa cresce, os inconvenientes aumentam.

⇒ O ideal é estruturar o programa com subrotinas e funções.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 64


GNE259 – Informática Industrial
Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Estruturação do Programa

Anotações:
• Subrotinas
⇒ Destinam-se à organização do programa.
⇒ Podem ser chamadas:
· A partir do programa do usuário (hierarquicamente);

· A partir de eventos (cı́clicos ou acı́clicos).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 65

GNE259 – Informática Industrial


Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Estruturação do Programa

• Subrotinas (chamadas a partir do programa do usuário) Anotações:

⇒ Essas chamadas podem ser condicionais ou incondicionais.

⇒ Esse é um dos motivos que alteram o tempo de ciclo do CLP.


· Isso prejudica, por exemplo, os blocos PID.

p(k) = KP · e(k)
 
e(k)+e(k−1)
i(k) = i(k − 1) + KI · 2
· Ts
e(k)−e(k−1)
d(k) = TD · Ts

Universidade Federal de Lavras Prof. Dimitri Campos Viana 66

GNE259 – Informática Industrial


Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Estruturação do Programa

Anotações:

• Subrotinas (chamadas a partir de eventos)


⇒ Esses eventos podem ser:
· Cı́clico (com perı́odo configurável e fixo);
· Inicialização do CLP;
· Ativação de entradas digitais;
· Limite para o tempo de ciclo do CLP excedido;
· Falha em um módulo de hardware;
· Outro...
⇒ Reflexão: para tipo de evento acima, cite uma situação em
que é útil disparar a execução de uma subrotina.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 67

GNE259 – Informática Industrial


Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Estruturação do Programa

• Subrotinas (memória interna) Anotações:


⇒ Além das áreas de memória convencionais (I, Q, M etc),
o programador pode contar com as áreas temporárias de
cada subrotina.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 68


GNE259 – Informática Industrial
Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Estruturação do Programa

• Funções Anotações:
⇒ Destinam-se à organização e encapsulamento de código.
⇒ A principal diferença em relação às subrotinas é que, além
das variáveis temporárias, pode-se declarar variáveis:
· De entrada;
· De saı́da;
· De entrada/saı́da.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 69

GNE259 – Informática Industrial


Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Estruturação do Programa

Anotações:
• Funções
⇒ Podem ser chamadas a partir:
· Do bloco principal;
· De subrotinas;
· De outras funções.
⇒ Devido aos parâmetros de entrada e saı́da, não podem ser
chamadas diretamente a partir de eventos.
· Mas um evento pode disparar uma subrotina que,
por sua vez, pode chamar uma ou mais funções.
⇒ Geralmente, a principal classificação é quanto a origem:
· Criadas pelo fabricante do CLP;
· Criadas pelo usuário.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 70

GNE259 – Informática Industrial


Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Estruturação do Programa

• Funções do Fabricante Anotações:

⇒ As plataformas de desenvolvimento de muitos CLPs incluem


bibliotecas de blocos pré–programados que executam tarefas
mais complexas, por exemplo:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 71

GNE259 – Informática Industrial


Aula 04 – Programação com Diagrama Ladder: Sub-Rotinas e Funções
Estruturação do Programa

• Funções do Usuário
Anotações:
⇒ Outro recurso interessante é que o usuário também pode criar
suas funções. Ou seja, é possı́vel encapsular funções como:

⇒ Essas funções podem ser codificadas em qualquer linguagem e


chamadas em qualquer linguagem.
Universidade Federal de Lavras Prof. Dimitri Campos Viana 72
GNE259 – Informática Industrial
Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores

Anotações:

Aula 5
Programação com Diagrama Ladder:
Contadores e Temporizadores

Universidade Federal de Lavras Prof. Dimitri Campos Viana 73

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Contadores

Anotações:
• Conceitos
⇒ Contam os pulsos que ocorrem em suas respectivas entradas.
⇒ Podem ser dos seguintes tipos:
· Crescente.
· Decrescente.
· Crescente/Decrescente.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 74

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Contadores

Anotações:

• Contador Crescente (CTU – Count Up)


⇒ Incrementa seu registro a cada transição positiva na entrada.
⇒ Quando o valor do registro (CV) for maior ou igual ao valor de
preset (PV), o sinal de saı́da associado ao contador torna-se 1.
⇒ A entrada reset (R) leva o registro (CV) à 0.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 75

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Contadores

Anotações:

• Contador Decrescente (CTD – Count Down)


⇒ Decrementa seu registro a cada transição positiva na entrada.
⇒ Quando o valor do registro (CV) for igual a zero, o sinal de
saı́da associado ao contador torna-se 1.
⇒ A entrada load (LD) leva o registro ao valor de preset (PV).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 76


GNE259 – Informática Industrial
Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Contadores

• Contador Crescente/Decrescente (CTUD – Count Up Down) Anotações:

⇒ Incrementa o registro em transições positivas na entrada CU.


⇒ Decrementa o registro em transições positivas na entrada CD.
⇒ Quando CV > PV, a saı́da “QU” torna-se 1.
⇒ Quando CV = 0, a saı́da “QD” torna-se 1.
⇒ A entrada reset (R) leva o registro (CV) à 0.
⇒ A entrada load (LD) leva o registro ao valor de preset (PV).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 77

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Contadores

• Exemplo Anotações:
⇒ Uma bobinadeira deve preencher carretéis com 150 voltas.
· O operador inicia o processo por meio da botoeira “Liga”;
· O sensor emite um pulso elétrico quando detecta a haste;
· Ao final, o motor deve desligar automaticamente.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 78

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Temporizadores

Anotações:
• Conceitos
⇒ Surgiram para substituir os temporizadores eletromecânicos.
⇒ Cada instrução possui dois registros principais:
· Tempo pré-selecionado (PT): a ser definido pelo usuário.
· Tempo decorrido (ET): inicia-se após a habilitação.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 79

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Temporizadores

Anotações:
• Temporizador com Retardo na Energização (TON)
⇒ Quando a entrada é ativada, nada acontece na saı́da,
mas inicia-se a contagem de tempo.
⇒ Quando o tempo decorrido (ET) for superior ao tempo
pré-selecionado (PT), a saı́da é ativada.
⇒ Após esse momento, a saı́da continuará ativada até que
a entrada seja desativada.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 80


GNE259 – Informática Industrial
Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Temporizadores

Anotações:

• Exemplo de Aplicação do TON


⇒ Partida Y ∆ de motores.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 81

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Temporizadores

Anotações:

• Temporizador com Retardo no Desligamento (TOFF)


⇒ Enquanto a entrada estiver ativada, a saı́da também estará.
⇒ Quando a entrada é desativada, nada acontece na saı́da,
mas inicia-se a contagem de tempo.
⇒ Quando o tempo decorrido (ET) for superior ao tempo
pré-selecionado (PT), a saı́da é desativada.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 82

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Temporizadores

Anotações:
• Exemplo de Aplicação
⇒ Desligamento sequencial de motores.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 83

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Temporizadores

Anotações:
• Exercı́cio
⇒ Implemente uma lógica com as seguintes caracterı́sticas:
· Uma chave seletora conectada à entrada I0.0 ativa
e desativa a lógica;
· Quando a lógica está desativada, a posição de memória
M 0.0 deve permanecer em nı́vel lógico 0;
· Quando a lógica está ativada, M 0.0 deve ser um sinal
cı́clico, permanecendo 3s em 0 e 6s em 1.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 84


GNE259 – Informática Industrial
Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Temporizadores

• Resposta Anotações:

⇒ Uma possı́vel solução é:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 85

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Temporizadores

• Exercı́cio Anotações:

⇒ Projete um Diagrama Ladder para a automação de um motor:


· Botões conectados às entradas I0.0 e I0.1 ligam e
desligam o motor, respectivamente;
· A entrada I0.2 está conectada a um termostato e o motor
é acionado por um contator conectado à saı́da Q0.0;
· Se aquecido, o motor deverá ser desligado e permanecer
assim por 3 minutos.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 86

GNE259 – Informática Industrial


Aula 05 – Programação com Diagrama Ladder: Contadores e Temporizadores
Temporizadores

• Resposta Anotações:

⇒ Duas possı́veis soluções são:

⇒ Pergunta: qual é a diferença entre elas?

Universidade Federal de Lavras Prof. Dimitri Campos Viana 87


GNE259 – Informática Industrial
Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios

Anotações:

Aula 6
Conceitos Fundamentais Sobre
Sistemas Supervisórios

Universidade Federal de Lavras Prof. Dimitri Campos Viana 88

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Breve História dos Sistemas de Automação

• Lógicas de Controle Automático (No Passado) Anotações:

⇒ Componentes eletromecânicos:
· Contatores;
· Relés temporizados;
· Dispositivos de contagem;
· E outros...

Universidade Federal de Lavras Prof. Dimitri Campos Viana 89

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Breve História dos Sistemas de Automação

• Interfaces de Operação (No Passado) Anotações:

⇒ Componentes elétricos:
· Botoeiras;
· Lâmpadas;
· Potenciômetros;
· Displays de 7 segmentos;
· E outros...

Universidade Federal de Lavras Prof. Dimitri Campos Viana 90

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Breve História dos Sistemas de Automação

• Lógicas de Controle Automático (Evolução) Anotações:

⇒ Controladores Lógico–Programáveis:
· Processam dados obtidos no
mundo real (entradas e rede);
· Interferem no mundo real via
atuadores (saı́das e rede);
· Organizam projetos e flexibilizam
alterações de grande porte.
· Pode-se dizer que “virtualizam”
componentes elétricos como
fios, relés e temporizadores.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 91


GNE259 – Informática Industrial
Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Breve História dos Sistemas de Automação

• Interfaces de Operação (Evolução) Anotações:

⇒ Sistemas de Supervisão:
· Em geral, baseiam-se em PCs
com hardware convencional;
· Em geral, são desenvolvidos por
meio de plataformas especı́ficas
(WinCC, RSView, Elipse, etc);
· Comunicam-se via rede com os
CLPs (em geral, via TCP/IP).
· Pode-se dizer que “virtualizam”
componentes elétricos como
botoeiras, lâmpadas e sirenes.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 92

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Breve História dos Sistemas de Automação

• Sistemas de Automação (Panorama Atual)


Anotações:
⇒ Sensores contı́nuos permitem
medições precisas e graduais;

⇒ Acionamentos permitem o
controle de velocidade
de motores (CA e CC);

⇒ Juntos, permitem o uso de


algoritmos de controle para
manter grandezas fı́sicas em
patamares desejados;

⇒ Comunicação via rede entre


CLP e dispositivos de campo:
· Sensores e atuadores;
· I/O Remoto e outros.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 93

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Sistemas de Supervisão

Anotações:
• Contextualização
⇒ Os Sistemas de Supervisão pertencem ao grupo das
Interfaces Homem-Máquina (IHMs), juntamente com:
· Botoeiras, lâmpadas, sirenes etc (interfaces elétricas);
· Painéis Eletrônicos de Operação.
⇒ As IHMs, por sua vez, fazem parte da maioria dos
Sistemas de Automação, juntamente com:
· Disjuntores e contatores;
· CLPs e Acionamentos (CA e CC);
· Sensores e Atuadores;
· Redes de comunicação.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 94

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Sistemas de Supervisão

• Contextualizando Graficamente...
Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 95


GNE259 – Informática Industrial
Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Sistemas de Supervisão

• Motivação para o Estudo


Anotações:
⇒ Em condições ideais, os Sistemas de Automação poderiam
funcionar sem interfaces. Na prática, elas são indispensáveis.

⇒ Um exemplo simples: tanque vazio


e bomba parada...
· Falha na bomba?
· Falha na operação?

⇒ Se os mantenedores tiverem que


que diagnosticar problemas via CLP,
o tempo de parada será maior.

⇒ Em plantas maiores, a falha de um


elemento possivelmente irá parar
todo o processo produtivo, visto que:
· Vários equipamentos dependem
uns dos outros.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 96

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Funcionalidades Básicas

• Supervisão de Sinais Binários (Estados, Alarmes e Intertravamentos)


Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 97

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Funcionalidades Básicas

• Supervisão de Sinais Decimais (Medições e Contagens)


Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 98

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Funcionalidades Básicas

• Controle via Sinais Binários (Comandos)


Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 99


GNE259 – Informática Industrial
Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Funcionalidades Básicas

• Controle via Sinais Decimais (Parâmetros)


Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 100

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Funcionalidades Avançadas

Anotações:

• Histórico de Sinais Binários


⇒ Alarmes (sobrecarga na bomba, nı́vel baixo no tanque):
· Horários de inı́cio, reconhecimento e fim;
· Descrição do alarme e elemento de origem;
· Nome do operador do sistema.
⇒ Eventos (bomba desligada, modo manual selecionado):
· Horário de inı́cio (e opcionalmente de fim);
· Descrição do evento e elemento de origem;
· Nome do operador do sistema.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 101

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Funcionalidades Avançadas

• Exemplo de uma Tela de Alarmes e Eventos


Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 102

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Funcionalidades Avançadas

Anotações:

• Histórico de Sinais Decimais


⇒ Gráficos de tendência (nı́vel do tanque, corrente do motor):
· Geralmente utilizados quando os registros são cı́clicos;
· Valores são amostrados e registrados c\ marca temporal.
⇒ Relatórios (peso dos insumos enfornados em um Alto-Forno):
· Geralmente utilizados quando os registros são acı́clicos;
· Vários valores são registrados a partir de um evento;
· Apenas uma marca temporal (para o evento) é registrada.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 103


GNE259 – Informática Industrial
Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Funcionalidades Avançadas

• Exemplo de uma Tela de Gráficos de Tendência


Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 104

GNE259 – Informática Industrial


Aula 06 – Conceitos Fundamentais Sobre Sistemas Supervisórios
Funcionalidades Avançadas

• Exemplo de uma Tela de Relatórios


Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 105


GNE259 – Informática Industrial
Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC

Anotações:

Aula 7
Explorando uma Plataforma de
Desenvolvimento: WinCC

Universidade Federal de Lavras Prof. Dimitri Campos Viana 106

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC

Anotações:

• AVISO
⇒ Os slides desta aula destinam-se, basicamente, a guiar o
professor durante a apresentação dos módulos da plataforma
WinCC.
· O objetivo é utilizar um notebook em que esta plataforma
está instalada e fazer uma apresentação interativa,
explorando cada módulo ao longo da aula;
· Dessa forma, o posterior estudo desses slides fará pouco
sentido e os alunos deverão se ater, neste caso, ao que
aprenderam nas aulas práticas com o tutorial sobre o
WinCC (partes 1 e 2).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 107

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Introdução

• Inı́cio do Desenvolvimento de um Sistema de Supervisão Anotações:

⇒ Objetivo básico:
· Criar uma interface de operação para o que foi
programado no(s) CLP(s)
⇒ Requisitos Mı́nimos para começar:
·“Mapa de memória” do(s) CLP(s) (estrutura de dados)
· Conhecimento básico do processo a ser supervisionado
· Conhecimento básico da plataforma de desenvolvimento
⇒ Algumas plataformas de desenvolvimento:
· Elipse
· iFix
· RSView
· WinCC

Universidade Federal de Lavras Prof. Dimitri Campos Viana 108

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Introdução

• WinCC Anotações:
⇒ Fabricante: Siemens (lançado em 1996)
⇒ Softwares em que se baseia: Windows e Microsoft SQL Server
⇒ Linguagens de programação disponı́veis: VBS e ANSI C
⇒ Estrutura Modular:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 109


GNE259 – Informática Industrial
Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Módulo de Gerenciamento de Tags

• Estrutura Hierárquica Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 110

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Módulo de Gerenciamento de Tags

Anotações:
• Uma Consideração Importante Sobre o Cadastro de Tags
⇒ Após cadastrados, os tags podem ser usados indistintamente
nos demais módulos do WinCC, isto é:
· Da mesma forma que um campo para entrada de valores
pode ser associado a um tag de comunicação para envio
de um setpoint a um CLP, ele também pode ser associado
a um tag interno para que o usuário determine o horizonte
de tempo de um gráfico de tendência.
· Da mesma forma que um script que roda em segundo
plano monitora o nı́vel lógico de um tag associado a um
CLP da Siemens, ele também pode monitorar um tag
associado a um CLP da Rockwell, por exemplo, por meio
da expressão F lag = GetT agBit(“N omeDoT ag 00 ).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 111

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Módulo de Desenvolvimento de Telas

• Objetos Gráficos Anotações:


⇒ Tipos: linha, polı́gono, botões, campos de texto, campos de
entrada e saı́da de dados, container para figuras importadas,
janela de alarmes, janela de plotagem de gráficos, etc
⇒ Conjunto de Atributos:
· Categorias: geometria, cor, fonte, estilo, etc
· Valores Estáticos (obs: existem “atalhos” para alterá-los)
· Valores Dinâmicos: tag, VBS, C e dynamic dialog

Universidade Federal de Lavras Prof. Dimitri Campos Viana 112

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Módulo de Desenvolvimento de Telas

Anotações:
• Trigger de Animações
⇒ Define como a condição de animação será avaliada

Universidade Federal de Lavras Prof. Dimitri Campos Viana 113


GNE259 – Informática Industrial
Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Módulo de Desenvolvimento de Telas

Anotações:

• Eventos
⇒ Cada objeto gráfico também possui um conjunto de eventos
⇒ Categorias: mouse, keyboard, foco, mudança de propriedade
⇒ Como “aproveitar” esses eventos: VBS, C e Direct connection

Universidade Federal de Lavras Prof. Dimitri Campos Viana 114

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Módulo de Scripts Globais

• Estruturação do WinCC Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 115

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Registro e Apresentação de Alarmes

• Cadastro de Mensagens (Módulo Alarm Logging) Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 116

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Registro e Apresentação de Alarmes

Anotações:

• Entendendo o Fluxo de uma Mensagem de Alarme

Universidade Federal de Lavras Prof. Dimitri Campos Viana 117


GNE259 – Informática Industrial
Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Registro e Apresentação de Valores Decimais

• Configuração de Armazenamento (Módulo Tag Logging) Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 118

GNE259 – Informática Industrial


Aula 07 – Explorando uma Plataforma de Desenvolvimento: WinCC
Administração de Usuários, Senhas e Permissões

Anotações:
• Módulo User Administrator

Universidade Federal de Lavras Prof. Dimitri Campos Viana 119


GNE259 – Informática Industrial
Aula 08 – Conceitos Fundamentais sobre OPC

Anotações:

Aula 8
Conceitos Fundamentais sobre OPC

Universidade Federal de Lavras Prof. Dimitri Campos Viana 120

GNE259 – Informática Industrial


Aula 08 – Conceitos Fundamentais sobre OPC
Curiosidade

• Esperanto Anotações:
⇒ Idioma artificial, cuja versão inicial foi
publicada em 1887.
⇒ Projetado para ser:
· Uma lı́ngua de fácil aprendizagem;
· O 2o idioma de todas as nações
(a ideia não era substituir);

⇒ O idealizador foi o médico judeu Ludwik Lejzer Zamenhof:


· Bialystok (hoje na Polônia, na época Império Russo);
· Região de muitos povos e muitas lı́nguas.
⇒ Dentre as lı́nguas planejadas, é a mais popular.
⇒ Porém, estima-se no máximo 2 milhões de pessoas fluentes.
· Belo Horizonte possui 2,5 milhões de habitantes.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 121

GNE259 – Informática Industrial


Aula 08 – Conceitos Fundamentais sobre OPC
Introdução

• Interfaces de Operação Anotações:

⇒ Não é comum, mas pode-se encontrar Sistemas de Automação


sem Sistemas Supervisórios.

⇒ A interface de operação pode se dar por elementos elétricos


ou por painéis eletrônicos.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 122

GNE259 – Informática Industrial


Aula 08 – Conceitos Fundamentais sobre OPC
Introdução

• Sistemas Supervisórios
Anotações:
⇒ No entanto, é difı́cil pensar em um Sistema Supervisório que
não se comunique com um ou mais CLPs.

⇒ Geralmente, o Sistema Supervisório inicia a comunicação, com


requisições do tipo:
· Me envie o valor contido na posição de memória X;
· Escreva o valor W na posição de memória Y .
⇒ O CLP apenas responde à essas requisições.
Universidade Federal de Lavras Prof. Dimitri Campos Viana 123
GNE259 – Informática Industrial
Aula 08 – Conceitos Fundamentais sobre OPC
Comunicação Direta

• Fundamentos Anotações:
⇒ A comunicação entre Sistemas Supervisórios e CLPs pode ser
exemplificada por meio da seguinte analogia:

⇒ Pergunta: se um Sistema Supervisório e um CLP possuem


capacidade de comunicação via TCP/IP, eles irão se comunicar?

Universidade Federal de Lavras Prof. Dimitri Campos Viana 124

GNE259 – Informática Industrial


Aula 08 – Conceitos Fundamentais sobre OPC
Comunicação Direta

• Implicações Anotações:

⇒ Até o princı́pio da década de 1990, o cenário era o seguinte:

⇒ E o dilema dos fabricantes era: incluo um driver no meu


Supervisório para comunicação com CLP de outro fabricante?
· Meu Sistema Supervisório ficará mais flexı́vel;
· O CLP do outro fabricante ficará mais popular.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 125

GNE259 – Informática Industrial


Aula 08 – Conceitos Fundamentais sobre OPC
Comunicação via OPC

Anotações:

• Surgimento do OPC (Open Platform Communications)


⇒ Nos meados da década de 1990, a tecnologia OPC começou a
se difundir (e também podemos estudá-la com uma analogia).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 126

GNE259 – Informática Industrial


Aula 08 – Conceitos Fundamentais sobre OPC
Comunicação via OPC

Anotações:

• Dois Novos Dilemas para os Fabricantes


⇒ Incluo a capacidade de ser OPC–Client no meu Supervisório?
· Meu Sistema Supervisório ficará mais flexı́vel;
· As vendas do meu CLP podem cair, pois CLPs de outros
fabricantes poderão ser usados com meu Supervisório.
⇒ Disponibilizo no mercado um OPC–Server para o meu CLP?
· Meu CLP ficará mais popular;
· As vendas do meu Supervisório podem cair, pois Sistemas
de outros fabricantes poderão ser usados com meu CLP.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 127


GNE259 – Informática Industrial
Aula 08 – Conceitos Fundamentais sobre OPC
Comunicação via OPC

• Cenário Atual Anotações:


⇒ Ao contrário do esperanto, o OPC tornou-se bastante popular.
⇒ Atualmente, a maioria dos fabricantes:
· Comercializa OPC–Servers para os seus CLPs;
· Inclui drivers em seus Sistemas Supervisórios para que eles
possam ser OPC–Clients.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 128

GNE259 – Informática Industrial


Aula 08 – Conceitos Fundamentais sobre OPC
Considerações Finais

Anotações:
• Um OPC–Server para Vários CLPs
⇒ Existem empresas que se especializaram em desenvolver
OPC–Servers “Poliglotas”.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 129

GNE259 – Informática Industrial


Aula 08 – Conceitos Fundamentais sobre OPC
Considerações Finais

Anotações:

• Outros Tipos de Cliente


⇒ Nem todo OPC–Client precisa ser um Supervisório comercial.
⇒ Pode-se desenvolver aplicações em VB, Delphi, Java etc
(ou mesmo em Excel) que, utilizando a capacidade de ser
OPC–Client, troquem dados com CLPs.
⇒ As principais utilidades são:
· Apresentação e armazenamento de dados gerenciais;
· Supervisão e Controle de plantas simples, nas quais não
compensa investir em um Sistema Supervisório comercial.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 130


GNE259 – Informática Industrial
Aula 09 – Programação com Diagrama de Blocos de Funções

Anotações:

Aula 9
Programação com
Diagrama de Blocos de Funções

Universidade Federal de Lavras Prof. Dimitri Campos Viana 131

GNE259 – Informática Industrial


Aula 09 – Programação com Diagrama de Blocos de Funções
Introdução

Anotações:

• Norma IEC 61131–3 (International Electrotechnical Commission)


⇒ Adotada pela maioria dos fabricantes.
⇒ Estabelece 5 linguagens de programação para CLPs.
· Duas dessas linguagens são textuais e três são gráficas.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 132

GNE259 – Informática Industrial


Aula 09 – Programação com Diagrama de Blocos de Funções
Introdução

Anotações:
• Linguagens Textuais × Linguagens Gráficas
⇒ Linguagens textuais são uma boa opção para a criação de
códigos que, uma vez depurados, dispensem a monitoração
do seu funcionamento.
· Exemplo: uma função que converte o valor bruto,
fornecido por uma entrada analógica, para o seu
respectivo valor em Unidade de Engenharia.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 133

GNE259 – Informática Industrial


Aula 09 – Programação com Diagrama de Blocos de Funções
Introdução

Anotações:
• Linguagens Textuais × Linguagens Gráficas
⇒ No entanto, caso o código dependa de estados da planta, as
linguagens textuais não são ideais, pois é mais difı́cil monitorar
a lógica.
· Exemplo: o acionamento de uma esteira depende de 2
sensores, Liga = A · B̄. Caso as condições estejam
satisfeitas, mas a esteira não funcione, deve-se identificar
qual sensor está com problema.
⇒ O uso de linguagens gráficas pode facilitar bastante tarefas
como essa.
· Tal vantagem torna-se mais evidente a medida em que a
complexidade das lógicas a serem monitoradas aumenta.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 134


GNE259 – Informática Industrial
Aula 09 – Programação com Diagrama de Blocos de Funções
Introdução

• Resumo para Escolha da Linguagem


Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 135

GNE259 – Informática Industrial


Aula 09 – Programação com Diagrama de Blocos de Funções
Introdução

Anotações:

• Observações sobre as Linguagens da Norma IEC 61131–3


⇒ Por serem mais especializadas, as linguagens Texto Estruturado
e Diagrama de Fluxo Sequencial nem sempre estão presentes
nas plataformas de desenvolvimento.
· Alguns CLPs, especialmente os de pequeno porte,
simplesmente não dão suporte para essas linguagens.
· Em outros sistemas, são vendidas separadamente, como
pacotes de expansão da plataforma de programação.
⇒ Já as linguagens IL, FBD e LD são mais comuns e podem ser
escolhidas para o desenvolvimento de programas para maioria
dos CLPs.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 136

GNE259 – Informática Industrial


Aula 09 – Programação com Diagrama de Blocos de Funções
Introdução

Anotações:

• Principais Caracterı́sticas
⇒ O FBD baseia-se na representação virtual dos diagramas
utilizados pelos técnicos em eletrônica, em seus circuitos
de portas lógicas.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 137

GNE259 – Informática Industrial


Aula 09 – Programação com Diagrama de Blocos de Funções
Introdução

Anotações:
• Principais Caracterı́sticas
⇒ Assim como o LD, que se baseia na representação virtual
de relés, o FBD é uma linguagem gráfica.
· Essas duas linguagens são as mais parecidas entre si.
· Um código desenvolvido em FBD quase sempre pode
ser convertido em LD e vice–versa.
· Geralmente, o usuário pode alterar a forma de trabalho
por meio de seleções em menus como “View → Ladder”
ou “View → FBD”.
⇒ Por serem facilmente assimiladas por estudantes de Engenharia
de Controle e Automação, as principais instruções da linguagem
FBD serão apresentadas por meio de comparações com a
linguagem LD.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 138


GNE259 – Informática Industrial
Aula 09 – Programação com Diagrama de Blocos de Funções
Principais Instruções

• Elementos Básicos da Linguagem Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 139

GNE259 – Informática Industrial


Aula 09 – Programação com Diagrama de Blocos de Funções
Principais Instruções

• Bobinas de Set e Reset Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 140

GNE259 – Informática Industrial


Aula 09 – Programação com Diagrama de Blocos de Funções
Principais Instruções

• Detecção de Borda Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 141

GNE259 – Informática Industrial


Aula 09 – Programação com Diagrama de Blocos de Funções
Principais Instruções

• Instruções Decimais Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 142


GNE259 – Informática Industrial
Aula 09 – Programação com Diagrama de Blocos de Funções
Principais Instruções

• Temporizadores e Contadores Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 143


GNE259 – Informática Industrial
Aula 10 – Programação com Lista de Instruções

Anotações:

Aula 10
Programação com
Lista de Instruções

Universidade Federal de Lavras Prof. Dimitri Campos Viana 144

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Introdução

• Principais Caracterı́sticas Anotações:

⇒ Das 5 linguagens, é mais próxima da linguagem de máquina


(assembly). Ou seja, é a linguagem de mais baixo nı́vel.
· Em muitos CLPs, programas implementados nas demais
linguagens são convertidos em IL ao serem compilados.
· Utilizando diretamente esta linguagem, o usuário pode
produzir códigos mais otimizados e compactos.
⇒ Devido a esses fatos, geralmente, pode-se afirmar:
· Programas desenvolvidos nas demais linguagens podem
ser convertidos e visualizados em IL, de forma automática;
· O oposto nem sempre é possı́vel.
⇒ Como desvantagem, pode-se citar a dificuldade humana em
assimilar códigos mais extensos em IL.
· Para isso, é preciso bastante prática.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 145

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Introdução

Anotações:

• Princı́pios Básicos
⇒ Usa o conceito de acumulador para armazenar resultados
intermediários.
⇒ Os principais operadores são load e store:
· LD carrega um novo valor no acumulador.
· ST transfere o conteúdo do acumulador p/ uma variável.
⇒ Operadores como AND e OR produzem seus resultados a partir
de um operando e do conteúdo do acumulador.
· O resultado é armazenado no próprio acumulador,
atualizando-o.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 146

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Introdução

• Regras de Sintaxe
Anotações:
⇒ Cada instrução deve começar em uma nova linha.
⇒ Uma instrução é composta por operador e operandos:
· Instrução = Operador + Operandos.
· Dois ou mais operandos devem ser separados por “,”
⇒ Cada instrução pode ser precedida por um rótulo:
· Rótulo é um nome seguido do caracter “:”
· São usados por instruções de salto (JMP);
· Também podem ser colocados em linhas vazias.
⇒ Cada instrução pode ser finalizada por um comentário:
· Devem ser inseridos como: (* texto descritivo *)
· Também podem ser colocados em linhas vazias.
⇒ Os operadores podem incluir modificadores.
· Trataremos disso após o próximo slide...
Universidade Federal de Lavras Prof. Dimitri Campos Viana 147
GNE259 – Informática Industrial
Aula 10 – Programação com Lista de Instruções
Principais Operadores

Anotações:
• Operadores Mais Utilizados
LD Carrega o operando para o acumulador
ST Transfere o conteúdo do acumulador para o local apontado pelo operando
S Transfere o valor 1 para o local apontado pelo operando (se acumul. = 1)
R Transfere o valor 0 para o local apontado pelo operando (se acumul. = 1)
AND Função booleana AND
OR Função booleana OR
XOR Função booleana XOR
JMP Salta para o rótulo fornecido como operando

⇒ Exemplo:
LD I0.0 (* botão liga *)
AND M0.0 (* comando válido *)
ST Q0.0 (* liga motor *)

Universidade Federal de Lavras Prof. Dimitri Campos Viana 148

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Principais Operadores

• Modificadores
Anotações:
⇒ Devem ser anexados ao nome do operador (sem separação).
⇒ N – Inversão lógica do operando
· Exemplo:
LDN I0.0 (* modo automático selecionado *)
ST M0.0 (* modo manual selecionado *)

⇒ ( – Operação adiada
· Trataremos desse modificador mais a frente...
⇒ C – Operação Condicional
· Indica que a instrução deve ser executada somente se
o conteúdo do acumulador for diferente de zero.
· Muito usado para modificar o operador de salto:

JMP → JMPC.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 149

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Principais Operadores

Anotações:
• Diferenças entre Fabricantes
⇒ Antes do surgimento da Norma IEC 61131–3:
· Cada fabricante possuı́a seu conjunto de instruções;
· Embora bastante parecidos, as diferenças existem;
· Por razões de compatibilidade, elas continuam a existir;
· Para fazer códigos em IL, deve-se estudar os manuais.

IEC 61131–3 Mitsubishi OMRON S7–200


LD LD LD LD
LDN LDI LD NOT LDN
AND AND AND A
ANDN ANI AND NOT AN
OR OR OR O
ORN ORI OR NOT ON
ST OUT OUT =

Universidade Federal de Lavras Prof. Dimitri Campos Viana 150

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Exemplos

Anotações:

• Operador LD
LD false (* constante booleana *)
LD 12 (* constante do tipo inteiro *)
LD 17.8 (* constante do tipo real *)
LD M0.0 (* variável booleana *)
LD MW6 (* variável do tipo inteiro *)
LD MD12 (* variável do tipo real *)
LDN M0.0 (* conteúdo invertido da variável booleana *)

Universidade Federal de Lavras Prof. Dimitri Campos Viana 151


GNE259 – Informática Industrial
Aula 10 – Programação com Lista de Instruções
Exemplos

Anotações:

• Operador ST
LD M0.0 (* motor ligado *)
ST Q0.0 (* sinaliza motor ligado *)
STN Q0.1 (* sinaliza motor desligado *)

Universidade Federal de Lavras Prof. Dimitri Campos Viana 152

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Exemplos

Anotações:

• Operador AND
⇒ A partir do FBD, obtenha a Lista de Instruções equivalente:

LD I0.0
AND I0.1
AND I0.2
ST Q0.0

Universidade Federal de Lavras Prof. Dimitri Campos Viana 153

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Exemplos

Anotações:

• Operador OR
⇒ A partir do FBD, obtenha a Lista de Instruções equivalente:

LD I0.0
OR I0.1
ORN I0.2
ST Q0.0

Universidade Federal de Lavras Prof. Dimitri Campos Viana 154

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Exemplos

Anotações:

• Operadores S e R
⇒ A partir do FBD, obtenha a Lista de Instruções equivalente:

LD I0.0
ORN I0.1
ANDN I0.2
S Q0.0

LD I0.3
ANDN I0.4
ORN I0.5
R Q0.0

Universidade Federal de Lavras Prof. Dimitri Campos Viana 155


GNE259 – Informática Industrial
Aula 10 – Programação com Lista de Instruções
Exemplos

Anotações:

• Operador JMP
LD M0.0 (* temperatura muito alta *)
JMPC VENT (* chama subrotina para partida do ventilador *)
. .
. .
. .
VENT: LD true (* prepara partida do ventilador *)
. .
. .
. .

Universidade Federal de Lavras Prof. Dimitri Campos Viana 156

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Operações Adiadas

• Operações Adiadas
Anotações:
⇒ Muitas vezes, para implementar lógicas mais complexas,
é necessário alterar a sequência de execução das operações.
⇒ Os parênteses são utilizados para se fazer isso:
· ( – Adia a execução do operador que o precede;
· ) – Executa a operação anteriormente adiada.
⇒ Para analisar trechos com operações adiadas, usa-se o conceito
de pilha (estrutura do tipo Last In First Out).
⇒ Quando o modificador “(” é encontrado:
· O valor do acumulador é colocado na pilha.
· Carrega-se o acumulador com o próximo operando.
⇒ Quando o modificador “)” é encontrado:
· Executa-se a operação adiada entre o último valor que
entrou na pilha e o valor do acumulador.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 157

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Operações Adiadas

Anotações:
• Exemplo
⇒ Obtenha a IL que represente a expressão

Q0.0 := I0.0(I0.1 + I0.2)

⇒ Resposta:
LD I0.0 (* carrega o valor de I0.0 para o acumulador *)
AND( I0.1 (* adia a operação AND *)
(* transfere o valor do acumulador para a pilha *)
(* carrega o valor de I0.1 para o acumulador *)
OR I0.2 (* realiza a operação OR entre o acumulador e I0.2 *)
(* transfere o resultado para o acumulador *)
) (* executa a operação adiada entre a pilha e o acumulador *)
ST Q0.0 (* transfere o resultado para Q0.0 *)

Universidade Federal de Lavras Prof. Dimitri Campos Viana 158

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Operações Adiadas

• Observação 1 Anotações:

⇒ Pode-se usar o carregamento explı́cito do operador.

LD I0.0
LD I0.0
AND(
AND( I0.1
LD I0.1
OR I0.2 ⇔ OR I0.2
)
)
ST Q0.0
ST Q0.0

• Observação 2
⇒ É possı́vel evitar adiamentos com códigos semelhantes.

LD I0.0
LD I0.1
AND( I0.1
OR I0.2
OR I0.2 ≈ AND I0.0
)
ST Q0.0
ST Q0.0

Universidade Federal de Lavras Prof. Dimitri Campos Viana 159


GNE259 – Informática Industrial
Aula 10 – Programação com Lista de Instruções
Operações Adiadas

Anotações:

• Exemplo
⇒ A partir do FBD, obtenha a Lista de Instruções equivalente:

LD I0.0
AND I0.1
OR(
LDN I0.2
AND(
LDN I0.3
OR I0.4
)
)
ST Q0.0

Universidade Federal de Lavras Prof. Dimitri Campos Viana 160

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Operações Adiadas

• Operações Adiadas no CLP S7–200


Anotações:
⇒ O modificador “(” não existe.
⇒ Em contrapartida, existe um pilha de 9 células e as instruções:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 161

GNE259 – Informática Industrial


Aula 10 – Programação com Lista de Instruções
Operações Adiadas

• Exemplo
Anotações:
⇒ Faça uma IL para o S7–200 que represente Q0.0 := I0.0 + (I0.1 · I0.2).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 162


GNE259 – Informática Industrial
Aula 11 – Programação com Texto Estruturado

Anotações:

Aula 11
Programação com
Texto Estruturado

Universidade Federal de Lavras Prof. Dimitri Campos Viana 163

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Revisão

• Norma IEC 61131–3 (International Electrotechnical Commission)


Anotações:
⇒ Estabelece 5 linguagens de programação para CLPs.

⇒ Linguagens textuais são uma boa opção para a criação de


códigos que, uma vez depurados, dispensem acompanhamento.
⇒ O uso de linguagens gráficas pode facilitar bastante
a monitoração dos programas desenvolvidos.
⇒ Por serem mais especializadas, as linguagens Texto Estruturado
(ST) e Diagrama de Fluxo Sequencial (SFC) nem sempre estão
presentes nas plataformas de desenvolvimento.
Universidade Federal de Lavras Prof. Dimitri Campos Viana 164

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Introdução

Anotações:
• Principais Caracterı́sticas
⇒ Das 5 linguagens da norma, é considerada a de mais alto nı́vel.
⇒ A sintaxe é semelhante ao Pascal e outras linguagens
de programação estruturadas.
· No entanto, foi especificamente desenvolvida para CLPs.
· Pode-se acessar entradas e saı́das como qualquer outra
variável, por exemplo: QW 18 := 5 ∗ IW 12 + 2.
⇒ O programa é processado ciclicamente pelo CLP.
· Linha por linha, de cima para baixo.
⇒ O aprendizado, o uso e a edição são relativamente fáceis.
⇒ É bastante útil para a automação de processos complexos.
⇒ Os principais recursos dessa linguagem serão vistos a seguir.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 165

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Principais Instruções

• Declaração de Variáveis Anotações:

⇒ Globais (válidas em todo o projeto)


· As declarações feitas na tabela global são válidas para
todas as linguagens (LD, FBD, IL, ST, SFC)
⇒ Locais (válidas somente em uma subrotina ou função)
· Em ST, podem ocorrer das duas maneiras a seguir:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 166


GNE259 – Informática Industrial
Aula 11 – Programação com Texto Estruturado
Principais Instruções

Anotações:
• Atribuição de Valores à Variáveis
⇒ Alteram o valor armazenado em uma variável.
⇒ Podem ser feitas por meio de uma das seguintes sintaxes:
· Sı́mbolo := expressão;
· Endereço := expressão;
⇒ Expressões são escritas utilizando-se:
· Constantes;
· Variáveis (sı́mbolos ou endereços);
· Funções, como ABS, T RU N C etc;
· Operadores, como +, −, <, >, AN D, OR etc;
· Parênteses, para alterar a ordem de interpretação dos
operadores.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 167

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Principais Instruções

Anotações:
• Expressões
⇒ Booleanas
· Usa variáveis binárias, operadores lógicos e comparadores.
· Resulta em condições verdadeiras ou falsas.
· Por exemplo: IW12 > 65.
· Tipicamente, use-se uma expressão booleana para
condicionar a execução de outra lógica.
⇒ Numéricas
· Utiliza variáveis, operadores e funções aritméticas.
· Produz valores inteiros ou reais (ponto flutuante).
⇒ Mistas
· Por exemplo: (IW16 + 5) > 65.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 168

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Principais Instruções

• Operadores Aritméticos
Anotações:
⇒ A linguagem ST prevê os seguintes:
+ Adição
− Subtração
∗ Multiplicação
/ Divisão
∗∗ Exponenciação
M OD Módulo da divisão

• Operadores de Comparação
⇒ Podem comparar valores numéricos e alfanuméricos (strings):
= Igual
< Menor que
<= Menor ou igual
> Maior que
>= Maior ou igual
<> Diferente

Universidade Federal de Lavras Prof. Dimitri Campos Viana 169

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Principais Instruções

Anotações:

• Funções Aritméticas Mais Utilizadas


ABS Valor absoluto
ACOS Arco cosseno
ASIN Arco seno
AT AN Arco tangente
COS Cosseno
DEG Radianos para graus
LN Logaritmo natural
LOG Logaritmo
RAD Graus para radianos
SIN E Seno
SQRT Raiz quadrada
T AN Tangente
T RU N C Truncamento

Universidade Federal de Lavras Prof. Dimitri Campos Viana 170


GNE259 – Informática Industrial
Aula 11 – Programação com Texto Estruturado
Principais Instruções

Anotações:

• Operadores Lógicos e Bit a Bit


⇒ Operações lógicas combinam dois operandos binários.
⇒ Operações bit a bit combinam os bits de operandos inteiros.
⇒ A variável receptora do resultado determina o tipo da operação.

AN D Operação “E”
OR Operação “Ou”
XOR Operação “Ou exclusivo”
N OT Inversão

Universidade Federal de Lavras Prof. Dimitri Campos Viana 171

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Principais Instruções

Anotações:

• Instruções Condicionais e de Repetição


⇒ Fornecem a estrutura necessária para permitir a construção de
programas “lineares”, dispensando o uso de instruções de salto.

IF . . . T HEN Faça algo se condições especı́ficas ocorrerem

CASE . . . OF Selecione o que fazer com base em um valor numérico

F OR . . . DO Faça algo uma quantidade especı́fica de vezes

W HILE . . . DO Enquanto certas condições forem verdadeiras, faça algo

REP EAT . . . U N T IL Faça algo enquanto certas condições forem verdadeiras

Universidade Federal de Lavras Prof. Dimitri Campos Viana 172

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Principais Instruções

Anotações:
• Exemplo (IF . . . T HEN )
IF tank temp > 200 THEN
pump fast := 1; pump slow := 0; pump off := 0;
ELSEIF tank temp > 100 THEN
pump fast := 0; pump slow := 1; pump off := 0;
ELSE
pump fast := 0; pump slow := 0; pump off := 1;
END IF

⇒ ELSEIF e ELSE são declarações opcionais.


⇒ Pode-se usar quantas declarações ELSEIF forem necessárias.
⇒ O CLP executará a 1a condição verdadeira, desconsiderando
as demais.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 173

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Principais Instruções

Anotações:

• Exemplo (CASE . . . OF )
CASE speed setting OF
1: speed := 10;
2: speed := 20;
3: speed := 40; fan1 := 1
4, 5 : speed := 50; fan2 := 1
6 . . . 10 : speed := 60; waterpump1 := 1
ELSE speed := 0; speed fault := 1
END CASE

⇒ Um valor numérico determina qual expressão será executada.


⇒ O CLP executará a 1a condição verdadeira, desconsiderando
as demais.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 174


GNE259 – Informática Industrial
Aula 11 – Programação com Texto Estruturado
Principais Instruções

Anotações:

• Exemplo (F OR . . . DO)
FOR count := 0 TO 9 BY 1 DO // count is the index value
// sets the valve number as 5 higher than the count
valve num := count + 5;
// on the first pass - sets the valve[5] position to the value in pos[0]
valve[valve num] := pos[count];
END FOR

Universidade Federal de Lavras Prof. Dimitri Campos Viana 175

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Principais Instruções

Anotações:

• Exemplo (W HILE . . . DO)


WHILE NOT tank low AND NOT valve drain DO
valve feed := 1;
IF emerg stop THEN
valve feed := 0;
END IF
END WHILE

⇒ A lógica interna é executada se e enquanto a condição


for verdadeira.
⇒ O conjunto REP EAT . . . U N T IL é similar.
· Mas a lógica interna é executada pelo menos uma vez.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 176

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Exemplo

• Processo de Mistura e Aquecimento dos Produtos A e B


Anotações:

⇒ O produto final deve conter 25% de A e 75% de B.


⇒ O mixer é ligado quando o nı́vel atinge 50% e continua
até o término da drenagem.
⇒ O aquecimento começa quando o nı́vel atinge 75% e termina
quando a temperatura atinge 180 o C.
⇒ A drenagem começa após (LT > 99 & T T > 180).
Universidade Federal de Lavras Prof. Dimitri Campos Viana 177

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Exemplo

• Solução 1 (orientada aos eventos): projeto do software


Anotações:
Standby // do nothing

BT = 1 Abre VA

Fecha VA
LT > 25%
Abre VB (se estiver enchendo)

LT > 50% Liga MX

LT > 75% Abre VV (se estiver enchendo)
|−−−− −−−−− −−|
↓ ↓
LT > 99% Fecha VB T T > 180% Fecha VV
↓ ↓
Fecha VV Fecha VB
T T > 180% LT > 99%
Abre VD Abre VD
|−−−− −−−−− −−|

Desliga MX
LT 6 1%
Fecha VD

Universidade Federal de Lavras Prof. Dimitri Campos Viana 178


GNE259 – Informática Industrial
Aula 11 – Programação com Texto Estruturado
Exemplo

• Solução 1 (orientada aos eventos): 1o Trecho


Anotações:
// quando BT = 1
IF BT = 1 THEN
V A := 1;
END IF

// quando LT > 25
IF LT >= 25 THEN
V A := 0;
IF V D = 0 THEN // se estiver enchendo
V B := 1;
END IF
END IF

// quando LT > 50
IF LT >= 50 THEN
M X := 1;
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 179

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Exemplo

• Solução 1 (orientada aos eventos): 2o Trecho Anotações:


// quando LT > 75
IF LT >= 75 THEN
IF V D = 0 THEN // se estiver enchendo
V V := 1;
END IF
END IF

// quando LT > 99
IF LT >= 99 THEN
V B := 0;
IF T T >= 180 THEN // aguarda temperatura
V V := 0;
V D := 1;
END IF
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 180

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Exemplo

• Solução 1 (orientada aos eventos): 3o Trecho Anotações:

// quando T T > 180


IF T T >= 180 THEN
V V := 0;
IF LT >= 99 THEN // aguarda nı́vel
V B := 0;
V D := 1;
END IF
END IF

// quando LT 6 1
IF LT <= 1 THEN
M X := 0;
V D := 0;
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 181

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Exemplo

Anotações:
• Solução 2 (orientada aos atuadores): projeto do software
⇒ VA: Abre quando BT = 1
Fecha quando LT > 25%
⇒ VB: Abre quando LT > 25% (se estiver enchendo)
Fecha quando LT > 99%
⇒ MX: Liga quando LT > 50%
Fecha quando LT 6 1%
⇒ VV: Abre quando LT > 75% (se estiver enchendo)
Fecha quando T T > 180o C
⇒ VD: Abre quando LT > 99% e T T > 180o C
Fecha quando LT 6 1%

Universidade Federal de Lavras Prof. Dimitri Campos Viana 182


GNE259 – Informática Industrial
Aula 11 – Programação com Texto Estruturado
Exemplo

• Solução 2 (orientada aos atuadores): 1o Trecho Anotações:


// controle da válvula VA (produto A)
IF BT = 1 THEN
V A := 1;
END IF
IF LT >= 25 THEN
V A := 0;
END IF

// controle da válvula VB (produto B)


IF LT >= 25 AND V D = 0 THEN // se estiver enchendo
V B := 1;
END IF
IF LT >= 99 THEN
V B := 0; // note a prioridade sobre o abrir
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 183

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Exemplo

• Solução 2 (orientada aos atuadores): 2o Trecho Anotações:


// controle do mixer MX (mistura)
IF LT >= 50 THEN
M X := 1;
END IF
IF LT <= 1 THEN
M X := 0;
END IF

// controle da válvula VV (vapor)


IF LT >= 75 AND V D = 0 THEN // se estiver enchendo
V V := 1;
END IF
IF T T >= 180 THEN
V V := 0; // note a prioridade sobre o abrir
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 184

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Exemplo

Anotações:

• Solução 2 (orientada aos atuadores): 3o Trecho


// controle da válvula VD (dreno)
IF (LT >= 99) AND (T T >= 180) THEN
V D := 1;
END IF
IF LT <= 1 THEN
V D := 0;
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 185

GNE259 – Informática Industrial


Aula 11 – Programação com Texto Estruturado
Exemplo

Anotações:
• Considerações Finais sobre as Soluções dadas ao Exemplo
⇒ Analisando-se o enunciado, nota-se que este processo de
mistura é essencialmente sequencial.
· No entanto, ao se utilizar a linguagem Texto Estruturado,
a abordagem orientada aos atuadores se mostrou mais
simples do que a abordagem orientada aos eventos.
⇒ Na próxima aula, veremos a linguagem Diagrama de Fluxo
Sequencial, que facilita bastante a implementação de
problemas orientados a eventos.
· Ou seja, com o uso das técnicas previstas nesta nova
linguagem, a abordagem orientada a eventos terá uma
nova chance de superar a abordagem orientada aos
atuadores, pelo menos quando o processo for sequencial.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 186


GNE259 – Informática Industrial
Aula 12 – Programação com Diagrama de Fluxo Sequencial

Anotações:

Aula 12
Programação com
Diagrama de Fluxo Sequencial

Universidade Federal de Lavras Prof. Dimitri Campos Viana 187

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Introdução

Anotações:

• Principais Caracterı́sticas
⇒ Especialmente adequado à processos sequenciais.
· Os programas são construı́dos como uma sequência de
passos na qual a transição entre os mesmos é vinculada
a uma condição booleana.
⇒ Linguagem gráfica.
· Os programas são representados por diagramas em que os
blocos são os passos e os traços as condições de avanço.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 188

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Introdução

• Forma Genérica do Diagrama Anotações:

⇒ Este “particionamento” traz ganho de performance e clareza


ao programa, pois apenas o código correspondente ao passo
que está ativo é executado.
⇒ Existem 4 tipos sequência, as quais serão mostradas a seguir.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 189

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Tipos de Sequência

Anotações:

• Sequência Simples
⇒ As ações associadas ao passo atual são executadas
repetidamente (a cada ciclo do CLP).

⇒ Se a condição ao final do passo for verdadeira,


o Diagrama de Fluxo Sequencial avança.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 190


GNE259 – Informática Industrial
Aula 12 – Programação com Diagrama de Fluxo Sequencial
Tipos de Sequência

Anotações:
• Sequência Seletiva
⇒ As condições programadas selecionam passos alternativos.

⇒ Por padrão, as condições são interpretadas da esquerda para


a direita.
· Quando uma condição verdadeira é encontrada,
o Diagrama de Fluxo Sequencial avança.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 191

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Tipos de Sequência

Anotações:

• Sequência Simultânea
⇒ Dois ou mais passos são executados ao mesmo tempo.

⇒ Uma condição simples encerra o trecho.


⇒ Todos os passos são executados pelo menos uma vez.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 192

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Tipos de Sequência

Anotações:

• Sequência em Loop
⇒ Salto para um passo anterior.

⇒ Após uma condição, o Diagrama de Fluxo Sequencial pode


voltar para um passo anterior.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 193

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Transições

Anotações:
• Condições de Transição
⇒ Devem ser associadas a uma lógica binária.
⇒ Pode ser implementada com:
· Contatos em Diagrama de Ladder;
· Portas lógicas em FBD;
· Ou com qualquer bloco que produza uma saı́da binária.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 194


GNE259 – Informática Industrial
Aula 12 – Programação com Diagrama de Fluxo Sequencial
Ações

Anotações:

• Blocos de Ação
⇒ Normalmente, cada passo está associado a um bloco de ação.
⇒ Um bloco de ação geralmente contém:
· Comentário;
· Uma ou mais ações.
⇒ As ações são compostas de:
· Endereço de memória a ser alterado (por exemplo, Q0.0);
· Qualificador da ação (veja as opções a seguir).

Universidade Federal de Lavras Prof. Dimitri Campos Viana 195

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Ações

Anotações:

• Qualificadores de Ação
⇒ Os principais são os seguintes:
Qualificador Descrição
Nenhum O mesmo que “N”
N Não armazenada (executada enquanto o passo estiver ativo)
S Armazenada (executada até que um “R” seja encontrado)
R Faz o reset de uma ação armazenada
L Limitada (termina após um perı́odo ou com o fim do passo)
D Adiada no tempo (começa após um perı́odo estipulado)
P Pulsada (executada uma vez no inı́cio e no fim do passo)
P1 Executada uma única vez, no inı́cio do passo
P0 Executada uma única vez, no fim do passo

Universidade Federal de Lavras Prof. Dimitri Campos Viana 196

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Faça um SFC para o processo mostrado na aula passada


Anotações:

⇒ O produto final deve conter 25% de A e 75% de B.


⇒ O mixer é ligado quando o nı́vel atinge 50% e continua
até o término da drenagem.
⇒ O aquecimento começa quando o nı́vel atinge 75% e termina
quando a temperatura atinge 180 o C.
⇒ A drenagem começa após (LT > 99 & T T > 180).
Universidade Federal de Lavras Prof. Dimitri Campos Viana 197

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Solução Orientada aos Eventos (projeto usado na aula passada)


Anotações:
Standby // do nothing

BT = 1 Abre VA

Fecha VA
LT > 25%
Abre VB (se estiver enchendo)

LT > 50% Liga MX

LT > 75% Abre VV (se estiver enchendo)
|−−−− −−−−− −−|
↓ ↓
LT > 99% Fecha VB T T > 180% Fecha VV
↓ ↓
Fecha VV Fecha VB
T T > 180% LT > 99%
Abre VD Abre VD
|−−−− −−−−− −−|

Desliga MX
LT 6 1%
Fecha VD

Universidade Federal de Lavras Prof. Dimitri Campos Viana 198


GNE259 – Informática Industrial
Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• A execução por etapas resolve os inconvenientes desta abordagem


Anotações:
Standby // do nothing

BT = 1 Abre VA

Fecha VA
LT > 25%
Abre VB // executado apenas nesta etapa

LT > 50% Liga MX

LT > 75% Abre VV
|−−−− −−−−− −−|
↓ ↓
LT > 99% Fecha VB T T > 180% Fecha VV
↓ ↓
Fecha VV Fecha VB
T T > 180% LT > 99%
Abre VD Abre VD
|−−−− −−−−− −−|

Desliga MX
LT 6 1%
Fecha VD

Universidade Federal de Lavras Prof. Dimitri Campos Viana 199

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:
• Solução com Diagrama de Fluxo Sequencial (SFC): 1o Trecho

Universidade Federal de Lavras Prof. Dimitri Campos Viana 200

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Solução com Diagrama de Fluxo Sequencial (SFC): 2o Trecho Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 201

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:
• Considerações sobre esta Última Solução
⇒ Nota-se que o processo é essencialmente sequencial.
⇒ Usando SFC, a execução por etapas dispensa a consideração de
condições como “se estiver enchendo”, simplificando a lógica e
tornando a abordagem orientadas a eventos bastante atrativa.
⇒ Existe uma concorrência entre dois eventos: tanque cheio
e temperatura atingida.
· Mas isso não chega a descaracterizar a essência sequencial
do processo e pode ser facilmente tratado no diagrama.
⇒ No entanto, caso houvessem vários eventos concorrentes:
· O processo perderia a caracterı́stica sequencial, fazendo
com que o uso de SFC não fosse apropriado.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 202


GNE259 – Informática Industrial
Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:

• Recapitulando e Expandindo
⇒ Exemplo do processo de mistura com Texto Estruturado:
· Abordagem orientada aos atuadores → mais simples.
⇒ Exemplo do processo de mistura com SFC:
· Abordagem orientada aos eventos → funciona bem,
principalmente devido à “execução por etapas”.
⇒ Mas a linguagem SFC nem sempre está disponı́vel:
· É possı́vel levar essa estratégia de “execução por etapas”
para outras linguagens de programação?
· Sim, facilmente! Vejamos a seguir...

Universidade Federal de Lavras Prof. Dimitri Campos Viana 203

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Solução com Execução por Etapas em Texto Estruturado: 1o Trecho


Anotações:
// passo 0
IF P asso = 0 THEN
IF BT = 1 THEN
P asso := 1;
END IF
END IF

// passo 1
IF P asso = 1 THEN
V A := 1;
IF LT >= 25 THEN
P asso := 2;
END IF
ELSE
V A := 0;
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 204

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Solução com Execução por Etapas em Texto Estruturado: 2o Trecho Anotações:


// passo 2
IF P asso = 2 THEN
V B := 1;
IF LT >= 50 THEN
P asso := 3;
END IF
END IF

// passo 3
IF P asso = 3 THEN
M X := 1;
IF LT >= 75 THEN
P asso := 4;
END IF
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 205

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:

o
• Solução com Execução por Etapas em Texto Estruturado: 3 Trecho
// passo 4
IF P asso = 4 THEN
V V := 1;
IF LT >= 99 THEN
P asso := 51;
END IF
IF T T >= 180 THEN
P asso := 52;
END IF
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 206


GNE259 – Informática Industrial
Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Solução com Execução por Etapas em Texto Estruturado: 4o Trecho


Anotações:
// passo 51
IF P asso = 51 THEN
V B := 0;
IF T T >= 180 THEN
P asso := 61;
END IF
END IF

// passo 61
IF P asso = 61 THEN
V V := 0;
V D := 1;
IF LT <= 1 THEN
P asso := 7;
END IF
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 207

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Solução com Execução por Etapas em Texto Estruturado: 5o Trecho


Anotações:
// passo 52
IF P asso = 52 THEN
V V := 0;
IF LT >= 99 THEN
P asso := 62;
END IF
END IF

// passo 62
IF P asso = 62 THEN
V B := 0;
V D := 1;
IF LT <= 1 THEN
P asso := 7;
END IF
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 208

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:

• Solução com Execução por Etapas em Texto Estruturado: 6o Trecho


// passo 7
IF P asso = 7 THEN
M X := 0;
V D := 0;
IF 1 = 1 THEN
P asso := 0;
END IF
END IF

Universidade Federal de Lavras Prof. Dimitri Campos Viana 209

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Considerações sobre esta Última Solução


Anotações:
⇒ Note a criação da variável “passo”:
· Ela reproduz a estratégia que o SFC faz de forma
intrı́nseca, permitindo que apenas um trecho do código
seja executado de cada vez.
⇒ Quais as diferenças em relação as duas soluções feitas em
Texto Estruturado e apresentadas no final da aula anterior?
· Esta 3a solução possui um código um pouco mais extenso;
· Mas a clareza é seu forte e, em plantas mais elaboradas,
evita que o programador cometa algum “deslize”.
⇒ Assim, com essa nova abordagem, pode-se concluir:
· Se o processo é sequencial, a melhor abordagem é a
orienta aos eventos (seja em SFC ou outra linguagem).
· Na última aula isto não ocorreu, mas somente porque a
abordagem orientada a eventos não usou o “passo”.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 210


GNE259 – Informática Industrial
Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:
• Recapitulando e Expandindo (mais um pouco...)
⇒ Quando o processo é essencialmente sequencial, a melhor
linguagem para tratá-lo é o SFC.
⇒ Mas, supondo a indisponibilidade do SFC, vimos uma técnica
para implementar problemas sequenciais em Texto Estruturado.
⇒ No entanto, ainda temos um problema:
· Este sistema não depende de sensores?
· Ou seja, a lógica não precisa ser monitorada?
⇒ Seria viável usar a técnica da variável “passo” na linguagem
Diagrama Ladder?
· Sim, facilmente! Vejamos a seguir...

Universidade Federal de Lavras Prof. Dimitri Campos Viana 211

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:
• Solução com Execução por Etapas em Ladder: 1o Trecho

Universidade Federal de Lavras Prof. Dimitri Campos Viana 212

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:
• Solução com Execução por Etapas em Ladder: 2o Trecho

Universidade Federal de Lavras Prof. Dimitri Campos Viana 213

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:

• Solução com Execução por Etapas em Ladder: 3o Trecho

Universidade Federal de Lavras Prof. Dimitri Campos Viana 214


GNE259 – Informática Industrial
Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Solução com Execução por Etapas em Ladder: 4o Trecho Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 215

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

• Solução com Execução por Etapas em Ladder: 5o Trecho Anotações:

Universidade Federal de Lavras Prof. Dimitri Campos Viana 216

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:

• Solução com Execução por Etapas em Ladder: 6o Trecho

Universidade Federal de Lavras Prof. Dimitri Campos Viana 217

GNE259 – Informática Industrial


Aula 12 – Programação com Diagrama de Fluxo Sequencial
Exemplo

Anotações:

• Sugestão de Exercı́cio
⇒ Transcreva o código apresentado nos últimos slides para FBD.

Universidade Federal de Lavras Prof. Dimitri Campos Viana 218

Você também pode gostar