Pular para o conteúdo
JelinaJelina DocumentationDocumentação técnica
Voltar ao site oficial

Aquisição Modbus-TCP

Descrição: conforme o meio de transmissão usado, Modbus pode operar por porta serial ou interface de rede (incluindo fibra óptica). RTU usa comunicação serial, enquanto TCP usa interface de rede (comunicação Ethernet). O protocolo Modbus segue um fluxo de comunicação entre dispositivo mestre e dispositivo escravo. No gateway de borda, o driver Modbus usa o cliente Master [mestre], que consulta ativamente os dispositivos escravos Modbus. Em seguida, os dispositivos escravos Modbus preparam a resposta conforme o conteúdo recebido e a enviam ao gateway.

(1) Na página do CommBridge, acesse [Gêmeo inteligente] e, à esquerda, clique para alternar para [Conectividade inteligente de dispositivos].

(2) Arraste, nesta ordem, os plugins Cliente Modbus [mestre], Processamento de dados e Envio por MQTT para a área de trabalho de plugins, criando três nós.

(3) Conecte os três nós na seguinte ordem: Cliente Modbus [mestre] → Processamento de dados → Envio por MQTT.

Selecione o protocolo Modbus-TCP.

(1) Clique duas vezes em Cliente Modbus [mestre] e clique no botão [Adicionar perfil].

(2) Preencha a configuração da conexão e clique em [Avançar].

(3) Clique em [Adicionar grupo], preencha as informações do grupo e clique em [Confirmar].

(4) Clique em [Adicionar dados], preencha os dados do ponto e clique em [Confirmar].

(5) Clique em [Concluir] para adicionar o perfil de aquisição.

(6) Habilite o perfil e clique em [Salvar].

(1) Clique no botão [Implantar] de [Conectividade inteligente de dispositivos] para concluir a implantação.

(2) Alterne para [Gêmeo inteligente] e posicione o ponteiro do mouse sobre o nó Cliente Modbus [mestre] para exibir a lista de informações do nó.

(3) Clique no perfil para consultar os dados em tempo real e históricos dos pontos de cada grupo do perfil.

Aquisição (antes do processamento):

Após o processamento (consulte o perfil no plugin Processamento de dados):

Os dados só podem ser alterados quando o modo de leitura/gravação do ponto for rw ou wo e a aquisição estiver funcionando normalmente.

(1) Clique no botão [Gravar] de um dado individual, configure o valor e clique em [Confirmar].

(2) Consulte os dados históricos.

Parâmetro Descrição Formato Exemplo
Nome do perfil Nome do perfil definido pelo usuário Obrigatório Aquisição slave
Protocolo Protocolo Modbus Modbus TCP, Modbus RTU Modbus TCP
Aquisição síncrona Define se a aquisição é síncrona: Yes ou No Yes, No YES
Período de aquisição Intervalo de polling para leitura dos dados, ou seja, intervalo entre leituras de registradores de cada grupo do perfil Numérico, faixa: (100,2147483647] 2000
Prazo de validade da aquisição Todos os pontos do grupo devem ser adquiridos dentro do prazo definido; caso contrário, os dados do grupo são descartados. Esse prazo inclui o atraso entre quadros Numérico, faixa: (0, período de aquisição] 1000
Tempo limite Tempo permitido para cada aquisição de cada grupo do perfil; se for excedido, os dados dessa leitura são descartados Numérico, faixa: (0, período de aquisição] 1000
Número máximo de registradores por lote Número máximo de registradores para aquisição em lote de pontos consecutivos Número natural, faixa: [1,120] 120
Atraso entre quadros Intervalo mínimo entre duas aquisições; o padrão é 0. Se ocorrerem muitos timeouts, aumente-o conforme necessário; caso contrário, não é preciso alterá-lo Unidade: milissegundos, numérico, faixa: [0, 2147483647] 0
Atraso de quadro de gravação Tempo adicional de espera ao gravar dados, necessário para alguns dispositivos com gravação mais lenta; 0 indica que não há atraso adicional Unidade: milissegundos, numérico, faixa: [0, 2147483647] 0
Código de função de gravação de registradores Define o código de função para gravar registradores de retenção Auto, 06, 10; consulte a descrição abaixo Auto
Aquisição por alteração Método de aquisição dos dados. No: sem aquisição por alteração; SingleData: transmite apenas os pontos alterados; WholeGroup: transmite todo o grupo quando qualquer dado do grupo muda No, SingleData, WholeGroup SingleData
Intervalo de reenvio da aquisição por alteração Força o envio dos dados quando eles permanecem inalterados por mais que esse intervalo. 0 desabilita esse acionamento Unidade: segundos, numérico, faixa: (0, 2147483647] 0
Backoff em caso de falha Após uma falha de aquisição, ajusta o intervalo até a próxima aquisição pelo fator de backoff, limitado ao período de aquisição × fator máximo de backoff Yes, No; consulte a descrição abaixo Yes
Fator de backoff Fator de variação do tempo em caso de falha; deve ser maior que 0 e diferente de 1 Numérico 2
Fator máximo de backoff Limite do fator de variação do intervalo; ao atingi-lo, o fator permanece nesse valor Numérico 16

