Lógica Programável – 1ª Parte
Armando Cordeiro
Licenciatura em Engenharia Eletrotécnica
Automação I
04/11/2022 2
Introdução
• A lógica programável utiliza sistemas electrónicos programáveis para
fazer o tratamento dos dados.
• Ao contrário da lógica cablada, não é definido por um esquema em si
mas por um programa introduzido numa memória.
• Os principais sistemas electrónicos programáveis usados na indústria
são os autómatos programáveis (a.p.), os microcontroladores e os
terminais de interface humano-máquina que são geralmente também
programáveis.
• A lógica programável surgiu por volta dos anos 70 devido:
⚬ a grandes avanços registados nos circuitos electrónicos;
⚬ à necessidade de reduzir os custos dos sistemas cablados e
resolver problemas complexos colocados pelas exigências de
mercado.
• Actualmente exige-se aos a.p. determinadas funções de controlo e de
salvaguarda que visam garantir a segurança de pessoas e bens.
04/11/2022 3
Vantagens
• Menos componentes: a lógica programável substitui um grande
número de outros dispositivos.
• Maior flexibilidade: as aplicações podem ser modificados com
pouco esforço usando apenas um software de programação.
• Menor espaço: comando concentrado no autómato programável (a.p.
ou PLC), ocupando menos espaço, podendo existir soluções
distribuídas.
• Menos tempo de montagem: resume-se à cablagem da alimentação
das entradas e das saídas.
• Maior fiabilidade: Menos desgaste de peças em movimento
(vantagem geral dos sistemas estáticos);
• Manutenção facilitada: a manutenção e a regulação ficam facilitadas.
04/11/2022 4
Vantagens
• Possibilidades de expansão: ligação a unidades de expansão de
entradas e saídas digitais, analógicas ou módulos de comunicações.
• Os benefícios ultrapassam largamente os custos: apesar dos
custos de alguns equipamentos serem elevados, as
potencialidades são muito grandes face à lógica cablada.
• Possibilidade de ligação remota: Ligação a redes de comunicação
digitais para troca de mensagens com redes de campo: CAN,
profibus, DeviceNet, etc.
• Funções matemáticas: álgebra de inteiros e virgula flutuante.
Cálculos trigonométricos avançados.
• Elevado potencial de cálculo: Velocidades de cálculo na ordem de
0,5 a 1,8 s/instrução (em determinadas aplicações pode não ser

suficiente).
• Funções de controlo: Blocos com funções de controlo clássico (PID),
Lógica difusa, etc.
04/11/2022 5
Lógica programável
• Autómato
O Autómato é um equipamento electrónico robusto, que está preparado para
trabalhar em ambientes industriais, programado pelo utilizador, com funcionamento
cíclico e que é capaz de controlar processos.
Este controlo é efectuado através
⚬ das entradas que dão informação ao autómato sobre o processo,
⚬ do programa que analisa esta informação e
⚬ das saídas que activam ou desactivam os equipamentos necessários.
Utilizados em aplicações
comerciais, ou industriais, os
autómatos actuam como
controladores para máquinas e
processos.
Monitorizam as entradas, tomam
decisões e controlam as saídas de
forma a automatizar máquinas e
processos.
04/11/2022 6
Lógica programável
• Classificação dos Autómatos
⚬ Compactos – Integram no mesmo conjunto todos os elementos necessários ao
seu funcionamento (preços económicos e dedicados a pequenas aplicações).
⚬ Modulares – São compostos por diversos módulos que se associam de
forma a obter a melhor configuração para cada aplicação.
04/11/2022 7
Lógica programável
• Arquitectura básica de um autómato programável
04/11/2022 8
Lógica programável
• Arquitectura básica de um autómato programável
• CPU – Unidade Central de processamento ou microprocessador é o
elemento de processamento de operações aritméticas e lógicas e funções
de controlo.
• Memória – Composta pela memória do sistema operativo (firmware),
memória de programa (programa de aplicação) e memória de dados
(valores das entradas e saídas, resultados das operações do CPU, etc.).
Podem existir outras memórias internas ou externas (EEPROM, FLASH).
• Entradas e saídas – Asseguram a interligação directa do a.p. com o seu
ambiente de trabalho. As entradas fornecem informação ao programa
sobre estados de sensores, botões, detectores, etc. As saídas actuam
directa ou indirectamente sobre os elementos da aplicação.
• Fonte de Alimentação – Proporciona as tensões necessárias ao
funcionamento do autómato. Em determinados casos a fonte é externa. Os
valores usuais são 24VDC e entre 80VAC e 230VAC.
• Comunicações digitais – Permite realizar a programação do autómato, a
sua ligação numa rede de comunicação digital ou a ligação a outros
dispositivos tais como outros autómatos e consolas de interface humano-
máquina.
04/11/2022 9
Lógica programável
• Princípio de funcionamento do Autómato Programável
Tempo de ciclo
• Watchdog – temporizador que detecta falhas
grosseiras no a.p. Fecha ou abre um contacto exterior
em caso de falha. Sistema de segurança básico.
04/11/2022 10
Lógica programável
• Princípio de funcionamento do Autómato Programável
Fase 1: leitura das variáveis de entrada
O ciclo de scan começa com a leitura do estado das
entradas físicas e respectivo armazenamento nas
variáveis de entradas.
Fase 2: execução do programa
A informação presente nas variáveis de entradas, é
processada pela CPU, que de acordo com o programa
existente na memória actualiza o estado das variáveis de
saídas, por cada instrução do programa.
Fase 3: diagnóstico de erros
Uma vez completa a execução do programa, a CPU
executa uma série de tarefas internas de diagnósticos e
comunicações.
Fase 4: actualização das variáveis de saída
Caso não existam erros os valores das variáveis de saída, contidos na memória de dados, são
transferidos para as saídas físicas e o autómato passa ao ciclo seguinte (recomeçando a fase 1 e
assim sucessivamente).
04/11/2022 11
Lógica programável
• Norma IEC61131-3
• A norma IEC61131-3 prevê cinco linguagens de programação
diferentes, que podem ser combinadas dentro de uma aplicação:
• Três linguagens gráficas:
⚬ Diagramas funcionais sequenciais (Grafcet) - (SFC);
⚬ Diagramas de Blocos Lógicos - (FBD);
⚬ Diagramas de Contactos (LD);
• Duas linguagens baseadas em texto:
⚬ Linguagem Textual estruturada (ST);
⚬ Lista de Instruções (IL);
• A norma IEC61131-3 não prevê uma completa correspondência
entre todas as linguagens de programação. Na prática, existe
apenas um pequeno conjunto de funções que podem ser
correctamente traduzidas de uma linguagem para outras.
04/11/2022 12
Lógica programável
• Programação do Autómato ILC131 da Phoenix Contacts
• O software de programação PC WORX permite:
⚬ Programar em Diagramas de Contactos (LD);
⚬ Programar em Listas de Instruções (IL);
⚬ Programar em Diagramas de Blocos Lógicos (FDB);
⚬ Programar Diagramas funcionais sequenciais (SFC ou
Grafcets);
⚬ Programar em Linguagem Textual estruturada (ST).
04/11/2022 13
Lógica programável
• Tipo de dados
• O PCWORX prevê diferentes tipos de dados, com a seguinte hierarquia :
04/11/2022 14
Lógica programável
Formato das constantes para diferentes tipos de dados
04/11/2022 15
Lógica programável
• Designação e gama de valores que podem assumir os diferentes
tipos de dados
04/11/2022 16
Lógica programável
• Designação e gama de valores que podem assumir os diferentes
tipos de dados
04/11/2022 17
Lógica programável
• Programar em PC WORX
• O aspeto geral do programa é o seguinte:
04/11/2022 18
Lógica programável
• Programar em PC WORX
• Para criar um novo projeto basta selecionar “New Project” no menu “File” e escolher
o modelo do autómato a utilizar. O equipamento existente no laboratório para as
aulas práticas de Automação é o “ILC 131 ETH 00/4.40”:
04/11/2022 19
Lógica programável
• Programar em PC WORX
• Na janela “Project Tree Window” constam todas as informações sobre o projeto em
termos de software e hardware, nomeadamente os programas, suas variáveis locais
e globais, interfaces existentes, tarefas, entre outros:
Por defeito é criado um programa
denominado “Main” que usa a
linguagem de FBD (Function Block
Diagram).
O programa “Main” bem como outros
programas criados em outras
linguagens irão surgir na janela
“Project Tree Window”, pasta “Logical
POUs” que aparece na parte
esquerda.
A pasta “Logical POUs (Programs
Organizer Unit)” significa “Unidade de
organização de Programas”.
04/11/2022 20
Lógica programável
• Programar em PC WORX
A pasta “Logical
POUs” contém três
elementos: o “Main”
onde se podem
arrastar e colocar as
funções e blocos de
funções desejadas; o
“MainV” onde se
declaram ou
observam as
variáveis locais do
programa e o
“MainT” onde se
pode colocar um
texto com a
descrição do
programa.
04/11/2022 21
Lógica programável
• Programar em PC WORX
• Antes de iniciar a programação do autómato ILC131 é necessário
configurar todos os módulos de interface de entradas e saídas binárias e
analógicas que estão ligados ao controlador.
• Estes módulos estão ligados internamente ao ILC131 através de um “bus”
(barramento) local através do protocolo de comunicação Interbus.
• Existem nos computadores do laboratório um ficheiro/projecto denominado
FicheiroBase já com a configuração preparada, na pasta Alunos
MyDocumentsPCWorX. Os alunos devem abrir este ficheiro, gravá-lo com
outro nome para a sua pasta de trabalho e trabalhar a partir daqui.
04/11/2022 22
Lógica programável
• Programar em PC WORX
• Também é possível trabalhar com este software em modo simulação. Para isso deverá
criar um novo projeto, onde deve selecionar o autómato RFC430 ETH-IB
Ver.>31/4.6D/5.06.
• Em simulação não é necessário criar a configuração do autómato.
04/11/2022 23
Lógica programável
• Programar em PC WORX
• Na janela “Project Tree View”, separador “Physical Hardware* > STD_CNF_IPC40* >
STD_RES_RFC430ET*” clicar no lado esquerdo do rato e selecionar a opção Settings.
Na janela de Resource Settings for ICP_40 selecionar a porta Simulation 1.
04/11/2022 24
Lógica programável
• Programar em PC WORX
Nota importante:
Nos blocos de funções a
entrada EN (Enable) pode
ser usada para uma
execução condicional dos
blocos. Por defeito esta
opção não está ativa e os
blocos não apresentam esta
possibilidade. Para a activar
deve ir ao menu
Extras>Options e no
separador Graphical Editor
deve selecionar a opção
Functions with EN/ENO
04/11/2022 25
Lógica programável
• Programar em PC WORX
Na janela de Programming Workspace do Main para inserir uma
variável, clicar na worksheet e clicar com o botão direito do rato,
escolhendo a opção “Variable”. Em alternativa basta pressionar F5
ou ir ao menu “Objects Variable”.

