212
Controladores Logix5000 Procedimentos Comuns 1756-Lx, 1769-Lx, 1789-Lx, 1794-Lx Manual de Programação

103449316-Logix5000-apostila1

  • Upload
    erimf

  • View
    53

  • Download
    2

Embed Size (px)

Citation preview

Page 1: 103449316-Logix5000-apostila1

Controladores Logix5000™ Procedimentos Comuns1756-Lx, 1769-Lx, 1789-Lx, 1794-Lx

Manual de Programação

Page 2: 103449316-Logix5000-apostila1

Informações Importantes ao Usuário

Por causa da diversidade de usos dos produtos descritos nesta publicação, os responsáveis pela aplicação e uso deste equipamento de controle devem certificar-se de que todas as etapas necessárias foram seguidas para garantir que cada aplicação e uso cumpram todos os requisitos de desempenho e segurança, incluindo todas as leis, regulamentações, códigos e padrões aplicáveis.

As ilustrações, gráficos, exemplos de programas e de layout mostrados neste manual são apenas para fins ilustrativos. Visto que há diversas variáveis e requisitos associados a qualquer instalação em especial, a Rockwell Automation não assume a responsabilidade (incluindo responsabilidade por propriedade intelectual) pelo uso real baseado nos exemplos mostrados nesta publicação.

A publicação Allen-Bradley SGI-1.1, Diretrizes de Segurança para Aplicação, Instalação e Manutenção dos Dispositivos de Controle de Estado Sólido (disponível no escritório local da Rockwell Automation), descreve algumas diferenças importantes entre os equipamentos eletrônicos e dispositivos eletromecânicos, que devem ser levadas em consideração ao utilizar produtos como os descritos nesta publicação.

É proibida a reprodução, parcial ou total, deste manual sem a permissão por escrito da Rockwell Automation.

Ao longo deste manual, usamos notas a fim de chamar sua atenção para algumas considerações de segurança:

As instruções de atenção ajudam você a:

• identificar e evitar um perigo

• reconhecer as conseqüências

Allen-Bradley, ControlLogix, DH+, Logix5000, PLC-5, RSLogix 5000, RSLinx, RSNetWorx e SLC são marcas da Rockwell Automation.

ControlNet é uma marca da ControlNet International, Ltd.

Ethernet é uma marca da Digital Equipment Corporation, Intel e Xerox Corporation.

ATENÇÃO

!Identifica as informações sobre práticas ou circunstâncias que podem causar danos pessoais ou morte, danos à propriedade ou perdas econômicas.

IMPORTANTE Identifica as informações críticas para aplicação e compreensão bem-sucedidas do produto.

Page 3: 103449316-Logix5000-apostila1

Resumo das Alterações

Introdução A edição deste documento contém informações novas e atualizadas.

Informação atualizada O documento contém as seguintes alterações:

Esta informação nova ou atualizada: Inicia-se na página:

Planejamento de Tags 3-1

Obtenção e Definição dos Dados de Sistema

5-4

Comunicação com um Dispositivo ASCII 12-1

Caracteres do Processo ASCII 13-1

Monitoração de Falhas de Advertência 17-1

Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil

19-1

Códigos de Falha Grave A-1

Códigos de Falha de Advertência A-3

Conformidade IEC61131-3 B-1

Termos do glossário Glossário

Códigos de Caractere ASCII quarta capa

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 4: 103449316-Logix5000-apostila1

Resumo das Alterações 2

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 5: 103449316-Logix5000-apostila1

Prefácio

Propósito deste Manual Este manual orienta o desenvolvimento de projetos para controladores Logix5000. Ele fornece procedimentos passo-a-passo sobre como realizar as seguintes tarefas, que são comuns a todos os controladores Logix5000:

• Gerenciamento dos Arquivos de Projeto

• Organização da Lógica

• Organização de Tags

• Rotinas de Programas

• Teste de um Projeto

• Manuseio 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 usuário para seu tipo de controlador específico. Os manuais do usuário abrangem tarefas como:

• Instalação e configuração de E/S

• Comunicação com dispositivos de várias redes

• Manutenção da bateria

Quem Deve Usar Este Manual

Este manual deve ser usado pelas pessoas responsáveis pela programação de aplicações que usam os controladores Logix5000, como:

• engenheiros de software

• engenheiros de controle

• engenheiros de aplicação

• técnicos de instrumentação

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 6: 103449316-Logix5000-apostila1

Prefácio 2

Quando Usar Este Manual Use este manual quando realizar estas ações:

• desenvolvimento do código básico para sua aplicação

• modificação de uma aplicação existente

• realização de testes isolados de sua aplicação

À medida que você integrar sua aplicação com dispositivos de E/S, controladores e redes em seu sistema:

• Consulte o manual do usuário para seu tipo de controlador específico.

• Use este manual como referência, quando necessário.

Como Usar Este Manual Este manual é dividido em tarefas básicas que você realiza na programação de um controlador Logix5000.

• Cada capítulo abrange uma tarefa.

• As tarefas estão organizadas na seqüência em que você normalmente as executa.

Ao usar este manual, você verá alguns termos que estão formatados de forma diferente do restante do texto:

Texto: Identifica: Por exemplo: Significa:

italics nome real do item que você vê na tela ou exemplo

Clique com o botão direito do mouse em User-Defined…

Clique com o botão direito do mouse no item chamado User-Defined.

negrito um verbete do “Glossário” Digite um nome… Se você quiser informações adicionais, consulte o nome no “Glossário”.

Se você estiver visualizando o arquivo PDF do manual, clique em nome para consultar a entrada no glossário.

courier informações que você deve fornecer, baseado na sua aplicação (uma variável)

Clique com o botão direito do mouse em name_of_program…

Você deve identificar o programa específico na sua aplicação. Tipicamente, é um nome ou variável que você definiu.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 7: 103449316-Logix5000-apostila1

Sumário

Capítulo 1Gerenciamento dos Arquivos de Projeto

Criação de um Arquivo de Projeto . . . . . . . . . . . . . . . . . . . 1-1Armazenamento das Mudanças. . . . . . . . . . . . . . . . . . . . . 1-3

Capítulo 2Organização das Tarefas Quando Usar este Procedimento . . . . . . . . . . . . . . . . . . . . 2-1

Como Usar este Procedimento. . . . . . . . . . . . . . . . . . . . . . 2-1Identificação das Linguagens de Programação Disponíveis . 2-1Organização da Lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2Verificação do Controlador . . . . . . . . . . . . . . . . . . . . . . . . 2-5

Capítulo 3Organização de Tags Planejamento de Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1

Crie um Tipo de Dados Definidos Pelo Usuário . . . . . . . . . 3-7Notas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8

Criação de um Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9Criação de Tags Usando o Microsoft® Excel® . . . . . . . . . . . . . 3-10

Capítulo 4Rotinas de Programas Quando Usar este Procedimento . . . . . . . . . . . . . . . . . . . . 4-1

Como Usar este Procedimento. . . . . . . . . . . . . . . . . . . . . . 4-1Abertura da Rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1Inserção das Instruções Ladder . . . . . . . . . . . . . . . . . . . . . 4-3Inserção das Instruções de Bloco de Função . . . . . . . . . . . 4-4Atribuição de Operandos. . . . . . . . . . . . . . . . . . . . . . . . . . 4-7Verificação da Rotina . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10

Capítulo 5Acesso aos Valores do Sistema

Monitoração dos Flags de Status . . . . . . . . . . . . . . . . . . . . 5-1Obtenção e Definição dos Dados de Sistema . . . . . . . . . . 5-2

Capítulo 6Atribuição de Aliases/Símbolos

Tags com Aliases/Símbolos . . . . . . . . . . . . . . . . . . . . . . . . 6-1Exibição das Informações de Alias/Símbolo . . . . . . . . . . . . 6-2Atribuição de um Alias/Símbolo . . . . . . . . . . . . . . . . . . . . 6-3

Capítulo 7Atribuição de um Endereço Indireto

Quando Atribuir um Endereço Indireto . . . . . . . . . . . . . . . 7-1Expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3

Capítulo 8Buffer de E/S Quando Usar o Buffer de E/S . . . . . . . . . . . . . . . . . . . . . . 8-1

Buffer de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1

i Publicação 1756-PM001C-PT-P - Junho 2001

Page 8: 103449316-Logix5000-apostila1

Sumário ii

Capítulo 9Teste de um Projeto Teste de um Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1

Configuração de um Driver de Comunicação . . . . . . . . . . . 9-1Descarregamento de um Projeto para o Controlador. . . . . . 9-2Seleção de um Modo para o Controlador . . . . . . . . . . . . . . 9-3Correção de uma Falha Graves . . . . . . . . . . . . . . . . . . . . . 9-4Armazenamento das Mudanças Online. . . . . . . . . . . . . . . . 9-4

Capítulo 10Comunicação com Outro Controlador

Quando Usar este Procedimento . . . . . . . . . . . . . . . . . . . . 10-1Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . 10-1Produção e Consumo de um Tag. . . . . . . . . . . . . . . . . . . . 10-1

O Que Você Precisa Fazer . . . . . . . . . . . . . . . . . . . . . . 10-3Organização de Tags para Dados Compartilhados . . . . . 10-3Produção de um Tag . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4Consumo de um Tag Produzido . . . . . . . . . . . . . . . . . . 10-5

Compartilhamento de Dados com um Controlador CLP-5C . 10-6Produção de Inteiros para um Controlador CLP-5C . . . . 10-6Produção de REALs para um Controlador CLP-5C . . . . . 10-7Consumo de Inteiros a partir de um Controlador CLP-5C ControlNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-9

Ajuste para os Limites de Tamanho . . . . . . . . . . . . . . . . . 10-10Envio de Mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11

Capítulo 11Produção de uma Matriz Grande

Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . 11-1Produção de uma Matriz Grande . . . . . . . . . . . . . . . . . . . . 11-2

Capítulo 12Comunicação com um Dispositivo ASCII

Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . 12-1Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . 12-1Conexão do Dispositivo ASCII . . . . . . . . . . . . . . . . . . . . . . 12-2Configuração da Porta Serial . . . . . . . . . . . . . . . . . . . . . . . 12-3Configuração do Protocolo do Usuário. . . . . . . . . . . . . . . . 12-5Criação de Tipos de Dados do String . . . . . . . . . . . . . . . . . 12-8Leitura de Caracteres do Dispositivo . . . . . . . . . . . . . . . . . 12-9Envio de Caracteres para o Dispositivo . . . . . . . . . . . . . . 12-14Inserção dos Caracteres ASCII . . . . . . . . . . . . . . . . . . . . . 12-20

Publicação 1756-PM001C-PT-P - Junho 2001

Page 9: 103449316-Logix5000-apostila1

Sumário iii

Capítulo 13Caracteres do Processo ASCII Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . 13-1

Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . 13-1Separação de um Código de Barras . . . . . . . . . . . . . . . . . . 13-2Verificação de Caracteres do Código de Barras. . . . . . . . . . 13-4Conversão de um Valor. . . . . . . . . . . . . . . . . . . . . . . . . . . 13-6Decodificação de uma Mensagem ASCII . . . . . . . . . . . . . . 13-8Construção de um String . . . . . . . . . . . . . . . . . . . . . . . . . 13-12

Capítulo 14Force Valores Quando Forçar um Valor. . . . . . . . . . . . . . . . . . . . . . . . . . 14-1

Inserção de Force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2Inserção de Forces a Partir da Janela Tags. . . . . . . . . . . 14-2Inserção de Forces a Partir da Lógica Ladder. . . . . . . . . 14-4

Habilitação de Forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-5Desabilitação de Forces. . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6Remoção de Forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6Monitoração de Forces . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-7

Capítulo 15Desenvolvimento de uma Rotina de Falha

Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . 15-1Desenvolvimento de uma Rotina de Falha . . . . . . . . . . . . . 15-1Teste de uma Rotina de Falha . . . . . . . . . . . . . . . . . . . . . . 15-4

Capítulo 16Criação de uma Falha Grave Definida Pelo Usuário

Quando Usar este Procedimento . . . . . . . . . . . . . . . . . . . . 16-1Criação de uma Falha Grave Definida pelo Usuário . . . . . . 16-1

Capítulo 17Monitoração de Falhas de Advertência

Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . 17-1Monitoração de Falhas de Advertência . . . . . . . . . . . . . . . 17-1

Capítulo 18Desenvolvimento de uma Rotina de Energização

Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . 18-1Desenvolvimento de uma Rotina de Energização . . . . . . . . 18-1

Capítulo 19Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil

Quando Usar Este Procedimento . . . . . . . . . . . . . . . . . . . . 19-1Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . 19-2Armazenamento de um Projeto . . . . . . . . . . . . . . . . . . . . . 19-3Carregamento de um Projeto . . . . . . . . . . . . . . . . . . . . . . . 19-6Verificação do Carregamento. . . . . . . . . . . . . . . . . . . . . . . 19-9Apagamento da Memória Não Volátil . . . . . . . . . . . . . . . . 19-10

Publicação 1756-PM001C-PT-P - Junho 2001

Page 10: 103449316-Logix5000-apostila1

Sumário iv

Apêndice ACódigos de Falha Quando Usar Este Apêndice . . . . . . . . . . . . . . . . . . . . . . . A-1

Códigos de Falha Grave . . . . . . . . . . . . . . . . . . . . . . . . . . A-1Códigos de Falha de Advertência. . . . . . . . . . . . . . . . . . . . A-3

Apêndice BConformidade IEC61131-3 Use este Apêndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1Sistema Operacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2Definições dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2Linguagens de Programação . . . . . . . . . . . . . . . . . . . . . . . B-3Conjunto de Instruções . . . . . . . . . . . . . . . . . . . . . . . . . . . B-4Portabilidade do Programa IEC61131-3 . . . . . . . . . . . . . . . B-4Tabelas de Conformidade com IEC . . . . . . . . . . . . . . . . . . B-5

Glossário

Publicação 1756-PM001C-PT-P - Junho 2001

Page 11: 103449316-Logix5000-apostila1

Capítulo 1

Gerenciamento dos Arquivos de Projeto

Criação de um Arquivo de Projeto

Antes de você programar um controlador Logix5000, você deve criar um arquivo de projeto:

1. Inicie o software RSLogix 5000™.

2. No menu Arquivo selecione Novo.

3. Selecione o tipo do controlador.

4. Digite um nome para o controlador.

5. Digite uma descrição das operações que o controlador desempenha (opcional).

6. Selecione o tipo do chassi (número de ranhuras) que o controlador contém (não aplicável para alguns controladores).

7. Selecione o tipo de ranhuras nas quais o controlador está instalado (não aplicável para alguns controladores).

8. Para armazenar o arquivo numa pasta diferente (diferente do caminho padrão Create in), clique em Browse e selecione uma pasta.

9. Clique em OK.

42194

3.

4.

5.

6.

7.

8.

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 12: 103449316-Logix5000-apostila1

1-2 Gerenciamento dos Arquivos de Projeto

42371

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

nome do controlador

organizador docontrolador

Publicação 1756-PM001C-PT-P - Junho 2001

Page 13: 103449316-Logix5000-apostila1

Gerenciamento dos Arquivos de Projeto 1-3

Armazenamento das Mudanças

Assim que você criar a lógica e fizer as mudanças de configuração, salve o projeto.

• Nomeie download para o controlador, enquanto a documentação (descrições, comentários de linha) não são descarregadas para o controlador.

• Para mudar o nome, tamanho do chassi ou número da ranhura do controlador:

a. No organizador do controlador, clique com o botão direito sobre a pasta Controller name_of_controller e selecione Properties.

b. Mude as informações requisitadas.

c. Clique em OK.

Para: Faça isto:

salvar suas mudanças No menu File, selecione Save.

fazer uma cópia do projeto aberto, mas mantendo o nome do controlador existente

A. No menu File, selecione Save As .B. Digite um nome para o arquivo do projeto. Use

sublinhas [ _ ] no lugar dos espaços.C. Clique em Save.

fazer uma cópia do projeto e atribuir um nome diferente para o controlador

A. No menu File, selecione Save As .B. Digite um nome para o arquivo do projeto. Use

sublinhas [ _ ] no lugar dos espaços.C. Clique em Save.D. No organizador do controlador, clique com o

botão direito sobre a pasta name_of_controller e selecione Properties.

E. Digite um novo nome para o controlador.F. Clique em OK.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 14: 103449316-Logix5000-apostila1

1-4 Gerenciamento dos Arquivos de Projeto

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 15: 103449316-Logix5000-apostila1

Capítulo 2

Organização das Tarefas

Quando Usar este Procedimento

Após criar um arquivo de projeto, organize seu projeto em tarefas.

Como Usar este Procedimento

Para organizar o projeto em tarefas, execute as etapas a seguir:

• Identificação das Linguagens de Programação Disponíveis

• Organização da Lógica

• Verificação do Controlador

Identificação das Linguagens de Programação Disponíveis

Use a tabela a seguir para identificar as linguagens de programação que podem ser usadas para o controlador:

Notas:

• Em controladores com múltiplas linguagens, pode-se utilizar mais de uma linguagem em um único projeto.

• Para usar blocos de função, é necessário ter o seguinte código de catálogo do software RSLogix 5000:

– 9324-RLD700

• Para saber quais componentes foram instalados com o software RSLogix 5000:

1. Abra o software RSLogix 5000.

2. No menu Help, escolha About RSLogix 5000.

Para esta plataforma de controladores:

Você pode usar esta linguagem:

ladder bloco de função

CompactLogix ✔ ✔

ControlLogix ✔ ✔

FlexLogix ✔ ✔

SoftLogix ✔

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 16: 103449316-Logix5000-apostila1

2-2 Organização das Tarefas

Organização da Lógica Para executar a sua lógica, utilize uma(s) tarefa(s). Há dois tipos de tarefas:

O organizador de controlador apresenta as tarefas de um controlador.

Esse tipo de tarefa: Realizará os seguintes procedimentos:

tarefa contínua execução da lógica continuamente (Você pode ter somente uma tarefa contínua.)

tarefa periódica • interrupção da tarefa contínua • execução da lógica por um período• retorno ao controle para a tarefa contínua (Você pode ter mais que uma tarefa periódica.)

42195

A pasta Tasks contém as tarefas para o controlador (por exemplo, sua lógica).

Main Task é a tarefa contínua padrão. Essa tarefa executa todo o tempo e executa repetidamente MainProgram.Quando MainProgram for executado, uma lógica em MainRoutine será executada. Você pode utilizar MainRoutine para chamar outras rotinas (sub-rotinas) em MainProgram.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 17: 103449316-Logix5000-apostila1

Organização das Tarefas 2-3

Selecione a(s) tarefa(s) para a lógica:

Se você executar: Então: Etapas detalhadas:

uma função à taxa constante (por exemplo, execute uma malha do PID a cada 100 ms)

1. Crie uma tarefa periódica para a função

A. No organizador do controlador, dê um clique com o botão direito na pasta Tasks e selecione New Tasks.

B. Digite:• nome_of_task • download (opcional)

C. Na lista Type, selecione Periodic.D. Em Periodic Attributes, digite:

• ramificação • prioridade

E. Clique em OK.

uma função muito rápida

2. Crie um programa para a tarefa.

A. Dê um clique com o botão direito em nome_of_task e selecione New Program.

B. Digite:• name_of_program

• description (opcional)C. Clique em OK.

3. Crie e atribua uma rotina principal (a rotina que for executada primeiro no programa).

A. Clique no sinal de + que está próximo a nome_of_task.

B. Dê um clique com o botão direito em name_of_program e selecione New Routine.

C. Digite:• name_of_main_routine

• description (opcional)D. Na lista Type, selecione a linguagem de programação para a

rotina.E. Clique em OK.F. Dê um clique com o botão direito em name_of_program e selecione Properties.

G. Clique na guia Configuration.H. Na lista Main, selecione name_of_main_routineI. Clique em OK.J. Para acrescentar rotinas adicionais (sub-rotinas) para o

programa, repita as etapas B. a E.

4. Coloque as funções permanentes em MainTask, MainProgram. (Consulte abaixo.)

funções múltiplas e uso de lógica para decidir quando cada função será executada

1. Crie uma rotina (subrotina) para cada função:

A. No organizador do controlador, dê um clique com o botão direito na pasta MainPrograme selecione New Routine.

B. Digite as seguintes propriedades para a rotina (função):• nome_of_routine • download (opcional)

C. Na lista Type, selecione a linguagem de programação para a rotina.

D. Clique em OK.

2. Use a instrução JSR para chamar cada subrotina.

todas as funções durante todo o tempo

1. Na pasta MainRoutine, insira a lógica.2. Utilize os comentários de linhas para designar as funções diferentes.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 18: 103449316-Logix5000-apostila1

2-4 Organização das Tarefas

O exemplo seguinte descreve a execução de um projeto com mais de uma tarefa.

Notas:

• Todas as tarefas periódicas interrompem a tarefa contínua.

• A tarefa de maior prioridade interrompe todas as tarefas de menor prioridade.

• Uma tarefa de maior prioridade pode interromper uma tarefa de menor prioridade em tempos variáveis.

• Quando uma tarefa contínua completa uma varredura, ela reinicia imediatamente.

• Tarefas de mesma prioridade são executadas com base em uma fatia de tempo com intervalos de 1 ms.

• Para mudar as propriedades de uma tarefa, programa ou rotina (nome, tipo, prioridade, etc.), dê um clique com o botão direito na tarefa, programa ou rotina e selecione Properties.

EXEMPLO Seqüência de execução de uma tarefa para um projeto com duas tarefas periódicas e uma tarefa contínua

Tarefa Tipo de Tarefa: Nível de Prioridade: Tempo de Execução:

1 periódica de 20 ms 5 2 ms

2 periódica de 10 ms 10 4 ms

3 contínua nenhum (mais baixo) 24 ms

Legenda:

A tarefa é executada

A tarefa é interrompida (suspensa).

Tarefa 1

Tarefa 2

Tarefa 3

5 10 15 20 25 30 35 40 45 50

tempo transcorrido (ms)

Publicação 1756-PM001C-PT-P - Junho 2001

Page 19: 103449316-Logix5000-apostila1

Organização das Tarefas 2-5

Verificação do Controlador Assim que você programar seu projeto, verifique periodicamente a sua tarefa:

1. Na barra de ferramentas da parte superior da janela

RSLogix 5000, clique em

2. Caso alguns erros sejam listados na parte inferior da janela:

a. Vá para o primeiro erro ou advertência, pressione a tecla F4.

b. Corrija os erros de acordo com a descrição na janela de Resultados.

c. Vá para a etapa 1.

3. Para fechar a janela Results, pressione as teclas Alt + 1.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 20: 103449316-Logix5000-apostila1

2-6 Organização das Tarefas

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 21: 103449316-Logix5000-apostila1

Capítulo 3

Organização de Tags

Planejamento de Tags Os controladores Logix5000 armazenam os dados em tags (em contraste com arquivos de dados fixos que são endereçados numericamente). Com os tags, você pode

• organizar os seus dados para refletir suas máquinas

• documentar (através dos nomes de tags) suas aplicações bem como desenvolvê-las

Quando você cria um tag, você atribui as seguintes propriedades:

A tabela seguinte esboça os tipos mais comuns de dados e quando usar cada um.

Tabela 3.A Propriedades do Tag

Propriedade: Descrição:

escopo define quais rotinas podem acessar os dados

nome identifica os dados (Tags com diferentes usos podem ter o mesmo nome)

tipo de dados define a organização dos dados, bem como um bit, números inteiros, ou números de ponto flutuante

Tabela 3.B Tipos de Dados

Para: Selecione:

dispositivo analógico em modo de ponto flutuante REAL

dispositivo analógico em modo de número inteiro (para amostras de taxas muito rápidas)

INT

Caracteres ASCII grupo

bit BOOL

Counter COUNTER

ponto de E/S digital BOOL

número de ponto flutuante REAL

inteiro (número total) DINT

sequenciador CONTROL

temporizador TIMER

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 22: 103449316-Logix5000-apostila1

3-2 Organização de Tags

Utilize a tabela seguinte para organizar seus dados:

Os seguintes exemplos mostram os diferentes níveis nos quais você pode organizar seus dados:

• Tags de um único elemento, na página 3-3

• Matriz de dimensão única, na página 3-3

• Matriz de duas dimensões, na página 3-4

• Tipo de dados definidos pelo usuário que armazena uma receita, na página 3-5

• Um tipo de dados definido pelo usuário que armazene os dados que são necessários para executar uma máquina, na página 3-6

Para: Utilize Referência

um grupo de atributos comuns que são usados por mais de uma máquina

tipo de dados definido pelo usuário

Consulte “Crie um Tipo de Dados Definidos Pelo Usuário” na página 3-7.

um grupo de dados com o mesmo tipo de dados

matriz Consulte “Criação de um Tag” na página 3-9.

valor único tag de um único elemento

dispositivo de E/S

Publicação 1756-PM001C-PT-P - Junho 2001

Page 23: 103449316-Logix5000-apostila1

Organização de Tags 3-3

EXEMPLO Tags de um único elemento

dispositivo de E/Sdigital

dispositivo de E/Sanalógica

valor inteiro

bit de armazenamento

Contador

temporizador

42364

EXEMPLO Matriz de dimensão única

Neste exemplo, uma instrução de temporizador simples realiza a contagem do tempo da duração de diversas etapas. Cada etapa requer um valor pré-selecionado diferente. Como todos os valores têm o mesmo tipo de dados (DINTs), uma matriz é usada.

42367

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

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

Esta matriz contém seis elementos do tipo de dados DINT.

seis elementos DINTselementos de timer_presets

Publicação 1756-PM001C-PT-P - Junho 2001

Page 24: 103449316-Logix5000-apostila1

3-4 Organização de Tags

EXEMPLO Matriz de duas dimensões

Uma furadeira pode fazer de um a cinco furos em um livro. A máquina requer um valor para a posição de cada furo, desde a borda do livro. Para organizar os valores em configurações, uma matriz de duas dimensões é usada. O primeiro subscrito indica o furo para o qual o valor corresponde e o segundo subscrito indica quantos furos serão feitos (de um a cinco).

Na janela Tags, os elementos estão na ordem descrita abaixo.

subscrito da segunda dimensão Descrição

0 1 2 3 4 5

subscrito da primeira dimensão

0

1 1.5 2.5 1.25 1.25 1.25 Posição do primeiro furo a partir da borda do livro

2 8.0 5.5 3.5 3.5 Posição do segundo furo a partir da borda do livro

3 9.75 7.5 5.5 Posição do terceiro furo a partir da borda do livro

4 9.75 7.5 Posição do quarto furo a partir da borda do livro

5 9.75 Posição do quinto furo a partir da borda do livro

42367

A dimensão mais à direita incrementa em seu valor máximo e recomeça.

Esta matriz contém uma grade de elementos de duas dimensões, de seis em seis elementos.

Quando a dimensão mais à direita recomeça, a dimensão à esquerda incrementa em um.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 25: 103449316-Logix5000-apostila1

Organização de Tags 3-5

EXEMPLO Tipo de dados definidos pelo usuário que armazena uma receita

Em um sistema de vários 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 usuário é usado.

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

Nome (do tipo de dados): TANK

Nome do Membro Tipo de Dados

temp REAL

deadband REAL

step DINT

step_time TIMER

preset DINT[6]

mix BOOL

42368

matriz de receitas

primeira receitaEsta matriz contém três elementos do tipo de dados TANK.

membros da receita

Publicação 1756-PM001C-PT-P - Junho 2001

Page 26: 103449316-Logix5000-apostila1

3-6 Organização de Tags

EXEMPLO Um tipo de dados definido pelo usuário que armazene os dados que são necessários para executar uma máquina

Como diversas estações de perfuração requisitam a seguinte combinação de dados, um tipo de dados definido pelo usuário é criado.

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

Nome (do tipo de dados): DRILL_STATION

Nome do Membro Tipo de Dados

part_advance BOOL

hole_sequence CONTROL

tipo DINT

hole_position REAL

profundidade REAL

total_depth REAL

42583

matriz de dois furos

primeiro furoEsta matriz contém quatro elementos do tipo de dados DRILL_STATION.

dados para o furo

Publicação 1756-PM001C-PT-P - Junho 2001

Page 27: 103449316-Logix5000-apostila1

Organização de Tags 3-7

Crie um Tipo de Dados Definidos Pelo Usuário

Para criar um tipo de dados definido pelo usuário:

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

2. Insira um nome para o tipo de dados.

3. Insira uma descrição (opcional).

4. Insira o nome do primeiro membro.

42195

42196

2.

3.

4. 5. 6. 7.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 28: 103449316-Logix5000-apostila1

3-8 Organização de Tags

5. Especifique o tipo de dados para cada membro. Consulte Tabela 3.B a página 3-1.

Para uma matriz, use o seguinte formato:

data_type[x]

onde:

x é o número de elementos na matriz.

6. Para mostrar o(s) valor (es) do membro em um estilo diferente (radical), selecione o estilo.

7. Insira uma descrição para o membro (opcional).

8. Clique em Apply.

9. Mais membros?

Notas:

• Se você incluir membros que representam dispositivos de E/S, a lógica 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 página 8-1.

• Ao usar os tipos de dados BOOL, SINT ou INT, coloque os membros que usam o mesmo tipo de dados em seqüência:

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

Se: Então:

Sim Repita as etapas 4. a 8.

Não Clique em OK.

mais eficiente

BOOL

BOOL

BOOL

DINT

DINT

menos eficiente

BOOL

DINT

BOOL

DINT

BOOL

Publicação 1756-PM001C-PT-P - Junho 2001

Page 29: 103449316-Logix5000-apostila1

Organização de Tags 3-9

Criação de um Tag Para criar um tag (incluindo uma matriz):

1. A partir do menu Logic, selecione Edit Tags.

2. Selecione um escopo para o tag:

3. Insira um nome para o controlador.

4. Insira o tipo de dados:

onde:

data_type é o tipo de dados que o tag ou matriz armazena. Consulte Tabela 3.B a página 3-1.

x é o número de elementos na primeira dimensão.

y é o número de elementos na segunda dimensão.

z é o número de elementos na terceira dimensão.

5. Insira uma descrição (opcional).

42350

2.

3. 5.4.

Se você for usar o tag: Então selecione:

em mais de um programa dentro do projeto

name_of_controller (controlador)

como um produtor ou como um consumidor

em uma mensagem

em somente um programa dentro do projeto

programa que usará o tag

Se o tag for: Então digite:

não for uma matriz (arquivo) data_type

for uma dimensão de matriz data_type[x]

for matriz de duas dimensões data_type[x,y]

for matriz de três dimensões data_type[x,y,z]

Publicação 1756-PM001C-PT-P - Junho 2001

Page 30: 103449316-Logix5000-apostila1

3-10 Organização de Tags

Criação de Tags Usando o Microsoft® Excel®

Você também pode usar um software de planilha eletrônica como o Microsoft Excel para criar e editar tags. Isto permite que você aproveite os recursos de edição no software de planilha eletrônica.

Para criar tags usando o Excel:

1. Abra o projeto do RSLogix 5000.

2. Crie diversos tags. (Isto ajuda a formatar a planilha eletrônica do Excel).

3. A partir do menu Tools, selecione Export Tags.

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.

42361

Os tags são armazenados nesta pasta.

4.

5.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 31: 103449316-Logix5000-apostila1

Organização de Tags 3-11

7. No software Microsoft Excel, abra o arquivo de exportação.

8. Insira TAG

9. Identifique o uso (escopo) do tag:

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.

