Rockwell EtherNet/IP

Conecte controladores Allen-Bradley Logix por EtherNet/IP (CIP): nomes de tag do controlador, deslocamentos de byte, tipos atômicos CIP e descoberta na rede.

Ver como Markdown

O driver Rockwell EtherNet/IP conversa com controladores Allen-Bradley / Rockwell Logix (ControlLogix, CompactLogix) por EtherNet/IP com endereçamento de tag CIP. Você endereça valores pelo nome da tag do controlador declarado no projeto Logix, sem nenhum mapa de registradores envolvido. Adicione um dispositivo sob o driver Rockwell EtherNet/IP no Connector; o painel mostra só os campos que este protocolo usa.

Conexão

Campo Significado Padrão
Host Endereço IP ou nome de host da porta Ethernet do controlador. vazio
Slot Em qual posição do chassi o controlador está encaixado, contada a partir de 0. 0
Intervalo de leitura (ms) Período de leitura de todo o dispositivo, para as tags que não o sobrepõem. 1.000

Não existe campo de porta: o EtherNet/IP usa a porta TCP padrão 44818 dele. A rota CIP é o barramento traseiro mais o Slot, então um controlador encaixado em qualquer lugar do chassi é alcançável; um controlador descoberto começa no slot 0 e o campo é onde você corrige isso. Não existe campo de rack: uma rota CIP não carrega número de rack. As requisições expiram depois de 10 segundos. O cabeçalho do dispositivo mostra o endpoint montado, por exemplo eip://192.168.0.10:0, em que o número depois do endereço é o slot.

Cada tag pode definir o próprio Intervalo de leitura (ms); um valor 0 na tag recai no intervalo do dispositivo.

Endereçamento

Uma tag Rockwell é endereçada por dois campos no cartão Origem da tag:

Campo Significado Valores aceitos Padrão
Tag do controlador O nome da tag como declarado no controlador. Obrigatório. texto livre vazio
Deslocamento na tag (bytes, bits em BOOL) Onde, dentro dos dados daquela tag, o valor está: um deslocamento de byte, ou um deslocamento de bit em tags booleanas. 0–255 0

O driver abre a tag de controlador nomeada e retira o valor do buffer de dados dela no deslocamento. Numa tag atômica simples, o deslocamento fica em 0. O deslocamento é o que deixa uma tag de controlador atender vários canais: um DINT no começo de uma estrutura fica no deslocamento 0, o REAL quatro bytes depois fica no deslocamento 4, e numa tag booleana o deslocamento conta bits em vez de bytes.

Para ler Tag do controlador Deslocamento Tipo de dado
Um DINT de escopo de controlador Counter Counter 0 Int32
Um DINT de escopo de programa em Main Program:Main.Counter 0 Int32
Um elemento de vetor REAL Temps[2] Temps[2] 0 Float
O segundo DINT dentro da estrutura Recipe Recipe 4 Int32
O bit 3 dos dados em Flags Flags 3 Boolean

O nome chega inteiro ao controlador, pontos incluídos, e uma leitura e uma escrita da mesma tag caem no mesmo lugar. É isso que faz um nome de escopo de programa como Program:Main.Counter funcionar. Um caminho de membro com ponto (MyUdt.Member) é resolvido pelo controlador quando o controlador publica aquele membro por nome; onde ele não publica, nomeie a tag base de escopo de controlador e alcance o interior dela com o deslocamento de byte, o que sempre funciona. A linha somente leitura Endereço de origem (barramento) do cartão Origem mostra o endereço montado enquanto você edita.

Tipos de dado

Todo tipo atômico do CIP está disponível como Tipo de dado de uma tag:

Tipo de dado Tipo CIP Tamanho
Boolean BOOL 1 bit no deslocamento de bit
SByte SINT 1 byte
Byte USINT 1 byte
Int16 INT 2 bytes
UInt16 UINT 2 bytes
Int32 DINT 4 bytes
UInt32 UDINT 4 bytes
Int64 LINT 8 bytes
UInt64 ULINT 8 bytes
Float REAL 4 bytes
Double LREAL 8 bytes

Estruturas e UDTs não são suportados: só os tipos atômicos acima podem ser lidos ou escritos, e é por isso que o deslocamento de byte existe, para alcançar membros dentro deles. O String está deliberadamente ausente do seletor: um STRING do Logix não é um tipo atômico, e sim uma estrutura com um comprimento e um vetor de 82 bytes, e o driver não consegue ler nem escrever um. A ordem de bytes no barramento é o little-endian do próprio CIP e é tratada automaticamente; não existe opção de ordem de bytes.

Escritas

Tags cujo Acesso é Leitura e escrita ou Somente escrita podem ser escritas. Uma escrita lê a tag do controlador, altera os bytes endereçados (ou o bit endereçado, em booleanas) e a escreve de volta. Uma tag nova nasce como Somente leitura.

Descoberta

O botão Descobrir do Connector faz difusão de uma requisição CIP List Identity em toda rede em que este computador está e continua escutando até passarem 10 segundos sem resposta nova. A varredura nomeia essas redes enquanto roda, então um resultado de zero diz para onde a pergunta de fato foi: uma estação com adaptadores virtuais de máquinas, WSL ou VPN costuma ter mais redes do que o operador espera, e candidatos podem chegar de uma delas.

Interfaces que não conseguem levar a requisição são puladas: tudo que não está no ar, os adaptadores de loopback e de túnel, e um endereço que a interface deu a si mesma porque nada respondeu DHCP (169.254.x.x). Só uma resposta que seja a resposta de identidade do próprio controlador vira um dispositivo candidato, nomeado eip:// mais o endereço dele; qualquer outra coisa que responda na porta EtherNet/IP é ignorada, e o diário diz isso. Para cada candidato, a varredura então lê a lista de tags de escopo de controlador e oferece as tags atômicas dele como canais candidatos, cada uma com deslocamento 0.

A descoberta descarta o que o driver não consegue ler ciclicamente: tags de estrutura e de UDT (STRINGs do Logix incluídos) são deixadas de fora, e entradas Program:, Task: e Map: são puladas. Um controlador numa rede em que este computador não está não responde à difusão; adicione-o à mão.

Bom saber

  • Toda requisição ao controlador expira depois de 10 segundos, e a janela de escuta da descoberta fecha depois de 10 segundos de silêncio.
  • O driver abre cada tag do controlador uma vez e a mantém aberta enquanto o equipamento estiver conectado, então um controlador com dezenas de tags é lido pelas sessões que já tem, em vez de abrir e fechar uma por leitura. Uma leitura que falha solta a sua tag, e a seguinte abre a tag de novo pelo nome.
  • Renomear uma tag no projeto Logix quebra o canal em silêncio; a tag passa a ler qualidade ruim até o nome configurado bater de novo.