Buscar

Manual do Aluno - ControlLogix Configuração Avançada, usando RSLogix5000 (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 140 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 140 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 140 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais