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ção | Descrição |
---|---|---|
02 | Read discrete Inputs | Ler DIs; Ler parâmetros booleanos recebidos do servidor. |
01 | Read Coils | Ler DO; Ler parâmetro de envio ao servidor. |
05 | Write single coils | Alterar status DO; (*) Alterar parâmetro booleano de envio ao servidor. |
15 | Write multiple Coils | Alterar status DOs; (*) Alterar parâmetros booleanos de envio ao servidor. |
04 | Read input Register | Ler AIs; Ler parâmetros inteiros recebidos do servidor. |
03 | Read hold Register | Ler parâmetros de envio ao servidor. |
06 | Write single Register | (*) Alterar parâmetro de envio ao servidor. |
16 | Write 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ção | Limite de quantidade de registradores por requisição |
---|---|---|
02 | Read discrete Inputs | até 255 por requisição |
01 | Read Coils | até 255 por requisição |
05 | Write single coils | 1 por requisição |
15 | Write multiple Coils | até 60 por requisição |
04 | Read input Register | até 255 por requisição |
03 | Read hold Register | até 60 por requisição |
06 | Write single Register | 1 por requisição |
16 | Write multiple Register | até 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ção | Qt. de Memórias | Uso |
---|---|---|
Coils | 500 | Enviar dados binários para o servidor |
Discrete Inputs | 50 | Receber dados binários do servidor |
Holding registers | 500 | Enviar dados numéricos para o servidor |
Input registers | 50 | Receber dados numéricos do servidor |
Coils (MB)
Enviar valores binários ao servidor e ler/comandar DOs
Memória | Função | Notas |
---|---|---|
1-1000 | Disponível para telemetria | - |
1001-5000 | Reservado | - |
5001 | DO1 | true ativo, false inativo |
5002 | DO2 | true ativo, false inativo |
5003 | DO3 | true ativo, false inativo |
5004 | DO4 | true ativo, false inativo |
5005 | DO5 | true ativo, false inativo |
5006 | DO6 | true ativo, false inativo |
5007 | DO7 | true ativo, false inativo |
5008 | DO8 | true ativo, false inativo |
5009 | DO9 | true ativo, false inativo |
5010 | DO10 | true ativo, false inativo |
5011 | DO11 | true ativo, false inativo |
5012 | DO12 | true ativo, false inativo |
5013 | DO13 | true ativo, false inativo |
5014 | DO14 | true ativo, false inativo |
5015 | DO15 | true ativo, false inativo |
5016 | DO16 | true ativo, false inativo |
Discrete inputs (DIN)
Receber valores binários ao servidor e ler DIs
Memória | Função | Notas |
---|---|---|
1-1000 | Disponível para telemetria | - |
1001-5000 | Reservado | - |
5001 | DI1 | true ativo, false inativo |
5002 | DI2 | true ativo, false inativo |
5003 | DI3 | true ativo, false inativo |
5004 | DI4 | true ativo, false inativo |
5005 | DI5 | true ativo, false inativo |
5006 | DI6 | true ativo, false inativo |
5007 | DI7 | true ativo, false inativo |
5008 | DI8 | true ativo, false inativo |
5009 | DI9 | true ativo, false inativo |
5010 | DI10 | true ativo, false inativo |
5011 | DI11 | true ativo, false inativo |
5012 | DI12 | true ativo, false inativo |
5013 | DI13 | true ativo, false inativo |
5014 | DI14 | true ativo, false inativo |
5015 | DI15 | true ativo, false inativo |
5016 | DI16 | true ativo, false inativo |
Holding register (MI)
Enviar valores 16 bits ao servidor
Memória | Função | Notas |
---|---|---|
1-1000 | Disp. telemetria | - |
1001-5000 | Reservado | - |
Input register (IR)
Receber valores 16 bits do servidor e ler AIs
Memória | Função | Notas |
---|---|---|
1-1000 | Disponível para telemetria | - |
1001-5000 | Reservado | - |
5001 | AI1 | int16 - Valor de leitura do conversor AD |
5002 | AI2 | int16 - Valor de leitura do conversor AD |
5003 | AI3 | int16 - Valor de leitura do conversor AD |
5004 | AI4 | int16 - Valor de leitura do conversor AD |
5005 | AI5 | int16 - Valor de leitura do conversor AD |
5006 | AI6 | int16 - Valor de leitura do conversor AD |
... | ... | ... |
5101 ~ 5102 | DI1hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5103 ~ 5104 | DI2hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5105 ~ 5106 | DI3hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5107 ~ 5108 | DI4hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5109 ~ 5110 | DI5hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5111 ~ 5112 | DI6hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5113 ~ 5114 | DI7hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5115 ~ 5116 | DI8hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5117 ~ 5118 | DI9hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5119 ~ 5120 | DI10hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5121 ~ 5122 | DI11hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5123 ~ 5124 | DI12hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5125 ~ 5126 | DI13hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5127 ~ 5128 | DI14hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5129 ~ 5130 | DI15hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
5131 ~ 5132 | DI16hm0 | uint32 - Horímetro de nível baixo da DI, em segundos |
... | ... | ... |
5201 ~ 5202 | DI1hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5203 ~ 5204 | DI2hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5205 ~ 5206 | DI3hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5207 ~ 5208 | DI4hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5209 ~ 5210 | DI5hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5211 ~ 5212 | DI6hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5213 ~ 5214 | DI7hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5215 ~ 5216 | DI8hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5217 ~ 5218 | DI9hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5219 ~ 5220 | DI10hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5221 ~ 5222 | DI11hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5223 ~ 5224 | DI12hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5225 ~ 5226 | DI13hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5227 ~ 5228 | DI14hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5229 ~ 5230 | DI15hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
5231 ~ 5232 | DI16hm1 | uint32 - Horímetro de nível alto da DI, em segundos |
... | ... | ... |
5301 ~ 5304 | DI1p0 | uint64 - Contador de pulsos para nível baixo |
5305 ~ 5308 | DI2p0 | uint64 - Contador de pulsos para nível baixo |
5309 ~ 5312 | DI3p0 | uint64 - Contador de pulsos para nível baixo |
5313 ~ 5316 | DI4p0 | uint64 - Contador de pulsos para nível baixo |
5317 ~ 5320 | DI5p0 | uint64 - Contador de pulsos para nível baixo |
5321 ~ 5324 | DI6p0 | uint64 - Contador de pulsos para nível baixo |
5325 ~ 5328 | DI7p0 | uint64 - Contador de pulsos para nível baixo |
5329 ~ 5332 | DI8p0 | uint64 - Contador de pulsos para nível baixo |
5333 ~ 5336 | DI9p0 | uint64 - Contador de pulsos para nível baixo |
5337 ~ 5340 | DI10p0 | uint64 - Contador de pulsos para nível baixo |
5341 ~ 5344 | DI11p0 | uint64 - Contador de pulsos para nível baixo |
5345 ~ 5348 | DI12p0 | uint64 - Contador de pulsos para nível baixo |
5349 ~ 5352 | DI13p0 | uint64 - Contador de pulsos para nível baixo |
5353 ~ 5356 | DI14p0 | uint64 - Contador de pulsos para nível baixo |
5357 ~ 5360 | DI15p0 | uint64 - Contador de pulsos para nível baixo |
5361 ~ 5364 | DI16p0 | uint64 - Contador de pulsos para nível baixo |
... | ... | ... |
5401 ~ 5404 | DI1p | uint64 - Contador de pulsos para nível alto |
5405 ~ 5408 | DI2p | uint64 - Contador de pulsos para nível alto |
5409 ~ 5412 | DI3p | uint64 - Contador de pulsos para nível alto |
5413 ~ 5416 | DI4p | uint64 - Contador de pulsos para nível alto |
5417 ~ 5420 | DI5p | uint64 - Contador de pulsos para nível alto |
5421 ~ 5424 | DI6p | uint64 - Contador de pulsos para nível alto |
5425 ~ 5428 | DI7p | uint64 - Contador de pulsos para nível alto |
5429 ~ 5432 | DI8p | uint64 - Contador de pulsos para nível alto |
5433 ~ 5436 | DI9p | uint64 - Contador de pulsos para nível alto |
5437 ~ 5440 | DI10p | uint64 - Contador de pulsos para nível alto |
5441 ~ 5444 | DI11p | uint64 - Contador de pulsos para nível alto |
5445 ~ 5448 | DI12p | uint64 - Contador de pulsos para nível alto |
5449 ~ 5452 | DI13p | uint64 - Contador de pulsos para nível alto |
5453 ~ 5456 | DI14p | uint64 - Contador de pulsos para nível alto |
5457 ~ 5460 | DI15p | uint64 - Contador de pulsos para nível alto |
5461 ~ 5464 | DI16p | uint64 - Contador de pulsos para nível alto |