TYPE SCOPE NAME DESCRIPTION DATATYPE

TAG in_cycle DINT

TYPE SCOPE NAME DESCRIPTION DATATYPE

TAG MainProgram conveyor_alarm BOOL

TAG MainProgram conveyor_on BOOL

TAG MainProgram drill_1 DRILL_STATION

TAG MainProgram hole_position REAL[6,6]

TAG MainProgram machine_on BOOL

8. 9. 10. 11.

Se o uso (escopo) for: Então:

do controlador Deixe esta célula vazia.

do programa Insira o nome do programa

Publicação 1756-PM001C-PT-P - Junho 2001

Page 32: 103449316-Logix5000-apostila1

3-12 Organização de Tags

15. Selecione o arquivo que contém os tags e clique Import.

Os tags são importados para o projeto. A seção inferior da janela do RSLogix 5000 mostra os resultados.

• Você pode configurar os tags para se comunicarem diretamente com outros controladores:

Se você planeja usar tags produzidos e consumidos, você deve seguir as orientações adicionais, à medida em que organiza seus tags. Consulte “Comunicação com Outro Controlador” na página 10-1.

• Os seguintes tipos de dados inteiros também estão disponíveis:

– SINT (inteiro de 8 bits)

– INT (inteiro de 16 bits)

Tipicamente, as instruções convertem valores SINT ou INT para um tipo de dados otimizados (geralmente um valor DINT ou REAL) durante a operação. Como isto requer tempo e memória adicionais, minimize o uso de tipo de dados SINT e INT.

Para: Utilize

enviar dados pela placa de fundo do chassi e pela rede ControlNet a um intervalo específico

tag produzido

receber dados de outro controlador pela placa de fundo do chassi ou pela rede ControlNet a um intervalo específico

tag consumido

Publicação 1756-PM001C-PT-P - Junho 2001

Page 33: 103449316-Logix5000-apostila1

Capítulo 4

Rotinas de Programas

Quando Usar este Procedimento

Após organizar seu projeto em um conjunto inicial de rotina e tags, use este procedimento para desenvolver a lógica que cada rotina executará.

Como Usar este Procedimento

Para programar uma rotina, execute as etapas a seguir:

• Abertura da Rotina

• Inserção das Instruções Ladder

• Inserção das Instruções do Bloco de Função

• Atribuição de Operandos

• Verificação da Rotina

Abertura da Rotina

42581

Para fechar uma pasta e esconder seu conteúdo (comprimir), execute uma das seguintes opções:

• Clique duas vezes na pasta.

• Selecione a pasta e pressione a tecla ←.

• Clique no sinal de –.

Clique duas vezes na rotina para abri-la.

Para abrir uma pasta e exibir seu conteúdo (expandir), execute uma das seguintes opções:

• Clique duas vezes na pasta.

• Selecione a pasta e pressione a tecla →.

• Clique no sinal de +.

Se a rotina estiver acinzentada, não poderá ser aberta.

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 34: 103449316-Logix5000-apostila1

4-2 Rotinas de Programas

O ícone referente à rotina está acinzentado?

Se o ícone: Então:

não estiver acinzentado Clique duas vezes na rotina.

estiver acinzentado Você não pode abrir, programar ou editar a rotina. Para determinar o motivo:1. Clique duas vezes na rotina.2. Na parte inferior da janela RSLogix 5000, qual é a mensagem exibida na linha de status?

Se: Então:

“Failed to open the routine - editor not installed” (falha ao abrir a rotina - editor não instalado)

O editor de bloco de função não está instalado. Para instalá-lo, solicite o seguinte código de catálogo do software RSLogix 5000:

• 9324-RLD700

“Source not available” (fonte não disponível)

A fonte da rotina não está disponível.Você pode:

• executar a rotina• exibir as propriedades da rotina• identificar as referências cruzadas para a lógica na rotina

Você não pode:• abrir (exibir) a rotina• editar a rotina• alterar as propriedades da rotina• pesquisar a rotina• ir para as referências cruzadas dentro da rotina• imprimir a rotina• exportar a rotina

IMPORTANTE Se a fonte de uma rotina não estiver disponível, não exporte o projeto.

• Um arquivo de exportação (.L5K) contém apenas rotinas onde o código fonte estiver disponível.

• Ao exportar um projeto em que o código fonte não estiver disponível para todas as rotinas, você não poderá recuperar o projeto inteiro.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 35: 103449316-Logix5000-apostila1

Rotinas de Programas 4-3

Inserção das Instruções Ladder

Em uma rotina ladder aberta:

1. Se a rotina já contiver a lógica, clique onde deseja inserir sua lógica. (Uma nova rotina contém uma linha que está pronta para instruções.)

2. Adicione um elemento ladder:

cursor (azul) Quando você adicionar uma instrução ou ramificação, ela aparecerá à direita do cursor.

Quando você adicionar uma linha, ela aparecerá abaixo do cursor.

42363

Para adicionar: Faça isto:

uma linha Pressione as teclas Ctrl + R.

uma instrução A. Pressione a tecla Insert.B. Digite o menumônico para a instrução.C. Pressione a tecla Enter.

uma ramificação A. Pressione a tecla Insert.B. Digite BST.C. Pressione a tecla Enter.D. Depois de inserir as instruções adicionais, arraste a

ramificação à direita para o local requisitado da linha.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 36: 103449316-Logix5000-apostila1

4-4 Rotinas de Programas

Inserção das Instruções de Bloco de Função

Uma rotina de bloco de função contém os seguintes elementos:

Para inserir instruções de bloco de função, abra uma rotina de blocos de função e complete as seguintes etapas:

Elemento: Propósito:

bloco de função Executa uma operação em valores de entrada e gera valores de saída• Pinos à esquerda do bloco são pinos de entrada.• Pinos à direita do bloco são pinos de saída.

referência de entrada (IREF) Fornece um valor de um dispositivo de entrada ou tag em outra rotina ou outro controlador

referência de saída (OREF) Fornece um valor para um dispositivo de saída ou tag em outra rotina ou outro controlador

conector de fio de saída (OCON) Conecta blocos de função que estejam distantes ou em folhas diferentes• Cada OCON requer um nome exclusivo.• Para cada OCON, é necessário pelo menos um ICON correspondente

(ou seja, um ICON com o mesmo nome do OCON). • Vários ICONs podem fazer referência a um mesmo OCON. Isso permite

distribuir os dados para vários pontos na rotina.

conector de fio de entrada (ICON)

42587

1. 2. 3.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 37: 103449316-Logix5000-apostila1

Rotinas de Programas 4-5

Etapa: Ações detalhadas:

1. Insira os blocos que executam as funções necessárias da rotina.

A. Pressione a tecla Insert.B. Digite o mneumônico do bloco necessário.C. Escolha OK.D. Arraste o bloco para um lugar no diagrama que facilite sua leitura. A localização de um

bloco não afeta a ordem de execução dos blocos.

2. Configure as propriedades de cada bloco.

A. No bloco, clique em

B. Edite as propriedades do bloco:

C. Escolha OK.

3. Conecte os pinos de saída aos pinos de entrada.

Clique em um pino de saída e no pino de entrada necessário. Um ponto verde indica um pino válido.

A

B

C

D

42584

Para: Faça isto:

mostrar um pino para um operando Marque a caixa de seleção ao lado do operando (A).

inserir um valor imediato A. Desmarque a caixa de seleção ao lado do operando (B).

B. Na coluna Value, digite o valor do operando (C).

alterar o nome do tag para a instrução

A. Clique na guia Tag (D).B. Digite um novo nome.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 38: 103449316-Logix5000-apostila1

4-6 Rotinas de Programas

42586

6.

5.4.

Etapa: Ações detalhadas:

4. Para fornecer um valor de um dispositivo de entrada ou tag, insira uma referência de entrada (IREF).

A. Pressione a tecla Insert.B. Escolha OK. (IREF é a seleção padrão.)C. Arraste a IREF para o local desejado, normalmente para a esquerda do bloco que

usa o valor.D. Clique no pino da IREF e no pino de entrada que usa o valor.

5. Para fornecer um valor de um dispositivo de saída ou tag, insira uma referência de saída (OREF).

A. Pressione a tecla Insert.B. Digite OREF.C. Escolha OK.D. Arraste a OREF para o local desejado, normalmente para a direita do bloco que gera

o valor de saída.E. Clique no pino de saída que fornece o valor e no pino da OREF.

6. Para conectar blocos distantes ou em folhas diferentes, insira um conector de fio de saída (OCON) e um conector de fio de entrada (ICON).

A. Pressione a tecla Insert.B. Digite OCON.C. Escolha OK.D. Arraste o OCON para o local desejado, normalmente para a direita do bloco que

gera o valor.E. Clique no pino de saída que gera o valor e no pino do OCON.F. Exiba a folha que contém o bloco ao qual deseja conectar.G. Pressione a tecla Insert.H. Digite ICON.I. Escolha OK.J. Arraste o ICON para o local desejado, normalmente para a esquerda do bloco que

usa o valor.K. Clique no pino do ICON e no pino de entrada que usa o valor.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 39: 103449316-Logix5000-apostila1

Rotinas de Programas 4-7

Atribuição de Operandos Cada instrução requer um ou mais dos seguintes:

• nome de tag

• valor

• nome de uma rotina, rótulo, conector de fio, etc.

A tabela seguinte define o formato para o nome de um tag:

onde:

x é o local do elemento na primeira dimensão.

y é o local do elemento na segunda dimensão.

z é o local do elemento na terceira dimensão.

Para uma estrutura dentro de uma estrutura, adicione um .member_name .

Para um: Especifique:

tag tag_name

número binário de um tipo de dados grande tag_name.bit_number

membro de uma estrutura tag_name.member_name

elemento de uma matriz de uma dimensão tag_name[x]

elemento de uma matriz de duas dimensões tag_name[x,y]

elemento de uma matriz de três dimensões tag_name[x,y,z]

elemento de uma matriz em uma estrutura tag_name.member_name[x]

membro de um elemento de uma matriz tag_name[x,y,z].member_name

Publicação 1756-PM001C-PT-P - Junho 2001

Page 40: 103449316-Logix5000-apostila1

4-8 Rotinas de Programas

EXEMPLO Nomes dos tags

42357

Para acessar: O nome do tag é semelhante a:

tag machine_on

bit número 1 do tag one_shots

membro (bit) DN do temporizador running_seconds

membro mix do tag north_tank

elemento 2 na matriz recipe e elemento 1,1 na matriz tanks

elemento 2 na matriz preset dentro do tag north_tank

membro part_advance do elemento 1 na matriz drill

machine_on

one_shots.1

running_seconds.DN

north_tank.mix

Copy FileSource recipe[2]Dest tanks[1,1]Length 1

COP

LR

ClearDest north_tank.preset[2]

0

CLR

drill[1].part_advance

Publicação 1756-PM001C-PT-P - Junho 2001

Page 41: 103449316-Logix5000-apostila1

Rotinas de Programas 4-9

Para atribuir um valor imediato, tag, conector de fio, rótulo ou item semelhante a uma instrução:

1. Digite ou selecione o valor ou nome do item (por exemplo, nome do tag, nome do conector de fio, nome do rótulo):

Se quiser: Para uma: Faça isto:

• especificar um valor imediato

• digitar o nome de um tag, conector de fio, rótulo ou item semelhante

instrução ladder A. Clique no símbolo ?.B. Digite o valor ou nome do tag, rótulo ou item semelhante.C. Pressione a tecla Enter.

instrução de bloco de função A. Clique no símbolo ?.B. Clique novamente no símbolo ?.C. Digite o valor ou nome do tag ou conector.D. Pressione a tecla Enter.

selecionar um tag, conector de fio, rótulo ou item semelhante de uma lista

A. Abra a caixa de entrada de texto:

C. Clique em ▼D. Selecione um nome:

D. Pressione a tecla Enter ou clique em um ponto diferente no diagrama.

arrastar um tag da janela Tags

instrução ladder A. Localize o tag na janela Tags.B. Clique duas ou três vezes no tag, até que fique destacado.C. Arraste o tag para o seu local na instrução.

instrução de bloco de função não disponível

Em uma: Faça isto:

instrução ladder Clique duas vezes no símbolo ?.

instrução de bloco de função

A. Clique no símbolo ?.B. Clique novamente no símbolo ?.

Para selecionar um: Faça isto:

conector de fio, rótulo ou tipo de nome semelhante

Selecione o nome.

tag Clique duas vezes no nome do tag.

número de bit A. Clique no nome do tag.B. À direita do nome do tag, clique

em C. Clique no bit necessário.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 42: 103449316-Logix5000-apostila1

4-10 Rotinas de Programas

2. Você definiu (criou) este tag anteriormente?

Verificação da Rotina Assim que programar sua(s) rotina(s), verifique periodicamente seu trabalho:

1. Na barra de ferramentas da parte superior da janela

RSLogix 5000, clique em

2. Caso alguns erros sejam listados na parte inferior da janela:

a. Para ir para o primeiro erro ou advertência, pressione a tecla F4.

b. Corrija os erros de acordo com a descrição na janela de Resultados.

c. Vá para a etapa 1.

3. Para fechar a janela de Resultados, pressione as teclas Alt + 1.

Se: Então:

Sim Vá para o próximo operando.

Não Crie o tag:A. Clique com o botão direito do mouse no tag e selecione New “nome_do_tag”. (Em versões

anteriores do software, a opção do menu é Create “nome_do_tag”.)B. Na caixa Description, digite uma descrição para o tag (opcional).C. Na caixa Data Type, digite o tipo de dados para o tag:

D. Na lista Scope, selecione o escopo do tag:

E. Escolha OK.

Se o tag: Digite:

não for uma matriz (arquivo) data_type

for uma matriz de uma dimensão data_type[x]

for uma matriz de duas dimensões data_type[x,y]

for uma matriz de três dimensões data_type[x,y,z]

onde:data_type é o tipo de dados armazenados pelo tag ou pela matriz. Consulte a Tabela 3.B na página 3-1.x é o número de elementos na primeira dimensão. y é o número de elementos na segunda dimensão.z é o número de elementos na terceira dimensão.

Se for usar o tag: Selecione:

em mais de um programa no projeto nome_do_controlador (controller)

como um produtor ou consumidor

em uma mensagem

em apenas um programa no projeto o programa que usará o tag

Publicação 1756-PM001C-PT-P - Junho 2001

Page 43: 103449316-Logix5000-apostila1

Capítulo 5

Acesso aos Valores do Sistema

Monitoração dos Flags de Status

O controlador suporta as palavras-chaves de status que você pode usar na sua lógica para monitorar eventos específicos:

• As palavras-chaves de status não são sensíveis ao contexto.

• Como os flags de status podem mudar muito rapidamente, o software RSLogix 5000 não mostra o status dos mesmos. (Ou seja, mesmo quando um flag de status é ajustado, a instrução que se refere ao flag não é destacada.)

• Você não pode definir um alias de tag para uma palavra-chave.

Você pode usar essas palavras-chaves:

Para determinar se: Use:

o valor que você está armazenando não pode se ajustar ao destino porque é:

• maior do que o valor máximo para destino• menor do que o valor mínimo para destino

Importante: Cada vez que S:V passa de zerado para energizado, gera uma falha de advertência (tipo 4, código 4)

S: V

o valor do destino da instrução for 0. S:Z

o valor do destino da instrução for negativo. S:N

uma operação aritmética resulta em um transporte ou empréstimo que tenta utilizar bits fora do tipo de dados.

Por exemplo:• a soma de 3 + 9 resulta em um transporte de 1• a subtração de 25 – 18 resulta em um empréstimo de 10

S:C

esta é a primeira varredura normal das rotinas no programa atual S:FS

pelo menos uma das falhas de advertência foi gerada:• O controlador energiza este bit quando uma falha de advertência

ocorre, devido à execução do programa.• O controlador não energiza esse bit para falhas de advertência que

não estão relacionadas à execução do programa, como bateria fraca.

S:MINOR

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 44: 103449316-Logix5000-apostila1

5-2 Acesso aos Valores do Sistema

Obtenção e Definição dos Dados de Sistema

O controlador armazena os dados do sistema em objetos. Não há arquivo de status, como no controlador CLP-5. Use as instruções GSV/SSV para obter e definir os dados de sistema do controlador que estão armazenados em objetos:

• A instrução GSV recupera as informações específicas e as coloca no destino.

• A instrução SSV define o atributo específico com os dados da fonte.

Para obter ou definir um valor no sistema:

1. Abra o projeto do RSLogix 5000.

2. No menu Help selecione Contents.

3. Clique na guia Index.

4. Digite gsv/ssv objects e clique em Display.

ATENÇÃO

!Use a instrução SSV com cuidado. Fazer mudanças em objetos pode causar operação não esperada do controlador ou danos pessoais.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 45: 103449316-Logix5000-apostila1

Acesso aos Valores do Sistema 5-3

5. Clique no objeto requisitado.

6. Na lista dos atributos para o objeto, identifique o atributo que você quer acessar.

7. Crie um tag para o valor de atributo:

8. Na sua rotina de lógica ladder, digite a instrução apropriada:

Para obter ou definir: Clique em OK.

eixo de um servo módulo AXIS

fatia de tempo de atraso do sistema CONTROLLER

hardware físico de um controlador CONTROLLERDEVICE

tempo de sistema coordenado para os dispositivos em um chassi

CST

driver de comunicação DF1 para a porta serial DF1

histórico de falha para um controlador FAULTLOG

atributos de instrução de uma mensagem MESSAGE

status, falhas e modo de um módulo MODULE

grupo de eixos MOTIONGROUP

informações sobre falhas ou tempo de varredura para um programa

PROGRAM

número de instância de uma rotina ROUTINE

configuração da porta serial SERIALPORT

propriedades ou tempo transcorrido de uma tarefa TASK

tempo de wallclock de um controlador WALLCLOCKTIME

Se o tipo de dados do atributo for:

Então:

um elemento (por exemplo, DINT) Crie um tag para o valor de atributo:

mais que um elemento (por exemplo, DINT[7])

A. Crie um tipo de dado definido pelo usuário que combine com a organização de dados que é usada pelo atributo.

B. Crie um tag para o atributo e use o tipo de dados do Etapa A..

Para: Digite esta instrução:

obter o valor de um atributo GSV

definir o valor de um atributo SSV

Publicação 1756-PM001C-PT-P - Junho 2001

Page 46: 103449316-Logix5000-apostila1

5-4 Acesso aos Valores do Sistema

9. Atribua os operandos requisitados para a instrução:

Os exemplos seguintes informam a hora e data atuais.

Para maiores informações, consulte Manual de Referência do Conjunto das Instruções Gerais do Logix5000, publicação 1756-RM003D-PT.

Para esse operando: Selecione:

nome de classe o nome do objeto

Nome exemplo o nome do objeto específico (por exemplo, o nome do módulo de E/S, tarefas e mensagem requeridos)

• Nem todos os objetos requerem esta entrada.

• Para especificar a tarefa, o programa ou rotina atual, selecione THIS.

Attribute Name nome do atributo

Dest (GSV) tag que depositará o valor recuperado• Se o tag for um tipo de dados ou

uma matriz definidos pelo usuário, selecione o primeiro membro ou elemento.

Source (SSV) tag que estabelece o valor a ser definido:• Se o tag for um tipo de dados ou

uma matriz definidos pelo usuário, selecione o primeiro membro ou elemento.

EXEMPLO Obtenção de um valor no sistema

Na primeira varredura, obtenha o atributo DateTime do objeto WALLCLOCKTIME e armazene-o no tag wall_clock, o qual é baseado no tipo de dados definidos pelo usuário.

42370

Publicação 1756-PM001C-PT-P - Junho 2001

Page 47: 103449316-Logix5000-apostila1

Capítulo 6

Atribuição de Aliases/Símbolos

Tags com Aliases/Símbolos Um tag com alias/símbolo permite que você crie um tag que representa outro tag.

• Ambos os tags têm o(s) mesmo(s) valor(es).

• Quando o(s) valor(es) de um dos tags muda, o outro tag também reflete a mudança.

Use aos aliases/símbolos nas seguintes situações:

• lógica de programa avançada de diagramas de fiação

• atribuição de um nome descritivo para um dispositivo de E/S

• fornecimento de um nome mais simples para um tag complexo

• uso de um nome descritivo para um elemento de uma matriz

A janela de tags mostra as informações do alias/símbolo.

drill_1_depth_limit é um alias/símbolo para Local:2:I.Data.3 (um ponto de entrada digital). Quando a entrada é energizada, o tag com alias/símbolo também se energiza.

drill_1_on é um alias/símbolo para Local:0:O.Data.2 (um ponto de saída digital). Quando o tag com alias/símbolo é energizado, o tag de saída também energiza.

north_tank é um alias/símbolo para tanks [0,1].

42360

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

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 48: 103449316-Logix5000-apostila1

6-2 Atribuição de Aliases/Símbolos

Um uso comum dos tags com alias/símbolo é programar a lógica antes que os diagramas de fiação 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.

2. Programe sua lógica usando nomes de tags descritivos. (Você pode até testar sua lógica sem conectar-se à E/S.)

3. Mais tarde, quando os diagramas de fiação estiverem disponíveis, adicione os módulos de E/S na configuração da E/S do controlador.

4. Finalmente, converta os tags descritivos em aliases/símbolos para seus respectivos pontos ou canais de E/S.

A seguinte lógica 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/símbolos para os dispositivos de E/S correspondentes.

42351

Exibição das Informações de Alias/Símbolo

Para mostrar (em sua lógica) o tag para o qual um alias/símbolo aponta:

1. A partir do menu Tools, selecione Options.

2. Clique na guia Ladder Display (Exibição da Lógica Ladder).

3. Selecione a caixa de verificação Show Tag Alias Information (Exibir as Informações do Tag com Alias/Símbolo).

4. Clique em OK.

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

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

machine_on

machine_ondrill_1_on

<Local:0:O.Data.2> drill_1.part_advance

conveyor_on<Local:0:O.Data.0>

stop é um alias/símbolo para Local:2:I.Data.1 (botão de parada no painel de operação)

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

Publicação 1756-PM001C-PT-P - Junho 2001

Page 49: 103449316-Logix5000-apostila1

Atribuição de Aliases/Símbolos 6-3

Atribuição de um Alias/Símbolo

Para atribuir um tag com alias/símbolo para outro tag:

1. A partir do menu Logic, selecione Edit.

2. Selecione o escopo do tag.

3. À direita do nome do tag, clique na célula Alias For.

A célula mostra um ▼

4. Clique no ▼

5. Selecione o tag que o alias/símbolo representará:

6. Pressione a tecla Enter ou clique em outra célula.

2.

3.

42360

Para: Faça isto:

selecionar um tag Clique duas vezes no nome do tag.

selecionar um número de bit A. Clique no nome do tag.B. À direita do nome do tag, clique C. Clique no bit requisitado.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 50: 103449316-Logix5000-apostila1

6-4 Atribuição de Aliases/Símbolos

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 51: 103449316-Logix5000-apostila1

Capítulo 7

Atribuição de um Endereço Indireto

Quando Atribuir um Endereço Indireto

Ser você quiser que uma instrução acesse diferentes elementos em uma tabela, use um tag no subscrito da matriz (um endereço indireto). Ao mudar o valor do tag, você muda o elemento da matriz à qual sua lógica se refere.

A seguinte tabela descreve alguns usos comuns para um endereço indireto:

Quando o índice for igual a 1, array [index] aponta aqui.

array[0] 4500

array[1] 6000

array[2] 3000

array[3] 2500

Quando o índice for igual a 2, array [index] aponta aqui.

Para: Use um tag no subscrito e:

selecionar uma receita de uma matriz de receitas

Insira o número da receita no tag.

carregar a configuração de uma máquina específica, a partir de uma matriz de configurações possíveis

Insira a configuração desejada no tag.

carregar os parâmetros ou estados de uma matriz, um elemento de cada vez

A. Realize a ação requisitada no primeiro elemento.

B. Use uma instrução ADD para incrementar o valor do tag e aponte para o próximo elemento na matriz.

registrar códigos de erro

realizar diversas ações em um elemento da matriz e, então indexe para o próximo elemento

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 52: 103449316-Logix5000-apostila1

7-2 Atribuição de um Endereço Indireto

O exemplo seguinte carrega uma série de valores pré-selecionados em um temporizador, um valor (elemento de matriz) de cada vez.

EXEMPLO Observe a matriz

A matriz timer_presets armazena uma série de valores pré-selecionados para o temporizador na próxima 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 instrução carrega timer_presets[0] no temporizador (6000 ms).

Quando north_tank.step_time estiver completo, a linha incrementa o north_tank.step para o número seguinte e aquele elemento da matriz timer_presets é carregado no temporizador.

Quando o north_tank.step excede o tamanho da matriz, a linha reseta o tag para começar no primeiro elemento da matriz. (A matriz contém elementos de 0 a 3.)

42358

MoveSource timer_presets[north_tank.step]

60000Dest north_tank.step_time.PRE

60000

MOV

/north_tank.step_time.DN

ENDN

Timer On DelayTimer north_tank.step_timePreset 60000Accum 0

TON

north_tank.step_time.DNAddSource A 1

Source B north_tank.step0

Dest north_tank.step0

ADD

EqualSource A north_tank.step

0Source B 4

EQUMoveSource 0

Dest north_tank.step0

MOV

Publicação 1756-PM001C-PT-P - Junho 2001

Page 53: 103449316-Logix5000-apostila1

Atribuição de um Endereço Indireto 7-3

Expressões Você também pode usar uma expressão para especificar o subscrito de uma matriz.

• Uma expressão usa operadores, como + ou –, para calcular um valor.

• O controlador calcula o resultado da expressão e usa-o como o subscrito da matriz.

Você pode usar estes operadores para especificar o subscrito de uma matriz:

Formate suas expressões como a seguir:

Operador: Descrição:

+ adição

– subtração/negação

* multiplicação

/ divisão

ABS Valor Absoluto

AND AND

FRD de BCD para inteiro

MOD Módulo

NOT complemento

OR OR

SQR raiz quadrada

TOD de inteiro para BCD

TRN Truncado

XOR OU exclusivo

Operador: Descrição:

Se o operador requisitar: Use este formato: Exemplos:

um valor (tag ou expressão) operador (valor) ABS(tag_a)

dois valores (tags, constantes ou expressões)

value_a operator value_b • tag_b + 5• tag_c AND tag_d• (tag_e ** 2) MOD

(tag_f / tag_g)

Publicação 1756-PM001C-PT-P - Junho 2001

Page 54: 103449316-Logix5000-apostila1

7-4 Atribuição de um Endereço Indireto

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 55: 103449316-Logix5000-apostila1

Capítulo 8

Buffer de E/S

Quando Usar o Buffer de E/S

O buffer de E/S é uma técnica na qual a lógica não faz referência nem manipula diretamente os tags dos dispositivos de E/S reais. Ao invés disso, a lógica usa uma cópia dos dados de E/S. O buffer de E/S é usado nas seguintes situações:

• Para previnir que um valor de entrada ou saída mude durante a execução de um programa. (Atualizações de E/S assíncronas à execução da lógica.)

• Para copiar um tag de entrada ou saída para um integrante de uma estrutura ou elemento de uma matriz.

Buffer de E/S Para armazenamento no buffer de E/S, realize estas ações:

1. Na linha, antes da lógica para a(s) função(ões), copie ou mova os dados dos tags de entrada requisitados para seus tags de buffer correspondentes.

2. Na lógica da(s) função(ões), faça referência aos tags do buffer.

3. Na linha, depois da(s) função(ões), copie os dados dos tags do buffer para os tags de saída correspondentes.

O seguinte exemplo copia as entradas e saídas para os tags de uma estrutura para uma furadeira.

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 56: 103449316-Logix5000-apostila1

8-2 Buffer de E/S

EXEMPLO Buffer de E/S

A rotina principal do programa executa as seguintes subrotinas, nesta seqüência.

A rotina map_inputs copia os valores dos dispositivos de entrada para seus tags correspondentes, que são usados na rotina drill.

A rotina drill executa a lógica para a furadeira.

A rotina map_outputs copia os valores dos dispositivos de saída na rotina drill para seus dispositivos de saída correspondentes.

42369

Jump to SubroutineRoutine name map_inputs

JSRJump to SubroutineRoutine name drill

JSRJump to SubroutineRoutine name map_outputs

JSR

_1791_8AC:I.Data[0].0 drill[1].depth_limit

_1791_8AC:I.Data[0].4 drill[1].home_limit

/drill[1].part_advance

ONSone_shots.0

drill[1].forward

/drill[1].depth_limit drill[1].forward

drill[1].depth_limit

drill[1].retract

/drill[1].home_limit drill[1].retract

drill[1].forward _1791_8AC:O.Data[0].0

drill[1].retract _1791_8AC:O.Data[0].1

Publicação 1756-PM001C-PT-P - Junho 2001

Page 57: 103449316-Logix5000-apostila1

Buffer de E/S 8-3

O exemplo a seguir usa a instrução CPS para copiar uma matriz de dados que representa os dispositivos de entrada de uma rede DeviceNet.

EXEMPLO Buffer de E/S

Local:0:I.Data armazena os dados de entrada da rede DeviceNet, que é conectada ao módulo 1756-DNB no slot 0. Para sincronizar as entradas com a aplicação, a instrução CPS copia os dados de entrada para input_buffer.

• Enquanto a instrução CPS copia os dados, nenhuma atualização de E/S pode alterá-los.

• A aplicação utiliza para sua execução os dados de entrada em input_buffer.

42578

Synchronous Copy FileSource Local:0:I.Data[0]Dest input_buffer[0]Length 20

CPS

Publicação 1756-PM001C-PT-P - Junho 2001

Page 58: 103449316-Logix5000-apostila1

8-4 Buffer de E/S

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 59: 103449316-Logix5000-apostila1

Capítulo 9

Teste de um Projeto

Teste de um Projeto Para testar um projeto, realize essas ações:

• Configuração de um Driver de Comunicação

• Descarregamento de um Projeto para o Controlador

• Seleção de um Modo para o Controlador

• Correção de uma Falha Graves

• Armazenamento das Mudanças Online

Além disso, você deve realizar essas ações:

• Use as instruções de controle de programa para isolar a execução da lógica para rotinas ou linhas específicas. Consulte Manual de Referência do Conjunto das Instruções Gerais do Logix5000, publicação 1756-RM003-PT.

• Force valores de entrada ou saída. Consulte “Force Valores” na página 14-1.

Configuração de um Driver de Comunicação

O software RSLogix 5000 requer um driver de comunicação para se comunicar com o controlador. Para configurar drivers de comunicação, 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:

4. Clique em Add New.

5. Se quiser adicionar um nome descritivo ao driver, modifique o nome padrão.

6. Escolha OK.

Para este tipo de cartão de comunicação: Selecione este tipo de driver:

Serial Dispositivos DF1 RS-232

DH+™ 1784-KT/KTX(D)/PKTX(D)

ControlNet™ 1784-KTC(X)

Ethernet™ Dispositivos Ethernet

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 60: 103449316-Logix5000-apostila1

9-2 Teste de um Projeto

7. Configure o driver:

3. Clique em OK.

4. Clique em Close.

Descarregamento de um Projeto para o Controlador

1. Abra o projeto RSLogix 5000 que você quer descarregar.

2. A partir do menu Communications, selecione Who Active.

3. Clique no sinal de + próximo à rede que você quer usar para o descarregamento.

