You are on page 1of 212

Controladores

Logix5000™
Procedimentos
Comuns
1756-Lx, 1769-Lx, 1789-Lx,
1794-Lx

Manual de Programação
Informações Importantes Por causa da diversidade de usos dos produtos descritos nesta
publicação, os responsáveis pela aplicação e uso deste equipamento
ao Usuário 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:

Identifica as informações sobre práticas ou


ATENÇÃO
circunstâncias que podem causar danos pessoais ou
morte, danos à propriedade ou perdas econômicas.

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

• identificar e evitar um perigo


• reconhecer as conseqüências

IMPORTANTE Identifica as informações críticas para aplicação e


compreensão bem-sucedidas do produto.

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.


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 5-4
Sistema
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 19-1
Projeto Usando Memória Não Volátil
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


Resumo das Alterações 2

Notas:

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


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 Este manual deve ser usado pelas pessoas responsáveis pela
programação de aplicações que usam os controladores Logix5000,
Manual 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


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 Clique com o botão direito do Clique com o botão direito do mouse no
tela ou exemplo mouse em User-Defined… 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 Clique com o botão direito do Você deve identificar o programa
fornecer, baseado na sua aplicação mouse em específico na sua aplicação. Tipicamente,
(uma variável) name_of_program… é um nome ou variável que você definiu.

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


Sumário

Capítulo 1
Gerenciamento dos Arquivos Criação de um Arquivo de Projeto . . . . . . . . . . . . . . . . . . . 1-1
de Projeto Armazenamento das Mudanças. . . . . . . . . . . . . . . . . . . . . 1-3

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

Capítulo 3
Organização de Tags Planejamento de Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Crie um Tipo de Dados Definidos Pelo Usuário . . . . . . . . . 3-7
Notas: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Criação de um Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Criação de Tags Usando o Microsoft® Excel® . . . . . . . . . . . . . 3-10

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

Capítulo 5
Acesso aos Valores do Monitoração dos Flags de Status . . . . . . . . . . . . . . . . . . . . 5-1
Sistema Obtenção e Definição dos Dados de Sistema . . . . . . . . . . 5-2

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

Capítulo 7
Atribuição de um Endereço Quando Atribuir um Endereço Indireto . . . . . . . . . . . . . . . 7-1
Indireto Expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3

Capítulo 8
Buffer 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


Sumário ii

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

Capítulo 10
Comunicação com Outro Quando Usar este Procedimento . . . . . . . . . . . . . . . . . . . . 10-1
Controlador Como Usar Este Procedimento. . . . . . . . . . . . . . . . . . . . . . 10-1
Produção e Consumo de um Tag. . . . . . . . . . . . . . . . . . . . 10-1
O Que Você Precisa Fazer . . . . . . . . . . . . . . . . . . . . . . 10-3
Organização de Tags para Dados Compartilhados . . . . . 10-3
Produção de um Tag . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4
Consumo de um Tag Produzido . . . . . . . . . . . . . . . . . . 10-5
Compartilhamento de Dados com um Controlador CLP-5C . 10-6
Produção de Inteiros para um Controlador CLP-5C . . . . 10-6
Produção de REALs para um Controlador CLP-5C . . . . . 10-7
Consumo de Inteiros a partir de um Controlador CLP-5C
ControlNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-9
Ajuste para os Limites de Tamanho . . . . . . . . . . . . . . . . . 10-10
Envio de Mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11

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

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

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


Sumário iii

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

Capítulo 14
Force Valores Quando Forçar um Valor. . . . . . . . . . . . . . . . . . . . . . . . . . 14-1
Inserção de Force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2
Inserção de Forces a Partir da Janela Tags. . . . . . . . . . . 14-2
Inserção de Forces a Partir da Lógica Ladder. . . . . . . . . 14-4
Habilitação de Forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-5
Desabilitação de Forces. . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6
Remoção de Forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6
Monitoração de Forces . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-7

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

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

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

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

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

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


Sumário iv

Apêndice A
Códigos de Falha Quando Usar Este Apêndice . . . . . . . . . . . . . . . . . . . . . . . A-1
Códigos de Falha Grave . . . . . . . . . . . . . . . . . . . . . . . . . . A-1
Códigos de Falha de Advertência. . . . . . . . . . . . . . . . . . . . A-3

Apêndice B
Conformidade IEC61131-3 Use este Apêndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1
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

Glossário

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


Capítulo 1

Gerenciamento dos Arquivos de Projeto

Criação de um Arquivo Antes de você programar um controlador Logix5000, você deve criar
um arquivo de projeto:
de Projeto
1. Inicie o software RSLogix 5000™.

2. No menu Arquivo selecione Novo.

3.

4.

5.

6.

7.

8.

42194

3. Selecione o tipo do controlador.

4. Digite um nome para o controlador.

5. Digite uma 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.

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


1-2 Gerenciamento dos Arquivos de Projeto

Quando você cria um projeto, o nome do arquivo do


projeto é o mesmo do controlador.

nome do controlador

organizador do
controlador

42371

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


Gerenciamento dos Arquivos de Projeto 1-3

Armazenamento das Assim que você criar a lógica e fizer as mudanças de configuração,
salve o projeto.
Mudanças
Para: Faça isto:
salvar suas mudanças No menu File, selecione Save.
fazer uma cópia do projeto A. No menu File, selecione Save As .
aberto, mas mantendo o nome B. Digite um nome para o arquivo do projeto. Use
do controlador existente sublinhas [ _ ] no lugar dos espaços.
C. Clique em Save.
fazer uma cópia do projeto e A. No menu File, selecione Save As .
atribuir um nome diferente para B. Digite um nome para o arquivo do projeto. Use
o controlador 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.

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

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


1-4 Gerenciamento dos Arquivos de Projeto

Notas:

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


Capítulo 2

Organização das Tarefas

Quando Usar este Após criar um arquivo de projeto, organize seu projeto em tarefas.
Procedimento

Como Usar este Para organizar o projeto em tarefas, execute as etapas a seguir:
Procedimento • Identificação das Linguagens de Programação Disponíveis
• Organização da Lógica
• Verificação do Controlador

Identificação das Use a tabela a seguir para identificar as linguagens de programação


que podem ser usadas para o controlador:
Linguagens de
Programação Disponíveis Para esta plataforma de Você pode usar esta linguagem:
controladores:
ladder bloco de função
CompactLogix ✔ ✔
ControlLogix ✔ ✔
FlexLogix ✔ ✔
SoftLogix ✔

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.

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


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:

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

O organizador de controlador apresenta as tarefas de um controlador.

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.

42195

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


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 1. Crie uma tarefa periódica A. No organizador do controlador, dê um clique com o botão
(por exemplo, execute uma para a função direito na pasta Tasks e selecione New Tasks.
malha do PID a cada 100 ms) B. Digite:
uma função muito rápida • nome_of_task
• download (opcional)
C. Na lista Type, selecione Periodic.
D. Em Periodic Attributes, digite:
• ramificação
• prioridade
E. Clique em OK.
2. Crie um programa para a A. Dê um clique com o botão direito em nome_of_task
tarefa. e selecione New Program.
B. Digite:
• name_of_program
• description (opcional)
C. Clique em OK.
3. Crie e atribua uma A. Clique no sinal de + que está próximo a
rotina principal (a nome_of_task.
rotina que for executada B. Dê um clique com o botão direito em
primeiro no programa). 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_routine
I. 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 1. Crie uma rotina A. No organizador do controlador, dê um clique com o botão
lógica para decidir quando cada (subrotina) para cada direito na pasta MainPrograme selecione New Routine.
função será executada função: 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 1. Na pasta MainRoutine, insira a lógica.
tempo 2. Utilize os comentários de linhas para designar as funções diferentes.

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


2-4 Organização das Tarefas

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


uma tarefa.

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)

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.

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


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


2-6 Organização das Tarefas

Notas:

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


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:

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

A tabela seguinte esboça os tipos mais comuns de dados e quando


usar cada um.

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 INT
de taxas muito rápidas)
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


3-2 Organização de Tags

Utilize a tabela seguinte para organizar seus dados:

Para: Utilize Referência


um grupo de atributos comuns tipo de dados Consulte “Crie um Tipo de Dados
que são usados por mais de uma definido pelo Definidos Pelo Usuário” na
máquina usuário página 3-7.
um grupo de dados com o mesmo matriz Consulte “Criação de um Tag” na
tipo de dados página 3-9.
valor único tag de um único
elemento
dispositivo de E/S

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

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


Organização de Tags 3-3

EXEMPLO Tags de um único elemento

dispositivo de E/S
analógica

valor inteiro
bit de armazenamento
Contador
temporizador

dispositivo de E/S
digital

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.

Para expandir a matriz e


mostrar seus elementos,
clique no sinal de +.

Para desfazer uma Esta matriz contém


matriz e esconder seus seis elementos do
elementos, clique no tipo de dados DINT.
sinal – .
elementos de seis elementos DINTs
timer_presets

42367

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


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

subscrito da segunda dimensão Descrição


0 1 2 3 4 5
0
1 1.5 2.5 1.25 1.25 1.25 Posição do primeiro furo a partir da borda do livro
subscrito 2 8.0 5.5 3.5 3.5 Posição do segundo furo a partir da borda do livro
da primeira
dimensão 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

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

Esta matriz contém


uma grade de
elementos de duas
dimensões, de seis
em seis elementos.

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

Quando a dimensão mais à direita recomeça, a


dimensão à esquerda incrementa em um.

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


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.

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

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

matriz de receitas

Esta matriz contém


primeira receita três elementos do
tipo de dados TANK.

membros da receita

42368

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


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.

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

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

matriz de dois furos

Esta matriz contém


primeiro furo quatro elementos do
tipo de dados
DRILL_STATION.

dados para o furo

42583

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


Organização de Tags 3-7

Crie um Tipo de Dados Para criar um tipo de dados definido pelo usuário:
Definidos Pelo Usuário

42195

1. Clique com o botão direito do mouse em User-Defined e


selecione New Data Type.

2.

3.

42196

4. 5. 6. 7.

2. Insira um nome para o tipo de dados.

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

4. Insira o nome do primeiro membro.

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


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.

EXEMPLO Se o membro for uma matriz de seis DINTs,


digite DINT[6].

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


(radical), selecione o estilo.

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

8. Clique em Apply.

9. Mais membros?

Se: Então:
Sim Repita as etapas 4. a 8.
Não Clique em OK.

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:
mais eficiente menos eficiente

BOOL BOOL
BOOL DINT
BOOL BOOL
DINT DINT
DINT BOOL

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


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.

42350

3. 4. 5.

2. Selecione um escopo para o tag:

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


em mais de um programa dentro do name_of_controller
projeto (controlador)
como um produtor ou como um
consumidor
em uma mensagem
em somente um programa dentro do programa que usará o tag
projeto

3. Insira um nome para o controlador.

4. Insira o tipo de dados:

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]

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

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


3-10 Organização de Tags

Criação de Tags Usando o Você também pode usar um software de planilha eletrônica como o
Microsoft Excel para criar e editar tags. Isto permite que você
Microsoft® Excel® 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.

Os tags são
armazenados nesta
pasta.

4.

5.

42361

4. Observe o nome do arquivo exportado (project_name-Tags).

5. Selecione o uso dos tags a serem exportados. Se você


selecionou Program Tags, selecione os tags de programa a
serem exportados.

6. Clique em Export.

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


Organização de Tags 3-11

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

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.

8. Insira TAG

9. Identifique o uso (escopo) do tag:

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


do controlador Deixe esta célula vazia.
do programa Insira o nome do programa

10. Insira o nome do tag.

11. Insira o tipo de dados do tag.

12. Repita as etapas 8. a 11. para cada tag adicional.

13. Armazene e feche o arquivo. (Mantenha-o com formato CSV.)

14. No software RSLogix 5000, a partir do menu Tools, selecione


Import Tags.

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


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:

Para: Utilize
enviar dados pela placa de fundo do chassi e pela rede tag produzido
ControlNet a um intervalo específico
receber dados de outro controlador pela placa de fundo tag consumido
do chassi ou pela rede ControlNet a um intervalo
específico

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.

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


Capítulo 4

Rotinas de Programas

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

Como Usar este Para programar uma rotina, execute as etapas a seguir:
Procedimento • 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

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.

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

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 →. 42581

• Clique no sinal de +.

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


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 - O editor de bloco de função não está instalado. Para instalá-lo,
editor not installed” (falha ao solicite o seguinte código de catálogo do software RSLogix
abrir a rotina - editor não 5000:
instalado) • 9324-RLD700
“Source not available” (fonte A fonte da rotina não está disponível.
não 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


Rotinas de Programas 4-3

Inserção das Instruções Em uma rotina ladder aberta:


Ladder 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.)

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

2. Adicione um elemento ladder:

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


4-4 Rotinas de Programas

Inserção das Instruções de Uma rotina de bloco de função contém os seguintes elementos:
Bloco de Função
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.
conector de fio de entrada (ICON) • 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.

Para inserir instruções de bloco de função, abra uma rotina de blocos


de função e complete as seguintes etapas:

1. 2. 3.

42587

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


Rotinas de Programas 4-5

Etapa: Ações detalhadas:


1. Insira os blocos que executam as A. Pressione a tecla Insert.
funções necessárias da rotina. 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 A. No bloco, clique em
cada bloco.
D

42584
C

B. Edite as propriedades do bloco:

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 A. Clique na guia Tag (D).
instrução B. Digite um novo nome.
C. Escolha OK.
3. Conecte os pinos de saída aos Clique em um pino de saída e no pino de entrada necessário. Um ponto verde indica um pino
pinos de entrada. válido.

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


4-6 Rotinas de Programas

4. 5.

6.

42586

Etapa: Ações detalhadas:


4. Para fornecer um valor de um A. Pressione a tecla Insert.
dispositivo de entrada ou tag, insira B. Escolha OK. (IREF é a seleção padrão.)
uma referência de entrada (IREF). 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 A. Pressione a tecla Insert.
dispositivo de saída ou tag, insira B. Digite OREF.
uma referência de saída (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 A. Pressione a tecla Insert.
em folhas diferentes, insira um B. Digite OCON.
conector de fio de saída (OCON) e C. Escolha OK.
um conector de fio de entrada
(ICON). 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


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:

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

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 .

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


4-8 Rotinas de Programas

EXEMPLO Nomes dos tags

Para acessar: O nome do tag é semelhante a:


tag machine_on machine_on

bit número 1 do tag one_shots one_shots.1

membro (bit) DN do temporizador running_seconds.DN


running_seconds

membro mix do tag north_tank north_tank.mix

elemento 2 na matriz recipe e elemento 1,1 COP


na matriz tanks Copy File
Source recipe[2]
Dest tanks[1,1]
Length 1
LR
elemento 2 na matriz preset dentro do tag CLR
north_tank Clear
Dest north_tank.preset[2]
0

membro part_advance do elemento 1 na


matriz drill drill[1].part_advance

42357

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


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 instrução ladder A. Clique no símbolo ?.
imediato B. Digite o valor ou nome do tag, rótulo ou item semelhante.
• digitar o nome de um C. Pressione a tecla Enter.
tag, conector de fio,
rótulo ou item instrução de bloco de função A. Clique no símbolo ?.
semelhante 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 A. Abra a caixa de entrada de texto:
de fio, rótulo ou item
semelhante de uma lista Em uma: Faça isto:
instrução ladder Clique duas vezes no símbolo ?.
instrução de bloco de A. Clique no símbolo ?.
função B. Clique novamente no símbolo ?.

C. Clique em ▼
D. Selecione um nome:

Para selecionar um: Faça isto:


conector de fio, rótulo Selecione o nome.
ou tipo de nome
semelhante
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.

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


arrastar um tag da janela instrução ladder A. Localize o tag na janela Tags.
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

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


4-10 Rotinas de Programas

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

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:

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.
D. Na lista Scope, selecione o escopo do tag:

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

E. Escolha OK.

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.

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


Capítulo 5

Acesso aos Valores do Sistema

Monitoração dos Flags de O controlador suporta as palavras-chaves de status que você pode
usar na sua lógica para monitorar eventos específicos:
Status • 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 S: V
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)
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 S:C
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
esta é a primeira varredura normal das rotinas no programa atual S:FS
pelo menos uma das falhas de advertência foi gerada: S:MINOR
• 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.

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


5-2 Acesso aos Valores do Sistema

Obtenção e Definição dos O controlador armazena os dados do sistema em objetos. Não há


arquivo de status, como no controlador CLP-5. Use as instruções
Dados de Sistema 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.

Use a instrução SSV com cuidado. Fazer mudanças


ATENÇÃO
em objetos pode causar operação não esperada do
controlador ou danos pessoais.

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

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


Acesso aos Valores do Sistema 5-3

5. Clique no objeto requisitado.

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 CST
em um chassi
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 PROGRAM
um programa
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

6. Na lista dos atributos para o objeto, identifique o atributo que


você quer acessar.

7. Crie um tag para o valor de atributo:

Se o tipo de dados do atributo Então:


for:
um elemento (por exemplo, DINT) Crie um tag para o valor de atributo:
mais que um elemento (por A. Crie um tipo de dado definido pelo
exemplo, DINT[7]) 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..

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

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


5-4 Acesso aos Valores do Sistema

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

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.

Os exemplos seguintes informam a hora e data atuais.

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

Para maiores informações, consulte Manual de Referência do


Conjunto das Instruções Gerais do Logix5000, publicação
1756-RM003D-PT.

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


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


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.

stop é um alias/símbolo para stop start


Local:2:I.Data.1 (botão de parada <Local:2:I.Data.1> <Local:2:I.Data.0>
no painel de operação) machine_on

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

conveyor_on é um alias/símbolo conveyor_on


<Local:0:O.Data.0>
para Local:0:O.Data.0
(contator de acionamento para o
motor da esteira transportadora)

42351

Exibição das Informações Para mostrar (em sua lógica) o tag para o qual um alias/símbolo
aponta:
de Alias/Símbolo
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.

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


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

Atribuição de um Alias/ Para atribuir um tag com alias/símbolo para outro tag:
Símbolo 1. A partir do menu Logic, selecione Edit.

2.

42360

3.

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á:

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.

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

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


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

Notas:

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


Capítulo 7

Atribuição de um Endereço Indireto

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

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.

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


indireto:

Para: Use um tag no subscrito e:


selecionar uma receita de uma matriz de Insira o número da receita no tag.
receitas
carregar a configuração de uma máquina Insira a configuração desejada no tag.
específica, a partir de uma matriz de
configurações possíveis
carregar os parâmetros ou estados de uma A. Realize a ação requisitada no
matriz, um elemento de cada vez primeiro elemento.
B. Use uma instrução ADD para
registrar códigos de erro incrementar o valor do tag e aponte
realizar diversas ações em um elemento da para o próximo elemento na matriz.
matriz e, então indexe para o próximo
elemento

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


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

MOV
Move
Source timer_presets[north_tank.step]
60000
Dest north_tank.step_time.PRE
60000

north_tank.step_time.DN TON
/ Timer On Delay EN
Timer north_tank.step_time DN
Preset 60000
Accum 0

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.

north_tank.step_time.DN ADD
Add
Source A 1
Source B north_tank.step
0
Dest north_tank.step
0

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

EQU MOV
Equal Move
Source A north_tank.step Source 0
0
Source B 4 Dest north_tank.step
0

42358

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


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:

Operador: Descrição: Operador: Descrição:


+ adição MOD Módulo
– subtração/negação NOT complemento
* multiplicação OR OR
/ divisão SQR raiz quadrada
ABS Valor Absoluto TOD de inteiro para BCD
AND AND TRN Truncado
FRD de BCD para inteiro XOR OU exclusivo

Formate suas expressões como a seguir:

Se o operador requisitar: Use este formato: Exemplos:


um valor (tag ou expressão) operador (valor) ABS(tag_a)
dois valores value_a operator value_b • tag_b + 5
(tags, constantes ou expressões) • tag_c AND tag_d
• (tag_e ** 2) MOD
(tag_f / tag_g)

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


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

Notas:

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


Capítulo 8

Buffer de E/S

Quando Usar o Buffer 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
de E/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


8-2 Buffer de E/S

EXEMPLO Buffer de E/S

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

JSR JSR JSR


Jump to Subroutine Jump to Subroutine Jump to Subroutine
Routine name map_inputs Routine name drill Routine name map_outputs

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

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

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

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

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


/ ONS /
drill[1].forward

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


/
drill[1].retract

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

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

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

42369

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


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.

CPS
Synchronous Copy File
Source Local:0:I.Data[0]
Dest input_buffer[0]
Length 20

42578

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


8-4 Buffer de E/S

Notas:

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


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 O software RSLogix 5000 requer um driver de comunicação para se


comunicar com o controlador. Para configurar drivers de
de Comunicação 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:

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

4. Clique em Add New.

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


nome padrão.

6. Escolha OK.

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


9-2 Teste de um Projeto

7. Configure o driver:

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.

3. Clique em OK.

4. Clique em Close.

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


Projeto para o Controlador 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.

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


Teste de um Projeto 9-3

Seleção de um Modo Para testar um projeto, selecione um modo para o controlador:


para o Controlador

Selecione o modo requisitado.

42371

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


9-4 Teste de um Projeto

Correção de uma Falha Se o controlador inserir o modo de falha, uma falha grave ocorreu e
o controlador parou de executar a lógica.
Graves

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.

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.

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.

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

Se você quiser: Faça isto:


armazenar as mudanças online e os valores No menu File, selecione Save.
de dados
armazenar as mudanças online, mas não os A. A partir do menu Communications,
valores de dados online selecione Go Offline.
B. No menu File, selecione Save.

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


Capítulo 10

Comunicação com Outro Controlador

Quando Usar este Use este procedimento para transferir dados entre controladores
(enviar ou receber dados) usando um destes métodos:
Procedimento
• Produção e Consumo de um Tag
• Envio de Mensagens

Como Usar Este Selecione um método para a transmissão de dados entre


controladores:
Procedimento
Se os dados: Então:
precisarem de uma entrega regular a Produção e Consumo de um Tag
uma taxa que você especificar (requer uma rede ControlNet ou placa de
(ex: determinística) fundo do chassi ControlLogix)
forem enviados quando uma condição Envio de Mensagens
específica ocorrer em sua aplicação

Produção e Consumo Um tag produzido envia seus dados para um ou mais tag
consumidos (consumidores) sem usar a lógica ladder.
de um Tag

Rede ControlNet
e/ou
controller_1 Placa de fundo do chassi controller_2
ControlLogix
tag produzido tag consumido

controller_3
tag consumido

controller_4
tag consumido

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


10-2 Comunicação com Outro Controlador

Você pode usar tags produzidos e consumidos com as seguintes


combinações de controlador e rede.

Este controlador: Pode produzir e consumir tags nesta rede:


Placa de fundo ControlNet Ethernet
do chassi
PLC-5 ✔
ControlLogix ✔ ✔ ✔
FlexLogix ✔
SoftLogix ✔

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:

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


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


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

5. 6.

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


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.

7.

8. 42353

9.

10.

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.

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


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.

IMPORTANTE Se uma conexão de tag consumido falhar, todos os


outros tags sendo consumidos a partir daquele
controlador remoto param de receber dados.

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


de Dados com um • Produção de Inteiros para um Controlador CLP-5C
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.

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


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?

Se estiver Então:
produzindo:
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.

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.

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


10-8 Comunicação com Outro Controlador

5. No controlador CLP-5C, reconstrua os dados de ponto flutuante,


conforme o descrito no seguinte exemplo:

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

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

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


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:

Tipo dos dados: Descrição:


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

6. Crie um tag consumido com as seguintes propriedades:

Para esta Digite ou selecione:


propriedade de tag:
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.

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

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


10-10 Comunicação com Outro Controlador

Ajuste para os Limites Você pode criar um tag produzido ou consumido de até 500 bytes.
Quando você compartilhar um tag em uma rede ControlNet, o tag
de Tamanho 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:.

A maioria dos módulos no chassi Então selecione este formato de


são módulos de E/S digital, sem comunicação para o módulo CNB
diagnóstico? remoto:
Sim Otimização de Gaveta
Não Nenhum

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.

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


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:

EXEMPLO Mensagem para outro controlador Logix5000

Quando count_send estiver energizado, envie count_msg

count_send count_msg.en MSG


/ Type - Unconfigured EN
Message Control count_msg ... DN
ER

Digite: MESSAGE
Uso: Controlador

42188

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:

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


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.
message.EN fal_control FAL MSG
/ RES File Arith/Logical EN Type - Unconfigured EN
Control fal_control Message Control message ... DN
Length ? DN ER
Position 0
Mode all ER
Dest int_buffer[fal_control.pos]
??
Expression dint_array[fal_control.pos]

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.

message.EN MSG
/ Type - Unconfigured EN
Message Control message ... DN
ER

message.DN fal_control FAL


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

42192

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


Capítulo 11

Produção de uma Matriz Grande

Quando Usar Este O controlador Logix5550 pode enviar até 500 bytes de dados em uma
única conexão programada. Isto corresponde a 125 elementos DINT
Procedimento 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:

Produtor Consumidor

matriz matriz
pacote pacote
0

123 offset offset


124 reconhecimento reconhecimento

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


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 1. Abra o projeto RSLogix 5000 que produzirá a matriz.
Grande 2. Na pasta Controller Tags, crie os seguintes tags:

P Nome do Tag Tipo


array_ack DINT[2]
✓ array_packet DINT[125]

onde:

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

3. Converta array_ack para um tag consumido:

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.

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

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


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:

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

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:

Conta quanto tempo dura o envio de toda a matriz


TON
Timer On Delay EN
Timer array_transfer_timer DN
Preset 10000000
Accum 0

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.
NEQ EQU MOV
Not Equal Equal Move
Source A array_ack[0] Source A array_ack[1] Source -999
0 0
Source B array_packet[123] Source B -999 Dest array_packet[124]
0 0

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


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]).
EQU
Equal
Source A array_ack[0]
0
Source B array_packet[123]
0

CMP ADD
Compare Add
Expression (array_ack[0] + 123) < array_size Source A array_packet[123]
0
Source B 123

Dest array_offset
0

CMP CLR
Compare Clear
Expression (array_ack[0] + 123) >= array_size Dest array_offset
0

MOV
Move
Source array_transfer_timer.ACC
0
Dest array_transfer_time
0
array_transfer_timer
RES

COP MOV CLR


Copy File Move Clear
Source array[array_offset] Source array_offset Dest array_packet[124]
Dest array_packet[0] 0 0
Length 123 Dest array_packet[123]
0

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.
GRT MOV
Greater Than (A>B) Move
Source A array_transfer_time Source array_transfer_time
0 0
Source B array_transfer_time_max Dest array_transfer_time_max
0 0

42355

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


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:

P Nome do Tag Tipo


✓ array_ack DINT[2]
array_packet DINT[125]

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:

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.

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:

Nome do Tag Tipo


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

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.

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


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.
NEQ
Not Equal
Source A array_packet[123]
0
Source B array_ack[0]
0

EQU MOV
Equal Move
Source A array_packet[124] Source array_packet[123]
0 0
Source B -999 Dest array_offset
0

COP
Copy File
Source array_packet[0]
Dest array[array_offset]
Length 123

MOV
Move
Source array_packet[123]
0
Dest array_ack[0]
0

CLR
Clear
Dest array_ack[1]
0

NEQ MOV
Not Equal Move
Source A array_packet[124] Source -999
0
Source B -999 Dest array_ack[1]
0

42356

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


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


11-8 Produção de uma Matriz Grande

Notas:

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


Capítulo 12

Comunicação com um Dispositivo ASCII

Quando Usar Este Use este procedimento para trocar dados ASCII com um dispositivo
através da porta serial do controlador. Por exemplo, você pode usar a
Procedimento 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.

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

42237

Como Usar Este Para completar este procedimento, execute as seguintes tarefas:
Procedimento • 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

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


12-2 Comunicação com um Dispositivo ASCII

Conexão do Dispositivo 1. Para a porta serial do dispositivo ASCII, determine quais os


pinos enviam sinais e quais recebem sinais.
ASCII
2. Conecte os pinos de envio para os pinos receptores
correspondentes e conecte os jumpers:

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


handshake
Dispositivo ASCII Controlador

1 CD 1 CD

2 RDX 2 RDX

3 TXD 3 TXD
4 DTR 4 DTR
COMMON COMMON

6 DSR 6 DSR

7 RTS 7 RTS

8 CTS 8 CTS

9 9 42231

sem handshake
Dispositivo ASCII Controlador

1 CD 1 CD

2 RDX 2 RDX

3 TXD 3 TXD
4 DTR 4 DTR
COMMON COMMON

6 DSR 6 DSR

7 RTS 7 RTS

8 CTS 8 CTS

9 9 42232

3. Conecte o cabo blindado a ambos conectores

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

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


Comunicação com um Dispositivo ASCII 12-3

Configuração da Porta 1. Determine as seguintes configurações de comunicação para o


dispositivo ASCII:
Serial
a. taxa de transmissão
b. bits de dados
c. paridade
d. bits de parada

2. Abra o RSLogix 5000™.

42627

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

4. Clique na guia Serial Port.

5.

6.

42251

5. Selecione User.

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


etapa 1.

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


12-4 Comunicação com um Dispositivo ASCII

7.

8.
9.
42251

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

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


você não estiver Sem Handshaking Vá para etapa 10
usando um modem
você estiver usando ambos os modems em um Full Duplex
um modem link ponto-a-ponto são
full-duplex
o modem mestre é controlador mestre Full Duplex
full-duplex, enquanto o
controlador escravo Half Duplex Selecione a caixa de verificação
modem escravo é
Continuous Carrier.
half-duplex
todos os modems no Half Duplex Desmarque a caixa de
sistema são half-duplex verificação Continuous Carrier
(padrão).

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.

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


Comunicação com um Dispositivo ASCII 12-5

Configuração do Protocolo 1. Clique na guia User Protocol (Protocolo do Usuário).


do Usuário

2.
3.

42252

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 Então: Notas:


envia:
um caracter de A. Na caixa de texto Termination Para os caracteres
terminação Character 1, digite o código que podem ser
ASCII hexadecimal para o impressos, como 1
primeiro caracter. ou A, digite o
B. Na caixa de texto Termination caracter.
Character 2, digite $FF.
dois caracteres de Nas caixas de texto Termination
terminação Character 1 e 2, digite o código ASCII
hexadecimal para cada caracter.

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


12-6 Comunicação com um Dispositivo ASCII

4.
5.
6.

7.

42252

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.

Para anexar: Então: Notas:


um caracter A. Na caixa de texto Append Para os caracteres
Character 1, digite o código que podem ser
ASCII hexadecimal para o impressos, como 1
primeiro caracter. ou A, digite o
B. Na caixa de texto Append caracter.
Character 2, digite $FF.
dois caracteres Nas caixas de texto Append Character
1 e 2, digite o código ASCII
hexadecimal para cada caracter.

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.

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


Comunicação com um Dispositivo ASCII 12-7

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

Se um dispositivo ASCII Selecione: Notas:


for:
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.

8. Clique em OK.

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


12-8 Comunicação com um Dispositivo ASCII

Criação de Tipos de Dados Você armazena caracteres ASCII nos tags que usam um tipo de dado
grupo.
do String

42811

42812

Você pode usar o tipo de dados STRING ou Você pode criar um novo tipo de dados string para
padrão. Ele armazena até 82 caracteres. 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 você: Então:
crie um tipo de dados de • Os dados estão truncados.
string menor • O LEN não é trocado.
crie um tipo de dados de Os dados e LEN são resetados para
string maior. zero.

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

Se: Então:
não Vá para Leitura de Caracteres do Dispositivo na página 12-9.
3.
sim Vá para a etapa 2.

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

4.

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


Comunicação com um Dispositivo ASCII 12-9

Leitura de Caracteres do Como regra geral, antes de ler o buffer, use uma instrução ACB ou
ABL para verificar qual buffer contém os caracteres requisitados:
Dispositivo
• 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.

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.

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

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

2. Insira a seguinte linha:

4. 3.
5.

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

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


12-10 Comunicação com um Dispositivo ASCII

6. Insira a seguinte linha:

10. 9.

7. 8. 11. 12.
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.

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


Comunicação com um Dispositivo ASCII 12-11

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.

bar_code_count.EN ACB
/ ASCII Chars in Buffer EN
Channel 0 DN
SerialPort Control bar_code_count ER
Character Count 0

Quando o buffer 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.

GEQ ARD
Grtr Than or Eql (A>=B) ASCII Read EN
Source A bar_code_count.pos Channel 0
0 Destination bag_bar_code DN
Source B 24 ''
SerialPort Control bar_code_read ER
String Length 24
Characters Read 0
42227

13. Você que enviar dados para o dispositivo?

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


12-12 Comunicação com um Dispositivo ASCII

14. Insira a seguinte linha:

16. 15.
17.

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:

21. 20.
19.

22. 23.
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.

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


Comunicação com um Dispositivo ASCII 12-13

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.

MV_line.EN ABL
/ ASCII Test For Buffer Line EN
Channel 0 DN
SerialPort Control MV_line ER
Character Count 0

Quando a instrução ABL encontra 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.FD ARL
ASCII Read Line EN
Channel 0
Destination MV_msg DN
''
SerialPort Control MV_read ER
String Length 12
Characters Read 0

42226

24. Você que enviar dados para o dispositivo?

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


12-14 Comunicação com um Dispositivo ASCII

Envio de Caracteres 1. Determine onde iniciar:


para o Dispositivo
Se você: E você: Então:
sempre envia o mesmo número quer automaticamente adicionar um ou dois Vá para a etapa 2
de caracteres caracteres no fim dos dados
não quer anexar os caracteres Vá para etapa 9
envie números diferentes de quer automaticamente adicionar um ou dois Vá para etapa 16
caracteres caracteres no fim dos dados
não quer anexar os caracteres Vá para etapa 24

2. Insira a seguinte linha:

5. 4.
3.

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

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


Comunicação com um Dispositivo ASCII 12-15

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 AWA
ASCII Write Append EN
Channel 0
Source string[1] DN
'$1425\1'
SerialPort Control temp_high_write ER
String Length 5
Characters Sent 6
42229

8. Vá para a páginaInserção dos Caracteres ASCII 12-20.

9. Insira a seguinte linha:

12. 11.
10.

13. 14.
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.

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


12-16 Comunicação com um Dispositivo ASCII

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 AWT
ASCII Write EN
Channel 0
Source string[2] DN
'$142224\01$r'
SerialPort Control temp_low_write ER
String Length 9
Characters Sent 9
42229

15. Vá para Inserção dos Caracteres ASCII na página 12-20.

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


Comunicação com um Dispositivo ASCII 12-17

16. Insira a seguinte linha:

19. 18.
17.

21. 22. 20.


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

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


12-18 Comunicação com um Dispositivo ASCII

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 MOV AWA


Move ASCII Write Append EN
Source alarm_msg.LEN Channel 0
5 Source alarm_msg DN
Dest alarm_write.LEN '$1425\1'
5 SerialPort Control alarm_write ER
String Length 5
Characters Sent 6
42229

23. Vá para Inserção dos Caracteres ASCII na página 12-20.

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


Comunicação com um Dispositivo ASCII 12-19

24. Insira a seguinte linha:

27. 26.
25.

29. 30. 28.


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

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 MOV AWT


Move ASCII Write EN
Source MV_msg.LEN Channel 0
10 Source MV_msg DN
Dest MV_write.LEN '$161365\8\1$r'
10 SerialPort Control MV_write ER
String Length 10
Characters Sent 10
42229

31. Vá para Inserção dos Caracteres ASCII na página 12-20.

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


12-20 Comunicação com um Dispositivo ASCII

Inserção dos Caracteres Determine se você deve completar esta etapa:


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

1.

42616

1. Clique duas vezes na área de valor do Source.

2.

alimentação da linha
($0A)
linha nova ($0D$0A)

retorno do carro ($0D)

42615

O número de caracteres que você visualiza O número máximo de caracteres que o tag
na janela. Esta é a mesma janela do membro do string pode segurar.
LEN do tag do string.

2. Insira os caracteres para o string.

3. Selecione OK.

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


Capítulo 13

Caracteres do Processo ASCII

Quando Usar Este Use este procedimento para:


Procedimento • 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
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.

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:

Se você quiser: Consulte: Na página:


iniciar uma ação baseada no código de Separação de um Código de 13-2
barras Barras
usar um peso de uma balança Conversão de um Valor 13-6
decodificar uma mensagem a partir de Decodificação de uma 13-8
um terminal de operação Mensagem ASCII
criar um string para enviar para um Construção de um String 13-12
terminal de operação

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.

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


13-2 Caracteres do Processo ASCII

Separação de um Código de Use as etapas a seguir para separar um código de barras para que
você possa realizar a ação com base nesse valor.
Barras
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.

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

Etapas:

1. Insira a seguinte linha:


3. 4.

2.

42808

5. 6.

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.

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


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


13-4 Caracteres do Processo ASCII

Verificação de Caracteres Nesta tarefa, você usa uma instrução de comparação (EQU, GEQ,
GRT, LEQ, LES, NEQ) para verificar os caracteres específicos.
do Código de Barras
• 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.

Caracteres ASCII Códigos Hex


1ab $31$61$62
m m 1b $31$62
e a
A $41
n i
o o AB $41$42 AB < B
r r
B $42
A $61 a>B
ab $61$62

Etapas:

1. Insira uma linha e uma instrução de comparação:

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

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


Caracteres do Processo ASCII 13-5

2. 3. 6.

4. 42808

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.

42615
6. Insira a saída requerida.

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

7. Você quer verificar uma outra parte do código de barras?

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


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?

Se: Então:
ponto flutuante Vá para a etapa 2.
inteiro Vá para a etapa 7.

2. Insira a seguinte linha:


4. 5.

3.

42810

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.

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


Caracteres do Processo ASCII 13-7

6. Vá para a etapa 11.

7. Insira a seguinte linha:

9. 10.

8.

42810

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.

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

11. Este string possui um outro valor que você queira usar?

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


13-8 Caracteres do Processo ASCII

Decodificação de uma Use as etapas a seguir para extrair e converter um valor de uma
mensagem ASCII que contenha múltiplos valores.
Mensagem ASCII
Por exemplo, uma mensagem pode ser semelhante a:

primeiro valor segundo valor terceiro valor

[Ctrl-F] nº de \ F-key \ F-key action [CR]


mensagem

caractere de delimitador delimitador caractere de terminação


controle

1. Determine em que lugar começar:

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.

