Você está na página 1de 418

Procedimentos Comuns dos Controladores Logix5000

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

Manual de Programao

Informaes Importantes ao Usurio

Por causa da diversidade de usos dos produtos descritos nesta publicao, os responsveis pela aplicao e uso destes produtos devem certificar-se de que todas as etapas necessrias foram seguidas para garantir que cada aplicao e uso cumpram todos os requisitos de desempenho e segurana, incluindo todas as leis, regulamentaes, cdigos e padres aplicveis. Sob nenhuma circunstncia, a Rockwell Automation 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 no assume a responsabilidade (inclusive 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, total ou parcial, deste manual sem a permisso por escrito da Rockwell Automation. Ao longo deste manual, usamos notas a fim de chamar 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: ADVERTNCIA Identifica as informaes sobre prticas ou circunstncias que possam causar ferimentos ou morte, danos propriedade ou perdas econmicas.

!
ATENO

!
IMPORTANTE

Identifica as informaes sobre prticas ou circunstncias que podem causar ferimentos ou a morte, danos propriedade ou perdas econmicas.

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

Resumo das Alteraes

Introduo Informaes atualizadas


Alterao:

A edio deste documento contm informaes novas e atualizadas.

O documento contm as seguintes alteraes:


Captulo/Apndice: 2

Informaes adicionais sobre como planejar as tarefas de um projeto incluindo a escolha da linguagem de programao apropriada para uma aplicao Procedimentos adicionais sobre como trabalhar com o organizador do controlador, criar tarefas, criar programas e criar rotina Novas informaes sobre como determinar um controle seqencial de funes para a mquina ou processo Novas informaes sobre como inserir e configurar um controle seqencial de funes usando o software RSLogix 5000 Novas informaes sobre como usar a linguagem de programao de texto estruturado incluindo atributos, expresses, instrues, construes e comentrios Informaes adicionais sobre como programar um diagrama de bloco de funes incluindo como usar as planilhas, definir a seqncia de execuo, determinar malhas, definir programas/controle de operao, inserir elementos e configurar elementos Informaes adicionais sobre como organizar e inserir a lgica ladder Novas informaes sobre como obter informaes sobre a memria para um controlador Informaes atualizadas sobre forar os valores de E/S Novas informaes sobre como forar e passar pelos elementos de SFC Novas informaes sobre o Carto Industrial CompactFlash 1784-CF64 (memria no voltil para o controlador ControlLogix 1756-L63) Procedimentos atualizados para o recurso de proteo da fonte da rotina 2 novos cdigos de falha grave Informaes adicionais sobre a Conformidade com IEC61131-3 relacionadas s linguagens de programao de texto estruturado e controle seqencial de funes Novas definies relacionadas ao controle seqencial de funes

4 5 6 7

8 9 18 23 24 A B Glossrio

Publicao 1756-PM001E-PT-P - Agosto 2002

Resumo das Alteraes

Notas:

Publicao 1756-PM001E-PT-P - Agosto 2002

Prefcio

Objetivo deste Manual

Este manual fornece orientaes para o desenvolvimento de projetos com controladores Logix5000. Ele fornece os procedimentos passo-a-passo sobre como realizar as seguintes tarefas que so comuns a todos os controladores Logix5000: Organizao de Tarefas, Programas e Rotinas Organizao de Tags Projeto de um Controle Seqencial de Fune Rotinas de Programas Teste de um Projeto Manipulao de Falhas

O termo controlador Logix5000 refere-se a qualquer controlador que seja baseado no sistema operacional Logix, como: Controladores CompactLogix Controladores ControlLogix Controladores FlexLogix Controladores SoftLogix

Este manual deve ser usado juntamente com outros manuais do usurio para seu tipo especfico de controlador. Os manuais do usurio abrangem tarefas como: Instalao e configurao de E/S Comunicao com dispositivos de vrias redes Manuteno da bateria

Quem Deve Usar Este Manual

Este manual deve ser usado pelas pessoas responsveis pela programao de aplicaes que usam os controladores Logix5000, como: engenheiros de software engenheiros de controle engenheiros de aplicao tcnicos de instrumentao

Publicao 1756-PM001E-PT-P - Agosto 2002

Prefcio

Quando Usar Este Manual

Use este manual quando realizar estas aes: desenvolvimento do cdigo bsico para sua aplicao modificao de uma aplicao existente realizao de testes isolados de sua aplicao medida que voc integrar sua aplicao com dispositivos de E/S, controladores e redes em seu sistema: Consulte o manual do usurio para seu tipo de controlador especfico. Use este manual como referncia, quando necessrio.

Como Usar Este Manual

Este manual dividido em tarefas bsicas que voc executa durante a programao de um controlador Logix5000. Cada captulo aborda uma tarefa. As tarefas esto organizadas na seqncia em que voc as executa normalmente. Ao usar este manual, voc ver alguns termos que esto formatados de forma diferente do restante do texto:

Texto: itlico negrito

Identifica: nome real do item que voc v na tela ou exemplo um verbete do Glossrio

Por exemplo: Clique com o boto direito do mouse em User-Defined Digite um nome

Significa: Clique com o boto direito do mouse no item chamado User-Defined. Se voc quiser informaes adicionais, consulte o nome no Glossrio. Se voc estiver visualizando o arquivo PDF do manual, clique em nome para consultar a entrada no glossrio.

courier

informaes que voc deve fornecer Clique com o boto direito do com base em sua aplicao (uma mouse em varivel) name_of_program uma tecla do teclado Pressione [Enter].

Voc deve identificar o programa especfico na sua aplicao. Geralmente, um nome ou varivel que voc definiu. Pressione a tecla Enter.

entre parnteses

Publicao 1756-PM001E-PT-P - Agosto 2002

Sumrio
Captulo 1 Gerenciamento dos Arquivos de Projeto
Criao de um Arquivo de Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Armazenamento das Mudanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2

Captulo 2 Organizao de Tarefas, Programas e Rotinas


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 Antes de Comear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 Definies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Tarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Tarefa Contnua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Tarefa Peridica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 Rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Rotina Principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Planejamento de Tarefas do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Definio das Funes do Projeto . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Atribuio de Cada Funo a uma Tarefa . . . . . . . . . . . . . . . . . . 2-6 Uso do Organizador do Controlador . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 Abertura ou Fechamento de uma Pasta . . . . . . . . . . . . . . . . . . . . 2-7 Abertura de uma Rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 Criao de uma Tarefa Peridica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 Criao de um Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 Criao de uma Rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 Configurao de uma Rotina como uma Rotina Principal. . . . . . . . 2-12 Verificao do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12

Captulo 3 Organizao de Tags


Planejamento de Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 Crie um Tipo de Dados Definidos Pelo Usurio . . . . . . . . . . . . . . . . 3-6 Notas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Criao de um Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 Criao de Tags Usando o Microsoft Excel . . . . . . . . . . . . . . . . . 3-9

Captulo 4 Projeto de um Controle Seqencial de Fune


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 O Que um Controle Seqencial de Funes? . . . . . . . . . . . . . . . . . 4-2 Como Projetar um SFC: Caractersticas Gerais . . . . . . . . . . . . . . . . . 4-4 Definio de Tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Seleo do Modo de Execuo do SFC . . . . . . . . . . . . . . . . . . . . . . . 4-6 Definio das Etapas do Processo . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 Siga Essas Orientaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 Estrutura SFC_STEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 Organizao de Etapas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 Caractersticas Gerais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 Seqncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
Publicao 1756-PM001E-PT-P - Agosto 2002

ii

Sumrio

Ramificao de Seleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ramificao Simultnea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conexo para uma Etapa Anterior . . . . . . . . . . . . . . . . . . . . . . . Adio de Aes para Cada Etapa. . . . . . . . . . . . . . . . . . . . . . . . . . . Como Voc Quer Usar a Ao? . . . . . . . . . . . . . . . . . . . . . . . . . Utilizao de uma Ao No Booleana . . . . . . . . . . . . . . . . . . . Utilizao de uma Ao Booleana. . . . . . . . . . . . . . . . . . . . . . . . Estrutura SFC_ACTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descrio de Cada Ao em Pseudocdigo . . . . . . . . . . . . . . . . . . . Seleo de um Qualificador para uma Ao . . . . . . . . . . . . . . . . . . . Definio das Condies de Transio . . . . . . . . . . . . . . . . . . . . . . . Tag de Transio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Como Voc Quer Programar a Transio? . . . . . . . . . . . . . . . . Utilizao de uma Expresso BOOL . . . . . . . . . . . . . . . . . . . . . Chamar uma Sub-rotina. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transio Aps um Tempo Especfico. . . . . . . . . . . . . . . . . . . . . . . Desenergizao de um Dispositivo ao Final de uma Etapa . . . . . . . Escolha uma Opo de ltima Varredura.. . . . . . . . . . . . . . . . . Use a Opo Dont Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Uso da Opo de Reset Programado . . . . . . . . . . . . . . . . . . . . . Uso da Opo de Reset Automtico. . . . . . . . . . . . . . . . . . . . . . Manter Algo Energizado seguindo Passo a Passo . . . . . . . . . . . . . . Como Voc Quer Controlar o Dispositivo?. . . . . . . . . . . . . . . . Use uma Ramificao Simultnea . . . . . . . . . . . . . . . . . . . . . . . . Como Armazenar e Resetar uma Ao. . . . . . . . . . . . . . . . . . . . Uso de Uma Etapa Grande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Finalizao do SFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ao Final do SFC, O Que Deseja Fazer?. . . . . . . . . . . . . . . . . . . Uso do Elemento Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reinicie (Reset) o SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estrutura SFC_STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Encadeamento de um SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Passagem de Parmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configurao ao Retornar para OS/JSR . . . . . . . . . . . . . . . . . . . . . . Pausa ou Resete de um SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagramas de Execuo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4-13 4-14 4-16 4-17 4-17 4-17 4-18 4-19 4-20 4-21 4-22 4-24 4-24 4-24 4-25 4-26 4-29 4-29 4-31 4-31 4-33 4-35 4-35 4-36 4-36 4-38 4-39 4-39 4-39 4-40 4-41 4-42 4-43 4-43 4-44 4-44

Captulo 5 Programao de um Controle Seqencial de Funes


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . Antes de Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adicione um Elemento SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adio e Conexo Manual de Elementos. . . . . . . . . . . . . . . . . . . Adio e Conexo Automtica de Elementos . . . . . . . . . . . . . . . Arrastar e Soltar os Elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . Criao de uma Ramificao Simultnea. . . . . . . . . . . . . . . . . . . . . . . Incio de uma Ramificao Simultnea . . . . . . . . . . . . . . . . . . . . . Finalizao de uma Ramificao Simultnea . . . . . . . . . . . . . . . . Criao de uma Ramificao de Seleo . . . . . . . . . . . . . . . . . . . . . . . 5-1 5-1 5-1 5-2 5-2 5-3 5-3 5-4 5-4 5-4 5-5

Publicao 1756-PM001E-PT-P - Agosto 2002

Sumrio

iii

Inicializao de uma Ramificao de Seleo . . . . . . . . . . . . . . . . 5-5 Finalizao de uma Ramificao de Seleo . . . . . . . . . . . . . . . . . 5-6 Defina as Prioridades de uma Ramificao de Seleo. . . . . . . . . . . . 5-7 Retorno para uma Etapa Anterior. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Conecte um Fio Etapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Esconder um Fio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Mostrar um Fio Escondido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Renomeao de uma Etapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Configurao de uma Etapa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Atribuio de um Tempo de Pr-programado para uma Etapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Configure os Alarmes para uma Etapa . . . . . . . . . . . . . . . . . . . . 5-11 Uso de uma Expresso para Calcular um Tempo . . . . . . . . . . . 5-11 Renomeao de uma Transio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Programao de uma Transio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Inserir uma Expresso BOOL . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Chame uma Sub-rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 Adio de uma Ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15 Renomeao de uma Ao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15 Configurao de uma Ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16 Alterao do Qualificador de uma Ao. . . . . . . . . . . . . . . . . . . 5-16 Clculo de um Tempo Pr-programado no Tempo de Execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16 Indicao de uma Ao como uma Ao Booleana. . . . . . . . . . 5-17 Programao de uma Ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Insero do Texto Estruturado . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Chame uma Sub-rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19 Atribuio da Seqncia de Execuo de Aes . . . . . . . . . . . . . . . 5-20 Documentao do SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21 Adio de Comentrios do Texto Estruturado . . . . . . . . . . . . . 5-21 Adio de uma Descrio do Tag . . . . . . . . . . . . . . . . . . . . . . . . 5-22 Adio de uma Caixa de Texto . . . . . . . . . . . . . . . . . . . . . . . . . . 5-23 Mostrar ou Esconder as Caixas de Textos ou Descries de Tag . . 5-24 Mostrar ou Esconder as Caixas de Textos ou Descries de Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24 Esconder uma Descrio Individual de Tag. . . . . . . . . . . . . . . . 5-24 Configurao da Execuo do SFC. . . . . . . . . . . . . . . . . . . . . . . . . . 5-26 Verificao da Rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-26

Captulo 6 Programa de Texto Estruturado Quando Usar Este Captulo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1


Sintaxe do Texto Estruturado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Atributos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Especificao de um atributo no retentivo . . . . . . . . . . . . . . . . . Atribuio de um Caracter ASCII para um string . . . . . . . . . . . . Expresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Uso dos operadores e funes aritmticas . . . . . . . . . . . . . . . . . . Uso dos operadores relacionados . . . . . . . . . . . . . . . . . . . . . . . . . Uso dos operadores lgicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 6-2 6-4 6-5 6-5 6-6 6-8 6-9

Publicao 1756-PM001E-PT-P - Agosto 2002

iv

Sumrio

Uso dos operadores bitwise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determinao da seqncia de execuo . . . . . . . . . . . . . . . . . . Instrues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Construes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CASE...OF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FOR...DO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WHILE...DO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REPEAT...UNTIL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comentrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6-10 6-11 6-11 6-12 6-13 6-17 6-20 6-23 6-26 6-29

Captulo 7 Programao de um Diagrama Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 Antes de Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 do Bloco de Funes

Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1 Identificao das Planilhas para a Rotina . . . . . . . . . . . . . . . . . . . . . . 7-2 Seleo dos Elementos do Bloco de Funes . . . . . . . . . . . . . . . . . . 7-3 Seleo de um Nome de Tag para um Elemento . . . . . . . . . . . . . . . . 7-3 Definio da Seqncia de Execuo . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 Reteno de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5 Seqncia de Execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7 Determinao de uma Malha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8 Determinao do Fluxo de Dados Entre Dois Blocos . . . . . . . . 7-9 Criao de um Atraso de Varredura . . . . . . . . . . . . . . . . . . . . . . 7-10 Resumo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11 Identificao de Todos os Conectores . . . . . . . . . . . . . . . . . . . . . . . 7-11 Definio do Controle de Programao/Operao . . . . . . . . . . . . . 7-12 Adio de uma Planilha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16 Adio de um Elemento do Bloco de Funes . . . . . . . . . . . . . . . . 7-16 Conexo de Elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18 Mostrar ou Esconder um Pino . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18 Conexo de Elementos Juntos . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19 Marcao de uma Conexo com o Indicador Considerar Dados Disponveis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19 Atribuio de um Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20 Criao e Atribuio de um Tag Novo. . . . . . . . . . . . . . . . . . . . 7-20 Renomeao do Tag de um Bloco de Funes . . . . . . . . . . . . . 7-21 Atribuio de um Tag Existente . . . . . . . . . . . . . . . . . . . . . . . . . 7-21 Atribuio de um Valor Imediato (Constante) . . . . . . . . . . . . . . . . . 7-22 Uso de uma IREF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22 Insero de um Valor no Tag de um Bloco . . . . . . . . . . . . . . . . 7-22 Conexo de Blocos com um OCON e ICON . . . . . . . . . . . . . . . . . 7-23 Adio de um OCON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23 Adio de um ICON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23 Verificao da Rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24

Captulo 8 Programao da Lgica Ladder Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1


Antes de Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
Publicao 1756-PM001E-PT-P - Agosto 2002

Sumrio

Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 Definies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 Instruo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 Ramificao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 Condio de Linha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3 Escrita da Lgica Ladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 Seleo das Instrues Exigidas . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 Organizao das Instrues de Entrada . . . . . . . . . . . . . . . . . . . . 8-6 Organizao das Instrues de Sada . . . . . . . . . . . . . . . . . . . . . . 8-7 Seleo de um Nome de Tag para um Operando . . . . . . . . . . . . 8-7 Insero da Lgica Ladder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-9 Acrscimo de um Elemento ao Local do Curso . . . . . . . . . . . . . 8-9 Arrastar e Soltar um Elemento . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 Atribuio de Operandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 Criao e Atribuio de um Tag Novo . . . . . . . . . . . . . . . . . . . . 8-10 Seleo de um Nome ou de um Tag Existente . . . . . . . . . . . . . 8-11 Arrastar um Tag da Janela de Tags . . . . . . . . . . . . . . . . . . . . . . . 8-12 Atribuio de um Valor Imediato (Constante). . . . . . . . . . . . . . 8-12 Verificao da Rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12

Captulo 9 Acesso aos Valores do Sistema


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . Como Usar Este Procedimentoo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monitorao de Flags de Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obteno e Energizao de Dados do Sistema . . . . . . . . . . . . . . . . . Determinao das Informaes sobre a Memria do Controlador . . Obteno das Informaes sobre a Memria do Controlador . . Seleo das Informaes sobre a Memria Desejada. . . . . . . . . . Converso de INTs em DINT . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1 9-1 9-1 9-3 9-6 9-7 9-8 9-9

Captulo 10 Atribuio de Aliases/ Smbolos


Tags com Aliases/Smbolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1 Exibio das Informaes de Alias/Smbolo . . . . . . . . . . . . . . . . . . 10-2 Atribuio de um Alias/Smbolo . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2

Captulo 11 Atribuio de um Endereo Indireto


Quando Atribuir um Endereo Indireto. . . . . . . . . . . . . . . . . . . . . . 11-1 Expresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3

Captulo 12 Buffer de E/S


Quando Usar o Buffer de E/S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 Buffer de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1

Captulo 13 Teste de um Projeto


Teste de um Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 Configurao de um Driver de Comunicao . . . . . . . . . . . . . . . . . 13-1
Publicao 1756-PM001E-PT-P - Agosto 2002

vi

Sumrio

Download de um Projeto para o Controlador . . . . . . . . . . . . . . . . . Seleo de um Modo para o Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Correo de Falhas Graves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Salvar Suas Alteraes Online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13-3 13-5 13-6 13-6

Captulo 14 Comunicao com Outro Controlador


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 Produo e Consumo de um Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 O Que Voc Precisa Fazer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 Organizao de Tags para Dados Produzidos ou Consumidos 14-3 Produo de um Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4 Consumo de um Tag Produzido . . . . . . . . . . . . . . . . . . . . . . . . . 14-5 Produo de Inteiros para um Controlador CLP-5C. . . . . . . . . 14-6 Produo de REALs para um Controlador CLP-5C . . . . . . . . . 14-7 Consumo de Inteiros de um Controlador CLP-5C . . . . . . . . . . 14-8 Ajuste para Limitaes de Largura da Banda . . . . . . . . . . . . . . . 14-9 Envio de uma Mensagem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-11 Envio de uma Mensagem para Controladores Mltiplos. . . . . . . . 14-13 Definio da Configurao da E/S. . . . . . . . . . . . . . . . . . . . . . 14-14 Definio dos Elementos Source e Destination. . . . . . . . . . . . 14-15 Criao do Tipo de Dados MESSAGE_CONFIGURATION. . . . . . . . . . . . . . . . . . . . . . 14-16 Criao do Array de Configurao . . . . . . . . . . . . . . . . . . . . . . 14-16 Obteno do Tamanho do Array Local . . . . . . . . . . . . . . . . . . 14-19 Carregamento das Propriedades para um Controlador . . . . . . 14-20 Configurao da Mensagem . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-21 Etapa para o Prximo Controlador . . . . . . . . . . . . . . . . . . . . . 14-22 Reincio da Sequncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-22

Captulo 15 Produo de uma Matriz Grande


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-1 Produo de uma Matriz Grande . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2

Captulo 16 Comunicao com um Dispositivo ASCII


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1 Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-1 Conexo do Dispositivo ASCII. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-2 Configurao da Porta Serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-3 Configurao do Protocolo do Usurio . . . . . . . . . . . . . . . . . . . . . . 16-5 Criao de Tipos de Dados do String . . . . . . . . . . . . . . . . . . . . . . . . 16-7 Leitura de Caracteres do Dispositivo . . . . . . . . . . . . . . . . . . . . . . . . 16-8 Envio de Caracteres para o Dispositivo . . . . . . . . . . . . . . . . . . . . . 16-13 Insero dos Caracteres ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-18

Publicao 1756-PM001E-PT-P - Agosto 2002

Sumrio

vii

Captulo 17 Caracteres do Processo ASCII


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 Separao de um Produto de um Cdigo de Barras. . . . . . . . . . . . . 17-2 Exame de um Cdigo de Barras . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-4 Criao do Tipo de Dados PRODUCT_INFO. . . . . . . . . . . . . 17-5 Busca de Caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-5 Identificao do Nmero da Linha . . . . . . . . . . . . . . . . . . . . . . . 17-7 Rejeio de Caracteres Ruins. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-8 Insero dos IDs de Produto e Nmeros da Linha . . . . . . . . . . 17-8 Verificao de Caracteres do Cdigo de Barras . . . . . . . . . . . . . . . . 17-9 Converso de um Valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-11 Decodificao de uma Mensagem ASCII . . . . . . . . . . . . . . . . . . . . 17-13 Construo de um String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-17

Captulo 18 Elementos da Lgica Force


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-1 Precaues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2 Habilitar Forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2 Desabilitar ou Remover um Force . . . . . . . . . . . . . . . . . . . . . . . 18-3 Verificar o Status do Force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4 Barra de Ferramentas On-line . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4 LED FORCE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5 Instruo GSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5 O Que Forar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 Quando Usar um Force de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 Forar um Valor de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-7 Forar um Valor de Sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-7 Adicionar um force de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-8 Quando Usar Step Through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 Uso de uma Opo Step Through para uma Transio ou Force de um Caminho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 Quando Usar um Force de SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 Force de uma Transio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 Force de um Caminho Simultneo . . . . . . . . . . . . . . . . . . . . . . 18-10 Adio de um Force SFC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-11 Remoo ou Desabilitao de Forces . . . . . . . . . . . . . . . . . . . . . . . 18-12 Remover um Force Individual . . . . . . . . . . . . . . . . . . . . . . . . . 18-12 Desabilitao de Todos os Forces de E/S e SFC . . . . . . . . . . 18-13 Remover Todos os Forces de E/S e SFC . . . . . . . . . . . . . . . . 18-13 Desabilitao de Todos os Forces de E/S . . . . . . . . . . . . . . . . 18-13 Remoo de Todos os Forces de E/S . . . . . . . . . . . . . . . . . . . 18-13 Desabilitao de Todos os Forces de SFC . . . . . . . . . . . . . . . . 18-13 Remoo de Todos os Forces de SFC . . . . . . . . . . . . . . . . . . . 18-13

Publicao 1756-PM001E-PT-P - Agosto 2002

viii

Sumrio

Captulo 19 Desenvolvimento de uma Rotina de Falha


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . 19-1 Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-1 Crie do Tipo de Dados FAULTRECORD. . . . . . . . . . . . . . . . . . . . 19-2 Criao de um Rotina de Falha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-3 Remova de uma Falha Grave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-4 Obteno do Tipo e Cdigo de Falha . . . . . . . . . . . . . . . . . . . . 19-4 Verificao para uma Falha Especfica . . . . . . . . . . . . . . . . . . . . 19-5 Remoo de Falhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-5 Remova de uma Falha Grave Durante a Pr-varredura . . . . . . . . . . 19-6 Identificao Quando o Controlador est em Pr-varredura . . 19-6 Obteno do Tipo e Cdigo de Falha . . . . . . . . . . . . . . . . . . . . 19-7 Verificao para uma Falha Especfica . . . . . . . . . . . . . . . . . . . . 19-8 Remoo de Falhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-9 Teste uma Rotina de Falha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-10

Captulo 20 Criao de uma Falha Grave Definida Pelo Usurio


Quando Usar este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-1 Criao de uma Falha Grave Definida pelo Usurio . . . . . . . . . . . . 20-1

Captulo 21 Monitorao de Falhas de Advertncia


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . 21-1 Monitorao de Falhas de Advertncia . . . . . . . . . . . . . . . . . . . . . . 21-1

Captulo 22 Desenvolvimento de uma Rotina de Energizao


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-1 Desenvolvimento de uma Rotina de Energizao . . . . . . . . . . . . . . 22-1

Captulo 23 Armazenamento e Carregamento de um Projeto Usando Memria No Voltil


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-1 Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 Seleo de um Controlador Que Possua Memria No Voltil. . . . 23-3 Cuidados com o Carto 1784-CF64 Industrial CompactFlash . . . . 23-4 Seleo de Quando Carregar uma Imagem. . . . . . . . . . . . . . . . . . . . 23-5 Armazenamento de um Projeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-5 Configurao da Operao de Armazenamento . . . . . . . . . . . . 23-6 Armazenamento do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-7 Armazenamento do Projeto Online . . . . . . . . . . . . . . . . . . . . . . 23-7 Carregamento de um Projeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-8 Verificao de um Carregamento . . . . . . . . . . . . . . . . . . . . . . . . . . 23-10 Limpeza da Memria No Voltil . . . . . . . . . . . . . . . . . . . . . . . . . . 23-11 Verifique a Opo de Carregamento de Imagem Atual. . . . . . 23-11 Alterao da Opo de Carregamento de Imagem . . . . . . . . . 23-11 Excluso do Projeto a Partir do Controlador. . . . . . . . . . . . . . 23-12 Armazenamento da Imagem Vazia . . . . . . . . . . . . . . . . . . . . . . 23-12

Publicao 1756-PM001E-PT-P - Agosto 2002

Sumrio

ix

Captulo 24 Proteo de um Projeto


Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-1 Uso da Proteo de Fonte da Rotina . . . . . . . . . . . . . . . . . . . . . . . . 24-1 Seleo do Nvel de Proteo para Cada Rotina . . . . . . . . . . . . 24-4 Seleo de um Nmero de Chaves Source . . . . . . . . . . . . . . . . . 24-4 Definio da Chave ou Chaves Source . . . . . . . . . . . . . . . . . . . . 24-5 Seleo de um Local de Arquivo Para Armazenar as Chaves Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5 Ativao do Recurso de Proteo da Fonte do RSLogix 5000 . 24-5 Criao de um Arquivo para as Chaves Source . . . . . . . . . . . . . 24-6 Proteo de uma Rotina com uma Chave Source . . . . . . . . . . . 24-7 Remoo do Acesso para uma Rotina Protegida . . . . . . . . . . . . 24-8 Desabilitao da Proteo da Fonte da Rotina. . . . . . . . . . . . . . 24-8 Obteno do Acesso a uma Rotina Protegida . . . . . . . . . . . . . . 24-9 Uso do Security Server RSI para Proteger um Projeto. . . . . . . . . . 24-11 Instalao do Software RSI Security Server . . . . . . . . . . . . . . . 24-11 Configurao de DCOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-11 Habilitao do Servidor de Segurana para o Software RSLogix 5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-12 Importao do Arquivos RSLogix5000Security.BAK . . . . . . . 24-12 Definio de Aes Globais para seus Usurios . . . . . . . . . . . 24-13 Definio das Aes de Projeto para seus Usurios . . . . . . . . 24-14 Adio de Usurios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-17 Adio de Grupos de Usurio. . . . . . . . . . . . . . . . . . . . . . . . . . 24-17 Atribuio do Acesso Global ao Software RSLogix 5000 . . . . 24-17 Atribuio de Aes de Projetos para o New RSLogix 5000 Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-18 Segurana de um Projeto RSLogix 5000. . . . . . . . . . . . . . . . . . 24-19 Atribuio do Acesso a um Projeto RSLogix 5000 . . . . . . . . . 24-19 Atualizao do Software RSLogix 5000, Se Necessrio. . . . . . 24-20

Apndice A Cdigos de Falha


Quando Usar Este Apndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 Cdigos de Falhas Graves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 Cdigos de Falha de Advertncia . . . . . . . . . . . . . . . . . . . . . . . . . . . A-3

Apndice B Conformidade IEC61131-3


Use Este Apndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sistema Operacional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definies de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linguagens de Programao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conjunto de Instrues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Portabilidade do Programa IEC61131-3. . . . . . . . . . . . . . . . . . . . . . . Tabelas de Conformidade com IEC . . . . . . . . . . . . . . . . . . . . . . . . . . B-1 B-1 B-2 B-2 B-3 B-3 B-3 B-5

Publicao 1756-PM001E-PT-P - Agosto 2002

Sumrio

Glossrio ndice Cdigos do Caracter ASCII Quarta Capa

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

Gerenciamento dos Arquivos de Projeto

Criao de um Arquivo de Projeto

Antes de voc programar um controlador Logix5000, voc deve criar um projeto: 1. Inicie o software RSLogix 5000. 2. No menu Arquivo selecione Novo.

3. 4. 5.

6. 7. 8.

42194

3. Selecione o tipo do controlador. 4. Digite um nome para o controlador. 5. Digite uma descrio das operaes que o controlador desempenha (opcional). 6. Selecione o tipo do chassi (nmero de ranhuras) que o controlador contm (no aplicvel para alguns controladores). 7. Selecione o tipo de ranhuras nas quais o controlador est instalado (no aplicvel para alguns controladores). 8. Para armazenar o arquivo numa pasta diferente (diferente do caminho padro Create in), clique em Browse e selecione uma pasta. 9. Clique em OK.

Publicao 1756-PM001E-PT-P - Agosto 2002

1-2

Gerenciamento dos Arquivos de Projeto

Quando voc cria um projeto, o nome do arquivo do projeto o mesmo do controlador.

nome do controlador

organizador do controlador

42371

Armazenamento das Mudanas

Assim que voc criar a lgica e fizer as mudanas de configurao, salve o projeto.
Para: salvar suas mudanas fazer uma cpia do projeto aberto, mas mantendo o nome do controlador existente fazer uma cpia do projeto e atribuir um nome diferente para o controlador Faa isto: No menu File, selecione Save. A. No menu File, selecione Save As . B. Digite um nome para o arquivo do projeto. Use sublinhas [ _ ] no lugar dos espaos. C. Clique em Save. A. No menu File, selecione Save As . B. Digite um nome para o arquivo do projeto. Use sublinhas [ _ ] no lugar dos espaos. C. Clique em Save. D. No organizador do controlador, clique com o boto direito sobre a pasta name_of_controller e selecione Properties. E. Digite um novo nome para o controlador. F. Clique em OK.

Nomeie download para o controlador, enquanto a documentao (descries, comentrios de linha) no so descarregadas para o controlador. Para mudar o nome, tamanho do chassi ou nmero da ranhura do controlador:

Publicao 1756-PM001E-PT-P - Agosto 2002

Gerenciamento dos Arquivos de Projeto

1-3

a. No organizador do controlador, clique com o boto direito sobre a pasta Controller name_of_controller e selecione Properties. b. Mude as informaes requisitadas. c. Clique em OK.

Publicao 1756-PM001E-PT-P - Agosto 2002

1-4

Gerenciamento dos Arquivos de Projeto

Notas:

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

Organizao de Tarefas, Programas e Rotinas

Quando Usar Este Procedimento

Use esse procedimento para: definir a organizao geral de seu projeto escolher uma linguagem de programao para cada funo principal da mquina ou processo. criar tarefas, programas e rotinas nos quais voc programe a lgica

Antes de Comear

Para determinar quais linguagens de programao esto instaladas na sua verso do software RSLogix 5000: 1. Inicie o software RSLogix 5000. 2. No menu Help, selecione About RSLogix 5000. Para adicionar uma linguagem de programao, consulte FlexLogix Selection Guide, publicao 1756-SG001.

Como Usar Este Procedimento

Para organizar o projeto em tarefas, programas e rotinas: Revise as Definies Planejamento de Tarefas do Projeto Uso do Organizador do Controlador Criao de uma Tarefa Peridica Criao de um Programa Criao de uma Rotina Configurao de uma Rotina como uma Rotina Principal Verificao do Projeto

Publicao 1756-PM001E-PT-P - Agosto 2002

2-2

Organizao de Tarefas, Programas e Rotinas

Definies

Antes de usar os procedimentos descritos neste captulo, familiarize-se com as definies a seguir.

Tarefa

Tarefa Contnua Programa

Rotina

Tarefa Peridica

Rotina Principal

Tarefa
Uma tarefa fornece informaes de programao e prioridade para um conjunto de um ou mais programas executados com base em critrios especficos. Uma vez que uma tarefa acionada (ativada), todos os programas atribudos (seqenciados) s tarefas so executados na ordem em que so mostrados no organizador do controlador.

Tarefa Contnua
A tarefa contnua executada em segundo plano. Qualquer tempo de CPU no alocado para outras operaes (como movimento, comunicaes e tarefas peridicas) usado para executar os programas na tarefa contnua. A tarefa contnua executada a todo o tempo. Quando a tarefa contnua conclui uma varredura completa, ela reinicia imediatamente. Um projeto no requer uma tarefa contnua. Se usada, deve haver apenas uma tarefa contnua.

Tarefa Peridica
Uma tarefa peridica realiza uma funo em uma taxa especfica. Qualquer que seja o tempo para a tarefa peridica expirar, a tarefa interrompe a tarefa contnua, executa uma vez e volta para o controle de onde a tarefa contnua parou.
Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tarefas, Programas e Rotinas

2-3

Voc pode configurar o perodo de tempo de 1 ms a 2000 s. O padro 10 ms. possvel criar at 32 tarefas peridicas e atribuir uma prioridade a cada uma: A tarefa com prioridade mais alta interrompe todas as tarefas com prioridade mais baixa. Uma tarefa com prioridade alta pode interromper tempos mltiplos de uma tarefa com prioridade menor. As tarefas com a mesma prioridade executam sobre uma base de tempo curto em intervalos de 1 ms. O exemplo a seguir exibe a execuo de um projeto com trs tarefas. Ordem de execuo da tarefa para um projeto com duas tarefas peridicas e uma tarefa contnua
Tipo de Tarefa: peridica de 20 ms peridica de 10 ms contnua Legenda: A tarefa executada. A tarefa interrompida (suspensa). Nvel de Prioridade: 5 10 nenhum (mais baixo) Tempo de Execuo: 2 ms 4 ms 24 ms

EXEMPLO
Tarefa: 1 2 3

Tarefa 1

Tarefa 2

Tarefa 3 5 tempo transcorrido (ms) 10 15 20 25 30 35 40 45 50

Programa
Um programa uma subdiviso de uma tarefa. Quando a tarefa acionada, os programas definidos na tarefa so executados at a concluso, do primeiro at o ltimo. Cada programa contm tags de programa, uma rotina principal, outras rotinas e uma rotina opcional de falha.

Publicao 1756-PM001E-PT-P - Agosto 2002

2-4

Organizao de Tarefas, Programas e Rotinas

Rotina
As rotinas fornecem o cdigo executvel para o projeto em um controlador (semelhante a um arquivo de programa em um controlador CLP ou SLC). Cada rotina usa uma linguagem de programao especfica, como a lgica ladder.

Rotina Principal
Quando um programa executa, sua rotina principal executa primeiro. Use a rotina principal para chamar (executar) outras rotinas (sub-rotinas). Para chamar uma outra rotina em um programa, use uma instruo JSR (Salto para Sub-rotina).

Planejamento de Tarefas do Projeto

Para identificar as tarefas, programas e rotinas para sua lgica, tome as decises a seguir: Definio das Funes do Projeto Atribuio de Cada Funo a uma Tarefa Essas decises, normalmente, so interativas. Aps tomar algumas decises iniciais, revise as decises para continuar a desenvolver o projeto.

Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tarefas, Programas e Rotinas

2-5

Definio das Funes do Projeto


Uma das primeiras decises no desenvolvimento de um projeto Logix5000 definir as funes (operaes) da mquina ou processo. 1. Identifique as funes principais (operaes) da mquina ou processo. 2. Para cada funo, escolha a linguagem de programao que melhor se ajusta s funes. Isso pode requerer que voc revise a lista de funes para obter vantagens de diferentes linguagens. Use qualquer combinao de linguagens no mesmo projeto.

Em geral, se a funo ou grupo de funes representar: execuo contnua ou paralela de mltiplas operaes (no seqenciadas) operaes baseadas em bit ou booleanos operaes lgicas complexas processamento de comunicao e mensagem intertravamento de mquina operaes em que a equipe de servio e manuteno pode ter que interpretar a fim de localizar as falhas da mquina ou processo. processo contnuo e controle do inversor controle da malha clculos em fluxo de circuito gerenciamento de mltiplas operaes em alto nvel seqncias repetitivas de operaes processo por batelada controle de posicionamento usando texto estruturado estado de operaes da mquina operaes matemticas complexas matriz especializada ou tabela de processamento de malha manipulao da string ASCII ou processamento de protocolo

Use esta linguagem: lgica ladder

diagrama do bloco de funes

Use um controle seqencial de funes (SFC)

texto estruturado

Publicao 1756-PM001E-PT-P - Agosto 2002

2-6

Organizao de Tarefas, Programas e Rotinas

Atribuio de Cada Funo a uma Tarefa


Uma vez definidas as funes (operaes) do projeto, use as diferentes opes de tarefas para iniciar a execuo de cada funo. 1. Determine o tempo de disparo para cada funo (quando a funo deve executar). 2. Com base no tempo de disparo da funo, escolha uma tarefa em que executar a funo:
Se uma funo executar: Ento:

em uma taxa constante (p. ex.: executa uma atribua a funo a uma rotina em uma malha PID a cada 100 ms) tarefa peridica muito rpido quando um evento especfico ou conjunto de condies ocorrer a todo o tempo quando uma falha ocorrer no for grave o bastante para que o controlador desligue atribua a funo a uma rotina de falha Consulte Desenvolvimento de uma Rotina de Falha na pgina 19-1. atribua a funo a uma rotina nas tarefas contnuas (isto , MainTask)

Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tarefas, Programas e Rotinas

2-7

Uso do Organizador do Controlador

O organizador do controlador fornece uma caracterstica geral de um projeto. medida que desenvolver o projeto, necessrio realizar as seguintes aes comuns: Abertura ou Fechamento de uma Pasta Abertura de uma Rotina

Abertura ou Fechamento de uma Pasta


O organizador do controlador armazena os diferentes componentes de um projeto em pastas. Cada pasta pode conter outras pastas.

Para abrir uma pasta e exibir seus contedos (expandir), faa o seguinte: Clique duas vezes na pasta. Selecione a pasta e pressione a tecla . Clique no sinal de +.

Para fechar uma pasta e esconder seus contedos (desfazer), faa o seguinte: Clique duas vezes na pasta. Selecione a pasta e pressione a tecla . Clique no sinal de .

Publicao 1756-PM001E-PT-P - Agosto 2002

2-8

Organizao de Tarefas, Programas e Rotinas

Abertura de uma Rotina

Para abrir uma rotina, clique duas vezes na rotina. Se a rotina estiver desabilitada, no possvel abri-la.

Se uma rotina falhar ao abrir, verifique a linha de status do software RSLogix 5000:
Se a linha de status diz: Failed to open the routine editor not installed Source not available Ento: O editor para a linguagem da rotina no est instalado. Para uma lista de pacotes de software disponvel, consulte: FlexLogix Selection Guide, publicao 1756-SG001 Para abrir a rotina, necessrio sua chave source. Consulte Uso da Proteo de Fonte da Rotina na pgina 24-1. possvel: executar a rotina exibir as propriedades da rotina identificar as referncias cruzadas para a lgica na rotina

IMPORTANTE

Se a fonte da rotina no estiver disponvel, no exporte projeto. Uma exportao de arquivo (.L5K) contm apenas rotinas nas quais o cdigo fonte estiver disponvel. Se voc exportar um projeto no qual o cdigo fonte no estiver disponvel para todas as rotinas, voc no estar capacitado a restaurar o projeto inteiro.

Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tarefas, Programas e Rotinas

2-9

Criao de uma Tarefa Peridica

Uma tarefa peridica realiza uma funo ou funes em uma taxa especfica. ATENO Certifique-se de que o perodo de tempo seja maior do que a soma dos tempos de execuo de todos os programas definidos para a tarefa. Se o controlador detectar que a inicializao de uma tarefa peridica ocorre para uma tarefa que j est operando, uma falha de advertncia ocorre.

1.

1. No organizador do controlador, clique com o boto direito na pasta Tasks e escolha New Task.

2.

3. 4.

5. 6.

2. Na caixa de texto Name, digite um nome para a tarefa. 3. Na lista Type, selecione Periodic (padro). 4. Na lista Watchdog, insira o tempo de watchdog para a tarefa.

Publicao 1756-PM001E-PT-P - Agosto 2002

2-10

Organizao de Tarefas, Programas e Rotinas

5. Na caixa de texto Rate, digite a taxa em que quer executar a tarefa. 6. Na caixa de texto Priority, digite a prioridade para a tarefa. 7. Selecione

Criao de um Programa

Cada tarefa requer pelo menos um programa. possvel criar mltiplos programas para uma tarefa.

1.

1. No organizador do controlador, clique com o boto direito na tarefa que executar o programa e escolha New Program.

2.

2. Na caixa de texto Name, insira um nome para o programa. 3. Selecione

Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tarefas, Programas e Rotinas

2-11

Criao de uma Rotina

Cada programa requer pelo menos uma rotina. Use uma rotina para executar a lgica.

1.

1. No organizador do controlador, clique com o boto direito no programa que executar a rotina e selecione New Routine.

2.

3.

2. Na caixa de texto Name, insira um nome para a rotina. 3. Na lista Type, escolha a linguagem de programao para a rotina 4. Selecione

Publicao 1756-PM001E-PT-P - Agosto 2002

2-12

Organizao de Tarefas, Programas e Rotinas

Configurao de uma Rotina como uma Rotina Principal

Cada programa requer uma rotina principal. A rotina principal executa sempre que o programa executa.

1.

1. No organizador do controlador, clique com o boto direito no programa que executar a rotina e selecione Properties.

2.

3.

2. Clique na guia Configuration. 3. Na lista Main, escolha o nome da rotina. 4. Selecione

Verificao do Projeto

medida em que programa o projeto, verifique periodicamente seu trabalho: 1. Na barra de ferramentas na parte superior da janela do RSLogix 5000, clique em 2. Se algum erro for listado na parte inferior da janela: a. V para o primeiro erro ou aviso, pressione [F4]. b. Corrija o erro de acordo com a descrio na janela Results. c. V para a etapa 1. 3. Para fechar a janela Results, pressione [Alt] + [1].

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

Organizao de Tags

Planejamento de Tags

Os controladores Logix5000 armazenam os dados em tags (em contraste com arquivos de dados fixos que so endereados numericamente). Com os tags, voc pode organizar os seus dados para refletir suas mquinas documentar (atravs dos nomes de tags) suas aplicaes bem como desenvolv-las Quando voc cria um tag, voc atribui as seguintes propriedades:
Tabela 3.1 Propriedades do Tag Propriedade: escopo nome tipo de dados Descrio: define quais rotinas podem acessar os dados identifica os dados (Tags com diferentes usos podem ter o mesmo nome) define a organizao dos dados, bem como um bit, nmeros inteiros, ou nmeros de ponto flutuante

A tabela seguinte esboa os tipos mais comuns de dados e quando usar cada um.
Tabela 3.2 Tipos de Dados Para: dispositivo analgico em modo de ponto flutuante dispositivo analgico em modo de nmero inteiro (para amostras de taxas muito rpidas) Caracteres ASCII bit Counter ponto de E/S digital nmero de ponto flutuante inteiro (nmero total) sequenciador temporizador REAL INT grupo BOOL COUNTER BOOL REAL DINT CONTROL TIMER Selecione:

Publicao 1756-PM001E-PT-P - Agosto 2002

3-2

Organizao de Tags

Utilize a tabela seguinte para organizar seus dados:


Para: um grupo de atributos comuns que so usados por mais de uma mquina um grupo de dados com o mesmo tipo de dados valor nico dispositivo de E/S Utilize tipo de dados definido pelo usurio matriz tag de um nico elemento Referncia Consulte Crie um Tipo de Dados Definidos Pelo Usurio na pgina 3-6. Consulte Criao de um Tag na pgina 3-8.

Os seguintes exemplos mostram os diferentes nveis nos quais voc pode organizar seus dados: Tags de um nico elemento, na pgina 3-3 Matriz de dimenso nica, na pgina 3-3 Matriz de duas dimenses, na pgina 3-4 Tipo de dados definidos pelo usurio que armazena uma receita, na pgina 3-5 Um tipo de dados definido pelo usurio que armazene os dados que so necessrios para executar uma mquina, na pgina 3-6

Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tags

3-3

EXEMPLO

Tags de um nico elemento

dispositivo de E/S analgica valor inteiro bit de armazenamento Contador temporizador dispositivo de E/S digital
42364

EXEMPLO

Matriz de dimenso nica Neste exemplo, uma instruo de temporizador simples realiza a contagem do tempo da durao de diversas etapas. Cada etapa requer um valor pr-selecionado diferente. Como todos os valores tm o mesmo tipo de dados (DINTs), uma matriz usada.

Para expandir a matriz e mostrar seus elementos, clique no sinal de +.

Para desfazer uma matriz e esconder seus elementos, clique no sinal . elementos de timer_presets

Esta matriz contm seis elementos do tipo de dados DINT. seis elementos DINTs

42367

Publicao 1756-PM001E-PT-P - Agosto 2002

3-4

Organizao de Tags

EXEMPLO

Matriz de duas dimenses Uma furadeira pode fazer de um a cinco furos em um livro. A mquina requer um valor para a posio de cada furo, desde a borda do livro. Para organizar os valores em configuraes, uma matriz de duas dimenses usada. O primeiro subscrito indica o furo para o qual o valor corresponde e o segundo subscrito indica quantos furos sero feitos (de um a cinco).
subscrito da segunda dimenso 0 subscrito da primeira dimenso 0 1 2 3 4 5 1.5 2.5 8.0 1.25 5.5 9.75 1.25 3.5 7.5 9.75 1.25 3.5 5.5 7.5 9.75 Posio do primeiro furo a partir da borda do livro Posio do segundo furo a partir da borda do livro Posio do terceiro furo a partir da borda do livro Posio do quarto furo a partir da borda do livro Posio do quinto furo a partir da borda do livro 1 2 3 4 5 Descrio

Na janela Tags, os elementos esto na ordem descrita abaixo.

Esta matriz contm uma grade de elementos de duas dimenses, de seis em seis elementos.

42367

A dimenso mais direita incrementa em seu valor mximo e recomea.

Quando a dimenso mais direita recomea, a dimenso esquerda incrementa em um.

Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tags

3-5

EXEMPLO

Tipo de dados definidos pelo usurio que armazena uma receita Em um sistema de vrios tanques, cada tanque pode executar uma variedade de receitas. Como a receita precisa de uma mistura de tipos de dados (REAL, DINT, BOOL, etc.) um tipo de dados definido pelo usurio usado.
Nome (do tipo de dados): TANK Nome do Membro temp deadband step step_time preset mix REAL REAL DINT TIMER DINT[6] BOOL Tipo de Dados

Uma matriz que baseada neste tipo de dados ser semelhante a:

matriz de receitas

primeira receita

Esta matriz contm trs elementos do tipo de dados TANK.

membros da receita

42368

Publicao 1756-PM001E-PT-P - Agosto 2002

3-6

Organizao de Tags

EXEMPLO

Um tipo de dados definido pelo usurio que armazene os dados que so necessrios para executar uma mquina Como diversas estaes de perfurao requisitam a seguinte combinao de dados, um tipo de dados definido pelo usurio criado.
Nome (do tipo de dados): DRILL_STATION Nome do Membro part_advance hole_sequence tipo hole_position profundidade total_depth BOOL CONTROL DINT REAL REAL REAL Tipo de Dados

Uma matriz que baseada neste tipo de dados ser semelhante a:

matriz de dois furos

primeiro furo

Esta matriz contm quatro elementos do tipo de dados DRILL_STATION.

dados para o furo

42583

Crie um Tipo de Dados Definidos Pelo Usurio

Para criar um tipo de dados definido pelo usurio:

Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tags

3-7

42195

1. Clique com o boto direito do mouse em User-Defined e selecione New Data Type.

2. 3.

42196

4.

5.

6.

7.

2. Insira um nome para o tipo de dados. 3. Insira uma descrio (opcional). 4. Insira o nome do primeiro membro. 5. Especifique o tipo de dados para cada membro. Consulte Tabela 3.2 a pgina 3-1. Para uma matriz, use o seguinte formato: data_type[x] onde:

Publicao 1756-PM001E-PT-P - Agosto 2002

3-8

Organizao de Tags

x o nmero de elementos na matriz. EXEMPLO Se o membro for uma matriz de seis DINTs, digite DINT[6].

6. Para mostrar o(s) valor (es) do membro em um estilo diferente (radical), selecione o estilo. 7. Insira uma descrio para o membro (opcional). 8. Clique em Apply. 9. Mais membros?
Se: Sim No Repita as etapas 4. a 8. Clique em OK. Ento:

Notas:
Se voc incluir membros que representam dispositivos de E/S, a lgica ladder deve ser usada para copiar os dados entre os membros na estrutura e os tags de E/S correpondentes. Consulte Buffer de E/S na pgina 12-1. Ao usar os tipos de dados BOOL, SINT ou INT, coloque os membros que usam o mesmo tipo de dados em seqncia:
mais eficiente BOOL BOOL BOOL DINT DINT menos eficiente BOOL DINT BOOL DINT BOOL

Criao de um Tag

Para criar um tag (incluindo uma matriz): 1. A partir do menu Logic, selecione Edit Tags.

Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tags

3-9

2.

42350

3.

4.

5.

2. Selecione um escopo para o tag:


Se voc for usar o tag: em mais de um programa dentro do projeto como um produtor ou como um consumidor em uma mensagem em somente um programa dentro do projeto programa que usar o tag Ento selecione: name_of_controller (controlador)

3. Insira um nome para o controlador. 4. Insira o tipo de dados:


Se o tag for: no for uma matriz (arquivo) for uma dimenso de matriz for matriz de duas dimenses for matriz de trs dimenses Ento digite: data_type data_type[x] data_type[x,y] data_type[x,y,z]

onde: data_type o tipo de dados que o tag ou matriz armazena. Consulte Tabela 3.2 a pgina 3-1. x o nmero de elementos na primeira dimenso. y o nmero de elementos na segunda dimenso. z o nmero de elementos na terceira dimenso. 5. Insira uma descrio (opcional).

Criao de Tags Usando o Microsoft Excel

Voc tambm pode usar um software de planilha eletrnica como o Microsoft Excel para criar e editar tags. Isto permite que voc aproveite os recursos de edio no software de planilha eletrnica.

Publicao 1756-PM001E-PT-P - Agosto 2002

3-10

Organizao de Tags

Para criar tags usando o Excel: 1. Abra o projeto do RSLogix 5000. 2. Crie diversos tags. (Isto ajuda a formatar a planilha eletrnica do Excel). 3. A partir do menu Tools, selecione Export Tags.

Os tags so armazenados nesta pasta.

4.

5.

42361

4. Observe o nome do arquivo exportado (project_name-Tags). 5. Selecione o uso dos tags a serem exportados. Se voc selecionou Program Tags, selecione os tags de programa a serem exportados. 6. Clique em Export.

Publicao 1756-PM001E-PT-P - Agosto 2002

Organizao de Tags

3-11

7. No software Microsoft Excel, abra o arquivo de exportao.

TYPE TAG TYPE TAG TAG TAG TAG TAG

SCOPE SCOPE MainProgram MainProgram MainProgram MainProgram MainProgram

NAME in_cycle NAME conveyor_alarm conveyor_on drill_1 hole_position machine_on

DESCRIPTION DESCRIPTION

DATATYPE DINT DATATYPE BOOL BOOL DRILL_STATION REAL[6,6] BOOL

8.

9.

10.

11.

8. Insira TAG 9. Identifique o uso (escopo) do tag:


Se o uso (escopo) for: do controlador do programa Ento: Deixe esta clula vazia. Insira o nome do programa

10. Insira o nome do tag. 11. Insira o tipo de dados do tag. 12. Repita as etapas 8. a 11. para cada tag adicional. 13. Armazene e feche o arquivo. (Mantenha-o com formato CSV.) 14. No software RSLogix 5000, a partir do menu Tools, selecione Import Tags. 15. Selecione o arquivo que contm os tags e clique Import. Os tags so importados para o projeto. A seo inferior da janela do RSLogix 5000 mostra os resultados. Voc pode configurar os tags para se comunicarem diretamente com outros controladores:
Para: enviar dados pela placa de fundo do chassi e pela rede ControlNet a um intervalo especfico receber dados de outro controlador pela placa de fundo do chassi ou pela rede ControlNet a um intervalo especfico Utilize tag produzido tag consumido

Publicao 1756-PM001E-PT-P - Agosto 2002

3-12

Organizao de Tags

Se voc planeja usar tags produzidos e consumidos, voc deve seguir as orientaes adicionais, medida em que organiza seus tags. Consulte Comunicao com Outro Controlador na pgina 14-1. Os seguintes tipos de dados inteiros tambm esto disponveis: SINT (inteiro de 8 bits) INT (inteiro de 16 bits) Tipicamente, as instrues convertem valores SINT ou INT para um tipo de dados otimizados (geralmente um valor DINT ou REAL) durante a operao. Como isto requer tempo e memria adicionais, minimize o uso de tipo de dados SINT e INT.

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

Projeto de um Controle Seqencial de Fune

Quando Usar Este Procedimento

Use esse procedimento para projetar um controle seqencial de funes (SFC) para o processo ou sistema. Um SFC semelhante a um fluxograma de seu processo. Ele define as etapas ou estados pelos quais o sistema evolui. Use o SFC para: organizar a especificao funcional para seu sistema programar e controlar o sistema como uma srie de etapas e transies Ao usar um SFC para especificar o processo, voc tem as vantagens: Como um SFC uma representao grfica do processo, ele mais fcil organizar e ler que uma verso de texto. Alm disso, o software RSLogix 5000 permite: adicionar observaes para esclarecer as etapas ou capturar informaes importantes sobre o seu uso mais tarde imprimir o SFC para compartilhar as informaes com outros indivduos Como os controladores Logix5000 suportam SFCs, no h necessidade de entrar na especificao uma segunda vez. Voc programa o sistema enquanto o especifica. Ao usar um SFC para programar seu processo, voc tem as vantagens: diviso grfica de processos em suas principais partes de lgica (etapas) execuo repetida mais rpida de partes individuais da lgica display de tela mais simples tempo reduzido para projetar e depurar o programa localizao de falhas mais rpida e mais fcil acesso direto ao ponto na lgica em que a mquina falhou atualizaes e aperfeioamentos fceis

Como Usar Este Procedimento

Normalmente, o desenvolvimento de um SFC um processo interativo. Se preferir, possvel usar o software RSLogix 5000 para destacar e aprimorar o SFC. Para os procedimentos especficos sobre como inserir um SFC, consulte Programao de um Controle Seqencial de Funes na pgina 5-1.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-2

Projeto de um Controle Seqencial de Fune

O Que um Controle Seqencial de Funes?

Um controle seqencial de funes (SFC) semelhante a um fluxograma. Ele usa as etapas e transies para realizar operaes e aes especficas. Figura 4.1 e Figura 4.2 so exemplos que mostram os elementos de um SFC:
Figura 4.1 Exemplo de SFC Uma etapa representa uma funo principal do processo. Ela contm as aes que ocorrem em um tempo especfico, fase ou estao. Uma ao uma das funes que a etapa realiza.

Uma transio uma condio verdadeira ou falsa que informa o SFC quando ir para a prxima etapa. Um qualificador determina quando uma ao comea e quando ela pra.

Uma ramificao simultnea executa mais de 1 etapa ao mesmo tempo.

Mostra ou esconde uma ao.

A instruo JSR chama uma sub-rotina. (continuao na prxima pgina)

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-3

Figura 4.2 Exemplo de SFC (continuao da pgina anterior) Uma ramificao de seleo escolhe entre diferentes caminhos de execuo.

Uma caixa de texto permite a adio de texto descritivo ou observaes ao SFC.

Um comando stop permite parar e esperar por um comando para reiniciar. Um fio conecta um elemento a um outro em qualquer lugar do grfico. Esse fio leva voc para a etapa conveyor na Figura 4.1 na pgina anterior.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-4

Projeto de um Controle Seqencial de Fune

Como Projetar um SFC: Caractersticas Gerais

Para projetar um SFC, voc executa as tarefas: Definio de Tarefas Seleo do Modo de Execuo do SFC Definio das Etapas do Processo Organizao de Etapas Adio de Aes para Cada Etapa Descrio de Cada Ao em Pseudocdigo Seleo de um Qualificador para uma Ao Definio das Condies de Transio Transio Aps um Tempo Especfico Desenergizao de um Dispositivo ao Final de uma Etapa Manter Algo Energizado seguindo Passo a Passo Finalizao do SFC Encadeamento de um SFC Configurao ao Retornar para OS/JSR Pausa ou Resete de um SFC As sees restantes deste captulo descrevem em detalhes como realizar cada tarefa.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-5

Definio de Tarefas

A primeira etapa no desenvolvimento de um SFC separar a configurao e regulagem de dispositivos de comandos para esses dispositivos. Os controladores Logix5000 permitem a diviso do projeto em uma tarefa contnua e em mltiplas tarefa peridicas. 1. Organize seu projeto de acordo com:
Essas funes: configurar e regular dispositivos comandar um dispositivo para um estado especfico seqenciar a execuo do processo V aqui: tarefa peridica SFC em tarefa contnua

2. Para essas funes que ficam na tarefa peridica, agrupe as funes de acordo com as taxas de atualizao semelhantes. Crie uma tarefa peridica para cada taxa de atualizao. Por exemplo, os dispositivos em 2 estados podem requerer atualizaes mais rpidas que as malhas PID. Use tarefas peridicas separadas para cada um. O exemplo a seguir mostra um projeto que usa duas tarefas peridicas para regular motores, vlvulas e malhas de temperatura. O projeto usa um SFC para controlar o processo. Definio de Tarefas

EXEMPLO

Essa tarefa (peridica) usa os diagramas do bloco de funes para ligar ou desligar os motores e abrir ou fechar as vlvulas. O SFC em MainTask comanda o estado para cada dispositivo. Os diagramas do bloco de funes energizam e mantm esse estado.

Essa tarefa (peridica) usa os diagramas do bloco de funes para configurar e regular as malhas de temperatura. O SFC em MainTask comanda as temperaturas. Os diagramas do bloco de funes energizam e mantm essas temperaturas.

Essa tarefa (contnua) executa o controle seqencial de funes (SFC). O SFC comanda o estado ou temperatura especficos para cada dispositivo ou malha de temperatura.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-6

Projeto de um Controle Seqencial de Fune

Seleo do Modo de Execuo do SFC

Para executar um SFC, configure-o como rotina principal para um programa ou chame-o como uma sub-rotina.
Se: O SFC apenas uma rotina no programa. O SFC chama todas as outras rotinas do programa. O programa requer que outras rotinas executem independente do SFC. O SFC usa as aes booleanas. Ento: Configure o SFC como rotina principal para o programa. 1. Configure uma outra rotina como rotina principal para o programa. 2. Use a rotina principal para chamar o SFC como uma sub-rotina.

Se o SFC usa aes booleanas, outra lgica deve operar independente do SFC e monitorar os bits de status do SFC.

Definio das Etapas do Processo

Uma etapa representa uma funo principal de seu processo. Ela contm os eventos que ocorrem em um tempo particular, fase ou estao.

Etapa Uma etapa executa de forma contnua at a transio informar o controlador para ir para a etapa seguinte.
Faa isto...

Aes

COMBI-

e faa isso

Transio Se for verdadeiro, v para a etapa seguinte. Se for falso, repita a etapa anterior.

Uma transio termina uma etapa. A transio define as condies fsicas que devem ocorrer ou alterar para ir para a etapa seguinte.

Siga Essas Orientaes


Assim que definir as etapas do processo, siga essas orientaes: Comece com etapas grandes e refine as etapas em diversas etapas.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-7

primeira etapa Pinte

segunda etapa Transfer_In

terceira etapa Transfer_In

Pinte

Paint_Flow

Air_Flow

Elec_Charg

Remova Transfr_Out

Remova Transfr_Out

Ao abrir uma rotina de SFC pela primeira vez, ela contm uma etapa e transio inicial. Use essa etapa para iniciar o processo.
etapa inicial

transio inicial

Para identificar uma etapa, procure uma alterao fsica no sistema, como por exemplo, uma nova parte que esteja em posio, uma temperatura alcanada, um tempo pr-programado alcanado ou uma seleo de resposta que ocorra. A etapa s aes que substituem antes da alterao. Pare quando as etapas estiverem em incrementos significativos. Por exemplo:
Essa organizao de etapas: produce_solution set_mode, close_outlet, set_temperature, open_inlet_a, close_inlet_a, set_timer, reset_temperature, open_outlet, reset_mode preset_tank, add_ingredient_a, cook, drain : provavelmente grande demais provavelmente pequena demais

provavelmente correta

Publicao 1756-PM001E-PT-P - Agosto 2002

4-8

Projeto de um Controle Seqencial de Fune

Estrutura SFC_STEP
Cada etapa usa um tag para fornecer as informaes sobre a etapa. Acesse essas informaes atravs da caixa de dilogo Step Properties ou pela guia Monitor Tags na janela Tags :
Se voc quiser: determinar a quanto tempo a etapa foi ativada (milissegundos) Marque ou energize esse membro: T Tipo de dados: DINT Detalhes: Quando uma etapa se torna ativa, o valor do Temporizador (T) reseta e comea a contagem crescente em milissegundos. O temporizador continua a contagem crescente at a etapa ficar inativa, no importando o valor de Preset (PRE). Insira o tempo no membro Preset (PRE). Quando o Temporizador (T) alcanar o valor de Preset, o bit Done (DN) acende e permanece energizado at a etapa se tornar ativa novamente. Como opo, insira uma expresso numrica que calcule o tempo no tempo de execuo. DN BOOL Quando o Temporizador (T) alcanar o valor de Preset (PRE), o bit Done (DN) acende e permanece energizado at a etapa se tornar ativa novamente. Insira o tempo no membro LimitLow. Se a etapa ficar inativa antes do Temporizador (T) alcanar o valor LimitLow, o bit AlarmLow acende. O bit AlarmLow fica energizado at que seja resetado. Para usar a funo de alarme, energize (marque) o bit AlarmEnable (AlarmEn). Como opo, insira uma expresso numrica que calcule o tempo no tempo de execuo. AlarmEn AlarmLow BOOL BOOL Para usar os bits de alarme, energize (marque) o bit AlarmEnable (AlarmEn). Se a etapa ficar inativa antes do Temporizador (T) alcanar o valor LimitLow, o bit AlarmLow acende. O bit fica energizado at reset-lo. Para usar os bits de alarme, energize (marque) o bit AlarmEnable (AlarmEn). Insira o tempo no membro LimitHigh. Se o temporizador (T) alcanar o valor LimitHigh, o bit AlarmHigh energiza. O bit AlarmHigh fica energizado at que seja resetado. Para usar os bits de alarme, energize (marque) o bit AlarmEnable (AlarmEn). Como opo, insira uma expresso numrica que calcule o tempo no tempo de execuo. AlarmEn AlarmHigh BOOL BOOL Para usar a funo de alarme, energize (marque) o bit AlarmEnable (AlarmEn). Se o Temporizador (T) alcanar o valor LimitHigh, o bit AlarmHigh energiza. O bit AlarmHigh fica energizado at que seja resetado. Para usar os bits de alarme, energize (marque) o bit AlarmEnable (AlarmEn).

PRE sinalizar quando a etapa foi ativada para um comprimento de tempo especfico (milissegundos)

DINT

sinalizar se a etapa no executou tempo suficiente

LimitLow

DINT

sinalizar se a etapa estiver executando em um tempo muito longo

LimitHigh

DINT

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-9

Se voc quiser:

Marque ou energize esse membro:

Tipo de dados: BOOL

Detalhes: O bit X est energizado durante todo o tempo que a etapa estiver ativa (em execuo). Normalmente, recomendamos usar uma ao com um qualificador N Non-Stored para a realizao disso.

fazer algo enquanto a etapa est X ativa (incluindo a primeira e a ltima varredura)

fazer algo uma vez quando a etapa se tornar ativa

FS

BOOL

o bit FS est energizado durante a primeira varredura da etapa. Geralmente, recomendamos usar uma ao com um qualificador P1 Pulse (Borda de Crescente) para a realizao disso.

fazer algo enquanto a etapa est SA ativa, exceto na primeira e ltima varredura fazer algo uma vez na ltima varredura da etapa LS

BOOL

O bit SA est energizado quando a etapa est ativa com exceo durante a primeira e ltima varredura da etapa. O bit LS est energizado durante a ltima varredura da etapa. Use esse bit somente se fizer isso: Na caixa de dilogo Controller Properties, na guia SFC Execution, defina Last Scan of Active Step para Dont Scan ou Programmatic reset. Normalmente, recomendamos usar uma ao com um qualificador P0 Pulse (Borda de Descida) para a realizao disso.

BOOL

determinar a meta de uma instruo SFR (SFC Reset)

Reset

BOOL

Uma instruo SFR (SFC Reset) reseta SFC para uma etapa ou pra aquilo que a instruo especifica. O bit Reset indica para qual etapa ou interrupo SFC comear a executar novamente. Uma vez que SFC executar, o bit Reset desenergiza. Use isso para fins de diagnstico. O controlador desenergiza esse valor somente quando voc escolhe Restart Position de Restart at initial step e o controlador altera os modos ou experincias de um ciclo de alimentao. Use isso para fins de diagnstico.

determinar o tempo mximo que TMax uma etapa ficou ativa durante qualquer uma dessas execues determinar se o valor de OV Temporizador (T) inverte para um valor negativo determinar quantas vezes a etapa se tornou ativa Count

DINT

BOOL

DINT

Isso no uma contagem de varreduras da etapa. A contagem incrementa cada vez que a etapa se torna ativa. Ela incrementa novamente somente aps a etapa ficar inativa e ativa novamente. A contagem reseta somente se configurar o SFC para reiniciar etapa inicial. Com essa configurao, ela reseta quando o controlador alterar de um modo de programao para um modo de operao.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-10

Projeto de um Controle Seqencial de Fune

Se voc quiser: usar um tag para vrios bits de status desta etapa

Marque ou energize esse membro: Status

Tipo de dados: DINT Reset AlarmHigh AlarmLow AlarmEn OV DN LS SA FS X 22 23 24 25 26 27 28 29 30 31

Detalhes: Para esse membro: Use esse bit:

O diagrama a seguir mostra a relao dos bits X, FS, SA e LS.

step_name.X

step_name.FS

step_name.SA

step_name.LS primeira varredura ltima varredura

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-11

Organizao de Etapas

Uma vez definidas as etapas do processo, organize-as em seqncias, ramificaes simultneas, ramificaes de seleo ou malhas.

Caractersticas Gerais
Para: Executar 1 ou mais etapas em seqncia: A primeira executa de forma repetida. Ento a prxima executa de forma repetida. Use essa estrutura: Seqncia Com essas consideraes: O SFC verifica a transio ao final da etapa: Se verdadeira, o SFC vai para a etapa seguinte. Se falsa, o SFC repete a etapa.

Selecione etapas alternativas ou grupos de etapas de acordo com as condies da lgica Execute uma etapa ou etapas ou pule a etapa ou etapas dependendo das condies lgicas

Ramificao de Seleo

Est OK para um caminho que no tenha etapas e somente uma transio. Isso permite que o SFC pule a ramificao de seleo. Por padro, o SFC verifica da esquerda para a direita as transies que comeam cada caminho. Ele pega o primeiro caminho verdadeiro. Se nenhuma transio for verdadeira, o FC repete a etapa anterior. O software RSLogix 5000 permite a alterao da ordem em que o SFC verifica as transies.

Executar 2 ou mais etapas ao mesmo tempo. Todos os caminhos devem terminar antes da continuao do SFC

Ramificao Simultnea

Uma nica transio termina a ramificao. O SFC verifica a transio final depois que a ltima etapa em cada caminho executou pelo menos uma vez. Se a transio for falsa, o SFC repete a etapa anterior.

Voltar a malha para uma etapa anterior

Conexo para uma Etapa Anterior

Conecte o fio etapa ou ramificao simultnea para qual deseja ir. No conecte , fora da ou entre uma ramificao simultnea.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-12

Projeto de um Controle Seqencial de Fune

Aqui, h alguns exemplos de estruturas de SFC para diferentes situaes:


Situao Exemplo: As estaes 45 e 46 de uma linha de montagem trabalham nas peas de forma simultnea. Quando as estaes esto prontas, as peas voltam para a estao 1. Soluo Exemplo: Ramificao Simultnea

45

46

Dependendo do cdigo de construo, uma estao vai perfurar ou polir.

Ramificao de Seleo

Perfurar

Polir

Para simplificar a programao, quero separar a comunicao e transferncias em bloco de outra lgica de controle. Todas ocorrem ao mesmo tempo.
Controle

Ramificao Simultnea

Comunicao

BTs

Em uma rea de tratamento de calor, a temperatura acelera em uma taxa especfica, mantm essa temperatura para uma durao especfica e esfria a uma temperatura especfica.

Seqncia
Rampa Manter Esfriar

Na estao 12, a mquina perfura, bate e arremessa uma pea. As etapas ocorrem uma aps a outra.

Seqncia
Perfurar Bater Arremessar

A etapa 12 inspeciona um processo para a combinao correta de substncias qumicas. Se OK, ento continue as etapas restantes. Se no estiver OK, v para a parte superior do SFC e depure o sistema.

Fio
comeo do SFC Etapa 12

No est OK OK

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-13

Seqncia
Uma seqncia um grupo de etapas que executam uma aps a outra.
faa isto...

DEPOIS isso

DEPOIS isso

Para um diagrama detalhado da execuo de uma seqncia de etapas, consulte a Figura 4.5 na pgina 4-45. Para suprimir o estado de uma transio, consulte Elementos da Lgica Force na pgina 18-1.

Ramificao de Seleo
Uma ramificao de seleo representa uma escolha entre um caminho (etapa ou grupo de etapas) ou um outro caminho (isto ., uma estrutura OR). Somente um caminho executa. Por padro, o SFC verifica as transies da esquerda para a direita. O SFC considera o primeiro caminho verdadeiro. O software RSLogix 5000 permite a alterao da ordem em que o SFC verifica as transies. Consulte Programao de um Controle Seqencial de Funes na pgina 5-1.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-14

Projeto de um Controle Seqencial de Fune

nica linha horizontal cada caminho possui sua prpria transio faa isto... OU isso OU isso

Esse caminho pula a estrutura (no faz nada).

nica linha horizontal

Para um diagrama detalhado da execuo de uma ramificao de seleo, consulte a Figura 4.7 na pgina 4-47. Para suprimir o estado de uma transio, consulte Elementos da Lgica Force na pgina 18-1.

Ramificao Simultnea
Uma ramificao simultnea representa caminhos (etapas ou grupo de etapas) que ocorrem ao mesmo tempo (isto , uma estrutura AND). Todos os caminhos executam. Todos os caminhos devem terminar antes de continuar com o SFC. O SFC verifica a transio final depois que a ltima etapa de cada caminho executou pelo menos uma vez.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-15

uma transio para todos os caminhos

faa isto...

E isso

E isso

dupla linha horizontal

linha dupla horizontal

Para um diagrama detalhado da execuo de uma ramificao simultnea, consulte a Figura 4.6 na pgina 4-46. Para suprimir a ramificao e evitar que um caminho execute, consulte Elementos da Lgica Force na pgina 18-1.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-16

Projeto de um Controle Seqencial de Fune

Conexo para uma Etapa Anterior


Alm de conectar as etapas em seqncias, ramificaes simultneas e ramificaes de seleo, possvel conectar uma etapa a um ponto anterior no SFC. Isso faz voc: voltar a malha e repetir as etapas retornar ao incio do SFC e comear Por exemplo:

... v para essa etapa

Se a condio for verdadeira

malha simples que repete o SFC inteiro

caminho de uma seleo que retorna para uma etapa anterior

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-17

Adio de Aes para Cada Etapa

Use aos para dividir uma etapa em diferentes funes que a etapa realiza, como comandar um motor, configurar um estado de uma vlvula ou colocar um grupo de dispositivos em um modo especfico.

Etapa
Faa isto...

Aes

COMBINAO
e faa isso

Como Voc Quer Usar a Ao?


H dois tipos de aes:
Se voc quiser: executar o texto estruturado diretamente no SFC chamar uma sub-rotina usar a opo de reset automtico para resetar os dados ao sair da etapa energizar somente um bit e programar outra lgica para monitorar o bit para determinar quando executar. Utilizao de uma Ao Booleana Ento: Utilizao de uma Ao No Booleana

Utilizao de uma Ao No Booleana


Uma ao no booleana contm a lgica para a ao. Ela usa o texto estruturado para executar as atribuies e instrues ou chamar uma sub-rotina. Com as aes no booleanas, possvel tambm ter a opo de ps-varredura (resetar automaticamente) as atribuies e instrues antes de sair da etapa: Durante a ps-varredura o controlador executa as atribuies e instrues como se todas as condies fossem falsas. As ps-varreduras do controlador so incorporadas ao texto estruturado e a qualquer sub-rotina que a ao chame. Para resetar automaticamente as atribuies e instrues, consulte Desenergizao de um Dispositivo ao Final de uma Etapa na pgina 4-29.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-18

Projeto de um Controle Seqencial de Fune

Para programar uma ao no booleana, voc possui as seguintes opes:


Se voc quiser: executar a lgica sem rotinas adicionais usar as atribuies, construes e instrues de texto estruturado Incorpore o texto estruturado. Por exemplo: Ento:

Quando a etapa S_Complete_the_Batch estiver ativa , a ao S_Open_Outlet executa. A ao energiza o tag Outlet.ProgCommand igual a 1, o qual abre a vlvula de sada. reutilizar a lgica em mltiplas etapas usar uma outra linguagem para programar a ao, como uma lgica ladder encadear um SFC Quando a etapa S_Complete_the_Batch est ativa, a ao S_Open_Outlet executa. A ao chama a rotina Open_Outlet. Rotina Open_Outlet Chame uma sub-rotina Por exemplo:

Quando a rotina Open_Outlet executa, a instruo OTE energiza o tag Outlet.ProgCommand igual a 1, o qual abre a vlvula de sada.

No possvel reutilizar uma ao no booleana no mesmo SFC exceto para resetar uma ao armazenada. Somente um exemplo de uma ao no booleana especfica permitido por SFC.

Utilizao de uma Ao Booleana


Uma ao booleana no contm nenhuma lgica para a ao. Ela simplesmente energiza um bit em seu tag (estrutura SFC_ACTION). Para realizar a ao, outra lgica deve monitorar o bit e executar quando estiver energizado. Com as aes booleanas, voc precisa resetar manualmente as atribuies e instrues associadas ao. Como no h vnculo entre a ao e a lgica que realiza a ao, a opo de reset automtico no interfere nas aes booleanas. Aqui est um exemplo:

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-19

Quando a etapa S_Complete_the_Batch est ativa, a ao S_Open_Outlet executa. Quando a ao est ativa, seu bit Q energiza.

Uma rotina de lgica ladder monitora o bit Q (S_Open_Outlet.Q). Quando o bit Q est energizado, a instruo JSR executa e abre a vlvula de sada.

possvel reutilizar a ao booleana mltiplas vezes no mesmo SFC.

Estrutura SFC_ACTION
Cada ao (no-booleana e booleana) usa um tag para fornecer as informaes sobre a ao. Acesse essas informaes atravs da caixa de dilogo Action Properties ou pela guia Monitor Tags na janela Tags:
Se voc quiser: determinar quando a ao est ativa Verifique ou energize esse membro: Q Tipo de Dados: BOOL Se a ao for: booleana Detalhes: O status do bit Q depende se ao booleana ou no-booleana: Ento o bit Q : energizado (1) o tempo inteiro em que a ao est ativa, incluindo a ltima varredura da ao energizado (1) enquanto a ao est ativa, mas desenergizado (0) na ltima varredura da ao

no booleana

Para usar um bit a fim de determinar quando uma ao est ativa, use o bit Q. A determinar a quanto tempo uma ao ficou ativa (milissegundos) T BOOL DINT O bit A est energizado o tempo todo que a ao est ativa. Quando uma ao se torna ativa, o valor de Temporizador (T) reseta e comea a contagem crescente em milissegundos. O temporizador continua contagem crescente at a ao ficar inativa no importando o valor de Preset (PRE). Insira o limite de tempo ou de atraso no membro Preset (PRE). A ao comea ou pra quando o Temporizador (T) alcana o valor de Preset. Como uma opo, insira uma expresso numrica que calcule o tempo no tempo de execuo.

usar um desses qualificadores PRE com base no tempo: L, SL, D, DS, SD

DINT

Publicao 1756-PM001E-PT-P - Agosto 2002

4-20

Projeto de um Controle Seqencial de Fune

Se voc quiser: determinar quantas vezes uma ao se tornou ativa

Verifique ou energize esse membro: Count

Tipo de Dados: DINT

Detalhes: Isso no uma contagem de varreduras da ao. A contagem incrementa cada vez que a ao se torna ativa. Ela apenas incrementa novamente aps a ao ficar inativa e ativa novamente de novo. A contagem reseta somente se configurar o SFC para reiniciar na etapa inicial. Com essa configurao, ela reseta quando o controlador alterar de um modo de programao para um modo de operao. Para esse membro: Use esse bit: Q A 30 31

usar um tag para vrios bits de status bits da ao

Status

DINT

Descrio de Cada Ao em Pseudocdigo

Para organizar a lgica para uma ao, descreva primeiro a ao em pseudocdigo. Se no estiver familiarizado com o pseudocdigo, siga essas orientaes: Use uma srie de declaraes curtas que descrevam exatamente o que deve acontecer. Use os termos ou smbolos como: se, ento, caso contrrio, at, e, ou, =, >, <. Coloque as declaraes na ordem em que elas devem executar. Se necessrio, nomeie as condies para verificar a primeira (quando 1) e ento a ao segunda (qual 2). Insira o pseudocdigo no corpo da ao. Aps inserir o pseudocdigo, possvel: Aperfeioar o pseudocdigo para que ele execute como texto estruturado. Usar o pseudocdigo para planejar a lgica e deixar o pseudocdigo como comentrios. Como feito o download de todos os comentrios de texto estruturado para o controlador, o pseudocdigo est sempre disponvel como documentao para a ao. Para converter o pseudocdigo para os comentrios de texto estruturado, adicione os seguintes smbolos de comentrio:
Para um comentrio: em uma nica linha que ocupe mais de uma linha Use um desses formatos: //comment (*start of comment . . . end of comment*) /*start of comment . . . end of comment*/

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-21

Seleo de um Qualificador para uma Ao

Cada ao (no-booleana e booleana) usa um qualificador para determinar quando ela comea e pra. O qualificador inicial Non-Stored. A ao comea quando a etapa ativada e pra quando a etapa desativada. Para alterar quando uma ao comea ou pra, atribua um qualificador diferente:

Se voc quer que a ao:

E:

Ento atribua esse qualificador: N P1 L S SL

Que significa: No-armazen ado Pulso (Borda Crescente) Tempo Limitado Armazenado Tempo Armazenado e Limitado Tempo de Atraso Atrasado e Armazenado Tempo Armazenado e de Atraso Pulso Pulso (Borda de Descida) Reset

comece quando a etapa ativada

pare quando a etapa est desativada execute somente uma vez pare antes da etapa ser desativada ou quando a etapa est desativada fique ativa at que a funo Reset desenergize a ao fique ativa at que a funo Reset desenergize a ao ou um tempo especfico expire, mesmo se a etapa estiver desativada

comece um tempo especfico aps a etapa ser ativada e a etapa ainda estiver ativa

pare quando a etapa for desativada fique ativa at que a funo Reset desenergize a ao

D DS SD

comece um tempo especfico aps a etapa ser ativada, mesmo se a etapa for desativada antes desse tempo execute uma vez quando a etapa for ativada comece quando a etapa for desativada desenergize (resete) uma ao armazenada: S Armazenado SL Armazenado e Tempo Limitado DS Com Atraso e Armazenado SD Armazenado e Tempo de Atraso

fique ativa at que a funo Reset desenergize a ao execute uma vez quando a etapa desativada execute somente uma vez

P P0 R

Publicao 1756-PM001E-PT-P - Agosto 2002

4-22

Projeto de um Controle Seqencial de Fune

Definio das Condies de Transio

A transio consiste das condies fsicas que devem ocorrer ou alterao para ir para a etapa seguinte.

A transio informa o SFC quando ir para a etapa seguinte.

transio

Se verdadeiro, v para a etapa seguinte. Se falso, repita a etapa anterior.

As transies ocorrem nos seguintes lugares:


Para essa estrutura: seqncia Uma transio est entre cada etapa. Certifique se:

etapas transies

ramificao de seleo

As transies esto dentro das linhas horizontais.

transies

ramificao simultnea

As transies esto fora das linhas horizontais.

transies

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-23

Aqui, h aqui dois exemplos de transies: EXEMPLO Voc quer: a. Ligar 2 compressores. Quando um compressor ligado, o bit Device1State energizado. b. Quando os compressores forem ligados, v para a etapa seguinte. Soluo:
Init Init_Done compressor_1.Device1State = on (1) e compressor_2.Device1State = on (1)

EXEMPLO

Se voc quiser: a. Empacotar o produto. Quando o produto est no pacote, o bit package_done energiza. b. Empacotar o produto em 8 por caixa ou 16 por caixa. Soluo:
Pacote

carton_8 Pack_8 package_done = on (1) e carton_size = 8 Pack_16

carton_16

package_done = on (1) e carton_size = 16

Para suprimir o estado de uma transio, consulte Elementos da Lgica Force na pgina 18-1.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-24

Projeto de um Controle Seqencial de Fune

Tag de Transio
Cada transio usa um tag BOOL para representar o estado verdadeiro ou falso da transio.
Se a transio for: verdadeira falsa 1 0 O valor : E: O SFC vai para a etapa seguinte. O SFC continua a executar a etapa atual.

Como Voc Quer Programar a Transio?


Para programar a transio, voc tem essas opes:
Se voc quiser: inserir as condies como uma expresso em texto estruturado inserir as condies como instrues em uma outra rotina usar a mesma lgica para mltiplas transies Ento: Utilizao de uma Expresso BOOL Chamar uma Sub-rotina

Utilizao de uma Expresso BOOL


A maneira mais simples de programar a transio inserir as condies como uma expresso BOOL em texto estruturado. 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. Aqui esto alguns exemplos de expresses BOOL.

bool_tag_a

bool_tag_a & bool_tag_b

dint_tag_a > 8

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-25

Chamar uma Sub-rotina


Para usar uma sub-rotina para controlar uma transio, inclua uma instruo EOT (Fim da Transio) na sub-rotina. A instruo EOT retorna o estado das condies para a transio, conforme mostrado abaixo.

3 1
JSR - ou -

Se condition_1 & condition_2 & condition_3 ento BOOL_tag := 1; Else BOOL_tag := 0; End_if;

EOT(BOOL_tag);

1. Chame uma sub-rotina. 2. Verifique as condies necessrias. Quando as condies forem verdadeiras, energize um tag BOOL. 3. Use uma instruo EOT para definir o estado da transio igual ao valor do tag BOOL. Quando o tag BOOL est energizado (verdadeiro), a transio verdadeira.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-26

Projeto de um Controle Seqencial de Fune

Transio Aps um Tempo Especfico

Cada etapa do SFC inclui um temporizador de milissegundo que opera sempre que a etapa est ativa. Use o temporizador para: sinalizar quando a etapa operou para um tempo necessrio e quando SFC deve ir para a etapa seguinte sinalizar quando a etapa operou demais e quando SFC deve ir para uma etapa de erro
Figura 4.3 O diagrama a seguir mostra a ao do temporizador e bits associados de uma etapa:

step_name.X

step_name.PRE

step_name.T

step_name.DN

1 Tabela4.1

Descrio: 1. A etapa se torna ativa. Bit X energiza. Temporizador (T) comea a incrementar. 2. O temporizador alcana o valor de Preset (PRE) da etapa. Bit DN energiza. O temporizador continua a incrementar. 3. A Etapa se torna inativa. Bit X desenergiza. O temporizador retm seu valor. DN permanece energizado. 4. A etapa se torna ativa. Bit X energiza. O temporizador desenergiza e comea a incrementar. Bit DN desenergiza.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-27

Figura 4.4 O diagrama a seguir mostra a ao dos alarmes baixo e alto para uma etapa:

step_name.AlarmEn step_name.X step_name.LimitHigh step_name.LimitLow step_name.T

step_name.AlarmHigh

step_name.AlarmLow

Tabela4.2 Descrio: 1. AlarmEn est energizado. Para usar os alarmes baixo e alto energize esse bit. Energize o bit pela caixa de dilogo de propriedades ou pelo tag durante a etapa. 2. A etapa se torna ativa. Bit X energiza. O temporizador (T) comea a incrementar. 3. A Etapa se torna inativa. Bit X desenergiza. O temporizador (T) retm seu valor. Como o T (temporizador) inferior a LimitLow, o bit AlarmLow energiza. 4. A etapa se torna ativa. Bit X energiza. O temporizador desenergiza e comea a incrementar. AlarmLow fica energizado. (Voc precisa desenergiz-lo manualmente) 5. O temporizador alcana o valor de LimitHigh da etapa. AlarmHigh energiza. O temporizador continua a incrementar. 6. A Etapa se torna inativa. Bit X desenergiza. O temporizador retm seu valor. AlarmHigh fica energizado. (Voc precisa desenergiz-lo manualmente)

Publicao 1756-PM001E-PT-P - Agosto 2002

4-28

Projeto de um Controle Seqencial de Fune

Aqui, est um exemplo do uso do tempo pr-programado de uma etapa. EXEMPLO A especificao funcional diz: a. Cozinhe os ingredientes em um tanque durante 20 segundos. b. Esvazie o tanque. Soluo:
Cozinhe Cook_Done Empty_Tank Cook.PRE = 20000 ms Cook.DN = on (1)

Aqui, est um exemplo do uso do tempo de alarme alto de uma etapa. EXEMPLO A especificao funcional diz: a. Abrigue 8 dispositivos. b. Se todos os 8 dispositivos no forem abrigados em 20 segundos, o sistema pra. Soluo:
Init Init.LimitHigh = 20000 ms

Init_OK Step_1 Shutdown

Init_Not_OK

Init.AlarmHigh

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-29

Desenergizao de um Dispositivo ao Final de uma Etapa

Quando o SFC deixa a etapa, voc tem diversas opes sobre como desenergizar os dispositivos que a etapa energizou.

Reset Programado

Reset Automtico

use a lgica para desenergizar os dados

deixe o controlador desenergizar automaticamente os dados

Cada opo requer que voc faa as seguintes escolhas: 1. Escolha uma opo de ltima varredura. 2. Com base na opo de ltima varredura, desenvolva a lgica para que a ltima varredura devolva os dados para os valores desejados.

Escolha uma Opo de ltima Varredura.


Na ltima varredura de cada etapa, voc tem as seguintes opes. A opo que escolher aplica-se a todas as etapas em todos os SFCs desse controlador.
Se voc quiser: controlar que dados desenergizar E na ltima varredura de uma etapa: Ento: Consulte: pgina 4-31 pgina 4-31

Execute somente as aes P e P0 e use-as para Use a Opo Dont Scan desenergizar os dados requeridos. Executar todas as aes e usar essas opes para desenergizar os dados requeridos: bits de status da etapa ou ao para a condio lgica aes P e P0 Uso da Opo de Reset Programado

deixar o controlador desenergizar os dados

Uso da Opo de Reset Automtico

pgina 4-33

Publicao 1756-PM001E-PT-P - Agosto 2002

4-30

Projeto de um Controle Seqencial de Fune

A tabela a seguir compara as diferentes opes para o manuseio da ltima varredura de uma etapa:
Caracterstica: Durante a ltima varredura de uma etapa, essa opo faz o seguinte: Dont scan (No realiza a varredura) aes de execuo Somente as aes P e P0 executam. Elas executam de acordo com a sua lgica. Reset Programado Todas as aes executam de acordo com sua lgica. Reset Automtico As aes P e P0 executam de acordo com sua lgica. Todas as outras aes executam em modo de ps-varredura. Na prxima varredura da rotina, as aes P e P0 executam em modo de ps-varredura. Os dados revertem aos seus valores para a ps-varredura. Os tags esquerda das atribuies [:=] desenergizam para zero. Use: atribuio [:=] (atribuio no-retentiva) instrues que desenergizam os dados durante a ps-varredura

reteno de valores de dados

Todos os dados mantm seus valores atuais.

Todos os dados mantm seus valores atuais.

mtodo para desenergizao de dados

Use as aes P e P0

Use:

bits de status da etapa ou ao para a condio lgica Use as aes P e P0

reset de um SFC encadeado Um SFC encadeado permanece em sua etapa atual.

Um SFC encadeado permanece em sua etapa atual.

Para a propriedade Restart Position, se escolher a opo Restart at initial step, : Um SFC encadeado reseta para sua etapa inicial. O bit X de um elemento de interrupo em um SFC encadeado desenergiza para zero.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-31

Use a Opo Dont Scan


A opo inicial para manusear a ltima varredura de uma etapa Dont scan. Com essa opo, todos os dados mantm seus valores atuais quando SFC deixar uma etapa. Isso requer que voc use atribuies ou instrues adicionais para desenergizar qualquer dado que queira desenergizar ao final da etapa. Para desenergizar um dispositivo ao final de uma etapa: 1. Certifique-se de que a propriedade Last Scan of Active Steps est definida para a opo (padro) Dont scan. 2. Use uma ao P0 Pulso (Borda de Descida) para desenergizar os dados requeridos. Certifique-se de que a ao ou aes P0 so as ltimas na ordem de aes para a etapa. Durante a ltima varredura da etapa, a opo Dont scan executa somente as aes P e P0. As atribuies e instrues das aes executam de acordo com as condies de lgica. O controlador no executa uma ps-varredura de atribuies ou instrues. Quando SFC deixa a etapa, todos os dados mantm seus valores atuais. O exemplo a seguir usa uma ao para energizar um transportador no comeo de uma etapa. Uma ao diferente desenergiza o transportador ao final da etapa. Use a Opo Dont Scan

EXEMPLO

Essa ao energiza o transportador. Quando conveyor_state energiza, o transportador energiza. Antes do SFC sair da etapa, a ao P0 desenergiza o transportador. Na ltima varredura da etapa, conveyor_state desenergiza. Isso desenergiza o transportador.

Uso da Opo de Reset Programado


Um mtodo opcional para desliga de forma programada (desenergiza) os dispositivos ao final de uma etapa executar todas as aes na ltima varredura da etapa. Isso faz com que voc execute a lgica normal e tambm desligue (desenergize) os dispositivos ao final de uma etapa. 1. Na propriedade Last Scan of Active Steps, escolha a opo Programmatic reset:

Publicao 1756-PM001E-PT-P - Agosto 2002

4-32

Projeto de um Controle Seqencial de Fune

2. Desenergize os dados requeridos usando qualquer um dos mtodos a seguir: Para a lgica normal, adicione a lgica que desenergiza os dados solicitados. Use o bit LS da etapa ou o bit Q da ao para condicionar a execuo da lgica. Use uma ao P0 Pulse (Borda de Descida) para desenergizar os dados solicitados. Certifique-se de que a ao ou aes P0 so as ltimas na ordem de aes para a etapa. Durante a ltima varredura da etapa, a opo Programmatic reset executa todas as atribuies e instrues de acordo com as condies lgicas. O controlador no realiza a ps-varredura dos atributos e das instrues. Quando SFC deixa a etapa, todos os dados mantm seu valor atual. O exemplo a seguir usa uma nica ao para energizar e desenergizar um transportador. O bit LS da etapa condiciona a execuo da lgica. Consulte Estrutura SFC_STEP na pgina 4-8. Uso da Opo de Reset Programado e o Bit LS

EXEMPLO

Quando a etapa no est na ltima varredura (conveyor_fwd.LS = 0), essa declarao energiza conveyor_state. Quando conveyor_state energiza, o transportador liga. Na ltima varredura da etapa (conveyor_fwd.LS = 1), essa declarao desenergiza conveyor_state. Quando conveyor_state desenergiza, o transportador desliga.

Para uma ao que use um desses qualificadores armazenados, use o bit Q da ao para condicionar a lgica. Consulte Estrutura SFC_ACTION na pgina 4-19. Uso da Opo de Reset Programado e o Bit Q

EXEMPLO

Quando a ao no est na ltima varredura (conveyor_start.Q = 1), essa declarao energiza conveyor_state. Quando conveyor_state desenergiza, o transportador desliga. Na ltima varredura da ao (conveyor_start.Q = 0), essa declarao desenergiza conveyor_state. Quando conveyor_state desenergiza, o transportador desliga.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-33

possvel usar uma ao P0 Pulso (Borda de Descida) para desenergizar os dados solicitados. O exemplo a seguir usa uma ao para energizar um transportador no comeo de uma etapa. Uma ao diferente desenergiza o transportador ao final da etapa. Uso da Opo de Reset Programado e uma Ao P0

EXEMPLO

Essa ao liga o transportador. Quando conveyor_state energiza, o transportador energiza. Antes do SFC sair da etapa, a ao P0 desliga o transportador. Na ltima varredura da etapa, conveyor_state desenergiza. Isso desenergiza o transportador.

Uso da Opo de Reset Automtico


Para desligar dispositivos (desenergizar) automaticamente ao final de uma etapa: 1. Na propriedade Last Scan of Active Steps, selecione a opo Automatic reset : 2. Para desenergizar um dispositivo ao final de uma etapa, controle o estado do dispositivo com uma atribuio ou instruo como: atribuio [:=] (atribuio no-retentiva) instruo OTE (Energizar Sada) em uma sub-rotina Durante a ltima varredura de cada etapa, a opo Automatic reset realiza o seguinte: executa as aes P e P0 de acordo com suas condies lgicas. desenergiza os tags esquerda dos atributos [:=] executa uma ps-varredura do texto estruturado incorporado executa uma ps-varredura de qualquer sub-rotina que uma ao chama atravs de uma instruo JSR (Salto para Sub-rotina) reseta qualquer SFC encadeado (SFC que uma ao chama como uma sub-rotina) A ps-varredura de uma ao realmente ocorre quando a ao passa de ativa para inativa. Dependendo do qualificador da ao, a ps-varredura pode ocorrer antes ou depois da ltima varredura da etapa.

IMPORTANTE

Como regra geral, a ps-varredura executa as instrues como se todas as condies fossem falsas. Por exemplo, a instruo OTE (Energizar Sada) desenergiza seus dados durante a ps-varredura.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-34

Projeto de um Controle Seqencial de Fune

Algumas instrues no seguem a regra geral durante a ps-varredura. Para uma descrio de como a instruo especfica executa durante a ps-varredura, consulte os manuais: Logix5000 Controllers General Instructions Reference Manual, publicao 1756-RM003 Logix5000 Controllers Process and Drives Instructions Reference Manual, publicao 1756-RM006 Logix5000 Controllers Motion Instruction Set Reference Manual, publicao 1756-RM007 Aqui est um exemplo que usa uma atribuio no-retentiva para controlar um transportador. Ela energiza um transportador no comeo de sua etapa e desenergiza automaticamente o transportador quando a etapa concluda. Desenergizar Dados Automaticamente

EXEMPLO

Essa ao liga o transportador. Quando conveyor_state energiza, o transportador liga. Quando SFC deixa a etapa, conveyor_state desenergiza. Isso desliga o transportador.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-35

Manter Algo Energizado seguindo Passo a Passo

Como Voc Quer Controlar o Dispositivo?


Para fornecer controle ininterrupto de um dispositivo durante mais que uma vez ou fase (etapa), faa o seguinte:
Opo: Use uma Ramificao Simultnea Realize uma etapa separada que controle o dispositivo. Transfer_In Exemplo:

Pintura

Controle do Ventilador

Limpeza Transfr_Out

Como Armazenar e Resetar uma Ao Observe a etapa que energiza o dispositivo e a etapa que desenergiza o dispositivo.

Transfer_In

energizar ventilador

Pintura Mais tarde, defina um par de aes Armazenadas e de Reset para controlar o dispositivo. Limpeza Transfr_Out Uso de Uma Etapa Grande Pintura Use uma etapa grande que contenha todas as aes que ocorrem enquanto o dispositivo est energizado.
desenergizar ventilador

transferir, pintar, limpar, controlar o ventilador

Publicao 1756-PM001E-PT-P - Agosto 2002

4-36

Projeto de um Controle Seqencial de Fune

Use uma Ramificao Simultnea


Uma maneira simples de controlar dispositivos durante uma ou mais etapas criar uma etapa separada para os dispositivos. Use uma ramificao simultnea para executar a etapa durante o restante do processo. Aqui est um exemplo: Uma operao de pintura: 1. Transfere o produto para uma linha de pintura. 2. Pinta o produto usando 3 armas de pinturas separadas. 3. Limpa as armas. 4. Transfere o produto para os fornos de pintura. Durante todo o processo, o sistema deve controlar os ventiladores da seo. Soluo:

EXEMPLO

Transfer_In

Paint_Flow

Air_Flow

Elec_Charg

Controle do Ventilador

Limpeza
Transfr_Out

Como Armazenar e Resetar uma Ao


Normalmente, uma ao desenergiza (pra a execuo) quando o SFC passa para a prxima etapa. Para manter um dispositivo energizado de etapa para etapa sem uma bomba, armazene a ao que controla o dispositivo: 1. Na etapa que energiza o dispositivo, atribua um qualificador armazenado para a ao que controla o dispositivo. Para uma lista de qualificadores armazenados, consulte Tabela 4.1 na pgina 4-26. 2. Na etapa que desenergiza o dispositivo, use uma ao Reset. A figura a seguir mostra o uso de uma ao armazenada.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-37

Action_Name
ao que voc quer executar para mais de uma etapa

etapa que comea a ao

mais etapas

Action_Name
mesmo nome que a ao armazenada

etapa que pra a ao

Quando SFC sai da etapa que armazena a ao, o software RSLogix 5000 continua a mostrar a ao armazenada como ativa. (Por padro, uma linha limite verde exibida ao redor da ao.) Isso permite que voc saiba que SFC est executando a lgica daquela ao. Para usar uma ao armazenada, siga essas orientaes: A ao Reset somente desenergiza a ao armazenada. Ela no desenergiza automaticamente os dispositivos da ao. Para desenergizar o dispositivo, siga a ao Reset com uma outra ao que desligue o dispositivo. Ou use a opo Automatic reset descrita na pgina 4-33. Cuide quando saltar entre uma etapa que armazene uma ao e uma etapa que resete a ao. Uma vez resetada a ao, ela somente comea quando voc executar a etapa que armazena a ao. No exemplo seguinte, as etapas 1 a 4 requerem que um ventilador seja energizado. Ao final da etapa step_4, o ventilador resetado (desenergizado). Quando SFC voltar para step_3, o ventilador permanece desenergizado.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-38

Projeto de um Controle Seqencial de Fune

step_1

energizar o ventilador (armazenado)

step_2

step_3 desenergizar o ventilador (resetar)

step_4

Para o ventilador voltar para energizado, o SFC tem que voltar para a step_1.

Uso de Uma Etapa Grande


Se usar uma etapa grande para funes mltiplas, use a lgica adicional para seqenciar as funes. A opo para encadear um SFC em uma etapa grande. No exemplo seguinte, uma etapa energiza um ventilador e chama um outro SFC. O SFC encadeado seqencia as funes restantes da etapa. O ventilador fica energizado por todas as etapas do SFC encadeado. Uso de Uma Etapa Grande
Essa ao energiza um ventilador: fan.ProgProgReq deixa SFC comandar o estado do ventilador. fan.ProgCommand energiza o ventilador. O ventilador permanece energizado durante toda a etapa. Essa ao chama um outro SFC. SFC seqencia as funes restantes da etapa.

EXEMPLO

Para obter informaes adicionais sobre como encadear um SFC, consulte Encadeamento de um SFC na pgina 4-42.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-39

Finalizao do SFC

Uma vez que um SFC conclui sua ltima etapa, ele no reinicia automaticamente na primeira etapa. Deve-se perguntar ao SFC o que fazer quando ele terminar a ltima etapa.

Ao Final do SFC, O Que Deseja Fazer?


Para: voltar a malha automaticamente para uma etapa anterior Faa isto: Conecte a ltima transio para a parte principal da etapa para a qual quer ir. Consulte Conexo para uma Etapa Anterior na pgina 4-16. parar e esperar por um comando para reiniciar Uso do Elemento Stop. ConsulteUso do Elemento Stop na pgina 4-39.

Uso do Elemento Stop


O elemento de parada faz com que pare a execuo de um SFC inteiro ou um caminho de ramificao simultnea e espere o reincio. Quando um SFC alcana um elemento de parada, ocorre o seguinte: O bit X do elemento de parada liga. Isso sinaliza que SFC est no elemento de parada. A execuo pra em parte ou todo SFC:
Se o elemento de parada estiver ao final de: uma seqncia uma ramificao de seleo um caminho em uma ramificao simultnea somente esse caminho pra enquanto o restante do SFC continua a executar. todo o SFC pra Ento:

Publicao 1756-PM001E-PT-P - Agosto 2002

4-40

Projeto de um Controle Seqencial de Fune

EXEMPLO

Uso do Elemento Stop

Quando SFC alcana last_step e process_done verdadeiro, a execuo de SFC pra.

Reinicie (Reset) o SFC


Uma vez no elemento de parada, voc tem diversas opes para reiniciar o SFC:
Se SFC for: encadeado (isto , um outro SFC chama esse SFC como uma sub-rotina) E a opo da Last Scan of Active Steps for: Reset Automtico Ento: Ao final da etapa que chama o SFC encadeado, o SFC encadeado reseta automaticamente: O SFC encadeado reseta para a etapa inicial. O bit X do elemento de parada no SFC encadeado desenergiza para zero. 1. Use uma instruo SFC Reset (SFR) para reiniciar o SFC na etapa solicitada. 2. Use a lgica para desenergizar o bit X do elemento de parada. 1. Use uma instruo SFR (SFC Reset) para reiniciar o SFC na etapa requerida. 2. Use a lgica para desenergizar o bit X do elemento de parada.

Reset Programado Dont scan NO encadeado (isto , nenhum SFC chama esse SFC como uma sub-rotina)

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-41

O exemplo a seguir mostra o uso de uma instruo SFR (SFC Reset) para reiniciar SFC e desenergizar o bit X do elemento de parada. Reinicie (Reset) o SFC Se SFC_a_stop.X = on (SFC_a est na parada) e SFC_a_reset = on (tempo para resetar SFC) ento durante uma varredura (ons[0] = on): Resete SFC_a para SFC_a_Step_1 SFC_a_stop.X = 0

EXEMPLO

Estrutura SFC_STOP
Cada parada usa um tag para fornecer as seguintes informaes sobre o elemento de parada:
Se voc quiser: determinar quando SFC est no elemento de parada Verifique ou energize esse membro: X Tipo de Dados: BOOL Detalhes: Quando SFC alcana o elemento de parada, o bit X energiza. O bit X desenergiza se configurar os SFCs para reiniciar na etapa inicial e o controlador para mudar do modo de programao para o modo de operao. Em um SFC encadeado, o bit X tambm desenergiza se voc configurar os SFCs para o reset automtico e o SFC para sair da etapa que chama o SFC encadeado. determinar a meta de uma instruo SFR (SFC Reset) Reset BOOL Uma instruo SFC Reset (SFR) reseta SFC para uma etapa ou pra aquilo que a instruo especifica. O bit Reset indica para qual etapa ou interrupo a SFC comear a executar novamente. Uma vez que SFC executar, o bit Reset desenergiza. Isso no uma contagem de varreduras da parada. A contagem incrementa cada vez que a parada se torna ativa. Ela incrementa novamente somente aps a parada ficar inativo e ativo de novo. A contagem reseta somente se voc configurar o SFC para reiniciar etapa inicial. Com essa configurao, ela reseta quando o controlador alterar de um modo de programao para um modo de operao. Para esse membro: Use esse bit: Reset X 22 31

determinar quantas vezes um elemento de parada se tornou ativo

Count

DINT

usar um tag para vrios bits de status bits da parada

Status

DINT

Publicao 1756-PM001E-PT-P - Agosto 2002

4-42

Projeto de um Controle Seqencial de Fune

Encadeamento de um SFC

Um mtodo para organizar o projeto criar um SFC que fornea uma viso em alto nvel do processo. Cada etapa do SFC chama um outro SFC que realiza os procedimentos detalhados da etapa (SFC encadeado). A figura a seguir mostra uma maneira de encadear um SFC. Nesse mtodo, a opo de ltima varredura do SFC configurada para Programmatic reset ou Dont scan. Se configurar SFC para Automatic reset, no necessrio executar aetapa 1.

SFC_a

SFC_b

3 1. Resete o SFC encadeado: A instruo SFR reinicia SFC_b em SFC_b_Step_1. Cada vez que SFC_a sair dessa etapa e retornar, necessrio resetar SFC_b. A ao tambm desenergiza o bit X do elemento de parada. 2. Chame SFC_b. 3. Pare SFC_b. Este procedimento energiza o bit X do elemento de parada. 4. Use o bit X do elemento de parada para sinalizar que SFC_b est concluda e hora de ir para a etapa seguinte.

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-43

Passagem de Parmetros
Para passar os parmetros para ou a partir de um SFC, coloque o elemento Subroutine/Return no SFC.
Input Parameters Return Parameters

SFC_b

Configurao ao Retornar para OS/JSR

Por padro, uma SFC executa uma etapa ou grupos de etapas simultneas e retorna para o sistema operacional (OS) ou para a rotina que est chamando (JSR).

padro

Voc tem a opo de deixar a etapa SFC executar at alcanar uma transio falsa. Se diversas transies forem verdadeiras ao mesmo tempo, essa opo reduz o tempo para obter a etapa desejada. Use a opo Execute until FALSE transition somente quando: 1. No precisar atualizar os parmetros de JSR antes de cada etapa. Os parmetros atualizam somente quando SFC retorna para JSR. Consulte Passagem de Parmetros na pgina 4-43. 2. Uma transio falsa ocorrer no temporizador do watchdog durante a tarefa. Se o tempo que ele leva para retornar para JSR e concluir o restante da tarefa superior ao temporizador do watchdog, uma falha grave ocorre. Para um diagrama detalhado da execuo de cada opo, consulte a Figura 4.9 na pgina 4-48.

Publicao 1756-PM001E-PT-P - Agosto 2002

4-44

Projeto de um Controle Seqencial de Fune

Pausa ou Resete de um SFC

Duas instrues opcionais disponveis fornecem controle adicional de execuo da SFC:


Se voc quiser: pausar uma SFC resetar uma SFC para uma etapa especfica ou parada Use esta instruo: SFP (Pausa da SFP) SFR (Resete da SFC)

As instrues esto disponveis nas linguagens de lgica ladder e texto estruturado. Para obter mais informaes, use os seguintes recursos: No software RSLogix 5000, no menu Help, selecione Instruction Help. Olhe a categoria Program Control Instructions. Consulte Logix5000 Controllers General Instructions Reference Manual, publicao 1756-RM003.

Diagramas de Execuo

Os diagramas a seguir mostram a execuo de uma SFC com diferentes organizaes de etapas ou selees diferentes de opes de execuo. Use os diagramas se precisar de um entendimento mais detalhado sobre como a SFC executa.
Para um diagrama de: Execuo de uma Seqncia Execuo de uma Ramificao Simultnea Execuo de uma Ramificao de Seleo Quando os parmetros inserem e saem de uma SFC Opes para o Controle de Execuo Consulte a pgina: 4-45 4-46 4-47 4-47 4-48

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-45

Figura 4.5 Execuo de uma Seqncia Este... executa como este

step_1 tran_1 step_2 tran_2

step_1

tran_1 verdadeira voltar para OS/JSR step_1

falsa

voltar para OS/JSR

ltima varredura

step_2

tran_2 verdadeira voltar para OS/JSR step_2

falsa

voltar para OS/JSR

ltima varredura

Publicao 1756-PM001E-PT-P - Agosto 2002

4-46

Projeto de um Controle Seqencial de Fune

Figura 4.6 Execuo de uma Ramificao Simultnea Este:


step_1 tran_1 step_2 step_3 tran_1 verdadeira tran_2 voltar para OS/JSR step_1 falsa voltar para OS/JSR step_1

executa como este

ltima varredura

step_2

step_3

tran_2 verdadeira

falsa

voltar para OS/JSR step_2

step_3

tran_2 verdadeira voltar para OS/JSR step_2

falsa

voltar para OS/JSR

ltima varredura
step_3

Publicao 1756-PM001E-PT-P - Agosto 2002

Projeto de um Controle Seqencial de Fune

4-47

Figura 4.7 Execuo de uma Ramificao de Seleo Este...


step_1 tran_1 step_2 tran_3 step_3 tran_4 tran_2 tran_1 verdadeira tran_2 voltar para OS/JSR verdadeira voltar para OS/JSR step_1 step_1 falsa falsa step_1

executa como este

volte para OS/JSR

ltima varredura

step_2 voltar para OS/JSR

step_3 voltar para OS/JSR

tran_3 verdadeira voltar para OS/JSR step_2

falsa

tran_4 verdadeira voltar para OS/JSR step_3

falsa

ltima varredura

Figura 4.8 Quando os parmetros inserem e saem de uma SFC

parmetros de parmetros de entrada parmetros de retorno volte para OS/JSR falsa step_1

tran_1 verdadeira

parmetros de retorno

volte para OS/JSR step_1

parmetros de

ltima varredura

Publicao 1756-PM001E-PT-P - Agosto 2002

4-48

Projeto de um Controle Seqencial de Fune

Figura 4.9 Opes para o Controle de Execuo Este...


step_1 tran_1 step_2 tran_2

executa como este

Execute somente etapas ativas atuais


step_1

Execute at a transio FALSA


step_1

tran_1 verdadeira volte para OS/JSR step_1

falsa

volte para OS/JSR

tran_1 verdadeira

falsa

volte para OS/JSR

step_1

ltima varredura

step_2

step_2 volte para OS/JSR

tran_2 verdadeira volte para OS/JSR step_2

falsa

tran_2 verdadeira

falsa

volte para OS/JSR

step_2

ltima varredura

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

Programao de um Controle Seqencial de Funes


Quando Usar Este Procedimento Antes de Usar Este Procedimento
Use esse procedimento para inserir um controle seqencial de funes (SFC) no software RSLogix 5000. Insira o SFC quando planej-lo ou, primeiro planeje o SFC e depois o insira. Para planejar o SFC, consulte Projeto de um Controle Seqencial de Fune na pgina 4-1. Antes de usar esse procedimento, certifique-se de que capaz de realizar as tarefas a seguir: Abertura ou Fechamento de uma Pasta Criao de uma Rotina Para obter mais informaes sobre qualquer uma dessas tarefas, consulte Organizao de Tarefas, Programas e Rotinas na pgina 2-1.

Como Usar Este Procedimento

Para programar um SFC: Adicione um Elemento SFC Criao de uma Ramificao Simultnea Criao de uma Ramificao de Seleo Defina as Prioridades de uma Ramificao de Seleo Retorno para uma Etapa Anterior Renomeao de uma Etapa Configurao de uma Etapa Renomeao de uma Transio Programao de uma Transio Adio de uma Ao Renomeao de uma Ao Configurao de uma Ao Programao de uma Ao Atribuio da Seqncia de Execuo de Aes Documentao do SFC Mostrar ou Esconder as Caixas de Textos ou Descries de Tag Configurao da Execuo do SFC Verificao da Rotina

Publicao 1756-PM001E-PT-P - Agosto 2002

5-2

Programao de um Controle Seqencial de Funes

Adicione um Elemento SFC

Para adicionar elementos de SFC, use a barra de ferramentas do SFC.


comeo da ramificao simultnea parar sub-rotina/retorno transio novo caminho caixa de texto

etapa e transio etapa

comeo da ramificao de seleo

Para adicionar um elemento ao SFC, voc tem essas opes: Adio e Conexo Manual de Elementos Adio e Conexo Automtica de Elementos Arrastar e Soltar os Elementos

Adio e Conexo Manual de Elementos


1. Na barra de ferramentas do SFC, clique no boto para o item que voc quer adicionar. 2. Arraste o elemento para o local exigido no SFC. Por exemplo:

ponto verde

3. Para fazer a fiao (conectar) dois elementos juntos, clique sobre o pino de um dos elementos A e clique no pino do outro elemento B . Um ponto verde mostra um ponto de conexo vlida.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-3

Adio e Conexo Automtica de Elementos


1. Selecione (clique) o elemento para o qual quer conectar um novo elemento. 2. Com o elemento ainda selecionado, clique no boto da barra de ferramenta para o prximo elemento.

Arrastar e Soltar os Elementos


Na barra de ferramentas do SFC, arraste o boto no elemento desejado ao ponto de conexo no SFC. Um ponto verde mostra um ponto de conexo vlida.

ponto verde

Publicao 1756-PM001E-PT-P - Agosto 2002

5-4

Programao de um Controle Seqencial de Funes

Criao de uma Ramificao Simultnea

Incio de uma Ramificao Simultnea


1. Na barra de ferramentas do SFC, clique no boto ramificao ao local desejado. . Arraste a nova

2. Para adicionar um caminho ramificao, selecione (clique) a primeira etapa do caminho que est esquerda de onde voc quer adicionar um caminho. Clique no boto .

A B

ponto verde

3. Para conectar a ramificao simultnea transio anterior, clique no pino inferior da transio A e clique na linha horizontal da ramificao
B

. Um ponto verde mostra um ponto de conexo vlida.

Finalizao de uma Ramificao Simultnea


1. Selecione a ltima etapa de cada caminho na ramificao. Para selecionar as etapas, possvel: Clicar e arrastar o indicador ao redor das etapas que deseja selecionar. Clicar na primeira etapa. Manter [Shift] pressionado e clicar no restante das etapas que deseja selecionar.

2. Na barra de ferramentas do SFC, clique no boto

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-5

3. Adicione a transio que segue a ramificao simultnea.

B A

ponto verde

4. Para conectar a ramificao simultnea transio anterior, clique no pino superior da transio A e clique na linha horizontal da ramificao B . Um ponto verde mostra um ponto de conexo vlida.

Criao de uma Ramificao de Seleo

Inicializao de uma Ramificao de Seleo


1. Na barra de ferramentas do SFC, clique no boto ramificao at o local desejado. . Arraste a nova

2. Para adicionar um caminho ramificao, selecione (clique) a primeira transio do caminho que est esquerda de onde quer adicionar um caminho. Clique no boto .

A B

ponto verde

3. Para conectar a ramificao de seleo etapa anterior, clique no pino inferior da etapa A e clique na linha horizontal da ramificao B . Um ponto verde mostra um ponto de conexo vlida.

Publicao 1756-PM001E-PT-P - Agosto 2002

5-6

Programao de um Controle Seqencial de Funes

Finalizao de uma Ramificao de Seleo


1. Selecione a ltima transio de cada caminho na ramificao. Para selecionar as transies, possvel: Clicar e arrastar o indicador ao redor das transies que deseja selecionar. Clicar na primeira transio. Manter [Shift] pressionado e clicar no restante das transies que deseja selecionar.

2. Na barra de ferramentas do SFC, clique no boto 3. Adicione a etapa que segue a ramificao de seleo.

B A

ponto verde

4. Para conectar a ramificao de seleo etapa anterior, clique no pino superior da etapa A e clique na linha horizontal da ramificao B . Um ponto verde mostra um ponto de conexo vlida.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-7

Defina as Prioridades de uma Ramificao de Seleo

Por padro, o SFC verifica as transies que comeam uma ramificao de seleo da esquerda para a direita. Se quiser verificar uma transio diferente primeiro, atribua uma prioridade para cada caminho da ramificao de seleo. Por exemplo, uma boa prtica verificar primeiro as condies de erro. Verifique as condies normais. Para atribuir prioridades a uma ramificao de seleo: 1. Clique com o boto direito do mouse na linha horizontal que comea a ramificao e selecione Set Sequence Priorities.

2.

3. 4.

2. Remova (desmarque) a caixa de verificao Use default priorities. 3. Selecione uma transio. 4. Use os botes Move para aumentar ou diminuir a prioridade da transio. 5. Quando todas as transies possurem a prioridade desejada, selecione Quando remover (desmarcar) a caixa de verificao Use default priorities, os nmeros mostram a prioridade de cada transio.

Publicao 1756-PM001E-PT-P - Agosto 2002

5-8

Programao de um Controle Seqencial de Funes

Retorno para uma Etapa Anterior

Para saltar para uma etapa diferente no SFC: Conecte um Fio Etapa Esconder um Fio Mostrar um Fio Escondido

Conecte um Fio Etapa


1. Clique no pino inferior da transio que sinaliza o salto. Clique no pino superior da etapa para a qual deseja ir. Um ponto verde mostra um ponto de conexo vlida. Geralmente, a conexo resultante orienta-se ao longo do centro do fluxograma e difcil de ser vista. 2. Para tornar o salto mais fcil de ler, arraste sua barra horizontal sobre a etapa para a qual o salto vai. possvel que voc tenha que repor alguns dos elementos de SFC. Por exemplo, para ir para Step_001 deTran_003:

1.
Clique aqui.

2.
Arraste a barra horizontal aqui.

Clique aqui.

ponto verde

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-9

Esconder um Fio
Se um fio atrapalhar outras partes do SFC, esconda o fio conexo para tornar a leitura do SFC mais fcil. Para esconder um fio, clique com o boto direito do mouse no fio e selecione Hide Wire.

local para o qual o fio vai

Para ver o elemento de SFC para qual o fio vai, clique no local de rede na conexo.

Mostrar um Fio Escondido


Para mostrar um fio escondido, clique com o boto direito do mouse na parte visvel do fio e selecione Show Wire.

fio escondido

Publicao 1756-PM001E-PT-P - Agosto 2002

5-10

Programao de um Controle Seqencial de Funes

Renomeao de uma Etapa

Cada etapa usa um tag para armazenar a configurao e as informaes de status sobre a etapa. Para renomear o tag da etapa: 1. Clique no boto 2. Clique na guia Tag. da etapa.

3.

3. Digite o novo nome para a etapa (tag). 4. Escolha

Configurao de uma Etapa

Para configurar uma etapa, voc tem essas opes: Atribuio de um Tempo de Pr-programado para uma Etapa Configure os Alarmes para uma Etapa Uso de uma Expresso para Calcular um Tempo

Atribuio de um Tempo de Pr-programado para uma Etapa


1. Clique no boto da etapa.

2. Digite o tempo para a etapa, em milissegundos. 3. Selecione Quando a etapa est ativa para o tempo pr-programado (Timer = Preset), o bit DN da etapa energiza. Para calcular o tempo pr-programado para uma etapa no tempo de execuo, consulte Uso de uma Expresso para Calcular um Tempo na pgina 5-11.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-11

Configure os Alarmes para uma Etapa


Para energizar um alarme se uma etapa executa em um tempo muito longo ou no suficientemente longo: 1. Clique no boto da etapa.

2. Marque a caixa de seleo AlarmEnable.


2.

3. 4.

3. Digite o tempo para alarme alto, em milissegundos. 4. Digite o tempo para alarme baixo, em milissegundos. 5. Selecione Para calcular o tempo pr-programado para um alarme no tempo de execuo, consulte Uso de uma Expresso para Calcular um Tempo na pgina 5-11.

Uso de uma Expresso para Calcular um Tempo


Para calcular um tempo baseado em tags no projeto, insira o tempo como uma expresso numrica. possvel usar uma expresso para calcular os seguintes tempos: Preset LimitHigh LimitLow Para inserir um tempo como uma expresso: 1. Clique no boto da etapa.

2. Selecione (marque) a caixa de seleo Use Expression.


2.

3.

Publicao 1756-PM001E-PT-P - Agosto 2002

5-12

Programao de um Controle Seqencial de Funes

3. Clique no boto Define.


4.

procure um tag selecione uma funo selecione um operador crie um tag

5.

4. Digite uma expresso numrica que defina o tempo. Use os botes ao lado da caixa de dilogo para ajudar a concluir a expresso. Para obter as informaes sobre as expresses numricas, consulte Expresses na pgina 6-5. 5. Selecione 6. Para fechar a caixa de dilogo Step Properties, selecione

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-13

Renomeao de uma Transio

Cada transio usa um tag para armazenar o status da transio. Para renomear o tag da transio: 1. Clique no boto 2. Clique na guia Tag. da transio.

3.

3. Digite o novo nome para a transio (tag). 4. Selecione

Programao de uma Transio

Para programar uma transio, voc tem essas opes: Inserir uma Expresso BOOL Chame uma Sub-rotina

Inserir uma Expresso BOOL


A maneira mais simples de programar a transio inserir as condies como uma expresso BOOL em texto estruturado. Para obter informaes sobre as expresses BOOL, consulte Expresses na pgina 6-5. 1. Clique duas vezes na rea do texto da transio. 2. Digite a expresso BOOL que determina quando a transio verdadeira ou falsa. 3. Para fechar a janela de entrada de texto, pressione [Ctrl] + [Enter].

BOOL_expression

Publicao 1756-PM001E-PT-P - Agosto 2002

5-14

Programao de um Controle Seqencial de Funes

O exemplo a seguir mostra as trs transies que usam uma expresso BOOL. EXEMPLO Inserir uma Expresso BOOL

nome do tag da transio

Expresso BOOL que controla quando a transio verdadeira ou falsa

Chame uma Sub-rotina


1. Clique com o boto direito do mouse na transio e escolha Set JSR.

2.

2. Escolha a rotina que contenha a lgica para a transio. 3. Selecione

JSR(routine_name)

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-15

Adio de uma Ao

Para adicionar uma ao etapa:

Clique com o boto direito do mouse na etapa em que a ao executa e selecione Add Action.

Renomeao de uma Ao

Para alterar o nome de uma ao para algo que seja especfico aplicao: 1. Clique no boto 2. Clique na guia Tag. da ao.

3.

3. Digite o novo nome para a ao (tag). 4. Selecione

Publicao 1756-PM001E-PT-P - Agosto 2002

5-16

Programao de um Controle Seqencial de Funes

Configurao de uma Ao

Para configurar uma ao, voc tem essas opes: Alterao do Qualificador de uma Ao Clculo de um Tempo Pr-programado no Tempo de Execuo Indicao de uma Ao como uma Ao Booleana

Alterao do Qualificador de uma Ao


Um qualificador determina quando uma ao comea e quando ela pra. O qualificador inicial N Non-Stored. A ao comea quando a etapa ativada e pra quando a etapa desativada. Para obter mais informaes, consulte Seleo de um Qualificador para uma Ao pgina 4-21. 1. Clique no boto da ao.

2. 3.

2. Atribua o qualificador para a ao. 3. Se escolher um qualificador de temporizao, digite o limite de tempo ou de atraso para a ao, em milissegundos. Os qualificadores de tempo incluem: L Tempo Limitado SL Tempo Armazenado e Limitado D Tempo de Atraso DS Armazenado e Com Atraso SD Tempo Armazenado e Com Atraso 4. Selecione

Clculo de um Tempo Pr-programado no Tempo de Execuo


Para calcular um tempo pr-programado baseado em tags no projeto, insira os valores como uma expresso numrica. 1. Clique no boto da ao.

2. Selecione (marque) a caixa de seleo Use Expression.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-17

2.

3.

3. Clique no boto Define.


4.

procure para um tag selecione uma funo selecione um operador crie um tag

5.

4. Digite uma expresso numrica que defina o tempo pr-programado. Use os botes ao lado da caixa de dilogo para ajudar a concluir a expresso. Para obter informaes sobre as expresses numricas, consulte Expresses na pgina 6-5. 5. Selecione 6. Para fechar a caixa de dilogo Action Properties, selecione

Indicao de uma Ao como uma Ao Booleana


Use uma ao booleana para somente energizar um bit quando a ao executa. Para obter mais informaes, consulte Utilizao de uma Ao Booleana na pgina 4-18. 1. Clique no boto da ao.

2.

2. Clique na caixa de verificao Boolean.

Publicao 1756-PM001E-PT-P - Agosto 2002

5-18

Programao de um Controle Seqencial de Funes

3. Selecione

Programao de uma Ao

Para programar uma ao, voc tem essas opes: Insero do Texto Estruturado Chame uma Sub-rotina

Insero do Texto Estruturado


A maneira mais fcil de programar uma ao escrever a lgica como um texto estruturado no corpo da ao. Quando a ao energiza, o controlador executa o texto estruturado.

1. Clique duas vezes na rea do texto da ao. 2. Digite o texto estruturado necessrio. 3. Para fechar a janela de entrada de texto, pressione [Ctrl] + [Enter].

//comment statement; statement;

Para obter mais informaes sobre o texto estruturado:


Para estas informaes sobre o texto estruturado: informaes gerais sobre atribuies, operadores, funes, instrues ou comentrios informaes sobre uma instruo especfica Consulte: Programa de Texto Estruturado na pgina 6-1 Logix5000 Controllers General Instructions Reference Manual, publicao 1756-RM003 Logix5000 Controllers Process and Drives Instructions Reference Manual, publicao 1756-RM006 Logix5000 Controllers Motion Instruction Set Reference Manual, publicao 1756-RM007

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-19

Chame uma Sub-rotina


Use uma instruo JSR (Salto para Sub-rotina) para executar uma sub-rotina quando a ao ativa. 1. Na SFC, clique com o boto direito do mouse na rea de entrada de texto da ao e selecione Set JSR.

2.

3.

4.

2. Selecione a rotina que quer chamar. 3. Para passar um parmetro para a rotina, clique na caixa de texto vazia Input Parameters. Use a seta para baixo para escolher o tag que contm o parmetro. 4. Para receber um parmetro da rotina, clique na caixa de texto vazia Return Parameters. Use a seta para baixo para escolher o tag que armazena o parmetro da rotina. 5. Selecione

Publicao 1756-PM001E-PT-P - Agosto 2002

5-20

Programao de um Controle Seqencial de Funes

Atribuio da Seqncia de Execuo de Aes

As aes executam na ordem em que aparecem. Por exemplo:


Quando Step_003 est ativa, suas aes executam nesta ordem: 1. Action_000 2. Action_001 3. Action_002

Para alterar a ordem em que a ao executa, arraste a ao para o local desejado na seqncia. Uma barra verde mostra um local de colocao vlida. Por exemplo:

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-21

Documentao do SFC
Para documentar: as informaes gerais sobre o SFC etapa

Para documentar um SFC, voc tem essas opes:


Se voc quiser: Faa isto: Adio de uma Caixa de Texto Adio de uma Caixa de Texto - ou Adio de uma Descrio do Tag faa o download da documentao para o controlador tem a opo de mostrar ou esconder a documentao posicionar o documento em qualquer lugar no SFC Adio de Comentrios do Texto Estruturado Adio de uma Caixa de Texto - ou Adio de uma Descrio do Tag Adio de Comentrios do Texto Estruturado Adio de uma Caixa de Texto - ou Adio de uma Descrio do Tag

transio

ao parada outro elemento (p. ex.: ramificao de seleo)

faa o download da documentao para o controlador

Adio de Comentrios do Texto Estruturado


Use a tabela a seguir para formatar os comentrios:
Para adicionar um comentrio: em uma nica linha no 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*/

Para obter mais informaes, consulte Comentrios na pgina 6-29. Para inserir os comentrios:

Publicao 1756-PM001E-PT-P - Agosto 2002

5-22

Programao de um Controle Seqencial de Funes

1. Clique duas vezes na rea do texto da ao. 2. Insira os comentrios. 3. Para fechar a janela de entrada de texto, pressione [Ctrl] + [Enter].

//comment statement; statement;

Adio de uma Descrio do Tag


1. Clique no boto 2. Clique na guia Tag. do elemento.

3.

3. Digite a descrio para o elemento (tag). 4. Selecione 5. Arraste a caixa de descrio para o local desejado na SFC.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-23

Adio de uma Caixa de Texto


Uma caixa de texto permite a adio de observaes que esclarecem a funo de um elemento do SFC (etapa, transio, parada, etc.). Alm de usar uma caixa de texto para capturar as informaes que usar mais tarde. Por exemplo:

1. Clique em Uma caixa de texto aparece.

2. Arraste a caixa de texto para um local prximo ao elemento para o qual ela se aplica. 3. Clique duas vezes na caixa de texto e digite a observao. Pressione [Ctrl] + [Enter]. 4. Assim que mover o elemento na SFC, o que voc deseja que a caixa de texto faa?
Se usar a caixa de texto para: ficar no mesmo lugar mover com o elemento para o qual ela se aplica Pare. Est feito. V para a etapa etapa 5. Ento:

B A ponto verde

5. Clique no smbolo do pino na caixa de texto e clique no elemento do SFC para o qual deseja anexar a caixa de texto. Um ponto verde mostra um ponto de conexo vlida.

Publicao 1756-PM001E-PT-P - Agosto 2002

5-24

Programao de um Controle Seqencial de Funes

Mostrar ou Esconder as Caixas de Textos ou Descries de Tag

Voc tem a opo de mostrar ou esconder as caixas de texto e as descries de tag. Se escolher mostrar as descries, a janela do SFC mostra somente as descries para etapas, transies e paradas (no mostra as aes). Para mostrar ou esconder as caixas de texto ou descries, voc tem essas opes: Mostrar ou Esconder as Caixas de Textos ou Descries de Tag Esconder uma Descrio Individual de Tag

Mostrar ou Esconder as Caixas de Textos ou Descries de Tag


1. No menu Tools, selecione Options.

2.

2. Sob SFC Editor, escolha a categoria Display. 3. Escolha a opo desejada.


Se voc quiser: mostrar as caixas de texto ou descries esconder as caixas de texto ou descries Ento: marque a caixa de verificao correspondente desenergize (desmarque) a caixa de texto correspondente

4. Escolha

Esconder uma Descrio Individual de Tag


Para esconder a descrio de um elemento especfico enquanto mostra outras descries:

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-25

1. Clique no boto

do elemento cuja descrio deseja esconder.

2. Marque a caixa de verificao Never display description in routine.

3. Escolha Para mostrar outras descries, consulte Mostrar ou Esconder as Caixas de Textos ou Descries de Tag na pgina 5-24.

Publicao 1756-PM001E-PT-P - Agosto 2002

5-26

Programao de um Controle Seqencial de Funes

Configurao da Execuo do SFC

A guia SFC Execution das propriedades do controlador permite a configurao a seguir: o que fazer quando uma transio for verdadeira onde comear aps uma transio para o modo de operao ou aps a recuperao de uma perda de energia o que fazer na ltima varredura de uma etapa

1.

1. Na barra de ferramentas On-line, clique no boto de propriedades do controlador. 2. Clique na guia SFC Execution.
2.

3.

4.

5.

3. Opte por retornar ou no para OS/JSR se uma transio verdadeira. 4. Escolha onde reiniciar a SFC aps uma transio para o modo de operao ou aps a recuperao de uma perda de energia. 5. Escolha o que fazer na ltima varredura de uma etapa. 6. Escolha

Verificao da Rotina

Assim que programar sua rotina, verifique seu trabalho periodicamente:

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Controle Seqencial de Funes

5-27

1. Na barra de ferramentas na parte superior da janela do RSLogix 5000, clique em 2. Se algum erro for listado na parte inferior da janela: a. V at o primeiro erro ou aviso, pressione [F4]. b. Corrija o erro de acordo com a descrio na janela Results. c. V para a etapa 1. 3. Para fechar a janela Results, pressione [Alt] + [1].

Publicao 1756-PM001E-PT-P - Agosto 2002

5-28

Programao de um Controle Seqencial de Funes

Notas:

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

Programa de Texto Estruturado

Quando Usar Este Captulo

Use este captulo para escrever e inserir um texto estruturado para: uma rotina de texto estruturado uma ao de um controle seqencial de funes (SFC) uma transio de controle seqencial de funes (SFC)

Sintaxe do Texto Estruturado

O texto estruturado uma linguagem de programao textual que usa as declaraes para definir o que executar. O texto estruturado no sensvel ao contexto. Use as guias e mecanismo de retorno (linhas separadas) para tornar seu texto estruturado mais fcil de ler. Eles no possuem efeito na execuo do texto estruturado. O texto estruturado pode conter esses componentes:

Termo: atributo (consulte a pgina 6-2) expresso (consulte a pgina 6-5)

Definio: Use uma declarao de atribuio para atribuir os valores aos tags. O operador := um operador de atribuio. Termine a atribuio com um ponto e vrgula ;. Uma expresso parte de uma atribuio completa ou declarao de construo. Uma expresso avalia para um nmero (expresso numrica) ou para um estado verdadeiro ou falso (expresso BOOL).

Exemplos: tag := expression;

Uma expresso contm: tags 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. value1

imediatos operadores

4 tag1 + tag2 tag1 >= value1

funes

Quando executada, uma funo produz um valor. Use function(tag1) 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.

Publicao 1756-PM001E-PT-P - Agosto 2002

6-2

Programa de Texto Estruturado

Termo: instruo (consulte a pgina 6-11)

Definio: Uma instruo uma declarao independente. Uma instruo usa parnteses para conter seus operandos. 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 ;. instruction();

Exemplos:

instruction(operand);

instruction(operand1, operand2,operand3);

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 (consulte a pgina 6-12) Uma declarao condicional usada para iniciar o cdigo de texto estruturado (isto , outras declaraes). Termine a construo com um ponto e vrgula ;. IF...THEN CASE FOR...DO WHILE...DO REPEAT...UNTIL EXIT comentrio (consulte a 6-29) O texto que explica ou esclarece o que uma coluna de texto estruturado faz. //comment

Use os comentrios para interpretar o texto estruturado de forma (*start of comment . . . mais fcil. end of comment*) Os comentrios no afetam a execuo do texto estruturado. Os comentrios podem aparecer em qualquer lugar no texto estruturado. /*start of comment . . . end of comment*/

Atributos

Use um atributo para alterar o valor armazenado em um tag. Um atributo possui essa sintaxe: tag := expression ; onde:
Componente: tag Descrio: representa o tag que est obtendo o novo valor o tag deve ser BOOL, SINT, INT, DINT ou REAL := o smbolo de atribuio

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-3

Componente: expresso

Descrio: representa o novo valor para atribuir ao tag Se o tag for deste tipo de dados: BOOL SINT INT DINT REAL Use esse tipo de expresso: expresso BOOL expresso numrica

trmino da atribuio

Publicao 1756-PM001E-PT-P - Agosto 2002

6-4

Programa de Texto Estruturado

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 seo Expresses na pgina 6-5 para os detalhes.

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 Descrio: representa o tag que est obtendo o novo valor o tag deve ser BOOL, SINT, INT, DINT ou REAL [:=] expresso um smbolo de atribuio no retentiva representa o novo valor para atribuir ao tag Se o tag for deste tipo de dados: BOOL SINT INT DINT REAL ; trmino da atribuio Use esse tipo de expresso: expresso BOOL expresso numrica

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-5

Atribuio de um Caracter ASCII para um string


Use o operador de atribuio para atribuir um caracter ASCII a um elemento do membro DATA de um tag da string. Para atribuir um caracter, especifique o valor do caracter ou especifique o nome do tag, membro DATA e o elemento do caracter. 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 CONCAT INSERT Use essa instruo:

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: +, -, <, >, E, Ou 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 6-11.

Publicao 1756-PM001E-PT-P - Agosto 2002

6-6

Programa de Texto Estruturado

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: Uso dos operadores e funes aritmticas na pgina 6-6. Uso dos operadores relacionados na pgina 6-8. Uso dos operadores lgicos na pgina 6-9. Uso dos operadores bitwise na pgina 6-10.

Uso dos 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 + * ** / MOD Use esse operador: Tipo de dados otimizados: DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-7

As funes aritmticas realizam operaes matemticas. Especifique uma constante, um tag no boleano 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 essa 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

Por exemplo:
Tabela6.1 Use esse formato: 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 alarm e high_alarm so tags DINT e a especificao diz: Subtraia high_alarm e armazenar o resultado em alarm. 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. Se adjustment e position so tags DINT e sensor1 e sensor2 so tags REAL e a especificao diz: Encontre o valor absoluto da mdia de sensor1 e sensor2, adicione o adjustment e armazene o resultado em position. Exemplo: Voc escreveria: gain_4_adj := gain_4+15; alarm:= -high_alarm; overtravel_POS := ABS(overtravel);

operator value1

function(numeric_expression)

value1 operator (function((value2+value3)/2)

position := adjustment + ABS((sensor1 + sensor2)/2);

Publicao 1756-PM001E-PT-P - Agosto 2002

6-8

Programa de Texto Estruturado

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 1 0 O resultado :

Use os operadores relacionados a seguir:


Para essa comparao: igual menor que menor ou igual a maior que maior ou igual a diferente de = < <= > >= <> Use esse operador: Tipo de Dados Otimizados: DINT, REAL, string DINT, REAL, string DINT, REAL, string DINT, REAL, string DINT, REAL, string DINT, REAL, string

Por exemplo:
Tabela6.2 Use esse formato: Para essa situao: value1 operator value2 stringtag1 operator stringtag2 char1 operator char2 Se temp um tag DINT e a especificao diz: Se temp menor que 100 ento Se bar_code e dest so tags da string e a especificao diz: Se bar_code igual a dest ento Exemplo Voc escreveria: IF temp<100 THEN... IF bar_code=dest THEN...

Se bar_code um tag do string e a IF bar_code.DATA[0]=65 especificao diz: Se bar_code.DATA[0] igual THEN... a A ento

Para inserir um caracter ASCII diretamente na expresso, insira o valor decimal do caracter. 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 finalizou a contagem. done := (count >= length);

Como as Strings So Avaliadas


Os valores hexadecimais dos caracteres ASCII determinam se uma string menor ou maior que outra.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-9

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 m a i o r

Cdigos Hex $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 caracter, consulte a quarta capa deste manual.

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 1 0 O resultado :

Use os seguintes operadores lgicos:


Para: lgica AND lgica OR lgica XOR lgica complemento Use esse operador: &, AND OR XOR NOT Tipo de Dados: BOOL BOOL BOOL BOOL

Publicao 1756-PM001E-PT-P - Agosto 2002

6-10

Programa de Texto Estruturado

Por exemplo:
Tabela6.3 Use esse formato: Para essa situao: BOOLtag NOT BOOLtag expression1 & expression2 Se photoeye um tag BOOL e a especificao diz: Se photoeye_1 est energizado ento Exemplo: Voc escreveria: IF photoeye THEN...

Se photoeye um tag BOOL e a especificao IF NOT photoeye THEN... diz: Se photoeye est desenergizado ento Se photoeye um tag BOOL, temp um tag IF photoeye & (temp<100) DINT e a especificao diz: Se photoeye est THEN... energizado e temp menor que 100 ento. Se photoeye um tag BOOL, temp um tag DINT e a especificao diz: Se photoeye est energizado ou temp menor que 100 ento. Se photoeye1 e photoeye2 so tags BOOL e a especificao diz: Se: photoeye1 est energizado enquanto photoeye2 est desenergizado ou photoeye1 est desenergizado enquanto photoeye2 est energizado ento... IF photoeye OR (temp<100) THEN...

expression1 OR expression2

expression1 XOR expression2

IF photoeye1 XOR photoeye2 THEN...

BOOLtag := expression1 & expression2

Se photoeye1 e photoeye2 so tags BOOL, open open := photoeye1 & photoeye2; um tag BOOL e a especificao diz: Se photoeye1 e photoeye2 estiverem energizados, defina open para verdadeiro.

Uso dos operadores bitwise


Os operadores bitwise manipulam os bits em um valor baseado em dois valores.
Para: bitwise AND bitwise OR XOR NOT Use esse operador: &, AND OR XOR NOT Tipo de Dados Otimizados: DINT DINT DINT DINT

Por exemplo:
Tabela6.4 Use esse formato: 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. Exemplo: Voc escreveria: result1 := input1 AND input2;

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-11

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. () funo () ** (negao) NOT *, /, MOD +, - (subtrao) <, <=, >, >= =, <> &, E XOR OR Operao:

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 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 uma varredura quando as transies tag_xic forem de desenergizadas para energizadas. A

Publicao 1756-PM001E-PT-P - Agosto 2002

6-12

Programa de Texto Estruturado

instruo ABL no executada quando tag_xic fica energizado ou quando tag_xic est desenergizado.

No texto estruturado, se escrever esse exemplo como: IF tag_xic THEN ABL(0,serial_control); END_IF; a instruo ABL executar toda varredura que tag_xic est energizado, no apenas quando tag_xic transitar de desenergizado para energizado. 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: 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

As construes podem ser programadas uma a uma ou encadeadas em outras construes.


Use esta construo: IF...THEN CASE... OF FOR...DO WHILE...DO REPEAT...UNTIL Disponvel nessas linguagens: texto estruturado texto estruturado texto estruturado texto estruturado texto estruturado Consulte a pgina: 6-13 6-17 6-20 6-23 6-26

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-13

IF...THEN

Use IFTHEN para fazer algo se ou quando as condies especficas ocorrerem.

Operandos:

Texto Estruturado
IF bool_expression THEN <statement>; END_IF;

Operando: bool_ expression BOOL

Tipo:

Formato: tag expresso

Insira: tag BOOL ou a expresso que avalie para um valor BOOL (expresso BOOL)

Descrio:
A sintaxe : IF bool_expression1 THEN <statement >; . . .
opcional declaraes a serem executadas quando bool_expression1 for verdadeiro

ELSIF bool_expression2 THEN <statement>; . . .


as declaraes para executar quando bool_expression2 for verdadeira

opcional

ELSE <statement>; . . . END_IF; Para usar ELSIF ou ELSE, siga essas orientaes: 1. Para selecionar de muitos grupos de declaraes possveis, 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.
declaraes a serem executadas quando as expresses forem falsas

Publicao 1756-PM001E-PT-P - Agosto 2002

6-14

Programa de Texto Estruturado

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 E: no fizer nada se as condies so falsas fazer algo mais se as condies so falsas escolher as declaraes alternativas (ou grupos de declaraes) baseadas nas condies de entrada no fizer nada se as condies so falsas atribuir declaraes padro se todas as condies so falsas Use esta construo IF...THEN IFTHENELSE IFTHENELSIF IFTHENELSIFELSE

Flags de Status Aritmtico:


no afetado

Condies de Falha:
nenhuma

Exemplo 1:
IF...THEN
Se voc quiser: 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 isto: 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 desenergizar light quando o controlador: inserir o modo RUN

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-15

renunciar a 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 3:
IFTHENELSIF
Se voc quiser isto: 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 (desenergizado) 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 ao controlador para 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.)

Publicao 1756-PM001E-PT-P - Agosto 2002

6-16

Programa de Texto Estruturado

Exemplo 4:
IFTHENELSIFELSE
Se voc quiser isto: Se a temperatura do tanque for > 100 ento a bomba = devagar Se a temperatura do tanque for > 200 ento a bomba = rpida 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-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-17

CASE...OF

Use CASE para selecionar o que fazer baseado em um valor numrico.

Operandos:

Texto Estruturado
CASE numeric_expression OF selector1: statement; selectorN: statement; ELSE statement; END_CASE;

Operando: numeric_ expression

Tipo: SINT INT DINT REAL

Formato: tag expresso

Insira: tag ou a expresso que avalie para um nmero (expresso numrica)

selector

SINT INT DINT REAL

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
especifica os valores possveis do seletor alternativo (caminhos) que voc precisa

selector1 : <statement>; . . . selector2 : <statement>;. . . selector3 : <statement>; . . .

declaraes a serem executadas quando numeric_expression = selector1

declaraes a serem executadas quando numeric_expression = selector2

declaraes a serem executadas quando numeric_expression = selector3

opcional

ELSE <statement>; . . . END_CASE;


Publicao 1756-PM001E-PT-P - Agosto 2002

declaraes a serem executadas quando numeric_expression qualquer seletor

6-18

Programa de Texto Estruturado

Consulte a tabela na prxima pgina para validar os valores do seletor. A sintaxe para inserir os valores do seletor :
Quando o seletor for: um valor mltiplo, com valores distintos value: statement value1, value2, valueN : <statement> Insira:

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>

Flags de Status Aritmtico:


no afetado

Condies de Falha:
Nenhuma

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-19

Exemplo

Se voc quiser isto: 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 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;

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 = fechadas (0) ELSE 8,11-13 4..7:

Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;

Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1;

Ingredient_A.Outlet_1 [:=]0; Ingredient_A.Outlet_4 [:=]0; Ingredient_B.Outlet_2 [:=]0; Ingredient_B.Outlet_4 [:=]0; END_CASE;

O [:=] pede ao controlador para tambm desenergizar os tags de sada quando 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.)