4. Continue expandindo a rede até que a janela mostre o controlador para o qual você quer descarregar.

5. Selecione o controlador e clique em Download.

6. Para confirmar o descarregamento, clique em Download.

Para este driver: Faça isto:

Serial 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.

ControlNet A. Na caixa Station Name, digite um nome que identificará o computador na janela RSWho.

B. Selecione o valor de interrupção, o endereço de memória e o endereço de base da E/S.

C. Na caixa Net Address, digite o número do nó ControlNet que você quer atribuir ao computador.

DH+ A. A partir da lista Value, selecione o tipo de cartão de interface que o driver usará.

B. Na lista Property, selecione o próximo item.C. Na caixa Value, digite ou selecione o valor apropriado.D. Repita as etapas B. e C. para as propriedades

restantes.

Ethernet Para cada dispositivo Ethernet na rede com o qual deseja comunicar-se (por exemplo, cada módulo 1756-ENET ou controlador PLC-5E), adicione uma entrada de mapa:

A. Na coluna Host Name, digite o endereço IP ou nome de host do dispositivo Ethernet.

B. Deseja comunicar-se com outro dispositivo Ethernet na rede?

Se: Então:

Sim 1. Escolha Add New.2. Vá para a etapa A.

Não Vá para a próxima etapa.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 61: 103449316-Logix5000-apostila1

Teste de um Projeto 9-3

Seleção de um Modo para o Controlador

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

42371

Selecione o modo requisitado.

Se você quiser: Selecione um destes modos:

Operação Programação Remoto

Operação Programação Teste

colocar as saídas no estado comandado pela lógica do projeto

✔ ✔

colocar as saídas em seu estado configurado para o modo de Programação

✔ ✔ ✔

executar (realizar a varredura) as tarefas ✔ ✔ ✔

mudar o modo do controlador através do software ✔ ✔ ✔

descarregar um projeto ✔ ✔ ✔ ✔

programar uma rede ControlNet ✔ ✔

enquanto estiver online, editar o projeto ✔ ✔ ✔ ✔

enviar mensagens ✔ ✔ ✔

enviar e receber dados em resposta a uma mensagem de outro controlador

✔ ✔ ✔ ✔ ✔

produzir e consumir tags ✔ ✔ ✔ ✔ ✔

Publicação 1756-PM001C-PT-P - Junho 2001

Page 62: 103449316-Logix5000-apostila1

9-4 Teste de um Projeto

Correção de uma Falha Graves

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

42371

para corrigir uma falha grave:

1. A partir do menu Communications, selecione Go To Faults.

2. Use as informações na lista Recent Faults para corrigir a causa da falha. Consulte “Códigos de Falha de Advertência” na página A-3.

3. Clique no botão Clear Majors.

Armazenamento das Mudanças Online

Se você fez mudanças no projeto enquanto estava online, armazene o projeto, de forma que o arquivo de projeto offline corresponda ao arquivo de projeto online:

Se a caixa de status do controlador estiver vermelha e mostrar Faulted, uma falha grave ocorreu e o controlador não está mais executando a lógica.

DICA Você também pode remover uma falha grave usando a chave seletora de modo, no controlador. Gire a chave seletora de modo para Prog, então para Run e de volta para Prog.

Se você quiser: Faça isto:

armazenar as mudanças online e os valores de dados

No menu File, selecione Save.

armazenar as mudanças online, mas não os valores de dados online

A. A partir do menu Communications, selecione Go Offline.

B. No menu File, selecione Save.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 63: 103449316-Logix5000-apostila1

Capítulo 10

Comunicação com Outro Controlador

Quando Usar este Procedimento

Use este procedimento para transferir dados entre controladores (enviar ou receber dados) usando um destes métodos:

• Produção e Consumo de um Tag

• Envio de Mensagens

Como Usar Este Procedimento

Selecione um método para a transmissão de dados entre controladores:

Produção e Consumo de um Tag

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

Se os dados: Então:

precisarem de uma entrega regular a uma taxa que você especificar (ex: determinística)

Produção e Consumo de um Tag(requer uma rede ControlNet ou placa de fundo do chassi ControlLogix)

forem enviados quando uma condição específica ocorrer em sua aplicação

Envio de Mensagens

controller_2

controller_3

controller_4

tag consumido

tag consumido

tag consumido

Rede ControlNete/ou

Placa de fundo do chassi ControlLogix

controller_1

tag produzido

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 64: 103449316-Logix5000-apostila1

10-2 Comunicação com Outro Controlador

Você pode usar tags produzidos e consumidos com as seguintes combinações de controlador e rede.

Tags produzidos e consumidos funcionam da seguinte maneira:

• Uma conexão transfere os dados entre os controladores:

– Múltiplos controladores podem consumir (receber) os dados.

– Atualização dos dados no intervalo requisitado para atualização (RPI), conforme configurado pelos tags de consumo.

• Cada tag produzido ou consumido usa o seguinte número de conexões:

Este controlador: Pode produzir e consumir tags nesta rede:

Placa de fundo do chassi

ControlNet Ethernet

PLC-5 ✔

ControlLogix ✔ ✔ ✔

FlexLogix ✔

SoftLogix ✔

Cada: Usa estas conexões:

tag produzido number_of_consumers + 1

tag consumido 1

EXEMPLO Conexões usadas pelos tags produzidos ou consumidos

• A produção de um tag para 5 controladores (consumidores) usa 6 conexões (5 consumidores + 1 = 6).

• A produção de 4 tags para 1 controlador usa 8 conexões:

– cada tag usa duas conexões (1 consumidor + 1 = 2).

– 2 conexões por tag x 4 tags = 8 conexões.

• O consumo de 4 tags para um controlador usa 4 conexões (1 conexão por tag x 4 tags = 4 conexões).

Publicação 1756-PM001C-PT-P - Junho 2001

Page 65: 103449316-Logix5000-apostila1

Comunicação com Outro Controlador 10-3

O Que Você Precisa Fazer

Para compartilhar dados com outro(s) controlador(es), realize estas ações:

Organização de Tags para Dados Compartilhados

Produção de um Tag

Consumo de um Tag Produzido

Dependendo de seu sistema, você também pode ter que realizar estas ações:

Compartilhamento de Dados com um Controlador CLP-5C

Ajuste para os Limites de Tamanho

Organização de Tags para Dados Compartilhados

Ao criar os tags que eventualmente produzirão ou consumirão dados (dados compartilhados), siga estas orientações:

1. Crie os tags no uso geral do controlador. Somente tags de uso geral do controlador podem ser compartilhados.

2. Use um destes tipos de dados:

• DINT

• REAL

• matriz de DINTs ou REALs

• definido pelo usuário

3. Para compartilhar um tipo de dados diferente dos listados nas orientações 2., crie um tipo de dados definidos pelo usuário que contenha os dados requisitados.

4. Use o mesmo tipo de dados para o tag produzido e para o(s) tag(s) consumido(s) correpondente(s).

5. Para compartilhar tags em um controlador CLP-5, use um tipo de dados definidos pelo usuário. Consulte “Compartilhamento de Dados com um Controlador CLP-5C” na página 10-6.

6. Limite o tamanho do tag para menor ou igual a 500 bytes.

7. Se você compartilhar um tag em uma rede ControlNet, o tag pode precisar ser menor que 500 bytes. Consulte “Ajuste para os Limites de Tamanho” na página 10-10.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 66: 103449316-Logix5000-apostila1

10-4 Comunicação com Outro Controlador

8. Se estiver produzindo diversos tags no mesmo controlador:

• Agrupe os dados em um ou mais tipos de dados definidos pelo usuário. (Isto usa menos conexões que a produção de cada tag separadamente).

• Agrupar os dados de acordo com as taxas de atualização 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 são críticos e outro tag para dados que não são críticos.

Produção de um Tag

1. Abra o projeto RSLogix 5000 que contém 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 são de uso geral do controlador podem produzir dados).

4. Selecione o tag que produzirá os dados e pressione as teclas ALT + Enter.

42352

6.5.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 67: 103449316-Logix5000-apostila1

Comunicação com Outro Controlador 10-5

5. Selecione o botão da opção Produced.

6. Digite ou selecione o número de controladores que consumirão (receberão) 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 página 10-5.

Consumo de um Tag Produzido

1. Abra o projeto RSLogix 5000 que consumirá o tag produzido.

2. No organizador do controlador, I/O Configuration (Configuração da E/S), adicione o controlador que contém o tag produzido.

3. A partir do menu Logic, selecione Edit Tags.

4. A partir de Scope, selecione name_of_controller (controlador). (Apenas tags que são de uso geral do controlador podem consumir outros tags).

5. Selecione o tag no controlador que consumirá o tag produzido e pressione as teclas ALT + Enter.

6. Selecione o botão da opção Consumed.

7. Selecione o controlador que contém o tag produzido.

8. Digite o nome do tag produzido.

42353

10.

6.

7.

8.

9.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 68: 103449316-Logix5000-apostila1

10-6 Comunicação com Outro Controlador

9. Selecione o mesmo tipo de dados que o tag produzido.

10. Digite ou selecione o tempo entre as atualizações do tag:

• Use o valor mais alto permitido para sua aplicação.

• Se o controlador consumir o tag em uma rede ControlNet, use uma potência de dois multiplicada pelo reduza o seu tempo de atualização 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.

Compartilhamento de Dados com um Controlador CLP-5C

Use esta seção para realizar estas ações:

• Produção de Inteiros para um Controlador CLP-5C

• Produção de REALs para um Controlador CLP-5C

• Consumo de Inteiros a partir de um Controlador CLP-5C ControlNet

Produção de Inteiros para um Controlador CLP-5C

1. Abra o projeto do RSLogix 5000.

2. Crie um tipo de dados definidos pelo usuário que contenha uma matriz de INTs com um número par de elementos, como INT[2]. (Quando produzir INTs, você deve produzir dois ou mais).

3. Crie um tag produzido e selecione um tipo de dados definidos pelo usuário a partir da Etapa 2.

IMPORTANTE Se uma conexão de tag consumido falhar, todos os outros tags sendo consumidos a partir daquele controlador remoto param de receber dados.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 69: 103449316-Logix5000-apostila1

Comunicação com Outro Controlador 10-7

4. Abra o software RSNetWorx™for ControlNet.

5. Na configuração da ControlNet para o controlador CLP-5C alvo:

a. Insira um Receive Scheduled Message (Recebimento de Mensagem Programada).

b. No tanhanho da Mensagem, insira o número de inteiros no tag produzido.

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

Produção de REALs para um Controlador CLP-5C

1. Abra o projeto do RSLogix 5000.

2. Qual o tipo de dado que você quer produzir?

3. Abra o software RSNetWorx for ControlNet.

4. Na configuração da ControlNet para o controlador CLP-5C alvo:

a. Insira um Receive Scheduled Message (Recebimento de Mensagem Programada).

b. No tamanho da Mensagem, insira duas vezes o número de REALs no tag produzido. Por exemplo, se o tag produzido contiver 10 REALs, insira 20 para o tamanho da Mensagem.

Se estiver produzindo:

Então:

Apenas um valor REAL Crie um tag produzido e selecione o tipo de dados REAL.

Mais de um valor REAL A. Crie um tipo de dados definidos pelo usuário que contenha a matriz de REALs.

B. Crie um tag produzido e selecione um tipo de dados definidos pelo usuário a partir da Etapa A.

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, não importando o tipo do controlador, como a seguir:

• O primeiro inteiro contém os bits mais significativos (localizados na extrema esquerda) do valor.

• O segundo inteiro contém os bits menos significativos (localizados na extrema direita) do valor.

• Este padrão continua para cada valor de ponto flutuante.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 70: 103449316-Logix5000-apostila1

10-8 Comunicação com Outro Controlador

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

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

EXEMPLO Reconstrução de um valor de ponto flutuante

As duas instruções MOV revertem a ordem dos inteiros, conforme os inteiros se movem para um novo local. Como o destino de uma instrução COP é um endereço 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

Publicação 1756-PM001C-PT-P - Junho 2001

Page 71: 103449316-Logix5000-apostila1

Comunicação com Outro Controlador 10-9

Consumo de Inteiros a partir de um Controlador CLP-5C ControlNet

1. Abra o software RSNetWorx for ControlNet.

2. Na configuração ControlNet do controlador CLP-5C, insira um Send Scheduled Message.

3. Abra o projeto do RSLogix 5000.

4. No organizador do controlador, acrescente o controlador CLP-5C para a configuração de E/S.

5. Crie um tipo de dados definidos pelo usuário que contém os seguintes integrantes:

6. Crie um tag consumido com as seguintes propriedades:

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

Tipo dos dados: Descrição:

DINT Status

INT[x], onde “x” é o tamanho da saída dos dados do controlador CLP-5C. (Se você estiver consumindo apenas um INT, nenhuma dimensão é requisitada)

Dados produzidos por um controlador CLP-5C

Para esta propriedade de tag:

Digite ou selecione:

Tag Type Consumed

Controlador O CLP-5C que está produzindo os dados.

Remote Instance O número da mensagem a partir da configuração do controlador CLP-5C ControlNet.

RPI Uma alimentação de duas vezes o NUT da rede ControlNet. Por exemplo, se o NUT for de 5 ms, selecione um RPI de 5, 10, 20, 40 etc.

Data Type Tipo de dados definidos pelo usuário que você criou na Etapa 5.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 72: 103449316-Logix5000-apostila1

10-10 Comunicação com Outro Controlador

Ajuste para os Limites de Tamanho

Você pode criar um tag produzido ou consumido de até 500 bytes. Quando você compartilhar um tag em uma rede ControlNet, o tag também deve se adequar à largura de banda da rede:

• Conforme o número de conexões de uma rede ControlNet aumenta, várias conexões, inclusive os tags produzidos ou consumidos, podem precisar compartilhar uma rede atualizada.

• Como uma rede ControlNet pode somente passar de 500 bytes em uma atualização, os dados de cada conexão devem ser menores que 500 bytes para adequar-se à atualização.

Se um tag produzido ou consumido for muito grande para sua rede ControlNet, faça um ou mais dos ajustes seguintes:

• Reduza seu Tempo de Atualização da Rede (NUT). Com um NUT mais rápido, menos conexões têm que compartilhar uma ranhura de atualização.

• Aumente o Intervalo Requisitado para Atualização (RPI) das suas conexões. Com RPIs mais altos, as conexões podem se alternar no envio de dados durante uma atualização de ranhura.

• Para um módulo de comunicação ControlNet (CNB) em um chassi remoto, selecione o formato de comunicação mais eficiente para aquele chassi:.

O formato Rack Optimization usa um adicional de 8 bytes para cada ranhura no chassi. Os módulos analógicos ou os módulos que estão enviando ou obtendo dados de diagnóstico, fusível, registro de data e hora ou programados requisitam conexões diretas e não podem aproveitar o formato de otimização de gaveta. A seleção 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 atualização similares. Por exemplo, você pode criar um tag para dados que são críticos e outro tag para dados que não são críticos.

– Atribuir um RPI diferente para cada variável.

• Criar uma lógica para transferir os dados em seções menores (pacotes). Consulte “Produção de uma Matriz Grande” na página 11-1.

A maioria dos módulos no chassi são módulos de E/S digital, sem diagnóstico?

Então selecione este formato de comunicação para o módulo CNB remoto:

Sim Otimização de Gaveta

Não Nenhum

Publicação 1756-PM001C-PT-P - Junho 2001

Page 73: 103449316-Logix5000-apostila1

Comunicação com Outro Controlador 10-11

Envio de Mensagens Para organizar os dados para uma mensagem, siga estas orientações:

1. Para cada mensagem, crie um tag para controlar a mensagem:

• Crie o tag no uso geral do controlador

• Use o tipo de dados MESSAGE.

O exemplo seguinte mostra o uso do tipo de dados MESSAGE:

2. Para os tags que as mensagens usarão (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 possível:

EXEMPLO Mensagem para outro controlador Logix5000

Quando count_send estiver energizado, envie count_msg

42188

count_send

/count_msg.en

ENDNER

Type - UnconfiguredMessage Control count_msg ...

MSG

Digite: MESSAGEUso: Controlador

Publicação 1756-PM001C-PT-P - Junho 2001

Page 74: 103449316-Logix5000-apostila1

10-12 Comunicação com Outro Controlador

– Os controladores Logix5000 operam com mais eficiência e usam menos memória quando trabalham com inteiros de 32 bits (DINTs).

4. Se sua mensagem for de/para um controlador CLP-5® ou SLC

500™ e ele transferir inteiros (não 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 número de inteiros na mensagem. (Para apenas um inteiro, omita [x].)

b. Use o buffer na mensagem.

c. Use uma instrução FAL para mover os dados entre o buffer e sua aplicação.

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). Então, a instrução de mensagem envia int_buffer para um controlador CLP-5.

42192

Leitura de valores inteiros de um controlador CLP-5

Leia continuamente valores inteiros de 16 bits (INTs) de um controlador CLP-5 e armazene-os em int_buffer. A instrução FAL move os valores para dint_array. Isto converte os valores para inteiros de 32 bits (DINTs), para o uso por outras instruções no projeto.

42192

/message.EN

RESfal_control

EN

DN

ER

File Arith/LogicalControl fal_controlLength ?Position 0Mode allDest int_buffer[fal_control.pos] ??Expression dint_array[fal_control.pos]

FALENDNER

Type - UnconfiguredMessage Control message ...

MSG

/message.EN

ENDNER

Type - UnconfiguredMessage Control message ...

MSG

message.DN

RESfal_control

EN

DN

ER

File Arith/LogicalControl fal_controlLength ?Position 0Mode allDest dint_array[fal_control.pos] ??Expression int_buffer[fal_control.pos]

FAL

Publicação 1756-PM001C-PT-P - Junho 2001

Page 75: 103449316-Logix5000-apostila1

Capítulo 11

Produção de uma Matriz Grande

Quando Usar Este Procedimento

O controlador Logix5550 pode enviar até 500 bytes de dados em uma única conexão programada. Isto corresponde a 125 elementos DINT ou REAL de uma matriz. Para transferir uma matriz de mais de 125 DINTs ou REALs, use um tag produzido/consumido de 125 elementos para criar um pacote de dados. Você pode, então, usar o pacote para enviar a matriz por partes para outro controlador.

Quando você enviar uma matriz de dados grande, em pequenos pacotes, você deve garantir que a transmissão de um pacote esteja completa antes que os dados sejam movidos para a matriz destino, por estas razões.

• Dados produzidos na placa de fundo do chassi ControlLogix são enviados em segmentos de 50 bytes.

• A transmissão de dados é assíncrona à varredura do programa.

A lógica que esta seção inclui usa uma palavra de reconhecimento para garantir que cada pacote contém novos dados antes que os dados se movam para a matriz destino. A lógica também usa um valor de offset para indicar o elemento inicial do pacote dentro de uma matriz.

Por causa dos elementos de offset e de reconhecimento, cada pacote carrega 123 elementos de dados a partir da matriz, conforme definido abaixo:

matriz

0

123124

pacote

offsetreconhecimento

matrizpacote

offsetreconhecimento

Produtor Consumidor

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 76: 103449316-Logix5000-apostila1

11-2 Produção de uma Matriz Grande

Além disso, a matriz deve conter 122 elementos extras. Em outras palavras, ela deve ser 122 elementos maior do que o maior número de elementos que você quer transferir:

• Esses elementos servem como um buffer.

• Desde que cada pacote contenha o mesmo número de elementos, o buffer evita que o controlador copie dados além dos limites da matriz.

• Sem o buffer, isto ocorreria se o último pacote contivesse menos de 123 elementos de dados reais.

Produção de uma Matriz Grande

1. Abra o projeto RSLogix 5000 que produzirá a matriz.

2. Na pasta Controller Tags, crie os seguintes tags:

onde:

array é o nome dos dados que você está enviando.

3. Converta array_ack para um tag consumido:

Consulte “Consumo de um Tag Produzido” na página 10-5.

P Nome do Tag Tipo

array_ack DINT[2]

✓ array_packet DINT[125]

Para: Especifique:

Controlador nome do controlador que está recebendo o pacote

Nome do Tag Remoto array_ack

Ambos os controladores usam o mesmo nome para estes dados compartilhados.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 77: 103449316-Logix5000-apostila1

Produção de uma Matriz Grande 11-3

4. Na pasta Controller Tags ou na pasta Tags do programa que conterá a lógica para a transferência, crie os seguintes tags:

onde:

array é o nome dos dados que você está enviando.

5. No tag array_size, insira o número 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 lógica que criará os pacotes de dados.

7. Entre com a seguinte lógica:

Nome do Tag Tipo

array DINT[x], onde x é igual ao número de elementos para transferir, mais os 122 elementos.

array_offset DINT

array_size DINT

array_transfer_time DINT

array_transfer_time_max DINT

array_transfer_timer TIMER

Conta quanto tempo dura o envio de toda a matriz

Quando o valor do offset em array_ack[0] não for igual ao valor do offset atual, mas array_ack[1] for igual a –999, o consumidor começa a receber o novo pacote, então 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.

ENDN

Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0

TON

Not EqualSource A array_ack[0]

0Source B array_packet[123]

0

NEQEqualSource A array_ack[1]

0Source B -999

EQUMoveSource -999

Dest array_packet[124]0

MOV

Publicação 1756-PM001C-PT-P - Junho 2001

Page 78: 103449316-Logix5000-apostila1

11-4 Produção de uma Matriz Grande

Quando o valor do offset em array_ack[0] for igual ao valor do offset atual, o consumidor copiou o pacote para a matriz; então, a linha verifica a existência 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, então a linha aumenta o offset em 123. Caso contrário, não há mais dados para transferir, portanto a linha reseta o valor do offset, registra o tempo de transferência 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]).

Se o tempo de transferência atual for maior do que o tempo máximo de transferência, atualize o tempo máximo de transferência. Isto mantém um registro do maior tempo para a transferência de dados.

42355

EqualSource A array_ack[0]

0Source B array_packet[123]

0

EQU

CompareExpression (array_ack[0] + 123) < array_size

CMPAddSource A array_packet[123]

0Source B 123

Dest array_offset0

ADD

CompareExpression (array_ack[0] + 123) >= array_size

CMPClearDest array_offset

0

CLR

MoveSource array_transfer_timer.ACC

0Dest array_transfer_time

0

MOV

RESarray_transfer_timer

Copy FileSource array[array_offset]Dest array_packet[0]Length 123

COPMoveSource array_offset

0Dest array_packet[123]

0

MOVClearDest array_packet[124]

0

CLR

Greater Than (A>B)Source A array_transfer_time

0Source B array_transfer_time_max

0

GRTMoveSource array_transfer_time

0Dest array_transfer_time_max

0

MOV

Publicação 1756-PM001C-PT-P - Junho 2001

Page 79: 103449316-Logix5000-apostila1

Produção de uma Matriz Grande 11-5

8. Abra o projeto RSLogix 5000 que consumirá a matriz.

9. Na pasta Controller Tags, crie os seguintes tags:

onde:

array é o nome dos dados que você está enviando. Use o mesmo nome do controlador que está produzindo (etapa 2.).

10. Converta array_packet para um tag consumido:

Consulte “Consumo de um Tag Produzido” na página 10-5.

11. Na pasta Controller Tags ou na pasta Tags do programa que conterá a lógica para a transferência, crie as seguintes variáveis:

onde:

array é o nome dos dados que você está enviando.

12. Crie ou abra uma rotina para a lógica que moverá os dados dos pacotes para a matriz destino.

P Nome do Tag Tipo

✓ array_ack DINT[2]

array_packet DINT[125]

Para: Especifique:

Controlador nome do controlador que está enviando o pacote

Nome do Tag Remoto array_packet

Ambos os controladores usam o mesmo nome para estes dados compartilhados.

Nome do Tag Tipo

array DINT[x], onde x é igual ao número de elementos para transferir, mais os 122 elementos

array_offset DINT

Publicação 1756-PM001C-PT-P - Junho 2001

Page 80: 103449316-Logix5000-apostila1

11-6 Produção de uma Matriz Grande

13. Entre com a seguinte lógica:

Quando o valor do offset em array_packet[123] é diferente do valor do offset em array_ack[0] o controlador começa a receber o novo pacote de dados; portanto a linha verifica a existência 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 começa a operação de cópia:

• O valor do offset se move do pacote para array_offset.

• As instruções COP copiam os dados do pacote para a matriz destino, começando no valor do offset.

• O valor de offset move-se para array_ack[0], que sinaliza que a cópia está completa.

• Array_ack[1] reseta para zero e espera o sinal de chegada de um novo pacote.

Se o último elemento do pacote não for igual a –999, a transferência do pacote para o controlador pode não estar completa; então –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 transmissão do pacote.

42356

Not EqualSource A array_packet[123]

0Source B array_ack[0]

0

NEQ

EqualSource A array_packet[124]

0Source B -999

EQUMoveSource array_packet[123]

0Dest array_offset

0

MOV

Copy FileSource array_packet[0]Dest array[array_offset]Length 123

COP

MoveSource array_packet[123]

0Dest array_ack[0]

0

MOV

ClearDest array_ack[1]

0

CLR

Not EqualSource A array_packet[124]

0Source B -999

NEQMoveSource -999

Dest array_ack[1]0

MOV

Publicação 1756-PM001C-PT-P - Junho 2001

Page 81: 103449316-Logix5000-apostila1

Produção de uma Matriz Grande 11-7

A transferência de uma matriz grande como pacotes menores melhora a performance do sistema em relação a outros métodos de transferência de dados.

• Um número menor de conexões é usado do que se você dividir os dados em matrizes múltiplas e mandar cada uma como um tag produzido. Por exemplo, uma matriz com 5000 elementos tomaria 40 conexões (5000/125 = 40) usando matrizes individuais.

• Tempos de transmissão mais rápidos são alcançados, comparando-se com o uso de uma instrução de mensagem para enviar a matriz inteira.

– As mensagens são desprogramadas e executadas somente durante a porção de “atraso do sistema” da execução do Logix5550. Portanto, as mensagens podem tomar um tempo relativamente longo para completar a transferência de dados.

– Você pode melhorar o tempo de transferência, aumentando a fatia de tempo de atraso do sistema, mas isso diminui a performance da tarefa contínua.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 82: 103449316-Logix5000-apostila1

11-8 Produção de uma Matriz Grande

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 83: 103449316-Logix5000-apostila1

Capítulo 12

Comunicação com um Dispositivo ASCII

Quando Usar Este Procedimento

Use este procedimento para trocar dados ASCII com um dispositivo através da porta serial do controlador. Por exemplo, você pode usar a porta serial para:

• ler caracteres ASCII de um módulo de balança de peso ou leitor de código de barras

• enviar e receber mensagens de um dispositivo ASCII disparado, como um terminal MessageView.

Como Usar Este Procedimento

Para completar este procedimento, execute as seguintes tarefas:

• Conexão do Dispositivo ASCII

• Configuração da Porta Serial

• Configuração do Protocolo do Usuário

• Criação de Tipos de Dados do String

• Leitura de Caracteres do Dispositivo

• Envio de Caracteres para o Dispositivo

conexão da porta serial do controlador para o dispositivo ASCII:

42237

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 84: 103449316-Logix5000-apostila1

12-2 Comunicação com um Dispositivo ASCII

Conexão do Dispositivo ASCII

1. Para a porta serial do dispositivo ASCII, determine quais os pinos enviam sinais e quais recebem sinais.

2. Conecte os pinos de envio para os pinos receptores correspondentes e conecte os jumpers:

3. Conecte o cabo blindado a ambos conectores

4. Conecte o cabo ao controlador e ao dispositivo ASCII.

Se a comunicação: então conecte os conectores conforme segue:

handshake

sem handshake

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

Dispositivo ASCII Controlador

42231

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

Dispositivo ASCII Controlador

42232

Publicação 1756-PM001C-PT-P - Junho 2001

Page 85: 103449316-Logix5000-apostila1

Comunicação com um Dispositivo ASCII 12-3

Configuração da Porta Serial

1. Determine as seguintes configurações de comunicação para o dispositivo ASCII:

a. taxa de transmissão

b. bits de dados

c. paridade

d. bits de parada

2. Abra o RSLogix 5000™.

3. Na barra de ferramenta online, clique no botão do controlador.

4. Clique na guia Serial Port.

5. Selecione User.

6. Selecione as configurações para o dispositivo ASCII, a partir de etapa 1.

42627

5.

42251

6.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 86: 103449316-Logix5000-apostila1

12-4 Comunicação com um Dispositivo ASCII

7. Selecione a opção Control Line (Linha de Controle):

8. Insira a quantidade de atraso (unidades de 20 ms) entre o tempo que o sinal do RTS energiza (alto) e o tempo em que os dados são enviados. Por exemplo, um valor de 4 produz um atraso de 80 ms.

9. Insira a quantidade de atraso (unidades de 20 ms) entre o tempo que o último caracter é enviado e o tempo em que o sinal do RTS desenergiza (baixo).

10. Clique em Apply.

42251

7.

8.

9.

Se: E: E este é o: Selecione: Então:

você não estiver usando um modem

Sem Handshaking Vá para etapa 10

você estiver usando um modem

ambos os modems em um link ponto-a-ponto são full-duplex

Full Duplex

o modem mestre é full-duplex, enquanto o modem escravo é half-duplex

controlador mestre Full Duplex

controlador escravo Half Duplex Selecione a caixa de verificação Continuous Carrier.

todos os modems no sistema são half-duplex

Half Duplex Desmarque a caixa de verificação Continuous Carrier (padrão).

Publicação 1756-PM001C-PT-P - Junho 2001

Page 87: 103449316-Logix5000-apostila1

Comunicação com um Dispositivo ASCII 12-5

Configuração do Protocolo do Usuário

1. Clique na guia User Protocol (Protocolo do Usuário).

2. Selecione ou digite um número que seja maior ou igual ao maior número de caracteres em uma transmissão. (O dobro de caracteres é uma boa orientação.)

3. Se você estiver usando instruções ABL ou ARL, digite os caracteres que marcam o fim dos dados. Para o código ASCII de um caracter, consulte a quarta capa do manual.

Se o dispositivo envia:

Então: Notas:

um caracter de terminação

A. Na caixa de texto Termination Character 1, digite o código ASCII hexadecimal para o primeiro caracter.

B. Na caixa de texto Termination Character 2, digite $FF.

Para os caracteres que podem ser impressos, como 1 ou A, digite o caracter.

dois caracteres de terminação

Nas caixas de texto Termination Character 1 e 2, digite o código ASCII hexadecimal para cada caracter.

2.

42252

3.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 88: 103449316-Logix5000-apostila1

12-6 Comunicação com um Dispositivo ASCII

4. Se você estiver usando a instrução AWA, digite os caracteres a serem anexados aos dados. Para o código ASCII de um caracter, consulte a quarta capa deste manual.

5. Se o dispositivo ASCII estiver configurado para o controle de fluxo XON/XOFF, selecione a caixa de verificação XON/XOFF.

6. Se o dispositivo ASCII for um CRT ou estiver pré-configurado para transmissão half-duplex, selecione a caixa de verificação Echo Mode.

Para anexar: Então: Notas:

um caracter A. Na caixa de texto Append Character 1, digite o código ASCII hexadecimal para o primeiro caracter.

B. Na caixa de texto Append Character 2, digite $FF.

Para os caracteres que podem ser impressos, como 1 ou A, digite o caracter.

dois caracteres Nas caixas de texto Append Character 1 e 2, digite o código ASCII hexadecimal para cada caracter.