2. Que tipo de número é o valor?

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

Linha A: Encontre e
Converta um Valor de
Ponto Flutuante

42810

Linha B: Encontre e
Converta um Valor
Inteiro

42810

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


Caracteres do Processo ASCII 13-9

4. 5. 6.

3.

42810

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

42615

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.

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


13-10 Caracteres do Processo ASCII

10. 11.

42810

12. 13.

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?

Se: Então:
STOR Vá para a etapa 15.
STOD Vá para a etapa 18.

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


Caracteres do Processo ASCII 13-11

15. 16.

42809

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

42809

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?

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


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:

[Ctrl-F] nº de \ endereço [CR]


mensagem

caractere de delimitador caractere de terminação


controle

• 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. 3. 4.

42813

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.

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


Caracteres do Processo ASCII 13-13

5. 6. 8.

42813

9. 10.

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.

42615

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.

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


13-14 Caracteres do Processo ASCII

11. 12. 13. 14.

42813

15.

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.

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


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


13-16 Caracteres do Processo ASCII

Notas:

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


Capítulo 14

Force Valores

Quando Forçar um Valor Use um force para suprimir um valor de entrada ou saída:

Se quiser suprimir: Então, force o Notas:


um valor do tag produzido de outro tag consumido Forçar um tag de entrada ou consumido:
controlador • suprime o valor independente do valor do dispositivo
físico ou tag produzido
um valor de um dispositivo de entrada bit ou valor dos dados de
• não afeta o valor recebido por outros controladores
entrada
monitorando aquele tag de entrada ou produzido
sua lógica e especificar o valor de um tag tag produzido • Forçar um tag de saída ou produzido suprime a
produzido lógica para o dispositivo físico ou outro(s)
controlador(es).
sua lógica e especificar o estado de um bit ou valor dos dados de • Outros controladores monitorando aquele módulo de
dispositivo de saída saída
saída, com uma capacidade para somente receber
os dados, também acessarão o valor forçado.

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 os forces estão habilitados e nada é forçado,


ATENÇÃO
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


14-2 Force Valores

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.

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.

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


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


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.

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.

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 forçado.
Selecione Remove Force.

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


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.

Habilitar forces faz com que os valores de entrada,


ATENÇÃO
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.

Você habilita os forces a partir da barra Online.

Forces Installed indica que os


valores de force foram inseridos.
Selecione Enable all forces.

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.

Quando os forces estão habilitados, um > aparece próximo ao valor


de force no editor de lógica ladder.

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


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.

Selecione Disable all forces.

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

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.

Se você removeu os forces, mas os forces ainda


ATENÇÃO
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.

Remover o force em um tag com alias/símbolo também remove o


force do tag base.

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


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.

Selecione Remove all forces.

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

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.

O exemplo a seguir mostra como verificar se forces estão presentes e


habilitados, e definir seu próprio indicador LED.

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
Este bit identifica Este bit identifica quando os forces
que os forces estão que os forces estão estão habilitados.
instalados. habilitados.

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


14-8 Force Valores

Notas:

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


Capítulo 15

Desenvolvimento de uma Rotina de Falha

Quando Usar Este Se uma condição de falha ocorrer, que seja severa o suficiente para
que o controlador desligue, o controlador gera uma falha grave e
Procedimento 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.

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.

Desenvolvimento de uma Para remover uma falha específica:


Rotina de Falha 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:

Nome: Tipo de Dados: Estilo:


TimeLow DINT Decimal
TimeHigh DINT Decimal
Type INT Decimal
Code INT Decimal
Info DINT[8] Hexadecimal

2. Crie um tag que armazenará as informações de falha. Selecione


o tipo de dados FaultRecord.

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


15-2 Desenvolvimento de uma Rotina de Falha

3. Que tipo de falhas você quer que a lógica remova?

Para uma falha Faça isto:


que ocorreu
devido:
à execução de Crie uma rotina de falha para o programa:
uma instrução 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 Crie um programa e rotina principal para o Controller Fault Handler
alimentação (Organizador de Falha do Controlador:
E/S A. No organizador do controlador, clique com o botão direito do mouse em Controller Fault
Handler e selecione New Program (Novo Programa).
watchdog da B. Digite:
tarefa • name_of_program
mudança de • description (opcional)
modo C. Clique em OK.
eixo de D. Clique no sinal de + próximo a Controller Fault Handler.
movimento 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_routine
L. Clique em OK.
M. Clique duas vezes em name_of_routine.

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


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)
GSV
Get system value
CIP Object class PROGRAM
CIP Object name THIS
Attribute name MAJORFAULTRECORD
Dest major_fault_record.Time_Low
0

Se fault_type, fault_code ocorrer, configure o tipo e o código da falha no tag


major_fault_record para zero.

EQU EQU
Equal Equal
Source A major_fault_record.Type Source A major_fault_record.Code
0 0
Source B fault_type Source B fault_code

MOV MOV
Move Move
Source 0 Source 0
Dest major_fault_record.Type Dest major_fault_record.Code
0 0

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.

SSV
Set system value
CIP Object class PROGRAM
CIP Object name THIS
Attribute name MAJORFAULTRECORD
Source major_fault_record.Time_Low
0

42372

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


15-4 Desenvolvimento de uma Rotina de Falha

Teste de uma Rotina 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):
de 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:

onde: é o:
aaa tag que você usará para iniciar a falha (Etapa 1.)
bbb rotina de falha do programa

3. Para simular uma falha, energize a condição de entrada.

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


Capítulo 16

Criação de uma Falha Grave Definida Pelo


Usuário

Quando Usar este Se você quiser suspender (desligar) o controlador, baseado em


condições na sua aplicação, crie uma falha grave definida pelo
Procedimento 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.

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.

Criação de uma Falha 1. Já existe uma rotina de falha para o programa?


Grave Definida pelo Se: Então:
Usuário 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


16-2 Criação de uma Falha Grave Definida Pelo Usuário

2. Na rotina principal do programa, insira a seguinte linha:

condições nas quais o JSR


Jump to Subroutine
controlador deve Routine name name_of_fault_routine
desligar Input par x

42373

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.
GEQ JSR
Grtr Than or Eql (A>=B) Jump to Subroutine
Source A input_value Routine name name_of_fault_routine
0 Input par 999
Source B 80

42373

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


Capítulo 17

Monitoração de Falhas de Advertência

Quando Usar Este 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
Procedimento 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 Para usar a lógica ladder para obter informações sobre uma falha de
advertência:
Advertência
Para verificar: Faça isto:
Sobreposição de tarefas 1. Insira uma instrução GSV, que obtém o objeto FAULTLOG, atributo MinorFaultBits.
periódicas 2. Monitore o bit 6.
carregue a memória não 1. Insira uma instrução GSV, que obtém o objeto FAULTLOG, atributo MinorFaultBits.
volátil 2. Monitore o bit 7.
um problema com a porta 1. Insira uma instrução GSV, que obtém o objeto FAULTLOG, atributo MinorFaultBits.
serial 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 1. Crie um tipo de dado definido pelo usuário que armazene as informações de falhas. Dê um nome
instrução 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).

O seguinte exemplo verifica a existência de um aviso de bateria fraca.

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


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


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


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

Notas:

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


Capítulo 18

Desenvolvimento de uma Rotina de


Energização

Quando Usar Este A rotina de power-up é uma tarefa adicional que é executada quando
o controlador é energizado no modo de Operação.
Procedimento

42195

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 As etapas para o desenvolvimento de uma rotina de energização são


semelhantes ao desenvolvimento de uma rotina de falha:
Rotina de Energização
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:

Nome: Tipo de Dados: Estilo:


TimeLow DINT Decimal
TimeHigh DINT Decimal
Type INT Decimal
Code INT Decimal
Info DINT[8] Hexadecimal

2. Crie um tag que armazenará as informações de falha. Selecione


o tipo de dados FaultRecord.

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


18-2 Desenvolvimento de uma Rotina de Energização

3. Crie um programa para a Rotina de Power-up:

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 A. Clique no sinal de + que está próximo a Power-Up Handler.
principal (a rotina que é B. Clique com o botão direito do mouse em name_of_program e selecione New
executada primeiro no programa). 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_routine
I. Clique em OK.
J. Para acrescentar rotinas adicionais (subrotinas) para o programa, repita as etapas B.
a E.

3. Como você quer manusear uma perda de alimentação?

Para: Faça isto:


Evitar que o controlador retorne ao Procedimento concluído. Quando a
modo de Operação 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, A. Abra (clique duas vezes)
tomar ações específicas e reiniciar a name_of_routine.
operação normal. B. Insira a lógica para as ações.

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


Desenvolvimento de uma Rotina de Energização 18-3

4. Insira a seguinte lógica para remover a falha:

Obtém as informações de falha e armazena-as no tag major_fault (estrutura definida pelo usuário)
GSV
Get system value
CIP Object class PROGRAM
CIP Object name THIS
Attribute name MAJORFAULTRECORD
Dest major_fault.TimeLow
0

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.
MOV MOV SSV
Move Move Set system value
Source 0 Source 0 CIP Object class PROGRAM
CIP Object name THIS
Dest major_fault.Type Dest major_fault.Code Attribute name MAJORFAULTRECORD
0 0 Source major_fault.TimeLow
0

42375

onde:

major_fault é o tag da etapa 2.

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


18-4 Desenvolvimento de uma Rotina de Energização

Notas:

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


Capítulo 19

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

Quando Usar Este Atualmente, somente os controladores 1756-L55M23 e -L55M24


possuem memória não volátil para o armazenamento de um projeto.
Procedimento No futuro, acrescentaremos esse recurso para outros controladores da
família de controladores Logix5000.

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.

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

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


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

Um armazenamento ou carregamento possui os seguintes parâmetros:

Tabela 19. A Parâmetros de um armazenamento ou carregamento

