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 N1 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 1163 1162 1161 14160 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]