42252

7.

4.

5.

6.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 89: 103449316-Logix5000-apostila1

Comunicação com um Dispositivo ASCII 12-7

7. Selecione Modo de Exclusão (Modo Delete):

8. Clique em OK.

Se um dispositivo ASCII for:

Selecione: Notas:

CRT CRT • O caracter DEL ($7F) e o caracter que o precede não são enviados ao destino.

• Se o modo de eco for selecionado e uma instrução ASCII ler o caracter DEL, o eco retorna três caracteres: BACKSPACE SPACE BACKSPACE ($08 $20 $08).

impressora Impressora • O caracter DEL ($7F) e o caracter que o precede não são enviados ao destino.

• Se o modo de eco for selecionado e uma instrução ASCII ler o caracter DEL, o eco retorna dois caracteres: / ($2F) seguido pelo caracter que foi deletado.

Nenhum dos acima citados Ignorar O caracter DEL ($7F) é tratado como outro caracter qualquer.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 90: 103449316-Logix5000-apostila1

12-8 Comunicação com um Dispositivo ASCII

Criação de Tipos de Dados do String

Você armazena caracteres ASCII nos tags que usam um tipo de dado grupo.

1. Você quer criar um novo tipo de dados do string?

2. Na organização do controlador, clique com o botão direito do mouse em Strings e selecione New String Type…

3. Insira um para o tipo de dados.

4. Insira o número máximo de caracteres que este tipo de dados de string armazenará.

5. Selecione OK.

42811

42812

ouVocê pode usar o tipo de dados STRING padrão. Ele armazena até 82 caracteres.

Você pode criar um novo tipo de dados string para armazenar o número de caracteres que você define.

IMPORTANTE Tenha cuidado ao criar um novo tipo de dado do string. Se, posteriormente, você decidir mudar o tamanho do tipo de dados do string, é possível que você perca dados em qualquer tag que atualmente usa aquele tipo de dados.

Se: Então:

não Vá para Leitura de Caracteres do Dispositivo na página 12-9.

sim Vá para a etapa 2.

Se você: Então:

crie um tipo de dados de string menor

• Os dados estão truncados.• O LEN não é trocado.

crie um tipo de dados de string maior.

Os dados e LEN são resetados para zero.

42233

3.

4.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 91: 103449316-Logix5000-apostila1

Comunicação com um Dispositivo ASCII 12-9

Leitura de Caracteres do Dispositivo

Como regra geral, antes de ler o buffer, use uma instrução ACB ou ABL para verificar qual buffer contém os caracteres requisitados:

• Uma instrução ARD ou ARL continua a ler o buffer, até que a instrução leia os caracteres requisitados.

• Enquanto uma instrução ARD ou ARL estiver lendo o buffer, nenhuma outra instrução da porta serial ASCII, exceto a instrução ACL, pode ser executada.

• A verificação de que o buffer contém os caracteres requisitados evita que a instrução ARD ou ARL impeça a execução de outras instruções da porta serial ASCII, enquanto o dispositivo de entrada envia seus dados.

Para informações adicionais sobre como programar as instruções ASCII, consulte Manual de Referência do Conjunto das Instruções Gerais do Logix5000, publicação 1756-RM003-PT.

1. Qual o tipo de dispositivo que você está lendo?

2. Insira a seguinte linha:

42235a

3. Insira 0.

4. Insira um nome do tag para a instrução ACB e defina o tipo de dado como SERIAL_PORT_CONTROL.

5. Insira o bit EN do tag ACB. (O tag da etapa 4.)

IMPORTANTE Se você não está familiarizado sobre como inserir a lógica ladder em um projeto RSLogix 5000, primeiro verifique “Rotinas de Programas” na página 4-1.

Se um dispositivo ASCII for: Então:

leitor de cógido de barras Vá para a etapa 2.

balança que envia um número fixo de caracteres

terminal de mensagem ou display Vá para a etapa 14.

balança que envia um número variável de caracteres

5.

4. 3.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 92: 103449316-Logix5000-apostila1

12-10 Comunicação com um Dispositivo ASCII

6. Insira a seguinte linha:

42235a

7. Insira o membro POS do tag ACB. (O tag da etapa 4.)

8. Insira o número de caracteres nos dados.

9. Insira 0.

10. Insira um nome do tag para armazenar os caracteres ASCII. Defina o tipo de dados como um grupo.

11. Insira um nome do tag para a instrução ARD e defina os tipo de dados como SERIAL_PORT_CONTROL.

12. Insira o número de caracteres nos dados.

11.

10. 9.

12.7. 8.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 93: 103449316-Logix5000-apostila1

Comunicação com um Dispositivo ASCII 12-11

13. Você que enviar dados para o dispositivo?

EXEMPLO Um leitor de código de barras envia códigos de barras para a porta serial (canal 0) do controlador. Cada código de barra contém 24 caracteres. Para determinar quando o controlador recebe um código de barra, a instrução ACB conta continuamente os caracteres no buffer.

Quando o buffer contém ao menos 24 caracteres, o controlador recebeu um código de barra. 24 A instrução ARD muda o código de barra para o tabbag_bar_code.

/bar_code_count.EN

ENDNER

ASCII Chars in BufferChannel 0SerialPort Control bar_code_countCharacter Count 0

ACB

Grtr Than or Eql (A>=B)Source A bar_code_count.pos 0Source B 24

GEQEN

DN

ER

ASCII ReadChannel 0Destination bag_bar_code ''SerialPort Control bar_code_readString Length 24Characters Read 0

ARD

42227

Se: Então:

sim Vá para Envio de Caracteres para o Dispositivo na página 12-14.

não Parada. Você está pronto para este dispositivo. Para usar os dados, vá para “Caracteres do Processo ASCII” na página 13-1.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 94: 103449316-Logix5000-apostila1

12-12 Comunicação com um Dispositivo ASCII

14. Insira a seguinte linha:

42235

15. Insira 0.

16. Insira um nome do tag para a instrução ABL e defina os tipo de dados como SERIAL_PORT_CONTROL.

17. Insira o bit EN do tag ABL. (O tag da etapa 16.)

18. Insira a seguinte linha:

42235

19. Insira o bit FD do tag ABL. (O tag da etapa 16.)

20. Insira 0.

21. Insira um nome do tag para armazenar os caracteres ASCII. Defina o tipo de dados como um grupo.

22. Insira um nome do tag para a instrução ARL e defina os tipo de dados como SERIAL_PORT_CONTROL.

23. Insira o número máximo de caracteres para ler se nenhum caracter(es) de extremidade for encontrado.

17.

16. 15.

21. 20.

22. 23.

19.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 95: 103449316-Logix5000-apostila1

Comunicação com um Dispositivo ASCII 12-13

24. Você que enviar dados para o dispositivo?

EXEMPLO Continuamente, teste o buffer para uma mensagem do terminal MessageView.

• Como cada mensagem termina em um retorno de carro ($0D), o retorno de carro é configurado como um caracter de extremidade na janela Controller Properties (propriedade do controlador), guia User Protocol (protocolo do usuário).

• Quando o ABL encontra um retorno de carro, energiza o bit FD.

Quando a instrução ABL encontra o retorno de carro (MV_line.FD está configurado), o controlador remove os caracteres do buffer, até e incluindo o retorno de carro e coloca-os no tag MV_msg.

/MV_line.EN

ENDNER

ASCII Test For Buffer LineChannel 0SerialPort Control MV_lineCharacter Count 0

ABL

MV_line.FD

EN

DN

ER

ASCII Read LineChannel 0Destination MV_msg ''SerialPort Control MV_readString Length 12Characters Read 0

ARL

42226

Se: Então:

sim Vá para na página Envio de Caracteres para o Dispositivo 12-14.

não Parada. Este procedimento está finalizado. Para usar os dados, vá para “Caracteres do Processo ASCII” na página 13-1.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 96: 103449316-Logix5000-apostila1

12-14 Comunicação com um Dispositivo ASCII

Envio de Caracteres para o Dispositivo

1. Determine onde iniciar:

2. Insira a seguinte linha:

42236a

3. Insira a(s) condição(ões) de entrada que determina(m) quando os caracteres serão enviados.

• Você pode usar qualquer tipo de instrução de entrada.

• A instrução deve mudar de falsa para verdadeira cada vez que os caracteres estão para ser enviados.

4. Insira 0.

5. Insira um nome do tag para armazenar os caracteres ASCII. Defina o tipo de dados como um grupo.

6. Insira um nome do tag para a instrução AWA e defina os tipo de dados como SERIAL_PORT_CONTROL.

7. Insira o número de caracteres para enviar. Omita os caracteres que são anexados pela instrução.

Se você: E você: Então:

sempre envia o mesmo número de caracteres

quer automaticamente adicionar um ou dois caracteres no fim dos dados

Vá para a etapa 2

não quer anexar os caracteres Vá para etapa 9

envie números diferentes de caracteres

quer automaticamente adicionar um ou dois caracteres no fim dos dados

Vá para etapa 16

não quer anexar os caracteres Vá para etapa 24

5. 4.

6. 7.

3.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 97: 103449316-Logix5000-apostila1

Comunicação com um Dispositivo ASCII 12-15

8. Vá para a páginaInserção dos Caracteres ASCII 12-20.

9. Insira a seguinte linha:

42236b

10. Insira a(s) condição(ões) de entrada que determina(m) quando os caracteres serão enviados.

• Você pode usar qualquer tipo de instrução de entrada.

• A instrução deve mudar de falsa para verdadeira cada vez que os caracteres estão para ser enviados.

11. Insira 0.

12. Insira um nome do tag para armazenar os caracteres ASCII. Defina o tipo de dados como um grupo.

13. Insira um nome do tag para a instrução AWT e defina os tipo de dados como SERIAL_PORT_CONTROL.

14. Insira o número de caracteres para enviar.