Parâmetro: Armazenamento: Carregamento:


Quanto tempo é necessário para se fazer muitos minutos muitos segundos
um armazenamento ou carregamento?
Em que modo (s) do controlador posso modo programa
armazenar ou carregar um projeto?
Posso ficar on-line com o controlador não
durante um armazenamento ou
carregamento?
Qual é o estado da E/S durante um A E/S permanece em seu estado
armazenamento ou carregamento? configurado durante o modo programa.

Como Usar Este


Procedimento Se você quiser: Então:
armazenar um projeto na memória não volátil do Vá para “Armazenamento de um
controlador Projeto” na página 19-3.
sobrescrever o projeto atual no controlador com o Vá para “Carregamento de um
projeto que está armazenado na memória não volátil Projeto" na página 19-6
do controlador
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 Vá para “Verificação do
foi carregado a partir da memória não volátil Carregamento” na página 19-9.
remover um projeto da memória não volátil do Vá para “Apagamento da Memória
controlador Não Volátil” na página 19-10.

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


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

Armazenamento de um Nesta tarefa, você armazena um projeto na memória não volátil do


controlador. Isto substitui um projeto que esteja atualmente na
Projeto memória não volátil

Durante um armazenamento, todos os eixos servo


ATENÇÃO
ativos estão desligados. Antes de armazenar um
projeto, certifique-se de que isto não causará

! nenhum movimento inesperado do eixo.

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.

42627

3. Na barra de ferramentas On-line, clique no botão controller


properties.

4. Clique na guia Nonvolatile Memory.

5.

42865

5. Selecione Load/Store.

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


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

Projeto que atualmente está na memória não volátil Projeto que atualmente está na memória do usuário
do controlador (se houver um projeto). (RAM) do controlador.

6.

7.

8.

42866

9.

6. Quando (sob que condições) você quer carregar o projeto de


volta para a memória do usuário (RAM) do controlador?

Se você quer carregá-lo: Então selecione: Notas:


sempre que você ligar ou ON Power Up • Durante o ciclo de alimentação, você perderá todas as alterações
desligar ou ligar o ciclo de on-line, valores de tag e programa de rede que você não armazenou
alimentação do chassi 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 On Corrupt Memory • Com esta opção, o projeto também é carregado quando você
projeto no controlador e você atualizar o firmware do controlador. Depois do carregamento, o
ligar ou desligar ou ligar a controlador automaticamente vai para o modo selecionado na lista
alimentação do chassi Load Mode (etapa 7)

• Você pode sempre usar o software RSLogix 5000 para fazer o


carregamento do projeto.
somente para o software User Initiated
RSLogix 5000

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


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?

Se: Então:
On Power Up Selecione o modo que você quer que o controlador
fique depois de um carregamento:
On Corrupt Memory
• 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.
User Initiated Vá para etapa 8.

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.

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


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

Carregamento de um Nesta tarefa, você usa o software RSLogix 5000 para fazer o
carregamento do projeto na memória não volátil.
Projeto
Durante um carregamento, todos os eixos servo
ATENÇÃO
ativos estão desligados. Antes de carregar um
projeto, certifique-se de que isto não causará

! nenhum movimento inesperado do eixo.

Etapas:

1. Fique on-line com o controlador.

2. O diálogo a seguir abriu?

42873

Se: Então:
Não Vá para etapa 3
Sim Vá para etapa 5

3. Coloque o controlador no modo Programa (Programa Remoto


ou Programa).

4.

42627

4. Na barra de ferramentas Online, clique no botão controller


properties.

5. Clique na guia Nonvolatile Memory.

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


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

6.

42865

6. Selecione Load/Store.

Projeto que atualmente está na memória não volátil Projeto que atualmente está na memória do usuário
do controlador (se houver um projeto). (RAM) do controlador.

42866

7.

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.

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


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


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

Verificação do Quando o controlador carrega um projeto da memória não volátil, as


seguintes informações são fornecidas:
Carregamento
• 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


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

Apagamento da Memória Geralmente, você não precisa apagar a memória não volátil do
controlador. Ao armazenar um projeto, você substitui todos os
Não Volátil 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.

42627

2. Na barra de ferramentas Online, clique no botão controller


properties.

3. Clique na guia Nonvolatile Memory.

4.

42865

4. A opção Load Image está ajustada para User Initiated ?

Se: Então:
Não Vá para etapa 5
Sim Vá para etapa 11

5. Selecione Load/Store.

6. Na lista Load Image, selecione User Initiated.

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


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.

42865

16. Selecione Load/Store.

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


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

42874

17.

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.

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


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 Verifique se o módulo de E/S está no chassi. Verifique os
falhou. 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 Espere que o LED indicador de E/S do controlador fique verde
estabelecida antes de passar para o modo antes de mudar para o modo Run.
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 Ajuste o valor de acordo com a faixa válida. Não exceda o tamanho
de controle . POS ou . LEN é inválida. 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 Transfira o número de parâmetros apropriado. Se muitos
correspondem aos da instrução SBR ou RET parâmetros são transferidos, os extras são ignorados sem qualquer
associada. erro.
4 34 Uma instrução do temporizador tem um valor Arrume o programa para não carregar um valor negativo no valor
pré-programado acumulado ou negativo. pré-programado ou acumulado do temporizador.
4 42 Salto (JMP) para um label não existia ou foi Corrija a JMP alvo ou adicione o label que estiver faltando.
deletado.
4 83 Os dados testados não estavam dentro dos Modifique o valor de acordo com os limites.
limites requisitados.
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


A-2 Códigos de Falha

Table A.1 Códigos e Tipos de Falhas Graves (Continuação)

Digite: Código: Causa: Método de Recuperação:


6 1 O watchdog da tarefa expirou. Aumente o watchdog da tarefa, diminua o tempo de execução,
A tarefa do usuário não se completou no eleve o nível de prioridade dessa tarefa,simplifique as tarefas de
período de tempo específico. Um erro de maior prioridade ou mova algum código para outro controlador.
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.
7 40 Armazenamento na memória não volátil que 1. Tente armazenar novamente o projeto para a memória não
falhou. 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 Atualize o firmware do controlador para o mesmo nível de revisão
a revisão de firmware do projeto na memória conforme o projeto que está na memória não volátil.
não volátil não corresponde à revisão de
firmware do controlador.
8 1 Tentativa de colocar o controlador em modo Espere o descarregamento se completar e remova a falha.
Run com a chave seletora de modo durante o
descarregamento.
11 1 A posição real excedeu o limite positivo da Mova o eixo na direção negativa até que a posição esteja dentro
ultrapassagem de curso. do limite de ultrapassagem de curso e execute Motion Axis Fault
Reset.
11 2 A posição real excedeu o limite negativo da Mova o eixo na direção positiva até que a posição esteja dentro do
ultrapassagem de curso. limite de ultrapassagem de curso e execute Motion Axis Fault
Reset.
11 3 A posição real excedeu a tolerância do erro Mova a posição para dentro da tolerância e execute Motion Axis
de posição. Fault Reset.
11 4 A conexão do canal A, B ou Z do encoder está Reconecte o canal do encoder e execute Motion Axis Fault Reset.
interrompida.
11 5 Evento de ruído no encoder detectado ou os Conserte a fiação do encoder e execute Motion Axis Fault Reset.
sinais do encoder não estão na quadratura.
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 Substitua o módulo.
hardware.
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 A taxa de atualização do curso do grupo é muito alta para manter a
sobreposição. operação correta. Remova o tag de falha do grupo, aumente a taxa
de atualização do grupo e remova a falha grave.

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


Códigos de Falha A-3

Códigos de Falha de 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
Advertência 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 Arrume o destino, de modo que tenha espaço suficiente.
todos os dados.
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 1. Verifique se nenhuma instrução está escrevendo
DATA do tag string. 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 Ou:
dados de destino. • 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 Ou:
serial está configurada para "no handshaking". • Mude o ajuste da Linha de Controle da porta
serial.
• Apague a instrução AHL.
6 2 Sobreposição de tarefas periódicas Simplifique o(s) programa(s), ou aumente o período, ou
A tarefa periódica não se completou antes da nova aumente a prioridade relativa etc.
execução.
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. Verifique os seguintes erros na lista de polling:
Um problema foi detectado com a lista de polling do • o número total de estações é maior do que o
DF1 mestre, como por exemplo, especificar mais espaço no tag da lista de polling
estações do que o tamanho do arquivo, especificar mais • o número total de estações é maior do que 255
de 255 estações, tentar indexar após o fim da lista ou • o indicador da estação atual é maior do que o
fazer o polling do endereço de broadcast (STN #255). final do tag da lista de polling
• foram encontradas mais do que 254 estações

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


A-4 Códigos de Falha

Table A.2 Códigos e Tipos de Falhas de Advertência (Continuação)

Digite: Código: Causa: Método de Recuperação:


9 5 Interrupção (timeout) do polling do DF1 escravo. Determine e corrija o atraso para o polling.
O watchdog do polling foi interrompido por um escravo.
O mestre não fez o polling neste controlador no tempo
especificado.
9 9 O contato com o modem foi perdido. Corrija a conexão do modem com o controlador.
As linhas de controle DCD e/ou DSR não estão sendo
recebidas na seqüência e/ou estado corretos.
10 10 Bateria não detectada ou precisa ser substituída. Instale uma bateria nova.

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


Apêndice B

Conformidade IEC61131-3

Use este Apêndice


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

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.

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


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


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 A especificação IEC61131-3 define cinco (5) linguagens de


programação diferentes e um conjunto de elementos comuns. Todas
Programação 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


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 Uma das metas de criação de programas pelos usuários finais em um
ambiente de conformidade com a IEC61131-3 é o movimento ou
IEC61131-3 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


Conformidade IEC61131-3 B-5

Tabelas de Conformidade Os controladores Logix5000 e RSLogix5000 atendem os requerimentos


de IEC61131-3 para os seguintes recursos da linguagem:
com IEC
Código da Código do Descrição do recurso: Extensões e notas de implementação:
tabela:(1) recurso:
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 Nome de tarefas, programa, rotina, estrutura e
números nomes de tag
2 2 Identificadores de uso de maiúsculas, números Nome de tarefas, programa, rotina, estrutura e
e sublinhas embutidas nomes de tag
2 3 Identificadores de uso de maiúsculas e Nome de tarefas, programa, rotina, estrutura e
minúsculas, números e sublinhas embutidas 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 Descrições
caracter 'A'
5 3 String de um comprimento contendo um espaço Descrições
5 4 String de um comprimento contendo um Descrições
caracter de aspa única '$'
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


B-6 Conformidade IEC61131-3

Código da Código do Descrição do recurso: Extensões e notas de implementação:


tabela:(1) recurso:
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 Importação/exportação
derivados
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 Todos os tipos sobrecarregados que são
ADD(DINT, REAL) 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

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


Conformidade IEC61131-3 B-7

Código da Código do Descrição do recurso: Extensões e notas de implementação:


tabela:(1) recurso:
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

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


B-8 Conformidade IEC61131-3

Código da Código do Descrição do recurso: Extensões e notas de implementação:


tabela:(1) recurso:
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

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


Conformidade IEC61131-3 B-9

Código da Código do Descrição do recurso: Extensões e notas de implementação:


tabela:(1) recurso:
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.

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


B-10 Conformidade IEC61131-3

Notas:

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


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


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.

Certifique-se de que a memória de dados contém os


ATENÇÃO
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.

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.

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


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


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


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


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):

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]

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.

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


