Upload
luciene-carvalho
View
11
Download
0
Embed Size (px)
Citation preview
1 Publicação 1756-RM003C-PT-P - Novembro 2000
Resumo das Alterações
Introdução
Informações Atualizadas Este documento contém as seguintes alterações::
Estas instruções: Consulte:
Acesso ao objeto AXIS (Eixo) 3-33
Acesso ao objeto CONTROLLERDEVICE 3-42
Comparação (CMP) 4-2
Divisão (DIV) 5-15
Módulo (MOD) 5-19
Comparação e Busca de Arquivo (FSC) (gráfico atualizado da instrução) 7-19
Cópia de Arquivo Síncrona (CPS) 7-30
A versão desse documento contém informações novas e atualizadas.
Publicação 1756-RM003C-PT-P - Novembro 2000
2 Resumo das Alterações
Notas:
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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-5 lógica ladder
ABS 5-29 lógica ladderbloco de função
ACB 16-7 lógica ladder
ACL 16-9 lógica ladder
ACS 13-14 lógica ladderbloco de função
adição 5-6 lógica ladderbloco de função
AFI 10-17 lógica ladder
AHL 16-11 lógica ladder
ALM controle de processo
bloco de função
AND 6-17 lógica ladderbloco de função
ARD 16-14 lógica ladder
ARL 16-17 lógica ladder
ASN 13-11 lógica ladderbloco de função
ATN 13-16 lógica ladderbloco de função
AVE 7-39 lógica ladder
AWA 16-21 lógica ladder
AWT 16-24 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
COP 7-30 lógica ladder
COS 13-5 lógica ladderbloco de função
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
DDT 12-10 lógica ladder
DEDT controle de processo
bloco de função
Instrução: Local: Linguagens:
Publicação 1756-RM003C-PT-P - Novembro 2000
2 Localizador de Instrução
Instrução: Local: Linguagem:
DFF controle de processo
bloco de função
DIV 5-15 lógica ladderbloco de função
DTR 12-18 lógica ladder
ESEL controle de processo
bloco de função
EQU 4-6 lógica ladderbloco de função
FAL 7-7 lógica ladder
FBC 12-2 lógica ladder
FFL 8-10 lógica ladder
FGEN controle de processo
bloco de função
FFU 8-16 lógica ladder
FLL 7-35 lógica ladder
FOR 11-2 lógica ladder
FRD 15-12 lógica ladderbloco de função
FSC 7-19 lógica ladder
GEQ 4-10 lógica ladderbloco de função
GRT 4-13 lógica ladderbloco de função
GSV 3-30 lógica ladder
HLL controle de processo
bloco de função
HPF controle de processo
bloco de função
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 ladderbloco de função
LBL 10-2 lógica ladder
LDL2 controle de processo
bloco de função
LDLG controle de processo
bloco de função
LEQ 4-16 lógica ladderbloco de função
LES 4-19 lógica ladderbloco de função
LFL 8-22 lógica ladder
LFU 8-28 lógica ladder
LIM 4-22 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
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-13 lógica ladder
MDF posicionamento lógica ladder
MDO posicionamento lógica ladder
MDR posicionamento lógica ladder
MDW posicionamento lógica ladder
Instrução: Local: Linguagem:
Publicação 1756-RM003C-PT-P - Novembro 2000
Localizador de Instrução 3
Instrução: Local: Linguagem:
MGSD posicionamento lógica ladder
MGSR posicionamento lógica ladder
MGSP posicionamento 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
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-32 lógica ladderbloco de função
NOP 10-18 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 e11-6 lógica ladderbloco de funçã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
SBR 10-4 lógica ladderbloco de função
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
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
Instrução: Local: Linguagem:
Publicação 1756-RM003C-PT-P - Novembro 2000
4 Localizador de Instrução
Instrução: Local: Linguagem:
STD 7-47 lógica ladder
SUB 5-9 lógica ladderbloco de função
TAN 13-8 lógica ladderbloco de função
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-15 lógica ladder
UIE 10-11 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
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
2 Prefácio
Objetivo do Manual Este manual fornece uma descrição de cada instrução neste formato.
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Prefácio 3
Os ícones a seguir ajudam a identificar as informações específicas da linguagem:
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.
Este ícone: Indica esta linguagem de programação:
Lógica Ladder
bloco de função
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
Publicação 1756-RM003C-PT-P - Novembro 2000
4 Prefácio
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.
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.
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-RM003C-PT-P - Novembro 2000
Prefácio 5
Estados do bloco de função
O controlador avalia as instruções do bloco de função baseado no estado de diferentes condições.
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.
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-RM003C-PT-P - Novembro 2000
6 Prefácio
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-RM003C-PT-P - Novembro 2000
Prefácio 7
Notas:
Publicação 1756-RM003C-PT-P - Novembro 2000
8 Prefácio
i Publicação 1756-RM003C-PT-P - Novembro 2000
Sumário
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-8
Códigos de erro do ControlLogix (CIP) . . . . . . . . . . . . . 3-8Códigos de erros estendidos do ControlLogix . . . . . . . . 3-9Códigos de erro do CLP e SLC (.ERR) . . . . . . . . . . . . . . 3-10Códigos de erro estendiddos do CLP e SLC (.EXERR) . . 3-11Códigos de erro de Block-Transfer . . . . . . . . . . . . . . . . 3-12Códigos de erro do Logix5550 . . . . . . . . . . . . . . . . . . . 3-13Códigos de erros estendidos do Logix5550 . . . . . . . . . . 3-13
Especificação dos Detalhes de Configuração (Guia Configuration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14
Especificação de Mensagens CIP. . . . . . . . . . . . . . . . . . 3-15Uso de mensagens CIP genéricas para resetar os módulos de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16Especificação das mensagens do CLP-5. . . . . . . . . . . . . 3-18Especificação de Mensagens do SLC . . . . . . . . . . . . . . . 3-19Especificação das mensagens de block-transfer . . . . . . . 3-20
Publicação 1756-RM003C-PT-P - Novembro 2000
Índice ii
Especificação das mensagens do CLP-3. . . . . . . . . . . . . 3-21Especificação das mensagens do CLP-2. . . . . . . . . . . . . 3-22
Exemplos de Configuração MSG . . . . . . . . . . . . . . . . . . . . 3-23Especificações dos Detalhes de Comunicação (Guia Communication) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24
Especificação de um percurso de conexão . . . . . . . . . . 3-24Especificação de um método de comunicação: . . . . . . . 3-28Seleção de uma opção de cache: . . . . . . . . . . . . . . . . . 3-29
Obtenção do Valor do Sistema (GSV) e Definição do Valor do Sistema (SSV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30Objetos GSV/SSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32
Acesso ao objeto AXIS (Eixo) . . . . . . . . . . . . . . . . . . . . 3-33Acesso ao objeto CONTROLLER . . . . . . . . . . . . . . . . . 3-42Acesso ao objeto CONTROLLERDEVICE . . . . . . . . . . . . 3-42Acesso ao objeto CST. . . . . . . . . . . . . . . . . . . . . . . . . . 3-44Acesso ao objeto DF1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-45Acesso ao objeto FAULTLOG . . . . . . . . . . . . . . . . . . . . 3-48Acesso ao objeto MESSAGE . . . . . . . . . . . . . . . . . . . . . 3-48Acesso ao objeto MODULE . . . . . . . . . . . . . . . . . . . . . 3-51Acesso ao objeto MOTIONGROUP . . . . . . . . . . . . . . . 3-52Acesso ao objeto PROGRAM . . . . . . . . . . . . . . . . . . . . 3-53Acesso ao objeto ROUTINE . . . . . . . . . . . . . . . . . . . . . 3-54Acesso ao objeto SERIALPORT . . . . . . . . . . . . . . . . . . . 3-54Acesso ao objeto TASK . . . . . . . . . . . . . . . . . . . . . . . . 3-56Acesso ao objeto WALLCLOCKTIME . . . . . . . . . . . . . . . 3-57
Exemplo de Programação GSV/SSV . . . . . . . . . . . . . . . . . . 3-58Obtenção de informações de falha . . . . . . . . . . . . . . . . 3-58Configuração de flags de habilitação e desabilitação . . . 3-59
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-5Formatação de expressões . . . . . . . . . . . . . . . . . . . . . . 4-5Determinação da seqüência de operação . . . . . . . . . . . 4-6
Igual a (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6Maior ou Igual a (GEQ). . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10Maior que (GRT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13Menor ou Igual a (LEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16Menor Que (LES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-19Limite (LIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22Máscara Igual a (MEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-27
Inserção de um valor de máscara imediato . . . . . . . . . . 4-28Diferente de (NEQ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
Publicação 1756-RM003C-PT-P - Novembro 2000
Índice iii
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 de Arquivo/Diversos(FAL, FSC, COP, FLL, AVE, SRT, STD)
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1Seleção do Modo de Operação . . . . . . . . . . . . . . . . . . . . . 7-1
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-17Operadores válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17Expressões de formatação . . . . . . . . . . . . . . . . . . . . . . 7-18Determinação da seqüência de operação . . . . . . . . . . . 7-18
Comparação e Busca de Arquivo (FSC) . . . . . . . . . . . . . . . 7-19Expressões FSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-27Operadores válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-28Formatação das expressões . . . . . . . . . . . . . . . . . . . . . 7-28Determinação da seqüência de operação . . . . . . . . . . . 7-29
Publicação 1756-RM003C-PT-P - Novembro 2000
Índice iv
Cópia de Arquivo(COP)Cópia de Arquivo Síncrona (CPS). . . . . . . . . . . . . . . . . . . . 7-30Preenchimento de Arquivo (FLL) . . . . . . . . . . . . . . . . . . . . 7-35Média de Arquivo (AVE) . . . . . . . . . . . . . . . . . . . . . . . . . . 7-39Classificação de Arquivo (SRT) . . . . . . . . . . . . . . . . . . . . . 7-43Desvio Padrão do Arquivo (STD) . . . . . . . . . . . . . . . . . . . 7-47
Capítulo 8Instruções de Deslocamento/Matriz (Arquivo)(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-11Rearme do Controle Mestre (MCR). . . . . . . . . . . . . . . . . . 10-13Desabilitação da Interrupção pelo Usuário (UID)Habilitação da Interrupção pelo Usuário (UIE) . . . . . . . . . 10-15Instrução Sempre Falsa (AFI) . . . . . . . . . . . . . . . . . . . . . . 10-17Sem Operação (NOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-18
Capítulo 11Instruções For/Break(FOR, BRK, RET)
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1For (FOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2Break (BRK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5
Publicação 1756-RM003C-PT-P - Novembro 2000
Índice v
Retorno (RET). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-6
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-RM003C-PT-P - Novembro 2000
Índice vi
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-1Códigos de Erro ASCII . . . . . . . . . . . . . . . . . . . . . . . . . 16-4
Teste ASCII Para Linha do Buffer (ABL) . . . . . . . . . . . . . . . 16-5Caracteres ASCII no Buffer (ACB) . . . . . . . . . . . . . . . . . . . 16-7Remoção de Buffer e da Fila ASCII (ACL). . . . . . . . . . . . . . 16-9Linhas ASCII Handshake (AHL) . . . . . . . . . . . . . . . . . . . . 16-11Leitura ASCII (ARD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-14Linha de Leitura ASCII (ARL) . . . . . . . . . . . . . . . . . . . . . . 16-17Anexar Leitura ASCII (AWA) . . . . . . . . . . . . . . . . . . . . . . 16-21Escrita ASCII (AWT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-24
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
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-10
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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:
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
Publicação 1756-RM003C-PT-P - Novembro 2000
1-2 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Operandos de Bloco deFunção:
Esta instrução não está disponível no bloco de função.
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:
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-RM003C-PT-P - Novembro 2000
Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-3
Execução do Bloco deFunção:
Esta instrução não está disponível no bloco de função.
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
Linguagens Disponíveis:
Lógica Ladder
Operando Tipo: Formato: Descrição:
dados binários
BOOL tag bit para ser testado
Publicação 1756-RM003C-PT-P - Novembro 2000
1-4 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Execução da LógicaLadder :
Exemplo da 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 verdadeira
saída da condição da linha é energizada quando falsa
entrada da condição da linha for verdadeira
fim
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-5
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
Execução de LógicaLadder :
Exemplo de LógicaLadder :
Linguagens Disponíveis:
Lógica Ladder
Operando Tipo: Formato: Descrição:
dados binários
BOOL tag bit para ser energizado ou desenergizado
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
1-6 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
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
Execução de LógicaLadder :
Linguagens Disponíveis:
Lógica Ladder
Operando Tipo: Formato: Descrição:
dados binários
BOOL tag bit para ser energizado
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-7
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
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-RM003C-PT-P - Novembro 2000
1-8 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.
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-RM003C-PT-P - Novembro 2000
Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-9
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-RM003C-PT-P - Novembro 2000
1-10 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
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.
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-RM003C-PT-P - Novembro 2000
Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-11
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 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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
1-12 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Execução de LógicaLadder :
Exemplo 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.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
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-13
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 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
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
entrada da
bit de
bit de saída
a instrução éexecutada
instrução é resetada durante a próxima execução de varredura
Publicação 1756-RM003C-PT-P - Novembro 2000
1-14 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Execução de LógicaLadder :
Exemplo de LógicaLadder :
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
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-15
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:
Estrutura: Parâmetros de entrada
Parâmetros de saída
Bloco de Função
Linguagens Disponíveis:
Operando Tipo: Formato: Descrição:
tag de bloco FBD_ONESHOT estrutura Estrutura OSRI
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-RM003C-PT-P - Novembro 2000
1-16 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
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-RM003C-PT-P - Novembro 2000
Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-17
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-RM003C-PT-P - Novembro 2000
1-18 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
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-RM003C-PT-P - Novembro 2000
Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) 1-19
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-RM003C-PT-P - Novembro 2000
1-20 Instruções Binárias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Notas:
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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 .DN bit .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 .EN bit .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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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 .DN bit .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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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 .DNbit .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 .EN bit .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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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
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-RM003C-PT-P - Novembro 2000
2-16 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: TON (consulte a página 2-2) 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 é 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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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
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-RM003C-PT-P - Novembro 2000
Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) 2-19
Condições de Falha: nenhuma
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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.
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-RM003C-PT-P - Novembro 2000
2-22 Instruções do Temporizador e do Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
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: 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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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 .CUbit .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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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 .CDbit .CD = 0
bit .CD = 1
entrada da condição da linha for verdadeira
valor .ACC renova
sim
não
examinar bit .UN bit .UN = 0
bit .UN = 1
bit .CD está energizado.ACC = .ACC - 1
examinar bit .OVbit .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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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.
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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-30
definir informações de status do controlador
SSV 3-30
Publicação 1756-RM003C-PT-P - Novembro 2000
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 :
Estrutura:
Linguagens Disponíveis:
Lógica Ladder
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-RM003C-PT-P - Novembro 2000
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.
.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-29 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.
Publicação 1756-RM003C-PT-P - Novembro 2000
3-4 Instruções de Entrada/Saída (MSG, GSV, SSV)
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.
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
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 é desenergizado.a 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
*O bit .EW não é energizado se a mensagem não puder ser executada.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-5
Flags de Status Aritmético: não afetados
Condições de Falha: nenhuma
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 é desenergizado.a 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.
Onde: Descrição:
*O bit .EW não é energizado se a mensagem não puder ser executada.
Publicação 1756-RM003C-PT-P - Novembro 2000
3-6 Instruções de Entrada/Saída (MSG, GSV, SSV)
Execução de Lógica Ladder:
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 .ER
bit .ER = 1
bit .ER = 0
bit .EN é desenergizado.
examinar bit .ERbit .ER = 1 bit .ER = 0 comando de
block-transfercaminho 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-7
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 desenergizadosbit .EN está energizadoexecutar pedido de mensagembit .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 desenergizadosbit .EN está energizado
bit .EN está energizado
bit .EW = 1
bit .ST = 1
Publicação 1756-RM003C-PT-P - Novembro 2000
3-8 Instruções de Entrada/Saída (MSG, GSV, SSV)
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-9
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.
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
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-RM003C-PT-P - Novembro 2000
3-10 Instruções de Entrada/Saída (MSG, GSV, SSV)
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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-11
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)
001C Arquivo do disco está protegido contra gravação ou não pode ser acessado (somente offline)
001D O Arquivo do disco está sendo usado por outra aplicativoAtualização não realizada (somente offline)
Código de erro estendido (hex):
Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
3-12 Instruções de Entrada/Saída (MSG, GSV, SSV)
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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-13
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:
Publicação 1756-RM003C-PT-P - Novembro 2000
3-14 Instruções de Entrada/Saída (MSG, GSV, SSV)
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-15
escrita da tabela de dados CIP
CIP genérico
controlador CLP-5 leitura de tipo para CLP-5 3-18
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-19
leitura de tipo para SLC
Módulo de block-transfer em uma rede de E/S Remota Universal
leitura de block-transfer 3-20
escrita de block-transfer
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-15
Voce deve especificar essa informação de configuração:
Se você especificar um tag na matriz do Logix550 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 Logix 5550 para outro.
Controlador CLP-3 leitura de tipo para CLP-3 3-21
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-22
escrita sem proteção do CLP-2
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-RM003C-PT-P - Novembro 2000
3-16 Instruções de Entrada/Saída (MSG, GSV, SSV)
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 10
Destination 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 4
Destination deixe em branco
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-17
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 4
Destination deixe em branco
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 branco
Número de Elementos 0
Destination deixe em branco
Se você quiser No campo: Insira:
Publicação 1756-RM003C-PT-P - Novembro 2000
3-18 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.
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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-19
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-RM003C-PT-P - Novembro 2000
3-20 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-21
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-RM003C-PT-P - Novembro 2000
3-22 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-23
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ímbolopara 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-RM003C-PT-P - Novembro 2000
3-24 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-25
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.
DICA 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-RM003C-PT-P - Novembro 2000
3-26 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-26
• em Ethernet, página 3-27
• para uma mensagem DH+, página 3-27
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
local chassisControlNet node 49in slot 0
remote chassisControlNet node 42in slot 0
ControlNet link42042
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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-27
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+
local chassisEthernet module in slot 1
remote chassisEthernet module in slot 2IP address 127.127.127.12
Ethernet link42043
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
local chassisDH+ = node 37
1771 chassis with PLC-5 processorDH+ = node 24
DH+ link42044
chassi local DH+ = nó 37
chassi 1771 com controlador CLP-5 DH+ = nó 24
rede DH+
Percurso: .EN = 11
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-RM003C-PT-P - Novembro 2000
3-28 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.
DICA 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-29
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-RM003C-PT-P - Novembro 2000
3-30 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 :
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.
Linguagens Disponíveis:
Lógica Ladder
Operando Tipo: Formato: Descrição:
Instrução GSV
Object class (Classe de Objeto)
nome nome da classe do objeto
Object name (nome do objeto)
nome nome do objeto específico, quando o objeto requer um nome
Attribute name (Nome do atributo)
nome atributo do objetotipo de dado depende do atributo selecionado
Destination SINTINTDINTREAL
variável destino para os dados de atributo
Instrução SSV
Object class (Classe de Objeto)
nome nome da classe do objeto
Object name (nome do objeto)
nome nome do objeto específico, quando o objeto requer um nome
Attribute name (Nome do atributo)
nome atributo do objeto
Source SINTINTDINTREAL
variável o tag contém os dados que você copiará para o atributo
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-31
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.
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 :
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-RM003C-PT-P - Novembro 2000
3-32 Instruções de Entrada/Saída (MSG, GSV, SSV)
Execução do Bloco deFunção:
Esta instrução não está disponível no bloco de função.
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-33
CONTROLLER 3-42
CONTROLLERDEVICE 3-42
CST 3-44
DF1 3-45
FAULTLOG 3-48
MESSAGE 3-48
MODULE 3-51
MOTIONGROUP 3-52
PROGRAM 3-53
ROUTINE 3-54
SERIALPORT 3-54
TASK 3-56
WALLCLOCKTIME 3-57
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-33
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
Publicação 1756-RM003C-PT-P - Novembro 2000
3-34 Instruções de Entrada/Saída (MSG, GSV, SSV)
*FrictionCompensation REAL GSVSSV
O nível de saída fixa usado para compensar a fricção estática.
*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
Atributo: Tipo de Dados:
Instrução: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-35
*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.
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.
Atributo: Tipo de Dados:
Instrução: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
3-36 Instruções de Entrada/Saída (MSG, GSV, SSV)
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.
InterpolatedActualPosition REAL GSV Para capturas de posição cronometradas, este atributo fornece a posição real do eixo interpolado.
• A posição é especificada em unidades de posição e baseia-se no valor do atributo InterpolationTime.
• Para interpolar posição do eixo real, use a instrução SSV para definir o atributo InterpolationTime.
InterpolatedCommandPosition REAL GSV Para capturas de posição cronometradas, este atributo fornece a posição do eixo de comando interpolado.
• A posição é especificada em unidades de posição e baseia-se no valor do atributo InterpolationTime.
• Para interpolar posição do eixo de comando, use a instrução SSV para definir o atributo InterpolationTime.
InterpolationTime DINT GSVSSV
Utilize este atributo para fornecer referência para capturas de posição cronometradas.
• Para interpolar uma posição, use uma instrução SSV para definir o atributo InterpolationTime. O controlador atualizará então os seguintes atributos:
• InterpolatedActualPosition
• InterpolatedCommandPosition
• Para fornecer um valor para InterpolationTime, pode-se usar qualquer evento que produza um timestamp CST, como, por exemplo:
• atributo RegistrationTime
• timestamp de ma entrada digital
• O atributo InterpolationTime utiliza somente os 32 bits inferiores de um timestamp CST
MapTableInstance DINT GSV O exemplo de mapa de E/S do servomódulo.
MasterOffset REAL GSV Deslocamento de posição que é atualmente aplicado ao mestre de um cam 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.
Atributo: Tipo de Dados:
Instrução: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-37
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
MotionStatusBits DINT GSV Os bits de status de movimento para o eixo. (Na estrutura AXIS, este é o membro MotionStatus.)Bit: Nome do Bit: Significado:0 AccelStatus aceleração1 DecelStatus desaceleração2 MoveStatus movimento3 JogStatus jog4 GearingStatus engrenagem5 HomingStatus posição inicial6 ClutchStatus embreagem7 AxisHomedStatus status da posição inicial
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.
Atributo: Tipo de Dados:
Instrução: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
3-38 Instruções de Entrada/Saída (MSG, GSV, SSV)
RegistrationTime DINT GSV Pode-se usar este atributo para fornecer um timestamp para capturas de posição cronometradas.
• O atributo RegistrationTime contém os 32 bits inferiores do timestamp CST de um evento de registro de eixo.
• O timestamp CST é medido em microssegundos.• Para interpolar uma posição baseada em um evento de registro de
eixo:a. Use uma instrução GSV para obter o valor do atributo
RegistrationTime.b. Use uma instrução SSV para definir o atributo InterpolationTime
de acordo com o valor do atributo RegistrationTime
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ção6 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
Atributo: Tipo de Dados:
Instrução: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-39
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.
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 deslocamento mestre quando a última instrução Motion Axis Move (MAM) executar um dos seguintes tipos de movimento.
• AbsoluteMasterOffset
• IncrementalMasterOffsetEspecificado 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.
Atributo: Tipo de Dados:
Instrução: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
3-40 Instruções de Entrada/Saída (MSG, GSV, SSV)
StrobeMasterOffset REAL GSV O deslocamento mestre quando a última instrução Motion Group Strobe Position (MGSP) for 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).
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.
Atributo: Tipo de Dados:
Instrução: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-41
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-RM003C-PT-P - Novembro 2000
3-42 Instruções de Entrada/Saída (MSG, GSV, SSV)
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 de caracteres ASCII que identifica o número de catálogo do controlador e da 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 controladorLogix5550 = 3
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-43
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-RM003C-PT-P - Novembro 2000
3-44 Instruções de Entrada/Saída (MSG, GSV, SSV)
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 energizadosA 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-45
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 NAKnenhuma 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-RM003C-PT-P - Novembro 2000
3-46 Instruções de Entrada/Saída (MSG, GSV, SSV)
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 3000 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-47
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-RM003C-PT-P - Novembro 2000
3-48 Instruções de Entrada/Saída (MSG, GSV, SSV)
Acesso ao objeto FAULTLOG
O objeto FAULTLOG fornece informações de falha sobre o controlador.
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.
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-49
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.
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).
Atributo: Tipo de Dados:
Instrução: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
3-50 Instruções de Entrada/Saída (MSG, GSV, SSV)
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-51
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 oobjeto MODULE sai deste estado periodicamente ao tentarreconectar-se ao módulo. Ao invés disso, verifiqueRunning 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 atributosFaultCode e FaultInfo sã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õespara 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 processode 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-RM003C-PT-P - Novembro 2000
3-52 Instruções de Entrada/Saída (MSG, GSV, SSV)
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ção I/O Configurationdo 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-53
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-RM003C-PT-P - Novembro 2000
3-54 Instruções de Entrada/Saída (MSG, GSV, SSV)
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.
Acesso ao objeto SERIALPORT
O objeto SERIALPORT fornece uma interface com a porta de comunicação serial.
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.
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-55
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:
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.
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)
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-RM003C-PT-P - Novembro 2000
3-56 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-57
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 do CurrentValue do objeto CST (tempo de sistema coordenado, consulte a página3-44). 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-RM003C-PT-P - Novembro 2000
3-58 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-RM003C-PT-P - Novembro 2000
Instruções de Entrada/Saída (MSG, GSV, SSV) 3-59
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-RM003C-PT-P - Novembro 2000
3-60 Instruções de Entrada/Saída (MSG, GSV, SSV)
Notas:
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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-6
testar se um valor é maior ou igual a um segundo valor
GEQ 4-10
testar se um valor é maior do que um segundo valor
GRT 4-13
testar se um valor é menor ou igual a um segundo valor
LEQ 4-16
testar se um valor é menor do que um segundo valor
LES 4-19
testar se um valor está entre outros dois valores
LIM 4-22
passar dois valores por uma máscara e testar se os mesmos são iguais
MEQ 4-27
testar se um valor não é igual a um segundo valor
NEQ 4-32
Publicação 1756-RM003C-PT-P - Novembro 2000
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 (por exemplo, +, -, *, /) 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-RM003C-PT-P - Novembro 2000
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:
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.
fim
avalie a expressão
a expressão é verdadeira
a expressão é falsa
a saída da condição da linha é energizada quando verdadeira
a saída da condição da linha é energizada quando falsa
entrada se a 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.
Publicação 1756-RM003C-PT-P - Novembro 2000
4-4 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
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:
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.
Se a expressão: A saída da condição da linha é definida em:
diferente de zero verdadeira
zero falsa
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-5
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
= 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-RM003C-PT-P - Novembro 2000
4-6 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
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.
Igual a (EQU)
A instrução EQU testa se a Fonte A é igual à Fonte B.
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
Bloco de Função
Linguagens Disponíveis:
Lógica Ladder
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-7
Operandos de LógicaLadder:
Operandos do Bloco deFunção:
Estrutura: Parâmetros de entrada
Parâmetros de saída
Operando Tipo: Formato: Descrição:
Source A SINTINTDINTREAL
imediatotag
valor a ser testado em relação a 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 testado em relação a Source A (Fonte A)
Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.
Operando Tipo: Formato: Descrição:
tag de bloco FBD_COMPARE estrutura estrutura EQU
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 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-RM003C-PT-P - Novembro 2000
4-8 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Descrição: Os valores REAL raramente são absolutamente iguais. Caso seja necessário determinar a igualdade de dois valores REAL, use a instrução LIM.
Flags de Status Aritmético: nã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
fim
Fonte A = Fonte B;sim
não
a saída da condição da linha é energizada quando verdadeira
a saída da condição da linha é energizada quando falsa
Se o value_1 é igual ao value_2, a saída da condição da linha é definida como verdadeira
Publicação 1756-RM003C-PT-P - Novembro 2000
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 é desenergizado EnableOut é desenergizado.
EnableIn é energizado A instrução é executada.EnableOut é 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-RM003C-PT-P - Novembro 2000
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 a Fonte A é maior ou igual à Fonte B.
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 testado em relação a 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 testado em relação a Source A (Fonte A)
Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.
Operando Tipo: Formato: Descrição:
tag de bloco FBD_COMPARE estrutura estrutura GEQ
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 comparar com SourceB.válido = qualquer flutuante
SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-11
Parâmetros de saída
Descrição: A instrução GEQ testa se a Fonte A é maior ou igual à Fonte B.
Flags de Status Aritmético: nã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 BOOL Resultado da instrução. Isto é equivalente à saída da condição da linha para a instrução GEQ de lógica ladder.
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
fim
Source A ≥ Source Bsim
não
a saída da condição da linha é energizada quando verdadeira
a saída da condição da linha é energizada quando falsa
Publicação 1756-RM003C-PT-P - Novembro 2000
4-12 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Exemplo do Bloco deFunção:
Se o value_1 for menor ou igual ao value_2, a saída da condição da linha é definida como verdadeira
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.
Os valores de saída de function_block_A e function_block_B se tornam os valores de entrada 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-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-13
Maior que (GRT)
A instrução GRT testa se a Fonte A é maior ou igual à Fonte B.
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 testado em relação a 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 testado em relação a Source A (Fonte A)
Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.
Operando Tipo: Formato: Descrição:
tag do bloco FBD_COMPARE estrutura estrutura GRT
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 comparar com SourceB.válido = qualquer flutuante
SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante
Publicação 1756-RM003C-PT-P - Novembro 2000
4-14 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Parâmetros de saída
Descrição: A instrução GRT testa se SourceA é maior que SourceB.
Flags de Status Aritmético: nã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 BOOL Resultado da instrução. Isto equivale à saída da condição da linha para instrução GRT de lógica ladder.
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
fim
Fonte A > Fonte B;sim
não
a saída da condição da linha é energizada quando verdadeira
a saída da condição da linha é energizada quando falsa
Se o value_1 for maior do que o value_2, a instrução é verdadeira.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-15
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.
Os valores de 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-RM003C-PT-P - Novembro 2000
4-16 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 a Fonte A é menor ou igual à Fonte B.
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 testado em relação a 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 testado em relação a Source A (Fonte A)
Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.
Operando Tipo: Formato: Descrição:
tag do bloco FBD_COMPARE estrutura estrutura LEQ
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 comparar com SourceB.válido = qualquer flutuante
SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-17
Parâmetros de saída
Descrição: A instrução LEQ testa se a Fonte A é menor ou igual à Fonte B.
Flags de Status Aritmético: nã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 BOOL Resultado da instrução. Isto equivale à saída da condição da saída para a instrução LEQ de lógica ladder.
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
fim
Fonte A ≤ Fonte Bsim
não
a saída da condição da linha é energizada quando verdadeira
a saída da condição da linha é energizada quando falsa
Publicação 1756-RM003C-PT-P - Novembro 2000
4-18 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Exemplo do Bloco deFunção:
Se o value_1 é menor do que ou igual ao value_2, a saída da condição da linha é definida como verdadeira
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.
Os valores de saída de function_block_A e function_block_B se tornam os 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-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-19
Menor Que (LES)
A instrução LES testa se a Fonte A é menor do que a Fonte B.
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 testado em relação a 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 testado em relação a Source A (Fonte A)
Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.
Operando Tipo: Formato: Descrição:
tag do bloco FBD_COMPARE estrutura estrutura LES
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 comparar com SourceB.válido = qualquer flutuante
SourceB REAL Valor para comparar com SourceA.válido = qualquer flutuante
Publicação 1756-RM003C-PT-P - Novembro 2000
4-20 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Parâmetros de saída
Descrição: A instrução LES testa se a Fonte A é menor do que a Fonte B.
Flags de Status Aritmético: nã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 BOOL Resultado da instrução. Isto equivale à saída da condição da linha da instrução LES de lógica ladder.
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
fim
Fonte A <Fonte Bsim
não
a saída da condição da linha é energizada quando verdadeira
a saída da condição da linha é energizada quando falsa
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-21
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Exemplo do Bloco deFunção
Se o value_1 for menor do que o value_2, a saída da condição da linha é definida como verdadeira
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 é desenergizado
EnableIn é verdadeiro A instrução é executadaEnableOut é 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. 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-RM003C-PT-P - Novembro 2000
4-22 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:
Bloco de Função
Linguagens Disponíveis:
Lógica Ladder
Operando Tipo: Formato: Descrição:
Limite Inferior SINTINTDINTREAL
imediatotag
valor do limite inferior
Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.
Test (Teste) SINTINTDINTREAL
imediatotag
valor de acordo com o teste
Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.
Limite Superior
SINTINTDINTREAL
imediatotag
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 do bloco FBD_LIMIT estrutura estrutura LIM
Publicação 1756-RM003C-PT-P - Novembro 2000
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 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 é 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.
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
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 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 dentro dos 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-RM003C-PT-P - Novembro 2000
4-24 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 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
fim
avalie o limite
a comparação é verdadeira
a comparação é falsa
a saída da condição da linha é energizada quando verdadeira
a saída da condição da linha é energizada quando falsa
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-25
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 é desenergizado.
EnableIn é verdadeiro A instrução é executada.EnableOut é energizado.
Publicação 1756-RM003C-PT-P - Novembro 2000
4-26 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-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-27
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:
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 do bloco FBD_MASK_EQUAL estrutura estrutura MEQ
Publicação 1756-RM003C-PT-P - Novembro 2000
4-28 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Estrutura: Parâmetros de entrada
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 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
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.
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 DINT Valor para testar com Compare.válido = qualquer inteiro
Mask DINT Define quais bits bloquear (máscara).válido = qualquer inteiro
Compare DINT Comparação de valor.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 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-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-29
Flags de Status Aritmético: não afetados
Condições de Falha: nenhuma
Execução 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
fim
fonte mascarada = comparação
mascarada
sim
não
a saída da condição da linha é energizada quando verdadeira
a saída da condição da linha é energizada quando falsa
Publicação 1756-RM003C-PT-P - Novembro 2000
4-30 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Exemplo de LógicaLadder:
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-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 é executada.EnableOut é energizado
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
Fonte 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
masked Source 0 1 0 1 0 1 0 1 1 1 1 1 x x x x masked Compare 0 1 0 1 0 1 0 1 1 1 1 1 x x x x
Publicação 1756-RM003C-PT-P - Novembro 2000
4-32 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Diferente de (NEQ)
A instrução NEQ testa se a Fonte A é diferente da Fonte B.
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 testado em relação a 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 testado em relação a Source A (Fonte A)
Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.
Operando Tipo: Formato: Descrição:
tag do bloco FBD_COMPARE estrutura estrutura NEQ
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 testar com SourceB.válido = qualquer flutuante
SourceB REAL Valor para testar com SourceA.válido = qualquer flutuante
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-33
Parâmetros de saída
Descrição: A instrução NEQ testa se a Fonte A é diferente da Fonte B.
Flags de Status Aritmético: nã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 BOOL Resultado da instrução. Isto equivale à saída da condição da linha para a instrução NEQ de lógica ladder.
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
fim
Fonte A = Fonte B;sim
não
a saída da condição da linha é energizada quando verdadeira
a saída da condição da linha é energizada quando falsa
Se o value_1 não for igual ao value_2, a saída da condição da linha é definida como verdadeira
Publicação 1756-RM003C-PT-P - Novembro 2000
4-34 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
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.
Os valores da saída de function_block_A e function_block_B se tornam os 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-RM003C-PT-P - Novembro 2000
Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) 4-35
Notas:
Publicação 1756-RM003C-PT-P - Novembro 2000
4-36 Instruções de Comparação (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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:
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-7
Estrutura: Parâmetros de entrada
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:
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
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
5-8 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Exemplo do Bloco deFunção:
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.
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-RM003C-PT-P - Novembro 2000
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:
Bloco de Funçãogica 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
Publicação 1756-RM003C-PT-P - Novembro 2000
5-10 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)
Estrutura: Parâmetros de entrada
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:
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
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-11
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Exemplo do Bloco deFunção:
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.
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-RM003C-PT-P - Novembro 2000
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:
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-13
Estrutura: Parâmetros de entrada
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:
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
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
5-14 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)
Exemplo de LógicaLadder:
Execução de Bloco deFunção:
Exemplo do Bloco deFunção:
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.
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-RM003C-PT-P - Novembro 2000
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:
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
Publicação 1756-RM003C-PT-P - Novembro 2000
5-16 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)
Estrutura: Parâmetros de entrada
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
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-17
• 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 Logix5000 Controllers Common Procedures Programming Manual, 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:
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
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
5-18 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Exemplo do Bloco deFunção:
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.
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-RM003C-PT-P - Novembro 2000
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:
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
Publicação 1756-RM003C-PT-P - Novembro 2000
5-20 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)
Estrutura: Parâmetros de entrada
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 Logix5000 Controllers Common Procedures Programming Manual, publicação 1756-PM001.
Flags de Status Aritmético: Os flags de status aritmético são afetados.
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
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)
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-21
Condições de Falha:
Execução de LógicaLadder:
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
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.
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
5-24 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 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:
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.
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=
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-25
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Exemplo do Bloco deFunção:
Quando habilitada, a instrução SQR calcula a raiz quadrada de value_1 e coloca o resultado em sqr_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.
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-RM003C-PT-P - Novembro 2000
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-27
Parâmetros de saída
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:
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 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.
Publicação 1756-RM003C-PT-P - Novembro 2000
5-28 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)
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 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-RM003C-PT-P - Novembro 2000
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
5-30 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 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:
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 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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS) 5-31
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 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-RM003C-PT-P - Novembro 2000
5-32 Instruções Matemáticas/Cálculo (CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)
Notas:
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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:
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-RM003C-PT-P - Novembro 2000
Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-9
Exemplo do Bloco deFunção:
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-RM003C-PT-P - Novembro 2000
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.
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-RM003C-PT-P - Novembro 2000
Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-11
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 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
Publicação 1756-RM003C-PT-P - Novembro 2000
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.
Quando habilitada, a instrução BTD move 10 bits de value_1 para value_2.
exemplo 2
Bit Source
Bit de Destino
Publicação 1756-RM003C-PT-P - Novembro 2000
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
6-14 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 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:
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.
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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:
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-RM003C-PT-P - Novembro 2000
6-20 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 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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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:
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT) 6-23
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_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
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.
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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
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-RM003C-PT-P - Novembro 2000
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:
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
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-RM003C-PT-P - Novembro 2000
6-32 Instruções de Movimentação/Lógica (MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)
Notas:
1 Publicação 1756-RM003C-PT-P - Novembro 2000
Capítulo 7
Instruções de Arquivo/Diversos(FAL, FSC, COP, FLL, AVE, SRT, STD)
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.
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
Se você quiser: Use esta instrução: Consulte pá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-19
copiar os conteúdos de uma matriz para outra COP 7-30
copiar os conteúdos de uma matriz para outra sem interrupção
CPS 7-35
preencher uma matriz com dados específicos FLL 7-35
calcular a média de uma matriz de valores AVE 7-39
classificar uma dimensão de dados da matriz em ordem crescente
SRT 7-43
calcular o desvio padrão de uma matriz de valores STD 7-47
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)
Publicação 1756-RM003C-PT-P - Novembro 2000
7-2 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
Modo All (Todos)
No modo All, todos os elementos especificados na matriz são operados antes de prosseguir para a próxima instrução. A operação começa quando a entrada da condição da linha da instrução passa de falsa para verdadeira. O valor de posição (.POS) na estrutura de controle indica o elemento na matriz que a instrução está usando atualmente. A operação pára quando o valor .POS for igual ao valor .LEN.
O diagrama de temporização a seguir mostra a relação entre os bits de status e a operação da instrução. Quando a execução da instrução estiver completa, o bit .DN será energizado. O bit .DN, o bit .EN e o valor .POS são zerados quando a entrada da condição da linha se torna falsa. Somente após isto é que outra execução da instrução pode ser disparada por uma transição de falsa para verdadeira da entrada da condição da linha.
Matriz de dados uma varredura
16639
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
40010
nenhuma execução ocorre
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 7-3
Modo Numerical (numérico)
O modo Numerical distribui a operação de matriz em várias varreduras. Esse modo é útil quando se trabalha com dados críticos não temporizados ou um grande volume de dados. É necessário inserir o número de elementos para operar para cada varredura, o que mantém o tempo de varredura menor.
A execução é disparada quando a entrada da condição da linha passa de falsa para verdadeira. Após o disparo, a instrução é executada cada vez que se realiza a varredura na mesma para o número de varreduras necessárias para completar a operação em toda a matriz. Após o disparo, a entrada da condição da linha pode se alterar repetidamente sem interromper a execução da instrução.
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
Publicação 1756-RM003C-PT-P - Novembro 2000
7-4 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
O diagrama de temporização a seguir mostra a relação entre os bits de status e a operação da instrução. Quando a execução da instrução estiver completa, o bit .DN será energizado.
Se a entrada da condição da linha se tornar verdadeira na conclusão, os bits .DN e .ER são energizados até que a entrada da condição da linha se torne falsa. Quando a entrada da condição da linha se torna falsa, esses bits são zerados e o valor .POS é desenergizado.
Se a entrada da condição da linha for falsa na conclusão, o bit .EN será zerado imediatamente. Uma varredura depois que o bit .EN é desenergizado, o bit .DN e o valor .POS são zerados.
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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 7-5
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 verdadeira durante mais de uma varredura, a instrução executa somente durante a primeira varredura.
16643
1a. instrução habilitada2a. instrução habilitada3a. instrução habilitada
última instrução habilitada
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-RM003C-PT-P - Novembro 2000
7-6 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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.
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
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.
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-RM003C-PT-P - Novembro 2000
7-8 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
Descrição: A instrução FAL realiza as mesmas operações nas matrizes conforme a instrução CPT realiza as operações dos elementos.
Os exemplos que começam na página 7-14 mostram como se usa o valor .POS para passar por uma matriz. Se o subscrito na expressão de Destination está fora da faixa, a instrução FAL gera uma falha grave (tipo 4, código 20).
Flags de Status Aritmético: Os flags de status aritmético são afetados.
Condições de Falha:
Uma falha grave ocorrerá se: Tipo de falha: Código de falha:
subscrito está fora da faixa 4 20
.POS < 0 ou .LEN < 0 4 21
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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 é desenergizado.bit .ER é desenergizado.bit .DN é
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-13
Publicação 1756-RM003C-PT-P - Novembro 2000
7-10 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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 é energizado.bit .EN é energizado .POS = .POS + 1
examinar bit .ERbit .ER = 0
bit .ER = 1
bit .DN é energizado.bit .EN é energizado modo
INCmodo ALL
modo numérico
comum
página 7-13
página 7-11 página 7-12
.LEN < 0 ou
.POS < 0sim
não
falha grave
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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-10
Publicação 1756-RM003C-PT-P - Novembro 2000
7-12 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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-10
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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
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 - .POS.POS = .POS -1
modo ≥loop_count
não
bit .EN é energizadoloop_count = mode
sim
página 7-10
Publicação 1756-RM003C-PT-P - Novembro 2000
7-14 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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 o value_1 nas primeiras 10 posições da segunda dimensão de array_2.
Expressãoarray_2[control_2.pos]
Destinoarray_1[control_2.pos]
Expressãovalue_1
Destinoarray_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]
Destinovalue_1
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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]
Destinoarray_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
Destinoarray_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
Destinoarray_3[control_1.pos]
Publicação 1756-RM003C-PT-P - Novembro 2000
7-16 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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]
Destinovalue_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]
Destinovalue_1
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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-RM003C-PT-P - Novembro 2000
7-18 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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:
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
Expression 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.
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-RM003C-PT-P - Novembro 2000
7-20 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
Operandos do Bloco deFunção:
Esta instrução não está disponível no bloco de função.
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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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 é desenergizado.bit .ER é desenergizado.bit .DN é desenergizado.valor .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 < 0sim
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-13
Publicação 1756-RM003C-PT-P - Novembro 2000
7-22 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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 .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 é energizado.bit .IN é energizado
.POS = .LENnão
sim
bit .DN é energizado.bit .EN é energizado .POS = .POS + 1
examinar bit .ERbit .ER = 0
bit .ER = 1
bit .DN é energizado.bit .EN é energizado modo
INCmodo ALL
modo numérico
comum
página 7-25
página 7-23 página 7-24
.LEN < 0 ou
.POS < 0sim
não
falha grave
examinar bit .DN
bit .DN = 1
bit .IN = 0
bit .DN = 0
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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-22
Publicação 1756-RM003C-PT-P - Novembro 2000
7-24 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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-22
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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-22
Publicação 1756-RM003C-PT-P - Novembro 2000
7-26 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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-RM003C-PT-P - Novembro 2000
7-28 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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-RM003C-PT-P - Novembro 2000
7-30 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
Cópia de Arquivo(COP)Cópia de Arquivo Síncrona (CPS) A instrução COP copia o(s) valor (es) de 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 alterar os dados de origem ou de destino:
O número de bytes copiados é:
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 imediatotag
número de elementos em Destination a serem copiados
Se a origem ou o destino for: E você quiser: Selecione: Notas:
• tag produzido• tag consumido• dados de E/S• dados que possam ser
sobrescritos por outra tarefa
impedir que os dados sejam alterados durante a operação de cópia
CPS • As tarefas que tentarem interromper uma instrução CPS serão retardadas até que a instrução tenha sido concluída.
• Para estimar o tempo de execução da instrução CPS, consulte o ControlLogix System User Manual, publication 1756-UM001.
permitir que os dados sejam alterados durante a operação de cópia
COP
nenhuma acima COP
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 7-31
Contagem de Byte = Comprimento ∗ (número de bytes em tipos de dados em Destination)
As instruções COP e CPS operam na memória de dados contínua e realizam uma cópia da memória direta byte-a-byte, que requer uma compreensão do layout da memória do controlador.
As instruções COP e CPS não gravam logo após o final da matriz. Se o comprimento 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
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-RM003C-PT-P - Novembro 2000
7-32 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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 + (Comprimento ∗ 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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 7-33
Exemplo de LógicaLadder:
A matriz project_data (100 elementos) armazena uma variedade de valores que se alteram em períodos diferentes na aplicação. Para enviar uma imagem completa de project_data em um determinado período de tempo para outro controlador, a instrução CPS copia project_data to produced_array.
• Enquanto a instrução CPS copia os dados, nenhuma atualização de I/O ou outra tarefa pode alterar os dados.
• A tag produced_array produz os dados em uma rede ControlNet para consumo de outros controladores.
• Para usar a mesma imagem de dados (ou seja, uma cópia sincronizada dos dados), o controlador (ou controladores) de consumo utiliza uma instrução CPS para copiar os dados da tag consumida para outra tag, para uso na aplicação.
Local:0:I.Data armazena os dados de entrada para a rede DeviceNet que estiver 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 em input_buffer.
• Enquanto a instrução CPS copia os dados, nenhuma atualização de I/O pode alterar esses dados.
Quando a aplicação é executada, ela utiliza para suas entradas os dados de entrada de input_buffer.
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-RM003C-PT-P - Novembro 2000
7-34 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
Execução do Bloco deFunção:
Esta instrução não está disponível no bloco de função.
array_timer[0]
array_timer[1]
array_timer[2]
array_timer[3]
array_timer[4]
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
Primeiro a instrução copia os valores timer[0] em timer[1]
Então, a instrução copia os valores timer[1] em timer[2]
Depois, a instrução copia os valores timer[2] em timer[3]
Então, a instrução copia os valores timer[3] em timer[4]
Finalmente, a instrução copia os valores timer[9] em timer[10]
array_timer[9]
array_timer[10]
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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 = Comprimento ∗ (número de bytes em tipos de dados em Destination)
A instrução FLL opera na memória de dados contínua.
A instrução FLL não gravará logo após o final de uma matriz. Se o comprimento for maior do que o número total de elementos na matriz Destination, a instrução COP pára no final da matriz. Nenhuma falha grave é gerada.
Linguagens Disponíveis:
Lógica Ladder
Operando Tipo: Formato: Descrição:
Source SINTINTDINTREAL
imediatotag
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-RM003C-PT-P - Novembro 2000
7-36 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
Para obter resultados melhores, Source e Destination devem ser do mesmo tipo. Se você quiser preencher uma estrutura, use a instrução COP (consulte exemplo 3 na página 7-34). 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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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 + (Comprimento ∗ 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-RM003C-PT-P - Novembro 2000
7-38 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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-RM003C-PT-P - Novembro 2000
7-40 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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 .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 é desenergizado.bit .ER é desenergizado.bit .DN é desenergizado.valor .POS é desenergizado
Publicação 1756-RM003C-PT-P - Novembro 2000
7-42 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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
AVE19 14 9 4+ + +
4------------------------------------- 46
4------ 11.5= = =
dint_ave = 12
subscritos
exemplo 2
array_dint is 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
AVE5 4 3 2 1+ + + +
5---------------------------------------- 15
5------ 3= = =
subscritos
dint_ave = 3
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 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.
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
7-44 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
Descrição: A instrução SRT classifica um conjunto de valores em uma dimensão (Dim to vary) da Matriz em ordem crescente.
Flags de Status Aritmético: Os flags de status aritmético são afetados.
Condições de Falha:
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.
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 7-45
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 SRT classifica os elementos especificados da matriz em ordem crescente.
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 é desenergizado.bit .ER é desenergizado.bit .DN é desenergizado.valor .POS é desenergizado
Publicação 1756-RM003C-PT-P - Novembro 2000
7-46 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 7-47
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-RM003C-PT-P - Novembro 2000
7-48 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
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 =
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-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 7-49
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 .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 é desenergizado.bit .ER é desenergizado.bit .DN é desenergizado.valor .POS é desenergizado
Publicação 1756-RM003C-PT-P - Novembro 2000
7-50 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
Exemplo de LógicaLadder:
Execução de 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–⟨ ⟩2 11 8.5–⟨ ⟩2 6 8.5–⟨ ⟩2 1 8.5–⟨ ⟩2+ + +4 1–⟨ ⟩
--------------------------------------------------------------------------------------------------------------------------- 6.454972= =
AVE16 11 6 1+ + +
4------------------------------------- 34
4------ 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–⟨ ⟩2 19 18–⟨ ⟩2 18 18–⟨ ⟩2 17 18–⟨ ⟩2 16 18–⟨ ⟩2+ + + +5 1–⟨ ⟩
------------------------------------------------------------------------------------------------------------------------------------------------------------ 1.581139= =
AVE20 19 18 17 16+ + + +
5------------------------------------------------------- 90
5------ 18= = =
subscritos
real_std = 1,581139
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD) 7-51
Notas:
Publicação 1756-RM003C-PT-P - Novembro 2000
7-52 Instruções de Arquivo/Diversos (FAL, FSC, COP, FLL, AVE, SRT, STD)
1 Publicação 1756-RM003C-PT-P - Novembro 2000
Capítulo 8
Instruções de Deslocamento/Matriz (Arquivo)(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, 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
Publicação 1756-RM003C-PT-P - Novembro 2000
8-2 Instruções de Deslocamento/Matriz (Arquivo) (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:
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
Linguagens Disponíveis:
Lógica Ladder
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-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-3
Execução do Bloco deFunção:
Esta instrução não está disponível no bloco de função.
Execução de LógicaLadder:
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
8-4 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
Exemplo de LógicaLadder:
Condição: Ação:
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 para a esquerda
bit .EN é energizado
saída da condição da linha é definida como verdadeira
bit .DN é energizado..POS = .LEN
.LEN = 0sim
não
.LEN < 0sim
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
exemplo 1
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-5
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.
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-RM003C-PT-P - Novembro 2000
8-6 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
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:
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
Linguagens Disponíveis:
Lógica Ladder
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 em 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-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-7
Execução do Bloco deFunção:
Esta instrução não está disponível no bloco de função.
Execução de LógicaLadder:
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
8-8 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
Exemplo de LógicaLadder:
Condição: Ação:
entrada da condição da linha for verdadeira
examinar bit .ENbit .EN = 1
bit .EN = 0
fim
bit .DN é energizado.
deslocar matriz uma posição para a esquerda
bit .EN é energizado
saída da condição da linha é definida como verdadeira
bit .DN é energizado..POS = .LEN
.LEN = 0sim
não
.LEN < 0sim
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
exemplo 1
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-9
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.
esses bits foram deslocados à direita0
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-RM003C-PT-P - Novembro 2000
8-10 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
Carga FIFO (FFL)
A instrução FFL copia o valor Source para FIFO.
Operandos de LógicaLadder:
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
Operando Tipo: Formato: Descrição:
Source SINTINTDINTREALestrutura
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 SINTINTDINTREALestrutura
tag da matriz
FIFO a ser modificadoespecifique o primeiro elemento de FIFOnão use CONTROL.POS em 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-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-11
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-RM003C-PT-P - Novembro 2000
8-12 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
Execução de LógicaLadder:
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 < 0 sim
.EM é desenergizado.bit .DN é desenergizado.
não
.POS = 0sim
não
.EM é energizado
.POS ≥ .LENsim
não
.DN é energizado
.EM é energizado
.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-13
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 < 0 sim
não
.POS < 0sim
.EM é desenergizado.bit .DN é desenergizado.
não
.POS = 0 sim
não
.EM é energizado
.POS ≥ .LENsim
não
.DN é energizado
.EM é energizado
.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
8-14 Instruções de Deslocamento/Matriz (Arquivo) (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 é energizado
bit .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 é desenergizado.bit .DN é desenergizado.
.POS = 0sim
não
bit .EM é energizado
.POS ≥ .LENsim
não
bit .DN é energizado.
bit .EM é energizado.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-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 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-RM003C-PT-P - Novembro 2000
8-16 Instruções de Deslocamento/Matriz (Arquivo) (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:
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
Operando Tipo: Formato: Descrição:
FIFO SINTINTDINTREALestrutura
tag da matriz
FIFO a ser modificadoespecifique o primeiro elemento de FIFOnão use CONTROL.POS em subscrito
Destination SINTINTDINTREALestrutura
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-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-17
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.
Se FIFO for um tipo de dados DINT, Destination deverá ser do tipo DINT; se FIFO for um tipo de dados REAL, Destination deverá ser um tipo de dados REAL.
Quando habilitada, a instrução FFU descarrega os dados do primeiro elemento de FIFO e 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-RM003C-PT-P - Novembro 2000
8-18 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
Execução de LógicaLadder:
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 é desenergizado.bit .DN é desenergizado.
não
.POS = 0sim
não
.EM é energizado
.POS ≥ .LEN sim
não
.DN é energizado
.EM é energizado
.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-19
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 < 0 sim
não
.POS < 0sim
.EM é desenergizado.bit .DN é desenergizado.
não
.POS = 0 sim
não
.EM é energizado
.POS ≥ .LENsim
não
.DN é energizado
.EM é energizado
.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
8-20 Instruções de Deslocamento/Matriz (Arquivo) (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 é desenergizado.bit .DN é
.LEN > tamanho da
sim
não
falha grave
.POS ≤ 1sim
não
bit .EM é energizado
.LEN < 0sim
não
.POS < 0sim
não
bit .EM é desenergizado.bit .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-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-21
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 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-RM003C-PT-P - Novembro 2000
8-22 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
Carga LIFO (LFL)
A instrução LFL copia o valor Source para LIFO.
Operandos de LógicaLadder:
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
Operando Tipo: Formato: Descrição:
Source SINTINTDINTREALestrutura
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 SINTINTDINTREALestrutura
tag da matriz
LIFO a ser modificadoespecifique o primeiro elemento de LIFOnão use CONTROL.POS em 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-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-23
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-RM003C-PT-P - Novembro 2000
8-24 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
Execução de LógicaLadder:
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 < 0 sim
.EM é desenergizado.bit .DN é desenergizado.
não
.POS = 0sim
não
.EM é energizado
.POS ≥ .LEN sim
não
.DN é energizado
.EM é energizado
.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-25
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 < 0 sim
não
.POS < 0sim
.EM é desenergizado.bit .DN é desenergizado.
não
.POS = 0 sim
não
.EM é energizado
.POS ≥ .LENsim
não
.DN é energizado
.EM é energizado
.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
8-26 Instruções de Deslocamento/Matriz (Arquivo) (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 é energizado
bit .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 é desenergizado.bit .DN é desenergizado.
.POS = 0sim
não
bit .EM é energizado
.POS ≥ .LENsim
não
bit .DN é energizado.
bit .EM é energizado.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-27
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 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-RM003C-PT-P - Novembro 2000
8-28 Instruções de Deslocamento/Matriz (Arquivo) (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:
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
Operando Tipo: Formato: Descrição:
LIFO SINTINTDINTREALestrutura
tag da matriz
LIFO a ser modificadoespecifique o primeiro elemento de LIFOnão use CONTROL.POS em subscrito
Destination SINTINTDINTREALestrutura
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-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-29
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.
Se LIFO for um tipo de dados DINT, Destination deverá ser do tipo DINT; se LIFO for um tipo de dados REAL, Destination deverá ser um tipo de dados REAL.
Quando habilitada, a instrução LFU descarrega o valor em .POS de LIFO e o coloca em Destination. A instrução descarrega um valor e o substitui com 0 cada vez que a instrução está habilitada até que LIFO fique vazia. Se LIFO estiver vazia, LFU retorna 0 para Destination.
A instrução LFU opera na memória de dados contínua.
Flags de Status Aritmético: não afetados
Condições de Falha:
Uma falha grave ocorrerá se: Tipo de falha: Código de falha:
Length > LIFO tamanho da matriz 4 20
Publicação 1756-RM003C-PT-P - Novembro 2000
8-30 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
Execução de LógicaLadder
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 é desenergizado.bit .DN é desenergizado.
não
.POS = 0 sim
não
.EM é energizado
.POS ≥ .LENsim
não
.DN é energizado
.EM é energizado
.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-31
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 < 0 sim
não
.POS < 0sim
.EM é desenergizado.bit .DN é desenergizado.
não
.POS = 0 sim
não
.EM é energizado
.POS ≥ .LENsim
não
.DN é energizado
.EM é energizado
.DN é energizado
Publicação 1756-RM003C-PT-P - Novembro 2000
8-32 Instruções de Deslocamento/Matriz (Arquivo) (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 é desenergizado.bit .DN é
.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 é desenergizado.bit .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-RM003C-PT-P - Novembro 2000
Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU) 8-33
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 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-RM003C-PT-P - Novembro 2000
8-34 Instruções de Deslocamento/Matriz (Arquivo) (BSL, BSR, FFL, FFU, LFL, LFU)
Notas:
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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.
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-RM003C-PT-P - Novembro 2000
9-8 Instruções de Seqüenciador (SQI, SQO, SQL)
Descrição: Quando habilitada, a instrução SQO incrementa a posição, move os dados na posição através de Mask e armazena o resultado em Destination. Se .POS > .LEN, a instrução volta para o início da matriz do seqüenciador e continua com .POS = 1.
Geralmente usa a mesma estrutura CONTROL das instruções SQI e SQL
A instrução SQO opera na memória de dados contínua.
Inserção de um valor de máscara imediato
Ao inserir uma máscara, o software de programação retorna ao padrão dos valores decimais. Caso você queira inserir uma máscara usando outro formato, coloque o prefixo correto antes do valor.
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
9-16 Instruções de Seqüenciador (SQI, SQO, SQL)
Notas:
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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-11
Desabilitar todas as linhas em uma seção de lógica.
MCR 10-13
Desabilitar as tarefas do usuário. UID 10-15
Habilitar as tarefas do usuário. UIE 10-11
Desabilitar uma linha. AFI 10-17
Inserir um placeholder na lógica. NOP 10-18
Publicação 1756-RM003C-PT-P - Novembro 2000
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:
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.
Linguagens Disponíveis:
Lógica Ladder
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
ATENÇÃO
!Não se realiza varredura na lógica com salto. Coloque uma lógica crítica fora da zona de salto.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-3
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 (_)
Flags de Status Aritmético: não afetados
Condições de Falha:
Execução de LógicaLadder:
Exemplo de LógicaLadder:
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-RM003C-PT-P - Novembro 2000
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:
Operandos do Bloco deFunção:
Estas instruções não estão disponíveis no bloco de função.
Bloco de FunçãoLógica Ladder
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-RM003C-PT-P - Novembro 2000
Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-5
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.
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.
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?
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
10-6 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)
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?
5. Na instrução JSR, você especificou um operando Return par?
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.
ATENÇÃO
!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.
ATENÇÃO
!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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-7
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:
Execução de LógicaLadder:
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
etapas4. e5.
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
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
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 assegurar-se de que todas as linhas da sub-rotina passem por pré- varredura, o controlador ignora as instruções RET (ou seja, as instruções RET não saem da sub-rotina).
• Versão 6.x e anterior, parâmetros de entrada e retorno são passados.• Versão 7.x e posterior, 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-RM003C-PT-P - Novembro 2000
10-8 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)
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-RM003C-PT-P - Novembro 2000
Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-9
Exemplo de LógicaLadder:
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-RM003C-PT-P - Novembro 2000
10-10 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)
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_2e armazena o resultado em total_cookies.
Sub-routine_1
Quando def estiver energizado, a instrução RET retornavalue_1para o parâmetro JSRcookies_1e uma varredura não é realizada no restante da sub-rotina.
Quandodefestiver desenergizado (linha anterior) eghiestiver 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 defe ghiestiverem desenergizados (linhas anteriores) a instrução RET retorna value_3para o parâmetro cookies_1 de JSR.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-11
Fim Temporário (TND)
A instrução TND atua como um limite.
Operandos de LógicaLadder:
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:
Linguagens Disponíveis:
Lógica Ladder
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
10-12 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)
Exemplo de LógicaLadder:
É 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 de Bloco deFunção:
Esta instrução não está disponível no bloco de função.
Quando a instrução TND estiver habilitada, o controlador interrompe a varredura da rotina atual.
Publicação 1756-RM003C-PT-P - Novembro 2000
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:
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
ATENÇÃO
!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-RM003C-PT-P - Novembro 2000
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:
Exemplo de LógicaLadder:
Exemplo 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-RM003C-PT-P - Novembro 2000
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:
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.
• 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
Publicação 1756-RM003C-PT-P - Novembro 2000
10-16 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)
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 Interrupção por tarefas de prioridade mais elevada é habilitada.A saída da condição da linha está definida como verdadeira.
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
Quando um erro ocorre (error_bit está energizado), a instrução FSC verifica o código doerro em relação a uma lista de erros críticos. Se a instrução FSC encontra um erro queseja crítico (error_check.FD is on), um alarme é acionado. As instruções UID e UIE evitamque outras tarefas interrompam a verificação e o acionamento de alarmes.
Publicação 1756-RM003C-PT-P - Novembro 2000
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:
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:
Exemplo de LógicaLadder:
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
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-RM003C-PT-P - Novembro 2000
10-18 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)
Sem Operação (NOP)
Ainstrução NOP funciona como um placeholder
Operandos de LógicaLadder:
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:
Exemplo de LógicaLadder:
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
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-RM003C-PT-P - Novembro 2000
Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP) 10-19
Notas:
Publicação 1756-RM003C-PT-P - Novembro 2000
10-20 Instruções de Controle de Programa (JMP, LBL, JSR, RET, SBR, TND, MCR, UID, UIE, AFI, NOP)
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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-6
Publicação 1756-RM003C-PT-P - Novembro 2000
11-2 Instruções For/Break (FOR, BRK, RET)
For (FOR)
A instrução FOR executa repetidamente uma sub-rotina.
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 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.
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: nenhuma
Linguagens Disponíveis:
Lógica Ladder
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções For/Break (FOR, BRK, RET) 11-3
Execução de LógicaLadder:
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
fim
ir para o fim
Publicação 1756-RM003C-PT-P - Novembro 2000
11-4 Instruções For/Break (FOR, BRK, RET)
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 FOR executa repetidamente routine_2 e incrementa value_2em 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-RM003C-PT-P - Novembro 2000
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:
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:
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
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-RM003C-PT-P - Novembro 2000
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:
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: nenhuma
Execução de LógicaLadder:
Linguagens Disponíveis:
Lógica Ladder
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções For/Break (FOR, BRK, RET) 11-7
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 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_2em 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-RM003C-PT-P - Novembro 2000
11-8 Instruções For/Break (FOR, BRK, RET)
Notas:
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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:
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-5
Execução de LógicaLadder:
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-RM003C-PT-P - Novembro 2000
12-6 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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-7
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-RM003C-PT-P - Novembro 2000
12-8 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.
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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-9
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-RM003C-PT-P - Novembro 2000
12-10 Instruções Especiais (FBC, DDT, DTR, PID)
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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-11
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-RM003C-PT-P - Novembro 2000
12-12 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:
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-13
Execução de LógicaLadder:
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-RM003C-PT-P - Novembro 2000
12-14 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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-15
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-RM003C-PT-P - Novembro 2000
12-16 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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-17
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-RM003C-PT-P - Novembro 2000
12-18 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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-19
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-RM003C-PT-P - Novembro 2000
12-20 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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-21
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
Publicação 1756-RM003C-PT-P - Novembro 2000
12-22 Instruções Especiais (FBC, DDT, DTR, PID)
Estrutura: Especifique uma estrutura PID única para cada instrução PID.
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
Operando Tipo: Formato: Descrição:
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)
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-23
.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)
.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%)
Mnemônico: Tipo de Dados: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
12-24 Instruções Especiais (FBC, DDT, DTR, PID)
.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)
.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)
Mnemônico: Tipo de Dados: Descrição:
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-25
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
Condições de Falha:
.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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
12-26 Instruções Especiais (FBC, DDT, DTR, PID)
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.
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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-27
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).
Publicação 1756-RM003C-PT-P - Novembro 2000
12-28 Instruções Especiais (FBC, DDT, DTR, PID)
Especificação de alarmes
Selecione a guia Alarms. Você deve clicar em OK ou Apply para que as alterações tenham validade.
No bias calculation Habilita ou desabilita essa seleção (.NOBC).
No zero crossing in deadband
Habilita ou desabilita essa seleção (.NOZC).
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).
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-29
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.
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.
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).
-
+
14271
setpoint
taxa de fluxo
erroequação PID
variável de controle
variável de processo
detector de nível
Publicação 1756-RM003C-PT-P - Novembro 2000
12-30 Instruções Especiais (FBC, DDT, DTR, PID)
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 equação são fornecidos apenas para que você use o tipo com o qual está mais familiarizado.
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 KddPVdt
-----------+
0
t
∫ BIAS+=
E = PV - SP
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-31
Onde:
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.
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)
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
Ki
KC
60Ti-----------=
Publicação 1756-RM003C-PT-P - Novembro 2000
12-32 Instruções Especiais (FBC, DDT, DTR, PID)
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 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
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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-33
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.
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
12-34 Instruções Especiais (FBC, DDT, DTR, PID)
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 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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-35
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.
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
12-36 Instruções Especiais (FBC, DDT, DTR, 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 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.
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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-37
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 energizará o bit de alarme e impedirá que a saída ultrapasse o limite superior ou inferior.
erro dentro da faixa da zona morta
+ zona morta
setpoint
- zona morta
tempo 41026
Publicação 1756-RM003C-PT-P - Novembro 2000
12-38 Instruções Especiais (FBC, DDT, DTR, PID)
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-RM003C-PT-P - Novembro 2000
Instruções Especiais (FBC, DDT, DTR, PID) 12-39
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-RM003C-PT-P - Novembro 2000
12-40 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 %
ManualManual
(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
ManualManual
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
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
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
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-RM003C-PT-P - Novembro 2000
Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-3
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 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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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:
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-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 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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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:
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
13-18 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Exemplo do Bloco deFunção:
Quando habilitada, a instrução ATN calcula o arco tangente 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.
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-RM003C-PT-P - Novembro 2000
Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN) 13-19
Notas:
Publicação 1756-RM003C-PT-P - Novembro 2000
13-20 Instruções Trigonométricas (SIN, COS, TAN, ASN, ACS, ATN)
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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:
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
14-6 Instruções Matemáticas Avançadas (LN, LOG, XPY)
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Exemplo do Bloco deFunção:
Quando habilitada, a instrução LOG 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.
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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:
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.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções Matemáticas Avançadas (LN, LOG, XPY) 14-9
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Quando habilitada, a instrução XPY calcula value_1 elevado à potência de value_2 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 está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.EnableOut está energizado.
Publicação 1756-RM003C-PT-P - Novembro 2000
14-10 Instruções Matemáticas Avançadas (LN, LOG, XPY)
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 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
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
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
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-RM003C-PT-P - Novembro 2000
Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-3
Descrição: A instrução DEG usa este algoritmo:Source*180/π (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 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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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
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-RM003C-PT-P - Novembro 2000
15-6 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)
Descrição: A instrução RAD usa esse algoritmo:Source*π/180 (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 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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-9
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-RM003C-PT-P - Novembro 2000
15-10 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)
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-RM003C-PT-P - Novembro 2000
Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-11
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-RM003C-PT-P - Novembro 2000
15-12 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-13
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.
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 de conversão. 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 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-RM003C-PT-P - Novembro 2000
15-14 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)
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-RM003C-PT-P - Novembro 2000
Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-15
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
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-RM003C-PT-P - Novembro 2000
15-16 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)
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.
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-RM003C-PT-P - Novembro 2000
Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN) 15-17
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-RM003C-PT-P - Novembro 2000
15-18 Instruções de Conversão Matemática (DEG, RAD, TOD, FRD, TRN)
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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.
Para informações sobre a configuração de porta serial do controlador para usar as instruções ASCII, consulte o Manual do Usuário dos Controladores Logix5000, publicação 1756-6.5.12PT.
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-5
contar os caracters no buffer verificar o número solicitado dos caracteres antes de ler o buffer
ACB 16-7
remover o buffer • remover dados antigos do buffer no start-up
• sincronizar o buffer com um dispositivo
ACL 16-9
desenergizar as instruções ASCII que estão sendo executadas no momento ou que estão na fila
obter o status das linhas de controle da porta serial
AHL 16-11
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-14
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-17
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-21
enviar caracteres enviar mensagens que usam vários caracteres de terminação
AWT 16-24
Publicação 1756-RM003C-PT-P - Novembro 2000
16-2 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
A instrução ASCII é executada de forma assíncrona para a varredura da lógica:
Cada instrução ASCII, exceto a ACL, contém um operando SerialPort Control , o qual precisa de um tag de tipo de dado SERIAL_PORT_CONTROL. O operando SerialPort Control executa estas 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-RM003C-PT-P - Novembro 2000
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
varredura varredura varredura varredura
entra na fila reseta os bits de status
executaquando efetuada a varredura e .DN ou .ER forem definidos, o bit .EM energiza
neste 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-RM003C-PT-P - Novembro 2000
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 varredura subsequente da instrução, como representado abaixo:
Códigos de Erro ASCII
Para determinar o motivo de falha da instrução, monitore ou examine o membro SERIAL_PORT_CONTROL.ERROR para um código de erro hexadecimal. Use a tabela seguinte para interpretar o código de erro:
varredura varredura varredura varredura
tenta entrar na fila, mas a fila está cheia
entrada da condição da linha
falsa verdadeira falsa
.EN off on
. EU off on
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 ASCII 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 ASCII 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. Isto pára a execução de uma instrução ASCII e remove a fila da instrução ASCII.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-5
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:
Estrutura:
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 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.
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
ACL 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-RM003C-PT-P - Novembro 2000
16-6 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
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é-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 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 temp_high_write está concluída (EM está energizado), a instrução testa continuamente o buffer quanto aos caracteres de terminação
42226
temp_high_write.EM
/ack.EN
ENDNER
ASCII Test For Buffer LineChannel 0SerialPort Control ackCharacter Count 0
ABL
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-7
Caracteres ASCII no Buffer (ACB)
A instrução ACB conta os caracteres no buffer.
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 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.
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
ENCII Handshake LinesAHL 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 do erro.
Publicação 1756-RM003C-PT-P - Novembro 2000
16-8 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
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é-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 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
/weight_count.EN
ENDNER
ASCII Chars in BufferChannel 0SerialPort Control weight_countCharacter Count 0
ACB
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-9
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 de 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
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
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
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
Publicação 1756-RM003C-PT-P - Novembro 2000
16-10 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Exemplo 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 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-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-11
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:
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: 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
ARL42225
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.
.ERROR DINT O erro contém uma valor hexadecimal que identifica a causa de um erro.
Publicação 1756-RM003C-PT-P - Novembro 2000
16-12 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
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
Condições de Falha: nenhuma
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-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-13
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 • 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-RM003C-PT-P - Novembro 2000
16-14 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:
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: Insira:
Channel: DINT imediatotag
0
Destination SINTINTDINT
elemento de uma tag de matriz
primeiro elemento da matriz na qual os caracteres são movidos (leitura)
Porta SerialControl
SERIAL_PORT_CONTROL
tag tag que controla a operação
String Length
DINT imediato número de caracteres para mover para destination (leitura)
Characters Read
DINT imediato 0
Durante a execução, exibe o número de caracteres que foram lidos.
EN
DN
ER
ASCII ReadChannel ?Destination ? ??SerialPort Control ?String Length ?Characters Read ?
ARD
ENASCII W it A dAWA
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.
.ERROR DINT O erro contém um valor hexadecimal que identifica a causa de um erro.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-15
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 continua a executar até remover o número específico de caracteres (operando String Length).
• Enquanto a instrução ARD está sendo executada, nenhuma outra instrução ASCII é executada.
Para programar a instrução ARD, siga estas orientações:
1. Configure a porta serial do controlador para modo de usuário.
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-16.
3. Passe a entrada da condição de linha da instrução ARD de falsa para verdadeira toda vez que o buffer estiver para ser lido.
4. Use uma matriz de SINTs para Destination. Cada caracter ASCII usa oito bits (um SINT), para que cada elemento da matriz tenha armazenado um caracter.
5. Você quer que a primeira varredura do programa atualize o operando String Length de acordo com o comprimento da matriz Destination ou o tamanho do buffer, o que for menor?
6. Se o dado é um valor, tal como um peso, converta-o em um valor inteiro ou valor de ponto flutuante.
Flags de Status Aritmético: não afetados
Condições de Falha:
Se: Então, no operando String Length:
sim Digite 0.
não Digite o número de caracteres para mover para o destination.
Se: Uma falha de advertência ocorre:
Tipo: Código:
operando String Length é negativo. 4 30
Publicação 1756-RM003C-PT-P - Novembro 2000
16-16 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çõ 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 • O bit .EN é 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 balança envia os valores de pesos para a porta serial (canal 0) do controlador. Cada peso sempre contém sete caracteres. Para determinar quando o controlador recebe um peso, a instrução ACB inclui continuamente os caracteres no buffer.
Quando o buffer contém ao menos sete caracteres, o controlador recebeu um peso. A instrução ARD move o peso para o tag weight_ascii, que é uma matriz de SINTs.
Quando o controlador termina de ler o peso (weight_read.EM está energizado), a sub-rotina Ascii_To_Real executa uma vez para converter o peso para um valor de ponto flutuante (REAL) para uso na aplicação.
42227
/weight_count.EN
ENDNER
ASCII Chars in BufferChannel 0SerialPort Control weight_countCharacter Count 0
ACB
Grtr Than or Eql (A>=B)Source A weight_count.pos 0Source B 7
GEQEN
DN
ER
ASCII ReadChannel 0Destination weight_ascii[0] '$00'SerialPort Control weight_readString Length 7Characters Read 0
ARD
weight_read.EM
ONSweight_convert
Jump to SubroutineRoutine name Ascii_To_RealReturn par weight
JSR
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-17
Linha de Leitura ASCII (ARL)
A instrução ARL remove caracteres do buffer e armazena-os em Destination.
Operandos de LógicaLadder:
Estrutura:
Operandos do Bloco deFunção:
Esta instrução está disponível no bloco de função.
Linguagens Disponíveis:
Lógica Ladder
Operando Tipo: Formato: Insira:
Channel: DINT imediatotag
0
Destination SINTINTDINT
elemento de um tag de matriz
primeiro elemento da matriz na qual os caracteres são movidos (leitura)
Porta SerialControl
SERIAL_PORT_CONTROL
tag tag que controla a operação
String Length
DINT imediato número de caracteres máximo para mover para destination (ex.: quando parar de ler se nenhum caracter de terminação for encontrado)
Characters Read
DINT imediato 0
Durante a execução, exibe o número de caracteres que foram lidos.
EN
DN
ER
ASCII Read LineChannel ?Destination ? ??SerialPort Control ?String Length ?Characters Read ?
ARL
ENASCII W itAWT
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.
.ERROR DINT O erro contém um valor hexadecimal que identifica a causa de um erro.
Publicação 1756-RM003C-PT-P - Novembro 2000
16-18 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 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 (operando String Length)
• Enquanto a instrução ARL esté sendo executada, nenhuma outra instrução 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-19.
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. Use uma matriz de SINTs para destination. Cada caracter ASCII usa oito bits (um SINT), para que cada elemento da matriz armazene um caracter.
5. Você quer que a primeira varredura do programa atualize o operando String Length de acordo com o comprimento da matriz Destination ou o tamanho do buffer, o que for menor?
6. Se o dado é um valor, tal como um peso, converta-o em um valor inteiro ou valor de ponto flutuante.
Se: Então, no operando String Length:
sim Digite 0.
não Digite o número de caracteres máximo que qualquer mensagem incluirá (ex.: quando parar de ler se nenhum caracter de terminação for encontrado).
Por exemplo, se as mensagens variam de 3 a 6 caracteres no comprimento, digite 6.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-19
Flags de Status Aritmético: não afetados
Condições de Falha:
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.
Se: Uma falha de advertência ocorre:
Tipo: Código:
operando String Length é negativo. 4 30
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 bit .EN está energizado.• Os bits de status restantes, exceto .UL, estão desenergizados.• A instrução tenta entrar na fila ASCII.• A saída da condição da linha está definida como verdadeira.
Depois de enviar uma mensagem para o terminal MessageView, como indicado por temp_high_write.EM, o controlador espera que um operador reconheça a mensagem. Cada reconhecimento varia de 3 a 6 caracteres, mas sempre termina em $r. Como $r é configurado como o caracter de terminação na janela Properties do Controlador, guia User Protocol, a instrução ABL testa continuamente o buffer quanto ao $r.
temp_high_write.EM
/ack.EN
ENDNER
ASCII Test For Buffer LineChannel 0SerialPort Control ackCharacter Count 0
ABL
Publicação 1756-RM003C-PT-P - Novembro 2000
16-20 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Execução do Bloco deFunção:
Esta instrução não está disponível no bloco de função.
Quando a instrução ABL encontra o $r (ack.FD é energizado), o controlador recebeu o reconhecimento pelo operador. A instrução ARL remove os caracteres do buffer, até e incluindo o $r, e coloca-os no tag temp_high_ack tag, que é uma matriz SINT.
42226
ack.FD
EN
DN
ER
ASCII Read LineChannel 0Destination temp_high_ack[0] '$00'SerialPort Control temp_high_ack_readString Length 6Characters Read 0
ARL
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-21
Anexar Leitura ASCII (AWA)
A instrução AWA envia caracteres da matriz Source para um dispositivo serial e anexa um ou dois caracteres pré-definidos.
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: Insira:
Channel: DINT imediatotag
0
Source SINTINTDINT
elemento de uma tag de matriz
primeiro elemento de matriz que contém o dado a ser enviado
Porta SerialControl
SERIAL_PORT_CONTROL
tag tag que controla a operação
String Length
DINT imediato número de caracteres a serem enviados
Characters sent
DINT imediato 0
Durante a execução, exibe o número de caracteres que foram enviados
EN
DN
ER
ASCII Write AppendChannel ?Source ? ??SerialPort Control ?String Length ?Characters Sent ?
AWA
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.
.ERROR DINT O erro contém um valor hexadecimal que identifica a causa de um erro.
Publicação 1756-RM003C-PT-P - Novembro 2000
16-22 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 AWA:
• envia o número de caracteres específico (String Length) da matriz Source para o dispositivo que está conectado à porta serial do controlador
• adiciona no fim do dado (anexa) um ou dois caracteres que são definidos na janela Properties do Controlador, guia User Protocol
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. Use uma matriz de SINTs para o source. Cada caracter ASCII usa oito bits (um SINT), para que cada elemento da matriz armazene um caracter.
4. Você quer que a primeira varredura do programa atualize o operando de Comprimento da matriz Fonte ou o tamanho do buffer, o que for menor?
5. Na matriz Source, digite os caracteres a serem enviados. Omita os caracteres que a instrução acrescentará automaticamente.
Se: Então:
sim Selecione modo do Usuário
não Selecione ou o modo do Sistema ou do Usuário
Se: Então, no operando String Length:
sim Digite 0.
não Digite o número de caracteres a serem enviados.
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-23
Flags de Status Aritmético: não afetados
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.
Se: Uma falha de advertência ocorre:
Tipo: Código:
operando String Length é negativo. 4 30
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 bit .EN está energizado.• Os bits de status restantes, exceto .UL, estã desenergizados.• A instrução tenta entrar na fila ASCII.• A saída da condição da linha está definida como verdadeira.
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 nove caracteres da matriz msg_5. A instrução também envia (anexa) os caracteres definidos nas propriedades do controlador. Neste exemplo, a instrução AWA envia um caracterer $0D, que marca o fim da mensagem
42226
temp_high
EN
DN
ER
ASCII Write AppendChannel 0Source msg_5[0] '$14'SerialPort Control temp_high_writeString Length 9Characters Sent 0
AWA
Publicação 1756-RM003C-PT-P - Novembro 2000
16-24 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Escrita ASCII (AWT)
A instrução AWT envia caracteres da matriz Source para um dispositivo serial.
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 a entrada da condição de linha faz a transição de falsa para verdadeira, a instrução AWT envia o número especificado de caracteres (Comprimento do String) da matriz Source para o dispositivo que está conectado à porta serial do controlador.
Linguagens Disponíveis:
Lógica Ladder
Operando Tipo: Formato: Insira:
Channel: DINT imediatotag
0
Source SINTINTDINT
elemento de uma tag de matriz
primeiro elemento de matriz que contém o dado a ser enviado
Porta SerialControl
SERIAL_PORT_CONTROL
tag tag que controla a operação
String Length
DINT imediato número de caracteres a serem enviados
enviar caracteres
DINT imediato 0
Durante a execução, exibe o número de caracteres que foram enviados
EN
DN
ER
ASCII WriteChannel ?Source ? ??SerialPort Control ?String Length ?Characters Sent ?
AWT
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-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-25
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. Use uma matriz de SINTs para o source. Cada caracter ASCII usa oito bits (um SINT), para que cada elemento da matriz tenha armazenado um caracter.
4. Você quer que a primeira varredura do programa atualize o operando de Comprimento da matriz Fonte ou o tamanho do buffer, o que for menor?
5. Na matriz Source, digite os caracteres a serem enviados.
Flags de Status Aritmético: não afetados
Condições de Falha:
Execução de LógicaLadder:
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, no operando String Length:
sim Digite 0.
não Digite o número de caracteres a serem enviados.
Se: Uma falha de advertência ocorre:
Tipo: Código:
operando String Length é negativo. 4 30
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 bit .EN está energizado.• Os bits de status restantes, exceto .UL, estã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-RM003C-PT-P - Novembro 2000
16-26 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Exemplo de LógicaLadder:
Execução do Bloco deFunção:
Esta instrução não está disponível no bloco de função.
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 os primeiros 10 caracteres da matriz msg_4. O décimo caracter é um $0D, que marca o fim da mensagem.
42229
temp_low
EN
DN
ER
ASCII WriteChannel 0Source msg_4[0] '$00'SerialPort Control temp_low_msg_sendString Length 10Characters Sent 0
AWT
Publicação 1756-RM003C-PT-P - Novembro 2000
Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) 16-27
Notas:
Publicação 1756-RM003C-PT-P - Novembro 2000
16-28 Instruções de Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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
Publicação 1756-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
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-RM003C-PT-P - Novembro 2000
A-8 Atributos Comuns
1 Publicação 1756-RM003C-PT-P - Novembro 2000
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.
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
Publicação 1756-RM003C-PT-P - Novembro 2000
B-2 Atributos de Bloco de Função
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.
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.
tagA
Block_01
Block_02
tagA
Block_01
Block_02
tagA
Publicação 1756-RM003C-PT-P - Novembro 2000
Atributos de Bloco de Função B-3
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.
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.
1 2 3
1 3 5
2 4 6
Publicação 1756-RM003C-PT-P - Novembro 2000
B-4 Atributos de Bloco de Função
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 2 3
fio de feedback localizado
Publicação 1756-RM003C-PT-P - Novembro 2000
Atributos de Bloco de Função B-5
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-RM003C-PT-P - Novembro 2000
B-6 Atributos de Bloco de Função
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-RM003C-PT-P - Novembro 2000
Atributos de Bloco de Função B-7
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-RM003C-PT-P - Novembro 2000
B-8 Atributos de Bloco de Função
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-RM003C-PT-P - Novembro 2000
Atributos de Bloco de Função B-9
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-RM003C-PT-P - Novembro 2000
B-10 Atributos de Bloco de Função
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-RM003C-PT-P - Novembro 2000
Atributos de Bloco de Função B-11
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-RM003C-PT-P - Novembro 2000
B-12 Atributos de Bloco de Função
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.
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-RM003C-PT-P - Novembro 2000
Atributos de Bloco de Função B-13
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..
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-RM003C-PT-P - Novembro 2000
B-14 Atributos de Bloco de Função
Notas:
Publicação 1756-RM003C-PT-P - Noverbro 2000
Índice
Aadição 5-6AHL 16-11ajuste 12-27alarmes 12-28anexar leitura ASCII 16-21arco 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-5
Ccálculo 5-2caracteres ASCII no buffer 16-7carga do sequenciador 9-12carga FIFO 8-10carga LIFO 8-22classificação 7-43códigos de erro
ASCII 16-4instrução MSG 3-8
combinação de tipos de dados A-1comparação 4-2comparação de bit de arquivo 12-2comparação e busca de arquivo 7-19condições de overflow B-5configuração 3-14
instrução MSG 3-14instruçã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-1conversão para BCD 15-8conversão para inteiro 15-12cópia 7-30co-seno 13-5
Ddados retentivos B-1dados transicionais 12-18definição do valor do sistema 3-30desabilitação da interrupção pelo usuário 10-15descarga 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-47detecção de diagnóstico 12-10diferente de 4-32distribuiçã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
Eenergizar saída 1-5energizar saída com retenção 1-6entrada do sequenciador 9-2escala 12-29escrita ASCII 16-24estrutura CONTROL 7-7, 7-19, 7-39, 7-43, 7-47, 8-2,
8-6, 8-10, 8-16, 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 FBD_BIT_FIELD_DISTRIBUTE 6-13estrutura FBD_COMPARE 4-7, 4-10, 4-13, 4-16, 4-19,
4-32estrutura FBD_CONVERT 6-29, 15-8, 15-12estrutura FBD_COUNTER 2-31estrutura FBD_LIMIT 4-23estrutura FBD_LOGICAL 6-17, 6-21, 6-25estrutura FBD_MASK_EQUAL 4-28estrutura FBD_MASKED_MOVE 6-7estrutura FBD_MATH 5-7, 5-10, 5-13, 5-16, 5-20,
14-7
Publicação 1756-RM003C-PT-P - Noverbro 2000
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-11, 16-14, 16-17, 16-21, 16-24estrutura TEMPORIZADOR 2-2, 2-6, 2-10estruturas
CONTADOR 2-23, 2-27CONTROL 7-7, 7-19, 7-39, 7-43, 7-47, 8-2, 8-6,
8-10, 8-16, 8-22, 8-28, 9-2, 9-7, 9-12,12-3, 12-11
FBD_BIT_FIELD_DISTRIBUTE 6-13FBD_COMPARE 4-7, 4-10, 4-13, 4-16, 4-19, 4-32FBD_CONVERT 6-29, 15-8, 15-12FBD_COUNTER 2-31FBD_LIMIT 4-23FBD_LOGICAL 6-17, 6-21, 6-25FBD_MASK_EQUAL 4-28FBD_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-11,
16-14, 16-17, 16-21, 16-24TEMPORIZADOR 2-2, 2-6, 2-10
examinar se energizado 1-3exponencial 14-7expressões
formato 4-5, 5-4, 7-18, 7-28operadores válidos 4-5, 5-4, 7-17, 7-28seqüência de operação 4-6, 5-5, 7-18, 7-29
Ffeedforward 12-38fim temporário 10-11flags de status aritmético
overflow B-5
Ggrau 15-2
Iigual a 4-6instrução 16-11instrução ABL 16-5instrução ABS 5-29instrução ACB 16-7instrução ACL 16-9instrução ACS 13-14instrução ADD 5-6instrução AFI 10-17instrução AND 6-17instrução ARD 16-14instrução ARL 16-17instrução ASN 13-11instrução ATN 13-16instrução AVE 7-39instrução AWA 16-21instrução AWT 16-24instruçã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 COP 7-30instrução COS 13-5instruçã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 DIV 5-15instrução DTR 12-18instrução EQU 4-6instrução FAL
modo de operação 7-1operandos 7-7
instrução FBCmodo de busca 12-4operandos 12-2
instrução FFL 8-10instrução FFU 8-16instrução FLL 7-35
Publicação 1756-RM003C-PT-P - Noverbro 2000
Índice 3
instrução FRD 15-12instrução FSC
modo de operação 7-1operandos 7-19
instrução GEQ 4-10instrução GRT 4-13instrução GSV
objetos 3-32operandos 3-30
instrução JMP 10-2instrução JSR 10-4instrução LBL 10-2instrução LEQ 4-16instrução LES 4-19instrução LFL 8-22instrução LFU 8-28instrução LIM 4-22instrução LN 14-2instrução LOG 14-4instrução MCR 10-13instrução MEQ 4-27instrução MOD 5-19instrução MOV 6-2instrução MSG 3-14
códigos de erro 3-8conexão de cache 3-29estrutura 3-2método de comunicação 3-28operandos 3-2
instrução MUL 5-12instrução MVM 6-4instrução MVMT 6-7instrução NEG 5-26instrução NEQ 4-32instrução NOP 10-18instruçã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-26
conversã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-6instrução RTO 2-10instrução RTOR 2-20instrução SBR 10-4instrução sempre falsa 10-17instrução SIN 13-2instrução SQI 9-2instrução SQL 9-12instrução SQO 9-7instrução SQR 5-23instrução SRT 7-43instrução SSV
objetos 3-32operandos 3-30
instrução SUB 5-9instrução TAN 13-8instrução TND 10-11instruçã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-15instrução XIO 1-3instrução XOR 6-25instrução XPY 14-7instrucões
ASCII 16-1instruções
binárias 1-1cálculo 5-1comparação 4-1contador 2-1controle de programa 10-1conversão 15-1conversão matemática 15-1deslocamento 8-1entrada/saída 3-1especiais 12-1for/break 11-1lógica 6-1
Publicação 1756-RM003C-PT-P - Noverbro 2000
4 Índice
matemáticas avançadas 14-1matrizmovimentação 6-1porta serial 16-1seqüenciador 9-1temporizador 2-1trigonométrica 13-1
instruções ASCIIABL 16-5ACB 16-7ACL 16-9AHL 16-11ARD 16-14ARL 16-17AWA 16-21AWT 16-24introdução 16-1
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-18introdução 5-1MOD 5-19MUL 5-12NEG 5-26operadores válidos 5-4, 7-17seqüência de operação 5-5, 7-18SQR 5-23SUB 5-9
instruções de comparaçãoCMP 4-2EQU 4-6formato da expressão 7-28formato de expressão 4-5GEQ 4-10
GRT 4-13introdução 4-1LEQ 4-16LES 4-19LIM 4-22MEQ 4-27NEQ 4-32operadores válidos 4-5, 7-28seqüência de operação 4-6, 7-29
instruções de controle de programaintrodução 10-1
instruções de controle do programaAFI 10-17JMP 10-2JSR 10-4LBL 10-2MCR 10-13NOP 10-18RET 10-4SBR 10-4TND 10-11UID 10-15
instruções de conversãoDEG 15-2FRD 15-12introdução 15-1RAD 15-5TRN 15-15
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-10FFU 8-16introdução 8-1LFL 8-22LFU 8-28
instruções de entrada/saídaGSV 3-30introdução 3-1MSG 3-2SSV 3-30
instruções de lógica
Publicação 1756-RM003C-PT-P - Noverbro 2000
Índice 5
introdução 6-1instruções de matemática avançada
LOG 14-4XPY 14-7
instruções de matrizarquivo/diversos. 7-1AVE 7-39BSL 8-2BSR 8-6COP 7-30DDT 12-10deslocamento 8-1FBC 12-2FFL 8-10FFU 8-16FLL 7-35FSC 7-19LFL 8-22LFU 8-28modo de operação 7-1seqüenciador 9-1SQI 9-2SQL 9-12SQO 9-7SRT 7-43STD 7-47
instruções de matrizaFAL 7-7
instruções de movimentaçãoBTD 6-10BTDT 6-13CLR 6-16introdução 6-1MOV 6-2MVM 6-4MVMT 6-7
instruções de porta serialABL 16-5ACB 16-7ACL 16-9AHL 16-11ARD 16-14ARL 16-17AWA 16-21AWT 16-24introdução 16-1
instruções de seqüenciadorintrodução 9-1
instruções de série
RES 2-35instruções de temporizador
TOF 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 11-2instruções for/break
BRK 11-5FOR 11-2introdução 11-1RET 11-6
instruções lógicasAND 6-17NOT 6-29OR 6-21XOR 6-25
instruções matemáticas avançadasintrodução 14-1LN 14-2
instruções PIDoperandos 12-21
instruções STD 7-47instruções trigonométricas
ACS 13-14ASN 13-11ATN 13-16COS 13-5
Publicação 1756-RM003C-PT-P - Noverbro 2000
6 Índice
introdução 13-1SIN 13-2TAN 13-8
Llabel 10-2leitura ASCII 16-14limite 4-22linha de leitura ASCII 16-17linhas ASCII handshake 16-11log
base 10 14-4natural 14-2
log natural 14-2
Mmaior ou igual a 4-10maior que 4-13mascarado igual a 4-27máscaras 12-19média 7-39menor ou igual a 4-16menor que 4-19mensagem 3-2modo All (todos) 7-2modo de busca 12-4, 12-12modo de operação 7-1modo 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-33objeto CONTROLLER 3-42objeto CONTROLLERDEVICE 3-42
objeto CST 3-44objeto DF1 3-45objeto FAULTLOG 3-48objeto MESSAGE 3-48objeto MODULE 3-51objeto MOTIONGROUP 3-52objeto PROGRAM 3-53objeto ROUTINE 3-54objeto SERIALPORT 3-54objeto TASK 3-56objeto WALLCLOCKTIME 3-57objetos
AXIS 3-33CONTROLLER 3-42CONTROLLERDEVICE 3-42CST 3-44DF1 3-45FAULTLOG 3-48instrução GSV/SSV 3-32MESSAGE 3-48MODULE 3-51MOTIONGROUP 3-52PROGRAM 3-53ROUTINE 3-54SERIALPORT 3-54TASK 3-56WALLCLOCKTIME 3-57
obtenção do valor do sistema 3-30operadores 4-5, 5-4, 7-17, 7-28ordem de execução B-2
Ppolarização da saída (bias) 12-38preenchimento de arquivo 7-35proporcional, integral e derivativo 12-21
Rradianos 15-5raiz quadrada 5-23rearme do controle mestre 10-13remoção de buffer e da fila ASCII 16-9reset 2-35retorno 10-4, 11-6
Ssaída do sequenciador 9-7salto 10-2salto para sub-rotina 10-4
Publicação 1756-RM003C-PT-P - Noverbro 2000
Índice 7
sem operação 10-18seno 13-2seqüência de operação 4-6, 5-5, 7-18, 7-29sub-rotina 10-4subtração 5-9
Ttangente 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-5truncagem 15-15
Vvalor absoluto 5-29valores imediatos A-1
XX elevado à potência de Y 14-7
Zzeramento 6-16zona morta 12-37