Publicao 1756-PM001E-PT-P - Agosto 2002

6-20

Programa de Texto Estruturado

FOR...DO

Use a malha FOR...DO para fazer algo com um nmero especfico de vezes antes de fazer algo mais.

Operandos: 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 uma nica varredura. 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 increment DO <statement>;

Se no especificar um incremento, a malha incrementa pelo 1.

opcional

IFbool_expression1 THEN 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-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-21

Os diagramas a seguir mostram como uma malha FOR...DO executa e como uma declarao EXIT deixa a malha mais cedo.
Foi feito x nmero de vezes? no declarao 1 declarao 2 declarao 3 declarao 4 resto da rotina sim Foi feito x nmero de vezes? no declarao 1 declarao 2 declarao 3 declarao 4 Sair ? no resto da rotina sim

sim

A malha FOR...DO executa um nmero especfico de vezes.

Para parar a malha antes que a contagem alcance o ltimo valor, use uma declarao EXIT.

Flags de Status Aritmtico:


no afetado

Condies de Falha:

Uma falha grave ocorrer se: a construo das malhas for longa demais 6

Tipo de falha: 1

Cdigo de falha:

Exemplo 1:

Se voc quiser isto: Desenergizar os bits 0 - 31 em uma matriz de BOOLs: 1. Inicie o tag subscript para 0. 2. Desenergizar array[ subscript ]. Por exemplo, quando subscript = 5, desenergize array[5]. 3. Adicionar 1 para subscript. 4. Se subscript for para 31, repita 2 e 3. Ou, pare.

