Pular para o conteúdo principal

Modbus Client

O MHO Keeper pode ser configurado como um Modbus Client, que realiza requisições de leitura ou escrita para um ou mais dispositivos do tipo Modbus Server. Normalmente nesse modo o equipamento realiza requisições em equipamentos de campo (como medidores, drivers, controladores...).

1 - Quantidade de endereços

O endereçamento Modbus sofre modificações conforme o modelo de equipamento e quantidade de endereços solicitados, segue abaixo o tipo do equipamento a ser especificado:

FunçãoQt. padrãoQt. tipo 2Qt. tipo 3Qt. tipo 4Qt. tipo 5
MBs (Discrete inputs e Coils)50100150200250
MIs (Input registers e Holding registers)20406080100

As colunas Qt. padrão, tipo 2, tipo 3, tipo 4 e tipo 5 significam as quantidades de endereços disponíveis que podem ser utilizados na leitura/escrita Modbus conforme a versão da licença.


2 - Tipos de dados

Troca de Dados

Todos os dados escritos nas memórias do equipamento podem ser configurados para envio ao servidor utilizado (MHO Cloud ou servidor próprio). As memórias de características digitais são enviadas instantaneamente, as de características analógicas são enviadas de acordo com o intervalo de tempo configurado.

As seguintes funções estão disponíveis:

Código (DEC)Função
02Read discrete Inputs
01Read Coils
05Write single coils
15Write multiple Coils
04Read input Register
03Read hold Register
06Write single Register
16Write multiple Register

Para os registradores de 16/32/64 bits a linha Keeper segue a padronização de memória Big-Endian. Uma word é definida como um registrador de 16 bits (2 bytes), uma double word é um registrador de 32 bits (4 bytes) (também entendido como 2 registradores de 16 bits) e uma long word é um registrador de 64 bits (8 bytes) (também entendido como 4 registradores de 16 bits)

Dica!

Ao ativar o modo Swapwords o tipo de endereço vira Little-Endian. Caso o dado lido não esteja correto na leitura padrão tente primeiro com o modo Swapwords, depois com os outros modos.


Os registradores do tipo inteiro/float podem ter padrão de leitura da seguinte forma:

  • swapbytes (disponível para os registradores de 16/32/64 bits);
  • swapword (disponível para os registradores de 32/64 bits);
  • swapdword (disponível para os registradores de 64 bits).

Exemplo 16 bits:

Um dado de 16 bits é transmitido da seguinte forma, onde cada letra representa um byte: A B
O padrão de leitura é "A B", porém se necessário pode-se aplicar as seguintes funções:

  • swapbytes: "B A".

Exemplo 32 bits:

Um dado de 32 bits é transmitido da seguinte forma, onde cada letra representa um byte: A B C D
O padrão de leitura é "A B C D", porém se necessário pode-se aplicar as seguintes funções:

  • swapbytes: "B A D C";
  • swapwords: "C D A B";
  • swapwords e swapbytes: "D C B A";

Exemplo 64 bits:

Um dado de 64 bits é transmitido da seguinte forma, onde cada letra representa um byte: A B C D E F G H
O padrão de leitura é "A B C D E F G H", porém se necessário pode-se aplicar as seguintes funções:

  • swapbytes: "B A D C F E H G";
  • swapwords: "C D A B G H E F";
  • swapwords e swapbytes: "D C B A H G F E";
  • swapdwords: "E F G H A B C D";
  • swapdwords e swapbytes: "F E H G B A D C";
  • swapdwords e swapwords: "G H E F C D A B";
  • swapdwords, swapwords e swapbytes: "H G F E D C B A";

3 - Arquivo de requisições

As requisições são feitas com base nas configurações do arquivo de configurações mbclient.json salvo no diretório /modbus.