Pular para o conteúdo principal

Modbus Server


O MHO Keeper pode ser configurado como um Modbus Server, que responde a requisições de um dispositivo Modbus Client. Nesse modo o equipamento serve como uma ponte de configuração e monitoramento remoto, onde os dados de telemetria são enviados por um dispositivo do tipo Modbus Client, tipicamente um CLP/PLC. O dispositivo client também consegue ler os dados e comandar as IOs do Keeper.

Interpretação dos dados

Quando o Keeper opera no modo server, o client que está requisitando os dados deverá interpretar os registros da seguinte forma:

  • base 0: Os endereços são interpretados como início em 0. Caso o dispositivo Client interprete de outra forma, pode ser necessário deslocar os endereços no client;
  • Dados no modo big-endian: Caso o dispositivo Client trabalhe em outra formatação é necessário ativar modos de manipulação de dados no dispositivo client como Word-Swap, byte-swap entre outros.

Funções disponíveis

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

Código (DEC)FunçãoDescrição
02Read discrete InputsLer DIs;
Ler parâmetros booleanos recebidos do servidor.
01Read CoilsLer DO;
Ler parâmetro de envio ao servidor.
05Write single coilsAlterar status DO;
(*) Alterar parâmetro booleano de envio ao servidor.
15Write multiple CoilsAlterar status DOs;
(*) Alterar parâmetros booleanos de envio ao servidor.
04Read input RegisterLer AIs;
Ler parâmetros inteiros recebidos do servidor.
03Read hold RegisterLer parâmetros de envio ao servidor.
06Write single Register(*) Alterar parâmetro de envio ao servidor.
16Write multiple Register(*) Alterar parâmetro de envio ao servidor.


A quantidade de registradores para cada requisição deve respeitar o seguinte limite:

Código (DEC)FunçãoLimite de quantidade de
registradores por requisição
02Read discrete Inputsaté 255 por requisição
01Read Coilsaté 255 por requisição
05Write single coils1 por requisição
15Write multiple Coilsaté 60 por requisição
04Read input Registeraté 255 por requisição
03Read hold Registeraté 60 por requisição
06Write single Register1 por requisição
16Write multiple Registeraté 60 por requisição

Configuração da porta RS485

Para realizar a configuração dos parâmetros de comunicação serial, é utilizado o webserver do equipamento, siga as instruções contida na base de conhecimento para acessar o webserver primeiros passos.


Tabelas de endereços

O endereçamento Modbus sofre modificações conforme o modelo de equipamento e quantidade de endereços solicitados, segue abaixo a quantidade de memória padrão do equipamento, caso precise de mais memória, solicitar contato com suporte:

FunçãoQt. de MemóriasUso
Coils500Enviar dados binários para o servidor
Discrete Inputs50Receber dados binários do servidor
Holding registers500Enviar dados numéricos para o servidor
Input registers50Receber dados numéricos do servidor


Coils (MB)

Enviar valores binários ao servidor e ler/comandar DOs

MemóriaFunçãoNotas
1-1000Disponível para telemetria-
1001-5000Reservado-
5001DO1true ativo, false inativo
5002DO2true ativo, false inativo
5003DO3true ativo, false inativo
5004DO4true ativo, false inativo
5005DO5true ativo, false inativo
5006DO6true ativo, false inativo
5007DO7true ativo, false inativo
5008DO8true ativo, false inativo
5009DO9true ativo, false inativo
5010DO10true ativo, false inativo
5011DO11true ativo, false inativo
5012DO12true ativo, false inativo
5013DO13true ativo, false inativo
5014DO14true ativo, false inativo
5015DO15true ativo, false inativo
5016DO16true ativo, false inativo

Discrete inputs (DIN)

Receber valores binários ao servidor e ler DIs

MemóriaFunçãoNotas
1-1000Disponível para telemetria-
1001-5000Reservado-
5001DI1true ativo, false inativo
5002DI2true ativo, false inativo
5003DI3true ativo, false inativo
5004DI4true ativo, false inativo
5005DI5true ativo, false inativo
5006DI6true ativo, false inativo
5007DI7true ativo, false inativo
5008DI8true ativo, false inativo
5009DI9true ativo, false inativo
5010DI10true ativo, false inativo
5011DI11true ativo, false inativo
5012DI12true ativo, false inativo
5013DI13true ativo, false inativo
5014DI14true ativo, false inativo
5015DI15true ativo, false inativo
5016DI16true ativo, false inativo

Holding register (MI)

Enviar valores 16 bits ao servidor

MemóriaFunçãoNotas
1-1000Disp. telemetria-
1001-5000Reservado-

Input register (IR)

Receber valores 16 bits do servidor e ler AIs