Insira este texto estruturado: Para subscript:=0 a 31 por 1 faa array[subscript] := 0; END_FOR;

Publicao 1756-PM001E-PT-P - Agosto 2002

6-22

Programa de Texto Estruturado

Exemplo 2:

Se voc quiser isto: Um tipo de dados definido pelo usurio (estrutura) armazena as seguintes informaes sobre um item no seu estoque: ID do cdigo de barras do item (tipo de dados da string) Quantidade do item em estoque (tipo de dados DINT) Uma matriz da estrutura acima contm um elemento para cada item diferente no seu estoque. Voc quer procurar a matriz para um produto especfico (use seu cdigo de barras) e determinar a quantidade que h em estoque. 1. Obter o tamanho (nmero de itens) da matriz Inventory e armazene o resultado Inventory_Items (tag DINT). 2. Inicie o tag position em 0. 3. Se Barcode corresponder ID do item na matriz, 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. Adicionar 1 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 na matriz. Caso contrrio, pare.

Insira este texto estruturado: SIZE(Inventory,0,Inventory_Items); For position:=0 to Inventory_Items - 1 faa If Barcode = Inventory[position].ID then Quantity := Inventory[position].Qty; Exit; End_If; End_For;

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-23

WHILE...DO

Use a malha WHILE...DO para continuar algo enquanto certas condies forem verdadeiras.

