Página 1
CAPÍTULO IV. Programação de CLP¶s. 4.1 Introdução à programação. Lógica matemática e binária. A lógica matemática ou simbólica visa superar as dificuldades e ambigüidades de qualquer língua, devido a sua natureza vaga e equívoca das palavras usadas e do estilo metafórico e, portanto, confuso que poderia atrapalhar o rigor lógico do raciocínio. Para evitar essas dificuldades, criou-se uma linguagem lógica artificial. A lógica binária possui apenas dois valores que são representados por : 0 e 1. A partir desses dois símbolos construímos então uma base numérica binária. A partir desses conceitos foram criadas as portas lógicas, que são circuitos utilizados para combinar níveis lógicos digitais de formas específicas. Neste curso aprenderemos apenas as portas lógicas básicas: AND, OR e NOT.
Os CLPs vieram a substituir elementos e componentes eletro-eletrônicos de acionamento e a linguagem utilizada na sua programação é similar à linguagem de diagramas lógicos de acionamento desenvolvidos por eletrotécnicos e profissionais da área de controle, esta linguagem é denominada linguagem de contatos ou simplesmente LADDER. A linguagem Ladder permite que se desenvolvam lógicas combinacionais, seqüenciais e circuitos que envolvam ambas, utilizando como operadores para estas lógicas: entradas, saídas, estados auxiliares e registros numéricos. A Tabela 1 nos mostra os 3 principais símbolos de programação.
Página 2
Para entendermos a estrutura da linguagem vamos adotar um exemplo bem simples: o acionamento de uma lâmpada L a partir de um botão liga/desliga Na figura 3 temos o esquema elétrico tradicional, o programa e as ligações no CLP. Para entendermos o circuito com o CLP, vamos observar o programa desenvolvido para acender a lâmpada L quando acionamos o botão B1.
O botão B1, normalmente aberto, está ligado a entrada I0.0 e a lâmpada está ligada à saída Q0.0. Ao acionarmos B1, I0.0 é acionado e a saída Q0.0 é energizada. Caso quiséssemos que a lâmpada apagasse quando acionássemos B1 bastaria trocar o contato normal aberto por um contato normal fechado, o que representa a função NOT. Podemos desenvolver programas para CLPs que correspondam a operações lógicas combinacionais básicas da álgebra de Boole, como a operação AND. Na área elétrica a operação AND corresponde a associação em série de contatos, como indicado na figura 4.
Página 2
Para entendermos a estrutura da linguagem vamos adotar um exemplo bem simples: o acionamento de uma lâmpada L a partir de um botão liga/desliga Na figura 3 temos o esquema elétrico tradicional, o programa e as ligações no CLP. Para entendermos o circuito com o CLP, vamos observar o programa desenvolvido para acender a lâmpada L quando acionamos o botão B1.
O botão B1, normalmente aberto, está ligado a entrada I0.0 e a lâmpada está ligada à saída Q0.0. Ao acionarmos B1, I0.0 é acionado e a saída Q0.0 é energizada. Caso quiséssemos que a lâmpada apagasse quando acionássemos B1 bastaria trocar o contato normal aberto por um contato normal fechado, o que representa a função NOT. Podemos desenvolver programas para CLPs que correspondam a operações lógicas combinacionais básicas da álgebra de Boole, como a operação AND. Na área elétrica a operação AND corresponde a associação em série de contatos, como indicado na figura 4.
Página 3
Outra operação lógica básica é a função OR, que corresponde a associação em paralelo de contatos, como indicado na figura 5.
Assim podemos afirmar que todas as funções lógicas combinacionais podem ser desenvolvidas em programação e executadas por CLPs, uma vez que todas derivam dos básicos: NOT, AND e OR. A flexibilidade dos CLPs é percebida neste momento pois as alterações lógicas podem ocorrer com grande facilidade, sem que sejam necessárias alterações do hardware ou inclusão de componentes eletrônicos ou elétricos. Esta é a principal característica dos sistemas de automação flexíveis e o que faz dos CLPs ferramentas de grande aplicação nas estruturas de automação.
Página 4
Além da linguagem de contatos, existem outras formas de programação características de cada fabricante. Concluímos então que os projetos de automação e controle envolvendo CLPs reduzem o trabalho de desenvolvimento de hardware dos circuitos lógicos do acionamento, bem como os dispositivos e potência para acionamento de cargas e dos atuadores, uma vez que podemos escolher módulos de saída já prontos, adequados ao tipo de carga que desejamos acionar. A utilização desses controladores contemplam, por conseguinte alguns passos genéricos: definição da função lógica a ser programada. transformação desta função em programa assimilável pelo CLP. implementação física do controlador e de suas interfaces com o processo. -
Página 5
4.2 Programando em LADDER. 4.2.1 Instruções Diagrama de Contados ± ladder. Os CLP´s possuem uma grande variedade de instruções que podem ser escritos através de uma linguagem padrão chamada Diagrama de Contados ou Ladder Diagram, baseada nos famosos diagramas de comandos elétricos, porem com uma gama de instruções bem mais abrangente e diversificada permitem uma ampla utilização na área industrial. As instruções mais importantes para controle de processos industriais são listadas a seguir. y y y y y y y y y y y
Instruções do tipo relé; Instruções do tipo temporizador e contador; Instruções de comparação; Instruções operações matemáticas; Instruções de salto; Instruções de linguagem estruturada ± sub-rotinas; Instruções de registradores de dados e deslocamento; Instruções de conversão; Instruções de comunicação; Instruções de controle (PID) Instruções especiais (dependendo do fabricante)
As simbologias utilizadas e os parâmetros dos dispositivos a seguir relacionados, referem-se à família de CLP´s TSX Micro da Telemecanique (normalizada através da IEC 3111). No entanto, outros CLP¶s podem utilizar simbologias e formatos de representação diferentes. Para um melhor aprendizado, a cada conceituação de instrução será vista sua utilização na teoria e na prática. Para tanto, faz-se necessário conhecer os comandos e os passos básicos para o uso do software onde será feito o programa em LADDER.
Página 6
4.2.2 Instruções do Tipo Rele ou Booleanas Contato normalmente aberto Contato normalmente fechado Contato detecção borda de subida Contato detecção borda de descida Bobina normalmente desenergizad a Bobina normalmente energizada Bobina retentiva (Set) Bobina não retentiva (Reset)
Conduz quando o bit do objeto que o controla é 1, ou seja, quando é ativado. Conduz quando o bit do objeto que o controla é 0, ou seja, quando não está ativado.
P
N
Conduz quando o bit do objeto que o controla muda de 0 para 1, ou seja, na borda de subida. Conduz quando o bit do objeto que o controla muda de 1 para 0, ou seja, na borda de descida.
( )
Mantém a saída associada ao valor resultante da zona de teste. Enquanto o resultado for 1, a bobina mantém-se energizada.
(/)
Mantém a saída associada ao valor inverso resultante da zona de teste. Enquanto o resultado for 0, a bobina mantém-se energizada. Torna a saída energizada quando o valor resultante da zona de teste for 1.
(s) (R)
Torna a saída desenergizada quando o valor resultante da zona de teste for 1.
Além destes, existe uma outra gama de recursos que varia de fabricante para fabricante, mas a idéia permanece, qual seja, de se atuar no sistema a fim de proporcionar resposta a algum tipo de estímulo. Exemplo: Uma das aplicações que se pode imaginar para essas ramificações é a de ¨selo¨, que consiste em se usar um feedback da saída para manter a ela própria energizada. Como exemplo pode-se citar a ilustração seguinte, onde se percebe que a saída %Q2.0 é energizada pela entrada %I1.0 (botoeira), e em seguida, como o selo está em paralelo com %I1.0, não há mais necessidade de ele estar ativo para manter %Q2.0 energizada. A saída %Q2.0 só sairá deste estado se %I1.1 for ativada, quando então será aberta.
Página 7
%I1.0
%I1.1
%Q2.0 ( )
%Q2.0
Para utilizar as instruções citadas neste tópico: 1. Clique com o mouse o ícone do elemento gráfico desejado na barra de ícones, na parte inferior do vídeo. 2. Clique na grade, na posição requerida para o elemento. 3. Entre com a variável correspondente e confirme pressionando ENTER. Faça o mesmo procedimento para outros elementos até concluir a linha. 4. Confirme a linha pressionando ENTER, usando o comando Edit/Conf irm, ou clicando no ícone correspondente. 5. Para concluir a linha, poderá ser necessário o uso de elementos de conexão. São eles: Linhas horizontais e linhas verticais, também visíveis na barra de ícones.
Barra de ícone
Para executar um programa no CLP: 1. Selecione o comando PLC/Transfer ou clique no respectivo ícone 2. Selecione a direção da transferência, se do CLP p/ Terminal ou Terminal p/ CLP. No caso, vamos escolher Terminal p/ PLC. 3. Clique OK.
Página 8
4. O programa é sempre criado ou modificado no modo Offline. Para executar o programa no CLP, selecione o comando PLC/Connect, ou clique no respectivo ícone. 5. A mensagem Online irá aparecer no rodapé da tela. 6. O CLP pode estar no estado Stop ou Run. Selecione o comando PLC/Run ou clique no respectivo ícone, para inicializar a varredura do programa no CLP. 7. A mensagem Run irá aparecer no rodapé da tela.
Exercícios: 1)
Desenvolva e execute um programa em Ladder diagram que faça o controle de acionamento de um motor DC. Seu programa deve forçar o motor a rodar quando uma chave pushbutton start for acionada. O motor deve continua rodando mesmo no desacionamento desta, e só irá parar quando uma chave pushbutton stop for acionada. Se uma chave pushbutton jog é fechada, quando o motor estiver parado ou funcionando, o motor será acionado enquanto esta chave permanecer ativa e desligado no desacionamento da chave.
Referências: %I1.0 - Contato entrada, normalmente aberto, START, pushbutton %I1.1 - Contato entrada, normalmente aberto/fechado, STOP, pushbutton %I1.2 - Contato entrada, normalmente aberto, JOG, pushbutton %Q2.0- Saída, MOTOR, bobina 2)
Usando o programa anterior, inclua um intertravamento para prevenir o motor de partir se alguma condição de alarme existir. Projete o seu programa para que o operador deva resetar o alarme antes que o motor possa partir de novo.
Referências: %I1.0 - Contato entrada, normalmente aberto, START, pushbutton %I1.1- Contato entrada, normalmente aberta/fechado, STOP, pushbutton %I1.2 - Contato entrada, normalmente aberto, JOG, pushbutton %Q2.0- Saída, MOTOR, bobina %I1.3 - Contato entrada condição de alarme %I1.4 - Contato entrada, RESET, pushbutton %Q2.1- Saída, ALARME
Página 9
4.2.3 Instruções de Comparação Trata-se de instruções que permitem comparar valores numéricos ou dados em endereços diferentes, possibilitando a execução de tarefas sob certas condições, esse elementos classificam-se entre os elementos de teste. Geralmente esta instrução é composta por uma linha de habilitação, por duas entradas de dados, a serem comparadas, e por uma saída que indica se a condição é verdadeira ou falsa. No caso do CLP 3710 da Telemacanique, os dados a serem comparados são inseridos no bloco comparador. Ao ser habilitado, o comparador aciona a saída condizente com o resultado da comparação, conforme abaixo:
Quando habilitado faz a comparação
Operando número 1
Compar e EN OP1
>
Habilitado quando OP1 é igual ao OP2
= <
OP2
Habilitado quando OP1 é maior que OP2
Habilitado quando OP1 é menor que OP2
<> Habilitado quando OP1 é diferente do OP2
Operando número 2
Comparador vertical
A comparação pode ainda ser feita utilizando-se um bloco de comparação horizontal, que compara dois operandos. A saída possui nível lógico 1 (chave fechada) quando o resultado da comparação é satisfeito (=, >, <, <>).
Comparador horizontal
Como podemos observar acima, esse bloco é bastante interessante quando desejamos obter um valor booleano, por exemplo, para isso seria habilitado uma saída ou um bloco de operação contendo uma expressão que estaria dependendo do valor da comparação de duas words. Para utilizar as instruções citadas neste tópico, siga os passos da instrução rele, e entre com operando 1 e operando 2.
Página 10
Instruções matemáticas São funções presentes em CLP que executam operações matemáticas do tipo adição, subtração, divisão, multiplicação, resto de divisão, deslocamento e raiz quadrada dentre outras. Em alguns CLP´s, cada função é executada por um bloco separadamente, possuindo entradas (variáveis ou constantes) para os operandos e uma saída (variável) onde é armazenado o resultado da operação daquele bloco. No CLP 3710 da Telemecanique, como em outros CLP´s mais modernos, todas as operações são executadas por um único bloco, sendo escritas neste através de um texto de linguagem estruturada. Esse elemento de programação integra a zona de ação, já que o mesmo executa uma ação e não um teste.
Instrução matemática
Estes blocos se localizam na zona de testes, se utilizados para comparação, e na zona de ação, se usados como operadores. Podem conter: y
Uma expressão simples:
y
Uma expressão complexa: OP5:=(OP1+OP2)*OP3-OP4
OP3:=OP1+OP2
As instruções usadas para as operações aritméticas entre dois operandos ou apenas um operando são: + * /
: Adição : Subtração : Multiplicação : Divisão
SQRT : Raiz quadrada INC : Incremento DEC : Decremento ABS : Valor absoluto REM : Resto da divisão
Página 11
Exemplo:
Linguagem Ladder
Sintaxe:
+,-,*,/,REM SQRT, ABS INC, DEC
Lista
de Instr ução
OP1:=OP2 Operação OP3 P1:=Operação(OP2) Operação OP1
Para utilizar as instruções citadas neste tópico: 1. Selecione o comando SHIFT+F3 ou clique com o mouse o ícone do elemento gráfico desejado na barra de ícones, na parte inferior do vídeo. 2. Clique na grade, na posição requerida para o elemento. 3. Entre com a operação desejada utilizando a sintaxe correspondente e confirme pressionando ENTER. Faça o mesmo procedimento para outros elementos até concluir a linha. 4. Confirme a linha pressionando ENTER, usando o comando Edit/Conf irm, ou clicando no ícone correspondente.
Exercícios: 1. Faça e execute um programa para contar a quantidade de peças altas e baixas que passam em uma esteira transportadora. Considere %I1.0 o botão (push-buton) para iniciar e parar a esteira transportadora; %I1.1 o sensor de peça alta; %I1.2 o sensor de peça baixa e %Q2.0 e %Q2.1 as saída que aciona a esteira transportadora. Considere que as peças altas são grandes o suficiente para acionar os dois sensores (S1 e S2) imultaneamente em um determinado instante.
Página 12
Siga o esquema do processo que é mostrado na fig. 28. Chave Liga/Desliga
Sensores S1 e S2
Peça alta
Peças baixas
2
E L M
L
E
0 0 1
0 1 0
M O D
M O D
S A I D A
E N T R A
C P U
B A T E R I A
ESTADO
PARADO GIRA DIREITA GIRA ESQUERDA
Desenho representativo da esteira transportadora
2. Implemente o exercício acima, fazendo com que seja acionado um alarme (%Q2.1) e desligue a esteira transportadora por 2s (dois segundos) toda vez que a quantidade de peças altas ou baixas atingir um valor máximo definido (10 peças), em seguida volte a acionar a esteira.
4.2.5 Instruções do tipo TIMER/CONTADOR Estas instruções executam muitas das tarefas para as quais se utilizam relés de tempo ou dispositivos de temporização e de contagem de estado sólido. +Vcc
T1
1
Diagrama de reles de1 um temporizador 0V As instruções de Temporizador (timer) e Contador (counter) são instruções de saídas que podem ser condicionadas por instruções de entradas. Os temporizadores contam intervalos, e os contadores eventos, conforme determinado pela lógica do programa de aplicação.
Página 13
O temporizador conta os intervalos de tempo transcorridos em relação ao tempo pré-fixado. Quando a temporização estiver completa esta instrução energiza um bit de tempo transcorrido (bit de controle). Esse bit pode ser utilizada para energizar ou desenergizar um dispositivo quando tiver transcorrido um intervalo de tempo pré-fixado na instrução. Utilizando a sintaxe do TSX3710, quando o valor temporizado (valor atual %TMi.V) se iguala ao valor pré-fixado (presset %TMi.P), o temporizador energiza o bit de tempo transcorrido (%TMi.Q), o qual pode ser utilizado para energizar ou desenergizar uma instrução de saída. Essas três variáveis mostradas são comuns a qualquer CLP. Dependendo do tipo de CLP, nós possuímos algumas variações de temporizadores. No caso do TSX 3710 da Telemecanique, que é comum à grande maioria, existem 3 modos de operação. Selecionando a opção TM o bloco temporizador será inserido na aplicação como demostrado abaixo; Gera um pulso quando é finalizada a contagem Inicializa a contagem
Modo em que o temporizador estará trabalhando
%TMI.V ± Valor corrente (atual) %TMI.P - Valor de preset ( pré-definido) TB ± Base de tempo MODIFY Y/N ± Possibilita (Y) ou não ( N) a modificação do valor de preset Q ± Acionado de acordo com o modo pré-definido IN ± Aciona o temporizador
Quanto a configuração dos temporizadores, estas podem ser feitas de três modos de operação.
Página 14
Temporizador de Retardo na Ligação (TON ) Conhecido também com delay , neste temporizador, a saída vai para nível lógico 1, quando a entrada se encontra em nível lógico 1 a um tempo igual ou superior ao tempo de presset do temporizador. Quando a entrada encontra-se em nível lógico 0, o temporizador reseta o valor da contagem ou simplesmente não a inicializa, ficando a saída em nível lógico 0.
Simbologia e forma de onda de entrada e saída
Página 15
Temporizador com Retardo no Desligamento (TOF) A saída do temporizador vai para nível lógico 1, juntamente com a entrada, e permanece neste estado até que transcorra o tempo de presset que se inicia no momento da borda de descida do pulso de entrada, indo para o nível lógico 0 após decorrido esse tempo. O valor de temporização permanece no valor de pressete até que a entrada seja novamente setada.
Representações de um temporizador com retardo no desligamento
Temporizador de pulso definido no ligamento (TP) Nesse tipo de temporizador o tempo em que a saída permanece em nível lógico 1 só depende do pulso de transição positiva da entrada.
Temporizador de pulso definido no li gamento
Página 16
Monoestável (MN) O monoestável é uma função usada para criar um pulso com um tempo de duração exato a partir da borda de subida do acionamento da entrada. Se a entrada for acionada enquanto a temporização estiver sendo realizada, esta será reinicializada. No acionamento da entrada o valor atual de temporização (%MNi.V) vai para o valor de presset (%MNi.P) e decresce para 0 em cada pulso da base de tempo, quando a temporização atinge o valor 0 a saída é acionada.
Figura 32
Para utilizar as instr uções citadas neste tópico:
1) Pressione SHIFT+F7 ou clique com o mouse o ícone deste elemento gráfico, na barra de ícones na parte inferior do vídeo. 2) Selecione o bloco de função requerida e pressione ENTER para confirmar. Neste caso, escolheremos a função Timer. 3) Clique na grade, na posição requerida para o elemento. 4) Entre com a variável correspondente e confirme pressionando ENTER. Faça o mesmo procedimento para outros elementos até concluir a linha. 5) Confirme a linha pressionando ENTER, usando o comando Edit/Conf irm, ou clicando no ícone correspondente. 6) Defina os dados da função na tela VARIABLES, selecionando o comando Application /Variables ou clicando no respectivo ícone. 7) Nesta tela, nos campos no topo da tela, selecione as opções Parameter s, PREDEFINED FB e TM. 8) No campo Preset será colocado o valor de tempo pressetado. No campo Mode será escolhido o tipo de temporizador (TON, TP ou TOF). E no campo TB será escolhida a unidade de tempo.
Página 17
Exercícios: 1) Fazer um programa em Ladder em que possa ser testada a utilização dos contadores tipos TON, TOF e TP. Execute o programa no CLP e levante o gráfico de entrada x saída dos temporizadores. 2) Faça um programa para a ligação do motor abaixo, fazendo com que o mesmo inicie em ligação estrela (acionar C1 e C2) e comute para ligação triângulo (acionar C1 e C3) após decorridos 10 s. Execute o programa no CLP.
Acionamento de motor estrela-triângulo
3) Uma empresa precisa resolver um problema de pico de demanda de energia elétrica, para isso precisa controlar o acionamento de 8 motores. Cada motor deve partir ordenadamente 3 segundos após o outro começando do motor 1. O motor 1 será controlado por %Q2.1. A entrada %I1.0 iniciará a sequência, enquanto que a entrada %I1.1 tornará todos os motores OFF. Providencie, também um ligamento manual individual para cada motor.
Página 18
Contadores As instruções do contador crescente e decrescente contam as transições de falso para verdadeiro, as quais podem ser causadas por eventos que ocorrem no programa, tais como peças que passam por um sensor ótico. A função de contador crescente é usada para contar até um valor desejado. A faixa de contagem, em geral, vai de 0 a 32767. Cada vez que a entrada de habilitação transita de off para on (borda de transição positiva), o valor corrente de contagem é incrementado de 1. O valor corrente pode ser incrementado até o valor pressetado. A saída irá para on sempre que o valor corrente for igual ou maior que o valor pressetado. A função de contador decrescente é usada para contar para baixo a partir de um valor pressetado. Quando a entrada de habilitação transita de off para on, o valor corrente é decrementado de 1. No caso do CLP 3710 da Telemecanique, um único bloco contador possui as funções de crescente e decrescente, conforme abaixo:
Contador crescente/decrescente
R - Reseta a saída do contador sempre que estiver em nível lógico 1 S - Seta a saída do contador sempre que estiver em nível lógico 1 CU - Entrada de contagem no sentido crescente CD - Entrada de contagem no sentido decrescente E - Saída acionada quando da transição da contagem de 0 p/ -1 D - Saída acionada quando contagem = valor pressetado, ou quando acionado S F - Saída acionada quando houver overflow de contagem (acima do máximo)
Para utilizar as instruções citadas neste tópico, siga os passos da instrução temporizador
Página 19
Exercícios: 3. Escreva um programa para gerenciamento de um estacionamento utilizando contador C0 do PL7 micro. Uma entrada conta os carros que entram, a outra conta os carros que saem. Um indicador livre intermitente indica que o estacionamento está livre. Um indicador ocupado indica que o estacionamento está cheio (10 carros). Um terceiro indicador avisa quando o estacionamento está vazio. Sempre que um carro atingir o sensor de início de entrada S1 ou de início saída S3 , o motor que movimente a barreira correspondente é acionado e a barreira sobe. Sempre que o carro sair do sensor de entrada completada S2 ou saída completada S4, o motor da barreira correspondente é acionado no sentido de rotação inverso e a barreira desce. Quando a quantidade de carros no estacionamento for =10 a barreira de entrada não poderá mais ser acionada. Deve haver sensores fim-de-curso inferior e superior para ambas as cancelas, S5 e S6 (cancela 1), S7 e S8 (cansela 2). O incremento na contagem só será realizado na borda de descida do sensor S2. 4. Uma empresa de filmes do grupo KODAK precisa de um sistema para contar a quantidade de filmes produzidos na sua linha a cada 20s e armazenar em um vetor de memória %MW10[%MW9] a fim de demonstrar através de um sistema supervisório o gráfico da evolução da produção diária. O valor da produção acumulado será armazenado na variável %MW8. No final de um dia de produção deverá ser mostradas a melhor e a pior média de produção verificada para cada um dos períodos de 20s. Considere que um dia de produção demora 3 minutos.
Página 20
4.2.6 Instruções de Registradores de Dados Um registrador é um bloco de memória que é usado para armazenar até 255 palavras de 16 bits no caso do TSX3722 de duas diferentes maneiras: em fila, conhecido como FIFO (First In, First Out); e em pilha, conhecido como LIFO (Last In, First Out).
Estrutura de armazenamento e retirada de dados em FIFO
Estrutura de armazenamento e retirada de dados em LIFO
O bloco registrador pode ser obtido através do bloco de funções (onde se encontram os temporizadores) e possui as seguintes características: MODE Pode ser FIFO ou LIFO LEN : De lenght, é a faixa do número de palavras a serem armazenadas (1 a 255) %Ri Registro de entrada e saída da palavra ± worde de acesso de entrada/saída de registro I De in. Quando ativada, armazena o conteúdo da palavra %Ri.I no registrador O De Out. Quando ativada, carrega o conteúdo do registrador em %Ri.O R De Reset. No estado 1 inicializa o registradorE : De Empty, indica que o registrador está vazio F De Full, indica que o registrador está cheio.
Página 21
Exemplo: Linguagem Ladder
Lista
de Instr ução
Registrado fila
Para utilizar as instruções citadas neste tópico, siga os passos da instrução temporizador
4.2.7 Instruções de Conversão. São funções que fazem a conversão de um número em código binário para decimal, e de decimal para código binário. Existem seis tipos de instruções de conversão: BCD_TO_INT INT_TO_BCD DBCD_TO_DINT DINT_TO_DBCD DBCD_TO_INT INT_TO_DBCD
: 16 bits BCD para 16 bits Inteiros : 16 bits Inteiros para 16 bits BCD : 32 bits BCD para 32 bits Inteiros : 32 bits Inteiros para 32 bits BCD : 32 bits BCD para 16 bits Inteiros : 16 bits inteiros para 32 bits BCD
O código BCD representa um número decimal (0 a 9) por um código de 4 bits. Uma palavra de 16 bits pode expressar um número de até 4 dígitos (0 a 9999). A estrutura desta instrução é como se fosse um bloco de operação, utilizando a seguinte sintaxe: OP1:= Operação(OP2).
Página 22
Exemplo: Linguagem Ladder
Lista
de Instr ução
Representação em Ladder e Lista de I nstrução
Para utilizar as instruções citadas neste tópico, siga os passos da instrução operação matemática.
4.2.8. Instruções de controle de fluxo. Estas instruções podem ser utilizadas para limitar a execução do programa e alterar o caminho pelo qual a CPU executa o programa de aplicação. Dentre as principais se destacam: y
y y
y
y y
CALL ± Chamada de subrotina. Causa o desvio do programa principal para uma subrotina. RETURN ± Retorno de sub-rotina. END ± Fornece um fim lógico temporário. O programa é executado do primeiro degrau até o último degrau ou, senão, quando encontra a instrução END. JUMP ± Provoca um salto no programa para uma determinada posição no mesmo. LABEL ± Especifica uma posição alvo de uma instrução JUMP. COMMENT ± Coloca um comentário num degrau do programa.
Veremos agora algumas destas instruções utilizadas no CLP 3710 da Telemecanique:
Página 23
4.2.8.1
Chamada de Subrotina
CALL SR - Esta instrução é utilizada para chamar uma subrotina em um mesmo
programa. A subrotina só poderá ser chamada se ela já existir, portanto é necessário primeiro criar a subrotina. Sri representa o número da rotina (SR0, SR1, SR2, etc). Linguagem Ladder
Lista
de Instr ução
Figura 29
Para utilizar a instrução citada neste tópico: 1) Selecione o comando SHIFT+F6 ou clique com o mouse o ícone do elemento gráfico desejado na barra de ícones, na parte inferior do vídeo.
2) Escolha e clique a função desejada. 3) Clique na grade, na posição requerida para o elemento. 4) Entre com a variável desejada e confirme pressionando ENTER. Faça o mesmo procedimento para outros elementos até concluir a linha. 5) Confirme a linha pressionando ENTER, usando o comando Edit/Conf irm, ou clicando no ícone correspondente. RETURN SR ± Esta instrução é utilizada para retornar a rotina chamada, se o
resultado da chave de teste precedente for 1. O comando return pressupõe que esteja no fim da subrotina, mas pode ser usado para retornar a subrotina chamada antes do seu final. Linguagem Ladder
Lista
de Instr ução
Página 24
RTCN ± Retorna se o resultado do teste for 0 (zero) RET ± Retorna incondicionalmente
Para utilizar as instruções citadas neste tópico, siga os passos da instrução CALL. 4.2.8.2
Instrução de Salto
± Esta instrução proporciona um salto na varredura do programa para uma nova linha indicada por um Label. %Li representa o Label (rótulo) da linha para o qual a conexão é feita. Nesse salto ao programa deixa de executar as linhas saltadas. JUMP
Linguagem Ladder
Lista
de Instr ução
± O jumper condicional proporciona um salto na varredura do programa para uma nova linha indicada por um Label %Li, desde que a condição de teste precedente seja obedecida. JUMPC
Linguagem Ladder
Lista
de Instr ução
Página 25
Para utilizar as instruções citadas neste tópico, siga os passos da instrução RELÉS. HALT ± A execução desta instrução é idêntico à instrução END e o programa
pode ser interrompido usando a instrução HALT. Para todas as tarefas e congela as variáveis deste programa.
Linguagem Ladder
Lista
de Instr ução
Para utilizar as instruções citadas neste tópico, siga os passos da instrução CALL.
4.2.9 INSTRUÇÕES PARA CONTROLE ANALÓGICO. 4.2.9.1
Classificação dos sistemas de controles
Os sistemas de controle são classificados em duas categorias gerais, ou seja: y y
Sistemas de Malha Aberta. Sistemas de Malha Fechada ou Realimentados.
Um sistema a malha aberta é caracterizado pelo fato que a ação de controle é independente da saída. Nos sistemas a malha fechada, no entanto, a ação de controle depende de algum modo da saída. De fato é a diferença entre o valor da grandeza controlada e o valor da grandeza de referência que dá origem a uma ação que tem como último objetivo a eliminação da diferença entre os dois. O controle por realimentação é a técnica utilizada na grande maioria das aplicações industriais no primeiro nível de controle Podemos dizer que os sistemas com realimentação obedecem as seguintes etapas: y y
A variável a ser controlada é medida (ou calculada a partir das medições); A medição é comparada com um Set Point (SP). A diferença entre a medição e o Set Point (SP) e a variável a ser controlada (PV), é o sinal de erro;
Página 26 y
Uma variável de processo é ajustada ou manipulada para diminuir ou zerar o sinal de erro.
Diagrama em bloco de realimentação O diagrama em bloco de um sistema genérico de controle com realimentação negativa é mostrado na seguinte figura
Figura 32 ± Temporizador de pulso definido no ligamento
Contr olador : é constituído pelo conjunto dos dispositivos necessários para gerar
o sinal que proporcione o efeito de controle para (interface de potência) e, portanto, ao processo.
aplicar
ao
amplificador
Transdutor e Condicionador de Sinal: São os dispositivos que convertem a
grandeza física da saída controlada em uma grandeza homogênea (de mesmo tipo) ao Set-Point com um valor dentro da faixa desejada.
Sinal de Err o: é o sinal obtido pela diferença entre o sinal de Set-Point e o sinal
de realimentação fornecido pelo Condicionador de Sinal.
Perturbação ( r uído): é um sinal de entrada indesejado, geralmente influenciado
pelo meio ambiente que modifica o valor da saída. As vantagens fundamentais do sistema de controle a malha fechada com relação à malha aberta que justifica o emprego de recurso para controle podem assim ser sintetizados: y
Menor sensibilidade às variações paramétricas.
Página 27 y y y y
Menores efeitos das grandezas perturbadoras. Controle da velocidade de resposta. Redução do erro no estado permanente. Impedir situação instabilidade.
A importância destas vantagens será posteriormente esclarecida, mas desde já podemos adiantar o fato que variações paramétricas e perturbações são geralmente de caráter aleatório, isto é imprevisível a não ser nas suas características estatísticas e geralmente estão relacionadas com a interferência do meio ambiente o com o desgaste natural dos componentes. Controle on-off É também conhecido como o controle de ³duas posições´, ou controle ³ligadesliga´. O sinal de saída tem apenas duas posições que vão de um extremo a outro, podendo ser: válvula aberta ou válvula fechada, resistência ligada ou resistência desligada, compressor ligado ou compressor desligado. Analisemos pela figura a seguir um controlador on-off. Neste exemplo temos um ambiente com temperatura controlada: o valor desejado de temperatura é dado pelo (SP), o valor atual de temperatura (PV) é medida por um sensor de temperatura (por exemplo, um termopar), a função do controlador é a de chavear a resistência, tendo como parâmetro o valor de temperatura fornecido pelo sensor de modo que mantenha a temperatura determinada pelo SP dentro do ambiente.
Instruções de Controle O CLP Telemecanique TSX 3710 possui um bloco de funções avançadas que pode ser utilizada para aplicações que exijam controle preciso e confiável. Através deste bloco é possível se construir aplicações que envolvam sistemas de controle em malha fechada utilizando controle PID. Para acessar este bloco de função, estando na página de edição, clique no ícone correspondente a este bloco.
Página 28
Na tabela superior esquerda temos as família de funções. Na tabela superior direita o nome da função e na tabela abaixo temos a área para inserção dos parâmetros. Para o nosso estudo escolheremos a família escolha a função PID.
Proc esse contro l.
Em seguida
Nome da f unção relative à família
Parâmetros do PID que devem ser configurados
Parâmetros gerais para utilização da função PID. Tag ± Este parâmentro determina o nome do controle para efeito de identificação.
O nome atribuído a esta variável dever sempre vir entre apóstrofes (µProcesso1¶, por exemplo) e deve possuir no máximo 8 caractéres; Unit ± Determinar a unidade da variável a ser controlada e também deve ser
declarada entre apóstrofes. Seu tamanho máximo é de 6 caracteres;
Página 29
PV ± Valor real de entrada do processo (valor do processo). Este deve ser
preenchido com uma word (%MW100, por exemplo), ou seja, estará sendo envido para esta word o valor real do processo para que o controle ocorra corretamente; OUT - Valor de saída do processo que pode ser através de uma posição de um
registrador interno (%MW) ou uma saída analógica. AUTO ± Esta opção nos permite selecinar através de um bit se estaremos
realizando um controle automático ou manual. Se optarmos pela opção da utilização de um controle manual, o ajuste do set point também estará sendo feito pelo operador, mas o controle estará sendo efeturado a partir de comportamentos experimentais obtidos pelo operador. Se o estado deste bit for alterado, o operador irá apenas determinar um set point e o próprio CLP estará realizado todo o controle utilizando a função PID para que o processo apresente o valor desejado na saída. PARA ± Através desta função é possível se determinar o endereço inicial da word
onde serão parametrizados todos os detalhes referentes ao controle PID. Ao total, são 43 words que gerenciam todo o sistema de controle, porém, nós só teremos que configurar 13 delas, pois o restante é utilizada pelo próprio sistema (para leitura e escrita de parâmetros recebidos e calculados pelo sistema de controle). Diagrama esquemático:
4.5
Parâmatros avançados para configuração do controle PID
SP ± Valor de Set Pont; OOT MAN ± Endereço da word que estará responsável em transmitir o valor
manual de set point, isto quando selecionado o controle manual (bit AUTO Cofiguração como parâmetros gerais);
KP ± Esta função nos permite ajustar o ganho proporcional de acordo com a
configuração desejada;
TI ± Tempo atribuído a ação integral;
Página 30
TS ± Freqüência determinada para que o controle obtenha uma amostra do sinal
de entrada; OUT_MAX ± Valor máximo do limite de saída; OUT_MIM ± Valor mínimo; PV_DEV ± Seleciona a opção da utilização ou não da ação da ação derivativa
sendo proporcional ao valor de processo ³diretamente´. DEVAL_MMI ± PV_SUP ± Limite máxiomo que pode ser adquirido através do valor real; PV_INF ± Limite mínimo que pode ser adquirido através do valor real; PV_MMI ± Determina o endereço para onde será mandado o valor real que será
mostrado na IHM; SP_MMI ± Determina o endereço para onde será mandado o valor do set point
que será mostrado a IHM.
Após concluir a parametrização, o programa já pode ser descarregado para o CLP e já poderá ser utilizado de acordo com a aplicação.
You're Reading a Preview Unlock full access with a free trial.
Download With Free Trial
Página 32
4.4 Linguagem FBD.
A linguagem FBD é muito simples porque todos seus elementos são representados por meio de caixas o quadrados. Os elementos que realizam as operações são os blocos funcionais, muitos dos quais também são utilizados nas outras linguagens IEC1131, por exemplo, na LD e IL.
Variáveis de entrada
Blocos Funcionais Variáveis de saída
Os blocos funcionais são as estruturas mais importantes dentro da programação IEC1131, a seguir apresentamos alguns deles, os demais devem ser estudados no manual e a ajuda do software de programação.
Exemplos de blocos funcionais no I SaGRAF (IEC1131 compatíveis)
You're Reading a Preview Unlock full access with a free trial.
Download With Free Trial
Página 34
CASE
OF TW := BCD_TO_INT (THUMBWHEEL) ; : ; TW_ERROR := 0 ; , : ; CASE TW OF ... 1,5 : DISPLAY := OVEN_TEMP ; ELSE 2: DISPLAY := MOTOR_SPEED ; ; 3: DISPLAY := GROSS_TARE ; END_CASE; 4,6..10: DISPLAY := STATUS (TW-4) ; ELSE DISPLAY := 0 ; TW_ERROR := 1 ; END_CASE ; QW100 := INT_TO_BCD (DISPLAY) ; FOR<índice>:=TO J := 101 ; BY DO FOR I := 1 TO 100 BY 2 DO ; IF WORDS[I] = µ¶KEY¶¶ THEN ; J := I ; END_FOR; EXIT ; END_IF ; END_FOR ; WHILE DO J := 1 ; ; WHILE J <= 100 & WORDS [J] <>¶¶KEY¶ DO ; J := J+2 ; END_WHILE; END_WHILE ; REPEAT J := -1 ; ; REPEAT ; J := J+2 ; UNTIL UNTIL J = 101 OR WORDS[J] = ³KEY´ END_REPEAT; END_REPEAT ; EXIT
EXIT ;
Sentencia vazia
;
Exemplo: Saída com autoretenção. MOTOR := (ST ART OR MOT OR) AND N STOP;
You're Reading a Preview Unlock full access with a free trial.
Download With Free Trial
You're Reading a Preview Unlock full access with a free trial.
Download With Free Trial
You're Reading a Preview Unlock full access with a free trial.
Download With Free Trial
Página 38
Divergencias e convergencias simples y duplas no SFC:
You're Reading a Preview Unlock full access with a free trial.
Download With Free Trial
You're Reading a Preview Unlock full access with a free trial.
Download With Free Trial
Página 41
4.7 Algoritmos de controle descontínuos. São implementados os Controladores Descontínuos com 2 ou 3 posições, histereses e zona morta no PLCs por meio de blocos de comparação de instruções de entradas analógicas e os limites máximo e mínimo são fixados pelo operador da variável regulada. Se tem resultado "Verdadeiro" ou "Falso", são elaboradas as ações de controle em válvulas de duas posições por meio de ativação (seteo) ou desativação (reseteo) de saídas binárias do PLC. De acordo com este tipo de ações o controlador pode ser ON-OFF, de duas posições, de duas posições com histereses, de duas posições e zona morta (três posições), e de três posições com histereses. Puro ON/OFF é o mais simples controlador descontínuo. Conecta ou desconecta a ação de regulador no processo. É o mais instável e tem comutações constantes ao redor do ponto meio que pode afetar o sistema.
Duas posições sem histereses: melhora o comportamento prévio para somar uma ação inversa quando o erro é negativo, mas mantém o problema da comutação constante ao redor da área central.
Duas posições com histereses: É possível separar os pontos de comutação positiva e negativa, enquanto melhora a estabilidade, mas mantém a mudança abrupta de uma ação para outra.
Página 42
Três posições: este algoritmo evita as mudanças no mesmo ponto das ações direita e seu inverso, somando uma zona morta na área central. Isto garante durabilidade maior do sistema.
Três posições com histereses: realiza mudança escalonada de um extremo para o outro passando por uma zona sem ações de valores diferentes quando está em direções diferentes.
Três posições com histereses e zona morta: é o mais complexo mais também é o mais eficiente dos algoritmos descontínuos .
You're Reading a Preview Unlock full access with a free trial.
Download With Free Trial
Página 44
2.- Fazer o programa de automação de um conjunto de lâmpadas de propaganda de uma loja (anuncio na porta de entrada) que deve cumprir a seguinte seqüência de iluminação.
Entrada de inicio I 0.3
30s
Sinal Piscante 30s
Luz
30s
1 O 1.0
7s
7s
Luz
7s
2 O 1.2
Luz
7s
3 O 1.4
7s
7s
Luz
7s
4 O 1.6 7s
Diagrama de tempo da seqüência de luzes.