CONTROLADORES LOGIX 5000 -

536
Controladores Logix5000 1756-L1, -L1Mx Manual de Referência Geral do Conjunto de Instruções

Transcript of CONTROLADORES LOGIX 5000 -

Page 1: CONTROLADORES LOGIX 5000 -

Controladores Logix50001756-L1, -L1Mx

Manual de Referência Geral do Conjunto de Instruções

Page 2: CONTROLADORES LOGIX 5000 -

Publicação 1756-RM003D-PT-P - Junho 2001

-2

Informações Importantes ao Usuário

Por causa da diversidade de usos de produtos descritos nesta publicação, os responsáveis pela aplicação e usos deste equipamento de controle devem certificar-se de que todas as etapas necessárias foram seguidas para garantir que cada aplicação e uso cumpram todos os requisitos de desempenho e segurança, incluindo todas as leis, regulamentações, códigos e padrões aplicáveis.

As ilustrações, gráficos, exemplos de programas e de layout mostrados neste manual são apenas para fins ilustrativos. Visto que há diversas variáveis e requisitos associados a qualquer instalação em especial, a Rockwell Automation não assume a responsabilidade (incluindo responsabilidade por propriedade intelectual) pelo uso baseado nos exemplos mostrados nesta publicação.

A publicação Allen-Bradley SGI-1.1, Diretrizes de Segurança para Aplicação, Instalação e Manutenção dos Dispositivos de Controle do Estado Sólido (disponível no escritório local da Rockwell Automation), descreve algumas diferenças importantes entre os equipamentos eletrônicos e dispositivos eletromecânicos, que devem ser levadas em consideração ao utilizar produtos como os descritos nesta publicação.

É proibida a reprodução, parcial ou total, deste manual sem a permissão por escrito da Rockwell Automation.

Ao longo deste manual, usamos notas para chamar a sua atenção para considerações de segurança::

As instruções de atenção ajudam você a :

• identificar e evitar um perigo

• reconhecer as conseqüências

Allen-Bradley, ControlLogix, DH+, Logix5000, Logix5550, CLP-2, CLP-3, CLP-5, RSLinx, RSLogix 5000, RSNetWorx e SLC são marcas da Rockwell Automation.

ControlNet é uma marca da ControlNet International, Ltd.

Ethernet é uma marca da Digital Equipment Corporation, Intel e Xerox Corporation.

ATENÇÃO

!Identifica informações sobre práticas ou circunstâncias que podem causar ferimentos ou morte, danos patrimoniais ou perda financeira.

IMPORTANTE Identifica informações críticas para a aplicação e compreensão bem-sucedidas do produto.

Page 3: CONTROLADORES LOGIX 5000 -

Resumo das Alterações

Introdução

Informações Atualizadas Este documento contém as seguintes alterações::

Estas instruções: Consulte:

Obtenção do Valor do Sistema (GSV) e Definição do Valor do Sistema (SSV)

3-28

Acesso ao objeto MESSAGE 3-47

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-1

Tamanho em Elementos (SIZE) 7-53

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-1

Salto para Sub-rotina (JSR) Sub-rotina (SBR) Retorno (RET) 10-4

For (FOR) 11-2

A versão desse documento contém informações novas e atualizadas.

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 4: CONTROLADORES LOGIX 5000 -

2 Resumo das Alterações

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 5: CONTROLADORES LOGIX 5000 -

Localizador de Instrução

Onde Encontrar uma Instrução

Use este localizador para encontrar detalhes de referência sobre as instruções do Logix (as instruções em cinza estão disponíveis em outros manuais). Este localizador também lista as linguagens de programação que estão disponíveis para as instruções.

Se o localizador listar: A instrução está documentada em:

um número de página este manual

controle de processo Manual de Referência do Conjunto de Instruções dos Inversores e Controle de Processo dos Controladores Logix5000, publicação 1756-RM006

posicionamento Logix5000 Controllers Motion Instruction Set Reference Manual, publicação 1756-RM007

Instrução: Local: Linguagens:

ABL 16-7 lógica ladder

ABS 5-29 lógica ladderbloco de função

ACB 16-10 lógica ladder

ACL 16-12 lógica ladder

ACS 13-14 lógica ladderbloco de função

adição 5-6 lógica ladderbloco de função

AFI 10-20 lógica ladder

AHL 16-14 lógica ladder

ALM controle de processo

bloco de função

AND 6-17 lógica ladderbloco de função

ARD 16-17 lógica ladder

ARL 16-20 lógica ladder

ASN 13-11 lógica ladderbloco de função

ATN 13-16 lógica ladderbloco de função

AVE 7-41 lógica ladder

AWA 16-24 lógica ladder

AWT 16-28 lógica ladder

BAND controle de processo

bloco de função

BNOT controle de processo

bloco de função

BOR controle de processo

bloco de função

BRK 11-5 lógica ladder

BSL 8-2 lógica ladder

BSR 8-6 lógica ladder

BTD 6-10 lógica ladder

BTDT 6-13 bloco de função

BTR (tipo MSG) 3-2 lógica ladder

BTW (tipo MSG) 3-2 lógica ladder

BXOR controle de processo

bloco de função

CLR 6-16 lógica ladder

CMP 4-2 lógica ladder

CONCAT 17-3 lógica ladder

COP 7-32 lógica ladder

COS 13-5 lógica ladderbloco de função

CPS 7-32 lógica ladder

CPT 5-2 lógica ladder

CTD 2-27 lógica ladder

CTU 2-23 lógica ladder

CTUD 2-31 bloco de função

D2SD controle de processo

bloco de função

D3SD controle de processo

bloco de função

Instrução: Local: Linguagens:

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 6: CONTROLADORES LOGIX 5000 -

2 Localizador de Instrução

DDT 12-10 lógica ladder

DEDT controle de processo

bloco de função

DEG 15-2 lógica ladderbloco de função

DELETE 17-5 lógica ladder

DERV controle de processo

bloco de função

DFF controle de processo

bloco de função

DIV 5-15 lógica ladderbloco de função

DTOS 18-7 lógica ladder

DTR 12-18 lógica ladder

EQU 4-7 lógica ladderbloco de função

ESEL controle de processo

bloco de função

FAL 7-7 lógica ladder

FBC 12-2 lógica ladder

FFL 8-10 lógica ladder

FFU 8-16 lógica ladder

FGEN controle de processo

bloco de função

FIND 17-7 lógica ladder

FLL 7-37 lógica ladder

FOR 11-2 lógica ladder

FRD 15-12 lógica ladderbloco de função

FSC 7-20 lógica ladder

GEQ 4-11 lógica ladderbloco de função

GRT 4-15 lógica ladderbloco de função

GSV 3-28 lógica ladder

HLL controle de processo

bloco de função

HPF controle de processo

bloco de função

Instrução: Local: Linguagens:

INSERT 17-9 lógica ladder

INTG controle de processo

bloco de função

JKFF controle de processo

bloco de função

JMP 10-2 lógica ladder

JSR 10-4 lógica ladder

LBL 10-2 lógica ladder

LDL2 controle de processo

bloco de função

LDLG controle de processo

bloco de função

LEQ 4-19 lógica ladderbloco de função

LES 4-23 lógica ladderbloco de função

LFL 8-22 lógica ladder

LFU 8-28 lógica ladder

LIM 4-27 lógica ladderbloco de função

LN 14-2 lógica ladderbloco de função

LOG 14-4 lógica ladderbloco de função

LPF controle de processo

bloco de função

MAAT posicionamento lógica ladder

MAFR posicionamento lógica ladder

MAG posicionamento lógica ladder

MAH posicionamento lógica ladder

MAHD posicionamento lógica ladder

MAJ posicionamento lógica ladder

MAM posicionamento lógica ladder

MAPC posicionamento lógica ladder

MAR posicionamento lógica ladder

MAS posicionamento lógica ladder

MASD posicionamento lógica ladder

MASR posicionamento lógica ladder

Instrução: Local: Linguagens:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 7: CONTROLADORES LOGIX 5000 -

Localizador de Instrução 3

MATC posicionamento lógica ladder

MAVE controle de processo

bloco de função

MAW posicionamento lógica ladder

MAXC controle de processo

bloco de função

MCCP posicionamento lógica ladder

MCD posicionamento lógica ladder

MCR 10-15 lógica ladder

MDF posicionamento lógica ladder

MDO posicionamento lógica ladder

MDR posicionamento lógica ladder

MDW posicionamento lógica ladder

MEQ 4-33 lógica ladderbloco de função

MGPS posicionamento lógica ladder

MGS posicionamento lógica ladder

MGSD posicionamento lógica ladder

MGSP posicionamento lógica ladder

MGSR posicionamento lógica ladder

MID 17-11 lógica ladder

MINC controle de processo

bloco de função

MOD 5-19 lógica ladderbloco de função

MOV 6-2 lógica ladder

MRAT posicionamento lógica ladder

MRHD posicionamento lógica ladder

MRP posicionamento lógica ladder

MSF posicionamento lógica ladder

MSG 3-2 lógica ladder

MSO posicionamento lógica ladder

MSTD controle de processo

bloco de função

MUL 5-12 lógica ladderbloco de função

Instrução: Local: Linguagens:

MUX controle de processo

bloco de função

MVM 6-4 lógica ladder

MVMT 6-7 bloco de função

NEG 5-26 lógica ladderbloco de função

NEQ 4-38 lógica ladderbloco de função

NOP 10-21 lógica ladder

NOT 6-29 lógica ladderbloco de função

NTCH controle de processo

bloco de função

ONS 1-8 lógica ladder

OR 6-21 lógica ladderbloco de função

OSF 1-13 lógica ladder

OSFI 1-17 bloco de função

OSR 1-10 lógica ladder

OSRI 1-15 bloco de função

OTE 1-5 lógica ladder

OTL 1-6 lógica ladder

OTU 1-7 lógica ladder

PI controle de processo

bloco de função

PID 12-21 lógica ladder

PIDE controle de processo

bloco de função

PMUL controle de processo

bloco de função

POSP controle de processo

bloco de função

RAD 15-5 lógica ladderbloco de função

RES 2-35 lógica ladder

RESD controle de processo

bloco de função

RET 10-4 e 11-7 lógica ladder

Instrução: Local: Linguagens:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 8: CONTROLADORES LOGIX 5000 -

4 Localizador de Instrução

RLIM controle de processo

bloco de função

RMPS controle de processo

bloco de função

RTO 2-10 lógica ladder

RTOR 2-20 bloco de função

RTOS 18-9 lógica ladder

SBR 10-4 lógica ladder

SCL controle de processo

bloco de função

SCRV controle de processo

bloco de função

SEL controle de processo

bloco de função

SETD controle de processo

bloco de função

SIN 13-2 lógica ladderbloco de função

SIZE 7-53 lógica ladder

SNEG controle de processo

bloco de função

SOC controle de processo

bloco de função

SQI 9-2 lógica ladder

SQL 9-12 lógica ladder

SQO 9-7 lógica ladder

SQR 5-23 lógica ladderbloco de função

SRT 7-45 lógica ladder

SRTP controle de processo

bloco de função

SSUM controle de processo

bloco de função

SSV 3-28 lógica ladder

STD 7-49 lógica ladder

STOD 18-3 lógica ladder

STOR 18-5 lógica ladder

SUB 5-9 lógica ladderbloco de função

Instrução: Local: Linguagens:

TAN 13-8 lógica ladderbloco de função

TND 10-13 lógica ladder

TOD 15-8 lógica ladderbloco de função

TOF 2-6 lógica ladder

TOFR 2-17 bloco de função

TON 2-2 lógica ladder

TONR 2-14 bloco de função

TOT controle de processo

bloco de função

TRN 15-15 lógica ladderbloco de função

UID 10-18 lógica ladder

UIE 10-18 lógica ladder

UPDN controle de processo

bloco de função

XIC 1-1 lógica ladder

XIO 1-3 lógica ladder

XOR 6-25 lógica ladderbloco de função

XPY 14-7 lógica ladderbloco de função

Instrução: Local: Linguagens:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 9: CONTROLADORES LOGIX 5000 -

Prefácio

Introdução Este manual é um dos diversos documentos de instrução baseado em Logix.

Quem Deve Utilizar este Manual

Este documento fornece ao programador detalhes sobre cada instrução disponível para um controlador baseado em Logix. Você já deve estar familiarizado de como o controlador baseado em Logix armazena e processa dados.

Os programadores novos devem ler todos os detalhes sobre uma instrução antes de usá-la. Os programadores experientes podem consultar as informações sobre as instruções para verificar os detalhes.

Tarefa/Meta: Documentos:

Programação do controlador para aplicações sequenciais

Manual de Referência Geral do Conjunto de Instruções dos Controladores Logix5000, publicação 1756-RM003

Programação do controlador para aplicações de processo ou inversores

Manual de Referência do Conjunto de Instruções dos Inversores e Controle de Processo , publicação 1756-RM006

Programação do controlador para aplicações de posicionamento

Logix5000 Controllers Motion Instruction Set Reference Manual, publicação 1756-RM007

Importação de um arquivo de texto ou tags em um projeto

Manual de Referência de Exportação/Importação do Controlador Logix5000, publicação 1756-6.8.4PT

Exportação de um projeto ou tags para um arquivo texto

Conversão de uma aplicação CLP-5 ou SLC 500 para uma aplicação Logix5000

Manual de Referência do Controlador Logix5550 para Conversão da Lógica do CLP-5 ou SLC500 para a Lógica do Logix5000, publicação 1756-6.8.5PT

Você está aqui

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 10: CONTROLADORES LOGIX 5000 -

2 Prefácio

Objetivo do Manual Este manual fornece uma descrição de cada instrução neste formato.

Os ícones a seguir ajudam a identificar as informações específicas da linguagem:

Essa seção: Fornece este tipo de informação:

Nome da instrução identifica a instruçãodefine se a instrução é de entrada ou de saída

Operandos de Lógica Ladder

lista todos os operandos da instrução se esta estiver disponível na Lógica Ladderexibe um instrução inicial

Operandos do bloco de função

lista todos os operandos da instrução se esta estiver disponível no bloco de funçãoexibe um bloco de função inicial

Os pinos mostrados no bloco de função inicial são somente pinos básicos. A tabela de operandos lista todos os pinos possíveis para um bloco de função.

Estrutura da insturção lista os valores e os bits de status de controle da instrução, se houver

Descrição descreve o uso da instruçãodefine quaisquer diferenças quando a instrução estiver habilitada e desabilitada, se apropriado

Flags de Status Aritmético: define se a instrução interfere ou não nos flags de status aritméticoconsulte o apêndice Atributos Comuns

Condições de Falha: define se a instrução gera falhas graves ou de advertênciase necessário, define o código e o tipo da falha

Execução de Lógica Ladder Se disponível na Lógica Ladder, define os detalhes de como a instrução opera durante:• pré-varredura• entrada da condição da linha for falsa• entrada da condição da linha for verdadeira

Exemplo de Lógica Ladder Se disponível na Lógica Ladder, fornece pelo menos um exemplo de programaçãoinclui uma descrição explicando cada exemplo

Execução do bloco de função

Se disponível no bloco de função, define os detalhes de como a instrução opera durante:• pré-varredura• primeira varredura da instrução• primeira operação da instrução• EnableIn é falso• EnableIn é verdadeiro

Exemplo do bloco de função

Se disponível no bloco de função, fornece pelo menos um exemplo de programaçãoinclui uma descrição explicando cada exemplo

Este ícone: Indica esta linguagem de programação:

Lógica Ladder

bloco de função

Publicação 1756-RM003D-PT-P - Junho 2001

Page 11: CONTROLADORES LOGIX 5000 -

Prefácio 3

Informações Comuns para Todas as Instruções

O conjunto de instruções do Logix5000 possui alguns atributos comuns:

Convenções e Termos Relacionados

Energizar e desenergizar (zerar)

Este manual usa energizar e desenergizar para definir o status de bits (booleanos) e valores (não booleanos):

Se um operando ou parâmetro suporta mais do que um tipo de dados, os tipos de dados em negrito indicam os tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dado ótimo, geralmente DINT ou REAL.

Condição de linha de Lógica Ladder

O controlador avalia as instruções de lógica ladder com base na condição da linha que antecede a instrução (entrada da condição da linha). Com base na entrada da condição da linha e na instrução, o controlador define a condição da linha seguindo a instrução (saída da condição da linha) que, por sua vez, afeta qualquer instrução subseqüente.

Para obter esta informação:

Consulte este apêndice

atributos comuns apêndice Atributos Comuns define:• flags de status aritmético:• tipos de dados• palavras-chaves

atributos do bloco de função

apêndice Atributos de Bloco de Função define:• controle do programa e operador• modos de temporização

Este termo: Significa:

energizar o bit está energizado em 1 (ON)um valor está energizado em um número diferente de zero

desenergizar o bit está desenergizado em 0 (OFF)todos os bits em um valor são desenergizados em 0

instrução de entrada

condição da entrada da linha

instrução de saída

condição da saída da linha

Publicação 1756-RM003D-PT-P - Junho 2001

Page 12: CONTROLADORES LOGIX 5000 -

4 Prefácio

Se a condição da entrada da linha para uma instrução de entrada for verdadeira, o controlador avalia a instrução e energiza a condição da saída da linha com base nos resultados da instrução. Se a instrução avaliar em verdadeira, a condição da saída da linha é verdadeira; se a instrução avaliar em falsa, a condição da saída da linha é falsa.

O controlador também efetua a pré-varredura das instruções. A pré-varredura é uma varredura especial de todas as rotinas no controlador. O controlador efetua a varredura de todas as rotinas e sub-rotinas principais durante a pré-varredura, mas ignora os saltos que poderiam pular a execução das instruções. O controlador executa todas as malhas FOR e chamadas de sub-rotinas. Se uma sub-rotina for chamada mais do que uma vez, ela é executada toda vez que é chamada. O controlador usa a pré-varredura de instruções de Lógica Ladder para resetar as E/S não retentivas e os valores internos.

Durante a pré-varredura, os valores de entrada não são atuais e as saídas não são escritas. As condições a seguir geram a pré-varredura:

• Passagem de modo de Programa para Operação

• Entrada automática no modo de Operação de uma condição de energização.

A pré-varredura não ocorre para um programa quando:

• O programa se torna determinado enquanto o controlador está operando.

• O programa não é determinado quando o controlador entra no modo de Operação.

Estados do bloco de função

O controlador avalia as instruções do bloco de função baseado no estado de diferentes condições.

Condição Possível: Descrição:

pré-varredura A pré-varredura para as rotinas do bloco de função é igual a das rotinas de Lógica Ladder. A única diferença é que o parâmetro EnableIn para cada instrução do bloco de função é desenergizada durante a pré-varredura.

primeira varredura da instrução

A primeira varredura da instrução se refere à primeira vez que uma instrução é executada após pré-varredura. O controlador usa a primeira varredura da instrução para ler as entradas em corrente e determinar o estado apropriado em que se deve estar.

primeira operação da instrução

A primeira operação da instrução se refere à primeira vez que a instrução executa com uma nova instância de estrutura de dados. O controlador usa a primeira operação da instrução para gerar coeficientes e outros armazenamentos de dados que não se alteram para um bloco de função após o descarregamento inicial.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 13: CONTROLADORES LOGIX 5000 -

Prefácio 5

Toda instrução do bloco de função também inclui os parâmetros EnableIn e EnableOut:

• as instruções do bloco de função executam normalmente quando o EnableIn é energizado.

• Quando o EnableIn é desenergizado, a instrução do bloco de função executa a lógica da pré-varredura, a lógica da pós-varredura ou apenas pula a execução do algoritmo normal.

• O EnableOut espelha o EnableIn, porém, se a execução do bloco de função detecta uma condição de overflow, o EnableOut também é desenergizado.

• a execução do bloco de função reinicia onde parou quando o EnableIn passa de desenergizado para energizado. Porém existem algumas instruções de bloco de função que especificam funcionalidade especial, como re-inicialização, quando o EnableIn passa de desenergizado para energizado. Para instruções do bloco de função com parâmetros baseados no tempo, sempre quando o modo de temporização estiver no Oversample, a instrução sempre reiniciará onde parou quando o EnableIn passa de desenergizado para energizado.

Se o parâmetro EnableIn não estiver conectado, a instrução sempre executa como normal e o EnableIn se mantém energizado. Se desenergizar o EnableIn, este se alterará para energizar na próxima vez que a instrução executar.

IMPORTANTE Ao programar o bloco de função, limite a amplitude das unidades

de medida para +/-10+/-15 pois os cálculos de ponto flutuante interno são feitos através de um único ponto flutuante de precisão. As unidades de medida fora desta amplitude podem resultar em perda de precisão se os resultados ficarem próximos às limitações

do único ponto flutuante de precisão (+/-10+/-38).

Publicação 1756-RM003D-PT-P - Junho 2001

Page 14: CONTROLADORES LOGIX 5000 -

6 Prefácio

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 15: CONTROLADORES LOGIX 5000 -

Sumário

Informações Importantes ao Usuário . . . . . . . . . . . . . . . . . . . 2Resumo das Alterações Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Informações Atualizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Localizador de Instrução Onde Encontrar uma Instrução . . . . . . . . . . . . . . . . . . . . . . . 1Prefácio Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Quem Deve Utilizar este Manual . . . . . . . . . . . . . . . . . . . . . . 1Objetivo do Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Informações Comuns para Todas as Instruções. . . . . . . . . . . . 3Convenções e Termos Relacionados . . . . . . . . . . . . . . . . . . . 3

Energizar e desenergizar (zerar) . . . . . . . . . . . . . . . . . . . . 3Condição de linha de Lógica Ladder . . . . . . . . . . . . . . . . . 4Estados do bloco de função . . . . . . . . . . . . . . . . . . . . . . . 5

Capítulo 1Instruções Binárias(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1Examinar Se Desenergizado (XIC) . . . . . . . . . . . . . . . . . . . 1-1Examinar Se Energizado (XIO) . . . . . . . . . . . . . . . . . . . . . 1-3Energizar Saída (OTE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5Energizar Saída com Retenção (OTL) . . . . . . . . . . . . . . . . . 1-6Desenergizar Saída com Retenção (OTU) . . . . . . . . . . . . . . 1-7Monoestável (ONS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8Monoestável com Borda de Subida (OSR) . . . . . . . . . . . . . 1-10Monoestável com Borda de Descida (OSF). . . . . . . . . . . . . 1-13Monoestável com Borda de Subida com Entrada (OSRI) . . . 1-15Monoestável com Borda de Descida com Entrada (OSFI) . . 1-17

Capítulo 2Instruções do Temporizador e do Contador(TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1Temporizador de Energização (TON). . . . . . . . . . . . . . . . . 2-2Temporizador de Desenergização (TOF) . . . . . . . . . . . . . . 2-6Temporizador Retentivo Ligado (RTO) . . . . . . . . . . . . . . . . 2-10Temporizador de Energização com Reset (TONR) . . . . . . . 2-14Temporizador de Desenergização com Reset (TOFR) . . . . . 2-17Temporizador Retentivo Energizado com Reset (RTOR) . . . 2-20Contagem Crescente (CTU) . . . . . . . . . . . . . . . . . . . . . . . . 2-23Contagem Decrescente (CTD) . . . . . . . . . . . . . . . . . . . . . . 2-27Contagem Crescente/Decrescente (CTUD) . . . . . . . . . . . . . 2-31Reset (RES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-35

Capítulo 3Instruções de Entrada/Saída(MSG, GSV, SSV)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1Mensagem (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2Códigos de Erro MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7

Códigos de erro do ControlLogix (CIP) . . . . . . . . . . . . . 3-7

i Publicação 1756-RM003D-PT-P - Junho 2001

Page 16: CONTROLADORES LOGIX 5000 -

ii Sumário

Códigos de erros estendidos do ControlLogix . . . . . . . . 3-8Códigos de erro do CLP e SLC (.ERR) . . . . . . . . . . . . . . 3-9Códigos de erro estendiddos do CLP e SLC (.EXERR) . . 3-10Códigos de erro de Block-Transfer . . . . . . . . . . . . . . . . 3-11Códigos de erro do Logix5550 . . . . . . . . . . . . . . . . . . . 3-12Códigos de erros estendidos do Logix5550 . . . . . . . . . . 3-12

Especificação dos Detalhes de Configuração (Guia Configuration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13

Especificação de Mensagens CIP. . . . . . . . . . . . . . . . . . 3-14Uso de mensagens CIP genéricas para resetar os módulos de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15Especificação das mensagens do CLP-5. . . . . . . . . . . . . 3-16Especificação de Mensagens do SLC . . . . . . . . . . . . . . . 3-17Especificação das mensagens de block-transfer . . . . . . . 3-18Especificação das mensagens do CLP-3. . . . . . . . . . . . . 3-19Especificação das mensagens do CLP-2. . . . . . . . . . . . . 3-20

Exemplos de Configuração MSG . . . . . . . . . . . . . . . . . . . . 3-21Especificações dos Detalhes de Comunicação (Guia Communication) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22

Especificação de um percurso de conexão . . . . . . . . . . 3-22Especificação de um método de comunicação: . . . . . . . 3-26Seleção de uma opção de cache: . . . . . . . . . . . . . . . . . 3-27

Obtenção do Valor do Sistema (GSV) e Definição do Valor do Sistema (SSV) . . . . . . . . . . . . . . . . . . . . . . . . . 3-28Objetos GSV/SSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30

Acesso ao objeto AXIS (Eixo) . . . . . . . . . . . . . . . . . . . . 3-31Acesso ao objeto CONTROLLER . . . . . . . . . . . . . . . . . 3-39Acesso ao objeto CONTROLLERDEVICE . . . . . . . . . . . . 3-39Acesso ao objeto CST. . . . . . . . . . . . . . . . . . . . . . . . . . 3-41Acesso ao objeto DF1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-42Acesso ao objeto FAULTLOG . . . . . . . . . . . . . . . . . . . . 3-45Acesso ao objeto MESSAGE . . . . . . . . . . . . . . . . . . . . . 3-46Acesso ao objeto MODULE . . . . . . . . . . . . . . . . . . . . . 3-48Acesso ao objeto MOTIONGROUP . . . . . . . . . . . . . . . 3-49Acesso ao objeto PROGRAM . . . . . . . . . . . . . . . . . . . . 3-50Acesso ao objeto ROUTINE . . . . . . . . . . . . . . . . . . . . . 3-51Acesso ao objeto SERIALPORT . . . . . . . . . . . . . . . . . . . 3-52Acesso ao objeto TASK . . . . . . . . . . . . . . . . . . . . . . . . 3-54Acesso ao objeto WALLCLOCKTIME . . . . . . . . . . . . . . . 3-55

Exemplo de Programação GSV/SSV . . . . . . . . . . . . . . . . . . 3-56Obtenção de informações de falha . . . . . . . . . . . . . . . . 3-56Configuração de flags de habilitação e desabilitação . . . 3-57

Capítulo 4Instruções de Comparação(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1Comparação (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2

Expressões CMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4Operadores válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4Formatação de expressões . . . . . . . . . . . . . . . . . . . . . . 4-6

Publicação 1756-RM003D-PT-P - Junho 2001

Page 17: CONTROLADORES LOGIX 5000 -

Sumário iii

Determinação da seqüência de operação . . . . . . . . . . . 4-6Igual a (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7Maior ou Igual a (GEQ). . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11Maior que (GRT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15Menor ou Igual a (LEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19Menor Que (LES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-23Limite (LIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-27Máscara Igual a (MEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-33

Inserção de um valor de máscara imediato . . . . . . . . . . 4-34Diferente de (NEQ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-38

Capítulo 5Instruções Matemáticas/Cálculo(CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1Cálculo (CPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Operadores válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4Formatação de expressões . . . . . . . . . . . . . . . . . . . . . . 5-4Determinação da seqüência de operação . . . . . . . . . . . 5-5

Adição (ADD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6Subtração (SUB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9Multiplicação (MUL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12Divisão (DIV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15Módulo (MOD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19Raiz Quadrada (SQR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23Negação (NEG). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26Valor Absoluto (ABS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29

Capítulo 6Instruções de Movimentação/Lógica(MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1Movimentação (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2Movimentação Mascarada (MVM). . . . . . . . . . . . . . . . . . . . 6-4

Inserção de um valor de máscara imediato . . . . . . . . . . 6-5Movimentação Mascarada com Target (MVMT). . . . . . . . . . 6-7Distribuição do Campo do Bit (BTD) . . . . . . . . . . . . . . . . . 6-10Distribuição do Campo do Bit com Target (BTDT) . . . . . . . 6-13Zeramento (CLR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16Bitwise AND (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17Bitwise OR (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21Bitwise Exclusive OR (XOR) . . . . . . . . . . . . . . . . . . . . . . . 6-25Bitwise NOT (NOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29

Capítulo 7Instruções Array (File/Miscellaneous)(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1Seleção do Modo de Operação . . . . . . . . . . . . . . . . . . . . . 7-2

Modo All (Todos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2Modo Numerical (numérico) . . . . . . . . . . . . . . . . . . . . 7-3Modo Incremental (incremento) . . . . . . . . . . . . . . . . . 7-5

Arquivamento Aritmético e Lógico (FAL) . . . . . . . . . . . . . . 7-7Expressões FAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18Operadores válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18

Publicação 1756-RM003D-PT-P - Junho 2001

Page 18: CONTROLADORES LOGIX 5000 -

iv Sumário

Expressões de formatação . . . . . . . . . . . . . . . . . . . . . . 7-19Determinação da seqüência de operação . . . . . . . . . . . 7-19

Comparação e Busca de Arquivo (FSC) . . . . . . . . . . . . . . . 7-20Expressões FSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-29Operadores válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-30Formatação das expressões . . . . . . . . . . . . . . . . . . . . . 7-30Determinação da seqüência de operação . . . . . . . . . . . 7-31

Cópia de Arquivo (COP) Cópia Síncrona de Arquivo (CPS). 7-32Preenchimento de Arquivo (FLL) . . . . . . . . . . . . . . . . . . . . 7-37Média de Arquivo (AVE) . . . . . . . . . . . . . . . . . . . . . . . . . . 7-41Classificação de Arquivo (SRT) . . . . . . . . . . . . . . . . . . . . . 7-45Desvio Padrão do Arquivo (STD) . . . . . . . . . . . . . . . . . . . 7-49Tamanho em Elementos (SIZE) . . . . . . . . . . . . . . . . . . . . . 7-53

Capítulo 8Instruções de Matriz (Arquivo)/Deslocamento(BSL, BSR, FFL, FFU, LFL, LFU)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1Deslocamento de Bit para a Esquerda (BSL). . . . . . . . . . . . 8-2Deslocamento de Bit para a Direita (BSR) . . . . . . . . . . . . . 8-6Carga FIFO (FFL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10Descarga FIFO (FFU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16Carga LIFO (LFL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-22Descarga LIFO (LFU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-28

Capítulo 9Instruções de Seqüenciador(SQI, SQO, SQL)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1Entrada do Sequenciador (SQI) . . . . . . . . . . . . . . . . . . . . . 9-2

Inserção de um valor de máscara imediato . . . . . . . . . . 9-3Utilização de SQI sem SQO . . . . . . . . . . . . . . . . . . . . . 9-6

Saída do Sequenciador (SQO) . . . . . . . . . . . . . . . . . . . . . . 9-7Inserção de um valor de máscara imediato . . . . . . . . . . 9-8Utilização de SQI com SQO . . . . . . . . . . . . . . . . . . . . . 9-11Reset da posição de SQO. . . . . . . . . . . . . . . . . . . . . . . 9-11

Carga do Sequenciador (SQL) . . . . . . . . . . . . . . . . . . . . . . 9-12

Capítulo 10Instruções de Controle de Programa(JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1Salto para Label (JMP)Label (LBL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2Salto para Sub-rotina (JSR)Sub-rotina (SBR)Retorno (RET). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4Fim Temporário (TND) . . . . . . . . . . . . . . . . . . . . . . . . . . 10-13Rearme do Controle Mestre (MCR). . . . . . . . . . . . . . . . . . 10-15Desabilitação da Interrupção pelo Usuário (UID)Habilitação da Interrupção pelo Usuário (UIE) . . . . . . . . . 10-18Instrução Sempre Falsa (AFI) . . . . . . . . . . . . . . . . . . . . . . 10-20Sem Operação (NOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-21

Publicação 1756-RM003D-PT-P - Junho 2001

Page 19: CONTROLADORES LOGIX 5000 -

Sumário v

Capítulo 11Instruções For/Break(FOR, BRK, RET)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1For (FOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2Break (BRK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5Retorno (RET). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7

Capítulo 12Instruções Especiais(FBC, DDT, DTR, PID)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1Comparação de Bit de Arquivo (FBC) . . . . . . . . . . . . . . . . 12-2

Seleção do modo de busca. . . . . . . . . . . . . . . . . . . . . . 12-4Detecção de Diagnóstico (DDT) . . . . . . . . . . . . . . . . . . . 12-10

Seleção do modo de busca. . . . . . . . . . . . . . . . . . . . . 12-12Dados Transicionais (DTR) . . . . . . . . . . . . . . . . . . . . . . . 12-18

Inserção de uma valor de máscara imediato . . . . . . . . 12-19Proporcional, Integral e Derivativo (PID) . . . . . . . . . . . . . 12-21Configuração de uma Instrução PID. . . . . . . . . . . . . . . . . 12-26

Especificação do ajuste . . . . . . . . . . . . . . . . . . . . . . . 12-27Especificação da configuração . . . . . . . . . . . . . . . . . . 12-27Especificação de alarmes . . . . . . . . . . . . . . . . . . . . . . 12-28Especificação de conversão de escala . . . . . . . . . . . . . 12-29

Utilização das Instruções PID. . . . . . . . . . . . . . . . . . . . . . 12-29Windup anti-reset e transferência ininterrupta de manual para automático . . . . . . . . . . . . . . . . . . . . . . . 12-31Temporização da instrução PID . . . . . . . . . . . . . . . . . 12-32Reinicialização ininterrupta. . . . . . . . . . . . . . . . . . . . . 12-35Polarização derivativa . . . . . . . . . . . . . . . . . . . . . . . . 12-36Configuração da zona morta. . . . . . . . . . . . . . . . . . . . 12-37Uso da limitação de saída. . . . . . . . . . . . . . . . . . . . . . 12-37Feedforward ou polarização da saída (bias) . . . . . . . . 12-38Malhas em cascata . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-38Controle de um índice . . . . . . . . . . . . . . . . . . . . . . . . 12-38

Teoria PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-40processo PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-40processo PID com malhas mestre/escravo. . . . . . . . . . 12-40

Capítulo 13Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1Seno (SIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2Co-seno (COS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5Tangente (TAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8Arco Seno (ASN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-11Arco Co-seno (ACS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-14Arco Tangente (ATN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16

Capítulo 14Instruções Matemáticas Avançadas (LN, LOG, XPY)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1Log Natural (LN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2Base Log de 10 (LOG). . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4X Elevado à Potência de Y (XPY) . . . . . . . . . . . . . . . . . . . 14-7

Publicação 1756-RM003D-PT-P - Junho 2001

Page 20: CONTROLADORES LOGIX 5000 -

vi Sumário

Capítulo 15Instruções de Conversão Matemática(DEG, RAD, TOD, FRD, TRN)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1Graus (DEG). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2Radianos (RAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5Conversão para BCD (TOD) . . . . . . . . . . . . . . . . . . . . . . . 15-8Conversão para Inteiro (FRD) . . . . . . . . . . . . . . . . . . . . . 15-12Truncagem (TRN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-15

Capítulo 16Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1Execução da Instrução . . . . . . . . . . . . . . . . . . . . . . . . . 16-2Códigos de Erro ASCII . . . . . . . . . . . . . . . . . . . . . . . . . 16-5Tipos de String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-6

Teste ASCII Para Linha do Buffer (ABL) . . . . . . . . . . . . . . . 16-7Caracteres ASCII no Buffer (ACB) . . . . . . . . . . . . . . . . . . 16-10Remoção de Buffer e da Fila ASCII (ACL). . . . . . . . . . . . . 16-12Linhas ASCII Handshake (AHL) . . . . . . . . . . . . . . . . . . . . 16-14Leitura ASCII (ARD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-17Linha de Leitura ASCII (ARL) . . . . . . . . . . . . . . . . . . . . . . 16-20Anexar Leitura ASCII (AWA) . . . . . . . . . . . . . . . . . . . . . . 16-24Escrita ASCII (AWT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-28

Capítulo 17Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1Tipos de String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2

Concatenação de String (CONCAT) . . . . . . . . . . . . . . . . . . 17-3Remoção de String (DELETE) . . . . . . . . . . . . . . . . . . . . . . 17-5Encontro de String (FIND). . . . . . . . . . . . . . . . . . . . . . . . . 17-7Inserção de String (INSERT). . . . . . . . . . . . . . . . . . . . . . . . 17-9Meio do String (MID) . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-11

Capítulo 18Instruções de Coversão ASCII(STOD, STOR, DTOS, RTOS)

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1Tipos de String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2

String Para DINT (STOD) . . . . . . . . . . . . . . . . . . . . . . . . . 18-3String Para REAL (STOR) . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5DINT Para String (DTOS) . . . . . . . . . . . . . . . . . . . . . . . . . 18-7REAL Para String (RTOS) . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9

Apêndice AAtributos Comuns Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1

Valores Imediatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1Conversões de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1

SINT ou INT para DINT . . . . . . . . . . . . . . . . . . . . . . . . A-3Inteiro para REAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-5DINT para SINT para INT. . . . . . . . . . . . . . . . . . . . . . . A-5REAL para um inteiro . . . . . . . . . . . . . . . . . . . . . . . . . . A-6

Publicação 1756-RM003D-PT-P - Junho 2001

Page 21: CONTROLADORES LOGIX 5000 -

Sumário vii

Apêndice BAtributos de Bloco de Função Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1

Dados Retentivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1Ordem de Execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2Respostas de Bloco de Função para Condições de Overflow B-5Modos de Temporização . . . . . . . . . . . . . . . . . . . . . . . . . . B-5

Parâmetros comuns de instrução para modos de temporização. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7Características dos modos de temporização. . . . . . . . . . B-9

Controle de Programa/pelo Operador . . . . . . . . . . . . . . . B-10Index

Publicação 1756-RM003D-PT-P - Junho 2001

Page 22: CONTROLADORES LOGIX 5000 -

viii Sumário

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 23: CONTROLADORES LOGIX 5000 -

Capítulo 1

Instruções Binárias(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Introdução Use as instruções binárias (tipo relé) para monitorar e controlar o status dos bits.

Examinar Se Desenergizado (XIC)

A instrução XIC examina os dados binários para ver se estão energizados.

Operandos de LógicaLadder:

Operandos de Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Se você quiser: Use esta instrução: Consulte página:

habilitar as saídas quando o bit estiver energizado XIC 1-1

habilitar as saídas quando o bit for desenergizado XIO 1-3

energizar o bit OTE 1-5

energizar um bit (retentivo) OTL 1-6

desenergizar um bit (retentivo) OTU 1-7

energizar as saídas para uma varredura cada vez que uma linha se torna verdadeira

ONS 1-8

energizar o bit para uma varredura cada vez que uma linha se torna verdadeira

OSR 1-10

energizar o bit para uma varredura cada vez que uma linha se torna falsa

OSF 1-13

energizar um bit para uma varredura toda vez que o bit de entrada for energizado no bloco de função

OSRI 1-15

energizar um bit para uma varredura toda vez que o bit de entrada for desenergizado no bloco da função

OSFI 1-17

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

dados binários

BOOL tag bit para ser testado

1 Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
XIC
Thaynara
Highlight
Page 24: CONTROLADORES LOGIX 5000 -

1-2 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Descrição: A instrução XIC examina os dados binários para ver se estão energizados.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

examinar dados binários

dado binário = 0

dado binário = 1

saída da condição da linha é energizada quando falsa

saída da condição da linha é energizada quando verdadeira

entrada da condição da linha for verdadeira

fim

Se limit_switch_1 estiver energizado, isto habilitará a próxima instrução (a saída da condição da linha é verdadeira).

Se S:V estiver energizado (indica que um overflow ocorreu), isto habilitará a próxima instrução (a saída da condição da linha é verdadeira).

exemplo 1

exemplo 2

Publicação 1756-RM003D-PT-P - Junho 2001

Page 25: CONTROLADORES LOGIX 5000 -

Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-3

Examinar Se Energizado (XIO)

A instrução XIO examina os dados binários para ver se foram desenergizados.

Operandos de LógicaLadder

Operandos de Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: A instrução XIO examina os dados binários para ver se foram desenergizados.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução da LógicaLadder :

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

dados binários

BOOL tag bit para ser testado

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

examinar dados binários

dado binário = 0

dado binário = 1

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

entrada da condição da linha for verdadeira

fim

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Sticky Note
XIO
Thaynara
Highlight
Thaynara
Highlight
Page 26: CONTROLADORES LOGIX 5000 -

1-4 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Exemplo da LógicaLadder :

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Energizar Saída (OTE)

A instrução OTE energiza ou desenergiza o dado binário.

Operandos de LógicaLadder :

Operandos de Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: Quando a instrução OTE está habilitada, o controlador energiza o dado binário. Quando a instrução OTE está desabilitada, o controlador desenergiza o dado binário.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Se limit_switch_2 for desenergizado, isto habilitará a próxima instrução (a saída da condição da linha é verdadeira).

Se S:V for desenergizado (indica que nenhum overflow ocorreu), isto habilitará a próxima instrução (a saída da condição da linha é verdadeira).

exemplo 1

exemplo 2

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

dados binários

BOOL tag bit para ser energizado ou desenergizado

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
OTE
Page 27: CONTROLADORES LOGIX 5000 -

Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-5

Execução de LógicaLadder :

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Energizar Saída com Retenção (OTL)

A instrução OTL energiza (com retenção) o dado binário.

Operandos de LógicaLadder :

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: Quando habilitada, a instrução OTL energiza o dado binário. O dado binário permanece energizado até ser desenergizado, geralmente por uma instrução OTU. Quando desabilitada, a instrução OTL não muda o status do dado binário.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Condição: Ação:

pré-varredura O dado binário está desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O dado binário está desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira O dado binário está energizado.A saída da condição da linha está definida como verdadeira.

Quando habilitada, a instrução OTE energiza (acende) light_1. Quando desabilitada, a instrução OTE desenergiza (apaga) light_1.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

dados binários

BOOL tag bit para ser energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Sticky Note
OTL (SET)
Thaynara
Highlight
Thaynara
Highlight
Page 28: CONTROLADORES LOGIX 5000 -

1-6 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Execução de LógicaLadder :

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Desenergizar Saída com Retenção (OTU)

A instrução OTU desenergiza (com retenção) o dado binário.

Operandos de LógicaLadder :

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: Quando habilitada, a instrução OTU desenergiza o dado binário. Quando desabilitada, a instrução OTU não muda o status do dado binário.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Condição: Ação:

pré-varredura O dado binário não é modificado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O dado binário não é modificado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira O dado binário está energizado.A saída da condição da linha está definida como verdadeira.

Quando habilitada, a instrução OTL energiza light_2. Este bit permanece energizado até ser desenergizado, geralmente por uma instrução OTU.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

dados binários

BOOL tag bit para ser desenergizado

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
OTU (RESET)
Page 29: CONTROLADORES LOGIX 5000 -

Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-7

Execução de LógicaLadder :

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Monoestável (ONS)

A instrução ONS habilita ou desabilita o restante da linha, dependendo do status do bit de armazenamento.

Operandos de LógicaLadder :

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-varredura O dado binário não é modificado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O dado binário não é modificado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira O dado binário está desenergizado.A saída da condição da linha está definida como verdadeira.

Quando habilitada, a instrução OTU desenergizalight_2.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

bit de armazenamento

BOOL tag bit de armazenamento internoarmazena a entrada da condição da linha desde a última vez que a instrução foi executada

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
ONS
Page 30: CONTROLADORES LOGIX 5000 -

1-8 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Descrição: Quando habilitada e o bit de armazenamento está desenergizado, a instrução ONS habilita o restante da linha. Quando habilitada ou quando o bit de armazenamento está energizado, a instrução ONS desabilita o restante da linha.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder :

Condição: Ação:

pré-varredura O bit de armazenamento está energizado para prevenir um disparo inválido durante a primeira varredura.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O bit de armazenamento é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

examinar o bit de armazenamento

bit de armazenamento = 0

bit de armazenamento = 1

bit de armazenamento está energizadosaída da condição da linha é energizada quando verdadeira

bit de armazenamento permanece energizadosaída da condição da linha é energizada quando falsa

Publicação 1756-RM003D-PT-P - Junho 2001

Page 31: CONTROLADORES LOGIX 5000 -

Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-9

Exemplo de LógicaLadder :

Geralmente, você antecede a instrução ONS com uma instrução de entrada porque realiza a varredura da instrução ONS quando a mesma está habilitada e quando está desabilitada para que a mesma opere corretamente. Uma vez que a instrução ONS está habilitada, a condição de entrada de linha deve ser desenergizada ou o bit de armazenamento deve ser desenergizado para a instrução ONS ser habilitada novamente.

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Monoestável com Borda de Subida (OSR)

A instrução OSR energiza ou desenergiza o bit de saída, dependendo do status do bit de armazenamento.

Operandos de LógicaLadder :

Operandos do Bloco deFunção:

Esta instrução está disponível no bloco de função como OSRI, consulte a página 1-15.

Descrição: Quando habilitada e o bit de armazenamento está desenergizado, a instrução OSR energiza o bit de saída. Quando habilitada e o bit de

Em qualquer varredura para a qual o limit_switch_1 está desenergizado ou o storage_1 está energizado, esta linha não tem efeito. Em qualquer varredura para a qual o limit_switch_1 está energizado e o storage_1 está desenergizado, a instrução ONS energiza o storage_1 e a instrução ADD incrementa a soma (ADD) em 1. Durante o período em que o limit_switch_1 permanece energizado, a soma permanece no mesmo valor. O limit_switch_1 deve ir de desenergizado para energizado novamente para que a soma seja incrementada novamente.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

bit de armazenamento

BOOL tag bit de armazenamento internoarmazena a entrada da condição da linha desde a última vez que a instrução foi executada

bit de saída BOOL tag bit para ser energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
OSR
Page 32: CONTROLADORES LOGIX 5000 -

1-10 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

armazenamento está energizado ou quando desabilitada, a instrução OSR desenergiza o bit de saída

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder :

entrada da condição da

bit de armazenamento

bit de saída

a instrução éexecutada

instrução é resetada durante a próxima execução de varredura

Condição: Ação:

pré-varredura O bit de armazenamento está energizado para prevenir um disparo inválido durante a primeira varredura.O bit de saída é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O bit de armazenamento é desenergizado.O bit de saída não é modificado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

examinar o bit de armazenamento

bit de armazenamento = 0

bit de armazenamento = 1

bit de armazenamento está energizadobit de saída é energizadosaída da condição da linha é energizada quando verdadeira

bit de armazenamento permanece energizadobit de saída é desenergizadosaída da condição da linha é energizada quando verdadeira

Publicação 1756-RM003D-PT-P - Junho 2001

Page 33: CONTROLADORES LOGIX 5000 -

Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-11

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução está disponível no bloco de função como OSRI, consulte a página 1-15.

Monoestável com Borda de Descida (OSF)

A instrução OSF energiza ou remove o bit de saída, dependendo do status do bit de armazenamento.

Operandos de LógicaLadder :

Operandos do Bloco deFunção:

Esta instrução está disponível no bloco de função como OSFI, consulte a página 1-17.

Descrição: Quando desabilitada e o bit de armazenamento está energizado, a instrução OSF energiza o bit de saída. Quando desabilitada e o bit de

Cada vez que limit_switch_1 vai de desenergizado para energizado, a instrução OSR energiza o output_bit_1 e a instrução ADD incrementa a soma em 5. Durante o período em que olimit_switch_1 permanece energizado, a soma permanece no mesmo valor. O limit_switch_1 deve ir de desenergizado para energizado novamente para que a soma seja incrementada novamente. Você pode usar o output_bit_1 em múltiplas linhas para disparar outras operações.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

bit de armazenamento

BOOL tag bit de armazenamento internoarmazena a entrada da condição da linha desde a última vez que a instrução foi executada

bit de saída BOOL tag bit para ser energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
OSF
Thaynara
Highlight
Page 34: CONTROLADORES LOGIX 5000 -

1-12 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

armazenamento está desenergizado, ou quando habilitada, a instrução OSF remove o bit de saída.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder :

entrada da

bit de

bit de saída

a instrução éexecutada

instrução é resetada durante a próxima execução de varredura

Condição: Ação:

pré-varredura O bit de armazenamento é desenergizado para prevenir um disparo inválido durante a primeira varredura.O bit de saída é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira O bit de armazenamento é energizado.O bit de saída é desenergizado.A saída da condição da linha está definida como verdadeira.

entrada da condição da linha for falsa

fim

examinar o bit de armazenamento

bit de armazenamento = 0

bit de armazenamento = 1

bit de armazenamento permanece desenergizadobit de saída é desenergizadosaída da condição da linha é energizada quando falsa

bit de armazenamento é desenergizadobit de saída é energizadosaída da condição da linha é energizada quando falsa

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Page 35: CONTROLADORES LOGIX 5000 -

Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-13

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução está disponível no bloco de função como OSFI, consulte a página 1-17.

Monoestável com Borda de Subida com Entrada (OSRI)

A instrução OSRI energiza o bit de saída para um ciclo de execução quando o bit de entrada passa de desenergizado para energizado.

Operandos de LógicaLadder :

Esta instrução está disponível em lógica ladder como OSR, consulte a página 1-10.

Operandos do Bloco deFunção:

Cada vez que o limit_switch_1 vai de energizado para desenergizado, a instrução OSF energiza o output_bit_2 e a instrução ADD incrementa a soma em 5. Durante o período que limit_switch_1 permanece desenergizado, a soma permanece no mesmo valor. O limit_switch_1 deve ir de energizado para desenergizado novamente para que a soma seja incrementada novamente. Você pode usar o output_bit_2 em linhas múltiplas para disparar outras operações.

Bloco de Função

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

tag de bloco FBD_ONESHOT estrutura Estrutura OSRI

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Page 36: CONTROLADORES LOGIX 5000 -

1-14 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Estrutura: Parâmetros de entrada

Parâmetros de saída

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é energizado

InputBit BOOL Bit de entrada. Isto é equivalente à condição de linha para a instrução OSR de lógica ladder .o valor inicial é desenergizado

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

OutputBit BOOL Bit de saída

Publicação 1756-RM003D-PT-P - Junho 2001

Page 37: CONTROLADORES LOGIX 5000 -

Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-15

Descrição: Quando o InputBit é energizado e o InputBitn-1 é desenergizado, a

instrução OSRI energiza o OutputBit. Quando o InputBitn-1 é

energizado ou quando o bit de entrada é desenergizado, a instrução OSRI desenergiza o OutputBit.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder :

Esta instrução está disponível em lógica ladder como OSR, consulte a página 1-10.

Execução do Bloco deFunção:

InputBit

OutputBit

40048a instrução é

executadainstrução é resetada durante a próxima execução de varredura

InputBitn-1

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeiro a instrução efetua a varredura InputBit n-1 é energizado.

primeiro a instrução efetua a operação InputBit n-1 é energizado.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado Em uma transição de desenergizado para energizado do EnableIn, a instrução energiza o InputBit n-1. A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 38: CONTROLADORES LOGIX 5000 -

1-16 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Exemplo do Bloco deFunção:

Monoestável com Borda de Descida com Entrada (OSFI)

A instrução OSFI energiza OutputBit para um ciclo de execução quando o InputBit passa de energizado para desenergizado.

Operandos de LógicaLadder :

Esta instrução está disponível na lógica ladder como OSF, consulte a página 1-13.

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Quando limit_switch1 vai de desenergizado para energizado, a instrução OSRI energiza o OutputBit para uma varredura. Quando o OutputBit é energizado, ele habilita a instrução ADD para incrementar o valor em SourceB pelo valor em SourceA.

Bloco de Função

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

tag de bloco FBD_ONESHOT estrutura Estrutura OSFI

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é energizado

InputBit BOOL Bit de entrada. Isto é equivalente à condição de linha para a instrução OSF de lógica laddero valor inicial é desenergizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 39: CONTROLADORES LOGIX 5000 -

Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-17

Parâmetros de saída

Descrição: Quando o InputBit é desenergizado e o InputBit n-1 é energizado, a

instrução OSFI energiza o OutputBit. Quando o InputBit n-1 é

desenergizado ou quando o InputBit é energizado, a instrução OSFI desenergiza o bit de saída.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder :

Esta instrução está disponível na lógica ladder como OSF, consulte a página 1-13.

Execução do Bloco deFunção:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

OutputBit BOOL Bit de saída

InputBit

OutputBit

a instrução éexecutada

a instrução é resetada durante a próxima execução de varredura

InputBit n-1

40047

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeiro a instrução efetua a varredura InputBit n-1 é desenergizado.

primeiro a instrução efetua a operação InputBit n-1 é desenergizado.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado Em uma transição de desenergizado para energizado do EnableIn, a instrução desenergiza o InputBit t n-1.A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 40: CONTROLADORES LOGIX 5000 -

1-18 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Exemplo do Bloco deFunção:

Quando o limit_switch1 vai de energizado para desenergizado, a instrução OSFI energiza o OutputBit para uma varredura. Quando o OutputBit é energizado, ele habilita a instrução ADD para incrementar o valor em SourceB pelo valor em SourceA.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 41: CONTROLADORES LOGIX 5000 -

Capítulo 2

Instruções do Temporizador e do Contador(TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Introdução Operações de controle de temporizador e contador baseado no tempo ou número de eventos.

A base de tempo para todos os temporizadores é 1 ms.

Se você quiser: Use esta instrução: Consulte página:

cronometrar em quanto tempo o temporizador é habilitado

TON 2-2

cronometrar em quanto tempo um temporizador é desabilitado

TOF 2-6

acumular tempo RTO 2-10

determinar por quanto tempo o temporizador é habilitado com um reset incorporado ao bloco de função

TONR 2-14

determinar por quanto tempo um temporizador é desabilitado com um reset incorporado ao bloco de função

TOFR 2-17

acumular tempo com o reset incorporado ao bloco de função

RTOR 2-20

realizar uma contagem crescente CTU 2-23

realizar um contagem decrescente CTD 2-27

realizar uma contagem crescente e decrescente no bloco de função

CTUD 2-31

resetar um temporizador ou contador RES 2-35

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 42: CONTROLADORES LOGIX 5000 -

2-2 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador de Energização (TON)

A instrução TON é um temporizador não retentivo que acumula tempo quando a instrução é habilitada (entrada da condição da linha é verdadeira).

Operandos de LógicaLadder :

Estrutura:

Operandos do Bloco deFunção:

Esta instrução está disponível no bloco de função como TONR, consulte a página 2-14.

Descrição: Quando habilitada, a instrução TON acumula tempo até que:

• a instrução TON seja desabilitada

• o .ACC ≥ .PRE

A base de tempo é sempre 1 ms. Por exemplo, para um temporizador de 2 segundos, entre com 2000 para o valor .PRE.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Temporizador

TIMER tag estrutura do temporizador

Preset DINT imediato Quanto tempo para retardar (tempo acumulado)

Accum DINT imediato totalizar os ms que o temporizador contouvalor inicial é normalmente 0

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit habilitado indica que a instrução TON está habilitada.

.TT BOOL O bit de temporização indica que uma operação de temporização está em andamento.

.DN BOOL O bit executado está definido quando .ACC ≥ .PRE.

.PRE DINT O valor pré-selecionado especifica o valor (unidades de 1 ms) que o acumulador deve atingir antes da instrução energizar o bit .DN.

.ACC DINT O valor acumulado especifica a quantidade de milissegundos que transcorreram desde o momento em que a instrução TON foi habilitada.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
TON
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Page 43: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-3

Quando a instrução TON é desabilitada, o valor .ACC é desenergizado.

Flags de Status Aritmético: não afetados

Condições de Falha:

entrada da condição da linha

bit habilitado do temporizador (.EN)

bit executado do temporizador (.DN)

valor acumulado do temporizador

bit de temporização do temporizador (.TT)

valor pré-programado

0 16649

temporizador não atingiu o valor .PRE

em atraso

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

.PRE < 0 4 34

.ACC < 0 4 34

Publicação 1756-RM003D-PT-P - Junho 2001

Page 44: CONTROLADORES LOGIX 5000 -

2-4 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Execução da LógicaLadder :

Condição: Ação:

pré-varredura O bit .EN é desenergizado.O bit .TT é desenergizado.O bit .DN é desenergizado.O valor .ACC é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O bit .EN é desenergizado.O bit .TT é desenergizado.O bit .DN é desenergizado.O valor .ACC é desenergizado.A saída da condição da linha é definida como falsa.

examinar bit .DNbit .DN = 1

bit .DN = 0

bit .EN é energizadobit .TT é energizadolast_time = current_time

entrada da condição da linha for verdadeira

examinar .ACC.ACC ≥ .PRE

.ACC < .PRE

bit .TT é energizado.ACC = .ACC + (current_time - last_time)last_time = current_time

valor .ACC renova

não

sim

.ACC = 2.147.483.647

examinar bit .ENbit .EN = 0

bit .EN = 1

saída da condição da linha é definida como verdadeira

fim

.DN é energizadobit .TT é desenergizadobit .EN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 45: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-5

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução está disponível no bloco de função como TONR, consulte a página 2-14.

Quando o limit_switch_1 é energizado, olight_2 fica aceso durante 180 ms (o timer_1 está cronometrando). Quando o timer_1.acc atinge 180, o light_2 desenergiza e o light_3 energiza. O Light_3 permanece energizado até que a instrução TON seja desabilitada. Se o limit_switch_1 for desenergizado enquanto otimer_1 está cronometrando, o light_2 desenergiza.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Page 46: CONTROLADORES LOGIX 5000 -

2-6 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador de Desenergização (TOF)

A instrução TOF é um temporizador não retentivo que acumula tempo quando a instrução está habilitada (entrada da condição da linha é falsa).

Operandos de LógicaLadder :

Estrutura:

Operandos do Bloco deFunção:

Esta instrução está disponível no bloco de função como TOFR, consulte a página 2-17.

Descrição: Quando habilitada, a instrução TOF acumula tempo até que:

• a instrução TOF seja desabilitada

• o .ACC ≥ .PRE

A base de tempo é sempre 1 ms. Por exemplo, para um temporizador de 2 segundos, entre com 2000 para o valor .PRE.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Temporizador TIMER tag estrutura do temporizador

Preset DINT imediato Quanto tempo para retardar (tempo acumulado)

Accum DINT imediato totalizar os ms que o temporizador contouvalor inicial é normalmente 0

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit habilitado indica que a instrução TOF está habilitada.

.TT BOOL O bit de temporização indica que uma operação de temporização está em andamento.

.DN BOOL O bit executado está definido quando .ACC ≥ .PRE.

.PRE DINT O valor pré-determinado especifica o valor (unidades de 1 ms) que o acumulado deve atingir antes da instrução desenergizar o bit .DN.

.ACC DINT O valor acumulado especifica o número de milissegundos que transcorreram desde o momento em que a instrução TOF foi habilitada.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
TOF
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Page 47: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-7

Quando a instrução TOF é desabilitada, o valor .ACC é desenergizado.

Flags de Status Aritmético: não afetados

Condições de Falha:

entrada da condição da linha

bit habilitado do temporizador (.EN)

bit executado do temporizador (.DN)

valor acumulado do temporizador (.ACC)

bit de temporização do temporizador (.TT)

0 16650

temporizador não atingiu o valor .PRE

valor pré-programado

atraso na desenergização

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

.PRE < 0 4 34

.ACC < 0 4 34

Publicação 1756-RM003D-PT-P - Junho 2001

Page 48: CONTROLADORES LOGIX 5000 -

2-8 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Execução de LógicaLadder :

Condição: Ação:

pré-varredura O bit .EN é desenergizado.O bit .TT é desenergizado.O bit .DN é desenergizado.O valor .ACC é energizado para igualar-se ao valor .PRE.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira O bit .EN é energizado.O bit .TT é desenergizado.O bit .DN é energizado.O valor .ACC é desenergizado.A saída da condição da linha está definida como verdadeira.

examinar bit .DNbit .DN = 0

bit .DN = 1

bit .EN é desenergizado.bit .TT é energizadolast_time = current_time

entrada da condição da linha for falsa

examinar .ACC.ACC ≥ .PRE

.ACC < .PRE

bit .TT é energizado.ACC = .ACC + (current_time - last_time)last_time = current_time

valor .ACC renova

não

sim

.ACC = 2.147.483.647

examinar bit .ENbit .EN = 1

bit .EN = 0

saída de condição da linha é definida como falsa

fim

bit .DN é desenergizado.bit .TT é desenergizadobit .EN é desenergizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 49: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-9

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução está disponível no bloco de função como TOFR, consulte a página 2-17.

Quando o limit_switch_2 é desenergizado, o light_2 fica energizado durante 180 ms (otimer_2 está cronometrando). Quando o timer_2.acc atinge 180, o light_2 desenergiza e o light_3 energiza. O Light_3 permanece energizado até que a instrução TOF seja habilitada. Se olimit_switch_2for energizado enquanto o timer_2 está cronometrando, o light_2 desenergiza.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Page 50: CONTROLADORES LOGIX 5000 -

2-10 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador Retentivo Ligado (RTO)

A instrução RTO é um temporizador retentivo que acumula tempo quando a instrução é habilitada.

Operandos de LógicaLadder :

Estrutura:

Operandos do Bloco deFunção:

Esta instrução está disponível no bloco de função como RTOR, consulte a página 2-20.

Descrição: Quando habilitada, a instrução RTO acumula tempo até ser desabilitada. Quando a instrução RTO é desabilitada, ela retém o valor ACC. Deve-se remover o valor .ACC, tipicamente com uma instrução RES fazendo referência à mesma estrutura TIMER.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Temporizador TIMER tag estrutura do temporizador

Preset DINT imediato Quanto tempo para retardar (tempo acumulado)

Accum DINT imediato quantidade de ms que o temporizador contouvalor inicial é normalmente 0

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit habilitado indica que a instrução RTO está habilitada.

.TT BOOL O bit de temporização indica que uma operação de temporização está em andamento.

.DN BOOL O bit executado indica que .ACC ≥ .PRE.

.PRE DINT O valor pré-selecionado especifica o valor (unidades de 1 ms) que o acumulado deve atingir antes da instrução energizar o bit .DN.

.ACC DINT O valor acumulado especifica o número de milissegundos que transcorreram desde o momento em que a instrução RTO foi habilitada.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
RTO
Thaynara
Highlight
Page 51: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-11

A base de tempo é sempre 1 ms. Por exemplo, para um temporizador de 2 segundos, insira 2000 para o valor .PRE.

Flags de Status Aritmético: não afetados

Condições de Falha:

entrada da condição da linha

bit habilitado do temporizador (.EN)

bit executado do temporizador (.DN)

valor acumulado do temporizador (.ACC)

bit de temporização do temporizador (.TT)

valor pré-programado

0

16651

condição da linha que controla a instrução RES

temporizador não atingiu o valor .PRE

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

.PRE < 0 4 34

.ACC < 0 4 34

Publicação 1756-RM003D-PT-P - Junho 2001

Page 52: CONTROLADORES LOGIX 5000 -

2-12 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Execução LógicaLadder :

Condição: Ação:

pré-varredura O bit .EN é desenergizado.O bit .TT é desenergizado.O bit .DN é desenergizado.O valor .ACC não é modificado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O bit .EN é desenergizado.O bit .TT é desenergizado.O bit .DN não é modificado.O valor .ACC não é modificado.A saída da condição da linha é definida como falsa.

examinar bit .DN bit .DN = 1

bit .DN = 0

bit .EN está energizadobit .TT está energizadolast_time = current_time

entrada da condição da linha for verdadeira

examinar .ACC.ACC ≥ .PRE

.ACC < .PRE

bit .TT está energizado.ACC = .ACC + (current_time - last_time)last_time = current_time

valor .ACC renova

não

sim

.ACC = 2.147.483.647

examinar bit .ENbit .EN = 0

bit .EN = 1

saída da condição da linha é definida como verdadeira

fim

.DN é energizadobit .TT é desenergizadobit .EN está energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 53: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-13

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução está disponível no bloco de função como RTOR, consulte a página 2-20.

Quando o limit_switch_1 é energizado, o light_1 fica ligado durante 180 ms (o timer_2 está cronometrando). Quando o timer_3.acc atinge 180, o light_1 apaga e o light_2 acende. O Light_2 permanece até que o timer_3 seja resetado. Se o light_switch_1 for desenergizado enquanto o timer_3 está cronometrando, o light_1 permanece aceso. Quando o limit _switch_2 está energizado, a instrução RES reseta o timer_3 (remove os bits de status e o valor .ACC).

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Page 54: CONTROLADORES LOGIX 5000 -

2-14 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador de Energização com Reset (TONR)

A instrução TONR é um temporizador não retentivo que acumula tempo quando TimerEnable é energizado.

Operandos de LógicaLadder :

Esta instrução está disponível em Lógica Ladder como duas instruções separadas: TON (consulte a página 2-2) e RES (consulte a página 2-35).

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de Função

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

tag de bloco FBD_TIMER estrutura estrutura TONR

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é energizado

TimerEnable BOOL Se energizada, habilita o temporizador a operar e acumular tempo.o valor inicial é desenergizado

PRE DINT Valor pré-selecionado do temporizador. Este é o valor em 1 unidade de milissegundo que o ACC deve alcançar antes que a temporização termine. Se inválido, a instrução energiza o bit apropriado em Status e o temporizador não executa.válido = 0 ao número inteiro positivo máximo

Reset BOOL Solicitação para zerar o temporizador. Quando energizado, o temporizador zera.o valor inicial é desenergizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 55: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-15

Parâmetros de saída

Descrição: Quando habilitada, a instrução TONR acumula tempo até que:

• a instrução TONR seja desabilitada

• ACC ≥ PRE

A base de tempo é sempre 1 ms. Por exemplo, para um temporizador de 2 segundos, digite 2000 para o valor PRE.

Energize o parâmetro de entrada Reset para resetar a instrução. Se TimerEnable for energizado quando Reset é energizado, a instrução TONR inicia a temporização novamente quando Reset for desenergizado.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder :

Esta instrução está disponível na Lógica Ladder como duas instruções separadas: TON (consulte a página 2-2) e RES (consulte a página 2-35).

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

ACC BOOL Tempo acumulado em milissegundos.

EN BOOL Saída habilitada de temporizador. indica que a instrução do temporizador está habilitada.

TT BOOL Saída de temporização do temporizador. Quando energizado, uma operação de temporização está em progresso.

DN BOOL Saída da temporização concluída. Indica quando o tempo acumulado for maior ou igual ao valor pré-selecionado.

Status: DINT Status do bloco de função.

InstructFault (Status.0) BOOL A instrução detectou um dos seguintes erros de execução. Isto não é um erro grave ou de advertência do controlador. Verifique os bits de status restantes para determinar o que ocorreu.

PresetInv (Status.1) BOOL O valor pré-selecionado é inválido.

TimerEnable

bit habilitado (EN)

bit executado de temporizador (DN)

valor acumulado do temporizador (ACC)

bit de temporização do temporizador (TT)

valor pré-programado

0

16649

em atraso

o temporizador não alcançou o valor PRE

Publicação 1756-RM003D-PT-P - Junho 2001

Page 56: CONTROLADORES LOGIX 5000 -

2-16 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução EN, TT e DN são desenergizados.o valor ACC é definido em 0.

primeira operação da instrução EN, TT e DN são desenergizados.o valor ACC é definido em 0.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado Quando o EnableIn efetua a transição de desenergizado para energizado, a instrução inicializa como descrito para a primeira varredura da instrução.A instrução é executada.EnableOut é energizado.

reset Quando o parâmetro de entrada Reset é energizado, a instrução desenergiza EN, TT e DN e define ACC = zero.

Para cada varredura cujo limit_switch1 é energizado, a instrução TONR incrementa o valor ACC pelo tempo transcorrido até que o valor ACC alcance o valor PRE. Quando ACC ≥ PRE, o parâmetro DN é energizado, o que habilita a instrução do bloco de função seguindo a instrução TONR.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 57: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-17

Temporizador de Desenergização com Reset (TOFR)

A instrução TOFR é um temporizador não retentivo que acumula tempo quando TimerEnable é desenergizado.

Operandos de LógicaLadder :

Esta instrução está disponível na Lógica Ladder como duas instruções separadas: TOF (consulte a página 2-6) e RES (consulte a página 2-35).

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de Função

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

tag de bloco FBD_TIMER estrutura estrutura TOFR

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é energizado

TimerEnable BOOL Se desenergizado, habilita o temporizador para operar e acumular tempo.o valor inicial é desenergizado

PRE DINT Valor pré-selecionado do temporizador. Este é o valor em unidades de 1 ms que o ACC deve alcançar antes que a temporização termine. Se inválido, as instruções energizam o bit apropriado em Status e o temporizador não executa.válido = 0 ao inteiro positivo máximo

Reset BOOL Solicitação para zerar o temporizador. Quando energizado, o temporizador reseta.o valor inicial é desenergizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 58: CONTROLADORES LOGIX 5000 -

2-18 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Parâmetros de saída

Descrição: Quando habilitada, a instrução TOFR acumula tempo até que:

• a instrução TOFR seja desabilitada

• ACC ≥ PRE

A base de tempo é sempre 1 ms. Por exemplo, para um temporizador de 2 segundos, digite 2000 para PRE value.

Energize o parâmetro de entrada Reset para resetar a instrução. Se o TimerEnable for desenergizado quando o Reset for energizado, a instrução TOFR não inicia a temporização novamente quando o Reset for desenergizado.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

ACC BOOL Tempo acumulado em milissegundos.

EN BOOL Saída habilitada pelo temporizador. Indica que a instrução do temporizador está habilitada.

TT BOOL Saída de temporização do temporizador. Quando energizada, uma operação de temporização está em progresso.

DN BOOL Saída concluída de temporização. Indica quando o tempo acumulado é maior ou igual ao pré-selecionado.

Status: DINT Status do bloco de função.

InstructFault (Status.0) BOOL A instrução detectou um dos seguintes erros de execução. Isto não é um erro grave ou de advertência do controlador. Verifique os bits de status restantes para determinar o que ocorreu.

PresetInv (Status.1) BOOL O valor pré-selecionado é inválido.

TimerEnable

bit habilitado (EN)

bit executado do temporizador (DN)

valor acumulado do temporizador (ACC)

bit de temporização do temporizador (TT)

0

atraso na desenergização

16650

o temporizador não atingiu o PRE value

valor pré-programado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 59: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-19

Execução da LógicaLadder :

Esta instrução está disponível na Lógica Ladder como duas instruções separadas: TOF (consulte a página 2-6) e RES (consulte a página 2-35).

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução EN, TT e DN são desenergizados.o valor ACC é energizado para PRE.

primeira varredura da instrução EN, TT e DN são desenergizados.o valor ACC é energizado para PRE.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado Quando EnableIn faz a transição de desenergizado para energizado, a instrução se inicializa como descrito para a primeira varredura da instrução.A instrução é executada.EnableOut é energizado.

reset Quando o parâmetro de entrada Reset for energizado, a instrução desenergizará o EN, TT e DN e definirá o ACC = PRE. Note que isto é diferente de usar uma instrução RES em uma instrução TOF.

Cada varredura após limit_switch1 é desenergizada, a instrução TOFR incrementa o valor ACC através do tempo transcorrido até que o valor ACC alcance o valor PRE. Quando ACC ≥ PRE, o parâmetro DN é desenergizado, o que desabilita a instrução do bloco de função que segue a instrução TOFR.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 60: CONTROLADORES LOGIX 5000 -

2-20 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador Retentivo Energizado com Reset (RTOR)

A instrução RTOR é um temporizador retentivo que acumula tempo quando o TimerEnable é energizado.

Operandos de LógicaLadder :

Esta instrução está disponível na Lógica Ladder como duas instruções separadas: RTO (consulte a página 2-10) e RES (consulte a página 2-35).

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Função

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

tag do bloco FBD_TIMER estrutura estrutura RTOR

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é energizado

TimerEnable BOOL Se energizado, habilita o temporizador para operar e acumular tempo.o valor inicial é desenergizado

PRE DINT Valor pré-selecionado do temporizador. Este é o valor em unidades de 1 ms que o ACC deve alcançar antes que a temporização termine. Se inválida, a instrução energiza o bit apropriado em Status e o temporizador não executa.válido = 0 ao inteiro positivo máximo

Reset BOOL Solicitação para resetar o temporizador. Quando energizado, o temporizador reseta.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 61: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-21

Parâmetros de saída

Descrição: Quando habilitada, a instrução RTO acumula tempo até que seja desabilitada. Quando a instrução RTO é desabilitada, ela retém o valor ACC. Deve-se desenergizar o valor ACC através da entrada Reset.

A base de tempo é sempre 1 ms. Por exemplo, para um temporizador de 2 segundos, digite 2000 para o PRE value.

Energize o parâmetro de entrada Reset para resetar a instrução. Se o TimerEnable for energizado quando o Reset for energizado, a instrução RTOR inicia a temporização novamente quando o Reset for desenergizado.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

ACC DINT Tempo acumulado em milissegundos. Este valor é retido até durante a desenergização da entrada TimerEnable. Isto torna o comportamento deste bloco diferente do bloco TONR.

EN BOOL Saída habilitada do temporizador. Indica que a instrução do temporizador é habilitada.

TT BOOL Saída de temporização do temporizador. Quando energizada, a operação de temporização está em progresso.

DN BOOL Saída de temporização concluída. Indica quando o tempo acumulado é superior ou igual ao pré-selecionado.

Status: DINT Status do bloco de função.

InstructFault (Status.0) BOOL Esta instrução detectou um dos seguintes erros de execução. Esto não é um erro grave ou de advertência do controlador. Verifique os bits de status restantes para determinar o que ocorreu.

PresetInv (Status.1) BOOL O valor pré-selecionado é inválido.

TimerEnable

bit habilitado (EN)

bit executado do temporizador (DN)

valor acumulado do temporizador (ACC)

bit de temporização do temporizador (TT)

valor pré-programado

0

16651

Reset

o temporizador não alcançou o PRE value

Publicação 1756-RM003D-PT-P - Junho 2001

Page 62: CONTROLADORES LOGIX 5000 -

2-22 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Execução de LógicaLadder :

Esta instrução está disponível na Lógica Ladder como duas instruções separadas: RTO (consulte a página 2-10) e RES (consulte a página 2-35).

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução EN, TT e DN são desenergizadoso valor ACC não é alterado

primeira operação da instrução EN, TT e DN são desenergizadoso valor ACC não é alterado

primeira operação do OLC EN, TT e DN são desenergizadoso valor ACC não é alterado

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado Quando EnableIn faz a transição de desenergizado para energizado, a instrução inicializa como descrito para a primeira varredura da instrução.A instrução é executada.EnableOut é energizado.

reset Quando o parâmetro de entrada Reset for energizado, a instrução desenergiza EN, TT e DN e define ACC = zero.

Para cada varredura cujo limit_switch1 é energizado, a instrução RTOR incrementa o valor ACC através do tempo transcorrido até que o valor ACC alcance o valor PRE. Quando ACC ≥ PRE, o parâmetro DN é energizado, o que habilita a instrução do bloco de função seguindo a instrução

Publicação 1756-RM003D-PT-P - Junho 2001

Page 63: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-23

Contagem Crescente (CTU)

A instrução CTU conta em ordem crescente.

Operandos de LógicaLadder :

Estrutura:

Operandos do Bloco deFunção:

Esta instrução está disponível no bloco de função como CTUD, consulte a página 2-31.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Contador COUNTER tag estrutura do contador

Preset DINT imediato valor máximo de contagem

Accum DINT imediato quantidade de vezes que o contador contouvalor inicial é normalmente 0

Mnemônico: Tipo de Dados: Descrição:

.CU BOOL O bit de habilitação do contador crescente indica que a instrução CTU está habilitada.

.DN BOOL O bit executado indica que .ACC ≥ .PRE.

.OV BOOL O bit de overflow indica que o contador ultrapassou o limite superior de 2.147.483.647. O contador volta para -2.147.483.648 e inicia a contagem crescente novamente.

.UN BOOL O bit de underflow indica que o contador ultrapassou o limite inferior de - 2.147.483.647. O contador volta para 2.147.483.647 e inicia a contagem decrescente novamente.

.PRE DINT O valor pré-programado especifica o valor que o acumulado deve atingir antes da instrução energizar o bit .DN.

.ACC DINT O valor acumulado especifica o número de transições que a instrução contou.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
CTU
Page 64: CONTROLADORES LOGIX 5000 -

2-24 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Descrição: Quando habilitada e o bit .CU estiver desenergizado, a instrução CTU incrementa o contador em um. Quando habilitada e o bit .CU estiver energizado ou quando desabilitada, a instrução CTU retém o seu valor .ACC>

O valor acumulado continua a incrementar, mesmo depois que o bit .DN é energizado. Para remover o valor acumulado, use uma instrução RES que se refira à estrutura do contador ou escreva 0 no valor acumulado.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

entrada da condição da linha

bit de contagem crescente (.CU)

bit executado de contagem crescente (.DN)

valor acumulado do contador (.ACC)

valor pré-programado

16636

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Page 65: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-25

Execução de LadderRelé:

Condição: Ação:

pré-varredura O bit .CU está energizado para prevenir incrementos inválidos durante a primeira varredura do programa.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O bit .CU é desenergizado.A saída da condição da linha é definida como falsa.

examinar bit .CU bit .CU = 0

bit .CU = 1

entrada da condição da linha for verdadeira

valor .ACC renovasim

não

examinar bit .UNbit .UN = 0

bit .UN = 1

bit .CU está energizado.ACC = .ACC + 1

examinar bit .OVbit .OV = 0

examinar bit .UNbit .UN = 1

bit .UN = 0

bit .UN é desenergizadobit .DN é desenergizado.bit . OV é desenergizado

bit . OV está energizado

examinar .ACC.ACC ≥ .PRE

.ACC < .PRE

bit .DN está energizado.

saída da condição da linha é definida como verdadeira

fim

bit .OV = 1

bit .DN é desenergizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 66: CONTROLADORES LOGIX 5000 -

2-26 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemplo de Lógica

Ladder :

Execução do Bloco deFunção:

Esta instrução está disponível no bloco de função como CTUD, consulte a página 2-31.

Depois que o limit_switch_1 passa de desabilitado para habilitado 10 vezes, o bit .DN é energizado e o light_1 acende. Se olimit_switch_1 continuar a mudar de desabilitado para habilitado, o counter_1 continuará a incrementar a sua contagem e o bit .DN permanecerá energizado. Quando o limit_switch_2 estiver habilitado, a instrução RES resetará o counter_1 (desenergizará os bits de status e o valor .ACC) e o light_1 será desligado.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Page 67: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-27

Contagem Decrescente (CTD)

A instrução CTD conta no sentido decrescente.

Operandos de LógicaLadder :

Estrutura:

Operandos de Bloco deFunção:

Esta instrução está disponível no bloco de função como CTUD, consulte a página 2-31.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Contador COUNTER tag estrutura do contador

Preset DINT imediato valor mínimo de contagem

Accum DINT imediato quantidade de vezes que o contador contouvalor inicial é normalmente 0

Mnemônico: Tipo de Dados: Descrição:

.CD BOOL O bit de habilitação do contador decrescente indica que a instrução CTD está habilitada.

.DN BOOL O bit executado indica que .ACC ≥ .PRE.

.OV BOOL O bit de overflow indica que o contador ultrapassou o limite superior de 2.147.483.647. O contador volta para -2.147.483.648 e inicia a contagem crescente novamente.

.UN BOOL O bit de underflow indica que o contador ultrapassou o limite inferior de - 2.147.483.647. O contador volta para 2.147.483.647 e inicia a contagem decrescente novamente.

.PRE DINT O valor pré-programado especifica o valor que o acumulado deve atingir antes da instrução energizar o bit .DN.

.ACC DINT O valor acumulado especifica o número de transições que a instrução contou.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
CTD
Page 68: CONTROLADORES LOGIX 5000 -

2-28 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Descrição: A instrução CTD é tipicamente usada com uma instrução CTU que refere à mesma estrutura do contador.

Quando habilitada e o bit .CD estiver removido, a instrução CTD decrementa o contador em um. Quando habilitada e o bit .CD estiver energizado ou quando desabilitada, a instrução CTD retém o seu valor .ACC.

O valor acumulado continua a decrementar mesmo depois que o bit .DN for energizado. Para remover o valor acumulado, use uma instrução RES que se refira à estrutura do contador ou escreva 0 no valor acumulado.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

entrada da condição da linha

bit de habilitação de contagem decrescente (.CD)

bit executado de contagem decrescente (.DN)

valor acumulado do contador (.ACC)

valor pré-programado

16637

Publicação 1756-RM003D-PT-P - Junho 2001

Page 69: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-29

Execução da LógicaLadder :

Condição: Ação:

pré-varredura O bit .CD está energizado para prevenir decrementos inválidos durante a primeira varredura do programa.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O bit .CD é desenergizado.A saída da condição da linha é definida como falsa.

examinar bit .CD bit .CD = 0

bit .CD = 1

entrada da condição da linha for verdadeira

valor .ACC renova

sim

não

examinar bit .UNbit .UN = 0

bit .UN = 1

bit .CD está energizado.ACC = .ACC - 1

examinar bit .OV bit .OV = 0

examinar bit .OVbit .OV = 1

bit .OV = 0

bit . OV é desenergizadobit .DN é desenergizado.bit .UN é desenergizado

bit .UN está energizado

examinar .ACC .ACC ≥ .PRE

bit .DN está energizado.

saída da condição da linha é definida como verdadeira

fim

bit .OV = 1

.ACC < .PRE

bit .DN é desenergizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 70: CONTROLADORES LOGIX 5000 -

2-30 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução está disponível no bloco de função como CTUD, consulte a página 2-31.

Um esteira transportadora traz peças para uma zona de buffer. Cada vez que uma peça entra, o limit_switch_1 é habilitado e o counter_1 incrementa em 1. Cada vez que uma peça sai, o limit_switch_2 é habilitado e o counter_1 decrementa em 1. Se houver 100 peças em uma zona de buffer (o counter_1.dn estiver energizado), o conveyor_a liga e interrompe a operação da esteira, impedindo que mais peças sejam trazidas, até que o buffer tenha espaço.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Page 71: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-31

Contagem Crescente/Decrescente (CTUD)

A instrução CTUD faz a contagem crescente em um quando o CUEnable faz a transição de desenergizado para energizado. Esta instrução faz a contagem decrescente em um quando o CDEnable faz a transição de desenergizado para energizado.

Operandos de LógicaLadder :

Esta instrução está disponível em Lógica Ladder como instruções separadas, CTU (página 2-23), CTD (página 2-27), e RES (página 2-35).

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de Função

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

tag do bloco FBD_COUNTER estrutura estrutura CTUD

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é energizado

CUEnable BOOL Habilita a contagem crescente. Quando a entrada passa de desenergizada para energizada, o acumulador faz a contagem crescente em um. o valor inicial é desenergizado

CDEnable BOOL Habilita a contagem decrescente. Quando a entrada passa de desenergizada para energizada, o acumulador faz a contagem decrescente em um.o valor inicial é desenergizado

PRE DINT Valor pré-selecionado do contador. Este é o valor que o valor acumulado deve alcançar antes que o DN seja energizado.válido = qualquer inteiroo valor inicial é 0

Reset BOOL Solicita que o temporizador seja zerado. Quando energizado, o contador zera.o valor inicial é desenergizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 72: CONTROLADORES LOGIX 5000 -

2-32 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Parâmetros de saída

Descrição: Quando habilitadas e o CUEnable está energizado, as instruções CTUD incrementam o contador em um. Quando habilitada e o CDEnable está energizado, a instrução CTUD decrementa o contador em um.

Tanto o parâmetro de entrada CUEnable como o CDEnable podem ser alternados durante a mesma varredura. A instrução executa a contagem crescente antes da decrescente.

Efetuando a contagem crescente

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

ACC DINT Valor acumulado.

CU BOOL Contagem crescente habilitada.

CD BOOL Contagem decrescente habilitada.

DN BOOL Contagem concluída. Energiza quando o valor acumulado for maior ou igual ao pré-selecionado.

OV BOOL Overflow do contador. Indica que o contador excedeu o limite máximo de 2.147.483.647.O contador então reverte para −2.147.483.648 e inicia a contagem decrescente novamente.

UN BOOL Underflow do contador. Indica que o contador excedeu o limite inferior de −2.147.483.648.O contador reverte para 2.147.483.647 e indica a contagem decrescente novamente.

CUEnable

bit de contagem crescente (CU)

bit executado de contagem crescente (DN)

valor acumulado do contador (ACC)

valor pré-programado

16636

Publicação 1756-RM003D-PT-P - Junho 2001

Page 73: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-33

Efetuando a contagem decrescente

Quando desabilitada, a instrução CTUD retém seu valor acumulado. Energize o parâmetro de entrada Reset para resetar a instrução.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder :

Esta instrução está disponível na Lógica Ladder como três instruções separadas, CTU (página 2-23), CTD (página 2-27) e RES (página 2-35).

Execução do Bloco deFunção:

CDEnable

bit de contagem decrescente (CD)

bit executado de contagem decrescente (DN)

valor acumulado do contador (ACC)

valor pré-programado

16637

Condição: Ação:

pré-varredura Não requer inicialização.

primeira varredura da instrução o CUEnablen-1 e o CDEnablen-1 estão energizados.

primeira operação da instrução o CUEnablen-1 e o CDEnablen-1 estão energizados.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado Em uma transição de desenergizado para energizado de EnableIn, a instrução energiza CUEnablen-1 e CDEnablen-1.A instrução é executada.EnableOut é energizado.

reset Quando energizada, a instrução desenergiza CUEnablen-1, CDEnablen-1, CU, CD, DN, OV e UN e define ACC = zero.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 74: CONTROLADORES LOGIX 5000 -

2-34 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemplo do Bloco deFunção:

Quando limit_switch1 vai de desenergizado para energizado, o CUEnable é energizado para uma varredura e a instrução CTUD incrementa o valor ACC em 1. Quando ACC ≥ PRE, o parâmetro DN é energizado, o que habilita a instrução do bloco de função seguindo a instrução CTUD.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 75: CONTROLADORES LOGIX 5000 -

Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-35

Reset (RES)

A instrução RES reseta uma estrutura de TEMPORIZADOR, CONTADOR ou CONTROLE .

Operandos de LógicaLadder :

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: Quando habilitada, a instrução RES desenergiza esses elementos:

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

estrutura TIMERCONTROLCOUNTER

tag estrutura para reset

Ao usar a instrução RES para um: A instrução desenergiza:

TIMER valor .ACCbits de status de controle

COUNTER valor .ACCbits de status de controle

CONTROL valor .POSbits de status de controle

ATENÇÃO

!Como a instrução RES desenergiza o valor .ACC, o bit .DN e o bit .TT, não use a instrução RES para resetar um temporizador TOF.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
RES
Page 76: CONTROLADORES LOGIX 5000 -

2-36 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Execução de LógicaLadder :

Exemplo de LógicaLadder :

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A instrução RES reseta a estrutura especificada.A saída da condição da linha está definida como verdadeira.

Exemplo: Descrição:

Quando habilitado, resete o timer_3.

Quando habilitado, resete o counter_1.

Quando habilitado, resete o control_1.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 77: CONTROLADORES LOGIX 5000 -

Capítulo 3

Instruções de Entrada/Saída(MSG, GSV, SSV)

Introdução As instruções de entrada/saída realizam a leitura ou escrevem do/para o controlador ou um bloco de dados de/para outro módulo em outra rede.

Se você quiser: Use esta instrução: Consulte página:

enviar dados de/para outro módulo MSG 3-2

obter informações de status do controlador

GSV 3-28

definir informações de status do controlador

SSV 3-28

1 Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Page 78: CONTROLADORES LOGIX 5000 -

3-2 Instruções de Entrada/Saída (MSG, GSV, SSV)

Mensagem (MSG)

A instrução MSG realiza a leitura ou escreve de forma assíncrona em um bloco de dados para outro módulo em uma rede.

Operandos de LógicaLadder a Relé:

Estrutura:

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando: Tipo: Formato: Descrição:

Controle de mensagem

MESSAGE tag estrutura da mensagem

Mnemônico: Tipo de Dados:

Descrição:

.FLAGS INT O membro .FLAGS fornece acesso aos membros de status (bits) em uma palavra de 16 bits.

Este bit:

Corresponde a este membro:

2 .EW

4 .ER

5 .DN

6 .ST

7 .EN

8 .TO

9 .EN_CC

Importante: Enquanto uma MSG está habilitada, o reset dos bits de status MSG pode romper a comunicação.

.ERR INT Se o bit .ER for energizado, a palavra de código de erro identifica os códigos de erro para a instrução MSG.

.EXERR INT A palavra de código de erro estendido especifica as informações de código de erro adicionais para alguns códigos de erro.

.REQ_LEN INT O comprimento requisitado especifica quantas palavras a instrução de mensagem tentará transferir.

.DN_LEN INT O comprimento executado identifica quantas palavras realmente foram transferidas.

.EW BOOL O bit de espera habilitado está energizado quando o controlador detecta que um pedido de mensagem entrou na fila. O controlador reseta o bit.EW quando o bit .ST estiver energizado.

.ER BOOL O bit de erro é energizado quando o controlador detecta uma falha na transferência. O bit .ER é resetado na próxima vez que a entrada da condição da linha passar de falsa para verdadeira.

.DN BOOL O bit executado é energizado quando o último pacote de mensagens for transferido com sucesso. O bit .DN é resetado na próxima vez que a entrada da condição da linha passar de falsa para verdadeira.

.ST BOOL O bit de partida é energizado quando o controlador começar a executar a instrução MSG. O bit .ST é resetado quando o bit .DN ou o bit .ER for energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Thaynara
Highlight
Thaynara
Highlight
Thaynara
Highlight
Thaynara
Sticky Note
MSG
Page 79: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-3

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição A instrução MSG transfere os elementos dos dados. O tamanho de cada elemento depende dos tipos de dados especificados e do tipo de comando de mensagem usado.

.EN BOOL O bit habilitado é energizado quando a entrada da condição da linha se tornar verdadeira e permanecer energizada até que o bit .DN ou .ER for energizado e a entrada da condição da linha se tornar falsa. Se a entrada da condição da linha se tornar falsa, mas os bits .DN e .ER forem desenergizados, o bit .EN permanecerá energizado.

.TO BOOL Se você energizar o bit .TO manualmente, o controlador interrompe o processamento da mensagem e energiza o bit .ER.

.EN_CC BOOL O bit habilitado do cache determina como controlar a conexão MSG. Consulte "Seleção de uma opção de cache:" na página 3-27 As conexões para as instruções MSG que saem da porta serial não são copiadas para o cache, mesmo que o bit .EN_CC seja energizado.

Mnemônico: Tipo de Dados:

Descrição:

ATENÇÃO

!O controlador processa os bits .ST, .EW, .DN e .DR de forma assíncrona para a varredura do programa. Para verificar estes bits em lógica de diagrama ladder, copie as palavras .FLAGS para um tag INT e verifique os bits a partir deste ponto. Caso contrário, problemas de temporização podem invalidar a sua aplicação com possíveis danos ao equipamento e ferimentos pessoais.

conexão com .EN_CC = 1

entrada da condição da linha

bit .EW

conexão com .EN_CC = 0

41382

bit .ST

bit .DN ou .ER

bit .EN

1 2 3 4 5 6 7

Publicação 1756-RM003D-PT-P - Junho 2001

Page 80: CONTROLADORES LOGIX 5000 -

3-4 Instruções de Entrada/Saída (MSG, GSV, SSV)

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Onde: Descrição:

1 entrada da condição da linha for verdadeira.EN está energizado.EW está energizadoa conexão está aberta*

2 a mensagem é enviada.ST está energizado.EW é desenergizado

3 a mensagem foi executada ou apresentou erro e a entrada da condição da linha é falsa.DN ou .ER está energizado.ST é desenergizadoa conexão é fechada (se .EN_CC = 0).EN é desenergizado (porque a entrada da condição da linha é falsa)

4 a entrada da condição da linha é verdadeira e .DN ou .ER foi energizado anteriormente.EN está energizado.EW está energizadoa conexão está aberta*.DN ou .ER é desenergizado

5 a mensagem é enviada.ST está energizado.EW é desenergizado.

6 a mensagem foi executada ou apresentou erro e a entrada da condição da linha ainda é verdadeira.DN ou .ER está energizado.ST é desenergizadoa conexão é fechada (se .EN_CC = 0)

7 a entrada da condição da linha se torna falsa e .DN ou .ER é energizado.EN é desenergizado

*O bit .EW não é energizado se a mensagem não puder ser executada.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 81: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-5

Execução de LógicaLadder a Relé:

Condição: Ação:

entrada da condição da linha for falsa

fim

saída da condição da linha é definida como falsa

examinar bit .ENbit .EN = 1

bit .EN = 0

examinar o bit .EWbit .EW = 1

bit .EW = 0

examinar o bit .STbit .ST = 1

bit .ST = 0

examinar bit .DNbit .DN = 1

bit .DN = 0

examinar bit .DNbit .DN = 1

bit .DN = 0

examinar bit .ERbit .ER = 1

bit .ER = 0

bit .EN é desenergizado

examinar bit .ERbit .ER = 1 bit .ER = 0 comando de

block-transfer caminho válido do módulo

sim não

não

executar pedido de mensagem

bit .EW está energizado

conexão do módulo em funcionamento

não

sim

sim

bit .ER está energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 82: CONTROLADORES LOGIX 5000 -

3-6 Instruções de Entrada/Saída (MSG, GSV, SSV)

Condição: Ação:

entrada da condição da linha for verdadeira

fim

saída da condição da linha é definida como falsa

bit .EN = 0

examinar o bit .EWbit .EW = 1

bit .EW = 0

examinar o bit .STbit .ST = 1

bit .ST = 0

examinar bit .DNbit .DN = 1

bit .DN = 0

examinar bit .ERbit .ER = 1 bit .ER = 0 comando de

block-transfer caminho válido do módulo

sim não

não

bits .EW, .ST, .TO, .DN e .ER são desenergizados bit .EN está energizadoexecutar pedido de mensagem bit .EW está energizado

conexão do módulo em funcionamento

não

sim

sim

bit .ER está energizado

examinar bit .ENbit .EN = 1

examinar o bit .EW

bit .EW = 0

examinar o bit .ST

bit .ST = 0

bits .EW, .ST, .TO, .DN e .ER são desenergizados bit .EN está energizado

bit .EN está energizado

bit .EW = 1

bit .ST = 1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 83: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-7

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Códigos de Erro MSG Os códigos de erro dependem do tipo dos códigos de erro do ControlLogix (CIP) da instrução MSG.

Códigos de erro do ControlLogix (CIP)

Para os códigos de erro do ControlLogix (CIP), o software de programação nem sempre exibe a descrição completa.

Código de erro (hex):

Descrição: Display do software:

0001 Falha de conexão (consulte os códigos de erro estendidos) igual à descrição

0002 Recurso insuficiente igual à descrição

0003 Valor inválido igual à descrição

0004 Erro de sintaxe IOI (consulte os códigos de erro estendidos) igual à descrição

0005 Destino desconhecido, classe não suportada, instância indefinida ou elemento de estrutura indefinida (consulte os códigos de erro estendidos)

igual à descrição

0006 Espaço insuficiente no pacote igual à descrição

0007 Perda de conexão igual à descrição

0008 Serviço não suportado igual à descrição

0009 Erro no segmento de dados ou valor de atributo inválido igual à descrição

000A Erro na lista de atributo igual à descrição

000B Estado já existe igual à descrição

000C Conflito no modelo do objeto igual à descrição

000D Objeto já existe igual à descrição

000E Atributo não configurável igual à descrição

000F Permissão negada igual à descrição

0010 Conflito com o estado do dispositivo igual à descrição

0011 A resposta não será adequada igual à descrição

0012 Fragmento primitivo igual à descrição

0013 Dados de comando insuficientes igual à descrição

0014 Atributo não suportado igual à descrição

0015 Excesso de dados igual à descrição

001A Pedido de ponte muito grande igual à descrição

001B Resposta da ponte muito grande igual à descrição

001C Falta de lista de atributos igual à descrição

001D Lista de atributos inválidos igual à descrição

001E Erro no serviço incorporado igual à descrição

Publicação 1756-RM003D-PT-P - Junho 2001

Page 84: CONTROLADORES LOGIX 5000 -

3-8 Instruções de Entrada/Saída (MSG, GSV, SSV)

Códigos de erros estendidos do ControlLogix

Estes são os códigos de erros estendidos do ControlLogix (CIP). O software não exibe texto para estes códigos de erros. Estes são os códigos de erro estendidos para o código de erro 0001.

001F Falha relacionada à conexão (consulte os códigos de erro estendidos)

igual à descrição

0022 Resposta recebida inválida igual à descrição

0025 Erro de segmento principal igual à descrição

0026 Erro de IOI inválido igual à descrição

0027 Atributo inesperado na lista igual à descrição

0028 Erro na DeviceNet – Identificação de membro inválido igual à descrição

0029 Erro na DeviceNet – membro não configurável igual à descrição

Código de erro (hex):

Descrição: Display do software:

Código de erro estendido (hex):

Descrição:

0100 Conexão em uso

0103 Transporte não suportado

0106 Conflito de Dispositivo de Armazenamento de Configuração

0107 Conexão não encontrada

0108 Tipo de conexão inválida

0109 Tamanho de conexão inválida

0110 Módulo não configurado

0111 EPR não suportado

0114 Módulo errado

0115 Tipo de dispositivo errado

0116 Revisão errada

0118 Formato de configuração inválido

011A Aplicação fora das conexões

0203 Período de espera da conexão

0204 Período de espera de mensagem não conectada

0205 Erro de parâmetro enviado não conectado

0206 Mensagem muito grande

0301 Sem espaço de memória no buffer

0302 Largura de faixa não disponível

0303 Não há disponibilidade de screeners

0305 Correspondência de assinatura

0311 Porta não disponível

0312 Endereço de rede não disponível

0315 Tipo de segmento inválido

0317 Conexão não programada

Código de erro estendido (hex):

Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 85: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-9

Estes são os códigos de erro estendidos para o código de erro 001F.

Estes são os códigos de erro estendidos para os códigos de erro 0004 e 0005.

Códigos de erro do CLP e SLC (.ERR)

Para os códigos de erro do CLP e SLC, o software de programação nem sempre exibe a descrição completa.

Código de erro estendido (hex):

Descrição:

0203 Período de espera da conexão

Código de erro estendido (hex):

Descrição:

0000 status estendido fora da memória

0001 status estendido fora dos exemplos

Código de erro (hex):

Descrição: Display do software:

0010 Comando ilegal ou formato do controlador local Conflito com o estado do dispositivo

0020 Módulo de comunicação não está funcionando erro desconhecido

0030 Nó remoto está faltando, desconectado ou desligado erro desconhecido

0040 Controlador conectado, mas com falha (hardware) erro desconhecido

0050 Número de estação errado erro desconhecido

0060 Função requisitada não está disponível erro desconhecido

0070 Controlador está no modo de Programa erro desconhecido

0080 Arquivo de compatibilidade do controlador não existe erro desconhecido

0090 Nó remoto não consegue comandar o buffer erro desconhecido

00B0 Controlador está descarregando, portanto não pode ser acessado

erro desconhecido

00F0 Erro de PCCC (consulte os códigos de erro estendidos) erro desconhecido

Publicação 1756-RM003D-PT-P - Junho 2001

Page 86: CONTROLADORES LOGIX 5000 -

3-10 Instruções de Entrada/Saída (MSG, GSV, SSV)

Códigos de erro estendiddos do CLP e SLC (.EXERR)

O software não exibe texto para estes códigos de erros. Estes são os códigos de erro estendidos para o código de erro 00F0.

Código de erro estendido (hex):

Descrição:

0001 Controlador converteu incorretamente o endereço

0002 Endereço incompleto

0003 Endereço incorreto

0004 Formato ilegal do endereço – símbolo não encontrado

0005 Formato ilegal do endereço – o símbolo tem o valor 0 ou maior do que o número máximo de caracteres suportados pelo dispositivo

0006 Arquivo de endereço não existe no controlador alvo

0007 Arquivo de destino é muito pequeno para o número de palavras solicitado.

0008 Não consegue completar o pedidoSituação alterada durante operação com vários pacotes

0009 Dados ou arquivo muito grandeMemória não disponível

000A Controlador alvo não consegue colocar as informações requisitadas em pacotes

000B Erro de privilégio; acesso negado

000C Função requisitada não está disponível

000D Pedido redundante

000E Comando não pode ser executado

000F Overflow; overflow do histograma

0010 Sem acesso

0011 Tipo de dados requisitados não corresponde aos dados disponíveis

0012 Parâmetros de comando incorretos

0013 Referência de endereço existe para uma área apagada

0014 Falha na execução do comando por motivo desconhecidoOverflow do histograma do CLP-3

0015 Erro na conversão dos dados

0016 Scanner não está disponível para comunicação com um adaptador de gaveta 1771

0017 Adaptador não está disponível para comunicação com o módulo

0018 Resposta do módulo 1771 não foi válida

0019 Etiqueta duplicada

001A Controlador que armazena a configuração do arquivo ativo – o arquivo está sendo usado

001B Controlador que armazena a configuração do programa ativo – alguém está descarregando dados ou fazendo edição online

001C Arquivo do disco está protegido contra gravação ou não pode ser acessado (somente offline)

001D Arquivo do disco está sendo usado por outra aplicaçãoAtualização não realizada (somente offline)

Código de erro estendido (hex):

Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 87: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-11

Códigos de erro de Block-Transfer

Estes são os códigos de erro específicos para block-transfer no ControlLogix.

Código de erro (hex):

Descrição: Display do software:

00D0 O scanner não recebeu uma resposta de block-transfer do módulo de block-transfer dentro de 3,5 s do pedido

erro desconhecido

00D1 O checksum da resposta de leitura não corresponde ao checksum do conjunto de dados erro desconhecido

00D2 O scanner solicitou uma leitura ou escrita, mas o módulo de block-transfer forneceu uma resposta contrária

erro desconhecido

00D3 O scanner solicitou um comprimento e o módulo de block-transfer respondeu com um comprimento diferente

erro desconhecido

00D6 O scanner recebeu uma resposta do módulo de block-transfer, indicando que o pedido de escrita apresentou falha

erro desconhecido

00EA O scanner não foi configurado para comunicar-se com a gaveta que teria este módulo de block-transfer

erro desconhecido

00EB A ranhura lógica específica não está disponível para o tamanho de gaveta determinado erro desconhecido

00EC No momento, há um pedido de block-transfer em andamento e uma resposta é requerida antes que outro pedido possa ser iniciado

erro desconhecido

00ED O tamanho de pedido de block-transfer não está de acordo com os pedidos de tamanho válidos para block-transfer

erro desconhecido

00EE O tipo de pedido de block-transfer não está de acordo com o BT_READ ou BT_WRITE previsto

erro desconhecido

00EF O scanner não conseguiu encontrar uma ranhura disponível na tabela de block-transfer para acomodar o pedido de block-transfer

erro desconhecido

00F0 O scanner recebeu um pedido para resetar os canais de E/S remota enquanto havia block-transfers em aberto

erro desconhecido

00F3 As filas para block-transfers remotos estão cheias erro desconhecido

00F5 Nenhum canal de comunicação está configurado para a ranhura ou gaveta solicitada erro desconhecido

00F6 Nenhum canal de comunicação está configurado para E/S remota erro desconhecido

00F7 O período de espera de block-transfer configurado na instrução encerrou a temporização antes da conclusão

erro desconhecido

00F8 Erro no protocolo de block-transfer – block-transfer não solicitado erro desconhecido

00F9 Os dados de block-transfer foram perdidos devido a um canal de comunicação em más condições

erro desconhecido

00FA O módulo de block-transfer solicitou um comprimento diferente daquele associado à instrução de block-transfer

erro desconhecido

00FB O checksum dos dados de leitura do block-transfer estava errado erro desconhecido

00FC Houve uma transferência inválida dos dados de escrita de block-transfer entre o adaptador e o módulo de block-transfer

erro desconhecido

00FD O tamanho do block-transfer mais o tamanho do índice na tabela de dados de block-transfer era maior do que o tamanho do arquivo da tabela de dados de block-transfer

erro desconhecido

Publicação 1756-RM003D-PT-P - Junho 2001

Page 88: CONTROLADORES LOGIX 5000 -

3-12 Instruções de Entrada/Saída (MSG, GSV, SSV)

Códigos de erro do Logix5550

Estes são os códigos de erro do Logix5550.

Códigos de erros estendidos do Logix5550

Estes são os códigos de erros estendidos do Logix5550. O software não exibe texto para estes códigos de erros. Estes são os códigos de erro estendidos para o código de erro 00FF.

Código de erro (hex):

Descrição: Display do software:

00D0 Instância de mapa indefinido erro desconhecido

00D1 Módulo não está no estado de operação erro desconhecido

00FB Porta de mensagem não suportada erro desconhecido

00FC Tipo de dados não suportados pela mensagem erro desconhecido

00FD Mensagem não inicializada erro desconhecido

00FE Período de espera de mensagem erro desconhecido

00FF Erro geral (consulte os códigos de erro estendidos) erro desconhecido

Código de erro estendido (hex):

Descrição:

2001 Excesso de IOI

2002 Valor deficiente para o parâmetro

2018 Sinalização rejeitada

201B Tamanho muito pequeno

201C Tamanho inválido

2100 Falha de privilégio

2101 Posição da chave seletora de modo inválida

2102 Senha inválida

2103 Sem emissão de senha

2104 Endereço fora da faixa

2105 Endereço e quantidade estão fora da faixa

2106 Dados em uso

2107 Tipo é inválido ou não é suportado

2108 Controlador no modo de carga ou descarga

2109 Tentativa de alterar o número das dimensões da matriz

210A Nome inválido do símbolo

210B Símbolo não existe

210E Busca apresentou falha

210F Tarefa não pode ser iniciada

2110 Não há condições de escrita (gravação)

2111 Não há condições de leitura

2112 Rotina compartilhada que não pode ser editada

2113 Controlador no modo de falha

2114 Modo de operação inibido

Código de erro estendido (hex):

Descrição:

P

ublicação 1756-RM003D-PT-P - Junho 2001
Page 89: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-13

Especificação dos Detalhes de Configuração (Guia Configuration)

Depois de inserir a instrução MSG e especificar a estrutura MESSAGE, use a janela Message Configuration no software de programação para especificar os detalhes da mensagem.

Os detalhes de configuração dependem do tipo de mensagem selecionado.

Clique aqui para configurar a instrução MSG

Se o dispositivo alvo for um: Selecione um dos seguintes tipos de mensagens:

Consulte página:

Dispositivo ControlLogix ou módulo de E/S 1756

leitura da tabela de dados CIP 3-14

escrita da tabela de dados CIP

CIP genérico

controlador CLP-5 leitura de tipo para CLP-5 3-16

escrita de tipo para CLP-5

leitura da faixa de palavras do CLP-5

escrita da faixa de palavras do CLP-5

controlador SLC leitura de tipo para SLC 3-17

leitura de tipo para SLC

Módulo de block-transfer em uma rede de E/S Remota Universal

leitura de block-transfer 3-18

escrita de block-transfer

Controlador CLP-3 leitura de tipo para CLP-3 3-19

escrita de tipo para CLP-3

leitura da faixa de palavra do CLP-3

escrita da faixa de palavra do CLP-3

Controlador CLP-2 leitura sem proteção do CLP-2 3-20

escrita sem proteção do CLP-2

Publicação 1756-RM003D-PT-P - Junho 2001

Page 90: CONTROLADORES LOGIX 5000 -

3-14 Instruções de Entrada/Saída (MSG, GSV, SSV)

Voce deve especificar essa informação de configuração:

Se você especificar um tag na matriz do Logix5550 como Source ou Destination, especifique somente o nome do tag da matriz. Não inclua entre colchetes ou subscrito de posição.

Especificação de Mensagens CIP

Os tipos de mensagem CIP são determinados para transferir dados de/para outros dispositivos do ControlLogix, como por exemplo, enviar uma mensagem de um controlador Logix5550 para outro.

No campo: Especifique:

Source Element/Tag Se você selecionar um tipo de mensagem de leitura, o Source Element é o endereço de dados que você realizará a leitura no dispositivo alvo. Use a sintaxe de endereçamento do dispositivo alvo.Se você selecionar um tipo de mensagem de escrita, o Source Tag será o tag do dado no controlador Logix5550 que você enviará para o dispositivo alvo.

Número de Elementos O número de elementos que você lê/grava depende do tipo de dado que está sendo usado. Um elemento se refere a um "fragmento" dos dados relacionados. Por exemplo, o tag temporizador1 é um elemento composto de uma estrutura de controle do temporizador.

Destination Element/Tag Se você selecionar um tipo de mensagem de leitura, o Destination Tag será o tag no controlador Logix5550 onde você armazenará os dados lidos do dispositivo alvo.Se você selecionar o tipo de mensagem de escrita, o Destination Element é o endereço do local no dispositivo alvo onde você escreverá os dados.

Selecione este comando: Se você quiser:

CIP Data Table Read ler os dados a partir de outro controlador.Os tipos Source e Destination devem corresponder.

CIP Data Table Write escrever os dados em outro controlador.Os tipos Source e Destination devem corresponder.

Generic CIP configurar uma mensagem customizada para enviar os dados de configuração para um módulo de E/S.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 91: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-15

Uso de mensagens CIP genéricas para resetar os módulos de E/S

Especifique esta informação para criar uma mensagem customizada, usando o tipo de mensagem Generic CIP.

Se você quiser: No campo: Insira:Realizar um teste de pulso em um módulo de saída digital

Service Code(Código de Serviço)

4c

Object Type (Tipo de Objeto)

1e

Object ID (Identificação do Objeto)

1

Object Attribute (Atributo do Objeto)

deixe em branco

Source tag_name do tipo INT [5]Esta matriz contém:tag_name[0] máscara de bit dos pontos para teste (teste

somente um ponto de cada vez)tag_name[1] reservado, coloque 0 tag_name[2] largura de pulso (centenas de µs, geralmente 20)tag_name[3] atraso para cruzamento zero para o ControlLogix I/O

(centenas de µs, geralmente 40)tag_name[4] verifique o atraso

Número de Elementos 10Destination deixe em branco

Resetar os fusíveis eletrônicos em um módulo de saída digital

Service Code (Código de Serviço)

4d

Object Type (Tipo de Objeto)

1e

Object Attribute (Atributo do Objeto)

deixe em branco

Object ID (Identificação do Objeto)

1

Source tag_name do tipo DINTEste tag representa uma máscara de bit dos pontos para resetar os fusíveis para energizado.

Número de Elementos 4Destination deixe em branco

Resete o diagnóstico de retentivo em um módulo de E/S digital

Service Code(Código de Serviço)

4b

Object Type (Tipo de Objeto)

para um módulo de entrada

1d

para um módulo de saída

1e

Object Attribute (Atributo do Objeto)

deixe em branco

Object ID (Identificação do Objeto)

1

Source tag_name do tipo DINTEsse tag representa uma máscara de bit dos pontos para resetar o diagnóstico para energizado.

Número de Elementos 4Destination deixe em branco

Publicação 1756-RM003D-PT-P - Junho 2001

Page 92: CONTROLADORES LOGIX 5000 -

3-16 Instruções de Entrada/Saída (MSG, GSV, SSV)

Especificação das mensagens do CLP-5

Os tipos de mensagem do CLP-5 são determinados para os controladores CLP-5.

Os comandos Typed Read e Typed Write também funcionam com os controladores SLC 5/03 (OS303 e acima), controladores SLC 5/04 (OS402 e acima) e os controladores SLC 5/05.

Resetar um status retentivo em um módulo analógico

Service Code (Código de Serviço)

4b

Object Type (Tipo de Objeto)

a

Object Attribute (Atributo do Objeto)

insira o código para o atributo desejado

Object ID (Identificação do Objeto)

0

Source deixe em brancoNúmero de Elementos 0Destination deixe em branco

Se você quiser: No campo: Insira:

Selecione este comando: Se você quiser:

Leitura do Tipo para CLP-5 leitura de inteiros ou dados do tipo REAL.Para os inteiros, este comando lê os inteiros de 16 bits do controlador CLP-5 (tipos de arquivo S, B e N), armazena-os nas matrizes de dados SINT, INT ou DINT no controlador Logix5550 e mantém a integridade dos dados.Este comando também lê os dados de ponto flutuante do controlador CLP-5 (tipo de arquivo F) e armazena-os em um tag com tipo de dados REAL em um controlador Logix5550.

Escrita de tipo para CLP-5 escrita de inteiros ou dados do tipo REAL.Este comando grava os dados SINT ou INT para um controlador CLP-5 (tipos de arquivo S, B e N) e mantém a integridade dos dados. Você pode gravar os dados DINT desde que os dados se adequem a um tipo de dados INT (−32,768 ≥ dados ≤ 32,767).Este comando também grava os dados do tipo REAL do controlador Logix5550 para um arquivo de ponto flutuante do CLP-5 (tipo de arquivo F).

Leitura da faixa de palavras do CLP-5

realiza a leitura de uma faixa contínua de palavras de 16 bits na memória do CLP-5, independente do tipo de dados.Este comando começa no endereço especificado como Source Element e realiza uma leitura seqüencial das palavras de 16 bits solicitadas.Os dados do Source Element (Elemento da Fonte) são armazenados, iniciando no endereço especificado como Destination Tag (tag de Destino).

Escrita da Faixa de Palavras do CLP-5

escreve (grava) uma faixa contínua de palavras de 16 bits da memória do Logix5550, independente do tipo de dados para a memória do CLP-5.Este comando começa no endereço especificado como Source Tag (Tag da Fonte) e realiza uma leitura seqüencial das palavras de 16 bits solicitadas.Os dados de Source Tag são armazenados, iniciando no endereço especificado como Destination Element (Elemento do Destino) no controlador CLP-5.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 93: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-17

Os diagramas a seguir mostram como os comandos de faixa de palavra e de tipo são diferentes. O exemplo usa os comandos de leitura de um controlador CLP-5 para um controlador Logix5550.

Especificação de Mensagens do SLC

Os tipos de mensagem do SLC são elaboradas para os controladores SLC e MicroLogix1000.

O tipo de tag do Logix5550 deve estar de acordo com o tipo de dado do SLC. Você só pode transferir dados DINT (que são mapeados para o tipo de dados binários do SLC) ou dados INT (que são mapeados para o tipo de dados inteiros do SLC).

palavras de 16 bits no controlador CLP-5

palavras de 32 bits no controlador Logix5550

Os comandos de tipo mantêm o valor e a estrutura dos dados.

1

2

3

4

Comando de leitura de tipo

1

2

3

4

palavras de 16 bits no controlador CLP-5

palavras de 32 bits no controlador Logix5550

Os comandos de faixa de palavra preenchem o tag de destino de forma contínua. O valor e a estrutura dos dados são modificados dependendo do tipo de dado de destino.

1

2

3

4

Comando de leitura da faixa de palavra

1

3

2

4

Selecione este comando:

Se você quiser:

leitura de tipo para SLC realizar a leitura de dados INT ou DINT.

leitura de tipo para SLC escrever dados do tipo INT ou DINT.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 94: CONTROLADORES LOGIX 5000 -

3-18 Instruções de Entrada/Saída (MSG, GSV, SSV)

Especificação das mensagens de block-transfer

Os tipos de mensagem de block-transfer são usados para comunicação com módulos de block-transfer em uma rede de E/S Remota Universal.

Os tags de fonte (para BTW) e destino (para BTR) devem ser grandes para aceitar os dados solicitados, exceto para as estruturas MESSAGE, AXIS e MODULE.

Além disso, você deve especificar quantos inteiros de 16 bits (INT) serão enviados ou recebidos. É possível especificar de 0 a 64 inteiros. Se você especificar 0 para uma mensagem BTR, o módulo de block-transfer determinará quantos inteiros de 16 bits serão enviados. Se você especificar 0 para uma mensagem BTW, o controlador enviará 64 inteiros.

O módulo de E/S que receberá o block-transfer deverá estar identificado no organizador do controlador.

Ao selecionar um tipo de mensagem block-transfer, você não seleciona um método de comunicação na guia Configuration. As seleções CIP e DH+ são acinzentadas.

Selecione este comando:

Se você quiser:

Leitura de Block-Transfer ler dados de um módulo de block-transfer.Este tipo de mensagem substitui a instrução BTR.

Escrita de Block-Transfer escrever dados em um módulo de block-transfer.Este tipo de mensagem substitui a instrução BTW.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 95: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-19

Especificação das mensagens do CLP-3

Os tipos de mensagem do CLP-3 são determinados para os controladores CLP-3.

Selecione este comando: Se você quiser:

Leitura de Tipo para CLP-3 leitura de inteiros ou dados do tipo REAL.Para os inteiros, este comando lê os inteiros de 16 bits do controlador CLP-3, armazena-os nas matrizes de dados SINT, INT ou DINT no controlador Logix5550 e mantém a integridade dos dados.Este comando também lê os dados de ponto flutuante do controlador CLP-3 e armazena-os em um tag com tipo de dados REAL em um controlador Logix5550.

Escrita de Tipo para CLP-3 escrita de inteiros ou dados do tipo REAL.Este comando grava os dados SINT ou INT em um arquivo de inteiros do controlador CLP-3 e mantém a integridade dos dados. Você pode gravar os dados DINT desde que os dados se adequem a um tipo de dados INT (−32,768 ≥ dados ≤ 32,767).Este comando também grava os dados do tipo REAL do controlador Logix5550 para um arquivo de ponto flutuante do CLP-3.

Leitura da Faixa de Palavra do CLP-3

realiza a leitura de uma faixa contínua de palavras de 16 bits na memória do CLP-3, independente do tipo de dados.Este comando começa no endereço especificado como Source Element e realiza uma leitura seqüencial das palavras de 16 bits solicitadas.Os dados do Source Element (Elemento da Fonte) são armazenados, iniciando no endereço especificado como Destination Tag (tag de Destino).

Escrita da Faixa de Palavra do CLP-3

escreve (grava) uma faixa contínua de palavras de 16 bits na memória do Logix5550, independente do tipo de dado para a memória do CLP-3.Este comando começa no endereço especificado como Source Tag (Tag da Fonte) e realiza uma leitura seqüencial das palavras de 16 bits solicitadas.Os dados de Source Tag são armazenados, iniciando no endereço especificado como Destination Element (Elemento do Destino) no controlador CLP-3.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 96: CONTROLADORES LOGIX 5000 -

3-20 Instruções de Entrada/Saída (MSG, GSV, SSV)

Os diagramas a seguir mostram como os comandos de faixa de palavra e de tipo são diferentes. O exemplo usa os comandos de leitura de um controlador CLP-3 para um controlador Logix5550.

Especificação das mensagens do CLP-2

Os tipos de mensagem do CLP-2 são determinados para os controladores CLP-2.

A transferência de mensagem usa palavras de 16 bits; portanto, certifique-se de que o tag do Logix5550 armazena os dados transferidos de forma adequada (geralmente como uma matriz INT).

palavras de 16 bits no controlador CLP-3

palavras de 32 bits no controlador Logix5550

Os comandos de tipo mantêm o valor e a estrutura dos dados.

1

2

3

4

Comando de leitura de tipo

1

2

3

4

palavras de 16 bits no controlador CLP-3

palavras de 32 bits no controlador Logix5550

Os comandos de faixa de palavra preenchem o tag de destino de forma contínua. O valor e a estrutura dos dados são modificados dependendo do tipo de dado de destino.

1

2

3

4

Comando de leitura da faixa de palavra

1

3

2

4

Selecione este comando: Se você quiser:

Leitura sem Proteção do CLP-2 realizar a leitura de palavras de 16 bits de qualquer área da tabela de dados do CLP-2 ou do arquivo de compatibilidade do CLP-2 de outro controlador.

Escrita sem Proteção do CLP-2 escrever (gravar) palavras de 16 bits para qualquer área da tabela de dados do CLP-2 ou do arquivo de compatibilidade do CLP-2 de outro controlador.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 97: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-21

Exemplos de Configuração MSG

Os exemplos a seguir mostram os tags de fonte e destino do exemplo e os elementos para as diferentes combinações de controladores.

Para as instruções MSG geradas em um controlador Logix5550 e gravadas em outro controlador:

Para as instruções MSG geradas em um controlador Logix5550 e lidas em outro controlador:

Percurso da Mensagem: Exemplo de Fonte e Destino:

Logix5550 → Logix5550 tag da fonte array_1

tag de destino array_2

É possível usar um tag com alias/símbolo para o tag fonte (no controlador Logix5550 de origem). Se você quiser começar com um offset dentro de uma matriz, use um alias/símbolo para indicar o offset.Você não pode usar um alias/símbolo para o tag de destino. O destino deve ser um tag de base.

Logix5550 → CLP-5Logix5550 → SLC

tag da fonte array_1

elemento de destino N7:10

É possível usar um tag com alias/símbolo para o tag fonte (no controlador Logix5550 de origem). Se você quiser começar com um offset dentro de uma matriz, use um alias/símbolo para indicar o offset.

Logix5550 → CLP-2 tag da fonte array_1

elemento de destino 010

Percurso da Mensagem: Exemplo de Fonte e Destino:

Logix5550 → Logix5550 tag da fonte array_1

tag de destino array_2

Você não pode usar um tag com alias/símbolo para o tag de fonte. A fonte deve ser um tag de base.É possível usar um tag com alias/símbolo para o tag destino (no controlador Logix5550 de origem). Se você quiser começar com um offset dentro de uma matriz, use um alias/símbolo para indicar o offset.

Logix5550 → CLP-5Logix5550 → SLC

elemento fonte N7:10

tag de destino array_1

É possível usar um tag com alias/símbolo para o tag destino (no controlador Logix5550 de origem). Se você quiser começar com um offset dentro de uma matriz, use um alias/símbolo para indicar o offset.

Logix5550 → CLP-2 elemento fonte 010

tag de destino array_1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 98: CONTROLADORES LOGIX 5000 -

3-22 Instruções de Entrada/Saída (MSG, GSV, SSV)

Especificações dos Detalhes de Comunicação (Guia Communication)

Ao configurar uma instrução MSG, você especifica estes detalhes na guia Communication.

Especificação de um percurso de conexão

O percurso de conexão descreve o caminho que a mensagem transcorrerá para chegar ao módulo ou controlador destino. O percurso usa números, onde os pares de números o deslocam de um módulo para outro através de uma placa de fundo do ControlLogix ou da rede de comunicação.

Use o fluxograma abaixo para determinar se você deve inserir um percurso.

A. Acrescente o módulo à árvore de Configuração de E/S do controlador.

B. Na guia Communication, da tela Message Configuration, clique em Browse e selecione o módulo.

Especifique um percurso para o módulo 1756-DHRIO que esteja na mesma rede DH+ do controlador. Consulte o procedimento seguinte.

Especifique um percurso para o controlador ou módulo. Consulte o procedimento seguinte.

sim

não

sim

não

A mensagem para um módulo de block-transfer está em uma rede de E/S Remota Universal.

A mensagem para um controlador CLP-2, 3, 5 ou SLC está em uma rede DH+?

Publicação 1756-RM003D-PT-P - Junho 2001

Page 99: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-23

Para especificar um percurso:

1. Na caixa de texto Path, digite o seguinte, separando cada número com uma vírgula [,]:

a. Especifique a porta pela qual a mensagem sai. (Para o primeiro número no percurso, geralmente é o “1” que designa a porta da placa de fundo do controlador Logix5550 que está enviando a mensagem.):

b. Especifique o próximo módulo:

2. Repita a Etapa 1. até que você especifique o módulo ou controlador destino.

NOTA Se a árvore de Configuração de E/S contém um módulo ou controlador destino ao invés de especificar um percurso, clique em Browse para selecionar o dispositivo.

Para a: Especifique:

placa de fundo de qualquer módulo ou controlador 1756 1

a porta DF1 de um controlador 1756-L1 2

a porta ControlNet de um módulo 1756-CNB

a porta Ethernet de um módulo 1756-ENET

a porta DH+ em um canal A de um módulo 1756-DHRIO

a porta DH+ em um canal B de um módulo 1756-DHRIO 3

Para um módulo em uma: Especifique o:

placa de fundo do chassi de E/S ControlLogix

número da ranhura

rede DF1 endereço da estação (0-254)

rede ControlNet número do nó (1-99 decimal)

rede DH+ número do nó (1-77 octal)

rede Ethernet Pode-se especificar o módulo na rede Ethernet usando qualquer um dos seguintes formatos:

endereço IP (ex.: 130.130.130.5)endereço IP:Porta (ex.: 130.130.130.5:24)nome DNS (ex.: tanks)nome DNS:Porta (ex.: tanks:24)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 100: CONTROLADORES LOGIX 5000 -

3-24 Instruções de Entrada/Saída (MSG, GSV, SSV)

As páginas a seguir mostram exemplos de percursos de conexão:

• em ControlNet, página 3-24

• em Ethernet, página 3-25

• para uma mensagem DH+, página 3-25

Os dois exemplos a seguir mostram os percursos de conexão entre os controladores Logix5550 nas redes ControlNet e Ethernet. O controlador que envia a mensagem está no chassi local e o que recebe a mensagem localiza-se no chassi remoto.

EXEMPLO Especificação de um caminho pela ControlNet

42042

chassi local ControlNet nó 49 na ranhura 0

chassi remoto ControlNet nó 42 na ranhura 0

rede ControlNet

Percurso: 1, 0, 2, 42, 1, 3

Onde: Indica:

1 a porta da placa de fundo do controlador Logix5550 no chassi local

0 o número da ranhura do módulo 1756-CNB no chassi local

2 a porta da ControlNet do módulo 1756-CNB na ranhura do chassi local

42 o nó da ControlNet do módulo 1756-CNB na ranhura do chassi remoto

1 a porta da placa de fundo do módulo 1756-CNB no chassi remoto

3 o número da ranhura do controlador no chassi remoto

Publicação 1756-RM003D-PT-P - Junho 2001

Page 101: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-25

O exemplo a seguir mostra o percurso de conexão usado em uma mensagem para um controlador CLP-5. Neste caso, o percurso termina no módulo 1756-DHRIO que está na mesma rede DH+ do controlador CLP-5.

EXEMPLO Especificação de um caminho pela Ethernet

EXEMPLO Especificação de um caminho para uma mensagem DH+

42043

chassi local módulo Ethernet na ranhura 1

chassi remoto módulo Ethernet na ranhura 2 endereço IP 127.127.127.12

rede Ethernet

Percurso: 1, 1, 2, 127.127.127.12, 1, 3

Onde: Indica:

1 a porta da placa de fundo do controlador Logix5550 no chassi local

1 o número da ranhura do módulo 1756-ENET no chassi local

2 a porta da Ethernet do módulo 1756-ENET no chassi local

127.127.127.12 o endereço IP do módulo 1756-ENET no chassi remoto

1 a porta da placa de fundo do módulo 1756-ENET no chassi remoto

3 o número da ranhura do controlador no chassi remoto

42044

chassi local DH+ = nó 37

chassi 1771 com controlador CLP-5 DH+ = nó 24

rede DH+

Percurso: 1, 1

Onde: Indica:

1 a porta da placa de fundo do controlador Logix5550 no chassi local

1 o número da ranhura do módulo 1756-DHRIO no chassi local

Publicação 1756-RM003D-PT-P - Junho 2001

Page 102: CONTROLADORES LOGIX 5000 -

3-26 Instruções de Entrada/Saída (MSG, GSV, SSV)

Especificação de um método de comunicação:

Use a tabela a seguir para selecionar um método de comunicação para a mensagem.

NOTA Para um tipo de mensagem de block-transfer ou CIP genérica, você não seleciona um método de comunicação. (A seção não está disponível.)

Se o dispositivo destino for um:

Então selecione: E especifique:

controlador ControlLogix CIP outras especificações não são necessárias

controlador ControlNet CLP-5

controlador CLP-5 DH+ Canal: Canal A ou B do módulo 1756-DHRIO que está conectado à rede DH+

controlador SLC Rede Fonte: IIdentificação do rede atribuída à placa de fundo do controlador na tabela de roteamento do módulo 1756-DHRIO. (O nó fonte na tabela de roteamento corresponde automaticamente ao número da ranhura do controlador.)

controlador CLP-3 Rede Destino: Identificação da rede DH+ remota onde o dispositivo alvo reside

controlador CLP-2 Nó Destino: Endereço da estação do dispositivo alvo

Se houver somente uma rede DH+ e você não usou o software Gateway para configurar o módulo DH/RIO para as redes remotas, especifique 0 tanto para a Rede Fonte quanto para a Destino.

Aplicação em uma estação de trabalho que está recebendo uma mensagem não requisitada conectada à rede Ethernet ou ControlNet através de RSLinx

CIP com Identificação de Fonte

(Isto permite que a aplicação receba dados de um controlador.)

Rede Fonte: Identificação da rede dos dados (0-65535) fornecidos pela aplicação para RSLinx

Rede Destino: Identificação de rede virtual configurado no RSLinx (0-65535)

Nó Destino: Identificação de destino (0-77 octal) fornecida pela aplicação para RSLinx

O número da ranhura do controlador Logix5550 é usado como Nó Fonte.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 103: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-27

Seleção de uma opção de cache:

Alguns tipos de mensagens usam uma conexão para enviar ou receber dados. Alguns possibilitam duas opções: deixar a conexão aberta (cache) ou fechar a conexão quando a transmissão da mensagem terminar. A tabela a seguir mostra quais mensagens usam uma conexão e se você pode ou não copiar no cache a conexão:

Use a tabela a seguir para selecionar uma opção de cache para uma mensagem.

Esse tipo de mensagem: Usando esse método de comunicação:

Usa uma conexão:

Que você pode colocar no cache:

leitura ou escrita da tabela de dados CIP

CIP � �

CLP2, CLP3, CLP5 ou SLC (todos os tipos)

CIP

CIP com Identificação de Fonte

DH+ �

CIP genérico N/A

leitura ou escrita em block-transfer

N/A � �

Se a mensagem executar:

Então: Porque:

repetidamente Selecione a caixa de verificação Cache Connections

Isto manterá a conexão aberta e otimizará o tempo de execução. A abertura da conexão cada vez que a mensagem executar, aumenta o tempo de execução.

não frequentemente

Retire a seleção da caixa de verificação Cache Connections

Isto fechará a conexão na conclusão, que liberará aquela conexão para outros usos.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 104: CONTROLADORES LOGIX 5000 -

3-28 Instruções de Entrada/Saída (MSG, GSV, SSV)

Obtenção do Valor do Sistema (GSV) e Definição do Valor do Sistema (SSV)

As instruções GSV/SSV obtêm e definem os dados do sistema do controlador que estão armazenados nos objetos.

Operandos de LógicaLadder a Relé:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: As instruções GSV/SSV obtêm e definem os dados do sistema do controlador que estão armazenados nos objetos. O controlador armazena os dados do sistema nos objetos. Não há arquivo de status, como no controlador CLP-5.

Quando habilitada, a instrução GSV recupera a informação específica e a coloca no destino. Quando habilitada, a instrução SSV define o atributo especificado com os dados da fonte.

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando: Tipo: Formato: Descrição:

Nome da classe nome nome do objeto

Nome da instância nome nome do objeto específico, quando o objeto requisitar um nome

Nome do Atributo nome atributo do objetoo tipo de dados depende do atributo que você selecionou

Destination (GSV) SINTINTDINTREAL

tag destino para os dados de atributo

Source (SSV) SINTINTDINTREAL

tag tag que contém os dados que você quer copiar para o atributo

Publicação 1756-RM003D-PT-P - Junho 2001

Page 105: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-29

Ao inserir uma instrução GSV/SSV, o software de programação exibe as classes válidas de objeto, os nomes do objeto e os nomes de atributo para cada instrução. Para a instrução GSV, você pode obter valores para todos os atributos disponíveis. Para a instrução SSV, o software exibe somente aqueles atributos, cuja configuração é permitida.

Se o tamanho da Fonte ou Destino for muito pequeno, a instrução não executa e uma falha de advertência é registrada. A seção a seguir, Objetos GSV/SSV, define os atributos de cada objeto e seus tipos de dados associados. Por exemplo, o atributo MajorFaultRecord (Registro de Falha Grave) do objeto Programa requer um tipo de dado DINT[11].

Flags de Status Aritmético: não afetados

Condições de Falha:

Execução de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

ATENÇÃO

!Use as instruções GSV/SSV cuidadosamente. As alterações realizadas nos objetos podem causar operação inesperada do controlador ou danos pessoais.

Uma falha de advertência ocorrerá se: Tipo de falha: Código de falha:

endereço de objeto inválido 4 5

objeto especificado que não suporta GSV/SSV 4 6

atributo inválido 4 6

não se forneceu informações suficientes para uma instrução SSV

4 6

o destino GSV não era grande o suficiente para suportar os dados requisitados.

4 7

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

Obtenha ou configure o valor especificado.A saída da condição da linha está definida como verdadeira.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 106: CONTROLADORES LOGIX 5000 -

3-30 Instruções de Entrada/Saída (MSG, GSV, SSV)

Objetos GSV/SSV Ao inserir uma instrução GSV/SSV, você especifica o objeto e atributo que você acessará. Em alguns casos, haverá mais do que um exemplo do mesmo tipo de objeto, de forma que você também possa especificar o nome do objeto. Por exemplo, a sua aplicação pode ter várias tarefas. Cada tarefa tem o seu próprio objeto TASK (TAREFA) que é acessado pelo nome da tarefa.

É possível acessar estes objetos:

ATENÇÃO

!Para a instrução GSV, somente o tamanho especificado do dado é copiado para o destino. Por exemplo, se o atributo for especificado como um SINT e o destino é um DINT, somente os 8 bits menos significativos do destino DINT são atualizados, sendo que os 24 bits restantes permanecem inalterados.

Para informações sobre este objeto:

Consulte página:

AXIS 3-31

CONTROLLER 3-39

CONTROLLERDEVICE 3-39

CST 3-41

DF1 3-42

FAULTLOG 3-45

MESSAGE 3-46

MODULE 3-48

MOTIONGROUP 3-49

PROGRAM 3-50

ROUTINE 3-51

SERIALPORT 3-52

TASK 3-54

WALLCLOCKTIME 3-55

Publicação 1756-RM003D-PT-P - Junho 2001

Page 107: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-31

Acesso ao objeto AXIS (Eixo)

O objeto AXIS fornece as informações de status de um eixo de servomódulo. Especifique o nome do tag do eixo para selecionar o objeto AXIS desejado.

Para mais informações sobre o objeto AXIS, consulte Logix5550 Motion Module User Manual, publicação 1756-6.5.16.

Quando um atributo está marcado com um asterisco (*), significa que o atributo localiza-se tanto no controlador ControlLogix quanto no módulo de movimento. Quando você usa uma instrução SSV para escrever um destes valores, o controlador automaticamente atualiza a cópia no módulo. Entretanto, este processo não é imediato. Para certificar-se de que o novo valor tenha sido atualizado no módulo, use um mecanismo de intertravamento, através dos bits booleanos no UpdateStatus do tag Axis.

Por exemplo, se você executar uma SSV para o PositionLockTolerance, o PositionTolStatus do tag Axis é configurado até que uma atualização para o módulo seja feita com êxito. Portanto, a lógica que segue a SSV poderia acompanhar este reset de bit antes de continuar no programa.

Atributo: Tipo de Dados:

Instrução: Descrição:

* AccelerationFeedforwardGain REAL GSVSSV

O valor usado para fornecer a saída de comando de torque para gerar a aceleração do comando.

*AxisType INT GSVSSV

O tipo de eixo que está sendo usado.Valor: Significado:0 eixo não usado1 eixo de posicionamento2 eixo físico

*DriveFaultAction SINT GSVSSV

A operação realizada quando a falha do inversor ocorre.Valor: Significado:0 desligar o eixo1 desabilitar o inversor2 parar o movimento comandado3 alterar somente o bit de status

*EncoderLossFaultAction SINT GSVSSV

A operação realizada quando uma falha por perda de encoder ocorre.Valor: Significado:0 desligar o eixo1 desabilitar o inversor2 parar o movimento comandado3 alterar somente o bit de status

*EncoderNoiseFaultAction SINT GSVSSV

A operação realizada quando uma falha por ruído no encoder ocorre.Valor: Significado:0 desligar o eixo1 desabilitar o inversor2 parar o movimento comandado3 alterar somente o bit de status

*FrictionCompensation REAL GSVSSV

O nível de saída fixa usado para compensar a fricção estática.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 108: CONTROLADORES LOGIX 5000 -

3-32 Instruções de Entrada/Saída (MSG, GSV, SSV)

*MaximumNegativeTravel REAL GSVSSV

O limite de percurso negativo máximo.

*MaximumPositiveTravel REAL GSVSSV

O limite de percurso positivo máximo.

*OutputFilterBandwidth REAL GSVSSV

A largura de faixa do filtro de saída digital servo de passa/baixa.

*OutputLimit REAL GSVSSV

O valor da tensão máxima de saída do servo do eixo.

*OutputOffset REAL GSVSSV

O valor usado para compensar os efeitos dos offsets cumulativos da saída DAC do servomódulo e da entrada do servoinversor.

*OutputScaling REAL GSVSSV

O valor usado para converter a saída da malha do servo na tensão equivalente a do inversor.

*PositionErrorFaultAction SINT GSVSSV

A operação realizada quando a falha por erro de posição ocorre.Valor: Significado:0 desligar o eixo1 desabilitar o inversor2 parar o movimento comandado3 alterar somente o bit de status

*PositionErrorTolerance REAL GSVSSV

O volume de erro de posição que o servo tolera antes de emitir uma falha de erro de posição.

*PositionIntegralGain REAL GSVSSV

O valor usado para se atingir um preciso posicionamento de eixo, apesar de perturbações como, por exemplo, gravidade e fricção estática.

*PositionProportionalGain REAL GSVSSV

O valor que o controlador multiplica pelo erro de posição para corrigir o erro de posição.

*PositionUnwind DINT GSVSSV

O valor usado para realizar o desenrolamento automático do eixo de rotação.

*ServoConfigurationBits DINT GSVSSV

Os bits de configuração do servo para a malha de servo.Bit: Significado:0 eixo de rotação1 servoinversor com velocidade externa2 negativo da polaridade de encoder3 negativo da polaridade do servo4 verificação da ultrapassagem de percurso do software5 verificação de erro de posição6 verificação da falha de perda de encoder7 verificação da falha por ruído no encoder8 verificação da falha do inversor9 falha de normalmente fechado do inversor

*SoftOvertravelFaultAction SINT GSVSSV

A operação realizada quando a falha por ultrapassagem de percurso do software ocorre.Valor: Significado:0 desligar o eixo1 desabilitar o inversor2 parar o movimento comandado3 alterar somente o bit de status

*VelocityFeedforwardGain REAL GSVSSV

A saída do comando de velocidade necessária para gerar a velocidade comandada.

*VelocityIntegralGain REAL GSVSSV

O valor que o controlador multiplica pelo valor VelocityIntegratorError para corrigir o erro de velocidade.

*VelocityProportionalGain REAL GSVSSV

O valor que o controlador multiplica pelo valor VelocityError para corrigir o erro de velocidade.

Atributo: Tipo de Dados:

Instrução: Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 109: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-33

ActualPosition REAL GSV A posição real do eixo.

ActualVelocity REAL GSV A velocidade real do eixo.

AverageVelocity REAL GSV A velocidade média do eixo.

AverageVelocityTimebase REAL GSVSSV

A base de tempo da velocidade média do eixo.

AxisConfigurationState SINT GSV O estado da configuração do eixo.

AxisState SINT GSV O estado de operação do eixo.Valor: Significado:0 eixo pronto1 controle direto do inversor2 servocontrole3 eixo com falha4 desligamento do eixo

C2CConnectionInstance DINT GSV A instância de conexão do controlador produzindo os dados do eixo.

C2CMapTableInstance DINT GSV A instância de mapa do controlador produzindo os dados do eixo.

CommandPosition REAL GSV A posição de comando do eixo.

CommandVelocity REAL GSV A velocidade de comando do eixo.

ConversionConstant REAL GSVSSV

O fator de conversão usado para converter as unidades do usuário os pulsos de realimentação.

DampingFactor REAL GSVSSV

O valor usado no cálculo da largura de faixa máxima do servoposicionamento durante a execução da instrução MRAT – Motion Run Axis Tuning (Ajuste do Eixo de Operação em Movimento).

EffectiveInertia REAL GSV O valor de inércia para o eixo, conforme calculado a partir das medições do controlador realizadas durante a última instrução MRAT – Motion Run Axis Tuning.

GroupInstance DINT GSV O número de exemplo do grupo de movimento que contém o eixo.

HomeMode SINT GSVSSV

O modo de posição inicial do eixo.Valor: Significado:0 posição inicial passiva1 posição inicial ativa (padrão)

HomePosition REAL GSVSSV

A posição de início do eixo.

HomeReturnSpeed REAL GSVSSV

A velocidade de retorno de posição inicial do eixo.

HomeSequenceType SINT GSVSSV

O tipo de seqüência de posição inicial para o eixo.Valor: Significado:0 posição inicial imediata1 alternar posição inicial2 posição inicial do marcador3 posição inicial do marcador de alternação (valor inicial)

HomeSpeed REAL GSVSSV

A velocidade de posição inicial do eixo.

Instance DINT GSV O número de instância do eixo.

Atributo: Tipo de Dados:

Instrução: Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 110: CONTROLADORES LOGIX 5000 -

3-34 Instruções de Entrada/Saída (MSG, GSV, SSV)

InterpolatedActualPosition REAL GSV Para capturas de posição com base no tempo, este atributo fornece a posição do eixo real interpolado.

• A posição é especificada em unidades de posição e é baseada no valor do atributo InterpolationTime.

• Para interpolar uma posição de eixo real, use uma instrução SSV para configurar o atributo InterpolationTime.

InterpolatedCommandPosition REAL GSV Para capturas de posição com base no tempo, este atributo fornece a posição do eixo de comando interpolado.

• A posição é especificada em unidades de posição e é baseada no valor do atributo InterpolationTime.

• Para interpolar uma posição de eixo de comando, use uma instrução SSV para configurar o atributo InterpolationTime.

InterpolationTime DINT GSVSSV

Use este atributo para fornecer a referência para capturas de posição com base no tempo:

• Para interpolar uma posição, use uma instrução SSV para configurar o atributo InterpolationTime. O controlador, então, atualiza os seguintes atributos:• InterpolatedActualPosition• InterpolatedCommandPosition

• Para fornecer um valor para InterpolationTime, você pode usar qualquer evento que produza um registro de data e hora CST, como:• RegistrationTime attribute• Registro de data e hora de uma entrada digital

• O atributo InterpolationTime usa somente os 32 bits mais baixos de uma registro de data e hora CST.

MapTableInstance DINT GSV O exemplo de mapa de E/S do servomódulo.

MasterOffset REAL GSV Offset da posição que está atualmente aplicada ao mestre de um came de posição. Especificado em unidades de posição do eixo mestre.

MaximumAcceleration REAL GSVSSV

A aceleração máxima do eixo.

MaximumDeceleration REAL GSVSSV

A desaceleração máxima do eixo.

MaximumSpeed REAL GSVSSV

A velocidade máxima do eixo.

ModuleChannel SINT GSV O canal do módulo do servomódulo.

MotionConfigurationBits DINT GSVSSV

Os bits de configuração de movimento para o eixo.Bit: Significado:0 reversão da direção da posição inicial1 chave na posição inicial normalmente fechado2 negativo da borda de marcador na posição inicial

MotionFaultBits DINT GSV Os bits de falha de movimento para o eixo. (Na estrutura AXIS, este é o membro MotionFault.)Bit: Nome do Bit: Significado:0 ACAsyncConnFault falha na conexão assíncrona1 ACSyncConnFault falha na conexão síncrona

Atributo: Tipo de Dados:

Instrução: Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 111: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-35

MotionStatusBits DINT GSV Os bits de status de movimento para o eixo. (Na estrutura AXIS, este é o membro MotionStatus.)

MotorEncoderTestIncrement REAL GSVSSV

A quantidade de movimento necessária para iniciar o teste MRHD – Motion Run Hookup Diagnostic.

PositionError REAL GSV A diferença entre a posição de comando e a real de um eixo.

PositionIntegratorError REAL GSV A soma do erro de posição para um eixo.

PositionLockTolerance REAL GSVSSV

O volume de erro de posição que o servomódulo tolera ao fornecer uma indicação de status travado na posição verdadeira.

PositionServoBandwidth REAL GSVSSV

A largura de faixa de ganho da unidade que o controlador usa para calcular os ganhos para a instrução MAAT – Motion Apply Axis Tuning (Ajuste do Eixo para Aplicação de Movimento).

ProgrammedStopMode SINT GSVSSV

O tipo de parada a ser realizada no eixo.Valor: Significado:0 parada rápida1 desligamento rápido2 desligamento do hardware

RegistrationPosition REAL GSV A posição de registro para o eixo.

RegistrationTime DINT GSV Você pode usar este atributo para fornecer um registro de data e hora para capturas com base no tempo:

• O atributo RegistrationTime contém os 32 bits mais baixos do registro de data e hora CST de um evento de registro de eixo.

• O registro de data e hora CST é medido em microssegundos.• Para interpolar uma posição baseada no evento de registro de

um eixo:1. Use uma instrução GSV para obter o valor do atributo

RegistrationTime.2. Use uma instrução SSV para configurar o atributo

InterpolationTime para o valor do atributo RegistrationTime.

Atributo: Tipo de Dados:

Instrução: Descrição:

Bit: Nome do Bit: Significado:

0 AccelStatus aceleração

1 DecelStatus desaceleração

2 MoveStatus movimento

3 JogStatus jog

4 GearingStatus engrenagem

5 HomingStatus guiamento orientado

6 StoppingStatus desligamento

7 AxisHomedStatus status inicial

8 PositionCamStatus came de posição

9 TimeCamStatus came de tempo

10 PositionCamPendingStatus came de posição pendente

11 TimeCamPendingStatus came de tempo pendente

12 GearingLockStatus trava de engrenagem

13 PositionCamLockStatus trava do came de posição

14 MasterOffsetMoveStatus movimento do offset mestre

Publicação 1756-RM003D-PT-P - Junho 2001

Page 112: CONTROLADORES LOGIX 5000 -

3-36 Instruções de Entrada/Saída (MSG, GSV, SSV)

ServoConfigurationUpdateBits DINT GSV Os bits de status de configuração do servo para a malha de servo. (Na estrutura AXIS, este é o membro UpdateStatus.)Bit: Nome do Bit: Significado:0 AxisTypeStatus tipo de eixo1 PosUnwndStatus desenrolamento da posição2 MaxPTrvlStatus percurso positivo máximo3 MaxNTrvlStatus percurso negativo máximo4 PosErrorTolStatus tolerância de erro de posição5 PosLockTolStatus tolerância de travamento na posição 6 PosPGainStatus ganho proporcional de posição7 PosIGainStatus ganho integral de posição8 VelFfGainStatus ganho de feedforward na velocidade9 AccFfGainStatus ganho de feedforward

na aceleração10 VelPGainStatus ganho proporcional de velocidade 11 VelIGainStatus ganho integral de velocidade12 OutFiltBwStatus largura de faixa do filtro de saída13 OutScaleStatus conversão de escala na saída14 OutLimitStatus limite de saída15 OutOffsetStatus offset de saída16 FricCompStatus compensação de fricção17 POtrvlFaultActStatus ação de falha de ultrapassagem de percurso de software18 PosErrorFaultActStatus ação de falha de erro de posição19 EncLossFaultActStatus ação de falha de perda de encoder20 EncNsFaultActStatus ação de falha por ruído no encoder21 DriveFaultActStatus ação de falha do inversor

ServoEventBits DINT GSV Os bits de eventos do servo para a malha de servo. (Na estrutura AXIS, este é o membro EventStatus.)Bit: Nome do Bit: Significado:0 WatchEvArmStatus evento de observação armado1 WatchEvStatus evento de observação2 RegEvArmStatus evento de registro armado3 RegEvStatus evento de registro4 HomeEvArmStatus evento de posição inicial armado5 HomeEvStatus evento de posição inicial

ServoFaultBits DINT GSV Os bits de falha do servo para a malha de servo. (Na estrutura AXIS, este é o membro ServoFault.)Bit: Nome do Bit: Significado:0 POtrvlFault falha de ultrapassagem de percurso positivo1 NOtrvlFault falha de ultrapassagem de percurso negativo2 PosErrorFault falha de erro de posição3 EncCHALossFault falha de perda do canal A do encoder4 EncCHBLossFault falha de perda do canal B do encoder5 EncCHZLossFault falha de perda do canal Z do encoder6 EncNsFault falha por ruído do encoder7 DriveFault falha do inversor8 SyncConnFault falha de conexão síncrona9 HardFault falha no hardware do servo

ServoOutputLevel REAL GSV O nível de tensão de saída para a malha do servo do eixo.

Atributo: Tipo de Dados:

Instrução: Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 113: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-37

ServoStatusBits DINT GSV Os bits de status para a malha de servo. (Na estrutura AXIS, este é o membro ServoStatus.)Bit: Nome do Bit: Significado:0 ServoActStatus ação do servo1 DriveEnableStatus inversor habilitado2 OutLmtStatus limite de saída 3 PosLockStatus trava da posição13 TuneStatus processo de ajuste 14 TestStatus diagnóstico de teste15 ShutdownStatus desligamento do eixo

ServoStatusUpdateBits DINT GSV Os bits de atualização de status do servo para o eixo.Bit: Significado:0 atualização do erro de posição1 atualização do erro do integrador de posição2 atualização do erro de velocidade3 atualização do erro do integrador de velocidade4 atualizaçãodo comando de velocidade5 atualização da realimentação de velocidade6 atualização do nível de saída do servo

StartActualPosition REAL GSV A posição real do eixo quando se inicia um novo movimento comandado para o eixo.

StartCommandPosition REAL GSV A posição de comando do eixo quando se inicia um novo movimento comandado para o eixo.

StartMasterOffset REAL GSV O mestre faz o offset quando a última instrução Motion Axis Move (MAM) foi executada em um destes tipos de movimentos:

• AbsoluteMasterOffset• IncrementalMasterOffset

Especificado em unidades de posição do eixo mestre.

StrobeActualPosition REAL GSV A posição real de um eixo quando a instrução MGSP – Motion Group Strobe Position (Posição da Sonda do Grupo de Movimento) é executada.

StrobeCommandPosition REAL GSV A posição de comando de um eixo quando a instrução MGSP – Motion Group Strobe Position (Posição da Sonda do Grupo de Movimento) é executada.

StrobeMasterOffset REAL GSV O mestre faz o offset quando a instrução Motion Group Strobe Position (MGSP) é executada. Especificado em unidades de posição do eixo mestre.

TestDirectionForward SINT GSV A direção do percurso do eixo durante a instrução MRHD – Motion Run Hookup Diagnostic (Diagnóstico) como visto pelo servomódulo.Valor: Significado:0 direção negativa (reversa)1 (ff) direção positiva (para frente)

TestStatus INT GSV O status da última instrução MRHD – Motion Run Hookup Diagnostic.Valor: Significado:0 processo do teste com sucesso1 teste em andamento2 processo de teste abortado pelo usuário3 período de espera de 2 segundos excedido pelo teste4 processo de teste com falha devido à falha do servo5 incremento insuficiente de teste

TuneAcceleration REAL GSV O valor de aceleração medido durante a instrução MRAT – Motion Run Axis Tuning (Ajuste do Eixo de Operação de Movimento).

TuneAccelerationTime REAL GSV O tempo de aceleração medido durante a instrução MRAT – Motion Run Axis Tuning (Ajuste do Eixo de Operação de Movimento).

Atributo: Tipo de Dados:

Instrução: Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 114: CONTROLADORES LOGIX 5000 -

3-38 Instruções de Entrada/Saída (MSG, GSV, SSV)

TuneDeceleration REAL GSV O valor de desaceleração medido durante a instrução MRAT – Motion Run Axis Tuning (Ajuste do Eixo de Operação de Movimento).

TuneDecelerationTime REAL GSV O tempo de desaceleração medido durante a instrução MRAT – Motion Run Axis Tuning (Ajuste do Eixo de Operação de Movimento).

TuneRiseTime REAL GSV O tempo de elevação do eixo medido durante a instrução MRAT – Motion Run Axis Tuning (Ajuste do Eixo de Operação de Movimento).

TuneSpeedScaling REAL GSV O fator de conversão da escala do inversor do eixo medido durante a última instrução MRAT – Motion Run Axis Tuning (Ajuste do Eixo de Operação de Movimento).

TuneStatus INT GSV O status da última instrução MRAT – Motion Run Axis Tuning.Valor: Significado:0 processo de ajuste com sucesso1 ajuste em andamento2 processo de ajuste abortado pelo usuário3 período de espera de 2 segundos excedeu o ajuste4 processo de ajuste com falha devido à falha do servo5 eixo atingiu o limite do percurso de ajuste6 polaridade do eixo definida incorretamente7 velocidade do ajuste é muito baixa para realizar medições

TuneVelocityBandwidth REAL GSV A largura de faixa do inversor, conforme calculado a partir das medições do controlador realizadas durante a última instrução MRAT – Motion Run Axis Tuning.

TuningConfigurationBits DINT GSVSSV

Os bits de configuração de ajuste para o eixo.Bit: Significado:0 direção de ajuste (0 = para frente, 1 = reversa)1 integrador de erro de posição de ajuste2 integrador de erro da velocidade de ajuste 3 bit feedforward da velocidade de ajuste4 feedforward de aceleração5 filtro passa/baixa de velocidade de ajuste

TuningSpeed REAL GSVSSV

A velocidade máxima iniciada pela instrução MRAT – Motion Run Axis Tuning (Ajuste do Eixo de Operação de Movimento).

TuningTravelLimit REAL GSVSSV

O limite de percurso usado pela instrução MRAT – Motion Run Axis Tuning para limitar a ação da ação durante o ajuste.

VelocityCommand REAL GSV A referência de velocidade atual para a malha de servovelocidade para um eixo.

VelocityError REAL GSV A diferença entre a velocidade real e a comandada de um eixo do servo.

VelocityFeedback REAL GSV A velocidade real do eixo estimada pelo servomódulo.

VelocityIntegratorError REAL GSV A soma do erro de velocidade para um eixo especificado.

WatchPosition REAL GSV A posição de observação do eixo.

Atributo: Tipo de Dados:

Instrução: Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 115: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-39

Acesso ao objeto CONTROLLER

O objeto CONTROLLER fornece as informações de status sobre a execução do controlador.

Acesso ao objeto CONTROLLERDEVICE

O objeto CONTROLLERDEVICE identifica o hardware físico do controlador.

Atributo: Tipo de Dados: Instrução: Descrição:

TimeSlice INT GSVSSV

Porcentagem de CPU disponível atribuída para a comunicação.Os valores válidos são 10-90. Este valor não pode ser alterado quando a chave seletora de modo estiver posicionada em Run.

Atributo: Tipo de Dados: Instrução: Descrição:

DeviceName SINT[33] GSV String ASCII que identifica o código de catálogo do controlador e placa de memória.O primeiro byte contém uma contagem do número de caracteres ASCII que retornaram no string da matriz.

ProductCode INT GSV Identifica o tipo de controlador

ProductRev INT GSV Identifica a revisão atual do produto. O display deve ser hexadecimal.O byte desenergizado contém a revisão principal; o byte energizado contém a revisão secundária.

SerialNumber DINT GSV Número serial do dispositivo.O número serial é atribuído quando o dispositivo é construído.

Este código de produto:

Identifica este controlador Logix:

3 5550

15 5860

41 5433

42 5434

43 5320

50 5553

51 5555

Publicação 1756-RM003D-PT-P - Junho 2001

Page 116: CONTROLADORES LOGIX 5000 -

3-40 Instruções de Entrada/Saída (MSG, GSV, SSV)

Status INT GSV Os bits identificam o status:Os bits 3-0 são reservados

Bits de Status do DispositivoBits 7-4: Significado:0000 reservado0001 atualização flash em andamento0010 reservado0011 reservado0100 flash está deficiente0101 em falha0110 operação0111 programa

Bits de Status de FalhaBits 11-8: Significado:0001 falha de advertência recuperável0010 falha de advertência não recuperável0100 falha grave recuperável1000 falha grave não recuperável

Bits de Status Específicos do Logix5550Bits 13-12: Significado:01 chave seletora em Run (operação)10 chave seletora em Program (programa)11 chave seletora em Remote (remota)Bits 15-14: Significado:01 controlador está alterando os modos10 modo de depuração se o controlador estiver no modo Run

Type INT GSV Identifica o dispositivo como um controlador.Controlador = 14

Fornecedor INT GSV Identifica o fornecedor do dispositivo.Allen-Bradley = 0001

Atributo: Tipo de Dados: Instrução: Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 117: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-41

Acesso ao objeto CST

O objeto CST (coordinated system time) fornece um tempo de sistema coordenado para os dispositivos em um chassi.

Atributo: Tipo de Dados: Instrução: Descrição:

CurrentStatus INT GSV Status atual do tempo de sistema coordenado. Os bits identificam o status:

Bit: Significado:

0 falha no hardware do temporizador: o hardware do temporizador interno do dispositivo está em falha

1 rampa habilitada: o valor atual dos 16 bits menos significativos do temporizador aumentam em rampa até o valor requisitado, ao invés de permanecer no valor menor. Estes bits são manipulados pelo método de sincronização de seleção específica da rede.

2 mestre do tempo do sistema: o objeto CST é uma fonte de tempo mestre no sistema ControlLogix

3 sincronizado: o CurrentValue de 64 bits do objeto é sincronizado por um objeto CST mestre através de uma atualização de tempo do sistema.

4 mestre da rede local: o objeto CST é a fonte de tempo mestre da rede local

5 modo do relé de entrada: o objeto CST está agindo em um modo de relé de tempo

6 detecção de mestre duplicado: um mestre de tempo duplicado na rede local foi detectado. Este bit é sempre 0 para os nós que dependem do tempo.

7 não usado

8-9 00 = nó que depende do tempo01 = nó do mestre de tempo10 = nó do relé de tempo11 = não usado

10-15 não usado

CurrentValue DINT[2] GSV Valor atual do temporizador. DINT[0] contém 32 bits desenergizados; DINT[1] contém 32 bits energizados.A fonte do temporizador é ajustada para corresponder ao valor fornecido nos serviços de atualização e da sincronização da rede de comunicação local. O ajuste pode ser tanto um aumento em rampa até atingir o valor requisitado como uma configuração imediata no valor requisitado, conforme definido no atributo CurrentStatus.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 118: CONTROLADORES LOGIX 5000 -

3-42 Instruções de Entrada/Saída (MSG, GSV, SSV)

Acesso ao objeto DF1

O objeto DF1 fornece uma interface para o driver de comunicação DF1 que pode ser configurada para a porta serial.

Atributo: Tipo de Dados:

Instrução: Descrição:

ACKTimeout DINT GSV Quantidade de tempo que se espera para se reconhecer uma transmissão de mensagem (somente mestre e ponto-a-ponto)Valor válido 0-32.767. Atraso nas contagens de períodos de 20 ms. O valor inicial é de 50 (1 segundo).

DiagnosticCounters INT[19] GSV Série de contadores de diagnóstico para o driver de comunicação DF1.

offset da palavra DF1 ponto-a-ponto DF1 escravo mestre0 assinatura (0x0043) assinatura (0x0042) assinatura (0x0044)1 bits do modem bits do modem bits do modem2 pacotes enviados pacotes enviados pacotes enviados3 pacotes recebidos pacotes recebidos pacotes recebidos4 pacotes não entregues pacotes não entregues pacotes não entregues5 não usado tentativas de mensagens tentativas de mensagens6 NAKs recebidos NAKs recebidos não usado7 ENQs recebidos poll de pacotes recebidos não usado8 pacotes NAKed defeituosos pacotes not ACKed defeituosos pacotes not ACKed defeituosos9 nenhuma memória enviou um NAK nenhuma memória not ACKed não usado10 pacotes duplicados recebidos pacotes duplicados recebidos pacotes duplicados recebidos11 caracteres defeituosos recebidos não usado não usado12 contagem de recuperações DCD contagem de recuperações DCD contagem de recuperações DCD13 contagem de modem perdida contagem de modem perdida contagem de modem perdida14 não usado não usado prioridade do tempo de varredura máximo15 não usado não usado última prioridade do tempo de varredura16 não usado não usado tempo de varredura normal máximo17 não usado não usado último tempo normal de varredura18 ENQs enviados não usado não usado

DuplicateDetection SINT GSV Habilita a detecção de mensagem duplicada.Valor: Significado:0 detecção de mensagem duplicada desabilitadadiferente de zero detecção de mensagem duplicada desabilitada

EmbeddedResponseEnable SINT GSV Habilita funcionalidade de resposta incorporada (somente ponto-a-ponto).Valor: Significado:0 iniciado somente depois que um é recebido (padrão)1 habilitado incondicionalmente

ENQTransmitLimit SINT GSV O número de pedidos (ENQs) a serem enviados após um período de espera ACK (somente ponto-a-ponto).Valor válido 0-127. Ajuste inicial é 3.

EOTSuppression SINT GSV Habilita a supressão de transmissões EOT em resposta ao poll de pacotes (somente escravo).Valor: Significado:0 supressão de EOT desabilitada (desabilitado)diferente de zero supressão de EOT habilitada

ErrorDetection SINT GSV Especifica o esquema de detecção de erro.Valor: Significado:0 BCC (padrão)1 CRC

Publicação 1756-RM003D-PT-P - Junho 2001

Page 119: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-43

MasterMessageTransmit SINT GSV Valor atual da transmissão de mensagem mestre (somente mestre).Valor: Significado:0 entre os polls da estação1 na seqüência do poll (no lugar do número da estação do mestre)Valor inicial é 0.

NAKReceiveLimit SINT GSV O número de NAKs recebidos em resposta a uma mensagem antes da interrupção da transmissão (somente comunicação ponto-a-ponto).Valor válido 0-127. Ajuste inicial é 3.

NormalPollGroupSize INT GSV Número de estações para ser distribuído na matriz normal de nós do poll, depois de realizar um polling de todas as estações na matriz de nós de poll de prioridade (somente mestre).Valor válido 0-255. Ajuste inicial é 0.

PollingMode SINT GSV Modo de polling atual (somente mestre).Valor: Significado:0 baseado em mensagem, mas não permite escravos

para iniciar as mensagens1 baseado em mensagens, mas permite escravos para iniciar as mensagens (padrão)2 transferência padrão de uma única mensagem por

varredura do nó3 transferência padrão de várias mensagens por

varredura do nóO ajuste inicial é 1.

ReplyMessageWait DINT GSV O tempo (atuando como mestre) para esperar o recebimento de um ACK antes de realizar um polling do escravo para uma resposta (somente mestre).Valor válido 0-65.535. Atraso nas contagens de períodos de 20 ms. O ajuste inicial é de 5 períodos (100 ms).

StationAddress INT GSV Endereço atual da estação da porta serial.Valor válido 0-254. Ajuste inicial é 0.

SlavePollTimeout DINT GSV A quantidade de tempo em ms que o escravo espera pelo mestre para realizar um polling, antes que o escravo declare que não tenha condições de transmitir porque o mestre está inativo (somente escravo).Valor válido 0-32.767. Atraso nas contagens de períodos de 20 ms. O valor inicial é de 3.000 períodos (1 minuto).

TransmitRetries SINT GSV Número de vezes para reenviar uma mensagem sem obter um reconhecimento (somente mestre e escravo).Valor válido 0-127. Ajuste inicial é 3.

PendingACKTimeout DINT SSV Valor pendente para o atributo ACKTimeout.

PendingDuplicateDetection SINT SSV Valor pendente para o atributo DuplicateDetection.

PendingEmbeddedResponseEnable

SINT SSV Valor pendente para o atributo EmbeddedResponse.

PendingENQTransmitLimit SINT SSV Valor pendente para o atributo ENQTransmitLimit.

PendingEOTSuppression SINT SSV Valor pendente para o atributo EOTSuppression.

PendingErrorDetection SINT SSV Valor pendente para o atributo ErrorDetection.

PendingNormalPollGroupSize INT SSV Valor pendente para o atributo NormalPollGroupSize.

PendingMasterMessageTransmit

SINT SSV Valor pendente para o atributo MasterMessageTransmit.

Atributo: Tipo de Dados:

Instrução: Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 120: CONTROLADORES LOGIX 5000 -

3-44 Instruções de Entrada/Saída (MSG, GSV, SSV)

Para aplicar os valores para qualquer um dos atributos pendentes de DF1:

1. Use uma instrução SSV para definir o valor para o atributo pendente.

É possível definir a quantidade de atributos que desejar, usando uma instrução SSV para cada atributo pendente.

2. Use uma instrução MSG para aplicar o valor. A instrução MSG se aplica para cada atributo pendente configurado. Configure a instrução MSG da seguinte forma:

PendingNAKReceiveLimit SINT SSV Valor pendente para o atributo NAKReceiveLimit.

PendingPollingMode SINT SSV Valor pendente para o atributo PollingMode.

PendingReplyMessageWait DINT SSV Valor pendente para o atributo ReplyMessageWait.

PendingStationAddress INT SSV Valor pendente para o atributo StationAddress.

PendingSlavePollTimeout DINT SSV Valor pendente para o atributo SlavePollTimeout.

PendingTransmitRetries SINT SSV Valor pendente para o atributo TransmitRetries.

Atributo: Tipo de Dados:

Instrução: Descrição:

Guia MSG Configuration: Campo: Valor:

Configuration Message Type CIP Generic

Service Code (Código de Serviço)

0d hex

Object Type (Tipo de Objeto)

a2

Object ID (Identificação do Objeto)

1

Object Attribute (Atributo do Objeto)

deixe em branco

Source deixe em branco

Número de Elementos 0

Destination deixe em branco

Communication Path percurso de comunicação automático (1,s onde s = número da ranhura do controlador)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 121: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-45

Acesso ao objeto FAULTLOG

O objeto FAULTLOG fornece informações de falha sobre o controlador.

Atributo: Tipo de Dados: Instrução: Descrição:

MajorEvents INT GSVSSV

Quantas falhas graves ocorreram desde a última vez que este contador foi resetado.

MinorEvents INT GSVSSV

Quantas falhas de advertência ocorreram desde a última vez que este contador foi resetado.

MajorFaultBits DINT GSVSSV

Os bits individuais indicam o motivo da falha grave atual.Bit: Significado:1 perda de alimentação3 E/S4 execução da instrução (programa)5 rotina de falhas6 watchdog7 stack8 alteração de modo11 movimento

MinorFaultBits DINT GSVSSV

Os bits individuais indicam o motivo da falha de advertência atual.Bit: Significado:4 execução da instrução (programa)6 watchdog9 porta serial10 bateria

Publicação 1756-RM003D-PT-P - Junho 2001

Page 122: CONTROLADORES LOGIX 5000 -

3-46 Instruções de Entrada/Saída (MSG, GSV, SSV)

Acesso ao objeto MESSAGE

É possível acessar o objeto MESSAGE através das instruções GSV/SSV. Especifique o nome do tag da mensagem para determinar qual objeto MESSAGE você quer. O objeto MESSAGE fornece uma interface para configuração e disparo das comunicações peer-to-peer. Este objeto substitui o tipo de dados MG do controlador CLP-5.

Para alterar o atributo MESSAGE, siga essas etapas:

1. Use uma instrução GSV para obter o atributo MessageType e salvá-lo em um tag.

2. Use uma instrução SSV para configurar MessageType em 0.

3. Use uma instrução SSV para configurar um atributo MESSAGE que você deseja alterar.

4. Use uma instrução SSV para configurar o atributo MessageType no valor original novamente obtido na etapa 1.

Atributo: Tipo de Dados: Instrução: Descrição:

ConnectionPath SINT[130] GSVSSV

Dados para configuração do percurso de conexão. Os primeiros dois bytes (byte desenergizado e byte energizado) são o comprimento em bytes do percurso de conexão.

ConnectionRate DINT GSVSSV

Taxa (velocidade) requisitada para o pacote da conexão.

MessageType SINT GSVSSV

Especifica o tipo de mensagem.Valor: Significado:0 não inicializado

Port SINT GSVSSV

Indica por qual porta a mensagem deve ser enviada.Valor: Significado:1 placa de fundo2 porta serial

TimeoutMultiplier SINT GSVSSV

Determina o término da temporização de uma conexão e quando deve ser fechada.Valor: Significado:0 conexão interromperá a temporização em 4 vezes a taxa de atualização (padrão)1 conexão interromperá a temporização em 8 vezes a taxa de atualização2 conexão interromperá a temporização em 16 vezes

a taxa de atualização

UnconnectedTimeout DINT GSVSSV

Período de espera em microssegundos para todas as mensagens não conectadas. O valor inicial é de 30.000.000 microssegundos (30 segundos).

Publicação 1756-RM003D-PT-P - Junho 2001

Page 123: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-47

O seguinte exemplo muda o atributo ConnectionPath, de forma que a mensagem vá para um controlador diferente.

EXEMPLO Mudança de um atributo do objeto MESSAGE

Quando msg_path estiver energizado, configure o caminho da mensagem msg_1 para o valor de msg_1_path. Isto envia a mensagem para um controlador diferente.

msg_path

Get System ValueClass name MESSAGEInstance name msg_1Attribute Name MessageTypeDest msg_1_type 2

GSVSet System ValueClass name MESSAGEInstance name msg_1Attribute Name MessageTypeSource tag_a 0

SSV

Set System ValueClass name MESSAGEInstance name msg_1Attribute Name ConnectionPathSource msg_1_path[0] 6

SSVSet System ValueClass name MESSAGEInstance name msg_1Attribute Name MessageTypeSource msg_1_type 2

SSV

/msg_1.EN

ENDNER

Type - CIP Data Table WriteMessage Control msg_1 ...

MSG

42614

Onde: É:

msg_1 mensagem cujo atributo você quer mudar

msg_1_type tag que armazena o valor do atributo MessageType

tag_a tag que armazena um 0

msg_1_path tag de matriz que armazena o novo caminho de conexão para a mensagem

Publicação 1756-RM003D-PT-P - Junho 2001

Page 124: CONTROLADORES LOGIX 5000 -

3-48 Instruções de Entrada/Saída (MSG, GSV, SSV)

Acesso ao objeto MODULE

O objeto MODULE fornece as informações de status sobre um módulo. Para selecionar um determinado objeto MODULE, configure o operando Object Name da instrução GSV/SSV no nome do módulo. O módulo especificado deve estar presente na seção I/O Configuration do organizador do controlador e deve ter um nome de dispositivo.

Atributo: Tipo de Dados: Instrução: Descrição:

EntryStatus INT GSV Especifica o estado atual da entrada do mapa especificado. Os 12 bits menos significativos devem ser mascarados na execução de uma operação de comparação. Somente os bits de 12 a 15 são válidos.Valor: Significado:16#0000 Standby: o controlador está energizando.16#1000 Em Falha: quaisquer uma das conexões do objeto

MODULE com a falha do módulo associado. Este valor não deve ser usado para determinar se o módulo apresentou falha porque o objeto MODULE sai deste estado periodicamente ao tentar reconectar-se ao módulo. Ao invés disso, verifique Running state (16#4000). Verifique se FaultCode não é igual a 0 para determinar se um módulo apresenta falha. Quando estiver na condição de Falha (Faulted), os atributos FaultCode e FaultInfosão válidos até que a condição de falha seja corrigida.

16#2000 Validação: o objeto MODULE está verificando a integridade do objeto MODULE antes de estabelecer as conexões para o módulo.

16#3000 Conexão: o objeto MODULE está iniciando asconexões para o módulo.

16#4000 Em Operação: todas as conexões com o módulo sãoestabelecidas e os dados são transferidos com sucesso.

16#5000 Desligamento: o objeto MODULE está no processo de desligar todas as conexões para o módulo.

16#6000 Inibido: o objeto MODULE está inibido (obit inibido no atributo Mode está energizado).

16#7000 Na Espera: o objeto MODULE-pai do qual este objeto MODULE depende não está em operação.

FaultCode INT GSV Número que identifica uma falha no módulo, em caso de ocorrência.

FaultInfo DINT GSV Fornece informações específicas sobre o código de falha do objeto MODULE.

ForceStatus INT GSV Especifica o status dos pontos forçados.Bit: Significado:0 pontos forçados instalados (1 = sim, 0-não)1 pontos forçados habilitados (1 = sim, 0 = não)2-15 não usado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 125: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-49

Acesso ao objeto MOTIONGROUP

O objeto MOTIONGROUP fornece as informações de status sobre um grupo de eixos para o servomódulo. Especifique o nome do tag do grupo de movimento para determinar qual objeto MOTIONGROUP você quer.

Instance DINT GSV Fornece o número de instância deste objeto MODULE.

LEDStatus INT GSV Especifica o estado atual do LED de E/S localizado na parte frontal do controlador.Valor: Significado:0 LED desligado: Nenhum objeto MODULE foi configurado

para o controlador (não há módulos na seçãoI/O Configuration do organizador do controlador).

1 Vermelho piscando: Nenhum dos objetos MODULE está em operação.

2 Verde piscando: Pelo menos um objeto MODULE não está em operação.

3 Verde permanente: Todos os objetos MODULE estão em operação.

Nota: Não é possível inserir um nome de objeto com este atributo porque este atributo se aplica a todo o conjunto de módulos.

Mode INT GSVSSV

Especifica o modo atual do objeto MODULE.Bit: Significado:0 Se configurado, causa uma falha grave se uma das

conexões do objeto MODULE apresentar falha enquanto o controlador estiver no modo de operação.

2 Se configurado, faz com o objeto MODULE seja introduzido no estado Inibido depois de desligar todas as conexões para o módulo.

Atributo: Tipo de Dados: Instrução: Descrição:

Atributo: Tipo de Dados: Instrução: Descrição:

Instance DINT GSV Fornece o número de exemplo deste objeto MOTION_GROUP.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 126: CONTROLADORES LOGIX 5000 -

3-50 Instruções de Entrada/Saída (MSG, GSV, SSV)

Acesso ao objeto PROGRAM

O objeto PROGRAM fornece as informações de status sobre um programa. Especifique o nome do programa para determinar qual objeto PROGRAM você quer.

Atributo: Tipo de Dados: Instrução: Descrição:

DisableFlag SINT GSVSSV

Controla essa execução do programa.Valor: Significado:0 execução habilitada1 execução desabilitada

Instance DINT GSV Fornece o número de instância deste objeto PROGRAM.

LastScanTime DINT GSVSSV

Tempo que a execução do programa demorou da última vez. O tempo está em microssegundos.

MajorFaultRecord DINT[11] GSVSSV

Registra as falhas graves para este programaRecomendamos que você crie uma estrutura definida pelo usuário para simplificar o acesso ao atributo MajorFaultRecord:

Nome: Tipo de Dados: Estilo: Descrição:TimeLow DINT Decimal 32 bits menos significativos de valor de registro de data e hora da

falhaTimeHIgh DINT Decimal 32 bits mais significativos de valor de registro de data e hora da

falhaType INT Decimal tipo de falha (programa, E/S etc.)Code INT Decimal código exclusivo para a falha (depende do tipo de falha)Info DINT[8] Hexadecimal informação específica sobre a falha (depende do tipo e do código

de falha)

MaxScanTime DINT GSVSSV

Tempo máximo de execução registrado para este programa. O tempo está em microssegundos.

MinorFaultRecord DINT[11] GSVSSV

Registra as falhas de advertência para este programaRecomendamos que você crie uma estrutura definida pelo usuário para simplificar o acesso ao atributo MinorFaultRecord:

Nome: Tipo de Dados: Estilo: Descrição:TimeLow DINT Decimal 32 bits menos significativos de valor de registro de data e hora da

falhaTimeHIgh DINT Decimal 32 bits mais significativos de valor de registro de data e hora da

falhaType INT Decimal tipo de falha (programa, E/S etc.)Code INT Decimal código exclusivo para a falha (depende do tipo de falha)Info DINT[8] Hexadecimal informação específica sobre a falha (depende do tipo e do código

de falha)

SFCRestart INT GSVSSV

não usado – reservado para uso futuro

Publicação 1756-RM003D-PT-P - Junho 2001

Page 127: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-51

Acesso ao objeto ROUTINE

O objeto ROUTINE fornece as informações de status sobre uma rotina. Especifique o nome da rotina para determinar qual objeto ROUTINE você quer.

Atributo: Tipo de Dados: Instrução: Descrição:

Instance DINT GSV Fornece o número de instância deste objeto ROUTINE.Valores válidos são 0-65.535.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 128: CONTROLADORES LOGIX 5000 -

3-52 Instruções de Entrada/Saída (MSG, GSV, SSV)

Acesso ao objeto SERIALPORT

O objeto SERIALPORT fornece uma interface com a porta de comunicação serial.

Para aplicar os valores para qualquer um dos atributos pendentes SERIALPORT:

1. Use uma instrução SSV para definir o valor para o atributo pendente.

É possível definir a quantidade de atributos que desejar, usando uma instrução SSV para cada atributo pendente.

2. Use uma instrução MSG para aplicar o valor. A instrução MSG se aplica para cada atributo pendente configurado. Configure as instruções MSG da seguinte forma:

Atributo: Tipo de Dados: Instrução: Descrição:

BaudRate DINT GSV Especifica a taxa de transmissão.Os valores válidos são 110, 300, 600, 1200, 2400, 4800, 9600 e 19200 (padrão).

DataBits SINT GSV Especifica o número de bits de dados por caracter.Valor: Significado:7 7 bits de dados (somente ASCII)8 8 bits de dados (padrão)

Paridade SINT GSV Especifica a paridade.Valor: Significado:0 sem paridade (sem padrão)1 paridade ímpar (somente ASCII)2 paridade par

RTSOffDelay INT GSV Quantidade de tempo para retardar o desligamentio da linha RTS depois da transmissão do último caracter.Valor válido 0-32.767. Atraso nas contagens de períodos de 20 ms. O valor inicial é 0 ms.

RTSSendDelay INT GSV Quantidade de tempo para retardar a transmissão do primeiro caracter de uma mensagem depois de se energizar a linha RTS.Valor válido 0-32.767. Atraso nas contagens de períodos de 20 ms. O valor inicial é 0 ms.

StopBits SINT GSV Especifica o número de bits de parada.Valor: Significado:1 1 bit de parada (padrão)2 2 bits de parada (somente ASCII)

PendingBaudRate DINT SSV Valor pendente para o atributo BaudRate.

PendingDataBits SINT SSV Valor pendente para o atributo DataBits.

PendingParity SINT SSV Valor pendente para o atributo Parity.

PendingRTSOffDelay INT SSV Valor pendente para o atributo RTSOffDelay.

PendingRTSSendDelay INT SSV Valor pendente para o atributo RTSSendDelay.

PendingStopBits SINT SSV Valor pendente para o atributo StopBits.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 129: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-53

Guia MSG Configuration: Campo: Valor:

Configuration Message Type CIP Generic

Service Code (Código de Serviço)

0d hex

Object Type (Tipo de Objeto)

6f hex

Object ID (Identificação do Objeto)

1

Object Attribute (Atributo do Objeto)

deixe em branco

Source deixe em branco

Número de Elementos 0

Destination deixe em branco

Communication Path percurso de comunicação automático (1,s onde s = número da ranhura do controlador)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 130: CONTROLADORES LOGIX 5000 -

3-54 Instruções de Entrada/Saída (MSG, GSV, SSV)

Acesso ao objeto TASK

O objeto TASK fornece as informações de status sobre uma tarefa. Especifique o nome do programa para determinar qual objeto TASK você quer.

Atributo: Tipo de Dados: Instrução: Descrição:

Instance DINT GSV Fornece o número de instância deste objeto TASK.Valores válidos são 0-31.

LastScanTime DINT GSVSSV

Tempo que a execução desta tarefa demorou da última vez. O tempo está em microssegundos.

MaxInterval DINT[2] GSVSSV

O tempo máximo de intervalo entre as execuções sucessivas da tarefa. DINT[0] contém os 32 bits menos significativos do valor; DINT[1] contém os 32 bits mais significativos do valor.Um valor de 0 indica 1 ou menos execuções da tarefa.

MaxScanTime DINT GSVSSV

Tempo máximo de execução registrado para este programa. O tempo está em microssegundos.

MinInterval DINT[2] GSVSSV

O tempo mínimo de intervalo entre as execuções sucessivas da tarefa. DINT[0] contém os 32 bits menos significativos do valor; DINT[1] contém os 32 bits mais significativos do valor.Um valor de 0 indica 1 ou menos execuções da tarefa.

Priority INT GSV Prioridade relativa dessa tarefa comparada com outras tarefas.Valores válidos são 0-15.

Rate DINT GSV O intervalo de tempo entre as execuções sucessivas da tarefa. O tempo está em microssegundos.

StartTime DINT[2] GSVSSV

O valor de WALLCLOCKTIME quando a última execução da tarefa foi iniciada. DINT[0] contém os 32 bits menos significativos do valor; DINT[1] contém os 32 bits mais significativos do valor.

Watchdog DINT GSVSSV

Limite de tempo para a execução de todos os programas associados a essa tarefa. O tempo está em microssegundos.Se você inserir 0, estes valores serão atribuídos:Tempo: Tipo de Tarefa:0,5 s periódico5,0 s contínuo

Publicação 1756-RM003D-PT-P - Junho 2001

Page 131: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-55

Acesso ao objeto WALLCLOCKTIME

O objeto WALLCLOCKTIME fornece um registro de data e hora que o controlador pode usar para programação.

Atributo: Tipo de Dados: Instrução: Descrição:

CSTOffset DINT[2] GSVSSV

Offset positivo de CurrentValue do objeto CST (tempo de sistema coordenado, consulte a página 3-41). DINT[0] contém os 32 bits menos significativos do valor; DINT[1] contém os 32 bits mais significativos do valor.Valor em µs. O valor inicial é 0.

CurrentValue DINT[2] GSVSSV

O valor atual de WALLCLOCKTIME. DINT[0] contém os 32 bits menos significativos do valor; DINT[1] contém os 32 bits mais significativos do valor.O valor é a quantidade de microssegundos que decorreram desde 0000 hs 1 janeiro de 1972.Os objetos CST e WALLCLOCKTIME são relacionados matematicamente no controlador. Por exemplo, se você acrescentar CST CurrentValue e WALLCLOCKTIME CTSOffset, terá como resultado WALLCLOCKTIME CurrentValue.

DateTime DINT[7] GSVSSV

Data e hora em formato que possibilita a leitura.DINT[0] anoDINT[1] representação do mês através de inteiros (1-12)DINT[2] representação do dia através de inteiros (1-31)DINT[3] hora (0-23)DINT[4] minuto (0-59)DINT[5] segundos (0-59)DINT[6] microssegundos (0-999.999)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 132: CONTROLADORES LOGIX 5000 -

3-56 Instruções de Entrada/Saída (MSG, GSV, SSV)

Exemplo de Programação GSV/SSV

Obtenção de informações de falha

Os exemplos a seguir usam as instruções GSV para obter informações de falha.

Obtenção de informações de falha de E/SNeste exemplo, as informações de falha do módulo de E/S são obtidas em disc_in_2 e colocadas nos dados em uma estrutura definida pelo usuário em disc_in_2_info.

Obtenção de informações de status do programaNeste exemplo, as informações de status são obtidas sobre o programa discrete e colocadas nos dados em uma estrutura definida pelo usuário em discrete_info.

Obtenção de informações de status da tarefaNeste exemplo, as informações de status são obtidas sobre a tarefa IO_test e colocadas nos dados em uma estrutura definida pelo usuário em io_test_info.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 133: CONTROLADORES LOGIX 5000 -

Instruções de Entrada/Saída (MSG, GSV, SSV) 3-57

Configuração de flags de habilitação e desabilitação

O exemplo a seguir usa a instrução SSV para habilitar ou desabilitar um programa. Você pode usar este método também para habilitar ou desabilitar um módulo de E/S, que é uma solução de programa semelhante à utilização de bits inibidos com um controlador CLP-5.

Com base no status de SW.1, coloque o valor apropriado no atributo disableflag do programa discrete.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 134: CONTROLADORES LOGIX 5000 -

3-58 Instruções de Entrada/Saída (MSG, GSV, SSV)

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 135: CONTROLADORES LOGIX 5000 -

Capítulo 4

Instruções de Comparação(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Introdução As instruções de comparação permitem a comparação de valores através do uso de uma expressão ou uma instrução de comparação específica.

Você pode comparar valores de diferentes tipos de dados como, por exemplo, ponto flutuante e inteiro.

Para instruções de lógica ladder, os tipos de dados em negrito indicam os tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dado ótimo, geralmente DINT ou REAL.

Se você quiser: Use esta instrução: Consulte página:

comparar valores com base em uma expressão

CMP 4-2

testar se dois valores são iguais EQU 4-7

testar se um valor é maior ou igual a um segundo valor

GEQ 4-11

testar se um valor é maior do que um segundo valor

GRT 4-15

testar se um valor é menor ou igual a um segundo valor

LEQ 4-19

testar se um valor é menor do que um segundo valor

LES 4-23

testar se um valor está entre outros dois valores

LIM 4-27

passar dois valores por uma máscara e testar se os mesmos são iguais

MEQ 4-33

testar se um valor não é igual a um segundo valor

NEQ 4-38

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 136: CONTROLADORES LOGIX 5000 -

4-2 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Comparação (CMP)

A instrução CMP realiza uma comparação das operações aritméticas especificadas na expressão.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Define a expressão CMP usando operadores, tags e valores imediatos. Use parênteses ( ) para definir as seções das expressões mais complexas.

A execução de uma instrução CMP é um pouco mais lenta e usa mais memória do que a execução de outras instruções de comparação. A vantagem da instrução CMP é que a mesma permite a inserção de expressões complexas em uma instrução.

Flags de Status Aritmético: A instrução CMP afeta somente os flags de status aritmético se a expressão contiver um operador (ex.: +, −, *, /) que afete os flags de status aritmético.

Condições de Falha: nenhuma

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição:

Expressão SINTINTDINTREAL

imediatotag

uma expressão composta por tags e/ou valores imediatos separados por operadores

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 137: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-3

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Caso uma expressão seja inserida sem um operador de comparação como, por exemplo, value_1 + value_2 ou value_1, a instrução avaliará a expressão como:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

fim

avalie a expressãoa expressão é

verdadeira

a expressão é falsa

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

entrada da condição da linha for verdadeira

Se a instrução CMP considerar a expressão verdadeira, a saída da condição da linha será verdadeira.

Se a expressão: A saída da condição da linha é definida em:

diferente de zero verdadeira

zero falsa

Publicação 1756-RM003D-PT-P - Junho 2001

Page 138: CONTROLADORES LOGIX 5000 -

4-4 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Expressões CMP

As expressões das instruções CMP são programadas da mesma forma que as expressões nas instruções FSC. 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 DINT, REAL

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

Operador: Descrição: Ótimo:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 139: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-5

Formatação de 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:

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.

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)

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. <, <=, >, >=, =

7. − (subtração), +

8. AND

9. XOR

10. OR

Publicação 1756-RM003D-PT-P - Junho 2001

Page 140: CONTROLADORES LOGIX 5000 -

4-6 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Igual a (EQU)

A instrução EQU testa se Source A é igual à Source B.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Bloco de Função

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição: Notas:

Source A SINTINTDINTREALtipo de string

imediatotag

valor a ser testado em relação Source B

• Se você inserir um tag SINT ou INT, o valor o converte para um valor DINT por extensão de sinal.

• Valores REAL são raramente absolutamente iguais. Caso seja necessário determinar a igualdade de dois valores REAL, use a instrução LIM.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar• Para testar os caracteres de um string,

insira um tag tipo string para Source A e Source B.

Source B SINTINTDINTREALtipo de string

imediatotag

valor a ser testado em relação Source A

Operando: Tipo: Formato: Descrição:

tag de bloco FBD_COMPARE estrutura estrutura EQU

Publicação 1756-RM003D-PT-P - Junho 2001

Page 141: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-7

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: Use a instrução EQU para comparar dois números ou dois strings de caracteres ASCII. Quando comparar strings:

• Os strings são iguais se seus caracteres corresponderem.

• Os caracteres ASCII são sensíveis ao contexto. O “A” maiúsculo ($41) não é igual ao “a” minúsculo ($61).

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

SourceA REAL Valor para comparar com SourceB.válido = qualquer flutuante

SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest BOOL Resultado da instrução. Isto equivale à saída da condição da linha da instrução EQU de lógica ladder.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 142: CONTROLADORES LOGIX 5000 -

4-8 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

Source A = Source Bsim

não

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

Se string_1 for igual a string_8, a saída da condição da linha é definida como verdadeira.

Neste exemplo, os dois strings são iguais. Cada caracter em string_1 corresponde ao caracter em string_8.

Se value_1 for igual a value_2, a saída da condição da linha é definida como verdadeira.

EqualSource A string_1

'ABC'Source B string_8

'ABC'

EQU

42621

Publicação 1756-RM003D-PT-P - Junho 2001

Page 143: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-9

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn está desenergizado EnableOut está desenergizado.

EnableIn está energizado A instrução executa.EnableOut está energizado.

Os valores da saída de function_block_A e function_block_B se tornam valores de entrada para SourceA e SourceB, respectivamente. Se SourceA = SourceB, a instrução EQU energiza o Dest, que habilita function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 144: CONTROLADORES LOGIX 5000 -

4-10 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Maior ou Igual a (GEQ)

A instrução GEQ testa se Source A é maior ou igual à Source B.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Bloco de Função

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição: Notas:

Source A SINTINTDINTREALtipo de string

imediatotag

valor a ser testado em relação Source B

• Se você inserir um tag SINT ou INT, o valor o converte para um valor DINT por extensão de sinal.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar• Para testar os caracteres de um string,

insira um tag tipo string para Source A e Source B.

Source B SINTINTDINTREALtipo de string

imediatotag

valor a ser testado em relação a Source A

Operando: Tipo: Formato: Descrição:

tag de bloco FBD_COMPARE estrutura estrutura GEQ

Publicação 1756-RM003D-PT-P - Junho 2001

Page 145: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-11

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A instrução GEQ testa se Source A é maior ou igual à Source B.

Quando comparar strings:

• Os valores hexadecimais dos caracteres determinam se um string é menor ou maior que outro string. Para o código hexadecimal de caracter, consulte a parte de trás deste manual.

• Quando os dois strings são organizados como em uma lista telefônica, a ordem dos strings determina qual é maior.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

SourceA REAL Valor para comparar com SourceB.válido = qualquer flutuante

SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest BOOL Resultado da instrução. Isto é equivalente à saída da condição da linha para a instrução GEQ de Lógica Ladder.

Caracteres ASCII Códigos Hexadecimais

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

maior que

menor que

AB < B

a > B

Publicação 1756-RM003D-PT-P - Junho 2001

Page 146: CONTROLADORES LOGIX 5000 -

4-12 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

Source A ≥ Source Bsim

não

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

Se string_2 for maior que string_8, a saída da condição da linha é definida como verdadeira.

Neste exemplo, string_2 é maior que string_8. Quando os dois strings são organizados pelos valores hexadecimais, string_2 aparece depois de string_8. (Ou seja, em uma lista telefônica, ACA apareceria depois de ABC.)

Se value_1 for menor ou igual a value_2, a saída da condição da linha é definida como verdadeira.

Grtr Than or Eql (A>=B)Source A string_2

'ACA'Source B string_8

'ABC'

GEQ

42621

Publicação 1756-RM003D-PT-P - Junho 2001

Page 147: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-13

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn está desenergizado EnableOut está desenergizado.

EnableIn está energizado A instrução executa.EnableOut está energizado.

Os valores da saída de function_block_A e function_block_B se tornam valores de entrada para SourceA e SourceB, respectivamente. Se SourceA ≥ SourceB, a instrução GEQ energiza Dest, que habilita function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 148: CONTROLADORES LOGIX 5000 -

4-14 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Maior que (GRT)

A instrução GRT testa se Source A é maior ou igual à Source B.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Bloco de Função

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição: Notas:

Source A SINTINTDINTREALtipo de string

imediato tag valor a ser testado em relação a Source B

• Se você inserir um tag SINT ou INT, o valor o converte para um valor DINT por extensão de sinal.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar• Para testar os caracteres de um string,

insira um tag tipo string para Source A e Source B.

Source B SINTINTDINTREALtipo de string

imediato tag valor a ser testado em relação a Source A

Operando: Tipo: Formato: Descrição:

tag de bloco FBD_COMPARE estrutura estrutura GRT

Publicação 1756-RM003D-PT-P - Junho 2001

Page 149: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-15

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A instrução GRT testa se Source A é maior ou igual a Source B.

Quando comparar strings:

• Os valores hexadecimais dos caracteres determinam se um string é menor ou maior que outro string. Para o código hexadecimal de caracter, consulte a parte de trás deste manual.

• Quando os dois strings são organizados como em uma lista telefônica, a ordem dos strings determina qual é maior.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

SourceA REAL Valor para comparar com SourceB.válido = qualquer flutuante

SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest BOOL Resultado da instrução. Isto equivale à saída da condição da linha para instrução GRT de Lógica Ladder.

Caracteres ASCII Códigos Hexadecimais

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

maior que

menor que

AB < B

a > B

Publicação 1756-RM003D-PT-P - Junho 2001

Page 150: CONTROLADORES LOGIX 5000 -

4-16 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

Source A > Source Bsim

não

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

Se string_3 for maior que string_8, a saída da condição da linha é definida como verdadeira.

Neste exemplo, string_3 é maior que string_8. Quando os dois strings são organizados pelos valores hexadecimais, string_3 aparece após string_8. (Ou seja, em uma lista telefônica, ACA apareceria depois de ABC.)

Se value_1 for maior que value_2, a saída da condição da linha é definida como verdadeira.

Greater Than (A>B)Source A string_3

'ACA'Source B string_8

'ABC'

GRT

42621

Publicação 1756-RM003D-PT-P - Junho 2001

Page 151: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-17

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn está desenergizado EnableOut está desenergizado.

EnableIn está energizado A instrução executa.EnableOut está energizado.

Os valores da saída de function_block_A e function_block_B se tornam valores de entrada para SourceA e SourceB, respectivamente. Se SourceA > SourceB, a instrução GRT energiza Dest, que habilita function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 152: CONTROLADORES LOGIX 5000 -

4-18 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Menor ou Igual a (LEQ)

A instrução LEQ testa se Source A é menor ou igual a Source B.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Bloco de Função

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição: Notas:

Source A SINTINTDINTREALtipo de string

imediatotag

valor a ser testado em relação a Source B

• Se você inserir um tag SINT ou INT, o valor o converte para um valor DINT por extensão de sinal.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar• Para testar os caracteres de um string,

insira um tag tipo string para Source A e Source B.

Source B SINTINTDINTREALtipo de string

imediatotag

valor a ser testado em relação a Source A

Operando: Tipo: Formato: Descrição:

tag de bloco FBD_COMPARE estrutura estrutura LEQ

Publicação 1756-RM003D-PT-P - Junho 2001

Page 153: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-19

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A instrução LEQ testa se Source A é menor ou igual a Source B.

Quando comparar strings:

• Os valores hexadecimais dos caracteres determinam se um string é menor ou maior que outro string. Para o código hexadecimal de caracter, consulte a parte de trás deste manual.

• Quando os dois strings são organizados como em uma lista telefônica, a ordem dos strings determina qual é maior.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

SourceA REAL Valor para comparar com SourceB.válido = qualquer flutuante

SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest BOOL Resultado da instrução. Isto equivale àsaída da condição da saída para a instrução LEQ de Lógica Ladder.

Caracteres ASCII Códigos Hexadecimais

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

maior que

menor que

AB < B

a > B

Publicação 1756-RM003D-PT-P - Junho 2001

Page 154: CONTROLADORES LOGIX 5000 -

4-20 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

Source A ≤ Source Bsim

não

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

Se string_4 for menor ou igual a string_8, a saída da condição da linha é definida como verdadeira.

Neste exemplo, string_4 é menor que string_8. Quando os dois strings são organizados pelos valores hexadecimais, string_4 aparece antes de string_8. (Ou seja, em uma lista telefônica, AAD apareceria antes de ABC.)

Se value_1 for menor ou igual a value_2, a saída da condição da linha é definida como verdadeira.

Less Than or Eql (A<=B)Source A string_4

'AAD'Source B string_8

'ABC'

LEQ

42621

Publicação 1756-RM003D-PT-P - Junho 2001

Page 155: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-21

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn está desenergizado EnableOut está desenergizado.

EnableIn está energizado A instrução executa.EnableOut está energizado.

Os valores da saída de function_block_A e function_block_B se tornam valores de entrada para SourceA e SourceB, respectivamente. Se SourceA ≤ SourceB, a instrução LEQ energiza Dest, que habilita function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 156: CONTROLADORES LOGIX 5000 -

4-22 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Menor Que (LES)

A instrução LES testa se Source A é menor do que Source B.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Bloco de Função

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição: Notas:

Source A SINTINTDINTREALtipo de string

imediatotag

valor a ser testado em relação a Source B

• Se você inserir um tag SINT ou INT, o valor o converte para um valor DINT por extensão de sinal.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar• Para testar os caracteres de um string,

insira um tag tipo string para Source A e Source B.

Source B SINTINTDINTREALtipo de string

imediatotag

valor a ser testado em relação a Source A

Operando: Tipo: Formato: Descrição:

tag de bloco FBD_COMPARE estrutura estrutura LES

Publicação 1756-RM003D-PT-P - Junho 2001

Page 157: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-23

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A instrução LES testa se Source A é menor do que Source B.

Quando comparar strings:

• Os valores hexadecimais dos caracteres determinam se um string é menor ou maior que outro string. Para o código hexadecimal de caracter, consulte a parte de trás deste manual.

• Quando os dois strings são organizados como em uma lista telefônica, a ordem dos strings determina qual é maior.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

SourceA REAL Valor para comparar com SourceB.válido = qualquer flutuante

SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest BOOL Resultado da instrução. Isto equivale à saída da condição da linha da instrução LES de Lógica Ladder.

Caracteres ASCII Códigos Hexadecimais

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

maior que

menor que

AB < B

a > B

Publicação 1756-RM003D-PT-P - Junho 2001

Page 158: CONTROLADORES LOGIX 5000 -

4-24 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

Source A < Source Bsim

não

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

Se string_5 for menor que string_8, a saída da condição da linha é definida como verdadeira.

Neste exemplo, string_5 é menor que string_8. Quando os dois strings são organizados pelos valores hexadecimais, string_5 aparece antes de string_8. (Ou seja, em uma lista telefônica, AAD apareceria antes de ABC.)

Se value_1 for menor que value_2, a saída da condição da linha é definida como verdadeira.

Less Than (A<B)Source A string_5

'AAD'Source B string_8

'ABC'

LES

42621

Publicação 1756-RM003D-PT-P - Junho 2001

Page 159: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-25

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é falso EnableOut está desenergizado.

EnableIn é verdadeiro A instrução executa.EnableOut está energizado.

Os valores da saída de function_block_A e function_block_B se tornam valores de entrada para SourceA e SourceB, respectivamente. Se SourceA < SourceB, a instrução LES energiza Dest, que habilita function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 160: CONTROLADORES LOGIX 5000 -

4-26 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Limite (LIM)

A instrução LIM testa se o valor de teste está dentro da faixa de Limite Inferior a Limite Superior.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de Função

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição:

Limite Inferior SINTINTDINTREAL

imediato tag valor do limite inferior

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Test (Teste) SINTINTDINTREAL

imediato tag valor de acordo com o teste

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Limite Superior

SINTINTDINTREAL

imediato tag valor do limite superior

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Operando: Tipo: Formato: Descrição:

tag de bloco FBD_LIMIT estrutura estrutura LIM

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

Publicação 1756-RM003D-PT-P - Junho 2001

Page 161: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-27

Parâmetros de saída

Descrição: A instrução LIM testa se o valor de teste está dentro da faixa de Limite Inferior a Limite Superior.

Os inteiros com sinal mudam do número positivo máximo para o número negativo máximo quando o bit mais significativo estiver energizado. Por exemplo, em inteiros com 16 bits (tipo INT), o inteiro positivo máximo é 32.767, que é representado em hexadecimal como 16#7FFF (bits 0 a 14 estão todos energizados). Se você incrementar esse número em um, o resultado é 16#8000 (bit 15 está energizado). Para inteiros com sinal, o hexadecimal 16#8000 é igual ao decimal –32.768. Incremente a partir desse ponto até que todos os 16 bits estejam energizados e terminem em 16#FFFF, que é igual ao decimal –1.

Isto pode ser representado como uma linha de número circular (consulte os seguintes diagramas). A instrução LIM começa no Limite Inferior e incrementa no sentido horário até atingir o Limite Superior. Qualquer valor de teste na faixa de sentido horário, desde o Limite Inferior até o Limite Superior define a saída da condição da linha como verdadeira. Qualquer valor de teste na faixa de sentido horário desde o Limite Superior até o Limite Inferior define a saída da condição da linha como falsa.

LowLimit REAL Valor do limite inferior.válido = qualquer flutuante

Test (Teste) REAL Valor para comparar com os limitesválido = qualquer flutuante

HighLimit REAL Valor do limite superior.válido = qualquer flutuante

Parâmetro de Entrada:

Tipo de Dados: Descrição:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest BOOL Resultado da instrução. Isto equivale àsaída da condição da linha para a instrução LIM de Lógica Ladder.

Se o Limite Inferior:

E o valor de Teste for: A saída da condição da linha é definida em:

≤ Limite Superior igual a ou entre os limites verdadeira

diferente ou fora dos limites falsa

≥ Limite Superior igual a ou fora dos limites verdadeira

diferente ou dentro dos limites falsa

Publicação 1756-RM003D-PT-P - Junho 2001

Page 162: CONTROLADORES LOGIX 5000 -

4-28 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

−1

0

+1

limite inferior

limite superior

+n−(n+1)

n = valor máximo

Limite Inferior ≤ Limite InferiorA instrução é verdadeira se o valor de teste for igual ou situar-se entre os limites superior e inferior.

Limite Inferior ≥ Limite SuperiorA instrução é verdadeira se o valor de teste for igual ou estiver fora da faixa entre os limites superior e inferior.

−1

0

+1

limite superior

limite inferior

+n−(n+1)n = valor máximo

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

avalie limite

a comparação é verdadeira

a comparação é falsa

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

Publicação 1756-RM003D-PT-P - Junho 2001

Page 163: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-29

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Limite Inferior≤ Limite SuperiorQuando 0 ≤ é o valor ≥ 100, light_1 é energizada.

Limite Inferior ≥ Limite SuperiorQuando o valor ≥ 0 ou valor ≤ −100, light_1é energizada.

exemplo 1

exemplo 2

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é falso EnableOut está desenergizado.

EnableIn é verdadeiro A instrução executa.EnableOut está energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 164: CONTROLADORES LOGIX 5000 -

4-30 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemplo do Bloco deFunção:

Os valores da saída de function_block_A e function_block_B se tornam valores de entrada para LowLimit e HighLimit, respectivamente.

LowLimit ≤ HighLimitSe LowLimit ≤ Test_value ≤ HighLimit, a instrução LIM energiza Dest, que habilita function_block_C.

LowLimit ≥ HighLimitSe LowLimit ≤ Test_value ≤ HighLimit, a instrução LIM energiza Dest, que habilita function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 165: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-31

Máscara Igual a (MEQ)

A instrução MEQ passa os valores de Source e Compare através de uma Máscara e compara os resultados.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de Função

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição:

Source SINTINTDINT

imediatotag

valor para ser testado comparando-se com Compare

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Mask SINTINTDINT

imediatotag

define que bits são bloqueados ou os que passam

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Compare SINTINTDINT

imediatotag

valor a ser testado em relação a Source

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Operando: Tipo: Formato: Descrição:

tag de bloco FBD_MASK_EQUAL estrutura estrutura MEQ

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

Source DINT Valor para testar com Compare.válido = qualquer inteiro

Mask DINT Define que bits bloquear (máscara).válido = qualquer inteiro

Compare DINT Comparação de valor.válido = qualquer inteiro

Publicação 1756-RM003D-PT-P - Junho 2001

Page 166: CONTROLADORES LOGIX 5000 -

4-32 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Parâmetros de saída

Descrição: Um “1” na máscara significa que o bit de dados passou. Um “0” na máscara significa que o bit de dados foi bloqueado. Geralmente, os valores Source, Mask e Compare são todos do mesmo tipo de dados.

Se houver uma mistura dos tipos de dados de inteiros, a instrução preencherá os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

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.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest BOOL Resultado da instrução. Isto equivale à saída da condição da linha para a instrução MEQ de Lógica Ladder.

Prefixo: Descrição:

16# hexadecimalpor exemplo; 16#0F0F

8# octalpor exemplo; 8#16

2# bináriopor exemplo; 2#00110011

Publicação 1756-RM003D-PT-P - Junho 2001

Page 167: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-33

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

fonte mascarada = comparaçãomascarada

sim

não

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

O value_1 é igual ao value_2 mascarado, portanto light_1 se acende. Um 0 na máscara impede que a máscara compare aquele bit (mostrado por x no exemplo).

value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0

value_1mascarado

0 1 0 1 0 1 0 1 1 1 1 1 x x x x value_2mascarado

0 1 0 1 0 1 0 1 1 1 1 1 x x x x

exemplo 1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 168: CONTROLADORES LOGIX 5000 -

4-34 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Execução do Bloco deFunção:

O value_1 mascarado não é igual ao value_2 mascarado, portanto light_1 se apaga. Um 0 na máscara impede que a máscara compare aquele bit (mostrado por x no exemplo).

exemplo 2

value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

value_1mascarado

x x x x x x x x x x x x 1 1 1 1 value_2mascarado

x x x x x x x x x x x x 0 0 0 0

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn está desenergizado EnableOut está desenergizado.

EnableIn está energizado A instrução executa.EnableOut está energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 169: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-35

Exemplo do Bloco deFunção:

Os valores de saídade function_block_A e function_block_B se tornam valores de entrada para Source e Compare, respectivamente. Se masked Source = the masked Compare, a instrução MEQ energiza Dest, que habilita function_block_C. Um 0 na máscara impede que a máscara compare aquele bit (mostrado por x no exemplo).

function_block_A

function_block_B

function_block_C

Source 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 Compare 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

Mask1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 Mask1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0

Sourcemascarado

0 1 0 1 0 1 0 1 1 1 1 1 x x x x Comparemascarado

0 1 0 1 0 1 0 1 1 1 1 1 x x x x

Publicação 1756-RM003D-PT-P - Junho 2001

Page 170: CONTROLADORES LOGIX 5000 -

4-36 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Diferente de (NEQ)

A instrução NEQ testa se Source A é diferente de Source B.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Bloco de Função

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição: Notas:

Source A SINTINTDINTREALtipo de string

imediato tag valor a ser testado em relação a Source B

• Se você inserir um tag SINT ou INT, o valor o converte para um valor DINT por extensão de sinal.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar• Para testar os caracteres de um string,

insira um tag tipo string para Source A e Source B.

Source B SINTINTDINTREALtipo de string

imediato tag valor a ser testado em relação a Source A

Operando: Tipo: Formato: Descrição:

tag de bloco FBD_COMPARE estrutura estrutura NEQ

Publicação 1756-RM003D-PT-P - Junho 2001

Page 171: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-37

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A instrução NEQ testa se Source A é diferente de Source B.

Quando comparar strings:

• Os strings não são iguais se qualquer de seus caracteres não corresponderem.

• Os caracteres ASCII são sensíveis ao contexto. O “A” maiúsculo ($41) não é igual ao “a” minúsculo ($61).

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

SourceA REAL Valor para comparar com SourceB.válido = qualquer flutuante

SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest BOOL Resultado da instrução. Isto equivale à saída da condição da linha para a instrução NEQ de Lógica Ladder.

Caracteres ASCII Códigos Hexadecimais

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

maior que

menor que

AB < B

a > B

Publicação 1756-RM003D-PT-P - Junho 2001

Page 172: CONTROLADORES LOGIX 5000 -

4-38 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

Source A = Source Bsim

não

saída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

Se string_6 não for igual a string_8, a saída da condição da linha é definida como verdadeira.

Neste exemplo, string_6 não é igual a string_8. Os dois strings não correspondem completamente.

Se value_1 não for igual a value_2, a saída da condição da linha é definida como verdadeira.

Not EqualSource A string_6

'ABC$00'Source B string_8

'ABC'

NEQ

42621

Publicação 1756-RM003D-PT-P - Junho 2001

Page 173: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-39

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn está desenergizado EnableOut está desenergizado.

EnableIn está energizado A instrução executa.EnableOut está energizado.

Os valores da saída de function_block_A e function_block_B se tornam valores de entrada para SourceA e SourceB, respectivamente. Se SourceA ≠ SourceB, a instrução NEQ energiza Dest, que habilita function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 174: CONTROLADORES LOGIX 5000 -

4-40 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 175: CONTROLADORES LOGIX 5000 -

Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-41

Publicação 1756-RM003D-PT-P - Junho 2001

Page 176: CONTROLADORES LOGIX 5000 -

4-42 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 177: CONTROLADORES LOGIX 5000 -

Capítulo 5

Instruções Matemáticas/Cálculo(CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Introdução As instruções de cálculo/matemática avaliam as operações aritméticas usando uma expressão ou uma instrução aritmética especificada.

É possível misturar tipos de dados, mas podem ocorrer perda de precisão e erros de arredondamentos e a instrução demorar mais tempo para executar. Verifique o bit S:V para observar se o resultado foi truncado.

Para instrução de lógica ladder, os tipos de dados em negrito indicam os tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dado ótimo, geralmente DINT ou REAL.

Se você quiser: Use esta instrução: Consulte página:

avaliar uma expressão CPT 5-2

somar dois valores ADD 5-6

subtrair dois valores SUB 5-9

multiplicar dois valores MUL 5-12

dividir dois valores DIV 5-15

determinar o resto após a divisão de um valor por outro

MOD 5-19

calcular a raiz quadrada de um valor SQR 5-23

considerar o sinal oposto de um valor NEG 5-26

considerar o valor absoluto de um valor ABS 5-29

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 178: CONTROLADORES LOGIX 5000 -

5-2 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Cálculo (CPT)

A instrução CPT realiza as operações aritméticas definidas na expressão.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: A instrução CPT realiza as operações aritméticas definidas na expressão. Quando habilitada, a instrução CPT avalia a expressão específica e coloca o resultado no Destino.

A execução de uma instrução CPT é um pouco mais lenta e usa mais memória do que a execução de outras instruções de cálculo/matemática. A vantagem da instrução CPT é que a mesma permite a inserção de expressões complexas em uma instrução.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Idiomas disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Expressão SINTINTDINTREAL

imediatotag

uma expressão composta por tags e/ou valores imediatos separados por operadores

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

DICA Não há limite para o comprimento de uma expressão.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 179: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-3

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira A instrução avalia a Expressão e coloca o resultado no Destino.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução CPT avalia o value_1 multiplicado por 5 e divide esse resultado pelo resultado do value_2 dividido por 7 e coloca o resultado final em result_1.

exemplo 1

Quando habilitada, a instrução CPT trunca float_value_1 e float_value_2, eleva float_value_2 truncado ao quadrado, divide por float_value_1 truncado pelo resultado e armazena o resto dessa operação de divisão em float_value_result_cpt.

exemplo 2

Publicação 1756-RM003D-PT-P - Junho 2001

Page 180: CONTROLADORES LOGIX 5000 -

5-4 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Operadores válidos

Formatação de 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:

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 DINT, REAL

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

Operador: Descrição: Ótimo:

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)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 181: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-5

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

Publicação 1756-RM003D-PT-P - Junho 2001

Page 182: CONTROLADORES LOGIX 5000 -

5-6 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Adição (ADD)

A instrução ADD soma Source A e Source B e coloca o resultado no Destino.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de Função

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Source A SINTINTDINTREAL

imediatotag

valor a ser somado à Source B (Fonte B)

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Source B SINTINTDINTREAL

imediatotag

valor a ser somado à Source A (Fonte A)

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH estrutura estrutura ADD

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

SourceA REAL Valor para adicionar a SourceB.válido = qualquer flutuante

SourceB REAL Valor para adicionar a SourceA.válido = qualquer flutuante

Publicação 1756-RM003D-PT-P - Junho 2001

Page 183: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-7

Parâmetros de saída

Descrição: A instrução ADD soma Source A e Source B e coloca o resultado no Destino.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são energizados para esta saída.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira Destination = Source A + Source B (Destino = Fonte A + Fonte B)A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução ADD soma float_value_1 e float_value_2 e coloca o resultado em add_result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 184: CONTROLADORES LOGIX 5000 -

5-8 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Exemplo do Bloco deFunção:

Os valores de saída de function_block_A e function_block_B se tornam os valores de entrada para SourceA e SourceB, respectivamente. A instrução calcula SourceA + SourceB e coloca o resultado em Dest, que se torna um parâmetro de entrada para function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 185: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-9

Subtração (SUB)

A instrução SUB subtrai Source B de Source A e coloca o resultado no Destino.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de Funçãoógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source A SINTINTDINTREAL

imediatotag

valor a partir do qual se subtrai a Source B

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Source B SINTINTDINTREAL

imediatotag

valor a ser subtraído de Source A

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH estrutura estrutura SUB

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

SourceA REAL Valor do qual se subtrai SourceB.válido = qualquer flutuante

SourceB REAL Valor do qual se subtrai SourceA.válido = qualquer flutuante

Publicação 1756-RM003D-PT-P - Junho 2001

Page 186: CONTROLADORES LOGIX 5000 -

5-10 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Parâmetros de saída

Descrição: A instrução SUB subtrai Source B de Source A e coloca o resultado no Destino.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são energizados para esta saída.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira Destino = Fonte B - Fonte AA saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução SUB subtrai float_value_2 de float_value_1 e coloca o resultado em subtract_result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 187: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-11

Exemplo do Bloco deFunção:

Os valores de saída de function_block_A e function_block_B se tornam os valores de entrada SourceA e SourceB, respectivamente. A instrução calcula SourceA − SourceB e coloca o resultado em Dest, que se torna um parâmetro de entrada para function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 188: CONTROLADORES LOGIX 5000 -

5-12 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Multiplicação (MUL)

A instrução MUL multiplica Source A por Source B e coloca o resultado no Destino.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de FunçãoLógica Ladder

Linguagens

Operando Tipo: Formato: Descrição:

Source A SINTINTDINTREAL

imediatotag

valor do multiplicando

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Source B SINTINTDINTREAL

imediatotag

valor do multiplicador

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH estrutura estrutura MUL

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source A REAL Valor do multiplicando.válido = qualquer flutuante

Source B REAL Valor do multiplicador.válido = qualquer flutuante

Publicação 1756-RM003D-PT-P - Junho 2001

Page 189: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-13

Parâmetros de saída

Descrição: A instrução MUL multiplica Source A por Source B e coloca o resultado no Destino.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução de Bloco deFunção:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritméticos são energizados para esta saída.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira Destino = Fonte B x Fonte AA saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução MUL multiplica float_value_1 por float_value_2 e coloca o resultado em multiply_result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 190: CONTROLADORES LOGIX 5000 -

5-14 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Exemplo do Bloco deFunção:

Os valores de saída de function_block_A e function_block_B se tornam os valores de entrada para SourceA e SourceB, respectivamente. A instrução calcula SourceA ∗ SourceB e coloca o resultado em Dest, que se torna um parâmetro de entrada para function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 191: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-15

Divisão (DIV)

A instrução DIV divide Source A por Source B e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source A SINTINTDINTREAL

imediatotag

valor do dividendo

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Source B SINTINTDINTREAL

imediatotag

valor do divisor

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH estrutura estrutura DIV

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source A REAL Valor do dividendo.válido = qualquer flutuante

Source B REAL Valor do divisor.válido = qualquer flutuante

Publicação 1756-RM003D-PT-P - Junho 2001

Page 192: CONTROLADORES LOGIX 5000 -

5-16 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Parâmetros de saída

Descrição: Se Destination não for REAL, a instrução trabalha com a porção fracionária do resultado da seguinte forma:

Se Source B (o divisor) for zero:

• Ocorre uma falha de advertência:

– Tipo 4: falha de programa

– Código 4: overflow aritmético

• O destino é configurado da seguinte maneira:

Para detectar um possível divisor por zero, examine o bit de falha de advertência (S:MINOR). Consulte o Procedimentos Comuns dos Controladores Logix5000, publicação 1756-PM001.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritméticos são energizados para esta saída.

Se Source A: Então a parte fracionária do resultado:

Exemplo:

e Source B não forem do tipo REAL

trunca Source A DINT 5

Source B DINT 3

Destination DINT 1

ou Source B for do tipo REAL

é arredondada Source A REAL 5.0

Source B DINT 3

Destination DINT 2

Se Source B é zero e: E o destino é: E o resultado é: Logo, o destino é configurado como:

todos os operandos são inteiros (SINT, INT ou DINT)

Source A

pelo menos um operando é REAL SINT, INT ou DINT positivo -1

negativo 0

REAL positivo 1.$ (positivo infinito)

negativo -1.$ (negativo infinito)

Uma falha de advertência ocorre se:

Tipo de falha: Código de falha:

o divisor é zero 4 4

Publicação 1756-RM003D-PT-P - Junho 2001

Page 193: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-17

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira Destination = Fonte B / Fonte AA saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução DIV divide float_value_1 por float_value_2 e coloca o resultado em divide_result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn está definido A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 194: CONTROLADORES LOGIX 5000 -

5-18 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Os valores de saída de function_block_A e function_block_B se tornam os valores para SourceA e SourceB, respectivamente. A instrução calcula SourceA / SourceB e coloca o resultado em Dest, que se torna um parâmetro de entrada para function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 195: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-19

Módulo (MOD)

A instrução MOD divide Source A por Source B e coloca o resto no Destino.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de FunçãoLógica Ladder

Linguagens

Operando Tipo: Formato: Descrição:

Source A SINTINTDINTREAL

imediatotag

valor do dividendo

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Source B SINTINTDINTREAL

imediatotag

valor do divisor

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH estrutura estrutura MOD

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source A REAL Valor do dividendo.válido = qualquer flutuante

Source B REAL Valor do divisor.válido = qualquer flutuante

Publicação 1756-RM003D-PT-P - Junho 2001

Page 196: CONTROLADORES LOGIX 5000 -

5-20 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Parâmetros de saída

Descrição: Se Source B (o divisor) for zero:

• Ocorre uma falha de advertência:

– Tipo 4: falha de programa

– Código 4: overflow aritmético

• O destino é configurado da seguinte maneira:

Para detectar um possível divisor por zero, examine o bit de falha de advertência (S:MINOR). Consulte Procedimentos Comuns dos Controladores Logix5000, publicação 1756-PM001.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha:

Execução de LógicaLadder:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritméticos são energizados para esta saída.

Se Source B é zero e: E o destino é: E o resultado é: Logo, o destino é configurado como:

todos os operandos são inteiros (SINT, INT ou DINT)

Source A

pelo menos um operando é REAL SINT, INT ou DINT positivo -1

negativo 0

REAL positivo 1.$ (positivo infinito)

negativo -1.$ (negativo infinito)

Uma falha de advertência ocorrerá se:

Tipo de falha: Código de falha:

o divisor é zero 4 4

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira Destination = Source A – ( TRN ( Source A / Source B ) * Source B )A saída da condição da linha é definida como verdadeira.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 197: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-21

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Quando habilitada, a instrução MOD divide o dividendo pelo divisor e coloca o resto em remainder. Nesse exemplo, 10 é dividido por 3, com um resto de um.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 198: CONTROLADORES LOGIX 5000 -

5-22 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Exemplo do Bloco deFunção:

Os valores de saída de function_block_A e function_block_B se tornam valores de entrada para SourceA e SourceB, respectivamente. A instrução calcula SourceA / SourceB (módulo) e coloca o resultado em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 199: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-23

Raiz Quadrada (SQR)

A instrução SQR calcula a raiz quadrada de Source e coloca o resultado no destino.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de FunçãoLógica Ladder

Linguagens

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

calcula a raiz quadrada desse valor

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura SQR

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Encontra a raiz quadrada deste valor.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritméticos são definidos para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 200: CONTROLADORES LOGIX 5000 -

5-24 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Descrição: Se Destination não for REAL, a instrução trabalha com a porção fracionária do resultado da seguinte forma:

Se Source for negativo, a instrução retira o valor absoluto de Source, antes de calcular a raiz quadrada.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Se Source for: Então a parte fracionária do resultado:

Exemplo:

diferente do tipo REAL trunca Source DINT 3

Destination DINT 1

do tipo REAL é arredondada Source REAL 3.0

Destination DINT 2

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira

A saída da condição da linha é definida como verdadeira.

Destination Source=

Quando habilitada, a instrução SQR calcula a raiz quadrada de value_1 e coloca o resultado em sqr_result .

Publicação 1756-RM003D-PT-P - Junho 2001

Page 201: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-25

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

O valor de saída do function_block_A se torna o valor de entrada para Source. A instrução calcula a raiz quadrada de Source e coloca o valor em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 202: CONTROLADORES LOGIX 5000 -

5-26 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Negação (NEG)

A instrução NEG altera o sinal da Fonte e coloca o resultado no Destino.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de FunçãoLógica Ladder

Linguagens

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

valor a ser transformado em negativo

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura NEG

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Valor para negar.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritméticos são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 203: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-27

Descrição: Se você tornar negativo um valor negativo, o resultado será positivo. Se você tornar negativo um valor positivo, o resultado será negativo.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira Destination = 0 − SourceA saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução NEG altera o sinal de value_1 e coloca o resultado em negate_result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 204: CONTROLADORES LOGIX 5000 -

5-28 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Exemplo do Bloco deFunção:

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução nega Source e coloca o valor em Dest, que se torna em um parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 205: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-29

Valor Absoluto (ABS)

A instrução ABS retira o valor absoluto de Fonte e coloca o resultado em Destino.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de FunçãoLógica Ladder

Linguagens

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

valor do qual se tira o valor absoluto

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura ABS

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Valor do qual se tira o valor absoluto.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritméticos são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 206: CONTROLADORES LOGIX 5000 -

5-30 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Descrição: A instrução ABS retira o valor absoluto de Fonte e coloca o resultado em Destino.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira Destination = | Source |A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução ABS coloca o valor absoluto de value_1 em value_1_absolute. Nesse exemplo, o valor absoluto de quatro negativo é quatro positivo.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 207: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-31

Exemplo do Bloco deFunção:

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução calcula o valor absoluto de Source e coloca o valor em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 208: CONTROLADORES LOGIX 5000 -

5-32 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 209: CONTROLADORES LOGIX 5000 -

Capítulo 6

Instruções de Movimentação/Lógica(MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Introdução As instruções de movimentação modificam e movem bits.

As instruções de lógica realizam operações de lógica nos bits.

É possível misturar tipos de dados, mas podem ocorrer perda de precisão e erros de arredondamentos e a instrução demora mais tempo para executar. Verifique o bit S:V para observar se o resultado foi truncado.

Para instruções de lógica lógica ladder, os tipos de dados em negrito indicam tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dado ótimo, geralmente DINT ou REAL.

Se você quiser: Use esta instrução: Consulte página:

copiar um valor MOV 6-2

copiar uma parte específica de um inteiro MVM 6-4

copiar uma parte específica de um inteiro no bloco de função

MVMT 6-7

mover bits dentro de um inteiro ou entre inteiros

BTD 6-10

movimentar bits dentro de um inteiro ou entre inteiros no bloco de função

BTDT 6-13

zerar um valor CLR 6-16

Se você quiser realizar uma: Use esta instrução: Consulte página:

operação bitwise AND AND 6-17

operação bitwise OR OR 6-21

operação bitwise, exclusive OR XOR 6-25

operação bitwise NOT NOT 6-29

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 210: CONTROLADORES LOGIX 5000 -

6-2 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Movimentação (MOV)

A instrução MOV copia Source em Destination. Source permanece inalterado.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: A instrução MOV copia Source em Destination. Source permanece inalterado.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

valor a ser movido (copiar)

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira A instrução copia Source em Destination.A saída da condição da linha é definida como verdadeira.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 211: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-3

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Quando habilitada, a instrução MOV copia os dados de value_1 para value_2.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 212: CONTROLADORES LOGIX 5000 -

6-4 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Movimentação Mascarada (MVM)

A instrução MVM copia Source em Destination e permite que parte dos dados sejam mascarados.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Esta instrução está disponível no bloco de função como MVMT, consulte a página 6-7.

Descrição: Quando habilitada, a instrução MVM usa uma Máscara para deixar passar ou bloquear os bits de dados em Source. Um “1“ na máscara significa que o bit de dados passou. Um “0“ na máscara significa que o bit de dados foi bloqueado.

Se houver uma mistura dos tipos de dados de inteiros, a instrução preencherá os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Source SINTINTDINT

imediatotag

valor a ser movido

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Mask SINTINTDINT

imediatotag

quais bits devem ser bloqueados ou podem passar

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Destination SINTINTDINT

tag tag para armazenar o resultado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 213: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-5

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.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Prefixo: Descrição:

16# hexadecimalpor exemplo; 16#0F0F

8# octalpor exemplo; 8#16

2# bináriopor exemplo; 2#00110011

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira A instrução passa o valor de Source pela Máscara e copia o resultado em Destination. Os bits não mascarados em Destination permanecem inalterados.A saída da condição da linha é definida como verdadeira.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 214: CONTROLADORES LOGIX 5000 -

6-6 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Esta instrução está disponível no bloco de função como MVMT, consulte a página 6-7.

Quando habilitada, a instrução MVM copia os dados de value_a para value_b, e permite, ao mesmo tempo, que os dados sejam mascarados (um

value_b antes da instruçãoMVM

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

value_a 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

mask_2 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

value_b depois da instruçãoMVM

0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1

As caixas sombreadas mostram os bits alterados em value_b.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 215: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-7

Movimentação Mascarada com Target (MVMT)

A instrução MVMT primeiro copia Target para Destination. Em seguida, a instrução compara Source mascarado com Destination e efetua as alterações solicitadas para Destination. O Target e o Source permanecem inalterados.

Operandos de LógicaLadder:

Esta instrução está disponível em lógica de ladder a relé como MVM, consulte a página 6-4.

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de Função

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MASKED_MOVE estrutura estrutura MVMT

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source DINT Insira o valor para movimentar para Destination baseado no valor da Máscara.válido = qualquer inteiro

Mask DINT Máscara de bits para movimentar de Source para Dest. Todos os bits definidos como um fazem com que os bits correspondentes se movimentem de Source para Dest. Todos os bits definidos como zero fazem com que os bits correspondentes se movimentem de Source para Dest.válido = qualquer inteiro

Target DINT Insira o valor para se movimentar para Dest antes de mover os bits Source através da Máscara.válido = qualquer inteiro

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest DINT Resultado da instrução de movimentação mascarada. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 216: CONTROLADORES LOGIX 5000 -

6-8 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Descrição: Quando habilitada, a instrução MVMT usa uma Máscara para passar ou bloquear os bits de dados Source. Um “1“ na máscara significa que o bit de dados passou. Um “0“ na máscara significa que o bit de dados foi bloqueado.

Se houver uma combinação de tipos de dados de inteiros, a instrução preencherá os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Inserção de um valor de máscara imediato usando uma Referência de Entrada

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.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Esta instrução está disponível em lógica ladder como MVM, consulte a página 6-4.

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Prefixo: Descrição:

16# hexadecimalpor exemplo; 16#0F0F

8# octalpor exemplo; 8#16

2# bináriopor exemplo; 2#00110011

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução executa.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 217: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-9

function_block_C

.

Source 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Mask1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

Dest 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1

As caixas sombreadas mostram os bits que foram alterados.

function_block_A

function_block_B

Etapa 1O controlador copia Target para Dest.

Target 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Etapa 2A instrução mascara Source e o compara a Dest. Todas as alterações solicitadas são feitas em Dest, que se torna o parâmetro de entrada para function_block_C. O Source e o Target se mantêm inalterados. Um 0 na máscara impede que a máscara compare aquele bit (mostrado por x no exemplo).

Publicação 1756-RM003D-PT-P - Junho 2001

Page 218: CONTROLADORES LOGIX 5000 -

6-10 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Distribuição do Campo do Bit (BTD)

A instrução BTD copia os bits especificados de Source, muda os bits para a posição adequada e escreve os bits em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Esta instrução está disponível no bloco de função como BTDT, consulte a página 6-13.

Descrição: Quando habilitada, a instrução BTD copia um grupo de bits de Source para Destination. O grupo de bits é identificado pelo bit de Source (número de bit menos significativo do grupo) e o Comprimento (número de bits a serem copiados). O bit de Destination identifica o número de bit menos significativo para iniciar em Destination. Source permanece inalterado.

Se o comprimento do campo do bit ultrapassar Destination, a instrução não salvará os bits extras. Qualquer bit extra não dá seqüência à próxima palavra.

Se houver uma mistura dos tipos de dados de inteiros, a instrução preencherá os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Source SINTINTDINT

imediatotag

tag que contém os bits a serem movimentados

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Bit Source DINT imediato(0-31 DINT)(0-15 INT)(0-7 SINT)

número do bit (número do bit menos significativo) onde a movimentação foi iniciadadeve estar dentro da faixa válida de tipos de dados Source

Destination SINTINTDINT

tag tag para onde os bits serão movidos

Bit de Destino DINT imediato(0-31 DINT)(0-15 INT)(0-7 SINT)

o número do bit (número de bit menos significativo) a partir de onde se inicia a cópia de bits de Sourcedeve estar dentro da faixa válida de tipos de dados Destination

Length DINT imediato (1-32) número de bits a ser movido

Publicação 1756-RM003D-PT-P - Junho 2001

Page 219: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-11

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira A instrução copia e muda os bits de Source para Destination.A saída da condição da linha é definida como verdadeira.

value_1 antes da instruçãoBTD

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

value_1 depois da instruçãoBTD

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

As caixas sombreadas mostram os bits alterados em value_1.

Quando habilitada, a instrução BTD movimenta os bits dentro de value_1.

Bit SourceBit Destination

exemplo 1

Quando habilitada, a instrução BTD move 10 bits de value_1 para value_2.

exemplo 2

Publicação 1756-RM003D-PT-P - Junho 2001

Page 220: CONTROLADORES LOGIX 5000 -

6-12 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Execução do Bloco deFunção:

Esta instrução está disponível no bloco de função como BTDT, consulte a página 6-13.

value_1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

value_2 antes dainstrução BTD

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

value_2 depois dainstrução BTD

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0

As caixas sombreadas mostram os bits que foram alterados em value_2.

Bit Source

Bit de Destino

Publicação 1756-RM003D-PT-P - Junho 2001

Page 221: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-13

Distribuição do Campo do Bit com Target (BTDT)

A instrução BTDT primeiro copia Target para Destination. Então a instrução copia os bits específicos do source, muda os bits para a posição apropriada e os escreve em Destination. O Target e o Source se mantêm inalterados.

Operandos de LógicaLadder:

Esta instrução está disponível em lógica ladder como BTD, consulte a página 6-10.

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de Função

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

tag do bloco FBD_BIT_FIELD_DISTRIBUTE estrutura estrutura BTDT

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source DINT Insira o valor que contém os bits a serem movidos para Destination.válido = qualquer inteiro

SourceBit DINT A posição do bit em Source (menor número de bit de onde se começa a movimentar).válido = 0-31

Length DINT Número de bits a movimentarválido = 1-32

DestBit DINT A posição do bit em Dest (menor número para onde se inicia a cópia dos bits).válido = 0-31

Target DINT Insira o valor para movimentar para Dest antes de movimentar bits de Source.válido = qualquer inteiro

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest DINT Resultado da operação da movimentação do bit. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 222: CONTROLADORES LOGIX 5000 -

6-14 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Descrição: Quando habilitada, a instrução BTD copia um grupo de bits de Source para Destination. O grupo de bits é identificado pelo bit de Source (número de bit menos significativo do grupo) e o Comprimento (número de bits a serem copiados). O bit de Destination identifica o número de bit menos significativo para iniciar em Destination. Source permanece inalterado.

Se o comprimento do campo do bit ultrapassar Destination, a instrução não salvará os bits extras. Qualquer bit extra não dá seqüência à próxima palavra.

Flags de Status Aritmético: Os flags de status aritmético são afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

Esta instrução está disponível em lógica ladder como BTD, consulte a página 6-10.

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução executa.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 223: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-15

Exemplo do Bloco deFunção:

Target 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

function_block_C

function_block_A

function_block_B

function_block_D

Source 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

As caixas sombreadas mostram os bits que foram alterados.

SourceBitDestBit

Etapa 1O controlador copia Target para Dest.

Etapa 2O SourceBit e o Length especificam que bits no Source devem ser copiados em Dest, começando por DestBit. O Source e o Target se mantêm inalterados. O Dest alterado se torna o parâmetro de entrada para function_block_C.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 224: CONTROLADORES LOGIX 5000 -

6-16 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Zeramento (CLR)

A instrução CLR zera todos os bits de Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: A instrução CLR zera todos os bits de Destination.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Destination SINTINTDINTREAL

tag tag a ser zerado

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira A instrução zera Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução CLR zera todos os bits de value_1.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 225: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-17

Bitwise AND (AND)

A instrução AND realiza uma operação bitwise AND usando os bits em Source A e Source B e coloca o resultado no Destino.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source A SINTINTDINT

imediatotag

valor para AND com Source B

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Source B SINTINTDINT

imediatotag

valor para AND com Source A

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Destination SINTINTDINT

tag armazena o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_LOGICAL estrutura estrutura AND

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

SourceA DINT Valor para AND com SourceB.válido = qualquer inteiro

SourceB DINT Valor para AND com SourceA.válido = qualquer inteiro

Publicação 1756-RM003D-PT-P - Junho 2001

Page 226: CONTROLADORES LOGIX 5000 -

6-18 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Parâmetros de saída

Descrição: Quando habilitada, a instrução avalia a operação AND

Se houver uma combinação de tipos de dados de inteiros, a instrução preencherá os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest DINT Resultado da instrução. Os flags de status aritmético são energizados para esta saída.

Se o bit em Source A for:

E o bit em Source B for:

O bit em Destination será:

0 0 0

0 1 0

1 0 0

1 1 1

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira A instrução realiza uma operação bitwise AND.A saída da condição da linha é definida como verdadeira.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 227: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-19

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Exemplo do Bloco deFunção

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

value_result_and 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

Quando habilitada, a instrução AND realiza uma operação de bitwise AND em value_1 e value_2 e coloca o resultado em value_result_and.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução executa.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 228: CONTROLADORES LOGIX 5000 -

6-20 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

SourceA 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

SourceB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Dest 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

.

Quando habilitada, a instrução AND logicamente junta (AND) SourceA e SourceB. A instrução coloca o resultado em Dest, que se torna um parâmetro de entrada para function_block_C.

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 229: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-21

Bitwise OR (OR)

A instrução OR realiza uma operação bitwise OR usando os bits em Source A e Source B e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source A SINTINTDINT

imediatotag

valor para OR com Source B

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Source B SINTINTDINT

imediatotag

valor para OR com Source A

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Destination SINTINTDINT

tag armazena o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_LOGICAL estrutura estrutura OR

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

SourceA DINT Valor para OR com SourceB.válido = qualquer inteiro

SourceB DINT Valor para OR com SourceA.válido = qualquer inteiro

Publicação 1756-RM003D-PT-P - Junho 2001

Page 230: CONTROLADORES LOGIX 5000 -

6-22 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Parâmetros de saída

Descrição: Quando habilitada, a instrução avalia a operação OR

Se houver uma combinação de tipos de dados de inteiros, a instrução preencherá os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest DINT Resultado da instrução. Os flags de status aritmético são energizados para esta saída.

Se o bit em Source A for:

E o bit em Source B for:

O bit em Destination será:

0 0 0

0 1 1

1 0 1

1 1 1

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira A instrução realiza uma operação bitwise OR.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução OR realiza uma operação de bitwise OR em value_1 e value_2 e coloca o resultado em value_result_or.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 231: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-23

Execução do Bloco deFunção:

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

value_result_or 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução executa.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 232: CONTROLADORES LOGIX 5000 -

6-24 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Exemplo do Bloco deFunção:

SourceA 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

SourceB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Dest 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1

function_block_C

Quando habilitada, a instrução OR realiza uma operação lógica OR de SourceA e SourceB. A instrução coloca o resultado em Dest, que se torna um parâmetro de entrada para function_block_C.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 233: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-25

Bitwise Exclusive OR (XOR)

A instrução XOR realiza uma operação bitwise XOR usando os bits em Source A e Source B e coloca o resultado no Destino.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source A SINTINTDINT

imediatotag

valor para XOR com Source B

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Source B SINTINTDINT

imediatotag

valor para XOR com Source A

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Destination SINTINTDINT

tag armazena o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_LOGICAL estrutura estrutura XOR

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

SourceA DINT Valor para XOR com SourceB.válido = qualquer inteiro

SourceB DINT Valor para XOR com SourceA.válido = qualquer inteiro

Publicação 1756-RM003D-PT-P - Junho 2001

Page 234: CONTROLADORES LOGIX 5000 -

6-26 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Parâmetros de saída

Descrição: Quando habilitada, a instrução avalia a operação XOR

Se houver uma combinação de tipos de dados de inteiros, a instrução preencherá os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest DINT Resultado da instrução. Os flags de status aritméticos são energizados para esta saída.

Se o bit em Source A for:

E o bit em Source B for:

O bit em Destination será:

0 0 0

0 1 1

1 0 1

1 1 0

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira A instrução realiza uma operação bitwise OR.A saída da condição da linha é definida como verdadeira.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 235: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-27

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

value_result_xor 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1

Quando habilitada, a instrução XOR realiza uma operação de bitwise XOR em value_1 e value_2 e coloca o resultado em value_result_xor.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução executa.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 236: CONTROLADORES LOGIX 5000 -

6-28 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Exemplo do Bloco deFunção:

SourceA 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

SourceB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Dest 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1

.

function_block_C

Quando habilitada, a instrução XOR executa um OR exclusivo em SourceA e SourceB. A instrução coloca o resultado em Dest, que se torna o parâmetro de entrada para function_block_C.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 237: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-29

Bitwise NOT (NOT)

A instrução NOT realiza uma operação bitwise NOT usando os bits em Source e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINT

imediatotag

valor para NOT

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Destination SINTINTDINT

tag armazena o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_CONVERT estrutura estrutura NOT

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source DINT Valor para NOT.válido = qualquer inteiro

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest DINT Resultado da instrução. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 238: CONTROLADORES LOGIX 5000 -

6-30 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Descrição: Quando habilitada, a instrução avalia a operação NOT

Se houver uma combinação de tipos de dados de inteiros, a instrução preencherá os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Se o bit em Source for:

O bit em Destination será:

0 1

1 0

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira A instrução realiza uma operação bitwise NOT.A saída da condição da linha é definida como verdadeira.

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_result_not 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0

Quando habilitada, a instrução NOT realiza uma operação de bitwise NOT em value_1 e coloca o resultado em value_result_not.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 239: CONTROLADORES LOGIX 5000 -

Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-31

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução executa.EnableOut é energizado.

Source 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0

function_block_C

Quando energizada, a instrução NOT complementa o Source. A instrução coloca o resultado em Dest, que se torna o parâmetro de entrada para function_block_C.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 240: CONTROLADORES LOGIX 5000 -

6-32 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 241: CONTROLADORES LOGIX 5000 -

Capítulo 7

Instruções Array (File/Miscellaneous)(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Introdução As instruções de arquivo/diversos operam nas matrizes de dados.

É possível misturar tipos de dados, mas podem ocorrer perda de precisão e erros de arredondamentos e a instrução demorar mais tempo para executar. Verifique o bit S:V para observar se o resultado foi truncado.

Para instruções de lógica ladder, os tipos de dados em negrito indicam os tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dado ótimo, geralmente DINT ou REAL.

Se você quiser: Use esta instrução: Consultepágina:

realizar operações de função, desvio, lógica e aritmética nos valores de matrizes

FAL 7-7

buscar e comparar valores em matrizes FSC 7-20

copiar o conteúdo de uma matriz para outra matriz

COP 7-32

copiar o conteúdo de uma matriz para outra matriz sem interrupção

CPS 7-32

preencher uma matriz com dados específicos FLL 7-37

calcular a média de uma matriz de valores AVE 7-41

classificar uma dimensão de dados da matriz em ordem crescente

SRT 7-45

calcular o desvio padrão de uma matriz de valores

STD 7-49

encontrar o tamanho de uma dimensão de uma matriz

SIZE 7-53

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 242: CONTROLADORES LOGIX 5000 -

7-2 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Seleção do Modo de Operação

Para as instruções FAL e FSC, o modo informa o controlador sobre como distribuir a operação de matriz.

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.

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 varredurasinserir 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)

Matriz de dados uma varredura

16639

Publicação 1756-RM003D-PT-P - Junho 2001

Page 243: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-3

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.

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

uma varredura

operação completa

zerar os bits de status e zerar o valor .POS

entrada da condição da linha

bit .EN

bit DN

varredura da instrução

40010nenhuma execução ocorre

Publicação 1756-RM003D-PT-P - Junho 2001

Page 244: CONTROLADORES LOGIX 5000 -

7-4 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

disparo, a entrada da condição da linha pode se alterar repetidamente sem interromper a execução da instrução.

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.

IMPORTANTE Evite usar os resultados de uma instrução de arquivo operando no modo numérico até que o bit .DN fique energizado.

uma varredura

16641

segunda varredura

próxima varredura

varreduras múltiplas varreduras múltiplas

entrada da condição da linha

bit .EN

bit DN

varredura da instrução

zera os bits de status e zera o valor .POS

zera os bits de status e zera o valor .POS

a linha se torna verdadeira na conclusão a linha se torna falsa na conclusão

40013operação completa operação completa

Publicação 1756-RM003D-PT-P - Junho 2001

Page 245: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-5

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.

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 isso ocorre, apenas um elemento da matriz é manipulado. Se a entrada da condição da linha permanecer

16643

1a. instrução habilitada2a. instrução habilitada3a. instrução habilitada

última instrução habilitada

Publicação 1756-RM003D-PT-P - Junho 2001

Page 246: CONTROLADORES LOGIX 5000 -

7-6 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

verdadeira durante mais de uma varredura, a instrução executa somente durante a primeira varredura.

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.

uma varredura

entrada da condição da linha

bit .EN

bit DN

varredura da instrução

operaçãocompleta

zerar os bits de status e zerar o valor .POS

40014

Publicação 1756-RM003D-PT-P - Junho 2001

Page 247: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-7

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ógicaLadder:

Estrutura:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: A instrução FAL realiza as mesmas operações nas matrizes conforme a instrução CPT realiza as operações dos elementos.

Linguagens Disponíveis:

lógica Ladder

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 elemento atual na matrizvalor inicial é normalmente 0

Mode DINT imediato como distribuir a operaçãoselecione INC, ALL ou insira um número

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Expressão SINTINTDINTREAL

imediato tag uma expressão composta por tags e/ou valores imediatos separados por operadores

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Mnemônico: Tipo 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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 248: CONTROLADORES LOGIX 5000 -

7-8 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Os exemplos que começam na página 7-15 mostram como usar o valor .POS para entrar em 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

Publicação 1756-RM003D-PT-P - Junho 2001

Page 249: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-9

Execução de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

examinar bit .DNbit .DN = 0

bit .DN = 1

entrada da condição da linha for falsa

saída da condição da linhaé definida como falsa

fim

bit .EN é desenergizadobit .ER é desenergizadobit .DN é desenergizadovalor .POS é desenergizado

modo INCnão

sim

modo ALLnão

sim

bit .EN é desenergizado

.POS = .POS + 1

modo numérico

bit interno é desenergizado

.LEN < 0 ou .POS < 0

sim

não

falha grave

.POS = .POS – 1

.POS = 0sim

não

bit .DN é energizado bit .EN é energizado

.POS < .LENnão

sim

modo .LEN>

sim

não

modo .LEN>

.LEN = 0sim

não

bit .DN é energizado bit .EN é desenergizado

página 7-14

Publicação 1756-RM003D-PT-P - Junho 2001

Page 250: CONTROLADORES LOGIX 5000 -

7-10 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condição: Ação:

entrada da condição da linha for verdadeira

saída da condição da linha é definida como verdadeira

fim

examinar bit .DN

bit .DN = 0

bit .DN = 1

.LEN = 0não

sim

modo INCnão

sim

modo ALL

não

sim

loop_count = loop_count – 1

loop_count < 0não

sim

.POS = .POS + 1

avaliar a expressão

.POS = .POS + 1

examine S:Vnão

sim

bit .ER é energizado

.POS = .LENnão

sim

bit .DN é energizadobit .EN é energizado .POS = .POS + 1

examinar bit .ERbit .ER = 0

bit .ER = 1

bit .DN é energizadobit .EN é energizado modo

INCmodo ALL

modo numérico

comum

página7-14

página 7-12 página 7-13

.LEN < 0 ou

.POS < 0sim

não

falha grave

Publicação 1756-RM003D-PT-P - Junho 2001

Page 251: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-11

Condição: Ação:

examinar bit .ENbit .EN = 1

bit .EN = 0

.POS = .POS + 1

.POS ≥ .LENsim

não

bit .EN é energizadoloop_count = 1.POS = .POS – 1

examinarbit interno

bit = 1

bit = 0

bit interno é energizado

modo INC

comum

.POS = .POS – 1

.POS = 0sim

não

bit .DN é energizado bit .EN é energizado

saída da condição da linha é definida como verdadeira

fim

página 7-11

Publicação 1756-RM003D-PT-P - Junho 2001

Page 252: CONTROLADORES LOGIX 5000 -

7-12 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condição: Ação:

examinar bit .ENbit .EN = 0

bit .EN = 1

.POS = .POS + 1

.POS ≥ .LENsim

não

loop_count = .LEN – .POS.POS = .POS – 1

examinarbit interno

bit = 1

bit = 0

bit .EN é energizado

modo ALL

comum

.POS = .POS – 1

.POS = 0sim

não

bit .DN é energizado bit .EN é energizado

saída da condição da linha é definida como verdadeira

fim

página 7-11

Publicação 1756-RM003D-PT-P - Junho 2001

Page 253: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-13

Condição: Ação:

examinar bit .ENbit .EN = 1

bit .EN = 0

.POS = .POS + 1

.POS ≥ .LENsim

não

examinarbit interno

bit = 1

bit = 0

bit interno é energizado

modonumérico

comum

.POS = .POS – 1

.POS = 0sim

não

bit .DN é energizado bit .EN é energizado

saída da condição da linha é definida como verdadeira

fim

modo .LEN ≥

sim

nãomodo .LEN>

bit .EN é energizadoloop_count = .LEN – .POS.POS = .POS – 1

modo ≥loop_count

não

bit .EN é energizadoloop_count = mode

sim

página 7-11

Publicação 1756-RM003D-PT-P - Junho 2001

Page 254: CONTROLADORES LOGIX 5000 -

7-14 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemplo de LógicaLadder:

Quando habilitada, a instrução FAL copia cada elemento de array_2 na mesma posição dentro de array_1.

cópia de matriz para matriz

cópia de elemento para matriz

Quando habilitada, a instrução FAL copia value_1 nas primeiras 10 posições da segunda dimensão de array_2.

Expressãoarray_2[control_2.pos]

Destinationarray_1[control_2.pos]

Expressãovalue_1

Destinationarray_2[0,control_2.pos]

cópia de matriz para elemento

Cada vez que a instrução FAL é habilitada, ela copia o valor atual de array_1 em value_1. A instrução FAL usa o modo de incremento, de forma que somente um valor da matriz é copiado cada vez que a instrução é habilitada. Na próxima vez em que a instrução é habilitada, ela sobrescreve value_1 sobre o próximo valor em array_1.

Expressãoarray_1[control_1.pos]

Destinationvalue_1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 255: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-15

operação aritmética: (matriz/matriz) para matriz

Quando habilitada, a instrução FAL divide o valor da posição atual de array_2 pelo valor da posição atual de array_3 e armazena o resultado na posição atual de array_1.

Expressãoarray_2[control_2.pos] / array_3[control_2.pos]

Destinationarray_1[control_2.pos]

operação aritmética: (elemento + elemento) para matriz

Quando habilitada, a instrução FAL adiciona value_1 e value_2 e armazena o resultado na posição atual de array_1.

Expressãovalue_1 + value_2

Destinationarray_1[control_1.pos]

operação aritmética: (matriz + elemento) para matriz

Quando habilitada, a instrução FAL adiciona o valor da posição atual de array_1 com value_1 e armazena o resultado na posição atual de array_3. A instrução deve ser executada 10 vezes para que array_1 e array_3 sejam totalmente manipulados.

Expressãoarray_1[control_1.pos] + value_1

Destinationarray_3[control_1.pos]

Publicação 1756-RM003D-PT-P - Junho 2001

Page 256: CONTROLADORES LOGIX 5000 -

7-16 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

operação aritmética: (elemento + matriz) para elemento

Cada vez que a instrução FAL é habilitada, ela adiciona value_1 ao valor atual de array_1 e armazena o resultado na posição atual de value_2. A instrução FAL usa o modo de incremento de forma que somente um valor da matriz seja adicionado a value_1 cada vez que a instrução é habilitada.1 A próxima vez que a instrução é habilitada, a instrução sobrescreve value_2.

Expressãovalue_1 + array_1[control_1.pos]

Destinationvalue_2

operação aritmética: (matriz ∗ matriz) para elemento

Quando habilitada, a instrução FAL multiplica o valor atual de array_1 pelo valor atual de array_3 e armazena o resultado em value_1. A instrução FAL usa o modo de incremento de forma que somente um par de valores da matriz seja multiplicado cada vez que a instrução é habilitada.1 A próxima vez que a instrução é habilitada, a instrução sobrescreve value_1.

Expressãoarray_1[control_1.pos] * array_3[control_1.pos]

Destinationvalue_1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 257: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-17

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 DINT, REAL

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

Operador: Descrição: Ótimo:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 258: CONTROLADORES LOGIX 5000 -

7-18 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

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:

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.

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)

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

Publicação 1756-RM003D-PT-P - Junho 2001

Page 259: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-19

Comparação e Busca de Arquivo (FSC)

A instrução FSC compara valores em uma matriz, elemento por elemento.

Operandos de LógicaLadder:

Estrutura:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder

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 matrizvalor inicial é normalmente 0

Mode DINT imediato como distribuir a operaçãoselecione INC, ALL ou insira um número

Expressão SINTINTDINTREAL

imediatotag

uma expressão composta por tags e/ou valores imediatos separados por operadores

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

ENDNER

File Search/CompareControl ?Length ?Position ?Mode ?Expression ?

FSC

42577

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit habilitado indica que a instrução FSC está habilitada.

.DN BOOL O bit Executado é energizado quando a instrução operou no último elemento(.POS = .LEN).

.ER BOOL O bit de erro não é modificado.

.IN BOOL O bit inibido indica que a instrução FSC detectou uma comparação verdadeira. É necessário zerar esse bit para continuar a operação de busca.

.FD BOOL O bit encontrado indica que a instrução FSC detectou uma comparação verdadeira.

.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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 260: CONTROLADORES LOGIX 5000 -

7-20 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

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: Código de falha:

.POS < 0 ou .LEN < 0 4 21

Publicação 1756-RM003D-PT-P - Junho 2001

Page 261: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-21

Execução de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

examinar bit .DNbit .DN = 0

bit .DN = 1

entrada da condição da linha for falsa

saída da condição da linha é definida como falsa

fim

bit .EN é desenergizadobit .ER é desenergizadobit .DN é desenergizadovalor .POS é desenergizado

modo INCnão

sim

modo ALLnão

sim

bit .EN é desenergizado

.POS = .POS + 1

modo numérico

bit interno é desenergizado

.LEN < 0 ou .POS < 0

sim

não

falha grave

.POS = .POS – 1

.POS = 0sim

não

bit .DN é energizado bit .EN é energizado

.POS < .LENnão

sim

modo .LEN>

sim

não

modo .LEN>

.LEN = 0sim

não

bit .DN é energizado bit .EN é desenergizado

página 7-14

Publicação 1756-RM003D-PT-P - Junho 2001

Page 262: CONTROLADORES LOGIX 5000 -

7-22 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condição: Ação:

saída da condição da linha é definida como

fim

examinar bit .IN

bit .DN = 0

bit .DN = 1

.LEN = 0não

sim

modo INCnão

sim

modo ALL

não

sim

loop_count = loop_count – 1

loop_count < 0não

sim

.POS = .POS + 1

avaliar comparação

.POS = .POS + 1

correspondêncianão

sim

bit .EN é energizadobit .FD é energizadobit .IN é energizado

.POS = .LENnão

sim

bit .DN é energizadobit .EN é energizado .POS = .POS + 1

examinar bit .ERbit .ER = 0

bit .ER = 1

bit .DN é energizadobit .EN é energizado modo

INCmodo ALL

modo numérico

comum

página 7-27

página 7-25 página 7-26

.LEN < 0 ou

.POS < 0sim

não

falha grave

examinar bit .DN

bit .DN = 1

bit .IN = 0

bit .DN = 0

entrada da condição da linha for verdadeira

Publicação 1756-RM003D-PT-P - Junho 2001

Page 263: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-23

Condição: Ação:

examinar bit .ENbit .EN = 1

bit .EN = 0

.POS = .POS + 1

.POS ≥ .LENsim

não

bit .EN é energizadoloop_count = 1.POS = .POS – 1

examinarbit interno

bit = 1

bit = 0

bit interno é energizado

modo INC

comum

.POS = .POS – 1

.POS = 0sim

não

bit .DN é energizado bit .EN é energizado

saída da condição da linha é definida como verdadeira

fim

página 7-24

Publicação 1756-RM003D-PT-P - Junho 2001

Page 264: CONTROLADORES LOGIX 5000 -

7-24 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condição: Ação:

examinar bit .ENbit .EN = 0

bit .EN = 1

.POS = .POS + 1

.POS ≥ .LENsim

não

loop_count = .LEN – .POS.POS = .POS – 1

examinarbit interno

bit = 1

bit = 0

bit .EN é energizadobit .FD é desenergizado

modo ALL

comum

.POS = .POS – 1

.POS = 0sim

não

bit .DN é energizado bit .EN é energizado

saída da condição da linha é definida como verdadeira

fimpágina 7-24

Publicação 1756-RM003D-PT-P - Junho 2001

Page 265: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-25

Condição: Ação:

examinar bit .ENbit .EN = 1

bit .EN = 0

.POS = .POS + 1

.POS ≥ .LENsim

não

examinarbit interno

bit = 1

bit = 0

bit interno é energizado

modo numérico

comum

.POS = .POS – 1

.POS = 0sim

não

bit .DN é energizado bit .EN é energizado

saída da condição da linha é definida como verdadeira

fim

modo .LEN ≥

sim

nãomodo .LEN>

bit .EN é energizadoloop_count = .LEN – .POSbit .FD é desenergizado.POS = .POS – 1

modo ≥loop_count

não

bit .EN é energizadoloop_count = mode

sim

página 7-24

Publicação 1756-RM003D-PT-P - Junho 2001

Page 266: CONTROLADORES LOGIX 5000 -

7-26 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemplo de LógicaLadder:

00000000000000000000000000000000 0

00000000000000000000000000000000 1

00000000000000000000000000000000 2

00000000000000000000000000000000 3

11111111111111110000000000000000 4

11111111111111111111111111111111 5

11111111111111111111111111111111 6

11111111111111111111111111111111 7

11111111111111111111111111111111 8

11111111111111111111111111111111 9

Quando habilitada, a instrução FSC compara cada um dos 10 primeiros elementos em array_1 com os elementos correspondentes em array_2.

array_1 array_2

A instrução FSC descobre que esses elementos não são iguais. A instrução energiza os bits .FD e .IN. O valor .POS (4) indica a posição dos elementos que são diferentes. Para continuar a realizar a comparação no restante da matriz, zere o bit .IN.

exemplo 1buscar uma correspondência entre duas matrizes

control_3.pos

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000001111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

Publicação 1756-RM003D-PT-P - Junho 2001

Page 267: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-27

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

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.

Quando habilitada, a instrução FSC compara MySearchKey com 10 elementos em array_1.

MySearchKey referência

A instrução FSC descobre que esse elemento da matriz é igual a MySearchKey. A instrução energiza os bits .FD e .IN. O valor .POS (4) indica a posição dos elementos iguais. Para continuar a realizar a comparação no restante da matriz, zere o bit .IN.

exemplo 2buscar uma correspondência em uma matriz

control_3.pos

00000000000000000000000000000000 0

00000000000000000000000000000000 1

00000000000000000000000000000000 2

00000000000000000000000000000000 3

11111111111111110000000000000000 4

11111111111111111111111111111111 5

11111111111111111111111111111111 6

11111111111111111111111111111111 7

11111111111111111111111111111111 8

11111111111111111111111111111111 9

11111111111111110000000000000000

Publicação 1756-RM003D-PT-P - Junho 2001

Page 268: CONTROLADORES LOGIX 5000 -

7-28 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Operadores válidos

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:

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 DINT, REAL

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

Operador: Descrição: Ótimo:

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)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 269: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-29

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. <, <=, >, >=, =

7. − (subtração), +

8. AND

9. XOR

10. OR

Publicação 1756-RM003D-PT-P - Junho 2001

Page 270: CONTROLADORES LOGIX 5000 -

7-30 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Cópia de Arquivo (COP) Cópia Síncrona de Arquivo (CPS)

As instruções COP e CPS copiam o(s) valor(es) em Source para Destination. Source permanece inalterado.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Estas instruções não estão disponíveis no bloco de função.

Descrição: Durante a execução das instruções COP e CPS, outras ações do controlador podem tentar interromper a operação de cópia e mudar os dados de fonte ou destino:

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREALestrutura

tag elemento inicial para cópiaImportante: os operandos Source e Destination devem ter o mesmo tipo de dado ou podem ocorrer resultados inesperados.

Destination SINTINTDINTREALestrutura

tag elemento inicial a ser sobrescrito por SourceImportante: 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

Copy FileSource ?Dest ?Length ?

COP

Synchronous Copy FileSource ?Dest ?Length ?

CPS

42577

Se a fonte ou destino for: E você quiser: Então selecione:

Notas:

• tag produzido• tag consumido• dados de E/S• dados que outra tarefa pode

sobrescrever

previnir que os dados mudem durante a operação de cópia

CPS • Tarefas que tentam interromper uma instrução CPS são atrasadas até que a instrução seja concluída.

• Para estimar o tempo de execução da instrução CPS, consulte Manual do Usuário do Sistema ControlLogix, publicação 1756-UM001.

permitir que os dados mudem durante a operação de cópia

COP

nenhum dos acima COP

Publicação 1756-RM003D-PT-P - Junho 2001

Page 271: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-31

O número de bytes copiados é:

Contagem de Byte = Length ∗ (número de bytes em tipos de dados em Destination)

As instruções COP e CPS operam na memória de dados contígua e realizam uma cópia de memória byte por byte, o que requisita um entendimento do layout da memória do controlador.

As instruções COP e CPS não escrevem após o final da matriz. Se Length for maior do que o número total de elementos na matriz Destination, as instruções COP e CPS param no final da matriz. Nenhuma falha grave é gerada.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

ATENÇÃO

!Se a contagem de byte for maior do que o comprimento de Source, dados não previstos serão copiados para os elementos restantes.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 272: CONTROLADORES LOGIX 5000 -

7-32 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

saída da condição da linha é definida como verdadeira

fim

end_address = start_address + (Length ∗ número de bytes em um elemento em destination)

sim

não

end_address > fim da matriz destination end_address = fim da matriz destination

source_address = Source

sim

não

destination_address = end_address

copiar os dados de source_address para destination _address

source_address = source _address + 1

destination_address = destination_address + 1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 273: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-33

Exemplo de LógicaLadder:

A matriz project_data (100 elementos) armazena uma variedade de valores que mudam em momentos diferentes na aplicação. Para enviar uma imagem completa de project_data a uma instância por vez para outro controlador, a instrução CPS copia project_data para produced_array.

• Enquanto a instrução CPS copia os dados, nenhuma atualização de E/S ou outras tarefas podem mudar os dados.

• O tag produced_array produz os dados em uma rede ControlNet para o consumo por outros controladores.

• Para usar a mesma imagem de dados (ou seja, uma cópia síncrona de dados), o controladore consumidor usa uma instrução CPS para copiar os dadps de um tag consumido para outro tag para uso na aplicação.

Local:0:I.Data aramzena os dados de entrada para a rede DeviceNet que está conectada ao módulo 1756-DNB no slot 0. Para sincronizar as entradas com a aplicação, a instrução CPS copia os dados de entrada para input_buffer.

• Enquanto a instrução CPS copia os dados, nenhuma atualização de E/S pode mudar os dados.• Conforme a aplicação é executada, ela usa os dados de entrada em input_buffer para suas

entradas.

exemplo 1

Tanto array_4 como array_5 são o mesmo tipo de dados. Quando habilitada, a instrução COP copia os primeiros 10 elementos de array_4 nos primeiros 10 elementos de array_5.

exemplo 2

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.

exemplo 3

Synchronous Copy FileSource project_data[0]Dest produced_array[0]Length 100

CPS

42578

exemplo 4

Synchronous Copy FileSource Local:0:I.Data[0]Dest input_buffer[0]Length 20

CPS

42578

Publicação 1756-RM003D-PT-P - Junho 2001

Page 274: CONTROLADORES LOGIX 5000 -

7-34 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Execução do Bloco deFunção: Estas instruções não estão disponíveis no bloco de função.

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.

exemplo 5

array_timer[0] Primeiro a instrução copia os valores timer[0] em timer[1]

array_timer[1] Então, a instrução copia os valores timer[1] em timer[2]

array_timer[2] Depois, a instrução copia os valores timer[2] em timer[3]

array_timer[3] Então, a instrução copia os valores timer[3] em timer[4]

array_timer[4]

array_timer[9] Finalmente, a instrução copia os valores timer[9] em timer[10]

array_timer[10]

Publicação 1756-RM003D-PT-P - Junho 2001

Page 275: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-35

Preenchimento de Arquivo (FLL)

A instrução FLL preenche os elementos de uma matriz com o valor Source. Source permanece inalterado.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: O número de bytes preenchidos é:

Contagem de Byte = Length ∗ (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.

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediato tag elemento para cópiaImportante: os operandos Source e Destination devem ter o mesmo tipo de dado ou podem ocorrer resultados inesperados.

Destination SINTINTDINTREALestrutura

tag elemento inicial a ser sobrescrito por SourceImportante: 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 número de elementos a serem preenchidos

Publicação 1756-RM003D-PT-P - Junho 2001

Page 276: CONTROLADORES LOGIX 5000 -

7-36 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Para obter resultados melhores, Source e Destination devem ser do mesmo tipo. Se você quiser preencher uma estrutura, use a instrução COP (consulte o exemplo 3, na página 7-36). 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.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

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)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 277: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-37

Execução de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

saída da condição da linha é definida como verdadeira

fim

end_address = start_address + (Length ∗ número de bytes em um elemento em destination)

sim

não

end_address > fim da matriz destination end_address = fim da matriz destination

source_address = Source

sim

não

destination_address = end_address

copiar os dados de source_address para destination _address

destination_address = destination_address + 1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 278: CONTROLADORES LOGIX 5000 -

7-38 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

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 TIMER 16#0101 010116#0101 010116#0101 0101

INT 16#0001 TIMER 16#0001 000116#0001 000116#0001 0001

DINT 16#0000 0001 TIMER 16#0000 000116#0000 000116#0000 0001

Publicação 1756-RM003D-PT-P - Junho 2001

Page 279: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-39

Média de Arquivo (AVE)

A instrução AVE calcula a média de um conjunto de valores.

Operandos de LógicaLadder:

Estrutura:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Array SINTINTDINTREAL

tag da matriz

encontre a média dos valores nessa matrizespecifique o primeiro elemento do grupo de elementos para a médianão use CONTROL.POS em subscrito

Dimension to vary

DINT imediato(0, 1, 2)

a dimensão a ser usadadepende 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 SINTINTDINTREAL

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 matrizvalor inicial é normalmente 0

Mnemônico: Tipo 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 na Matriz (.POS = .LEN).

.ER BOOL O bit de erro é energizado se 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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 280: CONTROLADORES LOGIX 5000 -

7-40 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Descrição: A instrução AVE calcula a média de um conjunto de valores.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha:

IMPORTANTE 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.

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

Publicação 1756-RM003D-PT-P - Junho 2001

Page 281: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-41

Execução de LógicaLadder:

Condição: Ação:

pré-varredura O bit .EN é desenergizado.O bit .DN é desenergizado.O bit .ER é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A instrução AVE calcula a média, adicionando todos os elementos especificados na matriz e dividindo pelo número de elementos.Internamente, a instrução usa uma instrução FAL para calcular a média.Expressão = cálculo da médiaModo = ALLPara detalhes sobre como a instrução FAL é executada, consulte a página 7-9.

examinar bit .DN bit .DN = 0

bit .DN = 1

entrada da condição da linha for falsa

saída da condição da linha é definida como falsa

fim

bit .EN é desenergizadobit .ER é desenergizadobit .DN é desenergizadovalor .POS é desenergizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 282: CONTROLADORES LOGIX 5000 -

7-42 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

exemplo 1

array_dint é DINT[4,5]

dimensão 1

dimensão 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

AVE 19 14 9 4+ + +4

------------------------------------- 464------ 11.5= = =

dint_ave = 12

subscritos

exemplo 2

array_dint é DINT[4,5]

dimensão 1

dimensão 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

AVE 5 4 3 2 1+ + + +5

---------------------------------------- 155------ 3= = =

subscritos

dint_ave = 3

Publicação 1756-RM003D-PT-P - Junho 2001

Page 283: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-43

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ógicaLadder:

Estrutura:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: A instrução SRT classifica um conjunto de valores em uma dimensão (Dim to vary) da Matriz em ordem crescente.

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição:

Array SINTINTDINTREAL

tag da matriz

matriz para classificaçãoespecifique o primeiro elemento do grupo de elementos para classificaçãonão use CONTROL.POS em subscrito

Dimension to vary

DINT imediato(0, 1, 2)

a dimensão a ser usadadepende 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 classificação

Position DINT imediato elemento atual na matrizvalor inicial é normalmente 0

Mnemônico: Tipo 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 classificados.

.ER BOOL O bit de erro é energizado quando uma das condições .LEN < 0 ou .POS < 0 també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.

IMPORTANTE Certifique-se de que Length não faça com que a instrução exceda o operando Dimension to vary especificado. Se isto acontecer, resultados inesperados ocorrerão.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 284: CONTROLADORES LOGIX 5000 -

7-44 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha:

Execução de LógicaLadder:

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

Condição: Ação:

pré-varredura O bit .EN é desenergizado.O bit .DN é desenergizado.O bit .ER é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A instrução SRT classifica os elementos especificados da matriz em ordem crescente.

examinar bit .DNbit .DN = 0

bit .DN = 1

entrada da condição da linha for falsa

saída da condição da linha é definida como falsa

fim

bit .EN é desenergizadobit .ER é desenergizadobit .DN é desenergizadovalor .POS é desenergizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 285: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-45

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

exemplo 1

int _array é DINT[4,5]

dimensão 1

dimensão 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

dimensão 1

dimensão 0

0 20 19 3 17 16

15 14 8 12 11

10 9 13 7 6

5 4 18 2 1

1

2

3

0 1 2 3 4

Antes Depois

subscritos

subscritos

int _array é DINT[4,5]

dimensão 1

dimensão 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

dimensão 1

dimensão 0

0 20 19 18 17 16

15 14 13 12 11

6 7 8 9 10

5 4 3 2 1

1

2

3

0 1 2 3 4

Antes Depois

subscritos

subscritos

exemplo 2

Publicação 1756-RM003D-PT-P - Junho 2001

Page 286: CONTROLADORES LOGIX 5000 -

7-46 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

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ógicaLadder:

Estrutura:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Descrição:

Array SINTINTDINTREAL

tag da matriz

encontra o desvio padrão dos valores nessa matrizespecifica o primeiro elemento do grupo de elementos a serem usados no cálculo do desvio padrãonão use CONTROL.POS em subscrito

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Dimension to vary

DINT imediato(0, 1, 2)

a dimensão a ser usadadepende 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 resultado 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 matrizvalor inicial é normalmente 0

Mnemônico: Tipo 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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 287: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-47

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 =

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha:

IMPORTANTE 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.

X start i+( ) AVE–⟨ ⟩2[ ]i 1=

N

N 1–( )--------------------------------------------------------------------

Desvio Padrão =Desvio Padrão =

x start i+( )

i 1=

N

N-----------------------------------------

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

Publicação 1756-RM003D-PT-P - Junho 2001

Page 288: CONTROLADORES LOGIX 5000 -

7-48 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Execução de LógicaLadder:

Condição: Ação:

pré-varredura O bit .EN é desenergizado.O bit .DN é desenergizado.O bit .ER é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A instrução STD calcula o desvio padrão dos elementos especificados.Internamente, a instrução usa uma instrução FAL para calcular a média.Expressão = cálculo do desvio padrãoModo = ALLPara detalhes sobre como a instrução FAL é executada, consulte a página 7-9.

examinar bit .DNbit .DN = 0

bit .DN = 1

entrada da condição da linha for falsa

saída da condição da linha é definida como falsa

fim

bit .EN é desenergizadobit .ER é desenergizadobit .DN é desenergizadovalor .POS é desenergizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 289: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-49

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

exemplo 1 array_dint é DINT[4,5]

dimensão 1

dimensão 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

STD 16 8.5–⟨ ⟩211 8.5–⟨ ⟩2

6 8.5–⟨ ⟩21 8.5–⟨ ⟩2

+ + +4 1–⟨ ⟩

--------------------------------------------------------------------------------------------------------------------------- 6.454972= =

AVE 16 11 6 1+ + +4

------------------------------------- 344------ 8.5= = =

subscritos

real_std = 6,454972

exemplo 2array_dint é DINT[4,5]

dimensão 1

dimensão 0

0 20 19 18 17 16

15 14 13 12 11

10 9 8 7 6

5 4 3 2 1

1

2

3

0 1 2 3 4

STD 20 18–⟨ ⟩219 18–⟨ ⟩2

18 18–⟨ ⟩217 18–⟨ ⟩ 2

16 18–⟨ ⟩2+ + + +

5 1–⟨ ⟩------------------------------------------------------------------------------------------------------------------------------------------------------------ 1.581139= =

AVE 20 19 18 17 16+ + + +5

------------------------------------------------------- 905------ 18= = =

subscritos

real_std = 1,581139

Publicação 1756-RM003D-PT-P - Junho 2001

Page 290: CONTROLADORES LOGIX 5000 -

7-50 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Tamanho em Elementos (SIZE)

A instrução SIZE encontra o tamanho de uma dimensão de uma matriz.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a entrada da condição da linha for verdadeira, a instrução SIZE encontra o número de elementos (tamanho) na dimensão designada da matriz Source e coloca o resultado no operando Size.

• A instrução encontra o tamanho de uma dimensão de uma matriz.

• A instrução é operada em uma:

– matriz

– matriz em uma estrutura

– matriz que é parte de uma matriz maior

Em Source, especifique o primeiro elemento da matriz na qual a instrução deve ser operada.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Insira:

Source SINTINTDINTREALestruturatipo de string

tag da matriz

primeiro elemento de uma matriz na qual a instrução deve ser operada

Dimensão a ser Variada

DINT imediato(0, 1, 2)

dimensão a ser usada:

Tamanho SINTINTDINTREAL

tag tag para armazenar o número de elementos na dimensão específica da matriz

Size in Elements Source ?

??Dim. To Vary ?Size ?

??

SIZE

42622

Para o tamanho da: Insira:

primeira dimensão 0

segunda dimensão 1

terceira dimensão 2

Publicação 1756-RM003D-PT-P - Junho 2001

Page 291: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-51

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

a entrada da condição da linha é falsa A saída da condição da linha é definida como falsa.

a entrada da condição da linha é verdadeira • A instrução é executada.• A saída da condição da linha está definida como verdadeira.

Exemplo 1

Encontra o número de elementos na dimensão 0 (primeira dimensão) de array_a. Armazena o tamanho em array_a_size. Neste exemplo, a dimensão 0 de array_a tem 10 elementos.

42623

Exemplo 2

Encontra o número de elementos no membro DATA de string_1, que é um string. Armazena o tamanho em string_1_size.

Neste exemplo, o membro DATA de string_1 tem 82 elementos. (O string usa o tipo de dados STRING padrão.) Como cada elemento mantém um caracter, string_1 pode conter até 82 caracteres.

42623

Exemplo 3

Strings_a é uma matriz de estruturas de string. A instrução SIZE encontra o número de elementos no membro DATA da estrutura de string e armazena o tamanho em data_size_a.

Neste exemplo, o membro DATA tem 24 elementos. (A estrutura de string tem um comprimento especificado pelo usuário de 24).

42623

Size in ElementsSource array_a[0]

255Dim. To Vary 0Size array_a_size

10

SIZE

Size in ElementsSource string_1.DATA[0]

'$00'Dim. To Vary 0Size string_1_size

82

SIZE

Size in ElementsSource strings_a[0].DATA[0]

'$00'Dim. To Vary 0Size data_size_a

24

SIZE

Publicação 1756-RM003D-PT-P - Junho 2001

Page 292: CONTROLADORES LOGIX 5000 -

7-52 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 293: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-53

Publicação 1756-RM003D-PT-P - Junho 2001

Page 294: CONTROLADORES LOGIX 5000 -

7-54 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 295: CONTROLADORES LOGIX 5000 -

Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) 7-55

Publicação 1756-RM003D-PT-P - Junho 2001

Page 296: CONTROLADORES LOGIX 5000 -

7-56 Instruções Array (File/Miscellaneous) (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 297: CONTROLADORES LOGIX 5000 -

Capítulo 8

Instruções de Matriz (Arquivo)/Deslocamento(BSL, BSR, FFL, FFU, LFL, LFU)

Introdução Use as instruções de deslocamento/matriz (arquivo) para modificar a localização dos dados dentro das matrizes.

É possível misturar os tipos de dados, mas podem ocorrer perda de precisão e erro de arredondamento.

Para instruções de lógica ladder a relé, os tipos de dados em negrito indicam os tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dados ótimo, geralmente DINT ou REAL.

Se você quiser: Use esta instrução: Consulte página:

carregar bits, deslocar bits e descarregar bits de uma matriz de bits, um bit de cada vez.

BSL 8-2

BSR 8-6

carregar e descarregar os valores na mesma seqüência.

FFL 8-10

FFU 8-16

carregar e descarregar os valores em ordem reversa.

LFL 8-22

LFU 8-28

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 298: CONTROLADORES LOGIX 5000 -

8-2 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

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ógicaLadder a Relé:

Estrutura:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

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

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando Tipo: Formato: Descrição:

Array DINT tag da matriz

matriz a ser modificadaespecifique o primeiro elemento do grupo de elementosnão use CONTROL.POS no subscrito

Control CONTROL tag estrutura de controle para a operação

Bit Source BOOL tag bit a ser deslocado

Length DINT imediato número de bits da matriz a ser deslocada

Mnemônico: Tipo 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 BOOL O bit de erro é energizado quando .LEN < 0.

.LEN DINT O comprimento especifica o número de bits na matriz a ser deslocado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 299: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-3

Execução de LógicaLadder a Relé:

Condição: Ação:

pré-varredura O bit .EN é desenergizado.O bit .DN é desenergizado.O bit .ER é desenergizado.O valor .POS é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O bit .EN é desenergizado.O bit .DN é desenergizado.O bit .ER é desenergizado.O valor .POS é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

examinar bit .EN bit .EN = 1

bit .EN = 0

fim

bit .DN é energizado

deslocar matriz da esquerda uma posição

bit .EN é energizado

saída da condição da linha é definida como verdadeirabit .DN é energizado

.POS = .LEN

.LEN = 0 sim

não

.LEN < 0 sim

não

Bit Sourcebit .UL matriz

examinar bit source.source bit = 1

.source bit = 0

bit .UL permanece energizado

bit .UL é energizado

bit .ER é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 300: CONTROLADORES LOGIX 5000 -

8-4 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Exemplo de LógicaLadder a Relé:

9 8 7 6 5 4 3 2 1 0

array_dint[0]antes do

deslocamento

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

9 8 7 6 5 4 3 2 1 0

array_dint[0]depois do

deslocamento

0 1 1 1 1 0 0 0 0 1

Quando habilitada, a instrução BSL inicia no bit 0 em array_dint[0]. A instrução descarrega array_dint[0].9 no bit .UL, desloca os bits restantes e carrega input_1 em array_dint[0].0. Os valores nos bits restantes (10-31) são inválidos.

exemplo 1

1

input_10

bit .UL

esses bits foram deslocados à esquerda

31 0

array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

31 0

array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

Quando habilitada, a instrução BSL inicia no bit 0 em array_dint[0]. A instrução descarrega array_dint[1].25 no bit.UL, desloca os bits restantes e carrega input_1 em array_dint[0].0. Os valores nos bits restantes (31-26 in array_dint[1]) são inválidos. Observe como array_dint[0].31 desloca-se através das palavras para array_dint[1].0.

exemplo 2

1

input_1esses bits foram deslocados à esquerda

0

bit .UL

esses bits foram deslocados à esquerda

Publicação 1756-RM003D-PT-P - Junho 2001

Page 301: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-5

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ógicaLadder a Relé:

Estrutura:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando habilitada, a instrução descarrega o valor do bit da Matriz para o bit .UL, desloca os bits restantes uma posição para a direita e carrega o bit Source no bit mais significativo dos bits especificados.

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

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando: Tipo: Formato: Descrição:

Array DINT tag da matriz

matriz a ser modificadaespecifica o elemento onde o deslocamento deve começarnão use CONTROL.POS no subscrito

Control CONTROL tag estrutura de controle para a operação

Bit Source BOOL tag bit a ser deslocado

Length DINT imediato número de bits da matriz a ser deslocada

Mnemônico: Tipo 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 direita.

.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 BOOL O bit de erro é energizado quando .LEN < 0.

.LEN DINT O comprimento especifica o número de bits na matriz a ser deslocado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 302: CONTROLADORES LOGIX 5000 -

8-6 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execução de LógicaLadder a Relé:

Condição: Ação:

pré-varredura O bit .EN é desenergizado.O bit .DN é desenergizado.O bit .ER é desenergizado.O valor .POS é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa O bit .EN é desenergizado.O bit .DN é desenergizado.O bit .ER é desenergizado.O valor .POS é desenergizado.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

examinar bit .ENbit .EN = 1

bit .EN = 0

fim

bit .DN é energizado

deslocar matriz da esquerda uma posição

bit .EN é energizado

saída da condição da linha é definida como verdadeirabit .DN é energizado

.POS = .LEN

.LEN = 0sim

não

.LEN < 0 sim

não

Bit Source

bit .ULmatriz

examinar bit source .source bit = 1

.source bit = 0

bit .UL permanece energizado

bit .UL é energizado

bit .ER é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 303: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-7

Exemplo de LógicaLadder a Relé:

9 8 7 6 5 4 3 2 1 0

array_dint[0]antes do

deslocamento

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

9 8 7 6 5 4 3 2 1 0

array_dint[0]depois do

deslocamento

1 0 0 1 1 1 1 0 0 0

Quando habilitada, a instrução BSR inicia no bit 9 em array_dint[0]. A instrução descarrega array_dint[0].0no bit .UL, desloca os bits restantes para a direita e carrega input_1 em array_dint[0].9. Os valores nos bits restantes (10-31) são inválidos.

exemplo 1

esses bits foram deslocados à direita

0

bit .UL1

input_1

31 0

array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

31 0

array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

Quando habilitada, a instrução BSR inicia no bit 25 em array_dint[1]. A instrução descarrega array_dint[0].0 no bit .UL , desloca os bits restantes para a direita e carrega input_1 em array_dint[1].25. Os valores nos bits restantes (31-26 em dint_array[1]) são inválidos. Observe como array_dint[0].0 desloca-se através das palavras para array_dint[1].31.

exemplo 2

esses bits foram deslocados à direita 0

bit .UL

esses bits foram deslocados à direita1

input_1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 304: CONTROLADORES LOGIX 5000 -

8-8 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Carga FIFO (FFL)

A instrução FFL copia o valor Source para FIFO.

Operandos de LógicaLadder a Relé:

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.

Estrutura:

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando: Tipo: Formato: Descrição:

Source SINTINTDINTREALtipo de stringestrutura

imediatotag

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 SINTINTDINTREALtipo de stringestrutura

tag da matriz

FIFO a ser modificadoespecifique o primeiro elemento de FIFOnão use CONTROL.POS no subscrito

Control CONTROL tag estrutura de controle para a operaçãogeralmente 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

Mnemônico: Tipo 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 a carga 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 uma vez.

.POS DINT A posição identifica a localização em FIFO onde a instrução carregará o próximo valor.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 305: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-9

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

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: Código de falha:

(elemento de início + .POS) > tamanho da matriz de FIFO

4 20

Publicação 1756-RM003D-PT-P - Junho 2001

Page 306: CONTROLADORES LOGIX 5000 -

8-10 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execução de LógicaLadder a Relé:

Condição: Ação:

pré-varredura

fim

o bit .EN é energizado para evitar uma carga falsa quando a varredura começar

saída da condição da linha é definida como falsa

.LEN < 0 sim

não

.POS < 0sim

.EM é desenergizadobit .DN é desenergizado

não

.POS = 0 sim

não

.EM é energizado

.POS ≥ .LEN sim

não

.DN é energizado

.EM é energizado

.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 307: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-11

Condição: Ação:

entrada da condição da linha for falsa

fim

bit .EN é desenergizado

saída da condição da linha é definida como falsa

.LEN < 0sim

não

.POS < 0 sim

.EM é desenergizadobit .DN é desenergizado

não

.POS = 0sim

não

.EM é energizado

.POS ≥ .LENsim

não

.DN é energizado

.EM é energizado

.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 308: CONTROLADORES LOGIX 5000 -

8-12 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Condição: Ação:

entrada da condição da linha for verdadeira

fim

saída da condição da linha é definida como verdadeira

examinar bit .EN.EN = 0

.EN = 1

bit .EN é energizado .LEN < 0sim

não

.POS < 0sim

não

bit .EM é energizado.DN é energizadobit .EM é desenergizado

bit .DN é desenergizado.POS = .POS + 1

.POS ≥ .LENsim

não

bit .DN é energizado

.POS ou .LEN > tamanho da

matriz

sim

não

falha grave

.POS > .LENsim

não

.POS = .POS –1

FIFO[.POS – 1] = source

.LEN < 0sim

não

.POS < 0sim

não

bit .EM é desenergizadobit .DN é desenergizado

.POS = 0sim

não

bit .EM é energizado

.POS ≥ .LENsim

não

bit .DN é energizado

bit .EM é energizado.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 309: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-13

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

antes da carga FIFO depois da carga FIFO

array_dint[0] 00000 00000

11111 11111

22222 22222

33333 control_1.pos = 5 33333

44444 value_1 = 55555 44444

array_dint[5] 00000 55555

00000 00000 control_1.pos = 6

00000 00000

00000 00000

00000 00000

Quando habilitada, a instrução FFL carrega value_1 para a próxima posição em FIFO, que é array_dint[5] nesse exemplo.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 310: CONTROLADORES LOGIX 5000 -

8-14 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

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ógicaLadder a Relé:

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.

Estrutura:

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando: Tipo: Formato: Descrição:

FIFO SINTINTDINTREALtipo de stringestrutura

tag da matriz

FIFO a ser modificadoespecifique o primeiro elemento de FIFOnão use CONTROL.POS no subscrito

Destination SINTINTDINTREALtipo de stringestrutura

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çãogeralmente usa o mesmo CONTROL, como a FFL 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

Mnemônico: Tipo de Dados: Descrição:

. EU 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).

.EM BOOL O bit vazio indica que FIFO está vazio. Se .LEN ≤ 0 ou .POS < 0, os bits .EM e .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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 311: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-15

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

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 (FIFO).

Quando habilitada, a instrução FFU descarrega os dados do primeiro elemento de FIFO e coloca 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: Código de falha:

Length > FIFO tamanho da matriz 4 20

Publicação 1756-RM003D-PT-P - Junho 2001

Page 312: CONTROLADORES LOGIX 5000 -

8-16 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execução de LógicaLadder a Relé:

Condição: Ação:

pré-varredura

fim

o bit .EU é energizado para evitar uma descarga falsa quando a varredura começar

saída da condição da linha é definida como falsa

.LEN < 0sim

não

.POS < 0sim

.EM é desenergizadobit .DN é desenergizado

não

.POS = 0 sim

não

.EM é energizado

.POS ≥ .LENsim

não

.DN é energizado

.EM é energizado

.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 313: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-17

Condição: Ação:

entrada da condição da linha for falsa

fim

bit .EU é desenergizado

saída da condição da linha é definida como falsa

.LEN < 0sim

não

.POS < 0 sim

.EM é desenergizadobit .DN é desenergizado

não

.POS = 0sim

não

.EM é energizado

.POS ≥ .LENsim

não

.DN é energizado

.EM é energizado

.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 314: CONTROLADORES LOGIX 5000 -

8-18 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Condição: Ação:

entrada da condição da linha for verdadeira

fim

examinar bit .EU.EU = 0

.EU = 1

bit .EU é energizado .LEN < 0sim

não

.POS < 0sim

não

bit .EM é energizado.DN é energizado

bit .EM é desenergizadobit .DN é desenergizado

.LEN > tamanho da

matriz

sim

não

falha grave

.POS ≤ 1sim

não

bit .EM é energizado

.LEN < 0sim

não

.POS < 0sim

não

bit .EM é desenergizadobit .DN é desenergizado

.POS = 0sim

não

bit .EM é energizado

.POS ≥ .LENsim

não

bit .DN é energizado

bit .EM é energizado.DN é energizado

.POS < 1sim

não

Destination = 0

.POS = .POS –1Destination = FIFO[0]i = 1

FIFO[i – 1] = FIFO[i]i = i +1

i < .LENsim

nãosaída da condição da linha é definida como verdadeira

Publicação 1756-RM003D-PT-P - Junho 2001

Page 315: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-19

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

antes da descarga FIFO depois da descarga FIFO

array_dint[0] 00000 11111

11111 22222

22222 33333

33333 44444

44444 55555

array_dint[5] 55555 00000 control_1.pos = 5

00000 control_1.pos = 6 00000 value_2 = 00000

00000 00000

00000 00000

00000 00000

Quando habilitada, a instrução FFU descarrega array_dint[0] em value_2 e desloca os elementos restantes para array_dint.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 316: CONTROLADORES LOGIX 5000 -

8-20 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Carga LIFO (LFL)

A instrução LFL copia o valor Source para LIFO.

Operandos de LógicaLadder a Relé:

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.

Estrutura:

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREALtipo de stringestrutura

imediatotag

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 SINTINTDINTREALtipo de stringestrutura

tag da matriz

LIFO a ser modificadoespecifique o primeiro elemento de LIFOnão use CONTROL.POS no subscrito

Control CONTROL tag estrutura de controle para a operaçãogeralmente usa o mesmo CONTROL, conforme a 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 carrega os dados.valor inicial é normalmente 0

Mnemônico: Tipo 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 a carga 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 uma vez.

.POS DINT A posição identifica a localização em LIFO onde a instrução carregará o próximo valor.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 317: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-21

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Use a instrução LFL com a instrução LFU para armazenar e recuperar dados na seqüência último 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 LIFO são do mesmo tipo de dados.

Quando habilitada, a instrução LFL carrega o valor Source na posição LIFO identificada pelo valor .POS. A instrução carrega um valor cada vez que a instrução é habilitada, até que LIFO fique cheia.

A instrução LFL 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: Código de falha:

(elemento de início + .POS) > tamanho da matriz de LIFO

4 20

Publicação 1756-RM003D-PT-P - Junho 2001

Page 318: CONTROLADORES LOGIX 5000 -

8-22 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execução de LógicaLadder a Relé:

Condição: Ação:

pré-varredura

fim

o bit .EN é energizado para evitar uma carga falsa quando a varredura começar

saída da condição da linha é definida como falsa

.LEN < 0sim

não

.POS < 0sim

.EM é desenergizadobit .DN é desenergizado

não

.POS = 0 sim

não

.EM é energizado

.POS ≥ .LENsim

não

.DN é energizado

.EM é energizado

.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 319: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-23

Condição: Ação:

entrada da condição da linha for

fim

bit .EN é desenergizado

saída da condição da linha é definida como falsa

.LEN < 0sim

não

.POS < 0 sim

.EM é desenergizadobit .DN é desenergizado

não

.POS = 0sim

não

.EM é energizado

.POS ≥ .LENsim

não

.DN é energizado

.EM é energizado

.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 320: CONTROLADORES LOGIX 5000 -

8-24 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Condição: Ação:

entrada da condição da linha for verdadeira

fim

saída da condição da linha é definida como verdadeira

examinar bit .EN.EN = 0

.EN = 1

bit .EN é energizado .LEN < 0sim

não

.POS < 0sim

não

bit .EM é energizado.DN é energizadobit .EM é desenergizado

bit .DN é desenergizado.POS = .POS + 1

.POS ≥ .LENsim

não

bit .DN é energizado

.POS ou .LEN > tamanho da

matriz

sim

não

falha grave

.POS > .LENsim

não

.POS = .POS –1

LIFO[.POS – 1] = source

.LEN < 0sim

não

.POS < 0sim

não

bit .EM é desenergizadobit .DN é desenergizado

.POS = 0sim

não

bit .EM é energizado

.POS ≥ .LENsim

não

bit .DN é energizado

bit .EM é energizado.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 321: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-25

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

antes da carga LIFO depois da carga LIFO

array_dint[0] 00000 00000

11111 11111

22222 22222

33333 control_1.pos = 5 33333

44444 value_1 = 55555 44444

array_dint[5] 00000 55555

00000 00000 control_1.pos = 6

00000 00000

00000 00000

00000 00000

Quando habilitada, a instrução LFL carrega value_1 para a próxima posição em LIFO, que é array_dint[5] nesse exemplo.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 322: CONTROLADORES LOGIX 5000 -

8-26 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Descarga LIFO (LFU)

A instrução LFU descarrega o valor em .POS de LIFO e armazena 0 naquele local.

Operandos de LógicaLadder a Relé:

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.

Estrutura:

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando Tipo: Formato: Descrição:

LIFO SINTINTDINTREALtipo de stringestrutura

tag da matriz

LIFO a ser modificadoespecifique o primeiro elemento de LIFOnão use CONTROL.POS no subscrito

Destination SINTINTDINTREALtipo de stringestrutura

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çãogeralmente usa o mesmo CONTROL, conforme a LFL 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

Mnemônico: Tipo de Dados: Descrição:

. EU BOOL O bit de descarga habilitado indica que a instrução LFU 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, 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 uma vez.

.POS DINT A posição identifica o fim dos dados que foram carregados em LIFO.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 323: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-27

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

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 (LIFO).

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: Código de falha:

Length > LIFO tamanho da matriz 4 20

Publicação 1756-RM003D-PT-P - Junho 2001

Page 324: CONTROLADORES LOGIX 5000 -

8-28 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execução de LógicaLadder a Relé:

Condição: Ação:

pré-varredura

fim

o bit .EU é energizado para evitar uma descarga falsa quando a varredura começar

saída da condição da linha é definida como falsa

.LEN < 0sim

não

.POS < 0 sim

.EM é desenergizadobit .DN é desenergizado

não

.POS = 0sim

não

.EM é energizado

.POS ≥ .LEN sim

não

.DN é energizado

.EM é energizado

.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 325: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-29

Condição: Ação:

entrada da condição da linha for falsa

fim

bit .EU é desenergizado

saída da condição da linha é definida como falsa

.LEN < 0sim

não

.POS < 0 sim

.EM é desenergizadobit .DN é desenergizado

não

.POS = 0sim

não

.EM é energizado

.POS ≥ .LENsim

não

.DN é energizado

.EM é energizado

.DN é energizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 326: CONTROLADORES LOGIX 5000 -

8-30 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Condição: Ação:

entrada da condição da linha for verdadeira

fim

saída da condição da linha é definida como verdadeira

examinar bit .EU.EU = 0

.EU = 1

bit .EU é energizado .LEN < 0sim

não

.POS < 0sim

não

bit .EM é energizado.DN é energizado

bit .EM é desenergizadobit .DN é desenergizado

.LEN > tamanho da

matriz

sim

não

falha grave

.POS ≤ 1sim

não

bit .EM é energizado

.LEN < 0sim

não

.POS < 0sim

não

bit .EM é desenergizadobit .DN é desenergizado

.POS = 0sim

não

bit .EM é energizado

.POS ≥ .LENsim

não

bit .DN é energizado

bit .EM é energizado.DN é energizado

.POS < 1sim

não

.POS > .LENsim

não

.POS = .LEN

Destination = 0

Destination = LIFO[control.POS]LIFO[control.POS) = 0

.POS = .POS –1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 327: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-31

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

antes da descarga LIFO depois da descarga LIFO

array_dint[0] 00000 00000

11111 11111

22222 22222

33333 33333

44444 44444

array_dint[5] 55555 00000 control_1.pos = 5

00000 control_1.pos = 6 00000 value_2 = 55555

00000 00000

00000 00000

00000 00000

Quando habilitada, a instrução LFU descarrega array_dint[5] em value_2.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 328: CONTROLADORES LOGIX 5000 -

8-32 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 329: CONTROLADORES LOGIX 5000 -

Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU) 8-33

Publicação 1756-RM003D-PT-P - Junho 2001

Page 330: CONTROLADORES LOGIX 5000 -

8-34 Instruções de Matriz (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 331: CONTROLADORES LOGIX 5000 -

Capítulo 9

Instruções de Seqüenciador(SQI, SQO, SQL)

Introdução Instruções de sequenciador monitoram operações consistentes e repetitivas.

Para instruções de lógica ladder, os tipos de dados em negrito indicam os tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dado ótimo, geralmente DINT ou REAL.

Se você quiser: Use esta instrução: Consulte página:

Detectar quando uma etapa está concluída. SQI 9-2

Estabelecer condições de saída para a próxima etapa.

SQO 9-7

Carregar as condições de referência nas matrizes de seqüenciador

SQL 9-12

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 332: CONTROLADORES LOGIX 5000 -

9-2 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ógicaLadder:

Estrutura:

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Array DINT tag da matriz

matriz do seqüenciadorespecifica o primeiro elemento da matriz do seqüenciadornão use CONTROL.POS em subscrito

Mask SINTINTDINT

tagimediato

quais bits devem ser bloqueados ou podem passar

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Source SINTINTDINT

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çãogeralmente 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 matrizvalor inicial é normalmente 0

Mnemônico: Tipo de Dados: Descrição:

.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 a instrução está comparando atualmente.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 333: CONTROLADORES LOGIX 5000 -

Instruções de Seqüenciador (SQI, SQO, SQL) 9-3

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.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Prefixo: Descrição:

16# hexadecimalpor exemplo; 16#0F0F

8# octalpor exemplo; 8#16

2# bináriopor exemplo; 2#00110011

Publicação 1756-RM003D-PT-P - Junho 2001

Page 334: CONTROLADORES LOGIX 5000 -

9-4 Instruções de Seqüenciador (SQI, SQO, SQL)

Execução do LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

.LEN ≤ 0

.POS < 0ou

.POS > .LEN

não

sim

fim

bit .ER é energizado

saída da condição da linha é definida como falsa

Source mascarada= Array mascarada[.POS]

sim

bit .ER é desenergizado.

não

saída da condição da linha é definida como verdadeira

Publicação 1756-RM003D-PT-P - Junho 2001

Page 335: CONTROLADORES LOGIX 5000 -

Instruções de Seqüenciador (SQI, SQO, SQL) 9-5

Exemplo de LógicaLadder:

Um 0 na máscara significa que o bit não foi comparado (identificado por xxxx nesse exemplo).

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

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

Publicação 1756-RM003D-PT-P - Junho 2001

Page 336: CONTROLADORES LOGIX 5000 -

9-6 Instruções de Seqüenciador (SQI, SQO, SQL)

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üenciadorA 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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 337: CONTROLADORES LOGIX 5000 -

Instruções de Seqüenciador (SQI, SQO, SQL) 9-7

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ógicaLadder:

Estrutura:

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

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

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Array DINT tag da matriz matriz do seqüenciadorespecifica o primeiro elemento da matriz do seqüenciadornão use CONTROL.POS em subscrito

Mask SINTINTDINT

tagimediato

quais bits devem ser bloqueados ou podem passar

Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.

Destination DINT tag dados de saída da matriz de seqüenciador

Control CONTROL tag estrutura de controle para a operaçãogeralmente usa o mesmo CONTROL das instruções SQI e SQL

Length DINT imediato número de elementos na Matriz (tabela do seqüenciador) a serem colocados na saída

Position DINT imediato posição atual na matrizvalor inicial é normalmente 0

Mnemônico: Tipo 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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 338: CONTROLADORES LOGIX 5000 -

9-8 Instruções de Seqüenciador (SQI, SQO, 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.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

Prefixo: Descrição:

16# hexadecimalpor exemplo; 16#0F0F

8# octalpor exemplo; 8#16

2# bináriopor exemplo; 2#00110011

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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 339: CONTROLADORES LOGIX 5000 -

Instruções de Seqüenciador (SQI, SQO, SQL) 9-9

Condição: Ação:

entrada da condição da linha for verdadeira

.LEN ≤ 0 ou .POS < 0

não

sim

bit .DN é energizado.

.POS = .LENnão

sim

examinar bit .EN.EN = 0

.EN = 1

bit .EN é energizadobit .ER é desenergizado.bit .DN é energizado.

.POS ≥ .LENsim

não

.POS = .POS + 1

valor .POS renova

sim

não

bit .ER é energizado

fim

saída da condição da linha é definida como verdadeira

bit .DN é energizado..POS = .LENsim

não

Destination = (Destination AND (NOT(Mask))) OR (Array[control.POS] AND Mask)

.POS > .LENnão

sim

.POS = 1

ir para erro

erro

Publicação 1756-RM003D-PT-P - Junho 2001

Page 340: CONTROLADORES LOGIX 5000 -

9-10 Instruções de Seqüenciador (SQI, SQO, SQL)

Exemplo de LógicaLadder:

Um 0 na máscara significa que o bit não foi comparado (designado por xxxx nesse exemplo).

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

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 (uso de INTs exibidos em binário):

Array xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Mask 00000000 00000000 00001111 00001111

Destination xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Publicação 1756-RM003D-PT-P - Junho 2001

Page 341: CONTROLADORES LOGIX 5000 -

Instruções de Seqüenciador (SQI, SQO, SQL) 9-11

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.

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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 342: CONTROLADORES LOGIX 5000 -

9-12 Instruções de Seqüenciador (SQI, SQO, SQL)

Carga do Sequenciador (SQL)

A instrução SQL carrega as condições de referência em uma matriz do seqüenciador.

Operandos de LógicaLadder:

Estrutura:

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Array DINT tag da matriz matriz do seqüenciadorespecifica o primeiro elemento da matriz do seqüenciadornão use CONTROL.POS em subscrito

Source SINTINTDINT

tagimediato

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çãogeralmente usa o mesmo CONTROL das instruções SQO e SQI

Length DINT imediato número de elementos na Matriz (tabela do sequenciador) a serem carregados

Position DINT imediato posição atual na matrizvalor inicial é normalmente 0

Mnemônico: Tipo 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 carregados em Array.

.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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 343: CONTROLADORES LOGIX 5000 -

Instruções de Seqüenciador (SQI, SQO, SQL) 9-13

Descrição: Quando habilitada, a instrução SQL incrementa para a próxima posição na matriz do seqüenciador e carrega o valor Source naquela posição. Se o bit .DN estiver energizado ou se .POS ≥ .LEN, a instrução configura .POS=1.

Geralmente usa a mesma estrutura CONTROL das instruções SQO e SQI

A instrução SQL opera na memória de dados contínua.

Flags de Status Aritmético: não afetados

Condições de Falha:

Execução de LógicaLadder:

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

Length > tamanho de Array 4 20

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.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 344: CONTROLADORES LOGIX 5000 -

9-14 Instruções de Seqüenciador (SQI, SQO, SQL)

Condição: Ação:

entrada da condição da linha for verdadeira

.LEN ≤ 0 ou .POS < 0

não

sim

bit .DN é energizado.

.POS = .LENnão

sim

examinar bit .EN.EN = 0

.EN = 1

bit .EN é energizadobit .ER é desenergizado.bit .DN é energizado.

.POS ≥ .LENsim

não

.POS = .POS + 1

valor .POS renova

sim

não

bit .ER é energizado

fim

saída da condição da linha é definida como verdadeira

bit .DN é energizado..POS = .LENsim

não

.POS > .LENnão

sim

.POS = 1

ir para erro

erro

.LEN > tamanho da

matriz

sim

não

Array[control.POS] = Source

falha grave

Publicação 1756-RM003D-PT-P - Junho 2001

Page 345: CONTROLADORES LOGIX 5000 -

Instruções de Seqüenciador (SQI, SQO, SQL) 9-15

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

antes da carga depois da carga

array_dint[0] 00000 00000

11111 11111

22222 22222

33333 control_1.pos = 5 33333

44444 value_3 = 55555 44444

array_dint[5] 00000 55555

00000 00000 control_1.pos = 6

00000 00000

00000 00000

00000 00000

Quando habilitada, a instrução SQL carrega value_3 na próxima posição na matriz do sequenciador, que é array_dint[5] nesse exemplo.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 346: CONTROLADORES LOGIX 5000 -

9-16 Instruções de Seqüenciador (SQI, SQO, SQL)

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 347: CONTROLADORES LOGIX 5000 -

Capítulo 10

Instruções de Controle de Programa(JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Introdução Use as instruções de controle de programa para alterar o fluxo da lógica.

Se você quiser: Use esta instrução: Consulte página:

Saltar uma seção da lógica que nem sempre precisa ser executada.

JMPLBL

10-2

Saltar para uma rotina separada, passar dados para a rotina, executar a rotina e retornar os resultados.

JSRSBRRET

10-4

Marcar um fim temporário que interrompa a execução da rotina.

TND 10-13

Desabilitar todas as linhas em uma seção de lógica.

MCR 10-15

Desabilitar as tarefas do usuário. UID 10-18

Habilitar as tarefas do usuário. UIE 10-18

Desabilitar uma linha. AFI 10-20

Inserir um placeholder na lógica. NOP 10-21

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 348: CONTROLADORES LOGIX 5000 -

10-2 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Salto para Label (JMP)Label (LBL)

As instruções JMP e LBL ignoram as partes da lógica de diagrama ladder.

Operandos de LógicaLadder a Relé:

Operandos do Bloco deFunção: Estas instruções não estão disponíveis no bloco de função.

Descrição: Quando habilitada, a instrução JMP ignora a instrução LBL citada e o controlador continua a executar a partir desse ponto. Quando desabilitada, a instrução JMP não afeta a execução do diagrama ladder.

A instrução JMP pode mover a execução do diagrama ladder para frente e para trás. O salto para frente para um label economiza tempo de varredura do programa, pois omite um segmento de lógica até que o mesmo seja necessário. O salto para trás permite que o controlador repita a lógica.

Recomenda-se não realizar muitos saltos para trás. O temporizador de watchdog pode entrar em período de espera porque o controlador nunca alcança o fim da lógica que, por usa vez, coloca o controlador em falha.

A instrução LBL está no alvo da instrução JMP que tem o mesmo nome de label. Certifique-se de que a instrução LBL é a primeira instrução na linha.

Um nome de label deve ser único dentro de uma rotina. O nome pode:

• ser composto por até 40 caracteres• conter letras, números e sublinhados (_)

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando: Tipo: Formato: Descrição:

Instrução JMP

Label name; nome do label;

insere o nome para a instrução LBL associada

Instrução LBL

Label name; nome do label;

a execução salta para a instrução LBL quando o nome do label é citado

ATENCION

!Não se realiza varredura na lógica com salto. Coloque uma lógica crítica fora da zona de salto.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 349: CONTROLADORES LOGIX 5000 -

Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-3

Flags de Status Aritmético: não afetados

Condições de Falha:

Execução de LógicaLadder a Relé:

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Estas instruções não estão disponíveis no bloco de função.

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

label não existe 4 42

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.A execução salta para a linha que contém a instrução LBL com o nome de label referenciado.

Quando a instrução JMP está habilitada, a execução salta linhas sucessivas da lógica até alcançar a linha que contém a instrução LBL com label_20.

[outras linhas de código]

Publicação 1756-RM003D-PT-P - Junho 2001

Page 350: CONTROLADORES LOGIX 5000 -

10-4 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Salto para Sub-rotina (JSR)Sub-rotina (SBR)Retorno (RET)

A instrução JSR salta para uma rotina separada. A instrução SBR passa dados para e executa uma rotina. A instrução RET devolve os resultados.

Operandos de LógicaLadder a Relé:

Operandos do Bloco deFunção: Estas instruções não estão disponíveis no bloco de função.

Descrição: Quando a entrada da condição da linha for verdadeira, a instrução JSR inicia a execução da rotina específica, a qual é referida como uma sub-rotina:

• A sub-rotina é executada uma vez.

• Depois da sub-rotina executada, a execução da lógica retorna para a instrução que segue a instrução JSR.

Bloco de FunçãoLógica Ladder a Relé

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Instrução JSR

Routine name ROUTINE nome rotina a ser executada

Input par SINTINTDINTREALestrutura

imediatotagtag da matriz

parâmetros (0-n) a serem passados para rotina

Return par SINTINTDINTREALestrutura

tagtag da matriz

parâmetros (0-n) a serem recebidos da rotina

Instrução SBR

Input par SINTINTDINTREALestrutura

tagtag da matriz

parâmetros (0-n) recebidos de JSR

Instrução RET

Return par SINTINTDINTREALestrutura

imediatotagtag da matriz

parâmetros (0-n) a serem retornados para JSR

Publicação 1756-RM003D-PT-P - Junho 2001

Page 351: CONTROLADORES LOGIX 5000 -

Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-5

Quando a entrada da condição da linha para a instrução JSR for falsa:

• A sub-rotina não é executada.

• As saídas na sub-rotina permanecem em seus últimos estados.

Não há restrições, a não ser a memória do controlador, em relação às rotinas encadeadas que possam existir ou ao número de parâmetros passados ou retornados.

15294

rotina principal

nível 1sub-rotina action_1

nível 3sub-rotina action_3

nível 2sub-rotina action_2

JSRJSR

JSR

SBRSBRSBR

RETRETRET

action_1

action_2 action_3

Publicação 1756-RM003D-PT-P - Junho 2001

Page 352: CONTROLADORES LOGIX 5000 -

10-6 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Para programar um salto para a sub-rotina, siga estas orientações:

1. No ponto na lógica onde a sub-rotina for executada, insira a instrução JSR.

2. Você quer copiar o(s) valor(es) para um tag diferente na sub-rotina?

3. Quando a sub-rotina completa sua execução, você quer copiar o(s) valor (es) para um tag na rotina que contém a instrução JSR?

4. Na instrução JSR, você especificou um operando Input par?

IMPORTANTE Não use a instrução JSR para chamar (executar) a rotina principal.

• Você pode colocar uma instrução JSR na rotina principal ou em qualquer outra rotina.

• Se você usar a instrução JSR para chamar a rotina principal e, então, colocar uma instrução RET na rotina principal, uma falha grave ocorre (tipo 4, código 31).

Se: Então:

sim A. Na instrução JSR, operando Input par, digite o tag que contém o(s) valor (es) a serem copiados.

B. Para cada entrada, repita a Etapa A.

não Omita os parâmetros de entrada

Se: Então:

sim A. Na instrução JSR, operando Return par, digite o tag que recebe o(s) valor (es).

B. Para cada valor de retorno, repita a Etapa A.

não Omita os parâmetros de entrada

Se: Então:

sim A. Como a primeira instrução na sub-rotina, digite uma instrução SBR.

B. No operando Input par da instrução SBR, digite o tag que recebe o(s) valor (es) da instrução JSR.

C. Para cada operando Input par na instrução JSR, repita a Etapa B.

não Vá para a Etapa 5.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 353: CONTROLADORES LOGIX 5000 -

Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-7

5. Na instrução JSR, você especificou um operando Return par?

6. Há condições quando você quer sair da sub-rotina antes do final?

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha:

ATENCION

!Para cada operando Input par em uma instrução SBR, use o mesmo tipo de dados (incluir qualquer dimensão de matriz) como um operando Input par correspondente na instrução JSR. O uso de tipos de dados diferentes pode produzir resultados inesperados.

Se: Então:

sim A. No fim da sub-rotina, adicione uma linha e digite uma instrução RET.

B. No operando Return par da instrução RET, digite o tag que fornece o(s) valor (es) para a instrução JSR.

C. Para cada parâmetro de retorno na instrução JSR, repita a Etapa B.

não Vá para a Etapa 6.

ATENCION

!Para cada operando Return par em uma instrução RET, use o mesmo tipo de dados (incluir qualquer dimensão de matriz) como o operando Return par correspondente na instrução JSR. O uso de tipos de dados diferentes pode produzir resultados inesperados.

Se: Então:

sim A. No local da sub-rotina onde você quer sair, digite uma linha.B. Digite as condições para sair do local da sub-rotina.C. Digite uma instrução RET.D. Digite parâmetros de retorno, se necessário. Consulte as etapas

4. e 5.

não Omita esta etapa.

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

a instrução JSR tem menos parâmetros de entrada do que a instrução SBR

4 31

Publicação 1756-RM003D-PT-P - Junho 2001

Page 354: CONTROLADORES LOGIX 5000 -

10-8 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Execução de LógicaLadder a Relé:

a instrução JSR salta para a rotina de falha 4 ou fornecido pelo usuário

0 ou fornecido pelo usuário

a instrução RET tem menos parâmetros de retorno do que a instrução JSR

4 31

a rotina principal contém uma instrução RET 4 31

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.O controlador executa todas as sub-rotinas independente da condição da linha. Para garantir que todas as linhas na subrotina sejam pré-varridas (prescanned), o controlador ignora as instruções RET. (Ou seja, as instruções RET não fazem a subrotina sair).

• Liberação 6.x e anterior, os parâmetros de entrada e retorno são passados. • Liberação 7.x e posterior, os parâmetros de entrada e retorno não são passados.

Caso haja chamadas recorrentes para a mesma sub-rotina, realiza-se uma pré-varredura na sub-rotina somente na primeira vez. Caso haja várias chamadas (não recorrentes) para a mesma sub-rotina, realiza-se uma pré-varredura na sub-rotina todas as vezes.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 355: CONTROLADORES LOGIX 5000 -

Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-9

Exemplo de LógicaLadder a Relé:

Condição: Ação:

parâmetros de entrada

sim

não

JSR copia os parâmetros de entrada para as variáveis SBR apropriadas

entrada da condição da linha for verdadeira

fim

a execução da lógica começa na rotina identificada por JSR

fim da sub-rotinasim

não

saída da condição da linha é definida como falsacontinua a executar a rotina

parâmetros de retorno

sim

não

RET copia os parâmetros de retorno para as variáveis JSR apropriadas

saída da condição da linha é definida como verdadeiraa execução da lógica retorna para JSR

Instrução RETsim

não

Publicação 1756-RM003D-PT-P - Junho 2001

Page 356: CONTROLADORES LOGIX 5000 -

10-10 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Quando habilitada, a instrução JSR passa value_1 e value_2 para routine_1.

[outras linhas de código]

A instrução SBR recebe value_1 e value_2 da instrução JSR e copia esses valores em value_a e value_b, respectivamente. A execução da lógica continua nessa rotina.

Quando habilitada, a instrução RET envia float_a para a instrução JSR. A instrução JSR recebe float_a e copia o valor em float_value_1. A execução da lógica continua na próxima instrução após a instrução JSR.

exemplo 1

Publicação 1756-RM003D-PT-P - Junho 2001

Page 357: CONTROLADORES LOGIX 5000 -

Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-11

Execução do Bloco deFunção: Estas instruções não estão disponíveis no bloco de função.

exemplo 2 Rotina Principal

Quando abc estiver energizado a sub-rotina_1 executa, calcula o número de cookies, e coloca um valor em cookies_1.

Soma o valor em cookies_1 a cookies_2 e armazena o resultado em total_cookies.

Sub-routine_1

Quando def estiver energizado, a instrução RET retorna value_1 para o parâmetro JSR cookies_1 e uma varredura não é realizada no restante da sub-rotina.

Quando def estiver desenergizado (linha anterior) eghi estiver energizado, a instrução RET retorna value_2 para o parâmetro cookies_1 de JSR e uma varredura não é realizada no restante da sub-rotina.

Quando def e ghi estiverem desenergizados (linhas anteriores) a instrução RET retorna value_3 para o parâmetro cookies_1 de JSR.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 358: CONTROLADORES LOGIX 5000 -

10-12 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Fim Temporário (TND)

A instrução TND atua como um limite.

Operandos de LógicaLadder a Relé: nenhuma

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando habilitada, a instrução TND permite que o controlador execute a lógica somente até essa instrução.

Quando habilitada, a instrução TND atua como o final da rotina. Quando o controlador realiza uma varredura em uma instrução TND, o controlador se movimenta para o final da rotina atual. Se a instrução TND estiver em uma sub-rotina, o controle retorna para a rotina chamada. Se a instrução TND estiver em uma rotina principal, o controle retorna para o próximo programa dentro da tarefa atual.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder a Relé:

Exemplo de LógicaLadder a Relé: É possível usar a instrução TND na depuração ou localização de falhas

para executar a lógica até um determinado ponto. Progressivamente, mova a instrução TND através da lógica à medida que se realiza a depuração em cada seção nova.

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder a Relé

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.A rotina atual termina.

Quando a instrução TND estiver habilitada, o controlador interrompe a varredura da rotina atual.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 359: CONTROLADORES LOGIX 5000 -

Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-13

Rearme do Controle Mestre (MCR)

A instrução MCR, usada em pares, cria uma zona de programa que pode desabilitar todas as linhas dentro das instruções MCR.

Operandos de LógicaLadder a Relé: nenhuma

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a zona MCR estiver habilitada, realiza-se uma varredura nas linhas da zona MCR para verificar as condições normais de verdadeiro e falso. Quando desabilitada, o controlador ainda realiza varredura nas linhas que estão dentro de uma zona MCR, mas o tempo de varredura é reduzido porque as saídas não retentivas na zona estão desabilitadas. A entrada da condição da linha é falsa para todas as instruções que estão dentro da zona MCR desabilitada.

Ao programar uma zona MCR, observe o seguinte:

• Você deve finalizar a zona com uma instrução MCR incondicional.

• Você não pode encadear zonas MCR entre si.

• Não realize um salto em uma zona MCR. Se a zona for falsa, o salto na zona ativa a zona desde o ponto do salto até o fim da mesma.

• Se uma zona MCR continuar até o fim da rotina, não é necessário programar uma instrução MCR até o final da zona.

A instrução MCR não substitui a instalação de um relé de controle mestre com capacidade para permitir uma parada de emergência. Você deverá, ainda, instalar um relé de controle mestre para fornecer um desligamento de emergência da alimentação de E/S.

Linguagens Disponíveis:

Lógica Ladder a Relé

ATENCION

!Não sobreponha ou monte em cadeia as zonas MCR. Cada zona MCR deve ser separada e completa. Se houver sobreposição ou encadeamento, uma operação imprevisível de máquina pode ocorrer com possíveis danos ao equipamento ou ferimentos pessoais.

Coloque operações críticas fora da zona MCR. Se você iniciar instruções como, por exemplo, temporizadores em uma zona MCR, a execução da instrução pára quando a zona é desabilitada e o tempo for removido.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 360: CONTROLADORES LOGIX 5000 -

10-14 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder a Relé:

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.Realiza-se varredura nas instruções da zona, mas a entrada da condição da linha e as saídas não retentivas na zona são desabilitadas.

entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.As instruções na zona são varridas normalmente.

Quando a primeira instrução MCR estiver habilitada (input_1, input_2 e input_3 estão energizados), o controlador executa as linhas na zona MCR (entre as duas instruções MCR) e energiza ou desenergiza as saídas, dependendo das condições de saída.Quando a primeira instrução MCR estiver desabilitada (input_1, input_2 e input_3 não estão todos energizados), o controlador executa as linhas na zona MCR (entre as duas instruções MCR) e a entrada da condição da linha se torna falsa para todas as linhas na zona MCR, independente das condições de entrada.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 361: CONTROLADORES LOGIX 5000 -

Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-15

Desabilitação da Interrupção pelo Usuário (UID)Habilitação da Interrupção pelo Usuário (UIE)

A instrução UID e a instrução UIE trabalham juntas para evitar que um número pequeno de linhas críticas sejam interrompidas por outras tarefas.

Operandos de LógicaLadder a Relé: nenhuma

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a entrada da condição de linha for verdadeira, a:

• instrução UID previne que tarefas com prioridade mais alta interrompam a tarefa atual mas não desabilita a execução de uma rotina de falha ou a Rotina de Falha do Controlador.

• a instrução UIE habilita outras tarefas a interromperem a tarefa atual.

Para evitar que uma série de linhas sejam interrompidas:

1. Limite o número de linhas que você não quer que sejam interrompidas no menor número possível. A desabilitação de interrupções por um longo período de tempo pode produzir perda de comunicação.

2. Acima da primeira linha que vocênão quer interromper, insira uma linha e uma instrução UID.

3. Depois da última linha da série que você não quer interromper, insira uma linha e uma instrução UIE.

4. Se preciso, você pode encadear pares das instruções UID/UIE.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Linguagens Disponíveis:

Lógica Ladder a Relé

Publicação 1756-RM003D-PT-P - Junho 2001

Page 362: CONTROLADORES LOGIX 5000 -

10-16 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Execução de LógicaLadder a Relé:

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A instrução UID previne a interrupção por tarefas de prioridade maior.A instrução UIE habilita a interrupção por tarefas de prioridade maior.A saída da condição da linha está definida como verdadeira.

Quando um erro ocorre (error_bit está energizado), a instrução FSC verifica o código do erro em relação a uma lista de erros críticos. Se a instrução FSC encontra um erro que seja crítico (error_check.FD is on), um alarme é acionado. As instruções UID e UIE evitam que outras tarefas interrompam a verificação e o acionamento de alarmes.

UID

error_bit

ENDNER

File Search/CompareControl error_checkLength 10Position 8Mode ALLExpression error_code=error_list[error_check.POS]

FSC

error_check.FD

alarm

UIE

Publicação 1756-RM003D-PT-P - Junho 2001

Page 363: CONTROLADORES LOGIX 5000 -

Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-17

Instrução Sempre Falsa (AFI)

A instrução AFI configura a sua saída da condição da linha como falsa.

Operandos de LógicaLadder a Relé: nenhuma

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: A instrução AFI configura a sua saída da condição da linha como falsa.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder a Relé:

Exemplo de LógicaLadder a Relé: Use a instrução AFI para desabilitar temporariamente uma linha,

enquanto estiver depurando um programa.

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder a Relé

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A saída da condição da linha é definida como falsa.

Quando habilitada, AFI desabilita todas as instruções nessa linha.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 364: CONTROLADORES LOGIX 5000 -

10-18 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Sem Operação (NOP)

A instrução NOP funciona como um placeholder

Operandos de LógicaLadder a Relé: nenhuma

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: É possível colocar a instrução NOP em qualquer ponto de uma linha. Quando habilitada, a instrução NOP não realiza nenhuma operação. Quando desabilitada, a instrução NOP não realiza nenhuma operação.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder a Relé:

Exemplo de LógicaLadder a Relé: Essa instrução é útil para localizar ramificações incondicionais quando

se coloca a instrução NOP na ramificação.

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder a

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.

A instrução NOP realiza bypass na instrução XIC para habilitar a saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 365: CONTROLADORES LOGIX 5000 -

Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-19

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 366: CONTROLADORES LOGIX 5000 -

10-20 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 367: CONTROLADORES LOGIX 5000 -

Capítulo 11

Instruções For/Break(FOR, BRK, RET)

Introdução Use a instrução FOR para chamar repetidamente uma sub-rotina. Use a instrução BRK para interromper a execução de uma sub-rotina.

Se você quiser: Use esta instrução: Consulte página:

Executar repetidamente a rotina. FOR 11-2

Terminar a execução repetida de uma rotina. BRK 11-5

Retornar para a instrução FOR. RET 11-7

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 368: CONTROLADORES LOGIX 5000 -

11-2 Instruções For/Break (FOR, BRK, RET)

For (FOR)

A instrução FOR executa repetidamente uma sub-rotina.

Operandos de LógicaLadder a Relé:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição:

Quando habilitada, a instrução FOR executa repetidamente Routine até que o valor Index exceda o valor Terminal. Essa instrução não passa parâmetros para a rotina.

Cada vez que a instrução FOR executa a rotina, a mesma adiciona o tamanho Step a Index.

Linguagens Disponíveis:

Lógica Ladder a Relé

Operando: Tipo: Formato: Descrição:

Routine name

ROUTINE nome da rotina

rotina a ser executada

Index DINT tag conta quantas vezes a rotina foi executada

Initial value SINTINTDINT

imediatotag

valor onde se inicia o índice

Terminal value

SINTINTDINT

imediatotag

valor onde parar a execução da rotina

Step size SINTINTDINT

imediatotag

quantidade a ser acrescentada ao índice cada vez que a instrução FOR executar a rotina

IMPORTANTE Não use a instrução FOR para chamar (executar) a rotina principal.

• Você pode colocar uma instrução FOR na rotina principal ou em qualquer outra rotina.

• Se você usar a instrução FOR para chamar a rotina principal e, então, colocar uma instrução RET na rotina principal, uma falha grave ocorre (tipo 4, código 31).

Publicação 1756-RM003D-PT-P - Junho 2001

Page 369: CONTROLADORES LOGIX 5000 -

Instruções For/Break (FOR, BRK, RET) 11-3

Tome cuidado para não realizar uma malha várias vezes em uma única varredura. Um número excessivo de repetições pode fazer com que o temporizador do watchdog do controlador expire e cause uma falha grave.

Flags de Status Aritmético: não afetados

Condições de Falha:

Execução de LógicaLadder a Relé:

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

a rotina principal contém uma instrução RET 4 31

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.O controlador executa a sub-rotina uma vez.Caso haja instruções FOR recorrentes na mesma sub-rotina, uma pré-varredura é realizada somente na primeira vez na sub-rotina. Caso haja várias instruções FOR (não recorrentes) na mesma sub-rotina, realiza-se uma pré-varredura na sub-rotina todas as vezes.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

index ≥ valor terminalnãosim

executar rotinaindex =(index + step_size)

entrada da condição da linha for verdadeira

fim

index = initial_value

saída da condição da linha é definida como verdadeira

tamanho step < 0não

sim

index ≤valor terminalnão

sim

ir para o fim

fimir para o fim

Publicação 1756-RM003D-PT-P - Junho 2001

Page 370: CONTROLADORES LOGIX 5000 -

11-4 Instruções For/Break (FOR, BRK, RET)

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Quando habilitada, a instrução FOR executa repetidamente routine_2 e incrementa value_2 em 1 todas as vezes. Quando value_2 é > 10 ou uma instrução BRK estiver habilitada, a instrução FOR não mais executa routine_2.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 371: CONTROLADORES LOGIX 5000 -

Instruções For/Break (FOR, BRK, RET) 11-5

Break (BRK)

A instrução BRK interrompe a execução de uma rotina que foi chamada por uma instrução FOR.

Operandos de LógicaLadder a Relé: nenhuma

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando habilitada, a instrução BRK sai da rotina e retorna o controlador à instrução após FOR.

Se houver instruções FOR encadeadas, uma instrução BRK retornará o controle para a instrução FOR mais profunda.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder a Relé:

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder a Relé

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.A execução retorna para a instrução que segue a instrução FOR que está chamando.

Quando habilitada, a instrução BRK pára de executar a rotina atual e retorna para a instrução que segue a instrução FOR que está chamando.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 372: CONTROLADORES LOGIX 5000 -

11-6 Instruções For/Break (FOR, BRK, RET)

Retorno (RET)

A instrução RET retorna para a instrução FOR que está chamando.

Operandos de LógicaLadder a Relé: nenhuma

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição:

Quando habilitada, a instrução RTE retorna para a instrução FOR. A instrução FOR incrementa o valor Index pelo tamanho de Step e executa a sub-rotina novamente. Se o valor Index exceder o valor Terminal, a instrução FOR será concluída e a execução se movimentará para a instrução que segue a instrução FOR.

A instrução FOR não usa parâmetros. A instrução FOR ignora os parâmetros inseridos em uma instrução RET.

É possível usar também uma instrução TND para finalizar a execução de uma sub-rotina.

Flags de Status Aritmético: não afetados

Condições de Falha:

Linguagens Disponíveis:

Lógica Ladder a Relé

IMPORTANTE Não coloque uma instrução RET na rotina principal. Se você colocar uma instrução RET na rotina principal, uma falha grave ocorre (tipo 4, código 31).

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

a rotina principal contém uma instrução RET 4 31

Publicação 1756-RM003D-PT-P - Junho 2001

Page 373: CONTROLADORES LOGIX 5000 -

Instruções For/Break (FOR, BRK, RET) 11-7

Execução de LógicaLadder a Relé:

Exemplo de LógicaLadder a Relé:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.

Quando habilitada, a instrução RTE retorna para a instrução FOR que está chamando. A instrução FOR executa a sub-rotina novamente e incrementa o valor Index pelo tamanho Step ou se o valor Index exceder o valor Terminal, a instrução FOR é concluída e a execução se movimenta para a instrução que segue a instrução FOR.

Quando habilitada, a instrução FOR executa repetidamente routine_2 e incrementa value_2 em 1 todas as vezes. Quando value_2 é > 10 ou uma instrução BRK estiver habilitada, a instrução FOR não mais executa routine_2.

rotina que está chamando sub-rotina

Publicação 1756-RM003D-PT-P - Junho 2001

Page 374: CONTROLADORES LOGIX 5000 -

11-8 Instruções For/Break (FOR, BRK, RET)

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 375: CONTROLADORES LOGIX 5000 -

Capítulo 12

Instruções Especiais(FBC, DDT, DTR, PID)

Introdução As instruções especiais realizam operações específicas à aplicação.

Se você quiser: Use esta instrução: Consulte página:

Comparar os dados com uma boa referência já conhecida e registrar quaisquer diferenças.

FBC 12-2

Comparar os dados com uma boa referência já conhecida, registrar quaisquer diferenças e atualizar a referência para combinar com a fonte.

DDT 12-10

Passar os dados da fonte pela máscara e comparar o resultado com os dados de referência. Em seguida, escrever a fonte na referência para a próxima comparação.

DTR 12-18

Controlar uma malha de PID. PID 12-21

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 376: CONTROLADORES LOGIX 5000 -

12-2 Instruções Especiais (FBC, DDT, DTR, PID)

Comparação de Bit de Arquivo (FBC)

A instrução FBC compara os bits em uma matriz Source com os bits em uma matriz Reference.

Operandos de LógicaLadder:

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Source DINT tag da matriz matriz a ser comparada com a referêncianão use CONTROL.POS em subscrito

Reference DINT tag da matriz matriz a ser comparada com a fontenão use CONTROL.POS em subscrito

Result: DINT tag da matriz matriz para armazenar o resultadonão use CONTROL.POS em subscripts

Cmp control CONTROL estrutura estrutura de controle para a comparação

Length DINT imediato número de bits a ser comparado

Position DINT imediato posição atual na fontevalor inicial é normalmente 0

Result control

CONTROL estrutura estrutura de controle para os resultados

Length DINT imediato número de locais de armazenamento no resultado

Position DINT imediato posição atual no resultadovalor inicial é normalmente 0

ATENÇÃO

!Use tags diferentes para comparar a estrutura de controle e a estrutura de controle do resultado. O uso do mesmo tag para ambas as estruturas pode resultar em operação não previsível, com possibilidade de causar danos ao equipamento e/ou ferimentos pessoais.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 377: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-3

Estrutura de Comparação:

Estrutura de Resultado:

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: Quando habilitada, a instrução FBC compara os bits na matriz Source com os bits na matriz Reference e registra o número do bit de cada diferença na matriz Result.

A instrução FBC opera na memória de dados contínua.

A diferença entre as instruções DDT e FBC é que cada vez que a instrução DDT encontra uma diferença, a instrução altera o bit de referência para estabelecer correspondência com o bit da fonte. A instrução FBC não altera o bit de referência.

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit habilitado indica que a instrução FBC está habilitada.

.DN BOOL O bit executado é energizado quando a instrução FBC compara o último bit nas matrizes Source e Reference.

.FD BOOL O bit encontrado é energizado cada vez que a instrução FBC registra uma diferença (operação uma de cada vez) ou depois de registrar todas as diferenças (operação todas por varredura).

.IN BOOL O bit inibido indica o modo de busca de FBC.0 = todos os modos1 = uma diferença em um modo de tempo

.ER BOOL O bit de erro é energizado se a comparação for .POS < 0, .LEN < 0, o resultado .POS < 0 ou o resultado .LEN < 0. A instrução pára a execução até que o programa desenergize o bit .ER.

.LEN DINT O valor do comprimento identifica o número de bits a ser comparado.

.POS DINT O valor da posição identifica o bit atual.

Mnemônico: Tipo de Dados: Descrição:

.DN BOOL O bit executado é energizado quando a matriz Result está cheia.

.LEN DINT O valor do comprimento identifica o número de locais de armazenamento na matriz Result.

.POS DINT O valor da posição identifica a posição atual na matriz Result.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 378: CONTROLADORES LOGIX 5000 -

12-4 Instruções Especiais (FBC, DDT, DTR, PID)

Seleção do modo de busca

Flags de Status Aritmético: não afetados

Condições de Falha:

Execução de LógicaLadder:

Se você quiser detectar: Selecione este modo:

Uma diferença de vez em quando

Energizar o bit .IN na estrutura CONTROL de comparação.Cada vez que a entrada da condição da linha passar de falsa para verdadeira, a instrução FBC busca a próxima diferença entre as matrizes Source e Reference. Ao encontrar uma diferença, a instrução energiza o bit .FD, registra a posição da diferença e interrompe a execução.

Todas as diferenças Zerar o bit .IN na estrutura CONTROL de comparação.Cada vez que a entrada da condição da linha passar de falsa para verdadeira, a instrução FSC busca todas as diferenças entre as matrizes Source e Reference.

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

Result.POS > tamanho da matriz de resultado 4 20

Condição: Ação:

pré-varredura

fim

o bit compare.EN é desenergizado.o bit compare.FD é desenergizado.

saída da condição da linha é definida como falsa

examinar bit compare.DN

compare .DN = 0

compare .DN = 1

o bit compare.DN é desenergizado.o valor compare.POS é desenergizado.o bit result.DN é desenergizado.o valor result.POS é desenergizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 379: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-5

Condição: Ação:

entrada da condição da linha for falsa

fim

o bit compare .EN é desenergizado.o bit compare.FD é desenergizado.

saída da condição da linha é definida como falsa

examinar bit compare.DN

compare.DN = 0

compare.DN = 1

o bit compare.DN é desenergizado.o valor compare.POS é desenergizado.o bit result.DN é desenergizado.o valor result.POS é desenergizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 380: CONTROLADORES LOGIX 5000 -

12-6 Instruções Especiais (FBC, DDT, DTR, PID)

Condição: Ação:

examinar bit compare.EN

compare.EN = 1

compare.EN = 0

entrada da condição da linha for verdadeira

examinar bit compare.DN

compare.DN = 1

compare.DN = 0

o bit compare .EN é energizado.

o bit compare.ER é desenergizado.o bit compare.FD é desenergizado.

compare.LEN ≤ 0sim

não

compare.POS < 0sim

não o bit compare.ER é energizado.

comparar

página 12-8fim

saída da condição da linha é definida como verdadeira

ir para a saída

sair

ir para a saída

ir para a saída

Publicação 1756-RM003D-PT-P - Junho 2001

Page 381: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-7

Condição: Ação:

compare.POS ≥ compare.LEN

sim

não

compare.POS = compare.LENo bit compare.DN é energizado.

compara

ir para a saída

source[compare.POS] = reference[compare.POS]

não

sim

examinar o bit result.DN

result.DN = 1

result.DN = 0

compare.POS =compare.POS + 1

o bit compare.FD é energizado.

o bit result.DN é desenergizado.o valor result.POS é desenergizado.

result.POS < 0sim

não

result.LEN ≤ 0sim

não o bit compare.ER é energizado.

ir para a saída

sim

não

falha grave

result[result.POS] = compare.POSresult.POS = result.POS + 1

result.POS > result.LEN

não

sim

o bit result.DN é energizado.

página 12-7

página12-7

result.POS > tamanho da matriz de

resultado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 382: CONTROLADORES LOGIX 5000 -

12-8 Instruções Especiais (FBC, DDT, DTR, PID)

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

fontearray_dint1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

referênciaarray_dint2

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0

resultadoarray_dint3

5 3

Quando habilitada, a instrução FBC compara a fonte array_dint1 com a referência array_dint2 e armazena os locais das diferenças no resultado array_dint3.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 383: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-9

Detecção de Diagnóstico (DDT)

A instrução DDT compara bits em uma matriz Source com os bits em uma matriz Reference para determinar as alterações de estado.

Operandos de LógicaLadder:

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Source DINT tag da matriz

matriz a ser comparada com a referêncianão use CONTROL.POS em subscrito

Reference DINT tag da matriz

matriz a ser comparada com a fontenão use CONTROL.POS em subscrito

Result: DINT tag da matriz

matriz para armazenar os resultadosnão use CONTROL.POS em subscrito

Cmp control CONTROL estrutura estrutura de controle para a comparação

Length DINT imediato número de bits a ser comparado

Position DINT imediato posição atual na fontevalor inicial é normalmente 0

Result control

CONTROL estrutura estrutura de controle para os resultados

Length DINT imediato número de locais de armazenamento no resultado

Position DINT imediato posição atual no resultadovalor inicial é normalmente 0

ATENÇÃO

!Use tags diferentes para comparar a estrutura de controle e a estrutura de controle do resultado. O uso do mesmo tag para ambas as estruturas pode resultar em operação não previsível, com possibilidade de causar danos ao equipamento e/ou ferimentos pessoais.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 384: CONTROLADORES LOGIX 5000 -

12-10 Instruções Especiais (FBC, DDT, DTR, PID)

Estrutura de Comparação:

Estrutura de Resultado:

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: Quando habilitada, a instrução DDT compara os bits na matriz Source com os bits na matriz Reference, registra o número de bit de cada diferença na matriz Result e altera o valor do bit Reference para corresponder ao valor do bit Source correspondente.

A instrução DDT opera na memória de dados contínua.

A diferença entre as instruções DDT e FBC é que cada vez que a instrução DDT encontra uma diferença, a instrução DDT altera o bit de referência para estabelecer correspondência com o bit da fonte. A instrução FBC não altera o bit de referência.

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit habilitado indica que a instrução DDT está habilitada.

.DN BOOL O bit executado é energizado quando a instrução DDT compara o último bit nas matrizes Source e Reference.

.FD BOOL O bit encontrado é energizado cada vez que a instrução DDT registra uma diferença (operação uma de cada vez) ou depois de registrar todas as diferenças (operação todas por varredura).

.IN BOOL O bit inibido indica o modo de busca de DDT.0 = todos os modos1 = uma diferença em um modo de tempo

.ER BOOL O bit de erro é energizado se a comparação for .POS < 0, .LEN < 0, o resultado .POS < 0 ou o resultado .LEN < 0. A instrução pára a execução até que o programa desenergize o bit .ER.

.LEN DINT O valor do comprimento identifica o número de bits a ser comparado.

.POS DINT O valor da posição identifica o bit atual.

Mnemônico: Tipo de Dados: Descrição:

.DN BOOL O bit executado é energizado quando a matriz Result está cheia.

.LEN DINT O valor do comprimento identifica o número de locais de armazenamento na matriz Result.

.POS DINT O valor da posição identifica a posição atual na matriz Result.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 385: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-11

Seleção do modo de busca

Flags de Status Aritmético: não afetados

Condições de Falha:

Execução de LógicaLadder:

Se você quiser detectar: Selecione este modo:

Uma diferença de vez em quando

Energizar o bit .IN na estrutura CONTROL de comparação.Cada vez que a entrada da condição da linha passar de falsa para verdadeira, a instrução DDT busca a próxima diferença entre as matrizes Source e Reference. Ao encontrar uma diferença, a instrução energiza o bit .FD, registra a posição da diferença e interrompe a execução.

Todas as diferenças Zerar o bit .IN na estrutura CONTROL de comparação.Cada vez que a entrada da condição da linha passar de falsa para verdadeira, a instrução DDT busca todas as diferenças entre as matrizes Source e Reference.

Uma falha grave ocorrerá se: Tipo de falha: Código de falha:

Result.POS > tamanho da matriz de resultado

4 20

Condição: Ação:

pré-varredura

fim

o bit compare .EN é desenergizado.o bit compare.FD é desenergizado.

saída da condição da linha é definida como falsa

examinar bit compare.DN

compare.DN = 0

compare.DN = 1

o bit compare.DN é desenergizado.o valor compare.POS é desenergizado.o bit result.DN é desenergizado.o valor result.POS é desenergizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 386: CONTROLADORES LOGIX 5000 -

12-12 Instruções Especiais (FBC, DDT, DTR, PID)

Condição: Ação:

entrada da condição da linha for falsa

fim

o bit compare .EN é desenergizado.o bit compare.FD é desenergizado.

saída da condição da linha é definida como falsa

examinar bit compare.DN

compare.DN = 0

compare.DN = 1

o bit compare.DN é desenergizado.o valor compare.POS é desenergizado.o bit result.DN é desenergizado.o valor result.POS é desenergizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 387: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-13

Condição: Ação:

examinar o bit compare.EN

compare.EN = 1

compare.EN = 0

entrada da condição da linha for verdadeira

examinar bit compare.DN

compare.DN bit = 1

compare.DN bit = 0

o bit compare .EN é energizado.

o bit compare.ER é desenergizado.o bit compare.FD é desenergizado.

compare.LEN ≤ 0sim

não

compare.POS < 0sim

nãoo bit compare.ER é energizado.

Comparar

página 12-16 fim

saída da condição da linha é definida como verdadeira

ir para a saída

sair

ir para a saída

ir para a saída

Publicação 1756-RM003D-PT-P - Junho 2001

Page 388: CONTROLADORES LOGIX 5000 -

12-14 Instruções Especiais (FBC, DDT, DTR, PID)

Condição: Ação:

compare.POS ≥ compare.LEN

sim

não

compare.POS = compare.LENo bit compare.DN é energizado.

compara

ir para a saída

source[compare.POS] = reference[compare.POS]

não

sim

examinar o bit result.DN

result.DN = 1

result.DN = 0

compare.POS =compare.POS + 1

o bit compare.FD é energizado.reference[compare.POS] = source[compare.POS]

o bit result.DN é desenergizado.o valor result.POS é desenergizado.

result.POS < 0sim

não

result.LEN ≤ 0sim

não o bit compare.ER é energizado.

ir para

sim

não

falha grave

result[result.POS] = compare.POSresult.POS = result.POS + 1

result.POS ≥ result.LEN

não

sim

o bit result.DN é energizado.

página 12-15

página 12-7

result.POS > tamanho da matriz de

resultado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 389: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-15

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

fontearray_dint1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

referência (antes dacomparação)array_dint2

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0

resultado:array_dint3

5 3

referência (depois dacomparação)array_dint2

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Quando habilitada, a instrução DDT compara a fonte array_dint1 com a referência array_dint2 e armazena os locais das diferenças no resultado array_dint3. O controlador também altera os bits de diferença na referência array_dint2 para corresponder à fonte array_dint1.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 390: CONTROLADORES LOGIX 5000 -

12-16 Instruções Especiais (FBC, DDT, DTR, PID)

Dados Transicionais (DTR)

A instrução DTR passa o valor Source por Mask e compara o resultado com o valor Reference.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Descrição: A instrução DTR passa o valor Source por Mask e compara o resultado com o valor Reference. A instrução DTR também escreve o valor Source mascarado no valor Reference para a próxima comparação. Source permanece inalterado.

Um “1“ na máscara significa que o bit de dados passou. Um “0“ na máscara significa que o bit de dados foi bloqueado.

Quando Source mascarado for diferente de Reference, a saída da condição da linha se torna verdadeira durante uma varredura. Quando Source mascarado for igual a Reference, a saída da condição da linha se torna falsa.

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

Source DINT imediatotag

matriz a ser comparada com a referência

Mask DINT imediatotag

quais bits devem ser bloqueados ou podem passar

Reference DINT tag matriz a ser comparada com a fonte

ATENÇÃO

!A programação online com essa instrução pode ser perigosa. Se o valor Reference for diferente de Source, a saída da condição da linha se torna verdadeira. Tome cuidado se você inserir essa instrução quando o controlador estiver no modo Run ou Remote Run.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 391: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-17

Inserção de uma 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.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

Prefixo: Descrição:

16# hexadecimalpor exemplo; 16#0F0F

8# octalpor exemplo; 8#16

2# bináriopor exemplo; 2#00110011

Condição: Ação:

pré-varredura The Reference = Source AND Mask.A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa The Reference = Source AND Mask.A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira

fim

masked source = reference

não

sim

referência é definida igual à fonte mascaradasaída da condição da linha é energizada quando verdadeira

saída da condição da linha é energizada quando falsa

Publicação 1756-RM003D-PT-P - Junho 2001

Page 392: CONTROLADORES LOGIX 5000 -

12-18 Instruções Especiais (FBC, DDT, DTR, PID)

Exemplo de LógicaLadder:

Um 0 na máscara não altera o bit.

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Quando habilitada, a instrução DTR coloca uma máscara em value_1. Se houver diferença entre dois valores, a saída da condição da linha é definida como verdadeira.

13385

A linha permanecerá falsa enquanto o valor de entrada não for alterado.

A linha permanecerá verdadeira durante uma varredura quando uma alteração for detectada.

0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1

1 8 3 1 8 7

máscara = 0FFF

1 8 7

fontevalue_1

referênciavalue_2

1 8 3

1 8 3

1 8 3

varredura atual

varreduraanterior

varredura anterior

varredura atual

exemplo 1 exemplo 2

97

0

0

0

0

Publicação 1756-RM003D-PT-P - Junho 2001

Page 393: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-19

Proporcional, Integral e Derivativo (PID)

A instrução PID controla um tag de processo como, por exemplo, fluxo, pressão, temperatura ou nível.

Operandos de LógicaLadder:

Linguagens Disponíveis:

Lógica Ladder

Operando Tipo: Formato: Descrição:

PID PID estrutura estrutura PID

Process variable

SINTINTDINTREAL

tag valor a ser controlado

Tieback SINTINTDINTREAL

imediatotag

(opcional)saída de uma estação manual/automática de hardware que está realizando bypass da saída do controladorinsira 0 se você não quiser usar esse parâmetro

Control variable

SINTINTDINTREAL

tag valor que vai para o dispositivo de controle final (válvula, amortecedor etc.)se você estiver usando a zona morta, Control variable deve ser do tipo REAL ou o mesmo será forçado em 0 quando houver um erro dentro da zona morta

PID master loop

PID estrutura opcionaltag PID para o PID mestreSe você estiver realizando o controle em cascata e esse PID for uma malha escrava, insira o nome do PID mestre.insira 0 se você não quiser usar esse parâmetro

Inhold bit BOOL tag opcionalstatus atual do bit inhold de um canal de saída analógico 1756 para suportar uma reinicialização ininterruptainsira 0 se você não quiser usar esse parâmetro

Inhold value SINTINTDINTREAL

tag opcionalvalor de nova leitura de dados de uma canal de saída analógica 1756 para suportar uma reinicialização ininterrupta.insira 0 se você não quiser usar esse parâmetro

Setpoint somente displayvalor atual do setpoint.

Process variable

somente displayvalor atual de Process Variable convertido em escala

Output % somente displayvalor de porcentagem da saída da corrente

Publicação 1756-RM003D-PT-P - Junho 2001

Page 394: CONTROLADORES LOGIX 5000 -

12-20 Instruções Especiais (FBC, DDT, DTR, PID)

Estrutura: Especifique uma estrutura PID única para cada instrução PID.

Mnemônico: Tipo de Dados: Descrição:

.CTL DINT O membro .CTL fornece acesso aos membros de status (bits) em uma palavra de 32 bits. A instrução PID energiza os bits 07 -15.

Este bit: Corresponde a este membro:

31 .EN

30 .CT

29 .CL

28 .PVT

27 .DOE

26 .SWM

25 .CA

24 .MO

23 .PE

22 .NDF

21 .NOBC

20 .NOZC

Este bit: Este membro é que é configurado pela instrução PID:

15 .INI

14 .SPOR

13 .OLL

12 .OLH

11 .EWD

10 .DVNA

09 .DVPA

08 .PVLA

07 .PVHA

SP REAL setpoint

.KP REAL independente ganho proporcional (sem unidade)

dependente ganho do controlador (sem unidade)

.KI REAL independente ganho integral (1/s)

dependente tempo de reset (minutos por repetição)

.KD REAL independente ganho derivativo (segundos)

dependente tempo da taxa (minutos)

.BIAS REAL feedforward ou bias %

.MAXS REAL valor de conversão de escala da unidade de medida máxima

.MINS REAL valor de conversão de escala da unidade de medida mínima

.DB REAL unidades de medida da zona morta

.SO REAL defininir % da saída

.MAXO REAL limite de saída máximo (% da saída)

.MINO REAL limite de saída mínimo (% da saída)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 395: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-21

.UPD REAL tempo de atualização da malha (segundos)

.PV REAL valor PV em escala

.ERR REAL valor de erro em escala

.OUT REAL % da saída

.PVH REAL limite de alarme superior para o tag do processo

.PVL REAL limite de alarme inferior para o tag do processo

.DVP REAL limite de alarme de desvio positivo

.DVN REAL limite de alarme de desvio negativo

.PVDB REAL zona morta do alarme do tag de processo

.DVDB REAL zona morta do alarme de desvio

.MAXI REAL valor máximo de PV (entrada sem escala)

.MINI REAL valor mínimo de PV (entrada sem escala)

.TIE REAL valor de tieback para controle manual

.MAXCV REAL valor máximo de CV (corresponde a 100%)

.MINCV REAL valor mínimo de CV (corresponde a 0%)

.MINTIE REAL valor mínimo de tieback (corresponde a 100%)

.MAXTIE REAL valor máximo de tieback (corresponde a 0%)

.DATA REAL[17] O membro .DATA armazena:

Elemento Descrição:

.DATA[0] acúmulo integral

.DATA[1] valor temporário de filtro derivativo

.DATA[2] valor .PV anterior

.DATA[3] valor .ERR anterior

.DATA[4] valor .SP válido anterior

.DATA[5] constante de conversão de escala em porcentagem

.DATA[6] constante de conversão em escala .PV

.DATA[7] constante de conversão em escala derivativa

.DATA[8] valor .KP anterior

.DATA[9] valor .KI anterior

.DATA[10] valor .KD anterior

.DATA[11] ganho .KP dependente

.DATA[12] ganho .KI dependente

.DATA[13] ganho .KD dependente

.DATA[14] valor .CV anterior

.DATA[15] constante .CV para desfazer a conversão

.DATA[16] constante tieback para desfazer a conversão

.EN BOOL habilitado

.CT BOOL tipo cascata (0=escravo; 1=mestre)

.CL BOOL malha da cascata (0=não; 1=sim)

.PVT BOOL rastreamento do tag do processo (0=não; 1=sim)

Mnemônico: Tipo de Dados: Descrição:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 396: CONTROLADORES LOGIX 5000 -

12-22 Instruções Especiais (FBC, DDT, DTR, PID)

Operandos do Bloco deFunção

Esta instrução não está disponível no bloco de função.

Descrição: A instrução PID geralmente recebe a variável de processo (PV) de um módulo de entrada analógica e modula uma saída da variável de controle (CV) em um módulo de saída analógica a fim de manter a variável de processo no setpoint desejado.

O bit .EN indica o status de execução. O bit .EN é energizado quando a entrada da condição da linha passa de falsa para verdadeira. O bit .EN é desenergizado quando a entrada da condição da linha se torna falsa. A instrução PID não utiliza um bit .DN. A instrução PID é executada a cada varredura, sempre que a entrada da condição da linha for verdadeira.

Flags de Status Aritmético: não afetados

.DOE BOOL derivativa de (0=PV; 1=erro)

.SWM BOOL modo manual do software (0=não - automático; 1=sim- manual com chave)

.CA BOOL ação de controle (0 significa E=SP-PV; 1 significa E=PV-SP)

.MO BOOL modo de estação (0=automático; 1=manual)

.PE BOOL equação PID (0=independente; 1=dependente)

.NDF BOOL filtro derivativo (0=não; 1=sim)

.NOBC BOOL cálculo de volta para bias (0=não; 1=sim)

.NOZC BOOL cruzamento zero para zona morta (0=não; 1=sim para zona morta)

.INI BOOL PID inicializada (0=não; 1=sim)

.SPOR BOOL setpoint fora da faixa (0=não; 1=sim)

.OLL BOOL CV está abaixo do limite de saída mínimo (0=não; 1=sim)

.OLH BOOL CV está acima do limite de saída máximo (0=não; 1=sim)

.EWD BOOL o erro está dentro da zona morta (0=não; 1=sim)

.DVNA BOOL o desvio está definido como alarme baixo (0=não; 1=sim)

.DVPA BOOL o desvio está definido como alarme alto (0=não; 1=sim)

.PVLA BOOL o PV está definido como alarme baixo (0=não; 1=sim)

.PVHA BOOL o PV está definido como alarme alto (0=não; 1=sim)

Mnemônico: Tipo de Dados: Descrição:

estado da linha

execução da instrução PID

bit .EN

41027

Publicação 1756-RM003D-PT-P - Junho 2001

Page 397: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-23

Condições de Falha:

Execução de LógicaLadder:

Execução do Bloco deFunção:

Esta instrução não está disponível no bloco de função.

Configuração de uma Instrução PID

Depois de inserir a instrução PID e especificar a estrutura PID, use a guia Configuration para especificar como a instrução PID deve funcionar.

IMPORTANTE Estas falhas eram graves no controlador CLP-5.

Uma falha de advertência ocorrerá se: Tipo de falha: Código de falha:

.UPD ≤ 0 4 35

setpoint fora de faixa 4 36

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.

Clique aqui para configurar a instrução PID

Publicação 1756-RM003D-PT-P - Junho 2001

Page 398: CONTROLADORES LOGIX 5000 -

12-24 Instruções Especiais (FBC, DDT, DTR, PID)

Especificação do ajuste

Selecione a guia Tuning. As alterações passam a ser aceitas, assim que clicar em outro campo, OK, Apply ou Enter.

Especificação da configuração

Selecione a guia Configuration. Você deve clicar em OK ou Apply para que as alterações tenham validade.

No campo: Especifique

Setpoint (SP) Insira um valor de setpoint (.SP).

Set output % Insira uma porcentagem de saída (.SO).No modo manual do software, esse valor é usado para a saída.No modo automático, esse valor exibe a % da saída.

Output bias Insira a procentagem de bias de saída (.BIAS).

Ganho proporcional (Kp) Insira o ganho proporcional (.KP).Para ganhos independentes, este é o ganho proporcional (sem unidade).Para ganhos dependentes, este é o ganho do controlador (sem unidade).

Ganho Integral (Ki) Insira o ganho integral (.KI).Para os ganhos independentes, este é o ganho integral (1/s).Para os ganhos dependentes, este é o tempo de reset (minutos por repetição).

Tempo derivativo (Kd) Insira o ganho derivativo (.KD).Para ganhos independentes, este é o ganho derivativo (segundos).Para os ganhos dependentes, este é o tempo da taxa em minutos.

Manual mode Selecione o manual (.MO) ou o manual do software (.SWM).O modo Manual se sobrepõe ao manual do software se os dois forem selecionados.

No campo: Especifique

PID equation Selecione os ganhos independentes ou ganhos dependentes (.PE).Use independente, caso seja necessário que os três ganhos (P, I e D) operem de forma independente. Use dependente, caso seja necessário que um ganho geral do controlador afete os três termos (P, I e D).

Control action Selecione E=PV-SP ou E=SP-PV para control action (.CA).

Derivative of Selecione PV ou erro (.DOE).Use o derivativo de PV para eliminar os impulsos de saída resultantes das alterações de setpoint. Use o derivativo do erro para as respostas rápidas para as alterações de setpoint quando o algoritmo pode tolerar excedentes.

Loop update time Insira o tempo de atualização (.UPD) para a instrução (maior do que ou igual a 0,01 segundo).

CV high limit Insira um limite superior para a variável de controle (.MAXO).

CV low limit Insira um limite inferior para a variável de controle (.MINO).

Deadband value Insira o valor da zona morta (.DB).

No derivative smoothing Habilita ou desabilita essa seleção (.NDF).

No bias calculation Habilita ou desabilita essa seleção (.NOBC).

No zero crossing in deadband

Habilita ou desabilita essa seleção (.NOZC).

Publicação 1756-RM003D-PT-P - Junho 2001

Page 399: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-25

Especificação de alarmes

Selecione a guia Alarms. Você deve clicar em OK ou Apply para que as alterações tenham validade.

Especificação de conversão de escala

Selecione a guia Scaling. Você deve clicar em OK ou Apply para que as alterações tenham validade.

PV tracking Habilita ou desabilita essa seleção (.PVT).

Cascade loop Habilita ou desabilita essa seleção (.CL).

Cascade type Se a malha da cascata estiver habilitada, selecione escravo ou mestre (.CT).

No campo: Especifique

No campo: Especifique

PV high Insira um valor de limite superior para o alarme alto para a PV (.PVH).

PV low Insira um valor de limite inferior para o alarme baixo para a PV (.PVL).

PV deadband Insira um valor de zona morta para o alarme de PV (.PVDB).

positive deviation Insira um valor de desvio positivo (.DVP).

negative deviation Insira um valor de desvio negativo (.DVN).

deviation deadband Insira um valor de zona morta para o alarme de desvio (.DVDB).

No campo: Especifique

PV unscaled maximum Insira um valor máximo de PV (.MAXI) igual ao valor máximo sem escala recebido do canal de entrada analógica para o valor PV.

PV unscaled minimum Insira um valor mínimo de PV (.MINI) igual ao valor mínimo sem escala recebido do canal de entrada analógica para o valor PV.

PV engineering units maximum

Insira as unidades de medida máximas correspondentes a .MAXI (.MAXS)

PV engineering units minimum

Insira as unidades de medida mínimas correspondentes a .MINII (.MINS)

CV maximum Insira um valor máximo de CV correspondente a 100% (.MAXCV).

CV minimum Insira um valor mínimo de CV correspondente a 0% (.MINCV).

Tieback maximum Insira um valor máximo de tieback (.MAXTIE) igual ao valor máximo sem escala recebido do canal de entrada analógica para o valor de tieback.

Tieback minimum Insira um valor mínimo de tieback (.MINTIE) que seja igual ao valor mínimo sem escala recebido do canal de entrada analógica para o valor de tieback.

PID Initialized Se você alterar as constantes de conversão de escala durante o modo Run, desligue para reincializar os valores internos, anteriores à conversão de escala (.INI).

Publicação 1756-RM003D-PT-P - Junho 2001

Page 400: CONTROLADORES LOGIX 5000 -

12-26 Instruções Especiais (FBC, DDT, DTR, PID)

Utilização das Instruções PID

O controle de malha fechada PID mantém uma variável de processo em um setpoint desejado. A figura a seguir mostra um exemplo de nível de taxa de fluído/fluxo:

No exemplo acima, o nível no tanque é comparado com o setpoint. Se o nível for mais elevado do que o set point, a equação PID aumenta a variável de controle e abre a válvula de saída do tanque, diminuindo, portanto, o nível no tanque.

A equação PID usada na instrução PID é uma equação de forma posicional com a opção de usar ganhos independentes ou dependentes. Ao usar ganhos independentes, os ganhos proporcional, integral e derivativo afetam apenas seus termos proporcional, integral ou derivativo específicos, respectivamente. Ao usar os ganhos dependentes, o ganho proporcional é substituído por um ganho de controlador que afeta todos os três termos. É possível usar a forma da equação para realizar o mesmo tipo de controle. Os dois tipos de

-

+

14271

setpoint

taxa de fluxo

erroequação PID

variável de controle

variável de processo

detector de nível

Publicação 1756-RM003D-PT-P - Junho 2001

Page 401: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-27

equação são fornecidos apenas para que você use o tipo com o qual está mais familiarizado.

Onde:

Opção de Ganhos: Derivativo de Equação:

Ganhos dependentes(padrão ISA)

error (E)

process variable (PV)

Ganhos independentes error (E)

process variable (PV)

CV KC E1Ti---- Edt Td

dEdt-------+

0

t

∫+ BIAS+=

CV KC E1Ti---- Edt Td–

dPVdt

-----------

0

t

∫+ BIAS+=

E = SP - PV

CV KC E1Ti---- Edt Td

dPVdt

-----------+

0

t

∫+ BIAS+=

E = PV - SP

CV KPE Ki+ Edt KddEdt-------+

0

t

∫ BIAS+=

CV KPE Ki+ Edt Kd–dPVdt

-----------

0

t

∫ BIAS+=

E = SP - PV

CV KPE Ki+ Edt KddPV

dt-----------+

0

t

∫ BIAS+=

E = PV - SP

Variável: Descrição:

KP ganho proporcional (sem unidade)Kp = Kc sem unidade

Ki ganho integral (segundos -1)Para converter entre Ki (ganho integral) e Ti (tempo de reset), use:

Kd ganho derivativo (segundos)Para converter entre Kd (ganho derivativo) e Td (tempo da taxa), use:Kd = Kc (Td) 60

KC ganho do controlador (sem unidade)

Ki

KC

60Ti-----------=

Publicação 1756-RM003D-PT-P - Junho 2001

Page 402: CONTROLADORES LOGIX 5000 -

12-28 Instruções Especiais (FBC, DDT, DTR, PID)

Se você não quiser usar um termo particular da equação de PID, defina o ganho em zero. Por exemplo, se você não quiser nenhuma ação derivativa, defina Kd ou Td igual a zero.

Windup anti-reset e transferência ininterrupta de manual para automático

A instrução PID automaticamente previne o windup de reset, evitando que o termo integral acumule sempre que a saída CV alcançar os seus valores máximo ou mínimo, conforme definido por .MAXO e .MINO. O termo integral acumulado permanece congelado até que a saída CV fique abaixo do seu limite máximo ou fique acima do seu limite mínimo. Em seguida, o acúmulo normal integral reinicia automaticamente.

A instrução PID suporta dois modos manuais de controle:

A instrução PID também fornece automaticamente transferências ininterruptas do modo manual do software para o automático ou do manual para o automático. A instrução PID calcula novamente o valor do termo de acúmulo integral requerido para fazer com que o caminho da saída CV energize o valor da saída (.SO) no modo manual do software ou a entrada tieback no modo manual. Dessa forma, quando a malha chavear para o modo automático, a saída CV inicia a

Ti tempo de reset (minutos/repetição)

Td tempo da taxa (minutos)

SP setpoint

PV variável de processo

E erro [(SP-PV) ou (PV-SP)]

BIAS feedforward ou bias

CV variável de controle

dt tempo de atualização de malha

Variável: Descrição:

Modo Manual de Controle: Descrição:

software manual (.SWM) também conhecido como modo de saída configuradopermite ao usuário definir a % da saída do softwareO valor de saída configurado (.SO) é usado como a saída da malha. O valor de saída configurado geralmente se origina de uma entrada de operação de um dispositivo de interface de operação.

manual (.MO) pega o valor de tieback como uma entrada e ajusta as suas variáveis internas para gerar o mesmo valor na saída.A entrada tieback para a instrução PID é convertida em uma escala de 0-100%, de acordo com os valores de .MINTIE e .MAXTIE e é usada como a saída da malha. A entrada tieback geralmente se origina da saída da estação manual/automática do hardware, que está realizando o bypass da saída do controlador.Nota: O modo Manual sobrepõe ao modo Manual do software se os dois bits de modo estiverem energizados.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 403: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-29

partir da saída configurada ou do valor de tieback e não ocorre nenhuma "interrupção" no valor de saída.

A instrução PID também pode fornecer automaticamente uma transferência ininterrupta do manual para o automático, mesmo que o controle integral não seja usado (por ex.: Ki = 0). Nesse caso, a

instrução modifica o termo .BIAS para fazer com que o caminho da saída CV energize a saída ou os valores tieback. Quando o controle automático for reiniciado, o termo .BIAS manterá o seu último valor. Você pode desabilitar o novo cálculo do termo .BIAS, configurando o bit .NOBC na estrutura de dados PID. Preste atenção, pois se você definir .NOBC em verdadeiro, a instrução PID não fornecerá mais uma transferência ininterrupta de manual para automático quando o controle integral não for usado.

Temporização da instrução PID

A instrução PID e a amostra da variável de processo precisam ser atualizadas periodicamente. Esse tempo de atualização está relacionado ao processo físico que está sendo controlado. Para malhas muito lentas como, por exemplo, malhas de temperatura, um tempo de atualização de uma vez por segundo ou mais geralmente é suficiente para se obter bom controle. Malhas um pouco mais rápidas como, por exemplo, malhas de fluxo ou pressão, podem requerer um tempo de atualização de uma vez a cada 250 milissegundos. Somente em casos raros como, por exemplo, controle de tensão em um carretel de desbobinador, requerem atualizações de malha a cada 10 milissegundos ou mais rápido.

Como a instrução PID usa uma base de tempo no seu cálculo, é necessário sincronizar a execução da instrução com a amostra da variável de processo (PV).

A forma mais fácil de executar a instrução PID é colocá-la em uma tarefa periódica. Defina o tempo de atualização de malha (.UPD) igual à taxa da tarefa periódica e certifique-se de que a instrução PID seja executada a cada varredura da tarefa periódica. Por exemplo, use uma linha de diagrama ladder não condicionada.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 404: CONTROLADORES LOGIX 5000 -

12-30 Instruções Especiais (FBC, DDT, DTR, PID)

Ao usar uma tarefa periódica, certifique-se de que a entrada analógica para a variável de processo seja atualizada para o controlador a uma taxa que é significativamente mais rápida do que a taxa da tarefa periódica. Na forma ideal, a variável de processo deve ser enviada para o controlador pelo menos cinco a dez vezes mais rápido do que a taxa da tarefa periódica. Isto reduz a diferença de tempo entre as amostras atuais da variável de processo e a execução da malha PID. Por exemplo, se a malha PID estiver em uma tarefa periódica de 250 milissegundos, use um tempo de atualização de malha de 250 milissegundos (.UPD = .25) e configure o módulo de entrada analógica para produzir dados a, pelo menos, cada 25 e 50 ms.

Outro método, um pouco menos preciso de execução da instrução PID é colocar a instrução em uma tarefa contínua e usar um bit executado do temporizador para disparar a execução da instrução PID.

Nesse método, o tempo de atualização de malha da instrução PID deve ser configurado igual ao valor pré-programado do temporizador. No caso de usar uma tarefa periódica, você deve ajustar o módulo de entrada analógica para produzir a variável do processo a uma taxa significativamente mais elevada do que o tempo de atualização da malha. Você deve usar somente o método do temporizador da execução de PID para as malhas com os tempos de atualização que são várias vezes mais longas do que o tempo de execução do pior caso para a tarefa contínua.

A forma mais precisa de executar uma instrução PID é usar o recurso de amostragem em tempo real (RTS) dos módulos de entrada analógica 1756. O módulo de entrada analógica realiza uma amostra das suas entradas à taxa de amostragem em tempo real definida na configuração do módulo. Quando o período de amostra em tempo real do módulo expira, o módulo atualiza as suas entradas e atualiza os dados para impressão da data e hora (representado pelo membro .RollingTimestamp da estrutura de dados de entrada analógica) produzidos pelo módulo. Os dados de impressão de hora e data variam de 0-32767 milissegundos. Monitore os dados de impressão de

Publicação 1756-RM003D-PT-P - Junho 2001

Page 405: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-31

data e hora. Quando o mesmo é alterado, uma nova amostra da variável de processo foi recebida. Cada vez que a data e a hora são alteradas, execute a instrução PID uma vez. Como a amostra da variável de processo é direcionada pelo módulo de entrada analógica, o tempo de amostra de entrada é muito preciso e o tempo de atualização da malha usado pela instrução PID deve ser configurado igual ao tempo RTS do módulo de entrada analógica.

Para certificar-se de que não haja perda de amostras da variável de processo, execute a sua lógica em uma taxa mais rápida do que o tempo de RTS. Por exemplo, se o tempo RTS for de 250 ms, é possível colocar a instrução PID em uma tarefa periódica que é executada a cada 100 ms para garantir que nenhuma amostra seja perdida. É possível colocar a lógica PID em uma tarefa contínua, contanto que você se certifique de que a lógica será atualizada com uma freqüência maior do que 250 milissegundos.

Um exemplo do método RTS de execução é mostrado abaixo. A execução da instrução PID depende da recepção de novos dados de entrada analógica. Se o módulo de entrada analógica apresentar falha ou for removido, o controlador pára de receber impressões de data e hora atualizadas e a malha de PID pára a execução. Você deve monitorar o bit de status da entrada analógica PV, e se isso mostrar um status deficiente, force a malha no modo manual do software e execute a malha a cada varredura. Isto permite que o operador ainda altere manualmente a saída da malha PID.

Reinicialização ininterrupta

A instrução PID pode interagir com os módulos de saída analógica 1756 para suportar uma reincialização ininterrupta quando o controlador mudar do modo Program para Run ou na energização do controlador.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 406: CONTROLADORES LOGIX 5000 -

12-32 Instruções Especiais (FBC, DDT, DTR, PID)

Quando um módulo de saída analógica 1756 perde comunicação com o controlador ou detecta que o controlador está no modo Program, o módulo de saída analógica energiza as suas saídas para os valores de condição de falha especificados na configuração do módulo. Quando o controlador retorna para o modo Run ou re-estabelece comunicação com o módulo de saída analógica, você pode fazer com que a instrução PID reset automaticamente a saída da variável de controle igual à saída analógica, usando o bit Inhold e os parâmetros Inhold Value na instrução PID.

Para configurar uma reinicialização initerrupta:

A seguinte instrução PID usa o bit Inhold e o valor Inhold:

Polarização derivativa

O cálculo da derivativa é melhorado por um filtro de polarização derivativa. Esse filtro digital de primeira ordem e de passa/baixa ajuda a reduzir os grandes impulsos do termo derivativo causados por ruído na PV. Essa

Faça o seguinte: Detalhes:

Configure o canal do módulo de saída analógica 1756 que recebe a variável de controle da instrução PID.

Selecione “hold for initialization“ na página de propriedades para o canal específico do módulo.

Isto informa ao módulo de saída analógica que, quando o controlador retornar para o modo Run ou re-estabelecer comunicação com o módulo, o módulo deve manter a saída analógica no seu valor atual até que o valor enviado do controlador corresponda (com uma amplitude de 0,1%) ao valor atual usado pelo canal de saída. A saída do controlador aumentará seguindo em rampa até o valor de saída atualmente mantido, usando-se o termo .BIAS. Esse aumento em rampa é semelhante à transferência ininterrupta.

Insira o tag do bit Inhold e o tag Inhold Value na instrução PID

O módulo de saída analógica 1756 retorna dois valores para cada canal na sua estrutura de dados de entrada. Quando verdadeiro, o bit de status InHold (.Ch2InHold, por exemplo) indica que o canal de saída analógica está mantendo o seu valor. O valor de nova leitura de Data (.Ch2Data, por exemplo) mostra o valor de saída atual em unidades de medida.

Insira o tag no bit de status InHold como o parâmetro do bit InHold da instrução PID. Insira o tag do valor de nova leitura de Data como o parâmetro Inhold Value.

Quando o bit Inhold passar para verdadeiro, a instrução PID move Inhold Value para a saída do tag de Controle e re-inicializa para fornecer suporte para uma reinicialização initerrupta nesse valor. Quando o módulo de saída analógica receber esse valor de volta do controlador, o mesmo desenergiza o bit de status InHold, o que permite que a instrução PID inicie o controle normalmente.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 407: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-33

polarização se torna mais agressiva com valores maiores de ganho derivativo. É possível desabilitar a polarização derivativa se o processo necessitar de valores muito grandes de ganho derivativo (Kd > 10, por exemplo). Para

desabilitar a polarização derivativa, selecione a opção “No derivative smoothing“ na guia Configuration ou energize o bit .NDF na estrutura PID.

Configuração da zona morta

A zona morta ajustável permite que você selecione uma faixa de erro acima e abaixo do setpoint, onde as saídas não serão alteradas desde que o erro permaneça dentro da faixa. Essa zona morta permite o controle do nível de correspondência entre a variável de processo e o setpoint, sem que a saída seja alterada. A zona morta também ajuda a reduzir o desgaste no seu dispositivo de controle final.

O cruzamento zero é um controle de zona morta que permite que a instrução utilize o erro para cálculos, conforme a variável de processo atravessa a zona morta, até que a variável de processo cruze o setpoint. Quando a variável de processo cruzar o setpoint (o erro cruza o valor zero e altera o sinal) e durante o tempo em que a variável de processo permanecer na zona morta, a saída não será alterada.

A zona morta se estende acima e abaixo do setpoint, de acordo com o valor especificado por você. Insira zero para inibir a zona morta. A zona morta possui as mesmas unidades convertidas do setpoint. É possível usar a zona morta sem recurso de cruzamento zero, selecionando-se a opção “no zero crossing for deadband“ na guia Configuration ou energizando-se o bit .NOZC na estrutura PID.

Se você estiver usando a zona morta, Control variable deve ser do tipo REAL ou o mesmo será forçado em 0 quando houver um erro dentro da zona morta

Uso da limitação de saída

É possível definir um limite de saída (% da saída) na saída de controle. Quando a instrução detectar que a saída atingiu um limite, ela

erro dentro da faixa da zona morta

+ zona morta

setpoint

- zona morta

tempo 41026

Publicação 1756-RM003D-PT-P - Junho 2001

Page 408: CONTROLADORES LOGIX 5000 -

12-34 Instruções Especiais (FBC, DDT, DTR, PID)

energizará o bit de alarme e impedirá que a saída ultrapasse o limite superior ou inferior.

Feedforward ou polarização da saída (bias)

É possível direcionar (feedforward) um distúrbio do sistema, alimentando o valor .BIAS no valor de bias/feedforward da instrução PID.

O valor feedforward representa um distúrbio alimentado na instrução PID antes que o distúrbio tenha chance de alterar a variável de processo. Feedforward é geralmente usado para controlar processos com um atraso de transporte. Por exemplo, um valor feedforward representando “água fria sendo jogada em uma mistura quente“ poderia impulsionar o valor de saída mais rápido do que esperar que a variável de processo consegue alterar o resultado da mistura.

Um valor bias é geralmente usado quando nenhum controle integral é usado. Nesse caso, o valor de bias pode ser ajustado para manter a saída na faixa requerida para manter o PV próximo ao setpoint.

Malhas em cascata

A PID forma cascata com duas malhas, atribuindo a saída na porcentagem da malha de mestre para o setpoint da malha de escravo. A malha de escravo automaticamente converte a saída da malha de mestre em unidades de medida corretas para o setpoint da malha de escravo, com base nos valores da malha de escravo para .MAXS e .MINS.

Controle de um índice

É possível manter dois valores em um índice, usando-se a instrução MUL com estes parâmetros:

• valor não controlado

• valor controlado (o setpoint resultante a ser usado pela instrução PID)

• razão entre esses dois valores

Publicação 1756-RM003D-PT-P - Junho 2001

Page 409: CONTROLADORES LOGIX 5000 -

Instruções Especiais (FBC, DDT, DTR, PID) 12-35

Na instrução MUL, insira:

Para este parâmetro MUL: Insira este valor:

destination valor controlado

source A valor não controlado

source B razão

Publicação 1756-RM003D-PT-P - Junho 2001

Page 410: CONTROLADORES LOGIX 5000 -

12-36 Instruções Especiais (FBC, DDT, DTR, PID)

Teoria PID Os números a seguir mostram o fluxo do processo para as instruções PID.

processo PID

processo PID com malhas mestre/escravo

+-

-1+

SP Exibido

como EUs

Erro Exibido como EUs

Software A/Mou

Modo A/M Station Ação de Controle

Auto SP-PV

(Erro)

Manual

não

sim

PVT

SPPV-SP

Converte Binário para Unidades de Medida

(PV-mín)(máx-mín) + minmáx-min

PV

PVExibido

como EUs

Converte Unidades em %

Erro X 100máx-mín.

Cálculo PID

Polarização da Saída %

Software A/M Mode

Auto

Auto(Out%)

Define Saída %

Converte Unidades de Tieback em %

tieback-mintiemaxtie-mintie

x100

ManualManual

Limitação da Saída

Define Saída %

A/M Station Mode

Saída (CV) Exibida em % do Fator de

Escala EU

Converte % em Unidades CV

CV%(máxcv-míncv)100

+ míncvCV

+-

-1+

+-

-1+

SP

Auto

Manual

PVTnão

sim

Converte Binário em Unidades de Medida

(PV-mín)(máx-mín)maxi-mini

+ mín

PV

SP-PV

PV-SP

(Erro)Converte Unidade

em %

Erro X 100máx-mín

Cálculo PID

Polarização da Saída %

Software A/M Mode

Auto

Auto(Out%)

Limitação da Saída

Define Saída %A/M Station

Mode

Define Saída %

Manual

Manual

(Master.Out)

SP

PV

Malha Mestre Software A/M

ouA/M Station Mode

Ação de Controle

Malha Escravo

(Master.Out)

Converte Binário em Unidades de Medida

(PV-mín)(máx-mín)maxi-mini

+ mín

(SP)

PV

Converte % em Unidades de Medida

Converte Unidades Tieback em %

tieback-mintiemaxtie-mintie

x100

Converte Unidades em %

Erro X 100máx-mín

Converte Unidades em %

Erro X 100máx-mín

X (máx-mín)100

+ mín

Ação de Controle

SP-PV

PV-SP

Cálculo PID

Polarização da Saída %

Define Saída %

Auto

Auto

Manual

Manual

A/M Station Mode

Limitação da Saída

Software A/M Mode

Define Saída %

Converte % em

CV%(maxcv-mincv)100

+ mincv

Os itens relacionados nesta caixa são parâmetros, unidades e modos pois pertencem à malha Escrava

ManualManual

Auto

Software A/M Mode

Publicação 1756-RM003D-PT-P - Junho 2001

Page 411: CONTROLADORES LOGIX 5000 -

Capítulo 13

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Introdução As instruções trigonométricas avaliam as operações aritméticas usando as operações trigonométricas.

É possível misturar tipos de dados, mas podem ocorrer perda de precisão e erros de arredondamentos e a instrução demorar mais tempo para executar. Verifique o bit de status de overflow (S:V) para ver se o resultado foi truncado.

Para as instruções de lógica ladder, o tipo de dados em negrito indica os tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dado ótimo, geralmente DINT ou REAL.

Se você quiser: Use esta instrução: Consulte página:

Calcular o seno de um valor SIN 13-2

Calcular o co-seno de um valor COS 13-5

Calcular a tangente de um valor TAN 13-8

Calcular o arco seno de um valor ASN 13-11

Calcular o arco co-seno de um valor ACS 13-14

Calcular o arco tangente de um valor ATN 13-16

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 412: CONTROLADORES LOGIX 5000 -

13-2 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Seno (SIN)

A instrução SIN calcula o seno do valor de Source (em radianos) e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A Fonte deve ser maior ou igual a -205887,4 (-2πx215) e menor ou

igual a 205887,4 (2πx215). O valor resultante em Destination é sempre maior ou igual a -1 e menor ou igual a 1.

Bloco de FunçãoLógica Ladder

Idiomas disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

calcula o seno desse valor

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura SIN

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para a instrução matemática.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 413: CONTROLADORES LOGIX 5000 -

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-3

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador calcula o seno de Source e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução SIN calcula o seno de <Φ1><Φ8><Φ1>. ϖαλυε e coloca o resultado em result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 414: CONTROLADORES LOGIX 5000 -

13-4 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Exemplo do Bloco deFunção:

O valor da saída de function_block_A se torna o valor de entrada para Source. A instrução calcula o seno de Source e coloca o valor em Dest, que se torna um parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 415: CONTROLADORES LOGIX 5000 -

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-5

Co-seno (COS)

A instrução COS calcula o co-seno do valor de Source (em radianos) e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

calcula o co-seno desse valor

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura COS

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para a instrução matemática.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são definidos para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 416: CONTROLADORES LOGIX 5000 -

13-6 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Descrição: A Fonte deve ser maior ou igual a -205887,4 (-2πx215) e menor ou

igual a 205887,4 (2πx215). O valor resultante em Destination é sempre maior ou igual a -1 e menor ou igual a 1.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador calcula o co-seno de Source e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução COS calcula o co-seno de <Φ1><Φ19><Φ1> ϖαλυε e coloca o resultado em result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 417: CONTROLADORES LOGIX 5000 -

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-7

Exemplo do Bloco deFunção:

O valor da saída de function_block_A se torna o valor da entrada para Source. A instrução calcula o co-seno de Source e coloca o valor em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 418: CONTROLADORES LOGIX 5000 -

13-8 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Tangente (TAN)

A instrução TAN calcula a tangente do valor de Source (em radianos) e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

calcula a tangente desse valor

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura TAN

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se energizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para a instrução matemática.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são definidos para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 419: CONTROLADORES LOGIX 5000 -

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-9

Descrição: A Fonte deve ser maior ou igual a -102943,7(-2πx214) e menor ou

igual a 102943,7 (2πx214).

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador calcula a tangente de Source e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução TAN calcula a tangente de <Φ1><Φ19><Φ1>ϖαλυεe coloca o resultado emresult.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 420: CONTROLADORES LOGIX 5000 -

13-10 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Exemplo do Bloco deFunção:

O valor da saída de function_block_A se torna o valor da entrada para Source. A instrução calcula a tangente de Source e coloca o valor em Dest, que se torna o parâmetro da entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 421: CONTROLADORES LOGIX 5000 -

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-11

Arco Seno (ASN)

A instrução ASN calcula o arco seno do valor de Source (em radianos) e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

calcula o arco seno desse valor

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura ASN

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para a instrução matemática.válido = qualquer flutuante

Publicação 1756-RM003D-PT-P - Junho 2001

Page 422: CONTROLADORES LOGIX 5000 -

13-12 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Parâmetros de saída

Descrição: Source deve ser maior ou igual a -1 e menor ou igual a 1. O valor resultante em Destination é sempre maior ou igual a -π/2 e menor ou igual a π/2 (onde π = 3,141593).

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são definidos para esta saída.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador calcula o arco seno de Source e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução ASN calcula o arco seno de <Φ1><Φ19><Φ1>ϖαλυε e coloca o resultado em result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 423: CONTROLADORES LOGIX 5000 -

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-13

Exemplo do Bloco deFunção:

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Condição: Ação:

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução calcula o arco seno de Source e coloca o valor em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 424: CONTROLADORES LOGIX 5000 -

13-14 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Arco Co-seno (ACS)

A instrução ACS calcula o arco co-seno do valor de Source (em radianos) e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

calcula o arco co-seno desse valor

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura ACS

Parâmetro de entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para a instrução matemática.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 425: CONTROLADORES LOGIX 5000 -

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-15

Descrição: Source deve ser maior ou igual a -1 e menor ou igual a 1. O valor resultante em Destination é sempre maior ou igual a 0 ou menor ou igual a π (onde π = 3,141593).

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador calcula o arco co-seno de Source e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução ACS calcula o arco co-seno de <Φ1><Φ19><Φ1>ϖαλυε e coloca o resultado em result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

instruction first run Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 426: CONTROLADORES LOGIX 5000 -

13-16 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Exemplo do Bloco deFunção:

Arco Tangente (ATN)

A instrução ATN calcula o arco tangente do valor de Source e coloca o resultado em Destination (em radianos).

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução calcula o arco co-seno de Source e coloca o valor em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

calcula o arco tangente desse valor

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura ATN

Publicação 1756-RM003D-PT-P - Junho 2001

Page 427: CONTROLADORES LOGIX 5000 -

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-17

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: O valor resultante em Destination é sempre maior ou igual a -π/2 e menor ou igual a π/2 (onde π = 3,141593).

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para a instrução matemática.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são energizados para esta saída.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador calcula o arco tangente de Source e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução ATN calcula o arco tangente de <Φ1><Φ19><Φ1>ϖαλυε e coloca o resultado em result.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 428: CONTROLADORES LOGIX 5000 -

13-18 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução calcula o arco tangente de Source e coloca o valor em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 429: CONTROLADORES LOGIX 5000 -

Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-19

Notas:

Publicação 1756-RM003D-PT-P - Junho 2001

Page 430: CONTROLADORES LOGIX 5000 -

13-20 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 431: CONTROLADORES LOGIX 5000 -

Capítulo 14

Instruções Matemáticas Avançadas (LN, LOG, XPY)

Introdução As instruções matemáticas avançadas incluem estas instruções:

É possível misturar tipos de dados, mas podem ocorrer perda de precisão e erros de arredondamentos e a instrução demorar mais tempo para executar. Verifique o bit S:V para observar se o resultado foi truncado.

Para instruções de lógica ladder, os tipos de dados em negrito indicam os tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dado ótimo, geralmente DINT ou REAL.

Se você quiser: Use esta instrução: Consulte página:

Calcular o log natural de um valor LN 14-2

Calcular o log da base 10 de um valor LOG 14-4

Elevar um valor à potência de outro valor XPY 14-7

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 432: CONTROLADORES LOGIX 5000 -

14-2 Instruções Matemáticas Avançadas (LN, LOG, XPY)

Log Natural (LN)

A instrução LN calcula o log natural de Source e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

encontrar o log natural desse valor.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura LN

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para instrução matemática.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritméticos são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 433: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas Avançadas (LN, LOG, XPY) 14-3

Descrição: O Source deve ser maior que zero, ou o bit de status de overflow (S:V) é energizado. O valor resultante em Destination é maior do que ou igual a -87,33655 e menor do que ou igual a 88,72284.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira O controlador calcula o log natural de Source e coloca o resultado em Destination.A saída da condição da linha está definida como verdadeira.

Quando habilitada, a instrução LN calcula o log natural de value<F1> e coloca o resultado em <F19><F1>result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn está desenergizado EnableOut está desenergizado.

EnableIn está energizado A instrução executa.EnableOut está energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 434: CONTROLADORES LOGIX 5000 -

14-4 Instruções Matemáticas Avançadas (LN, LOG, XPY)

Exemplo do Bloco deFunção:

Base Log de 10 (LOG)

A instrução LOG calcula a base log de 10 de Source e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução calcula o log natural de Source e coloca o valor em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

encontrar o log natural desse valor.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura LOG

Publicação 1756-RM003D-PT-P - Junho 2001

Page 435: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas Avançadas (LN, LOG, XPY) 14-5

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: O Source deve ser maior que zero, ou o bit de status overflow (S:V) é energizado. O valor resultante em Destination é maior do que ou igual a -37,92978 e menor do que ou igual a 38,53184.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para instrução matemática.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são energizados para esta saída.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira O controlador calcula o log de Source e coloca o resultado em Destination.A saída da condição da linha está definida como verdadeira.

Quando habilitada, a instrução LOG calcula o log natural de value<F1> e coloca o resultado em <F19><F1>result.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 436: CONTROLADORES LOGIX 5000 -

14-6 Instruções Matemáticas Avançadas (LN, LOG, XPY)

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn está desenergizado EnableOut está desenergizado.

EnableIn está energizado A instrução executa.EnableOut está energizado.

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução calcula a base de log 10 de Source e coloca o valor em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 437: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas Avançadas (LN, LOG, XPY) 14-7

X Elevado à Potência de Y (XPY)

A instrução XPY calcula Source A (X) elevado à potência de Source B (Y) e armazena o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Bloco de FunçãoLógica Ladder

Linguagens

Operando Tipo: Formato: Descrição:

Source A SINTINTDINTREAL

imediatotag

valor de base

Source B SINTINTDINTREAL

imediatotag

exponente

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH estrutura estrutura XPY

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita entrada. Se desenergizada, a instrução não executa e as saídas não são atualizadas.o valor inicial é definido

Source A REAL Valor base.válido = qualquer flutuante

Source B REAL Exponente.válido = qualquer flutuante

Publicação 1756-RM003D-PT-P - Junho 2001

Page 438: CONTROLADORES LOGIX 5000 -

14-8 Instruções Matemáticas Avançadas (LN, LOG, XPY)

Parâmetros de saída

Descrição: Se Source A for negativo, Source B deve ser um valor inteiro ou uma falha de advertência ocorrerá.

A instrução XPY usa esse algoritmo: Destination = X**Y

O controlador avalia x0=1 e 0x=0.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha:

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução matemática. Os flags de status aritmético são energizados para esta saída.

Uma falha de advertência ocorrerá se: Tipo de falha: Código de falha:

Source A é negativa e Source B não é um valor inteiro

4 4

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira O controlador calcula Source A elevado à potência de Source B e coloca o resultado em Destination.A saída da condição da linha está definida como verdadeira.

Quando habilitada, a instrução XPY calcula value_1 elevado à potência de value_2 e coloca o resultado em result.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 439: CONTROLADORES LOGIX 5000 -

Instruções Matemáticas Avançadas (LN, LOG, XPY) 14-9

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn está desenergizado EnableOut está desenergizado.

EnableIn está energizado A instrução executa.EnableOut está energizado.

Os valores de saída de function_block_A e function_block_B se tornam os valores de entrada para SourceA e SourceB, respectivamente. A instrução eleva SourceA à potência de SourceB e coloca o resultado em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A

function_block_B

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 440: CONTROLADORES LOGIX 5000 -

14-10 Instruções Matemáticas Avançadas (LN, LOG, XPY)

Publicação 1756-RM003D-PT-P - Junho 2001

Page 441: CONTROLADORES LOGIX 5000 -

Capítulo 15

Instruções de Conversão Matemática(DEG, RAD, TOD, FRD, TRN)

Introdução As instruções de conversão matemática convertem valores.

É possível misturar tipos de dados, mas podem ocorrer perda de precisão e erros de arredondamentos e a instrução demorar mais tempo para executar. Verifique o bit S:V para observar se o resultado foi truncado.

Para instruções de lógica ladder, os tipos de dados em negrito indicam os tipos de dados ótimos. Uma instrução executa mais rapidamente e requer menos memória se todos os operandos da instrução usam o mesmo tipo de dado ótimo, geralmente DINT ou REAL.

Se você quiser: Use esta instrução: Consulte página:

Converter radianos em graus. DEG 15-2

Converter graus em radianos. RAD 15-5

Converter um valor inteiro em um valor BCD. TOD 15-8

Converter um valor BCD em um valor inteiro. FRD 15-12

Remover a parte fracionária de um valor TRN 15-15

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 442: CONTROLADORES LOGIX 5000 -

15-2 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)

Graus (DEG)

A instrução DEG converte Source (em radianos) para graus e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A instrução DEG usa este algoritmo:Source*180/π (onde π = 3,141593)

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

valor a ser convertido em graus.

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura DEG

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saída não são atualizadas.o valor inicial é definido

Source REAL Entrada para a instrução de conversão.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução de conversão. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 443: CONTROLADORES LOGIX 5000 -

Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-3

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador converte Source em graus e coloca o resultado em Destination.A saída da condição da linha está definida como verdadeira.

Quando habilitada, a instrução DEG converte <Φ1><Φ19><Φ1>ϖαλυε em graus e coloca o resultado em result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 444: CONTROLADORES LOGIX 5000 -

15-4 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)

Exemplo do Bloco deFunção:

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução converte Source (em radianos) para graus e coloca o resultado em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 445: CONTROLADORES LOGIX 5000 -

Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-5

Radianos (RAD)

A instrução RAD converte Source (em graus) para radianos e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A instrução RAD usa esse algoritmo:Source*π/180 (onde π = 3,141593)

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINTREAL

imediatotag

valor a ser convertido em radianos

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_MATH_ADVANCED estrutura estrutura RAD

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para a instrução de conversão.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest REAL Resultado da instrução de conversão. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 446: CONTROLADORES LOGIX 5000 -

15-6 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador converte Source em radianos e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução RAD converte <Φ1><Φ19><Φ1>ϖαλυε em radianos e coloca o resultado em result.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 447: CONTROLADORES LOGIX 5000 -

Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-7

Exemplo do Bloco deFunção:

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução converte Source (em graus) para radianos e coloca o resultado em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 448: CONTROLADORES LOGIX 5000 -

15-8 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)

Conversão para BCD (TOD)

A instrução TOD converte um valor decimal (0 ≤ Source ≤ 99.999.999) para um valor BCD e coloca o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINT

imediatotag

valor a ser convertido em decimal.

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Destination SINTINTDINT

tag armazena o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_CONVERT estrutura estrutura TOD

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source DINT Entrada para a instrução de conversão.válido = qualquer inteiro

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest DINT Resultado da instrução de conversão. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 449: CONTROLADORES LOGIX 5000 -

Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-9

Descrição: BCD é um sistema numérico Decimal de Código Binário que expressa dígitos decimais individuais (0-9) em uma notação binária de 4 bits.

Se você inserir um valor de Source negativo, a instrução gerará uma falha de advertência e zerará Destination.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha:

Execução de LógicaLadder:

Uma falha de advertência ocorrerá se:

Tipo de falha: Código de falha:

source < 0 4 4

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador converte Source em BCD e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

entrada se a condição da linha for verdadeira

fim

source < 0não

sim

source > 99.999.999não

sim

converter fonte para BCD

S:V é definido em 1

a saída da condição da linha é energizada quando verdadeira

Publicação 1756-RM003D-PT-P - Junho 2001

Page 450: CONTROLADORES LOGIX 5000 -

15-10 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Quando habilitada, a instrução TOD converte value_1 em um valor BCD e coloca o resultado em result_a.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

O valor de saída de function_block_A se torna os valores de entrada para Source. A instrução converte Source (valor decimal) para um valor BCD e coloca o resultado em Dest, que se torna OREF Test_value.

function_block_A

Publicação 1756-RM003D-PT-P - Junho 2001

Page 451: CONTROLADORES LOGIX 5000 -

Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-11

Conversão para Inteiro (FRD)

A instrução FRD converte um valor BCD (Source) para um valor decimal e armazena o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A instrução FRD converte um valor BCD (Source) para um valor decimal e armazena o resultado em Destination.

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source SINTINTDINT

imediatotag

valor a ser convertido em decimal.

Um tag SINT ou INT é convertido para um valor DINT por preenchimento com zero.

Destination SINTINTDINT

tag armazena o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_CONVERT estrutura estrutura FRD

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source DINT Entrada para instrução de conversão.válido = qualquer inteiro

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest DINT Resultado da instrução de conversão. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 452: CONTROLADORES LOGIX 5000 -

15-12 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador converte Source em valor decimal e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução FRD converte value_a para um valor decimal e coloca o resultado em result_1.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 453: CONTROLADORES LOGIX 5000 -

Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-13

Execução do Bloco deFunção:

Exemplo do Bloco deFunção:

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

O valor IREF se torna no valor de entrada para Source. A instrução converte Source (valor BCD) em um valor decimal e coloca o resultado em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 454: CONTROLADORES LOGIX 5000 -

15-14 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)

Truncagem (TRN)

A instrução TRN remove (trunca) a parte fracional de Source e armazena o resultado em Destination.

Operandos de LógicaLadder:

Operandos do Bloco deFunção:

Estrutura: Parâmetros de entrada

Parâmetros de saída

Descrição: A truncagem não arredonda o valor; ao invés disso, a parte não fracionária permanece a mesma, independente do valor da parte fracionária.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Bloco de FunçãoLógica Ladder

Linguagens Disponíveis:

Operando Tipo: Formato: Descrição:

Source REAL imediatotag

valor a ser truncado

Destination SINTINTDINTREAL

tag tag para armazenar o resultado

Operando Tipo: Formato: Descrição:

tag do bloco FBD_TRUNCATE estrutura estrutura TRN

Parâmetro de Entrada:

Tipo de Dados: Descrição:

EnableIn BOOL Habilita a entrada. Se desenergizada, a instrução não é executada e as saídas não são atualizadas.o valor inicial é definido

Source REAL Entrada para a instrução de conversão.válido = qualquer flutuante

Parâmetro de Saída: Tipo de Dados: Descrição:

EnableOut BOOL A instrução produziu um resultado válido.

Dest DINT Resultado da instrução de conversão. Os flags de status aritmético são energizados para esta saída.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 455: CONTROLADORES LOGIX 5000 -

Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-15

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção:

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada se a condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada se a condição da linha for verdadeira O controlador remove a parte fracionária de Source e coloca o resultado em Destination.A saída da condição da linha é definida como verdadeira.

Quando habilitada, a instrução TRN remove a parte fracionária de float_value_1, sem alterar a parte não fracionária e coloca o resultado em float_value_1_truncated.

Condição: Ação:

pré-varredura Nenhuma ação tomada.

primeira varredura da instrução Nenhuma ação tomada.

primeira operação da instrução Nenhuma ação tomada.

EnableIn é desenergizado EnableOut é desenergizado.

EnableIn é energizado A instrução é executada.EnableOut é energizado.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 456: CONTROLADORES LOGIX 5000 -

15-16 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)

Exemplo do Bloco deFunção:

O valor de saída de function_block_A se torna o valor de entrada para Source. A instrução trunca a parte fracional do valor de Source e coloca o resultado em Dest, que se torna o parâmetro de entrada para function_block_C.

function_block_A function_block_C

Publicação 1756-RM003D-PT-P - Junho 2001

Page 457: CONTROLADORES LOGIX 5000 -

Capítulo 16

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Introdução Use as instruções de porta serial para ler e escrever os caracteres ASCII.

IMPORTANTE Para usar as instruções de porta serial ASCII, você deve configurar a porta serial do controlador. Consulte Procedimentos Comuns dos Controladores Logix5000, publicação 1756-PM001.

Se você quiser: Por exemplo: Use esta instrução: Consulte página:

determinar quando o buffer contém caracteres de terminação

verificar os dados que contenham caracteres de terminação

ABL 16-7

contar os caracters no buffer verificar o número solicitado dos caracteres antes de ler o buffer

ACB 16-10

remover o buffer • remover dados antigos do buffer no start-up

• sincronizar o buffer com um dispositivo

ACL 16-12

remover instruções de Porta Serial ASCII que estão sendo executadas atualmente ou estão na fila

obter o status das linhas de controle da porta serial

fazer com que o modem desligue AHL 16-14

ligar ou desligar o sinal DTR

ligar ou desligar o sinal RTS

ler um número fixo de caracteres ler um dado de um dispositivo que envia o mesmo número de caracteres em cada transmissão

ARD 16-17

ler um número de caracteres variável, até e incluindo o primeiro conjunto de caracteres de terminação

ler os dados a partir de um dispositivo que envia um número de caracteres variável em cada transmissão

ARL 16-20

enviar caracteres e, automaticamente, acrescentar um ou dois caracteres adicionais para marcar o fim dos dados

enviar mensagens que sempre usam o(s) mesmo(s) caracter(es) de extremidade

AWA 16-24

enviar caracteres enviar mensagens que usam vários caracteres de terminação

AWT 16-28

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 458: CONTROLADORES LOGIX 5000 -

16-2 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Execução da Instrução

As instruções de porta serial ASCII são executadas de forma assíncrona ao scan da lógica:

Cada instrução de porta serial ASCII (exceto a ACL) usa uma estrutura SERIAL_PORT_CONTROL para realizar as seguintes funções:

• controla a execução da instrução

• fornece as informações de status sobre a instrução

A instrução entra na fila ASCII.

Fila ASCII

Instrução 1 Instrução na parte superior da fila é executada.

BufferSerial Port

Instrução 2

Instrução 3

Instrução 4

Quando a entrada da condição da linha passa de falsa para verdadeira

Os dados fluem entre a tarefa e o buffer.

Os dados fluem entre o buffer e a porta serial

Lógica Tarefa ASCII

Publicação 1756-RM003D-PT-P - Junho 2001

Page 459: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-3

O diagrama de temporização representa as mudanças nos bits de status conforme uma instrução ABL testa o buffer quanto aos. caracteres de terminação

scan scan scan scan

entra na fila reseta os bits de status

executa quando efetuado o scan e .DN ou .ER forem definidos, o bit .EM energizaneste exemplo, encontra os

caracteres de terminação

entrada da condição da linha

falsa verdadeira falsa verdadeira falsa

.EN off on off on off

.EU off on

.RN off on off on off

.DN ou .ER off on off on

.FD off on off on

.EM off on off on

Publicação 1756-RM003D-PT-P - Junho 2001

Page 460: CONTROLADORES LOGIX 5000 -

16-4 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

A fila ASCII suporta até 16 instruções. Quando a fila está cheia, uma instrução tenta entrar na fila em cada scan subsequente da instrução, como representado abaixo:

scan scan scan scan

entra na fila

tenta entrar na fila, mas a fila está cheia

entrada da condição da linha

falsa verdadeira falsa

.EN off on

.EU off on

Publicação 1756-RM003D-PT-P - Junho 2001

Page 461: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-5

Códigos de Erro ASCII

Se uma instrução de porta serial ASCII falhar na execução, o membro ERROR de sua estrutura SERIAL_PORT_CONTROL conterá um dos seguintes códigos de erro hexadecimais:

Este código hex:

Indica que:

16#2 modem passou para o modo offline.

16#3 O sinal CTS foi perdido durante a comunicação.

16#4 A porta serial estava em modo de sistema.

16#A Antes da execução da instrução o bit .UL foi energizado. Isto evita a execução da instrução.

16#C O controlador mudou do modo Run para o modo Program. Isto pára a execução de uma instrução de porta serial ASCII e remove a fila e remove a fila.

16#D Na janela Properties do Controlador, guia User Protocol, o tamanho de buffer ou parâmetros de modo de eco são mudados e aplicados. Isto pára a execução de uma instrução de porta serial ASCII e remove a fila e remove a fila.

16#E A instrução ACL foi executada.

16#F A configuração da porta serial mudou do modo do Usuário para o modo do Sistema. Isso pára a execução de uma instrução de porta serial ASCII e remove a fila da instrução de porta serial ASCII.

16#51 O valor LEN do tag string é negativo ou maior que o tamanho de DATA do tag string.

16#54 O Comprimento de Controle da Porta Serial é maior que o tamanho do buffer.

16#55 O Comprimento de Controle da Porta Serial é negativo ou maior que o tamanho de Source ou Destination.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 462: CONTROLADORES LOGIX 5000 -

16-6 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Tipos de String

Você armazena os caracteres ASCII em tags que usam um tipo de dados tipo string.

• Você pode usar o tipo de dados STRING padrão. Ele armazena até 82 caracteres.

• Você pode criar um novo tipo de string que armazene menos ou mais caracteres.

Para criar um novo tipo de string, consulte Procedimentos Comuns dos Controladores Logix5000, publicação 1756-PM001.

Cada tipo de string contém os seguintes membros:42811

Nome: Tipo de Dados:

Descrição: Notas:

LEN DINT número de caracteres no string

A LEN atualiza a nova contagem de caracteres automaticamente sempre que você: • usar a janela String Browser para inserir caracteres• usar as instruções que leêm, convertem ou manipulam um string

A LEN mostra o comprimento do string atual. O membro DATA pode conter caracteres adicionais, antigos, que não estão incluídos na contagem de LEN.

DATA matriz SINT caracteres ASCII do string

• Para acessar os caracteres do string, endereçe o nome do tag.Por exemplo, para acessar os caracteres do tag string_1, insira string_1.

• Cada elemento da matriz DATA contém um caracter.

• Você pode criar novos tipos de string que armazenem menos ou mais caracteres.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 463: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-7

Teste ASCII Para Linha do Buffer (ABL)

A instrução ABL conta os caracteres no buffer até o primeiro conjunto de caracteres da extremidade.

Operandos de LógicaLadder:

EstruturaSERIAL_PORT_CONTROL:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Insira:

Channel DINT imediatotag

0

Porta SerialControl

SERIAL_PORT_CONTROL

tag tag que controla a operação

Character Count

DINT imediato 0

Durante a execução, exibe o número de caracteres no buffer, até e incluindo o primeiro conjunto dos caracteres de terminação.

ENDNER

ASCII Test For Buffer LineChannel ?SerialPort Control ?Character Count ?

ABL

42225

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit de habilitação indica que a instrução está habilitada.

RN BOOL O bit de operação indica que a instrução está executando.

.EM BOOL O bit vazio indica que a instrução está concluída.

.ER BOOL O bit de erro indica quando a instrução falha (erros).

.FD BOOL O bit encontrado indica que a instrução encontra os caracteres de terminação

.POS DINT A posição determina o número de caracteres no buffer, até e incluindo o primeiro conjunto de caracteres de terminação.

.ERRO DINT O erro contém um valor hexadecimal que identifica a causa de um erro.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 464: CONTROLADORES LOGIX 5000 -

16-8 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Descrição: Quando a entrada da condição da linha passa de falsa para verdadeira, a instrução ABL conta os caracteres no buffer até e incluindo o primeiro conjunto de caracteres de terminação. A janela Properties do Controlador, guia User Protocol, define os caracteres ASCII que a instrução considera como caracteres de terminação.

Para programar a instrução ABL, siga estas orientações:

1. Configure a porta serial do controlador para o modo do usuário e defina os caracteres que servem como caracteres de terminação.

2. Passe a entrada da condição de linha para a instrução ABL de falsa para verdadeira toda vez que o buffer estiver para ser contado. Por exemplo, para contar repetidamente o buffer, use uma instrução XIO para examinar o bit .EN da instrução ABL.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-scan A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • O bit .EN está energizado.• Os bits de status restantes, exceto .UL, são desenergizados.• A instrução tenta entrar na fila ASCII.• A saída da condição da linha está definida como verdadeira.

Testa o buffer continuamente para caracteres de terminação

42226

/MV_line.EN

ENDNER

ASCII Test For Buffer LineChannel 0SerialPort Control MV_lineCharacter Count 0

ABL

Publicação 1756-RM003D-PT-P - Junho 2001

Page 465: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-9

Caracteres ASCII no Buffer (ACB)

A instrução ACB conta os caracteres no buffer.

Operandos de LógicaLadder:

EstruturaSERIAL_PORT_CONTROL:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Insira:

Channel: DINT imediatotag

0

Porta SerialControl

SERIAL_PORT_CONTROL

tag tag que controla a operação

Character Count

DINT imediato 0

Durante a execução, exibe o número de caracteres no buffer.

ENDNER

ASCII Chars in BufferChannel ?SerialPort Control ?Character Count ?

ACB

42225

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit de habilitação indica que a instrução está habilitada.

RN BOOL O bit de operação indica que a instrução está executando.

.EM BOOL O bit vazio indica que a instrução está concluída.

.ER BOOL O bit de erro indica quando a instrução falha (erros).

.FD BOOL O bit encontrado indica que a instrução encontra os caracteres de terminação

.POS DINT A posição determina o número de caracteres no buffer, até e incluindo o primeiro conjunto de caracteres de terminação.

.ERRO DINT O erro contém um valor hexadecimal que identifica a causa de um erro.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 466: CONTROLADORES LOGIX 5000 -

16-10 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Descrição: Quando a entrada de condição de linha passa de falsa para verdadeira, a instrução ACB conta os caracteres no buffer.

Para programar a instrução ACB, siga estas orientações:

1. Configure a porta serial do controlador para modo de usuário.

2. Passe a entrada da condição de linha para a instrução ACB de falsa para verdadeira toda vez que o buffer estiver para ser contado. Por exemplo, para contar repetidamente o buffer, use uma instrução XIO para examinar o bit .EN da instrução ACB.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-scan A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • O bit .EN está energizado.• Os bits de status restantes, exceto .UL, são desenergizados.• A instrução tenta entrar na fila ASCII.• A saída da condição da linha está definida como verdadeira.

Contar continuamente os caracteres no buffer

42227

/bar_code_count.EN

ENDNER

ASCII Chars in BufferChannel 0SerialPort Control bar_code_countCharacter Count 0

ACB

Publicação 1756-RM003D-PT-P - Junho 2001

Page 467: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-11

Remoção de Buffer e da Fila ASCII (ACL)

A instrução ACL imediatamente remove o buffer e a fila ASCII.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a entrada da condição da linha for verdadeira, a instrução ACL imediatamente realiza uma ou ambas das seguintes ações:

• remove o buffer de caracteres e remove a fila ASCII das instruções de leitura

• remove a fila ASCII das instruções de escrita

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Insira:

Channel: DINT imediatotag

0

Clear Serial Port Read

BOOL imediatotag

Para esvaziar o buffer e remover as instruções ARD e ARL da fila, digite Yes.

Clear Serial Port Write

BOOL imediatotag

Para remover as instruções AWA e AWT da fila, digite Yes.

ASCII Clear BufferChannel ?Clear Serial Port Read ?Clear Serial Port Write ?

ACL

42225

Publicação 1756-RM003D-PT-P - Junho 2001

Page 468: CONTROLADORES LOGIX 5000 -

16-12 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Para programar a instrução ACL, siga estas orientações:

1. Configure a porta serial do controlador:

2. Para determinar se uma instrução foi removida da fila ou abortada, examine as seguintes instruções apropriadas:

• bit .ER está energizado

• membro .ERROR é 16#E

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Se sua aplicação: Então:

usa as instruções ARD or ARL Selecione modo do Usuário

não usa as instruções ARD ou ARL Selecione ou o modo do Sistema ou do Usuário

Condição: Ação:

pré-scan A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • A instrução remove as instruções específicas e o(s) buffer(s).• A saída da condição da linha está definida como verdadeira.

Quando o controlador entra no modo Run, remove o buffer e a fila ASCII

42228

S:FS

ASCII Clear BufferChannel 0Clear Serial Port Read 1Clear Serial Port Write 1

ACL

Publicação 1756-RM003D-PT-P - Junho 2001

Page 469: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-13

Linhas ASCII Handshake (AHL)

A instrução AHL obtém o status das linhas de controle e liga e desliga os sinais DTR e RTS.

Operandos de LógicaLadder:

EstruturaSERIAL_PORT_CONTROL:

Linguagens Disponíveis:

Lógica Ladder

Operando: Tipo: Formato: Insira:

Channel: DINT tag imediato

0

ANDMask DINT imediatotag

Consulte a descrição.

ORMask DINT imediatotag

Porta SerialControl

SERIAL_PORT_CONTROL

tag tag que controla a operação

Channel Status (Decimal)

DINT imediato 0

Durante a execução, exibe o status das linhas de controle.

EN

DN

ER

ASCII Handshake LinesChannel ?AND Mask ?

??OR Mask ?

??SerialPort Control ?Channel Status(Decimal) ?

AHL

42225

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit de habilitação indica que a instrução está habilitada.

.RN BOOL O bit de operação indica que a instrução está executando.

.EM BOOL O bit vazio indica que a instrução está concluída.

.ER BOOL O bit de erro indica quando a instrução falha (erros).

.FD BOOL O bit encontrado indica que a instrução encontra os caracteres de terminação

.POS DINT A posição determina o número de caracteres no buffer, até e incluindo o primeiro conjunto de caracteres de terminação.

.ERRO DINT O erro contém um valor hexadecimal que identifica a causa de um erro.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 470: CONTROLADORES LOGIX 5000 -

16-14 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a entrada de condição da linha passa de falsa para verdadeira, a instrução AHL pode realizar estas ações:

• obter o status das linhas de controle da porta serial

• ligar ou desligar o sinal (DTR) pronto do terminal de dados

• ligar ou desligar o pedido para enviar o sinal (RTS)

Para programar a instrução AHL, siga estas orientações:

1. Configure a porta serial do controlador:

2. Use as tabelas seguintes para selecionar os valores corretos para os operandos ANDMask e ORMask:

3. Passe a entrada da condição de linha para a instrução AHL de falsa para verdadeira toda vez que a instrução estiver para executar.

Flags de Status Aritmético: não afetados

Se sua aplicação: Então:

usa as instruções ARD or ARL Selecione modo do Usuário

não usa as instruções ARD ou ARL Selecione ou o modo do Sistema ou do Usuário

DTR: RTS: Digite este valor ANDMask:

E digite este valor ORMask:

off off 3 0

on 1 2

não mudado 1 0

on off 2 1

on 0 3

não mudado 0 1

não mudado off 2 0

on 0 2

não mudado 0 0

Publicação 1756-RM003D-PT-P - Junho 2001

Page 471: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-15

Condições de Falha:

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 57 A instrução AHL falhou na execução, pois a porta serial está configurada para sem handshaking.

Ou:• Mude a configuração de Control Line da porta

serial. • Delete a instrução AHL.

Condição: Ação:

pré-scan A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • O bit .EN está energizado.• Os bits de status restantes, exceto .UL, são desenergizados.• A instrução tenta entrar na fila ASCII.• A saída da condição da linha está definida como verdadeira.

Quando get_control_line_status está on, a instrução AHL obtém o status das linhas de controle da porta serial e exibe o status no operando Channel Status. Para vizualizar o status de uma linha de controle específica, monitore a tag SerialPort Control e expanda o membro POS.

42230

get_control_line_status

EN

DN

ER

ASCII Handshake LinesChannel 0AND Mask 0 OR Mask 0 SerialPort Control serial_portChannel Status(Decimal) 29

AHL

Publicação 1756-RM003D-PT-P - Junho 2001

Page 472: CONTROLADORES LOGIX 5000 -

16-16 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Leitura ASCII (ARD)

A instrução ARD remove os caracteres do buffer e armazena-os em Destination.

Operandos de LógicaLadder:

Linguagens Disponíveis:

Lógica Ladder

EN

DN

ER

ASCII Read Channel ?Destination ?

??SerialPort Control ?SerialPort Control Length ?Characters Read ?

ARD

42225

Operando: Tipo: Formato: Insira: Notas:

Canal: DINT imediatotag

0

Destination tipo de string SINTINTDINT

tag tag para o qual os caracteres são movidos (leitura):

• Para um tipo de string, insira o nome do tag.

• Para uma matriz SINT, INT ou DINT, insira o primeiro elemento da matriz.

• Se você quiser comparar, converter ou manipular os caracteres, insira um tag do tipo string.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar

Serial PortControl

SERIAL_PORT_CONTROL

tag tag que controla a operação

Serial PortControl Length

DINT imediato número de caracteres para mover para destination (leitura)

• O Serial Port Control Length deve ser menor ou igual ao tamanho de Destination.

• Se você quiser configurar Serial Port Control Length para igual ao tamanho de Destination, insira 0.

Characters Read DINT imediato 0 Durante a execução, exibe o número de caracteres que foram lidos.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 473: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-17

EstruturaSERIAL_PORT_CONTROL:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a entrada da condição da linha passa de falsa para verdadeira, a instrução ARD remove o número específico de caracteres do buffer e armazena-os em Destination.

• A instrução ARD continua a ser executada até que remova o número especificado de caracteres (Serial Port Control Length).

• Enquanto a instrução ARD está sendo executada, nenhuma instrução de Porta Serial ASCII é executada.

Para programar a instrução ARD, siga estas orientações:

1. Configure a porta serial do controlador para o modo user.

2. Use os resultados de uma instrução ACB para iniciar a instrução ARD. Isto previne a instrução ARD de segurar a fila ASCII enquanto ela espera o número de caracteres requisitado. Consulte “Exemplo de Lógica Ladder:” na página 16-18.

3. Alterne a entrada da condição de linha da instrução ARD de falsa para verdadeira toda vez que o buffer for para ser lido.

4. Para disparar a ação subseqüente quando a instrução for concluída, examine o bit EM.

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit de habilitação indica que a instrução está habilitada.

RN BOOL O bit de operação indica que a instrução está executando.

.EM BOOL O bit vazio indica que a instrução está concluída.

.ER BOOL O bit de erro indica quando a instrução falha (erros).

.FD BOOL O bit encontrado indica que a instrução encontra os caracteres de terminação

.LEN DINT O comprimento (length) indica o número de caracteres para mover para destination (leitura).

.POS DINT A posição (position) exibe o número de caracteres que foram lidos.

.ERRO DINT O erro contém um valor hexadecimal que identifica a causa de um erro.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 474: CONTROLADORES LOGIX 5000 -

16-18 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Execução de LógicaLadder:

Exemplo de LógicaLadder:

O exemplo seguinte representa o uso de uma instrução ACB para verificar se o número correto de caracteres está no buffer antes que a instrução ARD execute e leia os caracteres.

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-scan A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • O bit .EN está energizado.• Os bits de status restantes, exceto .UL, são desenergizados.• A instrução tenta entrar na fila ASCII.• A saída da condição da linha está definida como verdadeira.

Uma leitora de códigos de barra envia os códigos de barra para a porta serial (canal 0) do controlador. Cada código de barra contém 24 caracteres. Para determinar quando o controlador recebe um código de barra, a instrução ACB conta continuamente os caracteres no buffer.

Quando o buffer contiver pelo menos 24 caracteres, o controlador recebeu o código de barra. A instrução ARD move o código de barra para o membro DATA do tag bag_bar_code, que é um tipo de string.

42227

/bar_code_count.EN

ENDNER

ASCII Chars in BufferChannel 0SerialPort Control bar_code_countCharacter Count 0

ACB

Grtr Than or Eql (A>=B)Source A bar_code_count.pos

0Source B 24

GEQEN

DN

ER

ASCII ReadChannel 0Destination bag_bar_code

''SerialPort Control bar_code_readSerialPort Control Length 24Characters Read 0

ARD

Publicação 1756-RM003D-PT-P - Junho 2001

Page 475: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-19

Linha de Leitura ASCII (ARL)

A instrução ARL remove caracteres do buffer e armazena-os em Destination.

Operandos de LógicaLadder:

Linguagens Disponíveis:

Lógica Ladder

EN

DN

ER

ASCII Read LineChannel ?Destination ?

??SerialPort Control ?SerialPort Control Length ?Characters Read ?

ARL

42225

Operando: Tipo: Formato: Insira: Notas:

Canal: DINT imediatotag

0

Destination tipo de stringSINTINTDINT

tag tag para o qual os caracteres são movidos (leitura):

• Para um tipo de string, insira o nome do tag.

• Para uma matriz SINT, INT ou DINT, insira o primeiro elemento da matriz.

• Se você quiser comparar, converter ou manipular os caracteres, insira um tag do tipo string.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar

Serial PortControl

SERIAL_PORT_CONTROL

tag tag que controla a operação

Serial Port Control Length

DINT imediato número máximo de caracteres para ler se nenhum caracter de terminação for encontrado

• Digite o número máximo de caracteres que qualquer mensagem conterá (ou seja, quando parar de ler se nenhum caracter de terminação for encontrado).

Por exemplo, se as mensagens variarem de 3 a 6 caracteres no comprimento, digite 6.

• O Serial Port Control Length deve ser menor ou igual ao tamanho de Destination.

• Se você quiser configurar Serial Port Control Length para igual ao tamanho de Destination, insira 0.

Characters Read DINT imediato 0 Durante a execução, exibe o número de caracteres que foram lidos.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 476: CONTROLADORES LOGIX 5000 -

16-20 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

EstruturaSERIAL_PORT_CONTROL:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a entrada da condição da linha passa de falsa para verdadeira, a instrução ARL remove os caracteres do buffer e armazena-os em Destination como segue:

• A instrução ARL continua a ser executada até remover ou

– primeiro conjunto de caracteres de terminação

– número específico de caracteres (Serial Port Control Length)

• Enquanto a instrução ARL está sendo executada, nenhuma instrução de porta serial ASCII é executada.

Para programar a instrução ARL, siga estas orientações:

1. Configure a porta serial do controlador:

a. Selecione modo do Usuário

b. Defina os caracteres que servem como caracteres de terminação.

2. Use os resultados de uma instrução ABL para iniciar a instrução ARL. Isto previne a instrução ARL de segurar a fila ASCII enquanto espera pelos caracteres de terminação. Consulte “Exemplo de Lógica Ladder:” na página 16-21.

3. Passe a entrada da condição de linha para a instrução ARL de falsa para verdadeira toda vez que o buffer estiver para ser lido.

4. Para disparar a ação subseqüente quando a instrução for concluída, examine o bit EM.

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit de habilitação indica que a instrução está habilitada.

RN BOOL O bit de operação indica que a instrução está executando.

.EM BOOL O bit vazio indica que a instrução está concluída.

.ER BOOL O bit de erro indica quando a instrução falha (erros).

.FD BOOL O bit encontrado indica que a instrução encontra os caracteres de terminação

.LEN DINT O comprimento (length) indica o número máximo de caracteres para mover para destination (ou seja, quando parar de ler se nenhum caracter de terminação for encontrado).

.POS DINT A posição (position) exibe o número de caracteres que foram lidos.

.ERRO DINT O erro contém um valor hexadecimal que identifica a causa de um erro.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 477: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-21

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder: O seguinte exemplo representa o uso de uma instrução ABL para

testar o buffer quanto ao final da mensagem antes da instrução ARL ler a mensagem.

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-scan A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • O bit .EN está energizado.• Os bits de status restantes, exceto .UL, são desenergizados.• A instrução tenta entrar na fila ASCII.• A saída da condição da linha está definida como verdadeira.

Testa o buffer continuamente para uma mensagem do terminal MessageView. Como cada mensagem termina com um caracter $r, este caracter é configurado como o caracter de terminação na janela Controller Properties, guia User Protocol. Quando a ABL encontra um caracter $r, ela energiza o bit FD.

Quando a instrução ABL encontra um $r (MV_line.FD é energizado) o controlador recebeu uma mensagem completa. A instrução ARL remove os caracteres do buffer, até e incluindo o $r e coloca-os no membro DATA do tag MV_msg, que é um tipo de string.

42226

/MV_line.EN

ENDNER

ASCII Test For Buffer LineChannel 0SerialPort Control MV_lineCharacter Count 0

ABL

MV_line.FD

EN

DN

ER

ASCII Read LineChannel 0Destination MV_msg

''SerialPort Control MV_readSerialPort Control Length 12Characters Read 0

ARL

Publicação 1756-RM003D-PT-P - Junho 2001

Page 478: CONTROLADORES LOGIX 5000 -

16-22 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Anexar Leitura ASCII (AWA)

A instrução AWA envia um número específico de caracteres do tag Source para um dispositivo serial e anexa um ou dois caracteres pré-definidos.

Operandos de LógicaLadder:

Linguagens Disponíveis:

Lógica Ladder

EN

DN

ER

ASCII Write Append Channel ?Source ?

??SerialPort Control ?SerialPort Control Length ?Characters Sent ?

AWA

42225

Operando: Tipo: Formato: Insira: Notas:

Canal: DINT imediatotag

0

Source tipo de stringSINTINTDINT

tag tag que contém os caracteres a serem enviados:

• Para um tipo de string, insira o nome do tag.

• Para uma matriz SINT, INT ou DINT, insira o primeiro elemento da matriz.

• Se você quiser comparar, converter ou manipular os caracteres, insira um tag do tipo string.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar

Serial PortControl

SERIAL_PORT_CONTROL

tag tag que controla a operação

Serial Port Control Length

DINT imediato número de caracteres a serem enviados

• O Serial Port Control Length deve ser menor ou igual ao tamanho de Source.

• Se você quiser configurar Serial Port Control Length para igual ao número de caracteres em Source, insira 0.

Characters Read DINT imediato 0 Durante a execução, exibe o número de caracteres que foram enviados.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 479: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-23

SERIAL_PORT_CONTROLEstrutura:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a entrada da condição da linha passa de falsa para verdadeira, a instrução AWA:

• envia o número específico de caracteres (Serial Port Control Length) do tag Source para o dispositivo que está conectado à porta serial do controlador

• adiciona ao fim de characters (anexa) um ou dois caracteres que são definidos na janela Controller Properties, guia User Protocol

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit de habilitação indica que a instrução está habilitada.

.RN BOOL O bit de operação indica que a instrução está executando.

.EM BOOL O bit vazio indica que a instrução está concluída.

.ER BOOL O bit de erro indica quando a instrução falha (erros).

.FD BOOL O bit encontrado indica que a instrução encontra os caracteres de terminação

.LEN DINT O comprimento (length) indica o número de caracteres a serem enviados.

.POS DINT A posição (position) exibe o número de caracteres que foram enviados.

.ERRO DINT O erro contém um valor hexadecimal que identifica a causa de um erro.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 480: CONTROLADORES LOGIX 5000 -

16-24 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Para programar a instrução AWA, siga estas orientações:

1. Configure a porta serial do controlador:

a. Sua aplicação também inclui as instruções ARD ou ARL?

b. Defina os caracteres para anexar os dados.

2. Passe a entrada da condição de linha para a instrução AWA de falsa para verdadeira toda vez que os caracteres estiverem para ser enviados.

3. Você sempre quer enviar o mesmo número de caracteres a cada vez que a instrução é executada?

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

Se: Então:

sim Selecione modo do Usuário

não Selecione ou o modo do Sistema ou do Usuário

Se: Então:

Sim Em Serial Port Control Length, insira o número de caracteres a serem enviados.

Não Antes da instrução ser executada, mova o membro LEN do tag Source para o membro LEN do tag Serial Port Control. Consulte Exemplo 2 na página 16-27.

Condição: Ação:

pré-scan A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • O bit .EN está energizado.• Os bits de status restantes, exceto .UL, são desenergizados.• A instrução tenta entrar na fila ASCII.• A saída da condição da linha está definida como verdadeira.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 481: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-25

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Exemplo 1

Quando a temperatura exceder o limite superior (temp_high is on), a instrução AWA envia uma mensagem para o terminal MessageView que está conectado à porta serial do controlador. A mensagem contém cinco caracteres do membro DATA do tag string[1], que é um tipo de string. O $14 é contado como um caracter. (Ele é o código hexadecimal para o caracter Ctrl-T.) A instrução também envia (anexos) os caracteres definidos nas propriedades do controlador. Neste exemplo, a instrução AWA envia um caracterer $0D, que marca o fim da mensagem.

Exemplo 2

Quando alarm estiver on, a instrução AWA envia o número específico de caracteres em alarm_msg e anexo um caracter de terminação (s). Como o número de caracteres em alarm_msg varia, a linha move primeiro o comprimento do string (alarm_msg.LEN) para Serial Port Control Length da instrução AWA (alarm_write.LEN). Em alarm_msg, o $14 é contado como um caracter. Ele é o código hexadecimal para o caracter Ctrl-T.

42229

temp_high

EN

DN

ER

ASCII Write AppendChannel 0Source string[1]

'$1425\1'SerialPort Control temp_high_writeSerialPort Control Length 5Characters Sent 6

AWA

alarm

MoveSource alarm_msg.LEN 5Dest alarm_write.LEN 5

MOVEN

DN

ER

ASCII Write AppendChannel 0Source alarm_msg

'$1425\1'SerialPort Control alarm_writeSerialPort Control Length 5Characters Sent 6

AWA

Publicação 1756-RM003D-PT-P - Junho 2001

Page 482: CONTROLADORES LOGIX 5000 -

16-26 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Escrita ASCII (AWT)

A instrução AWT envia um número específico de caracteres do tag Source para um dispositivo serial.

Operandos de LógicaLadder:

Linguagens Disponíveis:

Lógica Ladder

EN

DN

ER

ASCII WriteChannel ?Source ?

??SerialPort Control ?SerialPort Control Length ?Characters Sent ?

AWT

42225

Operando: Tipo: Formato: Insira: Notas:

Canal: DINT imediatotag

0

Source tipo de stringSINTINTDINT

tag tag que contém os caracteres a serem enviados:

• Para um tipo de string, insira o nome do tag.

• Para uma matriz SINT, INT ou DINT, insira o primeiro elemento da matriz.

• Se você quiser comparar, converter ou manipular os caracteres, insira um tag do tipo string.

• Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que

você criar

Serial PortControl

SERIAL_PORT_CONTROL

tag tag que controla a operação

Serial Port Control Length

DINT imediato número de caracteres a serem enviados

• O Serial Port Control Length deve ser menor ou igual ao tamanho de Source.

• Se você quiser configurar Serial Port Control Length para igual ao número de caracteres em Source, insira 0.

Characters Read DINT imediato 0 Durante a execução, exibe o número de caracteres que foram enviados.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 483: CONTROLADORES LOGIX 5000 -

Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-27

EstruturaSERIAL_PORT_CONTROL:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a entrada da condição de linha faz a transição de de falsa para verdadeira, a instrução AWT envia o número específico de caracteres (Serial Port Control Length) do tag Source para o dispositivo que está conectado à porta serial do controlador.

Para programar a instrução AWT, siga estas orientações:

1. Configure a porta serial do controlador:

2. Passe a entrada da condição de linha para a instrução AWT de falsa para verdadeira toda vez que os caracteres estiverem para ser enviados.

3. Você sempre quer enviar o mesmo número de caracteres a cada vez que a instrução é executada?

Mnemônico: Tipo de Dados: Descrição:

.EN BOOL O bit de habilitação indica que a instrução está habilitada.

.RN BOOL O bit de operação indica que a instrução está executando.

.EM BOOL O bit vazio indica que a instrução está concluída.

.ER BOOL O bit de erro indica quando a instrução falha (erros).

.FD BOOL O bit encontrado indica que a instrução encontra os caracteres de terminação.

.LEN DINT O comprimento (length) indica o número de caracteres a serem enviados.

.POS DINT A posição (position) exibe o número de caracteres que foram enviados.

.ERRO DINT O erro contém um valor hexadecimal que identifica a causa de um erro.

Se sua aplicação: Então:

usa as instruções ARD or ARL Selecione modo do Usuário

não usa as instruções ARD ou ARL Selecione ou o modo do Sistema ou do Usuário

Se: Então:

Sim Em Serial Port Control Length, insira o número de caracteres a serem enviados.

Não Antes da instrução ser executada, mova o membro LEN do tag Source para o membro LEN do tag Serial Port Control. Consulte Exemplo 2 na página 16-30.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 484: CONTROLADORES LOGIX 5000 -

16-28 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Flags de Status Aritmético: não afetados

Condições de Falha: nenhuma

Execução de LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Condição: Ação:

pré-scan A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • O bit .EN está energizado.• Os bits de status restantes, exceto .UL, são desenergizados.• A instrução tenta entrar na fila ASCII.• A saída da condição da linha está definida como verdadeira.

Exemplo 1

Quando a temperatura alcança o limite inferior (temp_low está energizado), a instrução AWT envia uma mensagem para o terminal MessageView que está conectado à porta serial do controlador. A mensagem contém nove caracteres do membro DATA do tag string[2], que é um tipo de string. O $14 é contado como um caracter. (Ele é o código hexadecimal para o caracter Ctrl-T.) O último caracter é um $r, que marca o fim da mensagem.

Exemplo 2

Quando MV_update estiver on, a instrução AWT envia o caracter em MV_msg. Como o número de caracteres em MV_msg varia, a linha move primeiro o comprimento do string (MV_msg.LEN) para Serial Port Control Length da instrução AWT (MV_write.LEN). Em MV_msg, o $16 é contado como um caracter. Ele é o código hexadecimal para o caracter Ctrl-V.

42229

temp_low

EN

DN

ER

ASCII WriteChannel 0Source string[2]

'$142224\01$r'SerialPort Control temp_low_writeSerialPort Control Length 9Characters Sent 9

AWT

MV_update

MoveSource MV_msg.LEN

10Dest MV_write.LEN

10

MOVEN

DN

ER

ASCII WriteChannel 0Source MV_msg

'$161365\8\1$r'SerialPort Control MV_writeSerialPort Control Length 10Characters Sent 10

AWT

Publicação 1756-RM003D-PT-P - Junho 2001

Page 485: CONTROLADORES LOGIX 5000 -

Capítulo 17

Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Introdução Use as instruções de string ASCII para modificar e criar strings de caracteres ASCII.

Você também pode usar as seguintes instruções para comparar ou converter caracteres ASCII:

Se você quiser: Por exemplo: Use esta instrução: Consulte página:

adicionar caracteres ao final de um string adicionar caracteres de terminação ou delimitadores a um string

CONCAT 17-3

remover caracteres de um string remover caracteres de cabeçalho ou controle de um string

DELETE 17-5

determinar o caracter inicial de um sub-string localizar um grupo de caracteres dentro de um string

FIND 17-7

inserir caracteres em um string criar um string que usa variáveis INSERT 17-9

extrair caracteres de um string extrair informações de um código de barras MID 17-11

Se você quiser: Use esta instrução: Consulte página:

ver se os caracteres são iguais a caracteres específicos EQU 4-7

ver se os caracteres não são iguais a caracteres específicos NEQ 4-38

ver se os caracteres são iguais ou maiores que caracteres específicos GEQ 4-11

ver se os caracteres são maiores que caracteres específicos GRT 4-15

ver se os caracteres são iguais ou menores que caracteres específicos LEQ 4-19

ver se os caracteres são menores que caracteres específicos LES 4-23

converter caracteres para um valor SINT, INT, DINT ou REAL STOD 18-3

converter caracteres para um valor REAL STOR 18-5

converter um valor SINT, INT, DINT ou REAL para um string de caracteres ASCII DTOS 18-7

converter um valor REAL para um string de caracteres ASCII RTOS 18-9

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 486: CONTROLADORES LOGIX 5000 -

17-2 Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Tipos de String

Você armazena caracteres ASCII em tags que usam um tipo de dados tipo string.

• Você pode usar o tipo de dados STRING padrão. Ele armazena até 82 caracteres.

• Você pode criar um novo tipo de string que armazene menos ou mais caracteres.

Para criar um novo tipo de string, consulte Procedimentos Comuns dos Controladores Logix5000, publicação 1756-PM001.

Cada tipo de string contém os seguintes membros:42811

Nome: Tipo de Dados:

Descrição: Notas:

LEN DINT número de caracteres no string

A LEN atualiza a nova contagem de caracteres automaticamente sempre que você:• usar a janela String Browser para inserir caracteres• usar as instruções que leêm, convertem ou manipulam um string

A LEN mostra o comprimento do string atual. O membro DATA pode conter caracteres adicionais, antigos, que não estão incluídos na contagem de LEN.

DATA matriz SINT caracteres ASCII do string

• Para acessar os caracteres do string, endereçe o nome do tag.Por exemplo, para acessar os caracteres do tag string_1, insira string_1.

• Cada elemento da matriz DATA contém um caracter.

• Você pode criar novos tipos de string que armazenem menos ou mais caracteres.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 487: CONTROLADORES LOGIX 5000 -

Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID) 17-3

Concatenação de String (CONCAT)

A instrução CONCAT adiciona caracteres ASCII ao final de um string.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a condição da linha for verdadeira, a instrução CONCAT combina os caracteres em Source A com os caracteres em Source B e coloca o resultado em Destination.

• Os caracteres de Source A são os primeiros, seguidos dos caracteres de Source B.

• A menos que Source A e Destination sejam o mesmo tag, Source A permanece inalterado.

Flags de Status Aritmético: não afetados

Linguagens Disponíveis:

Lógica Ladder

String ConcatenateSource A ? ??Source B ? ??Dest ? ??

CONCAT

42617

Operando: Tipo: Formato: Insira: Notas:

Source A tipo de string tag tag que contém os caracteres iniciais

Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que você

criarSource B tipo de string tag tag que contém os caracteres finais

Destination tipo de string tag tag para armazenar o resultado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 488: CONTROLADORES LOGIX 5000 -

17-4 Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Condições de Falha:

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 51 O valor LEN do tag string é maior que o tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo para o membro LEN do tag tipo string.

2. No valor de LEN, insira o número de caracteres que o string contém.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • A instrução executa.• A saída da condição da linha está definida como verdadeira.

Para disparar uma mensagem em um terminal MessageView, o controlador deve enviar um string ASCII que contenha um número de mensagem e um número de nó. String_1 contém o número da mensagem. Quando add_node estiver energizado, a instrução CONCAT adiciona os caracteres em node_num_ascii (número do nó) ao final dos caracteres em string_1 e, então, armazena o resultado em msg.

42613

add_node

String ConcatenateSource A string_1

'$1423\'Source B node_num_ascii

'1'Dest msg

'$1423\1'

CONCAT

Publicação 1756-RM003D-PT-P - Junho 2001

Page 489: CONTROLADORES LOGIX 5000 -

Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID) 17-5

Remoção de String (DELETE)

A instrução DELETE remove os caracteres ASCII de um string.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a condição da linha energizada for verdadeira, a instrução DELETE remove um grupo de caracteres de Source e coloca os caracteres restantes em Destination.

• A posição de Start e Quantity definem os caracteres a serem removidos.

• A menos que Source e Destination sejam o mesmo tag, Source permanece inalterado.

Flags de Status Aritmético: não afetados

Linguagens Disponíveis:

Lógica Ladder

String DeleteSource ? ??Qty ? ??Start ? ??Dest ? ??

DELETE

42617

Operando: Tipo: Formato: Insira: Notas:

Source tipo de string tag o tag que contém o string do qual você quer remover caracteres

Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que você

criar

Quantidade SINTINTDINT

imediatotag

número de caracteres a serem removidos

O Start mais o Quantity deve ser menor ou igual ao tamanho de DATA de Source.

Start SINTINTDINT

imediatotag

posição do primeiro caracter a ser removido

Insira um número entre 1 e o tamanho de DATA de Source.

Destination tipo de string tag tag para armazenar o resultado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 490: CONTROLADORES LOGIX 5000 -

17-6 Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Condições de Falha:

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 51 O valor LEN do tag string é maior que o tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo para o membro LEN do tag tipo string.

2. No valor de LEN, insira o número de caracteres que o string contém.

4 56 O valor de Start ou Quantity é inválido.

1. Verifique se o valor de Start está entre 1 e o tamanho de DATA de Source.

2. Verfique se o valor de Start mais o valor de Quantity é menor ou igual ao tamanho de DATA de Source.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • A instrução executa.• A saída da condição da linha está definida como verdadeira.

As informações ASCII de um terminal contêm um caracter de cabeçalho. Depois que o controlador lê os dados (term_read.EM está energizado) a instrução DELETE remove o caracter de cabeçalho. O controlador pode, então, usar o texto da mensagem ou passá-lo para outro dispositivo.

42613

term_read.EM

String DeleteSource term_input

'$0655'Qty 1

Start 1

Dest term_text

'55'

DELETE

Publicação 1756-RM003D-PT-P - Junho 2001

Page 491: CONTROLADORES LOGIX 5000 -

Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID) 17-7

Encontro de String (FIND)

A instrução FIND localiza a posição inicial de um string específico dentro de outro string.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a condição da linha for verdadeira, a instrução FIND procura o string Source para o string Search. Se a instrução encontrar o string Search, Result mostra a posição inicial do string Search dentro do string Source.

Flags de Status Aritmético: não afetados

Linguagens Disponíveis:

Lógica Ladder

Find StringSource ? ??Search ? ??Start ? ??Result ? ??

FIND

42617

Operando: Tipo: Formato: Insira: Notas:

Source tipo de string tag string a ser procurado Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que você

criar

Search tipo de string tag string a ser encontrado

Start SINTINTDINT

imediatotag

posição em Source para iniciar a busca

Insira um número entre 1 e o tamanho de DATA de Source.

Result: SINTINTDINT

tag tag que armazena a posição inicial do string a ser encontrado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 492: CONTROLADORES LOGIX 5000 -

17-8 Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Condições de Falha:

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 51 O valor LEN do tag string é maior que o tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo para o membro LEN do tag tipo string.

2. No valor de LEN, insira o número de caracteres que o string contém.

4 56 O valor de Start é inválido. Verifique se o valor de Start está entre 1 e o tamanho de DATA de Source.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • A instrução executa.• A saída da condição da linha está definida como verdadeira.

A mensagem de um terminal MessageView contém várias informações. O caracter de barra [ \ ] separa cada parte das informações. Para localizar uma informação, a instrução FIND procura pelo caracter de barra ( /) e grava sua posição em find_pos.

42613

MV_read.EM

Find StringSource MV_msg '$06324\12\1\$r'Search find

'\'Start 1

Result find_pos

5

FIND

Publicação 1756-RM003D-PT-P - Junho 2001

Page 493: CONTROLADORES LOGIX 5000 -

Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID) 17-9

Inserção de String (INSERT)

A instrução INSERT adiciona caracteres ASCII a um local específico dentro de um string.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a condição da linha for verdadeira, a instrução INSERT adiciona os caracteres em Source B a uma posição designada dentro de Source A e coloca o resultado em Destination.

• O Start define onde em Source A que Source B será adicionado.

• A menos que Source A e Destination sejam o mesmo tag, Source A permanece inalterado.

Flags de Status Aritmético: não afetados

Linguagens Disponíveis:

Lógica Ladder

Insert StringSource A ? ??Source B ? ??Start ? ??Dest ? ??

INSERT

42617

Operando: Tipo: Formato: Insira: Notas:

Source A tipo de string tag string para o qual adicionar os caracteres

Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que você

criarSource B tipo de string tag string contendo os caracteres a serem adicionados

Start SINTINTDINT

imediatotag

posição em Source A na qual adicionar os caracteres

Insira um número entre 1 e o tamanho de DATA de Source.

Result: tipo de string tag string para armazenar o resultado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 494: CONTROLADORES LOGIX 5000 -

17-10 Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Condições de Falha:

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 51 O valor LEN do tag string é maior que o tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo para o membro LEN do tag tipo string.

2. No valor de LEN, insira o número de caracteres que o string contém.

4 56 O valor de Start é inválido. Verifique se o valor de Start está entre 1 e o tamanho de DATA de Source.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • A instrução executa.• A saída da condição da linha está definida como verdadeira.

Quando temp_high estiver energizado, a instrução INSERT adiciona os caracteres em string_2 na posição 2 dentro de string_1 e coloca o resultado em string_3:

42619

temp_high

Insert StringSource A string_1

'AD'Source B string_2

'BC'Start 2

Dest string_3

'ABCD'

INSERT

Publicação 1756-RM003D-PT-P - Junho 2001

Page 495: CONTROLADORES LOGIX 5000 -

Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID) 17-11

Meio do String (MID)

A instrução MID copia um número específico de caracteres ASCII de um string e os armazena em outro string.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a condição da linha for verdadeira, a instrução MID copia um grupo de caracteres de Source e coloca o resultado em Destination.

• A posição de Start e Quantity definem os caracteres a serem copiados.

• A menos que Source e Destination sejam o mesmo tag, Source permanece inalterado.

Flags de Status Aritmético: não afetados

Linguagens Disponíveis:

Lógica Ladder

Middle StringSource ? ??Qty ? ??Start ? ??Dest ? ??

MID

42617

Operando: Tipo: Formato: Insira: Notas:

Source tipo de string tag string do qual os caracteres são copiados

Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que você

criar

Quantidade SINTINTDINT

imediatotag

número de caracteres a serem copiados

O Start mais o Quantity deve ser menor ou igual ao tamanho de DATA de Source.

Start SINTINTDINT

imediatotag

posição do primeiro caracter a ser copiado

Insira um número entre 1 e o tamanho de DATA de Source.

Destination tipo de string tag string para o qual os caracteres são copiados

Publicação 1756-RM003D-PT-P - Junho 2001

Page 496: CONTROLADORES LOGIX 5000 -

17-12 Instruções de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Condições de Falha:

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 51 O valor LEN do tag string é maior que o tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo para o membro LEN do tag tipo string.

2. No valor de LEN, insira o número de caracteres que o string contém.

4 56 O valor de Start ou Quantity é inválido.

1. Verifique se o valor de Start está entre 1 e o tamanho de DATA de Source.

2. Verfique se o valor de Start mais o valor de Quantity é menor ou igual ao tamanho de DATA de Source.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • A instrução executa.• A saída da condição da linha está definida como verdadeira.

Na esteira transportadora para transporte de bagagens de um aeroporto, cada mala tem um código de barras. Os caracteres de 9 a 17 do código de barras são o número do vôo e o aeroporto destino da mala. Se o código de barra for lido (bag_read.EM for energizado) a instrução MID copia o número do vôo e o aeroporto destino para o string bag_flt_and_dest. As linhas subsequentes usam bag_flt_and_dest para determinar para onde levar a mala.

42619

bag_read.EM

Middle StringSource bag_barcode 'NWA HOP 5058 AMS 01'

Qty 9

Start 9

Dest bag_flt_and_dest '5058 AMS '

MID

Publicação 1756-RM003D-PT-P - Junho 2001

Page 497: CONTROLADORES LOGIX 5000 -

Capítulo 18

Instruções de Coversão ASCII(STOD, STOR, DTOS, RTOS)

Introdução Use as instruções de conversão ASCII para converter dados de ou para strings de caracteres ASCII.

Você também pode usar as seguintes instruções para comparar ou manipular caracteres ASCII:

Se você quiser converter: Por exemplo: Use esta instrução: Consulte página:

Representação de um valor de inteiro em um valor SINT, INT, DINT ou REAL

converter um valor de uma balança ou outro dispositivo ASCII para um inteiro, de forma você o use em sua lógica

STOD 18-3

Representaçã ASCII de um valor de ponto flutuante para um valor REAL

converter um valor de uma balança ou outro dispositivo ASCII para um valor REAL, de forma você possa usá-lo em sua lógica

STOR 18-5

Valor SINT, INT, DINT ou REAL para um string de caracteres ASCII

converter uma variável para um string ASCII, de forma que você possa enviá-la para um terminal MessageView

DTOS 18-7

Valor REAL para um string de caracteres ASCII

converter uma variável para um string ASCII, de forma que você possa enviá-la para um terminal MessageView

RTOS 18-9

Se você quiser: Use esta instrução: Consulte página:

adicionar caracteres ao final de um string CONCAT 17-3

remover caracteres de um string DELETE 17-5

determinar o caracter inicial de um sub-string FIND 17-7

inserir caracteres em um string INSERT 17-9

extrair caracteres de um string MID 17-11

ver se os caracteres são iguais a caracteres específicos EQU 4-7

ver se os caracteres não são iguais a caracteres específicos NEQ 4-38

ver se os caracteres são iguais ou maiores que caracteres específicos GEQ 4-11

ver se os caracteres são maiores que caracteres específicos GRT 4-15

ver se os caracteres são iguais ou menores que caracteres específicos LEQ 4-19

ver se os caracteres são menores que caracteres específicos LES 4-23

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 498: CONTROLADORES LOGIX 5000 -

18-2 Instruções de Coversão ASCII (STOD, STOR, DTOS, RTOS)

Tipos de String

Você armazena caracteres ASCII em tags que usam um tipo de dados tipo string.

• Você pode usar o tipo de dados STRING padrão. Ele armazena até 82 caracteres.

• Você pode criar um novo tipo de string que armazene menos ou mais caracteres.

Para criar um novo tipo de string, consulte Procedimentos Comuns dos Controladores Logix5000, publicação 1756-PM001.

Cada tipo de string contém os seguintes membros:42811

Nome: Tipo de Dados:

Descrição: Notas:

LEN DINT número de caracteres no string

A LEN atualiza a nova contagem de caracteres automaticamente sempre que você:• usar a janela String Browser para inserir caracteres• usar as instruções que leêm, convertem ou manipulam um string

A LEN mostra o comprimento do string atual. O membro DATA pode conter caracteres adicionais, antigos, que não estão incluídos na contagem de LEN.

DATA matriz SINT caracteres ASCII do string

• Para acessar os caracteres do string, endereçe o nome do tag.Por exemplo, para acessar os caracteres do tag string_1, insira string_1.

• Cada elemento da matriz DATA contém um caracter.

• Você pode criar novos tipos de string que armazenem menos ou mais caracteres.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 499: CONTROLADORES LOGIX 5000 -

Instruções de Coversão ASCII (STOD, STOR, DTOS, RTOS) 18-3

String Para DINT (STOD)

A instrução STOD converte a representação ASCII de um inteiro para um valor inteiro ou REAL.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a condição da linha for verdadeira, a instrução STOD converte Source em um inteiro e coloca o resultado em Destination.

• A instrução converte números positivos e negativos.

• Se o string Source contiver caracteres não-numéricos, a instrução STOD converte o primeiro conjunto de números contínuos:

– A instrução salta os caracteres de controle iniciais ou não-numéricos (exceto sinal de menos em frente a um número).

– Se o string contiver múltiplos grupos de números que estão separados por delimitadores (ex.:/), a instrução converte somente o primeiro grupo de números.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Linguagens Disponíveis:

Lógica Ladder

String To DINTSource ? ??Dest ? ??

STOD

42617

Operando: Tipo: Formato: Insira: Notas:

Source tipo de string tag tag que contém o valor em ASCII

Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que você

criar

Destination SINTINTDINTREAL

tag tag para armazenar o valor inteiro

Se o valor de Source for um número de ponto flutuante, a instrução converte apenas a parte não fracionada do número (independente do tipo de dados de destino).

Publicação 1756-RM003D-PT-P - Junho 2001

Page 500: CONTROLADORES LOGIX 5000 -

18-4 Instruções de Coversão ASCII (STOD, STOR, DTOS, RTOS)

Condições de Falha:

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 51 O valor LEN do tag string é maior que o tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo para o membro LEN do tag tipo string.

2. No valor de LEN, insira o número de caracteres que o string contém.

4 53 O número de saída está além dos limites do tipo de dados de destino.

Ou:• Reduza o tamanho do valor ASCII.• Use um tipo de dados maior para o destino.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • S:C está energizadp. • Destination é removido.• A instrução converte Source.• Se o resultado for zero, então S:Z está energizado. • A saída da condição da linha está definida como verdadeira.

Quando MV_read.EM estiver energizado, a instrução STOD converte o primeiro conjunto de caracteres numéricos em MV_msg para um valor inteiro. A instrução salta o caracter de controle inicial ($06) e pára no delimitador ( \ ).

42620

MV_read.EM

String To DINTSource MV_msg '$06324\12\1\$r'Dest MV_msg_nmbr

324

STOD

Publicação 1756-RM003D-PT-P - Junho 2001

Page 501: CONTROLADORES LOGIX 5000 -

Instruções de Coversão ASCII (STOD, STOR, DTOS, RTOS) 18-5

String Para REAL (STOR)

A instrução STOR converte a representação ASCII de um valor de ponto flutuante para um valor REAL.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a condição da linha for verdadeira, a instrução STOR converte Source em um valor REAL e coloca o resultado em Destination.

• A instrução converte números positivos e negativos.

• Se o string Source cpntiver caracteres não-numéricos, a instrução STOR cpnverte o primeiro conjunto de números contínuos, incluindo o ponto decimal [ . ]:

– A instrução salta os caracteres de controle iniciais ou não-numéricos (exceto sinal de menos em frente a um número).

– Se o string contiver múltiplos grupos de números que estão separados por delimitadores (ex.:/), a instrução converte somente o primeiro grupo de números.

Flags de Status Aritmético: Os flags de status aritmético são afetados.

Linguagens Disponíveis:

Lógica Ladder

String to RealSource ? ??Dest ? ??

STOR

42617

Operando: Tipo: Formato: Insira: Notas:

Source tipo de string tag tag que contém o valor em ASCII

Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que você

criar

Destination REAL tag tag para armazenar o valor REAL

Publicação 1756-RM003D-PT-P - Junho 2001

Page 502: CONTROLADORES LOGIX 5000 -

18-6 Instruções de Coversão ASCII (STOD, STOR, DTOS, RTOS)

Condições de Falha:

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Você pode ver uma pequena diferença entre as partes fracionadas de Source e Destination.

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 51 O valor LEN do tag string é maior que o tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo para o membro LEN do tag tipo string.

2. No valor de LEN, insira o número de caracteres que o string contém.

4 53 O número de saída está além dos limites do tipo de dados de destino.

Ou:• Reduza o tamanho do valor ASCII.• Use um tipo de dados maior para o destino.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • S:C está energizadp.• Destination é removido.• A instrução converte Source.• Se o resultado for zero, então S:Z está energizado.• A saída da condição da linha está definida como verdadeira.

Depois de ler o peso de uma balança (weight_read.EM está energizado) a instrução STOR converte os caracteres numéricos em weight_ascii para um valor REAL.

42620

weight_read.EM

String to RealSource weight_ascii

'428.259'Dest weight

428.259

STOR

Publicação 1756-RM003D-PT-P - Junho 2001

Page 503: CONTROLADORES LOGIX 5000 -

Instruções de Coversão ASCII (STOD, STOR, DTOS, RTOS) 18-7

DINT Para String (DTOS)

A instrução DTOS produz a representação ASCII de um valor.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a condição da linha for verdadeira, a instrução DTOS converte Source para um string de caracteres ASCII e coloca o resultado em Destination.

Flags de Status Aritmético: não afetados

Linguagens Disponíveis:

Lógica Ladder

DINT to StringSource ? ??Dest ? ??

DTOS

42617

Operando: Tipo: Formato: Insira: Notas:

Source SINTINTDINTREAL

tag tag que contém o valor Se Source for REAL, a instrução converte-o para um valor DINT. Consulte REAL para um inteiro na página A-6.

Destination tipo de string tag tag para armazenar o valor ASCII

Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que você

criar

Publicação 1756-RM003D-PT-P - Junho 2001

Page 504: CONTROLADORES LOGIX 5000 -

18-8 Instruções de Coversão ASCII (STOD, STOR, DTOS, RTOS)

Condições de Falha:

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 51 O valor LEN do tag string é maior que o tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo para o membro LEN do tag tipo string.

2. No valor de LEN, insira o número de caracteres que o string contém.

4 52 O string de saída é maior que o destino. Crie um novo tipo de string que seja grande o suficiente para o string de saída. Use o novo tipo de string como o tipo de dados para o destino.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • A instrução executa.• A saída da condição da linha está definida como verdadeira.

Quando temp_high estiver energizado, a instrução DTOS converte o valor em msg_num para um string de caracteres ASCII e coloca o resultado em msg_num_ascii. As linhas subsequentes inserem ou concatenam msg_num_ascii com outros strings para produzir uma mesnagem completa para um terminal de display.

42620

temp_high

DINT to StringSource msg_num

23Dest msg_num_ascii

'23'

DTOS

Publicação 1756-RM003D-PT-P - Junho 2001

Page 505: CONTROLADORES LOGIX 5000 -

Instruções de Coversão ASCII (STOD, STOR, DTOS, RTOS) 18-9

REAL Para String (RTOS)

A instrução RTOS produz a representação ASCII de um valor REAL.

Operandos de LógicaLadder:

Operandos do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Descrição: Quando a condição da linha for verdadeira, a instrução RTOS converte Source para um string de caracteres ASCII e coloca o resultado em Destination.

Flags de Status Aritmético: não afetados

Linguagens Disponíveis:

Lógica Ladder

Real to StringSource ? ??Dest ? ??

RTOS

42617

Operando: Tipo: Formato: Insira: Notas:

Source REAL tag tag que contém o valor REAL

Destination tipo de string tag tag para armazenar o valor ASCII

Os tipos de string são:• tipo de dados STRING padrão• qualquer tipo de string novo que você

criar

Publicação 1756-RM003D-PT-P - Junho 2001

Page 506: CONTROLADORES LOGIX 5000 -

18-10 Instruções de Coversão ASCII (STOD, STOR, DTOS, RTOS)

Condições de Falha:

Execução da LógicaLadder:

Exemplo de LógicaLadder:

Você pode ver uma pequena diferença entre as partes fracionadas de Source e Destination.

Execução do Bloco deFunção: Esta instrução não está disponível no bloco de função.

Tipo: Código: Causa: Método de Recuperação:

4 51 O valor LEN do tag string é maior que o tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo para o membro LEN do tag tipo string.

2. No valor de LEN, insira o número de caracteres que o string contém.

4 52 O string de saída é maior que o destino. Crie um novo tipo de string que seja grande o suficiente para o string de saída. Use o novo tipo de string como o tipo de dados para o destino.

Condição: Ação:

pré-varredura A saída da condição da linha é definida como falsa.

entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.

entrada da condição da linha for verdadeira • A instrução executa.• A saída da condição da linha está definida como verdadeira.

Quando send_data estiver energizado, a instrução RTOS converte o valor em data_1 para um string de caracteres ASCII e coloca o resultado em data_1_ascii. As linhas subsequentes inserem ou concatenam data_1_ascii com outros strings para produzir uma mesnagem completa para um terminal de display.

42620

send_data

Real to StringSource data_1

15.3001Dest data_1_ascii '15.3001003'

RTOS

Publicação 1756-RM003D-PT-P - Junho 2001

Page 507: CONTROLADORES LOGIX 5000 -

Apêndice A

Atributos Comuns

Introdução Este apêndice descreve os atributos comuns às instruções Logix .

Valores Imediatos Sempre que você inserir um valor imediato (constante) no formato decimal (por ex.:-2,3), o controlador armazenará o valor usando 32 bits. Se você inserir um valor em uma base diferente da decimal como, por exemplo, binária ou hexadecimal, e não especificar todos os 32 bits, o controlador colocará um zero nos bits não especificados (preenchimento com zero).

Conversões de Dados As conversões de dados ocorrem quando se combina tipos de dados na sua programação:

Para mais informações sobre: Consulte página:

Valores Imediatos A-1

Conversões de Dados A-1

EXEMPLO Preenchimento com zero de valores imediatos

Se você inserir: O controlador armazenará:

-1 16#ffff ffff (-1)

16#ffff (-1) 16#0000 ffff (65535)

8#1234 (668) 16#0000 029 c (668)

2#1010 (10) 16#0000 000a (10)

Ao programar em: As conversões podem ocorrer quando:

lógica ladder se combina tipos de dados para os parâmetros dentro de uma instrução

bloco de função se liga dois parâmetros que possuem tipos diferentes de dados

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 508: CONTROLADORES LOGIX 5000 -

A-2 Atributos Comuns

As instruções executam mais rápido e necessitam de menos memória se todos os operandos da instrução usarem:

• os mesmos tipos de dados

• um tipo de dado ótimo:

– Na seção “Operandos“ de cada instrução neste manual, um tipo de dados em negrito indica um tipo de dado ótimo.

– Os tipos de dados DINT e REAL são geralmente os tipos de dados ótimos.

– A maioria das instruções do bloco de função somente suporta um tipo de dados (o tipo de dados ótimo) para os operandos.

Se você combinar os tipos de dados e usar os tags que não são do tipo de dado ótimo, o controlador converterá os dados de acordo com estas regras

• Alguns operandos são um valor REAL?

• Depois da execução da instrução, o resultado (um valor DINT ou REAL) é convertido para o tipo de dado de destino, se necessário.

Não se pode especificar um tag BOOL na instrução que opera em tipos de dados inteiros ou REAL.

Como a conversão de dados precisa de memória e tempo adicionais, é possível aumentar a eficiência dos programas através:

• do uso do mesmo tipo de dado em toda a instrução

• da redução do uso de tipos de dados SINT ou INT

Em outras palavras, use todos os tags DINT ou REAL, juntamente com os valores imediatos, nas suas instruções.

As seções a seguir explicam como os dados serão convertidos ao usar os tags SINT ou INT ou ao combinar tipos de dados.

Se: Então os operandos de entrada (por ex.: fonte, tag em uma expressão, limite) são convertidos em:

sim REALs

não DINTs

Publicação 1756-RM003D-PT-P - Junho 2001

Page 509: CONTROLADORES LOGIX 5000 -

Atributos Comuns A-3

SINT ou INT para DINT

Para aquelas instruções que convertem os valores SINT ou INT em valores DINT, as seções “Operandos“ neste manual identificam o método de conversão.

O exemplo a seguir mostra os resultados da conversão de um valor usando uma extensão de sinal e preenchimento com zero.

Como os valores imediatos são sempre preenchidos com zero, a conversão de um valor SINT ou INT pode produzir resultados inesperados. No exemplo a seguir, a comparação é falsa porque Source A, tipo INT, converte por extensão de sinal; enquanto que Source B, valor imediato, é preenchida com zero.

Este método de conversão: Converte os dados, colocando:

extensão de sinal o valor do bit mais à esquerda (o sinal do valor) em cada posição de bit à esquerda dos bits existentes até que haja 32 bits.

Preenchimento com zero zeros à esquerda dos bits existentes até que haja 32 bits

Este valor. 2#1111_1111_1111_1111 (-1)

Converte para este valor por extensão de sinal

2#1111_1111_1111_1111_1111_1111_1111_1111 (-1)

Converte este valor por preenchimento com zero

2#0000_0000_0000_0000_1111_1111_1111_1111 (65535)

der Logic Listing - Total number of rungs: 3

EqualSource A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111Source B 2#1111_1111_1111_1111

EQU

42093

Publicação 1756-RM003D-PT-P - Junho 2001

Page 510: CONTROLADORES LOGIX 5000 -

A-4 Atributos Comuns

Se você usar um tag SINT ou INT e um valor imediato em uma instrução que converte dados por extensão de sinal, use um destes métodos para manusear os valores imediatos:

• Especifique um valor imediato na base decimal

• Se você estiver inserindo o valor em uma base diferente da decimal, especifique todos os 32 bits do valor imediato. Para tanto, insira o valor no bit à esquerda em cada posição de bit a sua esquerda até que haja 32 bits.

• Crie um tag para cada operando e use o mesmo tipo de dados em toda a instrução. Para atribuir um valor constante, é possível:

– Insirir um valor em uma dessas variáveis

– Acrescentar uma instrução MOV que move o valor para um dos tags.

• Use uma instrução MEQ para verificar somente os bits requisitados.

Os exemplos a seguir mostram duas formas de misturar um valor imediato com um tag INT. Os dois exemplos verificam os bits de um módulo 1771 de E/S para determinar se todos os bits estão energizados. Como a palavra de dados de entrada de um módulo 1771 de E/S é um tag INT, é mais fácil usar um valor constante de 16 bits.

EXEMPLO Exemplo :Combinação de um tag INT com um valor imediato

Já que remote_rack_1:I.Data[0] é um tag INT, o valor com o qual deve ser comparado também é inserido como um tag INT.

EqualSource A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111Source B int_0 2#1111_1111_1111_1111

EQU

42093

Publicação 1756-RM003D-PT-P - Junho 2001

Page 511: CONTROLADORES LOGIX 5000 -

Atributos Comuns A-5

Inteiro para REAL

O controlador armazena os valores REAL em uma precisão única IEEE, formato de número de ponto flutuante. Use um bit para o sinal do valor, 23 bits para o valor base e 8 bits para o expoente (total de 32 bits). Se combinar um tag de inteiro (SINT, INT ou DINT) e um tag REAL como entradas na mesma instrução, o controlador converte o valor inteiro em REAL antes da instrução ser executada.

• Um valor SINT ou INT sempre é convertido para o mesmo valor REAL.

• Um valor DINT pode não ser convertido para o mesmo valor REAL:

– Um valor REAL usa até 24 bits para o valor base (23 bits armazenados mais um bit "escondido").

– Um valor DINT usa até 32 bits para o valor (um para o sinal e 31 para o valor).

– Se o valor DINT requerer mais do que 24 bits significativos, pode não converter para o mesmo valor REAL. Se não converter, o controlador arredonda para o valor REAL mais próximo, usando 24 bits significativos.

DINT para SINT para INT

Para converter um valor DINT para um valor SINT ou INT, o controlador trunca a parte superior de DINT e energiza o flag de

EXEMPLO Exemplo: Combinação de um tag INT com um valor imediato

Já que remote_rack_1:I.Data[0] é um tag INT, o valor com o qual deve ser comparado primeiro se move para int_0, em um tag INT, também. Em seguida, a instrução EQU compara os dois tags.

2#1111_1111_1111_1111

MoveSource 2#1111_1111_1111_1111 Dest int_0 2#1111_1111_1111_1111

MOVEqualSource A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111Source B int_0 2#1111_1111_1111_1111

EQU

42093

Publicação 1756-RM003D-PT-P - Junho 2001

Page 512: CONTROLADORES LOGIX 5000 -

A-6 Atributos Comuns

status de overflow, se necessário. O exemplo a seguir mostra o resultado de um conversão de DINT para SINT ou INT.

REAL para um inteiro

Para converter um valor REAL para um valor inteiro, o controlador arredonda a parte fracionária e trunca a parte superior da parte não fracionária. Se os dados forem perdidos, o controlador energiza o flag de status de overflow. Os números são arredondados da seguinte forma:

• Números diferentes de x,5 são arredondados para o número inteiro mais próximo.

• X,5 é arredondado para o número par mais próximo.

O exemplo a seguir mostra o resultado da conversão de valores REAL em valores DINT.

EXEMPLO Conversão de um DINT para um INT e um SINT

EXEMPLO Conversão de valores REAL em valores DINT

Este valor DINT: Converte para este valor menor:

16#0001_0081 (65.665) INT: 16#0081 (129)

SINT: 16#81 (-127)

Este valor REAL: Converte para este valor DINT:

-2,5 -2

-1,6 -2

-1,5 -2

-1,4 -1

1,4 1

1,5 2

1,6 2

2,5 2

Publicação 1756-RM003D-PT-P - Junho 2001

Page 513: CONTROLADORES LOGIX 5000 -

Atributos Comuns A-7

IMPORTANTE Os flags de status aritmético são baseados no valor a ser armazenado. As instruções que normalmente não afetam as palavras-chaves do status aritmético podem parecer fazê-lo se a conversão de tipo ocorrer por causa dos tipos de dados para os parâmetros da instrução. O processo de conversão de tipo define as palavras-chaves do status aritmético.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 514: CONTROLADORES LOGIX 5000 -

A-8 Atributos Comuns

Publicação 1756-RM003D-PT-P - Junho 2001

Page 515: CONTROLADORES LOGIX 5000 -

Apêndice B

Atributos de Bloco de Função

Introdução Este apêndice descreve características únicas das instruções de bloco de função. Estude as informações deste apêndice para entender corretamente como as rotinas de bloco de função operarão.

Dados Retentivos Se usar um IREF para especificar dados de entrada para uma instrução de bloco de função, os dados neste IREF serão retidos para a varredura da rotina do bloco de função. O IREF retém dados de tags de uso geral do controlador e específicos do programa. O controlador atualiza todos os dados IREF no início de cada varredura.

Neste exemplo, o valor de tagA é armazenado no início da execução da rotina. O valor armazenado é usado na execução do Block_01. Este mesmo valor é também usado na execução do Block_02. Se o valor de tagA se altera durante a execução da rotina, o valor armazenado de tagA no IREF não se altera até a próxima execução da rotina.

IMPORTANTE Quando programar no bloco de função, limite a faixa de unidade de

medida para +/-10+/-15 pois os cálculos internos de ponto flutuante são feitos usando ponto flutuante de precisão única. As unidades de medida fora desta faixa podem acarretar em perda de precisão se os resultados se aproximarem das limitações do ponto flutuante de

precisão única (+/-10+/-38).

IREF

tagA

Block_01

Block_02

1 Publicação 1756-RM003D-PT-P - Junho 2001

Page 516: CONTROLADORES LOGIX 5000 -

B-2 Atributos de Bloco de Função

Este exemplo é igual ao do anterior. O valor de tagA é armazenado somente uma vez no início da execução da rotina. A rotina usa este valor armazenado durante toda a rotina.

Ordem de Execução O software de programação RSLogix 5000 determina automaticamente a ordem de execução para os blocos de função na rotina quando:

• se verifica uma rotina de bloco de função

• se verifica um projeto que contém uma rotina de bloco de função

• se descarrega um projeto que contém uma rotina de bloco de função

Define-se a ordem de execução através da conexão de blocos de função juntos e da indicação de fios localizados de feedback, se necessário.

Se os blocos de função não são conectados juntos, não existe ordem de execução para determinar.

Se os blocos são conectados sequencialmente, a ordem de execução se move da entrada para saída. As entradas de um bloco devem estar disponíveis antes que o controlador possa executar este bloco. Por exemplo, o bloco 2 deve executar antes do bloco 3, pois as saídas do bloco 2 alimentam as entradas do bloco 3.

tagA

Block_01

Block_02

tagA

1 2 3

Publicação 1756-RM003D-PT-P - Junho 2001

Page 517: CONTROLADORES LOGIX 5000 -

Atributos de Bloco de Função B-3

A ordem de execução se refere somente aos blocos que são conectados juntos. O exemplo a seguir está correto pois os dois grupos de blocos não estão conectados juntos. Os blocos dentro de um grupo específico executam a ordem apropriada em relação aos blocos daquele grupo.

Se um grupo de blocos estiver em uma malha, o controlador não pode determinar que entradas devem estar disponíveis primeiro. Use um fio de feedback localizado para determiná-las. Se um pino de entrada estiver conectado a um fio de feedback localizado, a entrada não deve estar disponível antes que o bloco possa executar. Neste exemplo, o bloco 1 usa a saída do bloco 3 que foi produzido na execução anterior da rotina.

Em resumo, uma rotina de bloco de função executa nesta ordem:

1. O controlador retém todos os valores de dados nos IREFs.

2. O controlador executa os outros blocos de função para determinar como são conectados.

3. O controlador escreve saídas nos OREFs.

1 3 5

2 4 6

1 2 3

fio de feedback localizado

Publicação 1756-RM003D-PT-P - Junho 2001

Page 518: CONTROLADORES LOGIX 5000 -

B-4 Atributos de Bloco de Função

Respostas de Bloco de Função para Condições de Overflow

Em geral, as instruções de bloco de função que mantêm o histórico não o atualiza com valores ±NAN, ou ±INF quando um overflow ocorre. Cada instrução tem uma destas respostas para uma condição de overflow:

Modos de Temporização Estas instruções de controle de processo e inversor suportam modos diferentes de temporização.

DEDT NTCH

DERV PI

HPF PIDE

INTG RLIM

LDLG SCRV

LDL2 SOC

LPF TOT

Resposta 1:Os blocos executam seus algoritmos e verificam o resultado para ±NAN ou ±INF. Se ±NAN ou ±INF, as saídas de bloco ±NAN ou ±INF.

Resposta 2:Os blocos com saídas de limitação executam seus algoritmos e verificam o resultado por ±NAN ou ±INF. Os limites de saída são definidos pelos parâmetros de entrada HighLimit e LowLimit. Se ±INF, o bloco produz um resultado limitado. Se ±NAN, os limites da saída não são usados e os blocos produzem ±NAN.

Resposta 3:A condição de overflow não se aplica. Estas instruções possuem geralmente uma saída booleana.

ALM NTCHDEDT PMULDERV POSPESEL RLIMFGEN RMPSHPF SCRVLDL2 SELLDLG SNEGLPF SRTPMAVE SSUMMAXC TOTMINC UPDNMSTDMUX

HLLINTGPIPIDESCLSOC

BAND OSRIBNOT RESDBOR RTORBXOR SETDCUTD TOFRD2SD TONRD3SDDFFJKFFOSFI

Publicação 1756-RM003D-PT-P - Junho 2001

Page 519: CONTROLADORES LOGIX 5000 -

Atributos de Bloco de Função B-5

Existem três modos de temporização diferentes:

As instruções baseadas no tempo requerem um valor constante para o DeltaT, para que o algoritmo de controle calcule adequadamente a saída do processo. Se o DeltaT varia, uma descontinuidade ocorre na saída do processo. A gravidade da descontinuidade depende da instrução e a faixa da variação do DeltaT. Uma descontinuidade ocorre se:

• a instrução não é executada durante uma varredura.

• a instrução é executada múltiplas vezes durante uma tarefa.

• a tarefa estiver operando e a taxa de varredura da tarefa ou o tempo de amostra da entrada do processo se altera.

• o usuário altera o modo de base de tempo enquanto a tarefa estiver operando.

• O parâmetro de ordem é alterado no bloco de filtro enquanto a tarefa está operando. A alteração do parâmetro Order seleciona um algoritmo de controle diferente dentro da instrução.

Modo de Temporização: Descrição:

periódico No modo periódico, o período delta (Delta T) usado pela instrução é a taxa de varredura da tarefa quando a instrução é executada dentro de uma tarefa periódica. Se a instrução for executada em uma tarefa contínua, o Delta T é igual ao tempo transcorrido desde a execução anterior.

A atualização da entrada do processo deve ser sincronizada com a execução da tarefa ou amostragem 5-10 vezes mais rápida do que a da tarefa, a fim de minimizar o erro de amostragem entre a entrada e a instrução.

amostragem configurada No modo de amostragem configurada, o período delta (Delta T) usado pela instrução é o valor escrito no parâmetro OversampleDT da instrução. Use este modo quando a instrução executa em uma tarefa contínua e a entrada do processo não tem timestamp associado com as atualizações. Se a entrada do processo tiver timestamp, prefira usar o modo de amostragem em tempo real.

Adicione lógica para o programa controlar quando a instrução executa. Por exemplo, pode-se usar um temporizador ajustado para o valor OversampleDeltaT para controlar a execução usando a entrada EnableIn da instrução.

A entrada do processo deve ser amostrada 5-10 vezes mais rápido do que a execução da instrução, a fim de minimizar o erro de amostragem entre a entrada e a instrução.

amostragem em tempo real No modo de amostragem em tempo real, o período delta (Delta T) usado pela instrução é a diferença entre dois valores de registro de data e hora que correspondem às atualizações da entrada do processo. Use este modo quando a instrução executa em uma tarefa contínua e a entrada do processo tem um registro de data e hora associado às atualizações.

O valor de registro de data e hora é lido a partir do nome do tag inserido no parâmetro RTSTimeStamp da instrução. Normalmente, este nome de tag é um parâmetro no módulo de entrada associado com a entrada do processo.

A instrução compara o valor configurado RTSTime (período programado de atualização) com o DeltaT calculado para determinar se todas as atualizações da entrada do processo estão sendo lidas pela instrução. Se o DeltaT não estiver dentro de 1 milissegundo do tempo de configuração, a instrução ajusta o bit de status RTSMissed para indicar que um problema existe na leitura de atualizações para a entrada no módulo.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 520: CONTROLADORES LOGIX 5000 -

B-6 Atributos de Bloco de Função

Parâmetros comuns de instrução para modos de temporização

As instruções que suportam modos de base de tempo possuem estes parâmetros de entrada e saída:

Parâmetros de entrada

Parâmetro de Entrada:

Tipo de Dados: Descrição:

TimingMode DINT Seleciona modo de execução de temporização.Valor: Descrição:0 modo periódico1 modo de amostragem configurada2 modo de amostragem em tempo real

válido = 0 a 2valor inicial = 0

Quando TimingMode = 0 e a tarefa é periódica, a temporização periódica é habilitada e o DeltaT é ajustado para a taxa de varredura da tarefa. Quando TimingMode = 0 e a tarefa é contínua, a temporização periódica é habilitada e o DeltaT é ajustado à amplitude do tempo transcorrido desde a última vez que a instrução foi executada.

Quando TimingMode = 1, a temporização da amostragem configurada é habilitada e o DeltaT é ajustado para o valor do parâmetro OversampleDT.

Quando TimingMode = 2, a temporização da amostragem em tempo real é habilitada e o DeltaT é a diferença entre os valores atual e anterior de registro de data e hora lidos a partir do módulo associado com a entrada.

Se TimingMode for inválido, a instrução energiza o bit apropriado em Status.

OversampleDT REAL Tempo de execução para temporização de oversample. O valor usado para DeltaT está em segundos. Se TimingMode = 1, então OversampleDT = 0,0 desabilita a execução do algoritmo de controle. Se inválido, a instrução ajusta DeltaT=0,0 e energiza o bit apropriado em Status.válido = 0 a 4194,303 segundosvalor inicial = 0,0

RTSTime DINT Período de atualização do módulo para temporização de amostragem em tempo real. O período programado de atualização DeltaT está em milissegundos. O período de atualização normalmente é o valor que foi usado para configurar o tempo de atualização do módulo. Se inválido, a instrução energiza o bit apropriado em Status e desabilita a verificação RTSMissed.válido = 1 a 32.767 msvalor inicial = 1

RTSTimeStamp DINT Valor de registro de data e hora do módulo para temporização da amostragem em tempo real. O valor de registro de data e hora que corresponde à última atualização do sinal de entrada. Este valor é usado para calcular o DeltaT. Se inválido, a instrução energiza o bit apropriado em Status, desabilita a execução do algoritmo de controle e desabilita a verificação do RTSMissed.

válido =1 a 32.767 ms (varia de 32767 a 0)1 pulso = 1 milissegundovalor inicial = 0

Publicação 1756-RM003D-PT-P - Junho 2001

Page 521: CONTROLADORES LOGIX 5000 -

Atributos de Bloco de Função B-7

Parâmetros de saída

Parâmetro de Saída: Tipo de Dados: Descrição:

DeltaT REAL Tempo transcorrido entre atualizações. Este é o tempo transcorrido em segundos usado pelo algoritmo de controle para calcular a saída de processo.

Periódico: DeltaT = taxa de varredura da tarefa se a tarefa for Periodic, DeltaT = tempo transcorrido desde a execução da instrução anterior se a tarefa for Continuous

Amostragem Configurada: DeltaT = OversampleDT

Amostragem em Tempo Real: DeltaT = (RTSTimeStampn - RTSTimeStampn-1)

Status: DINT Status do bloco de função.

TimingModeInv (Status.27)

BOOL Valor Invalid TimingMode.

RTSMissed (Status.28) BOOL Usado somente no modo de amostragem em tempo real. Ajustado quando o ABS | DeltaT - RTSTime | > 1 (,001 segundo).

RTSTimeInv (Status.29)

BOOL Valor Invalid RTSTime.

RTSTimeStampInv (Status.30)

BOOL Valor Invalid RTSTimeStamp.

DeltaTInv (Status.31) BOOL Valor Invalid DeltaT.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 522: CONTROLADORES LOGIX 5000 -

B-8 Atributos de Bloco de Função

Características dos modos de temporização

O diagrama a seguir mostra como uma instrução determina o modo apropriado de temporização.

TimingMode = 2TimingMode = 1TimingMode = 0

Determina o modo baseado no tempo

Temporização em tempo realTemporização na amostragem configuradaTemporização periódica

Determine o tipo de tarefa

Tarefa periódica Tarefa não periódica

DeltaT = OversampleDT

Se DeltaT < 0 ou DeltaT > 4194,303 segs. a instrução ajusta DeltaT = 0,0 e energiza o bit apropriado em Status.

Se DeltaT > 0, a instrução executa.

DeltaT = RTSTimeStampn - RTSTimeStampn-1

Se DeltaT > 0, a instrução executa.

Se |RTSTIME - DeltaT| > 1, a instrução energiza o bit RTSMissed em Status.

DeltaT = tempo de varredura da tarefa

Se DeltaT > 0, a instrução executa.

DeltaT = tempo transcorrido desde a última execução

Se DeltaT > 0, a instrução executa.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 523: CONTROLADORES LOGIX 5000 -

Atributos de Bloco de Função B-9

Controle de Programa/pelo Operador

Diversas instruções suportam o conceito de controle de Programa/pelo Operador. Estas instruções incluem:

• Enhanced Select (ESEL)

• Totalizer (TOT)

• Enhanced PID (PIDE)

• Ramp/Soak (RMPS)

• Discrete 2-State Device (D2SD)

• Discrete 3-State Device (D3SD)

O controle de programa/pelo operador permite que se controle estas instruções simultaneamente tanto a partir do programa do usuário como do dispositivo de interface de operação. Quando estiver em controle de Programa, a instrução é controlada pelas entradas de Programa para a instrução; quando estiver em controle pelo Operador, a instrução é controlada pelas entradas do Operador para a instrução.

O controle de Program ou pelo Operador é determinado através do uso destas entradas:

Para determinar se uma instrução está no controle de Programa ou pelo Operador, examine a saída ProgOper. Se ProgOper estiver energizado, a instrução está no controle de Programa; se ProgOper estiver desenergizado, a instrução está no controle pelo Operaçãor.

O controle pelo Operador precede o controle de Programa se ambos os bits de solicitações forem energizados. Por exemplo, se ambos ProgProgReq e ProgOperReq estiverem energizados, a instrução vai para o controle pelo Operador.

Entrada: Descrição:

.ProgProgReq Um programa solicita para ir ao controle de Programa.

.ProgOperReq Um programa solicita para ir ao controle pelo Operador.

.OperProgReq Um operador solicita para ir ao controle de Programa.

.OperOperReq Um operador solicita para ir ao controle pelo Operador.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 524: CONTROLADORES LOGIX 5000 -

B-10 Atributos de Bloco de Função

As entradas de solicitação de Program precedem as entradas de solicitação do Operador. Isto possibilita que as entradas ProgProgReq e ProgOperReq “travem” uma instrução em um controle desejado. Por exemplo, supondo que uma instrução Totalizer irá sempre ser usada no controle pelo Operador e o programa do usuário nunca controlará a operação ou desligamento de Totalizer. Neste caso, seria possível ligar um valor literal de 1 em ProgOperReq. Isto preveniria o operador de colocar o Totalizer no controle de Programa através do ajuste de OperProgReq a partir do dispositivo da interface de operação.

Uma vez que a entrada ProgOperReq sempre está energizada, nada acontece ao apertar o botão “Program” na tela de operação (que energiza a entrada OperProgReg). Normalmente, o ajuste de OperProgReq coloca TOT no controle

Ligar um “1” em ProgOperReq significa que o programa do usuário deseja que TOT esteja no controle pelo Operador.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 525: CONTROLADORES LOGIX 5000 -

Atributos de Bloco de Função B-11

Da mesma maneira, o ajuste constante do ProgProgReq pode "travar" a instrução no controle de Programa. Isto é útil para sequências de startup automático quando se deseja que o programa controle a ação da instrução sem se preocupar se um operador está assumindo o controle inadvertidamente da instrução. Neste exemplo, o programa está energizando a entrada ProgProgReq durante o startup e depois desenergizando a entrada ProgProgReq assim que o startup é concluído. Uma vez que a entrada ProgProgReq for desenergizada, a instrução se mantém no controle de Programa até que receba um pedido de alteração. Por exemplo, o operador pode energizar a entrada OperOperReq na tela de operação para assumir o controle da instrução. O exemplo a seguir mostra como se trava uma instrução no controle de Programa.

As entradas de pedido do operador sempre são desenergizadas pela instrução quando esta executa. Isto permite que as interfaces de operação trabalhem com estas instruções pela simples energização do bit de solicitação no modo desejado. Não é preciso programar a interface de operação para resetar os bits solicitados. Por exemplo, se uma interface de operação energiza a entrada OperAutoReq para uma instrução PIDE, quando a instrução PIDE executa, ela determina qual seria a resposta apropriada e desenergiza o OperAutoReq.

As entradas de solicitação do programa são normalmente desenergizadas pela instrução pois estas são normalmente conectadas como entradas na instrução. Se a instrução desenergiza estas entradas, a entrada seria apenas energizada novamente pela entrada conectada. Pode haver situações onde se deseja usar outra lógica para ajustar as solicitações de Programa de maneira que estas sejam desenergizadas pela instrução. Neste caso, pode-se energizar a entrada ProgValueReset e a instrução sempre desenergizará as entradas de solicitação do modo de Programa ao executá-la..

Quando StartupSequenceActive é energizada, a instrução PIDE é colocada no controle de Programa e no modo Manual. O valor StartupCV é usado como uma saída de malha.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 526: CONTROLADORES LOGIX 5000 -

B-12 Atributos de Bloco de Função

Neste exemplo, uma linha de lógica de diagrama ladder em outra rotina é usada para reter em monoestável um ProgAutoReq para uma instrução PIDE quando um botão é pressionado. Como a instrução PIDE desenergiza automaticamente as solicitações do modo de Programa, não é preciso escrever qualquer lógica de diagrama ladder para desenergizar o ProgAutoReq após a execução da rotina e a instrução PIDE irá receber somente uma solicitação para passar para Auto toda vez que o botão for apertado.

Quando o Botão TIC101AutoReq for pressionado, monoestável retém ProgAutoReq para a instrução PIDE TIC101. O TIC101 foi configurado com o ajuste da entrada ProgValueReset, então quando a instrução PIDE executa, esta desenergiza automaticamente ProgAutoReq.

Publicação 1756-RM003D-PT-P - Junho 2001

Page 527: CONTROLADORES LOGIX 5000 -

Índice

Aadição 5-6AHL 16-14ajuste 12-27alarmes 12-28anexar leitura ASCII 16-24arco co-seno 13-14arco seno 13-11arco tangente 13-16arquivamento aritmético e lógico 7-7atributos

conversão de tipos de dados A-1valores imediatos A-1

atributos comuns A-1conversão de tipos de dados A-1valores imediatos A-1

Bbase log de 10 14-4bitwise AND 6-17bitwise exclusive OR 6-25bitwise NOT 6-29bitwise OR 6-21break 11-5busca de string 17-7

Ccálculo 5-2caracteres ASCII no buffer 16-10carga do sequenciador 9-12carga FIFO 8-10carga LIFO 8-22classificação 7-45códigos de erro

ASCII 16-5instrução MSG 3-7

combinação de tipos de dados A-1comparação 4-2comparação de bit de arquivo 12-2comparação e busca de arquivo 7-20Concatenação de String 17-3condições de overflow B-5configuração 3-13

instrução MSG 3-13instrução PID 12-26

contagem crescente 2-23contagem crescente/decrescente 2-31contagem decrescente 2-27controle de programa/pelo operador

características gerais B-10conversão de tipos de dados A-1

conversão para BCD 15-8conversão para inteiro 15-12cópia 7-32cópia síncrona 7-32co-seno 13-5

Ddados retentivos B-1dados transicionais 12-18definição do valor do sistema 3-28desabilitação da interrupção pelo usuário 10-18descarga FIFO 8-16descarga LIFO 8-28desenergizar saída com retenção 1-7deslocamento de bit para a direita 8-6deslocamento de bit para a esquerda 8-2desvio padrão 7-49detecção de diagnóstico 12-10diferente de 4-38DINT Para String 18-7distribuição do campo do bit 6-10distribuição do campo do bit com target 6-13divisão 5-15divisão do módulo 5-19

Eelementos

instrução SIZE 7-53Encontro de String 17-7energizar saída 1-5energizar saída com retenção 1-6entrada do sequenciador 9-2escala 12-29escrita ASCII 16-28estrutura CONTROL 7-7, 7-20, 7-41, 7-45, 7-49, 8-2,

8-6, 8-10, 8-17, 8-22, 8-28, 9-2, 9-7, 9-12, 12-3, 12-11

estrutura da MENSAGEM 3-2estrutura do CONTADOR 2-23, 2-27estrutura do tipo string 16-6estrutura FBD_BIT_FIELD_DISTRIBUTE 6-13estrutura FBD_COMPARE 4-8, 4-12, 4-16, 4-20, 4-24,

4-39estrutura FBD_CONVERT 6-29, 15-8, 15-12estrutura FBD_COUNTER 2-31estrutura FBD_LIMIT 4-28estrutura FBD_LOGICAL 6-17, 6-21, 6-25estrutura FBD_MASK_EQUAL 4-34estrutura FBD_MASKED_MOVE 6-7estrutura FBD_MATH 5-7, 5-10, 5-13, 5-16, 5-20,

14-7

Publicación 1756-RM003D-PT-P - Junho 2001

Page 528: CONTROLADORES LOGIX 5000 -

2 Índice

estrutura FBD_MATH_ADVANCED 5-23, 5-26, 5-29, 13-2, 13-5, 13-8, 13-11, 13-14, 13-17, 14-2, 14-5, 15-2, 15-5

estrutura FBD_TIMER 2-14, 2-17, 2-20estrutura FBD_TRUNCATE 15-15estrutura SERIAL_PORT_CONTROL 16-2, 16-5, 16-7,

16-10, 16-14, 16-18, 16-21, 16-25, 16-29estrutura STRING 16-6, 17-2, 18-2estrutura TEMPORIZADOR 2-2, 2-6, 2-10estrutura tipo string 17-2, 18-2estruturas

CONTADOR 2-23, 2-27CONTROL 7-7, 7-20, 7-41, 7-45, 7-49, 8-2, 8-6,

8-10, 8-17, 8-22, 8-28, 9-2, 9-7, 9-12,12-3, 12-11

FBD_BIT_FIELD_DISTRIBUTE 6-13FBD_COMPARE 4-8, 4-12, 4-16, 4-20, 4-24, 4-39FBD_CONVERT 6-29, 15-8, 15-12FBD_COUNTER 2-31FBD_LIMIT 4-28FBD_LOGICAL 6-17, 6-21, 6-25FBD_MASK_EQUAL 4-34FBD_MASKED_MOVE 6-7FBD_MATH 5-7, 5-10, 5-13, 5-16, 5-20, 14-7FBD_MATH_ADVANCED 5-23, 5-26, 5-29, 13-2,

13-5, 13-8, 13-11, 13-14, 13-17, 14-2,14-5, 15-2, 15-5

FBD_TIMER 2-14, 2-17, 2-20FBD_TRUNCATE 15-15instrução RES 2-35MSG 3-2PID 12-22SERIAL_PORT_CONTROL 16-2, 16-5, 16-7, 16-10,

16-14, 16-18, 16-21, 16-25, 16-29STRING 16-6, 17-2, 18-2TEMPORIZADOR 2-2, 2-6, 2-10tipo string 16-6, 17-2, 18-2

examinar se energizado 1-3exponencial 14-7expressões

formato 4-6, 5-4, 7-19, 7-30operadores válidos 4-4, 5-4, 7-18, 7-30seqüência de operação 4-6, 5-5, 7-19, 7-31

Ffeedforward 12-38fim temporário 10-13flags de status aritmético

overflow B-5

Ggrau 15-2

Hhabilitação da interrupção pelo usuário 10-18

Iigual a 4-7Inserção de String 17-9instrução 16-14instrução ABL 16-7instrução ABS 5-29instrução ACB 16-10instrução ACL 16-12instrução ACS 13-14instrução ADD 5-6instrução AFI 10-20instrução AND 6-17instrução ARD 16-17instrução ARL 16-20instrução ASN 13-11instrução ATN 13-16instrução AVE 7-41instrução AWA 16-24instrução AWT 16-28instrução BRK 11-5instrução BSL 8-2instrução BSR 8-6instrução BTD 6-10instrução BTDT 6-13instrução CLR 6-16instrução CMP 4-2instrução CONCAT 17-3instrução COP 7-32instrução COS 13-5instrução CPS 7-32instrução CPT 5-2instrução CTD 2-27instrução CTU 2-23instrução CTUD 2-31instrução DDT

modo de busca 12-12operandos 12-10

instrução de conversãoTOD 15-8

instrução DEG 15-2instrução DELETE 17-5instrução DIV 5-15instrução DTOS 18-7instrução DTR 12-18instrução EQU 4-7instrução FAL

modo de operação 7-2operandos 7-7

instrução FBCmodo de busca 12-4

Publicación 1756-RM003D-PT-P - Junho 2001

Page 529: CONTROLADORES LOGIX 5000 -

Índice 3

operandos 12-2instrução FFL 8-10instrução FFU 8-16instrução FIND 17-7instrução FLL 7-37instrução FOR 11-2instrução FRD 15-12instrução FSC

modo de operação 7-2operandos 7-20

instrução GEQ 4-11instrução GRT 4-15instrução GSV

objetos 3-30operandos 3-28

instrução INSERT 17-9instrução JMP 10-2instrução JSR 10-4instrução LBL 10-2instrução LEQ 4-19instrução LES 4-23instrução LFL 8-22instrução LFU 8-28instrução LIM 4-27instrução LN 14-2instrução LOG 14-4instrução MCR 10-15instrução MEQ 4-33instrução MID 17-11instrução MOD 5-19instrução MOV 6-2instrução MSG 3-13

códigos de erro 3-7conexão de cache 3-27estrutura 3-2método de comunicação 3-26operandos 3-2

instrução MUL 5-12instrução MVM 6-4instrução MVMT 6-7instrução NEG 5-26instrução NEQ 4-38instrução NOP 10-21instrução NOT 6-29instrução ONS 1-8instrução OR 6-21instrução OSF 1-13instrução OSFI 1-17instrução OSR 1-10instrução OSRI 1-15instrução OTE 1-5instrução OTL 1-6instrução OTU 1-7instrução PID

ajuste 12-27alarmes 12-28configuração 12-26conversão de escala 12-29estrutura 12-22feedforward 12-38polarização da saída (bias) 12-38zona morta 12-37

instrução RAD 15-5instrução RES 2-35instrução RET 10-4, 11-7instrução RTO 2-10instrução RTOR 2-20instrução RTOS 18-9instrução SBR 10-4instrução sempre falsa 10-20instrução SIN 13-2instrução SQI 9-2instrução SQL 9-12instrução SQO 9-7instrução SQR 5-23instrução SRT 7-45instrução SSV

objetos 3-30operandos 3-28

instrução STOD 18-3instrução STOR 18-5instrução SUB 5-9instrução TAN 13-8instrução TND 10-13instrução TOD 15-8instrução TOF 2-6instrução TOFR 2-17instrução TON 2-2instrução TONR 2-14instrução TRN 15-15instrução UID 10-18instrução UIE 10-18instrução XIO 1-3instrução XOR 6-25instrução XPY 14-7instruções

binárias 1-1cálculo 5-1comparação 4-1contador 2-1controle de programa 10-1conversão 15-1conversão ASCII 18-1conversão de string 18-1conversão matemática 15-1deslocamento 8-1entrada/saída 3-1especiais 12-1

Publicación 1756-RM003D-PT-P - Junho 2001

Page 530: CONTROLADORES LOGIX 5000 -

4 Índice

for/break 11-1lógica 6-1manipulação de string 17-1manipulação de string ASCII 17-1matemáticas avançadas 14-1matrizmovimentação 6-1porta serial 16-1porta serial ASCII 16-1seqüenciador 9-1temporizador 2-1trigonométrica 13-1

instruções ASCIIABL 16-7ACB 16-10ACL 16-12AHL 16-14ARD 16-17ARL 16-20AWA 16-24AWT 16-28CONCAT 17-3DELETE 17-5DTOS 18-7FIND 17-7INSERT 17-9MID 17-11RTOS 18-9STOD 18-3STOR 18-5

instruções bináriasintrodução 1-1ONS 1-8OSF 1-13OSFI 1-17OSR 1-10OSRI 1-15OTE 1-5OTL 1-6OTU 1-7XIO 1-3

instruções de arquivo. Consulte instruções de matrizinstruções de cálculo

ABS 5-29ADD 5-6CPT 5-2DIV 5-15formato da expressão 5-4, 7-19introdução 5-1MOD 5-19MUL 5-12NEG 5-26operadores válidos 5-4, 7-18seqüência de operação 5-5, 7-19

SQR 5-23SUB 5-9

instruções de comparaçãoCMP 4-2EQU 4-7formato da expressão 7-30formato de expressão 4-6GEQ 4-11GRT 4-15introdução 4-1LEQ 4-19LES 4-23LIM 4-27MEQ 4-33NEQ 4-38operadores válidos 4-4, 7-30seqüência de operação 4-6, 7-31

instruções de controle de programaintrodução 10-1UID 10-18UIE 10-18

instruções de controle do programaAFI 10-20JMP 10-2JSR 10-4LBL 10-2MCR 10-15NOP 10-21RET 10-4SBR 10-4TND 10-13

instruções de conversãoDEG 15-2FRD 15-12introdução 15-1RAD 15-5TRN 15-15

instruções de conversão de stringDTOS 18-7introdução 18-1RTOS 18-9STOD 18-3STOR 18-5

instruções de conversão matemáticaDEG 15-2FRD 15-12introdução 15-1RAD 15-5TOD 15-8TRN 15-15

instruções de deslocamentoBSL 8-2BSR 8-6FFL 8-10

Publicación 1756-RM003D-PT-P - Junho 2001

Page 531: CONTROLADORES LOGIX 5000 -

Índice 5

FFU 8-16introdução 8-1LFL 8-22LFU 8-28

instruções de entrada/saídaGSV 3-28introdução 3-1MSG 3-2SSV 3-28

instruções de lógicaintrodução 6-1

instruções de manipulação de stringCONCAT 17-3DELETE 17-5FIND 17-7INSERT 17-9introdução 17-1MID 17-11

instruções de matemática avançadaLOG 14-4XPY 14-7

instruções de matrizarquivo/misc. 7-1AVE 7-41BSL 8-2BSR 8-6COP 7-32CPS 7-32DDT 12-10deslocamento 8-1FBC 12-2FFL 8-10FFU 8-16FLL 7-37FSC 7-20LFL 8-22LFU 8-28modo de operação 7-2seqüenciador 9-1SIZE 7-53SQI 9-2SQL 9-12SQO 9-7SRT 7-45STD 7-49

instruções de matrizaFAL 7-7

instruções de movimentaçãoBTD 6-10BTDT 6-13CLR 6-16introdução 6-1MOV 6-2MVM 6-4

MVMT 6-7instruções de porta serial

ABL 16-7ACB 16-10ACL 16-12AHL 16-14ARD 16-17ARL 16-20AWA 16-24AWT 16-28introdução 16-1

instruções de seqüenciadorintrodução 9-1

instruções de sérieRES 2-35

instruções de temporizadorTOF 2-6TOFR 2-17

instruções do contadorCTD 2-27CTU 2-23CTUD 2-31introdução 2-1RES 2-35

instruções do sequenciadorSQI 9-2SQL 9-12SQO 9-7

instruções do temporizadorintrodução 2-1RES 2-35RTO 2-10RTOR 2-20TON 2-2TONR 2-14

instruções especiaisDDT 12-10DTR 12-18FBC 12-2introdução 12-1PID 12-21

instruções for/breakBRK 11-5FOR 11-2introdução 11-1RET 11-7

instruções lógicasAND 6-17NOT 6-29OR 6-21XOR 6-25

instruções matemáticas avançadasintrodução 14-1LN 14-2

Publicación 1756-RM003D-PT-P - Junho 2001

Page 532: CONTROLADORES LOGIX 5000 -

6 Índice

instruções PIDoperandos 12-21

instruções STD 7-49instruções trigonométricas

ACS 13-14ASN 13-11ATN 13-16COS 13-5introdução 13-1SIN 13-2TAN 13-8

Llabel 10-2leitura ASCII 16-17limite 4-27linha de leitura ASCII 16-20linhas ASCII handshake 16-14log

base 10 14-4natural 14-2

log natural 14-2

Mmaior ou igual a 4-11maior que 4-15mascarado igual a 4-33máscaras 12-19média 7-41Meio do String 17-11menor ou igual a 4-19menor que 4-23mensagem 3-2modo All (todos) 7-2modo de busca 12-4, 12-12modo de operação 7-2modo Incremental (Incremento) 7-5modo Numerical (numérico) 7-3modos de temporização B-5monoestável 1-8monoestável borda de descida com entrada 1-17monoestável com borda de descida 1-13monoestável com borda de subida 1-10monoestável com borda de subida com entrada 1-15movimentação 6-2movimentação mascarada 6-4movimentação mascarada com target 6-7multiplicação 5-12

Nnegação 5-26

Oobjeto AXIS 3-31objeto CONTROLLER 3-39objeto CONTROLLERDEVICE 3-39objeto CST 3-41objeto DF1 3-42objeto FAULTLOG 3-45objeto MESSAGE 3-46objeto MODULE 3-48objeto MOTIONGROUP 3-49objeto PROGRAM 3-50objeto ROUTINE 3-51objeto SERIALPORT 3-52objeto TASK 3-54objeto WALLCLOCKTIME 3-55objetos

AXIS 3-31CONTROLLER 3-39CONTROLLERDEVICE 3-39CST 3-41DF1 3-42FAULTLOG 3-45instrução GSV/SSV 3-30MESSAGE 3-46MODULE 3-48MOTIONGROUP 3-49PROGRAM 3-50ROUTINE 3-51SERIALPORT 3-52TASK 3-54WALLCLOCKTIME 3-55

obtenção do valor do sistema 3-28operadores 4-4, 5-4, 7-18, 7-30ordem de execução B-2

Ppolarização da saída (bias) 12-38preenchimento de arquivo 7-37proporcional, integral e derivativo 12-21

Rradianos 15-5raiz quadrada 5-23REAL Para String 18-9rearme do controle mestre 10-15remoção de buffer e da fila ASCII 16-12Remoção de String 17-5reset 2-35retorno 10-4, 11-7

Ssaída do sequenciador 9-7

Publicación 1756-RM003D-PT-P - Junho 2001

Page 533: CONTROLADORES LOGIX 5000 -

Índice 7

salto 10-2salto para sub-rotina 10-4sem operação 10-21seno 13-2seqüência de operação 4-6, 5-5, 7-19, 7-31SIZE instrução 7-53String Para DINT 18-3String Para REAL 18-5sub-rotina 10-4subtração 5-9

Ttamanho em elementos 7-53tangente 13-8temporizador de desenergização 2-6temporizador de desenergização com reset 2-17temporizador de energização 2-2temporizador de energização com reset 2-14temporizador retentivo energizado com reset 2-20temporizador retentivo ligado 2-10teste ASCII para linha buffer 16-7

truncagem 15-15

Vvalor absoluto 5-29valores imediatos A-1

XX elevado à potência de Y 14-7

Zzeramento 6-16zona morta 12-37

Publicación 1756-RM003D-PT-P - Junho 2001

Page 534: CONTROLADORES LOGIX 5000 -

8 Índice

Notas:

Publicación 1756-RM003D-PT-P - Junho 2001

Page 535: CONTROLADORES LOGIX 5000 -

Códigos de Caracteres ASCII

Caracteres Dec Hex

[ctrl-@] NUL 0 $00

[ctrl-A] SOH 1 $01

[ctrl-B] STX 2 $02

[ctrl-C] ETX 3 $03

[ctrl-D] EOT 4 $04

[ctrl-E] ENQ 5 $05

[ctrl-F] ACK 6 $06

[ctrl-G] BEL 7 $07

[ctrl-H] BS 8 $08

[ctrl-I] HT 9 $09

[ctrl-J] LF 10 $l ($0A)

[ctrl-K] VT 11 $0B

[ctrl-L] FF 12 $0C

[ctrl-M] CR 13 $r ($0D)

[ctrl-N] SO 14 $0E

[ctrl-O] SI 15 $0F

[ctrl-P] DLE 16 $10

[ctrl-Q] DC1 17 $11

[ctrl-R] DC2 18 $12

[ctrl-S] DC3 19 $13

[ctrl-T] DC4 20 $14

[ctrl-U] NAK 21 $15

[ctrl-V] SYN 22 $16

[ctrl-W] ETB 23 $17

[ctrl-X] CAN 24 $18

[ctrl-Y] EM 25 $19

[ctrl-Z] SUB 26 $1A

ctrl-[ ESC 27 $1B

[ctrl-\] FS 28 $1C

ctrl-] GS 29 $1D

[ctrl-^] RS 30 $1E

[ctrl-_] US 31 $1F

SPACE 32 $20

! 33 $21

“ 34 $22

# 35 $23

$ 36 $24

% 37 $25

& 38 $26

‘ 39 $27

( 40 $28

) 41 $29

* 42 $2A

+ 43 $2B

, 44 $2C

- 45 $2D

. 46 $2E

/ 47 $2F

0 48 $30

1 49 $31

2 50 $32

3 51 $33

4 52 $34

5 53 $35

6 54 $36

7 55 $37

8 56 $38

9 57 $39

: 58 $3A

; 59 $3B

< 60 $3C

= 61 $3D

> 62 $3E

? 63 $3F

Caracteres Dec Hex

@ 64 $40

A 65 $41

B 66 $42

C 67 $43

D 68 $44

E 69 $45

F 70 $46

G 71 $47

H 72 $48

I 73 $49

J 74 $4A

K 75 $4B

L 76 $4C

M 77 $4D

N 78 $4E

O 79 $4F

P 80 $50

Q 81 $51

R 82 $52

S 83 $53

T 84 $54

U 85 $55

V 86 $56

W 87 $57

X 88 $58

Y 89 $59

Z 90 $5A

[ 91 $5B

\ 92 $5C

] 93 $5D

^ 94 $5E

_ 95 $5F

Caracteres Dec Hex

‘ 96 $60

a 97 $61

b 98 $62

c 99 $63

d 100 $64

e 101 $65

f 102 $66

g 103 $67

h 104 $68

i 105 $69

j 106 $6A

k 107 $6B

l 108 $6C

m 109 $6D

n 110 $6E

o 111 $6F

p 112 $70

q 113 $71

r 114 $72

s 115 $73

t 116 $74

u 117 $75

v 118 $76

w 119 $77

x 120 $78

y 121 $79

z 122 $7A

{ 123 $7B

| 124 $7C

} 125 $7D

~ 126 $7E

DEL 127 $7F

Caracteres Dec Hex

Publicação 1756-RM003D-PT-P - Junho 2001

Page 536: CONTROLADORES LOGIX 5000 -

Publicação 1756-RM003D-PT-P - Junho 2001 1 PN 957464-55Substitui Publicação 1756-RM003C-EN-P - Novembro de 2000 © 2001 Rockwell International Corporation.