Você está na página 1de 560

Instrues Gerais dos Controladores Logix5000

1756-Lx, 1769-Lx, 1789-Lx, 1794-Lx, PowerFlex 700S

Manual de Referncia

Informaes Importantes ao Usurio

Por causa da diversidade de usos dos produtos descritos nesta publicao, os responsveis pela aplicao e usos deste equipamento de controle devem certificar-se de que todas as etapas necessrias foram tomadas para garantir que cada aplicao e uso cumpram todos os requisitos de desempenho e segurana, incluindo todas as leis, regulamentaes, cdigos e padres aplicveis. Em nenhum momento a Rockwell Automation (Allen-Bradley) ser responsvel por danos indiretos ou que possam vir acontecer como resultado do uso ou a aplicao destes produtos. As ilustraes, grficos, exemplos de programas e de layout mostrados neste manual so apenas para fins ilustrativos. Visto que h diversas variveis e requisitos associados a qualquer instalao em especial, a Rockwell Automation/Allen-Bradley no assume a responsabilidade (incluindo a responsabilidade por propriedade intelectual) pelo uso real baseado nos exemplos mostrados nesta publicao. A publicao SGI-1.1, Diretrizes de Segurana para Aplicao, Instalao e Manuteno dos Dispositivos de Controle Eletrnico (disponvel no escritrio local da Rockwell Automation/Allen-Bradley), descreve algumas diferenas importantes entre os equipamentos eletrnicos e dispositivos eletromecnicos, que devem ser levadas em considerao ao utilizar produtos como os descritos nesta publicao. proibida a reproduo, parcial ou total, deste manual sem a permisso por escrito da Rockwell Automation. Ao longo deste manual, usamos observaes a fim de chamar a sua ateno para algumas consideraes de segurana. As anotaes a seguir acompanham declaraes que ajudam voc a identificar, evitar um perigo potencial e a reconhecer as suas conseqncias: ATENO Identifica as informaes sobre prticas ou circunstncias que podem causar danos pessoais ou a morte, danos propriedade ou perdas econmicas.

!
IMPORTANTE

Identifica as informaes crticas para aplicao e compreenso bem-sucedidas do produto.

Allen-Bradley, ControlLogix, DH+, Logix5000, Logix5550, CLP-2, CLP-3, CLP-5 RSLinx, RSLogix 5000, RSNetWorx e SLC so marcas da Rockwell Automation ControlNet uma marca registrada da ControlNet International, Ltda. Ethernet uma marca registrada da Digital Equipment Corporation, Intel e Xerox Corporation.

Suporte da Rockwell Automation

Antes de entrar em contato com a Rockwell Automation para assistncia tcnica, sugerimos que voc revise as informaes sobre as localizaes de falhas contidas nesta primeira publicao. Caso o problema persista, telefone para o representante local da Rockwell Automation ou entre em contato com a Rockwell Automation por:
Telefone Estados Unidos/Canad Outras Localidades 1.440.646.5800 Voc pode obter o nmero do telefone em seu pas atravs da Internet: 1. Acesse o site http://www.ab.com 2. Clique em Product Support (http://support.automation.rockwell.com) 3. Em Support Centers, clique em Contact Information 1. Acesse o site http://www.ab.com 2. Clique em Product Support (http://support.automation.rockwell.com)

Internet

Notas:

Resumo das Alteraes

Introduo Informaes Atualizadas

A verso desse documento contm informaes novas e atualizadas.

Este documento contm as seguintes alteraes: Agora, este documento inclui texto estruturado, alm da lgica ladder e bloco de funes. O incio de cada captulo lista as linguagens disponveis para as instrues descritas no captulo. A tabela de execuo de cada instruo inclui uma condio postscan. Este documento contm estas alteraes especficas:
Alterao: As instrues BAND, BOR, BXOR e BNOT foram adicionadas a este manual para que o bitwise e as instrues de lgica estejam no mesmo manual. Elas foram removidas do Logix5000 Controllers Process Control and Drives Instruction Set Reference Manual, publicao 1756-RM006. A fonte para uma instruo SIZE pode ser um tag do array. Voc no precisa mais especificar o primeiro elemento no array. Adio da instruo JXR que somente era compatvel com os controladores SoftLogix5800 Adio das instrues EOT, SFP e SFR O Apndice A contm informaes extras sobre reteno de IREFs e OREFs. IREFs e OREFs podem usar o mesmo nome de tag sem alterar os valores de IREFs para um scan. Um novo apndice explica como programar em texto estruturado. Consulte o captulo: 6

7 10 10 A

Publicao 1756-RM003F-PT-P - Maio 2002

Resumo das Alteraes

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Localizador de Instruo

Onde Encontrar uma Instruo


Se o localizador listar: um nmero de pgina controle de processo controle de posicionamento (motion)

Use este localizador para encontrar detalhes de referncia sobre as instrues do Logix (as instrues em cinza esto disponveis em outros manuais). Este localizador tambm lista as linguagens de programao que esto disponveis para as instrues.
A instruo est documentada em: este manual Manual de Referncia do Conjunto de Instrues dos Inversores e Controle de Processo dos Controladores Logix5000, publicao 1756-RM006 Logix5000 Controllers Motion Instruction Set Reference Manual, publicao 1756-RM007

Instruo: ABL ABS

Local: 16-5 5-26

Linguagens: lgica ladder texto estruturado lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder texto estruturado texto estruturado lgica ladder bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder lgica ladder texto estruturado texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder texto estruturado texto estruturado lgica ladder bloco de funes

Instruo: ATAN ATN AVE AWA AWT BAND BNOT BOR BRK BSL BSR BTD BTDT BTR (tipo MSG) BTW (tipo MSG) BXOR CLR

Local: 13-12 13-12 7-35 16-22 16-26 6-33 6-40 6-35 11-5 8-2 8-5 6-11 6-14 3-2 3-2 6-38 6-17

Linguagens: texto estruturado lgica ladder bloco de funes lgica ladder lgica ladder texto estruturado lgica ladder texto estruturado texto estruturado bloco de funes texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder lgica ladder lgica ladder lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder texto estruturado texto estruturado bloco de funes lgica ladder texto estruturado

ACB ACL ACOS ACS ADD

16-8 16-10 13-10 13-10 5-5

AFI AHL ALM AND

10-22 16-12 controle de processo 6-21

ARD ARL ASIN ASN

16-15 16-18 13-8 13-8

Publicao 1756-RM003F-PT-P - Maio 2002

Localizador de Instruo

Instruo: CMP CONCAT COP COS

Local: 4-2 17-3 7-25 13-4

Linguagens: lgica ladder lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder lgica ladder lgica ladder texto estruturado bloco de funes texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder lgica ladder texto estruturado lgica ladder texto estruturado bloco de funes

Instruo: ESEL FAL FBC FFL FFU FGEN FIND FLL FOR FRD FSC GEQ

Local: controle de processo 7-6 12-2 8-8 8-14 controle de processo 17-7 7-31 11-2 15-9 7-17 4-10

Linguagens: texto estruturado bloco de funes lgica ladder lgica ladder lgica ladder lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder lgica ladder lgica ladder bloco de funes lgica ladder lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder texto estruturado texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder lgica ladder texto estruturado bloco de funes lgica ladder lgica ladder texto estruturado bloco de funes

CPS CPT CTD CTU CTUD D2SD D3SD DDT DEDT DEG

7-25 5-2 2-25 2-22 2-29 controle de processo controle de processo 12-9 controle de processo 15-2

GRT

4-14

GSV HLL HPF INSERT INTG JKFF JMP JSR

3-29 controle de processo controle de processo 17-9 controle de processo controle de processo 10-2 10-4

DELETE DERV DFF DIV

17-5 controle de processo controle de processo 5-14

DTOS DTR EOT EQU

18-7 12-16 10-24 4-7

JXR LBL LDL2

10-13 10-2 controle de processo

Publicao 1756-RM003F-PT-P - Maio 2002

Localizador de Instruo

Instruo: LDLG LEQ

Local: controle de processo 4-18

Linguagens: texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder lgica ladder lgica ladder bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado

Instruo: MAS MASD MASR MATC MAVE MAW MAXC MCCP MCD MCR MDF MDO MDOC MDR MDW MEQ

Local: controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento controle de processo controle de posicionamento controle de processo controle de posicionamento controle de posicionamento 10-18 controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento 4-32

Linguagens: lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado texto estruturado bloco de funes lgica ladder texto estruturado texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado

LES

4-22

LFL LFU LIM LN

8-20 8-26 4-26 14-2

LOG

14-4

LOWER LPF MAAT

18-13 controle de processo controle de posicionamento (motion) controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento

MAFR MAG MAH MAHD MAJ MAM MAOC MAPC MAR

MGS MGSD MGSP MGSR MID

controle de posicionamento controle de posicionamento controle de posicionamento controle de posicionamento 17-11

Publicao 1756-RM003F-PT-P - Maio 2002

Localizador de Instruo

Instruo: MINC MOD

Local: controle de processo 5-18

Linguagens: texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder lgica ladder texto estruturado bloco de funes texto estruturado bloco de funes

Instruo: ONS OR

Local: 1-11 6-24

Linguagens: lgica ladder lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder lgica ladder lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado texto estruturado bloco de funes texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado

OSF OSFI OSR OSRI OTE OTL OTU PI PID PIDE PMUL POSP RAD

1-16 1-16 1-14 1-14 1-6 1-7 1-9 controle de processo 12-19 controle de processo controle de processo controle de processo 15-4

MOV MRAT MRHD MRP

6-3 controle de posicionamento controle de posicionamento controle de controle de posicionamento controle de controle de posicionamento 3-2 controle de controle de posicionamento controle de processo 5-11

MSF

MSG MSO

MSTD MUL

MUX MVM MVMT NEG

controle de processo 6-5 6-8 5-24

RES RESD RET

2-33 controle de processo 10-4 e 11-6

NEQ

4-37

RLIM RMPS RTO RTOR RTOS

controle de processo controle de processo 2-9 2-19 18-9

NOP NOT

10-23 6-30

NTCH

controle de processo

Publicao 1756-RM003F-PT-P - Maio 2002

Localizador de Instruo

Instruo: SBR

Local: 10-4

Linguagens: lgica ladder texto estruturado bloco de funes texto estruturado bloco de funes texto estruturado bloco de funes bloco de funes texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder lgica ladder lgica ladder lgica ladder bloco de funes texto estruturado lgica ladder texto estruturado texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder lgica ladder texto estruturado

Instruo: STOR SUB

Local: 18-5 5-8

Linguagens: lgica ladder texto estruturado lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder texto estruturado bloco de funes lgica ladder lgica ladder bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes texto estruturado bloco de funes lgica ladder bloco de funes texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado texto estruturado bloco de funes lgica ladder texto estruturado lgica ladder lgica ladder lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes

SCL SCRV SEL SETD SFP SFR SIN

controle de processo controle de processo controle de processo controle de processo 10-26 10-28 13-2

SWPB TAN

6-18 13-6

TND TOD TOF TOFR TON TONR TOT TRN TRUNC UID UIE UPDN UPPER XIC XIO XOR

10-16 15-6 2-5 2-16 2-2 2-13 controle de processo 15-11 15-11 10-20 10-20 controle de processo 18-11 1-2 1-4 6-27

SIZE SNEG SOC SQI SQL SQO SQR SQRT SRT SRTP SSUM SSV STD STOD

7-50 controle de processo controle de processo 9-2 9-10 9-6 5-21 5-21 7-40 controle de processo controle de processo 3-29 7-45 18-3

XPY

14-6

Publicao 1756-RM003F-PT-P - Maio 2002

Localizador de Instruo

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Prefcio

Introduo
Tarefa/Meta:

Este manual um dos diversos documentos de instruo baseado em Logix.


Documentos:

Programao do controlador para aplicaes Logix5000 Controllers General Instructions Reference Manual, publicao seqenciais 1756-RM003
Voc est aqui

Programao do controlador para aplicaes Manual de Referncia do Conjunto de Instrues dos Inversores e Controle de de processo ou inversores Processo dos Controladores Logix5000 , publicao 1756-RM006 Programao do controlador para aplicaes Logix5000 Controllers Motion Instructions Set Reference Manual, de posicionamento (motion) publicao 1756-RM007 Importao de um arquivo de texto ou tags em um projeto Exportao de um projeto ou tags para um arquivo texto Converso de uma aplicao CLP-5 ou SLC 500 para uma aplicao Logix5000 Logix5550 Controller Converting PLC-5 ou SLC 500 Logic to Logix5550 Logic Reference Manual, publicao 1756-RM085 Logix5000 Controllers Import/Export Reference Manual, publicao 1756-RM084

Quem Deve Utilizar este Manual

Este documento fornece ao programador detalhes sobre cada instruo disponvel para um controlador baseado em Logix. Voc j deve estar familiarizado sobre como o controlador baseado em Logix armazena e processa dados. Os programadores novos devem ler todos os detalhes sobre uma instruo antes de us-la. J programadores mais experientes podem consultar as informaes sobre as instrues para verificar os detalhes.

Publicao 1756-RM003F-PT-P - Maio 2002

Prefcio

Objetivo do Manual
Essa seo: Nome da instruo Operandos

Este manual fornece uma descrio de cada instruo neste formato.


Fornece este tipo de informao: identifica a instruo define se a instruo de entrada ou de sada lista todos os operandos da instruo se disponvel em lgica ladder, descreve os operandos se disponvel em texto estruturado, descreve os operandos se disponvel em bloco de funes, descreve os operandos Os pinos mostrados no bloco de funes padro so somente pinos bsicos. A tabela de operandos lista todos os pinos possveis para um bloco de funes.

Estrutura da instruo Descrio Flags de Status Aritmtico: Condies de Falha: Execuo EXEMPLO

lista os valores e os bits de status de controle da instruo, se houver descreve o uso da instruo define quaisquer diferenas quando a instruo estiver habilitada e desabilitada, se apropriado define se a instruo interfere ou no nos flags de status aritmtico consulte o apndice Atributos Comuns define se a instruo gera falhas graves ou de advertncia se necessrio, define o cdigo e o tipo da falha define a maneira como a instruo opera fornece pelo menos um exemplo de programao em cada linguagem de programao disponvel inclui uma descrio explicando cada exemplo

Os cones a seguir ajudam a identificar as informaes especficas da linguagem:


Este cone: Indica esta linguagem de programao: lgica ladder

texto estruturado

bloco de funes

Publicao 1756-RM003F-PT-P - Maio 2002

Prefcio

Informaes Comuns para Todas as Instrues

O conjunto de instrues do Logix5000 possui alguns atributos comuns:


Para obter esta informao: atributos comuns Consulte este apndice: apndice Atributos Comuns define: flags de status aritmtico: tipos de dados palavras-chaves apndice Atributos do Bloco de Funes define: controle do programa e operador modos de temporizao

atributos do bloco de funes

Convenes e Termos Relacionados

Energizar e desenergizar
Este manual usa energizar e desenergizar para definir o status de bits (booleanos) e valores (no booleanos):
Este termo: energizar Significa: o bit est energizado em 1 (ON) um valor est energizado em um nmero diferente de zero o bit est desenergizado em 0 (OFF) todos os bits em um valor so desenergizados em 0

desenergizar

Se um operando ou parmetro suporta mais do que um tipo de dados, os tipos de dados em negrito indicam os tipos de dados timos. Uma instruo executa mais rapidamente e requer menos memria se todos os operandos da instruo usarem o mesmo tipo de dados timo, geralmente, DINT ou REAL.

Condio de linha de lgica ladder


O controlador avalia as instrues de lgica ladder com base na condio da linha que antecede a instruo (entrada da condio da linha). Com base na entrada da condio da linha e na instruo, o controlador define a condio da linha seguindo a instruo (sada da condio da linha) que, por sua vez, afeta qualquer instruo subseqente.

instruo de entrada

instruo de sada

condio da entrada da linha

condio da sada da linha

Publicao 1756-RM003F-PT-P - Maio 2002

Prefcio

Se a condio da entrada da linha para uma instruo de entrada for verdadeira, o controlador avalia a instruo e energiza a condio da sada da linha com base nos resultados da instruo. Se a instruo for avaliada como verdadeira, a condio da sada da linha verdadeira; Se a instruo for avaliada como falsa, a condio da sada da linha falsa. O controlador tambm efetua o prescan das instrues. O prescan um scan especial de todas as rotinas no controlador. O controlador efetua o scan de todas as rotinas e sub-rotinas principais durante o prescan, mas ignora os saltos que poderiam pular a execuo das instrues. O controlador executa todas as malhas FOR e chamadas de sub-rotinas. Se uma sub-rotina for chamada mais do que uma vez, ela executada toda vez que chamada. O controlador usa o prescan de instrues de lgica ladder para resetar as E/S no retentivas e os valores internos. Durante o prescan, os valores de entrada no so atuais e as sadas no so escritas. As condies a seguir geram a prescan: Passagem de modo de Programa para Operao Entrada automtica no modo de Operao de uma condio de energizao. A prescan no ocorre para um programa quando: O programa se torna determinado enquanto o controlador est operando. O programa no determinado quando o controlador entra no modo Run.

Estados do bloco de funes


O controlador avalia as instrues do bloco de funes baseado no estado de diferentes condies.
Condio Possvel: prescan Descrio: O prescan para as rotinas do bloco de funes igual a das rotinas de lgica ladder. A nica diferena que o parmetro EnableIn para cada instruo do bloco de funes desenergizada durante a prescan. O primeiro scan da instruo se refere primeira vez que uma instruo executada aps o prescan. O controlador usa o primeiro scan da instruo para ler as entradas em corrente e determinar o estado apropriado em que se deve estar. A primeira operao da instruo se refere a primeira vez que a instruo executa com uma nova instncia de estrutura de dados. O controlador usa a primeira operao da instruo para gerar coeficientes e outros armazenamentos de dados que no se alteram para um bloco de funes aps o descarregamento inicial.

primeiro scan da instruo

primeira execuo da instruo

Publicao 1756-RM003F-PT-P - Maio 2002

Prefcio

Toda instruo do bloco de funes tambm inclui os parmetros EnableIn e EnableOut: as instrues do bloco de funes executam normalmente quando o EnableIn energizado. Quando o EnableIn desenergizado, a instruo do bloco de funes executa a lgica da prescan, a lgica da postscan ou apenas pula a execuo do algoritmo normal. O EnableOut espelha o EnableIn, porm, se a execuo do bloco de funes detecta uma condio de overflow, o EnableOut tambm desenergizado. A execuo do bloco de funes reinicia onde parou quando o EnableIn passa de desenergizado para energizado. Porm existem algumas instrues de bloco de funes que especificam funcionalidade especial, como reinicializao, quando o EnableIn passa de desenergizado para energizado. Para instrues do bloco de funes com parmetros baseados no tempo, sempre quando o modo de temporizao estiver no Oversample, a instruo sempre reiniciar onde parou quando o EnableIn passa de desenergizado para energizado. Se o parmetro EnableIn no estiver conectado, a instruo sempre executa como normal e o EnableIn se mantm energizado. Se desenergizar o EnableIn, este se alterar para energizar na prxima vez que a instruo executar.

IMPORTANTE

Ao programar o bloco de funes, limite a amplitude das unidades de medida para +/-10+/-15 pois os clculos de ponto flutuante interno so feitos atravs de um nico ponto flutuante de preciso. As unidades de medida fora desta amplitude podem resultar em perda de preciso se os resultados ficarem prximos s limitaes do nico ponto flutuante de preciso (+/-10+/-38).

Publicao 1756-RM003F-PT-P - Maio 2002

Prefcio

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Contedo
Captulo 1 Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examinar Se Energizado (XIC) . . . . . . . . . . . . . . Examinar Se Desenergizado (XIO) . . . . . . . . . . . Energizar Sada (OTE) . . . . . . . . . . . . . . . . . . . . Energizar Sada com Reteno (OTL) . . . . . . . . . Desenergizar Sada com Reteno (OTU) . . . . . . Monoestvel (ONS) . . . . . . . . . . . . . . . . . . . . . . Monoestvel Sensvel Borda de Subida (OSR) . Monoestvel Sensvel Borda de Descida (OSF) Monoestvel Sensvel Borda de Subida com Entrada (OSRI) . . . . . . . . . . . . . . . . . . . . . . . . . Monoestvel Sensvel Borda de Descida com Entrada (OSFI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 1-2 1-4 1-6 1-7 1-9 1-11 1-14 1-16

. . . . . . . . 1-18 . . . . . . . . 1-20

Captulo 2 Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Temporizador na Energizao (TON). . . . . . . . . . . . Temporizador na Desenergizao (TOF) . . . . . . . . . Temporizador Retentivo (RTO) . . . . . . . . . . . . . . . . Temporizador na Energizao com Reset (TONR) . . Temporizador na Desenergizao com Reset (TOFR) Temporizador Retentivo com Reset (RTOR) . . . . . . . Contador Crescente (CTU). . . . . . . . . . . . . . . . . . . . Contagem Decrescente (CTD) . . . . . . . . . . . . . . . . . Contagem Crescente/Decrescente (CTUD) . . . . . . . . Reset (RES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 2-2 2-5 2-9 2-13 2-16 2-19 2-22 2-25 2-29 2-33

Captulo 3 Instrues de Entrada/Sada (MSG, GSV, SSV)


Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mensagem (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . Cdigos de Erro MSG . . . . . . . . . . . . . . . . . . . . . . . Cdigos de Erro. . . . . . . . . . . . . . . . . . . . . . . . . Cdigos de Erro Estendido . . . . . . . . . . . . . . . . . Cdigos de Erro do CLP e do SLC (.ERR) . . . . . . Cdigos de Erro de Block-transfer . . . . . . . . . . . Especificao dos Detalhes da Configurao . . . . . . Especificao das Mensagens de Leitura e Escrita da Tabela de Dados CIP. . . . . . . . . . . . . . . . . . . Reconfigurao de um Mdulo de E/S . . . . . . . . Especificar Mensagens CIP Generic. . . . . . . . . . . Especificao das mensagens do CLP-5. . . . . . . . Especificao das Mensagens do SLC . . . . . . . . . Especificao das Mensagens Block-transfer . . . . Especificao de Mensagens do CLP-3 . . . . . . . . Especificao das mensagens do CLP-2. . . . . . . . Exemplos de Configurao MSG . . . . . . . . . . . . . . . Especificao de Detalhes de Comunicao . . . . . . . Especificar um caminho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 3-2 3-7 3-8 3-9 3-11 3-12 3-13 3-14 3-14 3-16 3-17 3-18 3-18 3-19 3-20 3-21 3-22 3-22

Publicao 1756-RM003F-PT-P - Maio 2002

ii

Contedo

Especificar um Mdulo de Comunicao ou Endereo do Mdulo:. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26 Escolha de uma opo de cache: . . . . . . . . . . . . . . . . . 3-27 Obteno do Valor do Sistema (GSV) e Definio do Valor do Sistema (SSV) . . . . . . . . . . . . . . . . . . . . . . . . . 3-29 Objetos GSV/SSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30 Acesso ao objeto CONTROLLER . . . . . . . . . . . . . . . . . 3-31 Acesso ao objeto CONTROLLERDEVICE . . . . . . . . . . . . 3-32 Acesso ao objeto CST. . . . . . . . . . . . . . . . . . . . . . . . . . 3-34 Acesso ao objeto DF1 . . . . . . . . . . . . . . . . . . . . . . . . . 3-35 Acesso ao objeto FAULTLOG . . . . . . . . . . . . . . . . . . . . 3-38 Acesso ao objeto MESSAGE . . . . . . . . . . . . . . . . . . . . . 3-39 Acesso ao objeto MODULE . . . . . . . . . . . . . . . . . . . . . 3-41 Acesso ao objeto MOTIONGROUP . . . . . . . . . . . . . . . 3-42 Acesso ao objeto PROGRAM . . . . . . . . . . . . . . . . . . . . 3-43 Acesso ao objeto ROUTINE . . . . . . . . . . . . . . . . . . . . . 3-44 Acesso ao objeto SERIALPORT . . . . . . . . . . . . . . . . . . . 3-44 Acesso ao objeto TASK . . . . . . . . . . . . . . . . . . . . . . . . 3-46 Acesso ao objeto WALLCLOCKTIME . . . . . . . . . . . . . . . 3-46 Exemplo de Programao GSV/SSV . . . . . . . . . . . . . . . . . . 3-48 Obteno de informaes de falha . . . . . . . . . . . . . . . . 3-48 Configurao de flags de habilitao e desabilitao . . . 3-49

Captulo 4 Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparao (CMP) . . . . . . . . . . . . . . . . . . . . . Expresses CMP . . . . . . . . . . . . . . . . . . . . Operadores vlidos . . . . . . . . . . . . . . . . . . Formatao de expresses . . . . . . . . . . . . . Determinao da seqncia da operao . . Uso de strings em uma expresso. . . . . . . . Igual (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . Maior ou Igual a (GEQ). . . . . . . . . . . . . . . . . . Maior que (GRT). . . . . . . . . . . . . . . . . . . . . . . Menor ou Igual a (LEQ) . . . . . . . . . . . . . . . . . Menor Que (LES) . . . . . . . . . . . . . . . . . . . . . . Limite (LIM) . . . . . . . . . . . . . . . . . . . . . . . . . . Mscara Igual a (MEQ) . . . . . . . . . . . . . . . . . . Insero de um valor de mscara imediato . Diferente de (NEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 4-2 4-4 4-4 4-4 4-5 4-5 4-7 4-10 4-14 4-18 4-22 4-26 4-32 4-33 4-37

Captulo 5 Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Introduo . . . . . . . . . . . . . . . Clculo (CPT) . . . . . . . . . . . . . Operadores vlidos . . . . . . Formatao de expresses . Determinao da seqncia Adio (ADD) . . . . . . . . . . . . . Subtrao (SUB) . . . . . . . . . . . .......... .......... .......... .......... da operao .......... .......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 5-2 5-3 5-4 5-4 5-5 5-8

Publicao 1756-RM003F-PT-P - Maio 2002

Contedo

iii

Multiplicao (MUL) . Diviso (DIV) . . . . . . Mdulo (MOD) . . . . . Raiz Quadrada (SQR) Negao (NEG). . . . . Valor Absoluto (ABS)

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

5-11 5-14 5-18 5-21 5-24 5-26

Captulo 6 Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Movimentao (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . . Movimento com Mscara (MVM) . . . . . . . . . . . . . . . . . . Insero de um valor de mscara imediato . . . . . . . . Movimentao com Mscara Com Arquivo-Alvo (MVMT) Distribuio de Bits (BTD). . . . . . . . . . . . . . . . . . . . . . . Distribuio de Bits com Arquivo-alvo (BTDT) . . . . . . . . Zeramento (CLR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Swap (inverso) de Byte (SWPB) . . . . . . . . . . . . . . . . . . AND (E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OR (OU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ou Exclusivo (XOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . Complementao (NOT) . . . . . . . . . . . . . . . . . . . . . . . . E Booleano (BAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . (OU) Booleano (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . (Ou Exclusivo) Booleano (BXOR) . . . . . . . . . . . . . . . . . NOT Booleano (BNOT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 6-3 6-5 6-6 6-8 6-11 6-14 6-17 6-18 6-21 6-24 6-27 6-30 6-33 6-35 6-38 6-40

Captulo 7 InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Seleo do Modo de Operao . . . . . . . . . . . . . . . . . . . . . Modo ALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modo Numerical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modo Incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aritmtica de Arquivos (FAL). . . . . . . . . . . . . . . . . . . . . . . expresses FAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . Formatao de expresses . . . . . . . . . . . . . . . . . . . . . . Determinao da seqncia da operao . . . . . . . . . . . Comparao e Busca de Arquivo (FSC) . . . . . . . . . . . . . . . Expresses FSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . Formatao de expresses . . . . . . . . . . . . . . . . . . . . . . Determinao da seqncia da operao . . . . . . . . . . . Uso de strings em uma expresso. . . . . . . . . . . . . . . . . Cpia de Arquivo (COP) Arquivo de Cpia Sncrono (CPS). Preenchimento de Arquivo (FLL) . . . . . . . . . . . . . . . . . . . . Mdia de Arquivo (AVE) . . . . . . . . . . . . . . . . . . . . . . . . . . Classificao de Arquivo (SRT) . . . . . . . . . . . . . . . . . . . . . Desvio Padro do Arquivo (STD) . . . . . . . . . . . . . . . . . . . Tamanho em Elementos (SIZE) . . . . . . . . . . . . . . . . . . . . . 7-1 7-2 7-2 7-3 7-4 7-6 7-15 7-15 7-16 7-16 7-17 7-21 7-22 7-22 7-23 7-23 7-25 7-31 7-35 7-40 7-45 7-50

Publicao 1756-RM003F-PT-P - Maio 2002

iv

Contedo

Captulo 8 Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . Deslocamento de Bit para a Esquerda (BSL). Deslocamento de Bit para a Direita (BSR) . . Carga FIFO (FFL) . . . . . . . . . . . . . . . . . . . . Descarga FIFO (FFU) . . . . . . . . . . . . . . . . . Carga LIFO (LFL). . . . . . . . . . . . . . . . . . . . . Descarga LIFO (LFU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 8-2 8-5 8-8 8-14 8-20 8-26

Captulo 9 Instrues do Seqenciador (SQI, SQO, SQL)


Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . Entrada do Seqenciador (SQI) . . . . . . . . . . . . Insero de um valor de mscara imediato . Uso de SQI sem SQO. . . . . . . . . . . . . . . . . Sada do Seqenciador (SQO) . . . . . . . . . . . . . Insero de um valor de mscara imediato . Uso de SQI com SQO . . . . . . . . . . . . . . . . Reset da posio de SQO . . . . . . . . . . . . . . Carga do Seqenciador (SQL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1 9-2 9-3 9-5 9-6 9-7 9-9 9-9 9-10

Captulo 10 Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . Salto para Label (JMP) Label (LBL) . . . . . . . . . . . . . . . . . . . . . . . . . . Salto para Sub-rotina (JSR) Sub-rotina (SBR) Retorno da Sub-rotina (RET) . . . . . . . . . . . . . Salto para a Rotina Externa (JXR) . . . . . . . . . . Fim Temporrio (TND) . . . . . . . . . . . . . . . . . Rearme do Controle Mestre (MCR). . . . . . . . . Interrupo Desabilitada (UID) Interrupo Habilitada (UIE) . . . . . . . . . . . . . . . . . . . . . . Instruo Sempre Falsa (AFI) . . . . . . . . . . . . . Sem Operao (NOP) . . . . . . . . . . . . . . . . . . Fim da Transio (EOT) . . . . . . . . . . . . . . . . Pausa de SFC (SFP) . . . . . . . . . . . . . . . . . . . . Reset de SFC (SFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 . . . . . . . . . . 10-2

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. 10-4 10-13 10-16 10-18 10-20 10-22 10-23 10-24 10-26 10-28

Captulo 11 Instrues For/Break (FOR, FOR...DO, BRK, EXIT, RET)


Introduo . . De... (FOR) . . Break (BRK) . Return (RET). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 11-2 11-5 11-6

Captulo 12 Instrues Especiais (FBC, DDT, DTR, PID)


Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 Comparao Entre os Bits de Arquivo (FBC) . . . . . . . . . . . 12-2 Seleo do modo de busca. . . . . . . . . . . . . . . . . . . . . . 12-3

Publicao 1756-RM003F-PT-P - Maio 2002

Contedo

Deteco de Diagnstico (DDT) . . . . . . . . . . . . . . . . Seleo do modo de busca. . . . . . . . . . . . . . . . . . Dados Transacionais (DTR) . . . . . . . . . . . . . . . . . . . . Insero de um valor de mscara imediato . . . . . . Instruo PID (PID) . . . . . . . . . . . . . . . . . . . . . . . . . Configurao de uma Instruo PID. . . . . . . . . . . . . . Especificao de ajuste. . . . . . . . . . . . . . . . . . . . . Especificao de configurao . . . . . . . . . . . . . . . Especificao de alarmes . . . . . . . . . . . . . . . . . . . Especificao de converso de escala . . . . . . . . . . Uso das Instrues PID . . . . . . . . . . . . . . . . . . . . . . . Disparo anti-reset e transferncia sem interrupo de manual para automtico . . . . . . . . . . . . . . . . . Temporizao da instruo PID . . . . . . . . . . . . . . Reincializao Sem Interrupo . . . . . . . . . . . . . . Suavizao do derivativo . . . . . . . . . . . . . . . . . . . Definio da zona morta . . . . . . . . . . . . . . . . . . . Utilizao da limitao de sada . . . . . . . . . . . . . . Feedforward ou bias de sada. . . . . . . . . . . . . . . . Malhas em cascata . . . . . . . . . . . . . . . . . . . . . . . . Controle de uma razo. . . . . . . . . . . . . . . . . . . . . Teoria PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . processo PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . Processo PID com malhas mestre/escravo. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. 12-9 12-10 12-16 12-16 12-19 12-23 12-24 12-24 12-25 12-25 12-26 12-28 12-29 12-32 12-33 12-33 12-34 12-34 12-35 12-35 12-37 12-37 12-37

Captulo 13 Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Introduo . . . . . . . . Seno (SIN) . . . . . . . . Co-seno (COS) . . . . . Tangente (TAN) . . . . Arco Seno (ASN) . . . . Arco Co-seno (ACS) . Arco Tangente (ATN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 . 13-2 . 13-4 . 13-6 . 13-8 13-10 13-12

Captulo 14 Instrues de Matemtica Avanada (LN, LOG, XPY)


Introduo . . . . . . . . Log Neperiano (LN) . Log Base 10 (LOG) . . X Elevado a Y (XPY). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 14-2 14-4 14-6

Captulo 15 Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)
Introduo . . . . . . . . . . . . . Graus (DEG). . . . . . . . . . . . Radianos (RAD) . . . . . . . . . Converso para BCD (TOD) Converso em Inteiro (FRD) Truncar (TRN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1 . 15-2 . 15-4 . 15-6 . 15-9 15-11

Publicao 1756-RM003F-PT-P - Maio 2002

vi

Contedo

Captulo 16 Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Introduo . . . . . . . . . . . . . . . . . . . . . . Execuo da Instruo . . . . . . . . . . . Cdigos de Erro ASCII . . . . . . . . . . . Tipos de Dados da String . . . . . . . . . Teste ASCII Para Linha do Buffer (ABL) . Caracteres ASCII no Buffer (ACB) . . . . . Limpeza do Buffer ASCII (ACL) . . . . . . . Linhas de Handshake ASCII (AHL). . . . . Leitura ASCII (ARD) . . . . . . . . . . . . . . . Linha de Leitura ASCII (ARL) . . . . . . . . . Anexar Leitura ASCII (AWA) . . . . . . . . . Escrita ASCII (AWT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1 . 16-2 . 16-4 . 16-4 . 16-5 . 16-8 16-10 16-12 16-15 16-18 16-22 16-26

Captulo 17 Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)


Introduo . . . . . . . . . . . . . . . . . . Tipos de Dados da String . . . . . Concatenao de String (CONCAT) Excluso de String (DELETE) . . . . . Localizao de String (FIND) . . . . . Insero de String (INSERT). . . . . . String Mdia (MID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 . 17-2 . 17-3 . 17-5 . 17-7 . 17-9 17-11

Captulo 18
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 Instrues de Converso ASCII Tipos de Dados da String . . . . . . . . . . . . . . . . . . . . . . . 18-2 (STOD, STOR, DTOS, RTOS, UPPER, String Para DINT (STOD) . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 LOWER) String Para REAL (STOR) . DINT Para String (DTOS) REAL Para String (RTOS) . Letra Maiscula (UPPER) . Letra Minscula (LOWER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5 . 18-7 . 18-9 18-11 18-13

Apndice A Atributos Comuns


Introduo . . . . . . . . . . . . . Valores Imediatos . . . . . . . . Converses de Dados . . . . . SINT ou INT para DINT . Inteiro para REAL. . . . . . DINT para SINT ou INT . REAL para um inteiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 A-1 A-1 A-3 A-4 A-5 A-5

Publicao 1756-RM003F-PT-P - Maio 2002

Contedo

vii

Apndice B Atributos do Bloco de Funes


Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lanamento de Dados. . . . . . . . . . . . . . . . . . . . . . . . . Seqncia de Execuo . . . . . . . . . . . . . . . . . . . . . . . . Respostas do Bloco de Funes para as Condies de Overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modos de Temporizao . . . . . . . . . . . . . . . . . . . . . . . Parmetros de instruo comum para os modos de temporizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caractersticas Gerais dos modos de temporizao . Controle de Program/Operator . . . . . . . . . . . . . . . . . . . . . B-1 . . . B-2 . . . B-3 . . . B-5 . . . B-5 . . . B-7 . . . B-9 . . B-10

Apndice C Programao de Texto Estruturado


Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sintaxe do Texto Estruturado. . . . . . . . . . . . . . . . . . Atributos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Especificao de um atributo no retentivo . . . . . Atribuio de um caractere ASCII para um string. Expresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use os operadores e funes aritmticas . . . . . . . Uso dos operadores relacionados . . . . . . . . . . . . Uso dos operadores lgicos . . . . . . . . . . . . . . . . Uso de operadores bitwise . . . . . . . . . . . . . . . . . Determinao da seqncia de execuo . . . . . . Instrues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Construes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CASE...OF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FORDO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WHILEDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REPEATUNTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . Comentrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-1 C-1 C-2 C-3 C-3 C-4 C-5 C-6 C-8 C-9 C-9 C-10 C-11 C-12 C-15 C-17 C-20 C-22 C-24

Index Cdigos do Caractere ASCII

Publicao 1756-RM003F-PT-P - Maio 2002

viii

Contedo

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

Instrues Binrias
(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Introduo
Se voc quiser: habilitar as sadas quando um bit estiver energizado habilitar as sadas quando um bit estiver desenergizado energizar um bit energizar um bit (retentivo) desenergizar um bit (retentivo)

Use as instrues binrias (tipo com rel) para monitorar e controlar o status dos bits.
Use esta instruo: XIC XIO OTE OTL OTU ONS OSR OSF OSRI Disponvel nessas linguagens: lgica ladder texto estruturado(1) lgica ladder texto estruturado(1) lgica ladder texto estruturado(1) lgica ladder texto estruturado(1) lgica ladder texto estruturado(1) lgica ladder texto estruturado(1) lgica ladder lgica ladder texto estruturado bloco de funes texto estruturado bloco de funes Consulte pgina: 1-2 1-4 1-6 1-7 1-9 1-11 1-14 1-16 1-14

habilitar as sadas para um scan toda vez que a linha tornar-se verdadeira energizar um bit para um scan toda vez que a linha tornar-se verdadeira energizar um bit para um scan toda vez que a linha tornar-se falsa energizar um bit para um scan toda vez que o bit de entrada for verdadeiro no bloco de funes energizar um bit para um scan toda vez que o bit de entrada estiver desenergizado no bloco de funes
(1)

OSFI

1-16

No h instruo de texto estruturado equivalente. Use outra programao de texto estruturado para obter o mesmo resultado. Veja a descrio para a instruo.

Publicao 1756-RM003F-PT-P - Maio 2002

1-2

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Examinar Se Energizado (XIC)


Operandos:

A instruo XIC examina o bit de dados para verificar se ele est energizado.

Lgica Ladder
Operando: data bit Tipo: BOOL Formato: tag Descrio: bit a ser testado

Texto Estruturado
O texto estruturado no possui uma instruo XIC, mas possvel obter os mesmos resultados usando uma construo IF...THEN.
IF data_bit THEN <statement>; END_IF;

Consulte ApndiceC para informaes sobre a sintaxe de construes no texto estruturado.

Descrio: A instruo XIC examina o bit de dados para verificar se ele est
energizado.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

examinar o bit de dados

bit de dados = 0

sada da condio da linha definida como falsa

bit de dados = 1

sada da condio da linha definida como verdadeira fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-3

Exemplo 1: Se limit_switch_1 est energizado, isso habilita a prxima instruo (a


sada da condio da linha verdadeira).

Lgica Ladder

Texto Estruturado
IF limit_switch THEN <statement>; END_IF;

Exemplo 2: Se S:V est energizado (indica que um overflow ocorreu), isso habilita
a prxima instruo (a sada da condio da linha verdadeira).

Lgica Ladder

Texto Estruturado
IF S:V THEN <statement>; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

1-4

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Examinar Se Desenergizado (XIO)


Operandos:

A instruo XIO examina o bit de dados para verificar se ele est desenergizado.

Lgica Ladder
Operando: data bit Tipo: BOOL Formato: tag Descrio: bit a ser testado

Texto Estruturado
O texto estruturado no possui uma instruo XIO, mas possvel alcanar os mesmos resultados usando uma construo IF...THEN.
IF NOT data_bit THEN <statement>; END_IF;

Consulte ApndiceC para informaes sobre a sintaxe de construes no texto estruturado.

Descrio: A instruo XIO examina o bit de dados para verificar se ele est
desenergizado.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

examinar o bit de dados

bit de dados = 0

sada da condio da linha definida como verdadeira

bit de dados = 1

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-5

Exemplo 1: Se limit_switch_2 est desenergizado, isso habilita a prxima


instruo (a sada da condio da linha verdadeira).

Lgica Ladder

Texto Estruturado
IF NOT limit_switch_2 THEN <statement>; END_IF;

Exemplo 2: Se S:V est desenergizado (indica que um overflow no ocorreu), isso


habilita a prxima instruo (a sada da condio da linha verdadeira).

Lgica Ladder

Texto Estruturado
IF NOT S:V THEN <statement>; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

1-6

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Energizar Sada (OTE)

A instruo OTE energiza ou desenergiza o bit de dados.

Operandos: Lgica Ladder


Operando: data bit Tipo: BOOL Formato: tag Descrio: bit a ser energizado ou desenergizado

Texto Estruturado
O texto estruturado no possui uma instruo OTE, mas possvel obter os mesmos resultados usando um atributo no retentivo.
data_bit [:=] BOOL_expression;

Consulte ApndiceC para informaes sobre a sintaxe de atributos e expresses no texto estruturado.

Descrio: Quando a instruo OTE est habilitada, o controlador energiza o bit


de dados. Quando a instruo OTE est desabilitada, o controlador desenergiza o bit de dados.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: O bit de dados desenergizado. A sada da condio da linha definida como falsa. O bit de dados desenergizado. A sada da condio da linha definida como falsa. O bit de dados energizado. A sada da condio da linha definida como verdadeira. O bit de dados desenergizado. A sada da condio da linha definida como falsa.

Exemplo: Quando switch est energizado, a instruo OTE energiza (acende)


light_1. Quando switch desenergizado, a instruo OTE desenergiza (apaga) light_1.

Lgica Ladder

Texto Estruturado
light_1 [:=] switch;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-7

Energizar Sada com Reteno (OTL)


Operandos:

A instruo OTL energiza (retm) o bit de dados.

Lgica Ladder
Operando: data bit Tipo: BOOL Formato: tag Descrio: bit a ser energizado

Texto Estruturado
O texto estruturado no possui uma instruo OTL, mas possvel obter os mesmos resultados usando uma construo e um atributo IF...THEN.
IF bool_expression THEN data_bit := 1; END_IF;

Consulte ApndiceC para informaes sobre a sintaxe de construes, atributos e expresses no texto estruturado.

Descrio: Quando habilitada, a instruo OTL energiza o bit de dados. O bit de


dados permanece energizado at ser desenergizado, normalmente, por uma instruo OTU. Quando desabilitada, a instruo OTL no altera o status do bit de dados.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: O bit de dados no modificado. A sada da condio da linha definida como falsa. O bit de dados no modificado. A sada da condio da linha definida como falsa. O bit de dados energizado. A sada da condio da linha definida como verdadeira. O bit de dados no modificado. A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

1-8

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Exemplo: Quando habilitada, a instruo OTL energiza light_2. Esse bit


permanece energizado at ser desenergizado, normalmente, por uma instruo OTU.

Lgica Ladder

Texto Estruturado
IF BOOL_expression THEN light_2 := 1; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-9

Desenergizar Sada com Reteno (OTU)


Operandos:

A instruo OTU desenergiza (no retm) o bit de dados.

Lgica Ladder
Operando: data bit Tipo: BOOL Formato: tag Descrio: bit a ser desenergizado

Texto Estruturado
O texto estruturado no possui uma instruo OTU, mas possvel alcanar os mesmos resultados usando uma construo e um atributo IF...THEN
IF bool_expression THEN data_bit := 0; END_IF;

Consulte ApndiceC para informaes sobre a sintaxe de construes, atributos e expresses no texto estruturado.

Descrio: Quando habilitada, a instruo OTU desenergiza o bit de dados.


Quando desabilitada, a instruo OTU no altera o status do bit de dados.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: O bit de dados no modificado. A sada da condio da linha definida como falsa. O bit de dados no modificado. A sada da condio da linha definida como falsa. O bit de dados desenergizado. A sada da condio da linha definida como verdadeira. O bit de dados no modificado. A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

1-10

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Exemplo: Quando habilitada, a instruo OTU desenergiza light_2. Lgica Ladder

Texto Estruturado
IF bool_expression THEN light_2 := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-11

Monoestvel (ONS)
Operandos:

A instruo ONS habilita ou desabilita o resto da linha dependendo do status do bit de armazenamento.

Lgica Ladder
Operando: storage bit Tipo: BOOL Formato: tag Descrio: bit de armazenamento interno armazena a entrada da condio da linha desde a ltima vez que a instruo foi executada

Texto Estruturado
O texto estruturado no possui uma instruo ONS, mas possvel obter os mesmos resultados usando uma construo IF...THEN.
IF BOOL_expression AND NOT storage_bit THEN <statement>; END_IF; storage_bit := BOOL_expression;

Consulte ApndiceC para informaes sobre a sintaxe de construes, atributos e expresses no texto estruturado.

Descrio: Quando habilitada e o bit de armazenamento est desenergizado, a


instruo ONS habilita o resto da linha. Quando habilitada ou o bit de armazenamento est energizado, a instruo ONS desabilita o resto da linha.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

1-12

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Execuo:
Condio: prescan Ao da Lgica Ladder: O bit de armazenamento energizado para evitar um disparo invlido durante o primeiro scan. A sada da condio da linha definida como falsa. O bit de armazenamento desenergizado. A sada da condio da linha definida como falsa.

entrada da condio da linha for falsa entrada da condio da linha verdadeira

bit de armazenamento = 0 examinar o bit de armazenamento

bit de armazenamento energizado sada da condio da linha definida como verdadeira

bit de armazenamento = 1

o bit de armazenamento permanece energizado sada da condio da linha definida como falsa fim

postscan

O bit de armazenamento desenergizado. A sada da condio da linha definida como falsa.

Exemplo: Normalmente, uma instruo de entrada precede a instruo ONS,


pois voc varre esta instruo quando ela est habilitada e quando desabilitada para que opere corretamente. Uma vez que a instruo ONS habilitada, a entrada da condio da linha deve desenergizar ou o bit de armazenamento deve ser desenergizado para que a instruo ONS seja habilitada novamente.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-13

Em qualquer scan cujo limit_switch_1 desenergizado ou storage_1 energizado, essa linha no tem efeito. Em qualquer scan cujo limit_switch_1 energizado e storage_1 desenergizado, a instruo ONS energiza storage_1 e a instruo ADD incrementa sum por 1. Enquanto limit_switch_1 permanecer energizado, sum fica com o mesmo valor. O limit_switch_1 deve passar de desenergizado para energizado novamente para que sum seja incrementado novamente.

Lgica Ladder

Texto Estruturado
IF limit_switch_1 AND NOT storage_1 THEN sum := sum + 1; END_IF; storage_1 := limit_switch_1;

Publicao 1756-RM003F-PT-P - Maio 2002

1-14

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Monoestvel Sensvel Borda de Subida (OSR)

A instruo OSR energiza ou desenergiza o bit de sada, dependendo do status do bit de armazenamento. Essa instruo est disponvel no texto estruturado e bloco de funes como OSRI, consulte a pgina 1-14.

Operandos: Lgica Ladder


Operando: storage bit Tipo: BOOL Formato: tag Descrio: bit de armazenamento interno armazena a entrada da condio da linha da ltima vez que a instruo foi executada bit a ser energizado

output bit

BOOL

tag

Descrio: Quando habilitada e o bit de armazenamento est desenergizado, a


instruo OSR energiza o bit de sada. Quando habilitada e o bit de armazenamento est energizado ou quando desabilitada, a instruo OSR desenergiza o bit de sada

entrada da condio da linha

bit de armazenamento

bit de sada

instruo executada

instruo reseta durante a execuo do prximo scan

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-15

Execuo:
Condio: prescan Ao da Lgica Ladder: O bit de armazenamento energizado para evitar um disparo invlido durante o primeiro scan. O bit de sada desenergizado. A sada da condio da linha definida como falsa. O bit de armazenamento desenergizado. O bit de sada no modificado. A sada da condio da linha definida como falsa.

entrada da condio da linha falsa

entrada da condio da linha verdadeira

examinar o bit de armazenamento

bit de armazenamento = 0

bit de armazenamento energizado bit de sada energizado sada da condio da linha definida como verdadeira

bit de armazenamento = 1

o bit de armazenamento permanece energizado bit de sada desenergizado. sada da condio da linha definida como verdadeira fim

postscan

O bit de armazenamento desenergizado. O bit de sada no modificado. A sada da condio da linha definida como falsa.

Exemplo: Cada vez que limit_switch_1 passar de desenergizado para


energizado, a instruo OSR energiza output_bit_1 e a instruo ADD incrementa sum por 5. Enquanto limit_switch_1 estiver energizado, sum permanece com o mesmo valor. O limit_switch_1 deve passar de desenergizado para energizado novamente para sum ser incrementado novamente. possvel usar output_bit_1 em linhas mltiplas para disparar outras operaes

Publicao 1756-RM003F-PT-P - Maio 2002

1-16

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Monoestvel Sensvel Borda de Descida (OSF)

A instruo OSF energiza ou desenergiza o bit de sada dependendo do status do bit de armazenamento. Essa instruo est disponvel no texto estruturado e bloco de funes como OSFI, consulte a pgina 1-16.

Operandos: Operandos de Lgica Ladder


Operando: storage bit Tipo: BOOL Formato: tag Descrio: bit de armazenamento interno armazena a entrada da condio da linha desde a ltima vez que a instruo foi executada bit a ser energizado

output bit

BOOL

tag

Descrio: Quando desabilitada e o bit de armazenamento est energizado, a


instruo OSF energiza o bit de sada. Quando desabilitada e o bit de armazenamento est desenergizado ou quando habilitada, a instruo OSF desenergiza o bit de sada
entrada da condio da linha

bit de armazenamento bit de sada

instruo executada

instruo reseta durante a execuo do prximo scan

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-17

Execuo:
Condio: prescan Ao da Lgica Ladder: O bit de armazenamento desenergizado para evitar um disparo invlido durante o primeiro scan. O bit de sada desenergizado. A sada da condio da linha definida como falsa.

entrada da condio da linha falsa


o bit de armazenamento permanece desenergizado bit de sada desenergizado. sada da condio da linha definida como falsa

examinar o bit de armazenamento

bit de armazenamento = 0

bit de armazenamento = 1

bit de armazenamento desenergizado. bit de sada energizado sada da condio da linha definida como falsa fim

entrada da condio da linha verdadeira

O bit de armazenamento energizado. O bit de sada desenergizado. A sada da condio da linha definida como verdadeira. Veja se a entrada da condio da linha acima falsa.

postscan

Exemplo: Cada vez que limit_switch_1 passa de energizado para desenergizado,


a instruo OSF energiza output_bit_2 e a instruo ADD incrementa sum por 5. Enquanto limit_switch_1 estiver desenergizado, sum permanece com o mesmo valor. O limit_switch_1 deve passar de energizado para desenergizado novamente para que sum seja incrementado novamente. possvel usar output_bit_2 em linhas mltiplas para disparar outras operaes

Publicao 1756-RM003F-PT-P - Maio 2002

1-18

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Monoestvel Sensvel Borda de Subida com Entrada (OSRI)


Operandos:
OSRI(OSRI_tag);

A instruo OSRI energiza o bit de sada para um ciclo de execuo quando o bit de entrada alternar de desenergizado para energizado. Esta instruo est disponvel em lgica ladder como OSR, consulte a pgina 1-14.

Texto Estruturado
Operando: OSRI tag Tipo: FBD_ONESHOT Formato: estrutura Descrio: estrutura OSR

Bloco de Funes
Operando: OSRI tag Tipo: FBD_ONESHOT Formato: estrutura Descrio: estrutura OSR

Estrutura FBD_ONESHOT
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Bloco de Funes Se desenergizada, a instruo no executa e as sadas no so atualizadas. Se energizada, a instruo executa. O valor inicial energizado Texto Estruturado: Sem efeito. A instruo executa. Bit de entrada. Isto equivale condio da linha para a instruo OSR de Lgica Ladder. O valor inicial desenergizado. Descrio: A instruo produziu um resultado vlido. Bit de sada

InputBit Parmetro de Sada: EnableOut OutputBit

BOOL Tipo de Dados: BOOL BOOL

Descrio: Quando InputBit est energizado e InputBitn-1 est desenergizado, a


instruo OSRI energiza OutputBit. Quando InputBit energizado ou quando InputBit desenergizado, a instruo OSRI desenergiza OutputBit.

InputBit

InputBitn-1

OutputBit instruo executada instruo reseta durante a execuo do prximo scan

40048

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-19

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado Ao do Bloco de Funes: Nenhuma ao tomada. InputBit n-1 energizado. InputBit n-1 energizado. Ao do Texto Estruturado: Nenhuma ao tomada. InputBit n-1 energizado. InputBit n-1 energizado.

EnableOut desenergizado, a instruo no faz nada na e as sadas no so atualizadas. Em uma transio de InputBit de desenergizado para energizado, a instruo energiza InputBit n-1. A instruo executa. EnableOut est energizado. Nenhuma ao tomada. Em uma transio de InputBit de desenergizado para energizado, a instruo energiza InputBit n-1. EnableIn est sempre energizado A instruo executa. Nenhuma ao tomada.

postscan

Exemplo: Quando limit_switch1 passa de desenergizado para energizado, a


instruo OSRI energiza OutputBit para um scan.

Texto Estruturado
OSRI_01.InputBit := limit_switch1;

OSRI(OSRI_01);

State := OSRI_01.OutputBit;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

1-20

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Monoestvel Sensvel Borda de Descida com Entrada (OSFI)


Operandos:
OSFI(OSFI_tag);

A instruo OSFI energiza o OutputBit para um ciclo de execuo quando InputBit alternar de energizado para desenergizado. Esta instruo est disponvel em lgica ladder como OSF, consulte a pgina 1-16.

Texto Estruturado
Operando: OSFI tag Tipo: FBD_ONESHOT Formato: estrutura Descrio: estrutura OSFI

Bloco de Funes
Operando: tag OSFI Tipo: FBD_ONESHOT Formato: estrutura Descrio: estrutura OSFI

Estrutura FBD_ONESHOT
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Bloco de Funes Se desenergizada, a instruo no executa e as sadas no so atualizadas. Se energizada, a instruo executa. O valor inicial energizado Texto Estruturado: Sem efeito. A instruo executa. Bit de entrada. Isto equivale condio da linha para a instruo OSF de lgica ladder. O valor inicial desenergizado. Descrio: A instruo produziu um resultado vlido. bit de sada

InputBit Parmetro de Sada: EnableOut OutputBit

BOOL Tipo de Dados: BOOL BOOL

Descrio: Quando InputBit est desenergizado e InputBit n-1 est energizado, a


instruo OSFI energiza OutputBit. Quando InputBit n-1 est desenergizado ou quando InputBit est energizado, a instruo OSFI desenergiza OutputBit.
InputBit

InputBit n-1

OutputBit

instruo executada

instruo reseta durante a execuo do prximo scan

40047

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

1-21

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado Ao do Bloco de Funes: Nenhuma ao tomada. InputBit n-1 desenergizado. InputBit n-1 desenergizado. Ao do Texto Estruturado: Nenhuma ao tomada. InputBit n-1 desenergizado. InputBit n-1 desenergizado.

EnableOut desenergizado, a instruo no faz nada na e as sadas no so atualizadas. Em uma transio de InputBit de desenergizado para energizado, a instruo desenergiza InputBit n-1. A instruo executa. EnableOut est energizado. Nenhuma ao tomada. Em uma transio de InputBit de desenergizado para energizado, a instruo desenergiza InputBit n-1. EnableIn est sempre energizado A instruo executa. Nenhuma ao tomada.

postscan

Exemplo: Quando limit_switch1 passa de energizado para desenergizado, a


instruo OSFI energiza OutputBit para um scan.

Texto Estruturado
OSFI_01.InputBit := limit_switch1;

OSFI(OSFI_01);

Output_state := OSFI_01.OutputBit;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

1-22

Instrues Binrias (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

Instrues de Temporizador e Contador


(TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Introduo
Se voc quiser: saber por quanto tempo o temporizador est habilitado saber por quanto tempo o temporizador est desabilitado acumular o tempo

As operaes de temporizadores e contadores so baseadas no tempo ou no nmero de eventos.


Use esta instruo: TON TOF RTO TONR Disponvel nestas linguagens: lgica ladder lgica ladder lgica ladder texto estruturado bloco de funes texto estrutural bloco de funes texto estruturado bloco de funes lgica ladder lgica ladder texto estruturado bloco de funes lgica ladder Consulte pgina: 2-2 2-5 2-9 2-13

saber por quanto tempo o temporizador est habilitado com o reset incorporado no bloco de funes saber por quanto tempo o temporizador est desabilitado com o reset integrado em um bloco de funes acumular o tempo com o reset incorporado no bloco de funes fazer a contagem crescente fazer a contagem decrescente fazer a contagem crescente e decrescente no bloco de funes resetar um temporizador ou um contador

TOFR

2-16

RTOR CTU CTD CTUD RES

2-19 2-22 2-25 2-29 2-33

A base de tempo para todos os temporizadores 1 mseg.

Publicao 1756-RM003F-PT-P - Maio 2002

2-2

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador na Energizao (TON)

A instruo TON um temporizador no retentivo que acumula tempo quando a instruo est habilitada (entrada da condio da linha verdadeira). A instruo est disponvel em texto estruturado e bloco de funes como TONR, consulte a pgina 2-13.

Operandos: Lgica Ladder


Operando: Timer Preset Accum Tipo: TIMER DINT DINT Formato: tag imediato imediato Descrio: estrutura do temporizador quanto tempo atrasar (tempo acumulado) total de mseg que o temporizador contou normalmente, valor inicial 0

Estrutura TIMER
Mnemnico: .EN .TT .DN .PRE .ACC Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo TON est habilitada. O bit de temporizao indica que uma operao de temporizao est em execuo O bit executado est energizado quando .ACC .PRE. O valor de preset especifica o valor (unidades de 1 mseg) que o valor acumulado deve atingir antes que a instruo energize o bit .DN. O valor acumulado especifica o nmero de milissegundos que transcorreram desde que a instruo TON foi habilitada.

Descrio: A instruo TON acumulou o tempo at:


a instruo TON est desabilitada o .ACC .PRE A base de tempo sempre 1 mseg. Por exemplo, para um temporizador de 2 segundos, digite 2000 para o valor de .PRE. Quando a instruo TON desabilitada, o valor de .ACC removido.
entrada da condio da linha bit habilitado do temporizador (.EN) bit de temporizao do temporizador (.TT) bit executado do temporizador (.DN) atraso na ENERGIZAO o temporizador no alcanou o valor de .PRE 0
16649

preset valor acumulado do temporizador (.ACC)

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-3

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: .PRE < 0 .ACC < 0 Tipo de falha: 4 4 Cdigo de falha: 34 34

Execuo
Condio: prescan Ao da Lgica Ladder: Os bits .EN, .TT e .DN esto desenergizados. O valor de .ACC removido. A sada da condio da linha definida como falsa. Os bits .EN, .TT e .DN esto desenergizados. O valor de .ACC removido. A sada da condio da linha definida como falsa.

entrada da condio da linha falsa

entrada da condio da linha verdadeira

examinar bit .DN

bit .DN = 1

bit .DN = 0

examinar bit .EN

bit .EN = 0

bit .EN energizado bit .TT energizado. last_time = current_time

bit .EN = 1

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

examinar .ACC

.ACC .PRE

.ACC < .PRE .DN energizado bit .TT desenergizado. bit .EN energizado o valor .ACC ultrapassa no

sim

sada da condio da linha definida como verdadeira

.ACC = 2,147,483,647 fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

2-4

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemplo: Quando limit_switch_1 energizado, light_2 acende por 180 mseg


(timer_1 est temporizando). Quando timer_1.acc alcana 180, light_2 apaga e light_3 acende. Light_3 permanece aceso at que a instruo TON seja desabilitada. Se limit_switch_1 for desenergizado enquanto timer_1 estiver temporizando, light_2 desliga.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-5

Temporizador na Desenergizao (TOF)

A instruo TOF um temporizador no retentivo que acumula tempo quando a instruo est habilitada (entrada da condio da linha falsa). A instruo est disponvel em texto estruturado e bloco de funes como TOFR, consulte a pgina 2-16.

Operandos: Lgica Ladder


Operando: Timer Preset Accum Tipo: TIMER DINT DINT Formato: tag imediato imediato Descrio: estrutura do temporizador quanto tempo atrasar (tempo acumulado) total de mseg que o temporizador contou normalmente, o valor inicial 0

Estrutura TIMER
Mnemnico: .EN .TT .DN .PRE .ACC Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo TOF est habilitada. O bit de temporizao indica que uma operao de temporizao est em execuo O bit executado desenergizado quando .ACC .PRE. O valor preset especifica o valor (unidades de 1 mseg) que o valor acumulado deve atingir antes que a instruo energize o bit .DN. O valor acumulado especifica o nmero de milissegundos que transcorreram desde que a instruo TOF foi habilitada.

Descrio: A instruo TOF acumulou o tempo at:


a instruo TOF est desabilitada a .ACC .PRE A base de tempo sempre 1 mseg. Por exemplo, para um temporizador de 2 segundos, digite 2000 para o valor de .PRE.

Publicao 1756-RM003F-PT-P - Maio 2002

2-6

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Quando a instruo TOF est desativada, o valor de .ACC desenergizado.


entrada da condio da linha bit habilitado do temporizador (.EN)

bit de temporizao do temporizador (.TT) bit executado do temporizador (.DN) atraso na DESENERGIZAO preset

valor acumulado do temporizador (.ACC) 0 o temporizador no atingiu o valor de .PRE


16650

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: .PRE < 0 .ACC < 0 Tipo de falha: 4 4 Cdigo de falha: 34 34

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-7

Execuo
Condio: prescan Ao da Lgica Ladder: Os bits .EN, .TT e .DN esto desenergizados. O valor de .ACC ajustado para ser igual ao valor de .PRE. A sada da condio da linha definida como falsa.

entrada da condio da linha falsa

examinar bit .DN

bit .DN = 0

bit .DN = 1

examinar bit .EN

bit .EN = 1

bit .EN desenergizado. bit .TT energizado. last_time = current_time

bit .EN = 0

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

examinar .ACC

.ACC .PRE

.ACC < .PRE bit .DN desenergizado. bit .TT desenergizado. bit .EN desenergizado. o valor de .ACC ultrapassa sim no

sada da condio da linha definida como falsa

.ACC = 2,147,483,647 fim

entrada da condio da linha verdadeira

Os bits .EN, .TT, e .DN esto energizados. O valor de .ACC est desenergizado. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

postscan

Publicao 1756-RM003F-PT-P - Maio 2002

2-8

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemplo: Quando limit_switch_2 desenergizado, light_2 acende por 180 mseg


(timer_2 est temporizando). Quando timer_2.acc atinge 180, light_2 apaga e light_3 acende. Light_3 permanece aceso at que a instruo TOF seja habilitada. Se limit_switch_2 for energizada enquanto timer_2 estiver temporizando, light_2 apaga.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-9

Temporizador Retentivo (RTO)

A instruo RTO um temporizador retentivo que acumula tempo quando a instruo habilitada. A instruo est disponvel em texto estruturado e bloco de funes como RTOR, consulte a pgina 2-19.

Operandos: Lgica Ladder


Operando: Timer Preset Accum Tipo: TIMER DINT DINT Formato: tag imediato imediato Descrio: estrutura do temporizador quanto tempo atrasar (tempo acumulado) nmero de mseg que o temporizador contou normalmente, valor inicial 0

Estrutura TIMER
Mnemnico: .EN .TT .DN .PRE .ACC Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo RTO est habilitada. O bit de temporizao indica que uma operao de temporizao est em execuo O bit executado indica .ACC .PRE. O valor de preset especifica o valor (unidades de 1 mseg) que o valor acumulado deve atingir antes que a instruo energize o bit .DN. O valor acumulado especifica o nmero de milissegundos que transcorreram desde que a instruo RTO foi habilitada.

Descrio: A instruo RTO acumula os tempos at que ela seja desabilitada.


Quando a instruo RTO desabilitada, os seus valores de .ACC so retidos. Voc deve remover o valor de .ACC, geralmente, com uma instruo RES referenciando a mesma estrutura TIMER.

Publicao 1756-RM003F-PT-P - Maio 2002

2-10

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

A base de tempo sempre 1 mseg. Por exemplo, para um temporizador de 2 segundos, digite 2000 para o valor de .PRE.
entrada da condio da linha

bit habilitado do temporizador (.EN)

condio da linha que controla a instruo RES

bit de temporizao do temporizador (.TT)

bit executado do temporizador (.DN)

preset

valor acumulado do temporizador (.ACC) 0 o temporizador no alcanou o valor .PRE

16651

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: .PRE < 0 .ACC < 0 Tipo de falha: 4 4 Cdigo de falha: 34 34

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-11

Execuo
Condio: prescan Ao da Lgica Ladder: Os bits .EN, .TT e .DN esto desenergizados. O valor de .ACC no modificado. A sada da condio da linha definida como falsa. Os bits .EN e .TT esto desenergizados. O bit .DN no modificado. O valor de .ACC no modificado. A sada da condio da linha definida como falsa.

entrada da condio da linha falsa

entrada da condio da linha verdadeira

examinar bit .DN

bit .DN = 1

bit .DN = 0

examinar bit .EN

bit .EN = 0

bit .EN energizado bit .TT energizado. last_time = current_time

bit .EN = 1

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

verificar .ACC

.ACC .PRE

.ACC < .PRE

.DN energizado bit .TT desenergizado. bit .EN energizado

o valor de .ACC ultrapassa

no

sim

sada da condio da linha definida como verdadeira

.ACC = 2,147,483,647 fim

postscan

A sada da condio da linha definida como falsa.

Exemplo: Quando limit_switch_1 energizado, light_1 acende por 180 mseg


(timer_2 est temporizando). Quando timer_3.acc atinge 180, light_1 apaga e light_2 acende. Light_2 permanece aceso at que timer_3 seja energizado novamente. Se limit_switch_2 for desenergizada enquanto timer_3 estiver temporizando, light_1 permanece ligado. Quando limit_switch_2 est energizado, a instruo RES energiza novamente timer_3 (energiza os bits de status e o valor de .ACC).

Publicao 1756-RM003F-PT-P - Maio 2002

2-12

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-13

Temporizador na Energizao com Reset (TONR)

A instruo TONR um temporizador retentivo que acumula tempos quando TimerEnable est energizado. Esta instruo est disponvel na lgica ladder como duas instrues separadas: TON (consulte a pgina 2-2) e RES (consulte a pgina 2-33).

Operandos:
TONR(TONR_tag);

Texto Estruturado
Varivel: TONR tag Tipo: FBD_TIMER Formato: estrutura Descrio: estrutura TONR

Bloco de Funes
Operando: TONR tag Tipo: FBD_TIMER Formato: estrutura Descrio: estrutura TONR

Estrutura FBD_TIMER
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Bloco de Funes : Se desenergizada, a instruo no executada e as sadas no so atualizadas. Se energizada, a instruo executada. Valor inicial est energizado Texto Estruturado Sem efeito. A instruo executada. Se estiver energizado, habilita o temporizador a executar e acumular tempos. Valor inicial est desenergizado. Valor de preset de temporizador. Este o valor em unidades de 1 mseg que ACC deve atingir antes que a temporizao termine. Se for invlido, a instruo energiza o bit apropriado em Status e o temporizador no executa. Vlido = 0 para o inteiro positivo mximo Solicitao para resetar o temporizador novamente. Quando energizado, o temporizador reseta novamente. Valor inicial est desenergizado. Descrio: A instruo produziu um resultado vlido. Tempo acumulado em milissegundos. Sada do temporizador habilitada. Indica que a instruo do temporizador est habilitada. Sada de temporizao do temporizador. Quando energizada, uma operao de temporizao est em execuo. Sada de temporizao executada. Indica quando o tempo acumulado maior ou igual ao valor de preset.

TimerEnable PRE

BOOL DINT

Reset

BOOL

Parmetro de Sada: EnableOut ACC EN TT DN

Tipo de Dados: BOOL BOOL BOOL BOOL BOOL

Publicao 1756-RM003F-PT-P - Maio 2002

2-14

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Parmetro de Entrada: Status

Tipo de Dados: DINT

Descrio: Status do bloco de funes . A instruo detectou um dos seguintes erros de execuo: Isto no um controlador de erro grave ou de advertncia. Verifique os bits de status restantes para determinar o que ocorreu. O valor de preset invlido.

InstructFault (Status.0) BOOL PresetInv (Status.1) BOOL

Descrio: A instruo TONR acumula tempo at o:


A instruo TONR est desabilitada ACC * PRE A base de tempo sempre 1 mseg. Por exemplo, para um temporizador de 2 segundos, digite 2000 para o valor PRE.
TimerEnable bit habilitado (EN) bit de temporizao do temporizador (TT) bit de temporizao executado (DN) atraso NO Preset valor acumulado do temporizador (ACC) o temporizador no atingiu o valor de PRE
16649

Ajusta os parmetros de entrada Reset para resetar a instruo. Se TimerEnable for energizado quando Reset estiver energizado, a instruo TONR comea a temporizao novamente assim que Reset for removido.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo


Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado Ao do Bloco de Funes : Nenhuma ao tomada. EN, TT e DN esto desenergizados. O valor de ACC ajustado em zero. EN, TT e DN esto desenergizados. O valor ACC ajustado em zero. O EnableOut desenergizado, a instruo no faz nada e as sadas no so atualizadas. Quando EnableIn muda de desenergizado para energizado, a instruo inicializa conforme descrito no primeiro scan da instruo. A instruo executa. EnableOut est energizado. Ao de Texto Estruturado: Nenhuma ao tomada. EN, TT e DN esto desenergizados. o valor ACC definido como zero. EN, TT e DN esto desligados. o valor ACC definido como zero. na EnableIn sempre energizado A instruo executa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-15

Condio: Reset

Ao do Bloco de Funes : Quando o parmetro de entrada Reset energizado, a instruo desenergizado EN, TT e DN e energiza ACC = zero. Nenhuma ao tomada.

Ao de Texto Estruturado: Quando o parmetro de entrada Reset energizado, a instruo desliga EN, TT e DN e define ACC = zero. Nenhuma ao tomada.

postscan

Exemplo: A cada scan que limit_switch1 energiza, a instruo TONR incrementa


o tempo decorrido ao valor de ACC, at que ele atinja o valor de PRE. Quando em ACC PRE, o parmetro DN energizado e timer_state energizado.

Texto Estruturado
TONR_01.Preset := 500; TONR_01.Reset : = reset; TONR_O1.TimerEnable := limit_switch1;

TONR(TONR_01);

timer_state := TONR_01.DN;

Exemplo de bloco de funes

Publicao 1756-RM003F-PT-P - Maio 2002

2-16

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador na Desenergizao com Reset (TOFR)

A instruo TOFR um temporizador retentivo que acumula tempos quando TimerEnable desenergizado. Esta instruo est disponvel na lgica ladder como duas instrues separadas. TOF (consulte a pgina 2-5) e RES (consulte a pgina 2-33).

Operandos:
TOFR(TOFR_tag);

Texto Estruturado
Varivel: TOFR tag Tipo: FBD_TIMER Formato: estrutura Descrio: estrutura TOF

Operandos do bloco de funes


Operando: TOFR tag Tipo: FBD_TIMER Formato: estrutura Descrio: estrutura TOF

Estrutura FBD_TIMER
Parmetro de Entrada EnableIn Tipo de Dados: BOOL Descrio: Bloco de Funes : Se desabilitada, a instruo no executada e as sadas no so atualizadas. Se energizada, a instruo executada. Valor inicial est energizado Texto Estruturado Sem efeito. A instruo executa. Se estiver desenergizado, habilita o temporizador a executar e acumular tempos. Valor inicial est desenergizado. Valor de preset do temporizador. Este o valor em unidades de 1 mseg que o ACC deve atingir antes que a temporizao termine. Se for invlido, as instrues energizam o bit apropriado em Status e o temporizador no executa. Vlido = 0 para o inteiro positivo mximo Solicitao para resetar o temporizador. Quando energizado, o temporizador reseta. Valor inicial est desenergizado. Descrio: A instruo produziu um resultado vlido. Tempo acumulado em milissegundos. Sada habilitada de temporizador. Indica que a instruo temporizador est habilitada. Sada de temporizao do temporizador. Quando energizada, uma operao de temporizao est em progresso. Sada de temporizao executada. Indica quando o tempo acumulado maior ou igual ao valor de preset.

TimerEnable PRE

BOOL DINT

Reset Parmetro de Sada: EnableOut ACC EN TT DN

BOOL Tipo de Dados: BOOL BOOL BOOL BOOL BOOL

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-17

Parmetro de Entrada Status

Tipo de Dados: DINT

Descrio: Status do bloco de funes . A instruo detectou um dos seguintes erros de execuo: Isto no um controlador de erro grave ou de advertncia. Verifique os bits de status restantes para determinar o que ocorreu. O valor de preset invlido.

InstructFault (Status.0) BOOL PresetInv (Status.1) BOOL

Descrio: A instruo TOFR acumula tempo at o:


A instruo TOFR est desabilitada ACC * PRE A base de tempo sempre 1 mseg. Por exemplo, para um temporizador de 2 segundos, digite 2000 para o valor PRE.
TimerEnable bit habilitado (EN)

bit de temporizao do temporizador (TT) bit do temporizador executado (DN) atraso no estado DESENERGIZADO Preset

valor do temporizador acumulado (ACC) 0 o temporizador no atingiu o valor de PRE


16650

Define os parmetros de entrada de Reset para rearmar a instruo. Se o TimerEnable estiver desenergizado quando o Reset for energizado, a instruo TOFR no comea temporizao novamente quando o Reset for desenergizado.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo


Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado Ao do Bloco de Funes : Nenhuma ao tomada. EN, TT e DN esto desenergizados. o valor ACC definido em PRE. EN, TT e DN esto desenergizados. o valor ACC definido em PRE. O EnableOut desenergizado, a instruo no faz nada e as sadas no so atualizadas. Ao de Texto Estruturado: Nenhuma ao tomada. EN, TT e DN esto desenergizados. o valor ACC definido em PRE. EN, TT e DN esto desligados. o valor ACC definido em PRE. na

Publicao 1756-RM003F-PT-P - Maio 2002

2-18

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Condio: EnableIn est energizado

Ao do Bloco de Funes : Quando o EnableIn muda de desenergizado para energizado, a instruo inicializa como descrito na instruo do primeiro scan. A instruo executa. EnableOut est energizado. Quando o parmetro de entrada Reset energizado, a instruo desliga EN, TT e DN e energiza ACC = PRE. Observe que diferente de utilizar uma instruo RES em uma instruo TOF.

Ao de Texto Estruturado: EnableIn sempre energizado A instruo executa.

Reset

Quando o parmetro de entrada Reset energizado, a instruo desliga EN, TT e DN e energiza ACC = PRE energizado . Observe que diferente de utilizar uma instruo RES em uma instruo TOF. Nenhuma ao tomada.

postscan

Nenhuma ao tomada.

Exemplo: A cada scan aps limit_switch1 ser removido, a instruo TOFR


incrementa o valor de ACC atravs do tempo transcorrido at que ele atinja o valor de PRE. Quando o parmetro ACC PRE removido e timer_state2 energizado.

Texto Estruturado
TOFR_01.Preset := 500 TOFR_01.Reset := reset; TOFR_O1.TimerEnable := limit_switch1;

TOFR(TOFR_01);

timer_state2 := TOFR_01.DN;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-19

Temporizador Retentivo com Reset (RTOR)

A instruo RTOR um temporizador retentivo que acumula tempos quando TimerEnable energizado. Esta instruo est disponvel na lgica ladder como duas instrues separadas: RTO (consulte a pgina 2-9) e RES (consulte a pgina 2-33).

Operandos:
RTOR(RTOR_tag);

Texto Estruturado
Varivel: RTOR tag Tipo: FBD_TIMER Formato: estrutura Descrio: estrutura RTOR

Operandos do bloco de funes


Operando: RTOR tag Tipo FBD_TIMER Formato estrutura Descrio: estrutura RTOR

FBD_TIMER Structure
Parmetro de Entrada EnableIn Tipo de Dados: BOOL Descrio: Bloco de Funes Se desenergizada, a instruo no executada e as sadas no so atualizadas. Se energizada, a instruo executada. Valor inicial energizado Texto Estruturado Sem efeito. A instruo executa. Se estiver energizado, habilita o temporizador executar e acumular tempos. Valor inicial desenergizado. Valor de preset do temporizador. Este o valor em unidades de 1 mseg que ACC deve atingir antes que a temporizao termine. Se for invlido, a instruo energiza o bit apropriado em Status e o temporizador no executa. Vlido = 0 para o inteiro positivo mximo Solicitao para resetar o temporizador novamente. Quando energizado, o temporizador reseta. Descrio: A instruo produziu um resultado vlido. Tempo acumulado em milissegundos. Este valor retido mesmo enquanto a entrada TimerEnable estiver desenergizada. Isto torna o comportamento deste bloco diferente do bloco TONR. Sada do temporizador habilitada. Indica que a instruo do temporizador est habilitada. Sada de temporizao do temporizador. Quando energizada, uma operao de temporizao est em execuo. Temporizao da sada executada. Indica quando o tempo acumulado maior ou igual ao valor de preset.

TimerEnable PRE

BOOL DINT

Reset Parmetro de Sada: EnableOut ACC

BOOL Tipo de Dados: BOOL DINT

EN TT DN

BOOL BOOL BOOL

Publicao 1756-RM003F-PT-P - Maio 2002

2-20

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Parmetro de Entrada Status

Tipo de Dados: DINT

Descrio: Status do bloco de funes . A instruo detectou um dos seguintes erros de execuo: Isto no um controlador de erro grave ou de advertncia. Verifique os bits de status restantes para determinar o que ocorreu. O valor de preset invlido.

InstructFault (Status.0) BOOL PresetInv (Status.1) BOOL

Descrio A instruo RTOR acumula os tempos at que ela seja desabilitada.


Quando a instruo RTOR desabilitada, os seus valores de .ACC so retidos. Voc deve desligar o valor de .ACC usando a entrada Reset. A base de tempo sempre 1 mseg. Por exemplo, para um temporizador de 2 segundos, digite 2000 para o valor PRE.
TimerEnable

bit habilitado (EN)

Reset

bit de temporizao do temporizador (TT)

bit de temporizao executado (DN)

Preset

valor acumulado do temporizador (ACC) 0 o temporizador no atingiu o valor de .PRE

16651

Define os parmetros de entrada de Reset para resetar a instruo. Se TimerEnable for energizado quando o Reset estiver energizado, a instruo RTOR comea, novamente, a temporizao quando o Reset for desenergizado.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-21

Execuo:
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado Ao do Bloco de Funes : Nenhuma ao tomada. EN, TT e DN esto desenergizados. O valor de .ACC no modificado. EN, TT e DN esto desenergizados. O valor de .ACC no modificado. Ao de Texto Estruturado: Nenhuma ao tomada. EN, TT e DN esto desenergizados. O valor de .ACC no modificado. EN, TT e DN esto desenergizados. O valor de .ACC no modificado.

EnableOut desenergizado, a instruo no faz nada na e as sadas no so atualizadas. Bloco de Funes : Quando o EnableIn muda de desenergizado para energizado, a instruo inicializa como descrito na instruo do primeiro scan. A instruo executa. EnableOut est energizado. Quando o parmetro de entrada Reset energizado, a instruo desenergiza EN, TT e DN e energiza ACC = zero. Nenhuma ao tomada. EnableIn sempre energizado A instruo executa.

Reset

Quando o parmetro de entrada Reset definido, a instruo desenergiza EN, TT e DN e energiza ACC = zero. Nenhuma ao tomada.

postscan

Exemplo: A cada scan que limit_switch1 energiza, a instruo RTOR incrementa


o tempo transcorrido ao valor de ACC, at que ele atinja o valor de PRE. Quando em ACC PRE, o parmetro DN energizado e timer_state3 energizado.

Texto Estruturado
RTOR_01.Preset := 500 RTOR_01.Reset := reset; RTOR_O1.TimerEnable := limit_switch1;

RTOR(RTOR_01);

timer_state3 := RTOR_01.DN;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

2-22

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Contador Crescente (CTU)

A instruo CTU conta ascendente. A instruo est disponvel no texto estruturado e no bloco de funes como CTUD, consulte a pgina 2-29.

Operandos: Lgica Ladder


Operando: Counter Preset Accum Tipo: COUNTER DINT DINT Formato: tag imediato imediato Descrio: estrutura do contador at quanto contar nmero de vezes que o contador contou valor inicial normalmente 0

Estrutura COUNTER
Mnemnico: .CU .DN .OV .UN .PRE .ACC Tipo de Dados: BOOL BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado de contagem crescente indica que a instruo CTU est habilitada. O bit executado indica .ACC .PRE. O bit de overflow indica que o contador excedeu o limite superior de 2,147,483,647. O contador ento ultrapassa -2,147,483,648 e recomea a contagem crescente. O bit de underflow indica que o contador excedeu o limite inferior de -2,147,483,648. O contador ento ultrapassa 2,147,483,647 e recomea a contagem decrescente. O valor de preset especifica qual o valor que o valor acumulado deve atingir antes que a instruo energize o bit .DN. O valor acumulado especifica o nmero de transies que a instruo contou.

Descrio: Quando habilitada e o bit .CU est desenergizado, a instruo CTU


incrementa o contador em um. Quando habilitada e o bit .CU est energizado, ou quando desabilitada, a instruo CTU retm o seu valor de .ACC.
entrada da condio da linha

bit de contagem crescente habilitado (.CU)

bit de contagem crescente executado (.DN)

Preset

valor acumulado do contador (.ACC)


16636

O valor acumulado continua incrementando mesmo depois que o bit .DN est energizado. Para remover o valor acumulado, use a instruo RES que referencia a estrutura do contador ou escreva 0 para o valor acumulado.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-23

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo


Condio: prescan Ao da Lgica Ladder: O bit .CU energizado para prevenir incrementos invlidos durante o primeiro scan do programa. A sada da condio da linha definida como falsa. O bit .CU desenergizado. A sada da condio da linha definida como falsa.

entrada da condio da linha for falsa entrada da condio da linha verdadeira

examinar o bit .CU

bit .CU = 0

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

ultrapassa o valor .ACC

sim

bit .CU = 1

no

bit .UN desenergizado. bit .DN desenergizado. bit .OV desenergizado.

bit .UN = 1 examinar o bit .UN

bit .UN = 0 bit .UN = 0

verifique o bit .UN

examinar o bit .OV

bit .OV = 0

bit .OV energizado. bit .UN = 1 bit .OV = 1

examinar .ACC

.ACC .PRE

.ACC < .PRE bit .DN desenergizado. bit .DN energizado.

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

2-24

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemplo: Depois que limit_switch_1 passar de desabilitado para habilitado por


10 vezes, o bit .DN energizado e light_1 acende. Se limit_switch_1 continuar a mudar de desabilitado para habilitado, counter_1 continua a incrementar a sua contagem e o bit .DN permanece energizado. Quando limit_switch_2 est habilitado, a instruo RES reseta counter_1 (desenergiza os bits de status e o valor .ACC) e light_1 apaga.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-25

Contagem Decrescente (CTD)


Operandos:

A instruo CTD conta de forma decrescente. A instruo est disponvel em texto estruturado e bloco de funes como CTUD, consulte a pgina 2-29.

Lgica Ladder
Operando: Tipo: Counter Preset Accum DINT DINT Formato: Descrio: estrutura do contador at onde contar nmero de vezes que o contador executou a contagem normalmente o valor inicial 0 imediato imediato

COUNTER tag

Estrutura COUNTER
Mnemnico: .CD .DN .OV .UN .PRE .ACC Tipo de Dados: BOOL BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado de contagem decrescente indica que a instruo CTD est habilitada. O bit executado indica que .ACC .PRE. O bit de overflow indica que o contador excedeu o limite superior de 2,147,483,647. O contador ento ultrapassa -2,147,483,648 e recomea a contagem crescente. O bit de underflow indica que o contador excedeu o limite inferior de -2,147,483,648. O contador ento ultrapassa 2,147,483,647 e recomea a contagem decrescente. O valor de preset especifica qual valor que o valor acumulado deve atingir antes que a instruo energize o bit .DN. O valor acumulado especifica o nmero de transies que a instruo contou.

Descrio: A instruo CTD, geralmente, usada com a instruo CTU que


referencia a mesma estrutura do contador. Quando habilitada e o bit .CD est desenergizado, a instruo CTD decrementa o contador em um. Quando habilitada e o bit .CD est energizado, ou quando desabilitada, a instruo CTD retm o seu valor .ACC.
entrada da condio da linha

bit habilitado da contagem decrescente (.CD) bit executado da contagem decrescente (.DN)

valor acumulado do contador (.ACC)

Preset
16637

Publicao 1756-RM003F-PT-P - Maio 2002

2-26

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

O valor acumulado continua decrementando mesmo depois que o bit .DN energizado. Para remover o valor acumulado, use a instruo RES que referencia a estrutura do contador ou escreva 0 para o valor acumulado.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-27

Condio: prescan

Ao da Lgica Ladder: O bit .CD energizado para prevenir decrementos invlidos durante o primeiro scan do programa. A sada da condio da linha definida como falsa. O bit .CD desligado. A sada da condio da linha definida como falsa.

entrada da condio da linha falsa entrada da condio da linha verdadeira

examinar o bit .CD

.CU bit = 0

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

o valor de .ACC ultrapassa

sim

.CU bit = 1

no

bit .OV desenergizado. bit .DN desenergizado. bit .UN desenergizado.

bit .OV = 1 examinar o bit .OV

bit .OV = 0 bit .UN = 0

examinar o bit .UN

examinar o bit .OV

bit .OV = 0

bit .UN energizado. bit .UN = 1 bit .OV = 1

examinar .ACC

.ACC .PRE

.ACC < .PRE bit .DN desenergizado. bit .DN energizado.

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

2-28

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemplo: Uma transportadora traz peas para uma zona de buffer. Cada vez que
uma pea entra, limit_switch_1 habilitado e counter_1 incrementa em 1. Cada vez que uma pea sai, limit_switch_2 habilitado e counter_1 decrementa em 1. Se houver 100 peas na zona de buffer (counter_1.dn est energizado), conveyor_a liga e impede que a transportadora traga mais peas at que o buffer tenha espao.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-29

Contagem Crescente/Decrescente (CTUD)

A instruo CTUD conta de forma crescente de um em um quando as transies CUEnable passa de desenergizado para energizado. A instruo CTUD conta de forma decrescente de um em um quando CDEnable muda de desenergizado para energizado. Esta instruo est disponvel na lgica ladder como trs instrues separadas. CTU (consulte a pgina 2-22), CTD (consulte a pgina 2-25) e RES (consulte a pgina 2-33).

Operandos:
CTUD(CTUD_tag);

Texto Estruturado
Varivel: CTUD tag Tipo: FBD_COUNTER Formato: estrutura Descrio: estrutura CTUD

Bloco de Funes
Operando: CTUD tag Tipo: FBD_COUNTER Formato: estrutura Descrio: estrutura CTUD

Estrutura FBD_COUNTER
Parmetro de Entrada: EnableIn Tipo de Dados: Descrio: BOOL Bloco de Funes : Se desenergizado, a instruo no executada e as sadas no so atualizadas. Se energizado, a instruo executada. Valor inicial est energizado Texto Estruturado Sem efeito. A instruo executa. Habilita contagem crescente. Quando a entrada passa de desenergizado para energizado, o acumulador conta de forma crescente de um em um. Valor inicial est desenergizado. Habilita contagem decrescente. Quando a entrada passa de desenergizado para energizado, o acumulador conta de forma decrescente de um em um. Valor inicial est desenergizado. Valor de preset do contador. Este o valor que o valor acumulado deve atingir antes que DN seja energizado. Vlido = qualquer inteiro Valor inicial 0. Solicitao para resetar o temporizador. Quando energizado, o temporizador reseta novamente. Valor inicial est desenergizado.

CUEnable

BOOL

CDEnable

BOOL

PRE

DINT

Reset

BOOL

Publicao 1756-RM003F-PT-P - Maio 2002

2-30

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Parmetro de Sada: EnableOut ACC CU CD DN OV UN

Tipo de Dados: BOOL DINT BOOL BOOL BOOL BOOL BOOL

Descrio: A instruo produziu um resultado vlido. Valor acumulado. Contagem crescente habilitada. Contagem decrescente habilitada. Contagem executada. Define quando o valor acumulado maior ou igual ao valor de preset. Overflow do contador. Indica que o contador excedeu o limite superior de 2,147,483,647. O contador ento ultrapassa 2,147,483,648 e comea a contagem decrescente novamente. Underflow do contador. Indica que o contador excedeu o limite inferior de 2,147,483,648. O contador ento ultrapassa 2,147,483,647 e recomea a contagem decrescente.

Descrio: Quando habilitadas e a instruo CUEnable est energizada, as


instrues CTUD incrementam o contador em um. Quando habilitada e a instruo CDEnable est energizada, a instruo CTUD decrementa o contador em um. Ambos os parmetros de entrada CUEnable e CDEnable, podem ser comutados durante o mesmo scan. A instruo executa a contagem crescente antes da contagem decrescente.

Contagem crescente

CUEnable

bit de contagem crescente habilitado (CU)

bit de contagem crescente executado (DN)

preset

valor acumulado do contador (ACC)


16636

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-31

Contagem decrescente

CDEnable

bit de contagem decrescente habilitado (CD) bit de contagem decrescente executado (DN)

valor acumulado do contador (ACC)

preset

16637

Quando desabilitada, a instruo CTUD retm o seu valor acumulado. Define o parmetro de entrada Reset da estrutura FBD_COUNTER para resetar a instruo.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo


Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado Ao do Bloco de Funes : No necessria a inicializao. CUEnablen-1 e CDEnablen-1 esto energizados. CUEnablen-1 e CDEnablen-1 esto energizados. O EnableOut desenergizado, a instruo no faz nada e as sadas no so atualizadas. a instruo energiza CUEnablen-1 e CDEnablen-1. De transio de energizado para energizado do EnableIn: A instruo executa. EnableOut est energizado. Ao de Texto Estruturado: No necessria a inicializao. CUEnablen-1 e CDEnablen-1 esto energizados. CUEnablen-1 e CDEnablen-1 esto energizados. na a instruo energiza CUEnablen-1 e CDEnablen-1. EnableIn sempre energizado A instruo executa.

Reset

Quando energizada, a instruo desliga CUEnablen-1, Quando energizada, a instruo desliga CUEnablen-1, CDEnablen-1, CU, CD, DN, OV e UN e energiza CDEnablen-1, CU, CD, DN, OV e UN e energiza ACC = zero. ACC = zero. Nenhuma ao tomada. Nenhuma ao tomada.

postscan

Publicao 1756-RM003F-PT-P - Maio 2002

2-32

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemplo: Quando limit_switch1 passa de desenergizado para energizado,


CUEnable definido como um scan e a instruo CTUD incrementa o valor ACC em 1. Quando em ACC PRE, o parmetro DN energizado, o que habilita a instruo bloco de funes CTUD.

Texto Estruturado
CTUD_01.Preset := 500; CTUD_01.Reset := Restart; CTUD_O1.CUEnable := limit_switch1;

CTUD(CTUD_01);

counter_state := CTUD_01.DN;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

2-33

Reset (RES)
Operandos:

A instruo RES reseta uma estrutura TIMER, COUNTER ou CONTROL.

Lgica Ladder
Operando: estrutura Tipo: TIMER CONTROL COUNTER Formato: tag Descrio: estrutura para reset

Descrio: Quando habilitada, a instruo RES desenergiza estes elementos:


Quando estiver usando a instruo RES para um: TIMER COUNTER CONTROL A instruo desliga: valor de .ACC bits de controle de status valor de .ACC bits de controle de status valor .POS bits de controle de status

ATENO

!
Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan

Desde que a instruo RES remova o valor de .ACC , desenergize os bits .DN e .TT bit, no use a instruo RES para resetar o temporizador TOF.

Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo RES rearma a estrutura especificada. A sada da condio da linha est definida como verdadeira. A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

2-34

Instrues de Temporizador e Contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Exemplos:
Exemplo: Descrio: Quando habilitado, reseta timer_3.

Quando habilitado, reseta counter_1.

Quando habilitado, reseta control_1.

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

Instrues de Entrada/Sada
(MSG, GSV, SSV)

Introduo

As instrues de entrada/sada lem ou escrevem dados a partir do controlador ou para o controlador, ou lem um bloco de dados a partir de ou para um outro mdulo, em uma outra rede.
Use esta instruo: MSG GSV SSV Disponvel nestas linguagens: lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado Consulte a pgina: 3-2 3-29 3-29

Se voc quiser: enviar dados de/para outro mdulo obter informaes de status do controlador definir informaes de status do controlador

Publicao 1756-RM003F-PT-P - Maio 2002

3-2

Instrues de Entrada/Sada (MSG, GSV, SSV)

Mensagem (MSG)
Operandos:

A instruo MSG realiza a leitura ou escreve de forma assncrona em um bloco de dados para outro mdulo em uma rede.

Lgica Ladder
Operando: Controle de mensagem Tipo: MESSAGE Formato: tag Descrio: estrutura da mensagem

Texto Estruturado
MSG(MessageControl);

Os operandos so os mesmos, como aqueles da instruo MSG da lgica ladder.

Estrutura MESSAGE
Mnemnico: .FLAGS Tipo de Descrio: Dados: INT O membro .FLAGS fornece acesso aos membros de status (bits) em uma palavra de 16 bits. Este bit: 2 4 5 6 7 8 9 Corresponde a este membro: .EW .ER .DN .ST .EN .TO .EN_CC

Importante: O reset de qualquer bit de status da MSG enquanto ela estiver habilitada pode interromper as comunicaes. .ERR .EXERR .REQ_LEN .DN_LEN .EW .ER .DN .ST INT INT INT INT BOOL BOOL BOOL BOOL Se o bit .ER for energizado, a palavra de cdigo de erro identifica os cdigos de erro para a instruo MSG. A palavra de cdigo de erro estendido especifica as informaes de cdigo de erro adicionais para alguns cdigos de erro. O comprimento requisitado especifica quantas palavras a instruo de mensagem tentar transferir. O comprimento executado identifica quantas palavras realmente foram transferidas. O bit de espera habilitado est energizado quando o controlador detecta a entrada de um pedido de mensagem na fila. O controlador reseta o bit .EW quando o bit .ST estiver energizado. O bit de erro energizado quando o controlador detecta uma falha na transferncia. O bit .ER resetado na prxima vez que a entrada da condio da linha passar de falsa para verdadeira. O bit executado energizado quando o ltimo pacote de mensagens for transferido com sucesso. O bit .DN resetado na prxima vez que a entrada da condio da linha passar de falsa para verdadeira. O bit de partida energizado quando o controlador comear a executar a instruo MSG. O bit .ST resetado quando o bit .DN ou o bit .ER for energizado.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-3

Mnemnico: .EN

Tipo de Descrio: Dados: BOOL O bit habilitado energizado quando a entrada da condio da linha se tornar verdadeira e permanecer energizada at o bit .DN ou .ER ser energizado e a entrada da condio da linha se tornar falsa. Se a entrada da condio da linha se tornar falsa, mas os bits .DN e .ER forem desenergizados, o bit .EN permanecer energizado. Se voc energizar o bit .TO manualmente, o controlador interrompe o processamento da mensagem e energiza o bit .ER. O bit habilitado de cache determina como controlar a conexo MSG. Consulte Escolha de uma opo de cache: na pgina 3-27 As conexes para as instrues MSG que saem da porta serial no esto em memria cache, mesmo que o bit .EN_CC esteja energizado. Usado pelo software RSLogix 5000 para apresentar o caminho de erro na caixa de seleo Message Configuration Para mudar o Link Destination de um DH+ ou CIP com a mensagem Source ID, ajuste o membro para o valor solicitado. Para mudar o N de Destino de um DH+ ou CIP com a mensagem Source ID, ajuste o membro para o valor solicitado. Para mudar o Link Source de um DH+ ou CIP com a mensagem Source ID, ajuste o membro para o valor solicitado. Para mudar o parmetro Class de uma mensagem CIP Generic, ajuste o membro para o valor solicitado. Para mudar o parmetro Attribute de uma mensagem CIP Generic, ajuste o membro para o valor solicitado. Para mudar o parmetro Instance de uma mensagem CIP Generic, ajuste o membro para o valor solicitado. Caso use um asterisco [*] para designar o nmero do elemento do array local, o LocalIndex fornece o nmero do elemento. Para alterar o nmero do elemento, ajuste o membro para o valor solicitado. Se a mensagem: l os dados escreve os dados Logo, o array local: o Elemento Destino O Elemento Fonte

.TO .EN_CC

BOOL BOOL

.ERR_SRC .DestinationLink .DestinationNode .SourceLink .Class .Attribute .Instance .LocalIndex

SINT INT INT INT INT INT DINT DINT

.Channel .Rack .Group .Slot

SINT SINT SINT SINT

Para enviar a mensagem de um outro canal diferente do mdulo 1756-DHRIO, ajuste este membro para o valor solicitado. Use o caracter ASCII A ou B. Para alterar o nmero do rack para uma mensagem de block-transfer, ajuste este membro para o nmero do rack requisitado (octal). Para alterar o nmero do grupo para uma mensagem de block-transfer, ajuste este membro para o nmero de grupo requisitado (octal). Para alterar o nmero do slot para uma mensagem de block-transfer, ajuste este membro para o nmero do slot requisitado (octal). Se a mensagem passar direto pela rede: remote I/O ControlNet Especifique o nmero do slot em:

octal decimal (0-15)

.Path

STRING Para enviar a mensagem para um controlador diferente, ajuste este membro para um novo caminho. Insira o caminho como valores decimais. Omita as vrgulas [,] Por exemplo, para um caminho de 1, 0, 2, 42, 1, 3, insira $01$00$02$2A$01$03. Para navegar para um dispositivo e criar automaticamente uma parte ou toda uma nova string, clique com o boto direito do mouse sobre o tag da string e selecione Go to Message Path Editor.

Publicao 1756-RM003F-PT-P - Maio 2002

3-4

Instrues de Entrada/Sada (MSG, GSV, SSV)

Mnemnico: .RemoteIndex

Tipo de Descrio: Dados: DINT Caso use um asterisco [*] para designar o nmero do elemento do array local, o LocalIndex fornece o nmero do elemento. Para alterar o nmero do elemento, ajuste o membro para o valor solicitado. Se a mensagem: l os dados escreve os dados Logo, o array remoto : O elemento Source O elemento Destination

.RemoteElement

STRING Para especificar um tag ou endereo diferente no controlador para o qual a mensagem enviada, ajuste este membro para o valor requisitado. Insira o tag ou endereo como caracteres ASCII. Se a mensagem: l os dados escreve os dados Logo, o array remoto : O elemento Source O elemento Destination

.UnconnnectedTimeout .ConnectionRate .TimeoutMultiplier

DINT DINT SINT

O timeout para mensagens desconectadas. O valor padro 30 segundos. O ConnectionRate vezes o TimeoutMultiplier produz o timeout para mensagens conectadas. O ConnectionRate padro 7,5 segundos. O TimeoutMultiplier padro 0 (que equivale a um fator de multiplicao por 4). O timeout padro para as mensagens conectadas 30 segundos (7,5 segundos x 4 = 30 segundos). Para alterar o timeout, altere o ConnectionRate e deixe o TimeoutMultiplier no valor padro.

ATENO

O controlador processa os bits .ST, .EW, .DN e .ER de uma maneira assncrona a do scan. Para verificar estes bits em lgica ladder, copie as palavras .FLAGS para um tag INT e verifique os bits a partir deste ponto. Caso contrrio, problemas de temporizao podem invalidar a sua aplicao com possveis danos ao equipamento e ferimentos pessoais.

Descrio: A instruo MSG transfere os elementos dos dados.


Esta uma instruo transicional: Na lgica ladder, comute a entrada da condio da linha de desenergizada para energizada toda vez que a instruo tiver que ser executada. Em texto estruturado, condicione a instruo de forma que s seja executada em uma transio. Consulte o Apndice C

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-5

O tamanho de cada elemento depende dos tipos de dados especificados e do tipo de comando de mensagem usado.
conexo com .EN_CC = 1

entrada da condio da linha

bit .EN

bit .EW

conexo com .EN_CC = 0

bit .ST

bit .DN ou .ER


41382

Onde: 1

Descrio: entrada da condio da linha verdadeira .EN est energizado .EW est energizado a conexo est aberta* a mensagem enviada .ST est energizado .EW est desenergizado.

Onde: 5

Descrio: a mensagem enviada .ST est energizado .EW desenergizado. a mensagem executada ou est errada a entrada da condio da linha continua verdadeira .DN ou .ER est energizado .ST desenergizado. a conexo fechada (se .EN_CC = 0) a entrada da condio da linha se torna falsa e .DN ou .ER energizado .EN desenergizado.

a mensagem executada ou est errada entrada da condio da linha falsa .DN ou .ER est energizado .ST desenergizado. a conexo fechada (se .EN_CC = 0) .EN est energizado(a entrada da condio da linha falsa) entrada da condio da linha verdadeira .DN ou .ER foi energizado anteriormente .EN est energizado .EW est energizado a conexo est aberta* .DN ou .ER est desenergizado

Execuo
Condio: prescan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. Ao de Texto Estruturado: Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

3-6

Instrues de Entrada/Sada (MSG, GSV, SSV)

Condio:

Ao da Lgica Ladder:
bit .EN = 1 examinar bit .EN

Ao de Texto Estruturado:

entrada da condio da linha falsa (no se aplica a texto estruturado)


bit .EW = 1 examinar o bit .EW

bit .EN = 0

bit .EW = 0

bit .ST = 1 examinar o bit .ST

bit .ST = 0

bit .DN = 1 examinar bit .DN

bit .DN = 0

bit .ER = 1 examinar bit .ER

bit .ER = 0

comando de block-transfer no

sim caminho vlido do mdulo sim

no

bit .DN = 1 examinar bit .DN sim conexo do mdulo em operao no

bit .DN = 0

bit .EN desenergizado.

executar pedido de mensagem

bit .ER = 1 examinar bit .ER bit .EW est energizado bit .ER energizado

bit .ER = 0

sada da condio da linha definida como

fim

entrada da condio da linha verdadeira

A instruo executa. A sada da condio da linha definida como verdadeira.

na

Condio: EnableIn est energizado

Ao da Lgica Ladder: na

Ao de Texto Estruturado: EnableIn sempre energizado A instruo executa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-7

Condio: execuo da instruo

Ao da Lgica Ladder:
bit .EN = 1 examinar bit .EN

Ao de Texto Estruturado:
bit .EN = 0

bit .EW = 1 examinar o bit .EW bit .EW = 0 examinar o bit .EW bit .EW = 0

bit .EW = 1

bit .ST = 1 examinar o bit .ST examinar o bit .ST

bit .ST = 1

bit .ST = 0

bit .ST = 0

bit .DN = 1 examinar bit .DN

bits .EW, .ST, .TO, .DN e .ER so desenergizados bit .EN energizado

bit .DN = 0

bit .EN energizado

bit .ER = 1 examinar bit .ER

bit .ER = 0

comando de block-transfer no

sim caminho vlido do mdulo sim

no

sim

conexo do mdulo em operao

no

bits .EW, .ST, .TO, .DN e .ER so desenergizados bit .EN energizado executar pedido de mensagem bit .EW est energizado bit .ER energizado

sada da condio da linha definida como falsa

fim

postscan

A sada da condio da linha definida como falsa.

Nenhuma ao tomada.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Cdigos de Erro MSG

Os cdigos de erro dependem do tipo de instruo MSG.

Publicao 1756-RM003F-PT-P - Maio 2002

3-8

Instrues de Entrada/Sada (MSG, GSV, SSV)

Cdigos de Erro
O software RSLogix 5000 nem sempre exibe a descrio completa.
Cdigo de erro (hex): 0001 0002 0003 0004 0005 Descrio: Falha de conexo (consulte os cdigos de erro estendidos) Recurso insuficiente Valor invlido Erro de sintaxe IOI (consulte os cdigos de erro estendidos) Destino desconhecido, classe no suportada, instncia indefinida ou elemento de estrutura indefinida (consulte os cdigos de erro estendidos) Espao insuficiente no pacote Perda de conexo Servio no suportado Erro no segmento de dados ou valor de atributo invlido Erro na lista de atributo Estado j existe Conflito no modelo do objeto Objeto j existe Atributo no configurvel Permisso negada Conflito com o estado do dispositivo A resposta no ser adequada Fragmento primitivo Dados de comando insuficientes Atributo no suportado Excesso de dados Pedido de ponte muito grande Resposta da ponte muito grande Escassez de lista de atributos Lista de atributos invlidos Erro no servio incorporado Falha relacionada conexo (consulte os cdigos de erro estendidos) Resposta recebida invlida Erro de segmento principal Erro de IOI invlido Atributo inesperado na lista Erro na DeviceNet - Identificao de membro invlido Erro na DeviceNet - membro no configurvel Mdulo no est no estado de operao Display do software: igual descrio igual descrio igual descrio igual descrio igual descrio

0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 001A 001B 001C 001D 001E 001F 0022 0025 0026 0027 0028 0029 00D1

igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio igual descrio erro desconhecido

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-9

Cdigo de erro (hex): 00FB 00FC 00FD 00FE 00FF

Descrio: Porta de mensagem no suportada Tipo de dados no suportados pela mensagem Mensagem no inicializada timeout de mensagem Erro geral (consulte os cdigos de erro estendidos)

Display do software: erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido

Cdigos de Erro Estendido


O software RSLogix 5000 no exibe texto para os cdigos de erro estendidos. Estes so os cdigos de erro estendidos para o cdigo de erro 0001.
Cdigo de erro estendid o (hex): 0100 0103 0106 0107 0108 0109 0110 0111 0114 0115 0116 0118 Descrio: Cdigo de erro estendid o (hex): 011A 0203 0204 0205 0206 0301 0302 0303 0305 0311 0312 0315 0317 Descrio:

Conexo em uso Transporte no suportado Conflito de Dispositivo de Armazenamento de Configurao Conexo no encontrada Tipo de conexo invlida Tamanho de conexo invlida Mdulo no configurado EPR no suportado Mdulo errado Tipo de dispositivo errado Reviso errada Formato de configurao invlido

Aplicao fora das conexes Timeout da conexo Timeout de mensagem no conectada Erro de parmetro enviado no conectado Mensagem muito grande Sem espao de memria no buffer Largura de faixa no disponvel No h disponibilidade de screeners Correspondncia de assinatura Porta no disponvel Endereo de rede no disponvel Tipo de segmento invlido Conexo no programada

Estes so os cdigos de erro estendidos para o cdigo de erro 001F.


Cdigo de erro estendido (hex): 0203 Descrio: Timeout da conexo

Estes so os cdigos de erro estendidos para os cdigos de erro 0004 e 0005.


Cdigo de erro estendido (hex): 0000 0001 Descrio status estendido fora da memria status estendido fora dos exemplos

Publicao 1756-RM003F-PT-P - Maio 2002

3-10

Instrues de Entrada/Sada (MSG, GSV, SSV)

Estes so os cdigos de erro estendidos para o cdigo de erro 00FF.


Cdigo de erro estendid o (hex): 2001 2002 2018 201B 201C 2100 2101 2102 2103 2104 2105 2106 2107 Descrio: Cdigo de erro estendid o (hex): 2108 2109 210A 210B 210E 210F 2110 2111 2112 2113 2114 Descrio:

Excesso de IOI Valor do parmetro deficiente Sinalizao rejeitada Tamanho muito pequeno Tamanho invlido Falha de privilgio Posio da chave seletora de modo invlida Senha invlida Sem emisso de senha Endereo fora da faixa Endereo e quantos esto fora da faixa Dados em uso Tipo invlido ou no suportado

Controlador no modo de carga ou descarga Tentativa de alterar o nmero das dimenses do array Nome invlido do smbolo Smbolo no existe Busca apresentou falha Tarefa no pode ser iniciada No h condies de escrita No h condies de leitura Rotina compartilhada que no pode ser editada Controlador no modo de falha Modo de operao inibido

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-11

Cdigos de Erro do CLP e do SLC (.ERR)


Para os cdigos de erro do CLP e SLC, o software de programao no exibe a descrio completa.

Cdigo de erro (hex): 1000 2000 3000 4000 5000 6000 7000 8000 9000 B000 F001 F002 F003 F004 F005

Descrio: Comando ilegal ou formato do controlador local Mdulo de comunicao no est funcionando N remoto est faltando, desconectado ou desligado Controlador conectado, mas com falha (hardware) Nmero de estao errado Funo requisitada no est disponvel Controlador est no modo Program Arquivo de compatibilidade do controlador no existe N remoto no consegue comandar o buffer Controlador est executando um download, portanto no pode ser acessado Controlador converteu incorretamente o endereo Endereo incompleto Endereo incorreto Formato ilegal do endereo - smbolo no encontrado Formato ilegal do endereo - o smbolo tem o valor 0 ou maior do que o nmero mximo de caracteres suportados pelo dispositivo Arquivo de endereo no existe no controlador alvo. Arquivo de destino muito pequeno para o nmero de palavras solicitado. No consegue completar o pedido Situao alterada durante operao com vrios pacotes Dados ou arquivo muito grande Memria no disponvel Controlador alvo no consegue colocar as informaes requisitadas em pacotes Erro de privilgio; acesso negado Funo requisitada no est disponvel

Cdigo de erro (hex): F00D F00E F00F F010 F011 F012 F013 F014

Descrio: Pedido redundante Comando no pode ser executado Overflow; histograma de overflow Sem acesso Tipo de dados requisitados no corresponde aos dados disponveis Parmetros de comando incorretos Referncia de endereo existe para uma rea apagada Falha na execuo do comando por motivo desconhecido Overflow do histograma do CLP-3 Erro na converso dos dados Scanner no est disponvel para comunicao com um adaptador de rack 1771 Adaptador no est disponvel para comunicao com o mdulo Resposta do mdulo 1771 no foi vlida Etiqueta duplicada Controlador que armazena a configurao do arquivo ativo - o arquivo est sendo usado Controlador que armazena a configurao do programa ativo - algum est fazendo o download de dados ou a edio on-line Arquivo do disco est protegido contra escrita ou no pode ser acessado (somente off-line) Arquivo do disco est sendo usado por outra aplicao Atualizao no realizada (somente off-line)

F015 F016 F017 F018 F019 F01A F01B

F006 F007 F008

F01C F01D

F009 F00A F00B F00C

Publicao 1756-RM003F-PT-P - Maio 2002

3-12

Instrues de Entrada/Sada (MSG, GSV, SSV)

Cdigos de Erro de Block-transfer


Estes so os cdigos de erros especficos de block-transfer no Logix5000.
Cdigo de erro (hex): 00D0 00D1 00D2 00D3 00D6 00EA 00EB 00EC 00ED 00EE 00EF 00F0 00F3 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD Descrio: O scanner no recebeu uma resposta de block-transfer do mdulo de block-transfer dentro de 3,5 s do pedido O checksum da resposta de leitura no corresponde ao checksum do conjunto de dados O scanner solicitou uma leitura ou escrita, mas o mdulo de block-transfer forneceu uma resposta contrria. O scanner solicitou um comprimento e o mdulo de block-transfer respondeu com um comprimento diferente. O scanner recebeu uma resposta do mdulo de block-transfer, indicando que o pedido de escrita apresentou falha. O scanner no foi configurado para comunicar-se com o rack deste mdulo de block-transfer O slot lgico especfico no est disponvel para o tamanho de rack determinado No momento, h um pedido de block-transfer em andamento e uma resposta solicitada antes que outro pedido possa ser iniciado O tamanho de pedido de block-transfer no est de acordo com os pedidos de tamanho vlidos para block-transfer O tipo de pedido de block-transfer no est de acordo com o BT_READ ou BT_WRITE previsto O scanner no conseguiu encontrar um slot disponvel na tabela de block-transfer para acomodar o pedido de block-transfer O scanner recebeu um pedido para resetar os canais de E/S remota enquanto houvesse block-transfers em aberto. As filas para block-transfers remotos esto cheias Nenhum canal de comunicao est configurado para o slot ou rack solicitado Nenhum canal de comunicao est configurado para E/S remota O timeout de block-transfer configurado na instruo encerrou a temporizao antes da concluso Erro no protocolo de block-transfer - block-transfer no solicitado Os dados de block-transfer foram perdidos devido a um canal de comunicao em ms condies O mdulo de block-transfer solicitou um comprimento diferente daquele associado instruo de block-transfer. O checksum dos dados de leitura do block-transfer estava errado Houve uma transferncia invlida dos dados de escrita de block-transfer entre o adaptador e o mdulo de block-transfer Display do software: erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido erro desconhecido

O tamanho do block-transfer mais o tamanho do ndice na tabela de dados de erro desconhecido block-transfer era maior do que o tamanho do arquivo da tabela de dados de block-transfer

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-13

Especificao dos Detalhes da Configurao

Depois de inserir a instruo MSG e especificar a estrutura MESSAGE, use a caixa de dilogo Message Configuration para especificar os detalhes da mensagem.

Clique aqui para configurar a instruo MSG

Os detalhes de configurao dependem do tipo de mensagem selecionado.

42976

Se o dispositivo alvo for um: Controlador Logix5000 Mdulo de E/S que voc configura usando o software RSLogix 5000 Controlador CLP-5

Selecione um dos seguintes tipos de mensagens: CIP Data Table Read CIP Data Table Write Module Reconfigure CIP Generic PLC5 Typed Read PLC5 Typed Write PLC5 Word Range Read PLC5 Word Range Write

Consulte a pgina: 3-14 3-14 3-16 3-17

Controlador SLC Controlador MicroLogix Mdulo de block-transfer Controlador CLP-3

SLC Typed Read SLC Typed Write Block-Transfer Read Block-Transfer Write PLC3 typed read PLC3 typed write PLC3 word range read PLC3 word range write

3-18 3-18 3-19

Controlador CLP-2

PLC2 unprotected read PLC2 unprotected write

3-20

Publicao 1756-RM003F-PT-P - Maio 2002

3-14

Instrues de Entrada/Sada (MSG, GSV, SSV)

Voc deve especificar essa informao de configurao:


Para esta propriedade: Source Element Especifique Se voc selecionar um tipo de mensagem de leitura, Source Element o endereo de dados que voc quer ler no dispositivo alvo. Use a sintaxe de endereamento do dispositivo alvo. Se voc selecionar um tipo de mensagem de escrita, Source Tag o primeiro elemento do tag que voc quer enviar para o dispositivo alvo. Number of Elements O nmero de elementos que voc l/escreve depende do tipo de dados que est sendo usado. Um elemento se refere a um "fragmento" dos dados relacionados. Por exemplo, o tag timer1 um elemento composto por uma estrutura de controle do temporizador. Se voc selecionar um tipo de mensagem de leitura, o Destination Element o primeiro elemento do tag no controlador Logix5000 no qual voc quer armazenar os dados que voc l a partir do dispositivo alvo. Se voc selecionar o tipo de mensagem de escrita, o Destination Element o endereo do local no dispositivo alvo onde voc escrever os dados.

Destination Element

Especificao das Mensagens de Leitura e Escrita da Tabela de Dados CIP


Os tipos de mensagens Leitura e Escrita da Tabela de Dados CIP transferem dados entre os controladores Logix5000.
Selecione este comando: CIP Data Table Read CIP Data Table Write Se voc quiser: ler os dados a partir de outro controlador. Os tipos Source e Destination devem corresponder. escrever os dados em outro controlador. Os tipos Source e Destination devem corresponder.

Reconfigurao de um Mdulo de E/S


Use a mensagem Module Reconfigure para enviar as novas informaes de configurao para um mdulo de E/S. Durante a reconfigurao: Os mdulos de entrada continuam a enviar dados de entrada para o controlador. Os mdulos de sada continuam a enviar para o controlador seus dispositivos de sada. Uma mensagem de Module Reconfigure solicita estas propriedades de configurao:
Nesta propriedade: Message Type Selecione: Module Reconfigure

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-15

Exemplo: Para reconfigurar um mdulo de E/S:


1. Configure o membro requisitado do tag de configurao do mdulo para o novo valor. 2. Envie uma mensagem Module Reconfigure para o mdulo. Quando reconfigure[5] energizado, ajusta o alarme em 60 para o mdulo local no slot 4. A mensagem Module Reconfigure envia o novo valor de alarme para o mdulo. A instruo de uma etapa previne que a linha envie mensagens mltiplas para o mdulo enquanto o reconfigure[5] estiver ligado.

Lgica Ladder

Texto Estruturado
IF reconfigure[5] AND NOT reconfigure[6]THEN Local:4:C.Ch0Config.HAlarmLimit := 60; IF NOT change_Halarm.EN THEN MSG(change_Halarm); END_IF; END_IF; reconfigure[6] := reconfigure[5];

Publicao 1756-RM003F-PT-P - Maio 2002

3-16

Instrues de Entrada/Sada (MSG, GSV, SSV)

Especificar Mensagens CIP Generic


Uma mensagem CIP Generic realiza uma ao especfica em um mdulo de E/S.
Se voc quiser Realizar um teste de pulso em um mdulo de sada digital Nesta propriedade: Message Type Service Type Source Digite ou selecione: CIP Generic Pulse Test tag_name do tipo INT [5] Este array contm: tag_name[0] tag_name[1] tag_name[2] tag_name[3] mscara de bit dos pontos para teste (teste somente um ponto de cada vez) reservado, deixe 0 largura do pulso (centenas de segundos, normalmente 20) atraso no cruzamento zero para ControlLogix I/O (centenas desegundos, normalmente 40) verifique o atraso

tag_name[4] Destination Resetar os fusveis eletrnicos em um mdulo de sada digital Message Type Service Type Source deixe em branco CIP Generic Reset Electronic Fuse

tag_name do tipo DINT Este tag representa uma mscara de bit dos pontos para resetar os fusveis para energizado. deixe em branco CIP Generic Reset Latched Diagnostics (I) tag_name do tipo DINT Esse tag representa uma mscara de bit dos pontos para resetar o diagnstico para energizado. CIP Generic Reset Latched Diagnostics (O) tag_name do tipo DINT Esse tag representa uma mscara de bit dos pontos para resetar o diagnstico para energizado. CIP Generic Selecione qual alarme voc quer destravar: Unlatch All Alarms (I) Unlatch Analog High Alarm (I) Unlatch Analog High High Alarm (I) Unlatch Analog Low Alarm (I) Unlatch Analog Low Low Alarm (I) Unlatch Rate Alarm (I) O canal do alarme que voc quer destravar

Destination Resetar diagnsticos travados em um mdulo de entrada digital Message Type Service Type Source

Resetar diagnsticos em um mdulo de sada digital

Message Type Service Type Source

Destravar o alarme de um mdulo de entrada analgica

Message Type Service Type

Instance

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-17

Se voc quiser Destravar o alarme de um mdulo de sada analgica

Nesta propriedade: Message Type Service Type

Digite ou selecione: CIP Generic Selecione qual alarme voc quer destravar: Unlatch All Alarms (O) Unlatch High Alarm (O) Unlatch Low Alarm (O) Unlatch Ramp Alarm (O) O canal do alarme que voc quer destravar

Instance

Especificao das mensagens do CLP-5


Use os tipos de mensagem CLP-5 para comunicar-se com os controladores CLP-5.
Selecione este comando: PLC5 Typed Read PLC5 Typed Write PLC5 Word Range Read Se voc quiser: Ler o inteiro de 16 bits, ponto flutuante ou os dados do tipo da string e manter a integridade dos dados. Veja a Tabela3.1 na pgina 3-17. Escrever o inteiro de 16 bits, ponto flutuante ou os dados do tipo da string e manter a integridade dos dados.Veja a Tabela3.1 na pgina 3-17 Ler uma faixa contnua de palavras de 16 bits na memria do CLP-5, independente do tipo dos dados. Este comando comea no endereo especificado como Source Element e realiza uma leitura seqencial das palavras de 16 bits solicitadas. Os dados do Source Element so armazenados, iniciando no endereo especificado como Destination Tag. Escrever uma faixa contnua de palavras de 16 bits da memria do Logix5000, independente do tipo de dados para a memria do CLP-5. Este comando comea no endereo especificado como Source Tag e realiza uma leitura seqencial das palavras de 16 bits solicitadas. Os dados de Source Tag so armazenados, iniciando no endereo especificado como Destination Element no controlador CLP-5.

PLC5 Word Range Write

A tabela a seguir mostra os tipos de dados para usar com as mensagens PLC5 Typed Read e PLC5 Typed Write.
Tabela 3.1 Tipos de dados para mensagens PLC5 Typed Read e Typed Write Para este tipo de dados do CLP-5: B F N Use este tipo de dados do Logix5000: INT REAL INT DINT (Escreve somente valores DINT para um controlador CLP-5 se o valor for 32,768 e 32,767.) S ST INT STRING

Os comandos Typed Read e Typed Write tambm funcionam com os controladores SLC 5/03 (OS303 e acima), controladores SLC 5/04 (OS402 e acima) e os controladores SLC 5/05.

Publicao 1756-RM003F-PT-P - Maio 2002

3-18

Instrues de Entrada/Sada (MSG, GSV, SSV)

Os diagramas a seguir mostram como os comandos de faixa de palavra e de tipo so diferentes. O exemplo usa comandos de leitura de um controlador CLP-5 para um controlador Logix5000.
Comando de leitura de tipo palavras de 16 bits no controlador CLP-5 palavras de 32 bits no controlador Logix5000 Comando de leitura da faixa de palavra palavras de 16 bits no controlador CLP-5 palavras de 32 bits no controlador Logix5000

Os comandos de tipo mantm o valor e a estrutura dos dados.

Os comandos de faixa de palavra preenchem o tag de destino de forma contnua. O valor e a estrutura dos dados so modificados dependendo do tipo de dado de destino.

Especificao das Mensagens do SLC


Use os tipos da mensagem SLC para comunicar-se com os controladores SLC e MicroLogix. A tabela a seguir mostra quais os tipos de dados a instruo permite que voc acesse. A tabela tambm mostra o tipo correspondente de dados do Logix5000.
Para este tipo de dados do SLC ou MicroLogix: F L (controladores MicroLogix 1200 e 1500) N Use este tipo de dados do Logix5000: REAL DINT INT

Especificao das Mensagens Block-transfer


Os tipos de mensagem de block-transfer so usados para comunicao com mdulos de block-transfer em uma rede Universal Remote I/O.
Se voc quiser: ler dados de um mdulo de block-transfer. Este tipo de mensagem substitui a instruo BTR. escrever dados em um mdulo de block-transfer. Este tipo de mensagem substitui a instruo BTW. Selecione este comando: Block-Transfer Read Block-Transfer Write

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-19

Para configurar uma mensagem block-transfer, siga as orientaes: Os tags de fonte (para BTW) e destino (para BTR) devem ter um tamanho suficiente para aceitar os dados solicitados, exceto para as estruturas MESSAGE, AXIS e MODULE. Especifique quantos inteiros de 16 bits (INT) enviar ou receber. possvel especificar de 0 a 64 inteiros.
Se voc quiser o: Mdulo block-transfer para determinar quantos inteiros de 16 bits enviar (BTR). O controlador para enviar 64 inteiros (BTW). Especifique: 0 para o nmero de elementos

Especificao de Mensagens do CLP-3


Os tipos de mensagem do CLP-3 so determinados para os controladores CLP-3.
Selecione este comando: PLC3 Typed Read Se voc quiser: ler inteiros ou dados do tipo REAL . Para inteiros, este comando l inteiros de 16 bits a partir do controlador CLP-3 e armazena-os nos arrays de dados SINT, INT ou DINT no controlador Logix5000 mantm a integridade dos dados. Este comando tambm l os dados do ponto flutuante do CLP-3 e armazena-os em um tag do tipo de dados REAL no controlador Logix5000. escrever de inteiros ou dados do tipo REAL. Este comando escreve os dados SINT ou INT em um arquivo de inteiros do controlador CLP-3 e mantm a integridade dos dados. possvel escrever dados DINT at onde eles se ajustem em um tipo de dados INT (32,768 data 32,767). Este comando tambm escreve os dados do tipo REAL do controlador Logix5000 para um arquivo de ponto flutuante do CLP-3. ler uma faixa contnua de palavras de 16 bits na memria do CLP-3, independente do tipo de dados. Este comando comea no endereo especificado como Source Element e realiza uma leitura seqencial das palavras de 16 bits solicitadas. Os dados do Source Element so armazenados, iniciando no endereo especificado como Destination Tag . Escrever uma faixa contnua de palavras de 16 bits da memria do Logix5000, independente do tipo de dados para a memria do CLP-3. Este comando comea no endereo especificado como Source Tag e realiza uma leitura seqencial das palavras de 16 bits solicitadas. Os dados de Source Tag so armazenados, iniciando no endereo especificado como Destination Element no controlador CLP-3.

PLC3 Typed Write

PLC3 Word Range Read

PLC3 Word Range Write

Publicao 1756-RM003F-PT-P - Maio 2002

3-20

Instrues de Entrada/Sada (MSG, GSV, SSV)

Os diagramas a seguir mostram como os comandos de faixa de palavra e de tipo so diferentes. O exemplo usa os comandos de leitura de um controlador CLP-3 para um controlador Logix5000.
Comando de leitura de tipo palavras de 32 bits no controlador Logix5000 Comando de leitura de faixa de palavra palavras de 32 bits no controlador Logix5000

palavras de 16 bits no controlador CLP-3

palavras de 16 bits no controlador CLP-3

Os comandos de tipo mantm o valor e a estrutura dos dados.

Os comandos de faixa de palavra preenchem o tag de destino de forma contnua. O valor e a estrutura dos dados so modificados dependendo do tipo de dado de destino.

Especificao das mensagens do CLP-2


Os tipos de mensagem do CLP-2 so determinados para os controladores CLP-2.
Selecione este comando: PLC2 Unprotected Read PLC2 Unprotected Write Se voc quiser: realizar a leitura de palavras de 16 bits de qualquer rea da tabela de dados do CLP-2 ou do arquivo de compatibilidade do CLP-2 de outro controlador. escrever palavras de 16 bits para qualquer rea da tabela de dados do CLP-2 ou do arquivo de compatibilidade do CLP-2 de outro controlador.

A transferncia da mensagem usa palavras de 16 bits, ento, certifique-se de que o tag do Logix5000 armazena adequadamente os dados transferidos (normalmente como um array INT).

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-21

Exemplos de Configurao MSG

Os exemplos a seguir mostram os tags e elementos source e destination para combinaes de controladores diferentes. Para instrues MSG originadas em um controlador Logix5000 e escrevendo para um outro controlador:

Percurso da Mensagem: Logix5000 Logix5000

Exemplo de Fonte e Destino: tag da fonte tag de destino array_1[0] array_2[0]

Voc pode usar um tag alias para o tag fonte (no controlador Logix5000 original). Voc no pode usar um nome alternativo para o tag de destino. O destino deve ser um tag de base. Logix5000 PLC-5 Logix5000 SLC tag da fonte elemento de destino tag da fonte elemento de destino array_1[0] N7:10 array_1[0] 010

Voc pode usar um tag alias para o tag fonte (no controlador Logix5000 original). Logix5000 PLC-2

Para instrues MSG originrias de um controlador Logix5000 e lidas de um outro controlador:


Percurso da Mensagem: Logix5000 Logix5000 Exemplo de Fonte e Destino: tag da fonte tag de destino array_1[0] array_2[0]

Voc no pode usar um tag com nome alternativo para o tag de fonte. A fonte deve ser um tag de base. Voc pode usar um tag alias para o tag destino (no controlador Logix5000 original). Logix5000 PLC-5 Logix5000 SLC elemento fonte tag de destino elemento fonte tag de destino N7:10 array_1[0] 010 array_1[0]

Voc pode usar um tag alias para o tag destino (no controlador Logix5000 original). Logix5000 PLC-2

Publicao 1756-RM003F-PT-P - Maio 2002

3-22

Instrues de Entrada/Sada (MSG, GSV, SSV)

Especificao de Detalhes de Comunicao

Ao configurar uma instruo MSG, voc especifica estes detalhes na guia Communication.

43008

Especificar um caminho
O caminho descreve a rota que a mensagem pega para chegar ao destino. Se voc adicionar o mdulo de comunicao local, o mdulo de comunicao remoto e o controlador ou dispositivo de destino configurao da E/S do controlador, o boto Browse permite que voc selecione o destino.
Message Path Browser Path: peer_controller peer_controller I/O Configuration [0] 1756-CNB/x Local_CNB 2 [0] 1756-CNB/x chassis_b [1] 1756-L55/x peer_controller

peer_controller

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-23

Alguns mdulos ou dispositivos de comunicao no esto disponveis para a configurao da E/S do controlador. Para aquelas situaes, conclua o caminho conforme segue: 1. Use o boto Browse para selecionar o mdulo de comunicao local. 2. Na caixa de texto Path, insira a porta pela qual a mensagem sai do mdulo. 3. Digite o endereo do prximo mdulo pelo caminho at o destino. 4. Digite combinaes adicionais de portas e endereos, se necessrio. local_module,port,address,port,address
Onde: port Para: backplane de qualquer controlador ou mdulo 1756 Porta DF1 de um controlador Logix5000 a porta ControlNet de um mdulo 1756-CNB Porta Ethernet de um mdulo 1756-ENBx ou -ENET Porta DH+ em um canal A de um mdulo 1756-DHRIO Porta DH+ em um canal B de um mdulo 1756-DHRIO address backplane ControlLogix rede DF1 rede ControlNet rede DH+ 3 nmero do slot endereo da estao (0-254) nmero do n (1-99 decimal) 8# seguido pelo nmero do n (1-77 octal) Por exemplo, para especificar o endereo do n octal de 37, tipo 8#37. Voc pode especificar um mdulo em uma rede EtherNet/IP usando qualquer um destes formatos: endereo IP (ex.: 130.130.130.5) endereo IP:Porta (ex.: 130.130.130.5:24) nome DNS (ex.: tanks) nome DNS:Porta (ex.: tanks:24) : 1 2

Rede EtherNet/IP

Para mensagens block-transfer, adicione os seguintes mdulos configurao da E/S do controlador:


Para block-transfers nesta rede: ControlNet Remote I/O Adicione estes mdulos configurao da E/S: mdulo de comunicao local (ex.: mdulo 1756-CNB) mdulo adaptador remoto (ex.: mdulo 1771-ACN) mdulo de comunicao local (ex.: mdulo 1756-DHRIO) um mdulo adaptador remoto (ex.: mdulo 1771-ASB) para cada rack ou parte do rack no chassi mdulo block-transfer (opcional)

Publicao 1756-RM003F-PT-P - Maio 2002

3-24

Instrues de Entrada/Sada (MSG, GSV, SSV)

As pginas seguintes mostram exemplos de caminhos: na ControlNet, pgina 3-24 na EtherNet/IP, pgina 3-25 para uma mensagem DH+, pgina 3-25

EXEMPLO

Especificao de um caminho na ControlNet


I/O Configuration [0] 1756-CNB/x Local_CNB 2 [0] 1756-CNB/x chassis_b [3] 1756-L55/x peer_controller

Mensagem

rede ControlNet

42042

Percurso: peer_controller Onde: peer_controller o nome do controlador que recebe a mensagem.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-25

EXEMPLO

Especificao de um caminho na EtherNet/IP


I/O Configuration [1] 1756-ENBx Local_ENB

Mensagem

switch

Percurso: Local_ENB,2,127.127.127.12
Onde: Local_ENB 2 127.127.127.12 : nome do mdulo 1756-ENBx no chassi local porta da Ethernet do mdulo 1756-ENBx no chassi local endereo IP do controlador SLC 5/05

EXEMPLO

Especificao de um caminho na DH+


I/O Configuration [1] 1756-DHRIO Local_DHRIO

Mensagem

rede DH+

Percurso: Local_DHRIO Onde: Local_DHRIO o nome no mdulo 1756-DHRIO no mesmo chassi como o controlador que envia a mensagem.

Publicao 1756-RM003F-PT-P - Maio 2002

3-26

Instrues de Entrada/Sada (MSG, GSV, SSV)

Especificar um Mdulo de Comunicao ou Endereo do Mdulo:


Use a seguinte tabela para selecionar um mtodo de comunicao ou endereo de mdulo para a mensagem.
Se o dispositivo de destino for um: Ento selecione: Controlador Logix5000 Controlador CLP-5 na rede EtherNet/IP Controlador CLP-5 na rede ControlNet Controlador SLC 5/05 Controlador CLP-5 na rede DH+ Controlador SLC na rede DH+ DH+ Canal: Source Link: Canal A ou B do mdulo 1756-DHRIO que est conectado rede DH+ Identificao da rede atribuda ao backplane do controlador na tabela de roteamento do mdulo 1756-DHRIO. (O source node na tabela de roteamento corresponde automaticamente ao nmero do slot do controlador.) Identificao da rede DH+ remota onde o dispositivo alvo reside Endereo da estao do dispositivo alvo, em octal CIP E especifique: outras especificaes no so necessrias

Controlador CLP-3 Controlador CLP-2

Destination Link Destination Node:

Se houver somente um link DH+ e voc no usou o software RSLinx para configurar o mdulo DH/RIO para os links remotos, especifique 0 para o Source Link e para o Destination Link. Aplicao em uma estao de trabalho que est recebendo uma mensagem no solicitada encaminhada em uma rede EtherNet/IP ou ControlNet atravs do RSLinx CIP com Fonte de ID Source Link: ID remota do tpico no software RSLinx Destination Link virtual configurado em RSLinx (0-65535) Destination ID (0-77 octal) fornecido pela aplicao ao RSLinx. Para um tpico DDE em RSLinx, use 77. Destination Link: (Isto permite que a aplicao receba dados de um controlador.) Destination Node:

O nmero do slot do controlador ControlLogix usada como o N Fonte. mdulo block-transfer na rede remota RIO I/O Canal: Rack Group Slot mdulo de block-transfer em uma rede ControlNet ControlNet Slot Canal A ou B do mdulo 1756-DHRIO que est conectado rede RIO Nmero do rack (octal) do mdulo Nmero do grupo do mdulo Nmero do slot que o mdulo est Nmero do slot em que o mdulo est

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-27

Escolha de uma opo de cache:


Alguns tipos de mensagens usam uma conexo para enviar ou receber dados. Alguns possibilitam duas opes: deixar a conexo aberta (cache) ou fechar a conexo quando a transmisso da mensagem terminar. A tabela a seguir mostra quais mensagens usam uma conexo e se voc pode ou no copiar no cache a conexo:
Esse tipo de mensagem: Usando esse mtodo de comunicao: CIP CIP CIP com Source ID DH+ CIP generic leitura ou escrita em block-transfer
1 2

Usa uma conexo: 

Que voc pode colocar no cache: 

leitura ou escrita da tabela de dados CIP CLP2, CLP3, CLP5 ou SLC (todos os tipos)

 1 

 2 

N/A N/A

Somente certos tipos de mdulo alvo requisitam uma conexo.

Considere como cache somente se o mdulo alvo requisitar uma conexo. Use o seguinte procedimento para escolher uma opo de cache para uma mensagem que voc pode gravar em cache. 1. Sua lgica altera o caminho de uma mensagem? (ou seja, uma instruo MSG se comunica com mais de um dispositivo?)
Se: sim no Ento: A. Limpe a caixa de verificao Cache Connection . B. Pule a etapa 2. V para etapa 2.

Publicao 1756-RM003F-PT-P - Maio 2002

3-28

Instrues de Entrada/Sada (MSG, GSV, SSV)

2. Seleo de uma opo cache:


Se a mensagem for para um: controlador Ento: Para quantos controladores este controlador envia as mensagens para aquele que voc pode gravar em cache? Se: 16 ou menos controladores mais de 16 controladores Ento: Deixe a caixa verificao Cache Connection selecionada (marcada). 1. Selecione os 16 controladores que requisitem as mensagens mais freqentes. 2. A mensagem para um daqueles controladores? Se: sim no mdulo de block-transfer Ento: Deixe a caixa de verificao Cache Connection selecionada. Limpe a caixa de verificao Cache Connection .

Quantos dispositivos requerem as instrues block-transfer? Se: 16 ou menos dispositivos mais de 16 dispositivos Ento: Deixe a caixa verificao Cache Connection selecionada (verificada). 1. Selecione 16 dispositivos que requisitem as atualizaes mais recentes. 2. A mensagem para um daqueles dispositivos? Se: sim no Ento: Deixe a caixa de verificao Cache Connection selecionada. Limpe a caixa de verificao Cache Connection .

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-29

Obteno do Valor do Sistema (GSV) e Definio do Valor do Sistema (SSV)


Operandos:

As instrues GSV/SSV obtm e definem os dados do sistema do controlador que esto armazenados nos objetos.

Lgica Ladder

Operando: Class name Instance name Attribute Name Destination (GSV)

Tipo:

Formato: nome nome nome

Descrio: nome do objeto nome do objeto especfico, quando o objeto requisitar um nome atributo do objeto tipo dos dados dependem do atributo que voc seleciona destino para dados de atributo

SINT INT DINT REAL SINT INT DINT REAL

tag

Source (SSV)

tag

tag que contenha dados que voc quer copiar para o atributo

Texto Estruturado
GSV(ClassName,InstanceName,AttributeName,Dest); SSV(ClassName,InstanceName,AttributeName,Source);

Os operandos so os mesmos que aqueles para as instrues GSV e SSV.

Descrio: As instrues GSV/SSV obtm e definem os dados do sistema do


controlador que esto armazenados nos objetos. O controlador armazena os dados do sistema nos objetos. No h arquivo de status, como no controlador CLP-5. Quando habilitada, a instruo GSV recupera a informao especfica e a coloca no destino. Quando habilitada, a instruo SSV define o atributo especificado com os dados da fonte. Ao inserir uma instruo GSV/SSV, o software de programao exibe as classes vlidas de objeto, os nomes do objeto e os nomes de
Publicao 1756-RM003F-PT-P - Maio 2002

3-30

Instrues de Entrada/Sada (MSG, GSV, SSV)

atributo para cada instruo. Para a instruo GSV, voc pode obter valores para todos os atributos disponveis. Para a instruo SSV, o software exibe somente aqueles atributos, cuja configurao permitida Use as instrues GSV/SSV cuidadosamente. As alteraes realizadas nos objetos podem causar operao inesperada do controlador ou ferimentos pessoais.

ATENO

!
Flags de Status Aritmtico: no afetados Condies de Falha:

Se o tamanho da Fonte ou Destino for muito pequeno, a instruo no executa e uma falha de advertncia registrada. A seo a seguir, Objetos GSV/SSV , define os atributos de cada objeto e seus tipos de dados associados. Por exemplo, o atributo MajorFaultRecord do objeto Programa requer um tipo de dado DINT[11].

Uma falha de advertncia ocorrer se: endereo de objeto invlido objeto especificado que no suporta GSV/SSV atributo invlido informaes suficientes no foram fornecidas para uma instruo SSV o destino GSV no era grande o suficiente para suportar os dados requisitados.

Tipo de falha: 4 4 4 4 4

Cdigo de falha: 5 6 6 6 7

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado a instruo executa postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na Obtenha ou configure o valor especificado. A sada da condio da linha definida como falsa. Ao de Texto Estruturado: Nenhuma ao tomada. na na

EnableIn sempre energizado A instruo executa. Obtenha ou configure o valor especificado. Nenhuma ao tomada.

Objetos GSV/SSV

Ao inserir uma instruo 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 tambm possa

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-31

especificar o nome do objeto. Por exemplo, a sua aplicao pode ter vrias tarefas. Cada tarefa tem o seu prprio objeto TASK que acessado pelo nome da tarefa. Para a instruo GSV, somente o tamanho especificado do dado copiado para o destino. Por exemplo, se o atributo for especificado como um SINT e o destino um DINT, somente os 8 bits menos significativos do destino DINT so atualizados, sendo que os 24 bits restantes permanecem inalterados.

ATENO

!
AXIS CONTROLLER CONTROLLERDEVICE CST DF1 FAULTLOG MESSAGE MODULE MOTIONGROUP PROGRAM ROUTINE SERIALPORT TASK WALLCLOCKTIME

possvel acessar estes objetos:


Para informaes sobre este objeto: Consulte esta pgina ou a publicao: ControlLogix Motion Module Setup and Configuration Manual, publicao 1756-UM006 3-31 3-32 3-34 3-35 3-38 3-39 3-41 3-42 3-43 3-44 3-44 3-46 3-46

Acesso ao objeto CONTROLLER


O objeto CONTROLLER fornece as informaes de status sobre a execuo do controlador.
Atributo: TimeSlice Tipo de Dados: INT Instruo: GSV SSV Descrio: Porcentagem de CPU disponvel atribuda para a comunicao. Os valores vlidos so 10-90. Este valor no pode ser alterado quando a chave seletora de modo estiver posicionada em Run.

Publicao 1756-RM003F-PT-P - Maio 2002

3-32

Instrues de Entrada/Sada (MSG, GSV, SSV)

Acesso ao objeto CONTROLLERDEVICE


O objeto CONTROLLERDEVICE identifica o hardware do controlador.
Atributo: DeviceName Tipo de Dados: SINT[33] Instruo: GSV Descrio: String ASCII que identifica o cdigo de catlogo do controlador e placa de memria. O primeiro byte contm uma contagem do nmero de caracteres ASCII que retornaram na string do array. Identifica o tipo de controlador Este cdigo de produto: 3 15 41 42 43 50 51 ProductRev INT GSV Identifica este controlador Logix: 5550 5860 5433 5434 5320 5553 5555

ProductCode

INT

GSV

Identifica a reviso atual do produto. O display deve ser hexadecimal. O byte menos significativo contm a reviso principal; o byte mais significativo contm a reviso principal. Nmero serial do dispositivo. O nmero serial atribudo quando o dispositivo construdo.

SerialNumber

DINT

GSV

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-33

Atributo: Status

Tipo de Dados: INT

Instruo: GSV

Descrio: Os bits identificam o status: Os bits 3-0 so reservados Bits de Status do Dispositivo Bits 7-4: Significado: 0000 reservado 0001 atualizao flash em andamento 0010 reservado 0011 reservado 0100 flash est deficiente 0101 em falha 0110 operao 0111 programa Bits de Status de Falha Bits 11-8: Significado: 0001 falha de advertncia recupervel 0010 falha de advertncia no recupervel 0100 falha grave recupervel 1000 falha grave no recupervel Bits de Status Especficos do Logix5000 Bits 13-12: Significado: 01 chave seletora em Run 10 chave seletora em Program 11 chave seletora em Remote Bits 15-14: Significado: 01 controlador est alterando os modos 10 modo de depurao se o controlador estiver no modo Run

Type Vendor

INT INT

GSV GSV

Identifica o dispositivo como um controlador. Controlador = 14 Identifica o fornecedor do dispositivo. Allen-Bradley = 0001

Publicao 1756-RM003F-PT-P - Maio 2002

3-34

Instrues de Entrada/Sada (MSG, GSV, SSV)

Acesso ao objeto CST


O objeto CST (coordinated system time) fornece um tempo de sistema coordenado para os dispositivos em um chassi.
Atributo: CurrentStatus Tipo de Dados: INT Instruo: GSV Descrio: Status atual do tempo de sistema coordenado. Os bits identificam o status: Bit: 0 1 Significado: falha no hardware do temporizador: o hardware do temporizador interno do dispositivo est em falha rampa habilitada: o valor atual dos 16 bits menos significativos do temporizador aumentam em rampa at o valor requisitado, ao invs de permanecer no valor menor. Estes bits so manipulados pelo mtodo de sincronizao de seleo especfica da rede. mestre do tempo do sistema: o objeto CST uma fonte de tempo mestre no sistema ControlLogix sincronizado: o CurrentValue de 64 bits do objeto CST sincronizado por um objeto CST mestre atravs de uma atualizao de tempo do sistema. mestre da rede local: o objeto CST a fonte de tempo mestre da rede local modo do rel de entrada: o objeto CST est agindo em um modo de rel de tempo deteco de mestre duplicado: um mestre de tempo duplicado na rede local foi detectado. Este bit sempre 0 para os ns que dependem do tempo. no usado 00 = n que depende do tempo 01 = n do mestre de tempo 10 = n do rel de tempo 11 = no usado no usado

2 3

4 5 6

7 8-9

10-15 CurrentValue DINT[2] GSV

Valor atual do temporizador. DINT[0] contm os bits 32 menos significativos; DINT[1] contm os bits 32 mais significativos. A fonte do temporizador ajustada para corresponder ao valor fornecido nos servios de atualizao e da sincronizao da rede de comunicao local. O ajuste pode ser tanto um aumento em rampa at atingir o valor requisitado como uma configurao imediata no valor requisitado, conforme definido no atributo CurrentStatus.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-35

Acesso ao objeto DF1


O objeto DF1 fornece uma interface para o driver de comunicao DF1 que pode ser configurada para a porta serial.
Atributo: ACKTimeout := , Tipo de Dados: DINT Instruo: GSV Descrio: Quantidade de tempo que se espera para se reconhecer uma transmisso de mensagem (somente mestre e ponto-a-ponto) Valor vlido 0-32.767. Atraso nas contagens de perodos de 20 mseg. O valor inicial de 50 (1 segundo). Srie de contadores de diagnstico para o driver de comunicao DF1.

DiagnosticCounters offset da palavra 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DuplicateDetection

INT[19]

GSV

DF1 ponto-a-ponto DF1 escravo mestre assinatura (0x0043) assinatura (0x0042)assinatura (0x0044) bits do modem bits do modembits do modem pacotes enviados pacotes enviadospacotes enviados pacotes recebidos pacotes recebidospacotes recebidos pacotes no entregues pacotes no entreguespacotes no entregues no usado tentativas de mensagenstentativas de mensagens NAKs recebidos NAKs recebidosno usado ENQs recebidos poll de pacotes recebidosno usado pacotes NAKed defeituosospacotes not ACKed defeituosospacotes no ACKed defeituosos nenhuma memria enviou um NAKnenhuma memria no ACKedno usado pacotes duplicados recebidospacotes duplicados recebidospacotes duplicados recebidos caracteres defeituosos recebidosno usadono usado contagem de recuperaes DCDcontagem de recuperaes DCDcontagem de recuperaes DCD contagem de modem perdidacontagem de modem perdidacontagem de modem perdida no usado no usado prioridade do tempo mximo de scan no usado no usado ltima prioridade do tempo de scan no usado no usado tempo de scan normal mximo no usado no usado ltimo tempo normal de scan ENQs enviados no usado no usado SINT GSV Habilita a deteco de mensagem duplicada. Valor: Significado: 0 deteco de mensagem duplicada desabilitada diferente de zero deteco de mensagem duplicada desabilitada Habilita funcionalidade de resposta incorporada (somente ponto-a-ponto). Valor: Significado: 0 iniciado somente depois que um recebido (padro) 1 habilitado incondicionalmente O nmero de pedidos (ENQs) a serem enviados aps um timeout ACK (somente ponto-a-ponto). Valor vlido 0-127. Ajuste inicial 3. Habilita a supresso de transmisses EOT em resposta ao poll de pacotes (somente escravo). Valor: Significado: 0 supresso de EOT desabilitada (desabilitado) diferente de zero supresso de EOT habilitada Especifica o esquema de deteco de erro. Valor: Significado: 0 BCC (padro) 1 CRC

EmbeddedResponseEnable

SINT

GSV

ENQTransmitLimit

SINT

GSV

EOTSuppression

SINT

GSV

ErrorDetection

SINT

GSV

Publicao 1756-RM003F-PT-P - Maio 2002

3-36

Instrues de Entrada/Sada (MSG, GSV, SSV)

Atributo: MasterMessageTransmit

Tipo de Dados: SINT

Instruo: GSV

Descrio: Valor atual da transmisso de mensagem mestre (somente mestre). Valor: Significado: 0 entre os polls da estao 1 na seqncia do poll (no lugar do nmero da estao do mestre) Valor inicial 0. O nmero de NAKs recebidos em resposta a uma mensagem antes da interrupo da transmisso (somente comunicao ponto-a-ponto). Valor vlido 0-127. Ajuste inicial 3. Nmero de estaes para ser distribudo no array normal de ns do poll, depois de realizar um polling de todas as estaes no array de ns de polling de prioridade (somente mestre). Valor vlido 0-255. Valor inicial 0. Modo de polling atual (somente mestre). Valor: Significado: 0 baseado em mensagem, mas no permite escravos para iniciar as mensagens 1 baseado em mensagens, mas permite escravos para iniciar as mensagens (padro) 2 transferncia padro de uma nica mensagem por scan do n 3 transferncia padro de vrias mensagens por scan do n O valor inicial 1. O tempo (atuando como mestre) para esperar o recebimento de um ACK antes de realizar um polling do escravo para uma resposta (somente mestre). Valor vlido 0-65.535. Atraso nas contagens de perodos de 20 ms. O valor inicial de 5 perodos (100 ms). Endereo atual da estao da porta serial. Valor vlido 0-254. O valor inicial 0. A quantidade de tempo em mseg que o escravo espera pelo mestre para realizar um polling, antes que o escravo declare que no tem condies de transmitir porque o mestre est inativo (somente escravo). Valor vlido 0-32.767. Atraso nas contagens de perodos de 20 ms. O valor inicial de 3000 perodos (1 minuto). Nmero de vezes para reenviar uma mensagem sem obter um reconhecimento (somente mestre e escravo) Valor vlido 0-127. Ajuste inicial 3. Valor pendente para o atributo ACKTimeout. Valor pendente para o atributo DuplicateDetection. Valor pendente para o atributo EmbeddedResponse. Valor pendente para o atributo ENQTransmitLimit. Valor pendente para o atributo EOTSuppression. Valor pendente para o atributo ErrorDetection. Valor pendente para o atributo NormalPollGroupSize. Valor pendente para o atributo MasterMessageTransmit.

NAKReceiveLimit

SINT

GSV

NormalPollGroupSize

INT

GSV

PollingMode

SINT

GSV

ReplyMessageWait

DINT

GSV

StationAddress SlavePollTimeout

INT DINT

GSV GSV

TransmitRetries

SINT

GSV

PendingACKTimeout PendingDuplicateDetection PendingEmbeddedResponse Enable PendingENQTransmitLimit PendingEOTSuppression PendingErrorDetection PendingNormalPollGroupSize PendingMasterMessage Transmit

DINT SINT SINT SINT SINT SINT INT SINT

SSV SSV SSV SSV SSV SSV SSV SSV

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-37

Atributo: PendingNAKReceiveLimit PendingPollingMode PendingReplyMessageWait PendingStationAddress PendingSlavePollTimeout PendingTransmitRetries

Tipo de Dados: SINT SINT DINT INT DINT SINT

Instruo: SSV SSV SSV SSV SSV SSV

Descrio: Valor pendente para o atributo NAKReceiveLimit. Valor pendente para o atributo PollingMode . Valor pendente para o atributo ReplyMessageWait. Valor pendente para o atributo StationAddress. Valor pendente para o atributo SlavePollTimeout. Valor pendente para o atributo TransmitRetries.

Para aplicar os valores para qualquer um dos atributos pendentes de DF1: 1. Use uma instruo SSV para definir o valor para o atributo pendente. possvel definir a quantidade de atributos que desejar, usando uma instruo SSV para cada atributo pendente. 2. Use uma instruo MSG para aplicar o valor. A instruo MSG se aplica a todos atributos pendentes configurados. Configure a instruo MSG da seguinte forma:
Guia MSG Configuration: Configuration Campo: Message Type Service Code Object Type Object ID Object Attribute Source Number of Elements Destination Communication Path Valor: CIP Generic 0d hex a2 1 deixe em branco deixe em branco 0 deixe em branco percurso de comunicao automtico ( 1,s onde s = nmero do slot do controlador)

Publicao 1756-RM003F-PT-P - Maio 2002

3-38

Instrues de Entrada/Sada (MSG, GSV, SSV)

Acesso ao objeto FAULTLOG


O objeto FAULTLOG fornece informaes de falha sobre o controlador.
Atributo: MajorEvents MinorEvents MajorFaultBits Tipo de Dados: INT INT DINT Instruo: GSV SSV GSV SSV GSV SSV Descrio: Quantas falhas graves ocorreram desde a ltima vez que este contador foi resetado. Quantas falhas de advertncia ocorreram desde a ltima vez que este contador foi resetado. Os bits individuais indicam o motivo da falha grave atual. Bit: Significado: 1 perda de alimentao 3 E/S 4 execuo da instruo (programa) 5 rotina de falhas 6 watchdog 7 stack 8 alterao de modo 11 movimento Os bits individuais indicam o motivo da falha de advertncia atual. Bit: Significado: 4 execuo da instruo (programa) 6 watchdog 9 porta serial 10 bateria

MinorFaultBits

DINT

GSV SSV

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-39

Acesso ao objeto MESSAGE


possvel acessar o objeto MESSAGE atravs das instrues GSV/SSV. Especifique o nome do tag da mensagem para determinar qual objeto MESSAGE voc quer. O objeto MESSAGE fornece uma interface para configurao e disparo das comunicaes peer-to-peer. Este objeto substitui o tipo de dados MG do controlador CLP-5.
Atributo: ConnectionPath Tipo de Dados: SINT[130] Instruo: GSV SSV GSV SSV GSV SSV GSV SSV Descrio: Dados para configurao do percurso de conexo. Os primeiros dois bytes (byte desenergizado e byte energizado) so o comprimento em bytes do percurso de conexo. Taxa (velocidade) requisitada para o pacote da conexo. Especifica o tipo de mensagem. Valor: Significado: 0 no inicializado Indica por qual porta a mensagem deve ser enviada. Valor: Significado: 1 backplane 2 porta serial Determina o trmino da temporizao de uma conexo e quando deve ser fechada. Valor: Significado: 0 conexo interromper o timeout em 4 vezes a taxa de atualizao padro) 1 conexo interromper o timeout em 8 vezes a taxa de atualizao 2 conexo interromper o timeout em 16 vezes a taxa de atualizao Timeout em microssegundos para todas as mensagens no conectadas. O valor inicial de 30.000.000 microssegundos (30 segundos).

ConnectionRate MessageType

DINT SINT

Port

SINT

TimeoutMultiplier

SINT

GSV SSV

UnconnectedTimeout

DINT

GSV SSV

Para alterar o atributo MESSAGE, siga essas etapas: 1. Use uma instruo GSV para obter o atributo MessageType e salv-lo em um tag. 2. Use uma instruo SSV para configurar MessageType em 0. 3. Use uma instruo SSV para configurar um atributo MESSAGE que voc deseja alterar. 4. Use uma instruo SSV para configurar o atributo MessageType no valor original novamente obtido na etapa 1.

Exemplo: O seguinte exemplo a seguir muda o atributo ConnectionPath, de


forma que a mensagem v para um controlador diferente.Quando msg_path estiver energizado, configure o caminho da mensagem

Publicao 1756-RM003F-PT-P - Maio 2002

3-40

Instrues de Entrada/Sada (MSG, GSV, SSV)

msg_1 para o valor de msg_1_path. Isto envia a mensagem para um controlador diferente.
Onde: msg_1 msg_1_type tag_a msg_1_path : mensagem cujo atributo voc quer alterar tag que armazena o valor do atributo MessageType tag que armazena um 0. tag do array que armazena o novo caminho da conexo para mensagem

Lgica Ladder

msg_path 0

GSV Get System Value Class name MESSAGE Instance name msg_1 Attribute Name MessageType Dest msg_1_type 2

SSV Set System Value Class name MESSAGE Instance name msg_1 Attribute Name MessageType Source tag_a 0

SSV Set System Value Class name MESSAGE Instance name msg_1 Attribute Name ConnectionPath Source msg_1_path[0] 6

SSV Set System Value Class name MESSAGE Instance name msg_1 Attribute Name MessageType Source msg_1_type 2

msg_1.EN /

MSG Type - CIP Data Table Write Message Control msg_1 ...

EN DN ER

Texto Estruturado
IF msg_path THEN GSV(MESSAGE,msg_1,MessageType,msg_1_type); SSV(MESSAGE,msg_1,MessageType,tag_a); SSV(MESSAGE,msg_1,ConnectionPath,msg_1_path[0]); SSV(MESSAGE,msg_1,MessageType,msg_1_type); END_IF; IF NOT msg_1.EN THEN MSG(msg_1); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-41

Acesso ao objeto MODULE


O objeto MODULE fornece as informaes de status sobre um mdulo. Para selecionar um determinado objeto MODULE, configure o operando Object Name da instruo GSV/SSV no nome do mdulo. O mdulo especificado deve estar presente na seo I/O Configuration do organizador do controlador e deve ter um nome de dispositivo.
Atributo: EntryStatus Tipo de Dados: INT Instruo: GSV Descrio: Especifica o estado atual da entrada do mapa especificado. Os 12 bits menos significativos devem ser filtrados pela mscara na execuo de uma operao de comparao. Somente os bits de 12 a 15 so vlidos. Valor: Significado: 16#0000 Standby: o controlador est energizando. 16#1000 Em Falha: quaisquer uma das conexes do objeto MODULE com a falha do mdulo associado. Este valor no deve ser usado para determinar se o mdulo apresentou falha porque o objeto MODULE sai deste estado periodicamente ao tentar reconectar-se ao mdulo. Ao invs disso, verifique Running state (16#4000). Verifique se FaultCode no igual a 0 para determinar se um mdulo apresenta falha. Quando estiver na condio de Falha (Faulted), os atributos FaultCode e FaultInfo so vlidos at que a condio de falha seja corrigida. 16#2000 Validao: o objeto MODULE est verificando a integridade do objeto MODULE antes de estabelecer as conexes para o mdulo. 16#3000 Conexo: o objeto MODULE est iniciando as conexes para o mdulo. 16#4000 Em Operao: todas as conexes com o mdulo so estabelecidas e os dados so transferidos com sucesso. 16#5000 Desligamento: o objeto MODULE est no processo de desligar todas as conexes para o mdulo. 16#6000 Inibido: o objeto MODULE est inibido (o bit inibido no atributo Mode est energizado). 16#7000 Na Espera: o objeto-pai MODULE do qual este objeto MODULE depende no est em operao. Nmero que identifica uma falha no mdulo, em caso de ocorrncia. Fornece informaes especficas sobre o cdigo de falha do objeto MODULE. Especifica o status dos pontos forados. Bit: Significado: 0 pontos forados instalados (1=sim, 0-no) 1 pontos forados habilitados (1=sim, 0=no) 2-15 no usado

FaultCode FaultInfo ForceStatus

INT DINT INT

GSV GSV GSV

Publicao 1756-RM003F-PT-P - Maio 2002

3-42

Instrues de Entrada/Sada (MSG, GSV, SSV)

Atributo: Instance LEDStatus

Tipo de Dados: DINT INT

Instruo: GSV GSV

Descrio: Fornece o nmero de instncia deste objeto MODULE. Especifica o estado atual do LED de E/S localizado na parte frontal do controlador. Valor: Significado: 0 LED desligado: Nenhum objeto MODULE foi configurado para o controlador (no h mdulos na seo I/O Configuration do organizador do controlador). 1 Vermelho piscando: Nenhum dos objetos MODULE est em operao. 2 Verde piscando: Pelo menos um objeto MODULE no est em operao. 3 Verde permanente: Todos os objetos MODULE esto em operao. Nota: No possvel inserir um nome de objeto com este atributo porque este atributo se aplica a todo o conjunto de mdulos. Especifica o modo atual do objeto MODULE. Bit: Significado: 0 Se configurado, causa uma falha grave se uma das conexes do objeto MODULE apresentar falha enquanto o controlador estiver no modo de operao. 2 Se configurado, faz com que o objeto MODULE seja introduzido no estado Inibido depois de desligar todas as conexes do mdulo.

Mode

INT

GSV SSV

Acesso ao objeto MOTIONGROUP


O objeto MOTIONGROUP fornece as informaes de status sobre um grupo de eixos para o servo mdulo. Especifique o nome do tag do grupo de posicionamento (motion) para determinar qual objeto MOTIONGROUP voc quer.
Atributo: Instance Tipo de Dados: DINT Instruo: GSV Descrio: Fornece o nmero de exemplo deste objeto MOTION_GROUP.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-43

Acesso ao objeto PROGRAM


O objeto PROGRAM fornece as informaes de status sobre um programa. Especifique o nome do programa para determinar qual objeto PROGRAM voc quer.
Atributo: DisableFlag Tipo de Dados: SINT Instruo: GSV SSV Descrio: Controla essa execuo do programa. Valor: Significado: 0 execuo habilitada 1 execuo desabilitada Fornece o nmero de instncia deste objeto PROGRAM. Tempo que a execuo do programa demorou da ltima vez. O tempo est em microssegundos. Registra as falhas graves para este programa Recomendamos que voc crie uma estrutura definida pelo usurio para simplificar o acesso ao atributo MajorFaultRecord: Descrio: 32 bits menos significativos de valor de registro de data e hora da falha 32 bits mais significativos de valor de registro de data e hora da falha tipo de falha (programa, E/S etc.) cdigo exclusivo para a falha (depende do tipo de falha) informao especfica sobre a falha (depende do tipo e do cdigo de falha) Tempo mximo de execuo registrado para este programa. O tempo est em microssegundos. Registra as falhas de advertncia para este programa Recomendamos que voc crie uma estrutura definida pelo usurio para simplificar o acesso ao atributo MinorFaultRecord: Descrio: 32 bits menos significativos de valor de registro de data e hora da falha 32 bits mais significativos de valor de registro de data e hora da falha tipo de falha (programa, E/S etc.) cdigo exclusivo para a falha (depende do tipo de falha) informaes especficas sobre a falha (depende do tipo e do cdigo de falha) no usado - reservado para uso futuro

Instance LastScanTime MajorFaultRecord

DINT DINT DINT[11]

GSV GSV SSV GSV SSV Estilo: Decimal Decimal Decimal Decimal Hexadecimal GSV SSV GSV SSV Estilo: Decimal Decimal Decimal Decimal Hexadecimal GSV SSV

Nome TimeLow TimeHIgh Type Code Info MaxScanTime MinorFaultRecord

Tipo de Dados: DINT DINT INT INT DINT[8] DINT DINT[11]

Nome TimeLow TimeHIgh Type Code Info SFCRestart

Tipo de Dados: DINT DINT INT INT DINT[8] INT

Publicao 1756-RM003F-PT-P - Maio 2002

3-44

Instrues de Entrada/Sada (MSG, GSV, SSV)

Acesso ao objeto ROUTINE


O objeto ROUTINE fornece as informaes de status sobre uma rotina. Especifique o nome da rotina para determinar qual objeto ROUTINE voc quer.
Atributo: Instance Tipo de Dados: DINT Instruo: GSV Descrio: Fornece o nmero de instncia deste objeto ROUTINE. Valores vlidos so 0-65.535.

Acesso ao objeto SERIALPORT


O objeto SERIALPORT fornece uma interface com a porta de comunicao serial.
Atributo: BaudRate Tipo de Dados: DINT Instruo: GSV Descrio: Especifica a taxa de transmisso. Os valores vlidos so 110, 300, 600, 1200, 2400, 4800, 9600 e 19200 (padro). Especifica o nmero de bits de dados por caracter. Valor: Significado: 7 7 bits de dados (somente ASCII) 8 8 bits de dados (padro) Especifica a paridade. Valor: Significado: 0 sem paridade (sem padro) 1 paridade mpar (somente ASCII) 2 paridade par Quantidade de tempo para retardar o desligamento da linha RTS depois da transmisso do ltimo caracter. Valor vlido 0-32.767. Atraso nas contagens de perodos de 20 ms. O valor inicial 0 ms. Quantidade de tempo para retardar a transmisso do primeiro caracter de uma mensagem depois de se energizar a linha RTS. Valor vlido 0-32.767. Atraso nas contagens de perodos de 20 ms. O valor inicial 0 ms. Especifica o nmero de bits de parada. Valor: Significado: 1 1 bit de parada (padro) 2 2 bits de parada (somente ASCII) Valor pendente para o atributo BaudRate. Valor pendente para o atributo DataBits. Valor pendente para o atributo Parity. Valor pendente para o atributo RTSOffDelay. Valor pendente para o atributo RTSSendDelay. Valor pendente para o atributo StopBits.

DataBits

SINT

GSV

Paridade

SINT

GSV

RTSOffDelay

INT

GSV

RTSSendDelay

INT

GSV

StopBits

SINT

GSV

PendingBaudRate PendingDataBits PendingParity PendingRTSOffDelay PendingRTSSendDelay PendingStopBits

DINT SINT SINT INT INT SINT

SSV SSV SSV SSV SSV SSV

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-45

Para aplicar os valores para qualquer um dos atributos pendentes SERIALPORT: 1. Use uma instruo SSV para definir o valor para o atributo pendente. possvel definir a quantidade de atributos que desejar, usando uma instruo SSV para cada atributo pendente. 2. Use uma instruo MSG para aplicar o valor. A instruo MSG se aplica para cada atributo pendente configurado. Configure as instrues MSG da seguinte forma:
Guia MSG Configuration: Configuration Campo: Message Type Service Code Object Type Object ID Object Attribute Source Number of Elements Destination Communication Path Valor: CIP Generic 0d hex 6f hex 1 deixe em branco deixe em branco 0 deixe em branco percurso de comunicao automtico (1,s onde s = nmero do slot do controlador)

Publicao 1756-RM003F-PT-P - Maio 2002

3-46

Instrues de Entrada/Sada (MSG, GSV, SSV)

Acesso ao objeto TASK


O objeto TASK fornece as informaes de status sobre uma tarefa. Especifique o nome do programa para determinar qual objeto TASK voc quer.
Atributo: Instance LastScanTime MaxInterval Tipo de Dados: DINT DINT DINT[2] Instruo: GSV GSV SSV GSV SSV Descrio: Fornece o nmero de instncia deste objeto TASK. Valores vlidos so 0-31. Tempo que a execuo desta tarefa demorou da ltima vez. O tempo est em microssegundos. O tempo mximo de intervalo entre as execues sucessivas da tarefa. DINT[0] contm os bits 32 menos significativos do valor; DINT[1] contm os bits 32 mais significativos do valor; Um valor de 0 indica 1 ou menos execues da tarefa. Tempo mximo de execuo registrado para este programa. O tempo est em microssegundos. O tempo mnimo de intervalo entre as execues sucessivas da tarefa. DINT[0] contm os bits 32 menos significativos do valor; DINT[1] contm os bits 32 mais significativos do valor; Um valor de 0 indica 1 ou menos execues da tarefa. Prioridade relativa dessa tarefa comparada com outras tarefas. Valores vlidos so 0-15. O intervalo de tempo entre as execues sucessivas da tarefa. O tempo est em microssegundos. O valor de WALLCLOCKTIME quando a ltima execuo da tarefa foi iniciada. DINT[0] contm os bits 32 menos significativos do valor; DINT[1] contm os 32 bits 32 mais significativos do valor; Limite de tempo para a execuo de todos os programas associados a essa tarefa. O tempo est em microssegundos. Se voc inserir 0, estes valores sero atribudos: Tempo: Tipo de Tarefa: 0,5 s peridico 5,0 s contnuo

MaxScanTime MinInterval

DINT DINT[2]

GSV SSV GSV SSV

Priority Rate StartTime

INT DINT DINT[2]

GSV GSV GSV SSV GSV SSV

Watchdog

DINT

Acesso ao objeto WALLCLOCKTIME


O objeto WALLCLOCKTIME fornece um registro de data e hora que o controlador pode usar para programao.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-47

Atributo: CSTOffset

Tipo de Dados: DINT[2]

Instruo: GSV SSV

Descrio: Desvio positivo do CurrentValue do objeto CST (tempo do sistema coordenado, consulte a pgina 3-34). DINT[0] contm os 32 bits menos significativos do valor; DINT[1] contm os 32 bits mais significativos do valor; Valor em segundos. O valor inicial 0. O valor atual de WALLCLOCKTIME. DINT[0] contm os 32 bits menos significativos do valor; DINT[1] contm os 32 bits mais significativos do valor; O valor a quantidade de microssegundos que decorreram desde 0000 hs 1 janeiro de 1972. Os objetos CST e WALLCLOCKTIME so relacionados matematicamente no controlador. Por exemplo, se voc acrescentar CST CurrentValue e WALLCLOCKTIME CTSOffset, ter como resultado WALLCLOCKTIME CurrentValue. Data e hora em formato que possibilita a leitura. DINT[0] ano DINT[1] representao do ms atravs de inteiros (1-12) DINT[2] representao do dia atravs de inteiros (1-31) DINT[3] hora (0-23) DINT[4] minuto (0-59) DINT[5] segundos (0-59) DINT[6] microssegundos (0-999.999)

CurrentValue

DINT[2]

GSV SSV

DateTime

DINT[7]

GSV SSV

Publicao 1756-RM003F-PT-P - Maio 2002

3-48

Instrues de Entrada/Sada (MSG, GSV, SSV)

Exemplo de Programao GSV/SSV

Obteno de informaes de falha


Os exemplos a seguir usam as instrues GSV para obter informaes de falha.

Exemplo 1: Neste exemplo, as informaes de falha do mdulo de E/S so obtidas


em disc_in_2 e colocadas nos dados em uma estrutura definida pelo usurio em disc_in_2_info.

Lgica Ladder

Texto Estruturado
GSV(MODULE,disc_in_2,FaultCode,disc_in_2_info.FaultCode); GSV(MODULE,disc_in_2,FaultInfo,disc_in_2_info.FaultInfo); GSV(MODULE,disc_in_2,Mode,disc_in_2info.Mode);

Exemplo 2: Neste exemplo, as informaes de status so obtidas sobre o


programa discrete e colocadas nos dados em uma estrutura definida pelo usurio em discrete_info.

Lgica Ladder

Texto Estruturado
GSV(PROGRAM,DISCRETE,LASTSCANTIME, discrete_info.LastScanTime); GSV(PROGRAM,DISCRETE,MAXSCANTIME,discrete_info.MaxScanTime);

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Entrada/Sada (MSG, GSV, SSV)

3-49

Exemplo 3: Neste exemplo, as informaes de status so obtidas sobre a tarefa


IO_test e colocadas nos dados em uma estrutura definida pelo usurio em io_test_info.

Lgica Ladder

Texto Estruturado
GSV(TASK,IO_TEST,LASTSCANTIME,io_test_info.LastScanTime); GSV(TASK,IO_TEST,MAXSCANTIME,io_test_info.MaxScanTime); GSV(TASK,IO_TEST,WATCHDOG,io_test_info.WatchDog);

Configurao de flags de habilitao e desabilitao


O exemplo a seguir usa a instruo SSV para habilitar ou desabilitar um programa. possvel tambm, utilizar este mtodo para habilitar ou desabilitar um mdulo E/S, o que similar utilizao de bits inibidos em um controlador CLP-5.

Exemplo: Com base no status de SW.1, coloque o valor apropriado no atributo


disableflag do programa discrete.

Lgica Ladder

Publicao 1756-RM003F-PT-P - Maio 2002

3-50

Instrues de Entrada/Sada (MSG, GSV, SSV)

Texto Estruturado
IF SW.1 THEN discrete_prog_flag := enable_prog; ELSE discrete_prog_flag := disable_prog; END_IF; SSV(PROGRAM,DISCRETE,DISABLEFLAG,discrete_prog_flag);

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

Instrues de Comparao
(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Introduo
Se voc quiser:

As instrues de comparao permitem a comparao de valores atravs do uso de uma expresso ou uma instruo de comparao especfica.
Use esta instruo: CMP EQU Disponvel nestas linguagens: lgica ladder texto estruturado(1) lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado(1) bloco de funes lgica ladder texto estruturado(1) bloco de funes lgica ladder texto estruturado(1) bloco de funes lgica ladder texto estruturado(1) bloco de funes lgica ladder bloco de funes texto estruturado(1) lgica ladder bloco de funes texto estruturado(1) lgica ladder texto estruturado(1) bloco de funes Consulte a pgina: 4-2 4-7

comparar valores com base em uma expresso testar se dois valores so iguais

testar se um valor maior ou igual a um segundo valor

GEQ

4-10

testar se um valor maior que um segundo valor

GRT

4-14

testar se um valor menor ou igual a um segundo valor

LEQ

4-18

testar se um valor menor que um segundo valor

LES

4-22

testar se um valor est entre outros dois valores

LIM

4-26

passar dois valores por uma mscara e testar se so iguais MEQ

4-32

testar se um valor diferente a um segundo valor

NEQ

4-37

(1) (2)

No h instruo de texto estruturado equivalente. Use outra programao de texto estruturado para obter o mesmo resultado. Consulte a descrio da instruo. No h instruo de texto estruturado equivalente. Use o operador em uma expresso.

Voc pode comparar valores de diferentes tipos de dados como, por exemplo, ponto flutuante e inteiro. Para instrues de lgica ladder, os tipos de dados em negrito indicam tipos de dados timos. Uma instruo executa mais rapidamente e requer menos memria, se todos os operandos da instruo usarem o mesmo tipo de dados timos, geralmente DINT ou REAL.

Publicao 1756-RM003F-PT-P - Maio 2002

4-2

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Comparao (CMP)
Operandos:

A instruo CMP realiza uma comparao nas operaes aritmticas especificadas na expresso.

Lgica Ladder
Operando: Expression Tipo: SINT INT DINT REAL string Formato: imediato tag Descrio: uma expresso composta por tags e/ou valores imediatos separados por operadores

Um tag SINT ou INT converte em um valor DINT pela extenso de sinal.

Texto Estruturado
O texto estruturado no tem um a instruo CMP, mas voc pode obter o mesmo resultado usando uma construo e expresso IF...THEN.
IF BOOL_expression THEN <statement>; END_IF;

Consulte o Apndice C para informaes de sintaxe de atribuies e expresses em textos estruturados.

Descrio: Define a expresso CMP usando operadores, tags e valores imediatos.


Use parnteses ( ) para definir as sees das expresses mais complexas. A execuo de uma instruo CMP um pouco mais lenta e usa mais memria que a execuo de outras instrues de comparao. A vantagem da instruo CMP que a mesma permite a insero de expresses complexas em uma instruo.

Flags de Status Aritmtico: A instruo CMP afeta apenas os flags de status aritmtico se a
expresso contiver um operador (ex: +, , *, /) que os afete.

Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-3

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

a expresso verdadeira avaliar a expresso

sada da condio da linha definida como verdadeira

a expresso falsa

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Exemplos: Se a instruo CMP encontrar a expresso verdadeira, a sada da


condio da linha ser verdadeira.

Caso uma expresso seja inserida sem um operador de comparao como, por exemplo, value_1 + value_2 ou value_1, a instruo avaliar a expresso como:
Se a expresso: diferente de zero zero A sada da condio da linha definida em: verdadeira falsa

Publicao 1756-RM003F-PT-P - Maio 2002

4-4

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Expresses CMP
As expresses das instrues CMP so programadas da mesma forma que as expresses nas instrues FSC. Use as sees a seguir para mais informaes sobre operadores vlidos, formato e seqncia de operao que so comuns nas duas instrues.

Operadores vlidos
Operador: + * / = < <= > <= <> ** ABS ACS AND ASN ATN COS Descrio: adio subtrao/negativo multiplicao diviso igual menor que menor ou igual a maior que maior ou igual a diferente de expoente (x elevado a y) valor absoluto arcos co-seno AND arco seno arco tangente co-seno DINT timo: DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL Operador: DEG FRD LN LOG MOD NOT OR RAD SIN SQR TAN TOD TRN XOR Descrio: radianos em graus BCD para inteiro log neperiano log base 10 mdulo complementao OR graus em radianos seno raiz quadrada tangente inteiro para BCD trancar XOR timo: DINT, REAL DINT REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

Formatao de expresses
Para cada operador utilizador, voc deve fornecer um ou dois operandos (tags ou valores imediatos). Use a tabela a seguir para formatar os operadores e os operandos em uma expresso:
Para operadores que operam em: um operando dois operandos Use este formato: operator(operand) operand_a operator operand_b Exemplos: ABS(tag_a) tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g)

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-5

Determinao da seqncia da operao


As operaes que voc escreve na expresso so executadas pela instruo na seqncia prescrita e no, necessariamente, na ordem que voc as escreveu. possvel suprimir a seqncia da operao agrupando-se os termos dentro de parnteses, forando a instruo para realizar uma operao dentro dos parnteses, antes de outras operaes. As operaes com a mesma seqncia so executadas da esquerda para a direita.
Seqncia: Operao: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (negativo), NOT *, /, MOD <, <=, >, >=, = (subtrao), + AND XOR OR

Uso de strings em uma expresso


Use uma expresso em lgica ladder ou em texto estruturado para comparar os tipos de dados da string. Para usar strings em uma expresso, siga estas orientaes: Uma expresso permite que voc compare dois tags da string. Voc no pode inserir caracteres ASCII em uma expresso diretamente. Somente os operadores a seguir so permitidos
Operador: = < <= > >= <> Descrio: igual menor que menor ou igual a maior que maior ou igual a diferente de

Publicao 1756-RM003F-PT-P - Maio 2002

4-6

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

As strings so iguais se os caracteres corresponderem. Os caracteres ASCII so sensveis ao contexto. A letra A ($41) maiscula no igual letra "a" minscula ($61). Os valores hexadecimais dos caracteres determinam se um string menor ou maior que outro. Para o cdigo hexadecimal de caractere, consulte a parte de trs deste manual. Quando duas strings so classificadas em um diretrio de telefones, a seqncia das strings determina qual maior
Caracteres ASCII 1ab
m e n or q u e m ai or q u e

Cdigos Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b a AB B a ab

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-7

Igual (EQU)
Operandos:

A instruo EQU testa se Source A igual a Source B.

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL string SINT INT DINT REAL string Formato: imediato tag Descrio: valor a ser testado em relao Source B

Source B

imediato tag

valor a ser testado em relao Source A

Se voc inserir um tag SINT ou INT, o valor converte em um valor DINT pelo sinal de extenso. Valores REAL raramente so absolutamente iguais. Caso seja necessrio determinar a igualdade de dois valores do tipo REAL, use a instruo LIM. Os tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Para testar os caracteres de uma string, insira um tag da string para Source A e Source B.

Texto Estruturado
IF sourceA = sourceB THEN <statements>;

Use um sinal igual = como um operador em uma expresso. Esta expresso avalia se sourceA igual a sourceB. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: EQU tag Tipo: FBD_COMPARE Formato: estrutura Descrio: estrutura EQU

Publicao 1756-RM003F-PT-P - Maio 2002

4-8

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

estrutura FBD_COMPARE
Parmetro de Entrada: Tipo de Dados: Descrio: EnableIn BOOL Habilita entrada. Se desenergizada, a instruo no executada e as sadas no so atualizadas. Valor inicial est energizado Valor para comparar com SourceB. Vlido = qualquer flutuante Valor para comparar com SourceA. Vlido = qualquer flutuante A instruo produziu um resultado vlido. Resultado da instruo. Isto equivale sada da condio da linha da instruo EQU da lgica ladder.

SourceA SourceB Parmetro de Sada: EnableOut Dest

REAL REAL

Tipo de Dados: Descrio: BOOL BOOL

Descrio: Use a instruo EQU para comparar dois nmeros ou duas strings de
caracteres ASCII. Quando comparar strings: As strings so iguais se os caracteres corresponderem. Os caracteres ASCII so sensveis ao contexto. O "A" maisculo ($41) no igual ao "a" minsculo ($61).

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

Source A = Source B;

sim

sada da condio da linha definida como verdadeira

no

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-9

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Se value_1 for igual a value_2, energize light_a. Se value_1 no for


igual a value_2, desligue light_a.

Lgica Ladder

Texto Estruturado
light_a := (value_1 = value_2);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

4-10

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Maior ou Igual a (GEQ)


Operandos:

A instruo GEQ testa se Source A maior ou igual a Source B.

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL string SINT INT DINT REAL string Formato: imediato tag Descrio: valor a ser testado em relao a Source B

Source B

imediato tag

valor a ser testado em relao a Source A

Se voc inserir um tag SINT ou INT, o valor converte a um valor DINT pelo sinal de extenso. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Para testar os caracteres de uma string, insira um tag da string para Source A e Source B.

Texto Estruturado
IF sourceA >= sourceB THEN <statements>;

Use sinais 'maior que', adjacentes e iguais >= como operador em uma expresso. Esta expresso avalia se sourceA maior ou igual a sourceB. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: GEQ tag Tipo: FBD_COMPARE Formato: estrutura Descrio: estrutura GEQ

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-11

Estrutura FBD_COMPARE
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita a entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial est energizado Valor para comparar a SourceB. Vlido = qualquer flutuante Valor para comparar a SourceA. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Isto equivalente sada da condio da linha para a instruo GEQ da lgica ladder.

SourceA SourceB Parmetro de Sada: EnableOut Dest

REAL REAL Tipo de Dados: BOOL BOOL

Descrio: A instruo GEQ testa se Source A maior ou igual a Source B.


Quando comparar strings: Os valores hexadecimais dos caracteres determinam se uma string menor ou maior que outro. Para o cdigo hexadecimal de caractere, consulte a quarta capa deste manual. Quando duas strings esto classificadas como em um diretrio de telefone, a ordem das strings determina qual o maior.
Caracteres ASCII 1ab
m e n or q u e m ai or q u e

Cdigos Hexadecimais $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo

Publicao 1756-RM003F-PT-P - Maio 2002

4-12

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

Source A Source B

sim

sada da condio da linha definida como verdadeira

no

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-13

Exemplo: Se value_1 for maior ou igual a value_2, energiza light_b. Se value_1


for menor que value_2, desligue light_a.

Lgica Ladder

Texto Estruturado
light_b := (value_1 >= value_2);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

4-14

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Maior que (GRT)


Operandos:

A instruo GRT testa se Source A maior que Source B.

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL string SINT INT DINT REAL string Formato: imediato tag Descrio: valor a ser testado em relao a Source B

Source B

imediato tag

valor a ser testado em relao a Source A

Se voc inserir um tag SINT ou INT, o valor converte em um valor DINT pelo sinal de extenso. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Para testar os caracteres de uma string, insira um tag da string para Source A e Source B.

Texto Estruturado
IF sourceA > sourceB THEN <statements>;

Use o sinal maior que ">" como um operador em uma expresso. Esta expresso avalia se sourceA maior que sourceB. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: GRT tag Tipo: FBD_COMPARE Formato: estrutura Descrio: estrutura GRT

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-15

estrutura FBD_COMPARE
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executada e as sadas no so atualizadas. Valor inicial est energizado Valor para comparar com SourceB. Vlido = qualquer flutuante Valor para comparar com SourceA. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Isto equivale sada da condio da linha para instruo GRT da lgica ladder.

SourceA SourceB Parmetro de Sada: EnableOut Dest

REAL REAL Tipo de Dados: BOOL BOOL

Descrio: A instruo GRT testa se Source A maior ou igual a Source B.


Ao comparar strings: Os valores hexadecimais dos caracteres determinam se uma string menor ou maior que outro. Para o cdigo hexadecimal de caractere, consulte a quarta capa deste manual. Quando duas strings esto classificadas como em um diretrio de telefone, a ordem dos strings determina qual o maior.
Caracteres ASCII 1ab
m e n or q u e m ai or q u e

Cdigos Hexadecimais $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo

Publicao 1756-RM003F-PT-P - Maio 2002

4-16

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

Source A * Source B

sim

sada da condio da linha definida como verdadeira

no

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-17

Exemplo: Se value_1 for maior que value_2, energize light_1. Se value_1 for
menor ou igual a value_2, desligue light_1.

Lgica Ladder

Texto Estruturado
light_1 := (value_1 > value_2);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

4-18

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Menor ou Igual a (LEQ)


Operandos:

A instruo LEQ testa se Source A menor ou igual a Source B.

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL string SINT INT DINT REAL string Formato: imediato tag Descrio: valor a ser testado em relao Source B

Source B

imediato tag

valor a ser testado em relao Source A

Se voc inserir um tag SINT ou INT, o valor converte em um valor DINT pelo sinal de extenso. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Para testar os caracteres de uma string, insira um tag da string para Source A e Source B.

Texto Estruturado
IF sourceA <= sourceB THEN <statements>;

Use sinais 'menor que', adjacentes e iguais <=" como operadores em uma expresso. Esta expresso avalia se sourceA menor ou igual a sourceB. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: LEQ tag Tipo: FBD_COMPARE Formato: estrutura Descrio: estrutura LEQ

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-19

estrutura FBD_COMPARE
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executada e as sadas no so atualizadas. Valor inicial est energizado Valor para comparar a SourceB. Vlido = qualquer flutuante Valor para comparar a SourceA. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Isto equivale sada da condio da sada para a instruo LEQ de lgica ladder.

SourceA SourceB Parmetro de Sada: EnableOut Dest

REAL REAL Tipo de Dados: BOOL BOOL

Descrio: A instruo LEQ testa se Source A menor ou igual a Source B.


Quando comparar strings: Os valores hexadecimais dos caracteres determinam se uma string menor ou maior que outra. Para o cdigo hexadecimal de caractere, consulte a quarta capa deste manual. Quando duas strings esto classificadas como em um diretrio de telefone, a ordem das strings determina qual maior.
Caracteres ASCII 1ab
m e n or q u e m ai or q u e

Cdigos Hexadecimais $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo

Publicao 1756-RM003F-PT-P - Maio 2002

4-20

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

Source A * Source B

sim

sada da condio da linha definida como verdadeira

no

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-21

Exemplo: Se value_1 for menor ou igual a value_2, energize light_2. Se value_1


for maior que value_2, desenergize light_2.

Lgica Ladder

Texto Estruturado
light_2 := (value_1 <= value_2);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

4-22

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Menor Que (LES)


Operandos:

A instruo LES testa se Source A menor que Source B.

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL string SINT INT DINT REAL string Formato: imediato tag Descrio: valor a ser testado em relao a Source B

Source B

imediato tag

valor a ser testado em relao a Source A

Se voc inserir um tag SINT ou INT, o valor converte em um valor DINT pelo sinal de extenso. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Para testar os caracteres de uma string, insira um tag da string para Source A e Source B.

Texto Estruturado
IF sourceA < sourceB THEN <statements>;

Use o sinal menor que "<" como um operador em uma expresso. Esta expresso avalia se sourceA menor que sourceB. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: LES tag Tipo: FBD_COMPARE Formato: estrutura Descrio: estrutura LES

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-23

Estrutura FBD_COMPARE
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executada e as sadas no so atualizadas. Valor inicial est energizado Valor para comparar a SourceB. Vlido = qualquer flutuante Valor para comparar com SourceA. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Isto equivale sada da condio da linha da instruo LES da lgica ladder.

SourceA SourceB Parmetro de Sada: EnableOut Dest

REAL REAL Tipo de Dados: BOOL BOOL

Descrio: A instruo LES testa se Source A menor que Source B.


Quando comparar strings: Os valores hexadecimais dos caracteres determinam se uma string menor ou maior que outra. Para o cdigo hexadecimal de caractere, consulte a quarta capa deste manual. Quando duas strings esto classificadas como em um diretrio de telefone, a ordem das strings determina qual maior.
Caracteres ASCII 1ab
m e n or q u e m ai or q u e

Cdigos Hexadecimais $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo

Publicao 1756-RM003F-PT-P - Maio 2002

4-24

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

Source A * Source B

sim

sada da condio da linha definida como verdadeira

no

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn falso EnableIn verdadeiro postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-25

Exemplo: Se value_1 for menor que value_2, energize light_3. Se value_1 for
maior ou igual a value_2, desenergize light_3.

Lgica Ladder

Texto Estruturado
light_3 := (value_1 < value_2);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

4-26

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Limite (LIM)
Operandos:

A instruo LIM testa se o valor de teste est dentro da faixa de Limite Inferior a Limite Superior.

Lgica Ladder
Operando: Low Limit Tipo: SINT INT DINT REAL Formato: imediato tag Descrio: valor do limite inferior

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Test SINT INT DINT REAL imediato tag valor de acordo com o teste

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. High Limit SINT INT DINT REAL imediato tag valor do limite superior

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal.

Texto Estruturado
Texto estruturado no tem uma instruo LIM, mas possvel obter os mesmos resultados usando texto estruturado.
IF (LowLimit <= HighLimit AND (Test >= LowLimit AND Test <= HighLimit)) OR (LowLimit >= HighLimit AND (Test <= LowLimit OR Test >= HighLimit)) THEN <statement>;

END_IF;

Bloco de Funes
Operando: LIM tag Tipo: FBD_LIMIT Formato: estrutura Descrio: estrutura LIM

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-27

Estrutura FBD_LIMIT
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Se desenergizada, a instruo no executada e as sadas no so atualizadas. Se energizada, a instruo executada como descrito em Execution. Valor inicial est energizado Valor do limite inferior. Vlido = qualquer flutuante Valor para comparar aos limites Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Isto equivale sada da condio da linha para a instruo LIM da lgica ladder. Valor do limite superior. Vlido = qualquer flutuante

LowLimit Test Parmetro de Sada: EnableOut Dest HighLimit

REAL REAL Tipo de Dados: BOOL BOOL REAL

Descrio: A instruo LIM testa se o valor de Test est dentro da faixa do Limite
Inferior ao Limite Superior.
Se o Limite Inferior: limite superior limite superior E o valor de Teste for: igual a ou entre os limites diferente ou fora dos limites igual a ou fora dos limites diferente ou dentro dos limites A sada da condio da linha definida em: verdadeira falsa verdadeira falsa

Os inteiros com sinal mudam do nmero positivo mximo para o nmero negativo mximo quando o bit mais significativo estiver energizado. Por exemplo, em inteiros com 16 bits (tipo INT), o inteiro positivo mximo 32.767, que representado em hexadecimal como 16#7FFF (bits 0 a 14 esto todos energizados). Se voc incrementar esse nmero em um, o resultado 16#8000 (bit 15 est energizado). Para inteiros com sinal, o hexadecimal 16#8000 igual ao decimal -32.768. Incremente a partir desse ponto at que todos os 16 bits estejam energizados e terminem em 16#FFFF, que igual ao decimal -1.

Publicao 1756-RM003F-PT-P - Maio 2002

4-28

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Isto pode ser representado como uma linha de nmero circular (consulte os seguintes diagramas). A instruo LIM comea no Limite Inferior e incrementa no sentido horrio at atingir o Limite Superior. Qualquer valor de teste na faixa de sentido horrio, desde o Limite Inferior at o Limite Superior define a sada da condio da linha como verdadeira. Qualquer valor de teste na faixa de sentido horrio desde o Limite Superior at o Limite Inferior define a sada da condio da linha como falsa.
Limite Inferior Limite Superior A instruo verdadeira se o valor de teste for igual ou situar-se entre os limites superior e inferior. 0 1 +1 limite inferior 1 Limite Inferior * Limite Superior A instruo verdadeira se o valor de teste for igual ou estiver fora da faixa entre os limites superior e inferior. 0 +1 limite superior

limite superior (n+1)

limite inferior (n+1) +n n = valor mximo

+n

n = valor mximo

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-29

Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

avalia limite

a comparao verdadeira

sada da condio da linha definida como verdadeira

a comparao falsa

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. O EnableOut desenergizado, a instruo no faz nada e as sadas no so atualizadas. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo 1: Limite Inferior * Limite Superior

Quando 0 value 100, energiza light_1. Se value < 0 ou value >100, desenergize light_1.

Lgica Ladder

Publicao 1756-RM003F-PT-P - Maio 2002

4-30

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Texto Estruturado
IF (value <= 100 AND(value >= 0 AND value <= 100)) OR (value >= 100 AND value <= 0 OR value >= 100)) THEN light_1 := 1; ELSE light_1 := 0;

END_IF;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-31

Exemplo 2: Limite Inferior Limite Superior

Quando value 0 ou value 100, energiza light_1. Se value < 0 ou value >100, desenergize light_1.

Lgica Ladder

Texto Estruturado
IF (0 <= -100 AND value >= 0 AND value <= -100)) OR (0 >= -100 AND(value <= 0 OR value >= -100)) THEN light_1 := 1; ELSE light_1 := 0;

END_IF;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

4-32

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Mscara Igual a (MEQ)


Operandos:

A instruo MEQ passa os valores de Source e Compare atravs de uma Mscara e compara os resultados.

Lgica Ladder
Operando: Tipo: Source SINT INT DINT Formato: imediato tag Descrio: valor para ser testado comparando-se a Compare

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Mask SINT INT DINT imediato tag define que bits so bloqueados ou os que passam

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Compare SINT INT DINT imediato tag valor a ser testado em relao a Source

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero.

Texto Estruturado
Texto estruturado no tem uma instruo MEQ, mas possvel obter os mesmos resultados usando texto estruturado.
IF (Source AND Mask) = (Compare AND Mask) THEN <statement>; END_IF;

Bloco de Funes
Operando: MEQ tag Tipo: FBD_MASK_EQUAL Formato: estrutura Descrio: estrutura MEQ

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-33

estrutura FBD_MASK_EQUAL
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Se desenergizado, a instruo no executada e as sadas no so atualizadas. Se energizado, a instruo executada como descrito em Execution. Valor inicial est energizado Valor para testar com Compare. Vlido = qualquer inteiro Define quais bits bloquear (mscara). Vlido = qualquer inteiro Comparao de valor. vlido = qualquer inteiro Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Isto equivale sada da condio da linha para a instruo MEQ de lgica ladder.

Source Mask Compare Parmetro de Sada: EnableOut Dest

DINT DINT DINT Tipo de Dados: BOOL BOOL

Descrio:

1 na mscara significa que o bit de dados passou. 0 na mscara significa que o bit de dados foi bloqueado. Geralmente, os valores Source, Mask e Compare so todos do mesmo tipo de dados. Se houver uma combinao dos tipos de dados de inteiros, a instruo preencher os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Insero de um valor de mscara imediato


Ao inserir uma mscara, o software de programao retorna ao padro dos valores decimais. Caso voc queira inserir uma mscara usando outro formato, coloque o prefixo correto antes do valor.
Prefixo: 16# 8# 2# Descrio: hexadecimal por exemplo: 16#0F0F octal por exemplo: 8#16 binrio por exemplo: 2#00110011

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo

Publicao 1756-RM003F-PT-P - Maio 2002

4-34

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

fonte mascarada = comparao mascarada

sim

sada da condio da linha definida como verdadeira

no

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. O EnableOut desenergizado, a instruo no faz nada e as sadas no so atualizadas. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-35

Exemplo 1: Se value_1 mascarado for igual a value_2 mascarado, energize


light_1. Se a value_1 mascarada no for igual a value_2 mascarada, desligue light_1. Este exemplo mostra que os valores mascarados so iguais. Um 0 na mscara impede que ela compare aquele bit (mostrado por x no exemplo).
value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1

mask_1

value_1 mascarado

value_2 mascarado

Lgica Ladder

Texto Estruturado
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

4-36

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemplo 2: Se value_1 mascarado for igual a value_2 mascarado, energize


light_1. Se value_1 mascarado no for igual a value_2 mascarado, desligue light_1. Este exemplo mostra que os valores mascarados no so iguais. Um 0 na mscara impede que ela compare aquele bit (mostrado por x no exemplo).
value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1

mask_1

value_1 mascarado

value_2 mascarado

Lgica Ladder

Texto Estruturado
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-37

Diferente de (NEQ)
Operandos:

A instruo NEQ testa se Source A diferente de Source B.

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL string SINT INT DINT REAL string Formato: imediato tag Descrio: valor a ser testado em relao Source B

Source B

imediato tag

valor a ser testado em relao Source A

Se voc inserir um tag SINT ou INT, o valor converte a um valor DINT pelo sinal de extenso. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Para testar os caracteres de uma string, insira um tag da string para Source A e Source B.

Texto Estruturado
IF sourceA <> sourceB THEN <statements>;

Use os sinais maior que e menor que <> juntos como operador em uma expresso. Esta expresso avalia se sourceA diferente de sourceB. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: NEQ tag Tipo: FBD_COMPARE Formato: estrutura Descrio: estrutura NEQ

Publicao 1756-RM003F-PT-P - Maio 2002

4-38

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

estrutura FBD_COMPARE
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial est energizado Valor para comparar com SourceB. Vlido = qualquer flutuante Valor para comparar com SourceA. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Isto equivale sada da condio da linha para a instruo NEQ de lgica ladder.

SourceA SourceB Parmetro de Sada: EnableOut Dest

REAL REAL Tipo de Dados: BOOL BOOL

Descrio: A instruo NEQ testa se Source A diferente de Source B.


Quando comparar strings: As strings so diferentes se algum caractere no corresponder. Os caracteres ASCII so sensveis ao contexto. O "A" maisculo ($41) no igual ao "a" minsculo ($61).
Caracteres ASCII 1ab
m e n or q u e m ai or q u e

Cdigos Hexadecimais $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

4-39

Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

Source A = Source B;

sim

sada da condio da linha definida como verdadeira

no

sada da condio da linha definida como falsa fim

postscan

A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

4-40

Instrues de Comparao (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Exemplo: Se value_1 no for igual a value_2, energize light_4. Se value_1 for


igual a value_2, desenergize light_4.

Lgica Ladder

Texto Estruturado
light_4 := (value_1 <> value_2);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

Instrues de Clculo/Matemticas
(CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Introduo
Se voc quiser: avaliar uma expresso somar dois valores

As instrues de clculo/matemticas avaliam as operaes aritmticas usando uma expresso ou uma instruo aritmtica especfica.
Use esta instruo: CPT ADD Disponvel nessas linguagens: lgica ladder texto estruturado(1) lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado bloco de funes Consulte pgina: 5-2 5-5

subtrair dois valores

SUB

5-8

multiplicar dois valores

MUL

5-11

dividir dois valores

DIV

5-14

determinar o resto aps a diviso de um valor por outro calcular a raiz quadrada de um valor

MOD

5-18

SQR SQRT(3) NEG

5-21

considerar o sinal oposto de um valor

5-24

considerar o valor absoluto de um valor

ABS

5-26

(1) (2) (3)

No h instruo de texto estruturado equivalente. Use outra programao de texto estruturado para alcanar o mesmo resultado. Veja a descrio para a instruo. No h instruo de texto estruturado equivalente. Use o operador em uma expresso. Texto estruturado somente.

possvel combinar tipos de dados, mas perda de preciso e erros de arredondamentos podem ocorrer, bem como demora na execuo da instruo. Verifique o bit S:V para observar se o resultado foi truncado. Para instrues de lgica ladder, os tipos de dados em negrito indicam tipos de dados otimizados. Uma instruo executa mais rapidamente e requer menos memria se todos os operandos da instruo usarem o mesmo tipo de dados otimizados, geralmente, DINT ou REAL.

Publicao 1756-RM003F-PT-P - Maio 2002

5-2

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Clculo (CPT)
Operandos:

A instruo CPT realiza as operaes aritmticas definidas na expresso.

Lgica Ladder
Operando: Tipo: Formato: tag Descrio: tag para armazenar o resultado

Destination SINT INT DINT REAL Expression SINT INT DINT REAL

imediato tag

uma expresso composta por tags e/ou valores imediatos separados por operadores

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal.

Texto Estruturado
O texto estruturado no possui uma instruo CPT, mas possvel alcanar os mesmos resultados usando um atributo e expresso.
destination := numeric_expresion;

Consulte ApndiceC para informaes sobre a sintaxe de atributos e expresses no texto estruturado.

Descrio: A instruo CPT realiza as operaes aritmticas definidas na


expresso. Quando habilitada, a instruo CPT avalia a expresso especfica e coloca o resultado em Destination. A execuo de uma instruo CPT um pouco mais lenta e usa mais memria do que a execuo de outras instrues de clculo/matemticas. A vantagem da instruo CPT que a mesma permite a insero de expresses complexas em uma instruo. DICA No h limite para o comprimento de uma expresso.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-3

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo avalia Expression e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Exemplo 1: Quando habilitada, a instruo 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: Quando habilitada, a instruo CPT trunca float_value_1 e


float_value_2, eleva float_value_2 truncado ao quadrado, divide por float_value_1 truncado pelo resultado e armazena o resto dessa operao da diviso em float_value_result_cpt.

Operadores vlidos
Operadores: + * / ** ABS ACS AND ASN ATN COS DEG FRD Descrio: adio subtrao/negativo multiplicao diviso valor absoluto arco co-seno AND (E) arco seno arco tangente co-seno radianos em graus BCD para inteiro timo: DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL DINT, REAL DINT Operadores: LN LOG MOD NOT OR RAD SIN SQR TAN TOD TRN XOR Descrio: log neperiano log base 10 mdulo complementao OR (OU) graus em radianos seno raiz quadrada tangente inteiro para BCD truncamento OR exclusivo timo: REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

expoente (x elevado a y) DINT, REAL

Publicao 1756-RM003F-PT-P - Maio 2002

5-4

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Formatao de expresses
Para cada operador utilizador, voc deve fornecer um ou dois operandos (tags ou valores imediatos). Use a tabela a seguir para formatar os operadores e os operandos em uma expresso:
Para operadores que operam em: um operando dois operandos Use este formato: operator(operand) operand_a operator operand_b Exemplos: ABS(tag_a) tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g)

Determinao da seqncia da operao


As operaes que voc escreve na expresso so executadas pela instruo na seqncia prescrita e no, necessariamente, na ordem que voc as escreveu. possvel suprimir a seqncia da operao agrupando-se os termos dentro de parnteses, forando a instruo para realizar uma operao dentro dos parnteses, antes de outras operaes. As operaes com a mesma seqncia so executadas da esquerda para a direita.
Seqncia: Operao: 1. 2. 3. 4. 5. 6. 7. 8. 9. () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (negativo), NOT *, /, MOD (subtrao), + AND XOR OR

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-5

Adio (ADD)
Operandos:

A instruo ADD soma Source A e Source B e coloca o resultado em Destination

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL Formato: imediato tag Descrio: valor a ser somado Source B

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Source B SINT INT DINT REAL imediato tag valor a ser adicionado Source A

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Destination SINT INT DINT REAL tag tag para armazenar o resultado

Texto Estruturado
dest := sourceA + sourceB;

Use o sinal mais + como um operador em uma expresso. Essa expresso adiciona sourceA a sourceB e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag ADD Tipo: FBD_MATH Formato: estrutura Descrio: estrutura ADD

Publicao 1756-RM003F-PT-P - Maio 2002

5-6

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Estrutura FBD_MATH
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor para adicionar a SourceB. Vlido = qualquer flutuante Valor para adicionar a SourceA. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

SourceA SourceB Parmetro de Sada: EnableOut Dest

REAL REAL Tipo de Dados: BOOL REAL

Descrio: A instruo ADD soma Source A e Source B e coloca o resultado em


Destination

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. Destination = Source A + Source B A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-7

Exemplo: Adicione float_value_1 a float_value_2 e coloque o resultado em


add_result.

Lgica Ladder

Texto Estruturado
add_result := float_value_1 + float_value_2;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

5-8

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Subtrao (SUB)
Operandos:

A instruo SUB subtrai Source B de Source A e coloca o resultado em Destination

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL Formato: imediato tag Descrio: valor a partir do qual se subtrai a FonteB

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Source B SINT INT DINT REAL imediato tag valor a ser subtrado de Source A

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Destination SINT INT DINT REAL tag tag para armazenar o resultado

Texto Estruturado
dest := sourceA - sourceB;

Use o sinal de menos () como um operador em uma expresso. Essa expresso subtrai sourceA da sourceB e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag SUB Tipo: FBD_MATH Formato: estrutura Descrio: estrutura SUB

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-9

Estrutura FBD_MATH
Parmetro de Entrada: EnableIn SourceA SourceB Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizado, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor do qual se subtrai SourceB. Vlido = qualquer flutuante Valor do qual se subtrai SourceA. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: A instruo SUB subtrai Source B de Source A e coloca o resultado em


Destination

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. Destination = Source B - Source A A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

5-10

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Exemplo: Subtraia float_value_2 de float_value_1 e coloque o resultado em


subtract_result.

Lgica Ladder

Texto Estruturado
subtract_result := float_value_1 - float_value_2;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-11

Multiplicao (MUL)
Operandos:

A instruo MUL multiplica Source A por Source B e coloca o resultado em Destination

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL Formato: imediato tag Descrio: valor do multiplicando

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Source B SINT INT DINT REAL imediato tag valor do multiplicador

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Destination SINT INT DINT REAL tag tag para armazenar o resultado

Texto Estruturado
dest := sourceA * sourceB;

Use o sinal de multiplicar () como um operador em uma expresso. Essa expresso multiplica sourceA por sourceB e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag MUL Tipo: FBD_MATH Formato: estrutura Descrio: estrutura MUL

Publicao 1756-RM003F-PT-P - Maio 2002

5-12

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Estrutura FBD_MATH
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizado, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor do multiplicando. Vlido = qualquer flutuante Valor do multiplicador. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Source A Source B Parmetro de Sada: EnableOut Dest

REAL REAL Tipo de Dados: BOOL REAL

Descrio: A instruo MUL multiplica Source A por Source B e coloca o


resultado em Destination

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. Destination = Source B x Source A A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-13

Exemplo: Multiplique float_value_1 por float_value_2 e coloque o resultado em


multiply_result.

Lgica Ladder

Texto Estruturado
multiply_result := float_value_1 float_value_2;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

5-14

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Diviso (DIV)
Operandos:

A instruo DIV divide Source A por Source B e coloca o resultado em Destination.

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL Formato: imediato tag Descrio: valor do dividendo

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Source B SINT INT DINT REAL imediato tag valor do divisor

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Destination SINT INT DINT REAL tag tag para armazenar o resultado

Texto Estruturado
dest := sourceA / sourceB;

Use o sinal de dividir (/) como um operador em uma expresso. Essa expresso divide sourceA por sourceB e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag DIV Tipo: FBD_MATH Formato: estrutura Descrio: estrutura DIV

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-15

Estrutura FBD_MATH
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizado, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor do dividendo. Vlido = qualquer flutuante Valor do divisor. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Source A Source B Parmetro de Sada: EnableOut Dest

REAL REAL Tipo de Dados: BOOL REAL

Descrio: Se Destination no for REAL, a instruo trabalha com a poro


fracionria do resultado da seguinte forma:
Se Source A: e Source B no forem do tipo REAL ou Source B for do tipo REAL Ento a parte fracionria do resultado: trunca Exemplo: Source A Source B Destination arredondada Source A Source B Destination DINT DINT DINT REAL DINT DINT 5 3 1 5.0 3 2

Se Source B (o divisor) for zero: uma falha de advertncia ocorre: Tipo 4: falha no programa Cdigo 4: overflow aritimtico Destination definido conforme segue:
Se Source B for zero e: todos os operandos so inteiros (SINT, INT ou DINT) pelo menos um operando um REAL SINT, INT ou DINT REAL positivo negativo positivo negativo E o Destination for um: E o resultado for: Ento Destination ser definido em: Source A -1 0 1.$ (infinito positivo) -1.$ (infinito negativo)

Para detectar uma diviso por zero possvel, examine o bit de falha de advertncia (S:MINOR). Consulte Logix5000 Controllers Common Procedures, publicao 1756-PM001.

Publicao 1756-RM003F-PT-P - Maio 2002

5-16

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Uma falha de advertncia ocorrer se: o divisor for zero Tipo de falha: 4 Cdigo de falha: 4

Execuo: Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. Destination = Source A / Source B A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo 1: Divida float_value_1 por float_value_2 e coloque o resultado em


divide_result.

Lgica Ladder

Texto Estruturado
divide_result := float_value_1 / float_value_2;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-17

Bloco de Funes

Exemplo 2: As instrues DIV e MOV trabalham juntas para dividir dois inteiros,
arredondar o resultado e coloc-lo em um tag inteiro: A instruo DIV divide dint_a por dint_b. Para arredondar o resultado, o Destination um tag REAL. (Se o destino fosse um tag inteiro (SINT, INT ou DINT), a instruo truncaria o resultado.) A instruo MOV muda o resultado arredondado (real_temp) de DIV para divide_result_rounded. Como divide_result_rounded um tag DINT o valor de real_temp arredondado e colocado no DINT destino.

Lgica Ladder

43009

Publicao 1756-RM003F-PT-P - Maio 2002

5-18

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Mdulo (MOD)
Operandos:

A instruo MOD divide Source A por Source B e coloca o resto em Destination

Lgica Ladder
Operando: Source A Tipo: SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL Formato: Descrio: imediato tag valor do dividendo

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Source B imediato tag valor do divisor

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Destination tag tag para armazenar o resultado

Texto Estruturado
dest := sourceA MOD sourceB;

Use MOD como um operador em uma expresso. Essa expresso divide sourceA por sourceB e armazena o restante em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag MOD Tipo: FBD_MATH Formato: estrutura Descrio: estrutura MOD

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-19

Estrutura FBD_MATH
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizado, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado. Valor do dividendo. Vlido = qualquer flutuante Valor do divisor. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Source A Source B Parmetro de Sada: EnableOut Dest

REAL REAL Tipo de Dados: BOOL REAL

Descrio: Se Source B (o divisor) for zero:


uma falha de advertncia ocorre: Tipo 4: falha no programa Cdigo 4: overflow aritimtico o Destination definido conforme segue:
Se Source B for zero e: todos os operandos so inteiros (SINT, INT ou DINT) pelo menos um operando um REAL SINT, INT ou DINT REAL positivo negativo positivo negativo E o destino for um: E o resultado for: Ento o destino ser definido em: Source A -1 0 1.$ (infinito positivo) -1.$ (infinito negativo)

Para detectar uma diviso por zero possvel, examine o bit de falha de advertncia (S:MINOR). Consulte Logix5000 Controllers Common Procedures, publicao 1756-PM001.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Uma falha de advertncia ocorrer se: o divisor zero Tipo de falha: 4 Cdigo de falha: 4

Publicao 1756-RM003F-PT-P - Maio 2002

5-20

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Execuo: Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. Destination = Source A ( TRN ( Source A / Source B ) * Source B ) A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. Nenhuma ao tomada.

Exemplo: Divide dividend por divisor e coloca o resto em remainder. Nesse


exemplo, 10 dividido por 3, com um resto de um.

Lgica Ladder

Texto Estruturado
remainder := dividend MOD divisor;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-21

Raiz Quadrada (SQR)


Operandos:

A instruo SQR calcula a raiz quadrada de Source e coloca o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL Formato: imediato tag Descrio: calcula a raiz quadrada desse valor

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Destination SINT INT DINT REAL tag tag para armazenar o resultado

Texto Estruturado
dest := SQRT(source);

Use SQRT como uma funo. Esta expresso calcula a raiz quadrada de source e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: SQR tag Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura SQR

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizado, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado. Encontre a raiz quadrada deste valor. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Source Parmetro de Sada: EnableOut Dest

REAL Tipo de Dados: BOOL REAL

Publicao 1756-RM003F-PT-P - Maio 2002

5-22

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Descrio: Se Destination no for REAL, a instruo trabalha com a poro


fracionria do resultado da seguinte forma:
Se Source for: diferente do tipo REAL do tipo REAL Ento a parte fracionria do resultado: trunca arredondada Exemplo: Source Source DINT REAL 3 1 3,0 2

Destination DINT Destination DINT

Se Source for negativo, a instruo retira o valor absoluto de Source, antes de calcular a raiz quadrada.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

Destination =

Source

A sada da condio da linha definida como verdadeira. postscan A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-23

Exemplo: Calcule a raiz quadrada de value_1 e coloque o resultado em


sqr_result.

Lgica Ladder

Texto Estruturado
multiply_result := SQRT(value_1);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

5-24

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Negao (NEG)
Operandos:

A instruo NEG altera o sinal de Source e coloca o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL Formato: imediato tag Descrio: valor a ser transformado em negativo

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Destination SINT INT DINT REAL tag tag para armazenar o resultado

Texto Estruturado
dest := -source;

Use o sinal menos () como um operador em uma expresso. Esta expresso altera o sinal de source e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag NEG Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura NEG

Estrutura FBD_MATH
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizado, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor para negar. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: Se voc tornar negativo um valor negativo, o resultado ser positivo.


Se voc tornar negativo um valor positivo, o resultado ser negativo.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-25

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. Destination = 0 Source A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Altere o sinal de value_1 e coloque o resultado em negate_result. Lgica Ladder

Texto Estruturado
negate_result := -value_1;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

5-26

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Valor Absoluto (ABS)


Operandos:

A instruo ABS retira o valor absoluto de Source e coloca o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL Formato: imediato tag Descrio: valor do qual se tira o valor absoluto

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Destination SINT INT DINT REAL tag tag para armazenar o resultado

Texto Estruturado
dest := ABS(source);

Use ABS como uma funo. Esta expresso calcula o valor absoluto de source e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag ABS Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura ABS

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizado, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor do qual se tira o valor absoluto. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: A instruo ABS retira o valor absoluto de Source e coloca o resultado


em Destination.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

5-27

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. Destination = | Source | A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Coloque o valor absoluto de value_1 em value_1_absolute. Nesse


exemplo, o valor absoluto de quatro negativo quatro positivo.

Lgica Ladder

Texto Estruturado
value_1_absolute := ABS(value_1);

Publicao 1756-RM003F-PT-P - Maio 2002

5-28

Instrues de Clculo/Matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

Instrues de Movimentao/Lgica
(MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Introduo

possvel combinar tipos de dados, mas perda de preciso e erros de arredondamentos podem ocorrer, bem como demora na execuo da instruo. Verifique o bit S:V para observar se o resultado foi truncado. Para instrues de lgica ladder, os tipos de dados em negrito indicam tipos de dados otimizados. Uma instruo executa mais rapidamente e requer menos memria se todos os operandos da instruo usam o mesmo tipo de dado otimizado, geralmente DINT ou REAL. As instrues de movimentao modificam e movimentam os bits.

Se voc quiser: copiar um valor copiar uma parte especfica de um inteiro copiar uma parte especfica de um inteiro no bloco de funes mover bits dentro de um inteiro ou entre inteiros movimentar bits dentro de um inteiro ou entre inteiros no bloco de funes zerar um valor reorganizar os bytes de um tag INT, DINT ou REAL
(1)

Use esta instruo: MOV MVM MVMT BTD BTDT CLR SWPB

Disponvel nessas linguagens: lgica ladder texto estruturado(1) lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes texto estruturado(1) lgica ladder lgica ladder texto estruturado

Consulte pgina: 6-3 6-5 6-8 6-11 6-14 6-17 6-18

No h instruo de texto estruturado equivalente. Use outra programao de texto estruturado para alcanar o mesmo resultado. Veja a descrio para a instruo.

Publicao 1756-RM003F-PT-P - Maio 2002

6-2

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

As instrues de lgica executam operaes em bits.


Se voc quiser: operao AND (E) Use esta instruo: AND &(1) OR Disponvel nessas linguagens: lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado(2) bloco de funes lgica ladder texto estruturado(2) bloco de funes texto estruturado(2) bloco de funes texto estruturado(2) bloco de funes texto estruturado(2) bloco de funes texto estruturado(2) bloco de funes Consulte pgina: 6-21

operao OR (OU)

6-24

operao XOR

XOR

6-27

operao NOT

NOT

6-30

AND logicamente com oito entradas booleanas. BAND OR logicamente com oito entradas booleanas. executar uma XOR em duas entradas booleanas. complementar uma entrada booleana.
(1) (2)

6-33 6-35 6-38 6-40

BOR BXOR BNOT

Texto estruturado somente. No texto estruturado, as operaes AND, OR, XOR e NOT podem ser de bitwise ou de lgica.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-3

Movimentao (MOV)
Operandos:

A instruo MOV copia Source em Destination. Source permanece inalterado.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL Formato: imediato tag Descrio: valor a ser movido (copiar)

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Destination SINT INT DINT REAL tag tag para armazenar o resultado

Texto Estruturado
dest := source;

Use um atributo := com uma expresso. Este atributo movimenta o valor em source para dest. Consulte Apndice C para informaes sobre a sintaxe de expresses e atributos no texto estruturado.

Descrio: A instruo MOV copia Source em Destination. Source permanece


inalterado.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

6-4

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo copia Source em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Exemplo: Movimenta os dados em value_1 para value_2. Lgica Ladder

Texto Estruturado
value_2 := value_1

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-5

Movimento com Mscara (MVM)

A instruo MVM copia Source em Destination e permite que parte dos dados sejam mascarados. Essa instruo est disponvel no texto estruturado e bloco de funes como MVMT, consulte a pgina 6-8.

Operandos: Lgica Ladder


Operando: Source Tipo: SINT INT DINT Formato: imediato tag Descrio: valor a ser movido

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Mask SINT INT DINT imediato tag quais bits devem ser bloqueados ou podem passar

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Destination SINT INT DINT tag tag para armazenar o resultado

Texto Estruturado
dest := (Dest AND NOT (Mask) OR (Source AND Mask);

Esta instruo est disponvel no texto estruturado como MVMT. Ou voc combina a lgica bitwise em uma expresso e atribui o resultado ao destino. Esta expresso realiza um movimento com mscara em Source. Consulte Apndice C para informaes sobre a sintaxe de expresses e atributos no texto estruturado.

Descrio: A instruo MVM usa Mask para passar ou bloquear os bits de dados
Source. Um 1 na mscara significa que o bit de dados passou. Um 0 na mscara significa que o bit de dados foi bloqueado. Se houver uma mistura dos tipos de dados de inteiros, a instruo preenche os bits mais significativos dos tipos de dados de inteiros menores com 0, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Publicao 1756-RM003F-PT-P - Maio 2002

6-6

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Insero de um valor de mscara imediato


Ao inserir uma mscara, o software de programao retorna ao padro dos valores decimais. Caso voc queira inserir uma mscara usando outro formato, coloque o prefixo correto antes do valor.
Prefixo: 16# 8# 2# Descrio: hexadecimal por exemplo; 16#0F0F octal por exemplo; 8#16 binrio por exemplo; 2#00110011

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo passa o valor de Source por Mask e copia o resultado em Destination. Os bits no mascarados em Destination permanecem inalterados. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

postscan

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-7

Exemplo: Copia os dados de value_a para value_b, enquanto permite que os


dados sejam mascarados ( 0 mascara os dados em value_a).

As caixas sombreadas mostram os bits alterados em value_b.

Lgica Ladder

Texto Estruturado
value_b := (value_b AND NOT (mask_2)) OR (value_a AND mask_2);

Publicao 1756-RM003F-PT-P - Maio 2002

6-8

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Movimentao com Mscara Com Arquivo-Alvo (MVMT)

A instruo MVMT primeiro copia o Target para Destination. Em seguida, a instruo compara Source mascarado com Destination e efetua as alteraes solicitadas para Destination. Target e Source permanecem inalterados. Esta instruo est disponvel em lgica ladder como MVM, consulte a pgina 6-5.

Operandos:
MVMT(MVMT_tag);

Texto Estruturado
Varivel: MVMT tag Tipo: FBD_MASKED_MOVE Formato: estrutura Descrio: estrutura MVMT

Bloco de Funes
Operando: tag MVMT Tipo: FBD_MASKED_MOVE Formato: estrutura Descrio: estrutura MVMT

Estrutura FBD_MASKED_MOVE
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Bloco de Funes Se desenergizado, a instruo no executa e as sadas no so atualizadas. Se energizado, a instruo executa. Valor inicial energizado Texto Estruturado Sem efeito. A instruo executa. Insira o valor para movimentar para Destination baseado no valor de Mask. Vlido = qualquer inteiro Mask de bits para movimentar de Source para Dest. Todos os bits energizados para um fazer que os bits correspondentes se movimentem de Source para Dest. Todos os bits energizados como zero fazem com que os bits correspondentes se movimentem de Source para Dest. Vlido = qualquer inteiro Insira valor para movimentar para Dest antes de mover os bits Source atravs de Mask. Vlido = qualquer inteiro Descrio: A instruo produziu um resultado vlido. Resultado da instruo de movimentao mascarada. Os flags de status aritmtico so energizados para esta sada.

Source Mask

DINT DINT

Target Parmetro de Sada: EnableOut Dest

DINT Tipo de Dados: BOOL DINT

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-9

Descrio: Quando habilitada, a instruo MVMT usa Mask para passar ou


bloquear os bits de dados Source. Um 1 na mscara significa que o bit de dados passou. Um 0 na mscara significa que o bit de dados foi bloqueado. Se houver uma combinao dos tipos de dados de inteiros, a instruo preencher os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores. Insero de um valor de mscara imediato usando uma Referncia de Entrada Ao inserir uma mscara, o software de programao retorna os valores decimais. Caso voc queira inserir uma mscara usando outro formato, coloque o prefixo correto antes do valor.
Prefixo: 16# 8# 2# Descrio: hexadecimal por exemplo; 16#0F0F octal por exemplo; 8#16 binrio por exemplo; 2#00110011

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo:
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao do Bloco de Funes: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado, a instruo no faz nada e as sadas no so atualizadas. A instruo executa. EnableOut est energizado. Nenhuma ao tomada. Ao do Texto Estruturado: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. na EnableIn est sempre energizado A instruo executa. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

6-10

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exemplo:
Target 1 1 1 1 1 1

1. Copia Target em Dest.

Dest

2. Mascara Source e compara a Dest. No so feitas alteraes necessrias em Dest. O Source e o Target se mantm inalterados. Um 0 na mscara impede que a mscara compare aquele bit (mostrado por x no exemplo).

Source

Mask1

Dest

As caixas sombreadas mostram os bits que foram alterados.

Texto Estruturado
MVMT_01.Source := value_1; MVMT_01.Mask := mask1; MVMT_01.Target := target;

MVMT(MVMT_01);

value_masked := MVMT_01.Dest;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-11

Distribuio de Bits (BTD)

A instruo BTD copia os bits especificados de Source, muda os bits para a posio adequada e escreve os bits em Destination. Essa instruo est disponvel no texto estruturado e bloco de funes como BTDTI, consulte a pgina 6-14.

Operandos: Lgica Ladder


Operando: Source Tipo: SINT INT DINT Formato: imediato tag Descrio: tag que contm os bits a serem movimentados

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Source bit DINT imediato (0-31 DINT) (0-15 INT) (0-7 SINT) tag nmero do bit (nmero do bit menos significativo) a partir do qual a movimentao foi iniciada deve estar dentro da faixa vlida de tipos de dados Source tag para onde os bits sero movidos

Destination

SINT INT DINT DINT

Detination bit

imediato (0-31 DINT) (0-15 INT) (0-7 SINT) imediato (1-32)

o nmero do bit (nmero de bit menos significativo) em que se inicia a cpia de bits Source deve estar dentro da faixa vlida de tipos de dados Destination nmero de bits a ser movido

Length

DINT

Descrio: Quando habilitada, a instruo BTD copia um grupo de bits de Source


para Destination. O grupo de bits identificado pelo bit Source (nmero de bit menos significativo do grupo) e Length (nmero de bits a serem copiados). O bit Destination identifica o nmero de bit menos significativo para iniciar em Destination. Source permanece inalterado. Se o comprimento do campo do bit ultrapassar Destination, a instruo no salvar os bits extras. Qualquer bit extra no d seqncia prxima palavra. Se houver uma combinao dos tipos de dados de inteiros, a instruo preencher os bits mais significativos dos tipos de dados de inteiros menores com 0s, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

6-12

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo copia e muda os bits de Source para Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Exemplo 1: Quando habilitada, a instruo BTD movimenta os bits dentro de


value_1.

Bit Destination

Bit Source

value_1 antes da instruo BTD

value_1 depois da instruo BTD

As caixas sombreadas mostram os bits alterados em value_1.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-13

Exemplo 2: Quando habilitada, a instruo BTD move 10 bits de value_1 para


value_2.

source bit

value_1

destination bit

value_2 antes da instruo BTD

value_2 depois da instruo BTD

As caixas sombreadas mostram os bits que foram alterados em value_2.

Publicao 1756-RM003F-PT-P - Maio 2002

6-14

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Distribuio de Bits com Arquivo-alvo (BTDT)

A instruo BTDT primeiro copia Target para Destination. Em seguida, copia os bits especficos de Source, muda os bits para a posio apropriada e os escreve os bits em Destination. Target e Source se mantm inalterados. Esta instruo est disponvel em lgica ladder como BTD, consulte a pgina 6-11.

Operandos:
BTDT(BTDT_tag);

Texto Estruturado
Varivel: BTDT tag Tipo: FBD_BIT_FIELD_DISTRIBUTE Formato: estrutura Descrio: estrutura BTDT

Bloco de Funes
Operando: tag BTDT Tipo: FBD_BIT_FIELD_DISTRIBUTE Formato: estrutura Descrio: estrutura BTDT

Estrutura FBD_BIT_FIELD_DISTRIBUTE
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Bloco de Funes: Se desenergizada, a instruo no executa e as sadas no so atualizadas. Se energizada, a instruo executa. Valor inicial energizado Texto Estruturado: Sem efeito. A instruo executa. Insira o valor que contm os bits a serem movidos para Destination. Vlido = qualquer inteiro A posio do bit em Source (menor nmero de bit a partir do qual s inicia a movimentao). Vlido = 0-31 Nmero de bits a movimentar Vlido = 1-32 A posio do bit em Dest (menor nmero para iniciar a cpia dos bits). Vlido = 0-31 Insira o valor para movimentar para Dest antes de movimentar bits de Source. Vlido = qualquer inteiro Descrio: A instruo produziu um resultado vlido. Resultado da operao de movimentao do bit. Os flags de status aritmtico so energizados para esta sada.

Source SourceBit

DINT DINT

Length DestBit Target Parmetro de Sada: EnableOut Dest

DINT DINT DINT Tipo de Dados: BOOL DINT

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-15

Descrio: Quando habilitada, a instruo BTD copia um grupo de bits de Source


para Destination. O grupo de bits identificado pelo bit Source (nmero de bit menos significativo do grupo) e Length (nmero de bits a serem copiados). O bit Destination identifica o nmero de bit menos significativo para iniciar em Destination. Source permanece inalterado. Se o comprimento do campo do bit ultrapassar Destination, a instruo no salvar os bits extras. Qualquer bit extra no d seqncia prxima palavra.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados Condies de Falha: nenhuma Execuo:
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao do Bloco de Funes: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. Ao do Texto Estruturado: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada.

EnableOut desenergizado, a instruo no faz nada e na as sadas no so atualizadas. A instruo executa. EnableOut est energizado. Nenhuma ao tomada. EnableIn est sempre energizado A instruo executa. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

6-16

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Exemplo:
Target 1 1 1 1 1 1

1. O controlador copia Target para Dest.

Dest

2. SourceBit e Length especificam quais bits em Source devem ser copiados em Dest, comeando por DestBit. Source e Target se mantm inalterados.
DestBit SourceBit

Source

Dest

As caixas sombreadas mostram os bits que foram alterados.

Texto Estruturado
BTDT_01.Source := source BTDT_01.SourceBit := source_bit; BTDT_01.Length := length; BTDT_01.DestBit := dest_bit; BTDT_01.Target := target

BTDT(BTDT_01);

distributed_value := BTDT_01.Dest;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-17

Zeramento (CLR)
Operandos:

A instruo CLR zera todos os bits de Destination.

Lgica Ladder
Operando: Destination Tipo: SINT INT DINT REAL Formato: tag Descrio: tag a ser zerado

dest := 0;

Texto Estruturado
O texto estruturado no possui uma instruo CLR. Entretanto, atribui 0 ao tag que voc quer desenergizar. Esta declarao de atributo desenergiza dest. Consulte Apndice C para informaes sobre a sintaxe declaraes de atributos no texto estruturado.

Descrio: A instruo CLR zera todos os bits de Destination. Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo zera Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Exemplo: Desenergiza todos os bits de value para 0. Lgica Ladder

Texto Estruturado
value := 0;

Publicao 1756-RM003F-PT-P - Maio 2002

6-18

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Swap (inverso) de Byte (SWPB)


Operandos:

A instruo SWPB reorganiza os bytes de um valor.

Lgica Ladder

Operando: Source

Tipo: INT DINT REAL

Formato: Insira: tag tag que contm os bytes que voc quer reorganizar

Order Mode

Se o Source for um: INT DINT REAL

E voc quer alterar os bytes para este modelo (cada letra representa um byte diferente): n/a ABCD DCBA ABCD CDAB ABCD BADC

Ento selecione: alguma das opes REVERSE (ou insira 0) WORD (ou insira 1) HIGH/LOW (ou insira 2)

Destination

INT DINT REAL

tag

tag para armazenar os bytes em uma nova ordem Se Source for um: INT DINT REAL Destination deve ser um: INT DINT DINT REAL

Texto Estruturado
SWPB(Source,OrderMode,Dest);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder SWPB. Se voc selecionar o modo HIGH/LOW, insira-o como HIGHLOW ou HIGH_LOW (sem slash). coloca o resultado em Destination. Quando voc l ou escreve os caracteres ASCII, geralmente, voc no precisa trocar os caracteres. As instrues de leitura e escrita ASCII (ARD, ARL, AWA, AWT) troca os caracteres automaticamente, conforme mostrado abaixo.

Descrio: A instruo SWPB redistribui a seqncia de bytes do Source. Ele

leitor do cdigo de barras

BA
42969

Nome do Tag bar_code[0]

Valor AB

Estilo ASCII

Tipo INT

AB

42968

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-19

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado Execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A sada da condio da linha definida como verdadeira. na A instruo redistribui os bytes especificados. A sada da condio da linha definida como falsa. Ao do Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa. A instruo redistribui os bytes especificados. Nenhuma ao tomada.

Exemplo 1: As trs instrues SWPB reorganizam os bytes de DINT_1 de acordo


com um modo de ordem diferente. O estilo do display ASCII e cada caractere representa um byte. Cada instruo coloca os bytes, em uma nova ordem, em um Destination diferente.

Lgica Ladder

Texto Estruturado
SWPB(DINT_1,REVERSE,DINT_1_reverse); SWPB(DINT_1,WORD,DINT_1_swap_word); SWPB(DINT_1,HIGHLOW,DINT_1_swap_high_low);

Exemplo 2: O exemplo a seguir reverte os bytes em cada elemento de um array.


Para um projeto RSLogix 5000 que contm este exemplo, abra a pasta RSLogix 5000\Projects\Samples, arquivo Swap_Bytes_in_Array.ACD. 1. Inicie os tags. A instruo SIZE encontra o nmero de elementos em array e armazena aquele valor em array_length. Uma instruo subseqente usa esse valor para determinar quando a rotina agiu sobre todos os elementos no array. 2. Reverta os bytes em um elemento do array.

Publicao 1756-RM003F-PT-P - Maio 2002

6-20

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

A instruo SWPB reverte os bytes do nmero do elemento que indicado pelo valor de index. Por exemplo, quando index igual a 0, a instruo SWPB age em array[0]. A instruo ADD incrementa index. A prxima vez que a instruo executar, a instruo SWPB age sobre o prximo elemento em array. 3. Determine quando a instruo SWPB agiu sobre todos os elementos no array. Se index for menor que o nmero de elementos no array (array_length), continue com o prximo elemento no array. Se index for igual array_length, ento SWPB agiu sobre todos os elementos no array.

Lgica Ladder
Inicie os tags.

Reverta os bytes.

Determine se a instruo SWPB agiu sobre todos os elementos no array.

Texto Estruturado
index := 0; SIZE (array[0],0,array_length); REPEAT SWPB(array[index],REVERSE,array_bytes_reverse[index]); index := index + 1; UNTIL(index >= array_length)END_REPEAT;
Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-21

AND (E)

A instruo AND realiza uma operao AND usando os bits em Source A e Source B e coloca o resultado em Destination. Para realizar um AND de lgica, consulte a pgina 6-33.

Operandos: Lgica Ladder


Operando: Source A Tipo: SINT INT DINT Formato: imediato tag Descrio: valor para AND com Source B

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Source B SINT INT DINT imediato tag valor para AND com Source A

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Destination SINT INT DINT tag armazena o resultado

Texto Estruturado
dest := sourceA AND sourceB

Use AND ou o sinal & como um operador dentro de uma expresso. Esta expresso avalia sourceA E sourceB. Consulte Apndice C para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag AND Tipo: FBD_LOGICAL Formato: estrutura Descrio: estrutura AND

Publicao 1756-RM003F-PT-P - Maio 2002

6-22

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Estrutura FBD_LOGICAL
Parmetro de Entrada: EnableIn SourceA SourceB Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL DINT DINT Tipo de Dados: BOOL DINT Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor para AND com SourceB. Vlido = qualquer inteiro Valor para AND com SourceA. Vlido = qualquer inteiro Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Os flags de status aritmtico so energizados para esta sada.

Descrio: Quando habilitada, a instruo avalia a operao AND


Se o bit em Source A for: E o bit em Source B for: 0 0 1 1 0 1 0 1 O bit em Destination ser: 0 0 0 1

Se houver combinao dos tipos de dados de inteiros, a instruo preencher os bits mais significativos dos tipos de dados de inteiros menores com 0 de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo realiza uma operao AND. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-23

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Quando habilitada, a instruo AND realiza uma operao AND em


SourceA e SourceB e coloca o resultado em Dest.

SourceA

SourceB

Dest

Lgica Ladder

Texto Estruturado
value_result_and := value_1 AND value_2;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

6-24

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

OR (OU)

A instruo OR realiza uma operao OR usando os bits em Source A e Source B e coloca o resultado em Destination. Para realizar um OR lgico, consulte a pgina 6-35.

Operandos: Lgica Ladder


Operando: Source A Tipo: SINT INT DINT Formato: imediato tag Descrio: valor para OR com Source B

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Source B SINT INT DINT imediato tag valor para OR com Source A

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Destination SINT INT DINT tag armazena o resultado

Texto Estruturado
dest := sourceA OR sourceB

Use OR como um operador dentro de uma expresso. Esta expresso avalia sourceA OU sourceB. Consulte Apndice C para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag OR Tipo: FBD_LOGICAL Formato: estrutura Descrio: estrutura OR

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-25

Estrutura FBD_LOGICAL
Parmetro de Entrada: EnableIn SourceA SourceB Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL DINT DINT Tipo de Dados: BOOL DINT Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor para OR com SourceB. Vlido = qualquer inteiro Valor para OR com SourceA. Vlido = qualquer inteiro Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Os flags de status aritmtico so energizados para esta sada.

Descrio: Quando habilitada, a instruo avalia a operao OR


Se o bit em Source A for: 0 0 1 1 E o bit em Source B for: 0 1 0 1 O bit em Destination ser: 0 1 1 1

Se houver uma mistura dos tipos de dados de inteiros, a instruo preencher os bits mais significativos dos tipos de dados de inteiros menores com 0, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo realiza uma operao OR. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

6-26

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Quando habilitada, a instruo OR realiza uma operao OR em


SourceA e SourceB e coloca o resultado em Dest.

SourceA

SourceB

Dest

Lgica Ladder

Texto Estruturado
value_result_or := value_1 OR value_2;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-27

Ou Exclusivo (XOR)

A instruo XOR realiza uma operao XOR usando os bits em Source A e Source B e coloca o resultado em Destination. Para realizar um XOR de lgica, consulte a pgina 6-38.

Operandos: Lgica Ladder


Operando: Source A Tipo: SINT INT DINT Formato: imediato tag Descrio: valor para XOR com Source B

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Source B SINT INT DINT imediato tag valor para XOR com Source A

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Destination SINT INT DINT tag armazena o resultado

Texto Estruturado
dest := sourceA XOR

Use XOR como um operador dentro de uma expresso. Esta expresso avalia sourceA XOR sourceB. Consulte Apndice C para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag XOR Tipo: FBD_LOGICAL Formato: estrutura Descrio: estrutura XOR

Publicao 1756-RM003F-PT-P - Maio 2002

6-28

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Estrutura FBD_LOGICAL
Parmetro de Entrada: EnableIn SourceA SourceB Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL DINT DINT Tipo de Dados: BOOL DINT Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor para XOR com SourceB. Vlido = qualquer inteiro Valor para XOR com SourceA. Vlido = qualquer inteiro Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Os flags de status aritmtico so energizados para esta sada.

Descrio: Quando habilitada, a instruo avalia a operao XOR:


Se o bit em Source A for: 0 0 1 1 E o bit em Source B for: 0 1 0 1 O bit em Destination ser: 0 1 1 0

Se houver uma combinao dos tipos de dados de inteiros, a instruo preencher os bits mais significativos dos tipos de dados de inteiros menores com 0, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo realiza uma operao OR. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-29

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Quando habilitada, a instruo XOR realiza uma operao XOR em


SourceA e SourceB e coloca o resultado no tag Destination

value_1

value_2

value_result_xor

Lgica Ladder

Texto Estruturado
value_result_xor := value_1 XOR value_2;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

6-30

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Complementao (NOT)

A instruo NOT realiza uma operao NOT usando os bits em Source e coloca o resultado em Destination. Para realizar um NOT de lgica, consulte a pgina 6-40.

Operandos: Lgica Ladder


Operando: Source Tipo: SINT INT DINT Formato: imediato tag Descrio: valor para NOT

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Destination SINT INT DINT tag armazena o resultado

Texto Estruturado
dest := NOT source

Use NOT como um operador dentro de uma expresso. Esta expresso avalia NOT source. Consulte Apndice C para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag NOT Tipo: FBD_LOGICAL Formato: estrutura Descrio: estrutura NOT

Estrutura FBD_LOGICAL
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL DINT Tipo de Dados: BOOL DINT Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Valor para NOT. Vlido = qualquer inteiro Descrio: A instruo produziu um resultado vlido. Resultado da instruo. Os flags de status aritmtico so energizados para esta sada.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-31

Descrio: Quando habilitada, a instruo avalia a operao NOT


Se o bit em Source for: 0 1 O bit em Destination ser: 1 0

Se houver uma combinao dos tipos de dados de inteiros, a instruo preencher os bits mais significativos dos tipos de dados de inteiros menores com 0, de forma que fiquem com o mesmo tamanho dos tipos de dados maiores.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo: Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo realiza uma operao NOT. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Quando habilitada, a instruo NOT realiza uma operao NOT sobre
Source e coloca o resultado em Dest.

value_1

value_result_not

Publicao 1756-RM003F-PT-P - Maio 2002

6-32

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Lgica Ladder

Texto Estruturado
value_result_not := NOT value_1;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-33

E Booleano (BAND)
Operandos:

A instruo BAND utiliza de forma lgica at 8 entradas booleanas. Para realizar um bitwise AND, consulte a pgina 6-21.

Texto Estruturado
IF operandA AND operandB THEN <statement>;

Use AND ou o sinal & como um operador dentro de uma expresso. Os operandos devem ser valores BOOL ou expresses que avaliem valores BOOL. Esta expresso avalia se operandA e operandB esto energizados (verdadeiro). Consulte Apndice C para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag BAND Tipo: FBD_BOOLEAN_AND Formato: estrutura Descrio: estrutura BAND

Estrutura FBD_BOOLEAN_AND
Parmetro de Entrada: EnableIn In1 In2 In3 In4 In5 In6 In7 In8 Parmetro de Sada: EnableOut Out Tipo de Dados: BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL Tipo de Dados: BOOL BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Primeira entrada booleana. Valor inicial energizado Segunda entrada booleana. Valor inicial energizado Terceira entrada booleana. Valor inicial energizado Quarta entrada booleana. Valor inicial energizado Quinta entrada booleana. Valor inicial energizado Sexta entrada booleana. Valor inicial energizado Stima entrada booleana. Valor inicial energizado Oitava entrada booleana. Valor inicial energizado Descrio: Habilita sada. A sada da instruo.

Publicao 1756-RM003F-PT-P - Maio 2002

6-34

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Descrio: A instruo BAND possui oito entradas booleanas ANDs. Se uma


entrada no usada, ela padroniza para energizada (1). Out = In1 AND In2 AND In3 AND In4 AND In5 AND In6 AND In7 AND In8

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao do Bloco de Funes: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo 1: Este exemplo ANDs bool_in1 e bool_in2 e coloca o resultado em


value_result_and.
Se bool_in1 for: 0 0 1 1 Se bool_in2 for: 0 1 0 1 Ento value_result_and : 0 0 0 1

Texto Estruturado
value_result_not := bool_in1 AND bool_in2;

Bloco de Funes

Exemplo 2: Se bool_in1 e bool_in2 esto energizados (verdadeiro), light1


energizado (aceso). Ou, light1 desenergizado (apagado).

Texto Estruturado
IF bool_in1 AND bool_in2 THEN light1 := 1; ELSE light1 := 0; END_IF;
Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-35

(OU) Booleano (BOR)

A instruo BOR possui oito entradas lgicas ORs booleanas possveis. Para realizar uma operao OR, consulte a pgina 6-24.

Operandos: Texto Estruturado


IF operandA OR operandB THEN <statement>; END_IF;

Use OR como um operador dentro de uma expresso. Os operandos devem ser valores BOOL ou expresses que avaliem em valores BOOL. Esta expresso avalia se operandA ou operandB ou ambos esto energizados (verdadeiro). Consulte Apndice C para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag BOR Tipo: FBD_BOOLEAN_OR Formato: estrutura Descrio: estrutura BOR

Estrutura FBD_BOOLEAN_OR
Parmetro de Entrada: EnableIn In1 In2 In3 In4 In5 In6 In7 In8 Parmetro de Sada: EnableOut Out Tipo de Dados: BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL Tipo de Dados: BOOL BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Primeira entrada booleana. Valor inicial desenergizado. Segunda entrada booleana. Valor inicial desenergizado. Terceira entrada booleana. Valor inicial desenergizado. Quarta entrada booleana. Valor inicial desenergizado. Quinta entrada booleana. Valor inicial desenergizado. Sexta entrada booleana. Valor inicial desenergizado. Stima entrada booleana. Valor inicial desenergizado. Oitava entrada booleana. Valor inicial desenergizado. Descrio: Habilita sada. A sada da instruo.

Publicao 1756-RM003F-PT-P - Maio 2002

6-36

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Descrio: A instruo BOR l ORs possui oito entradas booleanas. Se uma


entrada no usada, ela retorna para desenergizada (0). Out = In1 OR In2 OR In3 OR In4 OR In5 OR In6 OR In7 OR In8

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo


Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao do Bloco de Funes: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo 1: Este exemplo ORs bool_in1 e bool_in2 e coloca o resultado em


value_result_or.
Se bool_in2 for: 0 0 1 1 Se bool_in2 for: 0 1 0 1 Ento value_result_or : 0 1 1 1

Texto Estruturado
value_result_not := bool_in1 OR bool_in2;

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-37

Exemplo 2: Nesse exemplo, light1 energizado (aceso) se:


somente bool_in1 estiver energizado (verdadeiro). somente bool_in2 estiver energizado (verdadeiro). bool_in1 e bool_in2 estiverem energizados (verdadeiro). Ou, light1 desenergizado (apagado).

Texto Estruturado
IF bool_in1 OR bool_in2 THEN light1 := 1; ELSE light1 := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

6-38

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

(Ou Exclusivo) Booleano (BXOR)


Operandos:

A BXOR realiza um OR exclusivo em duas entradas booleanas. Para realizar uma operao XOR, consulte a pgina 6-27.

Texto Estruturado
IF operandA XOR operandB THEN <statement>; END_IF;

Use XOR como um operador dentro de uma expresso. Os operandos devem ser valores BOOL ou expresses que avaliem em valores BOOL. Esta expresso avalia se somente operandA ou somente operandB est energizado (verdadeiro). Consulte Apndice C para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: BXOR tag Tipo: FBD_BOOLEAN_XOR Formato: estrutura Descrio: estrutura BXOR

Estrutura FBD_BOOLEAN_XOR
Parmetro de Entrada: EnableIn In1 In2 Parmetro de Sada: EnableOut Out Tipo de Dados: BOOL BOOL BOOL Tipo de Dados: BOOL BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Primeira entrada booleana. Valor inicial desenergizado. Segunda entrada booleana. Valor inicial desenergizado. Descrio: Habilita sada. A sada da instruo.

Descrio: A instruo BXOR realiza um OU exclusivo em duas entradas


booleanas. Out = In1 XOR In2

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-39

Execuo:
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao do Bloco de Funes: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo 1: Este exemplo executa uma instruo XOR em bool_in1 e bool_in2 e


coloca o resultado em value_result_xor.
Se bool_in1 for: 0 0 1 1 Se bool_in2 for: 0 1 0 1 Ento value_result_xor : 0 1 1 0

Texto Estruturado
value_result_xor bool_in1 XOR bool_in2;

Bloco de Funes

Exemplo 2: Nesse exemplo, light1 energizado (aceso) se:


somente bool_in2 estiver energizado (verdadeiro). somente bool_in1 estiver energizado (verdadeiro). Ou, light1 desenergizado (apagado).

Texto Estruturado
IF bool_in1 XOR bool_in2 THEN light1 := 1; ELSE light1 := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

6-40

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

NOT Booleano (BNOT)


Operandos:

A instruo BNOT complementa uma entrada booleana. Para executar uma instruo NOT, consulte a pgina 6-30.

Texto Estruturado
IF NOT operand THEN <statement>; END_IF;

Use OR como um operador dentro de uma expresso. O operando deve ser valores BOOL ou expresses que avaliem em valores BOOL. Esta expresso avalia se operand est desenergizado (falso). Consulte Apndice C para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag BNOT Tipo: FBD_BOOLEAN_NOT Formato: estrutura Descrio: estrutura BNOT

Estrutura FBD_BOOLEAN_NOT
Parmetro de Entrada: EnableIn Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Entrada para a instruo. Valor inicial energizado Descrio: Habilita sada. A sada da instruo.

In Parmetro de Sada: EnableOut Out

BOOL Tipo de Dados: BOOL BOOL

Descrio: A instruo BNOT complementa uma entrada booleana.


Out = NOT In

Flags de Status Aritmtico: no afetados


WD1 Writer Designed tag 1Condies de Falha:

nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

6-41

Execuo:
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao do Bloco de Funes: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo 1: Este exemplo complementa bool_in1 e coloca o resultado em


value_result_not.
Se bool_in1 for: 0 1 Ento value_result_not : 1 0

Texto Estruturado
value_result_not NOT bool_in1;

Bloco de Funes

Exemplo 2: Se bool_in1 desenergizado, light1 desenergizado (apagado). Ou,


light1 energizado (aceso).

Texto Estruturado
IF NOT bool_in1 THEN light1 := 0; ELSE light1 := 1; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

6-42

Instrues de Movimentao/Lgica (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

InstruesInstrues de Array (Arquivo)/Miscelnea


(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Introduo
Se voc quiser: realizar operaes de funo, desvio, lgica e aritmtica nos valores dos arrays buscar e comparar valores em arrays

As instrues de arquivo/miscelnea nos arrays de dados.


Use esta instruo: FAL FSC COP CPS FLL AVE SRT Disponvel nessas linguagens: lgica ladder texto estruturado(1) lgica ladder lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado(1) lgica ladder texto estruturado(1) lgica ladder texto estruturado lgica ladder texto estruturado(1) lgica ladder texto estruturado Consulte pgina: 7-6 7-17 7-25 7-25 7-31 7-35 7-40 7-45 7-50

copiar o contedo de um array para outro array copiar o contedo de um array para outro array sem interrupo preencher um array com dados especficos calcular a mdia de um array de valores classificar uma dimenso de dados do array em ordem crescente

calcular o desvio padro de um array de valores STD encontrar o tamanho de uma dimenso de um array
(1)

SIZE

No h instruo de texto estruturado equivalente. Use outra programao de texto estruturado para alcanar o mesmo resultado. Veja a descrio para a instruo.

possvel combinar tipos de dados, mas a perda de preciso e erros de arredondamentos podem ocorrer, bem como demora na execuo da instruo. Verifique o bit S:V para observar se o resultado foi truncado. Para instrues de lgica ladder, os tipos de dados em negrito indicam tipos de dados otimizados. Uma instruo executa mais rapidamente e requer menos memria se todos os operandos da instruo usam o mesmo tipo de dados otimizados, geralmente DINT ou REAL.

Publicao 1756-RM003F-PT-P - Maio 2002

7-2

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Seleo do Modo de Operao

Para as instrues FAL e FSC, o modo informa o controlador sobre como distribuir a operao de array
Se voc quiser: operar em todos os elementos especificados em um array antes de prosseguir para a prxima instruo distribuir a operao de array em vrios scans inserir o nmero de elementos para operar por scan (1-2147483647) Selecione este modo: All (Todos) Numerical (Numrico)

manipular um elemento do array cada vez que a entrada da Incremental (Incremento) condio da linha passa de falsa para verdadeira

Modo ALL
No modo All, todos os elementos especificados no array so operados antes de prosseguir para a prxima instruo. A operao comea quando a entrada da condio da linha da instruo passa de falsa para verdadeira. O valor de posio (.POS) na estrutura de controle indica o elemento no array que a instruo est usando atualmente. A operao pra quando o valor .POS for igual ao valor .LEN.
Array de dados um scan

16639

O diagrama de temporizao a seguir mostra a relao entre os bits de status e a operao da instruo. Quando a execuo da instruo estiver completa, o bit .DN ser energizado. O bit .DN, o bit .EN e o valor .POS so zerados quando a entrada da condio da linha se torna falsa. Somente aps isto que outra execuo da instruo

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-3

pode ser disparada por uma transio de falsa para verdadeira da entrada da condio da linha.
um scan

entrada da condio da linha

bit .EN

bit DN zera os bits de status e zera o valor .POS scan da instruo

operao completa

nenhuma execuo ocorre

40010

Modo Numerical
O modo Numerical distribui a operao de array em vrios scans. Esse modo til quando se trabalha com dados crticos no temporizados ou um grande volume de dados. necessrio inserir o nmero de elementos para operar para cada scan, o que mantm o tempo de scan menor. A execuo disparada quando a entrada da condio da linha passa de falsa para verdadeira. Aps o disparo, a instruo executada cada vez que se realiza o scan na mesma para o nmero de scans necessrios para completar a operao em todo o array. Aps o disparo, a entrada da condio da linha pode se alterar repetidamente sem interromper a execuo da instruo.
um scan

segundo scan

prximo scan

16641

Publicao 1756-RM003F-PT-P - Maio 2002

7-4

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

IMPORTANTE

Evite usar os resultados de uma instruo de arquivo quando em modo numrico at que o bit .DN fique energizado.

O diagrama de temporizao a seguir mostra a relao entre os bits de status e a operao da instruo. Quando a execuo da instruo estiver completa, o bit .DN ser energizado.
a linha se torna verdadeira na concluso scans mltiplos a linha se torna falsa na concluso scans mltiplos

entrada da condio da linha

bit .EN bit .DN scan da instruo operao completa operao completa
40013

zera os bits de status e zera o valor .POS

zera os bits de status e zera o valor .POS

Se a entrada da condio da linha se tornar verdadeira na concluso, os bits .DN e .ER so energizados at que a entrada da condio da linha se torne falsa. Quando a entrada da condio da linha se torna falsa, esses bits so zerados e o valor .POS desenergizado. Se a entrada da condio da linha for falsa na concluso, o bit .EN ser zerado imediatamente. Um scan depois que o bit .EN desenergizado, o bit .DN e o valor .POS so zerados.

Modo Incremental
O modo Incremental manipula um elemento do array cada vez que a entrada da condio da linha da instruo passa de falsa para verdadeira.

1a. instruo habilitada 2a. instruo habilitada 3a. instruo habilitada

ltima instruo habilitada

16643

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-5

O diagrama de temporizao a seguir mostra a relao entre os bits de status e a operao da instruo. A execuo ocorre somente em um scan no qual a entrada da condio da linha passa de falsa para verdadeira. Cada vez que isso ocorre, apenas um elemento do array manipulado. Se a entrada da condio da linha permanecer verdadeira durante mais de um scan, a instruo executa somente durante o primeiro scan.
um scan

entrada da condio da linha

bit .EN

bit DN

scan da instruo operao completa

40014

zera os bits de status e zera o valor .POS

O bit .EN energizado quando a entrada da condio da linha se torna verdadeira. O bit .DN energizado quando o ltimo elemento no array for manipulado. Quando o ltimo elemento for manipulado e a entrada da condio da linha se tornar falsa, o bit .EN, o bit .DN e o valor .POS so removidos. A diferena entre o modo Incremental e o modo Numerical a uma taxa de um elemento por scan : O modo Numerical com qualquer nmero de elementos por scan requer somente uma transio de falsa para verdadeira da entrada da condio da linha para iniciar a execuo. A instruo continua a executar o nmero especificado de elementos a cada scan at a concluso, independente do estado da entrada da condio da linha. O modo Incremental requer que a entrada da condio da linha da instruo passe de falsa para verdadeira para manipular um elemento no array.

Publicao 1756-RM003F-PT-P - Maio 2002

7-6

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Aritmtica de Arquivos (FAL)


Operandos:

A instruo FAL realiza as operaes de cpia, aritmtica, lgica e funo nos dados armazenados em um array.

Lgica Ladder
Operando: Control Length Position Mode Destination Tipo: CONTROL DINT DINT DINT SINTA INT DINT REAL SINT INT DINT REAL Formato: tag imediato imediato imediato tag Descrio: estrutura de controle para a operao nmero de elementos no array a serem manipulados elemento atual no array normalmente, o valor inicial 0 como distribuir a operao seleccione INC, ALL ou insira um nmero tag para armazenar o resultado

Expression

imediato tag

uma expresso composta por tags e/ou valores imediatos separados por operadores

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal.

Texto Estruturado
O texto estruturado no possui uma instruo FAL, mas possvel alcanar os mesmos resultados usando uma instruo SIZE e uma FOR...DO ou outra construo de malha.
SIZE(destination,0,length-1); FOR position = 0 TO length DO destination[position] := numeric_expression; END_FOR;

Consulte pgina C- para informaes sobre a sintaxe de construes no texto estruturado.

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-7

Estrutura CONTROL
Mnemnico: .EN .DN .ER Tipo de Dados: Descrio: BOOL BOOL BOOL O bit habilitado indica que a instruo FAL est habilitada. O bit executado energizado quando a instruo operou no ltimo elemento (.POS = .LEN). O bit de erro energizado se a expresso gerar um overflow (S:V energizado). A instruo pra a execuo at que o programa zere o bit .ER. O valor .POS contm a posio do elemento que provocou o overflow. O comprimento especifica o nmero dos elementos no array no qual a instruo FAL opera. A posio contm a posio do elemento atual que a instruo est acessando.

.LEN .POS

DINT DINT

Descrio: A instruo FAL realiza as mesmas operaes nos arrays conforme a


instruo CPT realiza as operaes dos elementos. Os exemplos que comeam na pgina 7-13 mostram como usar o valor .POS para entrar em um array. Se o subscrito na expresso de Destination est fora da faixa, a instruo FAL gera uma falha grave (tipo 4, cdigo 20).

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Uma falha grave ocorrer se: subscrito estiver fora da faixa .POS < 0 ou .LEN < 0 Tipo de falha: 4 4 Cdigo de falha: 20 21

Publicao 1756-RM003F-PT-P - Maio 2002

7-8

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Execuo:
Condio: prescan entrada da condio da linha falsa Ao da Lgica Ladder: A sada da condio da linha definida como falsa.

examinar bit .DN

bit .DN = 0

modo INC sim bit .EN desenergizado.

no

bit interno desenergizado

bit .DN = 1

bit .EN desenergizado. bit .ER desenergizado. bit .DN desenergizado. valor .POS desenergizado

modo ALL sim

no

.LEN < 0 ou .POS < 0 no

sim

falha grave

.POS = .POS + 1

sim

.LEN = 0 no

.POS = 0 no .POS = .POS -1

sim no

.POS < .LEN sim

modo .LEN > bit .DN energizado. bit .EN energizado sim bit .DN energizado. bit .EN desenergizado. modo numrico

no

modo .LEN>

pgina 7-12

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-9

Condio: entrada da condio da linha verdadeira

Ao da Lgica Ladder:

.LEN < 0 ou .POS < 0 examinar bit .ER bit .ER = 1 examinar bit .DN bit .DN = 1 bit .ER = 0 no bit .DN = 0 .LEN = 0 sim bit .DN energizado. bit .EN energizado

sim

pgina 7-12 falha grave modo numrico no

no

modo INC sim

no modo ALL sim

modo INC pgina 7-10

modo ALL pgina 7-11

comum

loop_count = loop_count - 1

loop_count < 0 sim

no

.POS = .POS + 1

avaliar a expresso

examine S:V sim .POS = .POS + 1 bit .ER energizado

no

.POS = .LEN sim bit .DN energizado. bit .EN energizado

no

.POS = .POS + 1

sada da condio da linha definida como verdadeira

fim

Publicao 1756-RM003F-PT-P - Maio 2002

7-10

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Condio:
modo INC

Ao da Lgica Ladder:

bit .EN = 1 examinar bit .EN bit .EN = 0

examinar bit interno bit = 0

bit = 1 .POS = .POS + 1

bit interno energizado

.POS .LEN no bit .EN energizado loop_count = 1 .POS = .POS -1

sim

.POS = 0 no .POS = .POS -1

sim

bit .DN energizado. bit .EN energizado sada da condio da linha definida como verdadeira pgina 7-9 fim

comum

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-11

Condio:
modo ALL

Ao da Lgica Ladder:

bit .EN = 0 examinar bit .EN bit .EN = 1

examinar bit interno bit = 0

bit = 1

.POS = .POS + 1

bit .EN energizado

.POS .LEN no

sim

.POS = 0 no .POS = .POS -1

sim

loop_count = .LEN - .POS .POS = .POS -1

bit .DN energizado. bit .EN energizado comum pgina 7-9

sada da condio da linha definida como verdadeira

fim

Publicao 1756-RM003F-PT-P - Maio 2002

7-12

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Condio:
modo numrico

Ao da Lgica Ladder:

bit .EN = 1 examinar bit .EN bit .EN = 0

.POS = .POS + 1

examinar bit interno bit = 0 bit interno energizado

bit = 1

.POS .LEN no

sim

.POS = 0 no .POS = .POS -1

sim

modo .LEN>

no

modo .LEN sim bit .EN energizado loop_count = .LEN - .POS .POS = .POS -1 bit .DN energizado. bit .EN energizado sada da condio da linha definida como verdadeira

fim

modo loop_count no bit .EN energizado modo loop_count

sim

comum pgina 7-9

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-13

Exemplo 1: Quando habilitada, a instruo FAL copia cada elemento de array_2


na mesma posio dentro de array_1.
cpia de array para array

Expresso: array_2[control_2.pos]

Destination array_1[control_2.pos]

Exemplo 2: Quando habilitada, a instruo FAL copia value_1 nas primeiras 10


posies da segunda dimenso de array_2.
cpia de elemento para array

Expresso: value_1

Destination array_2[0,control_2.pos]

Exemplo 3: Cada vez que a instruo FAL habilitada, ela copia o valor atual de
array_1 para value_1. A instruo FAL usa o modo incremento, portanto, somente um valor de array copiado a cada hora em que a instruo habilitada. Na prxima vez em que a instruo habilitada, ela sobrescreve value_1 sobre o prximo valor em array_1.
cpia de array para elemento

Expresso: array_1[control_1.pos]

Destination value_1

Exemplo 4: Quando habilitada, a instruo FAL adiciona value_1 e value_2 e


armazena o resultado na posio atual de array_1.
operao aritmtica:(elemento + elemento) para array

Expresso: value_1 + value_2

Destination array_1[control_1.pos]

Publicao 1756-RM003F-PT-P - Maio 2002

7-14

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Exemplo 5: Quando habilitada, a instruo FAL divide o valor da posio atual de


array_2 pelo valor da posio atual de array_3 e armazena o resultado na posio atual de array_1.
operao aritmtica:(array / array) para array

Expresso: array_2[control_2.pos] / array_3[control_2.pos]

Destination array_1[control_2.pos]

Exemplo 6: Quando habilitada, a instruo FAL adiciona o valor na posio atual


em array_1 para value_1 e armazena o resultado na posio atual em array_3. A instruo deve executar 10 para o array_1 inteiro e array_3 para ser manipulada.
operao aritmtica:(array + elemento) para array

Expresso: array_1[control_1.pos] + value_1

Destination array_3[control_1.pos]

Exemplo 7: Cada vez que a instruo FAL habilitada, ela adiciona value_1 para o
valor atual de array_1 e armazena o resultado em value_2. A instruo FAL usa o modo incremento, portanto, somente um valor de array adicionado a value_1 cada hora que a instruo habilitada. A prxima vez que a instruo habilitada, a instruo sobrescreve value_2.
operao aritmtica:(elemento + array) para elemento

Expresso value_1 + array_1[control_1.pos]

Destination value_2

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-15

Exemplo 8: Quando habilitada, a instruo FAL multiplica o valor atual de array_1


pelo valor atual de array_3 e armazena o resultado em value_1. A instruo FAL usa o modo incremento, ento somente um par de valores de array multiplicado cada vez que a instruo habilitada. A prxima vez que a instruo habilitada, a instruo sobrescreve value_1.
operao aritmtica:(array array) para elemento

Expresso: array_1[control_1.pos] * array_3[control_1.pos]

Destination: value_1

expresses FAL
As expresses das instrues FAL so programadas da mesma forma que as expresses nas instrues CPT. Use as sees a seguir para mais informaes sobre operadores vlidos, formato e seqncia de operao que so comuns para as duas instrues.

Operadores vlidos
Operadores: + * / ** ABS ACS AND ASN ATN COS DEG FRD Descrio: adio subtrao/negativo multiplicao diviso expoente (x elevado a y) valor absoluto arco co-seno AND (E) arco seno arco tangente co-seno radianos em graus BCD para inteiro timo: DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL DINT, REAL DINT Operadores: LN LOG MOD NOT OR RAD SIN SQR TAN TOD TRN XOR Descrio: log neperiano log base 10 mdulo complementao OR (OU) graus em radianos seno raiz quadrada tangente inteiro para BCD truncamento OR exclusivo timo: REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

Publicao 1756-RM003F-PT-P - Maio 2002

7-16

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Formatao de expresses
Para cada operador utilizador, voc deve fornecer um ou dois operandos (tags ou valores imediatos). Use a tabela a seguir para formatar os operadores e os operandos em uma expresso:
Para operadores que operam em: um operando dois operandos Use este formato: operator(operand) operand_a operator operand_b Exemplos: ABS(tag_a) tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g)

Determinao da seqncia da operao


As operaes que voc escreve na expresso so executadas pela instruo na seqncia prescrita e no, necessariamente, na ordem que voc as escreveu. possvel suprimir a seqncia da operao agrupando-se os termos dentro de parnteses, forando a instruo para realizar uma operao dentro dos parnteses, antes de outras operaes. As operaes com a mesma seqncia so executadas da esquerda para a direita.
Seqncia: Operao: 1. 2. 3. 4. 5. 6. 7. 8. 9. () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (negativo), NOT *, /, MOD (subtrao), + AND XOR OR

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-17

Comparao e Busca de Arquivo (FSC)


Operandos:

A instruo FSC compara valores em um array, elemento por elemento.

Lgica Ladder
Operando: Control Length Position Tipo: CONTROL DINT DINT Formato: tag imediato imediato Descrio: estrutura de controle para a operao nmero de elementos no array a serem manipulados offset no array normalmente, valor inicial 0

Estrutura CONTROL
Mnemnico: .EN .DN .ER .IN .FD .LEN .POS Tipo de Dados: BOOL BOOL BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo FSC est habilitada. O bit executado energizado quando a instruo operou no ltimo elemento (.POS = .LEN). O bit de erro no modificado. O bit inibido indica que a instruo FSC detectou uma comparao verdadeira. necessrio zerar esse bit para continuar a operao de busca. O bit encontrado indica que a instruo FSC detectou uma comparao verdadeira. O comprimento especifica o nmero dos elementos no array na qual a instruo opera. A posio contm a posio do elemento atual que a instruo est acessando.

Descrio: Quando a instruo FSC est habilitada e a comparao verdadeira,


a instruo energiza o bit .FD e o bit .POS reflete a posio do array onde a instruo encontrou a comparao verdadeira. A instruo energiza o bit .IN para evitar outra busca.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Uma falha grave ocorrer se: .POS < 0 ou .LEN < 0 Tipo de falha: 4 Cdigo de falha: 21

Publicao 1756-RM003F-PT-P - Maio 2002

7-18

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Execuo:
Condio: prescan entrada da condio da linha falsa Ao da Lgica Ladder: A sada da condio da linha definida como falsa.

examinar bit .DN

bit .DN = 0

modo INC sim bit .EN desenergizado.

no

bit interno desenergizado

bit .DN = 1 bit .EN desenergizado. bit .ER desenergizado. bit .DN desenergizado. valor .POS desenergizado

modo ALL sim

no

.LEN < 0 ou .POS < 0 no

sim

falha grave

.POS = .POS + 1

sim

.LEN = 0 no

.POS = 0 no .POS = .POS -1

sim no

.POS < .LEN sim

modo .LEN > bit .DN energizado. bit .EN energizado sim bit .DN energizado. bit .EN desenergizado. modo numrico sada da condio da linha definida como falsa

no

modo .LEN>

pgina 7-12

fim

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-19

Condio: entrada da condio da linha for verdadeira

Ao da Lgica Ladder:
sim pgina 7-12 falha grave modo numrico no .LEN = 0 sim bit .DN energizado. bit .EN energizado examinar bit .DN bit .DN = 1 comum bit .DN = 0 no modo INC sim no modo ALL sim

.LEN < 0 ou .POS < 0 examinar bit .ER bit .ER = 1 examinar bit .IN bit .DN = 1 bit .IN = 0 bit .ER = 0 no bit .DN = 0

modo INC pgina 7-10

modo ALL pgina 7-11

loop_count = loop_count - 1

loop_count < 0 sim

no

.POS = .POS + 1

avaliar comparao

correspondncia sim .POS = .POS + 1 bit .EN energizado bit .FD energizado. bit .IN energizado

no

.POS = .LEN sim bit .DN energizado. bit .EN energizado

no

.POS = .POS + 1

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

7-20

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Exemplo 1: Buscar uma combinao entre dois arrays. Quando habilitada, a


instruo FSC compara cada um dos 10 primeiros elementos em array_1 com os elementos correspondentes em array_2.

array_1 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000001111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111

array_2 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 11111111111111110000000000000000 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 0 1 2 3 4 5 6 7 8 9

control_3.pos

A instruo FSC descobre que esses elementos no so iguais. A instruo energiza os bits .FD e .IN. O valor .POS (4) indica a posio dos elementos que so diferentes. Para continuar a realizar a comparao no restante do array, zere o bit .IN.

Exemplo 2: Buscar uma combinao em um array. Quando habilitada, a instruo


FSC compara MySearchKey com 10 elementos em array_1.

MySearchKey

referncia 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0 1 2 3 4 5 6 7 8 9

control_3.pos

11111111111111110000000000000000

11111111111111110000000000000000 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111

A instruo FSC descobre que esse elemento do array igual a MySearchKey. A instruo energiza os bits .FD e .IN. O valor .POS (4) indica a posio dos elementos iguais. Para continuar a realizar a comparao no restante do array, zere o bit .IN.

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-21

Exemplo 3: Buscar uma string em um array de strings. Quando habilitada, a


instruo FSC compara os caracteres em cdigo para 10 elementos em code_table.

code

code_table AFG BEH HUO SAK SAM SAM FQG CLE CAK DET BWG 0 1 2 3 4 5 6 7 8 9

code_table_search.POS

A instruo FSC acha que este elemento de array igual a code. A instruo energiza os bits .FD e .IN. O valor .POS (4) indica a posio dos elementos iguais. Para continuar a realizar a comparao no restante do array, zere o bit .IN.

Expresses FSC
As expresses das instrues FSC so programadas da mesma forma que as expresses nas instrues CMP. Use as sees a seguir para mais informaes sobre operadores vlidos, formato e seqncia de operao que so comuns nas duas instrues.

Publicao 1756-RM003F-PT-P - Maio 2002

7-22

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Operadores vlidos
Operador: + * / = < <= > <= <> ** ABS ACS AND ASN ATN COS Descrio: adio subtrao/negativo multiplicao diviso igual menor que menor ou igual a maior que maior ou igual a diferente de expoente (x elevado a y) valor absoluto arcos co-seno AND arco seno arco tangente co-seno DINT timo: DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL Operador: DEG FRD LN LOG MOD NOT OR RAD SIN SQR TAN TOD TRN XOR Descrio: radianos em graus BCD para inteiro log neperiano log base 10 mdulo complementao OR graus em radianos seno raiz quadrada tangente inteiro para BCD trancar XOR timo: DINT, REAL DINT REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

Formatao de expresses
Para cada operador utilizador, voc deve fornecer um ou dois operandos (tags ou valores imediatos). Use a tabela a seguir para formatar os operadores e os operandos em uma expresso:
Para operadores que operam em: um operando dois operandos Use este formato: operator(operand) operand_a operator operand_b Exemplos: ABS(tag_a) tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g)

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-23

Determinao da seqncia da operao


As operaes que voc escreve na expresso so executadas pela instruo na seqncia prescrita e no, necessariamente, na ordem que voc as escreveu. possvel suprimir a seqncia da operao agrupando-se os termos dentro de parnteses, forando a instruo para realizar uma operao dentro dos parnteses, antes de outras operaes. As operaes com a mesma seqncia so executadas da esquerda para a direita.
Seqncia: Operao: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (negativo), NOT *, /, MOD <, <=, >, >=, = (subtrao), + AND XOR OR

Uso de strings em uma expresso


Use uma expresso em lgica ladder ou em texto estruturado para comparar os tipos de dados da string. Para usar strings em uma expresso, siga estas orientaes: Uma expresso permite que voc compare dois tags da string. Voc no pode inserir caracteres ASCII em uma expresso diretamente. Somente os operadores a seguir so permitidos
Operador: = < <= > >= <> Descrio: igual menor que menor ou igual a maior que maior ou igual a diferente de

Publicao 1756-RM003F-PT-P - Maio 2002

7-24

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

As strings so iguais se os caracteres corresponderem. Os caracteres ASCII so sensveis ao contexto. A letra A ($41) maiscula no igual letra "a" minscula ($61). Os valores hexadecimais dos caracteres determinam se um string menor ou maior que outro. Para o cdigo hexadecimal de caractere, consulte a parte de trs deste manual. Quando duas strings so classificadas em um diretrio de telefones, a seqncia das strings determina qual maior
Caracteres ASCII 1ab
m e n or q u e m ai or q u e

Cdigos Hex $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b a AB B a ab

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-25

Cpia de Arquivo (COP) Arquivo de Cpia Sncrono (CPS)


Operandos:

As instrues COP e CPS copiam o(s) valor(es) em Source para Destination. Source permanece inalterado.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL string estrutura SINT INT DINT REAL string structure DINT Formato: tag Descrio: elemento inicial para cpia Importante: os operandos Source e Destination devem ter o mesmo tipo de dados ou podem ocorrer resultados inesperados.

Destination

tag

elemento inicial a ser sobrescrito por Source Importante: os operandos Source e Destination devem ter o mesmo tipo de dados ou podem ocorrer resultados inesperados.

Length

imediato tag

nmero de elementos em Destination a serem copiados

Texto Estruturado
COP(Source,Dest,Length); CPS(Source,Dest,Length);

Os operandos so os mesmos que aqueles para as instrues de lgica ladder COP e CPS.

Descrio: Durante a execuo das instrues COP e CPS, outras aes do


controlador podem tentar interromper a operao de cpia e mudar os dados de fonte ou destino:
Se a fonte ou destino for: tag produzido tag consumido dados de E/S dados que outra tarefa pode sobrescrever E voc quiser: prevenir que os dados mudem durante a operao de cpia Ento selecione: CPS Notas: Tarefas que tentam interromper uma instruo CPS so atrasadas at que a instruo seja concluda. Para estimar o tempo de execuo da instruo CPS, consulte ControlLogix System User Manual, publicao 1756-UM001.

permitir que os dados mudem durante a operao de cpia nenhum dos acima

COP COP

O nmero de bytes copiados :

Publicao 1756-RM003F-PT-P - Maio 2002

7-26

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Contagem de Byte = Comprimento (nmero de bytes no tipo de dados de Destination) ATENO Se a contagem de byte for maior do que o comprimento de Source, dados no previstos sero copiados para os elementos restantes.

As instrues COP e CPS operam na memria de dados contgua e realizam uma cpia de memria byte por byte, o que requisita um entendimento do layout da memria do controlador. As instrues COP e CPS no escrevem aps o final do array. Se Length for maior do que o nmero total de elementos no array Destination, as instrues COP e CPS param no final do array. Nenhuma falha grave gerada.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-27

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha est definida como verdadeira. na Ao do Texto Estruturado Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa.


end_address = start_address + (Comprimento nmero de bytes em um elemento de destino)

execuo da instruo

end_address > fim do array destination

sim

end_address = fim do array destination

no

source_address = Source

destination_address = end_address

sim

no

copiar os dados de source_address para destination _address sada da condio da linha definida como verdadeira source_address = source _address + 1 fim

destination_address = destination_address + 1

postscan

A sada da condio da linha definida como falsa.

Nenhuma ao tomada.

Exemplo 1: Tanto array_4 como array_5 so o mesmo tipo de dados. Quando


habilitada, a instruo COP copia os primeiros 10 elementos de array_4 nos primeiros 10 elementos de array_5.

Publicao 1756-RM003F-PT-P - Maio 2002

7-28

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Lgica Ladder

Texto Estruturado:
COP(array_4[0],array_5[0],10);

Exemplo 2: Quando habilitada, a instruo COP copia a estrutura timer_1 no


elemento 5 de array_timer. A instruo copia somente uma estrutura para um elemento do array.

Lgica Ladder

Texto Estruturado:
COP(timer_1,array_timer[5],1);

Exemplo 3: O array project_data (100 elementos) armazena uma variedade de


valores que mudam em momentos diferentes na aplicao. Para enviar uma imagem completa de project_data a uma instncia por vez para outro controlador, a instruo CPS copia project_data para produced_array. Enquanto a instruo CPS copia os dados, nenhuma atualizao de E/S ou outras tarefas podem mudar os dados. O tag produced_array produz os dados em uma rede ControlNet para o consumo por outros controladores. Para usar a mesma imagem de dados (ou seja, fazer uma cpia sincronizada de dados), o controlador consumidor usa uma instruo CPS para copiar os dados de um tag consumido para outro tag para uso na aplicao.

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-29

Lgica Ladder

Texto Estruturado:
CPS(project_data[0],produced_array[0],100);

Exemplo 4: Local:0:I.Data armazena os dados de entrada para a rede DeviceNet


que est conectada ao mdulo 1756-DNB no slot 0. Para sincronizar as entradas com a aplicao, a instruo CPS copia os dados de entrada para input_buffer. Enquanto a instruo CPS copia os dados, nenhuma atualizao de E/S pode mudar os dados. Conforme a aplicao executa, ela usa os dados de entrada em input_buffer para suas entradas.

Lgica Ladder

Texto Estruturado:
CPS(Local:0:I.Data[0],input_buffer[0],20);

Publicao 1756-RM003F-PT-P - Maio 2002

7-30

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Exemplo 5: Esse exemplo inicializa um array de estruturas de temporizador.


Quando habilitadas, as instrues MOV inicializam os valores .PRE e .ACC do primeiro elemento array_timer. Quando habilitada, a instruo COP copia um bloco contnuo de bytes, iniciando em array_timer[0]. O comprimento de nove estruturas de temporizador.
array_timer[0] Primeiro a instruo copia os valores timer[0] em timer[1] Ento, a instruo copia os valores timer[1] em timer[2] Depois, a instruo copia os valores timer[2] em timer[3] Ento, a instruo copia os valores timer[3] em timer[4]

array_timer[1]

array_timer[2]

array_timer[3]

array_timer[4]


array_timer[9] Finalmente, a instruo copia os valores timer[9] em timer[10]

array_timer[10]

Lgica Ladder

Texto Estruturado:
IF S:FS THEN array_timer[0].pre := 500; array_timer[0].acc := 0; COP(array_timer[0],array_timer[1],10); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-31

Preenchimento de Arquivo (FLL)


Operandos:

A instruo FLL preenche os elementos de um array com o valor Source. Source permanece inalterado.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL structure Formato: imediato tag Descrio: elemento para cpia Importante: os operandos Source e Destination devem ter o mesmo tipo de dados ou podem ocorrer resultados inesperados. elemento inicial a ser sobrescrito por Source Importante: os operandos Source e Destination devem ter o mesmo tipo de dados ou podem ocorrer resultados inesperados. O melhor jeito para inicializar uma estrutura usar a instruo COP. nmero de elementos a serem preenchidos

Destination

tag

Length

DINT

imediato

Texto Estruturado
O texto estruturado no possui uma instruo FLL, mas possvel alcanar os mesmos resultados usando uma instruo SIZE e uma FOR...DO ou outra construo de malha.
SIZE(destination,0,length); FOR position = 0 TO length-1 DO destination[position] := source; END_FOR;

Consulte pgina C- para informaes sobre a sintaxe de construes no texto estruturado.

Descrio: O nmero de bytes preenchidos :


Contagem de Byte = Comprimento (nmero de bytes no tipo de dados de Destination) A instruo FLL opera na memria de dados contnua. A instruo FLL no gravar logo aps o final de um array. Se o comprimento for maior do que o nmero total de elementos no array Destination, a instruo COP pra no final do array. Nenhuma falha grave gerada. Para obter resultados melhores, Source e Destination devem ser do mesmo tipo. Se voc quiser preencher uma estrutura, use a instruo COP (consulte o exemplo 3 na pgina 7-28). Se voc quiser combinar
Publicao 1756-RM003F-PT-P - Maio 2002

7-32

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

os tipos de dados para Source e Destination, os elementos em Destination so preenchidos com os valores convertidos de Source.
Se Source for: SINT, INT, DINT ou REAL SINT, INT, DINT ou REAL SINT, INT, DINT ou REAL SINT, INT, DINT ou REAL SINT INT DINT REAL E Destination for: SINT INT DINT REAL structure structure structure structure Source convertido para: SINT INT DINT REAL SINT (no convertido) INT (no convertido) DINT (no convertido) REAL (no convertido)

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-33

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

end_address = start_address + (Comprimento nmero de bytes em um elemento de destino)

end_address > fim do array destino

sim

end_address = fim do array destino

no

source_address = Source

destination_address = end_address

sim

no

copiar os dados de source_address para destination _address

destination_address = destination_address + 1

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Exemplo: A instruo FLL copia o valor em value_1 para dest_1

Publicao 1756-RM003F-PT-P - Maio 2002

7-34

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Lgica Ladder

Tipo de dados (value_1) Source: SINT DINT SINT REAL SINT

Valor (value_1) Source: 16#80 (-128) 16#1234 5678 16#01 2.0 16#01

Destination (dest_1) tipo de dados: DINT SINT REAL INT TIMER

Destination (dest_1) valor depois de FLL: 16#FFFF FF80 (-128) 16#78 1.0 16#0002 16#0101 0101 16#0101 0101 16#0101 0101 16#0001 0001 16#0001 0001 16#0001 0001 16#0000 0001 16#0000 0001 16#0000 0001

INT

16#0001

TIMER

DINT

16#0000 0001

TIMER

Texto Estruturado:
dest_1 := value_1;

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-35

Mdia de Arquivo (AVE)


Operandos:

A instruo AVE calcula a mdia de um conjunto de valores.

Lgica Ladder
Operando: Array Tipo: SINT INT DINT REAL DINT Formato: tag do array Descrio: encontre a mdia dos valores nesse array especifique o primeiro elemento do grupo de elementos para a mdia no use CONTROL.POS no subscrito a dimenso a ser usada depende do nmero de dimenses, a seqncia array[dim_0,dim_1,dim_2] array[dim_0,dim_1] array[dim_0] resultado da operao

Dimension to vary

imediato (0, 1, 2)

Destination

SINT INT DINT REAL CONTROL DINT DINT

tag

Control Length Position

tag imediato imediato

estrutura de controle para a operao nmero de elementos do array para a mdia elemento atual no array normalmente, valor inicial 0

Texto Estruturado
O texto estruturado no possui uma instruo AVE, mas possvel alcanar os mesmos resultados usando uma instruo SIZE e uma FOR...DO ou outra construo de malha.
SIZE(array,0,length); sum := 0; FOR position = 0 TO length DO-1 sum := sum + array[position]; END_FOR; Destination = sum / length;

Consulte pgina C- para informaes sobre a sintaxe de construes no texto estruturado.

estrutura CONTROL
Mnemnico: Tipo de Dados: Descrio: .EN .DN BOOL BOOL O bit habilitado indica que a instruo AVE est habilitada. O bit executado energizado quando a instruo operou no ltimo elemento no Array (.POS = .LEN).

Publicao 1756-RM003F-PT-P - Maio 2002

7-36

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Mnemnico: Tipo de Dados: Descrio: .ER .LEN .POS BOOL DINT DINT O bit de erro energizado se a instruo gerar um overflow. A instruo pra a execuo at que o programa zere o bit .ER. A posio do elemento que provocou o overflow est armazenada no valor .POS. O comprimento especifica o nmero dos elementos no array no qual a instruo opera. A posio contm a posio do elemento atual que a instruo est acessando.

Descrio: A instruo AVE calcula a mdia de um conjunto de valores.


IMPORTANTE Certifique-se de que Length no faa com que a instruo exceda o operando Dimension to vary especificado. Se isso ocorrer, Destination ficar incorreto.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Uma falha grave ocorrer se: .POS < 0 ou .LEN < 0 o operando Dimension to vary no existe para o array especificado Tipo de falha: 4 4 Cdigo de falha: 21 20

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-37

Execuo:
Condio: prescan Ao da Lgica Ladder: O bit .EN desenergizado. O bit .DN desenergizado. O bit .ER desenergizado. A sada da condio da linha definida como falsa.

entrada da condio da linha for falsa

examinar bit .DN

bit .DN = 0

bit .DN = 1

bit .EN desenergizado. bit .ER desenergizado. bit .DN desenergizado. valor .POS desenergizado

sada da condio da linha definida como falsa

fim

entrada da condio da linha for verdadeira

A instruo AVE calcula a mdia, adicionando todos os elementos especificados no array e dividindo pelo nmero de elementos. Internamente, a instruo usa uma instruo FAL para calcular a mdia. Expresso = clculo da mdia Modo = ALL Para obter detalhes sobre como a instruo FAL executa, consulte a pgina 7-8. A sada da condio da linha definida como falsa.

postscan

Exemplo 1: Mdia array_dint, que DINT[4,5].


dimenso 1
c bs su os rit

0 20 15 10 5 19 14 9 4

1 18 13 8 3

2 17 12 7 2

3 16 11 6 1

0 dimenso 0 1 2 3

AVE = 19 + 14 + 9 + 4 = 46 = 11.5 ---------------------------------------4 4


dint_ave = 12

Publicao 1756-RM003F-PT-P - Maio 2002

7-38

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Lgica Ladder

Texto Estruturado:
SIZE(array_dint,0,length); sum := 0; FOR position = 0 TO (length-1) DO sum := sum + array_dint[position]; END_FOR; dint_ave := sum / length;

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-39

Exemplo 2: Mdia array_dint, que DINT[4,5].


dimenso 1
su t cri bs

0 20 15 10 5 19 14 9 4

1 18 13 8 3

2 17 12 7 2

3 16 11 6 1

0 dimenso 0 1 2 3

os

AVE = 5 + 4 + 3 + 2 + 1 = 15 = 3 ------------------------------------------5 5
dint_ave = 3

Lgica Ladder

Texto Estruturado:
SIZE(array_dint,1,length); sum := 0; FOR position = 0 TO length-1 DO sum := sum + array_dint[position]; END_FOR; dint_ave = sum / length;

Publicao 1756-RM003F-PT-P - Maio 2002

7-40

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Classificao de Arquivo (SRT)


Operandos:

A instruo SRT classifica um conjunto de valores em uma dimenso (Dim to vary) do array em ordem crescente.

Lgica Ladder
Operando: Array Tipo: SINT INT DINT REAL DINT Formato: tag do array Descrio: array para classificao especifique o primeiro elemento do grupo de elementos para classificao no use CONTROL.POS no subscrito a dimenso a ser usada depende do nmero de dimenses, a seqncia array[dim_0,dim_1,dim_2] array[dim_0,dim_1] array[dim_0] estrutura de controle para a operao nmero de elementos do array para classificao elemento atual no array normalmente, valor inicial 0

Dimension to vary

imediato (0, 1, 2)

Control Length Position

CONTROL DINT DINT

tag imediato imediato

Texto Estruturado
SRT(Array,Dimtovary, Control);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder SRT. Entretanto, pode-se especificar os valores de Length e Position ao acessar os membros .LEN e .POS da estrutura CONTROL, ou ao incluir os valores na lista de operando.

Estrutura CONTROL
Mnemnico: .EN .DN .ER .LEN .POS Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo SRT est habilitada. O bit executado energizado quando os elementos especificados forem classificados. O bit de erro energizado quando uma das condies .LEN < 0 ou .POS < 0 tambm gerar uma falha grave. O comprimento especifica o nmero dos elementos no array no qual a instruo opera. A posio contm a posio do elemento atual que a instruo est acessando.

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-41

Descrio: A instruo SRT classifica um conjunto de valores em uma dimenso


(Dim to vary) do array em ordem crescente. IMPORTANTE Certifique-se de que Length no faa com que a instruo exceda o operando Dimension to vary especificado. Se isto acontecer, resultados inesperados ocorrero.

Essa uma instruo transicional: Na lgica ladder, alterna-se a entrada da condio de linha de desenergizado para energizado a cada hora que a instruo deveria ser executada. No texto estruturado, condicione a instruo para que ela somente execute em uma transio. Consulte pgina C-.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Uma falha grave ocorrer se: .POS < 0 ou .LEN < 0 o operando Dimension to vary no existe para o array especificado A instruo tenta acessar os dados localizados fora dos limites do array. Tipo de falha: 4 4 4 Cdigo de falha: 21 20 20

Publicao 1756-RM003F-PT-P - Maio 2002

7-42

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Execuo:
Condio: prescan Ao da Lgica Ladder: O bit .EN desenergizado. O bit .DN desenergizado. O bit .ER desenergizado. A sada da condio da linha definida como falsa. Ao do Texto Estruturado O bit .EN desenergizado. O bit .DN desenergizado. O bit .ER desenergizado. na

entrada da condio da linha falsa


examinar bit .DN bit .DN = 0

bit .DN = 1

bit .EN desenergizado. bit .ER desenergizado. bit .DN desenergizado. valor .POS desenergizado

sada da condio da linha definida como falsa

fim

entrada da condio da linha verdadeira EnableIn est energizado Execuo da Instruo postscan

A instruo executa. A sada da condio da linha est definida como verdadeira. na

na

EnableIn est sempre energizado A instruo executa.

A instruo escolhe os elementos especificados A instruo escolhe os elementos especificados do array em ordem ascendente. do array em ordem ascendente. A sada da condio da linha definida como falsa. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-43

Exemplo 1: Classifique array_dint, que DINT[4,5].


Antes
dimenso 1
c bs su s to cr i bs su

Depois
dimenso 1 3 17 12 7 2 16 11 dimenso 0 10 5 9 4 8 3 6 1 4 0 20 15 10 5 19 14 9 4 1 3 8 13 18 2 17 12 7 2 3 16 11 6 1 4
rit os

0 20 15 19 14

1 18 13

0 dimenso 0 1 2 3

0 1 2 3

Lgica Ladder

Texto Estruturado:
control_1.LEN := 4; control_1.POS := 0; SRT(int_array[0,2],0,control_1);

Publicao 1756-RM003F-PT-P - Maio 2002

7-44

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Exemplo 2: Classifique int _array, que DINT[4,5].


Antes
dimenso 1
c bs su c bs su os rit

Depois
dimenso 1 3 17 12 7 2 16 11 dimenso 0 10 5 9 4 8 3 6 1 4 0 20 15 6 5 19 14 7 4 1 18 13 8 3 2 17 12 9 2 3 16 11 10 1 4
o rit

0 20 15 19 14

1 18 13

0 dimenso 0 1 2 3

0 1 2 3

Lgica Ladder

Texto Estruturado
control_1.POS := 5; control_1.pos = 0; SRT(int_array[2,0],1,control_1);

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-45

Desvio Padro do Arquivo (STD)


Operandos:

A instruo STD calcula o desvio padro de um conjunto de valores em uma dimenso do Array e armazena o resultado em Destination.

Lgica Ladder
Operando: Array Tipo: SINT INT DINT REAL Formato: Descrio: tag do array encontra o desvio padro dos valores nesse array especifica o primeiro elemento do grupo de elementos a serem usados no clculo do desvio padro no use CONTROL.POS no subscrito a dimenso a ser usada depende do nmero de dimenses, a seqncia array[dim_0,dim_1,dim_2] array[dim_0,dim_1] array[dim_0] resultado da operao estrutura de controle para a operao nmero de elementos do array a serem usados no clculo do desvio padro elemento atual no array normalmente, valor inicial 0

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Dimension to vary DINT imediato (0, 1, 2)

Destination REAL Control Length Position DINT DINT

tag imediato imediato

CONTROL tag

estrutura CONTROL
Mnemnico: .EN .DN .ER Tipo de Dados: BOOL BOOL BOOL Descrio: O bit habilitado indica que a instruo STD est habilitada. O bit executado energizado quando o clculo concludo. O bit de erro energizado quando a instruo gerar um overflow. A instruo pra a execuo at que o programa zere o bit .ER. A posio do elemento que provocou o overflow est armazenada no valor .POS. O comprimento especifica o nmero dos elementos no array no qual a instruo opera. A posio contm a posio do elemento atual que a instruo est acessando.

.LEN .POS

DINT DINT

Texto Estruturado
O texto estruturado no possui uma instruo STD, mas possvel alcanar os mesmos resultados usando uma instruo SIZE e uma FOR...DO ou outra construo de malha.
SIZE(destination,0,length); sum := 0; FOR position = 0 TO length-1 DO sum := sum + array[position];

Publicao 1756-RM003F-PT-P - Maio 2002

7-46

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

END_FOR; average := sum / length; sum := 0; FOR position = 0 TO length-1 DO sum := sum + ((array[position] - average)**2); END_FOR; destination := SQRT(sum /(length-1));

Consulte pgina C- para informaes sobre a sintaxe de construes no texto estruturado.

Descrio: O desvio padro calculado de acordo com esta frmula:

Desvio Padro =

N 2 [ X ( start + i ) AVE ] i = 1 ------------------------------------------------------------------(N 1)

Onde: start = subscrito dimension-to-vary do operando array xi = elemento do tag no array N = nmero de elementos especificados no array N AVE =

x ( start + i ) i = 1 ---------------------------------------N

IMPORTANTE

Certifique-se de que Length no faa com que a instruo exceda o operando Dimension to vary especificado. Se isso ocorrer, Destination ficar incorreto.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-47

Condies de Falha:
Uma falha grave ocorrer se: .POS < 0 ou .LEN < 0 o operando Dimension to vary no existe para o array especificado Tipo de falha: 4 4 Cdigo de falha: 21 20

Execuo:
Condio: prescan Ao da Lgica Ladder: O bit .EN desenergizado. O bit .DN desenergizado. O bit .ER desenergizado. A sada da condio da linha definida como falsa.

entrada da condio da linha for falsa

examinar bit .DN

bit .DN = 0

bit .DN = 1

bit .EN desenergizado. bit .ER desenergizado. bit .DN desenergizado. valor .POS desenergizado

sada da condio da linha definida como falsa

fim

entrada da condio da linha verdadeira

A instruo STD calcula o desvio padro dos elementos especificados. Internamente, a instruo usa uma instruo FAL para calcular a mdia. Expresso = clculo do desvio padro Modo = ALL Para obter detalhes sobre como a instruo FAL executa, consulte a pgina 7-8. A sada da condio da linha definida como falsa.

postscan

Publicao 1756-RM003F-PT-P - Maio 2002

7-48

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Exemplo 1: Calcular o desvio padro de dint_array, que DINT[4,5].


dimenso 1
c bs su o rit

0 20 15 10 5 19 14 9 4

1 18 13 8 3

2 17 12 7 2

3 16 11 6 1

0 dimenso 0 1 2 3

AVE = 16 + 11 + 6 + 1 = 34 = 8.5 ---------------------------------------4 4


2 2 2 2

STD =

16 8.5 + 11 8.5 + 6 8.5 + 1 8.5 -------------------------------------------------------------------------------------------------------------------------- = 6.454972 4 1

real_std = 6.454972

Lgica Ladder

Texto Estruturado
SIZE(dint_array,0,length); sum := 0; FOR position = 0 TO (length-1) DO sum := sum + dint_array[position]; END_FOR; average := sum / length; sum := 0; FOR position = 0 TO (length-1) DO sum := sum + ((dint_array[position] - average)**2); END_FOR; real_std := SQRT(sum /(length-1));

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-49

Exemplo 2: Calcular o desvio padro de dint_array, que DINT[4,5].


dimenso 1
c bs su os rit

0 20 15 10 5 19 14 9 4

1 18 13 8 3

2 17 12 7 2

3 16 11 6 1

0 dimenso 0 1 2 3

AVE = 20 + 19 + 18 + 17 + 16 = 90 = 18 ---------------------------------------------------------5 5
2 2 2 2

STD =

20 18 + 19 18 + 18 18 + 17 18 + 16 18 ----------------------------------------------------------------------------------------------------------------------------------------------------------- = 1.581139 5 1

real_std = 1.581139

Lgica Ladder

Texto Estruturado
SIZE(dint_array,1,length); sum := 0; FOR position = 0 TO (length-1) DO sum := sum + array_dint[position]; END_FOR; average := sum / length; sum := 0; FOR position = 0 TO (length-1) DO sum := sum + ((array[position] - average)**2); END_FOR; real_std = SQRT(sum /(length-1));

Publicao 1756-RM003F-PT-P - Maio 2002

7-50

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Tamanho em Elementos (SIZE)


Operandos:

A instruo SIZE encontra o tamanho de uma dimenso de um array.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL structure string DINT Formato: tag do array Descrio: array no qual a instruo operar

Dimension to Vary

imediato (0, 1, 2)

dimenso a ser usada Para o tamanho da: primeira dimenso segunda dimenso terceira dimenso Insira: 0 1 2

Size

SINT INT DINT REAL

tag

tag para armazenar o nmero de elementos na dimenso especificada do array

Texto Estruturado
SIZE(Source,Dimtovary,Size);

Os operandos so os mesmos que aqueles para a instruo da lgica ladder SIZE.

Descrio: A instruo SIZE encontra o nmero de elementos (tamanho) na


dimenso determinada do array Source e coloca o resultado no operando Size. A instruo encontra o tamanho de uma dimenso de um array. A instruo opera em: array array em uma estrutura array que parte de um array maior

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

7-51

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na A instruo encontra o tamanho de uma dimenso. A sada da condio da linha definida como falsa. Ao do Texto Estruturado Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa. A instruo encontra o tamanho de uma dimenso. Nenhuma ao tomada.

Exemplo 1: Encontrar o nmero de elementos na dimenso 0 (primeira dimenso)


de array_a. Armazene o tamanho em array_a_size. Neste exemplo, a dimenso 0 de array_a tem 10 elementos.

Lgica Ladder
SIZE Size in Elements Source array_a[0] 255 Dim. To Vary 0 Size array_a_size 10

Texto Estruturado
SIZE(array_a,0,array_a_size);

Exemplo 2: Encontrar o nmero de elementos no membro DATA de string_1 que


uma string. Armazene o tamanho em string_1_size. Neste exemplo, o membro DATA da string_1 tem 82 elementos. (A string usa o tipo de dados STRING padro.) Como cada elemento mantm um caracter, string_1 pode conter at 82 caracteres.

Lgica Ladder
SIZE Size in Elements Source string_1.DATA[0] '$00' Dim. To Vary 0 Size string_1_size 82

Texto Estruturado
SIZE(string_1.DATA[0],0,string_1_size);

Publicao 1756-RM003F-PT-P - Maio 2002

7-52

InstruesInstrues de Array (Arquivo)/Miscelnea (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)-

Exemplo 3: Strings_a um array de estruturas da string. A instruo SIZE encontra


o nmero de elementos no membro DATA da estrutura da string e armazena o tamanho em data_size_a. Neste exemplo, o membro DATA tem 24 elementos. (A estrutura de string tem um comprimento especificado pelo usurio de 24).

Lgica Ladder
SIZE Size in Elements Source strings_a[0].DATA[0] '$00' Dim. To Vary 0 Size data_size_a 24

Texto Estruturado
SIZE(strings_a[0].DATA[0],0,data_size_a);

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

Instrues de Array (Arquivo)/Deslocamento


(BSL, BSR, FFL, FFU, LFL, LFU)

Introduo
Se voc quiser: carregar bits, deslocar bits e descarregar bits de um array de bits, um bit de cada vez. carregar e descarregar os valores na mesma seqncia. carregar e descarregar os valores em ordem reversa.

Use as instrues de array (arquivo)/deslocamento para modificar a localizao dos dados dentro dos arrays.
Use esta instruo: BSL BSR FFL FFU LFL LFU Disponvel nessas linguagens: lgica ladder lgica ladder lgica ladder lgica ladder lgica ladder lgica ladder Consulte pgina: 8-2 8-5 8-8 8-14 8-20 8-26

possvel misturar os tipos de dados, mas podem ocorrer perda de preciso e erro de arredondamento. Para instrues de lgica ladder, os tipos de dados em negrito indicam tipos de dados otimizados. Uma instruo executa mais rapidamente e requer menos memria se todos os operandos da instruo usam o mesmo tipo de dados otimizados, geralmente, DINT ou REAL.

Publicao 1756-RM003F-PT-P - Maio 2002

8-2

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Deslocamento de Bit para a Esquerda (BSL)


Operandos:

A instruo BSL desloca os bits especificados dentro do Array uma posio para a esquerda.

Lgica Ladder
Operando: Array Tipo: DINT Formato: tag do array Descrio: array a ser modificado especifique o primeiro elemento do grupo de elementos no use CONTROL.POS no subscrito estrutura de controle para a operao bit a ser deslocado nmero de bits do array a ser deslocado

Control Source bit Length

CONTROL BOOL DINT

tag tag imediato

Estrutura CONTROL
Mnemnico: .EN .DN .UL .ER .LEN Tipo de Dados: BOOL BOOL BOOL BOOL DINT Descrio: O bit habilitado indica que a instruo BSL est habilitada. O bit executado energizado para indicar que os bits foram deslocados uma posio para a esquerda. O bit de descarga a sada da instruo. O bit .UL armazena o status do bit que foi deslocado fora da faixa dos bits. O bit de erro energizado quando .LEN < 0. O comprimento especifica o nmero de bits no array a ser deslocado.

Descrio: Quando habilitada, a instruo descarrega o bit mais significativo dos


bits especificados para o bit .UL, desloca os bits restantes uma posio para a esquerda e carrega o bit Source no bit 0 do Array. A instruo BSL opera na memria de dados contnua.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-3

Execuo
Condio: prescan Ao da Lgica Ladder: O bit .EN desenergizado. O bit .DN desenergizado. O bit .ER desenergizado. O valor .POS desenergizado. A sada da condio da linha definida como falsa. O bit .EN desenergizado. O bit .DN desenergizado. O bit .ER desenergizado. O valor .POS desenergizado. A sada da condio da linha definida como falsa.

entrada da condio da linha falsa

entrada da condio da linha verdadeira

examinar bit .EN

bit .EN = 1

bit .EN = 0 bit .EN energizado

.LEN = 0

sim

bit .DN energizado.

no examinar bit source .LEN < 0 sim bit .ER energizado .source bit = 0 no bit .UL energizado deslocar array da esquerda uma posio para a esquerda bit .UL array bit source .source bit = 1 bit .UL permanece energizado

sada da condio da linha definida como verdadeira bit .DN energizado. .POS = .LEN fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

8-4

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Exemplo 1: Quando habilitada, a instruo BSL comea no bit 0 em array_dint[0].


A instruo descarrega array_dint[0].9 no bit .UL, desloca os bits remanescentes e carrega input_1 em array_dint[0].0. Os valores nos bits remanescentes (10-31) so invlidos.

9 array_dint[0] antes do deslocamento 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0

8 0

7 1

6 1

5 1

4 1

3 0

2 0

1 0

0 0 1

0 bit .UL 9 array_dint[0]dep ois do deslocamento 0 8 1

esses bits foram deslocados esquerda 7 1 6 1 5 1 4 0 3 0 2 0 1 0 0 1

input_1

Exemplo 2: Quando habilitada, a instruo BSL comea no bit 0 em array_dint[0].


A instruo descarrega array_dint[1].25 no bit .UL, desloca os bits remanescentes e carrega input_1 em array_dint[0].0. Os valores nos bits remanescentes (31-26 em array_dint[1]) so invlidos. Observe como array_dint[0].31 desloca-se atravs das palavras para array_dint[1].0.

31 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 1 esses bits foram deslocados para a esquerda input_1

31 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 0

0 bit .UL

esses bits foram deslocados para a esquerda

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-5

Deslocamento de Bit para a Direita (BSR)


Operandos:

A instruo BSR desloca os bits especificados dentro do Array uma posio para a direita.

Lgica Ladder
Operando: Array Tipo: DINT Formato: tag do array Descrio: array a ser modificado especifica o elemento em que o deslocamento deve comear no use CONTROL.POS no subscrito estrutura de controle para a operao bit a ser deslocado nmero de bits do array a ser deslocado

Control Bit Source Length

CONTROL BOOL DINT

tag tag imediato

Estrutura CONTROL
Mnemnico: .EN .DN .UL .ER .LEN Tipo de Dados: BOOL BOOL BOOL BOOL DINT Descrio: O bit habilitado indica que a instruo BSR est habilitada. O bit executado energizado para indicar que os bits foram deslocados uma posio para a direita. O bit de descarga a sada da instruo. O bit .UL armazena o status do bit que foi deslocado fora da faixa dos bits. O bit de erro energizado quando .LEN < 0. O comprimento especifica o nmero de bits no array a ser deslocado.

Descrio: Quando habilitada, a instruo descarrega o valor do bit do Array para


o bit .UL, desloca os bits restantes uma posio para a direita e carrega o bit Source no bit mais significativo dos bits especificados. A instruo BSR opera na memria de dados contnua.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

8-6

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execuo
Condio: prescan Ao da Lgica Ladder: O bit .EN desenergizado. O bit .DN desenergizado. O bit .ER desenergizado. O valor .POS desenergizado. A sada da condio da linha definida como falsa. O bit .EN desenergizado. O bit .DN desenergizado. O bit .ER desenergizado. O valor .POS desenergizado. A sada da condio da linha definida como falsa.

entrada da condio da linha for falsa

entrada da condio da linha verdadeira

examinar bit .EN

bit .EN = 1

bit .EN = 0 bit .EN energizado

.LEN = 0

sim

bit .DN energizado.

no examinar bit source .LEN < 0 sim bit .ER .source bit = 0 no bit .UL energizado deslocar array da esquerda uma posio para a esquerda Bit Source array bit .UL .source bit = 1 bit .UL permanece energizado

sada da condio da linha definida como verdadeira bit .DN energizado. .POS = .LEN

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-7

Exemplo 1: Quando habilitada, a instruo BSR comea no bit 9 em array_dint[0].


A instruo descarrega array_dint[0].0 no bit .UL, desloca os bits remanescentes direita e carrega input_1 em array_dint[0].9. Os valores nos bits remanescentes (10-31) so invlidos.

9 array_dint[0] antes do deslocamento 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0

8 0

7 1

6 1

5 1

4 1

3 0

2 0

1 0

0 0

0 1 input_1 9 array_dint[0]dep ois do deslocamento 1 8 0 7 0 6 1 5 1 4 1 3 1 2 0 1 0 0 0 esses bits foram deslocados para a direita bit .UL

Exemplo 2: Quando habilitada, a instruo BSR comea no bit 25 em array_dint[1].


A instruo descarrega array_dint[0].0 no bit .UL, desloca os bits remanescentes direita e carrega input_1 em array_dint[1].25. Os valores nos bits remanescentes (31-26 em dint_array[1]) so invlidos. Observe como array_dint[1].0 desloca-se atravs das palavras para array_dint[1].31.

31 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 para a direita

0 bit .UL

31 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 0

1 input_1

esses bits foram deslocados para a direita

Publicao 1756-RM003F-PT-P - Maio 2002

8-8

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Carga FIFO (FFL)


Operandos:

A instruo FFL copia o valor Source para FIFO.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL string structure Formato: imediato tag Descrio: dados a serem armazenados em FIFO

Source converte ao tipo de dados do tag do array. Um inteiro menor converte a um inteiro maior pela extenso do sinal. FIFO SINT INT DINT REAL string estrutura CONTROL tag do array FIFO a ser modificado especifique o primeiro elemento de FIFO no use CONTROL.POS no subscrito

Control

tag

estrutura de controle para a operao geralmente, usa o mesmo CONTROL, conforme associado a FFU nmero mximo de elementos que FIFO pode controlar de uma vez. prxima localizao em FIFO em que a instruo carrega os dados. normalmente, valor inicial 0

Length Position

DINT DINT

imediato imediato

Se voc usar uma estrutura definida pelo usurio como tipo de dados para o operando Source ou FIFO, use a mesma estrutura para os dois operandos.

estrutura CONTROL
Mnemnico: .EN .DN .EM .LEN .POS Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo FFL est habilitada. O bit executado energizado para indicar que FIFO est cheio (.POS=LEN). O bit .DN inibe a carga FIFO at .POS < .LEN. O bit vazio indica que FIFO est vazio. Se .LEN 0 ou .POS < 0, o bit .EM e o bit .DN so energizados. O comprimento especifica o nmero mximo de elementos que FIFO pode controlar de uma vez. A posio identifica a localizao em FIFO em que a instruo carregar o prximo valor.

Descrio: Use a instruo FFL com a instruo FFU para armazenar e recuperar
dados na seqncia primeiro a entrar, primeiro a sair. Quando usada em pares, as instrues FFL e FFU estabelecem um registro de deslocamento assncrono.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-9

Geralmente, Source e FIFO so do mesmo tipo de dados. Quando habilitada, a instruo FFL carrega o valor Source na posio FIFO identificada pelo valor .POS. A instruo carrega um valor cada vez que a instruo habilitada at que FIFO fique cheio. A instruo FFL opera na memria de dados contnua.

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: (elemento de incio + .POS) > tamanho do array de FIFO Tipo de falha: Cdigo de falha: 4 20

Publicao 1756-RM003F-PT-P - Maio 2002

8-10

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execuo
Condio: prescan
o bit .EN energizado para evitar uma carga falsa quando o scan comear

Ao da Lgica Ladder:

.LEN < 0

sim

no

.POS < 0

sim

no

.EM desenergizado. bit .DN desenergizado.

.EM energizado .DN energizado

.POS = 0

sim

.EM energizado

no

.POS .LEN

sim

.DN energizado

no

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-11

Condio: entrada da condio da linha falsa

Ao da Lgica Ladder:

bit .EN desenergizado.

.LEN < 0

sim

no

.POS < 0

sim

no

.EM desenergizado. bit .DN desenergizado.

.EM energizado .DN energizado

.POS = 0

sim

.EM energizado

no

.POS .LEN

sim

.DN energizado

no

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

8-12

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Condio: entrada da condio da linha for verdadeira

Ao da Lgica Ladder:

examinar bit .EN .EN = 1

.EN = 0

bit .EN energizado

.LEN < 0 no

sim

.LEN < 0 no

sim

.POS < 0

sim

no bit .EM energizado .DN energizado

.POS < 0 no bit .EM desenergizado. bit .DN desenergizado.

sim

bit .EM desenergizado. bit .DN desenergizado. .POS = .POS + 1

bit .EM energizado .DN energizado .POS .LEN no sim bit .DN energizado.

sim .POS = 0 no bit .EM energizado


.POS ou .LEN > tamanho do array

sim falha grave

no .POS .LEN no sim bit .DN energizado. sim

.POS > .LEN no

.POS = .POS -1

FIFO[.POS - 1] = source

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-13

Exemplo: Quando habilitada, a instruo FFL carrega value_1 para a prxima


posio em FIFO, que array_dint[5] nesse exemplo.

antes da carga FIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_1 = 55555

depois da carga FIFO 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1.pos = 6

Publicao 1756-RM003F-PT-P - Maio 2002

8-14

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Descarga FIFO (FFU)


Operandos:

A instruo FFU descarrega o valor da posio 0 (primeira posio) de FIFO e armazena esse valor em Destination. Os dados restantes em FIFO se deslocam uma posio para baixo.

Lgica Ladder
Operando: FIFO Tipo: SINT INT DINT REAL string structure SINT INT DINT REAL string structure Formato: tag do array Descrio: FIFO a ser modificado especifique o primeiro elemento de FIFO no use CONTROL.POS no subscrito

Destination

tag

valor que saiu de FIFO

O valor de Destination converte no tipo de dados do tag Destination. Um inteiro menor converte em um inteiro maior pela extenso do sinal. Control CONTROL tag estrutura de controle para a operao geralmente, usa o mesmo CONTROL como a FFL associada nmero mximo de elementos que FIFO pode controlar de uma vez. prxima localizao em FIFO onde a instruo descarrega os dados. normalmente, valor inicial 0

Length Position

DINT DINT

imediato imediato

Se voc usar uma estrutura definida pelo usurio como tipo de dados para o operando FIFO ou Destination, use a mesma estrutura para os dois operandos.

estrutura CONTROL
Mnemnico: . EU .DN .EM .LEN .POS Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit de descarga habilitado indica que a instruo FFU est habilitada. O bit .EU energizado para pr-programar uma descarga falsa quando o scan do programa inicia. O bit executado energizado para indicar que FIFO est cheio (.POS=LEN). O bit vazio indica que FIFO est vazio. Se .LEN 0 ou .POS < 0, o bit .EM e o bit .DN so definidos. O comprimento especifica o nmero mximo de elementos em FIFO. A posio identifica o fim dos dados que foram carregados em FIFO.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-15

Descrio: Use a instruo FFU com a instruo FFL para armazenar e recuperar
dados na seqncia primeiro a entrar, primeiro a sair (FIFO). Quando habilitada, a instruo FFU descarrega os dados do primeiro elemento de FIFO e coloca esse valor em Destination. A instruo descarrega um valor cada vez que a instruo habilitada, at que FIFO fique vazio. Se FIFO estiver vazio, FFU retorna 0 para Destination. A instruo FFU opera na memria de dados contnua.

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: Length > FIFO tamanho do array Tipo de falha: 4 Cdigo de falha: 20

Publicao 1756-RM003F-PT-P - Maio 2002

8-16

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execuo
Condio: prescan Ao da Lgica Ladder:

o bit .EU energizado para evitar uma descarga falsa quando o scan comear

.LEN < 0

sim

no

.POS < 0

sim

no

.EM desenergizado. bit .DN desenergizado.

.EM energizado .DN energizado

.POS = 0

sim

.EM energizado

no

.POS .LEN

sim

.DN energizado

no

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-17

Condio: entrada da condio da linha falsa

Ao da Lgica Ladder:

bit .EU desenergizado.

.LEN < 0

sim

no

.POS < 0

sim

no

.EM desenergizado. bit .DN desenergizado.

.EM energizado .DN energizado

.POS = 0

sim

.EM energizado

no

.POS .LEN

sim

.DN energizado

no

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

8-18

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Condio: entrada da condio da linha for verdadeira


.EU = 0

Ao da Lgica Ladder:

examinar bit .EU .EU = 1

bit .EU energizado

.LEN < 0 no

sim

.LEN < 0

sim

.POS < 0 no bit .EM desenergizado. bit .DN desenergizado.

sim

no

.POS < 0 no bit .EM desenergizado. bit .DN desenergizado.

sim

bit .EM energizado .DN energizado

bit .EM energizado .DN energizado

.LEN > tamanho do array no

sim

falha grave

.POS = 0 no

sim

bit .EM energizado

.POS 1 no

sim

bit .EM energizado

.POS .LEN no

sim

.POS < 1 bit .DN energizado. no .POS = .POS -1 Destination = FIFO[0] i=1

sim

Destination = 0

FIFO[i - 1] = FIFO[i] i = i +1

sim i < .LEN no sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-19

Exemplo: Quando habilitada, a instruo FFU descarrega array_dint[0] em


value_2 e desloca os elementos restantes para array_dint.

antes da descarga FIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1.pos = 6

depois da descarga FIFO 11111 22222 33333 44444 55555 00000 00000 00000 00000 00000 control_1.pos = 5 value_2 = 00000

Publicao 1756-RM003F-PT-P - Maio 2002

8-20

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Carga LIFO (LFL)


Operandos:

A instruo LFL copia o valor Source para LIFO.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL string structure Formato: imediato tag Descrio: dados a serem armazenados em LIFO

Source converte para o tipo de dados do tag do array. Um inteiro menor converte para um inteiro maior pela extenso do sinal. LIFO SINT INT DINT REAL string structure CONTROL tag do array LIFO a ser modificado especifique o primeiro elemento de LIFO no use CONTROL.POS no subscrito

Control

tag

estrutura de controle para a operao geralmente usa o mesmo CONTROL conforme a LFU associada nmero mximo de elementos que LIFO pode controlar de uma vez. prxima localizao em LIFO em que a instruo carrega os dados. normalmente, valor inicial 0

Length Position

DINT DINT

imediato imediato

Se voc usar uma estrutura definida pelo usurio como tipo de dados para o operando Source ou LIFO, use a mesma estrutura para os dois operandos.

estrutura CONTROL
Mnemnico: .EN .DN .EM .LEN .POS Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo LFL est habilitada. O bit executado energizado para indicar que LIFO est cheio (.POS=LEN). O bit .DN inibe a carga de LIFO at .POS < .LEN. O bit vazio indica que LIFO est vazio. Se .LEN 0 ou .POS < 0, o bit .EM e o bit .DN so energizados. O comprimento especifica o nmero mximo de elementos que LIFO pode controlar de uma vez. A posio identifica a localizao em LIFO em que a instruo carregar o prximo valor.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-21

Descrio: Use a instruo LFL com a instruo LFU para armazenar e recuperar
dados na seqncia ltimo a entrar, primeiro a sair. Quando usada em pares, as instrues LFL e LFU estabelecem um registro de deslocamento assncrono. Geralmente, Source e LIFO so do mesmo tipo de dados. Quando habilitada, a instruo LFL carrega o valor Source na posio LIFO identificada pelo valor .POS. A instruo carrega um valor cada vez que a instruo habilitada, at que LIFO fique cheia. A instruo LFL opera na memria de dados contnua.

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: (elemento de incio + .POS) > tamanho do array de LIFO Tipo de falha: 4 Cdigo de falha: 20

Publicao 1756-RM003F-PT-P - Maio 2002

8-22

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execuo
Condio: prescan Ao da Lgica Ladder:

o bit .EN energizado para evitar uma carga falsa

.LEN < 0

sim

no

.POS < 0

sim

no

.EM desenergizado. bit .DN desenergizado.

.EM energizado .DN energizado

.POS = 0

sim

.EM energizado

no

.POS .LEN

sim

.DN energizado

no

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-23

Condio: entrada da condio da linha falsa

Ao da Lgica Ladder:

bit .EN desenergizado.

.LEN < 0

sim

no

.POS < 0

sim

no

.EM desenergizado. bit .DN desenergizado.

.EM energizado .DN energizado

.POS = 0

sim

.EM energizado

no

.POS .LEN

sim

.DN energizado

no

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

8-24

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Condio: entrada da condio da linha verdadeira

Ao da Lgica Ladder:

examinar bit .EN .EN = 1

.EN = 0

bit .EN energizado

.LEN < 0 no

sim

.LEN < 0 no

sim

.POS < 0

sim

no bit .EM energizado .DN energizado

.POS < 0 no bit .EM desenergizado. bit .DN desenergizado.

sim

bit .EM desenergizado. bit .DN desenergizado. .POS = .POS + 1

bit .EM energizado .DN energizado .POS .LEN no sim bit .DN energizado.

.POS = 0 no

sim

bit .EM energizado


.POS ou .LEN > tamanho do array

sim

falha grave

no .POS .LEN no sim bit .DN energizado. sim

.POS > .LEN no

.POS = .POS -1

LIFO[.POS - 1] = source

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-25

Exemplo: Quando habilitada, a instruo LFL carrega value_1 para a prxima


posio em LIFO, que array_dint[5] nesse exemplo.

antes da carga LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_1 = 55555

depois da carga LIFO 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1.pos = 6

Publicao 1756-RM003F-PT-P - Maio 2002

8-26

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Descarga LIFO (LFU)


Operandos:

A instruo LFU descarrega o valor em .POS de LIFO e armazena 0 naquele local.

Lgica Ladder
Operando: LIFO Tipo: SINT INT DINT REAL string structure SINT INT DINT REAL string structure Formato: tag do array Descrio: LIFO a ser modificado especifique o primeiro elemento de LIFO no use CONTROL.POS no subscrito

Destination

tag

valor que saiu de LIFO

O valor de Destination converte para o tipo de dados do tag Destination. Um inteiro menor converte para um inteiro maior pela extenso do sinal. Control CONTROL tag estrutura de controle para a operao geralmente usa o mesmo CONTROL conforme a LFL associada nmero mximo de elementos que LIFO pode controlar de uma vez. prxima localizao em LIFO em que a instruo descarrega os dados. valor inicial normalmente 0

Length Position

DINT DINT

imediato imediato

Se voc usar uma estrutura definida pelo usurio como tipo de dados para o operando LIFO ou Destination, use a mesma estrutura para os dois operandos.

estrutura CONTROL
Mnemnico: . EU .DN .EM .LEN .POS Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit de descarga habilitado indica que a instruo LFU est habilitada. O bit .EU energizado para pr-programar uma descarga falsa quando o scan do programa inicia. O bit executado energizado para indicar que LIFO est cheio (.POS=LEN). O bit vazio indica que LIFO est vazio. Se .LEN 0 ou .POS < 0, o bit .EM e o bit .DN so energizados. O comprimento especifica o nmero mximo de elementos que LIFO pode controlar de uma vez. A posio identifica o fim dos dados que foram carregados em LIFO.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-27

Descrio: Use a instruo LFU com a instruo LFL para armazenar e recuperar
dados na seqncia ltimo a entrar, primeiro a sair (LIFO). Quando habilitada, a instruo LFU descarrega o valor em .POS de LIFO e o coloca em Destination. A instruo descarrega um valor e o substitui com 0 cada vez que a instruo est habilitada at que LIFO fique vazia. Se LIFO estiver vazia, LFU retorna 0 para Destination. A instruo LFU opera na memria de dados contnua.

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: Length > LIFO tamanho do array Tipo de falha: 4 Cdigo de falha: 20

Publicao 1756-RM003F-PT-P - Maio 2002

8-28

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Execuo
Condio: prescan
o bit .EU energizado para evitar uma descarga falsa quando o scan comear

Ao da Lgica Ladder:

.LEN < 0

sim

no

.POS < 0

sim

no

.EM desenergizado. bit .DN desenergizado.

.EM energizado .DN energizado

.POS = 0

sim

.EM energizado

no

.POS .LEN

sim

.DN energizado

no

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-29

Condio: entrada da condio da linha falsa

Ao da Lgica Ladder:

bit .EU desenergizado.

.LEN < 0

sim

no

.POS < 0

sim

no

.EM desenergizado. bit .DN desenergizado.

.EM energizado .DN energizado

.POS = 0

sim

.EM energizado

no

.POS .LEN

sim

.DN energizado

no

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

8-30

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Condio: entrada da condio da linha verdadeira


.EU = 0

Ao da Lgica Ladder:

examinar bit .EU .EU = 1

bit .EU energizado

.LEN < 0 no

sim

.LEN < 0

sim

.POS < 0 no bit .EM desenergizado. bit .DN

sim

no

.POS < 0 no bit .EM desenergizado. bit .DN desenergizado.

sim

bit .EM energizado .DN energizado

bit .EM energizado .DN energizado

.POS 1 no

sim

bit .EM energizado

.POS = 0 no

sim

bit .EM energizado

.POS < 1 no

sim

Destination = 0

.POS .LEN no

sim

.POS > .LEN bit .DN energizado. no .POS = .POS -1

sim

.POS = .LEN

.LEN > tamanho do array no

sim

falha grave

Destination = LIFO[control.POS] LIFO[control.POS) = 0

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

8-31

Exemplo: Quando habilitada, a instruo LFU descarrega array_dint[5] em


value_2.

antes da descarga LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1.pos = 6

depois da descarga LIFO 00000 11111 22222 33333 44444 00000 00000 00000 00000 00000 control_1.pos = 5 value_2 = 55555

Publicao 1756-RM003F-PT-P - Maio 2002

8-32

Instrues de Array (Arquivo)/Deslocamento (BSL, BSR, FFL, FFU, LFL, LFU)

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

Instrues do Seqenciador
(SQI, SQO, SQL)

Introduo
Se voc quiser: Detectar quando uma etapa concluda. Definir as condies de sada para a prxima etapa.

Nenhuma ao tomada. As instrues do seqenciador monitoram as operaes de forma consistente e repetida.


Use esta instruo: SQI SQO SQL Disponvel nessas linguagens: lgica ladder lgica ladder lgica ladder Consulte pgina: 9-2 9-6 9-10

Carregar as condies de referncia nos arrays do seqenciador

Para instrues de lgica ladder, os tipos de dados em negrito indicam tipos de dados otimizados. Uma instruo executa mais rapidamente e requer menos memria se todos os operandos da instruo usam o mesmo tipo de dado otimizado, geralmente DINT ou REAL.

Publicao 1756-RM003F-PT-P - Maio 2002

9-2

Instrues do Seqenciador (SQI, SQO, SQL)

Entrada do Seqenciador (SQI)


Operandos:

A instruo SQI detecta quando uma etapa concluda em um par de seqncia de instrues SQO/SQI.

Lgica Ladder
Operando: Array Tipo: DINT Formato: Descrio:

tag do array array do seqenciador especifica o primeiro elemento de array do seqenciador no use CONTROL.POS no subscrito tag imediato quais bits devem ser bloqueados ou podem passar

Mask

SINT INT DINT

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Source SINT INT DINT tag dados de entrada para o array do seqenciador

Um tag SINT ou INT convertido para um valor DINT pela extenso de sinal. Control CONTROL tag estrutura de controle para a operao normalmente usa o mesmo CONTROL que as instrues SQO e SQL nmero de elementos no Array (tabela do seqenciador) para comparar posio atual no array normalmente, o valor inicial 0

Length Position

DINT DINT

imediato imediato

Estrutura CONTROL
Mnemnico: .ER .LEN .POS Tipo de Dados: BOOL DINT DINT Descrio: O bit de erro energizado quando .LEN 0, .POS < 0, or .POS > .LEN. O comprimento especifica o nmero de etapas no array do seqenciador. A posio identifica o elemento que a instruo est comparando atualmente.

Descrio: Quando habilitada, a instruo SQI compara um elemento Source


atravs de um Mask para um elemento Array para igualdade. Geralmente, usa a mesma estrutura CONTROL que as instrues SQO e SQL A instruo SQI opera na memria de dados contnua.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues do Seqenciador (SQI, SQO, SQL)

9-3

Insero de um valor de mscara imediato


Ao inserir uma mscara, o software de programao retorna ao padro dos valores decimais. Caso voc queira inserir uma mscara usando outro formato, coloque o prefixo correto antes do valor.
Prefixo: 16# 8# 2# Descrio: hexadecimal por exemplo; 16#0F0F octal por exemplo; 8#16 binrio por exemplo; 2#00110011

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

9-4

Instrues do Seqenciador (SQI, SQO, SQL)

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

.LEN 0 .POS < 0 ou .POS > .LEN sim bit .ER energizado

no

bit .ER desenergizado.

no

Source mascarado = Array[.POS] mascarado

sim

sada da condio da linha definida como falsa

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues do Seqenciador (SQI, SQO, SQL)

9-5

Exemplo: Quando habilitada, a instruo SQI passa o value_2 atravs da


mscara para determinar se o resultado igual ao elemento atual em array_dint. A comparao mascarada verdadeira, ento, a sada da condio de linha verdadeira.

operando SQI Source Mask Array

Exemplo de valores (DINTs exibidos em binrio): xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 00000000 00000000 00001111 00001111 xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Um 0 na mscara significa que o bit no comparado (designado por xxxx nesse exemplo).

Uso de SQI sem SQO


Se usar a instruo SQI sem uma instruo SQO em par, voc precisa incrementar externamente o array do seqenciador. A instruo SQI compara o valor da fonte. A instruo ADD incrementa o array do seqenciador. O GRT determinou se um outro valor est disponvel para examinar o array do seqenciador. A instruo MOV reseta, uma vez, o valor de posio aps a concluso da etapa atravs do array do seqenciador.

Publicao 1756-RM003F-PT-P - Maio 2002

9-6

Instrues do Seqenciador (SQI, SQO, SQL)

Sada do Seqenciador (SQO)


Operandos:

A instruo SQO define as condies de sada para a prxima etapa de um par de seqncia das instrues SQO/SQI.

Lgica Ladder
Operando: Array Tipo: DINT Formato: tag do array Descrio: array do seqenciador especifica o primeiro elemento de array do seqenciador no use CONTROL.POS no subscrito quais bits devem ser bloqueados ou podem passar

Mask

SINT INT DINT DINT CONTROL

tag imediato

Um tag SINT ou INT convertido em um valor DINT pela extenso de sinal. Destination Control tag tag dados de sada do array do seqenciador estrutura de controle para a operao normalmente, usa a mesma estrutura CONTROL que as instrues SQI e SQL nmero de elementos no Array (tabela do seqenciador) para sada posio atual no array normalmente, valor inicial 0

Length Position

DINT DINT

imediato imediato

Estrutura CONTROL
Mnemnico: .EN .DN .ER .LEN .POS Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo SQO est habilitada. O bit feito energizado quando todos os elementos moveram-se para Destination. O bit de erro energizado quando .LEN 0, .POS < 0, or .POS > .LEN. O comprimento especifica o nmero de etapas no array do seqenciador. A posio identifica o elemento que o controlador est manipulando atualmente.

Descrio: Quando habilitada, a instruo SQO incrementa a posio, movimenta


os dados na posio atravs de Mask e armazena o resultado em Destination. Se .POS > .LEN, a instruo volta para o incio do array do seqenciador e continua com .POS = 1. Normalmente, usa a mesma estrutura CONTROL que as instrues SQI e SQL A instruo SQO opera na memria de dados contnua.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues do Seqenciador (SQI, SQO, SQL)

9-7

Insero de um valor de mscara imediato


Ao inserir uma mscara, o software de programao retorna ao padro dos valores decimais. Caso voc queira inserir uma mscara usando outro formato, coloque o prefixo correto antes do valor.
Prefixo: 16# 8# 2# Descrio: hexadecimal por exemplo; 16#0F0F octal por exemplo; 8#16 binrio por exemplo; 2#00110011

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan Ao da Lgica Ladder: O bit .EU energizado para pr-programar uma descarga falsa quando o scan do programa inicia. A sada da condio da linha definida como falsa. O bit .EN desenergizado. A sada da condio da linha definida como falsa.

entrada da condio da linha for falsa

Publicao 1756-RM003F-PT-P - Maio 2002

9-8

Instrues do Seqenciador (SQI, SQO, SQL)

Condio: entrada da condio da linha verdadeira

Ao da Lgica Ladder:

.LEN 0 ou .POS < 0 sim

no

examinar bit .EN

.EN = 0

bit .EN energizado bit .ER desenergizado. bit .DN energizado.

.EN = 1

.POS = .LEN

no

.POS .LEN

sim

.POS = 1

sim bit .DN energizado.

no .POS = .POS + 1

inverter valor .POS no

sim

goto error

.POS = .LEN

sim

bit .DN energizado.

no

.POS > .LEN

no

sim

erro

bit .ER energizado

Destination = (Destination AND (NOT(Mask))) OR (Array[control.POS] AND Mask)

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues do Seqenciador (SQI, SQO, SQL)

9-9

Exemplo: Quando habilitada, a instruo SQO incrementa a posio, passa os


dados nessa posio em array_dint atravs da mscara e armazena o resultado em value_1.

operando SQO: Array Mask Destination

Exemplo de valores (usando INTs exibidos em binrio): xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 00000000 00000000 00001111 00001111 xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Um 0 na mscara significa que o bit no comparado (designado por xxxx nesse exemplo).

Uso de SQI com SQO


Se usar uma instruo SQI com uma instruo SQO, certifique-se de que as instrues usam os mesmos valores de Control, Length e Position.

Reset da posio de SQO


Cada vez que o controlador for do modo Program para Run, a instruo SQO desenergiza (inicializa) o valor .POS. Para resetar .POS para o valor de inicializao (.POS = 0), use uma instruo RES para desenergizar o valor de posio. Esse exemplo usa o status do bit de primeiro scan para desenergizar o valor .POS.

Publicao 1756-RM003F-PT-P - Maio 2002

9-10

Instrues do Seqenciador (SQI, SQO, SQL)

Carga do Seqenciador (SQL)


Operandos:

A instruo SQL carrega as condies de referncia em um array do seqenciador.

Lgica Ladder
Operando: Array Tipo: DINT Formato: tag do array Descrio: array do seqenciador especifica o primeiro elemento de array do seqenciador no use CONTROL.POS no subscrito dados de entrada para carregar no array do seqenciador

Source

SINT INT DINT CONTROL

tag imediato

Um tag SINT ou INT convertido em um valor DINT pela extenso de sinal. Control tag estrutura de controle para a operao normalmente usa a mesma estrutura CONTROL que as instrues SQO e SQL nmero de elementos no Array (tabela do seqenciador) para carregar posio atual no array normalmente, valor inicial 0

Length Position

DINT DINT

imediato imediato

Estrutura CONTROL
Mnemnico: .EN .DN .ER .LEN .POS Tipo de Dados: BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo SQL est habilitada. O bit executado energizado quando todos os elementos foram carregados em Array. O bit de erro energizado quando .LEN 0, .POS < 0, ou .POS > .LEN. O comprimento especifica o nmero de etapas no seqenciador do array. A posio identifica o elemento que o controlador est manipulando atualmente.

Descrio: Quando habilitada, a instruo SQL incrementa para a prxima


posio no array do seqenciador e carrega o valor Source naquela posio. Se o bit .DN energizado ou se .POS .LEN, a instruo energiza .POS=1. Geralmente, usa a mesma estrutura CONTROL que as instrues SQO e SQI A instruo SQL opera na memria de dados contnua.

Flags de Status Aritmtico: no afetados

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues do Seqenciador (SQI, SQO, SQL)

9-11

Condies de Falha:
Uma falha grave ocorrer se: Length > tamanho de Array Tipo de falha: 4 Cdigo de falha: 20

Execuo:
Condio: prescan Ao da Lgica Ladder: O bit .EU energizado para pr-programar uma descarga falsa quando o scan do programa inicia. A sada da condio da linha definida como falsa. O bit .EN desenergizado. A sada da condio da linha definida como falsa.

entrada da condio da linha falsa

Publicao 1756-RM003F-PT-P - Maio 2002

9-12

Instrues do Seqenciador (SQI, SQO, SQL)

Condio: entrada da condio da linha for verdadeira

Ao da Lgica Ladder:

.LEN 0 ou .POS < 0 sim

no

examinar bit .EN

.EN = 0

bit .EN energizado bit .ER desenergizado. bit .DN energizado.

.EN = 1

.POS = .LEN

no

.POS .LEN

sim

.POS = 1

sim bit .DN energizado.

no .POS = .POS + 1

inverter valor de .POS no

sim

v para o erro

.POS = .LEN

sim

bit .DN energizado.

no

.POS > .LEN

no

sim .LEN > tamanho do array no sim

erro

falha grave

bit .ER energizado

Array[control.POS] = Source

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues do Seqenciador (SQI, SQO, SQL)

9-13

Exemplo: Quando habilitada, a instruo SQL carrega value_3 para a prxima


posio do array seqenciador que array_dint[5] nesse exemplo.

antes de carregar array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_3 = 55555

aps carregar 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1.pos = 6

Publicao 1756-RM003F-PT-P - Maio 2002

9-14

Instrues do Seqenciador (SQI, SQO, SQL)

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

10

Instrues de Controle do Programa


(JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Introduo
Se voc quiser: Saltar uma seo da lgica que nem sempre precisa ser executada.

Use as instrues de controle do programa para alterar o fluxo da lgica.


Use esta instruo: JMP LBL JSR SBR RET JXR TND MCR UID UIE AFI NOP EOT SFP SFR Disponvel nessas linguagens: lgica ladder lgica ladder texto estruturado bloco de funes lgica ladder lgica ladder texto estruturado lgica ladder lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder lgica ladder lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado Consulte pgina: 10-2 10-4

Saltar para uma rotina separada, passar dados para a rotina, executar a rotina e retornar os resultados. Saltar para uma rotina externa (controlador SoftLogix5800 somente) Marcar um fim temporrio que interrompa a execuo da rotina. Desabilitar todas as linhas em uma seo de lgica. Desabilitar as tarefas do usurio. Habilitar as tarefas do usurio. Desabilitar uma linha. Inserir um limiar na lgica. Terminar uma transio para um grfico de funo seqencial. Pausar um grfico de funo seqencial. Resetar um grfico de funo seqencial.

10-13 10-16 10-18 10-20 10-20 10-22 10-23 10-24 10-26 10-28

Publicao 1756-RM003F-PT-P - Maio 2002

10-2

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Salto para Label (JMP) Label (LBL)


Operandos:

As instrues JMP e LBL ignoram as partes da lgica de diagrama ladder.

Lgica Ladder
Operando: Instruo JMP Label name; Instruo LBL Label name; nome do label; a execuo salta para a instruo LBL quando o nome do label citado nome do label; insere o nome para a instruo LBL associada Tipo: Formato: Descrio:

Descrio: Quando habilitada, a instruo JMP ignora a instruo LBL citada e o


controlador continua a executar a partir desse ponto. Quando desabilitada, a instruo JMP no afeta a execuo da lgica ladder. A instruo JMP pode mover a execuo da lgica ladder para frente e para trs. O salto para frente para um label economiza tempo de scan do programa, pois omite um segmento de lgica at que o mesmo seja necessrio. O salto para trs permite que o controlador repita a lgica. Recomenda-se no realizar muitos saltos para trs. O temporizador de watchdog pode entrar em timeout porque o controlador nunca alcana o fim da lgica que, por sua vez, coloca o controlador em falha. No se realiza scan na lgica com salto. Coloque uma lgica crtica fora da zona de salto.

ATENO

!
A instruo LBL est no alvo da instruo JMP que tem o mesmo nome do label. Certifique-se de que a instruo LBL a primeira instruo na linha. Um nome do label deve ser nico dentro de uma rotina. O nome pode: ser composto por at 40 caracteres conter letras, nmeros e underscores (_)

Flags de Status Aritmtico: no afetados

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-3

Condies de Falha:
Uma falha grave ocorrer se: label no existe Tipo de falha: 4 Cdigo de falha: 42

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A sada da condio da linha definida como verdadeira. A execuo salta para a linha que contm a instruo LBL com o nome do label referenciado. A sada da condio da linha definida como falsa.

postscan

Exemplo: Quando a instruo JMP est habilitada, a execuo salta linhas


sucessivas da lgica at alcanar a linha que contm a instruo LBL com label_20.

[outras linhas de cdigo]

Publicao 1756-RM003F-PT-P - Maio 2002

10-4

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Salto para Sub-rotina (JSR) Sub-rotina (SBR) Retorno da Sub-rotina (RET)


Operandos JSR:

A instruo JSR salta a execuo para uma rotina diferente. As instrues SBR e RET so instrues opcionais que trocam dados com a instruo JSR.

Lgica Ladder
Operando: Routine name Input parameter Tipo: ROUTINE BOOL SINT INT DINT REAL structure BOOL SINT INT DINT REAL structure Formato: nome imediato tag tag do array Descrio: rotina a ser executada (ou seja, sub-rotina) dados desta rotina que voc quer copiar para um tag no sub-rotina Os parmetros de entrada so opcionais. Insira mltiplos parmetros de entrada, se necessrio. tag da rotina que voc quer copiar um resultado da sub-rotina Os parmetros de retorno so opcionais. Insira mltiplos parmetros de retorno, se necessrio.

Return parameter

tag tag do array

Texto Estruturado
JSR(RoutineName,InputCount, InputPar,ReturnPar);

Operando: Routine name Input count

Tipo: ROUTINE SINT INT DINT REAL BOOL SINT INT DINT REAL structure BOOL SINT INT DINT REAL structure

Formato: nome imediato

Descrio: rotina a ser executada (ou seja, sub-rotina) nmero de parmetros de entrada

Input parameter

imediato tag tag do array

dados desta rotina que voc quer copiar para um tag na sub-rotina Os parmetros de entrada so opcionais. Insira mltiplos parmetros de entrada, se necessrio. tag nesta rotina que voc quer copiar um resultado da sub-rotina Os parmetros de retorno so opcionais. Insira mltiplos parmetros de retorno, se necessrio.

Return parameter

tag tag do array

(continuao dos operandos JSR na prxima pgina)

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-5

Operandos JSR (continuao) bloco de funes


Parmetros de Entrada Parmetro de Retorno

Os operandos so os mesmos que aqueles para a instruo de lgica ladder JSR.

ATENO

!
Lgica Ladder
Operando: Tipo: Input parameter

Para cada parmetro em uma instruo SBR ou RET, use o mesmo tipo de dados (inclusive algumas dimenses de array) conforme o parmetro correspondente na instruo JSR. O uso de tipos de dados diferentes pode produzir resultados inesperados.

Operandos SBR: A instruo SBR deve ser a primeira instruo em uma rotina de texto
estruturado ou lgica ladder.

Formato: tag tag do array

Descrio:
tag desta rotina na qual voc quer copiar o parmetro de entrada correspondente da instruo JSR

BOOL SINT INT DINT REAL structure

SBR(InputPar);

Texto Estruturado
Os operandos so os mesmos que aqueles para a instruo SBR de lgica ladder.

Publicao 1756-RM003F-PT-P - Maio 2002

10-6

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Bloco de Funes
Parmetros

Os operandos so os mesmos que aqueles para a instruo SBR de lgica ladder.

Operandos RET: Lgica Ladder


Operando: Return parameter Tipo: BOOL SINT INT DINT REAL structure Formato: imediato tag tag do array Descrio: dados nesta rotina na qual voc quer copiar o parmetro de retorno correspondente da instruo JSR

RET(ReturnPar);

Texto Estruturado
Os operandos so os mesmos que aqueles para a instruo RET de lgica ladder.

Bloco de Funes
Parmetros

Os operandos so os mesmos que aqueles para a instruo RET de lgica ladder.

Descrio: A instruo JSR inicia a execuo da rotina especificada que est


definida como uma sub-rotina: A sub-rotina executada uma vez. Depois que a sub-rotina executa, a execuo da lgica retorna para a rotina que contm a instruo JSR.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-7

Para programar um salto para a sub-rotina, siga estas orientaes: IMPORTANTE No use uma instruo JSR para chamar (executar) a rotina principal. Voc pode colocar uma instruo JSR na rotina principal ou qualquer outra rotina. Se voc usar uma instruo JSR para chamar a rotina principal e colocar uma instruo RET na rotina principal, uma falha grave ocorre (tipo 4, cdigo 31). O diagrama a seguir ilustra como as instrues operam.
Chamar a Rotina Sub-rotina

SBR 1. Se a instruo JSR tem um parmetro de entrada, insira uma instruo SBR. 2. Coloque a instruo SBR como a primeira instruo na rotina. 3. Para cada parmetro de entrada na instruo JSR, insira o tag no qual voc quer copiar os dados.

JSR
JSR

SBR

1. Se voc quer copiar dados para um tag na sub-rotina, insira um parmetro de entrada. 2. Se voc quer copiar um resultado da sub-rotina para um tag nesta sub-rotina, insira um parmetro de rotina. 3. Insira parmetros de entrada e retorno conforme necessrio.

RET

RET
42974

RET 1. Se a instruo JSR tem um parmetro de retorno, insira uma instruo RET 2. Coloque a instruo RET como a ltima instruo na rotina. 3. Para cada parmetro de retorno na instruo JSR, insira um parmetro de retorno para enviar para a instruo JSR. 4. Em uma rotina ladder, coloque instrues RET adicionais para sair da sub-rotina baseada em condies de entrada diferentes, se necessrio. (As rotinas de bloco de funes somente permite uma instruo RET.)

No h restries, a no ser a memria do controlador, em relao ao nmero de rotinas encadeadas que possam existir ou ao nmero de parmetros passados ou retornados.
nvel 1 sub-rotina action_1 rotina principal action_1 JSR action_2 JSR action_3 JSR SBR SBR SBR nvel 2 sub-rotina action_2 nvel 3 sub-rotina action_3

RET

RET

RET

Publicao 1756-RM003F-PT-P - Maio 2002

10-8

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Uma falha grave ocorrer se: a instruo JSR salta para a rotina de falha a instruo RET tem menos parmetros de retorno do que a instruo JSR a rotina principal contm uma instruo RET Tipo de falha: 4 ou fornecido pelo usurio 4 4 Cdigo de falha: 31 0 ou fornecido pelo usurio 31 31

a instruo JSR tem menos parmetros de entrada do que a instruo SBR 4

Execuo: Lgica Ladder e Texto Estruturado


Condio: prescan Ao da Lgica Ladder: Ao do Texto Estruturado:

O controlador executa todas as sub-rotinas independente da condio da linha. Para garantir que todas as linhas na sub-rotina sejam pr-varridas, o controlador ignora as instrues RET. (Ou seja, as instrues RET no fazem a sub-rotina sair). Verso 6.x e anterior, os parmetros de entrada e retorno so passados. Verso 7.x e mais recente, os parmetros de entrada e retorno no so passados. Caso haja chamadas recorrentes para a mesma sub-rotina, o prescan executada na sub-rotina somente na primeira vez. Caso haja vrias chamadas (no recorrentes) para a mesma sub-rotina, realiza-se um prescan na sub-rotina todas as vezes. A sada da condio de linha definida falsa (lgica ladder somente). A sub-rotina.no executada. As sadas na sub-rotina permanecem em seus ltimos estados. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha est definida como verdadeira. na na

a entrada da condio de linha falsa para a instruo JSR entrada da condio da linha verdadeira EnableIn est energizado

na

EnableIn est sempre energizado A instruo executa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-9

Condio: execuo da instruo

Ao da Lgica Ladder:

Ao do Texto Estruturado:

parmetros de entrada no

sim

JSR copia os parmetros de entrada para os tags SBR adequados

a execuo da lgica comea na rotina identificada por JSR

sim Instruo RET parmetros de retorno

sim

RET copia os parmetros de retorno para as variveis JSR apropriadas

no

no

sim fim da sub-rotina

no sada da condio da linha definida como falsa continua a executar a rotina sada da condio da linha definida como verdadeira a execuo da lgica retorna para JSR

fim

postscan

Mesma ao que o prescan descrita anteriormente.

Mesma ao que o prescan descrita anteriormente.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo execuo normal Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. 1. Se a rotina contm uma instruo SBR, o controlador primeiro executa a instruo SBR. 2. O controlador trava todos os valores de dados em IREFs. 3. O controlador executa os outros blocos de funo no pedido que determinado pela sua fiao. Isto inclui outras instrues JSR. 4. O controlador escreve as sadas em OREFs. 5. Se a rotina contiver uma instruo RET, o controlador executa a instruo RET por ltimo. A sub-rotina chamada. Se a rotina uma rotina SFC, ela inicializada a mesma do prescan.

postscan

Exemplo 1: A instruo JSR passa value_1 e value_2 para routine_1.

Publicao 1756-RM003F-PT-P - Maio 2002

10-10

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

A instruo SBR recebe value_1 e value_2 da instruo JSR e copia esses valores em value_a e value_b, respectivamente. A execuo da lgica continua nessa rotina. A instruo RET envia float_a para a instruo JSR. A instruo JSR recebe float_a e copia o valor para float_value_1. A execuo da lgica continua com a prxima instruo seguindo a instruo JSR.

Lgica Ladder
Rotina: Rotina principal (Main routine) Programa:

Sub-rotina (Subroutine)

[outras linhas de cdigo]

Texto Estruturado
Rotina: Rotina Principal Sub-rotina Programa: JSR(routine_1,2,value_1,value_2,float_value_1); SBR(value_a,value_b); <statements>; RET(float_a);

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-11

Exemplo 2: Lgica Ladder


Rotina Principal Quando abc estiver energizado, subroutine_1 executa, calcula o nmero de cookies e coloca um valor em cookies_1.

Soma o valor em cookies_1 a cookies_2e armazena o resultado em total_cookies.

Subroutine_1 Quando def estiver energizado, a instruo RET retorna value_1 para o parmetro JSR cookies_1e o restante da sub-rotina no varrido.

Quando def estiver desenergizado (linha anterior) e ghi estiver energizado, a instruo RET retorna value_2 para o parmetro cookies_1 de JSR e o restante da sub-rotina no varrido.

Quando def e ghi estiverem desenergizados (linhas anteriores) a instruo RET retorna value_3 para o parmetro cookies_1 de JSR.

Publicao 1756-RM003F-PT-P - Maio 2002

10-12

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Exemplo 3: Bloco de Funes


A instruo JSR em Routine_A

42972

1. Os valores em Add_Input_1, Add_Input_2 e Add_Input_3 so copiados para Input_A, Input_B e Input_C, respectivamente.

6. O valor de Sum_A_B_C copiado para Add_Three_Result.

Blocos de funo da rotina Add_Three_Inputs

42973

6. As instrues ADD adicionam as Input_A, Input_B e Input_C alm de colocar o resultado em Sum_A_B_C.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-13

Salto para a Rotina Externa (JXR)


Operandos:

A instruo JXR executa uma rotina externa. Esta instruo somente suportada pelos controladores SoftLogix5800.

Lgica Ladder

.
Operando: External routine name External routine control Parameter Tipo: ROUTINE EXT_ROUTINE_ CONTROL BOOL SINT INT DINT REAL estrutura BOOL SINT INT DINT REAL Formato: nome tag imediato tag tag do array Descrio: rotina externa a ser executada estrutura de controle (consulte a prxima pgina) dados desta rotina que voc quer copiar para uma varivel na rotina externa Os parmetros so opcionais. Insira mltiplos parmetros, se necessrio. possvel ter 10 parmetros.

Return parameter

tag

tag nesta rotina que voc quer copiar um resultado da rotina externa O parmetro de retorno opcional. possvel ter somente parmetro de retorno

Publicao 1756-RM003F-PT-P - Maio 2002

10-14

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Estrutura EXT_ROUTINE_CONTROL
Mnemnico: ErrorCode Tipo de Dados: SINT Descrio: Se um erro ocorrer, este valor identifica o erro. Os valores vlidos so 0-255. Este valor indica o nmero de parmetros associados a esta instruo. Este array contm as definies de parmetros para passar para a rotina externa. A instruo pode passar 10 parmetros possveis. Este valor contm as definies do parmetro de retorno da rotina externa. H somente um parmetro de retorno. Quando energizado, o bit habilitado indica que a instruo JXR est habilitada. Implementao: No h cdigos de erros pr-definidos. O criador da rotina externa deve fornecer os cdigos de erro. Apenas exibio - esta informao derivada da entrada da instruo. Apenas exibio - esta informao derivada da entrada da instruo. Apenas exibio - esta informao derivada da entrada da instruo. A rotina externa energiza este bit.

NumParams ParameterDefs

SINT EXT_ROUTINE_ PARAMETERS[10] EXT_ROUTIN_ PARAMETERS BOOL BOOL

ReturnParamDef

EN ReturnsValue

Apenas exibio - esta informao derivada Se energizado, este bit indica que um da entrada da instruo. parmetro de retorno foi inserido para a instruo. Se desenergizado, este bit indica que um parmetro de retorno no foi inserido para a instruo. O bit executado energizado quando a rotina externa executou uma vez para concluso. O bit de erro energizado se um erro ocorrer. A instruo pra a execuo at que o programa remova o bit de erro Este bit identifica se esta o primeiro scan aps alternar o controlador para o modo Run. Use FirstScan para iniciar a rotina externa, se necessrio. Habilita sada. Habilita entrada. A rotina externa energiza este bit. A rotina externa energiza este bit.

DN ER

BOOL BOOL

FirstScan

BOOL

O controlador energiza este bit para refletir o status de scan.

EnableOut EnableIn

BOOL BOOL

A rotina externa energiza este bit. O controlador energiza este bit para refletir a entrada da condio de linha. A instruo executa independentemente da condio de linha. O criador da rotina externa deve monitorar este status e agir de acordo. A rotina externa ou o programa do usurio pode energizar esses bits. O controlador energiza estes bits para refletir o status de scan.

User1 User0 ScanType1 ScanType0

BOOL BOOL BOOL BOOL

Esses bits so disponveis para o usurio. O controlador no inicia esses bits. Esses bits identificam o tipo de scan atual: Valores do Bit: Tipo de Scan: 00 Normal 01 Prescan 10 Postscan (no aplicvel para os programas de lgica ladder)

Descrio: Use a instruo Salto para a Rotina Externa (JXR) para chamar a rotina
externa de uma rotina de lgica ladder no projeto. A instruo JXR suporta mltiplos parmetros para que voc possa passar os valores entre a rotina de lgica ladder e a rotina externa. A instruo JXR semelhante a instruo Salto para Sub-rotina (JSR). A instruo JXR inicia a execuo da rotina externa especificada:

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-15

A rotina externa executa uma vez. Depois que a rotina externa executa, a execuo da lgica retorna para a rotina que contm a instruo JXR.

Flags de Status Aritmtico: Os flags de status aritmtico no so afetados. Condies de Falha:


Uma falha grave ocorrer se: Tipo de falha: Cdigo de falha: 88

4 uma exceo ocorre na rotina externa DLL a DLL no pode ser carregada o ponto de entrada no foi encontrado na DLL

Execuo: A JXR pode ser sncrona ou assncrona dependendo da


implementao da DLL. O cdigo na DLL determina tambm como responder ao status do scan, status de entrada da condio de linha e status de sada da condio de linha. Para obter mais informaes sobre o uso da instruo JXR e criar rotinas externas, consulte SoftLogix5800 System User Manual, publicao 1789-UM002.

Publicao 1756-RM003F-PT-P - Maio 2002

10-16

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Fim Temporrio (TND)


Operandos:

A instruo TND atua como um limite.

Operandos de Lgica Ladder


nenhuma

TND();

Texto Estruturado
nenhum Voc deve inserir os parnteses () depois da instruo mnemnica, embora no haja operandos.

Descrio: Quando habilitada, a instruo TND permite que o controlador


execute a lgica somente at essa instruo. Quando habilitada, a instruo TND atua como o final da rotina. Quando o controlador realiza um scan em uma instruo TND, o controlador se movimenta para o final da rotina atual. Se a instruo TND estiver em uma sub-rotina, o controle retorna para a rotina que est chamando. Se a instruo TND estiver em uma rotina principal, o controle retorna para o prximo programa dentro da tarefa atual.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na A rotina atual termina. A sada da condio da linha definida como falsa. Ao do Texto Estruturado: Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa. A rotina atual termina. Nenhuma ao tomada.

Exemplo: possvel usar a instruo TND ao depurar ou localizar falhas para


executar a lgica at um determinado ponto. Progressivamente, mova a instruo TND atravs da lgica medida que se realiza a depurao em cada seo nova.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-17

Quando a instruo TND estiver habilitada, o controlador interrompe o scan da rotina atual.

Lgica Ladder

Texto Estruturado
TND

Publicao 1756-RM003F-PT-P - Maio 2002

10-18

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Rearme do Controle Mestre (MCR)


Operandos:

A instruo MCR, usada em pares, cria uma zona de programa que pode desabilitar todas as linhas dentro das instrues MCR.

Lgica Ladder
nenhuma

Descrio: Quando a zona MCR estiver habilitada, um scan nas linhas da zona
MCR realizada para verificar as condies normais de verdadeiro e falso. Quando desabilitada, o controlador ainda realiza o scan nas linhas que esto dentro de uma zona MCR, mas o tempo de scan reduzido porque as sadas no retentivas na zona esto desabilitadas. A entrada da condio da linha falsa para todas as instrues que esto dentro da zona MCR desabilitada. Ao programar uma zona MCR, observe o seguinte: Voc deve finalizar a zona com uma instruo MCR incondicional. Voc no pode encadear zonas MCR entre si. No realize um salto em uma zona MCR. Se a zona for falsa, o salto na zona ativa a zona desde o ponto do salto at o fim da mesma. Se uma zona MCR continuar at o fim da rotina, no necessrio programar uma instruo MCR at o final da zona. A instruo MCR no substitui a instalao de um rel de controle mestre com capacidade para permitir uma parada de emergncia. Voc dever, ainda, instalar um rel de controle mestre para fornecer o desligamento de emergncia da alimentao de E/S . No sobreponha ou coloque as zonas MCR em cadeia. Cada zona MCR deve ser separada e completa. Se houver sobreposio ou encadeamento, uma operao imprevisvel de mquina pode ocorrer com possveis danos ao equipamento ou ferimentos pessoais. Coloque operaes crticas fora da zona MCR. Se voc iniciar instrues como, por exemplo, temporizadores em uma zona MCR, a execuo da instruo pra quando a zona desabilitada e o tempo for removido.

ATENO

!
Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-19

Execuo:
Condio: prescan entrada da condio da linha falsa Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. Realiza-se o scan nas instrues da zona, mas a entrada da condio da linha e as sadas no retentivas na zona so desabilitadas. A sada da condio da linha definida como verdadeira. As instrues na zona so varridas normalmente. A sada da condio da linha definida como falsa.

entrada da condio da linha verdadeira postscan

Exemplo: Quando a primeira instruo MCR estiver habilitada (input_1, input_2


e input_3 esto energizados), o controlador executa as linhas na zona MCR (entre as duas instrues MCR) e energiza ou desenergiza as sadas, dependendo das condies de sada. Quando a primeira instruo MCR estiver desabilitada (input_1, input_2 e input_3 no esto todos energizados), o controlador executa as linhas na zona MCR (entre as duas instrues MCR) e a entrada da condio da linha se torna falsa para todas as linhas na zona MCR, independente das condies de entrada.

Publicao 1756-RM003F-PT-P - Maio 2002

10-20

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Interrupo Desabilitada (UID) Interrupo Habilitada (UIE)


Operandos:

A instruo UID e a instruo UIE trabalham juntas para evitar que um nmero pequeno de linhas crticas sejam interrompidas por outras tarefas.

Lgica Ladder
nenhuma

UID(); UIE();

Texto Estruturado
nenhuma Embora no haja operandos, voc deve inserir os parnteses () depois da instruo mnemnica.

Descrio: Quando a entrada da condio de linha for verdadeira:


a instruo UID evita que tarefas com prioridade mais alta interrompam a tarefa atual, mas no desabilita a execuo de uma rotina de falha ou a Rotina de Falha do Controlador. a instruo UIE habilita outras tarefas a interromperem a tarefa atual. Para evitar que uma srie de linhas sejam interrompidas: 1. Limite o nmero de linhas que voc no quer que sejam interrompidas no menor nmero possvel. A desabilitao de interrupes por um longo perodo de tempo pode produzir perda de comunicao. 2. Acima da primeira linha que voc no quer interromper, insira uma linha e uma instruo UID. 3. Depois da ltima linha da srie que voc no quer interromper, insira uma linha e uma instruo UIE. 4. Se preciso, voc pode encadear pares das instrues UID/UIE.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-21

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na Ao do Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa.

A instruo UID evita a interrupo por tarefas de maior prioridade. A instruo UIE habilita a interrupo por tarefas de maior prioridade. A sada da condio da linha definida como falsa. Nenhuma ao tomada.

Exemplo: Quando um erro ocorre (error_bit est energizado), a instruo FSC


verifica o cdigo do erro em relao a uma lista de erros crticos. Se a instruo FSC encontra um erro que seja crtico (error_check.FD est energizado), um alarme acionado. As instrues UID e UIE evitam que outras tarefas interrompam a verificao e o acionamento de alarmes.

Lgica Ladder
UID error_bit FSC File Search/Compare Control error_check Length 10 Position 8 Mode ALL Expression error_code=error_list[error_check.POS]

EN DN ER

error_check.FD

alarm

UIE

Texto Estruturado
UID <statements> UIE

Publicao 1756-RM003F-PT-P - Maio 2002

10-22

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Instruo Sempre Falsa (AFI)


Operandos:

A instruo AFI configura a sua sada da condio da linha como falsa.

Lgica Ladder
nenhuma

Descrio: A instruo AFI configura a sua sada da condio da linha como falsa. Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

Exemplo: Use a instruo AFI para desabilitar temporariamente uma linha,


enquanto estiver depurando um programa. Quando habilitada, AFI desabilita todas as instrues nessa linha.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-23

Sem Operao (NOP)


Operandos:

A instruo NOP funciona como um limiar

Lgica Ladder
nenhuma

Descrio: possvel colocar a instruo NOP em qualquer ponto de uma linha.


Quando habilitada, a instruo NOP no realiza nenhuma operao. Quando desabilitada, a instruo NOP no realiza nenhuma operao.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Exemplo: Essa instruo til para localizar ramificaes incondicionais quando


se coloca a instruo NOP na ramificao. A instruo NOP realiza bypass na instruo XIC para habilitar a sada.

Publicao 1756-RM003F-PT-P - Maio 2002

10-24

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Fim da Transio (EOT)


Operandos:

A instruo EOT retorna um estado booleano para uma transio SFC.

Lgica Ladder
Operando: data bit Tipo: BOOL Formato: tag Descrio: estado da transio (0=em execuo, 1=concludo)

EOT(data_bit);

Texto Estruturado
Os operandos so os mesmos que aqueles para a instruo EOT de lgica ladder.

Descrio: Como a instruo EOT retorna a um estado booleano, mltiplas


rotinas SFC podem dividir a mesma rotina que contenha a instruo EOT. Se a rotina chamada no uma transio, a instruo EOT age como uma instruo TND (consulte a pgina 10-16). A implementao Logix da instruo EOT diferencia-se daquela em um controlador CLP-5. Em um controlador CLP-5, a instruo EOT no possui parmetros. Ao contrrio, a instruo CLP-5 EOT retorna a condio de linha como seu estado. Em um controlador Logix, o parmetro de retorno volta ao estado de transio, j que a condio de linha no est disponvel em todas as linguagens de programao Logix.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na Ao do Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa. Nenhuma ao tomada.

A instruo retorna o valor de bit dos dados para a rotina que est chamando. A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-25

Exemplo: Quando limit_switch1 e interlock_1 esto energizados, defina o


estado. Depois de concluir timer_1 , EOT retorna o valor de state para a rotina que est chamando.

Lgica Ladder

Texto Estruturado
state := limit_switch1 AND interlock_1;

IF timer_1.DN THEN EOT(estado); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

10-26

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Pausa de SFC (SFP)


Operandos:

A instruo SFP interrompe uma rotina SFC.

Lgica Ladder
Operando: SFCRoutine Name TargetState Tipo: ROUTINE DINT Formato: nome imediato tag Descrio: rotina SFC para pausar selecione um: execuo (ou insira 0) pausado (ou insira 1)

Texto Estruturado
SFP(SFCRoutineName, TargetState);

Os operandos so os mesmos que aqueles para a instruo SFP de lgica ladder.

Descrio: A instruo SFP permite a pausa de uma rotina SFC em execuo. Se


uma rotina SFC est em estado pausado, use a instruo SFP novamente para alterar o estado e recomear a execuo da rotina. Alm disso, use a instruo SFP para recomear a execuo de SFC aps usar uma instruo SFR (consulte a pgina 10-28) para resetar uma rotina SFC.

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: o tipo de rotina no uma rotina SFC Tipo de falha: 4 Cdigo de falha: 85

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na Ao do Texto Estruturado: Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa. Nenhuma ao tomada.

A instruo interrompe ou recomea a execuo da rotina SFC especificada. A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-27

Exemplo: Se sfc_en_p est energizado, pause a rotina SFC nomeada normal.


Reinicie SFC quando sfc_en_e estiver energizado.

Lgica Ladder
Pause a rotina SFC

Recomece a execuo da rotina SFC.

Texto Estruturado Pause a rotina SFC IF (sfp_en_p) THEN


SFP(normal,paused); sfp_en_p := 0; END_IF;

Recomece a execuo da rotina IF (sfp_en_e) THEN SFC: SFP(normal,executing);


sfp_en_e := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

10-28

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Reset de SFC (SFR)


Operandos:

A instruo SFR rearma a execuo de uma rotina SFC em uma etapa especificada.

Operandos de Lgica Ladder


Operando: SFCRoutine Name Step Name Tipo: ROUTINE SFC_STEP Formato: Descrio: nome tag rotina SFC para rearmar etapa alvo quando recomear a execuo

Texto Estruturado
SFR(SFCRoutineName,StepName);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder SFR.

Descrio: Quando a instruo SFR habilitada, a SFC comea a execuo na


etapa especificada. Se a etapa alvo 0, o grfico ser resetado para sua etapa inicial A implementao Logix da instruo SFR diferencia-se daquela em um controlador CLP-5. No controlador CLP-5, a SFR executou quando a condio de linha era verdadeira. Aps o reset, a instruo SFC permanece pausada at que a linha que contm a SFR tornar-se falsa. Isso permitiu que a execuo seguisse um rearme a ser atrasado. Esse recurso de pausa/no-pausa da instruo CLP-5 SFR desacoplou a condio da linha e movimentou para a instruo SFP.

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: o tipo de rotina no uma rotina SFC Tipo de falha: 4 Cdigo de falha: 85 89

a etapa alvo especificada no existe na rotina SFC 4

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

10-29

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado Execuo da Instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na A instruo reseta a rotina SFC especificada. Nenhuma ao tomada. Ao do Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa. A instruo rearma a rotina SFC especificada. Nenhuma ao tomada.

Exemplo: Se uma condio especfica ocorrer (shutdown energizado), reinicie


SFC na etapa initialize.

Lgica Ladder

Texto Estruturado
IF shutdown THEN SFR(mySFC,initialize); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

10-30

Instrues de Controle do Programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR)

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

11

Instrues For/Break
(FOR, FOR...DO, BRK, EXIT, RET)

Introduo
Se voc quiser: Executar repetidamente a rotina. Terminar a execuo repetida de uma rotina. Retornar para a instruo FOR.
(1)

Use a instruo FOR para chamar repetidamente uma sub-rotina. Use a instruo BRK para interromper a execuo de uma sub-rotina.
Use esta instruo: FOR FORDO(1) BRK EXIT(1) RET Disponvel nessas linguagens: lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder Consulte pgina: 11-2 11-5 11-6

Texto estruturado somente.

Publicao 1756-RM003F-PT-P - Maio 2002

11-2

Instrues For/Break (FOR, FOR...DO, BRK, EXIT, RET)

De... (FOR)
Operandos:

A instruo FOR executa repetidamente uma sub-rotina.

Lgica Ladder
Operando: Tipo: Routine name Index Initial value Terminal value Step size ROUTINE DINT SINT INT DINT SINT INT DINT SINT INT DINT Formato: nome da rotina tag imediato tag imediato tag imediato tag Descrio: rotina a ser executada conta quantas vezes a rotina foi executada valor em que se inicia o ndice

valor em que a execuo da rotina pra

quantidade a ser acrescentada ao ndice cada vez que a instruo FOR executar a rotina

Texto Estruturado
FOR count:= initial_value TO final_value BY increment DO <statement>; END_FOR;

Use a construo FOR...DO. Consulte o ApndiceC para informaes sobre as construes de texto estruturado.

Descrio:
IMPORTANTE No use a instruo FOR para chamar (executar) a rotina principal. Voc pode colocar uma instruo FOR na rotina principal ou em qualquer outra rotina. Se voc usar a instruo FOR para chamar a rotina principal e, ento, colocar uma instruo RET na rotina principal, uma falha grave ocorre (tipo 4, cdigo 31). Quando habilitada, a instruo FOR executa repetidamente Routine at que o valor Index exceda o valor Terminal. Essa instruo no passa parmetros para a rotina. Cada vez que a instruo FOR executa a rotina, a mesma adiciona o Step size a Index. Tome cuidado para no realizar uma malha vrias vezes em um nico scan. Um nmero excessivo de repeties pode fazer com que o temporizador do watchdog do controlador expire e cause uma falha grave.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues For/Break (FOR, FOR...DO, BRK, EXIT, RET)

11-3

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: a rotina principal contm uma instruo RET Tipo de falha: 4 Cdigo de falha: 31

Execuo
Condio: prescan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. O controlador executa a sub-rotina uma vez. Caso haja instrues FOR recorrentes na mesma sub-rotina, um prescan realizada somente na primeira vez na sub-rotina. Caso haja vrias instrues FOR (no recorrentes) na mesma sub-rotina, realiza-se um prescan na sub-rotina todas as vezes. A sada da condio da linha definida como falsa.

entrada da condio da linha falsa entrada da condio da linha verdadeira

index = initial_value

no

step size < 0

sim ir para o fim no ndice valor terminal

sim

sim ndice valor terminal

no

ir para o fim

fim

executar rotina index =(index + step_size)

sada da condio da linha definida como verdadeira

fim

postscan

A sada da condio da linha definida como falsa.

Exemplo: Quando habilitada, a instruo FOR executa repetidamente routine_2


e incrementa value_2 em 1 todas as vezes. Quando value_2 for > 10

Publicao 1756-RM003F-PT-P - Maio 2002

11-4

Instrues For/Break (FOR, FOR...DO, BRK, EXIT, RET)

ou uma instruo BRK habilitada, a instruo FOR no executa mais a routine_2.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues For/Break (FOR, FOR...DO, BRK, EXIT, RET)

11-5

Break (BRK)
Operandos:

A instruo BRK interrompe a execuo de uma rotina que foi chamada por uma instruo FOR.

Lgica Ladder
nenhuma

EXIT;

Texto Estruturado
Use a sentena EXIT em uma construo de malha. Consulte o Programao de Texto Estruturado para informaes sobre as construes de texto estruturado.

Descrio: Quando habilitada, a instruo BRK sai da rotina e retorna o


controlador para a instruo que segue a FOR. Se houver instrues FOR encadeadas, uma instruo BRK retornar o controle para a instruo FOR mais profunda.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A sada da condio da linha definida como verdadeira. A execuo retorna para a instruo que segue a instruo FOR que est chamando. A sada da condio da linha definida como falsa.

Exemplo: Quando habilitada, a instruo BRK pra de executar a rotina atual e


retorna para a instruo que segue a instruo FOR que est chamando.

Publicao 1756-RM003F-PT-P - Maio 2002

11-6

Instrues For/Break (FOR, FOR...DO, BRK, EXIT, RET)

Return (RET)
Operandos:

A instruo RET retorna para a instruo FOR que est chamando.

Lgica Ladder
nenhuma

Descrio:
IMPORTANTE No coloque uma instruo RET na rotina principal. Se voc colocar uma instruo RET na rotina principal, uma falha grave ocorre (tipo 4, cdigo 31).

Quando habilitada, a instruo RTE retorna para a instruo FOR. A instruo FOR incrementa o valor de Index pelo Step size e executa a sub-rotina novamente. Se o valor de Index exceder o valor de Terminal, a instruo FOR ser concluda e a execuo se movimentar para a instruo que segue a instruo FOR. A instruo FOR no usa parmetros. A instruo FOR ignora os parmetros inseridos em uma instruo RET. possvel usar tambm uma instruo TND para finalizar a execuo de uma sub-rotina.

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: a rotina principal contm uma instruo RET Tipo de falha: 4 Cdigo de falha: 31

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. Retorna os parmetros especificados para a rotina que est chamando. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Exemplo: A instruo FOR executa repetidamente routine_2 e incrementa

value_2 em 1 todas as vezes. Quando value_2 for > 10 ou uma instruo BRK habilitada, a instruo FOR no executa mais a routine_2.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues For/Break (FOR, FOR...DO, BRK, EXIT, RET)

11-7

A instruo RET retorna para a instruo FOR que est chamando. A instruo FOR executa a sub-rotina novamente e incrementa o valor de Index por Step size ou se o valor Index exceder o valor de Terminal, a instruo FOR concluda e a execuo se movimenta para a instruo que segue a instruo FOR.
rotina que est chamando sub-rotina

Publicao 1756-RM003F-PT-P - Maio 2002

11-8

Instrues For/Break (FOR, FOR...DO, BRK, EXIT, RET)

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

12

Instrues Especiais
(FBC, DDT, DTR, PID)

Introduo
Se voc quiser:

As instrues especiais realizam operaes especficas para a aplicao.


Use esta instruo: Disponvel nestas linguagens: lgica ladder lgica ladder Consulte pgina: 12-2 12-9

Comparar dados em relao a uma referncia FBC boa e conhecida e registrar todas as diferenas. DDT Comparar dados em relao a uma referncia boa e conhecida, registrar todas as diferenas e atualizar a referncia para corresponder origem. Passar os dados da fonte por uma mscara e comparar o resultado aos dados de referncia. Escrever a fonte na referncia para a prxima comparao. Controlar uma malha PID. DTR

lgica ladder

12-16

PID

lgica ladder texto estruturado

12-19

Publicao 1756-RM003F-PT-P - Maio 2002

12-2

Instrues Especiais (FBC, DDT, DTR, PID)

Comparao Entre os Bits de Arquivo (FBC)


Operandos:

A instruo FBC compara os bits em um array Source ao array Reference.

Lgica Ladder
Operando: Source Reference Result Cmp control Length Position Result control Length Position Tipo: DINT DINT DINT CONTROL DINT DINT CONTROL DINT DINT Formato: tag do array tag do array tag do array estrutura imediato imediato estrutura imediato imediato Descrio: array para comparar com a referncia no use CONTROL.POS no subscrito array para comparar com a fonte no use CONTROL.POS no subscrito tag para armazenar o resultado no use CONTROL.POS nos subscritos estrutura de controle para a comparao nmero de bits a ser comparado posio atual na fonte normalmente, o valor inicial 0 estrutura de controle para os resultados nmero de locais de armazenamento no resultado posio atual no resultado normalmente, o valor inicial 0

ATENO

Use tags diferentes para estrutura de controle de comparao e a estrutura de controle do resultado. Usar o mesmo tag para as duas estruturas pode causar uma operao inesperada que resultar em danos ao equipamento e/ou ferimentos pessoais.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-3

Estrutura COMPARE
Mnemnico: .EN .DN .FD Tipo de Dados: BOOL BOOL BOOL Descrio: O bit habilitado indica que a instruo FBC est habilitada. O bit executado est energizado quando a instruo FBC compara o ltimo bit nos arrays Source e Reference. O bit encontrado energizado cada vez que a instruo FBC registra uma no correspondncia (operao uma-por-vez) ou aps registrar todas as no correspondncias (operao todas-por-varredura). O bit inibido indica o modo de busca de FBC. 0 = todos os modos 1 = uma no correspondncia em um modo de tempo O bit de erro energizado se as comparaes forem .POS < 0 e LEN < 0 e os resultados .POS < 0 ou .LEN < 0. A instruo interrompe a execuo at que o programa remova o bit .ER. O valor de comprimento identifica o nmero de bits para comparao. O valor de posio identifica o bit atual.

.IN

BOOL

.ER .LEN .POS

BOOL DINT DINT

Estrutura RESULT
Mnemnico: .DN .LEN .POS Tipo de Dados: BOOL DINT DINT Descrio: O bit executado energizado quando o array Result est cheio. O valor do comprimento identifica o nmero de locais de armazenamento no array Result. O valor da posio identifica a posio atual no array Result.

Descrio: Quando habilitada, a instruo FBC compara os bits no array Source


aos bits no array Reference e registra o nmero do bit de cada no correspondncia no array Result. A instruo FBC opera na memria de dados contnua. A diferena entre as instrues DDT e FBC que cada vez que a instruo DDT encontra uma no correspondncia, a instruo altera o bit de referncia para corresponder ao bit fonte. A instruo FBC no altera o bit de referncia.

Seleo do modo de busca


Se voc quiser detectar: Uma no correspondncia por vez Selecione este modo: Energize o bit .IN na estrutura CONTROL de comparao. Cada vez que a entrada da condio da linha passa de falsa para verdadeira, a instruo FBC procura pela prxima no correspondncia entre os arrays Source e Reference. Ao encontrar uma no correspondncia, a instruo energiza o bit .FD, registra a posio da no correspondncia e interrompe a execuo. Desenergize o bit .IN na estrutura CONTROL de comparao. Cada vez que a entrada da condio da linha passa de falsa para verdadeira, a instruo FSC procura por todas no correspondncia entre os arrays Source e Reference.

Todas as no correspondncias

Flags de Status Aritmtico: no afetados


Publicao 1756-RM003F-PT-P - Maio 2002

12-4

Instrues Especiais (FBC, DDT, DTR, PID)

Condies de Falha:
Uma falha grave ocorrer se: Result.POS > que o tamanho do array Result Tipo de falha: 4 Cdigo de falha: 20

Execuo
Condio: pr-varredura
o bit compare.EN desenergizado o bit compare.FD desenergizado

Ao da Lgica Ladder:

examine o bit compare.DN

compare.DN = 0

compare.DN = 1 o bit compare.DN desenergizado o valor de compare.POS removido o bit result.DN desenergizado o valor de result.POS removido

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-5

Condio: entrada da condio da linha falsa


o bit compare.EN desenergizado o bit compare.FD desenergizado

Ao da Lgica Ladder:

examine o bit compare.DN

compare.DN = 0

compare.DN = 1 o bit compare.DN desenergizado o valor de compare.POS removido o bit result.DN desenergizado o valor de result.POS removido

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

12-6

Instrues Especiais (FBC, DDT, DTR, PID)

Condio: entrada da condio da linha verdadeira

Ao da Lgica Ladder:

examine o bit compare.EN

compare.EN = 1

v para a sada

compare.EN = 0 o bit compare.EN energizado examine o bit compare.DN compare.DN = 1 v para a sada

compare.DN = 0 o bit compare.ER desenergizado o bit compare.FD desenergizado sim

compare.LEN 0

no

sada

compare.POS < 0

sim

no sada da condio da linha definida como verdadeira comparao fim pgina 12-7

o bit compare.ER energizado

v para a sada

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-7

Condio:
comparao

Ao da Lgica Ladder:

compare.POS compare.LEN

sim

compare.POS = compare.LEN o bit compare.DN energizado

v para a sada pgina 12-6

no

result.DN = 1 source[compare.POS] = reference[compare.POS] no o bit compare.FD energizado examine o bit result.DN

o bit result.DN desenergizado o valor de result.POS removido

sim compare.POS = compare.POS + 1

result.DN = 0

sim result.POS < 0

no

sim result.LEN 0

no

o bit compare.ER energizado

sim falha grave

Result.POS > que o tamanho do array Result

v para a sada pgina 12-6

no result[result.POS] = compare.POS result.POS = result.POS + 1

no

result.POS > result.LEN

sim o bit result.DN energizado

ps-varredura

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

12-8

Instrues Especiais (FBC, DDT, DTR, PID)

Exemplo: Quando habilitada, a instruo FBC compara array_dint1 da fonte a


array_dint2 da referncia e armazena os locais de todas as no correspondncias no resultado de array_dint3.

fonte array_dint1

refernciaarray_din t2

resultado array_dint3

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-9

Deteco de Diagnstico (DDT)


Operandos:

A instruo DDT compara os bits em um array Source aos bits em um array Reference para determinar as mudanas de estado.

Lgica Ladder
Operando: Source Reference Result Cmp control Length Position Result control Length Position Tipo: DINT DINT DINT CONTROL DINT DINT CONTROL DINT DINT Formato: tag do array tag do array tag do array estrutura imediato imediato estrutura imediato imediato Descrio: array para comparar com a referncia no use CONTROL.POS no subscrito array para comparar com a fonte no use CONTROL.POS no subscrito array para armazenar os resultados no use CONTROL.POS no subscrito estrutura de controle para a comparao nmero de bits a ser comparado posio atual na fonte normalmente, valor inicial 0 estrutura de controle para os resultados nmero de locais de armazenamento no resultado posio atual no resultado normalmente, valor inicial 0

ATENO

Use tags diferentes para estrutura de controle de comparao e a estrutura de controle do resultado. Usar o mesmo tag para as duas estruturas pode causar uma operao inesperada que resultar em danos ao equipamento e/ou ferimentos pessoais.

Publicao 1756-RM003F-PT-P - Maio 2002

12-10

Instrues Especiais (FBC, DDT, DTR, PID)

Estrutura COMPARE
Mnemnico: Tipo de Dados: Descrio: .EN .DN .FD BOOL BOOL BOOL O bit habilitado indica que a instruo DDT est habilitada. O bit executado est energizado quando a instruo DDT compara o ltimo bit nos arrays Source e Reference. O bit encontrado energizado cada vez que a instruo DDT registra uma no correspondncia (operao uma-por-vez) ou aps registrar todas as no correspondncias (operao todas-por-varredura). O bit inibido indica o modo de busca de DDT. 0 = todos os modos 1 = uma no correspondncia em um modo de tempo O bit de erro energizado se as comparaes forem .POS < 0 e LEN < 0 e os resultados .POS < 0 ou .LEN < 0. A instruo interrompe a execuo at que o programa remova o bit .ER. O valor do comprimento identifica o nmero de bits para comparao. O valor de posio identifica o bit atual.

.IN

BOOL

.ER .LEN .POS

BOOL DINT DINT

Estrutura RESULT
Mnemnico: .DN .LEN .POS Tipo de Dados: BOOL DINT DINT Descrio: O bit executado energizado quando o array Result est cheio. O valor do comprimento identifica o nmero de locais de armazenamento no array Result. O valor da posio identifica a posio atual no array Result.

Descrio: Quando habilitada, a instruo DDT compara os bits no array Source


aos bits no array Reference, registra o nmero do bit de cada no correspondncia no array Result e altera o valor do bit Reference para que corresponda ao bit Source. A instruo DDT opera na memria de dados contnua. A diferena entre as instrues DDT e FBC que cada vez que a instruo DDT encontra uma no correspondncia, a instruo DDT altera o bit de referncia para corresponder o bit da fonte. A instruo FBC no altera o bit de referncia.

Seleo do modo de busca


Se voc quiser detectar: Uma no correspondncia por vez Selecione este modo: Energize o bit .IN na estrutura CONTROL de comparao. Cada vez que a entrada da condio da linha passa de falsa para verdadeira, a instruo DDT procura pela prxima no correspondncia entre os arrays Source e Reference. Ao encontrar uma no correspondncia, a instruo energiza o bit .FD, registra a posio da no correspondncia e interrompe a execuo. Desenergize o bit .IN na estrutura CONTROL de comparao. Cada vez que a entrada da condio da linha passa de falsa para verdadeira, a instruo DDT procura por todas no correspondncia entre os arrays Source e Reference.

Todas as no correspondncias

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-11

Flags de Status Aritmtico: no afetados Condies de Falha:


Uma falha grave ocorrer se: Result.POS > que o tamanho do array Result Tipo de falha: 4 Cdigo de falha: 20

Execuo
Condio: pr-varredura
o bit compare.EN desenergizado o bit compare.FD desenergizado

Ao da Lgica Ladder:

examine o bit compare.DN

compare.DN = 0

compare.DN = 1 o bit compare.DN desenergizado o valor de compare.POS removido o bit result.DN desenergizado o valor de result.POS removido

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

12-12

Instrues Especiais (FBC, DDT, DTR, PID)

Condio: entrada da condio da linha falsa


o bit compare.EN desenergizado o bit compare.FD desenergizado

Ao da Lgica Ladder:

examine o bit compare.DN

compare.DN = 0

compare.DN = 1 o bit compare.DN desenergizado o valor de compare.POS removido o bit result.DN desenergizado o valor de result.POS removido

sada da condio da linha definida como falsa

fim

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-13

Condio: entrada da condio da linha verdadeira

Ao da Lgica Ladder:

examine o bit compare.EN

compare.EN = 1

v para a sada

compare.EN = 0 o bit compare.EN energizado examine o bit compare.DN bit compare.DN = 1 v para a sada

bit compare.DN = 0 o bit compare.ER desenergizado o bit compare.FD desenergizado sim

compare.LEN 0

no

sada

compare.POS < 0

sim

no sada da condio da linha definida como verdadeira comparao fim pgina 12-14

o bit compare.ER energizado

v para a sada

Publicao 1756-RM003F-PT-P - Maio 2002

12-14

Instrues Especiais (FBC, DDT, DTR, PID)

Condio:
Comparao

Ao da Lgica Ladder:

compare.POS compare.LEN

sim

compare.POS = compare.LEN o bit compare.DN energizado

v para a sada pgina 12-13

no result.DN = 1 source[compare.POS] = reference[compare.POS] no o bit compare.FD energizado reference[compare.POS] = source[compare.POS] examine o bit result.DN

o bit result.DN desenergizado o valor de result.POS removido

sim compare.POS = compare.POS + 1

result.DN = 0

sim result.POS < 0

no

sim result.LEN 0

no

o bit compare.ER energizado

sim falha grave

Result.POS > que o tamanho do array Result

v para a sada pgina 12-6

no result[result.POS] = compare.POS result.POS = result.POS + 1

no

result.POS result.LEN

sim o bit result.DN energizado

ps-varredura

A sada da condio da linha definida como falsa.

Exemplo: Quando habilitada, a instruo DDT compara array_dint1 da fonte a


array_dint2 da referncia e armazena os locais de todas as no correspondncias em array_dint3 do resultado. O controlador tambm

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-15

altera os bits no correspondentes no array_dint2 de referncia para que corresponda ao array_dint1 da fonte.

0 fonte array_dint1

referncia (antes da comparao) array_dint2

resultado array_dint3 referncia (aps a comparao) array_dint2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Publicao 1756-RM003F-PT-P - Maio 2002

12-16

Instrues Especiais (FBC, DDT, DTR, PID)

Dados Transacionais (DTR)


Operandos:

A instruo DTR passa o valor de Source atravs de Mask e compara o resultado ao valor de Reference.

Lgica Ladder
Operando: Source Mask Reference Tipo: DINT DINT DINT Formato: imediato tag imediato tag tag Descrio: array para comparar com a referncia quais bits devem ser bloqueados ou podem passar array para comparar com a fonte

Descrio: A instruo DTR passa o valor de Source atravs de Mask e compara o


resultado ao valor de Reference. A instruo DTR escreve o valor de Source filtrado pela mscara dentro do valor de Reference para a prxima comparao. Source permanece inalterado. Um 1 na mscara significa que o bit de dados passou. Um 0 na mscara significa que o bit de dados foi bloqueado. Quando o Source filtrado pela mscara diferir de Reference, a sada da condio da linha se torna verdadeira por uma varredura. Quando Source filtrado pela mscara for o mesmo que Reference, a sada da condio da linha falsa. A programao on-line com esta instruo pode ser perigosa. Caso o valor de Reference seja diferente do valor Source, a sada da condio da linha se torna verdadeira. Seja cuidadoso ao inserir esta instruo quando o controlador estiver nos modos Run ou Remote Run.

ATENO

Insero de um valor de mscara imediato


Ao inserir uma mscara, o software de programao retorna ao padro dos valores decimais. Caso voc queira inserir uma mscara usando outro formato, coloque o prefixo correto antes do valor.
Prefixo: 16# 8# 2# Descrio: hexadecimal por exemplo 16#0F0F octal por exemplo 8#16 binrio por exemplo 2#00110011

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-17

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo


Condio: pr-varredura entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: Reference = Source E Mask. A sada da condio da linha definida como falsa. Reference = Source E Mask. A sada da condio da linha definida como falsa.

source filtrado pela mscara = reference

no

reference definido como igual ao source filtrado pela mscara sada da condio da linha definida como verdadeira

sim

sada da condio da linha definida como falsa fim

ps-varredura

A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

12-18

Instrues Especiais (FBC, DDT, DTR, PID)

Exemplo: Quando habilitada, a instruo DTR mascara value_1. Caso haja uma
diferena nos dois valores, a sada da condio da linha definida como verdadeira.

exemplo 1 Source value_1 7 1 8 3 9

exemplo 2

mask = 0FFF 0000111111111111 0000111111111111

referncia value_2 varredura atual varredura anterior 0 0 1 1 8 8 3 3 0 0

1 1

8 8

7 3

varredura atual varredura anterior

A linha permanece falsa enquanto o valor de entrada no mudar.

A linha permanece verdadeira por uma varredura quando uma alterao for detectada.
13385

Um 0 na mscara deixa o bit inalterado.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-19

Instruo PID (PID)


Operandos:

A instruo PID controla uma varivel do processo como fluxo, presso, temperatura ou nvel.

Lgica Ladder

Operando: PID Process variable

Tipo: PID SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL PID

Formato: estrutura tag

Descrio: estrutura PID valor que voc quer controlar

Tieback

imediato tag

(opcional) sada de uma estao de hardware manual/automtica que coloca em bypass a sada do controlador Insira 0 se no quiser usar este parmetro. valor que vai para o dispositivo final de controle (vlvula, comporta, etc.) Se voc estiver utilizando a zona morta, Control variable deve ser REAL ou o operando ser forado para 0 quando o erro estiver dentro da zona morta. (opcional) tag PID para o PID mestre Se estiver realizando o controle em cascata e esta PID for uma malha escrava, insira o nome do mestre PID. Insira 0 se no quiser usar este parmetro. (opcional) o status atual do bit inhold a partir de um canal de sada analgica 1756 para auxlio de reincio initerrupto Insira 0 se no quiser usar este parmetro. (opcional) valor de readback dos dados a partir de um canal de sada analgica 1756 para o auxlio de reincio initerrupto Insira 0 se no quiser usar este parmetro. exibe o valor atual do setpoint exibe o valor atual de Process variable transportado exibe o valor percentual atual da sada

Control variable

tag

PID master loop Inhold bit

estrutura

BOOL

tag

Inhold value

SINT INT DINT REAL

tag

Setpoint Process variable Output %

Texto Estruturado
PID(PID,ProcessVariable, Tieback,ControlVariable, PIDMasterLoop,InholdBit, InHoldValue);

Os operandos so os mesmo que os da instruo PID da lgica ladder. Entretanto, voc especifica o Setpoint, Process Variable e Output % acessando o membros .SP, .PV. e .OUT da estrutura PID, ao invs de incluir valores na lista de operandos.

Publicao 1756-RM003F-PT-P - Maio 2002

12-20

Instrues Especiais (FBC, DDT, DTR, PID)

Estrutura PID
Mnemnico: .CTL Tipo de Dados: DINT Descrio: O membro .CTL fornece acesso aos membros de status (bits) em uma palavra de 32 bits. A instruo PID energiza os bits 07 -15. Este bit: 31 30 29 28 27 26 25 24 23 22 21 20 Este bit: 15 14 13 12 11 10 09 08 07 .SP .KP .KI .KD .BIAS .MAXS .MINS .DB .SO .MAXO .MINO REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL Setpoint independente dependente independente dependente independente dependente ganho proporcional (sem unidade) ganho do controlador (sem unidade) ganho integral (1/seg) tempo de reset (minutos por repetio) ganho derivativo (segundos) tempo da taxa (minutos) Corresponde a este membro: .EN .CT .CL .PVT .DOE .SWM .CA .MO .PE .NDF .NOBC .NOZC Este o membro, que a instruo PID energiza: .INI .SPOR .OLL .OLH .EWD .DVNA .DVPA .PVLA .PVHA

% de feedforward ou bias valor mximo da converso de escala da unidade de engenharia valor mnimo da converso de escala da unidade de engenharia unidades de engenharia da zona morta % de sadas energizadas limite mximo de sada (% de sada) limite mnimo de sada (% de sada)

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-21

Mnemnico: .UPD .PV .ERR .OUT .PVH .PVL .DVP .DVN .PVDB .DVDB .MAXI .MINI .TIE .MAXCV .MINCV .MINTIE .MAXTIE .DATA

Tipo de Dados: REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL[17]

Descrio: tempo de atualizao da malha (segundos) valor PV redimensionado valor de erro redimensionado % de sada limite de alarme alto de varivel de processo limite de alarme baixo de varivel de processo limite de alarme de desvio positivo limite de alarme de desvio negativo zona morta de alarme de processo varivel zona morte de alarme de desvio valor mximo de PV (entrada sem escala) valor mnimo de PV (entrada sem escala) valor de tieback para controle manual valor mximo de CV (correspondente a 100%) valor mnimo de CV (correspondente a 0%) valor mnimo de tieback (correspondente a 100%) valor mximo de tieback (correspondente a 0%) O membro .DATA armazena: Elemento: .DATA[0] .DATA[1] .DATA[2] .DATA[3] .DATA[4] .DATA[5] .DATA[6] .DATA[7] .DATA[8] .DATA[9] .DATA[10] .DATA[11] .DATA[12] .DATA[13] .DATA[14] .DATA[15] .DATA[16] Descrio: acmulo integral valor temporrio de suavizao do derivativo valor anterior de .PV valor anterior de .ERR valor vlido anterior de .SP constante de converso de escala em porcentagem constante de converso de escala de .PV constante de converso de escala derivativa valor anterior de .KP valor anterior de .KI valor anterior de .KD .KP de ganho dependente .KI de ganho dependente .KD de ganho dependente valor anterior de .CV constante .CV para desfazer a converso constante tieback para desfazer a converso

.EN .CT .CL .PVT

BOOL BOOL BOOL BOOL

habilitado tipo em cascata (0=escravo; 1=mestre) malha em cascata (0=no; 1=sim) rastreamento da varivel do processo (0=no; 1=sim)

Publicao 1756-RM003F-PT-P - Maio 2002

12-22

Instrues Especiais (FBC, DDT, DTR, PID)

Mnemnico: .DOE .SWM .CA .MO .PE .NDF .NOBC .NOZC .INI .SPOR .OLL .OLH .EWD .DVNA .DVPA .PVLA .PVHA

Tipo de Dados: BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

Descrio: derivativa de (0=PV; 1=erro) modo manual do software (0=no-automtico; 1=yes- manual sw) ao de controle (0 significa E=SP-PV; 1 significa E=PV-SP) modo da estao (0=automtico; 1=manual) equao PID (0=independente; 1=dependente) sem suavizao de derivativa (0=filtro de suavizao de derivativa habilitado; 1=filtro de suavizao da derivativa desabilitado) sem clculo de retorno do bias (0=clculo de retorno do bias habilitado; 1=clculo de retorno de bias desabilitado) sem zona morta de cruzamento zero (0=zona morta est no cruzamento zero; 1=zona morta no est no cruzamento zero) PID inicializada (0=no; 1=sim) setpoint fora da faixa (0=no; 1=sim) CV est abaixo do limite mnimo de sada (0=no; 1=sim) CV est acima do limite mximo de sada (0=no; 1=sim) erro est dentro da zona morta (0=no; 1=sim) desvio est no alarme baixo (0=no; 1=sim) desvio est no alarme alto (0=no; 1=sim) PV est no alarme baixo (0=no; 1=sim) PV est no alarme alto (0=no; 1=sim)

Descrio: Normalmente, a instruo PID recebe a varivel do processo (PV) d


um mdulo de entrada analgica e modula uma sada de varivel de controle (CV) em um mdulo de sada analgica para manter a varivel de processo no setpoint desejado. O bit .EN indica o status da execuo. O bit .EN est energizado quando as transies de entrada da condio da linha passa de falsa para verdadeira. O bit .EN est energizado quando a entrada da condio da linha se torna falsa. A instruo PID no usa um bit .DN. A instruo PID executa todas as varreduras enquanto a entrada da condio da linha verdadeira.
bit .EN

estado da linha execuo da instruo PID

Flags de Status Aritmtico: no afetados

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-23

Condies de Falha:
IMPORTANTE Estas falhas eram falhas graves no controlador CLP-5.

Uma falha de advertncia ocorrer se: .UPD 0 setpoint est fora da faixa

Tipo de falha: 4 4

Cdigo de falha: 35 36

Execuo
Condio: pr-varredura entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo ps-varredura Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na A instruo executa a malha PID. A sada da condio da linha definida como falsa. Ao: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa. A instruo executa a malha PID. Nenhuma ao tomada.

Configurao de uma Instruo PID

Aps inserir a instruo PID e especificar a estrutura PID, voc usa as guias de configurao para especificar como a instruo PID deve funcionar.

Clique aqui para configurar a instruo PID

Publicao 1756-RM003F-PT-P - Maio 2002

12-24

Instrues Especiais (FBC, DDT, DTR, PID)

Especificao de ajuste
Selecione a guia Tuning. As alteraes tm efeito assim que voc clicar em outro campo, em OK, em Apply ou pressionar Enter.
No campo: Setpoint (SP) Set output % Especifique: Insira um valor de setpoint (.SP). Insira uma porcentagem de sadas energizadas (.SO). No modo manual do software, este valor usado para a sada. No modo automtico, este valor exibe a % de sada. Insira a porcentagem de bias de sada (.BIAS). Insira o ganho proporcional (.KP). Para ganhos independentes, o ganho proporcional (sem unidade). Para ganhos dependentes, o ganho do controlador (sem unidade). Insira o ganho integral (.KI). Para ganhos independentes, este o ganho integral (1/seg). Para ganhos dependentes, este o tempo de reset (minutos por repetio). Insira o ganho derivativo (.KD). Para ganhos independentes, este o ganho derivativo (segundos). Para ganhos dependentes, esta o tempo da taxa (minutos). Selecione o modo manual (.MO) ou o modo manual de software (.SWM). O modo manual cancela o modo manual de software se ambos forem selecionados.

Output bias Proportional gain (Kp)

Integral gain (Ki)

Derivative time (Kd)

Manual mode

Especificao de configurao
Selecione a guia Configuration. Voc deve clicar em OK ou em Apply para que as alteraes tenho efeito.
No campo: PID equation Especifique: Selecione ganhos independentes ou dependentes (.PE). Use independente quando quiser que os trs ganhos (P, I e D) operem de forma independente. Use dependente quando quiser que o ganho geral do controlador afete os trs itens (P, I e D). Selecione E=PV-SP ou E=SP-PV para a ao de controle (.CA). Selecione PV ou erro (.DOE). Use a derivativa de PV para eliminar os impulsos de sada resultantes das alteraes do setpoint. Use a derivativa de erro para respostas rpidas para as alteraes de setpoint quando o algoritmo pode tolerar excedentes. Insira o tempo de atualizao (.UPD) para a instruo. Insira um limite alto para a varivel de controle (.MAXO). Insira um limite baixo para a varivel de controle (.MINO). Insira um valor de zona morta (.DB). Habilite ou desabilite esta seleo (.NDF). Habilite ou desabilite esta seleo (.NOBC). Habilite ou desabilite esta seleo (.NOZC). Habilite ou desabilite esta seleo (.PVT). Habilite ou desabilite esta seleo (.CL). Se a malha em cascata estiver habilitada, selecione escravo ou mestre (.CT).

Control action Derivative of

Loop update time CV high limit CV low limit Deadband value No derivative smoothing No bias calculation No zero crossing in deadband PV tracking Cascade loop Cascade type

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-25

Especificao de alarmes
Selecione a guia Alarms. Voc deve clicar em OK ou em Apply para que a alteraes tenho efeito.
No campo: PV high PV low PV deadband positive deviation negative deviation deviation deadband Especifique: Insira um valor de alarme alto de PV (.PVH). Insira um valor de alarme baixo de PV (.PVL). Insira um valor de alarme de zona morta de PV (.PVDB). Insira um valor de desvio positivo (.DVP). Insira um valor de desvio negativo (.DVN). Insira um valor de alarme de zona morta de desvio (.DVDB).

Especificao de converso de escala


Selecione a guia Scaling. Voc deve clicar em OK ou em Apply para que a alteraes tenho efeito.
No campo: PV unscaled maximum PV unscaled minimum PV engineering units maximum PV engineering units minimum CV maximum CV minimum Tieback maximum Tieback minimum PID Initialized Especifique: Insira um valor mximo de PV (.MAXI) que seja igual ao valor mximo sem escala recebido de um canal de entrada analgica no valor de PV. Insira um valor mnimo de PV (.MINI) que seja igual ao valor mnimo sem escala recebido de um canal de entrada analgica no valor de PV. Insira as unidades mximas de engenharia correspondentes a .MAXI (.MAXS) Insira as unidades mnimas de engenharia correspondentes a .MINI (.MINS) Insira um valor mximo de CV correspondente a 100% (.MAXCV). Insira um valor mnimo de CV correspondente a 0% (.MINCV). Insira um valor mximo de tieback (.MAXTIE) que seja igual ao valor mximo sem escala recebido de um canal de entrada analgica no valor de tieback. Insira um valor mnimo de tieback (.MINTIE) que seja igual ao valor mnimo sem escala recebido de um canal de entrada analgica no valor de tieback. Se alterar as constantes de converso de escala durante o modo Run, desligue-as para reinicializar os valores internos de remoo (.INI).

Publicao 1756-RM003F-PT-P - Maio 2002

12-26

Instrues Especiais (FBC, DDT, DTR, PID)

Uso das Instrues PID

O controle de malha fechada PID mantm uma varivel de processo em um setpoint desejado. A figura a seguir mostra um exemplo do nvel de taxa de fluxo/fluido:

Setpoint

erro equao PID

taxa de fluxo varivel de processo varivel de controle

detector de nvel

14271

No exemplo acima, o nvel no tanque comparado ao setpoint. Se o nvel estiver mais alto que o setpoint, a equao PID aumenta a varivel de controle e faz com que a vlvula da tomada do tanque abra; diminuindo assim o nvel no tanque. A equao PID utilizada na instruo PID uma equao de forma posicional com a opo de usar ganhos dependentes ou independentes. Ao utilizar ganhos independentes, os ganhos proporcionais, integrais e derivativos afetam apenas seus itens de ganhos proporcionais, integrais e derivativos respectivamente. Ao utilizar ganhos dependentes, o ganho proporcional substitudo por um ganho de controlador que afeta os trs itens. Voc pode usar a forma da equao para executar o mesmo tipo de controle. Os dois

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-27

tipos de equao so simplesmente para permitir que voc utilize o tipo de equao que lhe mais familiar.
Opo de Ganhos: Ganhos dependentes (Norma ISA) Derivativa de: error (E)
t

Equao:

CV = K C

dE 1 E + ---- Edt + T d ------ + BIAS dt Ti


0

process variable (PV)

E = SP - PV
t

CV = K C

1 dPV E + ---- Edt T d ---------- + BIAS Ti dt


0

E = PV - SP
t

dPV 1 CV = K C E + ---- Edt + T d ---------- + BIAS dt Ti


0

Ganhos independentes

error (E)
t

dE CV = K P E + K i Edt + Kd ------ + BIAS dt


0

process variable (PV)

E = SP - PV
t

dPV CV = K P E + Ki Edt K d ---------- + BIAS dt


0

E = PV - SP
t

dPV CV = K P E + K i Edt + Kd ---------- + BIAS dt


0

Onde:
Varivel: KP Ki Descrio: ganho proporcional (sem unidade) Kp = Kc (sem unidade) ganho integral (segundos -1) Para converter Ki (ganho integral) e Ti (tempo de reset), use:
KC K i = ---------60T i

Kd

ganho derivativo (segundos) Para converter Kd (ganho derivativo) e Td (tempo da taxa), use: Kd = Kc (Td) 60 ganho do controlador (sem unidade)

KC

Publicao 1756-RM003F-PT-P - Maio 2002

12-28

Instrues Especiais (FBC, DDT, DTR, PID)

Varivel: Ti Td SP PV E BIAS CV dt

Descrio: tempo de reset (minutos/repetio) tempo da taxa (minutos) setpoint varivel de processo erro [(SP-PV) ou (PV-SP)] feedforward ou bias varivel de controle tempo de atualizao da malha

Se quiser utilizar um termo especfico da equao PID, defina seu ganho em zero. Por exemplo, se voc no quiser nenhuma ao derivativa, defina Kd ou Td igual a zero.

Disparo anti-reset e transferncia sem interrupo de manual para automtico


A instruo PID evita, automaticamente, o disparo de reset, pois previne que o termo integral acumule sempre que a sada CV alcanar seus valores mximo ou mnimo, conforme definido em .MAXO e .MINO. O termo integral acumulado permanece congelado at que a sada CV caia abaixo de seu limite mximo ou aumente para acima de seu limite mnimo. Logo, o acmulo integral normal reinicia-se automaticamente. A instruo PID fornece os dois modos de controle:
Modo Manual de Controle: software manual (.SWM) Descrio: tambm conhecida como modo de sada energizada permite que o usurio defina a % de sadas a partir de seu software O valor da sada energizada (.SO) usado como uma sada da malha. O valor da sada energizada, normalmente, vem de uma entrada de operao a partir de um dispositivo de interface de operao. pega o valor de tieback como uma entrada e ajusta suas variveis internas para gerar o mesmo valor na sada A entrada de tieback para a instruo PID convertida a 0-100% de acordo com os valores de .MINTIE e .MAXTIE e usada como a sada da malha. Normalmente, a entrada de tieback vem de uma sada de estao de hardware manual/automtica que est em bypass na sada do controlador. Nota: O modo manual cancela o modo manual de software se os bits de modo estiverem energizados.

manual (.MO)

A instruo PID tambm fornece, automaticamente, transferncias sem interrupo do modo manual do software para o modo automtico. A instruo PID calcula novamente o retorno do valor do termo de acmulo integral necessrio para o rastreamento da sada CV ou o valor da sada energizada (.SO) no modo manual do software ou a entrada de tieback no modo manual. Desta maneira, quando a malha passa para o modo automtico, a sada CV inicia a partir da sada configurada ou do valor de tieback e nenhuma "interrupo" no valor da sada ocorre.
Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-29

Alm disso, a instruo PID pode fornecer, de forma automtica, uma transferncia sem interrupo do manual para o automtico mesmo se o controle integral no for usado (ou seja, Ki = 0). Neste caso, a instruo modifica o termo .BIAS para fazer o rastreamento da sada CV ou os valores de sada ou tieback definidos. Ao reiniciar o controle automtico, o termo .BIAS manter seu ltimo valor. Voc pode desabilitar o clculo de retorno do termo .BIAS atravs da energizao do bit .NOBC na estrutura de dados PID. Esteja ciente que se voc definir .NOBC como verdadeiro, a instruo PID no fornece mais uma transferncia de manual para automtico sem interrupo quando o controle integral no for usado.

Temporizao da instruo PID


A instruo PID e a amostragem da varivel de processo precisam ser atualizadas em uma taxa peridica. Este tempo de atualizao est relacionado ao processo fsico que voc est controlando. Para malhas muito lentas, como malhas de temperatura, um tempo de atualizao de uma vez por segundo ou mais longo, normalmente, suficiente para obter um bom controle. As malhas mais rpidas, como malhas de presso e fluxo, podem precisam de um tempo de atualizao como uma vez a cada 250 milissegundos. Em alguns casos raros, como controle de tenso em uma bobina desenroladora, requerem atualizaes de malha de 10 milissegundos ou mais rpidas. Como a instruo PID usa uma base de tempo em seu clculo, voc precisa sincronizar a execuo desta instruo com a amostragem da varivel do processo (PV). O meio mais fcil de executar a instruo PID coloc-la em uma tarefa peridica. Defina o tempo de atualizao da malha (.UPD) como igual taxa de tarefa peridica e certifique-se de que a instruo PID executada em todas as varreduras da tarefa peridica

Lgica Ladder

Publicao 1756-RM003F-PT-P - Maio 2002

12-30

Instrues Especiais (FBC, DDT, DTR, PID)

Texto Estruturado
PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data, Local:1:O.Ch4Data,0,Local:1:I.Ch4InHold, Local:1:I.Ch4Data);

Ao utilizar uma tarefa peridica, certifique-se de que a entrada analgica usada para a varivel do processo atualizada para o controlador em uma taxa que seja significantivamente mais rpida que a taxa da tarefa peridica. Teoricamente, a varivel de processo deve ser enviada ao controlador, pelo menos, cinco a dez vezes mais rpido que a taxa de tarefa peridica. Isto minimiza a diferena de tempo entre as amostras reais da varivel de processo e a execuo da malha PID. Por exemplo, se a malha PID estiver em uma tarefa peridica de 250 milissegundos, utilize um tempo de atualizao de 250 milissegundos (.UPD = .25) e configure o mdulo de entrada analgica para produzir dados a cada 25 a 50 mseg. Um outro mtodo de execuo da instruo PID, embora menos preciso, colocar a instruo em uma tarefa contnua e usar um bit executado do temporizador para disparar a execuo da instruo.

Lgica Ladder

Texto Estruturado
PID_timer.pre := 1000 TONR(PID_timer); IF PID_timer.DN THEN PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data, Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold, Local:1:I.Ch0Data); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-31

Neste mtodo, o tempo de atualizao da malha da instruo PID deve ser definido como igual ao preset do temporizador. Como no caso de utilizao de uma tarefa peridica, voc deve configurar o mdulo de entrada analgica para produzir a varivel do processo em uma taxa significantemente mais rpida que o tempo de atualizao da malha. Voc deve usar somente o mtodo do temporizador de execuo de PID para malhas com tempos de atualizao da malha que sejam vrias vezes maior que o pior tempo de execuo para sua tarefa contnua. A maneira mais precisa de executar a instruo PID usar o recurso de amostragem de tempo real (RTS) dos mdulos de entrada analgica 1756. O mdulo de entrada analgica pega como amostra suas entradas na taxa de amostragem de tempo real que voc configurou ao configurar o mdulo. Quando o perodo de amostra de tempo real do mdulo expira, ele atualiza suas entradas e os dados de impresso de data e hora (representado pelo membro .RollingTimestamp da estrutura de dados de entrada analgica) produzido pelo mdulo. As faixas do registro de data e hora de 0-32767 milissegundos. Monitore este registro. Quando ele mudar, uma nova amostra de varivel do processo foi recebida. Toda vez que um registro de data e hora mudar, execute a instruo PID uma vez. Como a amostra de varivel do processo conduzida pelo mdulo de entrada analgica, tempo de amostra de entrada muito preciso e o tempo de atualizao da malha usado pela instruo PID deve ser definida como igual ao tempo RTS do mdulo de entrada analgica. Para garantir que no perder amostras da varivel de processo, execute sua lgica em uma taxa mais rpida que o tempo de RTS. Por exemplo, se o tempo de RTS for de 250 mseg, voc pode colocar a lgica PID em uma tarefa peridica que seja executada a cada 100 mseg para garantir que nunca perder uma amostra. Voc pode colocar a lgica PID em uma tarefa contnua por quanto tempo voc garantir que a lgica seja atualizada mais que uma vez a cada 250 milissegundos. Um exemplo do mtodo RTS de execuo mostrado abaixo. A execuo da instruo PID depende do recebimento novos dados de entrada analgica. Se o mdulo de entrada analgica falhar ou for removido, o controlador pra de receber os registros de data e hora rolantes e a malha PID interrompe a execuo. Voc deve monitorar o bit de status da entrada analgica PV e caso ele mostre um status ruim, force a malha no modo manual de software e execute a malha para todas as varreduras. Isto permite que o operador ainda altere manualmente a sada da malha PID.

Publicao 1756-RM003F-PT-P - Maio 2002

12-32

Instrues Especiais (FBC, DDT, DTR, PID)

Lgica Ladder

Texto Estruturado
IF (Local:0:I.Ch0Fault) THEN TIC101.SWM [:=] 1; ELES TIC101.SWM := 0; END_IF; IF (Local:0:I.RollingTimestamp<>PreviousTimestamp) OR (Local:0:I.Ch0Fault) THEN PreviousTimestamp := Local:0:I.RollingTimestamp; PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data, Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold, Local:1:I.Ch0Data); END_IF;

Reincializao Sem Interrupo


A instruo PID pode interagir com os mdulos de sada analgica para fornecer um reincio sem interrupo quando o controlador passar do modo Program para o Run ou quando for energizado. Quando o mdulo de sada analgica 1756 perde a comunicao com o controlador ou detecta que o controlador est no modo Program, o mdulo de sada analgica energiza suas sada para valores de condio de falha que voc especificou quando configurou o mdulo. Ao retornar ao modo Run ou restabelecer a comunicao com o mdulo de sada analgica, a instruo PID reseta, automaticamente, sua sada de varivel de controle para igual sada analgica utilizando o bit Inhold e os parmetros Inhold Value na instruo PID.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-33

Para configurar um reincio sem interrupo:


Faa isto: Configure o canal do mdulo de sada analgica 1756 que recebe a varivel de controle da instruo PID Detalhes: Selecione a caixa de verificao hold for initialization na pgina de propriedades para o canal especfico do mdulo. Isto informa o mdulo de sada analgica que quando o controlador retornar ao modo Run ou restabelecer a comunicao com o mdulo, este deve manter a sada analgica em seu valor atual at que o valor enviado pelo controlador corresponda (dentro de 0,1% da faixa) ao valor atual usado pelo canal de sada. A sada do controlador ir acelerar em rampa at o valor de sada mantido atualmente por meio do uso do termo .BIAS. Esta acelerao em rampa semelhante transferncia sem interrupo automtica. Insira o tag Inhold bit e o tag Inhold Value na instruo PID O mdulo de sada analgica 1756 retorna dois valores para cada canal em sua estrutura de dados de entrada. O bit de status InHold (.Ch2InHold, por exemplo), quando verdadeiro, indica que o canal de sada analgica est mantendo seu valor. O valor de readback de dados (.Ch2Data, por exemplo) mostra o valor atual da sada nas unidades de engenharia. Insira o tag do bit de status InHold como o parmetro do bit InHold da instruo PID. Insira o tag do valor de Data readback como o parmetro Inhold Value. Quando o bit Inhold se torna verdadeiro, a instruo PID muda Inhold Value na sada da varivel de controle e reinicializa para ajudar um reincio sem interrupo no valor. Quando o mdulo de sada analgica recebe este valor de volta do controlador, ele desabilita o bit de status InHold que permite que a instruo PID inicie o controle normalmente.

Suavizao do derivativo
O clculo de derivativo aprimorado por um filtro de suavizao de derivativo. Este filtro digital de primeira ordem, passa baixa ajuda a minimizar os impulsos do termo derivativo causados pelos rudos na PV. Esta suavizao torna-se mais agressiva com valores maiores de ganhos derivativos. Voc pode desabilitar a suavizao do derivativo se seu processo requisitar valores muito altos de ganho derivativo (Kd > 10, por exemplo). Para desabilitar a suavizao do derivativo, selecione a opo No derivative smoothing na guia Configuration ou energize o bit .NDF na estrutura PID.

Definio da zona morta


A zona morta ajustvel permite que voc selecione uma faixa de erro acima e abaixo do setpoint em que a sada no altera enquanto o erro permanece dentro desta faixa. Esta zona morta permite que voc controle melhor como a varivel de processo corresponde ao setpoint

Publicao 1756-RM003F-PT-P - Maio 2002

12-34

Instrues Especiais (FBC, DDT, DTR, PID)

sem alterar a sada. Alm disso, a zona morta ajuda a minimizar o desgaste e a ruptura em seu dispositivo de controle final.

+ zona morta setpoint - zona morta erro dentro da faixa de zona morta

tempo

41026

O cruzamento zero o controle da zona morta que permite a instruo usar o erro para fins de clculo medida que a varivel de processo cruza a zona morta at que a varivel de processo cruze o setpoint. Uma vez que a varivel do processo cruza o setpoint (erro cruza zero e muda o sinal) e enquanto a varivel de processo permanece na zona morta, a sada no mudar. A zona morta aumenta para cima ou para baixo o setpoint atravs do valor que voc especifica. Insira zero para inibir a zona morta. A zona morta tem as mesmas unidades de escala que o setpoint Voc pode usar a zona morta sem o recurso de cruzamento zero selecionando a opo no zero crossing for deadband na guia Configuration ou energizando o bit .NOZC na estrutura PID. Se voc estiver utilizando a zona morta, Control variable deve ser REAL ou o operando ser forado para 0 quando o erro estiver dentro da zona morta

Utilizao da limitao de sada


Voc pode definir um limite de sada (porcentagem de sada) na sada de controle. Quando a instruo detecta que a sada alcanou um limite, ela energiza o bit de alarme definido como um bit de alarme e evita a sada do excedente do limite mais alto ou mais baixo.

Feedforward ou bias de sada


Voc pode realizar o feedforward de um distrbio do sistema atravs da alimentao do valor .BIAS dentro de feedforward/bias da instruo PID. O valor de feedforward representa o distrbio alimentado dentro da instruo PID que tem uma chance de alterao da varivel de processo. O feedforward, normalmente, usado em centros de controle com um tag de transporte. Por exemplo, um valor de
Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-35

representao do valor de cold water poured into a warm mix (gua fria jogada em uma mistura quente) pode ser elevado ao valor de sada mais rpido que esperando pela varivel de processo para alterar como o resulto da mistura. Um valor de bias, normalmente, usado quando nenhum controle integral usado. Neste caso, o valor de bias pode ser ajustado para manter a sada na faixa necessria para manter PV perto do setpoint.

Malhas em cascata
A PID coloca em cascata duas malhas atravs da atribuio da sada em percentual da malha mestre para o setpoint da malha escrava. A malha escrava converte automaticamente a sada da malha mestre nas unidades de engenharia para o setpoint da malha escrava baseada os valores da malha escrava para .MAXS e .MINS.

Lgica Ladder

Texto Estruturado
PID(master,pv_master,0,cv_master,0,0,0); PID (slave,pv_slave,0,cv_slave,master,0,0);

Controle de uma razo


Voc pode manter dois valores em uma razo atravs da utilizao destes parmetros: valor no controlado valor controlado (o setpoint resultante a ser usado pela instruo PID) razo entre estes dois valores

Publicao 1756-RM003F-PT-P - Maio 2002

12-36

Instrues Especiais (FBC, DDT, DTR, PID)

Lgica Ladder

Texto Estruturado
pid_2.sp := uncontrolled_flow * ratio PID(pid_2,pv_2,tieback_2,cv_2,0,0,0);

Para este parmetro de multiplicao: Destination Source A Source B

Insira este valor: valor controlado valor no controlado razo

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Especiais (FBC, DDT, DTR, PID)

12-37

Teoria PID

As figuras a seguir mostram o fluxo do processo para uma instruo PID.

processo PID
SP Exibido como EUs Software A/M OU A/M Station Mode Auto
+ -

Erro Exibido como EUs

Ao de Controle Converte Unidades em % Erro X 100 maxs-mins

Bias de Sada % Software A/M Mode Clculo PID (Out%)


+

SP-PV (Erro)
-1

Auto Auto Manual

A/M Station Mode

% de Sadas Energizadas Converte % em Unidades CV

SP

Manual PVT no

PV-SP

Limitao de Sada Manual Sada (CV) Exibida como % da Escala EU

sim Converte Binrio em Unidades de Engenharia (PV-min)(maxs-mins) + mins maxi-mini

PV Exibido como EUs

% de Sadas Energizadas

CV%(maxcv-mincv) + mincv 100

CV

Converte Unidades de Tieback em % tieback-mintie maxtie-mintie x 100

PV

Processo PID com malhas mestre/escravo


Malha Mestre

Software A/M OU A/M Station Mode Auto


+ -

Ao de Controle SP-PV (Erro)


-1

% de Bias de Sada Software A/M Mode Auto Auto % de Sadas Energizadas Software A/M Mode Manual Manual Limitao de Sada A/M Station Mode % de Sadas

SP

Manual PVT no

PV-SP

Converte Unidades em % Erro X 100 maxs-mins

Clculo PID

(Out%)

(Master.Out)

sim Converte Binrio em Unidades de Engenharia (PV-min)(maxs-mins) + mins maxi-mini SP PV Converte Unidades em % Erro X 100 maxs-mins

Auto Manual Manual Os itens mencionados nesta caixa so parmetros, unidades e modos j que pertencem a uma determinada malha Escrava.

PV Malha Escrava Converte % em (SP) Unidades de + X (maxs-mins) + mins 100 Ao de Controle SP-PV
-1

Bias de Sada % Software A/M Mode Auto Auto Manual Limitao de Sada Manual A/M Station Mode

% de sadas

(Master.Out)

PV-SP

Converte Unidades em % Erro X 100 maxs-mins

Clculo PID

Converte % em Unidades CV CV%(maxcv-mincv) 100 + mincv

Converte Binrio em Unidades de Engenharia (PV-min)(maxs-mins) + mins maxi-mini

% de Sadas Energizadas Converte Unidades de Tieback em % tieback-mintie maxtie-mintie x 100

PV

Publicao 1756-RM003F-PT-P - Maio 2002

12-38

Instrues Especiais (FBC, DDT, DTR, PID)

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

13

Instrues Trigonomtricas
(SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Introduo
Se voc quiser: Obter o seno de um valor.

As instrues trigonomtricas avaliam as operaes aritmticas que usam operaes trigonomtricas.


Use esta instruo: SIN Disponvel nessas linguagens: lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes Consulte pgina: 13-2

Obter o co-seno de um valor.

COS

13-4

Obter a tangente de um valor.

TAN

13-6

Obter o arco seno de um valor.

ASN ASIN(1) ACS ACOS(1) ATN ATAN(1)

13-8

Obter o arco co-seno de um valor.

13-10

Obter o arco tangente de um valor.

13-12

(1)

Texto estruturado somente.

possvel combinar tipos de dados, mas perda de preciso e erros de arredondamentos podem ocorrer, bem como demora na execuo da instruo. Verifique o bit de status de overflow (S:V) para observar se o resultado foi truncado. Para instrues de lgica ladder, os tipos de dados em negrito indicam tipos de dados otimizados. Uma instruo executa mais rapidamente e requer menos memria se todos os operandos da instruo usarem o mesmo tipo de dados otimizados, geralmente, DINT ou REAL.

Publicao 1756-RM003F-PT-P - Maio 2002

13-2

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Seno (SIN)
Operandos:

A instruo SIN calcula o seno de Source (em radianos) e armazena o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: encontre o seno deste valor.

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := SIN(source);

Use SIN como uma funo. Esta funo calcula o seno de source e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag SIN Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura SIN

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Entrada para a instruo matemtica. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: Source deve ser maior ou igual a -205887,4 (-2x215) e menor ou igual
a 205887,4 (2x215). O valor resultante em Destination sempre superior a ou igual a -1 e inferior a ou igual a 1.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.


Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-3

Condies de Falha: nenhuma Execuo: Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador calcula o seno de Source e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado. A instruo executa. EnableOut energizado. Nenhuma ao tomada.

Exemplo: Calcule o seno de value e coloque o resultado em result. Lgica Ladder

Texto Estruturado
result := SIN(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

13-4

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Co-seno (COS)
Operandos:

A instruo COS calcula o co-seno de Source (em radianos) e armazena o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: encontre o co-seno deste valor.

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := COS(source);

Use COS como uma funo. Esta funo calcula o co-seno de source e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag COS Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura COS

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: Descrio: BOOL REAL Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Entrada para a instruo matemtica. Vlido = qualquer flutuante A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Tipo de Dados: Descrio: BOOL REAL

Descrio: Source deve ser maior ou igual a -205887,4 (-2x215) e menor ou igual
a 205887,4 (2x215). O valor resultante em Destination sempre superior a ou igual a -1 e inferior a ou igual a 1.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-5

Condies de Falha: nenhuma Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador calcula o co-seno de Source e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado. A instruo executa. EnableOut energizado. Nenhuma ao tomada.

Exemplo: Calcule o co-seno de value e coloque o resultado em result. Lgica Ladder

Texto Estruturado
result := COS(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

13-6

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Tangente (TAN)
Operandos:

A instruo TAN calcula a tangente de Source (em radianos) e armazena o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: encontre a tangente deste valor.

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := TAN(source);

Use TAN como uma funo. Esta funo calcula a tangente de source e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag TAN Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura TAN

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Entrada para a instruo matemtica. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: Source deve ser maior ou igual a -102943,7 (-2x214) e menor ou igual
a 102943,7 (2x214).

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-7

Condies de Falha: nenhuma Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador calcula a tangente de Source e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado. A instruo executa. EnableOut energizado. Nenhuma ao tomada.

Exemplo: Calcule a tangente de value e coloque o resultado em result. Lgica Ladder

Texto Estruturado
result := TAN(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

13-8

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Arco Seno (ASN)


Operandos:

A instruo ASN calcula o arco seno de Source (em radianos) e armazena o resultado em Destination (em radianos).

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: encontre o arco seno deste valor.

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := ASIN(source);

Use ASIN como uma funo. Esta funo calcula o arco seno de source e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag ASN Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura ASN

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Entrada para a instruo matemtica. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: Source deve ser maior ou igual a -1 e menor ou igual a 1. O valor


resultante em Destination sempre superior a ou igual a -/2 e inferior a ou igual a /2 (onde = 3,141593).

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-9

Condies de Falha: nenhuma Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador calcula o arco seno de Source e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado. A instruo executa. EnableOut energizado. Nenhuma ao tomada.

Exemplo: Calcule o arco seno de value e coloque o resultado em result. Lgica Ladder

Texto Estruturado
result := ASIN(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

13-10

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Arco Co-seno (ACS)


Operandos:

A instruo ACS retira o arco co-seno de Source (em radianos) e armazena o resultado em Destination (em radianos).

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: encontre o arco co-seno deste valor.

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := ACOS(source);

Use ACOS como uma funo. Esta funo calcula o arco co-seno de source e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag ACS Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura ACS

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Entrada para a instruo matemtica. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: Source deve ser maior a ou igual a -1 e menor a ou igual a 1. O valor


resultante em Destination sempre superior a ou igual a 0 ou menor a ou igual a (onde = 3,141593).

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-11

Condies de Falha: nenhuma Execuo: Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador calcula o arco co-seno de Source e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado. A instruo executa. EnableOut energizado. Nenhuma ao tomada.

Exemplo: Calcule o arco co-seno de value e coloque o resultado em result. Lgica Ladder

Texto Estruturado
result := ACOS(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

13-12

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Arco Tangente (ATN)


Operandos:

A instruo ATN calcula o arco tangente de Source (em radianos) e armazena o resultado em Destination (em radianos).

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: encontre o arco tangente deste valor.

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := ATAN(source);

Use ATAN como uma funo. Esta funo calcula o arco tangente de source e armazena o resultado em dest. Consulte ApndiceC para informaes sobre a sintaxe de expresses no texto estruturado.

Bloco de Funes
Operando: tag ATN Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura ATN

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial energizado Entrada para a instruo matemtica. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: O valor resultante em Destination sempre maior ou igual a /2 e


menor ou igual a /2(onde * =3,141593).

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

13-13

Condies de Falha: nenhuma Execuo: Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador calcula o arco tangente de Source e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado. A instruo executa. EnableOut energizado. Nenhuma ao tomada.

Exemplo: Calcule o arco tangente de value e coloque o resultado em result. Lgica Ladder

Texto Estruturado
result := ATAN(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

13-14

Instrues Trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

14

Instrues de Matemtica Avanada


(LN, LOG, XPY)

Introduo
Se voc quiser: Calcular o log neperiano de um valor

As instrues de matemtica avanada incluem estas instrues:


Use esta instruo: Disponvel nestas linguagens: LN lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado(1) bloco de funes Consulte pgina: 14-2

Calcular o log de base 10 de um valor

LOG

14-4

Aumentar um valor para a potncia de um outro valor. XPY

14-6

(1)

No h instruo de texto estruturado equivalente. Use o operador em uma expresso.

possvel combinar tipos de dados, mas perda de preciso e erros de arredondamentos podem ocorrer, bem como demora na execuo da instruo. Verifique o bit S:V para observar se o resultado foi truncado. Para instrues de lgica ladder, os tipos de dados em negrito indicam tipos de dados timos. Uma instruo executa mais rapidamente e requer menos memria se todos os operandos da instruo usarem o mesmo tipo de dados timo, geralmente, DINT ou REAL.

Publicao 1756-RM003F-PT-P - Maio 2002

14-2

Instrues de Matemtica Avanada (LN, LOG, XPY)

Log Neperiano (LN)


Operandos:

A instruo LN calcula o log neperiano de Source e coloca o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: encontra o log neperiano deste valor

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := LN(source);

Use LN como uma funo. Esta funo calcula o log neperiano desource e armazena o resultado em dest. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: tag LN Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura LN

estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Tipo de Dados: BOOL REAL Tipo de Dados: BOOL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial est energizado Entrada para a instruo matemtica. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido.

Descrio: Source deve ser maior que zero, caso contrrio o bit de status de
overflow (S:V) est energizado. Destination resultante maior ou igual a -87.33655 e menor ou igual a 88.72284.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Matemtica Avanada (LN, LOG, XPY)

14-3

Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador calcula o log neperiano de Source e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Calcule o log neperiano de value e coloque o resultado em result. Exemplo de Lgica Ladder

Texto Estruturado
result := LN(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

14-4

Instrues de Matemtica Avanada (LN, LOG, XPY)

Log Base 10 (LOG)


Operandos:

A instruo LOG calcula o log de base 10 de Source e coloca o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: encontra o log deste valor

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := LOG(source);

Use LOG como uma funo. Esta funo calcula o log desource e armazena o resultado em dest. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: tag LOG Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura de LOG

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial est energizado Entrada para a instruo matemtica. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: Source deve ser maior que zero, caso contrrio o bit de status de
overflow (S:V) est energizado. Destination resultante maior ou igual a -37.92978 e menor ou igual a 38.53184.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Matemtica Avanada (LN, LOG, XPY)

14-5

Condies de Falha: nenhuma Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador calcula o log de Source e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Calcule o log de value e coloque o resultado em result. Lgica Ladder

Texto Estruturado
result := LOG(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

14-6

Instrues de Matemtica Avanada (LN, LOG, XPY)

X Elevado a Y (XPY)
Operandos:

A instruo XPY calcula Source A (X) para a alimentao de Source B (Y) e armazena o resultado em Destination.

Lgica Ladder
Operando: Source X Tipo: SINT INT DINT REAL SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: valor de base

Source Y

imediato tag

expoente

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := sourceX ** sourceY;

Use dois sinais de multiplicao adjacentes como um operador dentro de uma expresso. Esta expresso retira sourceX para a alimentao de sourceY e armazena o resultado em dest. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: XPY tag Tipo: FBD_MATH Formato: estrutura Descrio: estrutura XPY

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Matemtica Avanada (LN, LOG, XPY)

14-7

Estrutura FBD_MATH
Parmetro de Entrada: EnableIn Source X Source Y Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial est energizado valor de base Vlido = qualquer flutuante Expoente Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo matemtica. Os flags de status aritmtico so energizados para esta sada.

Descrio: Se Source X for negativo, Source Y deve ser um valor inteiro ou uma
falha de advertncia ocorrer. A instruo XPY usa este algoritmo: Destination = X**Y O controlador avalia x0=1 e 0x=0.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Uma falha de advertncia ocorrer se: Source X negativo e Source Y no um valor inteiro Tipo de falha: 4 Cdigo de falha: 4

Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador calcula Source X elevado a Source Y e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Publicao 1756-RM003F-PT-P - Maio 2002

14-8

Instrues de Matemtica Avanada (LN, LOG, XPY)

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: A instruo XPY calcula value_1 elevado a value_2 e coloca o


resultado em result.

Lgica Ladder

Texto Estruturado
result := (value_1 value_2);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

15

Instrues de Converso Matemtica


(DEG, RAD, TOD, FRD, TRN, TRUNC)

Introduo
Se voc quiser: Converter radianos em graus.

As instrues de converso matemtica convertem valores.


Use esta instruo: DEG Disponvel nestas linguagens: lgica ladder texto estruturado bloco de funes lgica ladder texto estruturado bloco de funes lgica ladder bloco de funes lgica ladder bloco de funes lgica ladder texto estruturado bloco de funes Consulte pgina: 15-2

Converter graus em radianos.

RAD

15-4

Converter um valor inteiro em um valor BCD. Converter um valor BCD em um valor inteiro. Remover a parte fracionria de um valor

TOD FRD TRN TRUNC(1)

15-6 15-9 15-11

(1)

Somente texto estruturado.

possvel combinar tipos de dados, mas perda de preciso e erros de arredondamentos podem ocorrer, bem como demora na execuo da instruo. Verifique o bit S:V para observar se o resultado foi truncado. Para instrues de lgica ladder, os tipos de dados em negrito indicam tipos de dados timos. Uma instruo executa mais rapidamente e requer menos memria se todos os operandos da instruo usarem o mesmo tipo de dados timo, geralmente, DINT ou REAL.

Publicao 1756-RM003F-PT-P - Maio 2002

15-2

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Graus (DEG)
Operandos:

A instruo DEG converte Source (em radianos) em graus e armazena o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: valor a ser convertido em graus

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := DEG(source);

Use DEG como uma funo. Esta funo converte source em graus e armazena o resultado em dest. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: DEG tag Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura de DEG

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial est energizado Entrada para a instruo de converso. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo de converso. Os flags de status aritmtico so energizados para esta sada.

Descrio: A instruo DEG usa este algoritmo:


Source*180/ (onde = 3.141593)

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

15-3

Condies de Falha: nenhuma Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador converte Source em graus e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Converte value em graus e coloca o resultado em result. Lgica Ladder

Texto Estruturado
result := DEG(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

15-4

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Radianos (RAD)
Operandos:

A instruo RAD converte Source (em graus) em radianos e armazena o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT REAL SINT INT DINT REAL Formato: imediato tag Descrio: valor a ser convertido em radianos

Destination

tag

tag para armazenar o resultado

Texto Estruturado
dest := RAD(source);

Use RAD como uma funo. Esta funo converte source em radianos e armazena o resultado em dest. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: tag RAD Tipo: FBD_MATH_ADVANCED Formato: estrutura Descrio: estrutura de RAD

Estrutura FBD_MATH_ADVANCED
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL REAL Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial est energizado Entrada para a instruo de converso. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo de converso. Os flags de status aritmtico so energizados para esta sada.

Descrio: A instruo RAD usa este algoritmo:


Source*/180 (onde = 3.141593)

Flags de Status Aritmtico: Os flags de status aritmtico so afetados.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

15-5

Condies de Falha: nenhuma Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador converte Source em radianos e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Converte value em radianos e coloca o resultado em result. Lgica Ladder

Texto Estruturado
result := RAD(value);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

15-6

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Converso para BCD (TOD)


Operandos:

A instruo TOD converte um valor decimal (0 Source 99,999,999) em um valor BCD e armazena o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT Formato: imediato tag Descrio: valor a ser convertido em decimal

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Destination SINT INT DINT tag armazena o resultado

Bloco de Funes
Operando: tag TOD Tipo: FBD_CONVERT Formato: estrutura Descrio: estrutura de TOD

estrutura FBD_CONVERT
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL DINT Tipo de Dados: BOOL DINT Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial est energizado Entrada para a instruo de converso. Vlido = qualquer inteiro Descrio: A instruo produziu um resultado vlido. Resultado da instruo de converso. Os flags de status aritmtico so energizados para esta sada.

Descrio: BCD o sistema numrico Decimal Codificado em Binrio que


expressa os dgitos decimais individuais (0-9) em uma notificao de binrio de 4 bits. Se voc inserir um Source negativo, a instruo gera uma falha de advertncia e remove o Destination.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Uma falha de advertncia ocorrer se: Source < 0 Tipo de falha: 4 Cdigo de falha: 4

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

15-7

Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa.

no Source < 0

source > 99,999,999

no

converte source em BCD

sim

sim

S:V definido como 1

sada da condio da linha definida como verdadeira

fim

entrada da condio da linha verdadeira postscan

O controlador converte Source em BCD e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Publicao 1756-RM003F-PT-P - Maio 2002

15-8

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Exemplo: A instruo TOD converte value_1 em um valor BCD e coloca o


resultado em result_a.

Lgica Ladder

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

15-9

Converso em Inteiro (FRD)


Operandos:

A instruo FRD converte um valor BCD (Source) em um valor decimal e armazena o resultado em Destination.

Lgica Ladder
Operando: Source Tipo: SINT INT DINT Formato: imediato tag Descrio: valor a ser convertido em decimal

Um tag SINT ou INT convertido para um valor DINT por preenchimento com zero. Destination SINT INT DINT tag armazena o resultado

Bloco de Funes
Operando: tag FRD Tipo: FBD_CONVERT Formato: estrutura Descrio: estrutura de FRD

estrutura FBD_CONVERT
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL DINT Tipo de Dados: BOOL DINT Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. O padro est energizado Entrada para a instruo de converso. Vlido = qualquer inteiro Descrio: A instruo produziu um resultado vlido. Resultado da instruo de converso. Os flags de status aritmtico so energizados para esta sada.

Descrio: A instruo FRD converte um valor BCD (Source) em um valor


decimal e armazena o resultado em Destination.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma Execuo

Publicao 1756-RM003F-PT-P - Maio 2002

15-10

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Lgica Ladder
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador converte Source em um valor decimal e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

postscan

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut desenergizado. A instruo executa. EnableOut energizado. Nenhuma ao tomada.

Exemplo: A instruo FRD converte value_1 em um valor decimal e coloca o


resultado em result_a.

Lgica Ladder

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

15-11

Truncar (TRN)
Operandos:

A instruo TRN remove (trunca) a parte fracionria de Source e armazena o resultado em Destination.

Lgica Ladder
Operando: Source Destination Tipo: REAL SINT INT DINT REAL Formato: imediato tag tag Descrio: valor a ser truncado tag para armazenar o resultado

Texto Estruturado
dest := TRUNC(source);

Use TRUNC como uma funo. Esta funo trunca source e armazena o resultado em dest. Consulte o Apndice C para informaes sobre a sintaxe de expresses de texto estruturado.

Bloco de Funes
Operando: tag TRN Tipo: FBD_TRUNCATE Formato: estrutura Descrio: estrutura de TRN

Estrutura FBD_TRUNCATE
Parmetro de Entrada: EnableIn Source Parmetro de Sada: EnableOut Dest Tipo de Dados: BOOL REAL Tipo de Dados: BOOL DINT Descrio: Habilita entrada. Se desenergizada, a instruo no executa e as sadas no so atualizadas. Valor inicial est energizado Entrada para a instruo de converso. Vlido = qualquer flutuante Descrio: A instruo produziu um resultado vlido. Resultado da instruo de converso. Os flags de status aritmtico so energizados para esta sada.

Descrio: O truncamento no arredonda valores; portanto, a parte no


fracionria permanece a mesma independente da parte fracionria.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

15-12

Instrues de Converso Matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Execuo Lgica Ladder


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira postscan Ao: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. O controlador remove a parte fracionria de Source e coloca o resultado em Destination. A sada da condio da linha definida como verdadeira. A sada da condio da linha definida como falsa.

Bloco de Funes
Condio: prescan primeiro scan da instruo primeira execuo da instruo EnableIn est desenergizado EnableIn est energizado postscan Ao: Nenhuma ao tomada. Nenhuma ao tomada. Nenhuma ao tomada. EnableOut est desenergizado. A instruo executa. EnableOut est energizado. Nenhuma ao tomada.

Exemplo: Remova a parte fracionria de float_value_1, mantendo a parte no


fracionria a mesma, e coloque o resultado em float_value_1_truncated.

Lgica Ladder

Texto Estruturado
float_value_1_truncated := TRUNC(float_value_1);

Bloco de Funes

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

16

Instrues da Porta Serial ASCII


(ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Introduo
Se voc quiser: determinar quando o buffer contm caracteres de terminao contar os caracteres no buffer remover o buffer remover as instrues da Porta Serial ASCII que esto executando atualmente ou esto em uma fila. obter o status das linhas de controle da porta serial ligar ou desligar o sinal DTR ligar ou desligar o sinal RTS ler um nmero fixo de caracteres

Use as instrues de porta serial para ler e escrever os caracteres ASCII.


Por exemplo: verificar os dados que contenham caracteres de terminao verificar o nmero solicitado dos caracteres antes de ler o buffer remover dados antigos do buffer no startup sincronizar o buffer com um dispositivo causar um modem para desligar Use esta instruo: ABL ACB ACL Disponvel nessas linguagens: lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado Consulte pgina: 16-5 16-8 16-10

AHL

lgica ladder texto estruturado

16-12

ler dados a partir de um dispositivo que envia o mesmo nmero de caracteres em cada transmisso

ARD

lgica ladder texto estruturado lgica ladder texto estruturado

16-15

ler um nmero de caracteres varivel, ler os dados a partir de um at e incluindo o primeiro conjunto de dispositivo que envia um nmero de caracteres de terminao caracteres varivel em cada transmisso enviar caracteres e, enviar mensagens que sempre usam automaticamente, acrescentar um ou o(s) mesmo(s) caracter(es) de dois caracteres para marcar o fim dos terminao dados enviar caracteres enviar mensagens que usam vrios caracteres de terminao

ARL

16-18

AWA

lgica ladder texto estruturado

16-22

AWT

lgica ladder texto estruturado

16-26

IMPORTANTE

Para usar as instrues da porta serial ASCII, voc deve configurar a porta serial do controlador. Consulte Logix5000 Controllers Common Procedures, publicao 1756-PM001.

Publicao 1756-RM003F-PT-P - Maio 2002

16-2

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Execuo da Instruo
As instrues da porta serial ASCII executam assncronos para o scan da lgica:
Lgica Quando a entrada da condio da linha passa de falsa para verdadeira Fila ASCII Instruo 1 Instruo 2 Instruo 3 Instruo 4 A instruo entra na fila ASCII. Os dados fluem entre o buffer e a porta serial Porta Serial Buffer Os dados fluem entre a tarefa e o buffer. Tarefa ASCII Instruo na parte superior da fila executada.

Cada instruo da porta serial ASCII (exceto ACL) usa uma estrutura SERIAL_PORT_CONTROL para executar as seguintes funes: controlar a execuo da instruo fornecer as informaes de status sobre a instruo

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-3

O diagrama de temporizao representa as mudanas nos bits de status conforme uma instruo ARL testa o buffer quanto aos caracteres de terminao
scan scan scan scan

entrada da condio da linha

falsa

verdadeira

falsa

verdadeira

falsa

.EN

off

on

off

on

off

.EU

off

on

RN

off

on

off

on

off

.DN ou .ER

off

on

off

on

.FD

off

on

off

on

.EM

off

on

off

on

entra na fila

reseta os bits de status

executa neste exemplo, encontra os caracteres de terminao.

quando efetuado o scan .DN ou .ER forem energizados, o bit .EM energiza

A fila ASCII suporta at 16 instrues. Quando a fila est cheia, uma


scan scan scan scan

entrada da condio da linha

falsa

verdadeira

falsa

.EN

off

on

.EU

off

on

tenta entrar na fila, mas a fila est cheia entra na fila

instruo tenta entrar na fila em cada scan subseqente da instruo, conforme representado abaixo:

Publicao 1756-RM003F-PT-P - Maio 2002

16-4

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Cdigos de Erro ASCII


Se uma instruo da porta serial ASCII falhar na execuo, o membro ERROR de sua estrutura SERIAL_PORT_CONTROL conter um dos seguintes cdigos de erros decimais:
Este cdigo hex: 16#2 16#3 16#4 16#A 16#C 16#D 16#E 16#F 16#51 16#54 16#55 Indica que: o modem passou para o modo offline. O sinal CTS foi perdido durante a comunicao. A porta serial estava em modo de sistema. Antes da execuo da instruo o bit .UL foi energizado. Isto evita a execuo da instruo. O controlador mudou do modo Run para o modo Program. Ele pra a execuo de uma instruo ASCII e elimina a fila. Na janela Properties do Controlador, guia User Protocol, o tamanho de buffer ou parmetros de modo de eco so mudados e aplicados. Ele pra a execuo de uma instruo ASCII e elimina a fila. A instruo ACL foi executada. A configurao da porta serial passou do modo User para o modo System. Ele pra a execuo de uma instruo da porta serial ASCII e elimina a fila. O valor LEN do tag da string negativo ou maior que o tamanho de DATA do tag da string. O Comprimento de Controle da Porta Serial maior que o tamanho do buffer. O Comprimento de Controle da Porta Serial ou negativo ou maior que o tamanho do Source ou Destination.

Tipos de Dados da String


Voc armazena os caracteres ASCII em tags que usam um tipo de dados da string. Voc pode usar o tipo de dados STRING padro. Ele armazena at 82 caracteres. Voc pode criar um novo tipo de dados de string que armazene menos ou mais caracteres. Para criar um novo tipo de dados da string, consulte Logix5000 Controllers Common Procedures, publicao 1756-PM001.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-5

Cada tipo de dados de string contm os seguintes membros:


Nome LEN Tipo de Dados: DINT Descrio: nmero de caracteres na string Notas: A LEN atualiza a nova contagem de caracteres automaticamente sempre que voc: usar a janela String Browser para inserir caracteres usar as instrues que lem, convertem ou manipulam uma string LEN mostra o comprimento da string atual. O membro DATA pode conter caracteres adicionais, antigos, que no esto includos na contagem de LEN. DATA array SINT caracteres ASCII da string Para acessar os caracteres da string, enderece o nome do tag. Por exemplo, para acessar os caracteres do tag da string_1, insira da string_1. Cada elemento do array DATA contm um caracter. Voc pode criar novos tipos de dados de string que armazenem menos ou mais caracteres.

Teste ASCII Para Linha do Buffer (ABL)


Operandos:

A instruo ABL conta os caracteres no buffer at e, incluindo, o primeiro caractere de terminao

Lgica Ladder
ABL ASCII Test For Buffer Line Channel SerialPort Control Character Count EN DN ER

Operando: Channel: Porta Serial Control Character Count

Tipo: DINT SERIAL_PORT_ CONTROL DINT

Formato: imediato tag tag imediato

Descrio: 0 tag que controla a operao 0 Durante a execuo, exibe o nmero de caracteres no buffer at e incluindo o primeiro conjunto dos caracteres de terminao.

? ? ?

Texto Estruturado
ABL(Channel SerialPortControl);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder ABL. Voc acessa o valor Character Count atravs do membro .POS da estrutura SERIAL_PORT_CONTROL.

Publicao 1756-RM003F-PT-P - Maio 2002

16-6

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estrutura SERIAL_PORT_CONTROL
Mnemnico: .EN .EU .DN RN .EM .ER .FD .POS Tipo de Dados: Descrio: BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT O bit habilitado indica que a instruo est habilitada. O bit da fila indica que a instruo entrou na fila ASCII. O bit executado indica quando a instruo est concluda, mas assncrono para o scan da lgica. O bit de operao indica que a instruo est executando. O bit vazio indica que a instruo est concluda, mas sncrono para o scan da lgica. O bit de erro indica quando a instruo falhar (erros). O bit encontrado indica que a instruo encontrou o(s) caracter(es) de terminao. A posio determina o nmero de caracteres no buffer at e incluindo o primeiro conjunto de caracteres de terminao. A instruo somente retorna a este nmero depois de encontrar o(s) caracter(es) de terminao. O erro contm um valor hexadecimal que identifica a causa de um erro.

.ERROR.

DINT

Descrio: A instruo ABL procura o buffer para o primeiro conjunto de


caracteres de terminao. Se a instruo encontra os caracteres de terminao, ela: configura o bit .FD conta os caracteres no buffer at e, incluindo, o primeiro conjunto de caracteres de terminao A janela Controller Properties, guia User Protocol, define os caracteres ASCII que a instruo considera como caracteres de terminao. Para programar a instruo ABL, siga estas orientaes: 1. Configure a porta serial do controlador para o modo do usurio e defina os caracteres que servem como caracteres de terminao. 2. Essa uma instruo transicional: Na lgica ladder, alterne a entrada da condio de linha de desenergizado para energizado toda vez que a instruo deveria ser executada. No texto estruturado, condicione a instruo para que ela somente execute em uma transio. Consulte o Apndice C.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-7

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa quando a entrada da condio de linha alterna de desenergizada para energizada. A sada da condio da linha definida como verdadeira. na A instruo conta os caracteres no buffer. O bit .EN energizado. Os bits de status restantes, exceto .UL, so desenergizados. A instruo tenta entrar na fila ASCII. A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao do Texto Estruturado: Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa.

postscan

Exemplo: Teste continuamente o buffer para os caracteres de terminao. Lgica Ladder

MV_line.EN /

ABL ASCII Test For Buffer Line Channel 0 SerialPort Control MV_line Character Count 0

EN DN ER

Texto Estruturado
ABL(0,MV_line);

Publicao 1756-RM003F-PT-P - Maio 2002

16-8

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Caracteres ASCII no Buffer (ACB)


Operandos:

A instruo ACB conta os caracteres no buffer.

Lgica Ladder
ACB ASCII Chars in Buffer Channel SerialPort Control Character Count EN DN ER

Operando: Channel: Serial Port Control Character Count

Tipo: DINT SERIAL_PORT_ CONTROL DINT

Formato: imediato tag tag imediato

Insira: 0 tag que controla a operao 0 Durante a execuo, exibe o nmero de caracteres no buffer.

? ? ?

Texto Estruturado
ACB(Channel SerialPortControl);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder ACB. Entretanto, voc especifica o valor de Contagem do Caractere ao acessar o membro .POS da estrutura SERIAL_PORT_CONTROL ou ao incluir o valor na lista de operandos.

Estrutura SERIAL_PORT_CONTROL
Mnemnico: .EN .EU .DN RN .EM .ER .FD .POS .ERROR. Tipo de Dados: BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo est habilitada. O bit da fila indica que a instruo entrou na fila ASCII. O bit executado indica quando a instruo est concluda, mas assncrono para o scan da lgica. O bit de operao indica que a instruo est executando. O bit vazio indica que a instruo est concluda, mas sncrono para o scan da lgica. O bit de erro indica quando a instruo falha (erros). O bit encontrado indica que a instruo encontrou um caractere. A posio determina o nmero de caracteres no buffer at e, incluindo, o primeiro conjunto de caracteres de terminao. O erro contm um valor hexadecimal que identifica a causa de um erro.

Descrio: A instruo ACB conta os caracteres no buffer.


Para programar a instruo ACB, siga estas orientaes: 1. Configure a porta serial do controlador para modo de usurio. 2. Essa uma instruo transicional:

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-9

Na lgica ladder, alterne a entrada da condio de linha de desenergizada para energizada a cada hora que a instruo deve ser executada. No texto estruturado, condicione a instruo para que ela somente execute em uma transio. Consulte Apndice C.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa quando a entrada da condio de linha alterna de desenergizada para energizada. A sada da condio da linha definida como verdadeira. na A instruo ACB conta os caracteres no buffer. O bit .EN est energizado. Os bits de status restantes, exceto .UL, so desenergizados. A instruo tenta entrar na fila ASCII. A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao do Texto Estruturado: Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa.

postscan

Exemplo: Conte continuamente os caracteres no buffer Lgica Ladder


bar_code_count.EN / ACB ASCII Chars in Buffer Channel 0 SerialPort Control bar_code_count Character Count 0

EN DN ER

Texto Estruturado
ACB(0,bar_code_count);

Publicao 1756-RM003F-PT-P - Maio 2002

16-10

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Limpeza do Buffer ASCII (ACL)


Operandos:

A instruo ACL imediatamente limpa o buffer ASCII.

Lgica Ladder
ACL ASCII Clear Buffer Channel Clear Serial Port Read Clear Serial Port Write

Operando:
? ? ?

Tipo: DINT BOOL BOOL

Formato: imediato tag imediato tag imediato tag

Insira: 0 Para esvaziar o buffer e remover as instrues ARD e ARL da fila, digite Yes. Para remover as instrues AWA e AWT da fila, digite Yes.

Channel: Clear Serial Port Read Clear Serial Port Write

Texto Estruturado
ACL(Channel, ClearSerialPortRead, ClearSerialPortWrite);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder ACL.

Descrio: A instruo ACL realiza imediatamente uma ou ambas as aes


seguintes: limpa o buffer de caracteres e remove a fila ASCII das instrues de leitura remove a fila ASCII das instrues de escrita Para programar a instruo ACL, siga estas orientaes: 1. Configure a porta serial do controlador:
Se sua aplicao: usa as instrues ARD ou ARL no usa as instrues ARD ou ARL Ento: Selecione modo User Selecione ou o modo System ou User

2. Para determinar se uma instruo foi removida da fila ou abortada, examine as seguintes instrues apropriadas: bit .ER energizado membro .ERROR.R 16#E

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-11

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na A instruo remove as instrues especficas e o(s) buffer(s). A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao do Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa.

Exemplo: Quando o controlador insere o modo Run, remova o buffer e a fila


ASCII.

Lgica Ladder

S:FS

ACL ASCII Clear Buffer Channel Clear Serial Port Read Clear Serial Port Write

0 1 1

Texto Estruturado
OSRI_1.InputBit := S:FS; OSRI(osri_1);

SE (osri_1.OutputBit) ENTO ACL(0,0,1); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

16-12

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Linhas de Handshake ASCII (AHL)


Operandos:

A instruo AHL obtm o status de linhas de controle e acende ou apaga os sinais DTR e RTS.

Lgica Ladder
AHL ASCII Handshake Lines Channel AND Mask OR Mask SerialPort Control Channel Status(Decimal) EN ? ? ?? ? ?? ? ? DN ER

Operando: Channel: ANDMask ORMask Serial Port Control Channel Status (Decimal)

Tipo: DINT DINT DINT SERIAL_PORT_CONTROL DINT

Formato: imediato tag imediato tag imediato tag tag imediato

Insira: 0 Consulte a descrio.

tag que controla a operao 0 Durante a execuo, exibe o status das linhas de controle. Para o status desta linha de controle: CTS RTS DSR DCD DTR Recebeu o caractere XOFF Examine este bit: 0 1 2 3 4 5

Texto Estruturado
AHL(Channel,ANDMask,ORMask, SerialPortControl);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder AHL. Entretanto, voc especifica o valor de Channel Status ao acessar o membro .POS da estrutura SERIAL_PORT_CONTROL ou ao incluir o valor na lista de operandos.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-13

Estrutura SERIAL_PORT_CONTROL
Mnemnico: .EN .EU .DN RN .EM .ER .FD .POS .ERROR. Tipo de Dados: BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Descrio: O bit habilitado indica que a instruo est habilitada. O bit da fila indica que a instruo entrou na fila ASCII. O bit executado indica que a instruo est concluda, mas assncrono para o scan da lgica. O bit de operao indica que a instruo est executando. O bit vazio indica que a instruo est concluda, mas sncrono para o scan da lgica. O bit de erro indica quando a instruo falha (erros). O bit encontrado no se aplica a esta instruo. A posio armazena o status das linhas de controle. O erro contm um valor hexadecimal que identifica a causa de um erro.

Descrio: A instruo AHL pode:


obter o status das linhas de controle da porta serial ligar ou desligar o sinal (DTR) pronto do terminal de dados ligar ou desligar o pedido para enviar o sinal (RTS) Para programar a instruo AHL, siga estas orientaes: 1. Configure a porta serial do controlador:
Se sua aplicao: usa as instrues ARD ou ARL no usa as instrues ARD ou ARL Ento: Selecione modo User Selecione ou o modo System ou User

2. Use as tabelas a seguir para selecionar os valores corretos para os operandos ANDMask e ORMask:
DTR: off RTS: off on no mudado on off on no mudado no mudado off on no mudado Digite este valor de ANDMask: 3 1 1 2 0 0 2 0 0 E digite este valor de ORMask: 0 2 0 1 3 1 0 2 0

3. Essa uma instruo transicional: Na lgica ladder, alterne a entrada da condio de linha de desenergizada para energizada toda vez que a instruo deve ser executada. No texto estruturado, condicione a instruo para que ela somente execute em uma transio. Consulte Apndice C.

Publicao 1756-RM003F-PT-P - Maio 2002

16-14

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Flags de Status Aritmtico: no afetados Condies de Falha:


Tipo: 4 Cdigo: 57 Causa: Mtodo de Recuperao:

A instruo AHL falhou ao ser executada porque a Ou: porta serial no est configurada para handshake. Alterar a Linha de Controle configurando a porta serial. Excluir a instruo AHL.

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa quando a entrada da condio de linha alterna de desenergizado para energizado. A sada da condio da linha definida como verdadeira. na Ao do Texto Estruturado: Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa.

A instruo obtm o status da linha de controle e acende ou apaga os sinais DTR e RTS. O bit .EN energizado. Os bits de status restantes, exceto .UL, so desenergizados. A instruo tenta entrar na fila ASCII. A sada da condio da linha definida como falsa. Nenhuma ao tomada.

postscan

Exemplo: Quando get_control_line_status torna-se energizado, obtenha o status


das linhas de controle da porta serial e armazene o status no operando Channel Status. Para visualizar o status de uma linha de controle especfica, monitore o tag SerialPortControl e expanda o membro POS.

Lgica Ladder
get_control_line_status AHL ASCII Handshake Lines Channel AND Mask OR Mask SerialPort Control Channel Status(Decimal) EN 0 0 0 serial_port 29 DN ER

Texto Estruturado
osri_1.InputBit := get_control_line_status; OSRI(osri_1); SE (osri_1.OutputBit) ENTO AHL(0,0,0,serial_port); END_IF;
Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-15

Leitura ASCII (ARD)


Operandos:

A instruo ARD remove os caracteres do buffer e armazena-os em Destination.

Lgica Ladder
ARD ASCII Read Channel Destination SerialPort Control SerialPort Control Length Characters Read EN ? ? ?? ? ? ? DN ER

Operando: Channel: Destination

Tipo: DINT string SINT INT DINT

Formato: imediato tag tag

Insira: 0 tag no qual os caracteres so movidos (leitura): Para um tipo de dados da string, insira o nome do tag. Para um array SINT, INT ou DINT, insira o primeiro elemento do array. tag que controla a operao nmero de caracteres para mudar para o destination (leitura)

Notas:

Se voc quiser comparar, converter ou manipular os caracteres, use um tipo de dados da string. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar

Serial Portl Control Serial Port Control Length

SERIAL_PORT_ CONTROL DINT

tag imediato

O Comprimento de Serial Port Control Length deve ser menor ou igual ao tamanho de Destination. Se voc quer configurar o Serial Port Control Length igual ao tamanho de Destination, insira 0. Durante a execuo, exibe o nmero de caracteres que foram lidos.

Characters Read

DINT

imediato

Texto Estruturado
ARD(Channel,Destination, SerialPortControl);

Os operandos so os mesmos que aqueles para a instruo ARD de lgica ladder. Entretanto, voc especifica os valores de Serial Port Control Length e de Characteres Read ao acessar os membros .LEN e .POS da estrutura SERIAL_PORT_CONTROL ou ao incluir os valores na lista de operandos.

Publicao 1756-RM003F-PT-P - Maio 2002

16-16

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estrutura SERIAL_PORT_CONTROL
Mnemnico: .EN .EU .DN RN .EM .ER .FD .LEN .POS .ERROR. Tipo de Dados: BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descrio: O bit habilitado indica que a instruo est habilitada. O bit da fila indica que a instruo entrou na fila ASCII. O bit executado indica que a instruo est concluda, mas assncrono para o scan da lgica. O bit de operao indica que a instruo est executando. O bit vazio indica que a instruo est concluda, mas sncrono para o scan da lgica. O bit de erro indica quando a instruo falha (erros). O bit encontrado no se aplica a esta instruo. O comprimento indica o nmero de caracteres para mudar para Destination (leitura). A posio exibe o nmero de caracteres que foram lidos. O erro contm um valor hexadecimal que identifica a causa de um erro.

Descrio: A instruo ARD remove o nmero especificado de caracteres do


buffer e armazena-os em Destination. A instruo ARD continua a executar at que ela remova o nmero especificado de caracteres (Serial Port Control Length). Enquanto a instruo ARD est sendo executada, nenhuma instruo da porta serial ASCII executada. Para programar a instruo ARD, siga estas orientaes: 1. Configure a porta serial do controlador para o modo User. 2. Use os resultados de uma instruo ACB para iniciar a instruo ARD. Isto previne a instruo ARD de segurar a fila ASCII enquanto ela espera o nmero de caracteres necessrio. 3. Essa uma instruo transicional: Na lgica ladder, alterne a entrada da condio de linha de desenergizada para energizada toda vez que a instruo deve ser executada. No texto estruturado, condicione a instruo para que ela somente execute em uma transio. Consulte Apndice C. 4. Para disparar a ao subseqente quando a instruo for concluda, examine o bit EM.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-17

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa quando a entrada da condio de linha alterna de desenergizada para energizada. A sada da condio da linha definida como verdadeira. na Ao do Texto Estruturado: Nenhuma ao tomada. na na

EnableIn est energizado execuo da instruo

EnableIn est sempre energizado A instruo executa.

A instruo remove os caracteres do buffer e armazena-os em Destination. O bit .EN energizado. Os bits de status restantes, exceto .UL, so desenergizados. A instruo tenta entrar na fila ASCII. A sada da condio da linha definida como falsa. Nenhuma ao tomada.

postscan

Exemplo: Um leitor de cdigo de barras envia os cdigos de barras para a porta


serial (canal 0) do controlador. Cada cdigo de barra contm 24 caracteres. Para determinar quando o controlador recebe um cdigo de barra, a instruo ACB conta continuamente os caracteres no buffer. Quando o buffer contiver pelo menos 24 caracteres, o controlador recebeu um cdigo de barras. A instruo ARD muda o cdigo de barras para o membro DATA do tag bag_bar_code que uma string.

Lgica Ladder
bar_code_count.EN / ACB ASCII Chars in Buffer Channel 0 SerialPort Control bar_code_count Character Count 0

EN DN ER

GEQ Grtr Than or Eql (A>=B) Source A bar_code_count.pos 0 Source B 24

ARD ASCII Read Channel Destination EN DN ER 0 bag_bar_code '' SerialPort Control bar_code_read SerialPort Control Length 24 Characters Read 0

Texto Estruturado
ACB(0,bar_code_count); IF bar_code_count.POS >= 24 THEN bar_code_read.LEN := 24; ARD(0,bag_bar_code,bar_code_read); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

16-18

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Linha de Leitura ASCII (ARL)


Operandos:

A instruo ARL remove os caracteres especificados do buffer e armazena-os em Destination.

Lgica Ladder
ARL ASCII Read Line Channel Destination SerialPort Control SerialPort Control Length Characters Read EN ? ? ?? ? ? ? DN ER

Operando: Channel: Destination

Tipo: DINT string SINT INT DINT

Formato: imediato tag tag

Insira: 0 tag no qual os caracteres so movidos (leitura): Para um tipo de dados da string, insira o nome do tag. Para um array SINT, INT ou DINT, insira o primeiro elemento do array. tag que controla a operao nmero mximo de caracteres para ler se nenhum caractere de terminao for encontrado

Notas:

Se voc quiser comparar, converter ou manipular os caracteres, use um tipo de dados da string. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar

Serial Port Control Serial Port Control Length

SERIAL_PORT_ CONTROL DINT

tag imediato

Insira o nmero mximo de caracteres que qualquer mensagem conter (ou seja, quando parar a leitura se nenhum caractere de terminao encontrado). Por exemplo, se as faixas de mensagens de 3 a 6 caracteres no comprimento, insira 6. O Serial Port Control Length da Porta Serial deve ser menor ou igual ao tamanho de Destination. Se voc quer configurar Serial Port Control Length igual ao tamanho de Destination, insira 0.

Characters Read

DINT

imediato

Durante a execuo, exibe o nmero de caracteres que foram lidos.

Texto Estruturado
ARL(Channel,Destination, SerialPortControl);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder ARL. Entretanto, voc especifica os valores do Serial Port Control Length e de Characters Read ao acessar os membros .LEN e .POS da estrutura SERIAL_PORT_CONTROL ou ao incluir os valores na lista de operandos.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-19

Estrutura SERIAL_PORT_CONTROL
Mnemnico: .EN .EU .DN RN .EM .ER .FD .LEN .POS .ERROR. Tipo de Dados: BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descrio: O bit habilitado indica que a instruo est habilitada. O bit da fila indica que a instruo entrou na fila ASCII. O bit executado indica quando a instruo est concluda, mas assncrono para o scan da lgica. O bit de operao indica que a instruo est executando. O bit vazio indica que a instruo est concluda, mas sncrono para o scan da lgica. O bit de erro indica quando a instruo falha (erros). O bit encontrado no se aplica a esta instruo. O comprimento indica o nmero mximo de caracteres que mudar para Destination (ou seja, quando parar a leitura se nenhum caractere de terminao for encontrado). A posio exibe o nmero de caracteres que foram lidos. O erro contm um valor hexadecimal que identifica a causa de um erro.

Descrio: A instruo ARL remove os caracteres do buffer e armazena-os em


Destination conforme se segue. A instruo ARL continua a ser executada at remover ou: primeiro conjunto de caracteres de terminao nmero especfico de caracteres (Serial Port Control Length) Enquanto a instruo ARL est sendo executada, nenhuma instruo da porta serial ASCII executada. Para programar a instruo ARL, siga estas orientaes: 1. Configure a porta serial do controlador: a. Selecione modo User b. Defina os caracteres que servem como caracteres de terminao. 2. Use os resultados de uma instruo ABL para iniciar a instruo ARL. Isto previne a instruo ARL de segurar a fila ASCII enquanto espera pelos caracteres de terminao. 3. Essa uma instruo transicional: Na lgica ladder, alterne a entrada da condio de linha de desenergizada para energizada toda vez que a instruo deve ser executada. No texto estruturado, condicione a instruo para que ela somente execute em uma transio. Consulte Apndice C. 4. Para disparar a ao subseqente quando a instruo for concluda, examine o bit EM.

Flags de Status Aritmtico: no afetados

Publicao 1756-RM003F-PT-P - Maio 2002

16-20

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa quando a entrada da condio de linha alterna de desenergizada para energizada. A sada da condio da linha definida como verdadeira. na Ao do Texto Estruturado: Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa.

A instruo remove os caracteres especificados do buffer e armazena-os em Destination. O bit .EN energizado. Os bits de status restantes, exceto .UL, so desenergizados. A instruo tenta entrar na fila ASCII. A sada da condio da linha definida como falsa. Nenhuma ao tomada.

postscan

Exemplo: Teste continuamente o buffer para uma mensagem de um terminal


MessageView. Como cada mensagem termina com um caractere $r, este caractere configurado como o caractere de terminao na janela Controller Properties, guia User Protocol. Quando a ABL encontra um caractere $r, ela energiza o bit FD. Quando a instruo ABL encontra um $r (MV_line.FD energizado) o controlador recebeu uma mensagem completa. A instruo ARL remove os caracteres do buffer at e, incluindo, o caractere $r e coloca-os no membro DATA do tag MV_msg que uma string.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-21

Lgica Ladder
MV_line.EN / ABL ASCII Test For Buffer Line Channel 0 SerialPort Control MV_line Character Count 0

EN DN ER

MV_line.FD ASCII Read Line Channel Destination

ARL EN 0 MV_msg '' MV_read 12 0 DN ER

SerialPort Control SerialPort Control Length Characters Read

Texto Estruturado
ABL(0,MV_line);

osri_1.InputBit := MVLine.FD; OSRI(osri_1);

SE (osri_1.OutputBit) ENTO mv_read.LEN := 12; ARL(0,MV_msg,MV_read); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

16-22

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Anexar Leitura ASCII (AWA)


Operandos:

A instruo AWA envia um nmero especfico de caracteres do tag Source para um dispositivo serial e anexa um ou dois caracteres pr-definidos.

Lgica Ladder
AWA ASCII Write Append Channel Source SerialPort Control SerialPort Control Length Characters Sent EN ? ? ?? ? ? ? DN ER

Operando: Channel: Source

Tipo: DINT string SINT INT DINT

Formato: imediato tag tag

Insira: 0 tag que contm os caracteres para enviar: Para um tipo de dados da string, insira o nome do tag. Para um array SINT, INT ou DINT, insira o primeiro elemento do array. tag que controla a operao nmero de caracteres para enviar

Notas:

Se voc quiser comparar, converter ou manipular os caracteres, use um tipo de dados da string. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar

Serial Port Control Serial Port Control Length

SERIAL_PORT_ CONTROL DINT

tag imediato

O Serial Port Control Length deve ser menor ou igual ao tamanho de Source. Se voc quer configurar Serial Port Control Length igual ao nmero de caracteres no Source, insira 0. Durante a execuo, exibe o nmero de caracteres que foram enviados.

Characters Sent

DINT

imediato

Texto Estruturado
AWA(Channel,Source, SerialPortControl);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder AWA. Entretanto, voc especifica os valores do Serial Port Control Length e Characters Sent ao acessar os membros .LEN e .POS da estrutura SERIAL_PORT_CONTROL ou ao incluir os valores na lista de operandos.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-23

Estrutura SERIAL_PORT_CONTROL
Mnemnico: .EN .EU .DN RN .EM .ER .FD .LEN .POS .ERROR. Tipo de Dados: BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descrio: O bit habilitado indica que a instruo est habilitada. O bit da fila indica que a instruo entrou na fila ASCII. O bit executado indica quando a instruo est concluda, mas assncrono para o scan da lgica. O bit de operao indica que a instruo est executando. O bit vazio indica que a instruo est concluda, mas sncrono para o scan da lgica. O bit de erro indica quando a instruo falha (erros). O bit encontrado no se aplica a esta instruo. O comprimento indica o nmero de caracteres a serem enviados. A posio exibe o nmero de caracteres que foram enviados. O erro contm um valor hexadecimal que identifica a causa de um erro.

Descrio: A instruo AWA:


envia o nmero de caracteres especificado (Serial Port Control Length) do tag Source para o dispositivo que est conectado porta serial do controlador adiciona (anexa) ao fim dos caracteres um ou dois caracteres que so definidos na caixa de dilogo Controller Properties, guia User Protocol Para programar a instruo AWA, siga estas orientaes: 1. Configure a porta serial do controlador: a. Sua aplicao tambm inclui as instrues ARD ou ARL?
Se: sim no Ento: Selecione modo User Selecione ou o modo System ou User

b. Defina os caracteres para anexar os dados. 2. Essa uma instruo transicional: Na lgica ladder, alterna a entrada da condio de linha de desenergizada para energizada toda vez que a instruo deve ser executada. No texto estruturado, condicione a instruo para que ela execute somente em uma transio. Consulte Apndice C. 3. Cada vez que a instruo executada, voc sempre envia o mesmo nmero de caracteres?
Se: Sim No Ento: Em Serial Port Control Length, insira o nmero de caracteres a serem enviados. Antes de executar a instruo, defina o membro LEN do tag Source para o membro LEN do tag Serial Port Control.

Publicao 1756-RM003F-PT-P - Maio 2002

16-24

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo:


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa quando a entrada da condio de linha alterna de desenergizada para energizada. A sada da condio da linha definida como verdadeira. na Ao do Texto Estruturado: Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa.

A instruo envia um nmero especificado de caracteres e anexa um ou dois caracteres pr-definidos. O bit .EN energizado. Os bits de status restantes, exceto .UL, so desenergizados. A instruo tenta entrar na fila ASCII. A sada da condio da linha definida como falsa. Nenhuma ao tomada.

postscan

Exemplo 1: Quando a temperatura excede o limite elevado (temp_high


energizado), a instruo AWA envia uma mensagem para um terminal MessageView que est conectado porta serial do controlador. A mensagem contm cinco caracteres do membro DATA do tag string[1] que uma string. O $14 contado como um caractere. (Ele o cdigo hexadecimal para o caractere Ctrl-T.) A instruo tambm envia (anexos) os caracteres definidos nas propriedades do controlador. Neste exemplo, a instruo AWA envia um caractere $0D que marca o fim da mensagem

Lgica Ladder
temp_high AWA ASCII Write Append Channel Source

EN DN ER

0 string[1] '$1425\1' SerialPort Control temp_high_write SerialPort Control Length 5 Characters Sent 6

Texto Estruturado
SE temp_high ENTO temp_high_write.LEN := 5; AWA(0,string[1],temp_high_write); temp_high := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-25

Exemplo 2: Quando alarm energizado, a instruo AWA envia o nmero


especificado de caracteres em alarm_msg e anexa um caractere de terminao. Como o nmero de caracteres em alarm_msg varia, a linha move primeiro o comprimento da string (alarm_msg.LEN) para Serial Port Control Length da instruo AWA (alarm_write.LEN). Em alarm_msg, o $14 contado como um caractere. Ele o cdigo hexadecimal para o caractere Ctrl-T.

Lgica Ladder
alarm MOV Move Source alarm_msg.LEN 5 Dest alarm_write.LEN 5 AWA ASCII Write Append Channel Source SerialPort Control SerialPort Control Length Characters Sent

EN 0 alarm_msg '$1425\1' alarm_write 5 6 DN ER

Texto Estruturado
osri_1.InputBit := alarm; OSRI(osri_1);

SE (osri_1.OutputBit) ENTO alarm_write.LEN := alarm_msg.LEN; AWA(0,alarm_msg,alarm_write); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

16-26

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Escrita ASCII (AWT)


Operandos:

A instruo AWT envia um nmero especfico de caracteres do tag Source para um dispositivo serial.

Lgica Ladder
AWT ASCII Write Channel Source SerialPort Control SerialPort Control Length Characters Sent EN ? ? ?? ? ? ? DN ER

Operando: Channel: Source

Tipo: DINT string SINT INT DINT

Formato: imediato tag tag

Insira: 0 tag que contm os caracteres para enviar:s Para um tipo de dados da string, insira o nome do tag. Para um array SINT, INT ou DINT, insira o primeiro elemento do array. tag que controla a operao nmero de caracteres para enviar

Notas:

Se voc quiser comparar, converter ou manipular os caracteres, use um tipo de dados da string. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar

Porta Serial Control Serial Port Control Length

SERIAL_PORT_ CONTROL DINT

tag imediato

O Serial Port Control Length deve ser menor ou igual ao tamanho de Source. Se voc quer configurar o Serial Port Control Length igual ao nmero de caracteres em Source, insira 0. Durante a execuo, exibe o nmero de caracteres que foram enviados.

Characters Sent

DINT

imediato

Texto Estruturado
AWT(Channel,Source, SerialPortControl);

Os operandos so os mesmos que aqueles para a instruo de lgica ladder AWT. Entretanto, voc especifica os valores do Serial Port Control Length e de Characters Sent ao acessar os membros .LEN e .POS da estrutura SERIAL_PORT_CONTROL ou ao incluir os valores na lista de operandos.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-27

Estrutura SERIAL_PORT_CONTROL
Mnemnico: .EN .EU .DN RN .EM .ER .FD .LEN .POS .ERROR. Tipo de Dados: BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descrio: O bit habilitado indica que a instruo est habilitada. O bit da fila indica que a instruo entrou na fila ASCII. O bit executado indica quando a instruo est concluda, mas assncrono para o scan da lgica. O bit de operao indica que a instruo est executando. O bit vazio indica que a instruo est concluda, mas sncrono para o scan da lgica. O bit de erro indica quando a instruo falha (erros). O bit encontrado no se aplica a esta instruo. O comprimento indica o nmero de caracteres a serem enviados. A posio exibe o nmero de caracteres que foram enviados. O erro contm um valor hexadecimal que identifica a causa de um erro.

Descrio: A instruo AWT envia o nmero de caracteres especificado (Serial


Port Control Length) do tag Source para o dispositivo que est conectado porta serial do controlador Para programar a instruo AWT, siga estas orientaes: 1. Configure a porta serial do controlador:
Se sua aplicao: usa as instrues ARD or ARL Ento: Selecione modo User

no usa as instrues ARD ou ARL Selecione ou o modo System ou User

2. Essa uma instruo transicional: Na lgica ladder, alterne a entrada da condio de linha de desenergizado para energizado toda vez que a instruo deve ser executada. No texto estruturado, condicione a instruo para que ela somente execute em uma transio. Consulte Apndice C. 3. Cada vez que a instruo executada, voc sempre envia o mesmo nmero de caracteres?
Se: sim no Ento: Em Serial Port Control Length, insira o nmero de caracteres a serem enviados. Antes de executar a instruo, mude o membro LEN do tag Source para o membro LEN do tag Serial Port Control.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma

Publicao 1756-RM003F-PT-P - Maio 2002

16-28

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Execuo:
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa quando a entrada da condio de linha alterna de desenergizada para energizada. A sada da condio da linha definida como verdadeira. na A instruo envia um nmero especificado de caracteres. O bit .EN energizado. Os bits de status restantes, exceto .UL, so desenergizados. A instruo tenta entrar na fila ASCII. A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao do Texto Estruturado: Nenhuma ao tomada. na na

EnableIn est sempre energizado A instruo executa.

postscan

Exemplo 1: Quando a temperatura alcana o limite inferior (temp_low


energizado), a instruo AWT envia uma mensagem para o terminal MessageView que est conectado porta serial do controlador. A mensagem contm nove caracteres do membro DATA do tag string[2] que uma string. O $14 contado como um caractere. (Ele o cdigo hexadecimal para o caractere Ctrl-T.) O ltimo caractere um $r, que marca o fim da mensagem.

Lgica Ladder
temp_low ASCII Write Channel Source AWT EN DN ER 0 string[2] '$142224\01$r' SerialPort Control temp_low_write SerialPort Control Length 9 Characters Sent 9

Texto Estruturado
osri_1.InputBit := temp_low; OSRI(osri_1); SE (osri_1.OutputBit) ENTO temp_low_write.LEN := 9; AWT(0,string[2],temp_low_write); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

16-29

Exemplo 2: Quando MV_update energizado, a instruo AWT envia os


caracteres em MV_msg. Como o nmero de caracteres em MV_msg varia, a linha move primeiro o comprimento da string (MV_msg.LEN) para Serial Port Control Length da instruo AWT (MV_write.LEN). Em MV_msg, o $16 contado como um caractere. Ele o cdigo hexadecimal para o caractere Ctrl-V.

Lgica Ladder
MV_update MOV Move Source MV_msg.LEN 10 Dest MV_write.LEN 10 AWT ASCII Write Channel Source EN DN ER 0 MV_msg '$161365\8\1$r' SerialPort Control MV_write SerialPort Control Length 10 Characters Sent 10

Texto Estruturado
osri_1.InputBit := MV_update; OSRI(osri_1);

IF (osri_1.OutputBit) THEN MV_write.LEN := Mv_msg.LEN; AWT(0,MV_msg,MV_write); END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

16-30

Instrues da Porta Serial ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

17

Instrues de String ASCII


(CONCAT, DELETE, FIND, INSERT, MID)

Introduo
Se voc quiser: adicionar caracteres ao final de uma string excluir caracteres de uma string determinar o caractere inicial de uma sub-string inserir caracteres em uma string extrair caracteres de uma string

Use as instrues de string ASCII para modificar e criar strings de caracteres ASCII.
Por exemplo: adicionar caracteres de terminao ou delimitadores a uma string remover caracteres de cabealho ou controle de uma string localizar um grupo de caracteres dentro de uma string criar uma string que usa variveis extrair informaes de um cdigo de barras Use esta instruo: CONCAT DELETE FIND INSERT MID Disponvel nestas linguagens: lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado Consulte pgina: 17-3 17-5 17-7 17-9 17-11

Voc tambm pode usar as seguintes instrues para comparar ou converter caracteres ASCII:
Se voc quiser: comparar uma string com uma outra string verificar se os caracteres so iguais a caracteres especficos verificar se os caracteres no so iguais a caracteres especficos verificar se os caracteres so iguais ou maiores que caracteres especficos verificar se os caracteres so maiores que caracteres especficos verificar se os caracteres so iguais ou menores que caracteres especficos verificar se os caracteres so menores que caracteres especficos reorganizar os bytes de um tag INT, DINT ou REAL encontrar uma string em um array de strings converter caracteres para um valor SINT, INT, DINT ou REAL converter caracteres para um valor REAL converter um valor SINT, INT, DINT ou REAL para uma string de caracteres ASCII converter um valor REAL para uma string de caracteres ASCII Use esta instruo: CMP EQU NEQ GEQ GRT LEQ LES SWPB FSC STOD STOR DTOS RTOS Consulte pgina: 4-2 4-7 4-37 4-10 4-14 4-18 4-22 6-18 7-17 18-3 18-5 18-7 18-9

Publicao 1756-RM003F-PT-P - Maio 2002

17-2

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Tipos de Dados da String


You store ASCII characters in tags that use a string data type. You can use the default STRING data type. It stores up to 82 characters. You can create a new string data type that stores less or more characters. To create a new string data type, see Logix5000 Controllers Common Procedures, publicao 1756-PM001. Each string data type contains the following members:
Name: LEN Data Type: DINT Description: number of characters in the string Notes: The LEN automatically updates to the new count of characters whenever you: use the String Browser dialog box to enter characters use instructions that read, convert, or manipulate a string The LEN shows the length of the current string. The DATA member may contain additional, old characters, which are not included in the LEN count. DATA SINT array ASCII characters of the string To access the characters of the string, address the name of the tag. For example, to access the characters of the string_1 tag, enter string_1. Each element of the DATA array contains one character. You can create new string data types that store less or more characters.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

17-3

Concatenao de String (CONCAT)


Operandos:

A instruo CONCAT adiciona caracteres ASCII ao final de uma string.

Lgica Ladder
CONCAT String Concatenate Source A ? ?? Source B ? ?? Dest ? ??

Operando: Source A Source B Destination

Tipo: string string string

Formato: tag tag tag

Insira: tag que contm os caracteres iniciais tag que contm os caracteres finais tag para armazenar o resultado

Notas: Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar

Texto Estruturado
CONCAT(SourceA,SourceB, Dest);

Os operandos so os mesmos que os da instruo CONCAT da lgica ladder.

Descrio: A instruo CONCAT combina os caracteres em Source A com os


caracteres em Source B e coloca o resultado em Destination. Os caracteres de Source A so os primeiros, seguidos dos caracteres de Source B. A menos que Source A e Destination sejam o mesmo tag, Source A permanece inalterado.

Flags de Status Aritmtico: no afetados Condies de Falha:


Tipo: 4 Cdigo: 51 Causa: O valor LEN do tag da string maior que o tamanho de DATA do tag da string. Mtodo de Recuperao: 1. Verifique se nenhuma instruo est escrevendo para o membro LEN do tag da string. 2. No valor de LEN, insira o nmero de caracteres que a string contm.

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. Ao de Texto Estruturado: Nenhuma ao tomada. na na

Publicao 1756-RM003F-PT-P - Maio 2002

17-4

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Condio: EnableIn est energizado execuo da instruo postscan

Ao da Lgica Ladder: na A instruo concatena as strings. A sada da condio da linha definida como falsa.

Ao de Texto Estruturado: EnableIn est sempre energizado A instruo executa. Nenhuma ao tomada.

Exemplo: Para disparar uma mensagem em um terminal MessageView, o


controlador deve enviar uma string ASCII que contenha um nmero de mensagem e um nmero de n. String_1 contm o nmero da mensagem. Quando add_node est energizado, a instruo CONCAT adiciona os caracteres em node_num_ascii (nmero do n) ao final dos caracteres em string_1 e armazena o resultado em msg.

Lgica Ladder
add_node CONCAT String Concatenate Source A string_1 '$1423\' Source B node_num_ascii '1' Dest msg '$1423\1'

Texto Estruturado
IF add_node THEN CONCAT(string_1,node_num_ascii,msg); add_node := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

17-5

Excluso de String (DELETE)


Operandos:

A instruo DELETE remove os caracteres ASCII de uma string.

DELETE String Delete Source Qty Start Dest

Lgica Ladder
? ?? ? ?? ? ?? ? ??

Operando: Source

Tipo: string

Formato: tag

Insira: o tag que contm a string da qual voc quer excluir caracteres nmero de caracteres a serem excludos posio do primeiro caractere a ser excludo tag para armazenar o resultado

Notas: Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Start mais Quantity deve ser menor ou igual ao tamanho de DATA de Source. Insira um nmero entre 1 e o tamanho de DATA de Source.

Quantity

SINT INT DINT SINT INT DINT string

imediato tag imediato tag tag

Start

Destination

Texto Estruturado
DELETE(Source,Qty,Start, Dest);

Os operandos so os mesmos que os da instruo DELETE da lgica ladder.

Descrio: A instruo DELETE exclui (remove) um grupo de caracteres de


Source e coloca os caracteres restantes em Destination. A posio de Start e Quantity definem os caracteres a serem removidos. A menos que Source e Destination sejam o mesmo tag, Source permanece inalterado.

Flags de Status Aritmtico: no afetados Condies de Falha:


Tipo: 4 Cdigo: 51 Causa: O valor LEN do tag da string maior que o tamanho de DATA do tag da string. O valor de Start ou de Quantity invlido. Mtodo de Recuperao: 1. Verifique se nenhuma instruo est escrevendo para o membro LEN do tag da string. 2. No valor de LEN, insira o nmero de caracteres que a string contm. 1. Verifique se o valor de Start est entre 1 e o tamanho de DATA de Source. 2. Verifique se o valor de Start mais o valor de Quantity menor ou igual ao tamanho de DATA de Source.
Publicao 1756-RM003F-PT-P - Maio 2002

56

17-6

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha est definida como verdadeira. na A instruo exclui os caracteres especificados. A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao de Texto Estruturado: Nenhuma ao tomada na na EnableIn est sempre energizado A instruo executa.

Exemplo: As informaes ASCII de um terminal contm um caractere de


cabealho. Depois que o controlador l os dados (term_read.EM est energizado) a instruo DELETE remove o caractere do cabealho.

Lgica Ladder
term_read.EM DELETE String Delete Source term_input '$0655' Qty 1 Start Dest 1 term_text '55'

Texto Estruturado
IF term_read.EM THEN DELETE(term_input,1,1,term_text); term_read.EM := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

17-7

Localizao de String (FIND)


Operandos:

A instruo FIND localiza a posio inicial de uma string especfica dentro de outra string

FIND Find String Source Search Start Result

Lgica Ladder
? ?? ? ?? ? ?? ? ??

Operando: Source Search Start

Tipo: string string SINT INT DINT SINT INT DINT

Formato: tag tag imediato tag tag

Insira: string a ser procurado string a ser encontrada posio em Source para iniciar a busca tag que armazena a posio inicial da string a ser encontrada

Notas: Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Insira um nmero entre 1 e o tamanho de DATA de Source.

Result:

Texto Estruturado
FIND(Source,Search,Start, Result);

Os operandos so os mesmos que os da instruo FIND da lgica ladder descrita acima.

Descrio: A instruo FIND procura a string Source para a string Search. Se a


instruo encontrar a string Search, Result mostra a posio inicial da string Search dentro da string Source.

Flags de Status Aritmtico: no afetados Condies de Falha:


Tipo: 4 Cdigo: 51 Causa: O valor LEN do tag da string maior que o tamanho de DATA do tag da string. O valor de Start invlido. Mtodo de Recuperao: 1. Verifique se nenhuma instruo est escrevendo para o membro LEN do tag da string. 2. No valor de LEN, insira o nmero de caracteres que a string contm. Verifique se o valor de Start est entre 1 e o tamanho de DATA de Source.

56

Publicao 1756-RM003F-PT-P - Maio 2002

17-8

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na A instruo procura por caracteres especficos. A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao de Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa.

Exemplo: A mensagem de um terminal MessageView contm vrias


informaes. O caractere de barra [ \ ] separa cada parte das informaes. Para localizar uma informao, a instruo FIND procura pelo caractere de barra (\) e grava sua posio em find_pos.

Lgica Ladder
MV_read.EM FIND Find String Source MV_msg '$06324\12\1\$r' Search find '\' Start 1 Result find_pos 5

Texto Estruturado
IF MV_read.EM THEN FIND(MV_msg,find,1,find_pos); MV_read.EM := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

17-9

Insero de String (INSERT)


Operandos:

A instruo INSERT adiciona caracteres ASCII a um local especfico dentro de uma string.

INSERT Insert String Source A Source B Start Dest

Lgica Ladder
? ?? ? ?? ? ?? ? ??

Operando: Source A Source B Start

Tipo: string string SINT INT DINT string

Formato: tag tag imediato tag tag

Insira: string para a qual adicionar os caracteres string contendo os caracteres a serem adicionados posio em Source A na qual adicionar os caracteres string para armazenar o resultado

Notas: Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Insira um nmero entre 1 e o tamanho de DATA de Source.

Result:

Texto Estruturado
INSERT(SourceA,SourceB, Start,Dest);

Os operandos so os mesmos que os da instruo INSERT da lgica ladder.

Descrio: A instruo INSERT adiciona os caracteres em Source B a uma posio


determinada dentro de Source A e coloca o resultado em Destination: O Start define onde adicionar Source B em Source A. A menos que SourceA e Destination sejam o mesmo tag, Source A permanece inalterado.

Flags de Status Aritmtico: no afetados Condies de Falha:


Tipo: 4 Cdigo: 51 Causa: O valor LEN do tag da string maior que o tamanho de DATA do tag da string. O valor de Start invlido. Mtodo de Recuperao: 1. Verifique se nenhuma instruo est escrevendo para o membro LEN do tag da string. 2. No valor de LEN, insira o nmero de caracteres que a string contm. Verifique se o valor de Start est entre 1 e o tamanho de DATA de Source.

56

Publicao 1756-RM003F-PT-P - Maio 2002

17-10

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na A instruo insere os caracteres especificados. A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao de Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa.

Exemplo: Quando temp_high est energizado, a instruo INSERT adiciona os


caracteres em string_2 posio 2 em string_1 e coloca o resultado em string_3:

Lgica Ladder
temp_high INSERT Insert String Source A string_1 'AD' Source B string_2 'BC' Start 2 Dest string_3 'ABCD'

Texto Estruturado
IF temp_high THEN INSERT(string_1,string_2,2,string_3); temp_high := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

17-11

String Mdia (MID)


Operandos:

A instruo MID copia um nmero especfico de caracteres ASCII de uma string e os armazena em outra string.

Lgica Ladder
MID Middle String Source Qty Start Dest ? ?? ? ?? ? ?? ? ??

Operando: Source

Tipo: string

Formato: tag

Insira:

Notas:

string da qual os caracteres Tipos de dados da string so: so copiados tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar nmero de caracteres a serem copiados posio do primeiro caractere a ser copiado string para a qual os caracteres so copiados Start mais Quantity deve ser menor ou igual ao tamanho de DATA de Source. Insira um nmero entre 1 e o tamanho de DATA de Source.

Quantity

SINT INT DINT SINT INT DINT string

imediato tag imediato tag tag

Start

Destination

Texto Estruturado
MID(Source,Qty,Start, Dest);

Os operandos so os mesmos que os da instruo MID da lgica ladder.

Descrio: A instruo MID copia um grupo de caracteres de Source e coloca o


resultado em Destination. A posio de Start e Quantity definem os caracteres a serem copiados. A menos que Source e Destination sejam o mesmo tag, Source permanece inalterado.

Flags de Status Aritmtico: no afetados Condies de Falha:


Tipo: 4 Cdigo: 51 Causa: O valor LEN do tag da string maior que o tamanho de DATA do tag da string. O valor de Start ou Quantity invlido. Mtodo de Recuperao: 1. Verifique se nenhuma instruo est escrevendo para o membro LEN do tag da string. 2. No valor de LEN, insira o nmero de caracteres que a string contm. 1. Verifique se o valor de Start est entre 1 e o tamanho de DATA de Source. 2. Verifique se o valor de Start mais o valor de Quantity menor ou igual ao tamanho de DATA de Source.
Publicao 1756-RM003F-PT-P - Maio 2002

56

17-12

Instrues de String ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na Ao de Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa. Nenhuma ao tomada.

A instruo copia os caracteres especificados de uma string e armazena em outra. A sada da condio da linha definida como falsa.

Exemplo: Em uma esteira de manipulao de bagagens de um aeroporto, cada


mala possui um cdigo de barras. Os caracteres de 9 a 17 do cdigo de barras so o nmero do vo e o aeroporto destino da mala. Aps a leitura do cdigo de barras (bag_read.EM est energizado), a instruo MID copia o nmero do vo e o aeroporto destino para a string bag_flt_and_dest.

Lgica Ladder
bag_read.EM MID Middle String Source bag_barcode 'NWA HOP 5058 AMS 01' Qty 9 Start Dest 9 bag_flt_and_dest '5058 AMS '

Texto Estruturado
IF bag_read.EM THEN MID(bar_barcode,9,9,bag_flt_and_dest); bag_read.EM := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Captulo

18

Instrues de Converso ASCII


(STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Introduo
Se voc quiser: converter a representao ASCII de um valor inteiro para um valor SINT, INT, DINT ou REAL converter a representao do ASCII de um valor de ponto flutuante para um valor REAL

Use as instrues de converso ASCII para alterar o formato dos dados.


Por exemplo: Use esta instruo: Disponvel nestas linguagens: lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado lgica ladder texto estruturado Consulte pgina: 18-3

converter um valor de uma balana ou outro STOD dispositivo ASCII para um inteiro, de forma voc o use em sua lgica converter um valor de uma balana ou outro STOR dispositivo ASCII para um valor REAL, de forma que voc possa us-lo em sua lgica DTOS

18-5

converter um valor SINT, INT, DINT ou converter uma varivel para uma string REAL para uma string de caracteres ASCII, de forma que voc possa envi-la ASCII para um terminal MessageView converter um valor REAL para uma string de caracteres ASCII converter as letras em uma string de caracteres ASCII para letras maisculas converter as letras em uma string de caracteres ASCII para letras minsculas converter uma varivel para uma string ASCII, de forma que voc possa envi-la para um terminal MessageView converter uma entrada feita por um operador para letras maisculas, voc pode procurar por ela em um array converter uma entrada feita por um operador para letras minsculas, de forma que voc possa procurar por ela em um array

18-7

RTOS

18-9

UPPER

18-11

LOWER

18-13

Publicao 1756-RM003F-PT-P - Maio 2002

18-2

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Voc tambm pode usar as seguintes instrues para comparar ou manipular caracteres ASCII:
Se voc quiser: adicionar caracteres ao final de uma string remover caracteres de uma string determinar o caractere inicial de uma sub-string inserir caracteres em uma string extrair caracteres de uma string reorganizar os bytes de um tag INT, DINT ou REAL comparar uma string com uma outra string verificar se os caracteres so iguais a caracteres especficos verificar se os caracteres no so iguais a caracteres especficos verificar se os caracteres so iguais ou maiores que caracteres especficos verificar se os caracteres so maiores que caracteres especficos verificar se os caracteres so iguais ou menores que caracteres especficos verificar se os caracteres so menores que caracteres especficos localizar uma string em um array de strings Use esta instruo: CONCAT DELETE FIND INSERT MID SWPB CMP EQU NEQ GEQ GRT LEQ LES FSC Consulte pgina: 17-3 17-5 17-7 17-9 17-11 6-18 4-2 4-7 4-37 4-10 4-14 4-18 4-22 7-17

Tipos de Dados da String


Voc armazena caracteres ASCII em tags que usam um tipo de dados da string. Voc pode usar o tipo de dados STRING padro. possvel armazenar at 82 caracteres. Voc pode criar um novo tipo de dados de string que armazene mais ou menos caracteres. Para criar um novo tipo de dados da string, consulte Logix5000 Controllers Common Procedures, publicao 1756-PM001. Cada tipo de dados da string contm os seguintes membros:
Nome: LEN Tipo de Dados: DINT Descrio: nmero de caracteres na string Observaes: A LEN atualiza a nova contagem de caracteres automaticamente sempre que voc: utiliza a caixa de dilogo String Browser para inserir caracteres usa instrues que lem, convertem ou manipulam uma string LEN mostra o comprimento da string atual. O membro DATA pode conter caracteres adicionais e velhos que no esto inclusos na contagem de LEN. DATA array SINT caracteres ASCII da string Para acessar os caracteres da string, enderesse o nome do tag. Por exemplo, para acessar caracteres do tag string_1, insira string_1. Cada elemento do array DATA contm um caracter. Voc pode criar novos tipos de dados de string que armazenem mais ou menos caracteres.

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

18-3

String Para DINT (STOD)


Operandos:

A instruo STOD converte a representao ASCII de um inteiro para um valor inteiro ou REAL.

Lgica Ladder
STOD String To DINT Source Dest ? ?? ? ??

Operando: Source

Tipo: string

Formato: tag

Insira: tag que contm o valor em ASCII

Notas: Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar Se o valor de Source for um nmero de ponto flutuante, a instruo converte apenas a parte no fracionria do nmero (independente do tipo de dados de destino).

Destination

SINT INT DINT REAL

tag

tag para armazenar o valor inteiro

STOD(Source,Dest);

Texto Estruturado
Os operandos so os mesmos que os da instruo STOD da lgica ladder.

Descrio: O STOD converte Source em um inteiro e coloca o resultado em


Destination. A instruo converte nmeros positivos e negativos. Se a string Source contiver caracteres no numricos, a instruo STOD converte o primeiro conjunto de nmeros contnuos: A instruo salta os caracteres de controle iniciais ou no numricos (exceto sinal de menos em frente a um nmero). Se a string contiver mltiplos grupos de nmeros que esto separados por delimitadores (ex.: / ), a instruo converte somente o primeiro grupo de nmeros.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Tipo: 4 Cdigo: 51 Causa: O valor LEN do tag da string maior que o tamanho de DATA do tag da string. Mtodo de Recuperao: 1. Verifique se nenhuma instruo est escrevendo para o membro LEN do tag da string. 2. No valor de LEN, insira o nmero de caracteres que a string contm. Ou: Reduza o tamanho do valor ASCII. Use um tipo de dados maior para Destination.

53

O nmero de sada est alm dos limites do tipo de dados de destino.

Publicao 1756-RM003F-PT-P - Maio 2002

18-4

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha est definida como verdadeira. na S:C est energizado. Destination removido. A instruo converte Source. Se o resultado for zero, S:Z est energizado A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao de Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa.

postscan

Exemplo: Quando MV_read.EM est energizado, a instruo STOD converte o


primeiro conjunto de caracteres em MV_msg para um valor inteiro. A instruo salta o caractere de controle inicial ($06) e pra no delimitador ( \ ).

Lgica Ladder
MV_read.EM STOD String To DINT Source MV_msg '$06324\12\1\$r' Dest MV_msg_nmbr 324

Texto Estruturado
IF MV_read.EM THEN STOD(MV_msg,MV_msg_nmbr); MV_read.EM := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

18-5

String Para REAL (STOR)


Operandos:

A instruo STOR converte a representao ASCII de um valor de ponto flutuante para um valor REAL.

STOR String to Real Source Dest

Operandos de Lgica Ladder


? ?? ? ??

Operando: Source

Tipo: string

Formato: tag

Insira: tag que contm o valor em ASCII

Notas: Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar

Destination

REAL

tag

tag para armazenar o valor REAL

STOR(Source,Dest);

Texto Estruturado
Os operandos so os mesmos que os da instruo STOR da lgica ladder.

Descrio: A STOR converte Source em um valor REAL e coloca o resultado em


Destination. A instruo converte nmeros positivos e negativos. Se a string Source contiver caracteres no numricos, a STOR converte o primeiro conjunto de caracteres contguos, inclusive o ponto decimal [ . ]: A instruo salta os caracteres de controle iniciais ou no numricos (exceto sinal de menos em frente a um nmero). Se a string contiver mltiplos grupos de nmeros que esto separados por delimitadores (ex.: / ), a instruo converte somente o primeiro grupo de nmeros.

Flags de Status Aritmtico: Os flags de status aritmtico so afetados. Condies de Falha:


Tipo: 4 Cdigo: 51 Causa: O valor LEN do tag da string maior que o tamanho de DATA do tag da string. Mtodo de Recuperao: 1. Verifique se nenhuma instruo est escrevendo para o membro LEN do tag da string. 2. No valor de LEN, insira o nmero de caracteres que a string contm. Ou: Reduza o tamanho do valor ASCII. Use um tipo de dados maior para Destination.

53

O nmero de sada est alm dos limites do tipo de dados de destino.

Publicao 1756-RM003F-PT-P - Maio 2002

18-6

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn este energizado execuo da instruo Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na S:C est energizado. Destination removido. A instruo converte Source. Se o resultado for zero, S:Z est energizado A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao de Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa.

postscan

Exemplo: Aps ler o peso de uma balana (weight_read.EM est energizado), a


instruo STOR converte os caracteres numricos em weight_ascii em uma valor REAL. Voc pode observar uma pequena diferena entre as partes fracionrias de Source e Destination.

Lgica Ladder
weight_read.EM STOR String to Real Source weight_ascii '428.259' Dest weight 428.259

Texto Estruturado
IF weight_read.EM THEN STOR(weight_ascii,weight); weight_read.EM := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

18-7

DINT Para String (DTOS)


Operandos:

A instruo DTOS produz a representao ASCII de um valor.

DTOS DINT to String Source Dest

Lgica Ladder
? ?? ? ??

Operando: Source

Tipo: SINT INT DINT REAL string

Formato: tag

Insira: tag que contm o valor

Notas: Se Source for REAL, a instruo converte-o para um valor DINT. Consulte REAL para um inteiro na pgina A-5. Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar

Destination

tag

tag para armazenar o valor ASCII

DTOS(Source,Dest);

Texto Estruturado
Os operandos so os mesmos que os da instruo DTOS da lgica ladder.

Descrio: A DTOS converte Source em uma string de caracteres ASCII e coloca


o resultado em Destination.

Flags de Status Aritmtico: no afetados Condies de Falha:


Tipo: 4 Cdigo: 51 Causa: O valor LEN do tag da string maior que o tamanho de DATA do tag da string. Mtodo de Recuperao: 1. Verifique se nenhuma instruo est escrevendo para o membro LEN do tag da string. 2. No valor de LEN, insira o nmero de caracteres que a string contm. Crie um novo tipo de dados da string que seja grande o suficiente para a string de sada. Use o novo tipo de dados de string para o Destination.

52

A string de sada maior que o destino.

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. Ao de Texto Estruturado: Nenhuma ao tomada. na na

Publicao 1756-RM003F-PT-P - Maio 2002

18-8

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Condio: EnableIn est energizado execuo da instruo postscan

Ao da Lgica Ladder: na A instruo converte Source. A sada da condio da linha definida como falsa.

Ao de Texto Estruturado: EnableIn est sempre energizado A instruo executa. Nenhuma ao tomada.

Exemplo: Quando temp_high est energizado, a instruo DTOS converte o


valor em msg_num em uma string de caracteres ASCII e coloca o resultado em msg_num_ascii. As linhas subseqentes inserem ou concatenam msg_num_ascii com outras strings para produzir uma mensagem completa para um terminal de display.

Lgica Ladder
temp_high DTOS DINT to String Source msg_num 23 Dest msg_num_ascii '23'

Texto Estruturado
IF temp_high THEN DTOS(msg_num,msg_num_ascii); temp_high := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

18-9

REAL Para String (RTOS)


Operandos:

A instruo RTOS produz a representao ASCII de um valor REAL.

Lgica Ladder
RTOS Real to String Source Dest ? ?? ? ??

Operando: Source Destination

Tipo: REAL string

Formato: tag tag

Insira: tag que contm o valor REAL tag para armazenar o valor ASCII

Notas:

Tipos de dados da string so: tipo de dados STRING padro qualquer novo tipo de dados da string que voc criar

RTOS(Source,Dest);

Texto Estruturado
Os operandos so os mesmos que os da instruo RTOS da lgica ladder.

Descrio: A RTOS converte Source em uma string de caracteres ASCII e coloca o


resultado em Destination.

Flags de Status Aritmtico: no afetados Condies de Falha:


Tipo: 4 Cdigo: 51 Causa: O valor LEN do tag da string maior que o tamanho de DATA do tag da string. Mtodo de Recuperao: 1. Verifique se nenhuma instruo est escrevendo para o membro LEN do tag da string. 2. No valor de LEN, insira o nmero de caracteres que a string contm. Crie um novo tipo de dados da string que seja grande o suficiente para a string de sada. Use o novo tipo de dados de string para o destino.

52

A string de sada maior que Destination.

Publicao 1756-RM003F-PT-P - Maio 2002

18-10

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Execuo
Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na A instruo converte Source. A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao de Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa.

Exemplo: Quando send_data est energizado, a instruo RTOS converte o


valor em data_1 em uma string de caracteres ASCII e coloca o resultado em data_1_ascii. As linhas subseqentes inserem ou concatenam data_1_ascii com outras strings para produzir uma mensagem completa para um terminal de display. Voc pode observar uma pequena diferena entre as partes fracionrias de Source e Destination.

Lgica Ladder
send_data RTOS Real to String Source data_1 15.3001 Dest data_1_ascii '15.3001003'

Texto Estruturado
IF send_data THEN RTOS(data_1,data_1_ascii); send_data := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

18-11

Letra Maiscula (UPPER)


Operandos:

A instruo UPPER converte os caracteres alfabticos em uma string para caracteres de letras maisculas.

Lgica Ladder
Operando: Source Destination Tipo: string string Formato: tag tag Descrio: o tag que contm os caracteres que voc quer converter em letras maisculas tag para armazenar os caracteres em letra maisculas

UPPER(Source,Dest);

Texto Estruturado
Os operandos so os mesmos que os da instruo UPPER da lgica ladder.

Descrio: A instruo UPPER converte em maisculas todas as letras em Source


e coloca o resultado em Destination. Os caracteres ASCII so sensveis ao contexto. O "A" maisculo ($41) no igual ao "a" minsculo ($61). Se os operadores inserirem diretamente os caracteres ASCII, converta todos os caracteres em letras maisculas ou minsculas antes de compar-los. Qualquer caractere na string Source que no for letra permanece inalterado.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo


Condio: prescan entrada da condio da linha falsa entrada da condio da linha verdadeira EnableIn est energizado execuo da instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha definida como verdadeira. na A instruo converte Source em letra maiscula. A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao de Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa.

Publicao 1756-RM003F-PT-P - Maio 2002

18-12

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exemplo: Para encontrar informaes sobre um item especfico, um operador


insere o cdigo de catlogo do item em um terminal ASCII. Depois que o controlador l a entrada de um terminal (terminal_read.EM est energizado), a instruo UPPER converte os caracteres em catalog_number em todos os caracteres maisculos e armazena o resultado em <F>>catalog_number_upper_case<<F> Uma linha subseqente busca um array para caracteres que correspondam com aqueles em catalog_number_upper_case.

Lgica Ladder

Texto Estruturado
IF terminal_read.EM THEN UPPER(catalog_number,catalog_number_upper_case); terminal_read.EM := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

18-13

Letra Minscula (LOWER)


Operandos:

A instruo LOWER converte os caracteres alfabticos em uma string em caracteres de letras minsculas.

Lgica Ladder
Operando: Source Destination Tipo: string string Formato: tag tag Descrio: o tag que contm os caracteres que voc quer converter em letras minsculas tag para armazenar os caracteres em letra minsculas

LOWER(Source,Dest);

Texto Estruturado
Os operandos so os mesmos que os da instruo LOWER da lgica ladder.

Descrio: A instruo LOWER converte em minsculas todas as letras em Source


e coloca o resultado em Destination. Os caracteres ASCII so sensveis ao contexto. O "A" maisculo ($41) no igual ao "a" minsculo ($61). Se os operadores inserirem diretamente os caracteres ASCII, converta todos os caracteres em letras maisculas ou minsculas antes de compar-los. Qualquer caractere na string Source que no for letra permanece inalterado.

Flags de Status Aritmtico: no afetados Condies de Falha: nenhuma Execuo


Condio: prescan entrada da condio da linha for falsa entrada da condio da linha for verdadeira EnableIn est energizado Execuo da Instruo postscan Ao da Lgica Ladder: A sada da condio da linha definida como falsa. A sada da condio da linha definida como falsa. A instruo executa. A sada da condio da linha est definida como verdadeira. na A instruo converte Source em letra minscula. A sada da condio da linha definida como falsa. Nenhuma ao tomada. Ao de Texto Estruturado: Nenhuma ao tomada. na na EnableIn est sempre energizado A instruo executa.

Publicao 1756-RM003F-PT-P - Maio 2002

18-14

Instrues de Converso ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Exemplo: Para encontrar informaes sobre um item especfico, um operador


insere o cdigo de catlogo do item em terminal ASCII. Depois que o controlador l a entrada de um terminal (terminal_read.EM est energizado), a instruo LOWER converte os caracteres em item_number em todos os caracteres minsculos e armazena o resultado em item_number_lower_case . Uma linha subseqente busca um array para caracteres que combinem com aqueles em item_number_lower_case.

Lgica Ladder

Texto Estruturado
IF terminal_read.EM THEN LOWER(item_number,item_number_lower_case); terminal_read.EM := 0; END_IF;

Publicao 1756-RM003F-PT-P - Maio 2002

Apndice

Atributos Comuns

Introduo

Este apndice descreve os atributos que so comuns para as instrues do Logix.


Para informaes sobre: Valores Imediatos Converses de Dados Consulte a pgina: A-1 A-1

Valores Imediatos

Sempre que inserir um valor imediato (constante) no formato decimal (ex., -2, 3) o controlador armazena o valor usando 32 bits. Caso insira um valor em uma base diferente da decimal, como uma base binria ou hexadecimal e no especifique todos os 32 bits, o controlador coloca um zero nos bits que voc no especificar (preenchimento com zeros). EXEMPLO
Caso insira: -1 16#ffff (-1) 8#1234 (668) 2#1010 (10)

Preenchimento com zero de valores imediatos


O controlador armazena: 16#ffff ffff (-1) 16#0000 ffff (65535) 16#0000 029c (668) 16#0000 000a (10)

Converses de Dados

As converses de dados ocorrem ao combinar os tipos de dados em sua programao


Quando programar em: lgica ladder bloco de funes As converses podem ocorrer quando: combinar os tipos de dados para os parmetros em uma instruo ligar dois parmetros que possuem tipos de dados diferentes

Publicao 1756-RM003D-PT-P - Maio 2002

Atributos Comuns

As instrues executam de forma mais rpida e requerem menos memria se todos os operandos da instruo usarem: o mesmo tipo de dados um tipo de dados otimizados: Na coluna Operands de cada instruo nesse manual, um tipo de dados em negrito indica um tipo de dados otimizados. Os tipos de dados DINT e REAL so tipicamente os tipos de dados otimizados. A principal instruo do bloco de funes somente suporta um tipo de dados (o tipo de dados otimizados) para seus operandos. Se voc combinar os tipos de dados e usar os tags que no so do tipo de dados otimizados, o controlador converte os dados de acordo com essas regras Todos os operandos so um valor REAL?
Se: sim no Ento os operandos de entrada (ex., source, tag em uma expresso, limit) convertem-se em: REALs DINTs

Aps a execuo da instruo, o resultado (um valor DINT ou REAL) converte-se no tipo de dados Destination, se necessrio. No possvel especificar um tag BOOL em uma instruo que opere em um inteiro ou em tipos de dados REAL. Como a converso de dados leva um tempo adicional e memria, possvel aumentar a eficincia de seus programas ao: usar o mesmo tipo de dados por toda a instruo minimizar o uso dos tipos de dados SINT ou INT Em outras palavras, use todos os tags DINT ou todos os tags REAL, junto com os valores imediatos, em suas instrues. As colunas a seguir explicam como os dados so convertidos ao usar os tags SINT ou INT ou ao combinar os tipos de dados.

Publicao 1756-RM003D-PT-P - Maio 2002

Atributos Comuns

SINT ou INT para DINT


Para aquelas instrues que convertem os valores SINT ou INT em valores DINT, as colunas Operands nesse manual identificam o mtodo de converso.
Este mtodo de converso: extenso do sinal Converte os dados ao colocar: o valor do bit esquerdo principal (o sinal do valor) em cada posio de bit esquerda dos bits existentes at haver 32 bits. o zero esquerda dos bits existentes at haver 32 bits

preenchimento com zero

O exemplo a seguir mostra os resultados da converso de um valor usando a extenso do sinal e o preenchimento com zero.
Este valor Converte-se para este valor pela extenso do sinal Converte-se para este valor pelo preenchimento com zero 2#1111_1111_1111_1111 (-1)

2#1111_1111_1111_1111_1111_1111_1111_1111 (-1)

2#0000_0000_0000_0000_1111_1111_1111_1111 (65535)

der Logic Listing - Total number of rungs: 3


EQU Equal Source A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111 Source B 2#1111_1111_1111_1111

Como os valores imediatos so sempre preenchidos com zero, a converso de um valor SINT ou INT pode produzir resultados inesperados. No exemplo seguinte, a comparao falsa porque Source A, um INT, converte-se pela extenso do sinal; enquanto Source B, um valor imediato, preenchido com zero.

42093

Caso utilize um tag SINT ou INT e um valor imediato em uma instruo que converta os dados pela extenso do sinal, utilize um desses mtodos para manusear os valores imediatos: Especificar qualquer valor imediato na base decimal Caso esteja inserindo o valor em outra base diferente da decimal, especifique todos os 32 bits do valor imediato. Para fazer isso, insira o valor do bit mais a esquerda em cada posio de bit a sua esquerda at haver 32 bits. Criar um tag para cada operando e usar o mesmo tipo por toda a instruo. Para atribuir um valor constante: Insira-o em um dos tags Adicione uma instruo MOV que movimente o valor em um dos tags.
Publicao 1756-RM003D-PT-P - Maio 2002

Atributos Comuns

Use uma instruo MEQ para verificar somente os bits necessrios Os exemplos seguintes mostram duas formas de combinar um valor imediato com um tag INT. Os exemplos verificam os bits de um mdulo de E/S 1771 para determinar se todos os bits esto energizados. Como a palavra dos dados de entrada de um mdulo de E/S 1771 um tag INT, mais fcil usar um valor constante de 16 bits. EXEMPLO Combinao de um tag INT com um valor imediato Como o remote_rack_1:I.Data[0] um tag INT, o valor para compar-lo tambm inserido como um tag INT.
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

EXEMPLO

Combinao de um tag INT com um valor imediato Como remote_rack_1:I.Data[0] um tag INT, o valor para compar-lo, primeiro muda para int_0, que tambm um tag INT. A instruo EQU compara ambos os tags.
EQU Equal Source A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111 Source B int_0 2#1111_1111_1111_1111

2#1111_1111_1111_1111

MOV Move Source 2#1111_1111_1111_1111 Dest int_0 2#1111_1111_1111_1111

42093

Inteiro para REAL


O controlador armazena os valores REAL em preciso simples IEEE, com formato de nmero em ponto flutuante. Ele usa um bit para o sinal do valor, 23 bits para o valor base e oito bits para o expoente (32 bits totais). Caso combine um tag inteiro (SINT, INT ou DINT) e um tag REAL como entradas na mesma instruo, o controlador converte o valor inteiro para um valor REAL antes que a instruo se realize. Um valor SINT ou INT sempre se converte para o mesmo valor REAL. Um valor DINT pode no se converter para o mesmo valor REAL: Um valor REAL usa at 24 bits para o valor base (23 bits armazenados mais um bit escondido).
Publicao 1756-RM003D-PT-P - Maio 2002

Atributos Comuns

Um valor DINT usa at 32 bits para o valor (um para cada sinal e 31 bits para o valor). Se o valor DINT precisar de mais de 24 bits significativos, ele pode no converter o mesmo valor REAL. Caso contrrio, o controlador migra para o valor REAL mais prximo usando 24 bits significativos.

DINT para SINT ou INT


Para converter um valor DINT para um valor SINT ou INT, o controlador trunca a parte superior de DINT e energiza o flag de status do overflow, se necessrio. O exemplo a seguir mostra o resultado de uma converso de DINT para SINT ou INT. EXEMPLO
Este valor DINT: 16#0001_0081 (65.665)

Converso de um DINT para um INT e um SINT


Converte-se para este valor menor: INT: SINT: 16#0081 (129) 16#81 (-127)

REAL para um inteiro


Para converter um valor REAL em um valor inteiro, o controlador circula a parte fracionria e trunca a parte superior de uma parte no fracionria. Se o dado for perdido, o controlador energiza o flag de status do overflow. Os nmeros migram de acordo com: Os nmeros diferentes de x.5 migram para o nmero inteiro mais prximo. X.5 migram para o mesmo nmero mais prximo.

Publicao 1756-RM003D-PT-P - Maio 2002

Atributos Comuns

O exemplo a seguir mostra o resultado da converso de valores REAL para valores DINT. EXEMPLO
Este valor REAL: -2,5 -1,6 -1,5 -1,4 1,4 1,5 1,6 2,5

Converso de valores REAL em valores DINT

Converte-se para este valor DINT: -2 -2 -2 -1 1 2 2 2

IMPORTANTE

Os flags de status aritmtico so definidos baseados nos valores que so armazenados. As instrues que normalmente no afetam as palavras-chave do status aritmtico podem aparecer para fazer isso se a converso do tipo ocorrer por causa dos tipos de dados combinados para os parmetros da instruo. O processo de converso do tipo define as palavras-chave do status aritmtico.

Publicao 1756-RM003D-PT-P - Maio 2002

Apndice

Atributos do Bloco de Funes

Introduo

Este apndice descreve os tpicos que so nicos com as instrues do bloco de funes. Revise as informaes nesse apndice para certificar-se de que entendeu como as rotinas do bloco de funes operaro.

IMPORTANTE

Ao programar o bloco de funes, limite a faixa das unidades de medida para +/-10+/-15 pois os clculos de ponto flutuante interno so feitos atravs de um nico ponto flutuante de preciso. Se os resultados ficarem prximos s limitaes do nico ponto flutuante de preciso (+/-10+/-38), as unidades de medida fora desta faixas podem resultar na perda de preciso.

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

Lanamento de Dados

Caso use um IREF para especificar os dados de entrada para uma instruo do bloco de funes, os dados no IREF so lanados para o scan da rotina do bloco de funes. O IREF lana os dados dos tags da rea de programa e rea do controlador. O controlador atualiza todos os dados IREF no incio de cada scan.

IREF

Nesse exemplo, o valor de tagA armazenado no incio da execuo da rotina. O valor armazenado usado quando Block_01 for executado. O mesmo valor armazenado tambm usado quando Blcock_02 executado. Se o valor de tagA alterar durante a execuo da rotina, o valor armazenado de tagA no IREF no altera at a prxima execuo da rotina.
Block_01

tagA

Block_02

Este exemplo o mesmo que o descrito anteriormente. O valor de tagA armazenado somente uma vez no incio da execuo da rotina. A rotina usa este valor armazenado por toda a rotina.
Block_01

tagA

Block_02

tagA

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

Ao iniciar com o software RSLogix 5000, verso 11, possvel usar o mesmo tag em IREFs mltiplos e um OREF na mesma rotina. Como os valores de tags nos IREFs so lanados em toda o scan atravs da rotina, todos os IREFs usaro o mesmo valor, mesmo se um OREF obtm um valor de tag diferente durante a execuo da rotina. Neste exemplo, se tagA possui um valor de 25,4 quando a rotina inicia a execuo do scan e Block_01 altera o valor de tagA para 50,9, o segundo IREF conectado ao Block_02 usar ainda um valor de 25,4 quando Block_02 executar esse scan. O novo valor de tagA de 50,9 no ser usado por nenhum IREFs nessa rotina at o incio do prximo scan.

Seqncia de Execuo

O software de programao RSLogix 5000 determina automaticamente a seqncia de execuo para os blocos de funo em uma rotina quando voc: verificar uma rotina do bloco de funes verificar um projeto que contenha uma rotina do bloco de funes fizer o download de um projeto que contenha uma rotina do bloco de funes Voc define a seqncia de execuo ao conectar os blocos de funo juntos e indicar quaisquer fios de realimentao localizados, se necessrio. Se os blocos de funo no forem conectados juntos, no h seqncia de execuo para determinar.

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

Se conectar os blocos seqencialmente, a seqncia de execuo movimenta-se da entrada para a sada. As entradas de um bloco devem estar disponveis antes que o controlador possa executar o bloco. Por exemplo, o bloco 2 tem que ser executado antes do bloco 3 porque as sadas do bloco 2 alimentam as entradas do bloco 3.
1 2 3

A seqncia de execuo somente relativa aos blocos que so conectados juntos. A figura a seguir um bom exemplo, pois os dois grupos de blocos no esto conectados juntos. Os blocos em um grupo especfico executam na seqncia apropriada em relao aos blocos no grupo.
1 3 5

Se um grupo de blocos esto em uma malha, o controlador no pode determinar que entradas devem estar disponveis primeiro. Use um fio de realimentao localizado para determinar que entradas devem estar disponveis primeiro. Se um conector de entrada conectado a um fio de realimentao localizado, a entrada no tem que estar disponvel antes que o bloco possa ser executado. Nesse exemplo, o bloco 1 usa a sada do bloco 3 que foi produzido na execuo anterior da rotina.
1 2 3

fio de realimentao localizado

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

Em resumo, uma rotina do bloco de funes executa nessa seqncia: 1. O controlador retm todos os valores de dados em IREFs. 2. O controlador executa os outros blocos de funo na seqncia determinada pela sua fiao. 3. O controlador escreve as sadas em OREFs.

Respostas do Bloco de Funes para as Condies de Overflow


Resposta 1: Os blocos executam seu algoritmo e verificam o resultado para NAN ou INF. Se NAN ou INF, o bloco emite NAN ou INF.

Em geral, as instrues do bloco de funes que mantm o histrico no atualizam o histrico com os valores NAN ou INF quando um overflow ocorre. Cada instruo possui uma dessas respostas para uma condio de overflow:
Resposta 2: Os blocos com limitao de sada executam seu algoritmo e verificam o resultado para NAN ou INF. Os limites de sada so definidos pelos parmetros de entrada HighLimit e LowLimit. Se INF, o bloco emite um resultado limitado. Se NAN, os limites de sada no so usados e o bloco emite NAN. HLL INTG PI PIDE SCL SOC Resposta 3: A condio de overflow no se aplica. Normalmente, essas instrues possuem uma sada booleana.

ALM DEDT DERV ESEL FGEN HPF LDL2 LDLG LPF MAVE MAXC MINC MSTD MUX

NTCH PMUL POSP RLIM RMPS SCRV SEL SNEG SRTP SSUM TOT UPDN

BAND BNOT BOR BXOR CUTD D2SD D3SD DFF JKFF OSFI

OSRI RESD RTOR SETD TOFR TONR

Modos de Temporizao

Esse processo controla e direciona as instrues que suportam diferentes modos de temporizao. DEDT DERV HPF INTG LDLG LDL2 LPF NTCH PI PIDE RLIM SCRV SOC TOT

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

H trs diferentes modos de temporizao:


Modo de Temporizao: peridico Descrio: No modo peridico, o tempo delta (DeltaT) usado pela instruo a taxa de scan da tarefa quando a instruo executada na tarefa peridica. Se a instruo executada em uma tarefa contnua, o DeltaT igual ao tempo decorrido desde a execuo anterior. A atualizao da entrada do processo precisa estar sincronizada com a execuo da tarefa ou amostrada 5-10 vezes mais rpido que a execuo da tarefa para minimizar o erro de amostragem entre a entrada e a instruo. oversample No modo oversample, o tempo delta (DeltaT) usado pela instruo o valor escrito no parmetro OversampleDT da instruo. Use esse modo quando a instruo for executada em uma tarefa contnua e a entrada do processo no possuir um registro de data e hora associado a sua atualizao. Se a entrada do processo possuir um valor de registro de data e hora, use ento o modo de amostragem em tempo real. Adicione lgica ao seu programa para controlar quando a instruo executada. Por exemplo, possvel usar um ajuste do temporizador para o valor OversampleDeltaT para controlar a execuo ao usar uma entrada EnableIn da instruo. A entrada do processo precisa ser amostrada 5-10 vezes mais rpido que a execuo da instruo para minimizar o erro de amostragem entre a entrada e a instruo. amostragem em tempo real No modo de amostragem em tempo real, o tempo delta (DeltaT) usado pela instruo a diferena entre os dois valores de registro de data e hora que correspondem as atualizaes da entrada do processo. Use esse modo quando a instruo for executada em uma tarefa contnua e a entrada do processo possuir um registro de data e hora associado a sua atualizao. O valor do registro de data e hora lido do nome do tag inserido para o parmetro RTSTimeStamp da instruo. Normalmente, esse nome do tag um parmetro no mdulo de entrada associado entrada do processo. A instruo compara o valor de RTSTime configurado (perodo de atualizao esperado) contra o DeltaT calculado para determinar se toda a atualizao da entrada do processo est sendo lida pela instruo. Se DeltaT no estiver em 1 milissegundo do tempo de configurao, a instruo define o bit de status do RTSMissed para indicar que existe um problema na leitura da atualizao para a entrada no mdulo.

As instrues com base no tempo requerem um valor constante para DeltaT para que o algoritmo de controle calcule de forma adequada a sada do processo. Se DeltaT variar, ocorre uma descontinuidade na sada do processo. A severidade da descontinuidade depende da instruo e faixa sobre a qual DeltaT variar. A descontinuidade ocorre se: a instruo no foi executada durante um scan. a instruo foi executada em tempos mltiplos durante uma tarefa. a tarefa est em operao e a taxa de scan da tarefa ou tempo de amostra da entrada do processo alterar. o usurio alterar o modo com base no tempo enquanto a tarefa est em operao. O parmetro Order alterado em um bloco de filtro enquanto a tarefa est em operao. Ao alterar o parmetro Order selecione um algoritmo de controle diferente na instruo.

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

Parmetros de instruo comum para os modos de temporizao


As instrues que suportam os modos com base no tempo possuem esses parmetros de entrada e sada:

Parmetros de entrada
Parmetro de Entrada: TimingMode Tipo de Dados: DINT Descrio: Seleciona o modo de execuo de temporizao. Valor:Descrio: 0 modo peridico 1 modo oversample 2 modo de amostragem em tempo real vlido = 0 a 2 valor inicial = 0 Quando TimingMode = 0 e a tarefa for peridica, a temporizao peridica habilitada e DeltaT definido para a taxa de scan da tarefa. Quando TimingMode = 0 e a tarefa contnua, a temporizao peridica habilitada e DeltaT definido igual ao span do tempo decorrido como a ltima vez que a instruo foi executada. Quando TimingMode = 1, a temporizao oversample habilitada e DeltaT definido para o valor do parmetro OversampleDT. Quando TimingMode = 2, a temporizao de amostragem em tempo real habilitada e DeltaT a diferena entre os valores da corrente e o registro de data e hora lido, anteriormente, do mdulo associado entrada. Se TimingMode invlido, a instruo energiza o bit apropriado em Status. OversampleDT REAL Tempo de execuo para a temporizao oversample. O valor usado para DeltaT est em segundos. Se TimingMode = 1, ento OversampleDT = 0,0 desabilita a execuo do algoritmo de controle. Se invlido, a instruo define DeltaT = 0,0 e energiza o bit apropriado em Status. vlido = 0 a 4194.303 segundos valor inicial = 0,0 Perodo de atualizao do mdulo para a temporizao de amostragem em tempo real. O perodo de atualizao esperado de DeltaT est em milissegundos. O perodo de atualizao,normalmente, o valor usado para configurar o tempo de atualizao do mdulo. Se invlido, a instruo energiza o bit apropriado em Status e desabilita a verificao RTSMissed.. vlido = 1 a 32,767 ms valor inicial = 1 Valor do registro de data e hora do mdulo para a temporizao de amostragem em tempo real. O valor de registro de data e hora que corresponde ltima atualizao do sinal de entrada. Esse valor usado para calcular DeltaT. Se invlido, a instruo energiza o bit apropriado em Status, desabilita a execuo do algoritmo de controle e desabilita a verificao de RTSMissed. vlido =1 a 32.767ms (wraps de 32767 a 0) 1 contagem = 1 milissegundo valor inicial = 0

RTSTime

DINT

RTSTimeStamp

DINT

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

Parmetros de sada
Parmetro de Sada: Tipo de Dados: DeltaT REAL Descrio: Tempo decorrido entre as atualizaes. Esse o tempo decorrido em segundos usado pelo algoritmo de controle para calcular a sada do processo. Peridico: DeltaT = taxa de scan da tarefa se a tarefa for Peridica, DeltaT = tempo decorrido como na execuo da instruo anterior se a tarefa for tarefa Contnua Oversample: DeltaT = OversampleDT Amostragem em Tempo RealDeltaT = (RTSTimeStampn - RTSTimeStampn-1) Status TimingModeInv (Status.27) DINT BOOL Status do bloco de funes. Valor de TimingMode invlido. Somente usado no modo de amostragem em tempo real. Definido quando ABS | DeltaT RTSTime | > 1 (,001 segundo). Valor de RTSTime invlido. Valor de RTSTimeStamp invlido. Valor de DeltaT invlido.

RTSMissed (Status.28) BOOL RTSTimeInv (Status.29) RTSTimeStampInv (Status.30) DeltaTInv (Status.31) BOOL BOOL BOOL

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

Caractersticas Gerais dos modos de temporizao


O diagrama a seguir mostra como uma instruo determina o modo adequado de temporizao.

Determina o modo com base no tempo TimingMode = 0 TimingMode = 1 TimingMode = 2

Temporizao Peridica

Temporizao Oversample

Temporizao em tempo real

DeltaT = OversampleDT Se DeltaT < 0 ou DeltaT > 4194,303 seg. a instruo define DeltaT = 0,0 e energiza o bit apropriado em Status. Determina o tipo de tarefa Se DeltaT > 0, a instruo executada.

DeltaT = RTSTimeStampn - RTSTimeStampn-1 Se DeltaT > 0, a instruo executa. Se |RTSTIME - DeltaT| > 1, a instruo energiza o bit RTSMissed em Status.

Tarefa peridica

Tarefa no peridica

DeltaT = tempo de scan da tarefa Se DeltaT > 0, a instruo executa.

DeltaT = tempo decorrido como na ltima execuo Se DeltaT > 0, a instruo executa.

Publicao 1756-RM003F-PT-P - Maio 2002

10

Atributos do Bloco de Funes

Controle de Program/Operator

Muitas instrues suportam o conceito de controle de Programa/Operator. Essas instrues incluem: Seleo Aprimorada (ESEL) Totalizador (TOT) PID Aperfeioada (PIDE) Ramp/Soak (RMPS) Dispositivo Discreto em 2 Estados (D2SD) Dispositivo Discreto em 3 Estados (D3SD)

O controle Program/Operator permite controlar essas instrues simultaneamente do programa do usurio e de um dispositivo de interface de operao. Quando no controle Program, a instruo controlada pelas entradas do Program para a instruo; quando no controle Operator, a instruo controlada pelas entradas do Operator para a instruo; O controle Program ou Operator determinado ao usar essas entradas:
Entradas: .ProgProgReq .ProgOperReq .OperProgReq .OperOperReq Descrio: Um programa que pede para ir para controle Program. Um programa que pede para ir para controle Operator. Um operador que pede para ir para controle Program. Um operador que pede para ir para controle Operator.

Para determinar se uma instruo est um controle Program ou Control, examine a sada ProgOper. Se ProgOper estiver energizado, a instruo est em controle Program; Se ProgOper estiver desenergizado, a instruo est em controle Operator; O controle Operator mais indicado que o controle Program se os bits de pedido de entrada estiverem energizados. Por exemplo, se ProgProgReq e ProgOperReq estiverem energizados, a instruo vai para o controle Operator.

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

11

As entradas do pedido Program so preferveis s entradas do pedido Operator. Isso fornece a capacidade de usar as entradas ProgProgReq e ProgOperReq para travar uma instruo em um controle desejado. Por exemplo, vamos supor que uma instruo Totalizer sempre ser usada em controle Operator e o programa do usurio nunca controlar a operao ou interrupo do Totalizer. Nesse caso, seria possvel conectar um valor literal de 1 em ProgOperReq. Isso evitaria o operador de colocar o Totalizer no controle Program ao definir o OperProgReq de um dispositivo de interface de operao.

Como a entrada ProgOperReq sempre energizada, no h efeito se pressionar o boto Program na placa frontal (que define a entrada OperProgReg). Normalmente, a definio de OperProgReq coloca o TOT no controle Program.

Conectar um 1 em ProgOperReq significa que o programa do usurio sempre quer que TOT esteja no controle Operator

Igualmente, a definio constante do ProgProgReq pode travar a instruo no controle Program. Isso muito usado para as seqncias de start-up automtico quando se quer o programa para controlar a ao da instruo sem se preocupar que um operador assuma de forma inadvertida o controle da instruo. Nesse exemplo, voc possui a definio do programa da entrada ProgProgReq durante o start-up e desenergiza a entrada ProgProgReq uma vez que o start-up foi concludo. Uma vez que a entrada ProgProgReq desenergizada, a instruo permanece em controle Program at que ela receba um pedido para ser alterada. Por exemplo, o operador poderia definir a entrada OperOperReq de uma placa frontal para assumir o controle

Publicao 1756-RM003F-PT-P - Maio 2002

12

Atributos do Bloco de Funes

da instruo. O exemplo a seguir mostra como travar uma instruo no controle Program.

Quando StartupSequenceActive energizado, a instruo PIDE colocada em controle Program e modo Manual. O valor StartupCV usado como a sada da malha.

As entradas de pedido de operao para uma instruo sempre so desenergizadas pela instruo quando ela executada. Isso permite que as interfaces de operao funcionem com essas instrues ao definir o bit de pedido do modo desejado. No precisa programar a interface de operao para zerar os bits de pedido. Por exemplo, se uma interface de operao energiza a entrada OperAutoReq para uma instruo PIDE, quando a instruo PIDE executada, ela determina que resposta adequada deveria ser e desenergiza OperAutoReq. As entradas do pedido de Program, normalmente, no so desenergizadas pela instruo porque so conectadas como entradas na instruo. Se a instruo desenergizar essas entradas, a entrada consegue apenas energizar novamente pela entrada conectada. Deve haver situaes em que se quer usar outra lgica para definir os pedidos de Program de forma que voc queira que os pedidos de Program sejam desenergizados pela instruo. Nesse caso, possvel energizar a entrada ProgValueReset e a instruo sempre desenergizar as entradas do pedido do modo Program quando ela for executada. Nesse exemplo, uma linha de lgica ladder em uma outra rotina usada para uma trava monoestvel de um ProgAutoReq para uma instruo PIDE quando um boto empurrado. Como a instruo PIDE automaticamente desenergiza os pedidos do modo Program, voc no precisa escrever nenhuma lgica ladder para desenergizar o ProgAutoReq aps a rotina ser executada e a instruo PIDE receber

Publicao 1756-RM003F-PT-P - Maio 2002

Atributos do Bloco de Funes

13

somente um pedido para ir para Auto toda vez que o boto for pressionado.
Quando o Boto TIC101AutoReq pressionado, trave um monoestvel ProgAutoReq para a instruo PIDE TIC101. TIC101 foi configurado com a entrada ProgValueReset energizada, para quando a instruo PIDE for executada, automaticamente desenergizar ProgAutoReq.

Publicao 1756-RM003F-PT-P - Maio 2002

14

Atributos do Bloco de Funes

Notas:

Publicao 1756-RM003F-PT-P - Maio 2002

Apndice

Programao de Texto Estruturado

Introduo

Este apndice descreve os tpicos que so nicos com a programao de texto estruturado. Revise as informaes nesse apndice para certificar-se de que entendeu como ser executada a programao de texto estruturado.
Para informaes sobre: Sintaxe do Texto Estruturado Atributos Expresses Instrues Construes Comentrios Consulte pgina: C-1 C-2 C-4 C-10 C-11 C-24

Sintaxe do Texto Estruturado


Termo: Definio:

O texto estruturado uma linguagem de programao textual que usa as declaraes para definir o que executar. O texto estruturado no sensvel ao contexto. O texto estruturado pode conter esses componentes:
Exemplos: tag := expression;

atributo Use uma declarao de atribuio para atribuir os valores aos tags. (consulte a pgina O operador := um operador de atribuio. C-2) Termine a atribuio com um ponto e vrgula ;. expresso Uma expresso parte de uma atribuio completa ou declarao de (consulte a pgina construo. Uma expresso avalia para um nmero (expresso numrica) C-4) ou para um estado verdadeiro ou falso (expresso BOOL). Uma expresso contm: tags imediatos operadores funes Uma rea nomeada da memria em que os dados so armazenados (BOOL, SINT,INT,DINT, REAL, string). Um valor constante. Um smbolo ou mnemnico que especifica uma operao em uma expresso. Quando executada, uma funo produz um valor. Use parnteses para conter o operando de uma funo. Embora sua sintaxe seja similar, as funes diferenciam-se das instrues em que as funes possam somente ser usadas em expresses. As instrues no podem ser usadas em expresses.

value1 4 tag1 + tag2 tag1 >= value1 function(tag1)

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

Termo:

Definio:

Exemplos: instruction(); instruction(operand); instruction(operand1, operand2,operand3);

instruo Uma instruo uma declarao independente. (consulte a pgina Uma instruo usa parnteses para conter seus operandos. C-10) Dependendo da instruo, pode haver zero, um ou mltiplos operandos. Quando executada, uma instruo produz um ou mais valores que so parte de uma estrutura de dados. Termine a instruo com um ponto e vrgula ;. Embora sua sintaxe seja similar, as funes diferenciam-se das funes em que as instrues no possam ser usadas em expresses. As funes podem ser usadas somente em expresses. construo Uma declarao condicional usada para iniciar o cdigo de texto (consulte a pgina estruturado (isto , outras declaraes). C-11) Termine a construo com um ponto e vrgula ;.

IF...THEN CASE FORDO WHILEDO REPEATUNTIL EXIT //comment (*start of comment. . . end of comment*) /*start of comment. . . end of comment*/

comentrio (consulte a pgina C24).

O texto que explica ou esclarece o que uma coluna de texto estruturado faz. Use os comentrios para interpretar o texto estruturado de forma mais fcil. Os comentrios no afetam a execuo do texto estruturado. Os comentrios podem aparecer em qualquer lugar no texto estruturado.

Atributos

Use um atributo para alterar o valor armazenado em um tag. Um atributo possui essa sintaxe: tag := expression ; onde:
Componente: tag := expression Descrio: representa o tag que est obtendo o novo valor o tag deve ser BOOL, SINT, INT, DINT ou REAL o smbolo de atribuio representa o novo valor para atribuir ao tag Se otag for deste tipo de dados: Use esse tipo de expresso: BOOL SINT INT DINT REAL ; termina o atributo expresso BOOL expresso numrica

O tag retm o valor atribudo at que uma outra atribuio altere o valor. A expresso pode ser simples, como um valor imediato ou um outro nome de tag ou a expresso pode ser complexa e incluir muitos operadores e / ou funes. Consulte a prxima coluna Expresses na pgina C-4 para detalhes.
Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

Especificao de um atributo no retentivo


O atributo no retentivo diferente da atribuio regular descrita acima em que o tag em uma atribuio no retentiva rearmado para resetar em zero toda vez que o controlador: entrar o modo RUN sair da etapa de um SFC caso configure o SFC para Automatic reset (Isso se aplica somente se voc embutiu a atribuio na ao da etapa ou se usar a ao para chamar uma rotina de texto estruturado atravs de uma instruo JSR.) Uma atribuio no retentiva possui essa sintaxe: tag [:=] expression ; onde:
Componente: tag [:=] expression Descrio: representa o tag que est obtendo o novo valor o tag deve ser BOOL, SINT, INT, DINT ou REAL um smbolo de atribuio no retentiva representa o novo valor para atribuir ao tag Se otag for deste tipo de dados: Use esse tipo de expresso: BOOL SINT INT DINT REAL ; termina a atribuio expresso BOOL expresso numrica

Atribuio de um caractere ASCII para um string


Use o operador de atribuio para atribuir um caractere ASCII a um elemento do membro DATA de um tag da string. Para atribuir um caractere, especifique o valor do caractere ou especifique o nome do tag, membro DATA e o elemento do caractere. Por exemplo:
Esse est OK: string1.DATA[0]:= 65; string1.DATA[0]:= string2.DATA[0]; Esse no est OK. string1.DATA[0] := A; string1 := string2;

Para adicionar ou inserir um string de caracteres a um tag da string, use uma dessas instrues da string ASCII:
Para: adicionar caracteres ao final de uma string inserir caracteres em uma string Use esta instruo: CONCAT INSERT
Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

Expresses

Uma expresso um nome do tag, equao ou comparao. Para escrever uma expresso, use: o nome do tag que armazena o valor (varivel) o nmero inserido diretamente na expresso (valor imediato) funes, como: ABS, TRUNC operadores, como: +, -, <, >, And, Or Assim que escrever as expresses, siga essas regras gerais: Use qualquer combinao de letra maiscula e minscula. Por exemplo, essas trs variaes de "AND" so aceitveis: AND, And, and. Para especificaes mais complexas, use os parnteses para agrupar as expresses dentro de expresses. Isso torna a expresso inteira mais fcil de ser lida e assegura que a expresso seja executada na seqncia desejada. Consulte Determinao da seqncia de execuo na pgina C9. No texto estruturado, so usados dois tipos de expresses: expresso BOOL: Uma expresso que produz o valor BOOL de 1 (verdadeiro) ou 0 (falso). Uma expresso BOOL usa os tags BOOL, operadores relacionados e operadores lgicos para comparar os valores ou verificar se as condies so verdadeiras ou falsas. Por exemplo, tag1>65. Uma expresso BOOL simples pode ser um nico tag BOOL. Geralmente, usam-se expresses BOOL para condicionar a execuo de outra lgica. Expresso Numrica: Uma expresso que calcula um valor inteiro ou de ponto flutuante. Uma expresso numrica usa operadores aritmticos, funes aritmticas e operadores bitwise. Por exemplo, tag1+5. Geralmente, voc encadeia uma expresso numrica em uma expresso BOOL. Por exemplo, (tag1+5)>65. Use a tabela a seguir para escolher os operadores para as expresses:
Se voc quiser: Calcular um valor aritmtico Comparar dois valores ou strings Verificar se as condies so verdadeiras ou falsas Comparar os bits nos valores Ento: Use os operadores e funes aritmticas na pgina C-5. Uso dos operadores relacionados na pgina C-6. Uso dos operadores lgicos na pgina C-8. Uso de operadores bitwise na pgina C-9.

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

Use os operadores e funes aritmticas


possvel combinar operadores mltiplos e funes em expresses aritmticas. Os operadores aritmticos calculam os novos valores.
Para: adio subtrao/negao multiplicao expoente (x elevado a y) diviso mdulo-diviso Use este operador: + * ** / MOD Tipo de dados otimizados: DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL

As funes aritmticas realizam operaes matemticas. Especifique uma constante, um tag no booleano ou uma expresso para a funo.
Para: valor absoluto arco co-seno arco seno arco tangente co-seno radianos para graus log neperiano log de base 10 graus para radianos seno raiz quadrada tangente truncado Use esta funo: ABS (numeric_expression) ACOS (numeric_expression) ASIN (numeric_expression) ATAN (numeric_expression) COS (numeric_expression) DEG (numeric_expression) LN (numeric_expression) LOG (numeric_expression) RAD (numeric_expression) SIN (numeric_expression) SQRT (numeric_expression) TAN (numeric_expression) TRUNC (numeric_expression) Tipo de dados otimizados: DINT, REAL REAL REAL REAL REAL DINT, REAL REAL REAL DINT, REAL REAL DINT, REAL REAL DINT, REAL

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

Por exemplo:
Use esse formato: Exemplo: Para essa situao: value1 operator value2 Se gain_4 e gain_4_adj so tags DINT e a especificao diz: "Acrescente 15 a gain_4 e armazene o resultado em gain_4_adj." Se alarme e high_alarm so tags DINT e a especificao diz: Subtraia high_alarm e armazenar o resultado em alarm. Voc escreveria: gain_4_adj := gain_4+15; alarm:= -high_alarm; overtravel_POS := ABS(overtravel); position := adjustment + ABS((sensor1 + sensor2)/2);

operator value1

function(numeric_expression) Se overtravel e overtravel_POS so tags DINT e a especificao diz: Calcule o valor absoluto de overtravel e armazene o resultado em overtravel_POS. value1 operator Se adjustment e position so tags DINT e sensor1 e sensor2 (function((value2+value3)/2) so tags REAL e a especificao diz: Encontre o valor absoluto da mdia de sensor1 e de sensor2, acrescente adjustment e armazene o resultado em position.

Uso dos operadores relacionados


Os operadores relacionados comparam dois valores ou strings para fornecer um resultado verdadeiro ou falso. O resultado de uma operao relacionada um valor BOOL:
Se a comparao for: verdadeira falsa O resultado : 1 0

Use os operadores relacionados a seguir:


Para essa comparao: Use este operador: Tipo de dados otimizados: igual menor que menor ou igual a maior que maior ou igual a diferente de = < <= > >= <> DINT, REAL, string DINT, REAL, string DINT, REAL, string DINT, REAL, string DINT, REAL, string DINT, REAL, string

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

Por exemplo:
Use esse formato: Exemplo: Para essa situao: valor1 operador valor2 stringtag1 operator stringtag2 char1 operator char2 Para inserir um caractere ASCII diretamente na expresso, insira o valor decimal do caractere. bool_tag := bool_expressions Se count e length so tags DINT, done um tag BOOL e a especificao diz Se count maior ou igual a length, voc concluiu a contagem. done := (count >= length); Se temp um tag DINT e a especificao diz: Se temp for menor que 100 ento Se bar_code e dest so tags da string e a especificao diz: Se bar_code for igual a dest ento Voc escreveria: IF temp<100 THEN... IF bar_code=dest THEN...

Se bar_code um tag da string e a especificao IF bar_code.DATA[0]=65 THEN... diz: "Se bar_code.DATA[0] igual a A ento

Como as Strings So Avaliados


Os valores hexadecimais dos caracteres ASCII determinam se uma string menor ou maior que outra. Quando duas strings esto classificadas como em um diretrio de telefone, a ordem das strings determina qual maior.
Caracteres ASCII 1ab
m e n o r q u m ai o r q u e

Cdigos Hexadecimais $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

As strings so iguais se os caracteres corresponderem. Os caracteres so sensveis ao contexto. O "A" maisculo ($41) no igual ao "a" minsculo ($61). Para o valor decimal e cdigo hexadecimal de um caractere, consulte a quarta capa deste manual.

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

Uso dos operadores lgicos


Os operadores lgicos permitem verificar se mltiplas condies so verdadeiras ou falsas. O resultado de uma operao lgica um valor BOOL:
Se a comparao for: verdadeira falsa O resultado : 1 0

Use os operadores lgicos a seguir:


Para: lgica AND lgica OR lgica XOR lgica NOT Use este operador: &, AND OR XOR NOT Tipo de Dados: BOOL BOOL BOOL BOOL

Por exemplo:
Use esse formato: Exemplo: Para essa situao:
BOOLtag NOT BOOLtag expression1 & expression2

Voc escreveria: IF photoeye THEN... IF NOT photoeye THEN... IF photoeye & (temp<100) THEN... IF photoeye OR (temp<100) THEN... IF photoeye1 XOR photoeye2 THEN...

Se photoeye um tag BOOL e a especificao diz: Se photoeye_1 estiver energizado ento Se photoeye um tag BOOL e a especificao diz: Se photoeye estiver desenergizado ento Se photoeye um tag BOOL, temp um tag DINT e a especificao diz: "Se photoeye estiver energizado e temp for menor que 100 ento. Se photoeye um tag BOOL, temp um tag DINT e a especificao diz: Se photoeye estiver energizado ou temp for menor que 100 ento. Se photoeye1 e photoeye2 so tags BOOL e a especificao diz: Se: photoeye1 estiver energizado enquanto photoeye2 estiver desenergizado ou photoeye1 estiver desenergizado enquanto photoeye2 estiver energizado ento..." & Se photoeye1 e photoeye2 so tags BOOL, open um tag BOOL e a especificao diz: Se photoeye1 e photoeye2 estiverem energizado, define open como verdadeiro.

expression1 OR expression2

expression1 XOR expression2

BOOLtag := expression1 expression2

open := photoeye1 & photoeye2;

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

Uso de operadores bitwise


Os operadores bitwise manipulam os bits em um valor baseado em dois valores.
Para: AND (E) OR (OU) XOR NOT Use este operador: &, AND OR XOR NOT Tipo de dados otimizados: DINT DINT DINT DINT

Por exemplo:
Use esse formato: Exemplo: Para essa situao: value1 operator value2 Se input1, input2 e result1 so tags DINT e a especificao diz: Calcule o resultado de input1 e input2. Armazene o resultado em result1. Voc escreveria: result1 := input1 AND input2;

Determinao da seqncia de execuo


As operaes escritas em uma expresso so realizadas em uma seqncia prescrita, no necessariamente da esquerda para a direita. Operaes com seqncia igual so realizadas da esquerda para a direita. Se uma expresso contiver mltiplos operadores ou funes, agrupe as condies em parnteses "( )" . Isso assegura a seqncia correta de execuo e facilita a leitura da expresso.
Seqncia: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Operao: () funo () ** (negao) NOT *, /, MOD +, - (subtrao) <, <=, >, >= =, <> &, AND XOR OR

Publicao 1756-RM003F-PT-P - Maio 2002

10

Programao de Texto Estruturado

Instrues

As declaraes do texto estruturado podem ser tambm instrues. Consulte a Tabela de Localizao no incio desse manual para uma lista de instrues disponveis no texto estruturado. Uma instruo de texto estruturado executa toda vez que varrida. Uma instruo de texto estruturado com uma construo executa toda vez que as condies de construo forem verdadeiras. Se as condies de construo forem falsas, as declaraes na construo no so varridas. No h condio de linha ou transio de estado que inicie a execuo. Isso difere das instrues do bloco de funes que usam EnableIn para iniciar a execuo. As instrues de texto estruturado executadas se EnableIn estiver sempre energizado. Isso difere tambm das instrues de lgica ladder que usam a entrada da condio de linha para iniciar a execuo. Algumas instrues da lgica ladder somente so executadas quando a entrada da condio de linha alterna de falso para verdadeiro. Essas so instrues de lgica ladder so transicionais. No texto estruturado, as instrues sero executadas toda vez que forem varridas a menos que voc pr-condicione a execuo da instruo de texto estruturado. Por exemplo, a instruo ABL uma instruo transicional na lgica ladder. Nesse exemplo, a instruo ABL executada somente em um scan quando as transiestag_xic forem de desenergizado para energizado. A instruo ABL no executada quando tag_xic fica energizado ou quando tag_xic est desenergizado.

No texto estruturado, se voc escrever este exemplo como: IF tag_xic THEN ABL(0,serial_control); END_IF; A instruo ABL ser executada a cada scan em que tag_xic estiver energizado, no apenas quando as transies tag_xic forem de desenergizado para energizado.

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

11

Se voc quiser que a instruo ABL execute somente quando as transies de tag_xic forem de desenergizado para energizado, precisar condicionar a instruo de texto estruturado. Use um monoestvel para iniciar a execuo.
osri_1.InputBit := tag_xic; OSRI(osri_1);

IF (osri_1.OutputBit) THEN ABL(0,serial_control); END_IF;

Construes
Se voc quiser:

As construes podem ser programadas uma a uma ou encadeadas em outras construes.


Use esta construo: IF...THEN CASE...OF FORDO WHILEDO REPEATUNTIL Disponvel nessas linguagens: Consulte a pgina: texto estruturado texto estruturado texto estruturado texto estruturado texto estruturado C-12 C-15 C-17 C-20 C-22

fazer algo se ou quando as condies especficas ocorrerem selecionar o que fazer com base em um valor numrico fazer algo um nmero vezes determinadas antes de fazer mais alguma coisa continuar a fazer algo enquanto certas condies so verdadeiras continuar a fazer algo at que uma condio seja verdadeira

Publicao 1756-RM003F-PT-P - Maio 2002

12

Programao de Texto Estruturado

IF...THEN
Operandos:

Use IFTHEN para fazer algo se ou quando as condies especficas ocorrerem.

Texto Estruturado
IF bool_expression THEN <statement>; END_IF;

Operando: bool_ expression

Tipo: BOOL

Formato: tag expresso

Insira: tag BOOL ou a expresso que avalie para um valor BOOL (expresso BOOL)

Descrio: A sintaxe :
IF bool_expression THEN <statement >;
declaraes a serem executadas quando bool_expression1 for verdadeiro

. . .
opcional

ELSIF bool_expression2 THEN <statement >;


declaraes a serem executadas quando bool_expression2 for verdadeiro

. . .
opcional

ELSE <statement >;


declaraes a serem executadas quando as expresses forem falsas

. . .
END_IF;

Para usar ELSIF ou ELSE, siga as orientaes: 1. Para selecionar diversos grupos possveis de declaraes, adicione uma ou mais declaraes ELSIF. Cada ELSIF representa um caminho alternativo. Especifique quantos caminhos ELSIF possveis voc precisar. O controlador executa o primeiro IF ou ELSIF verdadeiro e pula o resto dos ELSIFs e ELSE. 2. Para fazer algo quando todas as condies de IF ou ELSIF forem falsas, adicione uma declarao ELSE.

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

13

A tabela a seguir resume as combinaes diferentes de IF, THEN, ELSIF e ELSE.


Se voc quiser: fazer algo se ou quando as condies forem verdadeiras escolher as declaraes alternativas (ou grupos de declaraes) baseadas nas condies de entrada E nada fizer se as condies forem falsas fazer mais alguma coisa se as condies forem falsas fazer nada se as condies forem falsas atribuir declaraes padro se todas as condies forem falsas Ento use esta construo IF...THEN IFTHENESLE IFTHENELSIF IFTHENELSIFELSE

Exemplo 1: IFTHEN
Se voc quiser isso: IF rejects > 3 then transportador = off (0) alarme = on (1) Insira este texto estruturado: IF rejects > 3 then conveyor := 0; alarm:= 1; END_IF;

Exemplo 2: IFTHENELSE
Se voc quiser isso: Se o contato de direo do transportador = siga (1) ento light = apaga Ou light = acende Insira este texto estruturado: IF conveyor_direction THEN light := 0; ELSE light [:=] 1; END_IF;

O [:=] pede ao controlador para apagar light quando o controlador: entrar o modo RUN sair da etapa de um SFC caso configure o SFC para Automatic Reset (Isso se aplica somente se voc embutiu a atribuio na ao da etapa ou usar a ao para chamar uma rotina de texto estruturado atravs de uma instruo JSR.)

Publicao 1756-RM003F-PT-P - Maio 2002

14

Programao de Texto Estruturado

Exemplo 3: IFTHENELSIF
Se voc quiser isso: Se sugar low limit switch = low (energizada) e sugar high limit switch = not high (energizada) ento vlvula de entrada = aberta (energizada) At sugar high limit switch = high (desenergizada) Insira este texto estruturado: IF Sugar.Low & Sugar.High THEN Sugar.Inlet [:=] 1; ELSIF NOT(Sugar.High) THEN Sugar.Inlet := 0; END_IF;

O [:=] pede para o controlador desenergizar Sugar.Inlet sempre que o controlador: entrar no modo RUN sair da etapa de um SFC caso configure o SFC para Automatic reset (Isso se aplica somente se voc embutiu a atribuio na ao da etapa ou usar a ao para chamar uma rotina de texto estruturado atravs de uma instruo JSR.)

Exemplo 4: IFTHENELSIFELSE
Se voc quiser isso: Se a temperatura do tanque for > 100 ento a bomba = devagar Se a temperatura do tanque for > 200 ento a bomba = rpido ou a bomba = desenergizada ELSE pump.fast :=0; pump.slow :=0; pump.off :=1; END_IF; Insira este texto estruturado: IF tank.temp > 200 THEN pump.fast :=1; pump.slow :=0; pump.off :=0; ELSIF tank.temp > 100 THEN pump.fast :=0; pump.slow :=1; pump.off :=0;

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

15

CASE...OF
Operandos:

Use CASE para selecionar o que fazer baseado em um valor numrico.

Texto Estruturado
CASE numeric_expression OF selector1: statement; selectorN: statement; ELSE statement; END_CASE; selector

Operando:
numeric_ Expresso

Tipo: SINT INT DINT REAL SINT INT DINT REAL

Formato: tag Expresso

Insira: tag ou a expresso que avalie para um nmero (expresso numrica)

imediato

o mesmo tipo que


numeric_expression

IMPORTANTE

Se usar valores REAL, use uma faixa de valores para um seletor porque um valor REAL mais provvel que esteja em uma faixa de valores que uma combinao exata de um valor especfico.

Descrio: A sintaxe :
CASE numeric_expression OF selector1 : <statement>; . . . <statement>;
declaraes a serem executadas quando numeric_expression = selector1

especifica os valores possveis do seletor alternativo (caminhos) medida que voc precisar

selector2 :

. . .
selector3 : <statement>;

declaraes a serem executadas quando numeric_expression = selector2

. . .
ELSE <statement>;
opcional

declaraes a serem executadas quando numeric_expression = selector3

. . .
END_CASE;

declaraes a serem executadas quando numeric_expression qulaquer seletor

Consulte a tabela na pgina seguinte para validar os valores do seletor.

Publicao 1756-RM003F-PT-P - Maio 2002

16

Programao de Texto Estruturado

A sintaxe para insero dos valores do seletor :


Quando o seletor for: um valor mltiplo, com valores distintos Insira: Valor:statement value1, value2, valueN : <statement> Use uma vrgula (,) para separar cada valor. uma faixa de valores value1..valueN : <statement> Use dois pontos (..) para identificar a faixa. valores distintos mais uma faixa de valores valuea, valueb, value1..valueN : <statement>

EXEMPLO
Se voc quiser isso: Se o nmero receptor = 1 ento Ingrediente A sada 1 = aberta (1) Ingrediente B sada 4 = aberta (1) Se o nmero receptor = 2 ou 3 ento Ingrediente A sada 4 = aberta (1) Ingrediente B sada 2 = aberta (1) Se o nmero receptor = 4, 5, 6 ou 7 ento Ingrediente A sada 4 = aberta (1) Ingrediente B sada 2 = aberta (1) Se o nmero receptor = 8, 11, 12 ou 13 ento Ingrediente A sada 1 = aberta (1) Ingrediente B sada 4 = aberta (1) Ou todas as sadas = fechada (0)
ELSE Ingredient_A.Outlet_1 [:=]0; Ingredient_A.Outlet_4 [:=]0; Ingredient_B.Outlet_2 [:=]0; Ingredient_B.Outlet_4 [:=]0; END_CASE; 8,11-13 Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1; 4..7: Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1; 2,3:

Insira este texto estruturado:


CASE recipe_number OF 1: Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1; Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;

O [:=] pede ao controlador para tambm desenergizar os tags de sada sempre que o controlador: inserir o modo RUN sair da etapa de um SFC caso configure o SFC para Automatic reset (Isso se aplica somente se voc embutiu a atribuio na ao da etapa ou usar a ao para chamar uma rotina de texto estruturado atravs de uma instruo JSR.)

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

17

FORDO
Operandos:

Use a malha FORDO para fazer algo com um nmero especfico de vezes antes de fazer algo mais.

Texto Estruturado
FOR count:= initial_value TO final_value BY increment DO <statement>; END_FOR;

Operando: count

Tipo: SINT INT DINT SINT INT DINT SINT INT DINT SINT INT DINT

Formato: tag

Descrio: tag para armazenar a posio de contagem quando executar FORDO deve avaliar em um nmero especifica o valor inicial para contagem especifica o valor final para contagem, o que determina quando sair da malha (opcional) quantidade para incrementar a contagem cada vez atravs da malha Se no especificar um incremento, a contagem incrementa pelo 1.

initial_ value final_ value increment

tag expresso imediato tag expresso imediato tag expresso imediato

IMPORTANTE

Certifique-se de no repetir a malha muitas vezes em um nico scan. O controlador no executa nenhuma outra declarao na rotina at concluir a malha. Se o tempo que ele levar para concluir a malha for superior ao temporizador watchdog para a tarefa, ocorre uma falha grave. Considere o uso de uma construo diferente, como IF...THEN.

Descrio: A sintaxe :
FOR count:= initial_value TO final_value
opcional {

BY incremento DO <statement>; IF bool_expression THEN

Se no especificar um incremento, a malha incrementa pelo 1.

opcional

EXIT; END_IF; END_FOR;

Se houver condies quando quiser sair da malha antes, use outras declaraes, como a construo IF...THEN, para a condio de uma declarao EXIT.

Publicao 1756-RM003F-PT-P - Maio 2002

18

Programao de Texto Estruturado

Os diagramas a seguir mostram como uma malha FOR...DO executa e como uma declarao EXIT deixa a malha mais cedo.
executado x nmero de vezes? no declarao 1 declarao 2 declarao 3 declarao 4 resto da rotina sim Executado x nmero de vezes? no declarao 1 declarao 2 declarao 3 declarao 4 Sair ? no resto da rotina sim

sim

A malha FORDO executa um nmero especfico de vezes.

Para parar a malha antes que a contagem alcance o ltimo valor, use uma declarao EXIT.

Exemplo 1:
Se voc quiser: Desenergizar os bits 0 - 31 em um array de BOOLs: 1. Inicie o tag subscript para 0. 2. Desenergize array[ subscript ] . Por exemplo, quando subscript = 5, desenergize array[5]. 3. Adicione 1 a subscript. 4. Se subscript for que 31, repita 2 e 3. Caso contrrio, pare. Insira este texto estruturado: For subscript:=0 to 31 by 1 do array[subscript] := 0; End_for;

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

19

Exemplo 2:
Se voc quiser isso: Insira este texto estruturado:

Um tipo de dados definido pelo usurio (estrutura) armazena as SIZE(Inventory,0,Inventory_Items); seguintes informaes sobre um item no seu estoque: ID do cdigo de barras do item (tipo de dados da string) For position:=0 to Inventory_Items - 1 do Quantidade do item em estoque (tipo de dados DINT) If Barcode = Inventory[position].ID Um array da estrutura acima contm um elemento para cada Quantity := Inventory[position].Qty; item diferente no seu estoque. Voc quer procurar o array para um produto especfico (use seu cdigo de barras) e determinar a EXIT; quantidade que h em estoque. END_IF; 1. Obter o tamanho (nmero de items) do array Inventory e armazene o resultado Inventory_Items (tag DINT). End_for; 2. Inicie o tag position em 0. 3. Se Barcode corresponder ID do item no array, ento: a. Ajuste o tag Quantity = Inventory[position].Qty. Isso produz a quantidade no estoque do item. b. Pare. Barcode um tag da string que armazena o cdigo de barras do item para o que voc estiver procurando. Por exemplo, quando position = 5, compare Barcode ao Inventory[5].ID. 4. Adicione 1 para position. 5. Se position for para (Inventory_Items -1), repita 3 e 4. Como os nmeros do elemento comeam no 0, o ltimo elemento 1 menor que o nmero de elementos no array. Caso contrrio, pare.

Publicao 1756-RM003F-PT-P - Maio 2002

20

Programao de Texto Estruturado

WHILEDO
Operandos:

Use a malha WHILEDO para continuar algo enquanto certas condies forem verdadeiras.

Texto Estruturado
WHILE bool_expression DO <statement>; END_WHILE;

Operando: bool_ expression

Tipo: BOOL

Formato:

Insira:

tag tag BOOL ou a expresso que avalie para um Expresso valor BOOL

IMPORTANTE

Certifique-se de no repetir a malha muitas vezes em um nico scan. O controlador no executa nenhuma outra declarao na rotina at concluir a malha. Se o tempo que ele levar para concluir a malha for superior ao temporizador watchdog para a tarefa, uma falha grave ocorre. Considere o uso de uma construo diferente, como IF...THEN.

Descrio: A sintaxe :
WHILE bool_expression DO <statement>; IF bool_expression2 THEN
opcional declaraes para serem executadas enquanto bool_expression1 verdadeiro

EXIT; END_IF; END_WHILE;

Se houver condies quando quiser sair da malha antes, use outras declaraes, como uma construo IF...THEN, para a condio de uma declarao EXIT.

Os diagramas a seguir mostram como uma malha WHILE...DO se executa e como uma declarao EXIT deixa a malha mais cedo.
expresso BOOL verdadeira declarao 1 declarao 2 declarao 3 declarao 4 resto da rotina falsa expresso BOOL verdadeira declarao 1 declarao 2 declarao 3 declarao 4 Sair ? no resto da rotina falsa

sim

Enquanto bool_expression for verdadeira, o controlador executa somente as declaraes na malha WHILEDO.

Para parar a malha antes das condies serem verdadeiras, use uma declarao EXIT.

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

21

Exemplo 1:
Se voc quiser isso: A malha WHILE...DO avalia primeiro suas condies. Se as condies forem verdadeiras, o controlador executa ento as declaraes na malha. Insira este texto estruturado: pos := 0; While ((pos <= 100) & structarray[pos].value <> targetvalue)) do

Isto diferencia-se da malha REPEAT...UNTIL porque a malha pos := pos + 2; REPEAT...UNTIL executa as declaraes na construo e ento determina se as condies so verdadeiras antes de executar as String_tag.DATA[pos] := SINT_array[pos]; declaraes novamente. As declaraes em uma malha REPEAT...UNTIL so sempre executadas pelo menos uma vez. As end_while; declaraes em uma malha WHILE...DO nuca podem ser executadas.

Exemplo 2:
Se voc quiser isso: Movimente os caracteres ASCII de um array SINT para um tag da string. (Em um array SINT, cada elemento suporta um caractere.) Pare quando alcanar o mecanismo de retorno. 1. Inicie Element_number para 0. 2. Conte o nmero de elementos em SINT_array (array que contm os caracteres ASCII) e armazena o resultado em SINT_array_size (tag DINT). 3. Se o caractere em SINT_array[element_number] = 13 (valor decimal do mecanismo de retorno), ento pare. 4. Defina String_tag[element_number] = caractere em SINT_array[element_number]. 5. Adicione 1 para element_number. Isto permite que o controlador verifique o SINT_array. 6. Defina o membro Length de String_tag = element_number. (Isto registra o nmero de caracteres em String_tag mais distante.) 7. Se element_number = SINT_array_size, ento pare. (Voc est no final do array e ele no contm um mecanismo de retorno.) 8. V para 3. Insira este texto estruturado: element_number := 0; SIZE(SINT_array, 0, SINT_array_size); While SINT_array[element_number] <> 13 do String_tag.DATA[element_number] := SINT_array[element_number]; element_number := element_number + 1; String_tag.LEN := element_number; If element_number = SINT_array_size then exit; end_if; end_while;

Publicao 1756-RM003F-PT-P - Maio 2002

22

Programao de Texto Estruturado

REPEATUNTIL
Operandos:

Use a malha REPEATUNTIL para continuar a fazer algo at que as condies sejam verdadeiras.

Texto Estruturado
REPEAT <statement>; UNTIL bool_expression END_REPEAT;

Operando: bool_ expression

Tipo: BOOL

Formato: tag expresso

Insira: tag BOOL ou a expresso que avalie para um valor BOOL (expresso BOOL)

IMPORTANTE

Certifique-se de no repetir a malha muitas vezes em um nico scan. O controlador no executa nenhuma outra declarao na rotina at concluir a malha. Se o tempo que ele levar para concluir a malha for superior ao temporizador watchdog para a tarefa, ocorre uma falha grave. Considere o uso de uma construo diferente, como IF...THEN.

Descrio: A sintaxe :
REPEAT <statement>; IF bool_expression2 THEN
opcional declaraes para serem executadas enquanto bool_expression1 for falso

EXIT; END_IF; UNTIL bool_expression1 END_REPEAT;

Se houver condies quando quiser sair da malha antes, use outras declaraes, como a construo IF...THEN, para a condio de uma declarao EXIT.

Publicao 1756-RM003F-PT-P - Maio 2002

Programao de Texto Estruturado

23

Os diagramas a seguir mostram como uma malha REPEAT...UNTIL se executa e como uma declarao EXIT deixa a malha mais cedo.
declarao 1 declarao 2 declarao 3 declarao 4 expresso BOOL falsa resto da rotina falsa resto da rotina declarao 1 declarao 2 declarao 3 declarao 4 Sair ? no expresso BOOL verdadeira

verdadeira

sim

Enquanto bool_expression for falsa, o controlador executa somente as declaraes na malha REPEATUNTIL.

Para parar a malha antes das condies serem falsas, use uma declarao EXIT.

Exemplo 1:
Se voc quiser isso: A malha REPEAT...UNTIL executa as declaraes na construo e ento determina se as condies so verdadeiras antes da execuo das declaraes novamente. Isto diferencia-se da malha WHILE...DO porque a malha WHILE...DO avalia primeiro as suas condies. Se as condies forem verdadeiras, o controlador executa ento as declaraes na malha. As declaraes em uma malha REPEAT...UNTIL so sempre executadas pelo menos uma vez. As declaraes em uma malha WHILE...DO nunca podem ser executadas. Insira este texto estruturado: pos := -1; REPEAT pos := pos + 2; UNTIL ((pos = 101) OR (structarray[pos].value = targetvalue)) END_REPEAT;

Exemplo 2:
Se voc quiser isso: Movimente os caracteres ASCII de um array SINT para um tag da string. (Em um array SINT, cada elemento holds um caractere.) Pare quando alcanar o mecanismo de retorno. 1. Inicie Element_number para 0. 2. Conte o nmero de elementos em SINT_array (array que contm os caracteres ASCII) e armazena o resultado emSINT_array_size (tag DINT). 3. Defina String_tag[element_number] = o caractere em SINT_array[element_number]. 4. Adicione 1 a element_number. Isto permite que o controlador verifique o SINT_array. 5. Defina o membro Length de String_tag = element_number. (Isto registra o nmero de caracteres em String_tag at agora.) 6. Se element_number = SINT_array_size, ento pare. (Voc est no final do array e ele no contm um mecanismo de retorno.) 7. Se o caractere em SINT_array[element_number] = 13 (valor decimal do mecanismo de retorno), ento pare. Caso contrrio, v para 3. Insira este texto estruturado: element_number := 0; SIZE(SINT_array, 0, SINT_array_size); REPEAT String_tag.DATA[element_number] := SINT_array[element_number]; element_number := element_number + 1; String_tag.LEN := element_number; If element_number = SINT_array_size then exit; end_if; Until SINT_array[element_number] = 13 end_repeat;

Publicao 1756-RM003F-PT-P - Maio 2002

24

Programao de Texto Estruturado

Comentrios

Para interpretar o texto estruturado de forma mais fcil, adicione comentrios a ele. Os comentrios permitem que voc use uma linguagem simples para descrever como seu texto estruturado trabalha. Os comentrios no afetam a execuo do texto estruturado. Para acrescentar comentrios ao texto estruturado:
Para acrescentar um comentrio: em uma nica linha ao final de uma linha do texto estruturado em uma linha do texto estruturado Use um desses formatos: //comment (*comment*) /*comment*/ (*comment*) /*comment*/ que ocupe mais de uma linha (*start of comment . . . end of comment*) /*start of comment . . . end of comment*/

Por exemplo:
Formato: //comment Exemplo: No incio de uma linha //Check conveyor belt direction IF conveyor_direction THEN... No final de uma linha ELSE //If conveyor isnt moving, set alarm light light := 1; END_IF; (*comment*) Sugar.Inlet[:=]1;(*open the inlet*) IF Sugar.Low (*low level LS*)& Sugar.High (*high level LS*)THEN... (* Controla a velocidade de recirculao da bomba. A velocidade depende da temperatura no tanque.*) IF tank.temp > 200 THEN... /*comment*/ Sugar.Inlet:=0;/*close the inlet*/ IF bar_code=65 /*A*/ THEN... /* Obtm o nmero de elementos no array Inventory e armazena o valor do tag Inventory_Items tag */ SIZE(Inventory,0,Inventory_Items);

Publicao 1756-RM003F-PT-P - Maio 2002

ndice
A
adio 5-5 ajuste 12-24 alarmes 12-25 AND 6-21 anexar escrita ASCII 16-22 arco co-seno 13-10 arco seno 13-8 arco tangente 13-12 aritmtica de arquivos 7-6 atributos tipos de dados de converso A-1 valores imediatos A-1 atributos comuns A-1 tipos de dados de converso A-1 valores imediatos A-1 controle de program/operator caracterstica geral B-10 converso de escala 12-25 converso em inteiro 15-9 converso para BCD 15-6 cpia 7-25 cpia de sncrono 7-25 co-seno 13-4

D
dados transacionais 12-16 definio do valor do sistema 3-29 descarga FIFO 8-14 descarga LIFO 8-26 desenergizar sada com reteno 1-9 deslocamento de bit para a direita 8-5 deslocamento de bit para a esquerda 8-2 desvio padro 7-45 deteco de diagnstico 12-9 diferente de 4-37 DINT Para String 18-7 distribuio de bits com arquivo-alvo

B
BAND 6-33 bias de sada 12-34 BNOT 6-40 Boolean OR 6-35 BOR 6-35 break 11-5 busca de string 17-7 BXOR 6-38

6-14
distribuio do campo do bit 6-11 diviso 5-14 diviso do mdulo 5-18

C
clculo 5-2 caracteres ASCII no buffer 16-8 carga do seqenciador 9-10 carga FIFO 8-8 carga LIFO 8-20 CASE C-15 classificao 7-40 Cdigos de Erro ASCII 16-4 instruo MSG 3-7 Comparao 4-2 comparao de instrues seqncia da operao 4-5, 7-23 comparao e busca de arquivo 7-17 comparao entre os bits de arquivo

E
E Booleano 6-33 elementos instruo SIZE 7-50 energizar sada 1-6 energizar sada com reteno 1-7 entrada do seqenciador 9-2 escrita ASCII 16-26 estrutura COMPARE 12-3, 12-10 estrutura CONTROL 7-7, 7-17, 7-35,

7-40, 7-45, 8-2, 8-5, 8-8, 8-14, 8-20, 8-26, 9-2, 9-6, 9-10 estrutura COUNTER 2-25 estrutura de controle 10-14 estrutura do contador 2-22 estrutura do temporizador 2-2, 2-9
estrutura FBD_BIT_FIELD_DISTRIBUTE

12-2
Concatenao de String 17-3 condies de overflow B-5 configurao 3-13 instruo MSG 3-13 instruo PID 12-23 contagem crescente 2-22 contagem crescente/decrescente 2-29 contagem decrescente 2-25

6-14
estrutura FBD_BOOLEAN_AND 6-33 estrutura FBD_BOOLEAN_NOT 6-40 estrutura FBD_BOOLEAN_OR 6-35 estrutura FBD_BOOLEAN_XOR 6-38 Estrutura FBD_COMPARE 4-8 estrutura FBD_COMPARE 4-11, 4-15,

4-19, 4-23, 4-38


estrutura FBD_CONVERT 15-6, 15-9
Publicao 1756-RM003F-PT-P - Maio 2002

ndice

Estrutura FBD_COUNTER 2-29 estrutura FBD_LIMIT 4-27 estrutura FBD_LOGICAL 6-22, 6-25,

PID 12-20 RESULT 12-3, 12-10 SERIAL_PORT_CONTROL 16-2, 16-4,

6-28, 6-30
estrutura FBD_MASK_EQUAL 4-33 estrutura FBD_MASKED_MOVE 6-8 estrutura FBD_MATH 5-6, 5-9, 5-12,

5-15, 5-19, 5-24, 14-7


estrutura FBD_MATH_ADVANCED 5-21,

5-26, 13-2, 13-4, 13-6, 13-8, 13-10, 13-12, 14-2, 14-4, 15-2, 15-4 estrutura FBD_ONESHOT 1-18, 1-20 estrutura FBD_TIMER 2-13, 2-16, 2-19 estrutura FBD_TRUNCATE 15-11 Estrutura MESSAGE 3-2 estrutura PID 12-20 estrutura RESULT 12-3, 12-10
Estrutura SERIAL_PORT_CONTROL

16-6, 16-8, 16-13, 16-16, 16-19, 16-23, 16-27 STRING 16-3, 17-2, 18-2 string 16-3, 17-2, 18-2 TIMER 2-2, 2-5, 2-9 examinar se desenergizado 1-4 Excluso de String 17-5 exponencial 14-6
expresses formato 4-4, 5-4, 7-16, 7-22 Operadores vlidos 5-3, 7-15 operadores vlidos 4-4, 7-22 seqncia da operao 4-5, 7-23 seqncia de operao 5-4, 7-16

16-2, 16-4, 16-6, 16-8, 16-13, 16-16, 16-19, 16-23, 16-27 estrutura STRING 16-3, 17-2, 18-2 estrutura TIMER 2-5
estruturas COMPARE 12-3, 12-10 Contador 2-22 CONTROL 7-7, 7-17, 7-35, 7-40,

F
feedforward 12-34 fim temporrio 10-16 flags de status aritmtico

overflow B-5

7-45, 8-2, 8-5, 8-8, 8-14, 8-20, 8-26, 9-2, 9-6, 9-10 COUNTER 2-25 FBD_BIT_FIELD_DISTRIBUTE 6-14 FBD_BOOLEAN_AND 6-33 FBD_BOOLEAN_NOT 6-40 FBD_BOOLEAN_OR 6-35 FBD_BOOLEAN_XOR 6-38 FBD_COMPARE 4-8, 4-11, 4-15, 4-19, 4-23, 4-38 FBD_CONVERT 15-6, 15-9 FBD_COUNTER 2-29 FBD_LIMIT 4-27 FBD_LOGICAL 6-22, 6-25, 6-28, 6-30 FBD_MASK_EQUAL 4-33 FBD_MASKED_MOVE 6-8 FBD_MATH 5-6, 5-9, 5-12, 5-15, 5-19, 5-24, 14-7 FBD_MATH_ADVANCED 5-21, 5-26, 13-2, 13-4, 13-6, 13-8, 13-10, 13-12, 14-2, 14-4, 15-2, 15-4 FBD_ONESHOT 1-18, 1-20 FBD_TIMER 2-13, 2-16, 2-19 FBD_TRUNCATE 15-11 Instruo RES 2-33 MESSAGE 3-2
Publicao 1756-RM003F-PT-P - Maio 2002

G
grau 15-2

I
igual 4-7 Insero de String 17-9 instruo ABL 16-5 instruo ABS 5-26 instruo ACB 16-8 instruo ACL 16-10 instruo ACS 13-10 instruo ADD 5-5 instruo AFI 10-22 instruo AHL 16-12 instruo AND 6-21 instruo ARD 16-15 instruo ARL 16-18 instruo ASN 13-8 instruo ATN 13-12 instruo AVE 7-35 instruo AWA 16-22 instruo AWT 16-26 instruo BRK 11-5 instruo BSL 8-2 instruo BSR 8-5 instruo BTD 6-11 instruo BTDT 6-14

ndice

instruo CLR 6-17 instruo CMP 4-2 instruo CONCAT 17-3 instruo COP 7-25 instruo COS 13-4 instruo CPS 7-25 instruo CPT 5-2 Instruo CTD 2-25 Instruo CTU 2-22 Instruo CTUD 2-29 instruo DDT modo de busca 12-10 operandos 12-9 instruo de pausa de SFC 10-26 instruo de reset SFC 10-28 instruo DEG 15-2 instruo DELETE 17-5 instruo DIV 5-14 instruo do final da transio 10-24 instruo DTOS 18-7 instruo DTR 12-16 instruo EOT 10-24 instruo EQU 4-7 instruo FAL modo de operao 7-2 operandos 7-6 instruo FBC modo de busca 12-3 operandos 12-2 instruo FFL 8-8 instruo FFU 8-14 instruo FIND 17-7 instruo FLL 7-31 instruo FOR 11-2 instruo FRD 15-9 instruo FSC modo de operao 7-2 operandos 7-17 instruo GEQ 4-10 instruo GRT 4-14 Instruo GSV objetos 3-30 Operandos

3-29
instruo INSERT 17-9 instruo JMP 10-2 instruo JSR 10-4 instruo JXR estrutura de controle 10-14 Instruo LBL 10-2 instruo LEQ 4-18 instruo LES 4-22 instruo LFL 8-20 instruo LFU 8-26

instruo LIM 4-26 instruo LN 14-2 instruo LOG 14-4 instruo LOWER 18-13 instruo MCR 10-18 instruo MEQ 4-32 instruo MID 17-11 instruo MOD 5-18 instruo MOV 6-3 instruo MSG 3-13 Cdigos de Erro 3-7 estrutura 3-2 mtodo de comunicao 3-26 operando 3-2 instruo MUL 5-11 instruo MVM 6-5 instruo MVMT 6-8 instruo NEG 5-24 instruo NEQ 4-37 instruo NOP 10-23 instruo NOT 6-30 instruo ONS 1-11 instruo OR 6-24 instruo OSF 1-16 instruo OSFI 1-20 instruo OSR 1-14 instruo OSRI 1-18 instruo OTE 1-6 instruo OTL 1-7 instruo OTU 1-9 instruo PID ajuste 12-24 alarmes 12-25 bias de sada 12-34 configurao 12-23 converso de escala 12-25 feedforward 12-34 operandos 12-19 zona morta 12-33 instruo RAD 15-4 Instruo RES 2-33 Instruo RET 10-4, 11-6 Instruo RTO 2-9 Instruo RTOR 2-19 instruo RTOS 18-9 instruo SBR 10-4 instruo sempre falsa 10-22 instruo SFP 10-26 instruo SFR 10-28 instruo SIN 13-2 instruo SIZE 7-50 instruo SQI 9-2 instruo SQL 9-10 instruo SQR 5-21
Publicao 1756-RM003F-PT-P - Maio 2002

ndice

instruo SRT 7-40 instruo SSV objetos 3-30 operandos

3-29
instruo STOD 18-3, C-12 instruo STOR 18-5 instruo SUB 5-8 instruo SWPB 6-18 instruo TAN 13-6 instruo TND 10-16 instruo TOD 15-6 instruo TOF 2-5 Instruo TOFR 2-16 instruo TON 2-2 Instruo TONR 2-13 instruo TRN 15-11 instruo UID 10-20 instruo UIE 10-20 instruo UPPER 18-11 instruo XIO 1-4 instruo XOR 6-27 instruo XPY 14-6 Instrues for/break 11-1 seqenciador 9-1 instrues array bit 1-1 clculo 5-1 Comparao 4-1 contador 2-1 controle do programa 10-1 converso 15-1 converso de ASCII 18-1 converso de string 18-1 converso matemtica 15-1 deslocamento 8-1 entrada/sada 3-1 especiais 12-1 lgica 6-1 manipulao de string 17-1 manipulao de string ASCII 17-1 matemtica avanada 14-1 movimentao 6-1 porta serial 16-1 porta serial ASCII 16-1 TIMER 2-1 trigonomtricas 13-1 instrues ASCII ABL 16-5 ACB 16-8 ACL 16-10 AHL 16-12
Publicao 1756-RM003F-PT-P - Maio 2002

ARD 16-15 ARL 16-18 AWA 16-22 AWT 16-26 CONCAT 17-3 DELETE 17-5 DTOS 18-7 FIND 17-7 INSERT 17-9 LOWER 18-13 MID 17-11 RTOS 18-9 STOD 18-3, C-12 STOR 18-5 SWPB 6-18 UPPER 18-11 instrues binrias introduo 1-1 ONS 1-11 OSF 1-16 OSFI 1-20 OSR 1-14 OSRI 1-18 OTE 1-6 OTL 1-7 OTU 1-9 XIO 1-4 instrues da porta serial ABL 16-5 ACB 16-8 ACL 16-10 AHL 16-12 ARD 16-15 ARL 16-18 AWA 16-22 AWT 16-26 introduo 16-1 instrues de arquivo. Veja as instrues de array instrues de array arquivo/miscelnea 7-1 AVE 7-35 BSL 8-2 BSR 8-5 COP 7-25 CPS 7-25 DDT 12-9 deslocamento 8-1 FAL 7-6 FBC 12-2 FFL 8-8 FFU 8-14 FLL 7-31 FSC 7-17

ndice

LFL 8-20 LFU 8-26 modo de operao 7-2 seqenciador 9-1 SIZE 7-50 SQI 9-2 SQL 9-10 SQO 9-6 SRT 7-40 STD 7-45 instrues de clculo ABS 5-26 ADD 5-5 CPT 5-2 DIV 5-14 formato da expresso 5-4, 7-16 introduo 5-1 MOD 5-18 MUL 5-11 NEG 5-24 Operadores vlidos 5-3, 7-15 seqncia da operao 5-4, 7-16 SQR 5-21 SUB 5-8 instrues de comparao CMP 4-2 EQU 4-7 GEQ 4-10 GRT 4-14 Introduo 4-1 LEQ 4-18 LES 4-22 LIM 4-26 MEQ 4-32 NEQ 4-37 operadores vlidos 4-4, 7-22 instrues de controle do programa AFI 10-22 EOT 10-24 Introduo 10-1 JMP 10-2 JSR 10-4 LBL 10-2 MCR 10-18 NOP 10-23 RET 10-4 SBR 10-4 TND 10-16 UID 10-20 UIE 10-20 instrues de converso DEG 15-2 FRD 15-9 Introduo 15-1

RAD 15-4 TOD 15-6 TRN 15-11 instrues de converso da string STOD C-12 SWPB 6-18 instrues de converso de string DTOS 18-7 Introduo 18-1 LOWER 18-13 RTOS 18-9 STOD 18-3 STOR 18-5 UPPER 18-11 instrues de converso matemtica DEG 15-2 FRD 15-9 Introduo 15-1 RAD 15-4 TOD 15-6 TRN 15-11 instrues de deslocamento BSL 8-2 BSR 8-5 FFL 8-8 FFU 8-14 Introduo 8-1 LFL 8-20 LFU 8-26 instrues de entrada/sada GSV 3-29 Introduo 3-1 MSG 3-2 SSV 3-29 instrues de lgica AND 6-21 introduo 6-1 NOT 6-30 OR 6-24 XOR 6-27 instrues de manipulao de string CONCAT 17-3 DELETE 17-5 FIND 17-7 INSERT 17-9 introduo 17-1 MID 17-11 instrues de matemtica avanada introduo 14-1 LN 14-2 LOG 14-4 XPY 14-6 instrues de movimentao BTD 6-11
Publicao 1756-RM003F-PT-P - Maio 2002

ndice

BTDT 6-14 CLR 6-17 introduo 6-1 MOV 6-3 MVM 6-5 MVMT 6-8 instrues de movimentao/lgica BAND 6-33 BNOT 6-40 BOR 6-35 BXOR 6-38 instrues do array RES 2-33 instrues do contador CTD 2-25 CTU 2-22 CTUD 2-29 introduo 2-1 RES 2-33 instrues do seqenciador introduo 9-1 SQI 9-2 SQL 9-10 SQO 9-6 instrues do temporizador introduo 2-1 RES 2-33 RTO 2-9 RTOR 2-19 TOF 2-5 TOFR 2-16 TON 2-2 TONR 2-13 instrues especiais DDT 12-9 DTR 12-16 FBC 12-2 Introduo 12-1 PID 12-19 SFP 10-26 SFR 10-28 instrues for/break BRK 11-5 FOR 11-2 introduo 11-1 RET 11-6 instrues SQO 9-6 instrues STD 7-45 instrues trigonomtricas ACS 13-10 ASN 13-8 ATN 13-12 COS 13-4 introduo 13-1
Publicao 1756-RM003F-PT-P - Maio 2002

SIN 13-2 TAN 13-6 interrupo desabilitada 10-20 interrupo habilitada 10-20

L
label 10-2 lanamento de dados B-2 leitura ASCII 16-15 letra maisculas 18-11 letra minscula 18-13 limite 4-26 limpeza do buffer ASCII 16-10 linha de leitura ASCII 16-18 linhas handshake ASCII 16-12 Localizao de String 17-7 LOG base 10 14-4 natural 14-2 log neperiano 14-2 logaritmo de base de 10 14-4

M
maior ou igual a 4-10 maior que 4-14 mascarado igual a 4-32 mscaras 12-16 mdia 7-35 menor ou igual a 4-18 menor que 4-22 mensagem 3-2 modo ALL 7-2 modo de busca 12-3, 12-10 modo de operao 7-2 modo incremental 7-4 modo numerical 7-3 modos de temporizao B-5 monoestvel 1-11 monoestvel sensvel borda de descida 1-16 monoestvel sensvel borda de descida com entrada 1-20 monoestvel sensvel borda de subida

1-14
monoestvel sensvel borda de subida com entrada 1-18 movimentao 6-3 movimentao com mscara com arquivo-alvo 6-8 movimento com mscara 6-5 multiplicao 5-11

ndice

N
negao 5-24 NOT 6-30 NOT Booleano 6-40

retorno 10-4 return 11-6

S
sada do seqenciador 9-6 salto 10-2 salto para sub-rotina 10-4 sem operao 10-23 seno 13-2 seqncia da operao 4-5, 7-23 seqncia de execuo B-3 seqncia de operao 5-4, 7-16 String Mdia 17-11 String Para DINT 18-3, C-12 String Para REAL 18-5 sub-rotina 10-4 subtrao 5-8 swap de byte 6-18

O
objeto CONTROLLER 3-31 objeto CONTROLLERDEVICE 3-32 objeto CST 3-34 objeto DF1 3-35 objeto FAULTLOG 3-38 objeto MESSAGE 3-39 objeto MODULE 3-41 objeto MOTIONGROUP 3-42 objeto PROGRAM 3-43 objeto ROUTINE 3-44 objeto SERIALPORT 3-44 objeto TASK 3-46 objeto WALLCLOCKTIME 3-46 objetos CONTROLLER 3-31 CONTROLLERDEVICE 3-32 CST 3-34 DF1 3-35 FAULTLOG 3-38 Instruo GSV/SSV 3-30 MESSAGE 3-39 MODULE 3-41 MOTIONGROUP 3-42 PROGRAM 3-43 ROUTINE 3-44 SERIALPORT 3-44 TASK 3-46 WALLCLOCKTIME 3-46 obteno do valor do sistema 3-29 operadores 4-4, 5-3, 7-15, 7-22 OR 6-24 Ou exclusivo 6-27

T
tamanho em elementos 7-50 tangente 13-6 temporizador na desenergizao 2-5 temporizador na desenergizao com reset 2-16 temporizador na energizao 2-2 temporizador na energizao com reset

2-13
temporizador retentivo com reset 2-19 temporizador retentivo ligado 2-9 teste ASCII para linha buffer 16-5 texto estruturado CASE C-15 tipo de dados da string 16-3, 17-2, 18-2 tipos de dados de combinao A-1 tipos de dados de converso A-1 truncamento 15-11

P
preenchimento de arquivo 7-31 proporcional, integral e derivativa

V
valor absoluto 5-26 valores imediatos A-1

12-19

X
X elevado a Y 14-6

R
radianos 15-4 raiz quadrada 5-21 REAL Para String 18-9 rearme do controle mestre 10-18 reset 2-33

Z
zeramento 6-17 zona morta 12-33

Publicao 1756-RM003F-PT-P - Maio 2002

ndice

Publicao 1756-RM003F-PT-P - Maio 2002

Cdigos do Caractere ASCII


Caractere [ctrl-A] SOH [ctrl-B] STX [ctrl-C] ETX [ctrl-D] EOT [ctrl-E] ENQ [ctrl-F] ACK [ctrl-G] BEL [ctrl-H] BS [ctrl-I] HT [ctrl-J] LF [ctrl-K] VT [ctrl-L] FF [ctrl-M] CR [ctrl-N] SO [ctrl-O] SI [ctrl-P] DLE [ctrl-Q] DC1 [ctrl-R] DC2 [ctrl-S] DC3 [ctrl-T] DC4 [ctrl-U] NAK [ctrl-V] SYN [ctrl-W] ETB [ctrl-X] CAN [ctrl-Y] EM [ctrl-Z] SUB ctrl-[ ESC [ctrl-\] FS ctrl-] GS [ctrl-^] RS [ctrl-_] US ESPAO ! # $ % Dec 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 Hex $ 00 $ 01 $ 02 $ 03 $ 04 $ 05 $ 06 $ 07 $ 08 $ 09 $l ($0A) $0B $0C $r ($0D) $ 0E $ 0F $ 10 $ 11 $ 12 $ 13 $ 14 $ 15 $ 16 $ 17 $ 18 $ 19 $ 1A $ 1B $ 1C $ 1D $ 1E $ 1F $ 20 $ 21 $ 22 $ 23 $ 24 $ 25 Caractere & ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F g H I J K Dec 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 Hex $ 26 $ 27 $ 28 $ 29 $ 2A $ 2B $ 2C $ 2D $ 2E $ 2F $ 30 $ 31 $ 32 $ 33 $ 34 $ 35 $ 36 $ 37 $ 38 $ 39 $ 3A $ 3B $ 3C $ 3D $ 3E $ 3F $ 40 $ 41 $ 42 $ 43 $ 44 $ 45 $ 46 $ 47 $ 48 $ 49 $ 4A $ 4B Caractere L M N O P Q R S A U V W X Y Z [ \ ] ^ _ a B c D e F g H I J K L M N O P Q Dec 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 Hex $ 4C $ 4D $ 4E $ 4F $ 50 $ 51 $ 52 $ 53 $ 54 $ 55 $ 56 $ 57 $ 58 $ 59 $ 5A $ 5B $ 5C $ 5D $ 5E $ 5F $ 60 $ 61 $ 62 $ 63 $ 64 $ 65 $ 66 $ 67 $ 68 $ 69 $ 6A $ 6B $ 6C $ 6D $ 6E $ 6F $ 70 $ 71 Caractere R S A U V W x Y Z { | } ~ DEL Dec 114 115 116 117 118 119 120 121 122 123 124 125 126 127 Hex $ 72 $ 73 $ 74 $ 75 $ 76 $ 77 $ 78 $ 79 $ 7A $ 7B $ 7C $ 7D $ 7E $ 7F

[ctrl-@] NUL 0

Quarta Capa

Publicao 1756-RM003F-PT-P - Maio 2002 1


Substitui Publicao1756-RM003E-PT-P - Novembro de 2001

PN 957707-68
Copyright 2002 Rockwell Automation. Todos os direitos reservados. Impresso nos E.U.A.

Você também pode gostar