CS-PLC1
Curso Básico
Autómatos Programáveis
2º Dia - continuação
APRESENTAÇÃO
O formador:
João Mealhas
Temporizadores e contadores
CX-PROGRAMMER - EDITOR DE SÍMBOLOS
Até agora, propositadamente, não nos preocupamos com o modo
como introduzimos os endereços necessários aos programas que
fomos desenvolvendo.
Estes foram introduzidos com a seguinte sequência:
1. Introdução do endereço pretendido (ex: 000.00)
2. Comentário associado (ex: ON)
ENDEREÇO
Desta forma a nossa variável
fica orientada ao comentário,
e perco algumas
funcionalidades, como seja a
chamada do endereço pelo
seu nome.
COMENTÁRIO
Temporizadores e contadores
CX-PROGRAMMER - EDITOR DE SÍMBOLOS
No entanto a definição das variáveis pode ser feita das seguintes
formas:
•
•
•
Individualmente à medida das necessidades
•
Introdução directa do endereço
•
Introdução directa do nome
Utilizando o Editor de Símbolos
•
Directamente
•
Recorrendo a outros softwares
Assignação automática
Como se tem
vindo a fazer
Temporizadores e contadores
INTRODUÇÃO DIRECTA DO ENDEREÇO
Temporizadores e contadores
INTRODUÇÃO DIRECTA DO NOME
Temporizadores e contadores
UTILIZANDO O EDITOR DE SÍMBOLOS
Sempre que possível esta deve ser a forma utilizada.
Num fase prévia ao desenvolvimento do programa propriamente dito, elaborar uma lista com
as variáveis que nos parecem necessárias ao programa, e fazer a respectiva atribuição de
endereços, nomes e comentários.
DIRECTAMENTE ATRAVÉS
DO CX-PROGRAMMER
AUXILIADO POR OUTROS
SOFTWARES
Temporizadores e contadores
ASSIGNAÇÃO AUTOMÁTICA
O CX-Programmer pode assignar automaticamente endereços aos contactos/nomes
Depois de ter habilitado a
opção “Automatic Allocation”
para o PLC em causa, cada
contacto que for criado
deixando o seu endereço em
branco, (é necessário colocar
o nome do contacto), terá
assignado um endereço que
será marcado como “Auto”
para indicar que esse
endereço não foi atribuído
pelo programador.
Iniciação à programação de autómatos
EXERCÍCIO 9
Descrição do pretendido:
• Utilizando o editor de símbolos do Cx-Programmer, trabalhar o último programa feito, de modo a
atribuir nomes aos respectivos endereços.
NOTA: Trabalhar a partir do último programa feito.
On
PEÇAS
REJEITADAS
Off
Sensor
NOME
ON
OFF
S_INSP
M_TAP
TIM_INSP
PEÇAS
OK
MT
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
ENDEREÇOS
0.00
0.01
0.02
1.00
T0000
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DA ZONA DE INSPECÇÃO
MOTOR TAPETE
TEMPO MÁX PARA A INSPECÇÃO
Temporizadores e contadores
CX-PROGRAMMER – SECÇÕES DO
PROGRAMA
Os programas a partir de um determinado tamanho/complexidade,
tornam-se difíceis de interpretar, dada a grande quantidade de
informação junta.
Uma melhor interpretação pode ser feita se o programa estiver
estruturado em blocos, devidamente identificados.
Desta forma é possível analisar apenas a parte do programa em questão,
em vez da sua totalidade, o que simplifica bastante as coisas.
Iniciação à programação de autómatos
EXERCÍCIO 10
Manual de
Exercícios
Descrição do pretendido:
pág. 12
• Utilizando o programa na sua última fase, criar 3 secções designadas por:
• TAPETE – Colocar apenas a função referente ao movimento do tapete
• TEMPO_INSP – Colocar apenas o temporizador
• FIM – Alterar apenas o nome
NOTA: Trabalhar a partir do último programa feito.
On
PEÇAS
REJEITADAS
Off
Sensor
PEÇAS
OK
MT
Temporizadores e contadores
CONTADORES – CNT
A instrução CNT permite a programação de um contador decrescente
Este é identificado com um número, tal como acontece nos temporizadores
É especificado também o valor de PRESET que pode ser uma constante ou o valor contido
numa word.
Um pormenor importante de
se referir, é que ao contrário
dos temporizadores, os
contadores retêm o seu
conteúdo, mesmo após a falha
de alimentação do autómato.
Temporizadores e contadores
CONTADORES – CNTR(12)
A instrução CNTR(12) permite programar um contador reversível
Tal como na instrução CNT, este é identificado com um número
É especificado também o valor de PRESET que pode ser uma constante ou o valor
especificado por um canal
Iniciação à programação de autómatos
EXERCÍCIO 11
Descrição do pretendido:
• Ao processo que temos vindo a utilizar, foi retirada a fase referente à inspecção.
• Pretende-se agora, e após a ordem de arranque do sistema (On), transportar 5 peças (ex:
unidades por palete), após as quais o sistema devera permanecer em repouso até nova ordem (On).
• À ordem de paragem (Off) o sistema deverá parar. Ao reiniciar deverá contar novamente mais 5
peças, independentemente do número em que se encontrava quando foi dada a ordem de paragem.
On
Off
Sensor
NOME
ON
OFF
S_CONT
M_TAP
CNT_PEÇAS
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
MT
ENDEREÇOS
0.00
0.01
0.04
1.00
C0001
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DA SAÍDA - CONTA NUMERO DE PEÇAS
MOTOR TAPETE
CONTA PEÇAS À SAÍDA
Temporizadores e contadores
CX-PROGRAMMER – APAGAR ENDEREÇOS
NÃO NECESSÁRIOS
Durante o desenvolvimento do programa, é frequente encontra-se endereços que por razões
várias não estão a ser utilizados. Por exemplo por se ter apagado ou alterado parte do
programa.
Como é óbvio é muito complicado fazer esta verificação manualmente, principalmente se o
programa for extenso.
O Cx-Programmer permite apagar de uma forma automática os endereços definidos mas não
utilizados. Esta verificação pode ser feita a uma determinada área de memória ou à sua
totalidade.
Iniciação à programação de autómatos
EXERCÍCIO 12
Descrição do pretendido:
• Apagar todos os endereços do programa anterior que não estejam a ser utilizados, recorrendo à
função do Cx-Programmer que permite esta operação.
NOME
ON
OFF
S_INSP
S_CIL_FR
S_CONT
M_TAP
CIL_REJ
CNT_PEÇAS
TIM_INSP
DU_SINSP
DD_SINSP
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
ENDEREÇOS
0.00
0.01
0.02
0.03
0.04
1.00
1.01
C0001
T0000
W0.00
W0.01
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DA ZONA DE INSPECÇÃO
CILINDRO À FRENTE
SENSOR DA SAÍDA - CONTA NUMERO DE PEÇAS
MOTOR TAPETE
CILINDRO REJEIÇÃO DE PEÇAS
CONTA PEÇAS À SAÍDA
TEMPO MÁX PARA A INSPECÇÃO
DIFU DO SENSOR DA ZONA DE INSPECÇÃO
DIFD DO SENSOR DA ZONA DE INSPECÇÃO
Antes
Depois
NOME
ON
OFF
S_CONT
M_TAP
CNT_PEÇAS
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
ENDEREÇOS
0.00
0.01
0.04
1.00
C0001
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DA SAÍDA - CONTA NUMERO DE PEÇAS
MOTOR TAPETE
CONTA PEÇAS À SAÍDA
Temporizadores e contadores
VARIÁVEIS GLOBAIS E LOCAIS
Dentro do editor de variáveis globais declaram-se as variáveis que
serão comuns a qualquer das tarefas que se definam para o projecto.
As variáveis criadas nos editores de variáveis locais só serão visíveis
na tarefa (programa) onde tenham sido criadas e não nas restantes.
Iniciação à programação de autómatos
EXERCÍCIO 13
Descrição do pretendido:
• Ao programa feito no exercício anterior, alterar as variáveis definidas como Globais para
variáveis Locais.
• Recorrendo ao editor de símbolos, alterar os seguintes endereços:
Sensor de saída: De 000.04 para 000.02
Contador: De C0001 para C0000
NOME
ON
OFF
S_CONT
M_TAP
CNT_PEÇAS
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
ENDEREÇOS
0.00
0.01
0.02
1.00
C0000
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DA SAÍDA - CONTA NUMERO DE PEÇAS
MOTOR TAPETE
CONTA PEÇAS À SAÍDA
Sistemas numéricos
SISTEMAS NUMÉRICOS
O sistema mais comum de representação é sem duvida o sistema
decimal que utiliza os símbolos de "0" a "9".
Em certas aplicações (máquinas, comunicações, etc.), recorre-se
frequentemente a outros sistemas de numeração, por forma a optimizar
a sua exploração tais como sistemas:
•Binário
•BCD ( binário codificado decimal )
•Hexadecimal
•Gray
•Ascii
Sistemas numéricos
SISTEMA BINÁRIO
Num circuito eléctrico, facilmente podemos definir dois estados: ligado/desligado ou com
tensão/sem tensão. Podem-se então usar estes dois estados como base de um sistema
numérico; um sistema binário.
Para simplificar a representação dos estados ligado e desligado usam-se os símbolos 1 e 0
respectivamente.
Podemos codificar valores numéricos numa base binária, usando a mecânica que já foi
anteriormente explicada para o sistema decimal.
À frente da
representação
binária, colocou-se
o valor decimal
correspondente.
Sistemas numéricos
SISTEMA BINÁRIO
Fórmula geral de conversão de um número binário para decimal
Nº DECIMAL  Z N 2 N  Z N1 2 N 1  ....  Z1 21  Z 0 2 0
Procedimento para a conversão
do numero 1100 em binário,
para o seu equivalente em
decimal.
1 1 0 0 (Binário) = ???? (Décimal)
1 23  1 22  0  21  0  20  12
Procedimento para a conversão do
numero 12 em decimal, para o seu
equivalente em binário.
Sistemas numéricos
SISTEMA BCD
Para que a conversão de um valor binário em decimal seja mais fácil, existe um sistema de
codificação que usa quatro bits para codificar valores de 0 a 9, desaproveitando as restantes
6 combinações possíveis.
Esta forma de codificar valores numéricos em binário chama-se BCD.
Procedimento para a
representação do
numero 12 em BCD
1 2 (Décimal) = ???? (BCD)
0001 0010 (BCD)
Para codificar o valor
decimal 947, temos a
seguinte codificação
BCD:
Sistemas numéricos
SISTEMA HEXADECIMAL
Este sistema utiliza como símbolos, os números de 0 a 9 e as letras de
'A' a ' F'.
Procedimento para a
conversão do numero
4382 em decimal para
hexadecimal.
Procedimento para a
conversão do numero
111E em hexadecimal
para decimal
4382
118
062
14
16
27´3 16
113 17
1
1
111E
16
1
REPRESENTAÇÃO EM
HEXADECIMAL
4382  1163 1162 1161 14160
TRATAMENTO DE DADOS
OBJECTIVOS
Análise e aplicação de algumas
intrusões dedicadas ao tratamento de
dados
Trabalhar com o editor de áreas de
memória do cx-programmer
Tratamento de dados
INSTRUÇÃO DE COMPARAÇÃO CMP(20)
Esta instrução permite comparar dois valores numéricos sendo o
resultado dado pelo estado de três relés especiais
A instrução CMP(20) é sempre antecedida por uma condição
lógica que quando está a ON permite a execução da comparação
Nas novas famílias de autómatos
CS e CJ podem utilizar-se funções
de comparação directas:
Se A>B então o relé 255.05 vai a ON.
Se A=B então o relé 255.06 vai a ON.
Se A<B então o relé 255.07 vai a ON.
Iniciação à programação de autómatos
EXERCÍCIO 14
Descrição do pretendido:
• Ao programa da fase anterior foi acrescentada uma torre luminosa para informação ao operador
do estado da contagem.
• Durante a contagem das 5 peças a embalar a luz vermelha e a luz amarela devem dar a seguinte
indicação:
• Amarela – Deve acender quando faltarem 2 peças para finalizar o ciclo
• Vermelha – Deve acender à 5 peça transportada. Adicionando o facto de que esta deverá
piscar em intervalos de 1 segundo.
• À ordem de novo ciclo (On), ou à ordem de paragem (Off) os indicadores luminosos deverão
apagar.
On
Off
Sensor
NOME
ON
OFF
S_CONT
M_TAP
L_AMARELA
L_VERMELHA
CNT_PEÇAS
MT
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
ENDEREÇOS
0.00
0.01
0.02
1.00
1.01
1.02
C0000
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DA SAÍDA - CONTA NUMERO DE PEÇAS
MOTOR TAPETE
LUZ AMARELA DA TORRE
LUZ VERMELHA DA TORRE
CONTA PEÇAS À SAÍDA
Tratamento de dados
INSTRUÇÃO MOV(21)
A instrução MOV (MOVE) permite copiar o valor contido em A
para o destino expresso em B, sempre que a condição lógica que
antecede esta instrução esteja a ON.
•
•
"A" pode ser um canal, um temporizador/contador ou
uma constante
"B" pode ser um canal ou temporizador/contador
Tratamento de dados
INSTRUÇÃO MOVN(22)
A instrução MOVE NOT permite copiar o conteúdo negado de A
para o destino expresso em B, sempre que a condição lógica que
antecede esta instrução esteja a ON
•
•
"A" pode ser um canal, um temporizador/contador ou
uma constante
"B" pode ser um canal ou temporizador/contador
Iniciação à programação de autómatos
EXERCÍCIO 15
Descrição do pretendido:
• Ao sistema anterior fizeram-se algumas alterações, no sentido de permitir que os lotes não
fossem feitos sempre de 5 peças, mas de acordo com a posição de um selector fazer
respectivamente lotes de 3, 5 e 10 peças.
• Foi retirada a torre luminosa
• O selector deverá permitir seleccionar uma das 3 ordens de fabrico possíveis:
• Ord. Fabrico 1 – Para fazer lotes de 3 peças
• Ord. Fabrico 2 – Para fazer lotes de 5 peças
• Ord. Fabrico 3 – Para fazer lotes de 10 peças
FAB
1
FAB
2 FAB
3
On
Off
Sensor
NOME
ON
OFF
S_CONT
ORD_FAB1
ORD_FAB2
ORD_FAB3
M_TAP
CNT_PEÇAS
NUM_PEÇAS
TIPO
ENDEREÇOS
COMENTÁRIOS
BOOL
0.00
LIGAR SISTEMA
BOOL
0.01
DESLIGAR SISTEMA
BOOL
0.02
SENSOR DA SAÍDA - CONTA NUMERO DE PEÇAS
BOOL
0.03
ORDEM DE FABRICO 1 - 3 PEÇAS
BOOL
0.04
ORDEM DE FABRICO 2 - 5 PEÇAS
BOOL
0.05
ORDEM DE FABRICO 3 - 10 PEÇAS
BOOL
1.00
MOTOR TAPETE
BOOL
C0000
CONTA PEÇAS À SAÍDA
CHANNEL
D0
NÚMERO DE PEÇAS A FAZER
MT
Tratamento de dados
CX-PROGRAMMER – EDITOR DE ÁREAS DE
MEMÓRIA
Existem ferramentas que devem ser dominadas, quando se trabalha com
dados.
Quando se pretende controlar uma quantidade grande de dados (de
distintas áreas de memória), pode-se utilizar a janela “Address Monitor”
na área de memória do PLC.
Tratamento de dados
EXEMPLO DE APLICAÇÃO – (Editor de Áreas de Memória )
Vamos como base utilizar o exemplo utilizado na instrução MVN(21), para
melhor entender o editor de áreas de memória do Cx-Programmer, e
aproveitar para monitorizar o efeito da função MVN(21).
Tratamento de dados
INSTRUÇÃO SFT(10)
A instrução SHIFT permite implementar um registo deslocamento
começando na word A e acabando na word B
A word A deverá ter um endereço menor ou igual à word B, e as duas
devem pertencer à mesma área de memória
Tratamento de dados
EXEMPLO DE APLICAÇÃO
1º Passo – Desenvolver programa
• Em cx-programmer, elaborar o programa abaixo representado
(trata-se do exemplo simples mas suficiente para compreender o
funcionamento da instrução SFT(10))
• Transferir o programa para o autómato, e seleccionar o modo de
funcionamento MONITOR
Tratamento de dados
2º Passo – Abrir a janela de visualização
Esta janela “Toggle Watch Window”, permite monitorizar o estado dos
endereços especificados, bem como a alteração do seu estado
Tratamento de dados
3º Passo – Especificar o/os endereço/s a trabalhar
4º e 5º Passo – Alteração dos valores
EDIÇÃO EM
BINÁRIO
Tratamento de dados
6º Passo – Monitorização do funcionamento da função
SFT(10)
FIM
EXEMPLO
Iniciação à programação de autómatos
EXERCÍCIO 16
Descrição do pretendido:
• Na zona de embalagem do nosso projecto, é necessário fazer uma operação para selagem do
produto final.
• O sistema é composto por 5 cilindros.
• A ordem de descida dos cilindros deverá ser do 1 para o 5, um de cada vez, e a cada ordem de
descida dada pelo operador.
• Os cilindros devem manter-se actuados, até ordem de paragem (Off) ou ordem de nova descida
já com todos os cilindros actuados.
• Para o recuo dos cilindros basta retirar o sinal de actuação correspondente.
1
2
3
4
5
Descer
Off
NOME
ORD_FUNC
OFF
CIL_1
CIL_2
CIL_3
CIL_4
CIL_5
AUX_SAÍDAS
AUX_OUT1
AUX_OUT2
AUX_OUT3
AUX_OUT4
AUX_OUT5
FIM_CILIN
ENDEREÇO
0.00
0.01
2.00
2.01
2.02
2.03
2.04
200
200.01
200.02
200.03
200.04
200.05
200.06
DESCRIÇÃO
ORDEM DE FUNCIONAMENTO
DESLIGAR SISTEMA
CILINDRO PRENSA 1
CILINDRO PRENSA 2
CILINDRO PRENSA 3
CILINDRO PRENSA 4
CILINDRO PRENSA 5
CANAL UTILIZADO COMO AUXILIAR NA FUNÇÃO SHIFT
AUXILIAR DA SAÍDA 1
AUXILIAR DA SAÍDA 2
AUXILIAR DA SAÍDA 3
AUXILIAR DA SAÍDA 4
AUXILIAR DA SAÍDA 5
FIM DO CICLO DE ACTUAÇÃO DOS CILINDROS
Programação de processos sequenciais
GRAFCET Representação gráfica
O GRAFCET representa graficamente o funcionamento de um
automatismo recorrendo a um conjunto de:
ETAPAS, ás quais estão
associadas ACÇÕES
TRANSIÇÕES, ás quais
estão associadas
RECEPTIVIDADES
LIGAÇÕES, ligação das
etapas ás transições e
vice versa
Iniciação à programação de autómatos
EXERCÍCIO 21
Descrição do pretendido:
• Pretende-se a cada ordem (On) encher 2 depósitos consecutivos, Produto A e Produto B.
• O fim de descarga de cada produto é indicado pelo respectivo equipamento EV1 e EV2.
• Ao fim de encher o último deposito, o tapete deve avançar e parar logo que o depósito abandone a
zona de enchimento (deixar de actuar no sensor).
• À ordem de paragem (Off) o sistema deve desligar todas as saídas, e ficar pronto para novo ciclo.
Prod
A
EV1
Prod
B
NOME
ON
OFF
S_ENCHE
FIM_DESC1
FIM_DESC2
M_TAP
EV1
EV2
PRIM_DESC
EV2
On
Off
AFG 1
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
ENDEREÇOS
0.00
0.01
0.02
0.03
0.04
1.00
1.01
1.02
W200.00 (AUTO)
AFG 2
Sensor
MT
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DE DEPOSITO NA ZONA DE ENCHIMENTO
FEITA A DESCARGA DO PRODUTO 1
FEITA A DESCARGA DO PRODUTO 2
MOTOR TAPETE
ELÉCTROVÁLVULA 1
ELÉCTROVÁLVULA 2
INDICA QUE ESTÀ NA FASE DA PRIMEIRA DESCARGA
Iniciação à programação de autómatos
Tratamento
EXEMPLOde–dados
Utilizando a função SFT(10)
Tratamento
EXEMPLOde–dados
Utilizando a função SFT(10)
INSTRUÇÕES DE CÁLCULO
ARITMÉTICO
OBJECTIVOS
Utilização das funções elementares
utilizadas no calculo aritmético.
Tipo de variáveis do cx-programmer
Como atribuir comentários ao
programa, utilizando o cx-programmer
Instruções de cálculo aritmético
CX-PROGRAMMER - TIPOS DE VARIÁVEIS
Até agora não se tinha dado grande importância à natureza do tipo de variável
utilizada, pois não era factor essencial
Nesta fase, tratamento de dados, e em concreto instruções aritméticas, é
importante este assunto
Instruções de cálculo aritmético
OPERAÇÕES ARITMÉTICAS
É hoje frequente nos autómatos instruções que permitem a execução de
operações aritméticas, embora esta não seja uma máquina vocacionada
para o cálculo numérico
Dependendo do autómato, poderemos encontrar as operações básicas
(soma, subtracção, multiplicação e divisão) ou outras mais sofisticadas,
como sendo o cálculo em virgula flutuante, funções trigonométricas, raiz
quadrada, etc..
A base numérica também pode ser diversa: binário, BCD, etc..
Vamos neste capítulo analisar o uso das operações aritméticas básicas
em BCD e outras funções associadas
Instruções de cálculo aritmético
SOMA EM BCD ADD(30)
• Esta função permite adicionar dois valores numéricos A e B e
coloca o resultado da adição no canal especificado em C
• Os valores numéricos especificados em A e B podem ser
constantes ou o conteúdo de um canal, contador ou temporizador
Nas novas famílias de autómatos
CS e CJ utilizar:
Instruções de cálculo aritmético
EXEMPLO DE APLICAÇÃO
– SOMA BCD
Pág. 158
Instruções de cálculo aritmético
RELÉ DE CARRY
O relé CY é utilizado em operações aritméticas, para detectar:
-Existência de OVERFLOW
-Existência de resultado negativo
Analisemos o
exemplo que se
segue...
Instruções de cálculo aritmético
RELÉ DE CARRY
EXEMPLO DE APLICAÇÃO - CY
Nestes casos a presença do
bit mais significativo (1) é
sinalizado por um relé
especial que passa a ON, e
que se designa por RELÉ DE
CARRY
O relé de carry
(abreviadamente CY) tem no
autómato CPM1A o endereço
255.04
O RELÉ DE CARRY uma vez a
ON, só passa a OFF se for
executada a função CLC(41).
Instruções de cálculo aritmético
RELÉ DE CARRY
Quando se trabalha com números positivos, é boa norma fazer executar a função
CLC(41) antes de executar uma função aritmética
Desta forma limpa-se o relé de CARRY (é colocado a OFF) que poderia ter sido
colocado a ON por outra operação aritmética existente no programa e que caso
estivesse activo falsearia o resultado da operação a executar
Neste contexto o programa do
exemplo anterior poderia ser
melhorado desta forma
Instruções de cálculo aritmético
SUBTRACÇÃO EM BCD - SUB(31)
A função SUB(31) permite subtrair ao valor contido em A o valor
contido em B e coloca o resultado no canal especificado em C
Nas novas famílias de
autómatos CS e CJ
utilizar:
 No caso da operação de subtracção, o resultado nunca excede quatro dígitos
 Há no entanto a possibilidade de o resultado ser negativo ( quando A for menor
que B ). Esta ocorrência é assinalada pelo mesmo relé de carry atrás
mencionado.
Instruções de cálculo aritmético
EXEMPLO DE APLICAÇÃO – SUBTRACÇÃO EM BCD
Como obter o valor absoluto da subtracção ?
Instruções de cálculo aritmético
MULTIPLICAÇÃO EM BCD - MUL(32)
A função que permite efectuar o produto de dois valores
numéricos BCD, é a função MUL(32)
Nas novas famílias de
autómatos CS e CJ
utilizar:
 Sempre que a condição lógica que antecede a função está a ON, o valor em A é