Aquisição síncrona:

  1. “Yes” indica que o período, o tempo limite e o prazo de validade da aquisição são configurados de forma unificada para todos os grupos do perfil; aplica-se aos dados de todos os pontos do perfil;
  2. “No” indica que cada grupo configura seu próprio período, tempo limite e prazo de validade da aquisição.

Código de função de gravação de registradores: Auto: usa 06 para gravar um registrador e 10 para gravar mais de um; 06: usa 06 em todas as gravações; 10: usa 10 em todas as gravações.

Backoff em caso de falha: por exemplo, com período de aquisição de 1 segundo, fator de backoff 2 e fator máximo 16, os tempos de espera durante falhas consecutivas são 1s, 2s, 4s, 8s e 16s. Da mesma forma, com período de 10 segundos, fator de backoff 0.5 e fator máximo 0.1, os tempos são 10s, 5s, 2.5s e 1.25s. Assim que uma aquisição for bem-sucedida, o período de aquisição retorna ao valor inicial padrão.

Quando o fator de backoff é maior que 1, o fator máximo deve ser maior que ele; quando é menor que 1, o fator máximo deve ser menor que ele.

Parâmetro Descrição Formato Exemplo
Nome do grupo Nome do grupo definido pelo usuário Obrigatório Grupo um
Slave ID Endereço do dispositivo Modbus: endereço da estação escrava da qual os dados serão adquiridos Numérico, faixa: (0,255] 1
IP Endereço IP do dispositivo Modbus Endereço em notação decimal com pontos 172.21.78.157
Porta Número da porta do dispositivo Modbus; padrão: 502 Numérico, faixa: (0,65535] 502
Período de aquisição Intervalo de polling para leitura dos dados: intervalo entre leituras de registradores de um único grupo Numérico, faixa: (100,2147483647] 2000
Prazo de validade da aquisição Prazo de validade da aquisição de todos os pontos de um grupo; se todos os pontos não forem lidos nesse prazo, os dados de todos os pontos do grupo são descartados Numérico, faixa: (0, período de aquisição] 1000
Tempo limite Tempo permitido para cada aquisição de um grupo; se for excedido, os dados dessa leitura são descartados Numérico, faixa: (0, período de aquisição] 1000

Observações: Quando a aquisição síncrona na configuração da conexão está definida como No, essas configurações se aplicam aos dados de todos os pontos do grupo. Há um limite para a quantidade de registradores lidos em uma única operação Modbus. Para Holding Register e Input Register, o máximo é de 120 pontos de registradores consecutivos; para Discrete e Coils, o máximo é de 2000 pontos consecutivos.

Parâmetro Condição Descrição Formato Exemplo
Alias dos dados Nome do ponto, exclusivo dentro do mesmo grupo Obrigatório; não pode começar com número ou sublinhado nem conter espaços M
Endereço Endereço do registrador; endereços não podem se repetir no mesmo grupo Endereço do registrador; endereços não podem se repetir no mesmo grupo Numérico, faixa: (0,2147483647) 0
Tipo de registrador Corresponde ao código de operação Modbus Holding Register, Input Register, Discrete, Coils; consulte a descrição abaixo Holding Register
Tipo de dado Determinado pelo tipo de registrador Tipo original dos dados do registrador uint16, int16, uint32, int32, float, boolean, combine, string, hex string; consulte a descrição abaixo uint16
Ordem dos bytes Determinada pelo tipo de registrador e pelo tipo de dado Ordem de armazenamento em memória de tipos de dado com mais de um byte AB, BA, ABCD, CDAB, BADC, DCBA; consulte a descrição abaixo AB
Quantidade de registradores Determinada pelo tipo de registrador e pelo tipo de dado Quantidade de registradores correspondente ao tipo de dado Consulte a descrição abaixo 1
Modo de leitura/gravação Determinado pelo tipo de registrador Suporta ro (somente leitura), rw (leitura e gravação) e wo (somente gravação) ro, rw, wo ro
Cálculo Fórmula definida pelo usuário com base nos aliases dos dados {M}/10
Offset Tipo de dado igual a bit Offset em bits, do mais significativo para o menos significativo, após o ajuste da ordem dos bytes Numérico, faixa: [0,15]

Por exemplo, para depurar a propriedade de temperatura, se o endereço dessa propriedade no dispositivo for 1, defina o endereço do registrador como 1.

  1. Para os tipos de registrador Discrete e Coils, o tipo de dado padrão é boolean.
  2. Para os tipos uint16, int16 e combine, as opções de ordem dos bytes são AB e BA; para uint32, int32 e float, são ABCD, CDAB, BADC e DCBA; os demais tipos não têm configuração de ordem dos bytes.
  3. Para os tipos de registrador Discrete e Coils, a quantidade padrão de registradores é 1; para os tipos de dado uint16, int16 e boolean, o padrão é 1; para uint32, int32 e float, o padrão é 2; para combine, é possível selecionar 1 ou 2; para string e hex string, a quantidade pode ser informada manualmente.

