Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Manual de Programao
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.
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
Notas:
Prefcio
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
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
Prefcio
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.
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:
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
Sumrio
Captulo 1 Gerenciamento dos Arquivos de Projeto
Criao de um Arquivo de Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Armazenamento das Mudanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
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
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
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
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
vi
Sumrio
Download de um Projeto para o Controlador . . . . . . . . . . . . . . . . . Seleo de um Modo para o Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Correo de Falhas Graves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Salvar Suas Alteraes Online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sumrio
vii
viii
Sumrio
Sumrio
ix
Sumrio
Captulo
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.
1-2
nome do controlador
organizador do controlador
42371
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:
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.
1-4
Notas:
Captulo
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.
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
2-2
Definies
Antes de usar os procedimentos descritos neste captulo, familiarize-se com as definies a seguir.
Tarefa
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
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
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.
2-4
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).
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.
2-5
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
texto estruturado
2-6
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)
2-7
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
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 .
2-8
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.
2-9
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.
2-10
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-11
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
2-12
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.
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].
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:
3-2
Organizao de Tags
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
Organizao de Tags
3-3
EXEMPLO
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 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
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
Esta matriz contm uma grade de elementos de duas dimenses, de seis em seis elementos.
42367
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
matriz de receitas
primeira receita
membros da receita
42368
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
primeiro furo
42583
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:
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.
Organizao de Tags
3-9
2.
42350
3.
4.
5.
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).
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.
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.
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.
Organizao de Tags
3-11
DESCRIPTION DESCRIPTION
8.
9.
10.
11.
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
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.
Captulo
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
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.
4-2
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.
4-3
Figura 4.2 Exemplo de SFC (continuao da pgina anterior) Uma ramificao de seleo escolhe entre diferentes caminhos de execuo.
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.
4-4
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.
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.
4-6
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.
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.
4-7
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
4-8
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
LimitLow
DINT
LimitHigh
DINT
4-9
Se voc quiser:
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)
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
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.
4-10
Se voc quiser: usar um tag para vrios bits de status desta etapa
step_name.X
step_name.FS
step_name.SA
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.
Conecte o fio etapa ou ramificao simultnea para qual deseja ir. No conecte , fora da ou entre uma ramificao simultnea.
4-12
45
46
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
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.
4-14
nica linha horizontal cada caminho possui sua prpria transio faa isto... OU isso OU isso
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.
4-15
faa isto...
E isso
E isso
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.
4-16
4-17
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
4-18
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.
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.
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.
DINT
4-20
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
Status
DINT
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*/
4-21
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:
E:
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
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
4-22
A transio consiste das condies fsicas que devem ocorrer ou alterao para ir para a etapa seguinte.
transio
etapas transies
ramificao de seleo
transies
ramificao simultnea
transies
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_16
Para suprimir o estado de uma transio, consulte Elementos da Lgica Force na pgina 18-1.
4-24
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.
bool_tag_a
dint_tag_a > 8
4-25
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.
4-26
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.
4-27
Figura 4.4 O diagrama a seguir mostra a ao dos alarmes baixo e alto para uma etapa:
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)
4-28
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_Not_OK
Init.AlarmHigh
4-29
Quando o SFC deixa a etapa, voc tem diversas opes sobre como desenergizar os dispositivos que a etapa energizou.
Reset Programado
Reset Automtico
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.
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
pgina 4-33
4-30
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
Use as aes P e P0
Use:
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.
4-31
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.
4-32
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.
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.
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.
4-34
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.
4-35
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
4-36
EXEMPLO
Transfer_In
Paint_Flow
Air_Flow
Elec_Charg
Controle do Ventilador
Limpeza
Transfr_Out
4-37
Action_Name
ao que voc quer executar para mais de uma etapa
mais etapas
Action_Name
mesmo nome que a ao armazenada
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.
4-38
step_1
step_2
step_4
Para o ventilador voltar para energizado, o SFC tem que voltar para a step_1.
EXEMPLO
Para obter informaes adicionais sobre como encadear um SFC, consulte Encadeamento de um SFC na pgina 4-42.
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.
4-40
EXEMPLO
Reset Programado Dont scan NO encadeado (isto , nenhum SFC chama esse SFC como uma sub-rotina)
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
Count
DINT
Status
DINT
4-42
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.
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
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.
4-44
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
4-45
step_1
falsa
ltima varredura
step_2
falsa
ltima varredura
4-46
ltima varredura
step_2
step_3
tran_2 verdadeira
falsa
step_3
falsa
ltima varredura
step_3
4-47
ltima varredura
falsa
falsa
ltima varredura
parmetros de parmetros de entrada parmetros de retorno volte para OS/JSR falsa step_1
tran_1 verdadeira
parmetros de retorno
parmetros de
ltima varredura
4-48
falsa
tran_1 verdadeira
falsa
step_1
ltima varredura
step_2
falsa
tran_2 verdadeira
falsa
step_2
ltima varredura
Captulo
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
5-2
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
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.
5-3
ponto verde
5-4
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
5-5
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.
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.
5-6
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.
5-7
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.
5-8
Para saltar para uma etapa diferente no SFC: Conecte um Fio Etapa Esconder um Fio Mostrar um Fio Escondido
1.
Clique aqui.
2.
Arraste a barra horizontal aqui.
Clique aqui.
ponto verde
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.
Para ver o elemento de SFC para qual o fio vai, clique no local de rede na conexo.
fio escondido
5-10
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.
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
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.
5-11
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.
3.
5-12
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
5-13
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.
Para programar uma transio, voc tem essas opes: Inserir uma Expresso BOOL Chame uma Sub-rotina
BOOL_expression
5-14
O exemplo a seguir mostra as trs transies que usam uma expresso BOOL. EXEMPLO Inserir uma Expresso BOOL
2.
JSR(routine_name)
5-15
Adio de uma Ao
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.
5-16
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
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
5-17
2.
3.
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
2.
5-18
3. Selecione
Programao de uma Ao
Para programar uma ao, voc tem essas opes: Insero do Texto Estruturado Chame uma Sub-rotina
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].
5-19
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
5-20
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:
5-21
Documentao do SFC
Para documentar: as informaes gerais sobre o SFC etapa
transio
Para obter mais informaes, consulte Comentrios na pgina 6-29. Para inserir os comentrios:
5-22
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].
3.
3. Digite a descrio para o elemento (tag). 4. Selecione 5. Arraste a caixa de descrio para o local desejado na SFC.
5-23
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.
5-24
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
2.
4. Escolha
5-25
1. Clique no boto
3. Escolha Para mostrar outras descries, consulte Mostrar ou Esconder as Caixas de Textos ou Descries de Tag na pgina 5-24.
5-26
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
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].
5-28
Notas:
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)
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:
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).
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
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.
6-2
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
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
6-4
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.
6-5
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.
6-6
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.
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)
6-8
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);
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.
6-10
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
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.
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;
6-11
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
6-12
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);
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
6-13
IF...THEN
Operandos:
Texto Estruturado
IF bool_expression THEN <statement>; END_IF;
Tipo:
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
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
6-14
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
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.)
6-16
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;
6-17
CASE...OF
Operandos:
Texto Estruturado
CASE numeric_expression OF selector1: statement; selectorN: statement; ELSE statement; END_CASE;
selector
imediato
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
opcional
6-18
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>
Condies de Falha:
Nenhuma
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;
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.)
6-20
FOR...DO
Use a malha FOR...DO para fazer algo com um nmero especfico de vezes antes de fazer algo mais.
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.
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>;
opcional
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
Para parar a malha antes que a contagem alcance o ltimo valor, use uma declarao EXIT.
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;
6-22
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;
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;
Tipo:
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
6-24
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;
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.
Condies de Falha:
Uma falha grave ocorrer se: a construo das malhas for muito longa 6
Tipo de falha: 1
Cdigo de falha:
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.
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.
6-26
REPEAT...UNTIL
Operandos:
Texto Estruturado
REPEAT <statement>; UNTIL bool_expression END_REPEAT;
Tipo:
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
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:
Condies de Falha:
Uma falha grave ocorrer se: a construo das malhas for muito longa 6
Tipo de falha: 1
Cdigo de falha:
6-28
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.
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.
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*/ que ocupe mais de uma linha (*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*)
6-30
Captulo
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 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.
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
7-2
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
Planilha 3 de 4
motor 3
Planilha 4 de 4
motor 4
7-3
nico conector do fio de sada (OCON) e mltiplos conectores do fio de entrada (ICON)
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.
7-4
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.
7-5
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.
pino de sada
fio
pino de entrada
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
7-6
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.
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
7-8
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.
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.
Indicador Considerar Dados Disponveis Os fios usam o indicador Considerar Dados Disponveis.
7-10
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.
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.
7-12
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
7-13
Como a entrada ProgOperReq sempre energizada, no h efeito se pressionar o boto Program na placa frontal (que define a entrada
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.
7-14
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.
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.
7-16
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
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
7-18
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
2.
3. Selecione
7-19
ponto verde
conexo de entrada
7-20
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
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
7-21
8.
3.
7-22
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
3.
3. Clique duas vezes na rea do operando da IREF. 4. Insira o valor e pressione a tecla Enter.
2.
7-23
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
7-24
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].
Captulo
Use esse procedimento para: desenvolver a lgica para a rotina de lgica ladder inserir a lgica na rotina
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.
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
8-2
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
8-3
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
8-4
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.
8-5
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
8-6
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.
8-7
Coloque as instrues de sada entre as instrues de entrada, desde que a ltima instruo da linha seja uma instruo de sada
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
EXEMPLO
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
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
drill[1].part_advance
42357
8-9
Use a barra de ferramentas Language Element para adicionar um elemento de lgica ladder a sua rotina.
outras instrues
Para adicionar um elemento: Acrscimo de um Elemento ao Local do Curso Arrastar e Soltar um Elemento
8-10
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)
4. Pressione o boto
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-12
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].
Captulo
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
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
9-2
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.
9-3
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.
9-4
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.
9-5
Source (SSV)
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.
9-6
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)
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
9-7
9-8
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
9-9
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.
9-10
Captulo
10
Atribuio de 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
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.
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.
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 <Local:2:I.Data.1>
conveyor_on um alias/smbolo para Local:0:O.Data.0 (contator de acionamento para o motor da esteira transportadora)
42351
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.
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.
10-4
Atribuio de Aliases/Smbolos
Notas:
Captulo
11
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. 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.
11-2
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
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
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
11-4
Notas:
Captulo
12
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.
12-2
Buffer de E/S
EXEMPLO
Buffer de E/S
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
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
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
12-4
Buffer de E/S
Notas:
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.
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)
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
Teste de um Projeto
13-3
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
+
communication module
backplane
+
controller
13-4
Teste de um Projeto
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.
Teste de um Projeto
13-5
42627
A
42525
13-6
Teste de um Projeto
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.
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.
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.
Captulo
14
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
14-11 14-13
Um tag produzido envia seus dados para um ou mais tag consumidos (consumidores) sem usar a lgica ladder.
14-2
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).
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
14-4
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
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.
6. 7. 8. 9.
42353
10.
14-6
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.
14-7
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.
14-8
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
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:
Data Type
14-10
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.
14-11
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
count_send
count_msg.en /
count_msg ...
EN DN ER
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).
14-12
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
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
14-13
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
+ message.Channel. + message.Rack.
A B
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 [*].
14-14
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
peer_controller I/O Configuration [0] 1756-CNB/x Local_CNB 2 [0] 1756-CNB/x chassis_b [1] 1756-L55/x peer_controller
14-15
14-16
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
14-17
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
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
14-18
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
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
14-19
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
14-20
4. 5.
6.
43051
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
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
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.
14-22
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..
Captulo
15
matriz
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.
15-2
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.
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
15-4
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.).
15-5
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.
15-6
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.
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.
15-8
Notas:
Captulo
16
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.
42237
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
16-2
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
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.
16-3
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
42627
3. Na barra de ferramenta online, clique no boto do controlador. 4. Clique na guia Serial Port.
5.
6.
42251
16-4
7.
8. 9.
42251