Glossário 7

tags que todas as rotinas e


dispositivos externos (ex: outros
controladores) podem acessar

tags que apenas rotinas no


MainProgram podem acessar

42195

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.

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


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.

Para expandir uma estrutura


e mostrar seus membros,
clique no sinal de +.

Estrutura COUNTER
(Contador)
Para fechar a estrutura e Estrutura TIMER
esconder seus membros, (Temporizador)
clique no sinal – .

membros de tipo de dados dos


running_seconds membros

42365

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.

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


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:

Se isto ocorrer: O controlador:


problema com uma instrução 1. configura S:MINOR
2. registra as informações sobre a falha para o
objeto PROGRAM, atributo MinorFaultRecord
3. energiza o bit 4 do objeto FAULTLOG, atributo
MinorFaultBits
Sobreposição de tarefas energiza o bit 6 do objeto FAULTLOG, atributo
periódicas 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

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.

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


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


Glossário 11

falha grave ocorre

o controlador
sim registra a falha grave existe rotina sim executa a rotina
falha de
para o PROGRAM de falha de de falha
instrução?
MajorFaultRecord programa? do programa atual
atual.
não não

sim
falha removida?

não
continua a execução
da lógica

o controlador determina a
falha grave para a rotina
de manipulação de falhas
PROGRAM
MajorFaultRecord.

não a rotina de
manipulação de
falhas existe

sim

a rotina de
manipulação
de falhas

sim
falha removida?

não
continua a execução
da lógica
entre com o modo
de falha registre o
FAULTLOG
desligue

Consulte estado de falha, falha de advertência.

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


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:

A esta fatia de A tarefa contínua é executada E, então, o atraso ocorre em até:


tempo: para:
10% 9 ms 1 ms
20% 4 ms 1 ms
33% 2 ms 1 ms
50% 1 ms 1 ms

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

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


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.

1 ms 1 ms 1 ms 1 ms
tarefa periódica
1 ms 1 ms
atraso do sistema
9 ms de tempo da tarefa 9 ms de tempo da tarefa contínua
contínua
tarefa contínua
5 10 15 20 25
tempo transcorrido (ms)

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

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)

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

1 ms
atraso do sistema
1 ms
tarefa contínua
5 10 15 20 25
tempo transcorrido (ms)

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.

tarefa periódica

atraso do sistema
5 10 15 20 25
tempo transcorrido (ms)

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


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


Glossário 15

grupo

Um grupo de tipo de dados que armazena os caracteres ASCII.

42811

42812

Você pode usar o padrão tipo de dados ou Você pode criar um novo grupo de tipo de dados para
STRING. Ele armazena até 82 caracteres. armazenar o número de caracteres que você definir.

Cada grupo de tipo de dados contém os seguintes membros:

Nome: Tipo de Descrição: Notas:


Dados:
LEN DINT número de caracteres O LEN automaticamenta se atualiza para a nova contagem de caracteres
no grupo 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 • Para acessar os caracteres do grupo, encaminhe o nome do tag.
grupo 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.

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.

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


Glossário 16

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 • Os dados são truncados.
dados menor • O LEN não é alterado.
faça um grupo de tipo de Os dados e o LEN são zerados.
dados maior

O exemplo a seguir mostra o tipo de dados STRING e um novo grupo


de tipo de dados.

Este tag usa o padrão tipo de dados


STRING.

Este tag é uma mariz de 20 elementos do


padrão de tipo de dados STRING.

este tag usa um novo grupo de tipo de dados.


42234 • O mais usado é o chamado grupo de tipo de
dados STRING_24.
• O novo grupo de tipo de dados armazena
somente 24 caracteres.

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.

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


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

instrução de entrada instrução de saída

entrada da condição de linha - saída da condição de 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

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


Glossário 18

O exemplo seguinte usa mais de uma saída em uma linha.

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.

running_seconds.DN CTU running_seconds


Count Up CU RES
Counter running_hours DN
Preset 500
Accum 0

Quando machine_on for energizado, drill_1_on energiza. Quando machine_on e


drill[1].part_advance estão energizados, conveyor_on é energizado.

machine_on drill_1_on drill[1].part_advance conveyor_on

42362

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

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


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

Para expandir a matriz e


mostrar seus elementos,
clique no sinal de +.

Para desfazer uma matriz Esta matriz contém


e esconder seus seis elementos do
elementos, clique no tipo de dados DINT.
sinal –.
elementos de seis elementos DINTs
timer_presets

42367

• 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).

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


Glossário 20

• Em uma matriz com duas ou três dimensões, a dimensão mais à


direita é incrementada primeiro na memória.

Essa matriz contém


uma grade de
elementos de duas
dimensões, de seis
em seis elementos.

42367

A dimensão mais à direita


incrementa em seu valor máximo
Quando a dimensão mais à direita e recomeça.
recomeça, a dimensão à esquerda
incrementa em um.

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


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:

Esta matriz: Armazena dados como: Por exemplo:


dimensão um Nome do tag Tipo Dimensão 0 Dimensão 1 Dimensão 2

one_d_array DINT[7] 7 -- --
número total de elementos = 7

faixa de subscrito válida DINT[x], onde x = 0–6

dimensão dois Nome do tag Tipo Dimensão 0 Dimensão 1 Dimensão 2

two_d_array DINT[4,5] 4 5 --

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 Tipo Dimensão 0 Dimensão 1 Dimensão 2

three_d_array DINT[2,3,4] 2 3 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

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

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


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:

Este endereço: Faz referência a:


timer_1.pre Valor PRE da estrutura timer_1.
input_load como tipo de dados membro height da estrutura definida
load_info pelo usuárioinput_load

input_load.height

• 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:


input_location como local do tipo de membro height da estrutura load_info,
dados na estrutura input_location.

input_location.load_info.membro
height

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


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:

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

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.

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


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


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.

42195

A Rotina de Power-up é executado como segue:

O controlador foi Não O controlador permanece


energizado no modo de no modo atual.
Operação?
Sim

A Rotina de Energização Não O controlador permanece


contém um programa? no modo de Operação e
executa sua lógica.
Sim

Falha grave, tipo 1,


código 1, ocorre.

O programa Rotina de
Energização é executado.

A falha grave foi removida? Sim O controlador permanece


no modo de Operação e
executa sua lógica.
Não

O controlador insere o
modo de falha.

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


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


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


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.

instrução de entrada instrução de saída

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.

instrução de entrada instrução de saída

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)

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


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.

Formato do Display: Equivalente:


Real +infinito 1.$
-infinito -1.$
+NAN 1.#QNAN
-NAN -1.#QNAN
Exponencial +infinito 1.#INF000e+000
-infinito -1.#INF000e+000
+NAN 1.#QNAN00e+000
-NAN -1.#QNAN00e+000

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.

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


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


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:

Alocação de Bits
memória
31 1 0
alocação não usados start

– station_status, que usa o tipo de dados DINT:

Alocação de Bits
memória:
31 0
alocação station_status

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


Glossário 32

– mixer, que usa um tipo de dados definido pelo usuário:

Alocação de Bits
memória
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.inlet
bit 1 mixer.drain
bit 2 mixer.agitate

– temp_buffer, que é uma matriz de quatro INTS (INT[4]):

Alocação de Bits
memória:
31 16 0
alocação 1 temp_buffer[1] temp_buffer[0]
alocação 2 temp_buffer[3] temp_buffer[2]

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.

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


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


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.

Certifique-se de que o período de tempo seja maior


ATENÇÃO
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.

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

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


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


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:

mais eficiente menos eficiente

BOOL BOOL
BOOL DINT
BOOL BOOL
DINT DINT
DINT BOOL

• 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

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


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?

Se: Então os operandos de entrada (ex: fonte, tag em uma


expressão, limite) são convertidos para:
Sim REALs
Não DINTs

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

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


Glossário 38

• A seguinte tabela resume como o controlador converte os dados


entre tipos de dados:

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

V valor imediato

Um valor verdadeiro ou inteiro com sinal, de 32 bits, real. Não é um


tag que armazena um valor.

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


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.

Se o temporizador watchdog alcançar uma