multiplicado pelo valor contido em B e o resultado da operação é colocado no
canal especificado em C e no imediatamente seguinte C+1
 Os quatro dígitos menos significativos do resultado são colocados no canal
especificado em C e os quatro restantes dígitos mais significativos são
colocados no canal C+1
Instruções de cálculo aritmético
EXEMPLO DE APLICAÇÃO – MULTIPLICAÇÃO EM BCD
Instruções de cálculo aritmético
DIVISÃO EM BCD - DIV(33)
A função DIV(33) permite efectuar o quociente de dois valores
numéricos BCD
Nas novas famílias de
autómatos CS e CJ
utilizar:
 Sempre que a condição lógica que antecede a função está a ON, o valor em A é
dividido pelo valor contido em B e o resultado da operação é colocado no canal
especificado em C e no imediatamente seguinte
 O quociente é colocado no canal especificado em C e o resto é colocado no
canal C+1
Instruções de cálculo aritmético
EXEMPLO DE APLICAÇÃO – DIVISÃO EM BCD
Instruções de cálculo aritmético
OPERAÇÕES ARITMÉTICAS EM BINÁRIO
Nas operações aritméticas apresentadas anteriormente, apenas é possível trabalhar com
operandos de 4 dígitos (uma word) em BCD
Há no entanto situações que obrigam a trabalhar valores maiores que 9999 (BCD), e para o
fazer temos de recorrer à codificação em Binário
Em Binário é possível codificar numa word um valor que pode ir até 65535, contra 9999 em
BCD
Instruções aritméticas básicas para operar com valores binários:
ADB(50) - soma binária
SBB(51) - subtracção binária
MLB(52) - multiplicação binária
DVB(53) - divisão binária
Instruções de cálculo aritmético
EXEMPLO DE APLICAÇÃO – OPERAÇÃO ARITMÉTICA EM
BINÁRIO
Iniciação à programação de autómatos
EXERCÍCIO 17
Descrição do pretendido:
• Aproveitar o exercício 11
• Ao sistema em causa foi adicionado um terminal de diálogo homem máquina, para permitir
introduzir o número de paletes que se pretende fazer (D0000), bem como monitorizar o número de
peças que falta transportar para finalizar o pedido em curso (D0002)
• Uma vez dada ordem de inicio (On) o sistema deverá transportar o numero de peças necessárias
para preencher o numero de paletes solicitadas
• Cada palete leva 5 peças
On
Off
Sensor
MT
NOME
ON
OFF
S_CONT
M_TAP
CNT_PEÇAS
N_PALET
N_CAIXAS
CAIXAS_FEITAS
TIPO
ENDEREÇOS
COMENTÁRIOS
BOOL
0.00
LIGAR SISTEMA
BOOL
0.01
DESLIGAR SISTEMA
BOOL
0.02
SENSOR DA SAÍDA - CONTA NUMERO DE PEÇAS
BOOL
1.00
MOTOR TAPETE
BOOL
C0000
CONTA PEÇAS À SAÍDA
CHANNEL
D0
NUMERO DE PALETES A FAZER
CHANNEL
D1
NUMERO DE CAIXAS A TRANSPORTAR
CHANNEL
D2
NUMERO DE CAIXAS JÁ FEITAS
Instruções de cálculo aritmético
INSTRUÇÃO INC(38) E DEC(39)
A instrução INC(38) deriva de um caso particular da adição em BCD.
Sempre que a condição de execução está activa, esta instrução faz incrementar
uma unidade ao conteúdo do canal especificado em A, em cada scan.
Tal como acontecia com a instrução INC(38), a instrução DEC(39) deriva de um
caso particular da subtracção em BCD.
Sempre que a condição de execução está activa, esta instrução faz decrementar
uma unidade ao conteúdo do canal especificado em A, em cada scan.
Iniciação à programação de autómatos
EXERCÍCIO 18
Descrição do pretendido:
• Utilizar o programa na sua forma mais simples, ou seja apenas o controlo de tapete
(Liga/Desliga)
• Foi colocada mais uma fotocélula sensivelmente no inicio do tapete.
• Pretende-se desta forma saber sempre quantas peças estão no decorrer do transporte, ou seja
compreendidas entre os dois sensores.
NOME
ON
OFF
S_CNT_OUT
S_CNT_IN
M_TAP
N_PEÇAS
On
Off
Sensor
OUT
Sensor
IN
MT
TIPO
ENDEREÇOS
COMENTÁRIOS
BOOL
0.00
LIGAR SISTEMA
BOOL
0.01
DESLIGAR SISTEMA
BOOL
0.02
SENSOR DE DETECÇÃO DE SAÍDA
BOOL
0.03
SENSOR DE DETECÇÃO DE ENTRADA
BOOL
1.00
MOTOR TAPETE
CHANNEL
D0
NUMERO DE PEÇAS NO TAPETE
Temporizadores e contadores
CX-PROGRAMMER – COMENTAR O PROGRAMA
A assignação dos nomes e comentários ás varias malhas e blocos do
projecto, é de extrema importância.
Tratamento de dados
EXEMPLO 1º Passo – Comentar a secção
Tratamento de dados
2º Passo – Comentar as várias malhas da secção
Tratamento de dados
3º Passo – Habilitar os comentários das secções
Iniciação à programação de autómatos
EXERCÍCIO 19
Descrição do pretendido:
• Embora os programas em causa tenham poucas secções, a título de exercício comentar as
secções do programa anterior.
FUNÇÕES DE EXECUÇÃO
DIFERENCIAL (@)
OBJECTIVOS
Conhecer alternativas à aplicação das
funções DIFU e DIFD
Funções de execução diferencial (@)
FUNÇÕES DE EXECUÇÃO DIFERENCIAL (@)
Há alternativa que permite dotar uma instrução da capacidade de ser
executada, só quando houver uma transição de OFF para ON na
condição de execução.
Essa alternativa consiste em adicionar o símbolo @ à instrução.
SOLUÇÕES
EQUIVALENTES
Iniciação à programação de autómatos
EXERCÍCIO 20
Descrição do pretendido:
• Aplicar às instruções do exercício anterior este conceito.
NOME
ON
OFF
S_CNT_OUT
S_CNT_IN
M_TAP
N_PEÇAS
On
Off
Sensor
OUT
Sensor
IN
MT
TIPO
ENDEREÇOS
COMENTÁRIOS
BOOL
0.00
LIGAR SISTEMA
BOOL
0.01
DESLIGAR SISTEMA
BOOL
0.02
SENSOR DE DETECÇÃO DE SAÍDA
BOOL
0.03
SENSOR DE DETECÇÃO DE ENTRADA
BOOL
1.00
MOTOR TAPETE
CHANNEL
D0
NUMERO DE PEÇAS NO TAPETE
CONVERSÃO DE DADOS
OBJECTIVOS
Análise de funções para a conversão
de dados BIN/BCD
Conversão de dados
INSTRUÇÕES PARA CONVERSÃO DE DADOS
Existem instruções que permitem converter valores entre as duas bases
numéricas, já enunciadas.
É o caso das instruções:
• BIN(23)
• BCD(24)
TRATAMENTO DE BLOCOS
DE DADOS
OBJECTIVOS
Conhecimento de algumas funções
aplicadas no tratamento de blocos de
dados
Tratamento de blocos de dados
INSTRUÇÃO BSET(71)
Esta instrução permite copiar o conteúdo de um canal, ou
constante, para um grupo de canais especificados.
Tratamento de blocos de dados
INSTRUÇÃO XFER(70)
Transfere dados de um dado grupo de canais consecutivos, para
outro grupo de canais igualmente consecutivos.
Tratamento de blocos de dados
INSTRUÇÃO XCHG(73)
Sempre que a condição que antecede a instrução é verdadeira, XCHG(73)
troca o conteúdo dos dois canais operandos desta instrução.
Iniciação à programação de autómatos
EXERCÍCIO 21
Descrição do pretendido:
• Pretende-se agora a cada ordem de produção (On) encher 2 depósitos consecutivos, o primeiro
com o Produto A e o segundo com o Produto B.
• O fim de descarga de cada produto é indicado por um impulso fornecido ao PLC pelo respectivo
equipamento EV1 e EV2
• Ao fim de encher o 2 e último deposito, o tapete deve avançar e parar logo que o depósito
abandone a zona de enchimento (deixar de actuar no sensor).
• À ordem de paragem (Off) o sistema deve desligar todas as saídas, e ficar pronto para novo
ciclo.
Prod
A
EV1
Prod
B
NOME
ON
OFF
S_ENCHE
FIM_DESC1
FIM_DESC2
M_TAP
EV1
EV2
PRIM_DESC
EV2
On
Off
AFG 1
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
ENDEREÇOS
0.00
0.01
0.02
0.03
0.04
1.00
1.01
1.02
W200.00 (AUTO)
AFG 2
Sensor
MT
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DE DEPOSITO NA ZONA DE ENCHIMENTO
FEITA A DESCARGA DO PRODUTO 1
FEITA A DESCARGA DO PRODUTO 2
MOTOR TAPETE
ELÉCTROVÁLVULA 1
ELÉCTROVÁLVULA 2
INDICA QUE ESTÀ NA FASE DA PRIMEIRA DESCARGA
PROGRAMAÇÃO DE
PROCESSOS SEQUENCIAIS
OBJECTIVOS
Obter conhecimentos básicos sobre o
método de representação gráfica –
GRAFCET
Métodos de aplicação de processos
estruturados em grafcet, na
programação de autómatos
Programação de processos sequenciais
INTRODUÇÃO
São inúmeras as situações de comando onde as tarefas a
executar se repetem sempre na mesma sequência ou em
sequências pré-determinadas.
Estamos perante sistemas
de carácter sequencial
A experiência ensinou-nos que o objectivo de qualquer projectista é
colocar em prática a sua ideia através de um modelo físico, que
tecnicamente seja perfeito, economicamente acessível e rentável
Assim, ele terá de conhecer vários MÉTODOS ou vias que lhe permitam
atingir os seus objectivos
Programação de processos sequenciais
INSTRUMENTOS DE REPRESENTAÇÃO
Desde a concepção, o sistema a desenvolver deve ser suportado
por uma ferramenta que permita o diálogo indispensável entre o
projectista/técnico e o futuro utilizador
A linguagem corrente, revela-se assim bastante mal adaptada à
descrição de sistemas sequências.
Deste modo facilmente compreendemos a necessidade de dispor de
um método de representação desprovido de ambiguidades, fácil de
compreender e utilizar.
ENTRE AS VÁRIAS FERRAMENTAS EXISTENTES PARA O
EFEITO, VAMOS APROFUNDAR NESTE CAPITULO O GRAFCET
Programação de processos sequenciais
GRAFCET Representação gráfica
O GRAFCET representa graficamente o funcionamento de um
automatismo recorrendo a um conjunto de:
ETAPAS, ás quais estão
associadas ACÇÕES
TRANSIÇÕES, ás quais
estão associadas
RECEPTIVIDADES
LIGAÇÕES, ligação das
etapas ás transições e
vice versa
Programação de processos sequenciais
GRAFCET Especificações
ETAPAS/ACÇÕES
12
MT
1
0
12
ETAPA INICIAL
MT
1
MT
1
MT
3
ETAPAS ACTIVAS
ACÇÕES
ETAPA
S
LIGAÇÕES
ORIENTADAS
3
TRANSIÇÕES
TRANSIÇÕES
LIGAÇÕES
ORIENTADAS
4
4
3
5
5
RECEPTIVIDADES
ASSOCIADAS ÁS
ACÇÕES
Programação de processos sequenciais
TIPOS DE PROCESSAMENTO
Pode-se ter num sistema basicamente três tipos de
processamentos, numa representação em GRAFCET
Processamento
linear
Processamento
paralelo
Processamento
alternativo
Programação de processos sequenciais
PROCESSAMENTO LINEAR
Os estados do processo estão dispostos em linha.
Independentemente das condições do processo, este consta de
uma sucessão de passos que se executam sempre, e na mesma
sequência.
Exemplo 1
Sequência
não
transposta
Exemplo 2
Sequência
não
transposta
Exemplo 3
Sequência
transposta
Programação de processos sequenciais
PROCESSAMENTO PARALELO
Em determinado momento do processo, a sequência
pode tomar dois ou mais caminhos que se vão
executar em paralelo
Exemplo 1
Sequência
não
transposta
Exemplo 2
Sequência
não
transposta
Exemplo 3
Sequência
transposta
Programação de processos sequenciais
PROCESSAMENTO ALTERNATIVO
Surgem muito frequentemente situações de selecção
exclusiva, de uma só sequência
Receptividades exclusivas
Receptividades prioritárias
Programação de processos sequenciais
SALTOS ENTRE
ETAPAS
Podem ser feitos
saltos entre etapas
não consecutivas
12
13
AVANÇO
14
RETROCESSO
15
Iniciação à programação de autómatos
EXERCÍCIO 22
Descrição do pretendido:
• Resolver o exercício anterior recorrendo à sua representação em GRAFCET.
Prod
A
EV1
Prod
B
NOME
ON
OFF
S_ENCHE
FIM_DESC1
FIM_DESC2
M_TAP
EV1
EV2
PRIM_DESC
EV2
On
Off
AFG 1
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
ENDEREÇOS
0.00
0.01
0.02
0.03
0.04
1.00
1.01
1.02
W200.00 (AUTO)
AFG 2
Sensor
MT
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DE DEPOSITO NA ZONA DE ENCHIMENTO
FEITA A DESCARGA DO PRODUTO 1
FEITA A DESCARGA DO PRODUTO 2
MOTOR TAPETE
ELÉCTROVÁLVULA 1
ELÉCTROVÁLVULA 2
INDICA QUE ESTÀ NA FASE DA PRIMEIRA DESCARGA
Programação de processos sequenciais
CONVERSÃO GRAFCET LINGUAGEM DE CONTACTOS
Vão ser aqui abordados 3 métodos para levar a cabo a
programação de processos sequenciais, a partir do GRAFCET
Com funções de
encravamento: KEEP(11) e
SET RESET
Com a função: SFT(10)
Com as funções especiais:
STEP(08) e SNXT(09)
Tratamento de dados
EXEMPLO – Utilizando as funções SET e RESET
Tratamento de dados
EXEMPLO – Utilizando a função KEEP(11)
Tratamento de dados
EXEMPLO – Utilizando a função SFT(10)
POR ÚLTIMO
Tratamento de dados
EXEMPLO – Utilizando as funções STEP(08) e SNXT(09)
Iniciação à programação de autómatos
EXERCÍCIO 23
Descrição do pretendido:
• A partir da representação anterior em GRAFCET, fazer a sua passagem para linguagem de
contactos.
• Passar o programa para o PLC
• Testar o programa
Prod
A
EV1
Prod
B
NOME
ON
OFF
S_ENCHE
FIM_DESC1
FIM_DESC2
M_TAP
EV1
EV2
PRIM_DESC
EV2
On
Off
AFG 1
TIPO
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
ENDEREÇOS
0.00
0.01
0.02
0.03
0.04
1.00
1.01
1.02
W200.00 (AUTO)
AFG 2
Sensor
MT
COMENTÁRIOS
LIGAR SISTEMA
DESLIGAR SISTEMA
SENSOR DE DEPOSITO NA ZONA DE ENCHIMENTO
FEITA A DESCARGA DO PRODUTO 1
FEITA A DESCARGA DO PRODUTO 2
MOTOR TAPETE
ELÉCTROVÁLVULA 1
ELÉCTROVÁLVULA 2
INDICA QUE ESTÀ NA FASE DA PRIMEIRA DESCARGA
Iniciação à programação de autómatos
EXERCÍCIO 24
Descrição do pretendido:
Numa dada fase do processo é necessário fazer um teste térmico ao produto. Elaborar um
programa de acordo com o seguinte funcionamento:
• À ordem de inicio do teste (On), o sistema deve iniciar o aquecimento e registar a evolução da
temperatura do produto de 1 em 1 segundo.
• Ao fim de 10 registos (10 seg), o sistema deve parar.
• Se durante o evoluir do processo for dada ordem de paragem (Off), o sistema deve parar.
• O sensor de temperatura regista a temperatura actual no endereço (D0100).
• O historial dos valores da temperatura devem ser armazenados nos endereços (D0020 a D0029).
• Sempre que é dada ordem para um novo teste, todos os valores registados referentes ao teste
anterior, devem ser apagados.
NOME
ON
OFF
AQUEC
TEMPO
APONTADOR
INI_REG
FIM_REG
TEMP
AUX_1SEG
ENDEREÇO
0.00
0.01
1.00
C0000
D0
D20
D29
D100
W200.00 (Auto)
DESCRIÇÃO
LIGAR SISTEMA
DESLIGAR SISTEMA
EQUIPAMENTO DE AQUECIMENTO
CONTA OS 10 SEG DE AQUECIMENTO
APONTADOR PARA A ÁREA DE MEM A ESCREVER
AREA DE INICIO DOS REGISTOS DE TEMPERATURA
AREA DE FIM DOS REGISTOS DE TEMPERATURA
REGISTO QUE CONTEM A TEMPERATURA ACTUAL
AUXILIAR DO BIT ESPECIAL DE 1 SEGUNDO
ENDEREÇAMENTO
INDIRECTO
OBJECTIVOS
Compreensão do endereçamento
indirecto e sua aplicação prática
Endereçamento indirecto
APLICAÇÃO
Esta facilidade pode ser encontrada em alguns autómatos
O uso do endereçamento indirecto permite dotar os programas
de uma grande flexibilidade e reduzir a extensão dos mesmos.
Exemplo 2 - O
conteúdo da DM100,
contém o endereço
de um outro DM,
encontrando-se
neste último o valor
a ser considerado
pela instrução.
Exemplo 1 - Se a DM100
contém o valor 350, então o
CH10 tomará esse valor
Iniciação à programação de autómatos
EXERCÍCIO 25
Descrição do pretendido:
Numa dada fase do processo é necessário fazer um teste térmico ao produto. Elaborar um
programa de acordo com o seguinte funcionamento:
• À ordem de inicio do teste (On), o sistema deve iniciar o aquecimento e registar a evolução da
temperatura do produto de 1 em 1 segundo.
• Ao fim de 10 registos (10 seg), o sistema deve parar.
• Se durante o evoluir do processo for dada ordem de paragem (Off), o sistema deve parar.
• O sensor de temperatura regista a temperatura actual no endereço (D0100).
• O historial dos valores da temperatura devem ser armazenados nos endereços (D0020 a D0029).
• Sempre que é dada ordem para um novo teste, todos os valores registados referentes ao teste
anterior, devem ser apagados.
NOME
ON
OFF
AQUEC
TEMPO
APONTADOR
INI_REG
FIM_REG
TEMP
AUX_1SEG
ENDEREÇO
0.00
0.01
1.00
C0000
D0
D20
D29
D100
W200.00 (Auto)
DESCRIÇÃO
LIGAR SISTEMA
DESLIGAR SISTEMA
EQUIPAMENTO DE AQUECIMENTO
CONTA OS 10 SEG DE AQUECIMENTO
APONTADOR PARA A ÁREA DE MEM A ESCREVER
AREA DE INICIO DOS REGISTOS DE TEMPERATURA
AREA DE FIM DOS REGISTOS DE TEMPERATURA
REGISTO QUE CONTEM A TEMPERATURA ACTUAL
AUXILIAR DO BIT ESPECIAL DE 1 SEGUNDO
Fim
Muito obrigado...
www.omron.pt
[email protected]
Download

Automação Avançada (Powerpoint)