Operandos:

Texto Estruturado
WHILE bool_expression DO <statement>; END_WHILE;

Operando: expresso BOOL BOOL

Tipo:

Formato: tag expresso

Insira: o tag ou a expresso BOOL que avalie um valor como um valor BOOL

IMPORTANTE

Certifique-se de no repetir a malha muitas vezes em um nica varredura. 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_expression1 DO <statement>;
opcional as declaraes para executar enquanto bool_expression1 for verdadeira

IF bool_expression2 THEN 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.

Publicao 1756-PM001E-PT-P - Agosto 2002

6-24

Programa de Texto Estruturado

Os diagramas a seguir mostram como uma malha WHILE...DO se executa e como uma declarao EXIT deixa a malha mais cedo.
expresso BOOL verd declarao 1 declarao 2 declarao 3 declarao 4 resto da rotina falsa expresso BOOL verd 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.

Exemplo 1:

Se voc quiser isto: A malha WHILE...DO avalia primeiro suas condies. Se as condies forem verdadeiras, o controlador executa ento as declaraes na malha. pos := 0;

Insira este texto estruturado:

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 String_tag.DATA[pos] := SINT_array[pos]; determina se as condies so verdadeiras antes de executar as declaraes novamente. As declaraes em uma malha end_while; REPEAT...UNTIL so sempre executadas pelo menos uma vez. As declaraes em uma malha WHILE...DO nuca podem ser executadas.

