Simulador Mestre Modbus
O Modbus Master é um simulador gratuito desenvolvido pela EQUINOX que permite testar dispositivos de automação escravos do tipo Modbus.
Suporta as seguintes variantes do protocolo:
- Modbus ASCII
- Modbus RTU
- Modbus TCP
Independentemente da variante utilizada, ele suporta o transporte de dados tanto por portas seriais quanto por Ethernet (TCP/IP). Isso proporciona maior flexibilidade em relação a outros simuladores disponíveis no mercado.

Licença e download
Este programa é software livre, disponível sob a licença GPLv3.
Pode ser redistribuído e utilizado sem restrições, sob responsabilidade do usuário e sem garantia.
O programa é portátil: descompacte o arquivo ZIP e comece a utilizá-lo.
Modo de uso
Parâmetros da janela principal
Modbus settings
| Parâmetro | Descrição |
|---|---|
| Function code | Tipo de dado a ser consultado: Coils, Input Contacts, Holding Registers, Input Registers |
| Slave address | Endereço Modbus do escravo a ser consultado |
| First data object | Endereço do primeiro objeto a ser consultado (do tipo de dado selecionado). Neste parâmetro não deve ser considerado o endereço base do tipo de dado a consultar (10.000 para Input Registers, 30.000 para Input Registers, 40.000 para Holding Registers). |
| Quantity | Quantidade de objetos a consultar |
Operating mode
| Parâmetro | Descrição |
|---|---|
| Mode | Modo de operação (ver tabela a seguir) |
| Variant | Variante Modbus a ser utilizada: TCP, RTU ou ASCII. Qualquer uma das três variantes pode ser utilizada tanto com portas seriais quanto com sockets TCP/IP (de acordo com a configuração definida em Settings –> Communication) |
| Scan rate | A cada quantos segundos será enviada uma consulta |
| Data format | Formato em que os dados recebidos serão apresentados (formato lista ou formato tabela) |
Mode
| Parâmetro | Descrição |
|---|---|
| Poll once | Consultar apenas uma vez |
| Poll continuosly | Consultar de forma contínua, com intervalo em segundos definido por “Scan rate” |
| Scan (step “x”) | Consultar blocos consecutivos de “x” objetos cada um, até totalizar a quantidade definida em “Quantity”, começando pelo objeto “First data object”, com intervalo em segundos definido por “Scan rate” |
Parâmetros de configuração
Estes são especificados no menu Settings–>Communication
| Parâmetro | Descrição |
|---|---|
| Connection type | Selecione “Serial” para portas seriais e TCP/IP para usar sockets. Esta seleção não determina a variante Modbus a ser utilizada (RTU, TCP ou ASCII), podendo ser usada qualquer uma delas tanto por portas seriais quanto por sockets. |
Serial settings
| Parâmetro | Descrição |
|---|---|
| Serial port | Porta serial a ser utilizada (somente para “Connection type” do tipo “Serial” |
| Bitrate | Velocidade 1200, 2400, 4800, 9600, 19200, 38400, 57600 ou 115200 bps |
| Parity | Paridade par, ímpar, marca ou espaço (ou nenhuma) |
| Data bits | Quantidade de bits de dados |
| Stop Bits | Quantidade de bits de stop |
TCP/IP settings
| Parâmetro | Descrição |
|---|---|
| Host | Host ao qual o simulador se conectará. Pode ser um endereço ip ou um hostname |
| Port | Porta do host onde escuta o escravo Modbus ao qual se deseja conectar |
Formatos de apresentação dos dados
Formato tabela
Neste modo são exibidas células, uma para cada objeto do tipo de dado selecionado. As células correspondentes aos objetos que tenham sido consultados serão preenchidas com o valor correspondente (0 ou 1 para os tipos de dados digitais ou o valor correspondente para os analógicos).

Formato lista
É exibida a lista dos objetos consultados: a primeira coluna é o endereço do objeto, a segunda é o seu nome (ver a seção seguinte: “Arquivo modbus.map”), a terceira coluna é o valor atual, a quarta coluna é o valor da consulta anterior (útil para realizar comparações entre consultas), e a quinta coluna é a marca de tempo de quando cada objeto foi consultado.

Arquivo modbus.map
O simulador permite definir os nomes dos objetos para cada tipo de dado; esses nomes serão utilizados quando os dados forem apresentados no “Formato lista”.
Para isso, deve-se criar um arquivo chamado “modbus.map” na mesma pasta onde o programa se encontra. O conteúdo do arquivo deverá seguir o seguinte formato de exemplo:
| 1,2,2048,CTRL.CBCSWI1.Pos.Oper.ctlVal Select open (1=Select) |
| 1,2,2049,CTRL.CBCSWI1.Pos.Oper.ctlVal Select close (1=Select) |
| 1,2,2050,CTRL.CBCSWI1.Pos.Oper.ctlVal Cancel selection (1=Cancel) |
| 1,2,2051,CTRL.CBCSWI1.Pos.Oper.ctlVal Execute selection (1=Execute) |
Trata-se de quatro parâmetros separados por vírgula:
| Parâmetro | Descrição |
|---|---|
| Parâmetro 1 | Endereço do escravo Modbus |
| Parâmetro 2 | Tipo de dado (1 para Coils, 2 para Input Status, 3 para Holding Registers, 4 para Input registers) |
| Parâmetro 3 | Endereço do objeto |
| Parâmetro 4 | Nome do objeto |