Escolar Documentos
Profissional Documentos
Cultura Documentos
Logix5000
1756-L1, -L1Mx
Ao longo deste manual, usamos notas para chamar a sua atenção para
considerações de segurança::
!
As instruções de atenção ajudam você a :
Allen-Bradley, ControlLogix, DH+, Logix5000, Logix5550, CLP-2, CLP-3, CLP-5, RSLinx, RSLogix 5000, RSNetWorx e SLC são
marcas da Rockwell Automation.
Notas:
Onde Encontrar uma 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
Instrução outros manuais). Este localizador também lista as linguagens de
programação que estão disponíveis para as instruções.
AFI 10-20 lógica ladder BTW (tipo MSG) 3-2 lógica ladder
Tarefa/Meta: Documentos:
Programação do controlador para aplicações Manual de Referência Geral do Conjunto de Instruções dos Controladores Logix5000,
sequenciais publicação 1756-RM003
Você está aqui
Programação do controlador para aplicações Manual de Referência do Conjunto de Instruções dos Inversores e Controle de
de processo ou inversores Processo , publicação 1756-RM006
Programação do controlador para aplicações Logix5000 Controllers Motion Instruction Set Reference Manual,
de posicionamento publicação 1756-RM007
Importação de um arquivo de texto ou tags Manual de Referência de Exportação/Importação do Controlador Logix5000,
em um projeto 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 Manual de Referência do Controlador Logix5550 para Conversão da Lógica do CLP-5
500 para uma aplicação Logix5000 ou SLC500 para a Lógica do Logix5000, publicação 1756-6.8.5PT
Quem Deve Utilizar este Este documento fornece ao programador detalhes sobre cada
instrução disponível para um controlador baseado em Logix. Você já
Manual deve estar familiarizado de como o controlador baseado em Logix
armazena e processa dados.
Objetivo do Manual Este manual fornece uma descrição de cada instrução neste formato.
Operandos do bloco de lista todos os operandos da instrução se esta estiver disponível no bloco de função
função exibe 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ção
define 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ético
consulte o apêndice Atributos Comuns
Condições de Falha: define se a instrução gera falhas graves ou de advertência
se 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ção
inclui uma descrição explicando cada exemplo
Execução do bloco de Se disponível no bloco de função, define os detalhes de como a instrução opera durante:
função • pré-varredura
• primeira varredura da instrução
• primeira operação da instrução
• EnableIn é falso
• EnableIn é verdadeiro
Exemplo do bloco de Se disponível no bloco de função, fornece pelo menos um exemplo de programação
função inclui uma descrição explicando cada exemplo
bloco de função
Informações Comuns para O conjunto de instruções do Logix5000 possui alguns atributos comuns:
Todas as Instruções Para obter esta Consulte este apêndice
informação:
atributos comuns apêndice Atributos Comuns define:
• flags de status aritmético:
• tipos de dados
• palavras-chaves
atributos do bloco de apêndice Atributos de Bloco de Função define:
função • controle do programa e operador
• modos de temporização
Notas:
Capítulo 1
Instruções Binárias Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
(XIC, XIO, OTE, OTL, OTU, ONS, Examinar Se Desenergizado (XIC) . . . . . . . . . . . . . . . . . . . 1-1
OSR, OSF, OSRI, OSFI) Examinar Se Energizado (XIO) . . . . . . . . . . . . . . . . . . . . . 1-3
Energizar Saída
(OTE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5
Energizar Saída com Retenção (OTL) . . . . . . . . . . . . . . . . . 1-6
Desenergizar Saída com Retenção (OTU) . . . . . . . . . . . . . . 1-7
Monoestável (ONS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
Monoestável com Borda de Subida (OSR) . . . . . . . . . . . . . 1-10
Monoestável com Borda de Descida (OSF). . . . . . . . . . . . . 1-13
Monoestável com Borda de Subida com Entrada (OSRI) . . . 1-15
Monoestável com Borda de Descida com Entrada (OSFI) . . 1-17
Capítulo 2
Instruções do Temporizador e do Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Contador Temporizador de Energização (TON). . . . . . . . . . . . . . . . . 2-2
(TON, TOF, RTO, TONR, TOFR, Temporizador de Desenergização (TOF) . . . . . . . . . . . . . . 2-6
Temporizador Retentivo Ligado (RTO) . . . . . . . . . . . . . . . . 2-10
RTOR, CTU, CTD, CTUD, RES)
Temporizador de Energização com Reset (TONR) . . . . . . . 2-14
Temporizador de Desenergização com Reset (TOFR) . . . . . 2-17
Temporizador Retentivo Energizado com Reset (RTOR) . . . 2-20
Contagem Crescente (CTU) . . . . . . . . . . . . . . . . . . . . . . . . 2-23
Contagem Decrescente (CTD) . . . . . . . . . . . . . . . . . . . . . . 2-27
Contagem Crescente/Decrescente (CTUD) . . . . . . . . . . . . . 2-31
Reset (RES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-35
Capítulo 3
Instruções de Entrada/Saída Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
(MSG, GSV, SSV) Mensagem (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Códigos de Erro MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7
Códigos de erro do ControlLogix (CIP) . . . . . . . . . . . . . 3-7
Capítulo 4
Instruções de Comparação Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
(CMP, EQU, GEQ, GRT, LEQ, LES, Comparação (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
LIM, MEQ, NEQ) Expressões CMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
Operadores válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
Formatação de expressões . . . . . . . . . . . . . . . . . . . . . . 4-6
Capítulo 5
Instruções Matemáticas/Cálculo Introdução . . . . . . . . . . . . . . . .......... . . . . . . . . . . . 5-1
(CPT, ADD, SUB, MUL, DIV, MOD, Cálculo (CPT) . . . . . . . . . . . . . .......... . . . . . . . . . . . 5-2
SQR, NEG, ABS) Operadores válidos . . . . . . .......... . . . . . . . . . . . 5-4
Formatação de expressões . .......... . . . . . . . . . . . 5-4
Determinação da seqüência de operação . . . . . . . . . . . 5-5
Adição (ADD) . . . . . . . . . . . . . .......... . . . . . . . . . . . 5-6
Subtração (SUB) . . . . . . . . . . . .......... . . . . . . . . . . . 5-9
Multiplicação (MUL) . . . . . . . . .......... . . . . . . . . . . . 5-12
Divisão (DIV) . . . . . . . . . . . . . .......... . . . . . . . . . . . 5-15
Módulo (MOD) . . . . . . . . . . . . .......... . . . . . . . . . . . 5-19
Raiz Quadrada (SQR) . . . . . . . .......... . . . . . . . . . . . 5-23
Negação (NEG). . . . . . . . . . . . .......... . . . . . . . . . . . 5-26
Valor Absoluto (ABS) . . . . . . . .......... . . . . . . . . . . . 5-29
Capítulo 6
Instruções de Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Movimentação/Lógica Movimentação (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
(MOV, MVM, BTD, MVMT, BTDT, Movimentação Mascarada (MVM). . . . . . . . . . . . . . . . . . . . 6-4
Inserção de um valor de máscara imediato . . . . . . . . . . 6-5
CLR, AND, OR, XOR, NOT)
Movimentação Mascarada com Target (MVMT). . . . . . . . . . 6-7
Distribuição do Campo do Bit (BTD) . . . . . . . . . . . . . . . . . 6-10
Distribuição do Campo do Bit com Target (BTDT) . . . . . . . 6-13
Zeramento (CLR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16
Bitwise AND (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17
Bitwise OR (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21
Bitwise Exclusive OR (XOR) . . . . . . . . . . . . . . . . . . . . . . . 6-25
Bitwise NOT (NOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29
Capítulo 7
Instruções Array Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
(File/Miscellaneous) Seleção do Modo de Operação . . . . . . . . . . . . . . . . . . . . . 7-2
(FAL, FSC, COP, CPS, FLL, AVE, Modo All (Todos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
Modo Numerical (numérico) . . . . . . . . . . . . . . . . . . . . 7-3
SRT, STD, SIZE)
Modo Incremental (incremento) . . . . . . . . . . . . . . . . . 7-5
Arquivamento Aritmético e Lógico (FAL) . . . . . . . . . . . . . . 7-7
Expressões FAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18
Operadores válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18
Capítulo 8
Instruções de Matriz Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
(Arquivo)/Deslocamento Deslocamento de Bit para a Esquerda (BSL). . . . . . . . . . . . 8-2
(BSL, BSR, FFL, FFU, LFL, LFU) Deslocamento de Bit para a Direita (BSR) . . . . . . . . . . . . . 8-6
Carga FIFO (FFL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10
Descarga FIFO (FFU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16
Carga LIFO (LFL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-22
Descarga LIFO (LFU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-28
Capítulo 9
Instruções de Seqüenciador Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1
(SQI, SQO, SQL) Entrada do Sequenciador (SQI) . . . . . . . . . . . . . . . . . . . . . 9-2
Inserção de um valor de máscara imediato . . . . . . . . . . 9-3
Utilização de SQI sem SQO . . . . . . . . . . . . . . . . . . . . . 9-6
Saída do Sequenciador (SQO) . . . . . . . . . . . . . . . . . . . . . . 9-7
Inserção de um valor de máscara imediato . . . . . . . . . . 9-8
Utilização de SQI com SQO . . . . . . . . . . . . . . . . . . . . . 9-11
Reset da posição de SQO . . . . . . . . . . . . . . . . . . . . . . . 9-11
Carga do Sequenciador (SQL) . . . . . . . . . . . . . . . . . . . . . . 9-12
Capítulo 10
Instruções de Controle de Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1
Programa Salto para Label (JMP)
(JMP, LBL, JSR, RET, SBR, TND, Label (LBL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
Salto para Sub-rotina (JSR)
MCR, UID, UIE, AFI, NOP)
Sub-rotina (SBR)
Retorno (RET). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4
Fim Temporário (TND) . . . . . . . . . . . . . . . . . . . . . . . . . . 10-13
Rearme do Controle Mestre (MCR). . . . . . . . . . . . . . . . . . 10-15
Desabilitação da Interrupção pelo Usuário (UID)
Habilitação da Interrupção pelo Usuário (UIE) . . . . . . . . . 10-18
Instrução Sempre Falsa (AFI) . . . . . . . . . . . . . . . . . . . . . . 10-20
Sem Operação (NOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-21
Capítulo 11
Instruções For/Break Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1
(FOR, BRK, RET) For (FOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2
Break (BRK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5
Retorno (RET). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7
Capítulo 12
Instruções Especiais Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1
(FBC, DDT, DTR, PID) Comparação de Bit de Arquivo (FBC) . . . . . . . . . . . . . . . . 12-2
Seleção do modo de busca. . . . . . . . . . . . . . . . . . . . . . 12-4
Detecção de Diagnóstico (DDT) . . . . . . . . . . . . . . . . . . . 12-10
Seleção do modo de busca. . . . . . . . . . . . . . . . . . . . . 12-12
Dados Transicionais (DTR) . . . . . . . . . . . . . . . . . . . . . . . 12-18
Inserção de uma valor de máscara imediato . . . . . . . . 12-19
Proporcional, Integral e Derivativo (PID) . . . . . . . . . . . . . 12-21
Configuração de uma Instrução PID. . . . . . . . . . . . . . . . . 12-26
Especificação do ajuste . . . . . . . . . . . . . . . . . . . . . . . 12-27
Especificação da configuração . . . . . . . . . . . . . . . . . . 12-27
Especificação de alarmes . . . . . . . . . . . . . . . . . . . . . . 12-28
Especificação de conversão de escala . . . . . . . . . . . . . 12-29
Utilização das Instruções PID. . . . . . . . . . . . . . . . . . . . . . 12-29
Windup anti-reset e transferência ininterrupta de
manual para automático . . . . . . . . . . . . . . . . . . . . . . . 12-31
Temporização da instrução PID . . . . . . . . . . . . . . . . . 12-32
Reinicialização ininterrupta. . . . . . . . . . . . . . . . . . . . . 12-35
Polarização derivativa . . . . . . . . . . . . . . . . . . . . . . . . 12-36
Configuração da zona morta. . . . . . . . . . . . . . . . . . . . 12-37
Uso da limitação de saída. . . . . . . . . . . . . . . . . . . . . . 12-37
Feedforward ou polarização da saída (bias) . . . . . . . . 12-38
Malhas em cascata . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-38
Controle de um índice . . . . . . . . . . . . . . . . . . . . . . . . 12-38
Teoria PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-40
processo PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-40
processo PID com malhas mestre/escravo. . . . . . . . . . 12-40
Capítulo 13
Instruções Trigonométricas Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1
(SIN, COS, TAN, ASN, ACS, ATN) Seno (SIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2
Co-seno (COS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5
Tangente (TAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8
Arco Seno (ASN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-11
Arco Co-seno (ACS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-14
Arco Tangente (ATN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-16
Capítulo 14
Instruções Matemáticas Introdução . . . . . . . . . . ....... . . . . . . . . . . . . . . . . . . . 14-1
Avançadas Log Natural (LN) . . . . . . ....... . . . . . . . . . . . . . . . . . . . 14-2
(LN, LOG, XPY) Base Log de 10 (LOG). . ....... . . . . . . . . . . . . . . . . . . . 14-4
X Elevado à Potência de Y (XPY) . . . . . . . . . . . . . . . . . . . 14-7
Capítulo 15
Instruções de Conversão Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1
Matemática Graus (DEG). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2
(DEG, RAD, TOD, FRD, TRN) Radianos (RAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5
Conversão para BCD (TOD) . . . . . . . . . . . . . . . . . . . . . . . 15-8
Conversão para Inteiro (FRD) . . . . . . . . . . . . . . . . . . . . . 15-12
Truncagem (TRN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-15
Capítulo 16
Instruções de Porta Serial ASCII Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1
(ABL, ACB, ACL, AHL, ARD, ARL, Execução da Instrução . . . . . . . . . . . . . . . . . . . . . . . . . 16-2
AWA, AWT) Códigos de Erro ASCII . . . . . . . . . . . . . . . . . . . . . . . . . 16-5
Tipos de String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-6
Teste ASCII Para Linha do Buffer (ABL) . . . . . . . . . . . . . . . 16-7
Caracteres ASCII no Buffer (ACB) . . . . . . . . . . . . . . . . . . 16-10
Remoção de Buffer e da Fila ASCII (ACL). . . . . . . . . . . . . 16-12
Linhas ASCII Handshake (AHL) . . . . . . . . . . . . . . . . . . . . 16-14
Leitura ASCII (ARD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-17
Linha de Leitura ASCII (ARL) . . . . . . . . . . . . . . . . . . . . . . 16-20
Anexar Leitura ASCII (AWA) . . . . . . . . . . . . . . . . . . . . . . 16-24
Escrita ASCII (AWT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-28
Capítulo 17
Instruções de String ASCII Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1
(CONCAT, DELETE, FIND, INSERT, Tipos de String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2
MID) Concatenação de String (CONCAT) . . . . . . . . . . . . . . . . . . 17-3
Remoção de String (DELETE) . . . . . . . . . . . . . . . . . . . . . . 17-5
Encontro de String (FIND) . . . . . . . . . . . . . . . . . . . . . . . . . 17-7
Inserção de String (INSERT). . . . . . . . . . . . . . . . . . . . . . . . 17-9
Meio do String (MID) . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-11
Capítulo 18
Instruções de Coversão ASCII Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1
(STOD, STOR, DTOS, RTOS) Tipos de String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2
String Para DINT (STOD) . . . . . . . . . . . . . . . . . . . . . . . . . 18-3
String Para REAL (STOR) . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5
DINT Para String (DTOS) . . . . . . . . . . . . . . . . . . . . . . . . . 18-7
REAL Para String (RTOS) . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9
Apêndice A
Atributos Comuns Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1
Valores Imediatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1
Conversões de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1
SINT ou INT para DINT . . . . . . . . . . . . . . . . . . . . . . . . A-3
Inteiro para REAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-5
DINT para SINT para INT. . . . . . . . . . . . . . . . . . . . . . . A-5
REAL para um inteiro . . . . . . . . . . . . . . . . . . . . . . . . . . A-6
Apêndice B
Atributos de Bloco de Função Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1
Dados Retentivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1
Ordem de Execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2
Respostas de Bloco de Função para Condições de Overflow B-5
Modos de Temporização . . . . . . . . . . . . . . . . . . . . . . . . . . B-5
Parâmetros comuns de instrução para modos de
temporização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7
Características dos modos de temporização. . . . . . . . . . B-9
Controle de Programa/pelo Operador . . . . . . . . . . . . . . . B-10
Index
Notas:
Instruções Binárias
(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Desenergizado (XIC)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
dados BOOL tag bit para ser testado
binários
Execução da 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
dado binário = 1
Exemplo de Lógica
Ladder:
exemplo 1 Se limit_switch_1 estiver energizado, isto habilitará a próxima
instrução (a saída da condição da linha é verdadeira).
(XIO)
Lógica Ladder
Operandos de Lógica
Ladder
Operando Tipo: Formato: Descrição:
dados BOOL tag bit para ser testado
binários
Execução da 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
dado binário = 1
Exemplo da Lógica
Ladder :
exemplo 1 Se limit_switch_2 for desenergizado, isto habilitará a próxima
instrução (a saída da condição da linha é verdadeira).
(OTE)
Lógica Ladder
Operandos de Lógica
Ladder :
Operando Tipo: Formato: Descrição:
dados BOOL tag bit para ser energizado ou desenergizado
binários
Execução de Lógica
Ladder :
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.
Exemplo de Lógica
Ladder :
Quando habilitada, a instrução OTE energiza (acende) light_1. Quando desabilitada, a instrução OTE desenergiza (apaga) light_1.
Retenção (OTL)
Lógica Ladder
Operandos de Lógica
Ladder :
Operando Tipo: Formato: Descrição:
dados BOOL tag bit para ser energizado
binários
Execução de Lógica
Ladder :
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.
Exemplo de Lógica
Ladder :
Quando habilitada, a instrução OTL energiza light_2. Este bit permanece energizado
até ser desenergizado, geralmente por uma instrução OTU.
Retenção (OTU)
Lógica Ladder
Operandos de Lógica
Ladder :
Operando Tipo: Formato: Descrição:
dados BOOL tag bit para ser desenergizado
binários
Execução de Lógica
Ladder :
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.
Exemplo de Lógica
Ladder :
Lógica Ladder
Operandos de Lógica
Ladder : Operando Tipo: Formato: Descrição:
bit de BOOL tag bit de armazenamento interno
armazenam armazena a entrada da condição da linha
ento desde a última vez que a instrução
foi executada
Execução de Lógica
Ladder :
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
bit de armazenamento = 1
bit de armazenamento
permanece energizado
saída da condição da linha
é energizada quando falsa
fim
Exemplo de Lógica Geralmente, você antecede a instrução ONS com uma instrução de
Ladder : 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.
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.
Subida (OSR)
Lógica Ladder
Operandos de Lógica
Ladder :
Operando Tipo: Formato: Descrição:
bit de BOOL tag bit de armazenamento interno
armazenam armazena a entrada da condição da linha
ento desde a última vez que a instrução
foi executada
bit de saída BOOL tag bit para ser energizado
Operandos do Bloco de Esta instrução está disponível no bloco de função como OSRI,
Função: consulte a página 1-15.
entrada da condição da
bit de armazenamento
bit de saída
Execução de Lógica
Ladder :
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
bit de armazenamento = 1
bit de armazenamento
permanece energizado
bit de saída é desenergizado
saída da condição da linha é
energizada quando verdadeira
fim
Exemplo de Lógica
Ladder :
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.
Execução do Bloco de Esta instrução está disponível no bloco de função como OSRI,
Função: consulte a página 1-15.
Descida (OSF)
Lógica Ladder
Operandos de Lógica
Ladder :
Operando Tipo: Formato: Descrição:
bit de BOOL tag bit de armazenamento interno
armazenam armazena a entrada da condição da linha
ento desde a última vez que a instrução
foi executada
bit de saída BOOL tag bit para ser energizado
Operandos do Bloco de Esta instrução está disponível no bloco de função como OSFI,
Função: consulte a página 1-17.
entrada da
bit de
bit de saída
Execução de Lógica
Ladder :
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 falsa
bit de
bit de armazenamento
armazenamento = 0
permanece desenergizado
examinar o bit de bit de saída é desenergizado
armazenamento saída da condição da linha é
energizada quando falsa
bit de armazenamento = 1
bit de armazenamento é
desenergizado
bit de saída é energizado
saída da condição da linha é
energizada quando falsa
fim
Exemplo de Lógica
Ladder :
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.
Execução do Bloco de Esta instrução está disponível no bloco de função como OSFI,
Função: consulte a página 1-17.
Operandos de Lógica Esta instrução está disponível em lógica ladder como OSR, consulte a
Ladder : página 1-10.
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag de bloco FBD_ONESHOT estrutura Estrutura OSRI
Parâmetros de saída
InputBit
InputBitn-1
OutputBit
Execução de Lógica Esta instrução está disponível em lógica ladder como OSR, consulte a
Ladder : página 1-10.
Execução do Bloco de
Função:
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.
Exemplo do Bloco de
Função:
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.
Operandos de Lógica Esta instrução está disponível na lógica ladder como OSF, consulte a
Ladder : página 1-13.
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag de bloco FBD_ONESHOT estrutura Estrutura OSFI
Parâmetros de saída
InputBit
InputBit n-1
OutputBit 40047
Execução de Lógica Esta instrução está disponível na lógica ladder como OSF, consulte a
Ladder : página 1-13.
Execução do Bloco de
Função:
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.
Exemplo do Bloco de
Funçã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.
Energização (TON)
Lógica Ladder
Operandos de Lógica
Ladder :
Operando Tipo: Formato: Descrição:
Temporizado TIMER tag estrutura do temporizador
r
Preset DINT imediato Quanto tempo para retardar (tempo
acumulado)
Accum DINT imediato totalizar os ms que o temporizador contou
valor inicial é normalmente 0
Estrutura:
Operandos do Bloco de Esta instrução está disponível no bloco de função como TONR,
Função: consulte a página 2-14.
Condições de Falha:
Execução da Lógica
Ladder :
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.
bit .DN = 1
examinar bit .DN
bit .DN = 0
bit .EN = 1
.DN é energizado
bit .TT é desenergizado
bit .EN é energizado
valor .ACC não
renova
.ACC = 2.147.483.647
fim
Exemplo de Lógica
Ladder :
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.
Execução do Bloco de Esta instrução está disponível no bloco de função como TONR,
Função: consulte a página 2-14.
Desenergização (TOF)
Lógica Ladder
Operandos de 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 contou
valor inicial é normalmente 0
Estrutura:
Operandos do Bloco de Esta instrução está disponível no bloco de função como TOFR,
Função: consulte a página 2-17.
Condições de Falha:
Execução de Lógica
Ladder :
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.
bit .DN = 0
examinar bit .DN
bit .DN = 1
bit .EN = 0
.ACC = 2.147.483.647
fim
Exemplo de Lógica
Ladder :
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.
Execução do Bloco de Esta instrução está disponível no bloco de função como TOFR,
Função: consulte a página 2-17.
Ligado (RTO)
Lógica Ladder
Operandos de 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
contou
valor inicial é normalmente 0
Estrutura:
Operandos do Bloco de Esta instrução está disponível no bloco de função como RTOR,
Função: consulte a página 2-20.
valor
pré-programado
16651
valor acumulado do temporizador (.ACC)
0
temporizador não atingiu o valor .PRE
Condições de Falha:
Execução Lógica
Ladder :
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.
bit .DN = 1
examinar bit .DN
bit .DN = 0
bit .EN = 1
.ACC ≥ .PRE
bit .TT está energizado examinar .ACC
.ACC = .ACC + (current_time - last_time)
last_time = current_time
.ACC = 2.147.483.647
fim
Exemplo de Lógica
Ladder :
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).
Execução do Bloco de Esta instrução está disponível no bloco de função como RTOR,
Função: consulte a página 2-20.
Operandos de Lógica Esta instrução está disponível em Lógica Ladder como duas
Ladder : instruções separadas: TON (consulte a página 2-2) e RES (consulte a
página 2-35).
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag de bloco FBD_TIMER estrutura estrutura TONR
Parâmetros de saída
TimerEnable
Execução de Lógica Esta instrução está disponível na Lógica Ladder como duas instruções
Ladder : separadas: TON (consulte a página 2-2) e RES (consulte a página
2-35).
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
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.
Operandos de Lógica Esta instrução está disponível na Lógica Ladder como duas instruções
Ladder : separadas: TOF (consulte a página 2-6) e RES (consulte a página
2-35).
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag de bloco FBD_TIMER estrutura estrutura TOFR
Parâmetros de saída
TimerEnable
Execução da Lógica Esta instrução está disponível na Lógica Ladder como duas instruções
Ladder : separadas: TOF (consulte a página 2-6) e RES (consulte a página
2-35).
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
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.
Operandos de Lógica Esta instrução está disponível na Lógica Ladder como duas instruções
Ladder : separadas: RTO (consulte a página 2-10) e RES (consulte a página
2-35).
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_TIMER estrutura estrutura RTOR
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.
TimerEnable
Reset
valor pré-programado
16651
valor acumulado do temporizador (ACC)
0
o temporizador não alcançou o PRE value
Execução de Lógica Esta instrução está disponível na Lógica Ladder como duas instruções
Ladder : separadas: RTO (consulte a página 2-10) e RES (consulte a página
2-35).
Execução do Bloco de
Funçã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 não é alterado
primeira operação da instrução EN, TT e DN são desenergizados
o valor ACC não é alterado
primeira operação do OLC EN, TT e DN são desenergizados
o 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.
Exemplo do Bloco de
Função:
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
Lógica Ladder
Operandos de 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 contou
valor inicial é normalmente 0
Estrutura:
Operandos do Bloco de Esta instrução está disponível no bloco de função como CTUD,
Função: consulte a página 2-31.
valor pré-programado
Execução de Ladder
Relé:
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.
bit .UN = 0
.ACC ≥ .PRE
examinar .ACC
fim
Exemplo de Lógica
Ladder :
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.
Execução do Bloco de Esta instrução está disponível no bloco de função como CTUD,
Função: consulte a página 2-31.
(CTD)
Lógica Ladder
Operandos de 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 contou
valor inicial é normalmente 0
Estrutura:
Operandos de Bloco de Esta instrução está disponível no bloco de função como CTUD,
Função: consulte a página 2-31.
Descrição: A instrução CTD é tipicamente usada com uma instrução CTU que
refere à mesma estrutura do contador.
valor pré-programado
16637
Execução da Lógica
Ladder :
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.
bit .OV = 0
.ACC ≥ .PRE
examinar .ACC
fim
Exemplo de Lógica
Ladder :
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.
Execução do Bloco de Esta instrução está disponível no bloco de função como CTUD,
Função: consulte a página 2-31.
Crescente/Decrescente
(CTUD) Bloco de Função
Operandos de Lógica Esta instrução está disponível em Lógica Ladder como instruções
Ladder : separadas, CTU (página 2-23), CTD (página 2-27), e RES (página
2-35).
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_COUNTER estrutura estrutura CTUD
Parâmetros de saída
CUEnable
valor pré-programado
CDEnable
valor pré-programado
16637
Execução de Lógica Esta instrução está disponível na Lógica Ladder como três instruções
Ladder : separadas, CTU (página 2-23), CTD (página 2-27) e RES (página 2-35).
Execução do Bloco de
Função:
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.
Exemplo do Bloco de
Funçã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.
Lógica Ladder
Operandos de Lógica
Ladder :
Operando Tipo: Formato: Descrição:
estrutura TIMER tag estrutura para reset
CONTROL
COUNTER
!
Flags de Status Aritmético: não afetados
Execução de 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 instrução RES reseta a estrutura especificada.
A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder :
Exemplo: Descrição:
Quando habilitado, resete o timer_3.
Instruções de Entrada/Saída
(MSG, GSV, SSV)
Operandos de Lógica
Ladder a Relé:
Operando: Tipo: Formato: Descrição:
Controle de MESSAGE tag estrutura da mensagem
mensagem
Estrutura:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
bit .EN
bit .EW
bit .ST
41382
1 2 3 4 5 6 7
Onde: Descrição:
1 entrada da condição da linha for verdadeira
.EN está energizado
.EW está energizado
a 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á energizado
a conexão está aberta*
.DN ou .ER é desenergizado
5 a mensagem é enviada
.ST está energizado
.EW é desenergizado.
6 a mensagem foi executada ou apresentou erro e a entrada da
condição da linha ainda é verdadeira
.DN ou .ER está energizado
.ST é 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
*O bit .EW não é energizado se a mensagem não puder ser executada.
Execução de Lógica
Ladder a Relé:
Condição: Ação:
bit .EW = 1
examinar o bit .EW
bit .EW = 0
bit .ST = 1
examinar o bit .ST
bit .ST = 0
bit .DN = 1
examinar bit .DN
bit .DN = 0
não sim
bit .DN = 1
examinar bit .DN sim não
conexão do módulo
em funcionamento
bit .DN = 0
bit .EN é desenergizado executar pedido de mensagem
bit .ER = 1
examinar bit .ER bit .EW está energizado bit .ER está energizado
bit .ER = 0
fim
Condição: Ação:
não sim
sim não
conexão do módulo
em funcionamento
fim
Execução do Bloco de
Funçã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.
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.
Especificação dos Detalhes Depois de inserir a instrução MSG e especificar a estrutura MESSAGE,
use a janela Message Configuration no software de programação para
de Configuração especificar os detalhes da mensagem.
(Guia Configuration)
Se o dispositivo alvo for um: Selecione um dos seguintes tipos de Consulte página:
mensagens:
Dispositivo ControlLogix ou módulo de leitura da tabela de dados CIP 3-14
E/S 1756
escrita da tabela de dados CIP
CIP genérico
controlador CLP-5 leitura de tipo para CLP-5 3-16
escrita de tipo para CLP-5
leitura da faixa de palavras do CLP-5
escrita da faixa de palavras do CLP-5
controlador SLC leitura de tipo para SLC 3-17
leitura de tipo para SLC
Módulo de block-transfer em uma rede de leitura de block-transfer 3-18
E/S Remota Universal
escrita de block-transfer
Controlador CLP-3 leitura de tipo para CLP-3 3-19
escrita de tipo para CLP-3
leitura da faixa de palavra do CLP-3
escrita da faixa de palavra do CLP-3
Controlador CLP-2 leitura sem proteção do CLP-2 3-20
escrita sem proteção do CLP-2
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.
1 1 1 2 1
2 2 2 4 3
3 3 3
4 4 4
Os comandos de tipo mantêm o valor e a estrutura dos dados. 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.
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.
1 1 1 2 1
2 2 2 4 3
3 3 3
4 4 4
Os comandos de tipo mantêm o valor e a estrutura dos dados. 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.
Especificações dos Ao configurar uma instrução MSG, você especifica estes detalhes na
guia Communication.
Detalhes de Comunicação
(Guia Communication)
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
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
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
Percurso: 1, 1
Onde: Indica:
1 a porta da placa de fundo do controlador Logix5550 no chassi local
1 o número da ranhura do módulo 1756-DHRIO no chassi local
Esse tipo de mensagem: Usando esse método de Usa uma Que você
comunicação: conexão: pode colocar
no cache:
leitura ou escrita da tabela de CIP ✓ ✓
dados CIP
CLP2, CLP3, CLP5 ou SLC CIP
(todos os tipos)
CIP com Identificação de
Fonte
DH+ ✓
CIP genérico N/A
leitura ou escrita em N/A ✓ ✓
block-transfer
Use a tabela a seguir para selecionar uma opção de cache para uma
mensagem.
Operandos de Lógica
Ladder a Relé:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
! pessoais.
Condições de Falha:
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for Obtenha ou configure o valor especificado.
verdadeira A saída da condição da linha está definida como verdadeira.
Execução do Bloco de
Funçã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.
MotorEncoderTestIncrement REAL GSV A quantidade de movimento necessária para iniciar o teste MRHD –
SSV 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 GSV O volume de erro de posição que o servomódulo tolera ao fornecer
SSV uma indicação de status travado na posição verdadeira.
PositionServoBandwidth REAL GSV A largura de faixa de ganho da unidade que o controlador usa para
SSV calcular os ganhos para a instrução MAAT – Motion Apply Axis
Tuning (Ajuste do Eixo para Aplicação de Movimento).
ProgrammedStopMode SINT GSV O tipo de parada a ser realizada no eixo.
SSV Valor: Significado:
0 parada rápida
1 desligamento rápido
2 desligamento do hardware
RegistrationPosition REAL GSV A posição de registro para o eixo.
RegistrationTime DINT GSV Você pode usar este atributo para fornecer um registro de data e hora
para capturas com base no tempo:
• O atributo RegistrationTime contém os 32 bits mais baixos do
registro de data e hora CST de um evento de registro de eixo.
• O registro de data e hora CST é medido em microssegundos.
• Para interpolar uma posição baseada no evento de registro de
um eixo:
1. Use uma instrução GSV para obter o valor do atributo
RegistrationTime.
2. Use uma instrução SSV para configurar o atributo
InterpolationTime para o valor do atributo RegistrationTime.
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.
SSV SSV
Set System Value Set System Value
Class name MESSAGE Class name MESSAGE
Instance name msg_1 Instance name msg_1
Attribute Name ConnectionPath Attribute Name MessageType
Source msg_1_path[0] Source msg_1_type
6 2
msg_1.EN MSG
/ Type - CIP Data Table Write EN
Message Control msg_1 ... DN
ER
42614
Onde: É:
msg_1 mensagem cujo atributo você quer mudar
msg_1_type tag que armazena o valor do atributo MessageType
tag_a tag que armazena um 0
msg_1_path tag de matriz que armazena o novo caminho de conexão para a
mensagem
Com base no status de SW.1, coloque o valor apropriado no atributo disableflag do programa discrete.
Notas:
Instruções de Comparação
(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando: Tipo: Formato: Descrição:
Expressão SINT imediato uma expressão composta por tags
INT tag e/ou valores imediatos separados por
DINT operadores
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Flags de Status Aritmético: A instrução CMP afeta somente os flags de status aritmético se a
expressão contiver um operador (ex.: +, −, *, /) que afete os flags de
status aritmético.
Execução de 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 expressão é
verdadeira saída da condição da linha é
avalie a expressão
energizada quando verdadeira
a expressão é falsa
fim
Exemplo de Lógica
Ladder:
Se a instrução CMP considerar a expressão
verdadeira, a saída da condição da linha será
verdadeira.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Expressões CMP
Operadores válidos
Formatação de expressões
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
Operandos de Lógica
Ladder:
Operandos do Bloco de
Função:
Operando: Tipo: Formato: Descrição:
tag de bloco FBD_COMPARE estrutura estrutura EQU
Parâmetros de saída
Descrição: Use a instrução EQU para comparar dois números ou dois strings de
caracteres ASCII. Quando comparar strings:
Execução de 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
não
fim
Exemplo de Lógica
Ladder:
Se value_1 for igual a value_2, a saída da condição da linha é definida como verdadeira.
Se string_1 for igual a string_8, a saída da condição da linha é definida como verdadeira.
EQU
Equal
Neste exemplo, os dois strings são iguais. Cada caracter em string_1 corresponde ao
Source A string_1
'ABC'
caracter em string_8.
Source B string_8
'ABC'
42621
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operandos do Bloco de
Função:
Operando: Tipo: Formato: Descrição:
tag de bloco FBD_COMPARE estrutura estrutura GEQ
Parâmetros de saída
Execução de 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
não
fim
Exemplo de Lógica
Ladder:
Se string_2 for maior que string_8, a saída da condição da linha é definida como
GEQ verdadeira.
Grtr Than or Eql (A>=B)
Source A string_2
'ACA' Neste exemplo, string_2 é maior que string_8. Quando os dois strings são organizados
Source B string_8 pelos valores hexadecimais, string_2 aparece depois de string_8. (Ou seja, em uma lista
'ABC' telefônica, ACA apareceria depois de ABC.)
42621
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operandos do Bloco de
Função:
Operando: Tipo: Formato: Descrição:
tag de bloco FBD_COMPARE estrutura estrutura GRT
Parâmetros de saída
Execução de 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
não
fim
Exemplo de Lógica
Ladder:
Se value_1 for maior que value_2, a saída da condição da linha é definida como
verdadeira.
Se string_3 for maior que string_8, a saída da condição da linha é definida como
GRT verdadeira.
Greater Than (A>B)
Source A string_3
'ACA' Neste exemplo, string_3 é maior que string_8. Quando os dois strings são organizados
Source B string_8 pelos valores hexadecimais, string_3 aparece após string_8. (Ou seja, em uma lista
'ABC' telefônica, ACA apareceria depois de ABC.)
42621
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operandos do Bloco de
Função:
Operando: Tipo: Formato: Descrição:
tag de bloco FBD_COMPARE estrutura estrutura LEQ
Parâmetros de saída
Execução de 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
não
fim
Exemplo de Lógica
Ladder:
Se string_4 for menor ou igual a string_8, a saída da condição da linha é definida como
LEQ
verdadeira.
Less Than or Eql (A<=B)
Source A string_4
'AAD' Neste exemplo, string_4 é menor que string_8. Quando os dois strings são organizados pelos
Source B string_8 valores hexadecimais, string_4 aparece antes de string_8. (Ou seja, em uma lista telefônica,
'ABC' AAD apareceria antes de ABC.)
42621
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operandos do Bloco de
Função:
Parâmetros de saída
Execução de 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
não
fim
Exemplo de Lógica
Ladder:
Se value_1 for menor que value_2, a saída da condição da linha é definida como
verdadeira.
Se string_5 for menor que string_8, a saída da condição da linha é definida como
LES
Less Than (A<B)
verdadeira.
Source A string_5
'AAD' Neste exemplo, string_5 é menor que string_8. Quando os dois strings são organizados
Source B string_8 pelos valores hexadecimais, string_5 aparece antes de string_8. (Ou seja, em uma lista
'ABC' telefônica, AAD apareceria antes de ABC.)
42621
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn é falso EnableOut está desenergizado.
EnableIn é verdadeiro A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operando: Tipo: Formato: Descrição:
Limite Inferior SINT imediato tag valor do limite inferior
INT
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Test (Teste) SINT imediato tag valor de acordo com o teste
INT
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Limite SINT imediato tag valor do limite superior
Superior INT
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Operandos do Bloco de
Função:
Operando: Tipo: Formato: Descrição:
tag de bloco FBD_LIMIT estrutura estrutura LIM
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.
0
0
−1 +1
−1 +1
limite inferior
limite superior
limite superior
limite inferior
−(n+1) +n
−(n+1) +n
n = valor máximo n = valor máximo
Execução de 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 comparação é
verdadeira saída da condição da linha é
avalie limite
energizada quando verdadeira
a comparação
é falsa
fim
Exemplo de Lógica
Ladder:
exemplo 1
exemplo 2
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn é falso EnableOut está desenergizado.
EnableIn é verdadeiro A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
LowLimit ≤ HighLimit
Se LowLimit ≤ Test_value ≤ HighLimit, a instrução LIM energiza Dest, que habilita function_block_C.
LowLimit ≥ HighLimit
Se LowLimit ≤ Test_value ≤ HighLimit, a instrução LIM energiza Dest, que habilita function_block_C.
Operandos de Lógica
Ladder:
Operando: Tipo: Formato: Descrição:
Source SINT imediato valor para ser testado comparando-se
INT tag com Compare
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Mask SINT imediato define que bits são bloqueados ou os
INT tag que passam
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Compare SINT imediato valor a ser testado em relação a
INT tag Source
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Operandos do Bloco de
Função:
Operando: Tipo: Formato: Descrição:
tag de bloco FBD_MASK_EQUAL estrutura estrutura MEQ
Parâmetros de saída
Prefixo: Descrição:
16# hexadecimal
por exemplo; 16#0F0F
8# octal
por exemplo; 8#16
2# binário
por exemplo; 2#00110011
Execução de 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
não
fim
Exemplo de Lógica
Ladder:
exemplo 1
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_1 0 1 0 1 0 1 0 1 1 1 1 1 x x x x value_2 0 1 0 1 0 1 0 1 1 1 1 1 x x x x
mascarado mascarado
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).
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_1 x x x x x x x x x x x x 1 1 1 1 value_2 x x x x x x x x x x x x 0 0 0 0
mascarado mascarado
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).
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Source 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 Compare 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0
Mask1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 Mask1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
Source 0 1 0 1 0 1 0 1 1 1 1 1 x x x x Compare 0 1 0 1 0 1 0 1 1 1 1 1 x x x x
mascarado mascarado
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).
Operandos de Lógica
Ladder:
Operandos do Bloco de
Função:
Parâmetros de saída
Execução de 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
não
fim
Exemplo de Lógica
Ladder:
Se value_1 não for igual a value_2, a saída da condição da linha é definida como
verdadeira.
Se string_6 não for igual a string_8, a saída da condição da linha é definida como verdadeira.
NEQ
Not Equal
Neste exemplo, string_6 não é igual a string_8. Os dois strings não correspondem
Source A string_6
completamente.
'ABC$00'
Source B string_8
'ABC'
42621
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Notas:
Instruções Matemáticas/Cálculo
(CPT, ADD, SUB, MUL, DIV, MOD, SQR, NEG, ABS)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Expressão SINT imediato uma expressão composta por tags
INT tag e/ou valores imediatos separados por
DINT operadores
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Execução 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 A instrução avalia a Expressão e coloca o resultado no Destino.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
exemplo 1
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 2
Operadores válidos
Formatação de expressões
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
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source A SINT imediato valor a ser somado à Source B (Fonte
INT tag B)
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Source B SINT imediato valor a ser somado à Source A (Fonte
INT tag A)
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH estrutura estrutura ADD
Parâmetros de saída
Execução 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 Destination = Source A + Source B (Destino = Fonte A + Fonte B)
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source A SINT imediato valor a partir do qual se subtrai a
INT tag Source B
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Source B SINT imediato valor a ser subtraído de Source A
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH estrutura estrutura SUB
Parâmetros de saída
Execução 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 Destino = Fonte B - Fonte A
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source A SINT imediato valor do multiplicando
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Source B SINT imediato valor do multiplicador
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH estrutura estrutura MUL
Parâmetros de saída
Execução 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 Destino = Fonte B x Fonte A
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Execução de Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source A SINT imediato valor do dividendo
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Source B SINT imediato valor do divisor
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH estrutura estrutura DIV
Parâmetros de saída
Condições de Falha:
Execução 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 Destination = Fonte B / Fonte A
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução DIV divide float_value_1 por float_value_2 e coloca o resultado
em divide_result.
Execução do Bloco de
Funçã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 está definido A instrução é executada.
EnableOut é energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source A SINT imediato valor do dividendo
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Source B SINT imediato valor do divisor
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH estrutura estrutura MOD
Parâmetros de saída
Condições de Falha:
Execução 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 Destination = Source A – ( TRN ( Source A / Source B ) * Source B )
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
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.
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato calcula a raiz quadrada desse valor
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura SQR
Parâmetros de saída
Execução 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
Destination = Source
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução SQR calcula a raiz quadrada de value_1 e coloca o resultado
em sqr_result .
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato valor a ser transformado em negativo
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura NEG
Parâmetros de saída
Execução 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 Destination = 0 − Source
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato valor do qual se tira o valor absoluto
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura ABS
Parâmetros de saída
Execução 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 Destination = | Source |
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Notas:
Instruções de Movimentação/Lógica
(MOV, MVM, BTD, MVMT, BTDT, CLR, AND, OR, XOR, NOT)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato valor a ser movido (copiar)
INT tag
DINT
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Execução 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 A instrução copia Source em Destination.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
(MVM)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato valor a ser movido
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Mask SINT imediato quais bits devem ser bloqueados ou
INT tag podem passar
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Destination SINT tag tag para armazenar o resultado
INT
DINT
Operandos do Bloco de Esta instrução está disponível no bloco de função como MVMT,
Função: 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.
Prefixo: Descrição:
16# hexadecimal
por exemplo; 16#0F0F
8# octal
por exemplo; 8#16
2# binário
por exemplo; 2#00110011
Execução 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 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.
Exemplo de Lógica
Ladder:
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_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
Execução do Bloco de Esta instrução está disponível no bloco de função como MVMT,
Função: consulte a página 6-7.
Operandos de Lógica Esta instrução está disponível em lógica de ladder a relé como MVM,
Ladder: consulte a página 6-4.
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MASKED_MOVE estrutura estrutura MVMT
Parâmetros de saída
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.
Prefixo: Descrição:
16# hexadecimal
por exemplo; 16#0F0F
8# octal
por exemplo; 8#16
2# binário
por exemplo; 2#00110011
Execução de Lógica Esta instrução está disponível em lógica ladder como MVM, consulte a
Ladder: página 6-4.
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn é desenergizado EnableOut é desenergizado.
EnableIn é energizado A instrução executa.
EnableOut é energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Etapa 1
O 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 2
A 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).
.
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
Bit (BTD)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato tag que contém os bits a serem
INT tag movimentados
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Bit Source DINT imediato número do bit (número do bit menos
(0-31 DINT) significativo) onde a movimentação
(0-15 INT) foi iniciada
(0-7 SINT) deve estar dentro da faixa válida de
tipos de dados Source
Destination SINT tag tag para onde os bits serão movidos
INT
DINT
Bit de Destino DINT imediato o número do bit (número de bit menos
(0-31 DINT) significativo) a partir de onde se inicia
(0-15 INT) a cópia de bits de Source
(0-7 SINT) deve estar dentro da faixa válida de
tipos de dados Destination
Length DINT imediato (1-32) número de bits a ser movido
Operandos do Bloco de Esta instrução está disponível no bloco de função como BTDT,
Função: 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.
Execução 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 A instrução copia e muda os bits de Source para Destination.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
exemplo 1
exemplo 2
Bit Source
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
Bit de Destino
value_2 antes da 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
instrução BTD
value_2 depois da 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
instrução BTD
Execução do Bloco de Esta instrução está disponível no bloco de função como BTDT,
Função: consulte a página 6-13.
Operandos de Lógica Esta instrução está disponível em lógica ladder como BTD, consulte a
Ladder: página 6-10.
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_BIT_FIELD_DISTRIBUTE estrutura estrutura BTDT
Parâmetros de saída
Execução de Lógica Esta instrução está disponível em lógica ladder como BTD, consulte a
Ladder: página 6-10.
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn é desenergizado EnableOut é desenergizado.
EnableIn é energizado A instrução executa.
EnableOut é energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
function_block_D
Etapa 1
O 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 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
Etapa 2
O 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.
DestBit SourceBit
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
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Destination SINT tag tag a ser zerado
INT
DINT
REAL
Execução 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 A instrução zera Destination.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source A SINT imediato valor para AND com Source B
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Source B SINT imediato valor para AND com Source A
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Destination SINT tag armazena o resultado
INT
DINT
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_LOGICAL estrutura estrutura AND
Parâmetros de saída
Execução 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 A instrução realiza uma operação bitwise AND.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
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.
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
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn é desenergizado EnableOut é desenergizado.
EnableIn é energizado A instrução executa.
EnableOut é energizado.
Exemplo do Bloco de
Função
function_block_C
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.
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
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source A SINT imediato valor para OR com Source B
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Source B SINT imediato valor para OR com Source A
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Destination SINT tag armazena o resultado
INT
DINT
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_LOGICAL estrutura estrutura OR
Parâmetros de saída
Execução 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 A instrução realiza uma operação bitwise OR.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
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
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn é desenergizado EnableOut é desenergizado.
EnableIn é energizado A instrução executa.
EnableOut é energizado.
Exemplo do Bloco de
Função:
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.
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
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source A SINT imediato valor para XOR com Source B
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Source B SINT imediato valor para XOR com Source A
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Destination SINT tag armazena o resultado
INT
DINT
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_LOGICAL estrutura estrutura XOR
Parâmetros de saída
Execução 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 A instrução realiza uma operação bitwise OR.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
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.
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
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn é desenergizado EnableOut é desenergizado.
EnableIn é energizado A instrução executa.
EnableOut é energizado.
Exemplo do Bloco de
Função:
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.
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
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato valor para NOT
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Destination SINT tag armazena o resultado
INT
DINT
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_CONVERT estrutura estrutura NOT
Parâmetros de saída
Execução 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 A instrução realiza uma operação bitwise NOT.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução NOT realiza uma operação de bitwise NOT em value_1 e coloca o
resultado em value_result_not.
value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1
value_result_not 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn é desenergizado EnableOut é desenergizado.
EnableIn é energizado A instrução executa.
EnableOut é energizado.
Exemplo do Bloco de
Função:
function_block_C
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
Notas:
Seleção do Modo de Para as instruções FAL e FSC, o modo informa o controlador sobre
como distribuir a operação de matriz.
Operação
Se você quiser: Selecione este
modo:
operar em todos os elementos especificados em uma All (Todos)
matriz antes de prosseguir para a próxima instrução
distribuir a operação de matriz em várias varreduras Numerical
inserir o número de elementos para operar por varredura (Numérico)
(1-2147483647)
manipular um elemento da matriz cada vez que a entrada Incremental
da condição da linha passa de falsa para verdadeira (Incremento)
16639
uma
varredura
bit .EN
bit DN
zerar os bits de status e
zerar o valor .POS
varredura da instrução
uma varredura
segunda varredura
próxima varredura
16641
bit .EN
bit DN
varredura da instrução
16643
uma
varredura
bit .EN
bit DN
40014
varredura da instrução
Lógico (FAL)
lógica Ladder
Operandos de 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 matriz
valor inicial é normalmente 0
Mode DINT imediato como distribuir a operação
selecione INC, ALL ou insira um
número
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Expressão SINT imediato tag uma expressão composta por tags
INT e/ou valores imediatos separados por
DINT operadores
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Estrutura:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução de Lógica
Ladder:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
.POS = .POS + 1
sim
.LEN = 0
não
sim
.POS = 0
não
não .POS < .LEN
não
modo .LEN>
bit .DN é energizado
bit .EN é energizado
sim
modo .LEN>
bit .DN é energizado
bit .EN é
desenergizado
modo
numérico
página 7-14
fim
Condição: Ação:
não não
examinar bit .DN .LEN = 0 modo INC modo ALL
loop_count =
loop_count – 1
não
loop_count < 0 .POS = .POS + 1
sim
avaliar a expressão
não
examine S:V
sim
não
.POS = .LEN
sim
fim
Condição: Ação:
modo
INC
bit .EN = 1
examinar bit .EN
bit .EN = 0
bit = 1
examinar .POS = .POS + 1
bit interno
bit = 0
sim sim
.POS ≥ .LEN .POS = 0
não não
fim
Condição: Ação:
modo
ALL
sim sim
.POS ≥ .LEN .POS = 0
não não
página 7-11
fim
Condição: Ação:
modo
numérico
bit .EN = 1
examinar bit .EN
bit .EN = 0
.POS = .POS + 1
bit = 1
examinar
bit interno
bit = 0
sim sim
.POS ≥ .LEN .POS = 0
não não
.POS = .POS – 1
não
modo .LEN> modo .LEN ≥
sim
fim
modo ≥ sim
loop_count comum
página 7-11
não
Exemplo de Lógica
Ladder:
cópia de matriz para matriz
Quando habilitada, a instrução FAL copia cada elemento de
array_2 na mesma posição dentro de array_1.
Expressão Destination
array_2[control_2.pos] array_1[control_2.pos]
Expressão Destination
value_1 array_2[0,control_2.pos]
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ão Destination
array_1[control_1.pos] value_1
Expressão Destination
array_2[control_2.pos] / array_3[control_2.pos] array_1[control_2.pos]
Expressão Destination
value_1 + value_2 array_1[control_1.pos]
Expressão Destination
array_1[control_1.pos] + value_1 array_3[control_1.pos]
Expressão Destination
value_1 + array_1[control_1.pos] value_2
Expressão Destination
array_1[control_1.pos] * array_3[control_1.pos] value_1
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Expressões FAL
Operadores válidos
Expressões de formatação
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
Arquivo (FSC)
Lógica Ladder
Operandos de Lógica
Ladder:
FSC
Operando: Tipo: Formato: Descrição:
File Search/Compare EN
Control ? DN Control CONTROL tag estrutura de controle para a operação
Length ? ER
Position ? Length DINT imediato número de elementos na matriz a
Mode ? serem manipulados
Expression ?
Position DINT imediato offset na matriz
42577 valor inicial é normalmente 0
Mode DINT imediato como distribuir a operação
selecione INC, ALL ou insira um
número
Expressão SINT imediato uma expressão composta por tags
INT tag e/ou valores imediatos separados por
DINT operadores
REAL
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Estrutura:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução de Lógica
Ladder:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
.POS = .POS + 1
sim
.LEN = 0
não
sim
.POS = 0
não
não .POS < .LEN
não
modo .LEN>
bit .DN é energizado
bit .EN é energizado
sim
modo .LEN>
bit .DN é energizado
bit .EN é
desenergizado
modo
numérico
página 7-14
fim
Condição: Ação:
não não
examinar bit .IN .LEN = 0 modo INC modo ALL
bit .DN = 1
bit .IN = 0 sim sim sim
bit .DN = 0
loop_count =
loop_count – 1
não
loop_count < 0 .POS = .POS + 1
sim
avaliar comparação
não
correspondência
sim
não
.POS = .LEN
sim
fim
Condição: Ação:
modo
INC
bit .EN = 1
examinar bit .EN
bit .EN = 0
bit = 1
examinar .POS = .POS + 1
bit interno
bit = 0
sim sim
.POS ≥ .LEN .POS = 0
não não
página 7-24
fim
Condição: Ação:
modo
ALL
sim sim
.POS ≥ .LEN .POS = 0
não não
página 7-24
fim
Condição: Ação:
modo
numérico
bit .EN = 1
examinar bit .EN
bit .EN = 0
.POS = .POS + 1
bit = 1
examinar
bit interno
bit = 0
sim sim
.POS ≥ .LEN .POS = 0
não não
sim
modo sim
≥loop_count comum
página 7-24
não
Exemplo de Lógica
Ladder:
exemplo 1
buscar uma correspondência entre
duas matrizes
Quando habilitada, a instrução FSC compara cada um dos 10 primeiros elementos em array_1 com os elementos correspondentes em array_2.
00000000000000000000000000000000 00000000000000000000000000000000 0
00000000000000000000000000000000 00000000000000000000000000000000 1
00000000000000000000000000000000 00000000000000000000000000000000 2
00000000000000000000000000000000 00000000000000000000000000000000 3 A instrução FSC descobre que esses
elementos não são iguais. A instrução
00000000000000001111111111111111 11111111111111110000000000000000 4 energiza os bits .FD e .IN. O valor .POS (4)
11111111111111111111111111111111 11111111111111111111111111111111 5 indica a posição dos elementos que são
diferentes. Para continuar a realizar a
11111111111111111111111111111111 11111111111111111111111111111111 6
comparação no restante da matriz, zere o
11111111111111111111111111111111 11111111111111111111111111111111 7 bit .IN.
11111111111111111111111111111111 11111111111111111111111111111111 8
11111111111111111111111111111111 11111111111111111111111111111111 9
exemplo 2
buscar uma correspondência em uma
matriz
00000000000000000000000000000000 0
00000000000000000000000000000000 1
00000000000000000000000000000000 2
00000000000000000000000000000000 3
A instrução FSC descobre que esse
11111111111111110000000000000000 11111111111111110000000000000000 4 elemento da matriz é igual a MySearchKey.
A instrução energiza os bits .FD e .IN. O
11111111111111111111111111111111 5
valor .POS (4) indica a posição dos
11111111111111111111111111111111 6 elementos iguais. Para continuar a realizar
11111111111111111111111111111111 7 a comparação no restante da matriz, zere o
bit .IN.
11111111111111111111111111111111 8
11111111111111111111111111111111 9
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Expressões FSC
Operadores válidos
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
Operandos de Lógica
Ladder:
COP Operando Tipo: Formato: Descrição:
Copy File
Source ? Source SINT tag elemento inicial para cópia
Dest ? INT Importante: os operandos Source e
Length ? DINT Destination devem ter o mesmo tipo
REAL de dado ou podem ocorrer resultados
estrutura inesperados.
CPS
Synchronous Copy File Destination SINT tag elemento inicial a ser sobrescrito
Source ? INT por Source
Dest ? DINT Importante: os operandos Source e
Length ? REAL Destination devem ter o mesmo tipo
estrutura de dado ou podem ocorrer resultados
42577 inesperados.
Length DINT imediato tag número de elementos em Destination
a serem copiados
Operandos do Bloco de
Função: Estas instruções não estão disponíveis no bloco de função.
!
As instruções COP e CPS operam na memória de dados contígua e
realizam uma cópia de memória byte por byte, o que requisita um
entendimento do layout da memória do controlador.
Execução de 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.
não
source_address = Source
destination_address = sim
end_address
não
destination_address =
destination_address + 1
Exemplo de Lógica
Ladder:
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
exemplo 3
A matriz project_data (100 elementos) armazena uma variedade de valores que mudam em momentos
CPS diferentes na aplicação. Para enviar uma imagem completa de project_data a uma instância por vez
Synchronous Copy File
para outro controlador, a instrução CPS copia project_data para produced_array.
Source project_data[0]
Dest produced_array[0] • Enquanto a instrução CPS copia os dados, nenhuma atualização de E/S ou outras tarefas
Length 100 podem mudar os dados.
• O tag produced_array produz os dados em uma rede ControlNet para o consumo por outros
42578
controladores.
• Para usar a mesma imagem de dados (ou seja, uma cópia síncrona de dados), o controladore
consumidor usa uma instrução CPS para copiar os dadps de um tag consumido para outro tag
para uso na aplicação.
exemplo 4
Local:0:I.Data aramzena os dados de entrada para a rede DeviceNet que está conectada ao módulo
CPS
Synchronous Copy File 1756-DNB no slot 0. Para sincronizar as entradas com a aplicação, a instrução CPS copia os dados de
Source Local:0:I.Data[0] entrada para input_buffer.
Dest input_buffer[0] • Enquanto a instrução CPS copia os dados, nenhuma atualização de E/S pode mudar os dados.
Length 20
• Conforme a aplicação é executada, ela usa os dados de entrada em input_buffer para suas
entradas.
42578
exemplo 5
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.
array_timer[4]
•
•
•
array_timer[9] Finalmente, a instrução copia os
valores timer[9] em timer[10]
array_timer[10]
Execução do Bloco de
Função: Estas instruções não estão disponíveis no bloco de função.
(FLL)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando: Tipo: Formato: Descrição:
Source SINT imediato tag elemento para cópia
INT Importante: os operandos Source e
DINT Destination devem ter o mesmo tipo
REAL de dado ou podem ocorrer resultados
inesperados.
Destination SINT tag elemento inicial a ser sobrescrito
INT por Source
DINT Importante: os operandos Source e
REAL Destination devem ter o mesmo tipo
estrutura 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
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de 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
não
source_address = Source
destination_address = sim
end_address
não
fim
Exemplo de Lógica
Ladder:
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Array SINT tag da encontre a média dos valores nessa matriz
INT matriz especifique o primeiro elemento do grupo de
DINT elementos para a média
REAL não use CONTROL.POS em subscrito
Dimension DINT imediato a dimensão a ser usada
to vary (0, 1, 2) depende do número de dimensões, a
seqüência é
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]
Destination SINT tag resultado da operação
INT
DINT
REAL
Control CONTROL tag estrutura de controle para a operação
Length DINT imediato número de elementos da matriz para a média
Position DINT imediato elemento atual na matriz
valor inicial é normalmente 0
Estrutura:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução de Lógica
Ladder:
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.
bit .DN = 0
examinar bit .DN
bit .DN = 1
fim
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édia
Modo = ALL
Para detalhes sobre como a instrução FAL é executada, consulte a página 7-9.
Exemplo de Lógica
Ladder:
exemplo 1
array_dint é DINT[4,5]
dimensão 1
su
b
sc
0 1 2 3 4
ri t
os
AVE = 19
0 20 19 18 17 16 + 14 + 9 + 4- = 46
------------------------------------ ------ = 11.5
4 4
1 15 14 13 12 11
dimensão 0
dint_ave = 12
2 10 9 8 7 6
3 5 4 3 2 1
exemplo 2
array_dint é DINT[4,5]
dimensão 1
su
b
sc
0 1 2 3 4
ri t
os
AVE = 5---------------------------------------
0 20 19 18 17 16 + 4 + 3 + 2 + 1- = 15 ------ = 3
5 5
1 15 14 13 12 11
dimensão 0 dint_ave = 3
2 10 9 8 7 6
3 5 4 3 2 1
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(SRT)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando: Tipo: Formato: Descrição:
Array SINT tag da matriz para classificação
INT matriz especifique o primeiro elemento do grupo de
DINT elementos para classificação
REAL não use CONTROL.POS em subscrito
Dimension DINT imediato a dimensão a ser usada
to vary (0, 1, 2) depende do número de dimensões, a
seqüência é
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]
Control CONTROL tag estrutura de controle para a operação
Length DINT imediato número de elementos da matriz
para classificação
Position DINT imediato elemento atual na matriz
valor inicial é normalmente 0
Estrutura:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução de Lógica
Ladder:
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.
bit .DN = 0
examinar bit .DN
bit .DN = 1
fim
entrada da condição da linha for verdadeira A instrução SRT classifica os elementos especificados da matriz em ordem crescente.
Exemplo de Lógica
Ladder:
exemplo 1
Antes Depois
dimensão 1 dimensão 1
su
su
b
b
sc
sc
0 1 2 3 4 0 1 2 3 4
rit
ri t
os
os
0 20 19 18 17 16 0 20 19 3 17 16
1 15 14 13 12 11 1 15 14 8 12 11
dimensão 0 dimensão 0
2 10 9 8 7 6 2 10 9 13 7 6
3 5 4 3 2 1 3 5 4 18 2 1
exemplo 2
int _array é DINT[4,5]
Antes Depois
dimensão 1 dimensão 1
su
su
bs
bs
cri
cri
0 1 2 3 4 0 1 2 3 4
t
t
os
os
0 20 19 18 17 16 0 20 19 18 17 16
1 15 14 13 12 11 1 15 14 13 12 11
dimensão 0 dimensão 0
2 10 9 8 7 6 2 6 7 8 9 10
3 5 4 3 2 1 3 5 4 3 2 1
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(STD)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando: Tipo: Formato: Descrição:
Array SINT tag da encontra o desvio padrão dos valores
INT matriz nessa matriz
DINT especifica o primeiro elemento do grupo de
REAL elementos a serem usados no cálculo do
desvio padrão
não use CONTROL.POS em subscrito
Um tag SINT ou INT é convertido para um valor DINT pela extensão de sinal.
Dimension DINT imediato a dimensão a ser usada
to vary (0, 1, 2) depende do número de dimensões, a
seqüência é
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]
Destination REAL tag 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 matriz
valor inicial é normalmente 0
Estrutura:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
N
2
∑
[ 〈 X( start + i ) – AVE〉 ]
Desvio Padrão = i = 1
--------------------------------------------------------------------
(N – 1)
Onde:
• start = subscrito dimension-to-vary do operando array
• xi = elemento da tag na matriz
• N = número de elementos especificados na matriz
• AVE =
N
x ( start + i )
∑
i = 1
-----------------------------------------
N
Condições de Falha:
Execução de Lógica
Ladder:
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.
bit .DN = 0
examinar bit .DN
bit .DN = 1
fim
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ão
Modo = ALL
Para detalhes sobre como a instrução FAL é executada, consulte a página 7-9.
Exemplo de Lógica
Ladder:
exemplo 1
array_dint é DINT[4,5]
dimensão 1
su
bs
cri
0 1 2 3 4
ost
0 20 19 18 17 16
1 15 14 13 12 11
dimensão 0
2 10 9 8 7 6
3 5 4 3 2 1
AVE = 16 + 11 + 6 + 1- = 34
------------------------------------ ------ = 8.5
4 4
2 2 2 2
〈 16 – 8.5〉 + 〈 11 – 8.5〉 + 〈 6 – 8.5〉 + 〈 1 – 8.5〉 - = 6.454972
STD = --------------------------------------------------------------------------------------------------------------------------
〈 4 – 1〉
real_std = 6,454972
exemplo 2
array_dint é DINT[4,5]
dimensão 1
su
b
sc
0 1 2 3 4
rit
os
0 20 19 18 17 16
1 15 14 13 12 11
dimensão 0
2 10 9 8 7 6
20 + 19 + 18 + 17 + 16- = 90 3 5 4 3 2 1
AVE = ------------------------------------------------------ ------ = 18
5 5
2 2 2 2 2
〈 20 – 18〉 + 〈 19 – 18〉 + 〈 18 – 18〉 + 〈 17 – 18〉 + 〈 16 – 18〉 - = 1.581139
STD = -----------------------------------------------------------------------------------------------------------------------------------------------------------
〈 5 – 1〉
real_std = 1,581139
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(SIZE)
Lógica Ladder
Operandos de Lógica
Ladder:
SIZE
Size in Elements Operando: Tipo: Formato: Insira:
Source ? Source SINT tag da primeiro elemento de uma matriz na qual a
??
Dim. To Vary ?
INT matriz instrução deve ser operada
Size ? DINT
?? REAL
estrutura
42622
tipo de string
Dimensão a DINT imediato dimensão a ser usada:
ser Variada (0, 1, 2)
Para o tamanho da: Insira:
primeira dimensão 0
segunda dimensão 1
terceira dimensão 2
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
a entrada da condição da linha é falsa A saída da condição da linha é definida como falsa.
a entrada da condição da linha é verdadeira • A instrução é executada.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Exemplo 1
Encontra o número de elementos na dimensão 0 (primeira dimensão) de array_a. Armazena o
SIZE tamanho em array_a_size. Neste exemplo, a dimensão 0 de array_a tem 10 elementos.
Size in Elements
Source array_a[0]
255
Dim. To Vary 0
Size array_a_size
10
42623
Exemplo 2
Encontra o número de elementos no membro DATA de string_1, que é um string. Armazena o
SIZE tamanho em string_1_size.
Size in Elements
Source string_1.DATA[0]
'$00' Neste exemplo, o membro DATA de string_1 tem 82 elementos. (O string usa o tipo de dados
Dim. To Vary 0 STRING padrão.) Como cada elemento mantém um caracter, string_1 pode conter até 82
Size string_1_size caracteres.
82
42623
Exemplo 3
Strings_a é uma matriz de estruturas de string. A instrução SIZE encontra o número de
SIZE
elementos no membro DATA da estrutura de string e armazena o tamanho em data_size_a.
Size in Elements
Source strings_a[0].DATA[0]
'$00' Neste exemplo, o membro DATA tem 24 elementos. (A estrutura de string tem um comprimento
Dim. To Vary 0 especificado pelo usuário de 24).
Size data_size_a
24
42623
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Notas:
Esquerda (BSL)
Lógica Ladder a Relé
Operandos de Lógica
Ladder a Relé:
Operando Tipo: Formato: Descrição:
Array DINT tag da matriz a ser modificada
matriz especifique o primeiro elemento do grupo de
elementos
não use CONTROL.POS no subscrito
Control CONTROL tag estrutura de controle para a operação
Bit Source BOOL tag bit a ser deslocado
Length DINT imediato número de bits da matriz a ser deslocada
Estrutura:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura O bit .EN é desenergizado.
O bit .DN é desenergizado.
O bit .ER é desenergizado.
O valor .POS é desenergizado.
A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa O bit .EN é desenergizado.
O bit .DN é desenergizado.
O bit .ER é desenergizado.
O valor .POS é desenergizado.
A saída da condição da linha é definida como falsa.
bit .EN = 1
examinar bit .EN
bit .EN = 0
sim
.LEN = 0 bit .DN é energizado
não
.source bit = 0
não
bit .UL é energizado
deslocar matriz da esquerda uma posição
Bit
bit .UL matriz Source
fim
Exemplo de Lógica
Ladder a Relé:
exemplo 1
9 8 7 6 5 4 3 2 1 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
antes do
deslocamento 1
0 esses bits foram
deslocados à esquerda input_1
bit .UL
9 8 7 6 5 4 3 2 1 0
array_dint[0]d 0 1 1 1 1 0 0 0 0 1
epois do
deslocamento
Quando habilitada, a instrução BSL inicia no bit 0 em array_dint[0]. A instrução descarrega array_dint[0].9 no bit .UL, desloca os
bits restantes e carrega input_1 em array_dint[0].0. Os valores nos bits restantes (10-31) são inválidos.
exemplo 2
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
1
esses bits foram deslocados à esquerda
input_1
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
bit .UL
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.
Direita (BSR)
Lógica Ladder a Relé
Operandos de Lógica
Ladder a Relé:
Operando: Tipo: Formato: Descrição:
Array DINT tag da matriz a ser modificada
matriz especifica o elemento onde o deslocamento
deve começar
nã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
Estrutura:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura O bit .EN é desenergizado.
O bit .DN é desenergizado.
O bit .ER é desenergizado.
O valor .POS é desenergizado.
A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa O bit .EN é desenergizado.
O bit .DN é desenergizado.
O bit .ER é desenergizado.
O valor .POS é desenergizado.
A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira
bit .EN = 1
examinar bit .EN
bit .EN = 0
sim
.LEN = 0 bit .DN é energizado
não
.source bit = 0
não
bit .UL é energizado
deslocar matriz da esquerda uma posição
fim
Exemplo de Lógica
Ladder a Relé:
exemplo 1
9 8 7 6 5 4 3 2 1 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
antes do
deslocamento
0
1 esses bits foram
deslocados à direita bit .UL
input_1
9 8 7 6 5 4 3 2 1 0
array_dint[0]d 1 0 0 1 1 1 1 0 0 0
epois do
deslocamento
Quando habilitada, a instrução BSR inicia no bit 9 em array_dint[0]. A instrução descarrega array_dint[0].0no bit .UL, desloca os
bits restantes para a direita e carrega input_1 em array_dint[0].9. Os valores nos bits restantes (10-31) são inválidos.
exemplo 2
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
0
esses bits foram deslocados à direita
bit .UL
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
input_1
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.
Operandos de Lógica
Ladder a Relé:
Operando: Tipo: Formato: Descrição:
Source SINT imediato dados a serem armazenados em FIFO
INT tag
DINT
REAL
tipo de
string
estrutura
Source converte para o tipo de dados do tag da matriz. Um inteiro menor
converte para um inteiro maior pela extensão do sinal.
FIFO SINT tag da FIFO a ser modificado
INT matriz especifique o primeiro elemento de FIFO
DINT não use CONTROL.POS no subscrito
REAL
tipo de
string
estrutura
Control CONTROL tag estrutura de controle para a operação
geralmente usa o mesmo CONTROL,
conforme associado a FFU
Length DINT imediato número máximo de elementos que FIFO pode
controlar de uma vez
Position DINT imediato próxima localização em FIFO onde a instrução
carrega os dados.
valor inicial é normalmente 0
Se você usar uma estrutura definida pelo usuário como tipo de dados
para o operando Source ou FIFO, use a mesma estrutura para os dois
operandos.
Estrutura:
Operandos do Bloco de
Funçã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.
Condições de Falha:
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura
sim
.LEN < 0
não
sim
.POS < 0
não
sim
.POS = 0 .EM é energizado
não
sim
.POS ≥ .LEN .DN é energizado
não
fim
Condição: Ação:
sim
.LEN < 0
não
sim
.POS < 0
não
sim
.POS = 0 .EM é energizado
não
sim
.POS ≥ .LEN .DN é energizado
não
fim
Condição: Ação:
.EN = 0 sim
examinar bit .EN bit .EN é energizado .LEN < 0
.EN = 1 não
sim sim
.LEN < 0 .POS < 0
não não
não
bit .EM é energizado
.DN é energizado
bit .EM é desenergizado
bit .DN é desenergizado sim
.POS ≥ .LEN bit .DN é energizado
não
sim
.POS = 0 bit .EM é energizado
sim
.POS ≥ .LEN bit .DN é energizado
sim
não .POS > .LEN .POS = .POS –1
não
FIFO[.POS – 1] = source
fim
Exemplo de Lógica
Ladder a Relé:
Quando habilitada, a instrução FFL carrega value_1 para a próxima posição em FIFO, que é array_dint[5] nesse exemplo.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Operandos de Lógica
Ladder a Relé:
Operando: Tipo: Formato: Descrição:
FIFO SINT tag da FIFO a ser modificado
INT matriz especifique o primeiro elemento de FIFO
DINT não use CONTROL.POS no subscrito
REAL
tipo de
string
estrutura
Destination SINT tag valor que saiu de FIFO
INT
DINT
REAL
tipo de
string
estrutura
O valor Destination converte para o tipo de dados do tag Destination. Um
inteiro menor converte para um inteiro maior pela extensão do sinal.
Control CONTROL tag estrutura de controle para a operação
geralmente usa o mesmo CONTROL, 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
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:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Descrição: Use a instrução FFU com a instrução FFL para armazenar e recuperar
dados na seqüência primeiro a entrar, primeiro a sair (FIFO).
Condições de Falha:
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura
sim
.LEN < 0
não
sim
.POS < 0
não
sim
.POS = 0 .EM é energizado
não
sim
.POS ≥ .LEN .DN é energizado
não
fim
Condição: Ação:
sim
.LEN < 0
não
sim
.POS < 0
não
sim
.POS = 0 .EM é energizado
não
sim
.POS ≥ .LEN .DN é energizado
não
fim
Condição: Ação:
entrada da condição da linha for verdadeira
.EU = 0 sim
examinar bit .EU bit .EU é energizado .LEN < 0
.EU = 1 não
sim sim
.LEN < 0 .POS < 0
não não
não
bit .EM é energizado
bit .EM é desenergizado .DN é energizado .LEN > sim
tamanho da falha grave
bit .DN é desenergizado
matriz
não
sim
.POS = 0 bit .EM é energizado sim
.POS ≤ 1 bit .EM é energizado
não
não
sim
sim .POS < 1 Destination = 0
.POS ≥ .LEN bit .DN é energizado
não
não
.POS = .POS –1
Destination = FIFO[0]
i=1
FIFO[i – 1] = FIFO[i]
i = i +1
sim
i < .LEN
não
saída da condição da linha
é definida como
verdadeira
fim
Exemplo de Lógica
Ladder a Relé:
Quando habilitada, a instrução FFU descarrega array_dint[0] em value_2 e desloca os elementos restantes para array_dint.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Operandos de Lógica
Ladder a Relé:
Operando Tipo: Formato: Descrição:
Source SINT imediato dados a serem armazenados em LIFO
INT tag
DINT
REAL
tipo de
string
estrutura
Source converte para o tipo de dados do tag da matriz. Um inteiro menor
converte para um inteiro maior pela extensão do sinal.
LIFO SINT tag da LIFO a ser modificado
INT matriz especifique o primeiro elemento de LIFO
DINT não use CONTROL.POS no subscrito
REAL
tipo de
string
estrutura
Control CONTROL tag estrutura de controle para a operação
geralmente usa o mesmo CONTROL,
conforme a LFU associada
Length DINT imediato número máximo de elementos que LIFO 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
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:
Operandos do Bloco de
Funçã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.
Condições de Falha:
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura
sim
.LEN < 0
não
sim
.POS < 0
não
sim
.POS = 0 .EM é energizado
não
sim
.POS ≥ .LEN .DN é energizado
não
fim
Condição: Ação:
sim
.LEN < 0
não
sim
.POS < 0
não
sim
.POS = 0 .EM é energizado
não
sim
.POS ≥ .LEN .DN é energizado
não
fim
Condição: Ação:
.EN = 0 sim
examinar bit .EN bit .EN é energizado .LEN < 0
.EN = 1 não
sim sim
.LEN < 0 .POS < 0
não não
não
bit .EM é energizado
bit .EM é desenergizado .DN é energizado
bit .DN é desenergizado sim
.POS ≥ .LEN bit .DN é energizado
não
sim
.POS = 0 bit .EM é energizado
sim
.POS ≥ .LEN bit .DN é energizado
sim
não .POS > .LEN .POS = .POS –1
não
LIFO[.POS – 1] = source
fim
Exemplo de Lógica
Ladder a Relé:
Quando habilitada, a instrução LFL carrega value_1 para a próxima posição em LIFO, que é array_dint[5] nesse exemplo.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Operandos de Lógica
Ladder a Relé:
Operando Tipo: Formato: Descrição:
LIFO SINT tag da LIFO a ser modificado
INT matriz especifique o primeiro elemento de LIFO
DINT não use CONTROL.POS no subscrito
REAL
tipo de
string
estrutura
Destination SINT tag valor que saiu de LIFO
INT
DINT
REAL
tipo de
string
estrutura
O valor Destination converte para o tipo de dados do tag Destination. Um
inteiro menor converte para um inteiro maior pela extensão do sinal.
Control CONTROL tag estrutura de controle para a operação
geralmente usa o mesmo CONTROL,
conforme 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
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:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Descrição: Use a instrução LFU com a instrução LFL para armazenar e recuperar
dados na seqüência último a entrar, primeiro a sair (LIFO).
Condições de Falha:
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura
sim
.LEN < 0
não
sim
.POS < 0
não
sim
.POS = 0 .EM é energizado
não
sim
.POS ≥ .LEN .DN é energizado
não
fim
Condição: Ação:
sim
.LEN < 0
não
sim
.POS < 0
não
sim
.POS = 0 .EM é energizado
não
sim
.POS ≥ .LEN .DN é energizado
não
fim
Condição: Ação:
entrada da condição da linha for verdadeira
.EU = 0 sim
examinar bit .EU bit .EU é energizado .LEN < 0
.EU = 1 não
sim sim
.LEN < 0 .POS < 0
não não
não
bit .EM é energizado
.DN é energizado sim
bit .EM é desenergizado .POS ≤ 1 bit .EM é energizado
bit .DN é desenergizado
não
sim sim
.POS = 0 bit .EM é energizado .POS < 1 Destination = 0
não não
sim
.POS > .LEN .POS = .LEN
sim
.POS ≥ .LEN bit .DN é energizado
não
não
.POS = .POS –1
não
Destination = LIFO[control.POS]
LIFO[control.POS) = 0
fim
Exemplo de Lógica
Ladder a Relé:
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Notas:
Instruções de Seqüenciador
(SQI, SQO, SQL)
(SQI)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Array DINT tag da matriz do seqüenciador
matriz especifica o primeiro elemento da matriz do
seqüenciador
não use CONTROL.POS em subscrito
Mask SINT tag quais bits devem ser bloqueados ou podem
INT imediato passar
DINT
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Source SINT tag dados de entrada para a matriz do
INT seqüenciador
DINT
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Control CONTROL tag estrutura de controle para a operação
geralmente usa o mesmo CONTROL das
instruções SQO e SQL
Length DINT imediato número de elementos na Matriz (tabela do
seqüenciador) a serem comparados
Position DINT imediato posição atual na matriz
valor inicial é normalmente 0
Estrutura:
Prefixo: Descrição:
16# hexadecimal
por exemplo; 16#0F0F
8# octal
por exemplo; 8#16
2# binário
por exemplo; 2#00110011
Execução do 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.
.LEN ≤ 0
.POS < 0 não
ou bit .ER é desenergizado.
.POS > .LEN
sim
sim
fim
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução SQI passa o value_2 pela máscara para determinar se o
resultado é igual ao elemento atual em array_dint. A comparação mascarada é verdadeira,
portanto a saída da condição da linha se torna verdadeira.
Se você usar a instrução SQI sem uma instrução SQO no par, será
necessário incrementar externamente a matriz do seqüenciador.
(SQO)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Array DINT tag da matriz matriz do seqüenciador
especifica o primeiro elemento da matriz do
seqüenciador
não use CONTROL.POS em subscrito
Mask SINT tag quais bits devem ser bloqueados ou podem
INT imediato passar
DINT
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ção
geralmente 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 matriz
valor inicial é normalmente 0
Estrutura:
Prefixo: Descrição:
16# hexadecimal
por exemplo; 16#0F0F
8# octal
por exemplo; 8#16
2# binário
por exemplo; 2#00110011
Execução de Lógica
Ladder:
Condição: Ação:
pré-varredura O bit .EN é energizado para evitar uma carga falsa quando a varredura do programa
começar.
A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa O bit .EN é desenergizado.
A saída da condição da linha é definida como falsa.
Condição: Ação:
entrada da condição da linha for verdadeira
não sim
.POS = .LEN .POS ≥ .LEN .POS = 1
sim não
não
sim
.POS = .LEN bit .DN é energizado.
não
não
.POS > .LEN
sim
erro
fim
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução SQO incrementa a posição, passa os dados naquela posição
em array_dint através da máscara e armazena o resultado emvalue_1.
(SQL)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Array DINT tag da matriz matriz do seqüenciador
especifica o primeiro elemento da matriz do
seqüenciador
não use CONTROL.POS em subscrito
Source SINT tag dados de entrada a serem carregados na
INT imediato matriz do seqüenciador
DINT
Um tag SINT ou INT é convertido para um valor DINT pela extensão de
sinal.
Control CONTROL tag estrutura de controle para a operação
geralmente usa o mesmo CONTROL das
instruções SQO e SQI
Length DINT imediato número de elementos na Matriz (tabela do
sequenciador) a serem carregados
Position DINT imediato posição atual na matriz
valor inicial é normalmente 0
Estrutura:
Condições de Falha:
Execução de Lógica
Ladder:
Condição: Ação:
pré-varredura O bit .EN é energizado para evitar uma carga falsa quando a varredura do programa
começar.
A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa O bit .EN é desenergizado.
A saída da condição da linha é definida como falsa.
Condição: Ação:
entrada da condição da linha for verdadeira
não sim
.POS = .LEN .POS ≥ .LEN .POS = 1
sim não
não
sim
.POS = .LEN bit .DN é energizado.
não
não
.POS > .LEN
sim
.LEN > sim
tamanho da
erro matriz
não
falha grave
fim
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução SQL carrega value_3 na próxima posição na matriz do sequenciador, que é array_dint[5] nesse
exemplo.
Notas:
Label (LBL)
Lógica Ladder a Relé
Operandos de Lógica
Ladder a Relé:
Operando: Tipo: Formato: Descrição:
Instrução JMP
Label name; nome do insere o nome para a instrução LBL
label; associada
Instrução LBL
Label name; nome do a execução salta para a instrução LBL
label; quando o nome do label é citado
Operandos do Bloco de
Função: Estas instruções não estão disponíveis no bloco de função.
!
A instrução LBL está no alvo da instrução JMP que tem o mesmo
nome de label. Certifique-se de que a instrução LBL é a primeira
instrução na linha.
Um nome de label deve ser único dentro de uma rotina. O nome
pode:
• ser composto por até 40 caracteres
• conter letras, números e sublinhados (_)
Condições de Falha:
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.
A execução salta para a linha que contém a instrução LBL com o nome de
label referenciado.
Exemplo de Lógica
Ladder a Relé:
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.
Execução do Bloco de
Função: Estas instruções não estão disponíveis no bloco de função.
Sub-rotina (SBR)
Retorno (RET) Lógica Ladder
a Relé
Bloco de Função
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ógica
Ladder a Relé:
Operando Tipo: Formato: Descrição:
Instrução JSR
Routine name ROUTINE nome rotina a ser executada
Input par SINT imediato parâmetros (0-n) a serem passados
INT tag para rotina
DINT tag da matriz
REAL
estrutura
Return par SINT tag parâmetros (0-n) a serem recebidos
INT tag da matriz da rotina
DINT
REAL
estrutura
Instrução SBR
Input par SINT tag parâmetros (0-n) recebidos de JSR
INT tag da matriz
DINT
REAL
estrutura
Instrução RET
Return par SINT imediato parâmetros (0-n) a serem retornados
INT tag para JSR
DINT tag da matriz
REAL
estrutura
Operandos do Bloco de
Função: Estas instruções não estão disponíveis no bloco de função.
rotina principal
SBR SBR SBR
action_1
JSR
action_2 action_3
JSR JSR
15294
Se: Então:
sim A. Na instrução JSR, operando Input par, digite o tag que contém
o(s) valor (es) a serem copiados.
B. Para cada entrada, repita a Etapa A.
não Omita os parâmetros de entrada
Se: Então:
sim A. Na instrução JSR, operando Return par, digite o tag que recebe
o(s) valor (es).
B. Para cada valor de retorno, repita a Etapa A.
não Omita os parâmetros de entrada
Se: Então:
sim A. Como a primeira instrução na sub-rotina, digite uma instrução
SBR.
B. No operando Input par da instrução SBR, digite o tag que
recebe o(s) valor (es) da instrução JSR.
C. Para cada operando Input par na instrução JSR, repita a
Etapa B.
não Vá para a Etapa 5.
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.
Se: Então:
sim A. No local da sub-rotina onde você quer sair, digite uma linha.
B. Digite as condições para sair do local da sub-rotina.
C. Digite uma instrução RET.
D. Digite parâmetros de retorno, se necessário. Consulte as etapas
4. e 5.
não Omita esta etapa.
Condições de Falha:
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
O controlador executa todas as sub-rotinas independente da condição da linha. Para
garantir que todas as linhas na subrotina sejam pré-varridas (prescanned), o controlador
ignora as instruções RET. (Ou seja, as instruções RET não fazem a subrotina sair).
• Liberação 6.x e anterior, os parâmetros de entrada e retorno são passados.
• Liberação 7.x e posterior, os parâmetros de entrada e retorno não são passados.
Caso haja chamadas recorrentes para a mesma sub-rotina, realiza-se uma pré-varredura
na sub-rotina somente na primeira vez. Caso haja várias chamadas (não recorrentes)
para a mesma sub-rotina, realiza-se uma pré-varredura na sub-rotina todas as vezes.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
Condição: Ação:
não
não não
sim
fim da sub-rotina
não
fim
Exemplo de Lógica
Ladder a Relé:
exemplo 1
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.
Sub-routine_1
Quando def estiver energizado, a instrução RET retorna value_1 para o parâmetro JSR cookies_1 e uma varredura não é realizada no restante da
sub-rotina.
Quando def estiver desenergizado (linha anterior) eghi estiver energizado, a instrução RET retorna value_2 para o parâmetro cookies_1 de JSR
e uma varredura não é realizada no restante da sub-rotina.
Quando def e ghi estiverem desenergizados (linhas anteriores) a instrução RET retorna value_3 para o parâmetro cookies_1 de JSR.
Execução do Bloco de
Função: Estas instruções não estão disponíveis no bloco de função.
Operandos de Lógica
Ladder a Relé: nenhuma
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.
A rotina atual termina.
Exemplo de Lógica
Ladder a Relé: É possível usar a instrução TND na depuração ou localização de falhas
para executar a lógica até um determinado ponto. Progressivamente,
mova a instrução TND através da lógica à medida que se realiza a
depuração em cada seção nova.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(MCR)
Lógica Ladder a Relé
Operandos de Lógica
Ladder a Relé: nenhuma
Operandos do Bloco de
Funçã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.
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
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.
Exemplo de Lógica
Ladder a Relé:
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.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Operandos de Lógica
Ladder a Relé: nenhuma
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira A instrução UID previne a interrupção por tarefas de prioridade maior.
A instrução UIE habilita a interrupção por tarefas de prioridade maior.
A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder a Relé:
Quando um erro ocorre (error_bit está energizado), a instrução FSC verifica o código do erro em relação a uma lista de erros críticos. Se a
instrução FSC encontra um erro que seja crítico (error_check.FD is on), um alarme é acionado. As instruções UID e UIE evitam que outras tarefas
interrompam a verificação e o acionamento de alarmes.
UID
error_bit FSC
File Search/Compare EN
Control error_check DN
Length 10 ER
Position 8
Mode ALL
Expression error_code=error_list[error_check.POS]
error_check.FD alarm
UIE
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(AFI)
Lógica Ladder a Relé
Operandos de Lógica
Ladder a Relé: nenhuma
Operandos do Bloco de
Funçã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.
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira A saída da condição da linha é definida como falsa.
Exemplo de Lógica
Ladder a Relé: Use a instrução AFI para desabilitar temporariamente uma linha,
enquanto estiver depurando um programa.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder a
Operandos de Lógica
Ladder a Relé: nenhuma
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder a Relé: Essa instrução é útil para localizar ramificações incondicionais quando
se coloca a instrução NOP na ramificação.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Notas:
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.
Operandos de Lógica
Ladder a Relé:
Operando: Tipo: Formato: Descrição:
Routine ROUTINE nome da rotina a ser executada
name rotina
Index DINT tag conta quantas vezes a rotina foi executada
Initial value SINT imediato valor onde se inicia o índice
INT tag
DINT
Terminal SINT imediato valor onde parar a execução da rotina
value INT tag
DINT
Step size SINT imediato quantidade a ser acrescentada ao índice
INT tag cada vez que a instrução FOR executar a
DINT rotina
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Descrição:
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.
Condições de Falha:
Execução de Lógica
Ladder a Relé:
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.
entrada da condição da
linha for verdadeira
index = initial_value
não
tamanho step < 0
sim
não
ir para o index ≤valor terminal
fim
executar rotina
index =(index + step_size)
saída da condição da linha é
definida como verdadeira
fim
Exemplo de Lógica
Ladder a Relé:
Quando habilitada, a instrução FOR executa repetidamente routine_2 e incrementa value_2 em 1 todas
as vezes. Quando value_2 é > 10 ou uma instrução BRK estiver habilitada, a instrução FOR não mais
executa routine_2.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Operandos de Lógica
Ladder a Relé: nenhuma
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.
A execução retorna para a instrução que segue a instrução FOR que está chamando.
Exemplo de Lógica
Ladder a Relé:
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.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Operandos de Lógica
Ladder a Relé: nenhuma
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Descrição:
Condições de Falha:
Execução de Lógica
Ladder a Relé:
Condição: Ação:
pré-varredura A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder a Relé:
rotina que está chamando sub-rotina
Quando habilitada, a instrução RTE retorna para a instrução FOR que está
chamando. A instrução FOR executa a sub-rotina novamente e
incrementa o valor Index pelo tamanho Step ou se o valor Index exceder o
valor Terminal, a instrução FOR é concluída e a execução se movimenta
para a instrução que segue a instrução FOR.
Quando habilitada, a instrução FOR executa repetidamente
routine_2 e incrementa value_2 em 1 todas as vezes.
Quando value_2 é > 10 ou uma instrução BRK estiver
habilitada, a instrução FOR não mais executa routine_2.
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Notas:
Instruções Especiais
(FBC, DDT, DTR, PID)
Arquivo (FBC)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source DINT tag da matriz matriz a ser comparada com a referência
não use CONTROL.POS em subscrito
Reference DINT tag da matriz matriz a ser comparada com a fonte
não use CONTROL.POS em subscrito
Result: DINT tag da matriz matriz para armazenar o resultado
nã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 fonte
valor inicial é normalmente 0
Result CONTROL estrutura estrutura de controle para os resultados
control
Length DINT imediato número de locais de armazenamento
no resultado
Position DINT imediato posição atual no resultado
valor inicial é normalmente 0
Estrutura de Comparação:
Estrutura de Resultado:
Condições de Falha:
Execução de Lógica
Ladder:
Condição: Ação:
pré-varredura
o bit compare.EN é
desenergizado.
o bit compare.FD é desenergizado.
compare .DN = 1
fim
Condição: Ação:
compare.DN = 1
fim
Condição: Ação:
compare.EN = 0
compare.DN = 0
não
sim
compare.POS < 0
sair
Condição: Ação:
compara
result.DN = 1
o bit result.DN é
não desenergizado.
source[compare.POS] = o bit compare.FD é examinar o bit o valor result.POS é
reference[compare.POS] energizado. result.DN desenergizado.
sim result.DN = 0
compare.POS =
compare.POS + 1
sim
result.POS < 0
não
sim
result.LEN ≤ 0
result[result.POS] = compare.POS
result.POS = result.POS + 1
sim
Exemplo de Lógica
Ladder:
fonte 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
array_dint1
referência 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
array_dint2
resultado 5 3
array_dint3
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.
(DDT)
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source DINT tag da matriz a ser comparada com a referência
matriz não use CONTROL.POS em subscrito
Reference DINT tag da matriz a ser comparada com a fonte
matriz não use CONTROL.POS em subscrito
Result: DINT tag da matriz para armazenar os resultados
matriz nã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 fonte
valor inicial é normalmente 0
Result CONTROL estrutura estrutura de controle para os resultados
control
Length DINT imediato número de locais de armazenamento
no resultado
Position DINT imediato posição atual no resultado
valor inicial é normalmente 0
Estrutura de Comparação:
Estrutura de Resultado:
Condições de Falha:
Execução de Lógica
Ladder:
Condição: Ação:
pré-varredura
compare.DN = 1
fim
Condição: Ação:
compare.DN = 1
fim
Condição: Ação:
compare.EN = 0
compare.DN bit = 0
não
sim
compare.POS < 0
sair
Comparar ir para a
saída
fim
página 12-16
Condição: Ação:
compara
result.DN = 1
o bit compare.FD é o bit result.DN é
source[compare.POS] = não energizado. desenergizado.
examinar o bit o valor result.POS é
reference[compare.POS] reference[compare.POS] result.DN
= source[compare.POS] desenergizado.
sim result.DN = 0
compare.POS =
compare.POS + 1
sim
result.POS < 0
não
sim
result.LEN ≤ 0
sim
result.POS > ir
falha grave tamanho da matriz de para
resultado
página 12-7
não
result[result.POS] = compare.POS
result.POS = result.POS + 1
não result.POS ≥
result.LEN
sim
Exemplo de Lógica
Ladder:
fonte 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
array_dint1
referência (antes da 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
comparação)
array_dint2
resultado: 5 3
array_dint3
referência (depois da 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
comparação)
array_dint2
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.
Lógica Ladder
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source DINT imediato matriz a ser comparada com a referência
tag
Mask DINT imediato quais bits devem ser bloqueados ou podem
tag passar
Reference DINT tag matriz a ser comparada com a fonte
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.
Prefixo: Descrição:
16# hexadecimal
por exemplo; 16#0F0F
8# octal
por exemplo; 8#16
2# binário
por exemplo; 2#00110011
Execução de Lógica
Ladder:
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
sim
saída da condição da
linha é energizada
quando falsa
fim
Exemplo de Lógica
Ladder:
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.
exemplo 1 exemplo 2
fonte
value_1
7 1 8 3 9 1 8 7
máscara = 0FFF
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
referência
value_2 0 1 8 7
varredura atual 0 1 8 3 varredura atual
varredura 0 1 8 3 0 1 8 3 varredura
anterior anterior
A linha permanecerá falsa enquanto o A linha permanecerá verdadeira durante uma
valor de entrada não for alterado. varredura quando uma alteração for detectada. 13385
Derivativo (PID)
Lógica Ladder
Operandos de Lógica
Ladder: Operando Tipo: Formato: Descrição:
PID PID estrutura estrutura PID
Process SINT tag valor a ser controlado
variable INT
DINT
REAL
Tieback SINT imediato (opcional)
INT tag saída de uma estação manual/automática de
DINT hardware que está realizando bypass da
REAL saída do controlador
insira 0 se você não quiser usar esse
parâmetro
Control SINT tag valor que vai para o dispositivo de controle
variable INT final (válvula, amortecedor etc.)
DINT se você estiver usando a zona morta, Control
REAL variable deve ser do tipo REAL ou o mesmo
será forçado em 0 quando houver um erro
dentro da zona morta
PID master PID estrutura opcional
loop tag PID para o PID mestre
Se 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 opcional
status atual do bit inhold de um canal de
saída analógico 1756 para suportar uma
reinicialização ininterrupta
insira 0 se você não quiser usar esse
parâmetro
Inhold value SINT tag opcional
INT valor de nova leitura de dados de uma canal
DINT de saída analógica 1756 para suportar uma
REAL reinicialização ininterrupta.
insira 0 se você não quiser usar esse
parâmetro
Setpoint somente display
valor atual do setpoint.
Process somente display
variable valor atual de Process Variable convertido
em escala
Output % somente display
valor de porcentagem da saída da corrente
Estrutura: Especifique uma estrutura PID única para cada instrução PID.
bit .EN
estado da linha
execução da instrução PID
41027
Condições de Falha:
Execução de 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.
Configuração de uma Depois de inserir a instrução PID e especificar a estrutura PID, use a
guia Configuration para especificar como a instrução PID
Instrução PID deve funcionar.
Especificação do ajuste
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.
Especificação da configuração
No campo: Especifique
PID equation Selecione os ganhos independentes ou ganhos dependentes (.PE).
Use independente, caso seja necessário que os três ganhos (P, I e D) operem de forma
independente. Use dependente, caso seja necessário que um ganho geral do
controlador afete os três termos (P, I e D).
Control action Selecione E=PV-SP ou E=SP-PV para control action (.CA).
Derivative of Selecione PV ou erro (.DOE).
Use o derivativo de PV para eliminar os impulsos de saída resultantes das alterações de
setpoint. Use o derivativo do erro para as respostas rápidas para as alterações de
setpoint quando o algoritmo pode tolerar excedentes.
Loop update time Insira o tempo de atualização (.UPD) para a instrução (maior do que ou igual a 0,01
segundo).
CV high limit Insira um limite superior para a variável de controle (.MAXO).
CV low limit Insira um limite inferior para a variável de controle (.MINO).
Deadband value Insira o valor da zona morta (.DB).
No derivative smoothing Habilita ou desabilita essa seleção (.NDF).
No bias calculation Habilita ou desabilita essa seleção (.NOBC).
No zero crossing in Habilita ou desabilita essa seleção (.NOZC).
deadband
No campo: Especifique
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).
Especificação de alarmes
No campo: Especifique
PV high Insira um valor de limite superior para o alarme alto para a PV (.PVH).
PV low Insira um valor de limite inferior para o alarme baixo para a PV (.PVL).
PV deadband Insira um valor de zona morta para o alarme de PV (.PVDB).
positive deviation Insira um valor de desvio positivo (.DVP).
negative deviation Insira um valor de desvio negativo (.DVN).
deviation deadband Insira um valor de zona morta para o alarme de desvio (.DVDB).
No campo: Especifique
PV unscaled maximum Insira um valor máximo de PV (.MAXI) igual ao valor máximo sem escala recebido do
canal de entrada analógica para o valor PV.
PV unscaled minimum Insira um valor mínimo de PV (.MINI) igual ao valor mínimo sem escala recebido do
canal de entrada analógica para o valor PV.
PV engineering units Insira as unidades de medida máximas correspondentes a .MAXI (.MAXS)
maximum
PV engineering units Insira as unidades de medida mínimas correspondentes a .MINII (.MINS)
minimum
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).
Utilização das Instruções 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
PID nível de taxa de fluído/fluxo:
setpoint - erro
equação PID
+
taxa de fluxo
variável de processo variável de
controle
detector de nível
14271
equação são fornecidos apenas para que você use o tipo com o qual
está mais familiarizado.
E = PV - SP
t
1 dPV
CV = K C E + ---- ∫ Edt + T d ----------- + BIAS
Ti dt
0
E = PV - SP
t
dPV
CV = K P E + K i ∫ Edt + Kd ----------- + BIAS
dt
0
Onde:
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:
KC
K i = ----------
-
60T i
Variável: Descrição:
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
Reinicialização ininterrupta
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.
Polarização derivativa
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.
+ zona morta
tempo 41026
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
Malhas em cascata
Controle de um índice
Teoria PID Os números a seguir mostram o fluxo do processo para as instruções PID.
processo PID
SP Erro Exibido
Exibido como EUs
como EUs
Software A/M
ou
Modo A/M Station Polarização
Ação de da Saída %
Controle
Software A/M Define
Auto SP-PV Mode Saída %
Converte Unidades A/M Station
(Erro) em % (Out%) Auto Mode
+ Cálculo PID +
- Erro X 100 Auto Converte % em Unidades CV
SP Manual -1
PV-SP máx-mín. Limitação CV
PVT Manual da Saída CV%(máxcv-míncv)
+ míncv
não Define Manual 100
Saída %
PV
Exibido
sim como EUs Saída (CV) Exibida
em % do Fator de
Escala EU
Converte Binário para Converte Unidades de
Unidades de Medida Tieback em %
(PV-mín)(máx-mín) + min tieback-mintie
máx-min x100
maxtie-mintie
PV
Software
sim A/M Mode
Auto
Converte Binário em SP Converte Unidades
Unidades de Medida em %
Manual
(PV-mín)(máx-mín) Erro X 100 Manual
+ mín PV
maxi-mini máx-mín Os itens relacionados nesta caixa
são parâmetros, unidades e modos
pois pertencem à malha Escrava
PV
Malha
Escravo Ação de Polarização
Controle da Saída %
Define
Software A/M Saída %
Converte % em (SP) SP-PV Mode A/M Station
(Master.Out) Unidades de Medida Converte Unidades
+ em % Cálculo PID Auto Mode
X (máx-mín) - +
+ mín -1 Erro X 100 Auto Converte % em
100 PV-SP máx-mín Limitação
Manual da Saída CV%(maxcv-mincv)
Define + mincv
Converte Binário em Manual 100
Unidades de Medida Saída %
(PV-mín)(máx-mín)
+ mín Converte Unidades
maxi-mini
Tieback em %
tieback-mintie x100
maxtie-mintie
PV
Instruções Trigonométricas
(SIN, COS, TAN, ASN, ACS, ATN)
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato calcula o seno desse valor
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura SIN
Parâmetros de saída
Execução 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 O controlador calcula o seno de Source e coloca o resultado em Destination.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução SIN calcula o seno de <Φ1><Φ8><Φ1>. ϖαλυε e coloca o resultado em
result.
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato calcula o co-seno desse valor
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura COS
Parâmetros de saída
Execução 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 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.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução COS calcula o co-seno de <Φ1><Φ19><Φ1> ϖαλυε e coloca o resultado em result.
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato calcula a tangente desse valor
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura TAN
Parâmetros de saída
Execução 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 O controlador calcula a tangente de Source e coloca o resultado em Destination.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato calcula o arco seno desse valor
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura ASN
Parâmetros de saída
Execução 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 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.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução ASN calcula o arco seno de <Φ1><Φ19><Φ1>ϖαλυε e coloca o resultado em result.
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
Condição: Ação:
primeira operação da instrução Nenhuma ação tomada.
EnableIn é desenergizado EnableOut é desenergizado.
EnableIn é energizado A instrução é executada.
EnableOut é energizado.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato calcula o arco co-seno desse valor
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura ACS
Parâmetros de saída
Execução 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 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.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução ACS calcula o arco co-seno de <Φ1><Φ19><Φ1>ϖαλυε e coloca o resultado em result.
Execução do Bloco de
Função:
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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato calcula o arco tangente desse valor
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura ATN
Parâmetros de saída
Execução 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 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.
Exemplo de Lógica
Ladder:
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Notas:
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato encontrar o log natural desse valor.
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura LN
Parâmetros de saída
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.
Execução de 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 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.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução LN calcula o log natural de value<F1> e coloca o resultado em <F19><F1>result.
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato encontrar o log natural desse valor.
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura LOG
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.
Execução de 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 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.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução LOG calcula o log natural de value<F1> e coloca o resultado em <F19><F1>result.
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
(XPY)
Lógica Ladder Bloco de Função
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source A SINT imediato valor de base
INT tag
DINT
REAL
Source B SINT imediato exponente
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH estrutura estrutura 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á.
Condições de Falha:
Execução de 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 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.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução XPY calcula value_1 elevado à potência de value_2 e coloca o resultado em result.
Execução do Bloco de
Função:
Condição: Ação:
pré-varredura Nenhuma ação tomada.
primeira varredura da instrução Nenhuma ação tomada.
primeira operação da instrução Nenhuma ação tomada.
EnableIn está desenergizado EnableOut está desenergizado.
EnableIn está energizado A instrução executa.
EnableOut está energizado.
Exemplo do Bloco de
Função:
function_block_A
function_block_C
function_block_B
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato valor a ser convertido em graus.
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura DEG
Parâmetros de saída
Execução 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 O controlador converte Source em graus e coloca o resultado em Destination.
A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução DEG converte <Φ1><Φ19><Φ1>ϖαλυε em graus e coloca o resultado em result.
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato valor a ser convertido em radianos
INT tag
DINT
REAL
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_MATH_ADVANCED estrutura estrutura RAD
Parâmetros de saída
Execução 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 O controlador converte Source em radianos e coloca o resultado em Destination.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução RAD converte <Φ1><Φ19><Φ1>ϖαλυε em radianos e coloca o resultado em result.
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato valor a ser convertido em decimal.
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Destination SINT tag armazena o resultado
INT
DINT
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_CONVERT estrutura estrutura TOD
Parâmetros de saída
Condições de Falha:
Execução 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
não não
source < 0 source > 99.999.999 converter fonte para BCD
sim sim
S:V é definido em 1
fim
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.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução TOD converte value_1 em um valor BCD e coloca o resultado em result_a.
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A
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.
(FRD)
Lógica Ladder Bloco de Função
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source SINT imediato valor a ser convertido em decimal.
INT tag
DINT
Um tag SINT ou INT é convertido para um valor DINT por preenchimento
com zero.
Destination SINT tag armazena o resultado
INT
DINT
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_CONVERT estrutura estrutura FRD
Parâmetros de saída
Execução 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 O controlador converte Source em valor decimal e coloca o resultado em Destination.
A saída da condição da linha é definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando habilitada, a instrução FRD converte value_a para um valor decimal e coloca o resultado em result_1.
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_C
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.
Operandos de Lógica
Ladder:
Operando Tipo: Formato: Descrição:
Source REAL imediato valor a ser truncado
tag
Destination SINT tag tag para armazenar o resultado
INT
DINT
REAL
Operandos do Bloco de
Função:
Operando Tipo: Formato: Descrição:
tag do bloco FBD_TRUNCATE estrutura estrutura TRN
Parâmetros de saída
Execução 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 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.
Exemplo de Lógica
Ladder:
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.
Execução do Bloco de
Funçã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.
Exemplo do Bloco de
Função:
function_block_A function_block_C
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.
Execução da Instrução
Instrução 4
Os dados fluem
A instrução entra na entre a tarefa e o
fila ASCII. buffer.
Cada instrução de porta serial ASCII (exceto a ACL) usa uma estrutura
SERIAL_PORT_CONTROL para realizar as seguintes funções:
.EU off on
A fila ASCII suporta até 16 instruções. Quando a fila está cheia, uma
instrução tenta entrar na fila em cada scan subsequente da instrução,
como representado abaixo:
.EN off on
.EU off on
entra na fila
Tipos de String
• Você pode criar novos tipos de string que armazenem menos ou mais
caracteres.
Buffer (ABL)
Lógica Ladder
Operandos de Lógica
Ladder: ABL
ASCII Test For Buffer Line EN
Channel ? DN
SerialPort Control ? ER
Character Count ?
42225
Estrutura
SERIAL_PORT_CONTROL:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder:
Condição: Ação:
pré-scan A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira • O bit .EN está energizado.
• Os bits de status restantes, exceto .UL, são desenergizados.
• A instrução tenta entrar na fila ASCII.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
MV_line.EN ABL
/ ASCII Test For Buffer Line EN
Channel 0 DN
SerialPort Control MV_line ER
Character Count 0
42226
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(ACB)
Lógica Ladder
Operandos de Lógica
Ladder: ACB
ASCII Chars in Buffer EN
Channel ? DN
SerialPort Control ? ER
Character Count ?
42225
Estrutura
SERIAL_PORT_CONTROL:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder:
Condição: Ação:
pré-scan A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira • O bit .EN está energizado.
• Os bits de status restantes, exceto .UL, são desenergizados.
• A instrução tenta entrar na fila ASCII.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
bar_code_count.EN ACB
/ ASCII Chars in Buffer EN
Channel 0 DN
SerialPort Control bar_code_count ER
Character Count 0
42227
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Operandos de Lógica
Ladder: ACL
ASCII Clear Buffer
Channel ?
Clear Serial Port Read ?
Clear Serial Port Write ?
42225
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder:
Condição: Ação:
pré-scan A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira • A instrução remove as instruções específicas e o(s) buffer(s).
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
S:FS ACL
ASCII Clear Buffer
Channel 0
Clear Serial Port Read 1
Clear Serial Port Write 1
42228
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(AHL)
Lógica Ladder
Operandos de Lógica
Ladder: AHL
ASCII Handshake Lines EN
Channel ?
AND Mask ? DN
??
OR Mask ? ER
??
SerialPort Control ?
Channel Status(Decimal) ?
42225
Estrutura
SERIAL_PORT_CONTROL:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução de Lógica
Ladder:
Condição: Ação:
pré-scan A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira • O bit .EN está energizado.
• Os bits de status restantes, exceto .UL, são desenergizados.
• A instrução tenta entrar na fila ASCII.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
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.
get_control_line_status AHL
ASCII Handshake Lines EN
Channel 0
AND Mask 0 DN
OR Mask 0 ER
42230
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder
Operandos de Lógica
Ladder: ARD
ASCII Read EN
Channel ?
Destination ? DN
??
SerialPort Control ? ER
SerialPort Control Length ?
Characters Read ?
42225
Estrutura
SERIAL_PORT_CONTROL:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder:
Condição: Ação:
pré-scan A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira • O bit .EN está energizado.
• Os bits de status restantes, exceto .UL, são desenergizados.
• A instrução tenta entrar na fila ASCII.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica O exemplo seguinte representa o uso de uma instrução ACB para
Ladder: verificar se o número correto de caracteres está no buffer antes que a
instrução ARD execute e leia os caracteres.
Uma leitora de códigos de barra envia os códigos de barra para a porta serial (canal 0) do controlador. Cada código de barra contém
24 caracteres. Para determinar quando o controlador recebe um código de barra, a instrução ACB conta continuamente os caracteres no
buffer.
bar_code_count.EN ACB
/ ASCII Chars in Buffer EN
Channel 0 DN
SerialPort Control bar_code_count ER
Character Count 0
Quando o buffer contiver pelo menos 24 caracteres, o controlador recebeu o código de barra. A instrução ARD move o código de barra para
o membro DATA do tag bag_bar_code, que é um tipo de string.
GEQ ARD
Grtr Than or Eql (A>=B) ASCII Read EN
Source A bar_code_count.pos Channel 0
0 Destination bag_bar_code DN
Source B 24 ''
SerialPort Control bar_code_read ER
SerialPort Control Length 24
Characters Read 0
42227
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(ARL)
Lógica Ladder
Operandos de Lógica
Ladder: ARL
ASCII Read Line EN
Channel ?
Destination ? DN
??
SerialPort Control ? ER
SerialPort Control Length ?
Characters Read ?
42225
Estrutura
SERIAL_PORT_CONTROL:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Execução de Lógica
Ladder:
Condição: Ação:
pré-scan A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira • O bit .EN está energizado.
• Os bits de status restantes, exceto .UL, são desenergizados.
• A instrução tenta entrar na fila ASCII.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder: 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.
Testa o buffer continuamente para uma mensagem do terminal MessageView. Como cada mensagem termina com um caracter $r, este
caracter é configurado como o caracter de terminação na janela Controller Properties, guia User Protocol. Quando a ABL encontra um
caracter $r, ela energiza o bit FD.
MV_line.EN ABL
/ ASCII Test For Buffer Line EN
Channel 0 DN
SerialPort Control MV_line ER
Character Count 0
Quando a instrução ABL encontra um $r (MV_line.FD é energizado) o controlador recebeu uma mensagem completa. A instrução ARL
remove os caracteres do buffer, até e incluindo o $r e coloca-os no membro DATA do tag MV_msg, que é um tipo de string.
MV_line.FD ARL
ASCII Read Line EN
Channel 0
Destination MV_msg DN
''
SerialPort Control MV_read ER
SerialPort Control Length 12
Characters Read 0
42226
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(AWA)
Lógica Ladder
Operandos de Lógica
Ladder: AWA
ASCII Write Append EN
Channel ?
Source ? DN
??
SerialPort Control ? ER
SerialPort Control Length ?
Characters Sent ?
42225
SERIAL_PORT_CONTROL
Estrutura:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Se: Então:
sim Selecione modo do Usuário
não Selecione ou o modo do Sistema ou do
Usuário
Se: Então:
Sim Em Serial Port Control Length, insira o número de caracteres a serem
enviados.
Não Antes da instrução ser executada, mova o membro LEN do tag
Source para o membro LEN do tag Serial Port Control.
Consulte Exemplo 2 na página 16-27.
Execução de Lógica
Ladder:
Condição: Ação:
pré-scan A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira • O bit .EN está energizado.
• Os bits de status restantes, exceto .UL, são desenergizados.
• A instrução tenta entrar na fila ASCII.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Exemplo 1
Quando a temperatura exceder o limite superior (temp_high is on), a instrução AWA envia uma mensagem para o terminal MessageView
que está conectado à porta serial do controlador. A mensagem contém cinco caracteres do membro DATA do tag string[1], que é um tipo
de string. O $14 é contado como um caracter. (Ele é o código hexadecimal para o caracter Ctrl-T.) A instrução também envia (anexos) os
caracteres definidos nas propriedades do controlador. Neste exemplo, a instrução AWA envia um caracterer $0D, que marca o fim da
mensagem.
temp_high AWA
ASCII Write Append EN
Channel 0
Source string[1] DN
'$1425\1'
SerialPort Control temp_high_write ER
SerialPort Control Length 5
Characters Sent 6
Exemplo 2
Quando alarm estiver on, a instrução AWA envia o número específico de caracteres em alarm_msg e anexo um caracter de terminação (s).
Como o número de caracteres em alarm_msg varia, a linha move primeiro o comprimento do string (alarm_msg.LEN) para Serial Port
Control Length da instrução AWA (alarm_write.LEN). Em alarm_msg, o $14 é contado como um caracter. Ele é o código hexadecimal para
o caracter Ctrl-T.
42229
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder
Operandos de Lógica
Ladder: AWT
ASCII Write EN
Channel ?
Source ? DN
??
SerialPort Control ? ER
SerialPort Control Length ?
Characters Sent ?
42225
Estrutura
SERIAL_PORT_CONTROL:
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Se: Então:
Sim Em Serial Port Control Length, insira o número de caracteres a serem
enviados.
Não Antes da instrução ser executada, mova o membro LEN do tag
Source para o membro LEN do tag Serial Port Control.
Consulte Exemplo 2 na página 16-30.
Execução de Lógica
Ladder:
Condição: Ação:
pré-scan A saída da condição da linha é definida como falsa.
entrada da condição da linha for falsa A saída da condição da linha é definida como falsa.
entrada da condição da linha for verdadeira • O bit .EN está energizado.
• Os bits de status restantes, exceto .UL, são desenergizados.
• A instrução tenta entrar na fila ASCII.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Exemplo 1
Quando a temperatura alcança o limite inferior (temp_low está energizado), a instrução AWT envia uma mensagem para o terminal
MessageView que está conectado à porta serial do controlador. A mensagem contém nove caracteres do membro DATA do tag string[2],
que é um tipo de string. O $14 é contado como um caracter. (Ele é o código hexadecimal para o caracter Ctrl-T.) O último caracter é um $r,
que marca o fim da mensagem.
temp_low AWT
ASCII Write EN
Channel 0
Source string[2] DN
'$142224\01$r'
SerialPort Control temp_low_write ER
SerialPort Control Length 9
Characters Sent 9
Exemplo 2
Quando MV_update estiver on, a instrução AWT envia o caracter em MV_msg. Como o número de caracteres em MV_msg varia, a linha
move primeiro o comprimento do string (MV_msg.LEN) para Serial Port Control Length da instrução AWT (MV_write.LEN). Em MV_msg, o
$16 é contado como um caracter. Ele é o código hexadecimal para o caracter Ctrl-V.
42229
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Tipos de String
• Você pode criar novos tipos de string que armazenem menos ou mais
caracteres.
(CONCAT)
Lógica Ladder
Operandos de Lógica
Ladder: CONCAT
String Concatenate
Source A ?
??
Source B ?
??
Dest ?
??
42617
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução da 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 instrução executa.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Para disparar uma mensagem em um terminal MessageView, o controlador deve enviar um string ASCII que contenha um número de
mensagem e um número de nó. String_1 contém o número da mensagem. Quando add_node estiver energizado, a instrução CONCAT
adiciona os caracteres em node_num_ascii (número do nó) ao final dos caracteres em string_1 e, então, armazena o resultado em msg.
add_node CONCAT
String Concatenate
Source A string_1
'$1423\'
Source B node_num_ascii
'1'
Dest msg
'$1423\1'
42613
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
(DELETE)
Lógica Ladder
Operandos de Lógica
Ladder: DELETE
String Delete
Source ?
??
Qty ?
??
Start ?
??
Dest ?
??
42617
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução da 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 instrução executa.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
As informações ASCII de um terminal contêm um caracter de cabeçalho. Depois que o controlador lê os dados (term_read.EM está
energizado) a instrução DELETE remove o caracter de cabeçalho. O controlador pode, então, usar o texto da mensagem ou passá-lo para
outro dispositivo.
term_read.EM DELETE
String Delete
Source term_input
'$0655'
Qty 1
Start 1
Dest term_text
'55'
42613
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder
Operandos de Lógica
Ladder: FIND
Find String
Source ?
??
Search ?
??
Start ?
??
Result ?
??
42617
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução da 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 instrução executa.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
A mensagem de um terminal MessageView contém várias informações. O caracter de barra [ \ ] separa cada parte das informações. Para
localizar uma informação, a instrução FIND procura pelo caracter de barra ( /) e grava sua posição em find_pos.
MV_read.EM FIND
Find String
Source MV_msg
'$06324\12\1\$r'
Search find
'\'
Start 1
Result find_pos
5
42613
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder
Operandos de Lógica
Ladder: INSERT
Insert String
Source A ?
??
Source B ?
??
Start ?
??
Dest ?
??
42617
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução da 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 instrução executa.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando temp_high estiver energizado, a instrução INSERT adiciona os caracteres em string_2 na posição 2 dentro de string_1 e coloca o
resultado em string_3:
temp_high INSERT
Insert String
Source A string_1
'AD'
Source B string_2
'BC'
Start 2
Dest string_3
'ABCD'
42619
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder
Operandos de Lógica
Ladder: MID
Middle String
Source ?
??
Qty ?
??
Start ?
??
Dest ?
??
42617
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução da 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 instrução executa.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Na esteira transportadora para transporte de bagagens de um aeroporto, cada mala tem um código de barras. Os caracteres de 9 a 17 do
código de barras são o número do vôo e o aeroporto destino da mala. Se o código de barra for lido (bag_read.EM for energizado) a
instrução MID copia o número do vôo e o aeroporto destino para o string bag_flt_and_dest. As linhas subsequentes usam
bag_flt_and_dest para determinar para onde levar a mala.
bag_read.EM MID
Middle String
Source bag_barcode
'NWA HOP 5058 AMS 01'
Qty 9
Start 9
Dest bag_flt_and_dest
'5058 AMS '
42619
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Se você quiser converter: Por exemplo: Use esta instrução: Consulte página:
Representação de um valor de inteiro em um converter um valor de uma balança ou outro STOD 18-3
valor SINT, INT, DINT ou REAL dispositivo ASCII para um inteiro, de forma
você o use em sua lógica
Representaçã ASCII de um valor de ponto converter um valor de uma balança ou outro STOR 18-5
flutuante para um valor REAL dispositivo ASCII para um valor REAL, de
forma você possa usá-lo em sua lógica
Valor SINT, INT, DINT ou REAL para um string converter uma variável para um string ASCII, DTOS 18-7
de caracteres ASCII de forma que você possa enviá-la para um
terminal MessageView
Valor REAL para um string de caracteres converter uma variável para um string ASCII, RTOS 18-9
ASCII de forma que você possa enviá-la para um
terminal MessageView
Tipos de String
• Você pode criar novos tipos de string que armazenem menos ou mais
caracteres.
Lógica Ladder
Operandos de Lógica
Ladder: STOD
String To DINT
Source ?
??
Dest ?
??
42617
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução da 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 • S:C está energizadp.
• Destination é removido.
• A instrução converte Source.
• Se o resultado for zero, então S:Z está energizado.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando MV_read.EM estiver energizado, a instrução STOD converte o primeiro conjunto de caracteres numéricos em MV_msg para um
valor inteiro. A instrução salta o caracter de controle inicial ($06) e pára no delimitador ( \ ).
MV_read.EM STOD
String To DINT
Source MV_msg
'$06324\12\1\$r'
Dest MV_msg_nmbr
324
42620
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder
Operandos de Lógica
Ladder: STOR
String to Real
Source ?
??
Dest ?
??
42617
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução da 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 • S:C está energizadp.
• Destination é removido.
• A instrução converte Source.
• Se o resultado for zero, então S:Z está energizado.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Depois de ler o peso de uma balança (weight_read.EM está energizado) a instrução STOR converte os caracteres numéricos em
weight_ascii para um valor REAL.
weight_read.EM STOR
String to Real
Source weight_ascii
'428.259'
Dest weight
428.259
42620
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder
Operandos de Lógica
Ladder: DTOS
DINT to String
Source ?
??
Dest ?
??
42617
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução da 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 instrução executa.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando temp_high estiver energizado, a instrução DTOS converte o valor em msg_num para um string de caracteres ASCII e coloca o
resultado em msg_num_ascii. As linhas subsequentes inserem ou concatenam msg_num_ascii com outros strings para produzir uma
mesnagem completa para um terminal de display.
temp_high DTOS
DINT to String
Source msg_num
23
Dest msg_num_ascii
'23'
42620
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Lógica Ladder
Operandos de Lógica
Ladder: RTOS
Real to String
Source ?
??
Dest ?
??
42617
Operandos do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Condições de Falha:
Execução da 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 instrução executa.
• A saída da condição da linha está definida como verdadeira.
Exemplo de Lógica
Ladder:
Quando send_data estiver energizado, a instrução RTOS converte o valor em data_1 para um string de caracteres ASCII e coloca o
resultado em data_1_ascii. As linhas subsequentes inserem ou concatenam data_1_ascii com outros strings para produzir uma
mesnagem completa para um terminal de display.
send_data RTOS
Real to String
Source data_1
15.3001
Dest data_1_ascii
'15.3001003'
42620
Execução do Bloco de
Função: Esta instrução não está disponível no bloco de função.
Atributos Comuns
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).
EQU
Equal
Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Source B 2#1111_1111_1111_1111
42093
EQU
Equal
Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Source B int_0
2#1111_1111_1111_1111
42093
MOV EQU
Move Equal
Source 2#1111_1111_1111_1111 Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Dest int_0 Source B int_0
2#1111_1111_1111_1111 2#1111_1111_1111_1111
42093
– 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.
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.
IREF
tagA
Block_02
tagA
Block_02
tagA
1 2 3
1 3 5
2 4 6
1 2 3
DEDT NTCH
DERV PI
HPF PIDE
INTG RLIM
LDLG SCRV
LDL2 SOC
LPF TOT
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.
Parâmetros de entrada
válido = 0 a 2
valor inicial = 0
Parâmetros de saída
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
Temporização na
Temporização periódica Temporização em tempo real
amostragem configurada
Se DeltaT < 0 ou DeltaT > 4194,303 segs. Se DeltaT > 0, a instrução executa.
a instrução ajusta DeltaT = 0,0 e
energiza o bit apropriado em Status. Se |RTSTIME - DeltaT| > 1, a instrução energiza o bit
RTSMissed em Status.
Se DeltaT > 0, a instrução executa.
Determine o tipo de tarefa
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.
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.
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.
instruções PID O
operandos 12-21 objeto AXIS 3-31
instruções STD 7-49 objeto CONTROLLER 3-39
instruções trigonométricas objeto CONTROLLERDEVICE 3-39
ACS 13-14 objeto CST 3-41
ASN 13-11 objeto DF1 3-42
ATN 13-16 objeto FAULTLOG 3-45
COS 13-5 objeto MESSAGE 3-46
introdução 13-1 objeto MODULE 3-48
SIN 13-2 objeto MOTIONGROUP 3-49
TAN 13-8 objeto PROGRAM 3-50
objeto ROUTINE 3-51
L objeto SERIALPORT 3-52
label 10-2 objeto TASK 3-54
leitura ASCII 16-17 objeto WALLCLOCKTIME 3-55
limite 4-27 objetos
linha de leitura ASCII 16-20 AXIS 3-31
linhas ASCII handshake 16-14 CONTROLLER 3-39
log CONTROLLERDEVICE 3-39
base 10 14-4 CST 3-41
natural 14-2 DF1 3-42
log natural 14-2 FAULTLOG 3-45
instrução GSV/SSV 3-30
MESSAGE 3-46
M MODULE 3-48
maior ou igual a 4-11 MOTIONGROUP 3-49
maior que 4-15 PROGRAM 3-50
mascarado igual a 4-33 ROUTINE 3-51
máscaras 12-19 SERIALPORT 3-52
média 7-41 TASK 3-54
Meio do String 17-11 WALLCLOCKTIME 3-55
menor ou igual a 4-19 obtenção do valor do sistema 3-28
menor que 4-23 operadores 4-4, 5-4, 7-18, 7-30
mensagem 3-2 ordem de execução B-2
modo All (todos) 7-2
modo de busca 12-4, 12-12
modo de operação 7-2
P
modo Incremental (Incremento) 7-5 polarização da saída (bias) 12-38
modo Numerical (numérico) 7-3 preenchimento de arquivo 7-37
modos de temporização B-5 proporcional, integral e derivativo 12-21
monoestável 1-8
monoestável borda de descida com entrada 1-17 R
monoestável com borda de descida 1-13 radianos 15-5
monoestável com borda de subida 1-10 raiz quadrada 5-23
monoestável com borda de subida com entrada 1-15 REAL Para String 18-9
movimentação 6-2 rearme do controle mestre 10-15
movimentação mascarada 6-4 remoção de buffer e da fila ASCII 16-12
movimentação mascarada com target 6-7 Remoção de String 17-5
multiplicação 5-12 reset 2-35
retorno 10-4, 11-7
N
negação 5-26 S
saída do sequenciador 9-7
Z
T zeramento 6-16
tamanho em elementos 7-53 zona morta 12-37
tangente 13-8
temporizador de desenergização 2-6
temporizador de desenergização com reset 2-17
temporizador de energização 2-2
temporizador de energização com reset 2-14
temporizador retentivo energizado com reset 2-20
temporizador retentivo ligado 2-10
teste ASCII para linha buffer 16-7
Notas:
Caracteres Dec Hex Caracteres Dec Hex Caracteres Dec Hex Caracteres Dec Hex
[ctrl-@] NUL 0 $00 SPACE 32 $20 @ 64 $40 ‘ 96 $60
[ctrl-A] SOH 1 $01 ! 33 $21 A 65 $41 a 97 $61
[ctrl-B] STX 2 $02 “ 34 $22 B 66 $42 b 98 $62
[ctrl-C] ETX 3 $03 # 35 $23 C 67 $43 c 99 $63
[ctrl-D] EOT 4 $04 $ 36 $24 D 68 $44 d 100 $64
[ctrl-E] ENQ 5 $05 % 37 $25 E 69 $45 e 101 $65
[ctrl-F] ACK 6 $06 & 38 $26 F 70 $46 f 102 $66
[ctrl-G] BEL 7 $07 ‘ 39 $27 G 71 $47 g 103 $67
[ctrl-H] BS 8 $08 ( 40 $28 H 72 $48 h 104 $68
[ctrl-I] HT 9 $09 ) 41 $29 I 73 $49 i 105 $69
[ctrl-J] LF 10 $l ($0A) * 42 $2A J 74 $4A j 106 $6A
[ctrl-K] VT 11 $0B + 43 $2B K 75 $4B k 107 $6B
[ctrl-L] FF 12 $0C , 44 $2C L 76 $4C l 108 $6C
[ctrl-M] CR 13 $r ($0D) - 45 $2D M 77 $4D m 109 $6D
[ctrl-N] SO 14 $0E . 46 $2E N 78 $4E n 110 $6E
[ctrl-O] SI 15 $0F / 47 $2F O 79 $4F o 111 $6F
[ctrl-P] DLE 16 $10 0 48 $30 P 80 $50 p 112 $70
[ctrl-Q] DC1 17 $11 1 49 $31 Q 81 $51 q 113 $71
[ctrl-R] DC2 18 $12 2 50 $32 R 82 $52 r 114 $72
[ctrl-S] DC3 19 $13 3 51 $33 S 83 $53 s 115 $73
[ctrl-T] DC4 20 $14 4 52 $34 T 84 $54 t 116 $74
[ctrl-U] NAK 21 $15 5 53 $35 U 85 $55 u 117 $75
[ctrl-V] SYN 22 $16 6 54 $36 V 86 $56 v 118 $76
[ctrl-W] ETB 23 $17 7 55 $37 W 87 $57 w 119 $77
[ctrl-X] CAN 24 $18 8 56 $38 X 88 $58 x 120 $78
[ctrl-Y] EM 25 $19 9 57 $39 Y 89 $59 y 121 $79
[ctrl-Z] SUB 26 $1A : 58 $3A Z 90 $5A z 122 $7A
ctrl-[ ESC 27 $1B ; 59 $3B [ 91 $5B { 123 $7B
[ctrl-\] FS 28 $1C < 60 $3C \ 92 $5C | 124 $7C
ctrl-] GS 29 $1D = 61 $3D ] 93 $5D } 125 $7D
[ctrl-^] RS 30 $1E > 62 $3E ^ 94 $5E ~ 126 $7E
[ctrl-_] US 31 $1F ? 63 $3F _ 95 $5F DEL 127 $7F