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ção | Qt. padrão | Qt. tipo 2 | Qt. tipo 3 | Qt. tipo 4 | Qt. tipo 5 |
---|---|---|---|---|---|
MBs (Discrete inputs e Coils) | 50 | 100 | 150 | 200 | 250 |
MIs (Input registers e Holding registers) | 20 | 40 | 60 | 80 | 100 |
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
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 |
---|---|
02 | Read discrete Inputs |
01 | Read Coils |
05 | Write single coils |
15 | Write multiple Coils |
04 | Read input Register |
03 | Read hold Register |
06 | Write single Register |
16 | Write 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)
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
.