Flags de Status Aritmtico:


no afetado

Condies de Falha:

Uma falha grave ocorrer se: a construo das malhas for muito longa 6

Tipo de falha: 1

Cdigo de falha:

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-25

Exemplo 2:

Se voc quiser isto: Movimente os caracteres ASCII de uma matriz SINT para um tag da string. (Em uma matriz SINT, cada elemento suporta um caracter.) Pare quando alcanar o mecanismo de retorno.

Insira este texto estruturado: element_number := 0; SIZE(SINT_array, 0, SINT_array_size);

While SINT_array[element_number] <> 13 do 1. Inicie Element_number para 0. String_tag.DATA[element_number] := 2. Conte o nmero de elementos em SINT_array (matriz SINT_array[element_number]; que contm os caracteres ASCII) e armazena o resultado em SINT_array_size (tag DINT). element_number := element_number + 1; 3. Se o caracter em SINT_array[element_number] = 13 (valor decimal de $), ento pare. String_tag.LEN := element_number; 4. Defina String_tag[element_number] = caracter em If element_number = SINT_array_size then SINT_array[element_number]. 5. Adicione 1 para element_number. Isto permite que o exit; controlador verifique o SINT_array. end_if; 6. Defina o membro Length de String_tag = element_number. (Isto registra o nmero de caracteres end_while; em String_tag mais distante.) 7. Se element_number = SINT_array_size, ento pare. (Voc est no final da matriz e ela no contm um mecanismo de retorno.) 8. V para a etapa 3.

Publicao 1756-PM001E-PT-P - Agosto 2002

6-26

Programa de Texto Estruturado

REPEAT...UNTIL

Use a malha REPEAT...UNTIL para continuar algo at as condies serem verdadeiras.

Operandos:

Texto Estruturado
REPEAT <statement>; UNTIL bool_expression END_REPEAT;

Operando: bool_ expression BOOL

Tipo:

Formato: tag expresso

Insira: o tag BOOL ou a expresso que avalie um valor como um valor BOOL

IMPORTANTE

Certifique-se de no repetir a malha muitas vezes em uma nica varredura. 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>;
opcional declaraes para serem executadas enquanto bool_expression1 for falso

IF bool_expression1 THEN 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-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-27

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 verda

verda

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 isto: 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. pos := -1; REPEAT pos := pos + 2; UNTIL ((pos = 101) OR (structarray[pos].value = targetvalue)) end_repeat; Insira este texto estruturado:

Flags de Status Aritmtico:


no afetado

Condies de Falha:

Uma falha grave ocorrer se: a construo das malhas for muito longa 6

Tipo de falha: 1

Cdigo de falha:

Publicao 1756-PM001E-PT-P - Agosto 2002

6-28

Programa de Texto Estruturado

Exemplo 2:

Se voc quiser isso: Movimente os caracteres ASCII de uma matriz SINT para um tag da string. (Em uma matriz SINT, cada elemento retm um caracter.) Pare quando alcanar o mecanismo de retorno.

Insira este texto estruturado: element_number := 0; SIZE(SINT_array, 0, SINT_array_size);

Repeat 1. Inicie Element_number para 0. String_tag.DATA[element_number] := 2. Conte o nmero de elementos em SINT_array (matriz SINT_array[element_number]; que contm os caracteres ASCII) e armazena o resultado em SINT_array_size (tag DINT). element_number := element_number + 1; 3. Defina String_tag[element_number] = o caracter em SINT_array[element_number]. String_tag.LEN := element_number; 4. Adicione 1 a element_number. Isto permite que o If element_number = SINT_array_size then controlador verifique o SINT_array. 5. Defina o membro Length de String_tag = exit; element_number. (Isto registra o nmero de caracteres end_if; em String_tag at agora.) 6. Se element_number = SINT_array_size, ento pare. Until SINT_array[element_number] = 13 (Voc est no final da matriz e ele no contm um mecanismo de retorno.) end_repeat; 7. Se o caracter em SINT_array[element_number] = 13 (valor decimal do mecanismo de retorno), ento pare. Caso contrrio, v para 3.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programa de Texto Estruturado

6-29

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 adicionar um comentrio: em uma nica linha ao final de uma linha do texto estruturado Use um desses formatos: //comment

(*comment*)

