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 |