Baixe o app para aproveitar ainda mais
Prévia do material em texto
ControlLogix Configuração Avançada, usando RSLogix 5000 ( CCP14B ) Manual do Aluno Índice 1-140 Out/12 - Rev.00 Capítulo 1 - Informações Importantes ao Usuário................................................................................3 Capítulo 2 - Configuração dos Módulos de I/O .....................................................................................5 Capítulo 3 - Endereçamento Indireto ..................................................................................................... 15 Exercício A: ................................................................................................................................................ 18 Capítulo 4 - Instrução de Arquivo COP, FLL, AVE, SRT, STD ....................................................... 19 Cópia de Arquivo (COP) .......................................................................................................................... 19 Preenchimento de Arquivo (FLL) ........................................................................................................... 22 Exercício B: ................................................................................................................................................ 24 Média de Arquivo (AVE) .......................................................................................................................... 25 Classificação de Arquivo (SRT) ............................................................................................................. 28 Desvio Padrão do Arquivo (STD)........................................................................................................... 31 Exercicio C: ................................................................................................................................................ 34 Capítulo 5 - Instruções de Lógica, Aritmética e Comparação de Arquivo................................. 35 Seleção de Modo de Operação.............................................................................................................. 35 Arquivamento Aritmético e Lógico (FAL).............................................................................................. 41 Exercicio D: ................................................................................................................................................ 47 Comparação e Busca de Arquivo (FSC) .............................................................................................. 48 Exercicio E:................................................................................................................................................. 53 Capítulo 6 - Instruções de Deslocamento Matriz (BSL, BSR, FFL, FFU, LFL, LFU) ................ 54 Carga FIFO (FFL)...................................................................................................................................... 54 Descarga FIFO (FFU) .............................................................................................................................. 57 Carga LIFO (LFL) ...................................................................................................................................... 60 Descarga LIFO (LFU) ............................................................................................................................... 63 Exercicio F: ................................................................................................................................................. 66 Deslocamento de Bit para a Esquerda (BSL) ..................................................................................... 67 Deslocamento de Bit para a Direita (BSR) .......................................................................................... 70 Exercicio G: ................................................................................................................................................ 73 Capítulo 7 - Instruções de Seqüenciador (SQI, SQO, SQL) ............................................................ 74 Entrada do Sequenciador (SQI) ............................................................................................................. 74 Saída do Sequenciador (SQO) .............................................................................................................. 77 Carga do Sequenciador (SQL) ............................................................................................................... 81 Exercicio H: ................................................................................................................................................ 84 Capítulo 8 - Distribuição do Campo do Bit (BTD) .............................................................................. 86 Capítulo 9 - Instrução Message (MSG).................................................................................................. 90 Especificação dos Detalhes de Configuração (Guia Configuration)............................................... 98 Especificações dos etalhes de Comunicação (Guia Communication)......................................... 100 Capítulo 10 - Produção e Consumo de um Tag................................................................................ 104 Capítulo 11 - Instruções Especiais....................................................................................................... 110 Comparação de Bit de Arquivo (FBC) ................................................................................................ 110 Seleção do modo de busca................................................................................................................... 112 Detecção de Diagnóstico (DDT) .......................................................................................................... 114 Capítulo 12 - Proporcional, Integral e Derivativo (PID) .................................................................. 118 Configuração de uma Instrução PID ................................................................................................... 125 Windup anti-reset e transferência ininterrupta de manual para automático: .............................. 129 Temporização da instrução PID:.......................................................................................................... 130 Reinicialização ininterrupta ................................................................................................................... 133 Índice 2-140 Out/12 - Rev.00 Polarização derivativa ............................................................................................................................ 134 Configuração da zona morta................................................................................................................. 134 Uso da limitação de saída ..................................................................................................................... 135 Feedforward ou polarização da saída (bias) ..................................................................................... 135 Malhas em cascata ................................................................................................................................. 136 Controle de um índice ............................................................................................................................ 136 Teoria PID................................................................................................................................................. 137 Exercício I: ................................................................................................................................................ 139 Capítulo 1 - Informações Importantes ao Usuário 3-140 Out/12 - Rev.00 Capítulo 1 - Informações Importantes ao Usuário Devido às várias aplicações dos produtosdescritos neste manual, os responsáveis pelo uso deste equipamento de controle devem certificar-se de que todas as etapas foram seguidas para assegurar que cada aplicação e uso atendam a todos os requisitos de desempenho e segurança, incluindo todas as leis aplicáveis, regulamentações, códigos e padrões. As ilustrações, gráficos, exemplos de programas e de layout exibidos neste manual são apenas para fins ilustrativos. Visto que há diversas variáveis e requisitos associados a qualquer instalação especifica, a Rockwell Automation não assume nenhum tipo de responsabilidade (incluindo responsabilidade por propriedade intelectual) por uso real baseado nos exemplos exibidos nesta publicação. A publicação SGI –1.1, Safety Guidelines for the Application, Instalation, and Maintenance of Solid-State Control (disponível no escritório da Rockwell Automation), descreve algumas diferenças importantes entre equipamentos eletrônicos e dispositivos eletromecânicos, que devem ser levados em consideração ao aplicar produtos como os descritos nesta publicação. ATENÇÃO : A reprodução do conteúdo desta publicação protegida por copyright, integral ou parcialmente, sem consentimento prévio por escrito da Rockwell Automation é proibida. Ao longo deste manual, fazemos referência a outros documentos técnicos. Ao aplicar os procedimentos, o usuário deve consultar todas as referências mencionadas relativas a informações de segurança mais detalhadas, pois dizem respeito a circunstâncias especificas. Através de notas, procuramos chamar a atenção do usuário para questões de segurança: Os avisos de Atenção ajudam o usuário a: Identificar e evitar situações de perigo Reconhecer as conseqüências Capítulo 1 - Informações Importantes ao Usuário 4-140 Out/12 - Rev.00 Capítulo 2 – Configuração dos Módulos de I/O 5-140 Out/12 - Rev.00 Capítulo 2 - Configuração dos Módulos de I/O Antes de começar : Este procedimento mostrará como configurar um módulo de I/O no ControlLogix. Como fazer? Abra o software RSLogix 5000 e na árvore de projeto localize o ítem I/O Configuration. Clique com o botão da direita e escolha no menu New Module (Fig. 1). Aparecerá então uma janela onde será possível selecionar em uma lista qual módulo de I/O será configurado (Fig. 2). (Fig. 1) (Fig. 2) Capítulo 2 – Configuração dos Módulos de I/O 6-140 Out/12 - Rev.00 Escolha o cartão 1756-OB16D ou 1756-OB8, e clique em OK. Aparecerá então um Wizard, uma janela de configuração amigavél durante todo o processo de configuração do módulo. Entre com as configurações para este módulo como mostrado na próxima figura. Defina um nome para o cartão com até 40 caracteres, não sendo permitido a utilização de caracteres especiais e o início com números. Clique em Finish para aceitar as configurações e fechar a tela. 1. Verifique se as tag‟s foram criadas para o módulo de saída do slot 0. a. Clique com o botão da direita sobre a pasta do controlador e escolha o item monitor tag‟s. b. Como mostrado na Fig. 3, três entradas devem aparecer debaixo de Tag Name: Local:0:C, Local:0:I e Local:0:O. Estas três entradas são estruturas das tag‟s (ou grupos) e que contém mais tag‟s como é exibido de fato na tela. Se estas estruturas de tag‟s (ou grupos) não aparecerem, verifique se na caixa Scope o campo está exibindo o nome do seu projeto e na caixa Show, Show all. c. Na tag o nome Local indica que este módulo está no mesmo chassi do controlador. O número entre os dois pontos é o número do slot do módulo; neste caso o módulo 1756OB16D está no slot 0. Os caracteres após os dois pontos são, I, O, e C, que indicam se os dados são de entrada, saída, ou dados de configuração. Neste caso o módulo de saída possue os três tipos de dados. A caixa sobre o campo tag name exibe qual o tipo de tag visualizada. Neste caso a caixa esta mostrando o nome do seu projeto seguido da palavra Controller, que indica as tag‟s válidas para todos os programas neste arquivo de controlador. Se no campo exibiu o nome de um programa, então as tag‟s só são válidas para o arquivo de programa exibido no campo. Capítulo 2 – Configuração dos Módulos de I/O 7-140 Out/12 - Rev.00 Para os cartões com diagnóstico 1756-OB16D será criada a seguinte estrutura de endereçamento (Fig. 4). Clique no sinal + em frente ao nome da tag „Local:0:I‟ para exibir todas as tag‟s de entrada para este módulo. Seis entradas devem aparecer agora debaixo da estrutura da tag „Local:0:I‟. Clique no sinal + em frente ao nome da tag „Local:0:O‟ para exibir todas as tag‟s de saída para este módulo. Uma tag deve aparecer agora debaixo da estrutura da tag „Local:0:O‟. Você pode ter que usar a barra de rolagem à direita ao lado da janela do Controlador para ver a tag „Local:0:O.Data‟. A tag „Local:0:O.Data‟ são os bit‟s de saída atuais (como os dados da tabela imagem das saídas em um PLC-5). Para os cartões com sem diagnóstico 1756-OB8 será criada a seguinte estrutura de endereçamento (Fig. 5). Clique no sinal + em frente ao nome da tag „Local:0:I‟ para exibir todas as tag‟s de entrada para este módulo. Duas entradas devem aparecer agora debaixo da estrutura da tag „Local:0:I‟ pois este modelo de cartão não possue diagnósticos. Clique no sinal + em frente ao nome da tag „Local:0:O‟ para exibir todas as tag‟s de saída para este módulo. Uma tag deve aparecer agora debaixo da estrutura da tag „Local:0:O‟. Você pode ter que usar a barra de rolagem à direita ao lado da janela do Controlador para ver a tag „Local:0:O.Data‟. A tag „Local:0:O.Data‟ são os bit‟s de saída atuais (como os dados da tabela imagem das saídas em um PLC-5). (Fig. 3) (Fig. 4) Capítulo 2 – Configuração dos Módulos de I/O 8-140 Out/12 - Rev.00 2. Crie e configure um módulo de entrada discreto para este controlador.O módulo de entrada discreto que nós usaremos é o módulo 1756-IB16D ou 1756-IB16 que esta no slot 2 do simulador. Clique com o botão da direita em I/O Configuration, e a seguir em New Module para abrir a janela onde selecionamos o tipo de módulo disponível. a) Dê um duplo-clique no módulo selecionado (1756-IB16D ou 1756-IB16). Entre com as configurações para este módulo como mostrado na figura a seguir. Defina um nome para o cartão com até 40 caracteres, não sendo permitido a utilização de caracteres especiais e o início com números. Clique em próximo para a exibição da próxima tela de configuração. A tela mostrada na próxima figura é uma tela de estado usada em on-line para conferir se houve algum erro no barramento e para configurar os parâmetros do ControlBus. (Fig. 5) Capítulo 2 – Configuração dos Módulos de I/O 9-140 Out/12 - Rev.00 Clique em Finish para aceitar as configurações e fechar a tela. 3. Verifique se as tag‟s foram criadas para o módulo de entrada do slot 2. a. Clique com o botão da direita sobre a pasta do controlador e escolha o item monitor tag‟s. b. Duas tag‟s devem aparecer agora debaixo de tag name „Local:2:C‟ e „Local: 2:I‟. O módulo de entrada possui dados de entrada e dados de configuração disponíveis para o usuário. Clique no pequeno sinal (+) em frente ao nome da tag „Local: 2:C‟ para exibir todas as tag‟s de configuração . Expanda a coluna chamada „Tag Name‟ para visualizar os nomes das tag‟s completos. Se o grupo de tag‟s „Local: 2:I‟ não for visível, use a barra de rolagem para exibir a estrutura „Local: 2:I‟. Clique no pequeno sinal (+) em frente ao nome da tag „Local: 2:I‟ para exibir todas as tag‟s de entrada para este módulo. A tag „Local:2:I.Dados‟são os bit‟s de entrada atuais (como a tabela imagem das entradas do CLP-5). Para os cartões com diagnóstico 1756-IB16D serácriada a seguinte estrutura de endereçamento. Capítulo 2 – Configuração dos Módulos de I/O 10-140 Out/12 - Rev.00 Para os cartões sem diagnóstico 1756-IB16 será criada a seguinte estrutura de endereçamento. Agora iremos configurar um módulo de saídas analógico. Clique com o botão da direita e escolha no menu New Module. Aparecerá então a janela onde será possível selecionar na lista o módulo 1756-OF6VI ou o módulo 1756-OF4. Capítulo 2 – Configuração dos Módulos de I/O 11-140 Out/12 - Rev.00 Clique em OK. Entre com as configurações para este módulo como mostrado na figura a seguir. Clique em Finish para aceitar as configurações e fechar a tela. Verifique se as tag‟s foram criadas para o módulo 1756-OF6VI para o slot 8. Dê um duplo clique sobre a pasta Controller Tags.Verifique se apareceram as tags conforme abaixo: No campo tag Name, em Local:8:C, encontraremos todas as configurações feitas para os canais deste módulo. Em Local:8:I, encontraremos todos os diagnósticos e status das saídas analógicas deste módulo e em Local:8:O, encontraremos os dados das saídas analógicas deste módulo. Clique no pequeno sinal de + diante de cada uma destas tags para uma melhor visualizaç ão. Configuraremos agora um cartão de entradas analógicas. Clique com o botão da direita e escolha no menu New Module. Aparecerá então a janela onde será possível selecionar na lista o módulo 1756-IF6I ou o módulo 1756-IF8. Capítulo 2 – Configuração dos Módulos de I/O 12-140 Out/12 - Rev.00 Dê um duplo-clique no módulo 1756-IF6I. Entre com as configurações para este módulo como mostrado na figura a seguir. Clique em Finish para aceitar as configurações e fechar a tela. Verifique se as tag‟s foram criadas para o módulo 1756-IF6I para o slot 9. Dê um duplo clique sobre a pasta Controller Tags. Capítulo 2 – Configuração dos Módulos de I/O 13-140 Out/12 - Rev.00 Verifique se apareceram as tags conforme abaixo: No campo tag Name, em Local:9:C, encontraremos todas as configurações feitas para os canais deste módulo. Em Local:9:I, encontraremos todos os diagnósticos, status e os dados das entradas analógicas deste módulo. Clique no pequeno sinal de + diante de cada uma destas tags para uma melhor visualização. Anotações do Aluno : Capítulo 2 – Configuração dos Módulos de I/O 14-140 Out/12 - Rev.00 Capítulo 3 – Endereçamento Indireto 15-140 Out/12 - Rev.00 Capítulo 3 - Endereçamento Indireto Introdução: É utilizado como ferramenta de otimização de um programa. Quando Atribuir um Endereço Indireto Se você quiser que uma instrução acesse diferentes elementos em uma tabela, use um tag no subscrito da matriz (um endereço indireto). Ao mudar o valor do tag, você muda o elemento da matriz à qual sua lógica se refere. Quando o índice for igual a 1, array [index] aponta aqui . Quando o índice for igual a 2, array [index] aponta aqui . Para: selecionar uma receita de uma matriz de receitas carregar a configuração de uma máquina específica, a partir de uma matriz de configurações possíveis carregar os parâmetros ou estados de uma matriz, um elemento de cada vez registrar códigos de erro realizar diversas ações em um elemento da matriz e, então indexe para o próximo elemento Use um tag no subscrito e: Insira o número da receita no tag. Insira a configuração desejada no tag. Realize a ação requisitada no primeiro elemento. Use uma instrução ADD para incrementar o valor do tag e aponte para o próximo elemento na matriz. array[0] array[1] array[2] array[3] 4500 6000 3000 2500 1 EXEMPLO Capítulo 3 – Endereçamento Indireto 16-140 Out/12 - Rev.00 O exemplo seguinte carrega uma série de valores pré-selecionados em um temporizador, um valor (elemento de matriz) de cada vez. Observe a matriz : A matriz timer_presets armazena uma série de valores pré-selecionados para o temporizador na próxima linha. O tag north_tank.step indica o elemento da matriz a ser usado. Por exemplo, quando north_tank.step for igual a 0, a instrução carrega timer_presets[0] no temporizador (6000 ms). Quando north_tank.step_time estiver completo, a linha incrementa o north_tank.step para o número seguinte e aquele elemento da matriz timer_presets é carregado no temporizador. Quando o north_tank.step excede o tamanho da matriz, a linha reseta o tag para começar no primeiro elemento da matriz. (A matriz contém elementos de 0 a 3.) Expressões: Você também pode usar uma expressão para especificar o subscrito de uma matriz. • Uma expressão usa operadores, como + ou -, para calcular um valor. • O controlador calcula o resultado da expressão e usa-o como o subscrito da matriz. Capítulo 3 – Endereçamento Indireto 17-140 Out/12 - Rev.00 Você pode usar estes operadores para especificar o subscrito de uma matriz: Operador Descrição + Adição - Subtração /Negação * Multiplicação / Divisão ABS Valor Absoluto AND AND FRD de BCD para inteiro MOD Módulo NOT Complemento OR OR SQR Raiz Quadrada TOD de Inteiro para BCD TRN Truncado XOR OU Exclusivo Formate suas expressões como a seguir: Se o operador requisitar: um valor (tag ou expressão) dois valores (tags, constantes ou expressões) Exercicio A Se o operador requisitar: Use este formato: Exemplos: um valor (tag ou expressão Operador (valor ) ABS(tag_a) dois valores (tags, constante ou expressões) value_a operator value_b tag_b + 5 tag_c AND tag_d tag_e ** 2) MOD (tag_f / tag_g) Capítulo 3 – Endereçamento Indireto 18-140 Out/12 - Rev.00 Exercício A: Ligar 6 motores em sequência de 1 em 1 segundo. Os endereços deverão ser: Botão “Start”: Local:2:I.Data.0 Motores: M0 = Local:0:O.Data.0 M1 = Local:0:O.Data.1 M5 = Local:0:O.Data.5 Quando pressionado o Botão 2 deverá desligar todos os motores. Quando pressionado o Botão 3 deverá desligar na sequência. OBS: Desenvolver o ladder com apenas um temporizador, utilizando-se do endereçamento indireto Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 19-140 Out/12 - Rev.00 Capítulo 4 - Instrução de Arquivo COP, FLL, AVE, SRT, STD Cópia de Arquivo (COP) A instrução COP copia o(s) valor (es) de Source para Destination. Source permanece inalterado. Operando de Lógica Ladder Operando Tipo: Formato: Descrição Source SINT INT DINT REAL Estrutura Tag elemento inicial para cópia Importante: os operandos Source e Destination devem ter o mesmo tipo de dado ou podem ocorrer resultados inesperados. Destination SINT INT DINT REAL Estrutura Tag elemento inicial a ser sobrescrito por Source Importante: os operandos Source e Destination devem ter o mesmo tipo de dado ou podem ocorrer resultados inesperados. Length DINT Imediato tag número de elementos em Destination a serem copiados O número de bytes copiados é: (número de bytes em tipos de dados em Destination) A instrução COP opera na memória de dados contínua e realiza uma cópia da memória direta byte-a-byte, que requer uma compreensão do layout da memória do controlador . Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 20-140 Out/12 - Rev.00 A instrução COP não grava logo após o final da matriz. Se o comprimento for maior do que o número total de elementos na matriz.Destination, a instrução COP para no final da matriz. Nenhuma falha grave é gerada. Flags de Status Aritmético: não afetados Condições de Falha: nenhuma Tanto array_4 como array_5 são o mesmo tipo de dados. Quando habilitada, a instrução COP copia os primeiros10 elementos de array_4 nos primeiros 10 elementos de array_5. Quando habilitada, a instrução COP copia a estrutura timer_1 no elemento 5 de array_timer. A instrução copia somente uma estrutura para um elemento da matriz. Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 21-140 Out/12 - Rev.00 Esse exemplo inicializa uma matriz de estruturas de temporizador. Quando habilitadas, as instruções MOV inicializam os valores .PRE e .ACC do primeiro elemento array_timer. Quando habilitada, a instrução COP copia um bloco contínuo de bytes, iniciando em array_timer[0]. O comprimento é de nove estruturas de temporizador Primeiro a instrução copia os v alores array _timer[0] em array _timer[1] Então, a instrução copia os v alores array _timer[1] em array _timer[2] Depois, a instrução copia os v alores array _timer[2] em array _timer[3] Então, a instrução copia os v alores array _timer[3] em array _timer[4] Finalmente, a instrução copia os v alores array _timer[9] em array _timer[10] Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 22-140 Out/12 - Rev.00 Preenchimento de Arquivo (FLL) A instrução FLL preenche os elementos de uma matriz com o valor Source. Source permanece inalterado. Operando de Lógica Ladder Operando Tipo: Formato: Descrição Source SINT INT DINT REAL Estrutura Tag elemento inicial para cópia Importante: os operandos Source e Destination devem ter o mesmo tipo de dado ou podem ocorrer resultados inesperados. Destination SINT INT DINT REAL Estrutura Tag elemento inicial a ser sobrescrito por Source Importante: os operandos Source e Destination devem ter o mesmo tipo de dado ou podem ocorrer resultados inesperados. O melhor jeito para inicializar uma estrutura é usar a instrução COP. Length DINT Imediato tag número de elementos em Destination a serem copiados Descrição: O número de bytes preenchidos é: Contagem de Byte = Comprimento (número de bytes em tipos de dados em Destination) A instrução FLL opera na memória de dados contínua. A instrução FLL não gravará logo após o final de uma matriz. Se o comprimento for maior do que o número total de elementos na matriz Destination, a instrução COP pára no final da matriz. Nenhuma falha grave é gerada. Para obter resultados melhores, Source e Destination devem ser do mesmo tipo. Se você quiser preencher uma estrutura, use a instrução COP. Se você quiser misturar os tipos de dados para Source e Destination, os elementos em Destination são preenchidos com os valores convertidos de Source. Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 23-140 Out/12 - Rev.00 Se Source for: E Destination for: Source é convertido para: SINT, INT, DINT ou REAL SINT SINT SINT, INT, DINT ou REAL INT INT SINT, INT, DINT ou REAL DINT DINT SINT, INT, DINT ou REAL REAL REAL SINT Estrutura SINT (não convertido) INT Estrutura INT (não convertido) DINT Estrutura DINT (não convertido) REAL Estrutura REAL (não convertido) Flags de Status Aritmético: não afetados Condições de Falha: nenhuma Operando de Lógica Ladder Quando habilitada, a instrução FLL copia o valor em value_1 para dest_1. Tipo de dados (value_1) Source: Valor (value_1) Source: Destination (dest_1) tipo de dados: Destination (dest_1) valor depois de FLL SINT 16#80 (-128) DINT 16#FFFF FF80 (-128) DINT 16#1234 5678 SINT 16#78 SINT 16#01 REAL 1.0 REAL 2.0 INT 16#0002 SINT 16#01 T IMER 16#0101 0101 16#0101 0101 16#0101 0101 INT 16#0001 T IMER 16#0001 0001 16#0001 0001 16#0001 0001 DINT 16#0000 0001 T IMER 16#0000 0001 16#0000 0001 16#0000 0001 Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 24-140 Out/12 - Rev.00 Exercício B: Criar um arquivo de dados do tipo DINT com 100 elementos. Quando for dado um pulso no Botão1, preencher os primeiros 50 elementos deste arquivo com o valor proveniente da Tag VALOR. Quando for dado um pulso no Botão2, copiar os valores dos 50 primeiros elementos para os 50 últimos elementos do mesmo arquivo em apenas uma varredura. Quando for dado um pulso no Botão3, zerar o arquivo de 100 elementos Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 25-140 Out/12 - Rev.00 Média de Arquivo (AVE) A instrução AVE calcula a média de um conjunto de valores. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Array SINT INT DINT REAL Tag da Matriz encontre a média dos valores nessa matriz especifique o primeiro elemento do grupo de elementos para a média não use CONTROL.POS em subscrito Dimension to vary DINT imediato (0, 1, 2) a dimensão a ser usada depende do número de dimensões, a seqüência é array[dim_0,dim_1,dim_2] array[dim_0,dim_1] array[dim_0] Destination SINT INT DINT REAL tag resultado da operação Control CONTROL tag estrutura de controle para a operação Length DINT imediato número de elementos da matriz para a média Position DINT imediato elemento atual na matriz valor inicial é normalmente 0 Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 26-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit habilitado indica que a instrução AVE está habilitada. .DN BOOL O bit Executado é energizado quando a instrução operou no último elemento (.POS = .LEN). .ER BOOL O bit de Erro é energizado se a expressão gera um overflow. A instrução pára a execução até que o programa zere o bit .ER. O valor .POS contém a posição do elemento que provocou o overflow está armazenado no valor .POS. .LEN DINT O comprimento especifica o número dos elementos na matriz opera. .POS DINT A posição contém a posição do elemento atual que a instrução está acessando. Descrição: A instrução AVE calcula a média de um conjunto de valores. Certifique-se de que Length não faça com que a instrução exceda o operando Dimension to vary especificado. Se isso ocorrer, Destination ficará incorreto. Flags de Status Aritmético: Os flags de status aritmético são afetados. Condições de Falha: Uma falha grave ocorrerá se: Tipo de Falha: Caodigo de Falha: .POS < 0 ou .LEN < 0 4 21 o operando Dimension to vary não existe para a matriz especificada 4 20 Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 27-140 Out/12 - Rev.00 Exemplo de Lógica Ladder Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 28-140 Out/12 - Rev.00 Classificação de Arquivo (SRT) A instrução SRT classifica um conjunto de valores em uma dimensão (Dim to vary) da Matriz em ordem crescente. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Array SINT INT DINT REAL Tag da Matriz encontre a média dos valores nessa matriz especifique o primeiro elemento do grupo de elementos para a classificação não use CONTROL.POS em subscrito Dimension to vary DINT imediato (0, 1, 2) a dimensão a ser usada depende do número de dimensões, a seqüência é array[dim_0,dim_1,dim_2] array[dim_0,dim_1] array[dim_0] Control CONTROL tag estrutura de controle para a operação Length DINT imediato número de elementos da matriz para a classificação Position DINT imediato elemento atual na matriz valor inicial é normalmente 0 Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 29-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit habilitado indica que a instrução SRT está habilitada..DN BOOL O bit Executado é energizado quando os elementos especificados forem classificaddos. .ER BOOL O bit de Erro é energizado quando uma das condições .LEN < 0 ou .POS < 0 tmabém gerar uma falha grave. .LEN DINT O comprimento especifica o número dos elementos na matriz na qual a instrução opera. .POS DINT A posição contém a posição do elemento atual que a instrução está acessando. Descrição: A instrução SRT classifica um conjunto de valores em uma dimensão (Dim to vary) da Matriz em ordem crescente. Flags de Status Aritmético: Os flags de status aritmético são afetados. Condições de Falha: Uma falha grave ocorrerá se: Tipo de Falha: Código de Falha: .POS < 0 ou .LEN < 0 4 21 o operando Dimension to vary não existe para a matriz especificada 4 20 A instrução tenta acessar os dados localizados fora dos limites da matriz. 4 20 Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 30-140 Out/12 - Rev.00 Exemplo de Lógica Ladder Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 31-140 Out/12 - Rev.00 Desvio Padrão do Arquivo (STD) A instrução STD calcula o desvio padrão de um conjunto de valores em uma dimensão da Matriz e armazena o resultado em Destination. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Array SINT INT DINT REAL Tag da Matriz encontre a média dos valores nessa matriz especifique o primeiro elemento do grupo de elementos a serem usados no para a classificaçãocálculo do desvio padrão não use CONTROL.POS em subscrito Dimension to vary DINT imediato (0, 1, 2) a dimensão a ser usada depende do número de dimensões, a seqüência é array[dim_0,dim_1,dim_2] array[dim_0,dim_1] array[dim_0] Destination REAL Tag Reseultado da operação Control CONTROL tag estrutura de controle para a operação Length DINT imediato número de elementos da matriz a serem usados no cálculo do desvio padrão. Position DINT imediato elemento atual na matriz valor inicial é normalmente 0 Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 32-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit habilitado indica que a instrução STD está habilitada. .DN BOOL O bit Executado é energizado quando o cálculo é concluído. .ER BOOL O bit de Erro é energizado quando a instrução gerar um overflow. A instrução pára a execução até que o programa zere o bit .ER. A posição do elemento que provocou o overflow está armazenada no valor .POS. .LEN DINT O comprimento especifica o número dos elementos na matriz na qual a instrução opera. .POS DINT A posição contém a posição do elemento atual que a instrução está acessando. Descrição: O desvio padrão é calculado de acordo com esta fórmula : Onde: start = subscrito dimension-to-vary do operando array xi = elemento da tag na matriz N = número de elementos especificados na matriz AVE = Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 33-140 Out/12 - Rev.00 Flags de Status Aritmético: Os flags de status aritmético são afetados. Condições de Falha: Uma falha grave ocorrerá se: Tipo de Falha: Caodigo de Falha: .POS < 0 ou .LEN < 0 4 21 o operando Dimension to vary não existe para a matriz especificada 4 20 Exemplo de Lógica Ladder Capítulo 4 – Instruções de Arquivo (COP, FLL, AVE, SRT, STD) 34-140 Out/12 - Rev.00 Exercicio C: Em uma linha de produção, temos 10 balanças. Calcular a média aritmética e o desvio padrão da leitura das dez balanças. Caso ocorra defeito em alguma balança, este deverá ser ignorado para cálculo da média e do desvio padrão. Utilizar os seguintes endereços: Média - botão 1; Desvio - botão 2 e Ordenar - botão 3 Balança 1 Balança 2 Balança 3 Balança 10 Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 35-140 Out/12 - Rev.00 Capítulo 5 - Instruções de Lógica, Aritmética e Comparação de Arquivo Seleção de Modo de Operação Para as instruções FAL e FSC, o modo informa o controlador sobre com o distribuir a operação de matriz: Se você quiser: Selecione este modo: operar em todos os elementos especificados em uma matriz antes de prosseguir para a próxima instrução All (Todos) distribuir a operação de matriz em várias varreduras inserir o número de elementos para operar por varredura (1-2147483647) Numerical (Numérico) manipular um elemento da matriz cada vez que a entrada da condição da linha passa de falsa para verdadeira Incremental (Incremento) Modo All (Todos) No modo All, todos os elementos especificados na matriz são operados antes de prosseguir para a próxima instrução. A operação começa quando a entrada da condição da linha da instrução passa de falsa para verdadeira. O valor de posição (.POS) na estrutura de controle indica o elemento na matriz que a instrução está usando atualmente. A operação pára quando o valor .POS for igual ao valor .LEN. O diagrama de temporização a seguir mostra a relação entre os bits de status e a operação da instrução. Quando a execução da instrução estiver completa, o bit .DN será energizado. O bit .DN, o bit .EN e o valor .POS são zerados quando a entrada da condição da linha se torna falsa. Somente após isto é que outra execução da instrução pode ser disparada por uma transição de falsa para verdadeira da entrada da condição da linha. Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 36-140 Out/12 - Rev.00 Modo Numerical (numérico) O modo Numerical distribui a operação de matriz em várias varreduras. Esse modo é útil quando se trabalha com dados críticos não temporizados ou um grande volume de dados. É necessário inserir o número de elementos para operar para cada varredura, o que mantém o tempo de varredura menor. A execução é disparada quando a entrada da condição da linha passa de falsa para verdadeira. Após o disparo, a instrução é executada cada vez que se realiza a varredura na mesma para o número de varreduras necessárias para completar a operação em toda a matriz. Após o disparo, a entrada da condição da linha pode se alterar repetidamente sem interromper a execução da instrução. Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 37-140 Out/12 - Rev.00 Evite usar os resultados de uma instrução de arquivo operando no modo numérico até que o bit .DN fique energizado. O diagrama de temporização a seguir mostra a relação entre os bits de status e a operação da instrução. Quando a execução da instrução estiver completa, o bit .DN será energizado. Se a entrada da condição da linha se tornar verdadeira na conclusão, os bits .DN e .ER são energizados até que a entrada da condição da linha se torne falsa. Quando a entrada da condição da linha se torna falsa, esses bits são zerados e o valor .POS é desenergizado. Se a entrada da condição da linha for falsa na conclusão, o bit .EN será zerado imediatamente. Uma varredura depois que o bit .EN é desenergizado, o bit .DN e o valor .POS são zerados. Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 38-140 Out/12 - Rev.00 Modo Incremental (incremento) O modo Incremental manipula um elemento da matriz cada vez que a entrada da condição da linha da instrução passa de falsa para verdadeira. O diagrama de temporização a seguir mostra a relação entre os bits de status e a operação da instrução. A execução ocorre somente em uma varredura na qual a entrada da condição da linha passa de falsa para verdadeira. Cada vez que issoocorre, apenas um elemento da matriz é manipulado. Se a entrada da condição da linha permanecer verdadeira durante mais de uma varredura, a instrução executa somente durante a primeira varredura. Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 39-140 Out/12 - Rev.00 Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 40-140 Out/12 - Rev.00 O bit .EN é energizado quando a entrada da condição da linha se torna verdadeira. O bit .DN é energizado quando o último elemento na matriz for manipulado. Quando o último elemento for manipulado e a entrada da condição da linha se tornar falsa, o bit .EN, o bit .DN e o valor .POS são removidos. A diferença entre o modo Incremental e o modo Numerical a uma taxa de um elemento por varredura é: O modo Numerical com qualquer número de elementos por varredura requer somente uma transição de falsa para verdadeira da entrada da condição da linha para iniciar a execução. A instrução continua a executar o número especificado de elementos a cada varredura até a conclusão, independente do estado da entrada da condição da linha. O modo Incremental requer que a entrada da condição da linha da instrução passe de falsa para verdadeira para manipular um elemento na matriz. Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 41-140 Out/12 - Rev.00 Arquivamento Aritmético e Lógico (FAL) A instrução FAL realiza as operações de cópia, aritmética, lógica e função nos dados armazenados em uma matriz. Operandos de Lógica Ladder: Operando Tipo Format o Descrição Control CONTROL tag estrutura de controle para a operação Length DINT imediato número de elementos na matriz a serem manipulados Position DINT imediato elemento atual na matriz valor inicial é normalmente Mode DINT imediato como distribuir a operação selecione INC, ALL ou insira um número Destination SINT tag tag para armazenar o resultado INT DINT REAL Expressão SINT imediato uma expressão composta por tags e/ou valores imediatos separados por operadores INT tag DINT REAL Um tag SINT ou INT é convertido para um valor DINT pela extensão de Sinal Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 42-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit habilitado indica que a instrução FAL está habilitada. .DN BOOL O bit Executado é energizado quando a instrução operou no último elemento (.POS = .LEN). .ER BOOL O bit de Erro é energizado se a expressão gera um overflow (S:V é energizado). A instrução pára a execução até que o programa zere o bit .ER. O valor .POS contém a posição do elemento que provocou o overflow. .LEN DINT O comprimento especifica o número dos elementos na matriz na qual a instrução FAL opera. .POS DINT A posição contém a posição do elemento atual que a instrução está acessando. Descrição: A instrução FAL realiza as mesmas operações nas matrizes conforme a instrução CPT realiza as operações dos elementos. Os exemplos que começam na página 7-14 mostram como se usa o valor .POS para passar por uma matriz. Se o subscrito na expressão de Destination está fora da faixa, a instrução FAL gera uma falha grave (tipo 4, código 20). Flags de Status Aritmético: Os flags de status aritmético são afetados. Condições de Falha: Uma falha grave ocorrerá se: Tipo de falha: Código de falha subscrito está fora da faixa 4 20 .POS < 0 ou .LEN < 0 4 21 Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 43-140 Out/12 - Rev.00 Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 44-140 Out/12 - Rev.00 Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 45-140 Out/12 - Rev.00 Expressões FAL As expressões das instruções FAL são programadas da mesma forma que as expressões nas instruções CPT. Use as seções a seguir para mais informações sobre operadores válidos, formato e seqüência de operação que são comuns nas duas instruções. Operadores válidos Operador: Descrição: Ótimo: + adição DINT, REAL - subtração/negativo DINT, REAL * multiplicação DINT, REAL / divisão DINT, REAL ** expoente (x elevado a y) DINT, REAL ABS valor absoluto DINT, REAL ACS arco co-seno REAL AND bitwise AND DINT ASN arco seno REAL ATN arco tangente REAL COS co-seno REAL DEG radianos para graus DINT, REAL FRD BCD para inteiro DINT LN natural log REAL LOG logaritmo na base de 10 REAL MOD módulo-divisão REAL , DINT NOT bitwise complemento DINT OR bitwise OR DINT RAD graus para radianos DINT , REAL SIN seno REAL SQR raiz quadrada DINT, REAL TAN tangente REAL TOD inteiro para BCD DINT TRN truncado DINT, REAL XOR bitwise exclusivo OR DINT Expressões de formatação Para cada operador usado em uma expressão, é necessário fornecer um ou dois operandos (tags ou valores imediatos). Use a tabela a seguir para formatar operadores e operandos dentro de uma expressão: Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 46-140 Out/12 - Rev.00 Para operadores que operam com: Use esse formato: Exemplos: um operando operador (operando) ABS(tag_a) dois operandos operand_a operator operand_b tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g) Determinação da seqüência de operação As operações gravadas na expressão são realizadas pela instrução em uma seqüência prescrita, não necessariamente na seqüência em que foram gravadas. É possível suprimir a seqüência da operação agrupando-se os termos dentro de parênteses, forçando a instrução para realizar uma operação dentro dos parênteses, antes de outras operações. Operações com seqüência igual são realizadas da esquerda para a direita. Seqüência: Operação: 1 ( ) 2 ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN 3 ** 4 (Negativ o), Not 5 *, /, MOD 6 (Subtração), + 7 AND 8 XOR 9 OR Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 47-140 Out/12 - Rev.00 Exercicio D: 1. Criar uma rotina com o nome FAL: 2. Desenvolver um programa para preencher o arquivo de dados ARQUIVO_A com os valores provenientes da TAG CARREGA_A quando pressionadao Botão1. 3. Preencher o arquivo de dados ARQUIVO_B com os valores provenientes da TAG CARREGA_B quando pressionado o Botão2. 4. Quando o Botão3 for pressionado, somar os dois arquivos, elemento por elemento, e armazenar os resultados no arquivo destino SOMA. 5. Os resultados deverão ser visualizados todos em uma única varredura na TAG MULTIPLICAÇÃO (MATRIZ) toda vez que o Botão 4 for acionado. OBS.: Utilizar somente a instrução FAL para a resolução Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 48-140 Out/12 - Rev.00 Comparação e Busca de Arquivo (FSC) A instrução FSC compara valores em uma matriz, elemento por elemento. Operandos de Lógica Ladder: Operando Tipo Format o Descrição Control CONTROL tag estrutura de controle para a operação Length DINT imediato número de elementos na matriz a serem manipulados Position DINTimediato elemento atual na matriz valor inicial é normalmente Mode DINT imediato como distribuir a operação selecione INC, ALL ou insira um número Destination SINT tag tag para armazenar o resultado INT DINT REAL Expressão SINT imediato uma expressão composta por tags e/ou valores imediatos separados por operadores INT tag DINT REAL Um tag SINT ou INT é convertido para um valor DINT pela extensão de Sinal Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 49-140 Out/12 - Rev.00 Estrutura: Operando Tipo Formato Descrição Control CONTROL tag estrutura de controle para a operação Length DINT imediato número de elementos na matriz a serem manipulados Position DINT imediato offset na matriz valor inicial é normalmente 0 Mode DINT imediato como distribuir a operação selecione INC, ALL ou insira um número Expressão SINT imediato uma expressão composta por tags e/ou valores imediatos separados por operadores INT tag DINT REAL Um tag SINT ou INT é convertido para um valor DINT pela extensão de Sinal Descrição: Quando a instrução FSC é habilitada e a comparação é verdadeira, a instrução energiza o bit .FD e o bit .POS reflete a posição da matriz onde a instrução encontrou a comparação verdadeira. A instrução energiza o bit .IN para evitar outra busca. Flags de Status Aritmético: Os flags de status aritmético são afetados. Condições de Falha: Uma falha grave ocorrerá se: Tipo de Falha: Caodigo de Falha: .POS < 0 ou .LEN < 0 4 21 Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 50-140 Out/12 - Rev.00 Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 51-140 Out/12 - Rev.00 Expressões FSC As expressões das instruções FSC são programadas da mesma forma que as expressões nas instruções CMP. Use as seções a seguir para mais informações sobre operadores válidos, formato e seqüência de operação que são comuns nas duas instruções. Operadores válidos Operador: Descrição: Ótimo: + adição DINT, REAL - subtração/negativo DINT, REAL * multiplicação DINT, REAL / divisão DINT, REAL = Igual DINT, REAL < menor do que DINT, REAL <= menor ou igual a DINT, REAL maior do que DINT, REAL >= maior ou igual a DINT, REAL <> diferente de DINT, REAL ** expoente (x elevado a y) DINT, REAL ABS valor absoluto DINT, REAL ACS arco co-seno REAL AND bitwise AND DINT ASN arco seno REAL ATN arco tangente REAL COS co-seno REAL DEG radianos para graus DINT, REAL FRD BCD para inteiro DINT LN natural log REAL LOG logaritmo na base de 10 REAL MOD módulo-divisão REAL , DINT NOT bitwise complemento DINT OR bitwise OR DINT RAD graus para radianos DINT , REAL SIN seno REAL SQR raiz quadrada DINT, REAL TAN tangente REAL TOD inteiro para BCD DINT TRN truncado DINT, REAL XOR bitwise exclusivo OR DINT Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 52-140 Out/12 - Rev.00 Formatação das expressões Para cada operador usado em uma expressão, é necessário fornecer um ou dois operandos (tags ou valores imediatos). Use a tabela a seguir para formatar operadores e operandos dentro de uma expressão: Para operadores que operam com: Use esse formato: Exemplos: um operando operador (operando) ABS(tag_a) dois operandos operand_a operator operand_b tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g) Determinação da seqüência de operação As operações gravadas na expressão são realizadas pela instrução em uma seqüência prescrita, não necessariamente na seqüência em que foram gravadas. É possível suprimir a seqüência da operação agrupando-se os termos dentro de parênteses, forçando a instrução para realizar uma operação dentro dos parênteses, antes de outras operações. Operações com seqüência igual são realizadas da esquerda para a direita. Seqüência: Operação: 1 ( ) 2 ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN 3 ** 4 (Negativo), Not 5 *, /, MOD 6 (Subtração), + 7 AND 8 XOR 9 OR 10 <, <=,>, >=, = Capítulo 5 – Instruções de Lógia, Aritmética e Comparação de Arquivo (FAL, FSC) 53-140 Out/12 - Rev.00 Exercicio E: 1. Criar uma rotina com o nome FSC: 2. Criar um arquivo de dados do tipo inteiro COMPARACAO. 3. Carregar o arquivo COMPARACAO com os seguintes valores Posição Endereço Valor Posição Endereço Valor 0 Comparação [0] 10 0 Comparação [5] 15 1 Comparação [1] 20 1 Comparação [6] 20 2 Comparação [2] 30 2 Comparação [7] 39 3 Comparação [3] 40 3 Comparação [8] 40 4 Comparação [4] 50 4 Comparação [9] 46 4. Utilizando a instrução FSC, comparar se os elementos do arquivo 1 são iguais aos elementos do arquivo 2. 5. A comparação deverá ser feita elemento por elemento, cada vez que o Botao_3 for pressionada. 6. Quando a comparação for verdadeira, sinalizar através de uma lâmpada. Mostrar no TAG POSICAO a posição no arquivo onde a comparação foi verdadeira e no TAG VALOR o valor da comparação. 7. Pressionar o Botao_4 para prosseguir com a comparação das próximas posições. Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 54-140 Out/12 - Rev.00 Capítulo 6 - Instruções de Deslocamento Matriz (BSL, BSR, FFL, FFU, LFL, LFU) Carga FIFO (FFL) A instrução FFL copia o valor Source para FIFO. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Source SINT INT DINT REAL estrutura imediato tag dados a serem armazenados em FIFO Source converte para o tipo de dados do tag da matriz. Um inteiro menor converte para um inteiro maior pela extensão do sinal. FIFO SINT INT DINT REAL estrutura tag da matriz FIFO a ser modificado especifique o primeiro elemento de FIFO não use CONTROL.POS em subscrito Control CONTROL tag estrutura de controle para a operação geralmente usa o mesmo CONTROL, conforme associado a FFU Length DINT imediato número máximo de elementos que FIFO pode controlar de uma vez. Position DINT imediato próxima localização em FIFO onde a instrução carrega os dados. valor inicial é normalmente 0 Se você usar uma estrutura definida pelo usuário como tipo de dados para o operando Source ou FIFO, use a mesma estrutura para os dois operandos. Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 55-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit habilitado indica que a instrução FFL está habilitada.. .DN BOOL O bit executado é energizado para indicar que FIFO está cheio (.POS=LEN). O bit .DN inibe acarga de FIFO até .POS < .LEN. .EM BOOL O bit vazio indica que FIFO está vazio. Se .LEN <=0 ou .POS < 0, tanto o bit .EM quanto o bit DN estão energizados. .LEN DINT O comprimento especifica o número máximo de elementos que FIFO pode controlar de umavez. .POS DINT A posição identifica a localização em FIFO onde a instrução carregará o próximo valor. Descrição: Use a instrução FFL com a instrução FFU para armazenar e recuperar dados na seqüência primeiro a entrar, primeiro a sair.Quando usada em pares, as instruções FFL e FFU estabelecem um registro de deslocamento assíncrono. Geralmente, Source e FIFO são do mesmo tipo de dados. Quando habilitada, a instrução FFL carrega o valor Source na posição FIFO identificada pelo valor .POS. A instrução carrega um valor cada vez que a instrução é habilitada, até que FIFO fique cheio. A instrução FFL opera na memória de dados contínua. Flags de Status Aritmético: Não afetados. Condições de Falha: Uma falha grave ocorrerá se: Tipo de Falha: Caodigo de Falha: (elemento de início + .POS) > tamanho da matriz de FIFO 4 20 Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 56-140 Out/12 - Rev.00 Exemplo de Lógica de Ladder: Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 57-140 Out/12 - Rev.00 Descarga FIFO (FFU) A instrução FFU descarrega o valor da posição 0 (primeira posição) de FIFO e armazena esse valor em Destination. Os dados restantes em FIFO se deslocam uma posição para baixo. Operandos de Lógica Ladder: Operando Tipo Formato Descrição FIFO SINT INT DINT REAL estrutura imediato tag FIFO a ser modificado especifique o primeiro elemento de FIFO não use CONTROL.POS em subscrito Destination SINT INT DINT REAL estrutura tag valor que saiu de FIFO O valor Destination converte para o tipo de dados do tag Destination. Um inteiro menor converte para um inteiro maior pela extensão do sinal . Control CONTROL tag estrutura de controle para a operação geralmente usa o mesmo CONTROL, conforme FFU associada Length DINT imediato número máximo de elementos que FIFO pode controlar de uma vez. Position DINT imediato próxima localização em FIFO onde a instrução descarrega os dados. valor inicial é normalmente 0 Se você usar uma estrutura definida pelo usuário como tipo de dados para o operando FIFO ou Destination, use a mesma estrutura para os dois operandos. Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 58-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit de descarga habilitado indica que a instrução FFU está habilitada. O bit .EU é energizado para pré-programar uma descarga falsa quando a varredura do programa inicia. .DN BOOL O bit executado é energizado para indicar que FIFO está cheio (.POS=LEN). O bit .DN inibe acarga de FIFO até .POS < .LEN. .EM BOOL O bit vazio indica que FIFO está vazio. Se .LEN <= 0 ou .POS < 0, os bits .EM , DN estarão energizados. .LEN DINT O comprimento especifica o número máximo de elementos em FIFO . .POS DINT A posição identifica o fim dos dados que foram carregados em FIFO. Descrição: Use a instrução LFU com a instrução LFL para armazenar e recuperar dados na seqüência último a entrar, primeiro a sair. Se LIFO for um tipo de dados DINT, Destination deverá ser do tipo DINT; se LIFO for um tipo de dados REAL, Destination deverá ser um tipo de dados REAL. Quando habilitada, a instrução LFU descarrega o valor em .POS de LIFO e o coloca em Destination. A instrução descarrega um valor e o substitui com 0 cada vez que a instrução está habilitada até que LIFO fique vazia. Se LIFO estiver vazia, LFU retorna 0 para Destination. A instrução LFU opera na memória de dados contínua. Flags de Status Aritmético: Não afetados. Condições de Falha: Uma falha grave ocorrerá se: Tipo de Falha: Caodigo de Falha: Length > LIFO tamanho da matriz 4 20 Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 59-140 Out/12 - Rev.00 Exemplo de Lógica de Ladder: Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 60-140 Out/12 - Rev.00 Carga LIFO (LFL) A instrução LFL copia o valor Source para LIFO. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Source SINT INT DINT REAL estrutura imediato tag dados a serem armazenados em LIFO Source converte para o tipo de dados do tag da matriz. Um inteiro menor converte para um inteiro maior pela extensão do sinal. LIFO SINT INT DINT REAL estrutura tag da matriz LIFO a ser modificado especifique o primeiro elemento de LIFO não use CONTROL.POS em subscrito Control CONTROL tag estrutura de controle para a operação geralmente usa o mesmo CONTROL, conforme a LFU associada Length DINT imediato número máximo de elementos que LIFO podecontrolar de uma vez. Position DINT imediato próxima localização em LIFO onde a instruçãocarrega os dados. valor inicial é normalmente 0 Se você usar uma estrutura definida pelo usuário como tipo de dados para o operando Source ou LIFO, use a mesma estrutura para os dois operandos. Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 61-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit habilitado indica que a instrução LFL está habilitada.. .DN BOOL O bit executado é energizado para indicar que LIFO está cheio (.POS=LEN). O bit .DN inibe acarga de LIFO até .POS < .LEN. .EM BOOL O bit vazio indica que LIFO está vazio. Se .LEN <=0 ou .POS < 0, tanto o bit .EM quanto o bit DN estão energizados. .LEN DINT O comprimento especifica o número máximo de elementos que LIFO pode controlar de umavez. .POS DINT A posição identifica a localização em LIFO onde a instrução carregará o próximo valor. Descrição: Use a instrução LFL com a instrução LFU para armazenar e recuperar dados na seqüência primeiro a entrar, primeiro a sair. Quando usada em pares, as instruções LFL e LFU estabelecem um registro de deslocamento assíncrono. Geralmente, Source e FIFO são do mesmo tipo de dados. Quando habilitada, a instrução FFL carrega o valor Source na posição FIFO identificada pelo valor .POS. A instrução carrega um valor cada vez que a instrução é habilitada, até que FIFO fique cheio. A instrução FFL opera na memória de dados contínua. Flags de Status Aritmético: Não afetados. Condições de Falha: Uma falha grave ocorrerá se: Tipo de Falha: Caodigo de Falha: (elemento de início + .POS) > tamanho da matriz de LIFO 4 20 Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 62-140 Out/12 - Rev.00 Exemplo de Lógica de Ladder: Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 63-140 Out/12 - Rev.00 Descarga LIFO (LFU) A instrução LFU descarrega o valor em .POS de LIFO e armazena 0 naquele local. Operandos de Lógica Ladder: Operando Tipo Formato Descrição LIFO SINT INT DINT REAL estrutura imediato tag LIFO a ser modificado especifique o primeiro elemento de LIFO não use CONTROL.POS em subscrito Destination SINT INT DINT REAL estrutura tag valor que saiu de LIFO O valor Destination converte para o tipo de dados do tag Destination. Um inteiro menor converte para um inteiro maior pela extensão do sinal . Control CONTROL tag estrutura de controle para a operação geralmente usa o mesmo CONTROL, conforme LFU associada Length DINT imediato número máximo de elementos que LIFO pode controlar de uma vez. Position DINT imediato próxima localização em LIFO onde a instrução descarrega os dados. valor inicial é normalmente 0 Se você usar uma estrutura definida pelo usuário como tipo de dados para o operando LIFO ou Destination, use a mesma estrutura para os dois operandos. Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 64-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit de descarga habilitado indica que a instruçãoLFU está habilitada. O bit .EU é energizado para pré-programar uma descarga falsa quando a varredura do programa inicia. .DN BOOL O bit executado é energizado para indicar que LIFO está cheio (.POS=LEN). . .EM BOOL O bit vazio indica que LIFO está vazio. Se .LEN <= 0 ou .POS < 0, os bits .EM , DN estarão energizados. .LEN DINT O comprimento especifica o número máximo de elementos em LIFO pode controlar de uma vez .POS DINT A posição identifica o fim dos dados que foram carregados em LIFO. Descrição: Use a instrução FFU com a instrução FFL para armazenar e recuperar dados na seqüência primeiro a entrar, primeiro a sair. Se FIFO for um tipo de dados DINT, Destination deverá ser do tipo DINT; se FIFO for um tipo de dados REAL, Destination deverá ser um tipo de dados REAL. Quando habilitada, a instrução FFU descarrega os dados do primeiro elemento de FIFO e co loca esse valor em Destination. A instrução descarrega um valor cada vez que a instrução é habilitada, até que FIFO fique vazio. Se FIFO estiver vazio, FFU retorna 0 para Destination. A instrução FFU opera na memória de dados contínua. Flags de Status Aritmético: Não afetados. Condições de Falha: Uma falha grave ocorrerá se: Tipo de Falha: Caodigo de Falha: Length > FIFO tamanho da matriz 4 21 Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 65-140 Out/12 - Rev.00 Exemplo de Lógica de Ladder Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 66-140 Out/12 - Rev.00 Exercicio F: Elaborar um programa ladder para simular o controle do estoque de materiais perecíveis. Sendo que o primeiro a entrar deverá ser o primeiro a sair. A capacidade total do estoque é de 10 produtos. Pede-se: - Mostrar em uma tag o código do produto que foi colocado por último no estoque. - Mostrar em outra tag o código do próximo produto a sair do estoque. A entrada de produtos no estoque será feita através do botão1 e a saída usando o botão2. Os produtos deverão ter códigos de 4 dígitos sendo que o número 0000 não é válido e deverá ser bloqueado se o operador tentar entrar com este valor. Sinalização: - Estoque cheio = todas as lâmpadas da esquerda acessas. - Estoque vazio = todas as lâmpadas da direita piscando Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 67-140 Out/12 - Rev.00 Deslocamento de Bit para a Esquerda (BSL) A instrução BSL desloca os bits especificados dentro da Matriz uma posição para a esquerda. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Array DINT tag da matriz matriz a ser modificada especifique o primeiro elemento do grupo de elementos não use CONTROL.POS no subscrito Control CONTROL tag estrutura de controle para a operação Bit Source DINT tag bit a ser deslocado Length DINT imediato número de bits da matriz a ser deslocada Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit habilitado indica que a instrução BSL está habilitada. .DN BOOL O bit executado é energizado para indicar que os bits foram deslocados uma posição para a esquerda. . .UL BOOL O bit de descarga é a saída da instrução. O bit .UL armazena o status do bit que foi deslocado fora da faixa dos bits. .ER DINT O bit de erro é energizado quando .LEN < 0. . .LEN DINT O comprimento especifica o número de bits na matriz a ser deslocado. Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 68-140 Out/12 - Rev.00 Descrição: Quando habilitada, a instrução descarrega o bit mais significativo dos bits especificados para o bit .UL, desloca os bits restantes uma posição para a esquerda e carrega o bit Source no bit 0 da Matriz. A instrução BSL opera na memória de dados contínua. Flags de Status Aritmético: Não afetados. Condições de Falha:Nenhuma Exemplo de Lógica Ladder: Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 69-140 Out/12 - Rev.00 Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 70-140 Out/12 - Rev.00 Deslocamento de Bit para a Direita (BSR) A instrução BSR desloca os bits especificados dentro da Matriz uma posição para a direita. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Array DINT tag da matriz matriz a ser modificada especifique o primeiro elemento do grupo de elementos não use CONTROL.POS no subscrito Control CONTROL tag estrutura de controle para a operação Bit Source DINT tag bit a ser deslocado Length DINT imediato número de bits da matriz a ser deslocada Estrutura: Mnemônico Tipos de Dados Descrição EN BOOL O bit habilitado indica que a instrução BSR está habilitada. .DN BOOL O bit executado é energizado para indicar que os bits foram deslocados uma posição para a dreita . .UL BOOL O bit de descarga é a saída da instrução. O bit .UL armazena o status do bit que foi deslocado fora da faixa dos bits. .ER DINT O bit de erro é energizado quando .LEN < 0. . .LEN DINT O comprimento especifica o número de bits na matriz a ser deslocado. Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 71-140 Out/12 - Rev.00 Descrição: Quando habilitada, a instrução descarrega o bit mais significativo dos bits especificados para o bit .UL, desloca os bits restantes uma posição para a direita e carrega o bit Source no bit 0 da Matriz. A instrução BSR opera na memória de dados contínua. Flags de Status Aritmético: Não afetados. Condições de Falha: Nenhuma Capítulo 6 – Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 72-140 Out/12 - Rev.00 Exemplo de Lógica adder: Capítulo 6 - Instruções de Deslocamento de Matriz / Arquivo (BSL, BSR, FIFO, LIFO) 73-140 Out/12 - Rev.00 Exercicio G: 1. Criar um arquivo com o nome BSL/BSR: 2. Desenvolver um programa para o transporte de garrafas sobre uma esteira. 3. Considerar o botão 1 como botão liga motor da esteira e o BOTÃO2 como botão desliga esteira. 4. Mostrar na TAG esteira o valor 0 para esteira desligada e valor 1 para esteira ligada. 5. Estando o motor ligado, é permitida a entrada de garrafas na esteira de 1 em 1 segundo. 6. Se a garrafa estiver fora dos padrões (nível lógico 1), ao chegar na posição da sapata deverá ser desviada. Adotar a TAG SENSOR (Alias do endereço Local:2:I.Data.__) como sensor de garrafa boa (nível lógico 0) ou ruim (nível lógico 1). 7. Mostrar na TAG Total_Ruim o número de garrafas ruins que foram desviadas pela sapata. Usar o BOTÃO4 para zerar o total de garrafas ruins. 8. Quando forem desviadas pela sapata 4 garrafas seguidas ruins, o processador deverá parar a esteira por 10 segundos. 9. Após 10 segundos o processador deverá continuar desviando as garrafas para sapata. 10. A visualização das garrafas boas ou ruins deverá ser feita através das lâmpadas (Local:0:O.Data). Sapata de desvio Sensor de garrafas Capítulo 7 – Instruções de Sequenciador (SQI, SQO, SQL) 74-140 Out/12 - Rev.00 Capítulo 7 - Instruções de Seqüenciador (SQI, SQO, SQL) Entrada do Sequenciador (SQI) A instrução SQI detecta quando uma etapa é concluída no par de seqüenciador das instruções SQO/SQI. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Array DINT tag da matriz matriz do seqüenciador especifica o primeiro elemento da matriz do seqüenciador não use CONTROL.POS em subscrito Mask SINT INT DINT tag imediato quais bits devem ser bloqueados ou podem passar Um tag SINT ou INT é convertido para um valorDINT pela extensão de sinal. Source SINT INT DINT tag dados de entrada para a matriz do seqüenciador Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal. Control CONTROL tag estrutura de controle para a operação geralmente usa o mesmo CONTROL das instruções SQO e SQL Length DINT imediato número de elementos na Matriz (tabela do seqüenciador) a serem comparados Position DINT imediato posição atual na matriz valor inicial é normalmente 0 Capítulo 7 – Instruções de Sequenciador (SQI, SQO, SQL) 75-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição ER BOOL O bit de erro é energizado quando .LEN <= 0, .POS < 0 ou .POS > .LEN. .POS DINT O comprimento especifica o número de etapas da matriz do seqüenciador. .LEN DINT A posição identifica o elemento que a instrução está comparando atualmente.. Descrição: Quando habilitada, a instrução SQI compara um elemento Source através de uma Máscara com o elemento Array para verificar a igualdade. geralmente usa a mesma estrutura CONTROL das instruções SQO e SQL . A instrução SQI opera na memória de dados contínua. Inserção de um valor de máscara imediato Ao inserir uma máscara, o software de programação retorna ao padrão dos valores decimais. Caso você queira inserir uma máscara usando outro formato, coloque o prefixo correto antes do valor. Prefixo Descrição 16# hexadecimal por exemplo; 16#0F0F 8# octal por exemplo; 8#16 2# binário por exemplo; 2#00110011 Flags de Status Aritmético: Não afetados. Condições de Falha: Nenhuma Capítulo 7 – Instruções de Sequenciador (SQI, SQO, SQL) 76-140 Out/12 - Rev.00 Exemplo de Lógica Ladder: Quando habilitada, a instrução SQI passa o value_2 pela máscara para determinar se o resultado é igual ao elemento atual em array_dint. A comparação mascarada é verdadeira, portanto a saída da condição da linha se torna verdadeira. Operando SQI: Valores de exemplo (DINTs exibidos em binário): Source xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 Mask 00000000 00000000 00001111 00001111 Array xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 Um 0 na máscara significa que o bit não foi comparado (identificado por xxxx nesse exemplo). Utilização de SQI sem SQO Se você usar a instrução SQI sem uma instrução SQO no par, será necessário incrementar externamente a matriz do seqüenciador. A instrução SQI compara o valor de fonte. A instrução ADD incrementa na matriz do seqüenciador A GRT determinou se há outro valor disponível para ser verificado na matriz do seqüenciador. A instrução MOV reseta o valor da posição depois de analisar por completo a matriz do seqüenciador uma vez. Capítulo 7 – Instruções de Sequenciador (SQI, SQO, SQL) 77-140 Out/12 - Rev.00 Saída do Sequenciador (SQO) A instrução SQO define as condições de saída para a próxima etapa de um par de seqüência de instruções SQO/SQI. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Array DINT tag da matriz matriz do seqüenciador especifica o primeiro elemento da matriz do seqüenciador não use CONTROL.POS em subscrito Mask SINT INT DINT tag imediato quais bits devem ser bloqueados ou podem passar Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal. Destinatin DINT tag dados de saída da matriz de seqüenciador Control CONTROL tag estrutura de controle para a operação geralmente usa o mesmo CONTROL das instruções SQO e SQL Length DINT imediato número de elementos na Matriz (tabela do seqüenciador) a serem comparados Position DINT imediato posição atual na matriz valor inicial é normalmente 0 Capítulo 7 – Instruções de Sequenciador (SQI, SQO, SQL) 78-140 Out/12 - Rev.00 Estrutura: Mnemônico Tipos de Dados Descrição .EN BOOL O bit habilitado indica que a instrução SQO está habilitada. .DN BOOL O bit executado é energizado quando todos os elementos especificados foram movidos para Destination. ER BOOL O bit de erro é energizado quando .LEN <= 0, .POS < 0 ou .POS > .LEN. .LEN DINT O comprimento especifica o número de etapas da matriz do seqüenciador. .POS DINT A posição identifica o elemento que o controlador está manipulando atualmente. Descrição: Quando habilitada, a instrução SQO incrementa a posição, move os dados na posição através de Mask e armazena o resultado em Destination. Se .POS > .LEN, a instrução volta para o início da matriz do seqüenciador e continua com .POS = 1. Geralmente usa a mesma estrutura CONTROL das instruções SQI e SQL A instrução SQO opera na memória de dados contínua. Inserção de um valor de máscara imediato Ao inserir uma máscara, o software de programação retorna ao padrão dos valores decimais. Caso você queira inserir uma máscara usando outro formato, coloque o prefixo correto antes do valor. Prefixo Descrição 16# hexadecimal por exemplo; 16#0F0F 8# octal por exemplo; 8#16 2# binário por exemplo; 2#00110011 Flags de Status Aritmético: Não afetados. Condições de Falha: Nenhuma Capítulo 7 – Instruções de Sequenciador (SQI, SQO, SQL) 79-140 Out/12 - Rev.00 Execução de Lógica Ladder: Condição: Ação: pré-varredura O bit .EN é energizado para evitar uma carga falsa quando a varredura do programa começar. A saída da condição da linha é definida como falsa. entrada da condição da linha for falsa O bit .EN é desenergizado. A saída da condição da linha é definida como falsa. Exemplo de Lógica Ladder: Quando habilitada, a instrução SQO incrementa a posição, passa os dados naquela posição em array_dint através da máscara e armazena o resultado emvalue_1. Operando SQO: Valores de exemplo (INTs exibidos em binário): Source xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 Mask 00000000 00000000 00001111 00001111 Array xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 Um 0 na máscara significa que o bit não foi comparado (designado por xxxx nesse exemplo). Utilização de SQI com SQO Se uma instrução SQI for colocada em par com a instrução SQO, certifique-se de que as duas instruções usam os mesmos valores em Control, Length e Position. Capítulo 7 – Instruções de Sequenciador (SQI, SQO, SQL) 80-140 Out/12 - Rev.00 Reset da posição de SQO Cada vez que o controlador passa do modo Program para Run, a instrução SQO zera (inicializa) o valor .POS. Para resetar .POS para o valor de reinicialização (.POS = 0), use uma instrução RES para zerar o valor da posição. Esse exemplo usa o status do bit da primeira varredura para zerar o valor .POS. Capítulo 7 – Instruções de Sequenciador (SQI, SQO, SQL) 81-140 Out/12 - Rev.00 Carga do Sequenciador (SQL) A instrução SQL carrega as condições de referência em uma matriz do seqüenciador. Operandos de Lógica Ladder: Operando Tipo Formato Descrição Array DINT tag da matriz matriz do seqüenciador especifica o primeiro elemento da matriz do seqüenciador não use CONTROL.POS em subscrito Source SINT INT DINT tag imediato dados de entrada a serem carregados na matriz do seqüenciador Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal. Control CONTROL tag estrutura de controle para a operação geralmente usa o mesmo CONTROL das instruções SQO e SQL Length DINT imediato número de elementos na Matriz (tabela do seqüenciador) a serem comparados Position DINT imediato posição atual na matriz valor inicial é normalmente 0 Estrutura: Mnemônico Tipos de Dados Descrição .EN BOOL O bit habilitado indica que a instrução SQL está habilitada. .DN BOOL O bit executado é energizado quando todos os elementos especificados foram foram carregados para Array. ER BOOL O bit de erro é energizado quando .LEN <= 0, .POS < 0 ou .POS > .LEN. .LEN DINT O comprimento especifica
Compartilhar