ATENÇÃO
pré-programação configurável, uma falha grave
ocorre. Dependendo da rotina de manipulação de

! falhas, o controlador pode desligar.

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.

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


Glossário 40

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


Índice

A IEC 1131-3
abertura linguagem de programação B-3
rotina 4-1 conformidade IEC 1131-3
alias conjunto de instruções B-4
criação 6-3 definições dos dados B-2
uso 6-1 introdução B-1
armazenamento de um projeto 19-1 portabilidade do programa B-4
arquivo de projeto conjunto de instruções B-4
criação 1-1 consumo
ASCII tag 10-1
comparação de caracteres 13-4 controlador
conexão de dispositivo 12-2 descarregamento 9-2
configuração da porta serial 12-3 desligamento 16-1
configuração do protocolo do usuário 12-5 modo 9-3
construção de string 13-12 mudança de propriedades 1-3
conversão de caracteres 13-6 suspensão 16-1
decodificação de mensagem 13-8 verificação 2-5
escrita de caracteres 12-14 conversão
extração de caracteres 13-2 caracteres ASCII 13-6
inserção de caracteres 12-20 criação
leitura de caracteres 12-9 alias 6-3
manipulação de caracteres 13-1 arquivo de projeto 1-1
organização de dados 12-8 driver 9-1
rotina 2-3
string 13-12
B subrotina 2-3
bloco de função tag 4-7
controladores que suportam blocos de função 2-1 tag com uso do Excel 3-10
inserção 4-4 tipo de dados do string 12-8
buffer criar
E/S 8-1 estrutura 3-7
matriz 3-9
C tag 3-9
tipo de dados definidos pelo usuário 3-7
carregamento 9-4
carregamento de um projeto 19-1
CLP-5C D
compartilhamento de dados 10-6 dados
código de barras ASCII 12-8
caracteres de teste 13-4 definições B-2
extração de caracteres 13-2 force 14-1, 14-2
códigos inserção dos caracteres ASCII 12-20
falha de advertência A-3 dados do sistema
falha grave A-1 acesso 5-2
comparação descarregamento 9-2
caracteres ASCII 13-4 desligamento do controlador 16-1
comunicação driver
outros controladores 10-1 configuração 9-1
configuração
carregamento a partir de memória não volátil 19-1
driver 9-1 E
porta serial para ASCII 12-3 E/S
protocolo di usuários para ASCII 12-5 buffer 8-1
conformidade sincronização com a lógica 8-1

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


2 Índice

endereço inserção do bloco de função 4-4


atribuição de indireto 7-1 inserir ladder 4-3
inserção 4-7 IREF 4-4
endereço indireto 7-1
envio
L
caracteres ASCII 12-14
escrita leitura
caracteres ASCII 12-14 caracteres ASCII 12-9
estrutura linguagem de programação B-3
criar 3-7 linha
organizar 3-1 inserção 4-3
extração lógica
caracteres ASCII 13-2 inserção da instrução do bloco de função 4-4
inserção da instrução ladder 4-3

F
M
falha
códigos de falha de advertência A-3 manipulação de string 13-1
códigos de falha grave A-1 matriz
criação definida pelo usuário 16-1 ao longo do índice 7-1
desenvolvimento de rotina para remover uma falha 15-1, criar 3-9
18-1 organizar 3-1
monitoração de advertência 17-1 produção de uma matriz grande 11-1
remoção 9-4, 15-1 memória não volátil 19-1
teste de uma rotina de falha 15-4 mensagem
falha de advertência decodificação de string 13-8
códigos A-3 organização de tags 10-11
lógica 17-1 modo
remoção 17-1 controlador 9-3
falha grave modo de operação 9-3
códigos A-1 modo de programa 9-3
criação definida pelo usuário 16-1 modo de teste 9-3
desenvolvimento de rotina de falha 15-1, 18-1 monitoração de forces 14-7
force
desabilitação 14-6 N
habilitação 14-5 número de ranhura 1-3
inserção 14-2
monitoração 14-7
remoção 14-6 O
tag 14-1 OCON 4-4
OREF 4-4
organização
I strings 12-8
ICON 4-4 tarefas 2-2
IEC 1131-3 organizar
conformidade B-2 estrutura 3-1
IEC 1131-3 conformidade matriz 3-1
tabelas B-5 tag 3-1
inserção
caracteres ASCIIs 12-20
endereço 4-7 P
instrução do bloco de função 4-4 peso
instrução ladder 4-3 conversão 13-6
instrução produção
matriz grande 11-1

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


Índice 3

tag 10-1 criação 13-12


tags para CLP-5C 10-6 escrita de caracteres 12-14
programa extração de caracteres 13-2
portabilidade B-4 inserção dos caracteres 12-20
projeto manipulação 13-1
armazenamento em memória não volátil 19-1 organização de dadosa 12-8
carregamento 9-4 tipo de dados 12-8
carregamento a partir de memória não volátil 19-1 subrotina
descarregamento 9-2 criação 2-3
protocolo do usuário suspensão
configuração do ASCII 12-5 controlador 16-1

R T
ramificação tabela de dados 3-1
inserção 4-3 tabelas de conformidade B-5
remoção tag
falha de advertência 17-1 atribuição 4-7
falha grave 9-4, 15-1 compartilhamento com CLP-5C 10-6
rotina criação 4-7
abertura 4-1 criação com uso do Excel 3-10
criação 2-3 criação de alias 6-3
inserção das instruções do bloco de função 4-4 criar 3-9
inserção das instruções ladder 4-3 force 14-1
linguagens 2-1 inserção 4-7
verificação 4-10 organização para mensagens 10-11
RSLinx organizar 3-1
configuração 9-1 produção de uma matriz grande 11-1
produção e consumo 10-1
string 12-8
S
tamanho do chassi 1-3
salvar 1-3 tarefa
salvar como 1-3 organização 2-2
serial teste de uma rotina de falha 15-4
conexão do dispositivo ASCII 12-2 tipo de dados definido pelo usuário
configuração da porta para ASCII 12-3 criar 3-7
fiação do cabo 12-2 tipo de dados do string
símbolo criação 12-8
criação 6-1
sistema operacional B-2
status V
monitoração 5-1, 5-2 verificação
string controlador 2-5
comparação de caracteres 13-4 rotina 4-10
conversão de caracteres 13-6

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


Códigos de Caractere ASCII

Caractere Deci- Hexa- Caractere Deci- Hexa- Caractere Deci- Hexa- Caractere Deci- Hexa-
mal deci- mal deci- mal deci- mal deci-
mal mal mal mal
[ctrl-@] NUL 0 $00 SPACE 32 $20 @ 64 $40 ‘ 96 $60
[ctrl-A] SOH 1 $01 ! 33 $21 A 65 $41 A 97 $61
[ctrl-B] STX 2 $02 “ 34 $22 B 66 $42 B 98 $62
[ctrl-C] ETX 3 $03 # 35 $23 C 67 $43 C 99 $63
[ctrl-D] EOT 4 $04 $ 36 $24 D 68 $44 D 100 $64
[ctrl-E] ENQ 5 $05 % 37 $25 E 69 $45 E 101 $65
[ctrl-F] ACK 6 $06 & 38 $26 F 70 $46 F 102 $66
[ctrl-G] BEL 7 $07 ‘ 39 $27 G 71 $47 G 103 $67
[ctrl-H] BS 8 $08 ( 40 $28 H 72 $48 H 104 $68
[ctrl-I] HT 9 $09 ) 41 $29 I 73 $49 I 105 $69
[ctrl-J] LF 10 $l * 42 $2A J 74 $4A J 106 $6A
[ctrl-K] VT 11 $0B + 43 $2B K 75 $4B K 107 $6B
[ctrl-L] FF 12 $0C , 44 $2C L 76 $4C L 108 $6C
[ctrl-M] CR 13 $r – 45 $2D M 77 $4D M 109 $6D
[ctrl-N] SO 14 $0E . 46 $2E N 78 $4E N 110 $6E
[ctrl-O] SI 15 $0F / 47 $2F O 79 $4F O 111 $6F
[ctrl-P] DLE 16 $10 0 48 $30 P 80 $50 P 112 $70
[ctrl-Q] DC1 17 $11 1 49 $31 Q 81 $51 Q 113 $71
[ctrl-R] DC2 18 $12 2 50 $32 R 82 $52 R 114 $72
[ctrl-S] DC3 19 $13 3 51 $33 S 83 $53 S 115 $73
[ctrl-T] DC4 20 $14 4 52 $34 T 84 $54 T 116 $74
[ctrl-U] NAK 21 $15 5 53 $35 U 85 $55 U 117 $75
[ctrl-V] SYN 22 $16 6 54 $36 V 86 $56 V 118 $76
[ctrl-W] ETB 23 $17 7 55 $37 W 87 $57 W 119 $77
[ctrl-X] CAN 24 $18 8 56 $38 X 88 $58 X 120 $78
[ctrl-Y] EM 25 $19 9 57 $39 Y 89 $59 Y 121 $79
[ctrl-Z] SUB 26 $1A : 58 $3A Z 90 $5A Z 122 $7A
ctrl-[ ESC 27 $1B ; 59 $3B [ 91 $5B { 123 $7B
[ctrl-\] FS 28 $1C < 60 $3C \ 92 $5C | 124 $7C
ctrl-] GS 29 $1D = 61 $3D ] 93 $5D } 125 $7D
[ctrl-^] RS 30 $1E > 62 $3E ^ 94 $5E ~ 126 $7E
[ctrl-_] US 31 $1F ? 63 $3F _ 95 $5F DEL 127 $7F
Quarta Capa

Publicação 1756-PM001C-PT-P - Junho 2001 2 PN 957464-76


Remplace la publication 1756-PM001B-PT-P - Novembro de 2000 © 2001 Rockwell International Corporation.

You might also like