EXEMPLO Quando a temperatura excede o limite alto (temp_high está on (ligado), a instrução AWA envia cinco caracteres do tag string[1] para um terminal MessageView.

• A $14 conta como um caracter. Ele é o código hex para o caracter Ctrl-T.

• A instrução também envia (acrescenta) os caracteres definidos no protocolo do usuário do controlador. Neste exemplo, a instrução AWA envia um retorno de carro ($OD), que marca o fim da mensagem.

temp_high

EN

DN

ER

ASCII Write AppendChannel 0Source string[1] '$1425\1'SerialPort Control temp_high_writeString Length 5Characters Sent 6

AWA

42229

12. 11.

13. 14.

10.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 98: 103449316-Logix5000-apostila1

12-16 Comunicação com um Dispositivo ASCII

15. Vá para Inserção dos Caracteres ASCII na página 12-20.

EXEMPLO Quando a temperatura alcançar o limite baixo (temp_lowh está on (ligado), a instrução AWT envia cinco caracteres do tag string[2] para um terminal MessageView. (A $14 conta como um caracter. Ele é o código hex para o caracter Ctrl-T.)

temp_low

EN

DN

ER

ASCII WriteChannel 0Source string[2] '$142224\01$r'SerialPort Control temp_low_writeString Length 9Characters Sent 9

AWT

42229

Publicação 1756-PM001C-PT-P - Junho 2001

Page 99: 103449316-Logix5000-apostila1

Comunicação com um Dispositivo ASCII 12-17

16. Insira a seguinte linha:

42236c

17. Insira a(s) condição(ões) de entrada que determina(m) quando os caracteres estão para ser enviados.

• Você pode usar qualquer tipo de instrução de entrada.

• A instrução deve mudar de falsa para verdadeira cada vez que os caracteres estão para ser enviados.

18. Insira 0.

19. Insira um nome do tag que armazena os caracteres ASCII. Defina o tipo de dados como um grupo.

20. Insira um nome do tag para a instrução AWA e defina os tipo de dados como SERIAL_PORT_CONTROL.

21. Insira o membro LEN do tag Source. (O tag da etapa 19.)

22. Insira o membro LEN da instrução AWA. (O tag da etapa 20.)

19. 18.

20.22.

17.

21.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 100: 103449316-Logix5000-apostila1

12-18 Comunicação com um Dispositivo ASCII

23. Vá para Inserção dos Caracteres ASCII na página 12-20.

EXEMPLO Quando o alarme está ligado, a instrução AWA envia os caracteres em alarm_msg e anexa um caracter de extremidade.

• Por causa do número de caracteres em alarm_msg varia, a primeira linha muda o comprimento do alarm_msg (alarm_msg.LEN) para o comprimento da instrução AWA (alarm_write.LEN).

• Em alarm_msg, o $14 conta como um caracter. Ele é o código hex para o caracter Ctrl-T.

alarm

MoveSource alarm_msg.LEN 5Dest alarm_write.LEN 5

MOVEN

DN

ER

ASCII Write AppendChannel 0Source alarm_msg '$1425\1'SerialPort Control alarm_writeString Length 5Characters Sent 6

AWA

42229

Publicação 1756-PM001C-PT-P - Junho 2001

Page 101: 103449316-Logix5000-apostila1

Comunicação com um Dispositivo ASCII 12-19

24. Insira a seguinte linha:

42236d

25. Insira a(s) condição(ões) de entrada que determina(m) quando os caracteres estão para ser enviados.

• Você pode usar qualquer tipo de instrução de entrada.

• A instrução deve mudar de falsa para verdadeira cada vez que os caracteres estão para ser enviados.

26. Insira 0.

27. Insira um nome do tag para armazenar os caracteres ASCII. Defina o tipo de dados como um grupo.

28. Insira um nome do tag para a instrução AWT e defina os tipo de dados como SERIAL_PORT_CONTROL.

29. Insira o membro LEN do tag Source. (O tag da etapa 27.)

30. Insira o membro LEN da instrução AWT. (O tag da etapa 28.)

31. Vá para Inserção dos Caracteres ASCII na página 12-20.

27. 26.

28.30.

25.

29.

EXEMPLO Quando MV_update estiver ligado, a instrução AWT envia os caracteres em MV_msg.

• Por causa do número de caracteres em MV_msg varia, a primeira linha muda o comprimento do MV_msg (MV_msg.LEN) para o comprimento da instrução AWA (MV_write.LEN).

• Em MV_msg, o $16 conta como um caracter. Ele é o código hex para o caracter Ctrl-V.

MV_update

MoveSource MV_msg.LEN 10Dest MV_write.LEN 10

MOVEN

DN

ER

ASCII WriteChannel 0Source MV_msg '$161365\8\1$r'SerialPort Control MV_writeString Length 10Characters Sent 10

AWT

42229

Publicação 1756-PM001C-PT-P - Junho 2001

Page 102: 103449316-Logix5000-apostila1

12-20 Comunicação com um Dispositivo ASCII

Inserção dos Caracteres ASCII

Determine se você deve completar esta etapa:

1. Clique duas vezes na área de valor do Source.

2. Insira os caracteres para o string.

3. Selecione OK.

Se: Então:

Você quer lógica para criar o string. Vá para Caracteres do Processo ASCII na página 12-1.

Você quer inserir os caracteres. Vá para a etapa 1.

IMPORTANTE Esta janela String Browser mostra os caracteres até o valor do membro LEN do tag do string. O tag do string pode conter dados adicionais que a janela String Browser não mostra.

42616

1.

42615

alimentação da linha ($0A)

2.

linha nova ($0D$0A)

retorno do carro ($0D)

O número de caracteres que você visualiza na janela. Esta é a mesma janela do membro LEN do tag do string.

O número máximo de caracteres que o tag do string pode segurar.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 103: 103449316-Logix5000-apostila1

Capítulo 13

Caracteres do Processo ASCII

Quando Usar Este Procedimento

Use este procedimento para:

• interpretar um código de barras e realizar a ação baseada nesse código

• usar o peso de uma balança quando o peso for enviado como caracteres ASCII

• decodificar uma mensagem de um dispositivo de disparo ASCII, por exemplo, um terminal do operação

• construir um string para um dispositivo de disparo ASCII usando as variáveis de sua aplicação

Como Usar Este Procedimento

Dependendo da sua aplicação, não será necessário realizar todas as tarefas deste procedimento. Use a tabela a seguir para determinar onde começar:

Para informações adicionais sobre como relacionar as instruções ASCII, consulte Manual de Referência do Conjunto das Instruções Gerais do Logix5000, publicação 1756-RM003-PT.

IMPORTANTE Se você não estiver familiarizado sobre como inserir uma lógica ladder em um projeto do RSLogix 5000, primeiramente consulte “Rotinas de Programas” na página 4-1.

Se você quiser: Consulte: Na página:

iniciar uma ação baseada no código de barras

Separação de um Código de Barras

13-2

usar um peso de uma balança Conversão de um Valor 13-6

decodificar uma mensagem a partir de um terminal de operação

Decodificação de uma Mensagem ASCII

13-8

criar um string para enviar para um terminal de operação

Construção de um String 13-12

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 104: 103449316-Logix5000-apostila1

13-2 Caracteres do Processo ASCII

Separação de um Código de Barras

Use as etapas a seguir para separar um código de barras para que você possa realizar a ação com base nesse valor.

Por exemplo, um código de barras pode conter informações sobre uma bagagem em uma esteira transportadora em um aeroporto. Para verificar o número do vôo e destino da bagagem, você separa os caracteres entre 10 – 18.

Etapas:

1. Insira a seguinte linha:

2. Insira o bit EM da instrução ARD que lê o código de barras.

3. Insira o grupo tag que contém o código de barras.

4. Insira o número de caracteres na parte do código de barras que você quer verificar.

5. Insira a posição do primeiro caractere na parte do código de barras que você quer verificar.

6. Insira o nome do tag para armazenar a parte do código de barras que você quer verificar. Defina o tipo de dados como um string.

linha aérea origem nº do vôo destino data

código de barras N W A H O P 5 0 5 8 A M S 0 2 2 2 0 1

número do caractere 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

5 0 5 8 A M S

9 caracteres

2.

4.3.

42808

5. 6.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 105: 103449316-Logix5000-apostila1

Caracteres do Processo ASCII 13-3

EXEMPLO No manuseio do transporte da bagagem de um aeroporto, cada bagagem obtém um código de barras. Os caracteres entre 10 - 18 do código de barras correspondem ao número do vôo e aeroporto de destino da bagagem. Depois que o código de barras é lido (bag_read.EM está energizado) a instrução MID copia o número do vôo e o aeroporto de destino para o tag bag_flt_and_dest.

42808

Publicação 1756-PM001C-PT-P - Junho 2001

Page 106: 103449316-Logix5000-apostila1

13-4 Caracteres do Processo ASCII

Verificação de Caracteres do Código de Barras

Nesta tarefa, você usa uma instrução de comparação (EQU, GEQ, GRT, LEQ, LES, NEQ) para verificar os caracteres específicos.

• Os valores hexadecimais dos caracteres determinam se um string é menor ou maior que outro string.

• Quando dois strings estão classificados em uma lista telefônica, a ordem dos strings determina qual deles é o maior.

Etapas:

1. Insira uma linha e uma instrução de comparação:

Caracteres ASCII Códigos Hex

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

A $61

ab $61$62

Para ver se o string é: Insira esta instrução:

igual aos caracteres específicos EQU

diferente dos caracteres específicos NEQ

maior do que os caracteres específicos GRT

igual ou maior do que os caracteres específicos GEQ

menor do que os caracteres específicos LES

igual ou menor do que os caracteres específicos LEQ

maior

menor

AB < B

a > B

Publicação 1756-PM001C-PT-P - Junho 2001

Page 107: 103449316-Logix5000-apostila1

Caracteres do Processo ASCII 13-5

2. Insira o tag que armazena a parte do código de barras que você quer verificar. (O Destino a partir de Separação de um Código de Barras, etapa 6.)

3. Insira um nome de tag para armazenar os caracteres que você quer testar. Defina o tipo de dados como grupo.

4. Clique duas vezes na área do valor da Fonte B.

5. Insira os caracteres ASCII para teste e selecione OK.

6. Insira a saída requerida.

7. Você quer verificar uma outra parte do código de barras?

2. 6.3.

428084.

42615

EXEMPLO Quando bag_flt_and_dest for igual a gate[1], xfer{1] acende. Dessa forma, a bagagem é encaminhada para o portão correto.

42808

Se: Então:

sim Vá para Separação de um Código de Barras na página 13-2.

não Pare. Você terminou este procedimento.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 108: 103449316-Logix5000-apostila1

13-6 Caracteres do Processo ASCII

Conversão de um Valor Use as etapas a seguir para converter a representação ASCII de um valor para um valor DINT ou REAL que você possa usar na aplicação.

• As instruções STOD e STOR ignoram qualquer controle inicial ou caracteres não numéricos (exceto com o sinal menos na frente de um número).

• Se o string tiver múltiplos grupos de números que estão separados pelos delimitadores (por exemplo., / ), as instruções STOD e STOR convertem somente o primeiro grupo de números.

Etapas:

1. Que tipo de número é o valor?

2. Insira a seguinte linha:

3. Insira o bit EM da instrução ARD ou ARL que lê o valor.

4. Insira o tag grupo que contém o valor.

5. Insira o nome do tag para armazenar o valor a ser usado na aplicação. Defina o tipo de dados como REAL.

Se: Então:

ponto flutuante Vá para a etapa 2.

inteiro Vá para a etapa 7.

3.

5.4.

42810

EXEMPLO Após ler o peso na escala (weight_read.EM está energizado) a instrução STOR converte os caracteres numéricos em weight_ascii para um valor REAL e armazena o resultado em weight.

42810

Publicação 1756-PM001C-PT-P - Junho 2001

Page 109: 103449316-Logix5000-apostila1

Caracteres do Processo ASCII 13-7

6. Vá para a etapa 11.

7. Insira a seguinte linha:

8. Insira o bit EM da instrução ARD ou ARL que lê o valor.

9. Insira o tag grupo que contém o valor.

10. Insira o nome do tag para armazenar o valor a ser usado na aplicação. Defina o tipo de dados como DINT.

11. Este string possui um outro valor que você queira usar?

9. 10.

8.

42810

EXEMPLO Quando MV_read.EM estiver energizado, a instrução STOD converte o primeiro conjunto de caracteres numéricos em MV_msg para um valor inteiro. A instrução pula o caractere de controle inicial ($06) e pára no delimitador ( \ ).

42620

Se: Então:

sim Vá para Decodificação de uma Mensagem ASCII na página 13-8.

não Pare. Você terminou este procedimento.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 110: 103449316-Logix5000-apostila1

13-8 Caracteres do Processo ASCII

Decodificação de uma Mensagem ASCII

Use as etapas a seguir para extrair e converter um valor de uma mensagem ASCII que contenha múltiplos valores.

Por exemplo, uma mensagem pode ser semelhante a:

1. Determine em que lugar começar:

2. Que tipo de número é o valor?

primeiro valor segundo valor terceiro valor

[Ctrl-F] nº de mensagem

\ F-key \ F-key action [CR]

caractere de controle

delimitador delimitador caractere de terminação

Se o: E: Então:

string possuir mais que um valor Este é o primeiro valor. Vá para Conversão de um Valor na página 13-6.

Este não é o valor. Vá para a etapa 2.

string possuir somente um valor Vá para Conversão de um Valor na página 13-6.

Se for: Então:

ponto flutuante Insira Linha A: Encontre e Converta um Valor de Ponto Flutuante

inteiro Insira Linha B: Encontre e Converta um Valor Inteiro

42810

Linha A: Encontre e Converta um Valor de Ponto Flutuante

42810

Linha B: Encontre e Converta um Valor Inteiro

Publicação 1756-PM001C-PT-P - Junho 2001

Page 111: 103449316-Logix5000-apostila1

Caracteres do Processo ASCII 13-9

3. Insira o bit EM da instrução ARL que lê o valor.

4. Insira o tag grupo que contém o valor.

5. Insira um nome do tag para armazenar o delimitador que marca o começo do valor. Defina o tipo de dados como um string.

6. Clique duas vezes na área do valor de Busca.

7. Insira o delimitador e selecione OK.

8. Insira a posição no string para iniciar a busca.

• Inicialmente, você pode usar o 0 para encontrar o primeiro delimitador.

• Para decodificar os dados adicionais, aumente este valor para buscar o próximo delimitador.

9. Insira o nome do tag para armazenar o local do delimitador. Defina o tipo de dados como DINT.

3.

5.4.

42810

6.

8. 9.

42615

Publicação 1756-PM001C-PT-P - Junho 2001

Page 112: 103449316-Logix5000-apostila1

13-10 Caracteres do Processo ASCII

10. Insira o tag grupo que contém o valor.

11. Insira o número máximo de caracteres que este valor pode conter.

12. Insira o tag que armazena a posição do delimitador. (O tag da etapa 9.)

13. Insira o nome do tag para armazenar este valor. Defina o tipo de dados como um string.

14. Qual o tipo de instrução de conversão que você usou?

11.10.

42810

12. 13.

Se: Então:

STOR Vá para a etapa 15.

STOD Vá para a etapa 18.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 113: 103449316-Logix5000-apostila1

Caracteres do Processo ASCII 13-11

15. Insira o tag que armazena o valor. (O tag da etapa 13.)

16. Insira o nome do tag para armazenar o valor a ser usado na aplicação. Defina o tipo de dados como REAL.

17. Vá para a etapa 20.

18. Insira o tag que armazena o valor. (O tag da etapa 13.)

19. Insira o nome do tag para armazenar o valor a ser usado na aplicação. Defina o tipo de dados como DINT.

20. Este string possui um outro valor que você queira usar?

15. 16.

42809

18. 19.

42809

Se: Então:

sim A. Adicione 1 ao Resultado da instrução Find. (O tag da etapa 9.)

B. Repita as etapas 2 a 19

não Pare. Você terminou este procedimento.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 114: 103449316-Logix5000-apostila1

13-12 Caracteres do Processo ASCII

Construção de um String Use as etapas a seguir para construir um string a partir das variáveis na aplicação. Você pode enviar o string para um dispositivo de disparo ASCII, como um terminal MessageView.

• Neste procedimento, você constrói um string com duas variáveis. Por exemplo, um terminal de operação pode requerer um string semelhante a:

• Se você precisar incluir mais variáveis, use as instruções adicionais INSERT ou CONCAT.

• Se você precisar enviar um valor de ponto flutuante, use a instrução RTOS no lugar da instrução DTOS.

• O string final não incluirá o caractere de terminação. Ao enviar o string, use uma instrução AWA para automaticamente anexar o caractere de terminação.

Etapas:

1. Insira a seguinte linha:

2. Insira a condição de entrada que determina quando construir um string.

3. Insira o tag DINT que contém o primeiro valor para o string.

4. Insira o nome do tag para armazenar a representação do valor ASCII. Defina o tipo de dados de acordo com um grupo.

[Ctrl-F] nº de mensagem

\ endereço [CR]

caractere de controle

delimitador caractere de terminação

3. 4.2.

42813

Publicação 1756-PM001C-PT-P - Junho 2001

Page 115: 103449316-Logix5000-apostila1

Caracteres do Processo ASCII 13-13

5. Insira o nome do tag para armazenar o controle e o delimitador de caracteres para o string. Defina o tipo de dados como um string.

6. Clique duas vezes na área de valor da Fonte A.

7. Insira o controle e o delimitador de caractere e selecione OK.

Para um controle de caractere, insira o código hex do caractere. Para uma lista de códigos hex, consulte a terceira capa deste manual.

8. Insira o tag que armazena a representação do primeiro valor ASCII. (O tag da etapa 4.)

9. Insira 2.

Isto coloca o valor depois do primeiro caractere (controla o caractere) na Fonte A.

10. Insira o nome do tag para armazenar o string parcialmente completo. Defina o tipo de dados como um string.

5. 6. 8.

42813

9. 10.

42615

Publicação 1756-PM001C-PT-P - Junho 2001

Page 116: 103449316-Logix5000-apostila1

13-14 Caracteres do Processo ASCII

11. Insira o tag DINT que contém o segundo valor para o string.

12. Insira o nome do tag para armazenar a representação do valor ASCII. Defina o tipo de dados como um string.

13. Insira o tag que armazena o string parcialmente completo. (O tag da etapa 10.)

14. Insira o tag que armazena a representação do segundo valor ASCII. (O tag da etapa 12.)

15. Insira o nome do tag para armazenar o string completo. Defina os tipos de dados como um string.

11. 12. 13. 14.

42813

15.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 117: 103449316-Logix5000-apostila1

Caracteres do Processo ASCII 13-15

EXEMPLO Para disparar uma mensagem no terminal MessageView, o controlador envia ao terminal uma mensagem no seguinte formato: [Ctrl-T] message # \ address [CR]

Quando send_msg estiver energizado, a linha faz o seguinte:

• A primeira instrução DTOS converte o número de mensagem para os caracteres ASCII.

• A instrução INSERT insere o número de mensagens (em ASCII) depois do caractere de controle [Ctrl-T]. (O código hex para Ctrl-T is $14.)

• A segunda instrução DTOS converte o número de nós do terminal para os caracteres ASCII.

• A instrução CONCAT coloca o número de nós (em ASCII) depois da barra invertida [ \ ] e armazena o string final na msg.

Para enviar a mensagem, uma instrução AWA envia o tag msg e anexa o CR [CR].

42813

Publicação 1756-PM001C-PT-P - Junho 2001

Page 118: 103449316-Logix5000-apostila1

13-16 Caracteres do Processo ASCII

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 119: 103449316-Logix5000-apostila1

Capítulo 14

Force Valores

Quando Forçar um Valor Use um force para suprimir um valor de entrada ou saída:

Quando você forçar um valor:

• Pode forçar todos os dados de E/S, exceto os dados de configuração.

• Se o tag for uma matriz ou estrutura, como um tag de E/S, force um elemento ou membro BOOL, SINT, INT, DINT ou REAL.

• Se o valor de dados for um SINT, INT ou DINT, você pode forçar o valor de dados inteiro ou os bits individuais dentro do valor. Bits individuais podem apresentar os seguintes status de force:

– no force (forçar inexistente)

– force on (forçar energizado)

– force off (forçar desenergizado)

• Pode também forçar um alias para um membro de estrutura de E/S, tag produzido ou tag consumido.

– Um tag alias compartilha o mesmo valor de dados que seu tag base; portanto, forçar um tag alias força também o tag base associado.

– Remover um force de um tag alias remove também o force do tag base associado.

Se quiser suprimir: Então, force o Notas:

um valor do tag produzido de outro controlador

tag consumido Forçar um tag de entrada ou consumido:• suprime o valor independente do valor do dispositivo

físico ou tag produzido• não afeta o valor recebido por outros controladores

monitorando aquele tag de entrada ou produzido

um valor de um dispositivo de entrada bit ou valor dos dados de entrada

sua lógica e especificar o valor de um tag produzido

tag produzido • Forçar um tag de saída ou produzido suprime a lógica para o dispositivo físico ou outro(s) controlador(es).

• Outros controladores monitorando aquele módulo de saída, com uma capacidade para somente receber os dados, também acessarão o valor forçado.

sua lógica e especificar o estado de um dispositivo de saída

bit ou valor dos dados de saída

ATENÇÃO

!Se os forces estão habilitados e nada é forçado, mantenha o pessoal fora da área da máquina. O force pode causar o movimento inesperado da máquina, o que pode causar danos pessoais.

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 120: 103449316-Logix5000-apostila1

14-2 Force Valores

Se o valor dos dados for SINT, INT ou DINT, você pode forçar o valor inteiro ou você pode forçar bits individuais dentro do valor. Os bits individuais podem ter um status de force de:

• nenhum force

• force energizado

• force desenergizado

Um tag com alias/símbolo compartilha o mesmo valor de dados que seu tag base, portanto, forçar um tag com alias/símbolo também força o tag base associado. Remover o force de um tag com alias/símbolo remove o force do tag base associado.

Inserção de Force Use a guia Monitor Tags da janela Tags ou use a janela Ladder para inserir forces.

Inserção de Forces a Partir da Janela Tags

A partir da janela Tags, guia Monitor Tags, você pode forçar um valor de duas maneiras. Você pode:

• forçar um valor de dados inteiro.

Para valores SINT, INT, DINT e REAL, você pode forçar todos os bits como uma entidade (o valor inteiro)

• forçar os bits individuais dentro de um valor SINT, INT ou DINT.

IMPORTANTE O force aumenta o tempo de execução da lógica. Quanto mais valores você força, mais tempo leva para executar a lógica.

IMPORTANTE Os forces são mantidos pelo controlador e não pela estação de trabalho de programação. Os forces se mantêm, mesmo se a estação de trabalho de programação for desconectada.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 121: 103449316-Logix5000-apostila1

Force Valores 14-3

Entre com os valores de force nesta coluna.

Se você quiser: Faça isto:

forçar um valor SINT, INT, DINT ou REAL inteiro Para forçar um valor inteiro, digite o valor de force na coluna Force Mask, usando um formato decimal, octal, hexadecimal ou de flutuação/exponencial. Para um valor REAL, você deve usar o formato de flutuação/exponencial.Para remover o force para um valor inteiro, digite um espaço.

forçar bits dentro de um valor Para forçar um bit individual em um valor SINT, INT ou DINT, expanda o valor e edite a coluna Force Mask. O valor do force é mostrado em estilo binário, onde:

• “0” indica force desenergizado• “1” indica force energizado• “.” indica nenhum force

Você também pode usar a palheta de bits para selecionar um bit a ser forçado.

forçar um BOOL Para forçar um BOOL, entre com o valor de force, onde:• “0” indica force desenergizado• “1” indica force energizado

Para remover o force, digite um espaço.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 122: 103449316-Logix5000-apostila1

14-4 Force Valores

Inserção de Forces a Partir da Lógica Ladder

A partir da lógica ladder, você pode configurar forces apenas para variáveis BOOL ou valores de bits inteiros, usados em instruções binárias.

Para valores forçados nas instruções mais complexas, você pode apenas remover os forces. Você deve usar o monitor de dados para definir os valores de force para estes valores.

Dê um clique com o botão direito do mouse no valor do bit ou tag BOOL.Selecione Force On, Force Off ou Remove Force.

Dê um clique com o botão direito do mouse no valor forçado.Selecione Remove Force.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 123: 103449316-Logix5000-apostila1

Force Valores 14-5

Habilitação de Forces Para que um force tenha efeito, habilte os forces. Você pode habilitar e desabilitar forces apenas no controlador. Você não pode habilitar ou desabilitar forces para um módulo específico, grupo de tags ou elemento de tag.

Você habilita os forces a partir da barra Online.

Quando os forces estão habilitados, um > aparece próximo ao valor de force no editor de lógica ladder.

ATENÇÃO

!Habilitar forces faz com que os valores de entrada, saída, produzidos ou consumidos mudem. Mantenha o pessoal fora da área da máquina. O force pode causar o movimento inesperado da máquina, o que pode causar danos pessoais.

IMPORTANTE Se você descarregar um projeto que tem forces habilitados, o software de programação solicita que você habilite ou desabilite forces depois que o descarregamento estiver completo.

Selecione Enable all forces.

Forces Installed indica que os valores de force foram inseridos.

Quando os forces estão habilitados, o editor de lógica ladder indica quais forces estão ativados.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 124: 103449316-Logix5000-apostila1

14-6 Force Valores

Desabilitação de Forces Você pode desabilitar os forces sem remover os forces de valores individuais ou do controlador. Desabilitando os forces, o projeto pode ser executado como programado. Os forces ainda estão inseridos, mas não são executados.

Remoção de Forces Você pode remover os forces sem remover os forces de valores individuais ou do controlador inteiro.

Você pode remover forces individuais a partir do monitor de dados.

Se o force estiver em um valor de bit ou tag BOOL, você também pode remover os forces a partir do editor de lógica ladder. Dê um clique com o botão direito do mouse no valor e selecione Remove Force.

Se você remover cada force individualmente, os forces ainda podem ser habilitados.

Remover o force em um tag com alias/símbolo também remove o force do tag base.

Selecione Disable all forces.

Se você quiser remover o force de um: Faça isto:

valor SINT, INT, DINT ou REAL inteiro Dê um clique com o botão direito do mouse no valor no monitor de dados e selecione Remove Force.

bits dentro de um valor Expanda o valor e edite a coluna Force Mask. Mude o valor do bit para “.”, para indicar nenhum force.

valor BOOL Digite um espaço.

ATENÇÃO

!Se você removeu os forces, mas os forces ainda estão habilitados e você definir um valor de force, ele tem efeito imediatamente. Mantenha o pessoal fora da área da máquina. O force pode causar o movimento inesperado da máquina, o que pode causar danos pessoais.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 125: 103449316-Logix5000-apostila1

Force Valores 14-7

No nível do controlador, você pode remover todos os forces. A remoção de todos os forces desabilita os forces e zera todos os valores de máscara do force.

Monitoração de Forces Você pode monitorar o status de force das seguintes maneiras:

• software RSLogix5000

• lógica da aplicação

• LED FORCE. (Controladores Logix5550 não têm LED indicativo de status de force.)

O exemplo a seguir mostra como verificar se forces estão presentes e habilitados, e definir seu próprio indicador LED.

Selecione Remove all forces.

Se o LED FORCE estiver: Então:

apagado • Nenhum tag contém valores force.• Forces estão inativos (desabilitados).

piscando • Pelo menos um tag contém um valor force.• Valores force estão inativos (desabilitados).

aceso estável • Forces estão ativos (habilitados).• Valores force podem, ou não, existir.

Este bit identifica que os forces estão

instalados.

Este bit identifica que os forces estão

habilitados.

Esta instrução GSV coleta a infomação atual do force e a armazena no

status DINT.

Este indicador pode ser uma luz para mostrar

quando os forces estão habilitados.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 126: 103449316-Logix5000-apostila1

14-8 Force Valores

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 127: 103449316-Logix5000-apostila1

Capítulo 15

Desenvolvimento de uma Rotina de Falha

Quando Usar Este Procedimento

Se uma condição de falha ocorrer, que seja severa o suficiente para que o controlador desligue, o controlador gera uma falha grave e pára a execução da lógica.

• Dependendo de sua aplicação, você pode não querer que todas as falhas graves desliguem todo o seu sistema.

• Nestas situações, você pode usar uma rotina de falha para remover a falha específica e permitir que algumas partes do sistema continuem a operar.

Desenvolvimento de uma Rotina de Falha

Para remover uma falha específica:

1. Crie um tipo de dados definidos pelo usuário que armazenará as informações de falha. Dê um nome ao tipo de dados, FaultRecord, e atribua os seguintes integrantes:

2. Crie um tag que armazenará as informações de falha. Selecione o tipo de dados FaultRecord.

EXEMPLO Use uma rotina de falha

Em um sistema que usa números de receita, como endereços indiretos, um número digitado de forma errada pode produzir uma falha grave, como tipo 4, código 20.

• Para prevenir que o sistema todo desligue, uma rotina de falha remove qualquer falha do tipo 4, código 20.

Nome: Tipo de Dados: Estilo:

TimeLow DINT Decimal

TimeHigh DINT Decimal

Type INT Decimal

Code INT Decimal

Info DINT[8] Hexadecimal

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 128: 103449316-Logix5000-apostila1

15-2 Desenvolvimento de uma Rotina de Falha

3. Que tipo de falhas você quer que a lógica remova?

Para uma falha que ocorreu devido:

Faça isto:

à execução de uma instrução

Crie uma rotina de falha para o programa:A. No organizador do controlador, clique com o botão direito do mouse em name_of_program e selecione New Routine.

B. Na caixa do nome, digite um nome para a rotina de falha (name_of_fault_routine).

C. A partir da lista Type, selecione Ladder.D. Clique em OK.E. Clique com o botão direito do mouse em name_of_program e selecione Properties.F. Clique na guia Configuration.G. A partir da lista Fault, selecione name_of_fault_routine.H. Clique em OK.I. Clique duas vezes em name_of_fault_routine.

à perda de alimentação

Crie um programa e rotina principal para o Controller Fault Handler (Organizador de Falha do Controlador:

A. No organizador do controlador, clique com o botão direito do mouse em Controller Fault Handler e selecione New Program (Novo Programa).

B. Digite:• name_of_program

• description (opcional)C. Clique em OK.D. Clique no sinal de + próximo a Controller Fault Handler.E. Clique com o botão direito do mouse em name_of_program e selecione

New Routine (Nova Rotina). F. Digite:

• name_of_routine

• description (opcional)G. A partir da lista Type, selecione a linguagem de programação para a rotina.H. Clique em OK.I. Clique com o botão direito do mouse em name_of_program e selecione Properties.

J. Clique na guia Configuration.K. A partir da lista Main, selecione name_of_routineL. Clique em OK.

M. Clique duas vezes em name_of_routine.

E/S

watchdog da tarefa

mudança de modo

eixo de movimento

Publicação 1756-PM001C-PT-P - Junho 2001

Page 129: 103449316-Logix5000-apostila1

Desenvolvimento de uma Rotina de Falha 15-3

4. Insira a seguinte lógica:

Obtém as informações de falha e armazena-as no tag major_fault_record (estrutura definida pelo usuário)

Se fault_type, fault_code ocorrer, configure o tipo e o código da falha no tag major_fault_record para zero.

Quando MAJORFAULTRECORD for energizado para os novos valores que estão contidos no tag major_fault_record, a falha é removida e o controlador reinicia a execução.

42372

Get system valueCIP Object class PROGRAMCIP Object name THISAttribute name MAJORFAULTRECORDDest major_fault_record.Time_Low 0

GSV

EqualSource A major_fault_record.Type 0Source B fault_type

EQUEqualSource A major_fault_record.Code 0Source B fault_code

EQU

MoveSource 0 Dest major_fault_record.Type 0

MOVMoveSource 0 Dest major_fault_record.Code 0

MOV

Set system valueCIP Object class PROGRAMCIP Object name THISAttribute name MAJORFAULTRECORDSource major_fault_record.Time_Low 0

SSV

onde: é o:

major_fault_record tag da etapa 2.

fault_type valor para o tipo de falha que você quer remover

fault_code valor para o código da falha que você quer remover

Publicação 1756-PM001C-PT-P - Junho 2001

Page 130: 103449316-Logix5000-apostila1

15-4 Desenvolvimento de uma Rotina de Falha

Teste de uma Rotina de Falha

Você pode usar uma instrução JSR para testar a rotina de falha de um programa sem criar um erro (ou seja, simulação de uma falha):

1. Crie um tag BOOL que você usará para iniciar a falha.

2. Na rotina principal ou em uma sub-rotina do programa, digite a seguinte linha:

3. Para simular uma falha, energize a condição de entrada.

onde: é o:

aaa tag que você usará para iniciar a falha (Etapa 1.)

bbb rotina de falha do programa

EXEMPLO Teste uma rotina de falha

Quando test_fault_routine está energizada, uma falha de advertência ocorre e o controlador executa Fault_Routine.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 131: 103449316-Logix5000-apostila1

Capítulo 16

Criação de uma Falha Grave Definida Pelo Usuário

Quando Usar este Procedimento

Se você quiser suspender (desligar) o controlador, baseado em condições na sua aplicação, crie uma falha grave definida pelo usuário. Com uma falha grave definida pelo usuário:

• Você define um valor para o código da falha.

• O controlador manuseia a falha do mesmo modo que outras falhas graves:

– O controlador muda para o modo de falha (falha grave) e pára de executar a lógica.

– As saídas são energizadas para seu estado ou valor configurado para o modo com falha.

Criação de uma Falha Grave Definida pelo Usuário

1. Já existe uma rotina de falha para o programa?

EXEMPLO Falha grave definida pelo usuário

Quando input_value for maior que 80, produza uma falha grave e gere um código de falha de 999.

Se: Então:

Sim Vá para a etapa 2.

Não Crie uma rotina de falha para o programa:A. No organizador do controlador, clique com o botão direito do

mouse em name_of_program e selecione New Routine (Nova Rotina).

B. Na caixa do nome, digite um nome para a rotina de falha (name_of_fault_routine).

C. A partir da lista Type, selecione Ladder.D. Clique em OK.E. Clique com o botão direito do mouse em name_of_program e selecione Properties.

F. Clique na guia Configuration.G. A partir da lista Fault, selecione name_of_fault_routine.

H. Clique em OK.I. Clique duas vezes em name_of_fault_routine.

J. Insira uma instrução NOP (de forma que a rotina verifique se não há erro).

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 132: 103449316-Logix5000-apostila1

16-2 Criação de uma Falha Grave Definida Pelo Usuário

2. Na rotina principal do programa, insira a seguinte linha:

42373

Jump to SubroutineRoutine name name_of_fault_routineInput par x

JSRcondições nas quais o controlador deve desligar

onde: é:

name_of_fault_routine rotina da etapa 1.

x valor para o código da falha

EXEMPLO Criação de uma falha grave definida pelo usuário

Quando input_value for maior ou igual a 80, a execução salta para name_of_fault_routine. Uma falha grave ocorre e o controlador insere o modo com fallha. As saídas vão para o estado com falha. A janela Controller Properties, guia Major Faults, mostra o código 999.

42373

Grtr Than or Eql (A>=B)Source A input_value

0Source B 80

GEQJump to SubroutineRoutine name name_of_fault_routineInput par 999

JSR

Publicação 1756-PM001C-PT-P - Junho 2001

Page 133: 103449316-Logix5000-apostila1

Capítulo 17

Monitoração de Falhas de Advertência

Quando Usar Este Procedimento

Se uma condição de falha ocorrer, que não seja severa o suficiente para que o controlador desligue, o controlador gera uma falha de advertência.

• O controlador continua a executar.

• Você não precisa remover uma falha de advertência.

• Para otimizar o tempo de execução e garantir a precisão do programa, você deve monitorar e corrigir as falhas de advertência.

Monitoração de Falhas de Advertência

Para usar a lógica ladder para obter informações sobre uma falha de advertência:

O seguinte exemplo verifica a existência de um aviso de bateria fraca.

Para verificar: Faça isto:

Sobreposição de tarefas periódicas

1. Insira uma instrução GSV, que obtém o objeto FAULTLOG, atributo MinorFaultBits.2. Monitore o bit 6.

carregue a memória não volátil

1. Insira uma instrução GSV, que obtém o objeto FAULTLOG, atributo MinorFaultBits.2. Monitore o bit 7.

um problema com a porta serial

1. Insira uma instrução GSV, que obtém o objeto FAULTLOG, atributo MinorFaultBits.2. Monitore o bit 9.

uma bateria fraca 1. Insira uma instrução GSV, que obtém o objeto FAULTLOG, atributo MinorFaultBits.2. Monitore o bit 10.

um problema com uma instrução

1. Crie um tipo de dado definido pelo usuário que armazene as informações de falhas. Dê um nome ao tipo de dado, FaultRecord, e atribua os seguintes membros:

Nome: Tipo de Dados: Estilo:

TimeLow DINT Decimal

TimeHigh DINT Decimal

Tipo INT Decimal

Code INT Decimal

Info DINT[8] Hexadecimal

2. Crie um tag que armazenará os valores do atributo MinorFaultRecord. Selecione o tipo de dado a partir da etapa 1.

3. Monitore S:MINOR.4. Se S:MINOR estiver energizado, use uma instrução GSV para obter os valores do atributo

MinorFaultRecord.5. Se você quiser detectar uma falha de advertância que foi causada por outra instrução, resete

S:MINOR. (S:MINOR permanece energizado até o final da varredura).

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 134: 103449316-Logix5000-apostila1

17-2 Monitoração de Falhas de Advertência

EXEMPLO Verificação de uma falha de advertência

Minor_fault_check realiza uma contagem de tempo durante 1 minuto (60.000 ms) e, então, recomeça automaticamente.

A cada minuto, minor_fault_check.DN é energizado para uma varredura. Quando isto ocorre, a instrução GSV obtém o valor do objeto FAULTLOG, atributo MinorFaultBits e armazena-o no tag minor_fault_bits. Como a instrução GSV é executada apenas uma vez a cada minuto, o tempo de varredura da maioria das varreduras é reduzido.

Se minor_fault_bits.10 estiver energizado, então a bateria está fraca.

42373

Publicação 1756-PM001C-PT-P - Junho 2001

Page 135: 103449316-Logix5000-apostila1

Monitoração de Falhas de Advertência 17-3

O seguinte exemplo verifica a existência de uma falha de advertência que foi causada por uma instrução específica.

EXEMPLO Verifique uma falha de advertência que é causada por uma instrução

Multiplique value_a por 1000000 e verifique a existência de uma falha de advertência, como um overflow matemático:

• Para garantir que uma instrução anterior não produziu a falha, a linha remove S:MINOR primeiro.

• A linha, então, executa a instrução de multiplicação.

• Se a instrução produzir uma falha de advertência, o controlador energiza S:MINOR.

• Se S:MINOR estiver energizado, a instrução GSV obtém as informações sobre a falha e reseta S:MINOR.

42373

Publicação 1756-PM001C-PT-P - Junho 2001

Page 136: 103449316-Logix5000-apostila1

17-4 Monitoração de Falhas de Advertência

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 137: 103449316-Logix5000-apostila1

Capítulo 18

Desenvolvimento de uma Rotina de Energização

Quando Usar Este Procedimento

A rotina de power-up é uma tarefa adicional que é executada quando o controlador é energizado no modo de Operação.

Use a rotina de power-up quando quiser realizar qualquer destas ações depois que a alimentação for perdida e recuperada:

• Evitar que o controlador retorne ao modo de Operação.

– A rotina de power-up produzirá uma falha grave, tipo 1, código 1 e o controlador entrará em modo com Falha.

• Tome ações específicas e reinice a execução normal da lógica.

Desenvolvimento de uma Rotina de Energização

As etapas para o desenvolvimento de uma rotina de energização são semelhantes ao desenvolvimento de uma rotina de falha:

1. Crie um tipo de dados definidos pelo usuário que armazenará as informações da falha. Nomeie o tipo de dados, FaultRecord, e atribua os seguintes membros:

2. Crie um tag que armazenará as informações de falha. Selecione o tipo de dados FaultRecord.

42195

Nome: Tipo de Dados: Estilo:

TimeLow DINT Decimal

TimeHigh DINT Decimal

Type INT Decimal

Code INT Decimal

Info DINT[8] Hexadecimal

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 138: 103449316-Logix5000-apostila1

18-2 Desenvolvimento de uma Rotina de Energização

3. Crie um programa para a Rotina de Power-up:

3. Como você quer manusear uma perda de alimentação?

Ação: Etapas detalhadas:

1. Crie um programa. A. No organizador do controlador, clique com o botão direito do mouse em Power-Up Handler e selecione New Program (Novo Programa).

B. Digite:• name_of_program

• description (opcional)C. Clique em OK.

2. Crie e atribua uma rotina principal (a rotina que é executada primeiro no programa).

A. Clique no sinal de + que está próximo a Power-Up Handler.B. Clique com o botão direito do mouse em name_of_program e selecione New

Routine.C. Digite:

• name_of_main_routine

• description (opcional)D. A partir da lista Type, selecione a linguagem de programação para a rotina.E. Clique em OK.F. Clique com o botão direito do mouse em name_of_program e selecione

Properties.G. Clique na guia Configuration.H. A partir da lista Main, selecione name_of_main_routineI. Clique em OK.

J. Para acrescentar rotinas adicionais (subrotinas) para o programa, repita as etapas B. a E.

Para: Faça isto:

Evitar que o controlador retorne ao modo de Operação

Procedimento concluído. Quando a alimentação for restaurada, uma falha grave, tipo 1, código 1, ocorrerá e o controlador inserirá o modo com Falha.

Quando a alimentação for restaurada, tomar ações específicas e reiniciar a operação normal.

A. Abra (clique duas vezes) name_of_routine.

B. Insira a lógica para as ações.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 139: 103449316-Logix5000-apostila1

Desenvolvimento de uma Rotina de Energização 18-3

4. Insira a seguinte lógica para remover a falha:

onde:

major_fault é o tag da etapa 2.

Obtém as informações de falha e armazena-as no tag major_fault (estrutura definida pelo usuário)

Configura o tipo e o código da falha no tag major_fault para zero e configura MAJORFAULTRECORD para os novos valores, que removem a falha.

42375

Get system valueCIP Object class PROGRAMCIP Object name THISAttribute name MAJORFAULTRECORDDest major_fault.TimeLow 0

GSV

MoveSource 0 Dest major_fault.Type 0

MOVMoveSource 0 Dest major_fault.Code 0

MOVSet system valueCIP Object class PROGRAMCIP Object name THISAttribute name MAJORFAULTRECORDSource major_fault.TimeLow 0

SSV

Publicação 1756-PM001C-PT-P - Junho 2001

Page 140: 103449316-Logix5000-apostila1

18-4 Desenvolvimento de uma Rotina de Energização

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 141: 103449316-Logix5000-apostila1

Capítulo 19

Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil

Quando Usar Este Procedimento

Atualmente, somente os controladores 1756-L55M23 e -L55M24 possuem memória não volátil para o armazenamento de um projeto. No futuro, acrescentaremos esse recurso para outros controladores da família de controladores Logix5000.

Use este procedimento para armazene ou carga um projeto usando a memória não volátil de um controlador.

• Se o controlador perder energia e não tiver capacidade suficiente de bateria, ele perde o projeto na memória do usuário.

• A memória não volátil permite que você guarde uma cópia de seu projeto no controlador. O controlador não precisa de alimentação para guardar esta cópia.

• Você pode carregar a cópia de memória não volátil para a memória do usuário do controlador:

– em cada energização

– sempre que não houver projeto no controlador e ele estiver energizado

– a qualquer momento através do software RSLogix 5000

IMPORTANTE A memória não volátil armazena os conteúdos de memória do usuário ao mesmo tempo em que você armazena o projeto.

• As alterações que você fizer depois de armazenar o projeto não são refletidas na memória não volátil.

• Se você quiser armazenar as alterações como por exemplo, as edições on-line, valores de tag ou um programa da rede ControlNet, armazene o projeto novamente depois de ter feito as alterações.

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 142: 103449316-Logix5000-apostila1

19-2 Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil

Um armazenamento ou carregamento possui os seguintes parâmetros:

Como Usar Este Procedimento

Tabela 19. A Parâmetros de um armazenamento ou carregamento

Parâmetro: Armazenamento: Carregamento:

Quanto tempo é necessário para se fazer um armazenamento ou carregamento?

muitos minutos muitos segundos

Em que modo (s) do controlador posso armazenar ou carregar um projeto?

modo programa

Posso ficar on-line com o controlador durante um armazenamento ou carregamento?

não

Qual é o estado da E/S durante um armazenamento ou carregamento?

A E/S permanece em seu estado configurado durante o modo programa.

Se você quiser: Então:

armazenar um projeto na memória não volátil do controlador

Vá para “Armazenamento de um Projeto” na página 19-3.

sobrescrever o projeto atual no controlador com o projeto que está armazenado na memória não volátil do controlador

Vá para “Carregamento de um Projeto" na página 19-6

carregar o projeto depois que uma perda de alimentação apagou a memória porque não havia bateria

usar a lógica ladder para sinalizar que o seu projeto foi carregado a partir da memória não volátil

Vá para “Verificação do Carregamento” na página 19-9.

remover um projeto da memória não volátil do controlador

Vá para “Apagamento da Memória Não Volátil” na página 19-10.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 143: 103449316-Logix5000-apostila1

Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil 19-3

Armazenamento de um Projeto

Nesta tarefa, você armazena um projeto na memória não volátil do controlador. Isto substitui um projeto que esteja atualmente na memória não volátil

Antes de armazenar o projeto:

• faça todas as edições necessárias na lógica

• faça o download do projeto para o controlador

Etapas:

1. Fique on-line com o controlador.

2. Coloque o controlador no modo Programa (Programa Remoto ou Programa).

3. Na barra de ferramentas On-line, clique no botão controller properties.

4. Clique na guia Nonvolatile Memory.

5. Selecione Load/Store.

ATENÇÃO

!Durante um armazenamento, todos os eixos servo ativos estão desligados. Antes de armazenar um projeto, certifique-se de que isto não causará nenhum movimento inesperado do eixo.

42627

3.

42865

5.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 144: 103449316-Logix5000-apostila1

19-4 Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil

6. Quando (sob que condições) você quer carregar o projeto de volta para a memória do usuário (RAM) do controlador?

42866

7.

Projeto que atualmente está na memória não volátil do controlador (se houver um projeto).

Projeto que atualmente está na memória do usuário (RAM) do controlador.

6.

8.

9.

Se você quer carregá-lo: Então selecione: Notas:

sempre que você ligar ou desligar ou ligar o ciclo de alimentação do chassi

ON Power Up • Durante o ciclo de alimentação, você perderá todas as alterações on-line, valores de tag e programa de rede que você não armazenou na memória não volátil.

• Com esta opção, o projeto também é carregado quando você atualizar o firmware do controlador. Depois do carregamento, o controlador automaticamente vai para o modo selecionado na lista Load Mode (etapa 7).

• Você pode sempre usar o software RSLogix 5000 para fazer o carregamento do projeto.

sempre que não houver nenhum projeto no controlador e você ligar ou desligar ou ligar a alimentação do chassi

On Corrupt Memory • Com esta opção, o projeto também é carregado quando você atualizar o firmware do controlador. Depois do carregamento, o controlador automaticamente vai para o modo selecionado na lista Load Mode (etapa 7)

• Você pode sempre usar o software RSLogix 5000 para fazer o carregamento do projeto.

somente para o software RSLogix 5000

User Initiated

Publicação 1756-PM001C-PT-P - Junho 2001

Page 145: 103449316-Logix5000-apostila1

Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil 19-5

7. Na etapa 6, qual opção de imagem de carregamento você selecionou?

8. Insira uma nota que descreva o projeto que você está armazenando, se desejado.

9. Selecione <− Store.

Uma janela solicita a confirmação do armazenamento.

10. Para armazenar um projeto, selecione Yes.

Durante o armazenamento, os seguintes eventos ocorrem:

• Na parte da frente do controlador, o LED OK exibe a seguinte seqüência:

verde piscante ⇒ vermelho ⇒ verde

• O software RSLogix 5000 fica off-line.

• Uma caixa de diálogo informa que o armazenamento está em andamento.

11. Selecione OK.

Quando o armazenamento terminar, você permanece off-line. Se você quiser ficar on-line, é necessário fazer a /seleção manualmente.

Se: Então:

On Power Up Selecione o modo que você quer que o controlador fique depois de um carregamento:

• programa remoto• operação remota

Para ir para este modo depois de um carregamento, vire a chave seletora de modo do controlador para a posição REM.

On Corrupt Memory

User Initiated Vá para etapa 8.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 146: 103449316-Logix5000-apostila1

19-6 Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil

Carregamento de um Projeto

Nesta tarefa, você usa o software RSLogix 5000 para fazer o carregamento do projeto na memória não volátil.

Etapas:

1. Fique on-line com o controlador.

2. O diálogo a seguir abriu?

3. Coloque o controlador no modo Programa (Programa Remoto ou Programa).

4. Na barra de ferramentas Online, clique no botão controller properties.

5. Clique na guia Nonvolatile Memory.

ATENÇÃO

!Durante um carregamento, todos os eixos servo ativos estão desligados. Antes de carregar um projeto, certifique-se de que isto não causará nenhum movimento inesperado do eixo.

42873

Se: Então:

Não Vá para etapa 3

Sim Vá para etapa 5

42627

4.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 147: 103449316-Logix5000-apostila1

Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil 19-7

6. Selecione Load/Store.

7. Selecione Load −>.

Uma caixa de diálogo solicita a confirmação do carregamento.

8. Para fazer o carregamento do projeto da memória não volátil, selecione Yes.

42865

6.

42866

Projeto que atualmente está na memória não volátil do controlador (se houver um projeto).

Projeto que atualmente está na memória do usuário (RAM) do controlador.

7.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 148: 103449316-Logix5000-apostila1

19-8 Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil

Durante o carregamento, os seguintes eventos ocorrem:

• Na parte da frente do controlador, o LED OK exibe a seguinte seqüência:

vermelho ⇒ verde

• O software RSLogix 5000 fica off-line.

Quando o carregamento terminar, você permanece off-line. Se você quiser ficar on-line, é necessário fazer a seleção manualmente.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 149: 103449316-Logix5000-apostila1

Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil 19-9

Verificação do Carregamento

Quando o controlador carrega um projeto da memória não volátil, as seguintes informações são fornecidas:

• registros de uma falha de advertência (tipo 7, código 49)

• ajustes do objeto FAULTLOG, atributo MinorFaultBits, bit 7

Se você quiser que o projeto sinalize que foi carregado a partir da memória não volátil, use a lógica ladder a seguir:

Na primeira varredura do projeto (S:FS está energizado), a instrução GSV obtém o objeto FAULTLOG, atributo MinorFaultBits e armazena o valor em minor_fault_bits. Se o bit 7 estiver energizado, o controlador carregou o projeto de sua memória não volátil.

42867

Onde: É:

minor_fault_bits O tag que armazena o objeto FAULTLOG, atributo MinorFaultBits. O tipo de dados é DINT.

NVM_load O tag que indica que o controlador carregou o projeto de sua memória não volátil.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 150: 103449316-Logix5000-apostila1

19-10 Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil

Apagamento da Memória Não Volátil

Geralmente, você não precisa apagar a memória não volátil do controlador. Ao armazenar um projeto, você substitui todos os conteúdos da memória não volátil.

Se você quiser apagar um projeto da memória não volátil, realize as seguintes etapas:

1. Fique on-line com o controlador.

2. Na barra de ferramentas Online, clique no botão controller properties.

3. Clique na guia Nonvolatile Memory.

4. A opção Load Image está ajustada para User Initiated ?

5. Selecione Load/Store.

6. Na lista Load Image, selecione User Initiated.

42627

2.

42865

4.

Se: Então:

Não Vá para etapa 5

Sim Vá para etapa 11

Publicação 1756-PM001C-PT-P - Junho 2001

Page 151: 103449316-Logix5000-apostila1

Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil 19-11

7. Selecione <- Store.

Uma caixa de diálogo solicita a confirmação do armazenamento.

8. Para armazenar um projeto, selecione Yes.

Uma caixa de diálogo informa que o armazenamento está em andamento.

9. Selecione OK.

10. Espere até que o LED OK na parte da frente do controlador esteja estabilizado em green. Isto indica que o armazenamento terminou.

11. Desconecte a bateria do controlador.

12. Desligue e ligue a alimentação para o chassi.

13. Reconecte a bateria para o controlador.

14. Fique on-line com o controlador.

A caixa de diálogo Conected To Go Online abre.

15. Clique na guia Nonvolatile Memory.

16. Selecione Load/Store.

42865

16.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 152: 103449316-Logix5000-apostila1

19-12 Armazenamento e Carregamento de um Projeto Usando Memória Não Volátil

17. Selecione <− Store.

Uma caixa de diálogo solicita a confirmação do armazenamento.

18. Para armazenar um projeto, selecione Yes.

Durante o armazenamento, os seguintes eventos ocorrem:

• Na parte da frente do controlador, o LED OK exibe a seguinte seqüência:

verde piscante ⇒ vermelho ⇒ verde

• O software RSLogix 5000 fica off-line.

• Uma caixa de diálogo informa que o armazenamento está em andamento.

19. Selecione OK.

Quando o armazenamento terminar, você permanece off-line. Se você quiser ficar on-line, é necessário fazer a seleção manualmente.

42874

17.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 153: 103449316-Logix5000-apostila1

Apêndice A

Códigos de Falha

Quando Usar Este Apêndice Use este apêndice para interpretar:

• Códigos de Falha Grave

• Códigos de Falha de Advertência

Códigos de Falha Grave Use a seguinte tabela para determinar a causa e a ação corretiva para uma falha grave. O tipo e o código correspondem ao tipo e ao código mostrados nestes locais:

• Caixa de diálogo Controller Properties (Propriedades do Controlador), guia Major Faults (Falhas Graves)

• Objeto PROGRAM, atributo MAJORFAULTRECORD

Table A.1 Códigos e Tipos de Falhas Graves

Digite: Código: Causa: Método de Recuperação:

1 1 O controlador está energizado no modo Run. Execute a rotina de perda de alimentação.

3 16 Uma conexão requisitada pelo módulo de E/S falhou.

Verifique se o módulo de E/S está no chassi. Verifique os requisitos de revisão eletrônica.Visualize a guia de propriedades Major Faults do controlador e a guia de propriedades Connection do módulo para maiores informações sobre a falha.

3 20 Possível problema com o chassi ControlBus. Não recuperável - substitua o chassi.

3 23 Pelo menos uma conexão requisitada não foi estabelecida antes de passar para o modo Run.

Espere que o LED indicador de E/S do controlador fique verde antes de mudar para o modo Run.

4 16 Instrução desconhecida encontrada. Remova a instrução desconhecida. Isto provavelmente aconteceu devido a um processo de conversão de programa.

4 20 Subscrito da matriz muito grande, a estrutura de controle . POS ou . LEN é inválida.

Ajuste o valor de acordo com a faixa válida. Não exceda o tamanho da matriz ou ultrapasse as dimensões definidas.

4 21 Estrutura de controle .LEN ou .POS < 0. Ajuste o valor, de modo que ele seja > 0.

4 31 Os parâmetros da instrução JSR não correspondem aos da instrução SBR ou RET associada.

Transfira o número de parâmetros apropriado. Se muitos parâmetros são transferidos, os extras são ignorados sem qualquer erro.

4 34 Uma instrução do temporizador tem um valor pré-programado acumulado ou negativo.

Arrume o programa para não carregar um valor negativo no valor pré-programado ou acumulado do temporizador.

4 42 Salto (JMP) para um label não existia ou foi deletado.

Corrija a JMP alvo ou adicione o label que estiver faltando.

4 83 Os dados testados não estavam dentro dos limites requisitados.

Modifique o valor de acordo com os limites.

4 84 Overflow de pilha. Reduza os níveis de encadeamento da sub-rotina ou o número de parâmetros transferidos.

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 154: 103449316-Logix5000-apostila1

A-2 Códigos de Falha

6 1 O watchdog da tarefa expirou.A tarefa do usuário não se completou no período de tempo específico. Um erro de programa causou uma malha infinita ou o programa é muito complexo para executar tão rápido quanto o especificado, ou uma tarefa de maior prioridade está impedindo que esta tarefa termine.

Aumente o watchdog da tarefa, diminua o tempo de execução, eleve o nível de prioridade dessa tarefa,simplifique as tarefas de maior prioridade ou mova algum código para outro controlador.

7 40 Armazenamento na memória não volátil que falhou.

1. Tente armazenar novamente o projeto para a memória não volátil.

2. Se o projeto falhar ao ser armazenado na memória não volátil, substitua a placa de memória.

7 42 A carga da memória não volátil falhou porque a revisão de firmware do projeto na memória não volátil não corresponde à revisão de firmware do controlador.

Atualize o firmware do controlador para o mesmo nível de revisão conforme o projeto que está na memória não volátil.

8 1 Tentativa de colocar o controlador em modo Run com a chave seletora de modo durante o descarregamento.

Espere o descarregamento se completar e remova a falha.

11 1 A posição real excedeu o limite positivo da ultrapassagem de curso.

Mova o eixo na direção negativa até que a posição esteja dentro do limite de ultrapassagem de curso e execute Motion Axis Fault Reset.

11 2 A posição real excedeu o limite negativo da ultrapassagem de curso.

Mova o eixo na direção positiva até que a posição esteja dentro do limite de ultrapassagem de curso e execute Motion Axis Fault Reset.

11 3 A posição real excedeu a tolerância do erro de posição.

Mova a posição para dentro da tolerância e execute Motion Axis Fault Reset.

11 4 A conexão do canal A, B ou Z do encoder está interrompida.

Reconecte o canal do encoder e execute Motion Axis Fault Reset.

11 5 Evento de ruído no encoder detectado ou os sinais do encoder não estão na quadratura.

Conserte a fiação do encoder e execute Motion Axis Fault Reset.

11 6 A entrada Drive Fault foi ativada. Remova Drive Fault e execute Motion Axis Fault Reset.

11 7 A conexão síncrona apresentou uma falha. Primeiro, execute Motion Axis Fault Reset. Se não funcionar, retire o servo módulo e conecte-o novamente. Se falhar, substitua o servo módulo.

11 8 O servo módulo detectou uma falha grave de hardware.

Substitua o módulo.

11 9 A conexão assíncrona apresentou uma falha. Primeiro, execute Motion Axis Fault Reset. Se não funcionar, retire o servo módulo e conecte-o novamente. Se falhar, substitua o servo módulo.

11 32 A tarefa de movimento sofreu uma sobreposição.

A taxa de atualização do curso do grupo é muito alta para manter a operação correta. Remova o tag de falha do grupo, aumente a taxa de atualização do grupo e remova a falha grave.

Table A.1 Códigos e Tipos de Falhas Graves (Continuação)

Digite: Código: Causa: Método de Recuperação:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 155: 103449316-Logix5000-apostila1

Códigos de Falha A-3

Códigos de Falha de Advertência

Use a seguinte tabela para determinar a causa e a ação corretiva para uma falha de advertência. O tipo e o código correspondem ao tipo e ao código mostrados nestes locais:

• Caixa de diálogo Controller Properties (Propriedades do Controlador), guia Minor Faults (Falhas de Advertência)

• Objeto PROGRAM, atributo MINORFAULTRECORD

Table A.2 Códigos e Tipos de Falhas de Advertência

Digite: Código: Causa: Método de Recuperação:

4 4 Um overflow aritmético ocorreu em uma instrução. Para arrumar o programa, examine as operações aritméticas (ordem) ou ajuste os valores.

4 7 O tag destino GSV/SSV era muito pequeno para conter todos os dados.

Arrume o destino, de modo que tenha espaço suficiente.

4 35 Tempo delta PID ≤ 0. Ajuste o tempo delta PID, de modo que seja > 0.

4 36 Setpoint de PID fora da faixa. Ajuste o setpoint, de forma que fique dentro da faixa.

4 51 O valor LEN do tag string é superior ao tamanho de DATA do tag string.

1. Verifique se nenhuma instrução está escrevendo no membro LEN do tag string.

2. No valor LEN, insira o número de caracteres que o string contém.

4 52 O string de saída é maior que o do destino. Crie um novo tipo de dado de string com tamanho suficiente para o string de saída. Use o novo tipo de dados de string como o tipo de dados para o destino.

4 53 O número de saída ultrapassa os limites do tipo de dados de destino.

Ou:• Reduza o tamanho do valor ASCII.• Use um tipo de dados maior para o destino.

4 56 O valor Inicial ou de Quantidade é inválido. 1. Verifique se o valor Inicial está entre 1 e o tamanho DATA da Fonte.

2. Verifique se o valor Inicial mais o valor de Quantidade são menores ou equivalentes ao tamanho DATA da Fonte.

4 57 A instrução AHL falhou ao ser executada porque a porta serial está configurada para "no handshaking".

Ou:• Mude o ajuste da Linha de Controle da porta

serial.• Apague a instrução AHL.

6 2 Sobreposição de tarefas periódicasA tarefa periódica não se completou antes da nova execução.

Simplifique o(s) programa(s), ou aumente o período, ou aumente a prioridade relativa etc.

7 49 Projeto carregado a partir da memória não volátil.

9 0 Erro desconhecido na manutenção da porta serial. Contate o pessoal de GTS.

9 1 A linha CTS não está correta para a configuração atual. Desconecte e reconecte o cabo da porta serial do controlador.Certifique-se de que o cabo está conectado corretamente.

9 2 Erro da lista de polling.Um problema foi detectado com a lista de polling do DF1 mestre, como por exemplo, especificar mais estações do que o tamanho do arquivo, especificar mais de 255 estações, tentar indexar após o fim da lista ou fazer o polling do endereço de broadcast (STN #255).

Verifique os seguintes erros na lista de polling:• o número total de estações é maior do que o

espaço no tag da lista de polling• o número total de estações é maior do que 255• o indicador da estação atual é maior do que o

final do tag da lista de polling• foram encontradas mais do que 254 estações

Publicação 1756-PM001C-PT-P - Junho 2001

Page 156: 103449316-Logix5000-apostila1

A-4 Códigos de Falha

9 5 Interrupção (timeout) do polling do DF1 escravo.O watchdog do polling foi interrompido por um escravo. O mestre não fez o polling neste controlador no tempo especificado.

Determine e corrija o atraso para o polling.

9 9 O contato com o modem foi perdido.As linhas de controle DCD e/ou DSR não estão sendo recebidas na seqüência e/ou estado corretos.

Corrija a conexão do modem com o controlador.

10 10 Bateria não detectada ou precisa ser substituída. Instale uma bateria nova.

Table A.2 Códigos e Tipos de Falhas de Advertência (Continuação)

Digite: Código: Causa: Método de Recuperação:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 157: 103449316-Logix5000-apostila1

Apêndice B

Conformidade IEC61131-3

Use este Apêndice

Introdução A International Electrotechnical Commission (IEC) tem desenvolvido uma série de especificações para os controladores programáveis. Estas especificações são projetadas para promover a unificação internacional de equipamentos e linguagem de programação para usar na indústria de controles. Estes padrões fornecem os fundamentos dos controladores Logix5000 e do software de programação RSLogix 5000.

A especificação do controlador programável IEC está dividida em cinco partes separadas, cada uma focaliza um diferente aspecto do sistema de controle:

• Parte 1: Informações Gerais

• Parte 2: Teste de Equipamentos e Requerimentos

• Parte 3: Linguagens de Programação

• Parte 4: Orientações do Usuário

• Parte 5: Mensagem da Especificação do Serviço

A indústria de controle como um todo tem se concentrado na parte 3 (IEC61131-3), Linguagens de Programação, porque ela fornece o alicerce para a implementação de outros padrões e fornece o benefício mais significante ao usuário final através da redução do custo de treinamento. Devido a esse motivo, somente IEC61131-3 será abordada.

para informações sobre: Consulte a página:

Sistema Operacional B-2

Definições dos Dados B-2

Linguagens de Programação B-3

Conjunto de Instruções B-4

Portabilidade do Programa IEC61131-3 B-4

Tabelas de Conformidade com IEC B-5

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 158: 103449316-Logix5000-apostila1

B-2 Conformidade IEC61131-3

A especificação da linguagem de programação IEC61131-3 aborda inúmeros aspectos de controladores programáveis incluindo a execução de operação do sistema, definições dos dados e conjunto de instruções. Os componentes da especificação IEC61131-3 estão categorizados conforme requisitado pela especificação, opcional ou extensões. Portanto, a especificação IEC61131-3 fornece um conjunto mínimo de funcionalidade que pode ser estendida para atender às necessiades da aplicação do usuário final. O lado negativo desta abordagem é que cada fornecedor de sistema de controlador programável pode implementar componentes diferentes da especificação ou fornecer extensões diferentes.

Sistema Operacional O sistema operacional multitarefa e preemptivo dos controladores Logix5000 atendem a definição IEC61131-3. Em IEC61131-3, o sistema operacional dos controladores programáveis podem conter zero ou mais tarefas que podem ser executadas por um ou mais programas, cada um contendo uma ou mais funções ou rotinas. De acordo com IEC61131-3, o número de cada um destes componentes depende da implementação. Os controladores Logix5000 fornecem múltiplas tarefas, cada uma contendo programas múltiplos e um número ilimitado de funções e rotinas.

A IEC61131-3 fornece uma opção para criar diferentes classificações de execução de tarefas. As tarefas podem ser configuradas como contínuas, periódicas ou baseadas em eventos. Uma tarefa contínua não precisa ser programada, já que utilizará qualquer tempo de processamento não utilizado no sistema quando outras tarefas estiverem inativas. As tarefas periódicas são programadas para operar baseadas em um período de tempo recorrente. A especificação IEC61131-3 não determina um tempo base para a configuração da tarefa periódica. Uma tarefa baseada em eventos IEC61131-3 é disparada ao detectar a borda crescente de uma entrada configurada. Os controladores Logix5000 fornecem as tarefas contínua e periódica. Além disso, o período para uma tarefa periódica é configurável iniciando em 1 milissegundo (ms).

Definições dos Dados A especificação IEC61131-3 fornece acesso para memória através da criação de variáveis nomeadas. Os nomes IEC61131-3 para variáveis consistem de, no mínimo, seis caracteres (o software de programação RSLogix5000 permite um mínimo de 1 caracter) iniciando com um sublinhado “_” ou um caracter alfa (A-Z), seguido por um ou mais caracteres consistindo de um sublinhado “_”, caracter alfa (A-Z) ou um número (0-9). Opcionalmente, os caracteres alfa minúsculos (a-z) podem ser suportados, já que não são sensíveis ao contexto (A = a, B = b, C = c …). Os controladores Logix5000 fornecem total conformidade com esta definição, oferecem suporte para a opção de minúscula e estendem o nome em até 40 caracteres.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 159: 103449316-Logix5000-apostila1

Conformidade IEC61131-3 B-3

Variáveis de dados em IEC61131-3 podem ser definidas como acessíveis a todos os programas dentro de um recurso ou controlador ou acesso limitado é fornecido somente para funções ou rotinas dentro de um único programa. Para passar os dados entre recursos múltiplos ou controladores, caminhos de acesso podem ser configurados para definir o local dos dados dentro de um sistema. Os controladores Logix5000 fornecem conformidade através de dados do programa e do controlador e permitem a configuração de caminhos de acesso usando dados produzidos/consumidos.

A interpretação da memória de um variável de acordo com a IEC61131-3 é definida através do uso de um tipo de dado elementar ou um tipo de dado derivado opcional que é criado a partir de um grupo de tipos múltiplos de dados.Os controladores Logix5000 fornecem suporte para o uso dos tipos de dados elementares BOOL (1 bit), SINT (inteiro de 8 bits), INT (inteiro de 16 bits), DINT (inteiro de 32 bits) e REAL (número de ponto flutuação IEEE). Além disso, o tipos de dados derivados opcionais são fornecidos através da criação das estruturas e matrizes definidas pelo usuário.

Linguagens de Programação

A especificação IEC61131-3 define cinco (5) linguagens de programação diferentes e um conjunto de elementos comuns. Todas as linguagens são definidas como opcionais, mas pelo menos uma deve ser suportada para afirmar a conformidade com a especificação. Os componentes da linguagem de programação IEC61131-3 são definidos conforme:

• Elementos de Linguagem Comum

• Elementos Gráficos Comuns

• Elementos de Linguagem de Lista de Instrução (IL)

• Elementos de Linguagem de Texto Estruturado (ST)

• Elementos de Linguagem de Diagrama Ladder (LD)

• Elementos de Linguagem de Tabela de Função Seqüencial (SFC)

• Elementos de Linguagem de Diagrama de Bloco de Função (FBD)

Os controladores Logix5000 e RSLogix5000 fornecem suporte aos elementos de linguagem comum e às opções de Diagrama Ladder e Function Block Diagram. Além disso, o ambiente utiliza um formato importação/exportação ASCII baseado na linguagem de Texto Estruturado (Structured Text). O conjunto de instrução e arquivo de programa troca recursos que são discutidos em detalhes nas seções que seguem.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 160: 103449316-Logix5000-apostila1

B-4 Conformidade IEC61131-3

Conjunto de Instruções O conjunto de instruções especificado pela IEC61131-3 é completamente opcional. A especificação lista como um conjunto limitado de instruções que se implementado, deve estar em conformidade com a execução determinada e a representação visual. A IEC61131-3, entretanto, não limita o conjunto de instruções para aquelas listadas dentro da especificação. Cada fornecedor de CLP é livre para implementar a funcionalidade adicional na forma de instruções acima ou no mesmo número daquelas listadas pela especificação. Exemplos de instruções estendidas são aquelas necessárias para executar o diagnóstico, controle de malha PID e arquivo de manipulação de dados. Como as instruções estendidas não estão definidas pela especificação IEC61131-3, não há garantia de que a implementação entre diferentes fornecedores de CLP será compatível. Deste modo, a utilização destas instruções pode evitar a troca de lógica entre os fornecedores.

Os controladores Logix5000 e RSLogix5000 fornecem um pacote de instruções que executam conforme definido pela especificação IEC61131-3. A representação física destas instruções mantém sua aparência e funcionalidade com os sistemas existentes, de forma a reduzir o custo de treinamento associado ao trabalho com o ambiente. Além das instruções em conformidade com a IEC61131-3, uma faixa completa de instruções dos produtos existentes foi trazida para o ambiente para que não haja nenhuma perda de funcionalidade.

Portabilidade do Programa IEC61131-3

Uma das metas de criação de programas pelos usuários finais em um ambiente de conformidade com a IEC61131-3 é o movimento ou portabilidade de programas entre controladores desenvolvidos por diferentes fornecedores. Esta área é um ponto fraco da IEC61131-3 porque nenhum formato de troca de arquivo é definido pela especificação. Isto significa que qualquer programa criado em um ambiente do fornecedor requisitará a manipulação para mudá-lo para outro sistema de fornecedor.

Para minimizar o esforço envolvido na execução da portabilidade multifornecedor, o software de programação RSLogix 5000 para os controladores incluem um utilitário completo de exportação e importação de ASCII. Além disso, o formato do arquivo que é utilizado por esta ferramenta é baseado em uma definição da linguagem de Texto Estruturado da IEC61131-3 híbrido. O sistema operacional do controlador e as definições dos dados seguem os formatos IEC61131-3 adequados. As extensões são implementadas para converter a lógica de diagrama Ladder em texto ASCII desde que este não esteja definido pelo IEC61131-3.

Para maiores informações o utilitário de importação e exportação de ASCII do software de programação RSLogix 5000, consulte Manual de Referência de Importação/Exportação do Controlador Logix5000 , publicação 1756-RM084-PT.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 161: 103449316-Logix5000-apostila1

Conformidade IEC61131-3 B-5

Tabelas de Conformidade com IEC

Os controladores Logix5000 e RSLogix5000 atendem os requerimentos de IEC61131-3 para os seguintes recursos da linguagem:

Código da tabela:(1)

Código do recurso:

Descrição do recurso: Extensões e notas de implementação:

1 2 Letras minúsculas nenhum

1 3a Número de sinal (nº) Usado a designação imediata de tipos de dados do valor

1 4a Sinal do dólar ($) Usado para descrição e caracter de controle do string

1 6a Delimitadores subscritos ([ ]) Matrizes subscritas

2 1 Identificadores de uso de maiúsculas e números

Nome de tarefas, programa, rotina, estrutura e nomes de tag

2 2 Identificadores de uso de maiúsculas, números e sublinhas embutidas

Nome de tarefas, programa, rotina, estrutura e nomes de tag

2 3 Identificadores de uso de maiúsculas e minúsculas, números e sublinhas embutidas

Nome de tarefas, programa, rotina, estrutura e nomes de tag

4 1 Literal inteiro 12, 0, -12

4 2 Literal real 12.5, -12.5

4 3 Literal real com expoentes -1.34E-12, 1.234E6

4 4 Literal de base 2 2nº0101_0101

4 5 Literal de base 8 8nº377

4 6 Literal de base 16 16nºFFE0

4 7 Booleano zero e um 0, 1

5 1 String vazio Descrições

5 2 String de comprimento um contendo um caracter 'A'

Descrições

5 3 String de um comprimento contendo um espaço Descrições

5 4 String de um comprimento contendo um caracter de aspa única '$'

Descrições

6 2 Sinal de dólar do string '$$' Descrições

6 3 Aspa única do string '$'' Descrições

6 4 Alimentação da linha do string '$L' ou '$l' Descrições

6 5 Linha nova do string '$N' ou '$n' Descrições

6 6 String da alimentação (página) '$P' ou '$p' Descrições

6 7 Retorno de carro do string '$R' ou '$r' Descrições

6 8 Trava do string '$T' ou '$t' Descrições

10 1 Tipo de dados BOOL Definição de variáveis de tag

10 2 Tipo de dados SINT Definição de variáveis de tag

10 3 Tipo de dados INT Definição de variáveis de tag

10 4 Tipo de dados DINT Definição de variáveis de tag

10 10 Tipo de dado REAL Definição de variáveis de tag

10 12 Tempo Definição de variável de tag, estrutura TIMER

Publicação 1756-PM001C-PT-P - Junho 2001

Page 162: 103449316-Logix5000-apostila1

B-6 Conformidade IEC61131-3

10 16 tipo de dado STRING nenhum

11 1 Hierarquia de tipo de dados nenhum

12 1 Derivação direta dos tipos elementares Estruturas de tipos de dados definidos pelo usuário

12 4 Tipos de dados da matriz Definição de variáveis de tag

12 5 Tipos de dados estruturados Estruturas de tipos de dados definidos pelo usuário

13 1 valor inicial BOOL, SINT, INT, DINT de 0 Definição de variáveis de tag

13 4 valor inicial REAL, LREAL de 0,0 Definição de variáveis de tag

13 5 Valor inicial do tempo de T#0s Definição variável de tag, instrução reset (RES)

13 9 String vazio Descrições

14 1 Inicialização de tipos derivados diretos Importação/exportação

14 4 Inicialização de tipos de dados da matriz Importação/exportação

14 5 Inicialização de elementos de tipo estruturado Importação/exportação

14 6 Inicialização de tipos de dados estruturados derivados

Importação/exportação

20 1 Uso de EN e ENO a função apresenta em ladder, mas não identificada. Disponível em FBD.

20 2 Uso sem EN e ENO .Disponível em FBD

20 3 Uso com EN e sem ENO .Disponível em FBD

20 4 Uso sem EN e com ENO .Disponível em FBD

21 1 Funções sobrecarregadas ADD(INT, DINT) ou ADD(DINT, REAL)

Todos os tipos sobrecarregados que são fornecidos estão documentados com cada instrução

22 1 função de conversão _TO_ Instruções RAD, DEG Radianos para/de decimal. Outras não são necessárias por causa da sobrecarga da instrução

22 2 Função de conversão truncada Instrução TRN

22 3 Conversão BCD para INT Instrução FRD

22 4 Conversão INT para BCD Instrução TOD

23 1 Valor Absoluto Instrução ABS

23 2 Raiz quadrada Instrução SQR

23 3 Log natural Instrução LN

23 4 Log de base 10 Instrução LOG

23 6 Seno em radianos Instrução SIN

23 7 Co-seno em radianos Instrução COS

23 8 Tangente em radianos Instrução TAN

23 9 Seno do arco principal Instrução ASN

23 10 Co-seno do arco principal Instrução ACS

23 11 Tangente do arco principal Instrução ATN

24 12 Adição aritmética Instrução ADD

Código da tabela:(1)

Código do recurso:

Descrição do recurso: Extensões e notas de implementação:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 163: 103449316-Logix5000-apostila1

Conformidade IEC61131-3 B-7

24 13 Multiplicação aritmética Instrução MUL

24 14 Subtração aritmética Instrução SUB

24 15 Divisão aritmética Instrução DIV

24 16 Módulo Instrução MOD

24 17 Exponencial instrução de XPY

24 18 Mudança de valor Instrução MOV em ladder

25 1 Bit desvio esquerdo Funcionalidade contida na instrução BSL em Ladder para desvio de 1

25 2 Bit de desvio à direita Funcionalidade contida na instrução BSR em Ladder para desvio de 1

25 3 Bit rotação à esquerda Funcionalidade contida na instrução BSL em Ladder para desvio de 1

25 4 Bit de rotação à direita Funcionalidade contida na instrução BSR em Ladder para desvio de 1

26 5 AND instrução BAND em FBD

26 6 OU BOU instrução em FBD

26 7 XOU BXOR instrução em FBD

26 8 NOT BNÃO instrução em FBD

27 1 Selecione: Instrução SEL em FBD

27 2a Selecione o máximo Funcionalidade contida na instrução ESEL em FBD

27 2b Selecione o mínimo Funcionalidade contida na instrução ESEL em FBD

27 3 Limite alto/baixo Instrução HLL em FBD

27 4 Multiplexador Instrução MUX em FBD

28 5 Comparação maior que Instrução GRT

28 6 Comparação maior que ou igual Instrução GRE

28 7 Comparação igual Instrução EQU

28 8 Comparação menor que Instrução LES

28 9 Comparação menor que ou igual Instrução LEQ

28 10 Comparação diferente Instrução NEQ

29 1 Comprimento do string Contido nos parâmetros do tipo de dado STRING

29 4 String médio Instrução MID em ladder

29 5 Concatenação do string Instrução CONCAT em ladder

29 6 -Inserção do string Instrução INSERT em ladder

29 7 Delete string Instrução DELETE em ladder

29 9 Encontro do string Instrução FIND em ladder

32 1 Leitura de entrada Editor FBD

Código da tabela:(1)

Código do recurso:

Descrição do recurso: Extensões e notas de implementação:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 164: 103449316-Logix5000-apostila1

B-8 Conformidade IEC61131-3

32 2 Escrita de entrada Editor FBD

32 3 Leitura de saída Editor FBD

32 4 Escrita de saída Editor FBD

34 1 Dominante do conjunto bistable Instrução SETD em FBD

34 2 Dominante de reset bistable Instrução RESD em FBD

35 1 Borda crescente do detector Instrução OSR em ladder e instrução OSRI em FBD

35 2 Borda decrescente de detector Instrução OSF em ladder e instrução OSFI em FBD

36 1b Contador crescente Funcionalidade contida nas instruções CTU e RES em ladder e na instrução CTUD em FBD

37 2a Timer de de atraso na energização Funcionalidade contida na instrução TON em ladder e na instrução TONR em FBD

37 3a Temporizador de atraso na desenergização Funcionalidade contida na instrução TOF em ladder e na instrução TOFR em FBD

38 2 Temporização de atraso na energização Funcionalidade contida na instrução TON em ladder e na instrução TONR em FBD

38 3 Temporização de atraso na desenergização Funcionalidade contida na instrução TOF em ladder e na instrução TOFR em FBD

57 1, 2 Linha horizontal Editor ladder, editor FBD

57 3, 4 Linha vertical Editor ladder, editor FBD

57 5, 6 Conexão horizontal / vertical Editor ladder, editor FBD

57 9, 10 Cantos de conexão e desconexão Editor ladder, editor FBD

57 11, 12 Blocos com conexões Editor ladder, editor FBD

57 7,8 Cruzamento de linhas sem conexão Editor FBD

57 13,14 Conectores Editor FBD

58 2 Salto incondicional Instrução JMP em ladder

58 3 Alvo jump Instrução LBL em ladder

58 4 Salto condicional InstruçãoJMP em ladder

58 5 Retorno condicional Instrução RET em ladder

58 8 Retorno incondicional Instrução RET em ladder

59 1 trilho de alimentação esquerdo Editor ladder

59 2 trilho de alimentação direito Editor ladder

60 1 Link horizontal Editor ladder

60 2 Link vertical Editor ladder

61 1, 2 Contato normalmente aberto --| |-- Instrução XIC em ladder

61 3, 4 Contato normalmente fechado --| |-- Instrução XIO em ladder

61 5, 6 Contato de detecção de transição positiva -| P |- Instrução ONS em ladder

Código da tabela:(1)

Código do recurso:

Descrição do recurso: Extensões e notas de implementação:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 165: 103449316-Logix5000-apostila1

Conformidade IEC61131-3 B-9

62 1 Bobina --( )-- Instrução OTE em ladder

62 3 Ajuste da (trava) bobina Funcionalidade contida na instrução OTL em ladder

62 4 Reset da (destrava) bobina Funcionalidade contida na instrução OTU em ladder

62 8 Bobina de detecção de transição positiva -| P |- Instrução OSR em ladder

62 9 Bobina de detecção de transição negativa -| P |- Instrução OSF em ladder

(1)A tabela associada a linguagens diferentes do diagrama de ladder e do diagrama de bloco de função foram pulados.

Código da tabela:(1)

Código do recurso:

Descrição do recurso: Extensões e notas de implementação:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 166: 103449316-Logix5000-apostila1

B-10 Conformidade IEC61131-3

Notas:

Publicação 1756-PM001C-PT-P - Junho 2001

Page 167: 103449316-Logix5000-apostila1

Glossário

A alias tag

Um tag que se refere a outro tag. Um tag com alias/símbolo pode se referir a outro tag com alias/símbolo ou a um tag base. Um tag com alias/símbolo também pode se referir a um componente de outro tag, referindo-se a um membro de uma estrutura, um elemento de uma matriz ou um bit dentro de um tag ou membro. Consulte tag base..

aplicação

A combinação de rotinas, programas, tarefas e configuração de E/S, usada para definir a operação de um único controlador. Consulte projeto.

armazene

Para copiar um projeto para a memória não volátil do controlador. isto sobrescreve qualquer projeto que esteja atualmente na memória não volátil. Consulte carga memória não volátil

arquivo de projeto

Arquivo na sua estação de trabalho (ou servidor) que armazena a lógica, a configuração, dados e documentação para o controlador.

• O arquivo de projeto tem uma extensão ACD.

• Quando você cria um arquivo de projeto, o nome do arquivo é o nome do controlador.

• O nome do controlador é independente do nome do arquivo de projeto. Se você salvar um arquivo de projeto atual com outro nome, o nome do controlador não é mudado.

• Se o nome do controlador for diferente do nome do arquivo de projeto, a pequena barra do software RSLogix 5000 mostra ambos os nomes.

Consulte aplicação.

ASCII

Um código de 7 bits (com um bit de paridade opcional) que é usado para representar caracteres alfanuméricos, pontuação e caracteres de controle de códigos. Para uma lista de códigos ASCII, consulte a terceira capa deste manual.

1 Publicação 1756-PM001C-PT-P - Junho 2001

Page 168: 103449316-Logix5000-apostila1

Glossário 2

assíncrono

Ações que ocorrem independentes umas das outras e não têm um padrão regular. Nos controladores Logix5000, os valores de E/S são atualizados de forma assíncrona à execução da lógica.:

• Programas dentro de uma tarefa acessam dados de entrada e saída diretamente da memória de uso do controlador.

• A lógica dentro de qualquer tarefa pode modificar os dados utilizados pelo controlador.

• Os dados e os valores de E/S são assíncronos e podem mudar durante o curso de execução de uma tarefa.

• Um valor de entrada indicado no começo da execução de uma tarefa pode ser diferente quando indicado posteriormente.

B binário

Valores inteiros mostrados e inseridos em base 2 (cada dígito representa um único bit). Pré-fixado com no. 2. Adaptado ao comprimento do booleano ou inteiro (1, 8, 16 ou 32 bits). Quando mostrado, todos os grupos de 4 dígitos são separados por uma sublinha, para legibilidade. Consulte decimal, hexadecimal, octal.

bit

Dígito binário. A menor unidade de memória. Representado pelos dígitos 0 (desenergizado) e 1 (energizado).

BOOL

Um tipo de dados que armazena o estado de um único bit, onde:

• 0 é igual a desenergizado

• 1 é igual a energizado

byte

Uma unidade de memória constituída de 8 bits.

ATENÇÃO

!Certifique-se de que a memória de dados contém os valores apropriados durante toda a execução da tarefa. Você pode duplicar ou colocar no buffer dados no começo da varredura para fornecer valores de referência para sua lógica.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 169: 103449316-Logix5000-apostila1

Glossário 3

C caminho

A descrição dos dispositivos e redes entre um dispositivo e outro. Uma conexão de um dispositivo com outro segue o caminho especificado. Consulte conexão.

carga

Para copiar um projeto da memória não volátil para a memória do usuário (RAM) do controlador. Isto sobrescreve qualquer projeto que está atualmente no controlador. Consulte memória não volátil, armazene

carregamento

O processo de transferir os conteúdos de um controlador para um arquivo de projeto na estação de trabalho.

Se você não tem o arquivo de projeto para um controlador, você pode carregar a partir do controlador e criar um arquivo de projeto. Entretanto, nem tudo que está armazenado em um arquivo de projeto está disponível a partir do controlador. Se você carregar a partir de um controlador, o novo arquivo de projeto não conterá:

• comentários da linha

• descrições para tags, tarefas, programas, rotinas, módulos ou estruturas definidas pelo usuário.

• cadeias de aliases (aliases apontando para outros aliases)

Cadeias com o mesmo alias não são completamente reconstruídas a partir do controlador. Se houver vários nomes possíveis para um item de dados, o firmware e o software escolhem o alias que melhor se encaixa, o que pode não refletir como o alias foi especificado no projeto original.

Consulte descarregamento.

CIP

Consulte Controle e Protocolo de Informações.

CIP (Protocolo de Informações e de Controle).

Protocolo de envio de mensagens usado pela linha Logix5000 da série Allen-Bradley de equipamentos de controle. Protocolo de comunicação nativa usado na rede ControlNet.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 170: 103449316-Logix5000-apostila1

Glossário 4

conexão

O mecanismo de comunicação do controlador para outro módulo no sistema de controle. O número de conexões que um único controlador pode ter é limitado. Comunicações com módulos de E/S, tags consumidos, tags produzidos e instruções MSG usam conexões para transferir dados.

conexão bidirecional

Uma conexão na qual os dados fluem em ambas as direções: do originador para o receptor e do receptor para o originador. Consulte conexão, conexão unidirecional.

conexão cache

Com a instrução MSG, uma conexão chache instrui o controlador a manter a conexão mesmo depois que a instrução MSG for concluída. Isto é útil se você executa repetidamente a instrução MSG, pois a inicialização conexão, aumenta o tempo de varredura. Consulteconexão, conexão não por cache.

conexão listen-only (recepção de dados)

Uma conexão de E/S onde outro controlador armazena/fornece os dados de configuração para o módulo de E/S. Um controlador usando uma conexão para recepção de dados (listen only) não grava os dados de configuração e pode apenas manter a conexão com o módulo de E/S quando o controlador que armazena a configuração do módulo estiver controlando o módulo de E/S ativamente. Consulte controlador que armazena a configuração do sistema..

conexão sem cache

Com a instrução MSG, uma conexão sem cache instrui o controlador a fechar a conexão na conclusão da instrução MSG. A remoção da conexão, deixa-a disponível para outros controladores. Consulte conexão, conexão cache.

conexão unidirecional

Uma conexão na qual os dados fluem em apenas uma direção: do originador para o receptor. Consulte conexão, conexão bidirecional.

controlador que armazena a configuração do sistema

O controlador que cria a configuração primária e a conexão de comunicação com um módulo. O controlador que armazena a configuração do sistema grava os dados de configuração e pode estabelecer uma conexão com o módulo. Consulte conexão listen-only (recepção de dados).

Publicação 1756-PM001C-PT-P - Junho 2001

Page 171: 103449316-Logix5000-apostila1

Glossário 5

controladores múltiplos que armazenam a configuração do sistema

Uma configuração onde mais de um controlador tem exatamente as mesmas informações de configuração para armazenar, simultaneamente, o mesmo módulo de entrada.

correspondência exata

Um modo de proteção de revisão eletrônica que requisita que todos os atributos (fornecedor, código de catálogo, revisão principal) do módulo físico e do módulo configurado no software correspondam, para estabelecer uma conexão com o módulo.

COUNTER

Tipo de dados de estrutura que contém as informações de status e controle para instruções de contador.

D decimal

Valores inteiros mostrados e inseridos com base 10. Sem prefixo. Não adaptados ao comprimento do inteiro. Consulte binário, hexadecimal, octal.

desabilitação da revisão

Um modo de proteção de revisão eletrônica que não requisita que nenhum atributo do módulo físico e do módulo configurado no software correspondam e ainda estabelece uma conexão com o módulo. Consulte módulo compatível, correspondência exata.

descrição

Texto opcional que você pode usar para documentar sua aplicação.

• Você pode usar qualquer caracter que possa ser impresso, incluindo backspace, tabulações e espaço.

• As descrições não são descarregadas no controlador. Elas permanecem no arquivo de projeto offline.

• As descrições têm estes limites de comprimento:

– Para tags, podem ser usados até 120 caracteres.

– Para outros objetos (tarefas, programas, módulos, etc.) podem ser usados até 128 caracteres.

dimensão

Especificação do tamanho de uma matriz. As matrizes podem ter até três dimensões. Consulte matriz.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 172: 103449316-Logix5000-apostila1

Glossário 6

DINT

Um tipo de dados que armazena um valor inteiro de 32 bits com sinal (4 bytes) (-2.147.483.648 a +2.147.483.647). Em controladores Logix5000, use DINTs para inteiros:

• Os controladores Logix5000 são executados mais eficientemente e usam menos memória quando trabalham com inteiros de 32 bits (DINTs), ao invés de inteiros de 16 bits (INTs) ou inteiros de 8 bits (SINTs).

• Tipicamente, as instruções convertem valores SINT ou INT para um tipo de dados otimizados (geralmente um valor DINT ou REAL) durante a operação. Como isto requer tempo e memória adicionais, minimize o uso de tipo de dados SINT e INT.

direta

Uma conexão de E/S onde o controlador estabelece conexões individuais com um módulo de E/S. Consulte gaveta otimizada.

download

O processo de transferir os conteúdos de um projeto na estação de trabalho para o controlador. Consulte carregamento.

E elemento

Uma unidade endereçável de dados que é uma subunidade de uma unidade de dados maior. Uma unidade única de uma matriz.

• Você especifica um elemento em uma matriz através de seu(s) subscrito(s):

Consulte matriz.

escopo

Define onde você pode acessar uma série específica de tags. Quando você cria um tag, você o atribui tanto como um tag de uso geral do controlador como um tag de programa para um programa específico, conforme demonstração abaixo.

Para esta matriz: Especifique:

dimensão um array-name[subscript_0]

dimensão dois array-name[subscript_0, subscript_1]

dimensão três array-name[subscript_0, subscript_1, subscript_2]

Publicação 1756-PM001C-PT-P - Junho 2001

Page 173: 103449316-Logix5000-apostila1

Glossário 7

Você pode ter tags múltiplos que contenham o mesmo nome:

• Cada tag pode ser de uso geral do controlador ou do programa. Por exemplo, um dos tags pode ser um tag de uso geral do controlador e os outros tags podem ser tags de programa para programas diferentes. Ou, cada tag pode ser um tag de programa para um programa diferente.

• Dentro de um programa, você não pode se referir a um tag do controlador se um tag com o mesmo nome existir como um tag de programa para aquele programa.

Consulte escopo do controlador, escopo do programa.

escopo do controlador

Dados acessíveis em qualquer lugar no controlador. O controlador contém um grupo de tags que pode ser referido pelas rotinas e tags aliases em qualquer programa, assim como por outros tags aliases de uso geral do controlador. Consulte escopo do programa.

escopo do programa

Dados acessíveis apenas dentro do programa atual. Cada programa contém um grupo de tags que pode ser referido apenas pelas rotinas e tags aliases naquele programa. Consulte escopo do controlador.

estilo

O formato no qual os valores numéricos são mostrados. Consulte ASCII, binário, decimal, exponencial, flutuante, hexadecimal, octal.

42195

tags que todas as rotinas e dispositivos externos (ex: outros controladores) podem acessar

tags que apenas rotinas no MainProgram podem acessar

Publicação 1756-PM001C-PT-P - Junho 2001

Page 174: 103449316-Logix5000-apostila1

Glossário 8

estrutura

Alguns tipos de dados são uma estrutura.

• Uma estrutura armazena um grupo de dados, cada qual podendo ser um tipo de dados diferente.

• Em uma estrutura, cada tipo de dados individual é chamado de membro

• Como tags, os membros têm um nome e um tipo de dados.

• Você cria suas próprias estruturas, chamadas de, usando qualquer combinação de tags individuais e a maioria das outras estruturas tipo de dados definido pelo usuário.

• Para copiar dados para uma estrutura, use a instrução COP. Consulte Manual de Referência do Conjunto das Instruções Gerais do Logix5000, publicação 1756-RM003-PT.

Os tipo de dados COUNTER (Contador) e TIMER (Temporizador) são exemplos das estruturas mais comumente usadas.

Consulte membro, tipo de dados definido pelo usuário.

estrutura definida pelo produto

Um tipo de dados de estrutura que é automaticamente definido pelo software e pelo controlador. Configurando um módulo de E/S, você adiciona a estrutura definida pelo produto para aquele módulo.

42365

Para expandir uma estrutura e mostrar seus membros, clique no sinal de +.

Para fechar a estrutura e esconder seus membros, clique no sinal – .

Estrutura COUNTER (Contador)

Estrutura TIMER (Temporizador)

tipo de dados dos membros

membros de running_seconds

Publicação 1756-PM001C-PT-P - Junho 2001

Page 175: 103449316-Logix5000-apostila1

Glossário 9

estrutura pré-definida

Um tipo de dados de estrutura que armazena as informações relacionadas para uma instrução específica, como uma estrutura TIMER para instruções do temporizador. Estruturas pré-definidas estão sempre disponíveis, não importando a configuração do hardware do sistema. Consulte estrutura definida pelo produto.

exponencial

Valores reais mostrados e inseridos em formato científico ou exponencial. O número é sempre mostrado com um dígito à esquerda do ponto decimal, seguido da porção decimal, e, então, por um exponente. Consulte estilo.

F falha de advertência

Uma condição de falha que não é severa o bastante para que o controlador desligue:

Para remover falhas de advertência:

1. No organizador do controlador, clique com o botão direito do mouse na pasta Controller name_of_controller e selecione Properties.

2. Clique na guia Minor Fault.

3. Use as informações na lista Recent Faults para corrigir a causa da falha. Consulte “Códigos de Falha de Advertência” na página A-3.

4. Clique no botão Clear Minors.

Consulte falha grave.

Se isto ocorrer: O controlador:

problema com uma instrução 1. configura S:MINOR2. registra as informações sobre a falha para o

objeto PROGRAM, atributo MinorFaultRecord3. energiza o bit 4 do objeto FAULTLOG, atributo

MinorFaultBits

Sobreposição de tarefas periódicas

energiza o bit 6 do objeto FAULTLOG, atributo MinorFaultBits

problema com a porta serial energiza o bit 9 do objeto FAULTLOG, atributo MinorFaultBits

bateria fraca energiza o bit 10 do objeto FAULTLOG, atributo MinorFaultBits

Publicação 1756-PM001C-PT-P - Junho 2001

Page 176: 103449316-Logix5000-apostila1

Glossário 10

falha grave

Uma condição de falha que é severa o bastante para que o controlador desligue, a não ser que a condição seja removida. Quando uma falha grave ocorre, o controlador:

1. Energiza um bit de falha grave

2. Executa a lógica de falha fornecida pelo usuário, se houver

3. Se a lógica de falha fornecida pelo usuário não puder remover a falha, o controlador vai para o modo de falha.

4. Energiza as saídas, de acordo com seu estado de saída, durante o modo de programa

5. O LED OK pisca em vermelho

O controlador suporta dois níveis de manipulação de falhas graves:

• rotina de falha de programa:

– Cada programa pode ter sua própria rotina de falha.

– O controlador executa a rotina de falha do programa quando uma falha de instrução ocorre.

– Se a rotina de falha do programa não remover a falha ou uma rotina de falha de programa não existir, o controlador prossegue para executar a rotina de manipulação de falhas (se definido).

• rotina de manipulação de falhas

– Se a rotina de manipulação de falhas não existir ou não puder remover a falha grave, o controlador entra no modo de falha e desliga. Neste ponto, o FAULTLOG é atualizado. (Consulte a próxima página).

– Todas as falhas sem instruções (E/S, watchdog de tarefas, etc.) executam a falha do controlador diretamente do manuseador. (Nenhuma rotina de falha de programa é chamada).

A falha que não foi removida e até duas falhas adicionais que não foram removidas são registradas no histórico de falhas do controlador.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 177: 103449316-Logix5000-apostila1

Glossário 11

Consulte estado de falha, falha de advertência.

executa a rotina de falha

do programa atual

falha removida?

a rotina de manipulação

de falhas

continua a execução da lógica

sim

não

falha removida?sim

não

entre com o modo de falha registre o

FAULTLOGdesligue

existe rotina de falha de programa?

sim

não

falha grave ocorre

falha de instrução?

sim

não

continua a execução da lógica

o controlador registra a falha grave

para o PROGRAM MajorFaultRecord

atual.

o controlador determina a falha grave para a rotina de manipulação de falhas

PROGRAM MajorFaultRecord.

a rotina de manipulação de

falhas existe

sim

não

Publicação 1756-PM001C-PT-P - Junho 2001

Page 178: 103449316-Logix5000-apostila1

Glossário 12

fatia de tempo de atraso do sistema

Especifica a porcentagem do tempo do controlador (excluindo o tempo para tarefas periódicas) que é dedicado à comunicação e à tarefas de segundo plano (atraso do sistema):

• O controlador realiza as funções de atraso do sistema para até 1 ms de cada vez.

• Se o controlador completar as funções de atraso em menos de 1 ms, ele reinicia a tarefa contínua.

• A comunicação e as tarefas de atraso incluem o seguinte:

– comunicação com os dispositivos de programação e IHM (como o software RSLogix 5000)

– réplica para mensagens

– envio de mensagens, incluindo block-transfers

– re-estabelecimento e monitoração das conexões de E/S (como condições de RIUP); isto não inclui a comunicação normal de E/S que ocorre durante a execução do programa

– comunicação em ponte da porta serial do controlador para outros dispositivos ControlLogix, através da placa de fundo do chassi ControlLogix

• Se a comunicação não for concluída de forma rápida o suficiente, aumente a fatia de tempo de atraso do sistema.

A seguinte tabela mostra a relação entre a tarefa contínua e as funções de atraso do sistema:

Na fatia de tempo padrão de 10 %, o atraso do sistema interrompe a tarefa contínua a cada 9 ms (do tempo da tarefa contínua).

A esta fatia de tempo:

A tarefa contínua é executada para:

E, então, o atraso ocorre em até:

10% 9 ms 1 ms

20% 4 ms 1 ms

33% 2 ms 1 ms

50% 1 ms 1 ms

Legenda:

A tarefa é executada.

A tarefa é interrompida (suspensa).

1 ms 1 ms

atraso do sistema

9 ms 9 ms

tarefa contínua

5 10 15 20 25

tempo transcorrido (ms)

Publicação 1756-PM001C-PT-P - Junho 2001

Page 179: 103449316-Logix5000-apostila1

Glossário 13

A interrupção de uma tarefa periódica aumenta o tempo transcorrido (tempo do relógio) entre a execução do atraso de sistema.

Se você aumentar a fatia de tempo para 20 %, o atraso do sistema interrompe a tarefa contínua a cada 4 ms (do tempo da tarefa contínua).

Se você aumentar a fatia de tempo para 50 %, o atraso do sistema interrompe a tarefa contínua a cada 1 ms (do tempo da tarefa contínua).

Se o controlador tiver apenas uma tarefa periódica , a fatia de tempo de atraso do sistema não tem efeito. O atraso de sistema é executado sempre que uma tarefa periódica não está sendo executada.

1 ms 1 ms 1 ms 1 ms

tarefa periódica

1 ms 1 ms

atraso do sistema

9 ms de tempo da tarefa contínua

9 ms de tempo da tarefa contínua

tarefa contínua

5 10 15 20 25

tempo transcorrido (ms)

1 ms 1 ms 1 ms 1 ms 1 ms

atraso do sistema

4 ms 4 ms 4 ms 4 ms 4 ms

tarefa contínua

5 10 15 20 25

tempo transcorrido (ms)

1 ms

atraso do sistema

1 ms

tarefa contínua

5 10 15 20 25

tempo transcorrido (ms)

tarefa periódica

atraso do sistema

5 10 15 20 25

tempo transcorrido (ms)

Publicação 1756-PM001C-PT-P - Junho 2001

Page 180: 103449316-Logix5000-apostila1

Glossário 14

Para mudar a fatia de tempo de atraso do sistema:

1. Abra o projeto do RSLogix 5000.

2. No organizador do controlador, clique com o botão direito do mouse na pasta Controller name_of_controller e selecione Properties.

3. Clique na guia Advanced.

4. Na caixa de texto System Overhead Time Slice, digite ou selecione a porcentagem de tempo de atraso (10 a 90%).

5. Clique em OK.

formato de comunicação

Define como um módulo de E/S se comunica com o controlador. A escolha de um formato de comunicação define:

• quais guias de configuração estão disponíveis através do software de programação

• a estrutura e o método de configuração do tag

flutuante

Valores reais mostrados e inseridos em formato de ponto flutuante. O número de dígitos à esquerda do ponto decimal varia, de acordo com a magnitude do número. Consulte estilo.

G gaveta otimizada

Uma conexão de E/S onde o módulo 1756-CNB coleta as palavras de E/S digital em uma imagem de gaveta (semelhante ao 1771-ASB). Uma conexão de gaveta otimizada conserva as conexões da ControlNet e da largura de banda, entretanto as informações de status e diagnóstico estão disponíveis quando estiver usando este tipo de conexão. Consulte direta.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 181: 103449316-Logix5000-apostila1

Glossário 15

grupo

Um grupo de tipo de dados que armazena os caracteres ASCII.

Cada grupo de tipo de dados contém os seguintes membros:

Novo grupo de tipos de dados são mais usados nas seguintes situações:

• Se você tiver um grande número de gupos com um tamanho fixo que seja menor que 82 caracteres, você pode conservar a memória, ao criar um novo grupo de tipo de dados.

• Caso você deva manusear os grupos que tenham mais que 82 caracteres, você pode criar um novo grupo de tipo de dados para ajustar o número necessário de caracteres.

42811

42812

ouVocê pode usar o padrão tipo de dados STRING. Ele armazena até 82 caracteres.

Você pode criar um novo grupo de tipo de dados para armazenar o número de caracteres que você definir.

Nome: Tipo de Dados:

Descrição: Notas:

LEN DINT número de caracteres no grupo

O LEN automaticamenta se atualiza para a nova contagem de caracteres sempre que você:

• usar uma caixa de diálogo String Browser para a inserção de caracteres• usar as instruções que lêem, convertem ou manipulam um grupo

O LEN apresenta o comprimento do grupo atual. O integrante DATA pode conter caracteres velhos adicionais, que não estejam incluidos na contagem do LEN.

DADOS matriz SINT caracteres ASCII do grupo

• Para acessar os caracteres do grupo, encaminhe o nome do tag.Por exemplo, para acessar os caracteres do tag string_1, digite string_1.

• Cada elemento da matriz DATA contém um caracter.

• Você pode criar um grupo de tipos de dados que armazenam menos ou mais caracteres.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 182: 103449316-Logix5000-apostila1

Glossário 16

O exemplo a seguir mostra o tipo de dados STRING e um novo grupo de tipo de dados.

H hexadecimal

Valores inteiros mostrados e inseridos em base 16 (cada dígito representa quatro bits). Pré-fixado com no. 16. Adaptado ao comprimento do booleano ou inteiro (1, 8, 16 ou 32 bits). Quando mostrado, todos os grupos de 4 dígitos são separados por uma sublinha, para legibilidade. Consulte binário, decimal, octal.

I índice

Uma referência usada para especificar um elemento dentro de uma matriz.

IMPORTANTE Tenha cuidado ao criar um novo grupo de tipo de dados. Se você mais tarde decidir mudar o tamanho do grupo de tipo de dados, você pode perder os dados nos tags que atualmente usam este tipo de dados.

Se você: Então:

faça um grupo de tipo de dados menor

• Os dados são truncados.• O LEN não é alterado.

faça um grupo de tipo de dados maior

Os dados e o LEN são zerados.

42234

Este tag é uma mariz de 20 elementos do padrão de tipo de dados STRING.

Este tag usa o padrão tipo de dados STRING.

este tag usa um novo grupo de tipo de dados.• O mais usado é o chamado grupo de tipo de

dados STRING_24.• O novo grupo de tipo de dados armazena

somente 24 caracteres.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 183: 103449316-Logix5000-apostila1

Glossário 17

instrução

O controlador avalia as instruções ladder, com base na condição da linha que antecede a instrução (entrada da condição da linha).

Apenas instruções de entrada afetam a entrada da condição de linha das instruções subseqüentes na linha:

• Se a entrada da condição de linha de uma instrução de entrada for verdadeira, o controlador avalia a instrução e energiza a saída da condição de linha para corresponder aos resultados da avaliação.

– S e a instrução avaliar para verdadeiro, a saída da condição de linha é verdadeira.

– Se a instrução avaliar para falso, a saída da condição de linha é falsa.

• Uma instrução de saída não muda a saída da condição de linha

– Se a entrada da condição de linha para uma instrução de saída for verdadeira, a saída da condição de linha é energizada para verdadeira.

– Se a entrada da condição de linha para uma instrução de saída for falsa, a saída da condição de linha é energizada para falsa.

Nos controladores Logix5000, múltiplas instruções de saída podem ser inseridas por linha de lógica. Você pode inserir as instruções de saída:

• na seqüência da linha (serial)

• entre as instruções de entrada, desde que a última instrução da linha seja uma instrução de saída

instrução de entrada

entrada da condição de linha -

instrução de saída

saída da condição de linha

Publicação 1756-PM001C-PT-P - Junho 2001

Page 184: 103449316-Logix5000-apostila1

Glossário 18

O exemplo seguinte usa mais de uma saída em uma linha.

INT

Um tipo de dados que armazena um valor inteiro de 16 bits (2 bytes) (-32.768 a +32.767). Minimize o uso deste tipo de dados:

• Tipicamente, as instruções convertem valores SINT ou INT para um tipo de dados otimizados (geralmente um valor DINT ou REAL) durante a operação. Como isto requer tempo e memória adicionais, minimize o uso de tipo de dados SINT e INT.

intervalo requisitado para atualização (RPI)

Quando estiver comunicando em uma rede, esta é a maior quantidade de tempo entre a produção subseqüente de dados de entrada.

• Tipicamente, este intervalo é configurado em microssegundos.

• A produção real de dados é restringida ao maior múltiplo do tempo de atualização da rede, que é menor do que o RPI selecionado.

• Use uma alimentação de duas vezes o tempo de atualização da rede ControlNet (NUT).

Por exemplo, se o NUT for de 5 ms, digite uma taxa de 5, 10, 20, 40 ms, etc.

Consulte reduza o seu tempo de atualização da rede (NUT).

EXEMPLO Coloque múltiplas saídas em uma linha

Quando running_seconds.DN for energizado, running_hours conta de um em um e running_seconds reseta.

Quando machine_on for energizado, drill_1_on energiza. Quando machine_on e drill[1].part_advance estão energizados, conveyor_on é energizado.

42362

running_seconds.DNCUDN

Count UpCounter running_hoursPreset 500Accum 0

CTURES

running_seconds

machine_on drill_1_on drill[1].part_advance conveyor_on

Publicação 1756-PM001C-PT-P - Junho 2001

Page 185: 103449316-Logix5000-apostila1

Glossário 19

M matriz

Uma matriz permite que você agrupe dados (do mesmo tipo de dados), sob um nome comum.

• Uma matriz é semelhante a um arquivo.

• Um subscrito identifica cada elemento individual na matriz.

• Um subscrito começa em 0 e se estende ao número de elementos menos 1 (baseado em zero).

• Um tag de matriz ocupa um bloco contíguo de memória no controlador, cada elemento em seqüência.

• Uma matriz e instruções de seqüenciador podem ser usados para manipular ou indexar os elementos de uma matriz

• Uma matriz pode ter até três dimensões. Isto lhe fornece a flexibilidade de identificar um elemento usando um, dois ou três subscritos (coordenação).

42367

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

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

Esta matriz contém seis elementos do tipo de dados DINT.

seis elementos DINTselementos de timer_presets

Publicação 1756-PM001C-PT-P - Junho 2001

Page 186: 103449316-Logix5000-apostila1

Glossário 20

• Em uma matriz com duas ou três dimensões, a dimensão mais à direita é incrementada primeiro na memória.

42367

A dimensão mais à direita incrementa em seu valor máximo e recomeça.

Essa matriz contém uma grade de elementos de duas dimensões, de seis em seis elementos.

Quando a dimensão mais à direita recomeça, a dimensão à esquerda incrementa em um.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 187: 103449316-Logix5000-apostila1

Glossário 21

• O número total de elementos em uma matriz é o produto de cada tamanho de dimensão, como descrito nos seguintes exemplos:

• Você pode modificar as dimensões da matriz quando estiver programando offline, sem perda dos dados de tags. Você não pode modificar as dimensões da matriz quando estiver programando online.

Esta matriz: Armazena dados como: Por exemplo:

dimensão um Nome do tag

one_d_array

Tipo

DINT[7]

Dimensão 0

7

Dimensão 1

--

Dimensão 2

--

número total de elementos = 7

faixa de subscrito válida DINT[x], onde x = 0–6

dimensão dois Nome do tag

two_d_array

Tipo

DINT[4,5]

Dimensão 0

4

Dimensão 1

5

Dimensão 2

--

número total de elementos = 4∗ 5 = 20

faixa de subscrito válida DINT[x,y], onde x = 0–3; y = 0–4

dimensão três Nome do tag

three_d_array

Tipo

DINT[2,3,4]

Dimensão 0

2

Dimensão 1

3

Dimensão 2

4

número total de elementos = 2 ∗ 3 ∗ 4 = 24

faixa de subcrito válida DINT[x,y;z], onde x = 0–1; y = 0–2, z = 0–3

Publicação 1756-PM001C-PT-P - Junho 2001

Page 188: 103449316-Logix5000-apostila1

Glossário 22

membro

Um elemento de uma estrutura que tem seu próprio tipo de dado e nome.

• Os membros também podem ser estruturas, criando tipos de dados de estrutura encadeados.

• Cada membro em uma estrutura pode ser um tipo de dados diferente.

• Para fazer referência a um membro em uma estrutura, use este formato:

nome_do_tag.nome_do_membro

Por exemplo:

• Se a estrutura estiver embutida em outra estrutura, use o nome do tag da estrutura no nível mais alto, seguido de um nome de tag de uma subestrutura e do nome do membro:

nome_do_tag.nome_da_subestrutura.nome_do_membro

Por exemplo:

Este endereço: Faz referência a:

timer_1.pre Valor PRE da estrutura timer_1.

input_load como tipo de dados load_info

input_load.height

membro height da estrutura definida pelo usuárioinput_load

Este endereço: Faz referência a:

input_location como local do tipo de dados

input_location.load_info.membro height

membro height da estrutura load_info, na estrutura input_location.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 189: 103449316-Logix5000-apostila1

Glossário 23

• Se a estrutura definir uma matriz, use o tag da matriz, seguido da posição na matriz e quaisquer nomes de subestrututras e membros.

array_tag[position].member

ou

array_tag[position].substructure_name.member_name

Por exemplo:

Consulte estrutura.

memória

Meio de armazenamento eletrônico construído dentro de um controlador, usado para armazenar programas e dados.

memória não volátil

Memória do controlador que permanece com seus conteúdos enquanto o controlador estiver sem alimentação ou uma bateria. Consulte carga, armazene

mestre (CST)

Dentro de um único chassi, um e apenas um, o controlador deve ser designado como o mestre de Tempo do Sistema Coordenado (CST). Todos os outros módulos no chassi sincronizam seus valores de CST com o mestre CST.

modo de falha

O controlador gerou uma falha grave, não pôde remover a falha e desligou.

Consulte falha grave.

Este endereço: Faz referência a:

conveyor[10].source integrante fonte do 11º elemento na matriz conveyor (os elementos da matriz são baseados em zero).

conveyor[10].info.height integrante de altura da estrutura info, no 11º elemento da matriz conveyor (os elementos da matriz são baseados em 0).

Publicação 1756-PM001C-PT-P - Junho 2001

Page 190: 103449316-Logix5000-apostila1

Glossário 24

módulo compatível

Um modo de proteção de revisão eletrônica que requisita que os atributos de fornecedor, código de catálogo e de revisão principal do módulo físico e do módulo configurado no software correspondam, para estabelecer uma conexão com o módulo. Consulte desabilitar a revisão, correspondência exata.

módulo de interface (IFM)

Um sistema de conexão de campo de E/S pré-fiado.

mudança de estado (COS)

Qualquer mudança no status de um ponto ou de um grupo de pontos em um módulo de E/S.

multicast

Um mecanismo onde um módulo pode enviar dados em uma rede que são simultaneamente recebidos por mais de um receptor. Descreve o recurso da linha ControlLogix I/O que suporta múltiplos controladores recebendo dados de entrada do mesmo módulo de E/S, ao mesmo tempo.

N nome

Os nomes identificam os controladores, as tarefas, programas, tags, módulos, etc. Nomeie as regras identificadas IEC-1131-3 e:

• devem começar com um caracter alfabético (A-Z ou a-z) ou uma sublinha (_)

• podem conter apenas caracteres alfabéticos, caracteres numéricos e sublinhas

• podem ter até 40 caracteres

• não devem ter caracteres de sublinha consecutivos ou posteriores (_)

• não são sensíveis ao contexto

• são descarregados para o controlador

Publicação 1756-PM001C-PT-P - Junho 2001

Page 191: 103449316-Logix5000-apostila1

Glossário 25

O O programa Rotina de Power-up é executado.

Uma tarefa opcional que é executada quando o controlador é energizado no modo de Operação. Para usar a Rotina de Power-up, você deve criar um programa de energização e associá-lo à rotina principal.

A Rotina de Power-up é executado como segue:

42195

O controlador foi energizado no modo de Operação?

Sim

Não O controlador permanece no modo atual.

O programa Rotina de Energização é executado.

Sim

Não O controlador permanece no modo de Operação e executa sua lógica.

Falha grave, tipo 1, código 1, ocorre.

A Rotina de Energização contém um programa?

A falha grave foi removida? Sim

Não

O controlador insere o modo de falha.

O controlador permanece no modo de Operação e executa sua lógica.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 192: 103449316-Logix5000-apostila1

Glossário 26

objeto

Uma estrutura de dados que armazena informações de status. Quando você entra com uma instrução GSV/SSV, você especifica o objeto e o atributo que quer acessar. Em alguns casos, existe mais de uma instância do mesmo tipo de objeto, portanto pode ser necessário especificar o nome do objeto. Por exemplo, podem haver diversas tarefas em sua aplicação. Cada tarefa tem seu próprio objeto TASK que é acessado pelo nome da tarefa.

octal

Valores inteiros mostrados e inseridos em base 8 (cada dígito representa três bits). Pré-fixado com no. 8. Adaptado ao comprimento do booleano ou inteiro (1, 8, 16 ou 32 bits). Quando mostrado, todos os grupos de três dígitos são separados por uma sublinha, para legibilidade. Consulte binário, decimal, hexadecimal.

offline

Visualização e edição de um projeto que está no disco rígido de uma estação de trabalho. Consulte online.

online

Visualização e edição de um projeto em um controlador. Consulte offline.

P pós-varredura

Uma função do controlador onde a lógica dentro de um programa é examinada antes, desabilitando o programa para resetar as instruções e os dados.

pré-varredura

Uma função do controlador onde a lógica é examinada antes da execução, para inicializar as instruções e os dados.

O controlador realiza uma pré-varredura quando você muda o controlador de modo Program para modo Run.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 193: 103449316-Logix5000-apostila1

Glossário 27

prioridade

Especifica qual tarefa executar primeiro, se duas tarefas são acionadas ao mesmo tempo.

• A tarefa com maior prioridade é executada primeiro.

• As prioridades vão de 1 a 15, sendo que 1 é a maior prioridade.

• Uma tarefa de prioridade maior interromperá uma tarefa de prioridade menor.

• Se duas tarefas com a mesma prioridade são inicializadas ao mesmo tempo, o controlador alterna entre as duas tarefas a cada milissegundo.

programa

Uma série de rotinas e tags relacionados.

• Cada programa contém tags de programa, uma rotina principal executável, outras rotinas e uma rotina opcional de falha.

• Para executar as rotinas em um programa, você atribui (define) o programa para uma tarefa:

– Quando a tarefa é acionada, os programas definidos na tarefa são executados até a conclusão, do primeiro até o último.

– Quando uma tarefa executa um programa, a rotina principal do programa é executada primeiro.

– A rotina principal pode, por sua vez, executar subrotinas, usando a instrução JSR.

• A pasta Unscheduled Programs contém programas que não estão atribuídos a uma tarefa.

• Se a lógica no programa produzir uma falha grave, a execução salta para uma rotina de falha configurada para o programa.

• As rotinas em um programa podem acessar os seguintes tags:

– tags de programa do programa

– tags de controlador

• As rotinas não podem acessar tags de programa de outros programas.

Consulte rotina, tarefa.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 194: 103449316-Logix5000-apostila1

Glossário 28

R ramificação

Não há limite para o número de níveis de ramificação paralelos que você pode inserir. A figura seguinte mostra uma ramificação paralela com cinco níveis. A linha principal é o primeiro nível da ramificação, seguido de quatro ramificações adicionais.

Você pode encadear as ramificações em até 6 níveis. A figura seguinte mostra uma ramificação encadeada. A instrução final de saída está em uma ramificação encadeada que tem três níveis de profundidade.

REAL

Um tipo de dados que armazena um valor de ponto flutuante IEEE de 32 bits (4 bytes), com a seguinte faixa:

• -3.402823E38 a -1.1754944E-38 (valores negativos)

• 0

• 1.1754944E38 a 3.402823E-38 (valores positivos)

instrução de entrada instrução de saída

instrução de entrada instrução de saída

Publicação 1756-PM001C-PT-P - Junho 2001

Page 195: 103449316-Logix5000-apostila1

Glossário 29

O tipo de dados REAL também armazena ±infinidade e ±NAN, mas o display do software difere, baseado no formato do display.

reduza o seu tempo de atualização da rede (NUT)

Um intervalo de tempo repetitivo, no qual os dados podem ser enviados em uma rede ControlNet. A faixa de tempo de atualização da rede vai de 2 ms até 100 ms.

registro de data e hora

Um processo do ControlLogix que registra uma mudança nos dados de entrada com uma referência de tempo relativa de quando aquela mudança ocorreu.

remoção e inserção sob alimentação (RIUP)

Um recurso do ControlLogix que permite que um usuário instale ou remova um módulo enquanto a alimentação do chassi estiver aplicada.

revisão eletrônica

Um recurso da linha 1756 I/O, onde os módulos podem ser requisitados para realizarem uma verificação eletrônica para garantir que o módulo físico está consistente com o que foi configurado pelo software. Habilita o usuário, através do software, a evitar que módulos incorretos ou revisões incorretas de módulos sejam usadas inadvertidamente. Consulte módulo compatível, desabilitação da revisão, correspondência exata.

revisão principal

A linha 1756 de módulos tem indicadores de revisões principais e secundárias. A revisão principal é atualizada toda vez que há uma mudança funcional no módulo. Consulte revisão eletrônica, revisão secundária.

revisão secundária

A linha 1756 de módulos têm indicadores de revisões principais e secundárias. A revisão secundária é atualizada toda vez que há uma mudança em um módulo que não afeta sua função ou interface. Consulte revisão eletrônica, revisão principal.

Formato do Display: Equivalente:

Real +infinito-infinito+NAN-NAN

1.$-1.$1.#QNAN-1.#QNAN

Exponencial +infinito-infinito+NAN-NAN

1.#INF000e+000-1.#INF000e+0001.#QNAN00e+000-1.#QNAN00e+000

Publicação 1756-PM001C-PT-P - Junho 2001

Page 196: 103449316-Logix5000-apostila1

Glossário 30

rotina

Uma série de instruções lógicas em uma única linguagem de programação, como um diagrama ladder.

• As rotinas fornecem o código executável para o projeto em um controlador (semelhante a um arquivo de programa em um controlador CLP ou SLC).

• Cada programa tem uma rotina principal:

– Quando o controlador aciona a tarefa associada e executa o programa associado, a rotina principal é a primeira rotina a ser executada.

– Para chamar outra rotina no programa, insira uma instrução JSR na rotina principal.

• Você também pode especificar uma rotina opcional de falha de programa.

– Se qualquer das rotinas no programa associado produzir uma falha grave, o controlador executa a rotina de falha do programa

Consulte programa, tarefa.

rotina de manipulação de falhas

A rotina de manipulação de falhas é uma tarefa opcional que é executada quando:

• a falha grave não é uma falha de execução de instrução

• a rotina de falha de programa:

– não pôde remover a falha grave

– falhou

– não existe

Você pode criar apenas um programa para a rotina de manipulação de falhas. Depois que você criar esse programa, você deve configurar uma rotina como a rotina principal.

• O programa de falha do controlador nãoexecutauma rotina de falha.

• Se você especificar uma rotina de falha para o programa de falha do controlador, o controlador nunca executará essa rotina.

• Você pode criar rotinas adicionais e chamá-las a partir da rotina principal.

rotina principal

A primeira rotina a ser executada quando um programa é executado. Use a rotina principal para chamar (executar) outras rotinas (sub-rotinas).

Publicação 1756-PM001C-PT-P - Junho 2001

Page 197: 103449316-Logix5000-apostila1

Glossário 31

S SINT

Um tipo de dados que armazena um valor inteiro com sinal de 8 bits (1 byte) (-128 a +127). Minimize o uso deste tipo de dados:

• Tipicamente, as instruções convertem valores SINT ou INT para um (geralmente um valor DINT ou REAL) durante a operação tipo de dados otimizados. Como isto requer tempo e memória adicionais, minimize o uso de tipo de dados SINT e INT.

Sobreposição de tarefas periódicas

Uma condição que ocorre quando uma tarefa está sendo executada e a mesma tarefa é acionada novamente. O tempo de execução da tarefa é maior do que a taxa periódica configurada para a tarefa. Consulte tarefa periódica.

T tag

Uma área nomeada da memória do controlador, onde os dados são armazenados.

• Tags são mecanismos básicos de alocação de memória, referindo-se a dados da lógica e monitorando dados.

• A alocação mínima de memória para um tag é quatro bytes.

– Quando você cria um tag que armazena um BOOL, SINT ou INT (que são menores que quatro bytes), o controlador aloca quatro bytes, mas os dados preenchem apenas a parte necessária.

– Os tipos de dados definidos pelo usuário e as matrizes armazenam dados na memória contígua e agrupam tipos de dados menores em palavras de 32 bits.

Os seguintes exemplos mostram a alocação de memória para diversas variáveis:

– start, que usa um tipo de dados BOOL:

– station_status, que usa o tipo de dados DINT:

Alocação de memória

Bits

31 1 0

alocação não usados start

Alocação de memória:

Bits

31 0

alocação station_status

Publicação 1756-PM001C-PT-P - Junho 2001

Page 198: 103449316-Logix5000-apostila1

Glossário 32

– mixer, que usa um tipo de dados definido pelo usuário:

– temp_buffer, que é uma matriz de quatro INTS (INT[4]):

Consulte alias tag, tag base, tag consumido.

tag base

Um tag que, de fato, define a memória onde um elemento de dados é armazenado. Consulte tag alias.

tag consumido

Um tag que recebe os dados que são enviados por um tag produzido em uma rede ControlNet ou em uma placa de fundo do chassi ControlLogix. Um tag consumido deve:

• ser de uso geral do controlador

• ser do mesmo tipo de dados (incluindo qualquer dimensão de matriz) que o tag remoto (tag produzido)

Consulte tag produzido.

tag produzido

Um tag que um controlador está deixando disponível para o uso de outros controladores. Os tags produzidos são sempre de uso geral do controlador. Consulte tag consumido.

Alocação de memória

Bits

31 24 23 16 15 8 7 0

alocação 1 mixer.pressure

alocação 2 mixer.temp

alocação 3 mixer.agitate_time

alocação 4 não usado não usado não usado bit 0 mixer.inletbit 1 mixer.drainbit 2 mixer.agitate

Alocação de memória:

Bits

31 16 0

alocação 1 temp_buffer[1] temp_buffer[0]

alocação 2 temp_buffer[3] temp_buffer[2]

Publicação 1756-PM001C-PT-P - Junho 2001

Page 199: 103449316-Logix5000-apostila1

Glossário 33

tarefa

Um mecanismo de programação para a execução de um programa.

• Por padrão, cada novo arquivo de projeto contém uma tarefa contínua pré-configurada.

• Você configura tarefas periódicas, opcionais, conforme necessário.

• Uma tarefa fornece informações de programação e prioridade para uma série de um ou mais programas, que são executados com base em critérios específicos.

• Uma vez que uma tarefa é acionada (ativada), todos os programas atribuídos (definidos) à tarefa são executados na ordem em que são mostrados no organizador do controlador.

• Você pode atribuir apenas um programa a uma tarefa de cada vez.

Consulte tarefa contínua, tarefa periódica.

tarefa contínua

Tarefa que é executada continuamente.

• A tarefa contínua é executada em segundo plano. Qualquer tempo de CPU não alocado para outras operações (como movimento, comunicações e tarefas periódicas) é usado para executar os programas na tarefa contínua.

• A tarefa contínua recomeça depois que o último de seus programa terminar a execução.

• Um projeto não requer uma tarefa contúnua.

• Se usada, deve haver apenas uma tarefa contínua.

• Todas as tarefas periódicas interrompem a tarefa contínua.

• Quando você cria um projeto, o padrão MainTask é a tarefa contínua. Você pode deixar esta tarefa como está ou mudar suas propriedades (nome, tipo etc.).

Consulte tarefa periódica.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 200: 103449316-Logix5000-apostila1

Glossário 34

tarefa periódica

Uma tarefa que é acionada pelo sistema operacional em um período de tempo repetitivo.

• Use uma tarefa periódica para funções que requisitam execução precisa ou determinística.

• Sempre que o tempo expirar, a tarefa é acionada e seus programas são executados.

• Os dados e as saídas estabelecidos pelos programas na tarefa periódica retêm seus valores até a próxima execução da tarefa ou são manipulados por outra tarefa.

• Você pode configurar o período de tempo de 1 ms a 2.000 s. O padrão é ms. O padrão é 10 ms.

• Tarefas periódicas sempre interrompem a tarefa contínua.

• Dependendo do nível de prioridade, uma tarefa periódica pode interromper outras tarefas periódicas no controlador.

Consulte tarefa contínua

taxa

Para uma tarefa periódica, a taxa na qual o controlador executa a tarefa, de 1 ms a 2.000.000 ms (2.000 segundos). O padrão é 10 ms.

tempo de execução

O tempo total requisitado para a execução de um único programa.

• O tempo de execução inclui apenas o tempo usado por aquele único programa, e exclui qualquer tempo compartilhado/usado por outros programas em outras tarefas que estejam realizando outras operações.

• Enquanto estiver online, a janela Program Properties pode ser usada para visualizar o tempo máximo de varredura e o último tempo de varredura (em µs), para o programa atual. Estes valores são tempos de execução para o programa e não incluem nenhum tempo gasto para outros programas ou tarefas de maior prioridade.

Consulte tempo transcorrido.

ATENÇÃO

!Certifique-se de que o período de tempo seja maior do que a soma dos tempos de execução de todos os programas definidos para a tarefa. Se o controlador detectar que a inicialização de uma tarefa periódica ocorre para uma tarefa que já está operando, uma falha de advertência ocorre.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 201: 103449316-Logix5000-apostila1

Glossário 35

Tempo de Sistema Coordenado (CST)

Um valor de 64 bits que representa o número de microssegundos desde que o controlador mestre CST começou a contagem.

• O valor CST é armazenado como uma matriz DINT[2], onde:

– o primeiro elemento armazena os 32 bits menos significativos

– o segundo elemento armazena os 32 bits mais significativos

• Você pode usar o registro de data e hora CST para comparar o tempo relativo entre as amostras de dados.

tempo de varredura

Consulte tempo transcorrido, tempo de execução.

tempo transcorrido

O tempo total requisitado para a execução de todas as operações configuradas dentro de uma única tarefa.

• Se o controlador estiver configurado para executar múltiplas tarefas, o tempo transcorrido inclui qualquer tempo usado/compartilhado por outras tarefas realizando outras operações.

• Enquanto estiver online, a janela Task Properties pode ser usada para visualizar o tempo máximo de varredura e o último tempo de varredura, em ms, para a tarefa atual. Estes valores são de tempo transcorrido, o que inclui qualquer tempo gasto na espera pelas tarefas de maior prioridade.

Consulte tempo de execução.

tipo de dados

Uma definição de tamanho e layout de memória que será alocada quando um tag daquele tipo de dados for criado.

tipo de dados definido pelo usuário

Você também pode criar sua(s) própria(s) estruturas, chamada de tipo de dados definidos pelo usuário (também comumente referenciado como estrutura definida pelo usuário). Um tipo de dados definidos pelo usuário agrupa tipos de dados diferentes em uma única entidade com nome.

• Em um tipo de dados definidos pelo usuário, você define o(s) membro.

• Como tags, os membros têm um nome e um tipo de dados.

• Você pode incluir matrizes e estruturas.

• Uma vez que você criou um tipo de dados definido pelo usuário, tags podem ser criados, usando aquele tipo de dados.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 202: 103449316-Logix5000-apostila1

Glossário 36

• Minimize o uso dos seguintes tipos de dados, pois eles, tipicamente, aumentam os requisitos de memória e o tempo de execução de sua lógica:

– INT

– SINT

Por exemplo, alguns valores do sistema usam o tipo de dados SINT ou INT. Se você criar um tipo de dados definidos pelo usuário para armazenar tais valores, use o tipo de dados SINT ou INT correspondente.

• Se você incluir membros que representam dispositivos de E/S, a lógica ladder deve ser usada para copiar os dados entre os membros na estrutura e as tags de E/S correpondentes. Consulte “Buffer de E/S” na página 8-1.

• Ao usar os tipos de dados BOOL, SINT ou INT, coloque os membros que usam o mesmo tipo de dados em seqüência:

• Você pode usar matrizes de dimensão única.

• Você pode criar, editar e deletar tipos de dados definidos pelo usário apenas quando estiver programando offline.

• Se você modificar o tipo de dados definidos pelo usuário e mudar seu tamanho, os valores existentes de qualquer tag que usam o tipo de dados são configurados para zero (0).

• Para copiar dados para uma estrutura, use a instrução COP. Consulte Manual de Referência do Conjunto das Instruções Gerais do Logix5000, publicação 1756-RM003-PT.

Consulte estrutura.

tipo de dados otimizados

Um tipo de dados que uma instrução do Logix5000 usa (tipicamente os tipo de dados DINT e REAL).

• Nos manuais de referência de instruções, um tipo de dados em negrito indica um tipo de dados otimizados.

• As instruções são executadas mais rapidamente e requisitam menos memória se todos os operandos da instrução usarem:

– o mesmo tipo de dados

– um tipo de dados otimizados

mais eficiente

BOOL

BOOL

BOOL

DINT

DINT

menos eficiente

BOOL

DINT

BOOL

DINT

BOOL

Publicação 1756-PM001C-PT-P - Junho 2001

Page 203: 103449316-Logix5000-apostila1

Glossário 37

• Se você misturar tipos de dados e usar tags que não são tipos de dados otimizados, o controlador converte os dados de acordo com estas regras

– Existe algum operando de valor REAL?

– Depois da execução da instrução, o resultado (um valor DINT ou REAL) é convertido para o tipo de dados de destino, se necessário.

• Como a conversão de dados exige tempo e memória adicionais, você pode aumentar a eficiência de seu programas:

– usando o mesmo tipo de dados ao longo de toda a instrução

– minimizando o uso dos tipos de dados SINT ou INT

Em outras palavras, use tags DINT ou todas os tags REAL, juntamente com valores imediatos, nas suas instruções.

Se: Então os operandos de entrada (ex: fonte, tag em uma expressão, limite) são convertidos para:

Sim REALs

Não DINTs

Publicação 1756-PM001C-PT-P - Junho 2001

Page 204: 103449316-Logix5000-apostila1

Glossário 38

• A seguinte tabela resume como o controlador converte os dados entre tipos de dados:

V valor imediato

Um valor verdadeiro ou inteiro com sinal, de 32 bits, real. Não é um tag que armazena um valor.

Conversão: Resultado:

de inteiro maior para inteiro menor O controlador trunca a porção superior do inteiro maior e gera um overflow.

Por exemplo:

Decimal Binário

DINT 65,665 0000_0000_0000_0001_0000_0000_1000_0001

INT 129 0000_0000_1000_0001

SINT -127 1000_0001

de SINT ou INT para REAL Nenhuma precisão de dados é perdida

de DINT para REAL A precisão dos dados pode ser perdida. Ambos os tipos de dados armazenam dados em 32 bits, mas o tipo REAL usa alguns destes 32 bits para armazenar o valor do expoente. Se a precisão for perdida, o controlador a seleciona da porção menos significante do DINT.

de REAL para inteiro O controlador arredonda a parte fracional e trunca a porção superior da parte não-fracional. Se os dados forem perdidos, o controlador energiza o flag de status de overflow.

Os números são arredondados como segue:• Os números diferentes de x,5 são arredondados para o número mais próximo.• X,5 é arredondado para o número par mais próximo.

Por exemplo:

REAL (fonte) DINT (resultado)

-2,5 -2

-1,6 -2

-1,5 -2

-1,4 -1

1.4 1

1.5 2

1.6 2

2.5 2

Publicação 1756-PM001C-PT-P - Junho 2001

Page 205: 103449316-Logix5000-apostila1

Glossário 39

W watchdog

Especifica o tempo em que uma tarefa pode ser executada antes do acionamento de uma falha grave.

• Cada tarefa tem um temporizador de watchdog que monitora a execução da tarefa.

• Um tempo de watchdog pode ir de 1 ms a 2.000.000 ms (2.000 segundos). O padrão é 500 ms.

• O temporizador watchdog começa a marcar o tempo quando a tarefa é iniciada e para quando todos os programas dentro da tarefa foram executados.

• Se a tarefa levar mais tempo que o tempo de watchdog, uma falha grave ocorre: (O tempo inclui as interrupções por outras tarefas).

• Uma falha de interrupção de watchdog (falha grave) também ocorre se a tarefa for acionada novamente enquanto estiver sendo executada (sobreposição de tarefa periódica). Isto pode acontecer se uma tarefa de menor prioridade for interrompida por uma tarefa de maior prioridade, atrasando a conclusão da tarefa de menor prioridade.

• Você pode usar a rotina de manipulação de falhas para remover uma falha de watchdog. Se a mesma falha de watchdog ocorrer uma segunda vez durante a mesma varredura de lógica, o controlador entra com o modo de falha, não importando se a rotina de manipulação de falhas remove a falha do watchdog, ou não.

Para mudar o tempo de watchdog de uma tarefa:

1. Abra o projeto do RSLogix 5000.

2. No organizador do controlador, clique com o botão direito do mouse em name_of_task e selecione Properties.

3. Clique na guia Configuration.

4. Na caixa de texto Watchdog, digite um tempo de watchdog.

5. Clique em OK.

ATENÇÃO

!Se o temporizador watchdog alcançar uma pré-programação configurável, uma falha grave ocorre. Dependendo da rotina de manipulação de falhas, o controlador pode desligar.

Publicação 1756-PM001C-PT-P - Junho 2001

Page 206: 103449316-Logix5000-apostila1

Glossário 40

Publicação 1756-PM001C-PT-P - Junho 2001

Page 207: 103449316-Logix5000-apostila1

Índice

Aabertura

rotina 4-1alias

criação 6-3uso 6-1

armazenamento de um projeto 19-1arquivo de projeto

criação 1-1ASCII

comparação de caracteres 13-4conexão de dispositivo 12-2configuração da porta serial 12-3configuração do protocolo do usuário 12-5construção de string 13-12conversão de caracteres 13-6decodificação de mensagem 13-8escrita de caracteres 12-14extração de caracteres 13-2inserção de caracteres 12-20leitura de caracteres 12-9manipulação de caracteres 13-1organização de dados 12-8

Bbloco de função

controladores que suportam blocos de função 2-1inserção 4-4

bufferE/S 8-1

Ccarregamento 9-4carregamento de um projeto 19-1CLP-5C

compartilhamento de dados 10-6código de barras

caracteres de teste 13-4extração de caracteres 13-2

códigosfalha de advertência A-3falha grave A-1

comparaçãocaracteres ASCII 13-4

comunicaçãooutros controladores 10-1

configuraçãocarregamento a partir de memória não volátil 19-1driver 9-1porta serial para ASCII 12-3protocolo di usuários para ASCII 12-5

conformidade

IEC 1131-3linguagem de programação B-3

conformidade IEC 1131-3conjunto de instruções B-4definições dos dados B-2introdução B-1portabilidade do programa B-4

conjunto de instruções B-4consumo

tag 10-1controlador

descarregamento 9-2desligamento 16-1modo 9-3mudança de propriedades 1-3suspensão 16-1verificação 2-5

conversãocaracteres ASCII 13-6

criaçãoalias 6-3arquivo de projeto 1-1driver 9-1rotina 2-3string 13-12subrotina 2-3tag 4-7tag com uso do Excel 3-10tipo de dados do string 12-8

criarestrutura 3-7matriz 3-9tag 3-9tipo de dados definidos pelo usuário 3-7

Ddados

ASCII 12-8definições B-2force 14-1, 14-2inserção dos caracteres ASCII 12-20

dados do sistemaacesso 5-2

descarregamento 9-2desligamento do controlador 16-1driver

configuração 9-1

EE/S

buffer 8-1sincronização com a lógica 8-1

Publicação 1756-PM001C-PT-P - Junho 2001

Page 208: 103449316-Logix5000-apostila1

2 Índice

endereçoatribuição de indireto 7-1inserção 4-7

endereço indireto 7-1envio

caracteres ASCII 12-14escrita

caracteres ASCII 12-14estrutura

criar 3-7organizar 3-1

extraçãocaracteres ASCII 13-2

Ffalha

códigos de falha de advertência A-3códigos de falha grave A-1criação definida pelo usuário 16-1desenvolvimento de rotina para remover uma falha 15-1,

18-1monitoração de advertência 17-1remoção 9-4, 15-1teste de uma rotina de falha 15-4

falha de advertênciacódigos A-3lógica 17-1remoção 17-1

falha gravecódigos A-1criação definida pelo usuário 16-1desenvolvimento de rotina de falha 15-1, 18-1

forcedesabilitação 14-6habilitação 14-5inserção 14-2monitoração 14-7remoção 14-6tag 14-1

IICON 4-4IEC 1131-3

conformidade B-2IEC 1131-3 conformidade

tabelas B-5inserção

caracteres ASCIIs 12-20endereço 4-7instrução do bloco de função 4-4instrução ladder 4-3

instrução

inserção do bloco de função 4-4inserir ladder 4-3

IREF 4-4

Lleitura

caracteres ASCII 12-9linguagem de programação B-3linha

inserção 4-3lógica

inserção da instrução do bloco de função 4-4inserção da instrução ladder 4-3

Mmanipulação de string 13-1matriz

ao longo do índice 7-1criar 3-9organizar 3-1produção de uma matriz grande 11-1

memória não volátil 19-1mensagem

decodificação de string 13-8organização de tags 10-11

modocontrolador 9-3

modo de operação 9-3modo de programa 9-3modo de teste 9-3monitoração de forces 14-7

Nnúmero de ranhura 1-3

OOCON 4-4OREF 4-4organização

strings 12-8tarefas 2-2

organizarestrutura 3-1matriz 3-1tag 3-1

Ppeso

conversão 13-6produção

matriz grande 11-1

Publicação 1756-PM001C-PT-P - Junho 2001

Page 209: 103449316-Logix5000-apostila1

Índice 3

tag 10-1tags para CLP-5C 10-6

programaportabilidade B-4

projetoarmazenamento em memória não volátil 19-1carregamento 9-4carregamento a partir de memória não volátil 19-1descarregamento 9-2

protocolo do usuárioconfiguração do ASCII 12-5

Rramificação

inserção 4-3remoção

falha de advertência 17-1falha grave 9-4, 15-1

rotinaabertura 4-1criação 2-3inserção das instruções do bloco de função 4-4inserção das instruções ladder 4-3linguagens 2-1verificação 4-10

RSLinxconfiguração 9-1

Ssalvar 1-3salvar como 1-3serial

conexão do dispositivo ASCII 12-2configuração da porta para ASCII 12-3fiação do cabo 12-2

símbolocriação 6-1

sistema operacional B-2status

monitoração 5-1, 5-2string

comparação de caracteres 13-4conversão de caracteres 13-6

criação 13-12escrita de caracteres 12-14extração de caracteres 13-2inserção dos caracteres 12-20manipulação 13-1organização de dadosa 12-8tipo de dados 12-8

subrotinacriação 2-3

suspensãocontrolador 16-1

Ttabela de dados 3-1tabelas de conformidade B-5tag

atribuição 4-7compartilhamento com CLP-5C 10-6criação 4-7criação com uso do Excel 3-10criação de alias 6-3criar 3-9force 14-1inserção 4-7organização para mensagens 10-11organizar 3-1produção de uma matriz grande 11-1produção e consumo 10-1string 12-8

tamanho do chassi 1-3tarefa

organização 2-2teste de uma rotina de falha 15-4tipo de dados definido pelo usuário

criar 3-7tipo de dados do string

criação 12-8

Vverificação

controlador 2-5rotina 4-10

Publicação 1756-PM001C-PT-P - Junho 2001

Page 210: 103449316-Logix5000-apostila1

Códigos de Caractere ASCII

Caractere Deci-mal

Hexa-deci-mal

[ctrl-@] NUL 0 $00

[ctrl-A] SOH 1 $01

[ctrl-B] STX 2 $02

[ctrl-C] ETX 3 $03

[ctrl-D] EOT 4 $04

[ctrl-E] ENQ 5 $05

[ctrl-F] ACK 6 $06

[ctrl-G] BEL 7 $07

[ctrl-H] BS 8 $08

[ctrl-I] HT 9 $09

[ctrl-J] LF 10 $l

[ctrl-K] VT 11 $0B

[ctrl-L] FF 12 $0C

[ctrl-M] CR 13 $r

[ctrl-N] SO 14 $0E

[ctrl-O] SI 15 $0F

[ctrl-P] DLE 16 $10

[ctrl-Q] DC1 17 $11

[ctrl-R] DC2 18 $12

[ctrl-S] DC3 19 $13

[ctrl-T] DC4 20 $14

[ctrl-U] NAK 21 $15

[ctrl-V] SYN 22 $16

[ctrl-W] ETB 23 $17

[ctrl-X] CAN 24 $18

[ctrl-Y] EM 25 $19

[ctrl-Z] SUB 26 $1A

ctrl-[ ESC 27 $1B

[ctrl-\] FS 28 $1C

ctrl-] GS 29 $1D

[ctrl-^] RS 30 $1E

[ctrl-_] US 31 $1F

SPACE 32 $20

! 33 $21

“ 34 $22

# 35 $23

$ 36 $24

% 37 $25

& 38 $26

‘ 39 $27

( 40 $28

) 41 $29

* 42 $2A

+ 43 $2B

, 44 $2C

– 45 $2D

. 46 $2E

/ 47 $2F

0 48 $30

1 49 $31

2 50 $32

3 51 $33

4 52 $34

5 53 $35

6 54 $36

7 55 $37

8 56 $38

9 57 $39

: 58 $3A

; 59 $3B

< 60 $3C

= 61 $3D

> 62 $3E

? 63 $3F

Caractere Deci-mal

Hexa-deci-mal

@ 64 $40

A 65 $41

B 66 $42

C 67 $43

D 68 $44

E 69 $45

F 70 $46

G 71 $47

H 72 $48

I 73 $49

J 74 $4A

K 75 $4B

L 76 $4C

M 77 $4D

N 78 $4E

O 79 $4F

P 80 $50

Q 81 $51

R 82 $52

S 83 $53

T 84 $54

U 85 $55

V 86 $56

W 87 $57

X 88 $58

Y 89 $59

Z 90 $5A

[ 91 $5B

\ 92 $5C

] 93 $5D

^ 94 $5E

_ 95 $5F

Caractere Deci-mal

Hexa-deci-mal

‘ 96 $60

A 97 $61

B 98 $62

C 99 $63

D 100 $64

E 101 $65

F 102 $66

G 103 $67

H 104 $68

I 105 $69

J 106 $6A

K 107 $6B

L 108 $6C

M 109 $6D

N 110 $6E

O 111 $6F

P 112 $70

Q 113 $71

R 114 $72

S 115 $73

T 116 $74

U 117 $75

V 118 $76

W 119 $77

X 120 $78

Y 121 $79

Z 122 $7A

{ 123 $7B

| 124 $7C

} 125 $7D

~ 126 $7E

DEL 127 $7F

Caractere Deci-mal

Hexa-deci-mal

Page 211: 103449316-Logix5000-apostila1
Page 212: 103449316-Logix5000-apostila1

Publicação 1756-PM001C-PT-P - Junho 2001 2 PN 957464-76Remplace la publication 1756-PM001B-PT-P - Novembro de 2000 © 2001 Rockwell International Corporation.

Quarta Capa