Ordem de 16 bits:

  1. AB: registrador de 1 palavra, com a palavra mais significativa antes da menos significativa e, dentro da palavra, o byte mais significativo antes do menos significativo (big-endian).
  2. BA: registrador de 1 palavra, com a palavra mais significativa antes da menos significativa e, dentro da palavra, o byte menos significativo antes do mais significativo (little-endian).

Ordem de 32 bits:

  1. ABCD: registradores de 2 palavras, com a palavra mais significativa antes da menos significativa e, dentro de cada palavra, o byte mais significativo antes do menos significativo (big-endian).
  2. BADC: registradores de 2 palavras, com a palavra mais significativa antes da menos significativa e, dentro de cada palavra, o byte menos significativo antes do mais significativo (big-endian com troca de bytes).
  3. CDAB: registradores de 2 palavras, com a palavra menos significativa antes da mais significativa e, dentro de cada palavra, o byte mais significativo antes do menos significativo (little-endian com troca de bytes).
  4. DCBA: registradores de 2 palavras, com a palavra menos significativa antes da mais significativa e, dentro de cada palavra, o byte menos significativo antes do mais significativo (little-endian).

6. Descrição dos parâmetros do protocolo Modbus

Seção intitulada “6. Descrição dos parâmetros do protocolo Modbus”

O tipo de registrador determina o tipo de dado, a quantidade de registradores e o modo de leitura/gravação.

0x, 1x, 3x e 4x são faixas de endereços definidas pelo protocolo Modbus.

Tipo de registrador Nome Endereço do registrador no CLP Endereço do registrador no protocolo Leitura/gravação Descrição
Holding Register Registrador de retenção (4x) 40001-49999 0000H-FFFFH Leitura e gravação; leitura: 0x03; gravação: 0x06 Parâmetros de saída ou armazenados, definidos durante a operação do controlador
Input Register Registrador de entrada (3x) 30001-39999 0000H-FFFFH Somente leitura, 0x04 Parâmetros de entrada obtidos de dispositivos externos durante a operação do controlador
Discrete Estado de entrada discreta (1x) 10001-19999 0000H-FFFFH Somente leitura, 0x02 Porta de entrada cujo estado é alterado por uma configuração externa
Coils Estado de bobina (0x) 00001-09999 0000H-FFFFH Leitura e gravação; leitura: 0x01; gravação de uma bobina: 0x05; gravação de múltiplas bobinas: 0x0F Porta de saída cujo estado pode ser definido e lido

O tipo de dado é determinado por três fatores: tipo original dos dados, troca dos bytes mais e menos significativos dentro dos registradores e troca da ordem dos registradores. Cada letra representa um byte.

  1. Tipos originais dos dados: uint16, int16, uint32, int32, float, boolean, combine, string, hex string.
  2. Troca dos bytes mais e menos significativos dentro do registrador: troca os primeiros e últimos 8 bits dos 16 bits do registrador. Para 16 bits, existem apenas a ordem direta (AB), com o byte mais significativo primeiro, e a ordem inversa (BA), com o menos significativo primeiro.
  3. Troca da ordem dos registradores: troca as partes de 16 bits dos dados de 32 bits, como em ABCD e CDAB.

Descrição dos tipos originais dos dados:

Nome Descrição Quantidade de registradores
uint16 Inteiro sem sinal de 16 bits 1
int16 Inteiro com sinal de 16 bits 1
uint32 Inteiro sem sinal de 32 bits 2
int32 Inteiro com sinal de 32 bits 2
float Ponto flutuante de 32 bits 2
combine 1、2
boolean Valor booleano 1
string String ASCII Personalizável
hex string String hexadecimal Personalizável

Descrição da ordem dos bytes e palavras:

Valor da propriedade Descrição
AB Registrador de 2 bytes, com o byte mais significativo antes do menos significativo (ordem direta)
BA Registrador de 2 bytes, com o byte menos significativo antes do mais significativo (ordem inversa)
ABCD Registradores de 2 palavras, com a mais significativa primeiro e, dentro de cada palavra, o byte mais significativo primeiro (big-endian)
BADC Registradores de 2 palavras, com a mais significativa primeiro e, dentro de cada palavra, o byte menos significativo primeiro (big-endian com troca de bytes)
CDAB Registradores de 2 palavras, com a menos significativa primeiro e, dentro de cada palavra, o byte mais significativo primeiro (little-endian com troca de bytes)
DCBA Registradores de 2 palavras, com a menos significativa primeiro e, dentro de cada palavra, o byte menos significativo primeiro (little-endian)