MemóriaFunçãoNotas
1-1000Disponível para telemetria-
1001-5000Reservado-
5001AI1int16 - Valor de leitura do conversor AD
5002AI2int16- Valor de leitura do conversor AD
5003AI3int16 - Valor de leitura do conversor AD
5004AI4int16 - Valor de leitura do conversor AD
5005AI5int16 - Valor de leitura do conversor AD
5006AI6int16 - Valor de leitura do conversor AD
.........
5101 ~ 5102DI1hm0uint32 - Horímetro de nível baixo da DI, em segundos
5103 ~ 5104DI2hm0uint32 - Horímetro de nível baixo da DI, em segundos
5105 ~ 5106DI3hm0uint32 - Horímetro de nível baixo da DI, em segundos
5107 ~ 5108DI4hm0uint32 - Horímetro de nível baixo da DI, em segundos
5109 ~ 5110DI5hm0uint32 - Horímetro de nível baixo da DI, em segundos
5111 ~ 5112DI6hm0uint32 - Horímetro de nível baixo da DI, em segundos
5113 ~ 5114DI7hm0uint32 - Horímetro de nível baixo da DI, em segundos
5115 ~ 5116DI8hm0uint32 - Horímetro de nível baixo da DI, em segundos
5117 ~ 5118DI9hm0uint32 - Horímetro de nível baixo da DI, em segundos
5119 ~ 5120DI10hm0uint32 - Horímetro de nível baixo da DI, em segundos
5121 ~ 5122DI11hm0uint32 - Horímetro de nível baixo da DI, em segundos
5123 ~ 5124DI12hm0uint32 - Horímetro de nível baixo da DI, em segundos
5125 ~ 5126DI13hm0uint32 - Horímetro de nível baixo da DI, em segundos
5127 ~ 5128DI14hm0uint32 - Horímetro de nível baixo da DI, em segundos
5129 ~ 5130DI15hm0uint32 - Horímetro de nível baixo da DI, em segundos
5131 ~ 5132DI16hm0uint32 - Horímetro de nível baixo da DI, em segundos
.........
5201 ~ 5202DI1hm1uint32 - Horímetro de nível alto da DI, em segundos
5203 ~ 5204DI2hm1uint32 - Horímetro de nível alto da DI, em segundos
5205 ~ 5206DI3hm1uint32 - Horímetro de nível alto da DI, em segundos
5207 ~ 5208DI4hm1uint32 - Horímetro de nível alto da DI, em segundos
5209 ~ 5210DI5hm1uint32 - Horímetro de nível alto da DI, em segundos
5211 ~ 5212DI6hm1uint32 - Horímetro de nível alto da DI, em segundos
5213 ~ 5214DI7hm1uint32 - Horímetro de nível alto da DI, em segundos
5215 ~ 5216DI8hm1uint32 - Horímetro de nível alto da DI, em segundos
5217 ~ 5218DI9hm1uint32 - Horímetro de nível alto da DI, em segundos
5219 ~ 5220DI10hm1uint32 - Horímetro de nível alto da DI, em segundos
5221 ~ 5222DI11hm1uint32 - Horímetro de nível alto da DI, em segundos
5223 ~ 5224DI12hm1uint32 - Horímetro de nível alto da DI, em segundos
5225 ~ 5226DI13hm1uint32 - Horímetro de nível alto da DI, em segundos
5227 ~ 5228DI14hm1uint32 - Horímetro de nível alto da DI, em segundos
5229 ~ 5230DI15hm1uint32 - Horímetro de nível alto da DI, em segundos
5231 ~ 5232DI16hm1uint32 - Horímetro de nível alto da DI, em segundos
.........
5301 ~ 5304DI1p0uint64 - Contador de pulsos para nível baixo
5305 ~ 5308DI2p0uint64 - Contador de pulsos para nível baixo
5309 ~ 5312DI3p0uint64 - Contador de pulsos para nível baixo
5313 ~ 5316DI4p0uint64 - Contador de pulsos para nível baixo
5317 ~ 5320DI5p0uint64 - Contador de pulsos para nível baixo
5321 ~ 5324DI6p0uint64 - Contador de pulsos para nível baixo
5325 ~ 5328DI7p0uint64 - Contador de pulsos para nível baixo
5329 ~ 5332DI8p0uint64 - Contador de pulsos para nível baixo
5333 ~ 5336DI9p0uint64 - Contador de pulsos para nível baixo
5337 ~ 5340DI10p0uint64 - Contador de pulsos para nível baixo
5341 ~ 5344DI11p0uint64 - Contador de pulsos para nível baixo
5345 ~ 5348DI12p0uint64 - Contador de pulsos para nível baixo
5349 ~ 5352DI13p0uint64 - Contador de pulsos para nível baixo
5353 ~ 5356DI14p0uint64 - Contador de pulsos para nível baixo
5357 ~ 5360DI15p0uint64 - Contador de pulsos para nível baixo
5361 ~ 5364DI16p0uint64 - Contador de pulsos para nível baixo
.........
5401 ~ 5404DI1puint64 - Contador de pulsos para nível alto
5405 ~ 5408DI2puint64 - Contador de pulsos para nível alto
5409 ~ 5412DI3puint64 - Contador de pulsos para nível alto
5413 ~ 5416DI4puint64 - Contador de pulsos para nível alto
5417 ~ 5420DI5puint64 - Contador de pulsos para nível alto
5421 ~ 5424DI6puint64 - Contador de pulsos para nível alto
5425 ~ 5428DI7puint64 - Contador de pulsos para nível alto
5429 ~ 5432DI8puint64 - Contador de pulsos para nível alto
5433 ~ 5436DI9puint64 - Contador de pulsos para nível alto
5437 ~ 5440DI10puint64 - Contador de pulsos para nível alto
5441 ~ 5444DI11puint64 - Contador de pulsos para nível alto
5445 ~ 5448DI12puint64 - Contador de pulsos para nível alto
5449 ~ 5452DI13puint64 - Contador de pulsos para nível alto
5453 ~ 5456DI14puint64 - Contador de pulsos para nível alto
5457 ~ 5460DI15puint64 - Contador de pulsos para nível alto
5461 ~ 5464DI16puint64 - Contador de pulsos para nível alto