Nota importante: Quando se tratam de
variáveis de sistema estes parâmetros já se
encontram preenchidos e não devem ser
alterados. 26
Lógica programável
• Programar em PC WORX
Na janela “Variable Properties” estão disponíveis diversos campos”.
• Name: nome da variável a inserir. Através da
drop-down-list é também possível selecionar uma
variável existente ou de sistema;
• Data Type: pode ser do tipo BOOL, INT,
WORD, REAL, TIME, DATE,...;
• Usage: Se é do tipo local (VAR) ou do tipo
global (VAR_GLOBAL);
• Retain: ao escolher esta opção a variável
torna-se retentiva;
• Initial Value: valor por defeito da variável a
inserir;
• I/O address: endereço físico de uma entrada
/ saída do equipamento;
• Description: descrição da utilização /
propósito da variável;
• PDD: a variável é escrita na Process Data
Directory, de forma a ser utilizada noutras aplicações
(ex.: WebVisit);
• OPC: para reconhecimento e utilização da
variável com o AX OPC server
04/11/2022
• As entradas e saídas binárias do ILC131 ETH estão mapeadas com variáveis de
sistema e estão classificadas como variáveis globais (VAR_GLOBAL).
• As restantes variáveis que forem criadas são consideradas por defeito como
variáveis locais (VAR), podendo, caso se pretenda, serem também declaradas como
globais.
27
Lógica programável
• Programar em PC WORX
04/11/2022
• As variáveis de
sistema
associadas às
entradas e saídas
binárias
pertencentes ao
controlador
ILC131ETH
assumem as
seguintes
designações:
• ONBOARD_INPUT – Registo associado ao conjunto
de entradas binárias(IN1 a IN8);
• ONBOARD_INPUT_BIT0 – Bit associado à primeira
entrada binária (IN1);
• ONBOARD_INPUT_BIT1 – Bit associado à segunda
entrada binária (IN2);
• ………..;
• ONBOARD_INPUT_BIT7 – Bit associado à segunda
entrada binária (IN8);
• ONBOARD_OUTPUT_BIT0 – Bit associado à
primeira saída binária (OUT1);
• …………;
• ONBOARD_OUTPUT_BIT3 – Bit associado à quarta
saída binária (OUT4);
• Quando as variáveis de sistema não fazem parte do módulo do controlador
ILC131ETH, estas poderão ser adicionadas ao projeto. O exemplo seguinte mostra
como poderá ser feito este procedimento com uma variável de entrada analógica.
28
Lógica programável
• Programar em PC WORX
04/11/2022
• Criar uma variável.
Atribua por exemplo
o nome de
“Analog_input1”. Os
dados devem ser do
tipo “Word” e as
variáveis devem ser
globais.
• Para fazer a ligação da variável “Analog_input1”, selecione a opção “Process Data”
no menu “View”. Escolha depois a opção “Default” que mostra a lista de variáveis
globais criadas no programa. (O nome “Default” vem do facto do programa estar a
ser executado na tarefa (Task) denominada “Default”.)
29
Lógica programável
• Programar em PC WORX
04/11/2022
• Deverá selecionar o separador INTERBUS para escolher a carta desejada.
• Agora é necessário arrastar com o rato a variável “Analog_input1” para a primeira
entrada analógica
30
Lógica programável
• Programar em PC WORX
04/11/2022
• O procedimento para criar variáveis associadas às cartas digitais é idêntico, tendo o
cuidado de tornar a variável global e escolher a carta correspondente no separador
INTERBUS.
04/11/2022 31
Lógica programável
• Programação em IL
A linguagem IL
ou Lista de
Instruções é
uma linguagem
muito
semelhante as
linguagens de
baixo nível e,
por isso, não é
muito utilizada
• Programar em PC WORX
04/11/2022 32
Lógica programável
• Programação em IL
• Exemplo do modo como se atribuem variáveis e operadores na linguagem por lista
de instruções.
04/11/2022 33
Lógica programável
• Programação em IL e LD
• Exemplo I • Exemplo II
Lista de Instruções
LD
In0
ANDN In1
OR
In2
OR
In3
AND
In4
ST
Out0
AND
In5
ST
Out1
Lista de Instruções
LDN
In0
OR
In1
ORN
In2
AND
In3
ANDN In4
ST
Out0
ST
Out1
ST
Out2
• Diagrama Básico • Diagrama Básico
04/11/2022 34
Lógica programável
• Programação em LD
• Analogia entre Diagramas de contactos e esquemas eléctricos
• Porque razão se pode ligar H1 directamente
aos contactos de s1 e s2, no autómato e no
esquema eléctrico não se pode?
04/11/2022 35
Lógica programável
• Programação em LD
• Instruções SET e RESET • Circuito equivalente com auto_alimentação
Na janela de Main pode utilizar a toolbar do Ladder para inserir
uma network de uma entrada e uma saída ou contactos de entrada
e de saída
04/11/2022 36
Lógica programável
• Programação em LD
Para alterar o tipo de entrada de contacto aberto para fechado ou o
tipo de saída (entre ativa, inativa, set ou reset) basta abrir a janela
de propriedades da variável.
04/11/2022 37
Lógica programável
• Programação em LD e FBD
• Instruções de Transferência
⚬ A instrução MOVE pode mover o valor de
uma variável para outra. O tipo de dado da
entrada tem de coincidir com o tipo de
dado da saída: Por exemplo de Double Word
para Double Word
⚬ A instrução SWAP troca os bytes mais e
menos significativos, apenas para Words
04/11/2022 38
Lógica programável
• Programação em LD e FBD
• Tipos de Temporizadores
• TON – Temporizador com atraso ao trabalho;
• TOF – Temporizador com atraso ao repouso;
• TP – Temporizador por impulsos.
• Características
• IN (Input) – Dá início ao processo de contagem. É do tipo Bool;
• Q (Output)– Indica que o temporizador finalizou a contagem de tempo
programada. É do tipo Bool.
• PT (Preset time) – Programado pelo utilizador. Pode ser uma variável do tipo
Time ou pode ser uma constante indicada da seguinte forma: Time#2s para
por exemplo 2 segundos; Ou Time#2m para 2 minutos; ou Time#2h para
duas horas: Ou Time#0,5s para meio segundo.
• Tem um máximo de 4 294 967segundos.
• ET (Elapsed time) – indica o tempo já decorrido. Pode ser guardado numa
variável do tipo Time.
04/11/2022 39
Lógica programável
• Programação em LD e FBD
• TON – Temporizador com atraso ao trabalho
Quando a contagem de
tempo (ET) for maior ou
igual ao preset time (PT)
o bit de saída fica activo.
Se o tempo de activação
da entrada for menor que
ET, o bit de saída não
chega a ficar activo
04/11/2022 40
Lógica programável
• Programação em LD e FBD
• TOF – Temporizador com atraso ao repouso
Quando a entrada
está activa o bit de
saída do
temporizador fica
imediatamente activo
e quando a entrada
fica inactiva, é
iniciada a contagem
de tempo.
No fim desta
contagem o bit de
saída é levado a zero.
04/11/2022 41
Lógica programável
• Programação em LD e FBD
• TP – Temporizador por impulsos
Neste tipo de
temporizador,
independentemente
do tempo de
activação da
entrada, quer seja
maior ou menor que
PT, a saída está
activa sempre com o
mesmo intervalo de
tempo.
04/11/2022 42
Lógica programável
• Programação em LD e FBD
• Exercícios com temporizadores
1.Implemente um TON que fique activo ao fim de 10 seg se a entrada In0
estiver activa, mas que fique activo ao fim de 20 seg se In1 estiver activa;
2.Considere um motor equipado com ventilador (ventilação forçada) que se
liga em simultâneo com o motor, mas que permanece activo durante 30 seg
após se desligar o motor. Programe o temporizador;
3.Admita uma campainha que toca quando se premir o botão de pressão
respetivo, mas com um tempo fixo de 5 seg. Programe um temporizador para
este efeito;
4.Um sistema de alarme tem uma sinalização sonora intermitente, ou seja
está activa durante 2 segundos, inactiva por 3 segundos e assim
sucessivamente até se desligar o alarme. Implemente este funcionamento
com temporizadores.
04/11/2022 43
Lógica programável
• Programação em LD e FBD
• Tipos de Contadores
• CTU – Contador Ascendente;
• CTD – Contador Descendente;
• CTUD– Contador Ascendente/Descendente.
• Características
• PV (Preset value) – entre 0 e 32767 e programado pelo utilizador;
• CV (Current value) – entre 0 e 32767; indica o valor atual da contagem;
• CU – Incrementa o contador no flanco ascendente;
• CD – Decrementa o contador no flanco ascendente;
• R (Reset) – Coloca o conteúdo do contador a zero;
• LD (Load) – Coloca o conteúdo do contador com o valor de PV;
• Q (Output) – Saídas dos contadores Ascendente e Descendente;
• QU e QD – Saídas do contador Ascendente e Descendente;
04/11/2022 44
Lógica programável
• Programação em LD e FBD
• CTU – Contador Ascendente
04/11/2022 45
Lógica programável
• Programação em LD e FBD
• CTD – Contador Descendente
04/11/2022 46
Lógica programável
• Programação em LD e FBD
• CTUD – Contador Ascendente/Descendente
04/11/2022 47
Lógica programável
• Programação em LD e FBD
• Instruções de Comparação
⚬ As instruções de comparação podem comparar entradas do tipo Bool, Byte, Word,
DWord, Int, Dint, Real ou Time. A saída é sempre do tipo Bool.
A saída é verdadeira se
V000 > V001
A saída é verdadeira se
V002 V003
≥
A saída é verdadeira se
V004 = V005
A saída é verdadeira se
V006 < V007
A saída é verdadeira se
V008 V009
≤
A saída é verdadeira se
V010 diferente de V011
04/11/2022 48
Lógica programável
• Programação em LD e FBD
• Exercícios
1.Implemente um sistema de contagem de peças, que por cada 12 peças active
uma sinalização luminosa durante 5 segundos e que fique pronto para contar
novas peças. Estas 12 peças são colocadas em caixas e por cada 6 caixas
existe outra sinalização luminosa que é activada durante 10 segundos.
2.Implemente o sistema de alarme intermitente visto anteriormente (2
segundos a tocar, 3 segundos de silencio), mas agora só com um
temporizador e um comparador.
04/11/2022 49
Lógica programável
• Programação em LD e FBD
• Operações aritméticas
⚬ADD - Adiciona 2 números.
⚬SUB - Subtrai a segunda entrada à primeira.
⚬MUL - Multiplica 2 números.
⚬DIV – Divide a primeira entrada pela
segunda e apresenta o quociente. Ignora o
resto se o número for inteiro ou apresenta a
parte fracionária se o número for real.
⚬MOD – Divide a primeira entrada pela
segunda e apresenta o resto.
⚬EXPT – Calcula a exponenciação, sendo a
base a primeira entrada e o expoente a
segunda.
⚬NEG – Apresenta o simétrico da entrada.
Se V000=2,0, V001=1,0, V006=2,0 qual o resultado
obtido em V007?
⚬ Nota: O tipo de dado da entrada tem de
coincidir com o tipo de dado da saída. No
hardware específico do laboratório o tipo
de variáveis aceite é INT ou REAL.
Se V003=14, V004=3, qual o resultado obtido em V008?
04/11/2022 50
Lógica programável
• Programação em LD e FBD
• Operações numéricas
⚬ABS – Obtem o módulo da entrada
⚬SQRT – Obtem a raiz quadrada da entrada
⚬ACOS, ASIN, ATAN - Obtém a respetiva função
trigonométrica inversa da entrada, em
radianos
⚬COS, SIN, TAN - Obtém a respetiva função
trigonométrica da entrada, em radianos
⚬EXP - Obtém o valor de e elevado à entrada.
⚬LN - Obtem o logaritmo para a base e da
entrada.
⚬LOG - Obtém o logaritmo para a base 10 da
entrada.
Se Variavel = 30.0,
qual o resultado
obtido em
Sin_graus?
04/11/2022 51
Lógica programável
• Programação em LD e FBD
• Operações lógicas
⚬ NOT – Complemento(ou inverso)
⚬ AND – AND (bit a bit)
⚬ OR – OR (bit a bit)
⚬ XOR – XOR (bit a bit)
Se o “número a negar” for 2#1010 qual o valor em “res_not”?
Se o “número a testar” for 5 e o “teste_par_impar” for 1 qual o valor
em “par_impar_0_1?
04/11/2022 52
Lógica programável
• Programação em LD e FBD
• Outras Operações lógicas
⚬ R_TRIG, F_TRIG – A saída é verdadeira na
deteção do flanco
ascendente/descendente (rising/falling)
da entrada. Como tal a saída terá um
tempo limitado a um ciclo de scan do
autómato.
⚬ SR, RS – Força a saída a 1 se a entrada SET
for verdadeira e mantém a 1 enquanto a
entrada RESET for falsa. Quando a entrada
RESET for verdadeira força a saída a 0. Se
ambas as entradas forem verdadeiras no
SR o SET tem prioridade, no RS o RESET tem
prioridade,
⚬ SEL – A função de seleção coloca o valor da
entrada IN0 na saída se a entrada G for
falsa, ou o valor da entrada IN1 se a
entrada G for verdadeira
04/11/2022 53
Lógica programável
• Programação em LD e FBD
• Operações de Conversão
É possível converter um valor dado num
determinado formato para outro formato de dados
Os formatos podem ser BOOL, BYTE, WORD,
DWORD, INT, SINT, DINT, UINT, USINT, UDINT, REAL,
LREAL, STRING, TIME, BCD.
Para converter um valor noutro basta procurar um
bloco do tipo: FORMATO1_TO_FORMATO2
Por exemplo
⚬ BOOL_TO_BYTE – Conversão de variável
booleana para byte;
⚬ REAL_TO_DINT – Conversão de variável real
para duplo inteiro (com arredondamento).
Se não se quiser arrendondamento deve-se
usar o bloco TRUNC_DINT, TRUNC_INT ou
TRUNC_SINT.
04/11/2022 54
Lógica programável
• Programação em LD e FBD
• Operações de rotação e deslocamento de bits
⚬ SHL; SHL_BYTE; SHL_WORD; SHL_DWORD –
Desloca para a esquerda N bits; do byte; da
word; da double_word. Os N bits à esquerda
são esmagados e as N novas posições de bits
à direita são preenchidas a 0
⚬ SHR; SHR_BYTE; SHR_WORD; SHR_DWORD –
Desloca para a direita N bits; do byte; da
word; da double word.
⚬ ROL; ROL_BYTE; ROL_WORD; ROL_DWORD –
Roda para a esquerda N bits; do byte; da
Word; da Double Word. Os N bits À esquerda
são reescritos nas N novas posições à direita
⚬ ROR; ROR_BYTE; ROR_WORD; ROR_DWORD –
Roda para a direita N bits; do byte; da word;
da Double_Word
Qual o resultado de V025 e de
V028?
04/11/2022 55
Lógica programável
• Programação em LD e FBD
• Exercício de Aplicação I
04/11/2022 56
Lógica programável
• Programação em LD e FBD
• Exercício de Aplicação I - Descrição
• O botão de pressão S0 dá inicio ao processo começando por abrir EV1 e
arrancar B1. O enchimento da misturadora com o líquido A é feita até ao
nível S2 (Nível médio).
• Quando o nível S2 é atingido dá-se o enchimento final da misturadora com
o líquido B através de EV2 e B2. O enchimento final termina no nível S1.
• Depois da misturadora cheia, EV5 vai adicionar reagente durante 10 seg.
• Finalizado este processo o motor M1 vai agitar convenientemente a
mistura durante 1 minuto.
04/11/2022 57
Lógica programável
• Programação em LD
• Exercício de Aplicação I – Descrição (continuação)
• Decorrido este tempo, uma das válvulas EV3 ou EV4 e Bombas B3 ou B4
respetivamente vão funcionar e drenar o líquido do reservatório. Estas
válvulas e bombas funcionam em regime de rotação. Dá-se prioridade
inicial a EV3 e B3.
• O processo termina com o esvaziamento da misturadora (S3) e só volta a
começar pressionando o botão de pressão S0.
• O botão ST pára o processo em qualquer altura.
• Deverá ainda existir um contador para o número de vezes que o processo
foi efectuado.
04/11/2022 58
Lógica programável
• Programação em LD e FBD
• Exercício de Aplicação I – Solução (LD)
04/11/2022 59
Lógica programável
• Programação em LD e FBD
• Exercício de Aplicação I – Solução (LD)
04/11/2022 60
Lógica programável
• Programação em LD e FBD
• Exercício de Aplicação I – Solução (LD)
04/11/2022 61
Lógica programável
• Programação em LD e FBD
• Exercício de Aplicação I – Solução (LD)
04/11/2022 62
Lógica programável
• Programação em LD e FBD
• Exercício de Aplicação I – Solução (LD)
04/11/2022 63
Lógica programável
• Programação em LD e FBD
• Exercício de Aplicação I – Solução (LD)
04/11/2022 64
Lógica programável
• Programação em LD e FBD
• Exercício de Aplicação I – Solução (LD)
04/11/2022 65
Lógica programável
Condições de
funcionamento.
• Programação em ST (Statement List)
Principais características e
elementos
Operadores e
atribuições
Chamada de funções e
seus argumentos.
Ciclos de repetição.
Chamada de blocos de
funções e seus
argumentos.
04/11/2022 66
Lógica programável
• Programação em ST (Statement List)
Operadores
04/11/2022 67
Lógica programável
• Programação em ST (Statement List)
Lista de expressões
04/11/2022 68
Lógica programável
• Programação em ST (Statement List)
Lista de expressões
04/11/2022 69
Lógica programável
• Programação em ST (Statement List)
Para programar o autómato ILC 131 em ST é necessário criar um
novo programa (no projeto) em linguagem ST. Na pasta “Logical
POUs”, no pop-up menu escolher a opção “Insert –>Program”, ou usar o
ícone respetivo.
Na janela Insert dar um nome sugestivo,
escolher o Type como Program e a Language
como ST.
04/11/2022 70
Lógica programável
• Programação em ST (statement List)
De seguida é necessário criar uma nova instância de programa. Na
pasta “Physical Hardware>STD_CNF > STD_RES > Tasks >
STD_TSK_DEFAULT” no pop-up menu escolha a opção “Insert –>Program
Instance”.
Na janela Insert dar um nome
sugestivo, no Program Type escolha
o programa que criou no ponto
anterior e no Type mantenha o
Program Instance.
04/11/2022 71
Lógica programável
• Programação em ST (Statement List)
O software PC WorX proporciona uma
forma muito simples de utilizar esta
linguagem.
Para começar a programar em ST é
necessário escolher a worksheet, do
programa criado.
Na janela “Edit Wizard” clicar duas vezes nas instruções pretendidas ou arrastar
para a worksheet. Surge a instrução selecionada em forma de comentário com
as variáveis respetivas.
04/11/2022
72
Lógica programável
• Programação em ST (Statement List)
Será também necessário declarar as variáveis se não tiver sido feito
anteriormente.
Para tal, selecionar a variável e pressionar F5, ou com o pop-up menu. Em
alternativa pode declarar essas variáveis na tabela de variáveis que existe na
pasta Logical POUs.
Agora basta substituir as variáveis criadas no comentário pelas variáveis
pretendidas no programa e retirar a forma de comentário (remover os
parêntesis e asteriscos) .
04/11/2022 73
Lógica programável
• Programação em ST (statement List)
Também é possível introduzir condicionais e ciclos de funcionamento. Na
janela “Edit Wizard” selecionar o grupo Keywords e arrastar para a
worksheet de programação, de forma semelhante às restantes
instruções.
Do mesmo modo, ao arrastar, fica pré-preenchido o texto, faltando
colocar as variáveis e as condições pretendidas
04/11/2022 74
Lógica programável
• Programação em ST (statement List)
Exemplo para o arranque do motor com botão start e paragem pelo
botão stop.
Em ST as condições tem de ser pensadas na
forma de SET e RESET.
Se a variável start é ou foi verdadeira a
instrução do IF foi feita e o motor1 ficou a
TRUE.
Quando o start não estiver ativo, o ElseIF é
corrido mas o motor1 só fica a FALSE se o
stop estiver ativo.
No exemplo se ambas as variáveis start e stop
estiverem ativas o motor1 fica ativo enquanto
Em LD é possível arrancar e parar o motor com auto-alimentação ou
por instruções de SET e RESET.
4_1 - AT1 - Lógica Programada 1_final.pptx.pptx