/*comment*/ em uma linha do texto estruturado (*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 comeo 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; Sugar.Inlet[:=]1;(*open the inlet*) IF Sugar.Low (*low level LS*)& Sugar.High (*nvel elevado 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 na matriz Inventory e armazena o valor do tag Inventory_Items tag*/ SIZE(Inventory,0,Inventory_Items);

(*comment*)

Publicao 1756-PM001E-PT-P - Agosto 2002

6-30

Programa de Texto Estruturado

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

Programao de um Diagrama do Bloco de Funes

Quando Usar Este Procedimento

Use esse procedimento para: organizar uma rotina do bloco de funes desenvolver um ou mais diagramas do bloco de funes para a rotina inserir os diagramas do bloco de funes na rotina

Antes de Usar Este Procedimento

Antes de usar esse procedimento, certifique-se de que capaz de realizar as tarefas a seguir: Abertura ou Fechamento de uma Pasta Criao de uma Rotina Para obter mais informaes sobre qualquer uma dessas tarefas, consulte Organizao de Tarefas, Programas e Rotinas na pgina 2-1.

Como Usar Este Procedimento

Para programar uma rotina de bloco de funes, realize as seguintes etapas: Identificao das Planilhas para a Rotina Seleo dos Elementos do Bloco de Funes Seleo de um Nome de Tag para um Elemento Definio da Seqncia de Execuo Identificao de Todos os Conectores Definio do Controle de Programao/Operao Adio de uma Planilha Adio de um Elemento do Bloco de Funes Conexo de Elementos Atribuio de um Tag Atribuio de um Valor Imediato (Constante) Conexo de Blocos com um OCON e ICON Verificao da Rotina

Publicao 1756-PM001E-PT-P - Agosto 2002

7-2

Programao de um Diagrama do Bloco de Funes

Identificao das Planilhas para a Rotina

Para navegar de forma mais fcil atravs de uma rotina de bloco de funes, divida a rotina em uma srie de planilhas: As planilhas ajudam a organizar e encontrar os blocos de funes. Elas no interferem na ordem em que os blocos de funes executam. Quando a rotina executa, todas as planilhas executam. Em geral, use uma planilha para cada dispositivo (motor, vlvula, etc.) O exemplo a seguir mostra uma rotina de bloco de funes que controla 4 motores.

EXEMPLO

Identificao das Planilhas para a Rotina


Rotina de Controle do Motor Planilha 1 de 4 motor 1 Planilha 2 de 4 motor 2

Planilha 3 de 4

motor 3

Planilha 4 de 4

motor 4

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-3

Seleo dos Elementos do Bloco de Funes

Para controlar um dispositivo, use os seguintes elementos:

referncia de entrada (IREF) bloco de funes

referncia de sada (OREF)

conector do fio de sada (OCON)

conector do fio de entrada (ICON)

Use a tabela a seguir para escolher os elementos do bloco de funes:


Se voc quiser: fornecer um valor de um tag ou dispositivo de entrada enviar um valor a um dispositivo de sada ou tag realizar uma operao em um valor ou valores de entrada e produzir um valor ou valor de sada transferir os dados entre os blocos de funes quando esses esto: distantes da mesma planilha em diferentes planilhas na mesma rotina dispersar os dados para diversos pontos na rotina Use: referncia de entrada (IREF) referncia de sada (OREF) bloco de funes conector do fio de sada (OCON) e o conector do fio de entrada (ICON)

nico conector do fio de sada (OCON) e mltiplos conectores do fio de entrada (ICON)

Seleo de um Nome de Tag para um Elemento

Cada bloco de funes usa um tag para armazenar a configurao e informaes de status sobre a instruo. Ao adicionar uma instruo do bloco de funes, o software RSLogix 5000 cria um tag para o bloco automaticamente. possvel usar esse tag como est, renome-lo ou atribuir um tag diferente. Para as IREF e OREF, necessrio criar um tag ou atribuir um tag existente.

Publicao 1756-PM001E-PT-P - Agosto 2002

7-4

Programao de um Diagrama do Bloco de Funes

A tabela a seguir esboa o formato para um nome do tag:


Para um: tag nmero de bit de um tipo de dados maiores membro de uma estrutura elemento de uma matriz de duas dimenses elemento de uma matriz de uma dimenso elemento de uma matriz de duas dimenses elemento de uma matriz em uma estrutura membro de um elemento de uma matriz tag_name tag_name.bit_number tag_name.member_name tag_name[x] tag_name[x,y] tag_name[x,y,z] tag_name.member_name[x] tag_name[x,y,z].member_name Especifique:

onde: x o local do elemento na primeira dimenso. y o local do elemento na segunda dimenso. z o local do elemento na terceira dimenso. Para uma estrutura dentro de uma estrutura, adicione um .member_name extra.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-5

Definio da Seqncia de Execuo

Voc define a seqncia de execuo (fluxo de dados) ao conectar os elementos juntos e indicar quaisquer fios de entrada (realimentao), se necessrio. O local de um bloco no tem efeito na ordem em que os blocos executam.

fluxo de dados dos pinos de sada para os pinos de entrada

pino de sada

fio

pino de entrada pino de sada fio

pino de entrada

Smbolos do fio: valor SINT, INT, DINT ou REAL valor BOOL (0 ou 1)

Reteno de Dados
Se usar uma IREF para especificar os dados de entrada para uma instruo do bloco de funes, os dados na IREF so retidos para a varredura da rotina do bloco de funes. A IREF retm os dados dos tags de escopo do controlador e do escopo do programa. O controlador atualiza todos os dados de IREF no comeo de cada varredura.

IREF

Nesse exemplo, o valor do tagA armazenado no comeo de execuo da rotina. O valor armazenado usado quando Block_01 executa. O mesmo valor armazenado tambm usado quando Blcock_02 executa. Se o valor de tagA

Publicao 1756-PM001E-PT-P - Agosto 2002

7-6

Programao de um Diagrama do Bloco de Funes

alterar durante a execuo da rotina, o valor armazenado de tagA na IREF no altera at a prxima execuo da rotina.
Block_01

tagA

Block_02

Esse exemplo o mesmo que o mostrado anteriormente. O valor do tagA armazenado somente uma vez no comeo de execuo da rotina. A rotina usa esse valor armazenado por toda a rotina.
Block_01 tagA

Block_02 tagA

Primeiramente, com o software RSLogix 5000, verso 11, possvel usar o mesmo tag em IREFs mltiplas e OREF na mesma rotina. Como os valores de tags nas IREFs so retidos a cada varredura pela rotina, todas as IREFs usaro o mesmo valor, mesmo se uma OREF obtiver um valor de tag diferente durante a execuo da rotina. Nesse exemplo, se tagA possui um valor de 25,4 quando a rotina comea a execuo dessa varredura e Block_01 altera o valor de tagA para 50,9, a segunda IREF conectada em Block_02 usar um valor de 25,4 quando Block_02 executar essa varredura. O novo valor de tagA (50,9) no ser usado por nenhuma das IREFs nessa rotina at que a prxima varredura se inicie.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-7

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 funes juntos e indicar o fluxo de dados de quaisquer fios de realimentao, se necessrio. Se os blocos de funes no forem conectados juntos, no importa que o bloco execute primeiro. No h fluxo de dados entre os blocos.

Se voc conectar os blocos em seqncia, a ordem de execuo move-se da entrada para a sada. As entradas de um bloco requerem que os dados estejam disponveis antes do controlador executar o bloco. Por exemplo, o bloco 2 precisa executar 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. O exemplo a seguir ideal porque os dois grupos de blocos no esto conectados juntos. Os blocos em um grupo especfico executam uma ordem adequada em relao aos blocos no grupo.
1 3 5

Publicao 1756-PM001E-PT-P - Agosto 2002

7-8

Programao de um Diagrama do Bloco de Funes

Determinao de uma Malha


Para criar uma malha de realimentao ao redor do bloco, conecte um pino de sada do bloco a um pino de entrada do mesmo bloco. O exemplo seguinte est OK. A malha contm apenas um bloco, logo, no importa a ordem de execuo.

Esse pino de entrada usa uma sada que o bloco produziu na varredura anterior.

Se um grupo de blocos estiver em uma malha, o controlador no pode determinar qual bloco executar primeiro. Em outras palavras, ele no pode determinar a malha.
? ? ?

Para identificar que bloco executar primeiro, marque o fio de entrada que cria a malha (o fio de realimentao) com o indicador Considerar Dados Disponveis (Assume Data Available). No exemplo seguinte, o bloco 1 usa a sada do bloco 3 que foi produzida na execuo anterior da rotina.
1 2 3

Esse pino de entrada usa a sada que o bloco 3 produziu na varredura anterior. Indicador Considerar Dados Disponveis

O indicador Considerar Dados Disponveis define o fluxo de dados na malha. A seta indica que os dados servem como entrada para o primeiro bloco na malha.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-9

No marque todos os fios de uma malha com o indicador Considerar Dados Disponveis.
Esse est OK 1 2 ? Esse No Est OK ?

Indicador Considerar Dados Disponveis O indicador Considerar Dados Disponveis define o fluxo de dados na malha.

O controlador no pode resolver a malha porque todos os fios usam o indicador Considerar Dados Disponveis.

Determinao do Fluxo de Dados Entre Dois Blocos


Se usar dois ou mais fios para conectar dois blocos, use os mesmos indicadores de fluxo de dados para todos os fios entre os dois blocos.
Esse est OK Esse No est OK

Nenhum fio usa o indicador Considerar Dados Disponveis.

Um fio usa o indicador Considerar Dados Disponveis enquanto o outro no usa.

Indicador Considerar Dados Disponveis Os fios usam o indicador Considerar Dados Disponveis.

Publicao 1756-PM001E-PT-P - Agosto 2002

7-10

Programao de um Diagrama do Bloco de Funes

Criao de um Atraso de Varredura


Para produzir um atraso de varredura entre os blocos, use o indicador Considerar Dados Disponveis. No exemplo a seguir, o bloco 1 executa primeiro. Ele usa a sada do bloco 2 que foi produzida na varredura anterior da rotina.
2 1

Indicador Considerar Dados Disponveis

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-11

Resumo
Em resumo, uma rotina do bloco de funes executa nessa ordem: 1. O controlador retm todos os valores de dados em IREFs. 2. O controlador executa os outros blocos de funes na seqncia determinada pela ordem em que esto conectados. 3. O controlador escreve as sadas em OREFs.

Identificao de Todos os Conectores

Como os fios, os conectores transferem os dados dos pinos de sada para os pinos de entrada. Use os conectores quando: os elementos que voc quer conectar esto em diferentes planilhas na mesma rotina difcil rotear um fio ao redor de outros fios ou elementos voc quer dispersar os dados para diversos pontos na rotina

Connector_A dados

Connector_A

Para usar os conectores, siga essas regras: Cada OCON requer um nico nome. Para cada OCON, deve-se possuir pelo menos um ICON correspondente (isto , um ICON com o mesmo nome que o OCON). Mltiplos ICONs podem referir-se ao mesmo OCON. Isso permite que voc disperse os dados para diversos pontos na rotina.

Publicao 1756-PM001E-PT-P - Agosto 2002

7-12

Programao de um Diagrama do Bloco de Funes

Definio do Controle de Programao/Operao

Diversas instrues suportam o conceito de controle de Programao/Operao. Essas instrues incluem: Seleo Aperfeioada (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 pelo uso dessas entradas:
Entrada: .ProgProgReq .ProgOperReq .OperProgReq .OperOperReq Descrio: Um programa que pede para ir para controle Program. Um programa que pede para ir para controle de Operator. Uma operao que pede para ir para controle de Program. Uma operao que pede para ir para controle de Operator.

Para determinar se uma instruo est em 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. 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

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-13

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

Conectar um 1 em ProgOperReq significa que o programa do usurio sempre

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 da instruo. O exemplo a seguir mostra como travar uma instruo no controle Program.

Quando StartupSequenceActive energizado, a instruo PIDE colocada em

Publicao 1756-PM001E-PT-P - Agosto 2002

7-14

Programao de um Diagrama do Bloco de Funes

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.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-15

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 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-PM001E-PT-P - Agosto 2002

7-16

Programao de um Diagrama do Bloco de Funes

Adio de uma Planilha

Para adicionar uma planilha a uma rotina do bloco de funes:


1. 2.

1. Clique em 2. Insira uma descrio da planilha (at 50 caracteres).

Adio de um Elemento do Bloco de Funes

Use a barra de ferramentas Language Element para adicionar um elemento do bloco de funes a sua rotina.

IREF

OREF

ICON OCON

blocos de funes

outros blocos de funes

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-17

Para adicionar um elemento: 1. Na barra de ferramentas Language Element, clique no boto para o elemento que voc quer adicionar. 2. Arraste o elemento at o local desejado. Por exemplo:

possvel tambm arrastar o boto para o elemento at o local desejado diretamente. Por exemplo

Publicao 1756-PM001E-PT-P - Agosto 2002

7-18

Programao de um Diagrama do Bloco de Funes

Conexo de Elementos

Para definir o fluxo de dados: Mostrar ou Esconder um Pino Conexo de Elementos Juntos Marcao de uma Conexo com o Indicador Considerar Dados Disponveis

Mostrar ou Esconder um Pino


Ao adicionar uma instruo do bloco de funes, um conjunto padro de pinos para os parmetros so mostrados. O restante dos pinos escondido. Para mostrar ou esconder um pino: 1. Clique no boto do bloco.

2.

2. Remova ou selecione a caixa de seleoVis do pino:


Se voc quiser: esconder um pino mostrar um pino Ento: Desenergize (desmarque) sua caixa de seleo Vis. Marque sua caixa de seleo Vis.

3. Selecione

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-19

Conexo de Elementos Juntos


Para conectar dois elementos juntos, clique no pino de sada do primeiro elemento e clique no pino de entrada do outro elemento. Um ponto verde mostra um ponto de conexo vlida. Por exemplo:
A B

ponto verde

Marcao de uma Conexo com o Indicador Considerar Dados Disponveis


Para definir uma conexo como uma entrada, clique com o boto direito na conexo e selecione Assume Data Available.
1 2 3

conexo de entrada

Publicao 1756-PM001E-PT-P - Agosto 2002

7-20

Programao de um Diagrama do Bloco de Funes

Atribuio de um Tag

Para atribuir um tag a um elemento do bloco de funes, voc tem essas opes: Criao e Atribuio de um Tag Novo Renomeao do Tag de um Bloco de Funes Atribuio de um Tag Existente

Criao e Atribuio de um Tag Novo


1. Clique duas vezes na rea do operando. 2. Digite um nome para o tag e pressione a tecla Enter. 3. Clique com o boto direito do mouse no nome do tag e selecione New "tag_name".
4.

4. Pressione o boto

5.

6.

5. Selecione o tipo de dados para o tag. 6. Se quiser definir o tag como uma matriz, digite o nmero de elementos em cada dimenso. 7. Selecione

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-21

8.

8. Selecione o escopo para o tag. 9. Selecione

Renomeao do Tag de um Bloco de Funes


1. Clique no boto do bloco.

2. Clique na guia Tag.

3.

3. Digite o novo nome do tag para o bloco. 4. Selecione

Atribuio de um Tag Existente


Block_01

1. Clique duas vezes na rea do operando. 2. Clique em 3. Selecione o tag:


Para selecionar um: tag nmero de bit Faa isto: Clique duas vezes no nome do tag. A. D um clique no nome do tag. B. direita do nome do tag, clique em C. Clique no objeto desejado.

4. Pressione [Enter] ou clique em um lugar diferente no diagrama.

Publicao 1756-PM001E-PT-P - Agosto 2002

7-22

Programao de um Diagrama do Bloco de Funes

Atribuio de um Valor Imediato (Constante)

Para atribuir um valor constante ao contrrio de um valor do tag para um parmetro de entrada, voc tem essas opes:
Se voc quiser: tornar o valor visvel no diagrama e relatrios Ento: Uso de uma IREF

ser capaz de alterar o valor on-line sem editar a rotina Insero de um Valor no Tag de um Bloco

Uso de uma IREF


1. Adicione uma IREF. 2. Conecte a IREF ao pino de entrada que possui o valor.

3.

3. Clique duas vezes na rea do operando da IREF. 4. Insira o valor e pressione a tecla Enter.

Insero de um Valor no Tag de um Bloco


Para atribuir um valor a um parmetro quando conectar o fio no seu pino: 1. Clique no boto do bloco.

2.

2. Insira o valor. 3. Selecione

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao de um Diagrama do Bloco de Funes

7-23

Conexo de Blocos com um OCON e ICON

Para transferir os dados entre as planilhas ou situaes complexas de conexo: Adio de um OCON Adio de um ICON

ICON OCON

Adio de um OCON
1. Adicione um conector de fio de entrada (OCON) e o coloque perto do pino de sada que fornece o valor. 2. Conecte OCON ao pino de entrada. 3. Clique duas vezes na rea do operando de OCON. 4. Digite um nome que identifique o conector e pressione [Enter].

Adio de um ICON
1. Adicione um conector do fio de entrada (ICON) e o coloque perto do pino de entrada que possui o valor do OCON correspondente. 2. Conecte ICON ao pino de entrada. 3. Clique duas vezes na rea do operando do ICON. 4. Selecione o nome do OCON que fornece o valor a esse conector e clique em um lugar em branco no diagrama

Publicao 1756-PM001E-PT-P - Agosto 2002

7-24

Programao de um Diagrama do Bloco de Funes

Verificao da Rotina

Assim que programar sua rotina, verifique periodicamente seu trabalho: 1. Na barra de ferramentas na parte superior da janela do RSLogix 5000, clique em 2. Se algum erro for listado na parte inferior da janela: a. V at o primeiro erro ou aviso e pressione [F4]. b. Corrija o erro de acordo com a descrio na janela Results. c. V para a etapa 1. 3. Para fechar a janela Results, pressione [Alt] + [1].

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

Programao da Lgica Ladder

Quando Usar Este Procedimento

Use esse procedimento para: desenvolver a lgica para a rotina de lgica ladder inserir a lgica na rotina

Antes de Usar Este Procedimento

Antes de usar esse procedimento, certifique-se de que capaz de realizar as tarefas a seguir: Abertura ou Fechamento de uma Pasta Criao de uma Rotina Para obter mais informaes sobre qualquer uma dessas tarefas, consulte Organizao de Tarefas, Programas e Rotinas na pgina 2-1.

Como Usar Este Procedimento

Para programar uma rotina de lgica ladder, faa as seguintes tarefas: Revise Definies Escrita da Lgica Ladder Insero da Lgica Ladder Atribuio de Operandos Verificao da Rotina

Publicao 1756-PM001E-PT-P - Agosto 2002

8-2

Programao da Lgica Ladder

Definies

Antes de escrever ou inserir a lgica ladder, revise os termos a seguir: Instruo Ramificao Condio de Linha

Instruo
Voc organiza a lgica ladder como linhas em ladder e coloca as instrues em cada linha. H dois tipos bsicos de instrues: Instruo de entrada: uma instruo que verifica, compara ou examina as condies especficas na mquina ou processo. Instruo de sada: uma instruo que realiza alguma ao, como ligar um dispositivo, desligar um dispositivo, copiar dados ou calcular um valor.

instrues de entrada

instrues de sada

Ramificao
Uma ramificao so duas ou mais instrues em paralelo.

ramificao

ramificao

No h limite para o nmero de nveis de ramificao paralelos que voc pode inserir. A figura a seguir mostra uma ramificao paralela com cinco nveis. A

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao da Lgica Ladder

8-3

linha principal o primeiro nvel da ramificao, seguido de quatro ramificaes adicionais.


instruo de sada

instruo de entrada

Voc pode encadear as ramificaes em at 6 nveis. A figura a seguir mostra uma ramificao encadeada. A instruo final de sada est em uma ramificao encadeada que tem trs nveis de profundidade.
instruo de entrada instruo de sada

Condio de Linha
O controlador avalia as instrues de lgica ladder, com base na condio da linha que antecede a instruo (entrada da condio da linha).
instruo de entrada instruo de sada

entrada da condio da faixa

sada da condio de linha

Publicao 1756-PM001E-PT-P - Agosto 2002

8-4

Programao da Lgica Ladder

Apenas as instrues de entrada afetam a entrada da condio de linha das instrues subseqentes na linha: Se a entrada da condio de linha de uma instruo de entrada for verdadeira, o controlador avalia a instruo e energiza a sada da condio de linha para corresponder aos resultados da avaliao. Se a instruo for avaliada como verdadeira, a sada da condio de linha verdadeira. Se a instruo for avaliada como falsa, a sada da condio de linha falsa. Uma instruo de sada no muda a sada da condio de linha Se a entrada da condio de linha para uma instruo de sada for verdadeira, a sada da condio de linha energizada para verdadeira. Se a entrada da condio de linha para uma instruo de sada for falsa, a sada da condio de linha energizada para falsa.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao da Lgica Ladder

8-5

Escrita da Lgica Ladder

Para desenvolver a lgica ladder, realize as aes a seguir: Seleo das Instrues Exigidas Organizao das Instrues de Entrada Organizao das Instrues de Sada Seleo de um Nome de Tag para um Operando

Seleo das Instrues Exigidas


1. Separe as condies para verificar a ao a tomar. 2. Escolha a instruo de entrada adequada para cada condio e instruo de sada adequada para cada ao. Para escolher instrues especficas, consulte os manuais a seguir: Logix5000 Controllers General Instructions Reference Manual, publicao 1756-RM003 Logix5000 Controllers Process and Drives Instructions Reference Manual, publicao 1756-RM006 Logix5000 Controllers Motion Instruction Set Reference Manual, publicao 1756-RM007 Neste captulo, os exemplos usam duas simples instrues que ajudam voc a escrever a lgica ladder. As regras que voc aprende para essas instrues aplicam-se a todas as outras instrues.
Smbolo: Nome: Examine Se Energizado XIC Mnemnica: Se o bit for: on (1) off (0) Sada Energizada OTE Se as instrues esquerda (condio de entrada de linha) forem: verdadeira falsa Descrio: Uma instruo de entrada que observa um bit de dados. Ento a instruo (condio de sada da linha) : verdadeira falsa Ento as instrues transformam o bit: on (1) off (0)

Uma instruo de sada que controla um bit de dados.

Publicao 1756-PM001E-PT-P - Agosto 2002

8-6

Programao da Lgica Ladder

Organizao das Instrues de Entrada


Organize as instrues de entrada em uma linha usando o grfico a seguir:
Para verificar mltiplas condies de entrada quando: todas as condies devem ser atendidas para realizar a ao Por exemplo, se condition_1 E condition_2 E condition_3 Organize as instrues de entrada: Em srie:
condition_1 condition_2 condition_3

qualquer uma das diversas condies devem ser atendidas para realizar a ao Por exemplo, se condition_1 OU condition_2 OU condition_3

Em paralelo:
condition_1

condition_2

condition_3

h uma combinao de todas acima Por exemplo, Se condition_1 E condition_2 ou Se condition_3 E condition_2

Em combinao:
condition_1 condition_2

condition_3

DICA

O controlador executa todas as instrues em uma linha sem considerar a entrada da condio de linha. Para otimizar o desempenho de uma srie de instrues, seqencie as instrues a partir daquela que tenha maior probabilidade de ser falsa esquerda para a que tenha maior probabilidade de ser verdadeira.
maior probabilidade de que menor probabilidade de a instruo seja FALSA que a instruo seja FALSA

Quando o controlador encontra uma instruo falsa, ele executa as instrues restantes nas sries com a entrada da condio de linha definida como falsa. Geralmente, uma instruo executa de forma mais rpida quando sua entrada de condio de linha for falsa em vez de verdadeira.

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao da Lgica Ladder

8-7

Organizao das Instrues de Sada


Coloque pelo menos uma instruo de sada direita das instrues de entrada. possvel inserir mltiplas instrues de sada por linha de lgica, de acordo com:
Opo: Coloque as instrues de sada em seqncia na linha (serial). Coloque as instrues de sada em ramificaes (paralelo). Exemplo:

Coloque as instrues de sada entre as instrues de entrada, desde que a ltima instruo da linha seja uma instruo de sada

Seleo de um Nome de Tag para um Operando


A maioria das instrues requer um ou mais dos seguintes tipos de operandos: nome do tag (varivel) valor imediato (constante) nome de uma rotina, label, etc. A tabela a seguir esboa o formato para um nome do tag:
Para um: tag nmero de bit de um tipo maior de dados membro de uma estrutura elemento de uma matriz de uma dimenso elemento de uma matriz de duas dimenses elemento de uma matriz de trs dimenses elemento de uma matriz em uma estrutura membro de um elemento de uma matriz tag_name tag_name.bit_number nome_do_tag.member_name tag_name[x] tag_name[x,y] tag_name[x,y,z] tag_name.member_name[x] tag_name[x,y,z].member_name Especifique:

onde: x o local do elemento na primeira dimenso. y o local do elemento na segunda dimenso. z o local do elemento na terceira dimenso. Para uma estrutura dentro de uma estrutura, adicione um .member_name adicional.
Publicao 1756-PM001E-PT-P - Agosto 2002

8-8

Programao da Lgica Ladder

EXEMPLO

Seleo de um Nome de Tag para um Operando

Para acessar: o tag machine_on bit nmero 1 do tag one_shots DN membro (bit) do temporizador running_seconds mix membro do tag north_tank elemento 2 na matriz recipe e elemento 1,1 na matriz tanks

O nome do tag tem esta aparncia:


machine_on

one_shots.1

running_seconds.DN

north_tank.mix

COP Copy File Source recipe[2] Dest tanks[1,1] Length 1 CLR Clear Dest north_tank.preset[2] 0

elemento 2 na matriz preset dentro do tag north_tank

part_advance membro do elemento 1 na matriz drill

drill[1].part_advance

42357

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao da Lgica Ladder

8-9

Insero da Lgica Ladder

Uma nova rotina contm uma linha pronta para as instrues.


cursor (azul) Ao adicionar uma instruo ou ramificao, ela aparece direita do cursor.

Ao adicionar uma linha, ela aparece abaixo do cursor.

Use a barra de ferramentas Language Element para adicionar um elemento de lgica ladder a sua rotina.

nvel de ramificao ramificao linha XIC XIO OTE OTU OTL

outras instrues

Para adicionar um elemento: Acrscimo de um Elemento ao Local do Curso Arrastar e Soltar um Elemento

Acrscimo de um Elemento ao Local do Curso


1. Clique (selecione) na instruo, ramificao ou linha que est acima ou esquerda de onde voc quer adicionar um elemento. 2. Na barra de ferramentas Language Element, clique no boto para o elemento que voc quer adicionar.

Publicao 1756-PM001E-PT-P - Agosto 2002

8-10

Programao da Lgica Ladder

Arrastar e Soltar um Elemento


Arraste o boto para o elemento diretamente ao local desejado. Um ponto verde mostra um local de colocao vlida (solte no ponto). Por exemplo

Atribuio de Operandos

Para atribuir um operando voc tem essas opes: Criao e Atribuio de um Tag Novo Seleo de um Nome ou de um Tag Existente Arrastar um Tag da Janela de Tags Atribuio de um Valor Imediato (Constante)

Criao e Atribuio de um Tag Novo


1. Clique na rea do operando da instruo. 2. Digite um nome para o tag e pressione [Enter]. 3. Clique com o boto direito no nome do tag e escolha New "tag_name".
4.

4. Pressione o boto

Publicao 1756-PM001E-PT-P - Agosto 2002

Programao da Lgica Ladder

8-11

5.

6.

5. Selecione o tipo de dados para o tag. 6. Se quiser definir o tag como uma matriz, digite o nmero de elementos em cada dimenso. 7. Selecione

8.

8. Selecione o escopo para o tag. 9. Selecione

Seleo de um Nome ou de um Tag Existente


1. Clique duas vezes na rea do operando. Uma caixa de entrada de texto abre. 2. Clique em 3. Selecione o nome:
Para selecionar um: label, nome da rotina ou tipo de nome semelhante tag nmero de bit Clique no nome. Clique duas vezes no nome do tag. A. Clique no nome do tag. B. direita do nome do tag, clique em C. Clique no bit solicitado. Faa isto:

Publicao 1756-PM001E-PT-P - Agosto 2002

8-12

Programao da Lgica Ladder

4. Pressione [Enter] ou clique em um lugar diferente no diagrama.

Arrastar um Tag da Janela de Tags


1. Encontre um tag na janela de Tags. 2. Clique no tag duas ou trs vezes at que ele se destaque. 3. Arraste o tag para o seu local na instruo.

Atribuio de um Valor Imediato (Constante)


1. Clique na rea do operando da instruo. 2. Digite o valor e pressione [Enter].

Verificao da Rotina

Assim que programar a(s) rotina(s), verifique seu trabalho periodicamente: 1. Na barra de ferramentas mais alta da janela do RSLogix 5000, clique em 2. Se algum erro for listado na parte inferior da janela: a. V para o primeiro erro ou aviso, pressione [F4]. b. Corrija o erro de acordo com a descrio na janela de Results. c. V para a etapa 1. 3. Para fechar a janela Results, pressione [Alt] + [1].

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

Acesso aos Valores do Sistema

Quando Usar Este Procedimento Como Usar Este Procedimentoo


Se voc quiser:

Utilize esse procedimento para obter ou usar as informaes de status sobre o controlador Logix5000.

Consulte: Monitorao de Flags de Status na pgina 9-1 Obteno e Energizao de Dados do Sistema na pgina 9-3 Determinao das Informaes sobre a Memria do Controlador na pgina 9-6

usar palavras-chave especficas na lgica para monitorar eventos especficos obter ou energizar os valores do sistema obter informaes sobre a memria do controlador

Monitorao de Flags de Status

O controlador suporta as palavras-chave de status que podem ser usadas na lgica para monitorar eventos especficos: As palavras-chave de status no so sensveis ao contexto. Como os flags de status podem mudar rapidamente, o software RSLogix 5000 no exibe o status dos flags. (Isto , mesmo quando um flag de status energizado, uma instruo referente a esse flag no destacada.) No possvel definir alias do tag para uma palavra-chave. Voc pode usar essas palavras-chave:
Para determinar se: Use:

o valor que est armazenando no pode ajustar-se em destino porque : S: V maior que o valor mximo para o destino menor que o valor mnimo para o destino Importante: cada vez que S:V passar de desenergizado para energizado, ele cria uma falha de advertncia (tipo 4, cdigo 4) o valor de destino da instruo 0 o valor de destino da instruo negativo S:Z S:N

Publicao 1756-PM001E-PT-P - Agosto 2002

9-2

Acesso aos Valores do Sistema

Para determinar se: uma operao aritmtica causa um transporte ou emprstimo que tenta usar os bits que esto fora do tipo de dados Por exemplo: adicionando 3 + 9 causa um transporte de 1 subtraindo 25 - 18 causa um emprstimo de 10 essa a primeira varredura normal de rotinas no programa atual

Use: S:C

S:FS

S:MINOR pelo menos uma falha de advertncia foi gerada: O controlador energiza esse bit quando uma falha de advertncia ocorre devido execuo do programa. O controlador no energiza esse bit para falhas de advertncia no relacionadas execuo do programa, como bateria fraca.

Publicao 1756-PM001E-PT-P - Agosto 2002

Acesso aos Valores do Sistema

9-3

Obteno e Energizao de Dados do Sistema

O controlador armazena os dados do sistema em objetos. No h arquivo de status, como no controlador CLP-5. Use as instrues GSV/SSV de leitura e escrita dos dados do sistema do controlador que esto armazenados em objetos: A instruo GSV recupera as informaes especificadas e as coloca no destino. A instruo SSV energiza o atributo especificado com os dados a partir da origem.

ATENO

Use a instruo SSV cuidadosamente. Fazer as mudanas para objetos pode causar uma operao inesperada do controlador ou ferimentos.

Para obter ou energizar um valor do sistema: 1. Abra o projeto do RSLogix 5000. 2. No menu Help, selecione Contents. 3. D um clique na guia Index. 4. Digite gsv/ssv objects e clique em Display.

Publicao 1756-PM001E-PT-P - Agosto 2002

9-4

Acesso aos Valores do Sistema

5. Clique no objeto requisitado.


Para ler ou escrever: os eixos de um servomdulo o tempo de atraso do sistema o hardware fsico de um controlador o tempo coordenado do sistema para os dispositivos em um chassi o driver de comunicao DF1 para a porta serial o histrico de falha para um controlador os atributos de uma instruo de mensagem status, falhas e modo de um mdulo grupo de eixos Clique em: AXIS CONTROLLER CONTROLLERDEVICE CST DF1 FAULTLOG MESSAGE MODULE MOTIONGROUP

as informaes de falha ou o tempo de varredura para PROGRAM um programa o nmero de exemplo de uma rotina a configurao de uma porta serial as propriedades ou tempo decorrido de uma tarefa o tempo do wallclock de um controlador ROTINA SERIALPORT TASK WALLCLOCKTIME

6. Na lista de atributos para o objeto, identifique o atributo que quer acessar. 7. Crie um tag para o valor do atributo:
Se o tipo de dados do atributo for: um elemento (p. ex.: DINT) mais de um elemento (p. ex.: DINT[7]) Ento: Crie um tag para o atributo. A. Crie um tipo de dados definido pelo usurio que corresponda organizao de dados usados pelo atributo. B. Crie um tag para o atributo e use o tipo de dados da Etapa A.

8. Na rotina lgica ladder, insira a instruo apropriada:


Para: ler o valor de um atributo escrever ou ler o valor de um atributo GSV SSV Digite esta instruo:

Publicao 1756-PM001E-PT-P - Agosto 2002

Acesso aos Valores do Sistema

9-5

9. Atribua os operandos necessrios para a instruo:


Para este operando: Class name Instance name Selecione: o nome do objeto o nome do objeto especfico (p. ex.: o nome do mdulo de E/S requisitado, tarefa, mensagem) Nem todos os objetos requerem esta entrada. Para especificar a tarefa atual, programa ou rotina, selecione THIS. o nome do atributo o tag que armazenar o valor transmitido (recuperado) Se o tag for um tipo de dados definido pelo usurio ou uma matriz, selecione o primeiro membro ou elemento. o tag que armazena o valor a ser energizado Se o tag for um tipo de dados definido pelo usurio ou uma matriz, selecione o primeiro membro ou elemento.

Attribute Name Dest (GSV)

Source (SSV)

Os exemplos a seguir possuem a hora os dados atuais. Obteno de um valor do sistema

EXEMPLO

Na primeira varredura, obtenha o atributo DateTime do objeto WALLCLOCKTIME e o armazene no tag wall_clock baseado no tipo de dados definido pelo usurio.

42370

Para obter mais informaes, consulte Logix5000 Controllers General Instruction Set Reference Manual, publicao 1756-RM003.

Publicao 1756-PM001E-PT-P - Agosto 2002

9-6

Acesso aos Valores do Sistema

Determinao das Informaes sobre a Memria do Controlador

A memria do controlador dividida em memria de E/S e memria de expanso. A tabela a seguir mostra como o controlador usa cada tipo de memria:
Este: tags de E/S tags produzidos tags consumidos comunicao via instrues MSG (Mensagem) comunicao via estaes de trabalho comunicao com tags com polling (OPC/DDE) que usam o software RSLinx(1) tags diferentes de tags de E/S, produzidos ou consumidos rotinas lgicas comunicao com tags com polling (OPC/DDE) que usam o software RSLinx(1)
(1)

Usa a memria de: memria de E/S

memria de expanso

Para a comunicao com os tags com polling, o controlador usa a memria de E/S e de expanso.

Use este procedimento para obter as seguintes informaes sobre a memria de um controlador. IMPORTANTE O controlador devolve os valores em nmero de palavras de 32 bits. Para ver o valor em bytes, multiplique-o por 4.

memria de E/S livre memria de expanso livre memria de E/S total memria de expanso total bloco contnuo maior que a memria de E/S bloco contnuo maior que a memria de expanso

Para obter as informaes sobre a memria para o controlador: Obteno das Informaes sobre a Memria do Controlador Seleo das Informaes sobre a Memria Desejada Converso de INTs em DINT

Publicao 1756-PM001E-PT-P - Agosto 2002

Acesso aos Valores do Sistema

9-7

Obteno das Informaes sobre a Memria do Controlador


Para obter as informaes sobre a memria do controlador, execute uma instruo de MSG (Mensagem) configurada como:

Message PropertiesConfiguration Tab


Para este item: Message Type Service Type Service Code Class Instance Attribute Source Element Digite ou selecione: CIP Generic Custom 3 72 1 0 Neste elemento: source_array[0] source_array[1] source_array[2] source_array[3] source_array[4] source_array[5] source_array[6] source_array[7] source_array[8] source_array[9] source_array[10] source_array[11] Source Length Destination 12 INT_array de tipo INT[29] 5 0 1 0 2 0 5 0 6 0 7 0 Que significa: Executar um comando do Protocolo de Informaes e Controle. Criar uma mensagem de CIP Generic no disponvel na lista. Usar o servio GetAttributeList. Isso permite a leitura de informaes especficas sobre o controlador. Obter as Informaes do objeto de memria do usurio. Este objeto contm somente 1 exemplo. Valor nulo Insira: Obter 5 atributos Valor nulo Obter memria livre Valor nulo Obter memria total Valor nulo Obter o maior bloco contnuo de memria de expanso livre adicional Valor nulo Obter o maior bloco contnuo de memria de E/S livre Valor nulo Obter o maior bloco contnuo de memria de expanso livre Valor nulo Que significa:

source_array de tipo SINT[12]

Escrever 12 bytes (12 SINTs).

Message PropertiesCommunication Tab


Para este item: Path 1, slot_number_of_controller Digite:

Publicao 1756-PM001E-PT-P - Agosto 2002

9-8

Acesso aos Valores do Sistema

Seleo das Informaes sobre a Memria Desejada


A instruo MSG devolve as informaes a seguir para INT_array (o tag de destino da MSG): IMPORTANTE Para um controlador 1756-L55M16, a instruo MSG devolve dois valores para cada categoria de memria de expanso. Para determinar a memria de expanso livre ou total de um controlador 1756-L55M16, adicione ambos os valores categoria.

Tabela9.1 Se voc quiser: a quantidade de memria de E/S livre (palavras de 32 bits) Copie esses elementos de matriz: INT_array[3] INT_array[4] a quantidade de memria de expanso livre (palavras de 32 bits) INT_array[5] INT_array[6] controladores 1756-L55M16 somente a quantidade de memria de expanso livre adicional (palavras de 32 bits) INT_array[7] INT_array[8] o tamanho total de memria de E/S livre (palavras de 32 bits) INT_array[11] INT_array[12] o tamanho total de memria de expanso (palavras de 32 bits) INT_array[13] INT_array[14] controladores 1756-L55M16 somente a memria de expanso adicional (palavras de 32 bits) INT_array[15] INT_array[16] controladores 1756-L55M16 somenteo maior bloco contnuo de memria de expanso livre adicional (palavras de 32 bits) o maior bloco contnuo de memria de E/S livre (palavras de 32 bits) INT_array[19] INT_array[20] INT_array[23] INT_array[24] o maior bloco contnuo de memria de expanso livre (palavras de 32 bits) INT_array[27] INT_array[28] Descrio: 16 bits menos significativos do valor de 32 bits 16 bits mais significativos do valor de 32 bits 16 bits menos significativos do valor de 32 bits 16 bits mais significativos do valor de 32 bits 16 bits menos significativos do valor de 32 bits 16 bits mais significativos do valor de 32 bits 16 bits menos significativos do valor de 32 bits 16 bits mais significativos do valor de 32 bits 16 bits menos significativos do valor de 32 bits 16 bits mais significativos do valor de 32 bits 16 bits menos significativos do valor de 32 bits 16 bits mais significativos do valor de 32 bits 16 bits menos significativos do valor de 32 bits 16 bits mais significativos do valor de 32 bits 16 bits menos significativos do valor de 32 bits 16 bits mais significativos do valor de 32 bits 16 bits menos significativos do valor de 32 bits 16 bits mais significativos do valor de 32 bits

Publicao 1756-PM001E-PT-P - Agosto 2002

Acesso aos Valores do Sistema

9-9

Converso de INTs em DINT


A instruo MSG devolve cada valor de memria como dois INTs separados. O primeiro INT representa os 16 bits de valor menos significativo. O segundo INT representa os 16 bits de valor mais siginificativo. Para converter os INTs separados em um valor que possa ser usado, use uma instruo de Cpia de Arquivo (COP Cpia), onde:
Neste operando: Source Destination Lenght Especifique: o primeiro INT de dois pares de elementos (16 bits inferiores) o tag DINT no qual armazena o valor de 32 bits 1 Que significa: Comear com os 16 bits inferiores Copiar o valor para o tag DINT. Copiar 1 vez o nmero de bytes no tipo de dados de Destination. Nesse caso, a instruo copia 4 bytes (32 bits interiores), que combina os 16 bits engenheiros e superiores em um valor de 32 bits.

No exemplo a seguir, a instruo COP produz o valor de 32 bits que representa a quantidade de memria de E/S livre, em palavras de 32 bits. EXEMPLO Converso de INTs em DINT O elemento 3 do INT_array so os 16 bits menos significativos da quantidade de memria de E/S livre. O elemento 4 so os 16 bits mais significativos. Memory_IO_Free um tag DINT (32 bits) no qual armazena-se o valor para a quantidade memria de E/S livre. Para copiar todos os 32 bits, especifique um Comprimento de 1. Isto pede para a instruo copiar 1 vez o tamanho do Destination (32 bits). Isto copia o elemento 3 (16 bits) e o elemento 4 (16 bits) e coloca o resultado de 32 bits em Memory_IO_Free.

Publicao 1756-PM001E-PT-P - Agosto 2002

9-10

Acesso aos Valores do Sistema

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

10

Atribuio de Aliases/Smbolos

Tags com Aliases/Smbolos

Um tag com alias/smbolo permite que voc crie um tag que representa outro tag. Ambos os tags tm o(s) mesmo(s) valor(es). Quando o(s) valor(es) de um dos tags muda, o outro tag tambm reflete a mudana. Use aos aliases/smbolos nas seguintes situaes: lgica de programa avanada de diagramas de fiao atribuio de um nome descritivo para um dispositivo de E/S fornecimento de um nome mais simples para um tag complexo uso de um nome descritivo para um elemento de uma matriz

A janela de tags mostra as informaes do alias/smbolo.

drill_1_depth_limit um alias/smbolo para Local:2:I.Data.3 (um ponto de entrada digital). Quando a entrada energizada, o tag com alias/smbolo tambm se energiza.

drill_1_on um alias/smbolo para Local:0:O.Data.2 (um ponto de sada digital). Quando o tag com alias/smbolo energizado, o tag de sada tambm energiza.

north_tank um alias/smbolo para tanks [0,1].


42360

O (C) indica que o tag de uso geral do controlador.

Um uso comum dos tags com alias/smbolo programar a lgica antes que os diagramas de fiao estejam completos: 1. Para cada dispositivo de E/S, crie um tag com um nome que descreva o dispositivo, como esteira para a esteira do motor.

Publicao 1756-PM001E-PT-P - Agosto 2002

10-2

Atribuio de Aliases/Smbolos

2. Programe sua lgica usando nomes de tags descritivos. (Voc pode at testar sua lgica sem conectar-se E/S.) 3. Mais tarde, quando os diagramas de fiao estiverem disponveis, adicione os mdulos de E/S na configurao da E/S do controlador. 4. Finalmente, converta os tags descritivos em aliases/smbolos para seus respectivos pontos ou canais de E/S. A seguinte lgica foi programada inicialmente com o uso de nomes de tags descritivos, como stop (parada) e conveyor_on. Mais tarde, os tags foram convertidos em aliases/smbolos para os dispositivos de E/S correspondentes.

stop um alias/smbolo para Local:2:I.Data.1 (boto de parada no painel de operao)

stop <Local:2:I.Data.1>

start <Local:2:I.Data.0> machine_on

drill_1_on machine_on <Local:0:O.Data.2> drill_1.part_advance conveyor_on <Local:0:O.Data.0>

conveyor_on um alias/smbolo para Local:0:O.Data.0 (contator de acionamento para o motor da esteira transportadora)

42351

Exibio das Informaes de Alias/Smbolo

Para mostrar (em sua lgica) o tag para o qual um alias/smbolo aponta: 1. A partir do menu Tools, selecione Options. 2. Clique na guia Ladder Display (Exibio da Lgica Ladder). 3. Selecione a caixa de verificao Show Tag Alias Information (Exibir as Informaes do Tag com Alias/Smbolo). 4. Clique em OK.

Atribuio de um Alias/Smbolo

Para atribuir um tag com alias/smbolo para outro tag: 1. A partir do menu Logic, selecione Edit.

Publicao 1756-PM001E-PT-P - Agosto 2002

Atribuio de Aliases/Smbolos

10-3

2.

42360

3.

2. Selecione o escopo do tag. 3. direita do nome do tag, clique na clula Alias For. A clula mostra um 4. Clique no 5. Selecione o tag que o alias/smbolo representar:
Para: selecionar um tag selecionar um nmero de bit Faa isto: Clique duas vezes no nome do tag. A. Clique no nome do tag. B. direita do nome do tag, clique C. Clique no bit requisitado.

6. Pressione a tecla Enter ou clique em outra clula.

Publicao 1756-PM001E-PT-P - Agosto 2002

10-4

Atribuio de Aliases/Smbolos

Notas:

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

11

Atribuio de um Endereo Indireto

Quando Atribuir um Endereo Indireto

Ser voc quiser que uma instruo acesse diferentes elementos em uma tabela, use um tag no subscrito da matriz (um endereo indireto). Ao mudar o valor do tag, voc muda o elemento da matriz qual sua lgica se refere.

Quando o ndice for igual a 1, array [index] aponta aqui. array[0] array[1] array[2] array[3] Quando o ndice for igual a 2, array [index] aponta aqui. 4500 6000 3000 2500

A seguinte tabela descreve alguns usos comuns para um endereo indireto:


Para: selecionar uma receita de uma matriz de receitas carregar a configurao de uma mquina especfica, a partir de uma matriz de configuraes possveis carregar os parmetros ou estados de uma matriz, um elemento de cada vez registrar cdigos de erro realizar diversas aes em um elemento da matriz e, ento indexe para o prximo elemento Use um tag no subscrito e: Insira o nmero da receita no tag. Insira a configurao desejada no tag.

A. Realize a ao requisitada no primeiro elemento. B. Use uma instruo ADD para incrementar o valor do tag e aponte para o prximo elemento na matriz.

Publicao 1756-PM001D-PT-P - Novembro 2001

11-2

Atribuio de um Endereo Indireto

O exemplo seguinte carrega uma srie de valores pr-selecionados em um temporizador, um valor (elemento de matriz) de cada vez. Observe a matriz

EXEMPLO

A matriz timer_presets armazena uma srie de valores pr-selecionados para o temporizador na prxima linha. O tag north_tank.step indica o elemento da matriz a ser usado. Por exemplo, quando north_tank.step for igual a 0, a instruo carrega timer_presets[0] no temporizador (6000 ms).
MOV Move Source timer_presets[north_tank.step] 60000 Dest north_tank.step_time.PRE 60000 north_tank.step_time.DN / TON Timer On Delay Timer north_tank.step_time Preset 60000 Accum 0

EN DN

Quando north_tank.step_time estiver completo, a linha incrementa o north_tank.step para o nmero seguinte e aquele elemento da matriz timer_presets carregado no temporizador.
north_tank.step_time.DN Add Source A ADD 1

Source B north_tank.step 0 Dest north_tank.step 0

Quando o north_tank.step excede o tamanho da matriz, a linha reseta o tag para comear no primeiro elemento da matriz. (A matriz contm elementos de 0 a 3.)
EQU Equal Source A north_tank.step 0 Source B 4 MOV Move Source 0

Dest north_tank.step 0

42358

Publicao 1756-PM001D-PT-P - Novembro 2001

Atribuio de um Endereo Indireto

11-3

Expresses

Voc tambm pode usar uma expresso para especificar o subscrito de uma matriz. Uma expresso usa operadores, como + ou , para calcular um valor. O controlador calcula o resultado da expresso e usa-o como o subscrito da matriz. Voc pode usar estes operadores para especificar o subscrito de uma matriz:
Operador: + * / ABS AND FRD Descrio: adio subtrao/negao multiplicao diviso Valor Absoluto AND de BCD para inteiro Operador: MOD NOT OR SQR TOD TRN XOR Descrio: Mdulo complemento OR raiz quadrada de inteiro para BCD Truncado OU exclusivo

Formate suas expresses como a seguir:


Se o operador requisitar: um valor (tag ou expresso) dois valores (tags, constantes ou expresses) Use este formato: operador (valor) value_a operator value_b Exemplos: ABS(tag_a) tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g)

Publicao 1756-PM001D-PT-P - Novembro 2001

11-4

Atribuio de um Endereo Indireto

Notas:

Publicao 1756-PM001D-PT-P - Novembro 2001

Captulo

12

Buffer de E/S

Quando Usar o Buffer de E/S

O buffer de E/S uma tcnica na qual a lgica no faz referncia nem manipula diretamente os tags dos dispositivos de E/S reais. Ao invs disso, a lgica usa uma cpia dos dados de E/S. O buffer de E/S usado nas seguintes situaes: Para previnir que um valor de entrada ou sada mude durante a execuo de um programa. (Atualizaes de E/S assncronas execuo da lgica.) Para copiar um tag de entrada ou sada para um integrante de uma estrutura ou elemento de uma matriz.

Buffer de E/S

Para armazenamento no buffer de E/S, realize estas aes: 1. Na linha, antes da lgica para a(s) funo(es), copie ou mova os dados dos tags de entrada requisitados para seus tags de buffer correspondentes. 2. Na lgica da(s) funo(es), faa referncia aos tags do buffer. 3. Na linha, depois da(s) funo(es), copie os dados dos tags do buffer para os tags de sada correspondentes. O seguinte exemplo copia as entradas e sadas para os tags de uma estrutura para uma furadeira.

Publicao 1756-PM001D-PT-P - Novembro 2001

12-2

Buffer de E/S

EXEMPLO

Buffer de E/S

A rotina principal do programa executa as seguintes subrotinas, nesta seqncia.

JSR Jump to Subroutine Routine name map_inputs

JSR Jump to Subroutine Routine name drill

JSR Jump to Subroutine Routine name map_outputs

A rotina map_inputs copia os valores dos dispositivos de entrada para seus tags correspondentes, que so usados na rotina drill.
_1791_8AC:I.Data[0].0 drill[1].depth_limit

_1791_8AC:I.Data[0].4

drill[1].home_limit

A rotina drill executa a lgica para a furadeira.


drill[1].part_advance / drill[1].forward one_shots.0 ONS drill[1].depth_limit / drill[1].forward

drill[1].depth_limit drill[1].retract

drill[1].home_limit /

drill[1].retract

A rotina map_outputs copia os valores dos dispositivos de sada na rotina drill para seus dispositivos de sada correspondentes.
drill[1].forward _1791_8AC:O.Data[0].0

drill[1].retract

_1791_8AC:O.Data[0].1

42369

Publicao 1756-PM001D-PT-P - Novembro 2001

Buffer de E/S

12-3

O exemplo a seguir usa a instruo CPS para copiar uma matriz de dados que representa os dispositivos de entrada de uma rede DeviceNet. Buffer de E/S

EXEMPLO

Local:0:I.Data armazena os dados de entrada da rede DeviceNet, que 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 alter-los. A aplicao utiliza para sua execuo os dados de entrada em input_buffer.
CPS Synchronous Copy File Source Local:0:I.Data[0] Dest input_buffer[0] Length 20

42578

Publicao 1756-PM001D-PT-P - Novembro 2001

12-4

Buffer de E/S

Notas:

Publicao 1756-PM001D-PT-P - Novembro 2001

Captulo

13

Teste de um Projeto

Teste de um Projeto

Para testar um projeto, realize essas aes: Configurao de um Driver de Comunicao Download de um Projeto para o Controlador Seleo de um Modo para o Controlador Correo de Falhas Graves Salvar Suas Alteraes Online

Alm disso, voc deve realizar essas aes: Use as instrues de controle de programa para isolar a execuo da lgica para rotinas ou linhas especficas. Consulte Logix5000 Controllers General Instructions Reference Manual, publicao 1756-RM003 Force valores de entrada ou sada. Consulte Valores com Force na pgina 14-1.

Configurao de um Driver de Comunicao

O software RSLogix 5000 requer um driver de comunicao para se comunicar com o controlador. Para configurar drivers de comunicao, use o software RSLinx: 1. Inicie o software Start RSLinx. 2. A partir do menu Communications, selecione Configure Drivers. 3. A partir da lista Available Driver Types, selecione um driver:

Para esta rede: Serial DH+ ControlNet Ethernet DeviceNet Dispositivos DF1 RS-232 1784-KT/KTX(D)/PKTX(D) 1784-KTC(X) Dispositivos Ethernet

Selecione este driver: Computador Desktop Computador Laptop Dispositivos DF1 RS-232 1784-PCMK 1784-PCC Dispositivos Ethernet Drivers DeviceNet (drivers 1784-PCD/PCIDS, 1770-KFD, SDNPT)

Drivers DeviceNet (drivers 1784-PCD/PCIDS, 1770-KFD, SDNPT)

4. Clique em Add New. 5. Se voc quiser atribuir um nome descritivo ao driver, mude o nome padro. 6. Selecione OK.
1 Publicao 1756-PM001E-PT-P - Agosto 2002

13-2

Teste de um Projeto

7. Configure o driver:
Para este driver: Serial Faa isto: A. A partir da lista Comm Port, selecione a porta serial que o driver usar. B. A partir da lista Device, selecione Logix 5550-Serial Port. C. Clique em Auto-Configure. A. Na caixa Station Name, digite um nome que identificar o computador na janela RSWho. B. Selecione o valor de interrupo, o endereo de memria e o endereo de base da E/S. C. Na caixa Net Address, digite o nmero do n ControlNet que voc quer atribuir ao computador. A. A partir da lista Value, selecione o tipo de carto de interface que o driver usar. B. Na lista Property, selecione o prximo item. C. Na caixa Value, digite ou selecione o valor apropriado. D. Repita as etapas B. e C. para as propriedades restantes. Para cada dispositivo Ethernet nesta rede com a qual voc quer comunicar-se (ex.: cada mdulo 1756-ENET ou controlador CLP-5E), adicione uma entrada de mapa: A. Na coluna Host Name, digite o endereo IP ou o nome do host do dispositivo Ethernet. B. Voc quer comunicar-se com um outro dispositivo Ethernet nesta rede? Se: Sim No Ento: 1. Selecione Add New. 2. V para a etapa A. V para a prxima etapa.

ControlNet

DH+

Ethernet

3. Clique em OK. 4. Clique em Close.

Publicao 1756-PM001E-PT-P - Agosto 2002

Teste de um Projeto

13-3

Download de um Projeto para o Controlador

Use este procedimento para fazer o download de um projeto para o controlador, voc pode executar sua lgica. Ao fazer o download de um projeto, voc perde o projeto e os dados que esto no controlador atualmente, se for o caso. Se a reviso do controlador no corresponder a reviso do projeto, voc est pronto para atualizar o firmware do controlador. O software RSLogix 5000 permite que voc atualize o firmware do controlador da parte da seqncia do download. ATENO Ao fazer o download de um projeto ou atualizar o firmware, todos os servo eixos ativos so desligados. Antes de fazer o download de um projeto ou atualizar o firmware, certifique-se de que isto no causar nenhum movimento inesperado do eixo.

!
IMPORTANTE

Para atualizar o firmware de um controlador, primeiro instale um kit de upgrade do firmware. Um kit de upgrade enviado em um CD suplementar juntamente com o software RSLogix 5000. Para fazer o download de um kit de upgrade, acesse o site www.ab.com. Selecione Product Support. Selecione Firmware Updates.

1. Abra o projeto RSLogix 5000 que voc quer fazer o download. 2. A partir do menu Communications, selecione Who Active. 3. Expanda rede at que voc visualize o controlador.
Para expandir um nvel um da rede, faa uma das seguintes aes: Clique duas vezes na rede. Selecione a rede e pressione a tecla. Clique no sinal de +.

Workstation
+

Linx Gateways, Ethernet driver

communication module

backplane
+

controller

4. Selecione o controlador. 5. Selecione Download.

Publicao 1756-PM001E-PT-P - Agosto 2002

13-4

Teste de um Projeto

6. Que resposta o software deu:


Se o software indicar: o download feito para o controlador Ento: V para a etapa 7.

Falhou ao fazer o download para o controlador. A reviso V para a etapa 9. do projeto offline e o firmware do controlador no so compatveis.

7. Selecione Download. Os downloads do projeto feitos para o controlador e o software do RSLogix 5000 ficam online. 8. Pule o resto deste procedimento. 9. Selecione Update Firmware.

10.

11.

43056

10. Selecione a reviso requisitada para o controlador. 11. Selecione Update. Uma caixa de dilogo solicita a confirmao da atualizao. 12. Para atualizar o controlador, selecione Yes. O seguinte evento ocorre: O firmware do controlador atualizado. Os downloads do projeto para o controlador so feito. O software RSLogix 5000 fica offline.

Publicao 1756-PM001E-PT-P - Agosto 2002

Teste de um Projeto

13-5

Seleo de um Modo para o Controlador

Para testar um projeto, selecione um modo para o controlador:

42627

A
42525

Selecione um destes modos: Operao PROG REM Operao Programao Teste


seleo da chave fim A de curso Seleo RSLogix 5000 B

Publicao 1756-PM001E-PT-P - Agosto 2002

13-6

Teste de um Projeto

Correo de Falhas Graves

Se o controlador inserir o modo de falha, uma falha grave ocorreu e parou de executar a lgica.

O controlador falhou. Uma falha grave ocorreu e o controlador no executa mais sua lgica.

43057

1.

Para corrigir uma falha grave: 1. Pressione o boto.

2. Use as informaes na lista Recent Faults para corrigir a causa da falha. Consulte Codigos de Falha Grave na pgina A-1. 3. Clique no boto Clear Majors.

DICA

Voc tambm pode remover uma falha grave usando a chave seletora de modo, no controlador. Gire a chave seletora de modo para Prog, ento para Run e de volta para Prog.

Salvar Suas Alteraes Online

Se voc fizer alteraes para o projeto enquanto estiver on-line, salve o projeto de forma que o arquivo do projeto offline corresponda ao arquivo do projeto online:
Se voc quiser: armazenar as mudanas online e os valores de dados armazenar as mudanas online, mas no os valores de dados online Faa isto: No menu File, selecione Save. A. A partir do menu Communications, selecione Go Offline. B. No menu File, selecione Save.

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

14

Comunicao com Outro Controlador

Quando Usar Este Procedimento

Use este procedimento para transferir dados entre os controladores (enviar ou receber dados). Voc pode transferir dados usando um destes mtodos: Produo e Consumo de um Tag Envio de uma Mensagem

Como Usar Este Procedimento

Selecione um mtodo para a transferncia de dados entre controladores:


Se os dados: precisarem de uma entrega regular a uma taxa que voc especificar (ou seja, determinstica) forem enviados quando uma condio especfica ocorrer em sua aplicao so coletado de mltiplos controladores (e tags consumidos no so uma opo ou no desejados) Ento: Produo e Consumo de um Tag Envio de uma Mensagem Envio de uma Mensagem para Controladores Mltiplos Consulte a pgina: 14-1

14-11 14-13

Produo e Consumo de um Tag

Um tag produzido envia seus dados para um ou mais tag consumidos (consumidores) sem usar a lgica ladder.

controller3 tag produzido

controller3 tag consumido

controller3 tag consumido

controller3 tag consumido

Publicao 1756-PM001E-PT-P - Agosto 2002

14-2

Comunicao com Outro Controlador

Voc pode usar tags produzidos e consumidos com as seguintes combinaes de controlador e rede.
Este controlador: SLC 500 CLP-5 ControlLogix FlexLogix SoftLogix Pode produzir e consumir tags nesta rede: Backplane ControlNet Ethernet

Tags produzidos e consumidos trabalham conforme segue: Uma conexo transfere os dados entre os controladores: Mltiplos controladores podem consumir (receber) os dados. Atualizao dos dados no intervalo requisitado para atualizao (RPI), conforme configurado pelos tags de consumo. Cada tag produzido ou consumido usa o seguinte nmero de conexes:
Cada: tag produzido tag consumido 1 Usa estas conexes: number_of_consumers + 1

EXEMPLO

Conexes usadas pelos tags produzidos ou consumidos A produo de um tag para 5 controladores (consumidores) usa 6 conexes (5 consumidores +1 = 6). A produo de 4 tags para 1 controlador usa 8 conexes. cada tag usa duas conexes (1 consumidor + 1 = 2). 2 conexes por tag x 4 tags = 8 conexes. O consumo de 4 tags para um controlador usa 4 conexes (1 conexo por tag x 4 tags = 4 conexes).

O Que Voc Precisa Fazer


Para compartilhar dados com outro(s) controlador(es), realize estas aes: Organizao de Tags para Dados Produzidos ou Consumidos Produo de um Tag

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-3

Consumo de um Tag Produzido Dependendo de seu sistema, voc tambm pode ter que realizar estas aes: Produo de Inteiros para um Controlador CLP-5C Produo de REALs para um Controlador CLP-5C Consumo de Inteiros de um Controlador CLP-5C Ajuste para Limitaes de Largura da Banda

Organizao de Tags para Dados Produzidos ou Consumidos


Ao criar os tags que eventualmente produziro ou consumiro dados (dados compartilhados), siga estas orientaes: 1. Crie os tags no escopo do controlador. Somente tags de uso geral do controlador podem ser compartilhados. 2. Use um destes tipos de dados: DINT REAL array de DINTs ou REALs definido pelo usurio 3. Para compartilhar um tipo de dados diferente dos listados nas orientaes 2., crie um tipo de dados definidos pelo usurio que contenha os dados requisitados. 4. Use o mesmo tipo de dados para o tag produzido e para o(s) tag(s) consumido(s) correspondente(s). 5. Para compartilhar tags em um controlador CLP-5, use um tipo de dados definidos pelo usurio. Consulte estas sees: Produo de Inteiros para um Controlador CLP-5C, 14-6 Produo de REALs para um Controlador CLP-5C, 14-7 Consumo de Inteiros de um Controlador CLP-5C, 14-8

Publicao 1756-PM001E-PT-P - Agosto 2002

14-4

Comunicao com Outro Controlador

6. Limite o tamanho do tag para menor ou igual a 500 bytes. Caso voc deva transferir mais de 500 bytes, crie a lgica para transferir os dados em pacotes. Consulte Produce a Large Array na pgina 11-1. 7. Se voc produzir o tag na rede ControlNet, o tag pode precisar ter menos de 500 bytes. Consulte Ajuste para Limitaes de Largura da Banda na pgina 10-10. 8. Se estiver produzindo diversos tags no mesmo controlador: Agrupe os dados em um ou mais tipos de dados definidos pelo usurio. (Isto usa menos conexes que a produo de cada tag separadamente). Agrupe os dados de acordo com as taxas de atualizao similares. (Para conservar a largura de banda da rede, use um RPI maior para dados menos importantes). Por exemplo, voc pode criar um tag para dados que so crticos e outro tag para dados que no so crticos.

Produo de um Tag
1. Abra o projeto RSLogix 5000 que contm o tag que voc quer produzir. 2. A partir do menu Logic, selecione Edit Tags. 3. A partir de Scope, selecione name_of_controller (controlador) (Apenas tags que so de uso geral do controlador podem produzir dados). 4. Selecione o tag que produzir os dados e pressione as teclas ALT + Enter.

5.

6.

42352

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-5

5. Selecione o boto da opo Produced. 6. Digite ou selecione o nmero de controladores que consumiro (recebero) o tag. 7. Clique em OK. 8. Configure o tag em outro(s) controlador(es) para consumir este tag produzido. Consulte Consumo de um Tag Produzido na pgina 10-5.

Consumo de um Tag Produzido


1. Abra o projeto RSLogix 5000 que consumir o tag produzido. 2. No organizador do controlador, I/O Configuration (Configurao da E/S), adicione o controlador que contm o tag produzido. 3. A partir do menu Logic, selecione Edit Tags. 4. A partir de Scope, selecione name_of_controller (controlador) (Apenas tags que so de uso geral do controlador podem consumir outros tags). 5. Selecione o tag no controlador que consumir o tag produzido e pressione as teclas ALT + Enter.

6. 7. 8. 9.
42353

10.

6. Selecione o boto da opo Consumed.

Publicao 1756-PM001E-PT-P - Agosto 2002

14-6

Comunicao com Outro Controlador

7. Selecione o controlador que contm o tag produzido. 8. Digite o nome do tag produzido. 9. Selecione o mesmo tipo de dados que o tag produzido. 10. Digite ou selecione o tempo entre as atualizaes do tag: Use o valor mais alto permitido para sua aplicao. Caso o controlador consuma o tag na rede ControlNet, use um binrio mltiplo da ControlNet tempo de atualizao da rede (NUT). Por exemplo, se o NUT for de 5 ms, digite uma taxa de 5, 10, 20, 40 ms, etc. 11. Clique em OK. 12. Se voc compartilhar o tag em uma rede ControlNet, use o software RSNetWorx for ControlNet para programar a rede.

IMPORTANTE

Se uma conexo de tag consumido falhar, todos os outros tags que so consumidos a partir daquele controlador remoto param de receber os novos dados.

Produo de Inteiros para um Controlador CLP-5C


1. Abra o projeto do RSLogix 5000. 2. Crie um tipo de dados definido pelo usurio que contenha um array de INTs com um nmero par de elementos, como INT[2]. (Ao produzir INTs, voc deve produzir dois ou mais.) 3. Crie um tag produzido e selecione um tipo de dados definidos pelo usurio a partir da Etapa 2. 4. Abra o software RSNetWorxfor ControlNet. 5. Na configurao da ControlNet para o controlador CLP-5C alvo: a. Insira um Receive Scheduled Message (Receber de Mensagem Programada). b. No tamanho da Mensagem, insira o nmero de inteiros no tag produzido. 6. No software RSNetWorx for ControlNet, programe a rede.

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-7

Produo de REALs para um Controlador CLP-5C


1. Abra o projeto do RSLogix 5000. 2. Quantos valores voc quer produzir?
Se estiver produzindo: Apenas um valor REAL Mais de um valor REAL Ento: Crie um tag produzido e selecione o tipo de dados REAL. A. Crie um tipo de dados definidos pelo usurio que contenha o array de REALs. B. Crie um tag produzido e selecione um tipo de dados definidos pelo usurio a partir da Etapa A.

3. Abra o software RSNetWorx for ControlNet. 4. Na configurao da ControlNet para o controlador CLP-5C alvo: a. Insira Receive Scheduled Message (Receber de Mensagem Programada). b. No Tamanho da mensagem, insira duas vezes o nmero de REALs no tag produzido. Por exemplo, se o tag produzido contiver 10 REALs, insira 20 para o tamanho da Mensagem. DICA Quando um controlador CLP-5C consome um tag que produzido por um controlador Logix5000, ele armazena o dado em inteiros de 16 bits consecutivos. O CLP-5C armazena dados de ponto flutuante, o que requisita 32 bits, no importando o tipo do controlador, como a seguir: O primeiro inteiro contm os bits mais significativos (localizados na extrema esquerda) do valor. O segundo inteiro contm os bits menos significativos (localizados na extrema direita) do valor. Este padro continua para cada valor de ponto flutuante.

Publicao 1756-PM001E-PT-P - Agosto 2002

14-8

Comunicao com Outro Controlador

5. No controlador CLP-5C, reconstrua os dados de ponto flutuante, conforme o descrito no seguinte exemplo: EXEMPLO Reconstruo de um valor de ponto flutuante

As duas instrues MOV revertem a ordem dos inteiros, conforme os inteiros se movem para um novo local. Como o destino de uma instruo COP um endereo de ponto flutuante, ele leva dois inteiros consecutivos para um total de 32 bits e os converte em um nico valor de ponto flutuante.

42354

6. No software RSNetWorx for ControlNet, programe a rede.

Consumo de Inteiros de um Controlador CLP-5C


1. Abra o software RSNetWorx for ControlNet. 2. Na configurao ControlNet do controlador CLP-5C, insira um Envio de Mensagem Programada. 3. Abra o projeto do RSLogix 5000. 4. No organizador do controlador, acrescente o controlador CLP-5C para a configurao de E/S.

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-9

5. Crie um tipo de dados definidos pelo usurio que contm os seguintes membros:
Tipo de Dados: DINT INT[x], onde x o tamanho da sada dos dados do controlador CLP-5C. Se voc estiver consumindo apenas um INT, nenhuma dimenso requisitada) Status Dados produzidos por um controlador CLP-5C Descrio:

6. Crie um tag consumido com as seguintes propriedades:


Para esta propriedade de tag: Tag Type Controller Remote Instance RPI Digite ou selecione: Consumed (Consumido) O CLP-5C que est produzindo os dados. O nmero da mensagem a partir da configurao do controlador CLP-5C ControlNet. Uma alimentao de duas vezes o NUT da rede ControlNet. Por exemplo, se o NUT for de 5 ms, selecione um RPI de 5, 10, 20, 40 etc. Tipo de dados definidos pelo usurio que voc criou na etapa 5.

Data Type

7. No software RSNetWorx for ControlNet, programe a rede.

Ajuste para Limitaes de Largura da Banda


Quando voc compartilhar um tag em uma rede ControlNet, o tag deve adequar-se largura de banda da rede: Conforme o nmero de conexes de uma rede ControlNet aumenta vrias conexes, inclusive os tags produzidos ou consumidos, podem precisar compartilhar um tempo de atualizao da rede (NUT). Como uma rede ControlNet pode passar somente 500 bytes em uma atualizao, os dados de cada conexo devem ser menores que 500 bytes para adequar-se ao NUT. Dependendo do tamanho de seu sistema, voc pode no ter a largura de banda suficiente em sua rede ControlNet para um tag de 500 bytes. Se um tag for muito grande para sua rede ControlNet, faa um ou mais dos seguintes ajustes: Reduza seu Tempo de Atualizao da Rede (NUT). Com um NUT mais rpido, menos conexes tm que compartilhar uma ranhura de atualizao. Aumente o Intervalo Requisitado para Atualizao (RPI) das suas conexes. Com RPIs mais altos, as conexes podem se alternar no envio de dados durante uma atualizao de ranhura.

Publicao 1756-PM001E-PT-P - Agosto 2002

14-10

Comunicao com Outro Controlador

Para um mdulo ponte ControlNet (CNB) em um chassi remoto, selecione o formato de comunicao mais eficiente para aquele chassi:
A maioria dos mdulos no chassi so mdulos de E/S digital sem diagnstico? Sim No Ento selecione este formato de comunicao para o mdulo CNB remoto: Rack Optimization (Otimizao de Gaveta) None (Nenhum)

O formato Rack Optimization usa um adicional de 8 bytes para cada ranhura no chassi. Os mdulos analgicos ou os mdulos que esto enviando ou obtendo dados de diagnstico, fusvel, registro de data e hora ou programados requisitam conexes diretas e no podem aproveitar o formato de otimizao de gaveta. A seleo de None libera os 8 bytes por ranhura para outros usos, como tags produzidos e consumidos. Separar os tags em dois ou mais tags menores: Agrupar os dados de acordo com as taxas de atualizao similares. Por exemplo, voc pode criar um tag para dados que so crticos e outro tag para dados que no so crticos. Atribuir um RPI diferente para cada varivel. Criar uma lgica para transferir os dados em sees menores (pacotes). Consulte "Produo de um Array Grande" na pgina 11-1.

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-11

Envio de uma Mensagem

Para organizar os dados para uma mensagem, siga estas orientaes: 1. Para cada mensagem, crie um tag para controlar a mensagem: Crie o tag no escopo do controlador. Use o tipo de dados MESSAGE. O exemplo seguinte mostra o uso do tipo de dados MESSAGE:

EXEMPLO

Mensagem para outro controlador Logix5000

Quando count_send estiver energizado, count_msg envia dados.

count_send

count_msg.en /

MSG Type - Unconfigured Message Control

count_msg ...

EN DN ER

Digite: MESSAGE Escopo: Controlador

42188

2. Para os tags que as mensagens usaro (tags de fonte ou destino), crie os tags de uso geral no controlador. 3. No controlador Logix5000, use o tipo de dados DINT para inteiros, sempre que possvel: Os controladores Logix5000 operam com mais eficincia e usam menos memria quando trabalham com inteiros de 32 bits (DINTs).

Publicao 1756-PM001E-PT-P - Agosto 2002

14-12

Comunicao com Outro Controlador

4. Se sua mensagem for de/para um controlador CLP-5 ou SLC 500 e ele transferir inteiros (no REALs), use um buffer de INTs: a. Crie um buffer para os dados (de uso geral do controlador) usando o tipo de dados INT[x]. onde: x o nmero de inteiros na mensagem. (Para apenas um inteiro, omita [x].) b. Use o buffer na mensagem. c. Use uma instruo FAL para mover os dados entre o buffer e sua aplicao. EXEMPLO Escrita de valores inteiros para um controlador CLP-5

Mova continuamente os valores em dint_array para int_buffer. Isto converte os valores para inteiros de 16 bits (INTs). Ento, a instruo de mensagem envia int_buffer para um controlador CLP-5.
message.EN / fal_control RES FAL File Arith/Logical Control fal_control Length ? Position 0 Mode all Dest int_buffer[fal_control.pos] ?? Expression dint_array[fal_control.pos] EN DN ER MSG Type - Unconfigured Message Control EN DN ER

message ...

42192

Leitura de valores inteiros de um controlador CLP-5


Leia continuamente valores inteiros de 16 bits (INTs) de um controlador CLP-5 e armazene-os em int_buffer. A instruo FAL move os valores para dint_array. Isto converte os valores para inteiros de 32 bits (DINTs), para o uso por outras instrues no projeto.
message.EN / MSG Type - Unconfigured Message Control

message ...

EN DN ER

message.DN

fal_control RES

FAL File Arith/Logical Control fal_control Length ? Position 0 Mode all Dest dint_array[fal_control.pos] ?? Expression int_buffer[fal_control.pos]

EN DN ER

42192

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-13

Envio de uma Mensagem para Controladores Mltiplos

Use o seguinte procedimento para programar uma nica instruo de mensagem para comunicar-se com mltiplos controladores. Para reconfigurar uma instruo MSG durante o tempo de execuo, escreva novos valores para os membros do tipo de dados MESSAGE. IMPORTANTE No tipo de dados MESSAGE, o membro RemoteElement armazena o nome do tag ou o endereo dos dados no controlador que recebe a mensagem.
Se a mensagem: l dados escreve dados Ento o RemoteElement o: Elemento Fonte Elemento Destino

Nome do Tag message + message.RemoteElement. + message.RemoteIndex. + message.LocalIndex.


43052

+ message.Channel. + message.Rack.
A B

+ message.Group. + message.Slot. + message.Path.

A. Se voc usar um asterisco [*] para designar o nmero do elemento do array, o valor em B fornece o nmero de elemento. B. A caixa Index somente est disponvel quando voc usar um asterisco [*] no Elemento Fonte ou Elemento Destino. A instruo substitui o valor de Index para o asterisco [*].

Publicao 1756-PM001E-PT-P - Agosto 2002

14-14

Comunicao com Outro Controlador

Para enviar uma mensagem para mltiplos controladores: Definio da Configurao da E/S Definio dos Elementos Source e Destination Criao do Tipo de Dados MESSAGE_CONFIGURATION Criao do Array de Configurao Obteno do Tamanho do Array Local Carregamento das Propriedades para um Controlador Configurao da Mensagem Etapa para o Prximo Controlador Reincio da Sequncia Para copiar os componentes acima a partir de um projeto de amostra, abra a pasta \RSLogix 5000\Projects\Samples.

DICA

MSG_to_Multiple_Controllers.ACD
43055

Abra este projeto.

Definio da Configurao da E/S


Embora no seja necessrio, recomendamos que voc adicione os mdulos de comunicao e controladores remotos para a configurao da E/S do controlador. Isto a torna mais fcil para definir o caminho para cada controlador remoto. Por exemplo, uma vez que voc adicionou o mdulo de comunicao local, o mdulo de comunicao remoto e o controlador de destino, 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

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-15

Definio dos Elementos Source e Destination


Neste procedimento, um array armazena os dados que forem lidos do ou escrito para cada controlador remoto. Cada elemento no array corresponde a um controlador remoto diferente. 1. Use a seguinte planilha para organizar os nomes dos tags nos controladores local e remoto:
Nome do controlador remoto: Tag ou endereo dos dados no controlador remoto: Tag neste controlador: local_array[0] local_array[1] local_array[2] local_array[3]

2. Crie o tag local_array que armazena os dados neste controlador.


Nome do Tag local_array tipo data_type [length ] onde: data_type o tipo de dados que a mensagem envia ou recebe, como DINT, REAL ou STRING. length o nmero de elementos no array local.

Publicao 1756-PM001E-PT-P - Agosto 2002

14-16

Comunicao com Outro Controlador

Criao do Tipo de Dados MESSAGE_CONFIGURATION


Neste procedimento, voc cria um tipo de dados definido pelo usurio para armazenar as variveis de configurao para a mensagem para cada controlador. Alguns destes membros requisitados do tipo de dados usam um tipo de dados da string. O tipo de dados STRING padro define 82 caracteres. Se seus caminhos ou nomes ou endereos de tags usam menos de 82 caracteres, voc tem a opo de criar um novo tipo de string que armazene menos caracteres. Isto permite que voc conserve a memria. Para criar um novo tipo de string, selecione File New Component String Type Caso voc crie um novo tipo de string, use-o no lugar do tipo de dados STRING neste procedimento.
Para criar um novo tipo de dados: + + + Controller Your_Project Tasks Motion Groups Trends Data Types User-Defined Membros: nome + + Path RemoteElement tipo de dados STRING STRING Estilo: Descrio

Para armazenar as variveis da configurao para a mensagem para cada controlador, crie o seguinte tipo de dados definido pelo usurio.
Tipo de Dados:MESSAGE_CONFIGURATION
Nome Descrio MESSAGE_CONFIGURATION Propriedades de configurao para uma mensagem para outro controlador

clique com o boto direito do mouse e selecione New Data Type.

Criao do Array de Configurao


Neste procedimento, voc armazena as propriedades de configurao para cada controlador em um array. Antes de cada execuo da instruo MSG, sua lgica carrega novas propriedades dentro da instruo. Isto envia a mensagem para um controlador diferente.

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-17

Figura 14.1 Carregamento de Novas Propriedades Dentro de uma Instruo MSG


Array de Configurao Propriedades da Mensagem

message_config message_config[0] + message_config[0].Path + message_config[0].RemoteElement message_config[1] + message_config[1].Path + message_config[1].RemoteElement messages + message.Path. + message.RemoteElement.
prxima execuo da mensagem Propriedades da Mensagem primeira execuo da mensagem

message + message.Path. + message.RemoteElement.

Etapas:
1. Para armazenar as proprieddes de configurao para a mensagem, crie o seguinte array:
Nome do Tag message_config Tipo MESSAGE_CONFIGURATION[number ] Escopo qualquer

onde: number o nmero de controladores para o qual envia-se a mensagem.

Publicao 1756-PM001E-PT-P - Agosto 2002

14-18

Comunicao com Outro Controlador

2. No array message_config, insira o caminho para o primeiro controlador que recebe a mensagem.
Nome do Tag message_config message_config[0] + message_config[0].Path + message_config[0].RemoteElement {} {}
Clique com o boto direito do mouse e selecione Go to Message Path Editor.

Valor

Insira o caminho para o controlador remoto ou Navegue para o controlador remoto.

Message Path Browser Path: peer_controller I/O Configuration

3. No array message_config, insira o nome do tag ou endereo dos dados no primeiro controlador para receber a mensagem.
Nome do Tag message_config message_config[0] + message_config[0].Path + message_config[0].RemoteElement message_config[1] + message_config[1].Path + message_config[1].RemoteElement ... {} {} {} Valor

Insira o nome do tag ou endreo dos dados no outro controlador.

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-19

4. Insira o caminho e o elemento remoto para cada controlador adicional:


Nome do Tag message_config message_config[0] + message_config[0].Path + message_config[0].RemoteElement message_config[1] + message_config[1].Path + message_config[1].RemoteElement {} {} {} Valor

Obteno do Tamanho do Array Local

1. 2. 3.
43051

1. A instruo SIZE conta o nmero de elementos em local_array. 2. A instruo conta SIZE o nmero de elementos na Dimenso 0 do array. Neste caso, aquele nmero somente a dimenso. 3. Local_array_length armazena o tamanho (nmero de elementos) de local_array. Este valor informa uma faixa subseqente quando a mensagem foi enviada para todos os controladores e para iniciar com o primeiro controlador novamente.
Nome do Tag local_array_length Tipo DINT

Publicao 1756-PM001E-PT-P - Agosto 2002

14-20

Comunicao com Outro Controlador

Carregamento das Propriedades para um Controlador


1. 2. 3.

4. 5.

6.
43051

1. Esta instruo XIO condiciona a faixa para enviar continuamente a mensagem.


Nome do Tag message Tipo MESSAGE Escopo do controlador

2. A instruo COP carrega o caminho para a mensagem. O valor de index determina qual elemento a instruo carrega a partir de message_config. Consulte a Figura 14.1 na pgina 14-17.
Nome do Tag index Tipo DINT Escopo qualquer

3. A instruo carrega 1 elemento de message_config. 4. A instruo COP carrega o nome do tag ou o endereo dos dados no controlador que recebe a mensagem. O valor de index determina qual elemento a instruo carrega a partir de message_config. Consulte a Figura 14.1 na pgina 14-17. 5. A instruo carrega 1 elemento de message_config. 6. Instruo MSG

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com Outro Controlador

14-21

Configurao da Mensagem
Embora sua lgica controla o elemento remoto e o caminho para a mensagem, a caixa de dilogo Message Properties requer uma configurao inicial.

IMPORTANTE

43054

Desmarque a caixa de verificao Cache Connection.

Tabela14.A Nesta guia: Configuration Se voc quiser: ler (receber) dados de outros controladores Para este item: Massage Type Source Element Number of Elements Tag de Destino Index escrever (enviar) dados para outros controladores Message Type Source Tag Index Number of Elements Destination Element Communicaton Path Cache Connections Digite ou selecione: o tipo leitura que corresponde a outros controladores tag ou endereo que contenha os dados no primeiro controlador 1 local_array[*] 0 o tipo escrita que corresponde para outros controladores local_array[*] 0 1 tag ou endereo que contenha os dados no primeiro controlador caminho para o primeiro controlador Desmarque a caixa de verificao Cache Connection. Como este procedimento altera continuamente o caminho da mensagem, ele mais eficiente para desmarcar esta caixa de verificao.

Publicao 1756-PM001E-PT-P - Agosto 2002

14-22

Comunicao com Outro Controlador

Etapa para o Prximo Controlador


1. 2. 3.

43051

1. Aps a instruo MSG enviar a mensagem 2. Esta instruo ADD incrementa index. Isto permite que a lgica carregue as propriedades de configurao para o prximo controlador dentro da instruo MSG. 3. Esta instruo ADD incrementa o membro LocalIndex da mensagem MSG. Isto permite que a lgica carregue o valor do prximo controlador dentro do prximo elemento de local_array..

Reincio da Sequncia
1. 2. 3.

43051

1. Quando o ndice for igual a local_array_length, o controlador enviou a mensagem para todos os outros controladores. 2. Esta instruo CLR configura index igual a 0. Isto permite que a lgica carregue as propriedades de configurao para o primeiro controlador na instruo MSG e inicia a seqncia de mensagens novamente. 3. Esta instruo CLR configura o membro LocalIndex da instruo MSG igual a 0. Isto permite que a lgica carregue o valor do primeiro controlador no primeiro elemento de local_array..

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

15

Produo de uma Matriz Grande


Quando Usar Este Procedimento
O controlador Logix5550 pode enviar at 500 bytes de dados em uma nica conexo programada. Isto corresponde a 125 elementos DINT ou REAL de uma matriz. Para transferir uma matriz de mais de 125 DINTs ou REALs, use um tag produzido/consumido de 125 elementos para criar um pacote de dados. Voc pode, ento, usar o pacote para enviar a matriz por partes para outro controlador. Quando voc enviar uma matriz de dados grande, em pequenos pacotes, voc deve garantir que a transmisso de um pacote esteja completa antes que os dados sejam movidos para a matriz destino, por estas razes. Dados produzidos na placa de fundo do chassi ControlLogix so enviados em segmentos de 50 bytes. A transmisso de dados assncrona varredura do programa. A lgica que esta seo inclui usa uma palavra de reconhecimento para garantir que cada pacote contm novos dados antes que os dados se movam para a matriz destino. A lgica tambm usa um valor de offset para indicar o elemento inicial do pacote dentro de uma matriz. Por causa dos elementos de offset e de reconhecimento, cada pacote carrega 123 elementos de dados a partir da matriz, conforme definido abaixo:
Produtor Consumidor

matriz pacote 0 pacote

matriz

123 offset 124 reconhecimento

offset reconhecimento

Alm disso, a matriz deve conter 122 elementos extras. Em outras palavras, ela deve ser 122 elementos maior do que o maior nmero de elementos que voc quer transferir: Esses elementos servem como um buffer. Desde que cada pacote contenha o mesmo nmero de elementos, o buffer evita que o controlador copie dados alm dos limites da matriz. Sem o buffer, isto ocorreria se o ltimo pacote contivesse menos de 123 elementos de dados reais.

Publicao 1756-PM001E-PT-P - Agosto 2002

15-2

Produo de uma Matriz Grande

Produo de uma Matriz Grande

1. Abra o projeto RSLogix 5000 que produzir a matriz. 2. Na pasta Controller Tags, crie os seguintes tags:
P Nome do Tag array_ack array_packet DINT[2] DINT[125] Tipo

onde: array o nome dos dados que voc est enviando. 3. Converta array_ack para um tag consumido:
Para: Controlador Nome do Tag Remoto array_ack Ambos os controladores usam o mesmo nome para estes dados compartilhados. Especifique: nome do controlador que est recebendo o pacote

Consulte Consumo de um Tag Produzido na pgina 14-5. 4. Na pasta Controller Tags ou na pasta Tags do programa que conter a lgica para a transferncia, crie os seguintes tags:
Nome do Tag array array_offset array_size array_transfer_time array_transfer_time_max array_transfer_timer Tipo DINT[x], onde x igual ao nmero de elementos para transferir, mais os 122 elementos. DINT DINT DINT DINT TIMER

onde: array o nome dos dados que voc est enviando. 5. No tag array_size, insira o nmero de elementos de dados reais. (O valor de x da etapa 4. menos os 122 elementos do buffer) 6. Crie ou abra uma rotina para a lgica que criar os pacotes de dados.

Publicao 1756-PM001E-PT-P - Agosto 2002

Produo de uma Matriz Grande

15-3

7. Entre com a seguinte lgica: Conta quanto tempo dura o envio de toda a matriz
TON Timer On Delay Timer array_transfer_timer Preset 10000000 Accum 0 EN DN

Quando o valor do offset em array_ack[0] no for igual ao valor do offset atual, mas array_ack[1] for igual a 999, o consumidor comea a receber o novo pacote, ento a linha move 999 para o ltimo elemento do pacote. O consumidor espera at que ele receba o valor 999 antes de copiar o pacote para a matriz. Isto garante que o consumidor tenha novos dados.
NEQ Not Equal Source A array_ack[0] 0 Source B array_packet[123] 0 EQU Equal Source A array_ack[1] 0 Source B -999 MOV Move Source -999

Dest array_packet[124] 0

Publicao 1756-PM001E-PT-P - Agosto 2002

15-4

Produo de uma Matriz Grande

Quando o valor do offset em array_ack[0] for igual ao valor do offset atual, o consumidor copiou o pacote para a matriz; ento, a linha verifica a existncia de mais dados para transferir. Se o valor do offset, mais 123, for menor do que o tamanho da matriz, h mais dados para transferir, ento a linha aumenta o offset em 123. Caso contrrio, no h mais dados para transferir, portanto a linha reseta o valor do offset, registra o tempo de transferncia e reseta o temporizador. Em ambos os casos, a linha usa o novo valor de offset para criar um novo pacote de dados, anexa o novo valor de offset ao pacote e remove o elemento de reconhecimento do pacote (packet[124]). q
Source A array_ack[0] 0 Source B array_packet[123] 0 CMP Compare Expression (array_ack[0] + 123) < array_size ADD Add Source A array_packet[123] 0 Source B 123 Dest CMP Compare Expression (array_ack[0] + 123) >= array_size array_offset 0 CLR Clear Dest array_offset 0 MOV Move Source array_transfer_timer.ACC 0 Dest array_transfer_time 0 array_transfer_timer RES COP Copy File Source array[array_offset] Dest array_packet[0] Length 123 MOV Move Source array_offset 0 Dest array_packet[123] 0 CLR Clear Dest array_packet[124] 0

Se o tempo de transferncia atual for maior do que o tempo mximo de transferncia, atualize o tempo mximo de transferncia. Isto mantm um registro do maior tempo para a transferncia de dados.
GRT Greater Than (A>B) Source A array_transfer_time 0 Source B array_transfer_time_max 0 MOV Move Source array_transfer_time 0 Dest array_transfer_time_max 0 FLL
42355

8. Abra o projeto RSLogix 5000 que consumir a matriz. 9. Na pasta Controller Tags, crie os seguintes tags:
P array_ack array_packet Nome do Tag DINT[2] DINT[125] Tipo

onde: array o nome dos dados que voc est enviando. Use o mesmo nome do controlador que est produzindo (etapa 2.).

Publicao 1756-PM001E-PT-P - Agosto 2002

Produo de uma Matriz Grande

15-5

10. Converta array_packet para um tag consumido:


Para: Controlador Nome do Tag Remoto array_packet Ambos os controladores usam o mesmo nome para estes dados compartilhados. Especifique: nome do controlador que est enviando o pacote

Consulte Consumo de um Tag Produzido na pgina 14-5. 11. Na pasta Controller Tags ou na pasta Tags do programa que conter a lgica para a transferncia, crie as seguintes variveis:
Nome do Tag array array_offset Tipo DINT[x], onde x igual ao nmero de elementos para transferir, mais os 122 elementos DINT

onde: array o nome dos dados que voc est enviando. 12. Crie ou abra uma rotina para a lgica que mover os dados dos pacotes para a matriz destino.

Publicao 1756-PM001E-PT-P - Agosto 2002

15-6

Produo de uma Matriz Grande

13. Entre com a seguinte lgica: Quando o valor do offset em array_packet[123] diferente do valor do offset em array_ack[0] o controlador comea a receber o novo pacote de dados; portanto a linha verifica a existncia do valor 999 no ltimo elemento do pacote. Se o ltimo elemento do pacote for igual a 999, o controlador recebe um pacote inteiro de novos dados e comea a operao de cpia: O valor do offset se move do pacote para array_offset. As instrues COP copiam os dados do pacote para a matriz destino, comeando no valor do offset. O valor de offset move-se para array_ack[0], que sinaliza que a cpia est completa. Array_ack[1] reseta para zero e espera o sinal de chegada de um novo pacote.

Se o ltimo elemento do pacote no for igual a 999, a transferncia do pacote para o controlador pode no estar completa; ento 999 move-se para array_ack[1]. Isto sinaliza o produtor para retornar o valor de 999 no ltimo elemento do pacote para verificar a transmisso do pacote.
NEQ Not Equal Source A array_packet[123] 0 Source B array_ack[0] 0 EQU Equal Source A array_packet[124] 0 Source B -999 MOV Move Source array_packet[123] 0 Dest array_offset 0 COP Copy File Source array_packet[0] Dest array[array_offset] Length 123 MOV Move Source array_packet[123] 0 Dest array_ack[0] 0 CLR Clear Dest array_ack[1] 0 NEQ Not Equal Source A array_packet[124] 0 Source B -999 MOV Move Source -999

Dest array_ack[1] 0

42356

A transferncia de uma matriz grande como pacotes menores melhora a performance do sistema em relao a outros mtodos de transferncia de dados. Um nmero menor de conexes usado do que se voc dividir os dados em matrizes mltiplas e mandar cada uma como um tag produzido. Por exemplo, uma matriz com 5000 elementos tomaria 40 conexes (5000/125 = 40) usando matrizes individuais.

Publicao 1756-PM001E-PT-P - Agosto 2002

Produo de uma Matriz Grande

15-7

Tempos de transmisso mais rpidos so alcanados, comparando-se com o uso de uma instruo de mensagem para enviar a matriz inteira. As mensagens so desprogramadas e executadas somente durante a poro de atraso do sistema da execuo do Logix5550. Portanto, as mensagens podem tomar um tempo relativamente longo para completar a transferncia de dados. Voc pode melhorar o tempo de transferncia, aumentando a fatia de tempo de atraso do sistema, mas isso diminui a performance da tarefa contnua.

Publicao 1756-PM001E-PT-P - Agosto 2002

15-8

Produo de uma Matriz Grande

Notas:

Publicao 1756-PM001E-PT-P - Agosto 2002

Captulo

16

Comunicao com um Dispositivo ASCII

Quando Usar Este Procedimento

Use este procedimento para trocar dados ASCII com um dispositivo atravs da porta serial do controlador. Por exemplo, voc pode usar a porta serial para: ler caracteres ASCII de um mdulo de balana de peso ou leitor de cdigo de barras enviar e receber mensagens de um dispositivo ASCII disparado, como um terminal MessageView.

conexo da porta serial do controlador para o dispositivo ASCII:

42237

Como Usar Este Procedimento

Antes de usar este procedimento: Configure o Dispositivo ASCII para Sua Aplicao Para completar este procedimento, execute as seguintes tarefas: Conexo do Dispositivo ASCII Configurao da Porta Serial Configurao do Protocolo do Usurio Criao de Tipos de Dados do String Leitura de Caracteres do Dispositivo Envio de Caracteres para o Dispositivo

Publicao 1756-PM001E-PT-P - Agosto 2002

16-2

Comunicao com um Dispositivo ASCII

Conexo do Dispositivo ASCII

1. Para a porta serial do dispositivo ASCII, determine quais os pinos enviam sinais e quais recebem sinais. 2. Conecte os pinos de envio para os pinos receptores correspondentes e conecte os jumpers:
Se a comunicao: handshake
Dispositivo ASCII
1 CD 2 RDX 3 TXD 4 DTR COMMON 6 DSR 7 RTS 8 CTS 9

Ento conecte os conectores conforme segue:


Controlador
1 CD 2 RDX 3 TXD 4 DTR COMMON 6 DSR 7 RTS 8 CTS 9
42231

sem handshake
Dispositivo ASCII
1 CD 2 RDX 3 TXD 4 DTR COMMON 6 DSR 7 RTS 8 CTS 9

Controlador
1 CD 2 RDX 3 TXD 4 DTR COMMON 6 DSR 7 RTS 8 CTS 9
42232

3. Conecte o cabo blindado a ambos conectores. 4. Conecte o cabo ao controlador e ao dispositivo ASCII.

Publicao 1756-PM001E-PT-P - Agosto 2002

Comunicao com um Dispositivo ASCII

16-3

Configurao da Porta Serial

1. Determine as seguintes configuraes de comunicao para o dispositivo ASCII: a. b. c. d. taxa de transmisso bits de dados paridade bits de parada

2. Abra o RSLogix 5000.

42627

3. Na barra de ferramenta online, clique no boto do controlador. 4. Clique na guia Serial Port.

5.

6.

42251

5. Selecione User. 6. Selecione as configuraes para o dispositivo ASCII, a partir da etapa 1.

Publicao 1756-PM001E-PT-P - Agosto 2002

16-4

Comunicao com um Dispositivo ASCII

7.

8. 9.
42251

7. S