4_1 - AT1 - Lógica Programada 1_final.pptx.pptx

  • 1.
    Lógica Programável –1ª Parte Armando Cordeiro Licenciatura em Engenharia Eletrotécnica Automação I
  • 2.
    04/11/2022 2 Introdução • Alógica programável utiliza sistemas electrónicos programáveis para fazer o tratamento dos dados. • Ao contrário da lógica cablada, não é definido por um esquema em si mas por um programa introduzido numa memória. • Os principais sistemas electrónicos programáveis usados na indústria são os autómatos programáveis (a.p.), os microcontroladores e os terminais de interface humano-máquina que são geralmente também programáveis. • A lógica programável surgiu por volta dos anos 70 devido: ⚬ a grandes avanços registados nos circuitos electrónicos; ⚬ à necessidade de reduzir os custos dos sistemas cablados e resolver problemas complexos colocados pelas exigências de mercado. • Actualmente exige-se aos a.p. determinadas funções de controlo e de salvaguarda que visam garantir a segurança de pessoas e bens.
  • 3.
    04/11/2022 3 Vantagens • Menoscomponentes: a lógica programável substitui um grande número de outros dispositivos. • Maior flexibilidade: as aplicações podem ser modificados com pouco esforço usando apenas um software de programação. • Menor espaço: comando concentrado no autómato programável (a.p. ou PLC), ocupando menos espaço, podendo existir soluções distribuídas. • Menos tempo de montagem: resume-se à cablagem da alimentação das entradas e das saídas. • Maior fiabilidade: Menos desgaste de peças em movimento (vantagem geral dos sistemas estáticos); • Manutenção facilitada: a manutenção e a regulação ficam facilitadas.
  • 4.
    04/11/2022 4 Vantagens • Possibilidadesde expansão: ligação a unidades de expansão de entradas e saídas digitais, analógicas ou módulos de comunicações. • Os benefícios ultrapassam largamente os custos: apesar dos custos de alguns equipamentos serem elevados, as potencialidades são muito grandes face à lógica cablada. • Possibilidade de ligação remota: Ligação a redes de comunicação digitais para troca de mensagens com redes de campo: CAN, profibus, DeviceNet, etc. • Funções matemáticas: álgebra de inteiros e virgula flutuante. Cálculos trigonométricos avançados. • Elevado potencial de cálculo: Velocidades de cálculo na ordem de 0,5 a 1,8 s/instrução (em determinadas aplicações pode não ser  suficiente). • Funções de controlo: Blocos com funções de controlo clássico (PID), Lógica difusa, etc.
  • 5.
    04/11/2022 5 Lógica programável •Autómato O Autómato é um equipamento electrónico robusto, que está preparado para trabalhar em ambientes industriais, programado pelo utilizador, com funcionamento cíclico e que é capaz de controlar processos. Este controlo é efectuado através ⚬ das entradas que dão informação ao autómato sobre o processo, ⚬ do programa que analisa esta informação e ⚬ das saídas que activam ou desactivam os equipamentos necessários. Utilizados em aplicações comerciais, ou industriais, os autómatos actuam como controladores para máquinas e processos. Monitorizam as entradas, tomam decisões e controlam as saídas de forma a automatizar máquinas e processos.
  • 6.
    04/11/2022 6 Lógica programável •Classificação dos Autómatos ⚬ Compactos – Integram no mesmo conjunto todos os elementos necessários ao seu funcionamento (preços económicos e dedicados a pequenas aplicações). ⚬ Modulares – São compostos por diversos módulos que se associam de forma a obter a melhor configuração para cada aplicação.
  • 7.
    04/11/2022 7 Lógica programável •Arquitectura básica de um autómato programável
  • 8.
    04/11/2022 8 Lógica programável •Arquitectura básica de um autómato programável • CPU – Unidade Central de processamento ou microprocessador é o elemento de processamento de operações aritméticas e lógicas e funções de controlo. • Memória – Composta pela memória do sistema operativo (firmware), memória de programa (programa de aplicação) e memória de dados (valores das entradas e saídas, resultados das operações do CPU, etc.). Podem existir outras memórias internas ou externas (EEPROM, FLASH). • Entradas e saídas – Asseguram a interligação directa do a.p. com o seu ambiente de trabalho. As entradas fornecem informação ao programa sobre estados de sensores, botões, detectores, etc. As saídas actuam directa ou indirectamente sobre os elementos da aplicação. • Fonte de Alimentação – Proporciona as tensões necessárias ao funcionamento do autómato. Em determinados casos a fonte é externa. Os valores usuais são 24VDC e entre 80VAC e 230VAC. • Comunicações digitais – Permite realizar a programação do autómato, a sua ligação numa rede de comunicação digital ou a ligação a outros dispositivos tais como outros autómatos e consolas de interface humano- máquina.
  • 9.
    04/11/2022 9 Lógica programável •Princípio de funcionamento do Autómato Programável Tempo de ciclo • Watchdog – temporizador que detecta falhas grosseiras no a.p. Fecha ou abre um contacto exterior em caso de falha. Sistema de segurança básico.
  • 10.
    04/11/2022 10 Lógica programável •Princípio de funcionamento do Autómato Programável Fase 1: leitura das variáveis de entrada O ciclo de scan começa com a leitura do estado das entradas físicas e respectivo armazenamento nas variáveis de entradas. Fase 2: execução do programa A informação presente nas variáveis de entradas, é processada pela CPU, que de acordo com o programa existente na memória actualiza o estado das variáveis de saídas, por cada instrução do programa. Fase 3: diagnóstico de erros Uma vez completa a execução do programa, a CPU executa uma série de tarefas internas de diagnósticos e comunicações. Fase 4: actualização das variáveis de saída Caso não existam erros os valores das variáveis de saída, contidos na memória de dados, são transferidos para as saídas físicas e o autómato passa ao ciclo seguinte (recomeçando a fase 1 e assim sucessivamente).
  • 11.
    04/11/2022 11 Lógica programável •Norma IEC61131-3 • A norma IEC61131-3 prevê cinco linguagens de programação diferentes, que podem ser combinadas dentro de uma aplicação: • Três linguagens gráficas: ⚬ Diagramas funcionais sequenciais (Grafcet) - (SFC); ⚬ Diagramas de Blocos Lógicos - (FBD); ⚬ Diagramas de Contactos (LD); • Duas linguagens baseadas em texto: ⚬ Linguagem Textual estruturada (ST); ⚬ Lista de Instruções (IL); • A norma IEC61131-3 não prevê uma completa correspondência entre todas as linguagens de programação. Na prática, existe apenas um pequeno conjunto de funções que podem ser correctamente traduzidas de uma linguagem para outras.
  • 12.
    04/11/2022 12 Lógica programável •Programação do Autómato ILC131 da Phoenix Contacts • O software de programação PC WORX permite: ⚬ Programar em Diagramas de Contactos (LD); ⚬ Programar em Listas de Instruções (IL); ⚬ Programar em Diagramas de Blocos Lógicos (FDB); ⚬ Programar Diagramas funcionais sequenciais (SFC ou Grafcets); ⚬ Programar em Linguagem Textual estruturada (ST).
  • 13.
    04/11/2022 13 Lógica programável •Tipo de dados • O PCWORX prevê diferentes tipos de dados, com a seguinte hierarquia :
  • 14.
    04/11/2022 14 Lógica programável Formatodas constantes para diferentes tipos de dados
  • 15.
    04/11/2022 15 Lógica programável •Designação e gama de valores que podem assumir os diferentes tipos de dados
  • 16.
    04/11/2022 16 Lógica programável •Designação e gama de valores que podem assumir os diferentes tipos de dados
  • 17.
    04/11/2022 17 Lógica programável •Programar em PC WORX • O aspeto geral do programa é o seguinte:
  • 18.
    04/11/2022 18 Lógica programável •Programar em PC WORX • Para criar um novo projeto basta selecionar “New Project” no menu “File” e escolher o modelo do autómato a utilizar. O equipamento existente no laboratório para as aulas práticas de Automação é o “ILC 131 ETH 00/4.40”:
  • 19.
    04/11/2022 19 Lógica programável •Programar em PC WORX • Na janela “Project Tree Window” constam todas as informações sobre o projeto em termos de software e hardware, nomeadamente os programas, suas variáveis locais e globais, interfaces existentes, tarefas, entre outros: Por defeito é criado um programa denominado “Main” que usa a linguagem de FBD (Function Block Diagram). O programa “Main” bem como outros programas criados em outras linguagens irão surgir na janela “Project Tree Window”, pasta “Logical POUs” que aparece na parte esquerda. A pasta “Logical POUs (Programs Organizer Unit)” significa “Unidade de organização de Programas”.
  • 20.
    04/11/2022 20 Lógica programável •Programar em PC WORX A pasta “Logical POUs” contém três elementos: o “Main” onde se podem arrastar e colocar as funções e blocos de funções desejadas; o “MainV” onde se declaram ou observam as variáveis locais do programa e o “MainT” onde se pode colocar um texto com a descrição do programa.
  • 21.
    04/11/2022 21 Lógica programável •Programar em PC WORX • Antes de iniciar a programação do autómato ILC131 é necessário configurar todos os módulos de interface de entradas e saídas binárias e analógicas que estão ligados ao controlador. • Estes módulos estão ligados internamente ao ILC131 através de um “bus” (barramento) local através do protocolo de comunicação Interbus. • Existem nos computadores do laboratório um ficheiro/projecto denominado FicheiroBase já com a configuração preparada, na pasta Alunos MyDocumentsPCWorX. Os alunos devem abrir este ficheiro, gravá-lo com outro nome para a sua pasta de trabalho e trabalhar a partir daqui.
  • 22.
    04/11/2022 22 Lógica programável •Programar em PC WORX • Também é possível trabalhar com este software em modo simulação. Para isso deverá criar um novo projeto, onde deve selecionar o autómato RFC430 ETH-IB Ver.>31/4.6D/5.06. • Em simulação não é necessário criar a configuração do autómato.
  • 23.
    04/11/2022 23 Lógica programável •Programar em PC WORX • Na janela “Project Tree View”, separador “Physical Hardware* > STD_CNF_IPC40* > STD_RES_RFC430ET*” clicar no lado esquerdo do rato e selecionar a opção Settings. Na janela de Resource Settings for ICP_40 selecionar a porta Simulation 1.
  • 24.
    04/11/2022 24 Lógica programável •Programar em PC WORX Nota importante: Nos blocos de funções a entrada EN (Enable) pode ser usada para uma execução condicional dos blocos. Por defeito esta opção não está ativa e os blocos não apresentam esta possibilidade. Para a activar deve ir ao menu Extras>Options e no separador Graphical Editor deve selecionar a opção Functions with EN/ENO
  • 25.
    04/11/2022 25 Lógica programável •Programar em PC WORX Na janela de Programming Workspace do Main para inserir uma variável, clicar na worksheet e clicar com o botão direito do rato, escolhendo a opção “Variable”. Em alternativa basta pressionar F5 ou ir ao menu “Objects Variable”. 
  • 26.
    Nota importante: Quandose tratam de variáveis de sistema estes parâmetros já se encontram preenchidos e não devem ser alterados. 26 Lógica programável • Programar em PC WORX Na janela “Variable Properties” estão disponíveis diversos campos”. • Name: nome da variável a inserir. Através da drop-down-list é também possível selecionar uma variável existente ou de sistema; • Data Type: pode ser do tipo BOOL, INT, WORD, REAL, TIME, DATE,...; • Usage: Se é do tipo local (VAR) ou do tipo global (VAR_GLOBAL); • Retain: ao escolher esta opção a variável torna-se retentiva; • Initial Value: valor por defeito da variável a inserir; • I/O address: endereço físico de uma entrada / saída do equipamento; • Description: descrição da utilização / propósito da variável; • PDD: a variável é escrita na Process Data Directory, de forma a ser utilizada noutras aplicações (ex.: WebVisit); • OPC: para reconhecimento e utilização da variável com o AX OPC server 04/11/2022
  • 27.
    • As entradase saídas binárias do ILC131 ETH estão mapeadas com variáveis de sistema e estão classificadas como variáveis globais (VAR_GLOBAL). • As restantes variáveis que forem criadas são consideradas por defeito como variáveis locais (VAR), podendo, caso se pretenda, serem também declaradas como globais. 27 Lógica programável • Programar em PC WORX 04/11/2022 • As variáveis de sistema associadas às entradas e saídas binárias pertencentes ao controlador ILC131ETH assumem as seguintes designações: • ONBOARD_INPUT – Registo associado ao conjunto de entradas binárias(IN1 a IN8); • ONBOARD_INPUT_BIT0 – Bit associado à primeira entrada binária (IN1); • ONBOARD_INPUT_BIT1 – Bit associado à segunda entrada binária (IN2); • ………..; • ONBOARD_INPUT_BIT7 – Bit associado à segunda entrada binária (IN8); • ONBOARD_OUTPUT_BIT0 – Bit associado à primeira saída binária (OUT1); • …………; • ONBOARD_OUTPUT_BIT3 – Bit associado à quarta saída binária (OUT4);
  • 28.
    • Quando asvariáveis de sistema não fazem parte do módulo do controlador ILC131ETH, estas poderão ser adicionadas ao projeto. O exemplo seguinte mostra como poderá ser feito este procedimento com uma variável de entrada analógica. 28 Lógica programável • Programar em PC WORX 04/11/2022 • Criar uma variável. Atribua por exemplo o nome de “Analog_input1”. Os dados devem ser do tipo “Word” e as variáveis devem ser globais.
  • 29.
    • Para fazera ligação da variável “Analog_input1”, selecione a opção “Process Data” no menu “View”. Escolha depois a opção “Default” que mostra a lista de variáveis globais criadas no programa. (O nome “Default” vem do facto do programa estar a ser executado na tarefa (Task) denominada “Default”.) 29 Lógica programável • Programar em PC WORX 04/11/2022 • Deverá selecionar o separador INTERBUS para escolher a carta desejada.
  • 30.
    • Agora énecessário arrastar com o rato a variável “Analog_input1” para a primeira entrada analógica 30 Lógica programável • Programar em PC WORX 04/11/2022 • O procedimento para criar variáveis associadas às cartas digitais é idêntico, tendo o cuidado de tornar a variável global e escolher a carta correspondente no separador INTERBUS.
  • 31.
    04/11/2022 31 Lógica programável •Programação em IL A linguagem IL ou Lista de Instruções é uma linguagem muito semelhante as linguagens de baixo nível e, por isso, não é muito utilizada • Programar em PC WORX
  • 32.
    04/11/2022 32 Lógica programável •Programação em IL • Exemplo do modo como se atribuem variáveis e operadores na linguagem por lista de instruções.
  • 33.
    04/11/2022 33 Lógica programável •Programação em IL e LD • Exemplo I • Exemplo II Lista de Instruções LD In0 ANDN In1 OR In2 OR In3 AND In4 ST Out0 AND In5 ST Out1 Lista de Instruções LDN In0 OR In1 ORN In2 AND In3 ANDN In4 ST Out0 ST Out1 ST Out2 • Diagrama Básico • Diagrama Básico
  • 34.
    04/11/2022 34 Lógica programável •Programação em LD • Analogia entre Diagramas de contactos e esquemas eléctricos • Porque razão se pode ligar H1 directamente aos contactos de s1 e s2, no autómato e no esquema eléctrico não se pode?
  • 35.
    04/11/2022 35 Lógica programável •Programação em LD • Instruções SET e RESET • Circuito equivalente com auto_alimentação Na janela de Main pode utilizar a toolbar do Ladder para inserir uma network de uma entrada e uma saída ou contactos de entrada e de saída
  • 36.
    04/11/2022 36 Lógica programável •Programação em LD Para alterar o tipo de entrada de contacto aberto para fechado ou o tipo de saída (entre ativa, inativa, set ou reset) basta abrir a janela de propriedades da variável.
  • 37.
    04/11/2022 37 Lógica programável •Programação em LD e FBD • Instruções de Transferência ⚬ A instrução MOVE pode mover o valor de uma variável para outra. O tipo de dado da entrada tem de coincidir com o tipo de dado da saída: Por exemplo de Double Word para Double Word ⚬ A instrução SWAP troca os bytes mais e menos significativos, apenas para Words
  • 38.
    04/11/2022 38 Lógica programável •Programação em LD e FBD • Tipos de Temporizadores • TON – Temporizador com atraso ao trabalho; • TOF – Temporizador com atraso ao repouso; • TP – Temporizador por impulsos. • Características • IN (Input) – Dá início ao processo de contagem. É do tipo Bool; • Q (Output)– Indica que o temporizador finalizou a contagem de tempo programada. É do tipo Bool. • PT (Preset time) – Programado pelo utilizador. Pode ser uma variável do tipo Time ou pode ser uma constante indicada da seguinte forma: Time#2s para por exemplo 2 segundos; Ou Time#2m para 2 minutos; ou Time#2h para duas horas: Ou Time#0,5s para meio segundo. • Tem um máximo de 4 294 967segundos. • ET (Elapsed time) – indica o tempo já decorrido. Pode ser guardado numa variável do tipo Time.
  • 39.
    04/11/2022 39 Lógica programável •Programação em LD e FBD • TON – Temporizador com atraso ao trabalho Quando a contagem de tempo (ET) for maior ou igual ao preset time (PT) o bit de saída fica activo. Se o tempo de activação da entrada for menor que ET, o bit de saída não chega a ficar activo
  • 40.
    04/11/2022 40 Lógica programável •Programação em LD e FBD • TOF – Temporizador com atraso ao repouso Quando a entrada está activa o bit de saída do temporizador fica imediatamente activo e quando a entrada fica inactiva, é iniciada a contagem de tempo. No fim desta contagem o bit de saída é levado a zero.
  • 41.
    04/11/2022 41 Lógica programável •Programação em LD e FBD • TP – Temporizador por impulsos Neste tipo de temporizador, independentemente do tempo de activação da entrada, quer seja maior ou menor que PT, a saída está activa sempre com o mesmo intervalo de tempo.
  • 42.
    04/11/2022 42 Lógica programável •Programação em LD e FBD • Exercícios com temporizadores 1.Implemente um TON que fique activo ao fim de 10 seg se a entrada In0 estiver activa, mas que fique activo ao fim de 20 seg se In1 estiver activa; 2.Considere um motor equipado com ventilador (ventilação forçada) que se liga em simultâneo com o motor, mas que permanece activo durante 30 seg após se desligar o motor. Programe o temporizador; 3.Admita uma campainha que toca quando se premir o botão de pressão respetivo, mas com um tempo fixo de 5 seg. Programe um temporizador para este efeito; 4.Um sistema de alarme tem uma sinalização sonora intermitente, ou seja está activa durante 2 segundos, inactiva por 3 segundos e assim sucessivamente até se desligar o alarme. Implemente este funcionamento com temporizadores.
  • 43.
    04/11/2022 43 Lógica programável •Programação em LD e FBD • Tipos de Contadores • CTU – Contador Ascendente; • CTD – Contador Descendente; • CTUD– Contador Ascendente/Descendente. • Características • PV (Preset value) – entre 0 e 32767 e programado pelo utilizador; • CV (Current value) – entre 0 e 32767; indica o valor atual da contagem; • CU – Incrementa o contador no flanco ascendente; • CD – Decrementa o contador no flanco ascendente; • R (Reset) – Coloca o conteúdo do contador a zero; • LD (Load) – Coloca o conteúdo do contador com o valor de PV; • Q (Output) – Saídas dos contadores Ascendente e Descendente; • QU e QD – Saídas do contador Ascendente e Descendente;
  • 44.
    04/11/2022 44 Lógica programável •Programação em LD e FBD • CTU – Contador Ascendente
  • 45.
    04/11/2022 45 Lógica programável •Programação em LD e FBD • CTD – Contador Descendente
  • 46.
    04/11/2022 46 Lógica programável •Programação em LD e FBD • CTUD – Contador Ascendente/Descendente
  • 47.
    04/11/2022 47 Lógica programável •Programação em LD e FBD • Instruções de Comparação ⚬ As instruções de comparação podem comparar entradas do tipo Bool, Byte, Word, DWord, Int, Dint, Real ou Time. A saída é sempre do tipo Bool. A saída é verdadeira se V000 > V001 A saída é verdadeira se V002 V003 ≥ A saída é verdadeira se V004 = V005 A saída é verdadeira se V006 < V007 A saída é verdadeira se V008 V009 ≤ A saída é verdadeira se V010 diferente de V011
  • 48.
    04/11/2022 48 Lógica programável •Programação em LD e FBD • Exercícios 1.Implemente um sistema de contagem de peças, que por cada 12 peças active uma sinalização luminosa durante 5 segundos e que fique pronto para contar novas peças. Estas 12 peças são colocadas em caixas e por cada 6 caixas existe outra sinalização luminosa que é activada durante 10 segundos. 2.Implemente o sistema de alarme intermitente visto anteriormente (2 segundos a tocar, 3 segundos de silencio), mas agora só com um temporizador e um comparador.
  • 49.
    04/11/2022 49 Lógica programável •Programação em LD e FBD • Operações aritméticas ⚬ADD - Adiciona 2 números. ⚬SUB - Subtrai a segunda entrada à primeira. ⚬MUL - Multiplica 2 números. ⚬DIV – Divide a primeira entrada pela segunda e apresenta o quociente. Ignora o resto se o número for inteiro ou apresenta a parte fracionária se o número for real. ⚬MOD – Divide a primeira entrada pela segunda e apresenta o resto. ⚬EXPT – Calcula a exponenciação, sendo a base a primeira entrada e o expoente a segunda. ⚬NEG – Apresenta o simétrico da entrada. Se V000=2,0, V001=1,0, V006=2,0 qual o resultado obtido em V007? ⚬ Nota: O tipo de dado da entrada tem de coincidir com o tipo de dado da saída. No hardware específico do laboratório o tipo de variáveis aceite é INT ou REAL. Se V003=14, V004=3, qual o resultado obtido em V008?
  • 50.
    04/11/2022 50 Lógica programável •Programação em LD e FBD • Operações numéricas ⚬ABS – Obtem o módulo da entrada ⚬SQRT – Obtem a raiz quadrada da entrada ⚬ACOS, ASIN, ATAN - Obtém a respetiva função trigonométrica inversa da entrada, em radianos ⚬COS, SIN, TAN - Obtém a respetiva função trigonométrica da entrada, em radianos ⚬EXP - Obtém o valor de e elevado à entrada. ⚬LN - Obtem o logaritmo para a base e da entrada. ⚬LOG - Obtém o logaritmo para a base 10 da entrada. Se Variavel = 30.0, qual o resultado obtido em Sin_graus?
  • 51.
    04/11/2022 51 Lógica programável •Programação em LD e FBD • Operações lógicas ⚬ NOT – Complemento(ou inverso) ⚬ AND – AND (bit a bit) ⚬ OR – OR (bit a bit) ⚬ XOR – XOR (bit a bit) Se o “número a negar” for 2#1010 qual o valor em “res_not”? Se o “número a testar” for 5 e o “teste_par_impar” for 1 qual o valor em “par_impar_0_1?
  • 52.
    04/11/2022 52 Lógica programável •Programação em LD e FBD • Outras Operações lógicas ⚬ R_TRIG, F_TRIG – A saída é verdadeira na deteção do flanco ascendente/descendente (rising/falling) da entrada. Como tal a saída terá um tempo limitado a um ciclo de scan do autómato. ⚬ SR, RS – Força a saída a 1 se a entrada SET for verdadeira e mantém a 1 enquanto a entrada RESET for falsa. Quando a entrada RESET for verdadeira força a saída a 0. Se ambas as entradas forem verdadeiras no SR o SET tem prioridade, no RS o RESET tem prioridade, ⚬ SEL – A função de seleção coloca o valor da entrada IN0 na saída se a entrada G for falsa, ou o valor da entrada IN1 se a entrada G for verdadeira
  • 53.
    04/11/2022 53 Lógica programável •Programação em LD e FBD • Operações de Conversão É possível converter um valor dado num determinado formato para outro formato de dados Os formatos podem ser BOOL, BYTE, WORD, DWORD, INT, SINT, DINT, UINT, USINT, UDINT, REAL, LREAL, STRING, TIME, BCD. Para converter um valor noutro basta procurar um bloco do tipo: FORMATO1_TO_FORMATO2 Por exemplo ⚬ BOOL_TO_BYTE – Conversão de variável booleana para byte; ⚬ REAL_TO_DINT – Conversão de variável real para duplo inteiro (com arredondamento). Se não se quiser arrendondamento deve-se usar o bloco TRUNC_DINT, TRUNC_INT ou TRUNC_SINT.
  • 54.
    04/11/2022 54 Lógica programável •Programação em LD e FBD • Operações de rotação e deslocamento de bits ⚬ SHL; SHL_BYTE; SHL_WORD; SHL_DWORD – Desloca para a esquerda N bits; do byte; da word; da double_word. Os N bits à esquerda são esmagados e as N novas posições de bits à direita são preenchidas a 0 ⚬ SHR; SHR_BYTE; SHR_WORD; SHR_DWORD – Desloca para a direita N bits; do byte; da word; da double word. ⚬ ROL; ROL_BYTE; ROL_WORD; ROL_DWORD – Roda para a esquerda N bits; do byte; da Word; da Double Word. Os N bits À esquerda são reescritos nas N novas posições à direita ⚬ ROR; ROR_BYTE; ROR_WORD; ROR_DWORD – Roda para a direita N bits; do byte; da word; da Double_Word Qual o resultado de V025 e de V028?
  • 55.
    04/11/2022 55 Lógica programável •Programação em LD e FBD • Exercício de Aplicação I
  • 56.
    04/11/2022 56 Lógica programável •Programação em LD e FBD • Exercício de Aplicação I - Descrição • O botão de pressão S0 dá inicio ao processo começando por abrir EV1 e arrancar B1. O enchimento da misturadora com o líquido A é feita até ao nível S2 (Nível médio). • Quando o nível S2 é atingido dá-se o enchimento final da misturadora com o líquido B através de EV2 e B2. O enchimento final termina no nível S1. • Depois da misturadora cheia, EV5 vai adicionar reagente durante 10 seg. • Finalizado este processo o motor M1 vai agitar convenientemente a mistura durante 1 minuto.
  • 57.
    04/11/2022 57 Lógica programável •Programação em LD • Exercício de Aplicação I – Descrição (continuação) • Decorrido este tempo, uma das válvulas EV3 ou EV4 e Bombas B3 ou B4 respetivamente vão funcionar e drenar o líquido do reservatório. Estas válvulas e bombas funcionam em regime de rotação. Dá-se prioridade inicial a EV3 e B3. • O processo termina com o esvaziamento da misturadora (S3) e só volta a começar pressionando o botão de pressão S0. • O botão ST pára o processo em qualquer altura. • Deverá ainda existir um contador para o número de vezes que o processo foi efectuado.
  • 58.
    04/11/2022 58 Lógica programável •Programação em LD e FBD • Exercício de Aplicação I – Solução (LD)
  • 59.
    04/11/2022 59 Lógica programável •Programação em LD e FBD • Exercício de Aplicação I – Solução (LD)
  • 60.
    04/11/2022 60 Lógica programável •Programação em LD e FBD • Exercício de Aplicação I – Solução (LD)
  • 61.
    04/11/2022 61 Lógica programável •Programação em LD e FBD • Exercício de Aplicação I – Solução (LD)
  • 62.
    04/11/2022 62 Lógica programável •Programação em LD e FBD • Exercício de Aplicação I – Solução (LD)
  • 63.
    04/11/2022 63 Lógica programável •Programação em LD e FBD • Exercício de Aplicação I – Solução (LD)
  • 64.
    04/11/2022 64 Lógica programável •Programação em LD e FBD • Exercício de Aplicação I – Solução (LD)
  • 65.
    04/11/2022 65 Lógica programável Condiçõesde funcionamento. • Programação em ST (Statement List) Principais características e elementos Operadores e atribuições Chamada de funções e seus argumentos. Ciclos de repetição. Chamada de blocos de funções e seus argumentos.
  • 66.
    04/11/2022 66 Lógica programável •Programação em ST (Statement List) Operadores
  • 67.
    04/11/2022 67 Lógica programável •Programação em ST (Statement List) Lista de expressões
  • 68.
    04/11/2022 68 Lógica programável •Programação em ST (Statement List) Lista de expressões
  • 69.
    04/11/2022 69 Lógica programável •Programação em ST (Statement List) Para programar o autómato ILC 131 em ST é necessário criar um novo programa (no projeto) em linguagem ST. Na pasta “Logical POUs”, no pop-up menu escolher a opção “Insert –>Program”, ou usar o ícone respetivo. Na janela Insert dar um nome sugestivo, escolher o Type como Program e a Language como ST.
  • 70.
    04/11/2022 70 Lógica programável •Programação em ST (statement List) De seguida é necessário criar uma nova instância de programa. Na pasta “Physical Hardware>STD_CNF > STD_RES > Tasks > STD_TSK_DEFAULT” no pop-up menu escolha a opção “Insert –>Program Instance”. Na janela Insert dar um nome sugestivo, no Program Type escolha o programa que criou no ponto anterior e no Type mantenha o Program Instance.
  • 71.
    04/11/2022 71 Lógica programável •Programação em ST (Statement List) O software PC WorX proporciona uma forma muito simples de utilizar esta linguagem. Para começar a programar em ST é necessário escolher a worksheet, do programa criado. Na janela “Edit Wizard” clicar duas vezes nas instruções pretendidas ou arrastar para a worksheet. Surge a instrução selecionada em forma de comentário com as variáveis respetivas.
  • 72.
    04/11/2022 72 Lógica programável • Programaçãoem ST (Statement List) Será também necessário declarar as variáveis se não tiver sido feito anteriormente. Para tal, selecionar a variável e pressionar F5, ou com o pop-up menu. Em alternativa pode declarar essas variáveis na tabela de variáveis que existe na pasta Logical POUs. Agora basta substituir as variáveis criadas no comentário pelas variáveis pretendidas no programa e retirar a forma de comentário (remover os parêntesis e asteriscos) .
  • 73.
    04/11/2022 73 Lógica programável •Programação em ST (statement List) Também é possível introduzir condicionais e ciclos de funcionamento. Na janela “Edit Wizard” selecionar o grupo Keywords e arrastar para a worksheet de programação, de forma semelhante às restantes instruções. Do mesmo modo, ao arrastar, fica pré-preenchido o texto, faltando colocar as variáveis e as condições pretendidas
  • 74.
    04/11/2022 74 Lógica programável •Programação em ST (statement List) Exemplo para o arranque do motor com botão start e paragem pelo botão stop. Em ST as condições tem de ser pensadas na forma de SET e RESET. Se a variável start é ou foi verdadeira a instrução do IF foi feita e o motor1 ficou a TRUE. Quando o start não estiver ativo, o ElseIF é corrido mas o motor1 só fica a FALSE se o stop estiver ativo. No exemplo se ambas as variáveis start e stop estiverem ativas o motor1 fica ativo enquanto Em LD é possível arrancar e parar o motor com auto-alimentação ou por instruções de SET e RESET.