PROJETO / 009 / MODBUS RTU SLAVE SIM

MODBUS RTU
SLAVE SIM

Um mapa Modbus controlável no uBox 2.0 para desenvolver clientes, conferir interpretações e provocar condições de erro sem depender de um inversor real.

STATUS
● EM TESTE
HARDWARE
UBOX 2.0 / ESP-07
FIRMWARE ATUAL
1.0.1
LICENÇA
MIT
uBox 2.0 com ESP-07: a plataforma física reaproveitada para o slave configurável de bancada.

Testar um cliente sem depender de um inversor.

O simulador nasceu para colocar valores conhecidos no barramento e reproduzir respostas, escritas, exceções e atrasos durante o desenvolvimento de clientes Modbus RTU. Em vez de aguardar um equipamento real, o mapa pode ser configurado pelo navegador e exercitado diretamente na bancada.

O hardware reaproveita o uBox 2.0 com ESP-07. O firmware foi desenvolvido na Arduino IDE e publicado sob licença MIT.

Um mapa ajustável no próprio dispositivo.

ATÉ 50 REGISTRADORES

Holding Registers para FC03, FC06 e FC10; Input Registers para FC04. Cada entrada armazena um valor de 16 bits.

CONFIGURAÇÃO RTU

Baud rate, ID do slave, bits de dados, paridade, stop bits e atraso de resposta.

VALORES LEGÍVEIS

Endereços em decimal ou hexadecimal e valores exibidos no formato escolhido, com rejeição de endereços duplicados.

PERSISTÊNCIA

Configuração em EEPROM emulada, protegida por CRC32. Escritas Modbus são gravadas após cerca de cinco segundos sem novas alterações.

O dispositivo cria o ponto de acesso ESP07-Modbus-Sim. A interface fica em http://192.168.4.1/ e a atualização do firmware em /update. Esta versão não depende de roteador, WiFiManager ou mDNS.

Configurar, salvar e voltar ao teste.

Parâmetros do slave e criação do mapa. Captura da versão 1.0.0.
Tipos e endereços podem ser combinados em um mapa de até 50 entradas.
Valores, exclusão de entradas, salvamento e atualização de firmware no navegador.

RS485 no uBox 2.0.

PlataformauBox 2.0 / ESP-07 (ESP8266)
ProtocoloModbus RTU slave
MapaAté 50 registradores de 16 bits
FunçõesFC03 · FC04 · FC06 · FC10
ConfiguraçãoAP local + interface web
PersistênciaEEPROM emulada + CRC32
DesenvolvimentoArduino IDE
Rede localESP07-Modbus-Sim · 192.168.4.1

A UART0 usa GPIO1 / TX e GPIO3 / RX. O controle de direção DE/RE fica no GPIO12. No uBox, o GPIO13 aciona o HC4066 da interface serial; esse detalhe pertence ao hardware específico e não deve ser copiado cegamente para outro conversor RS485.

O atraso configurável é implementado de forma bloqueante. Ele é útil para provocar respostas tardias, mas pausa o processamento durante esse intervalo.

Sete quadros, do valor conhecido à escrita confirmada.

01FC03 — Holding 0xF800

REQUISIÇÃO01 03 F8 00 00 01 B5 6A

RESPOSTA01 03 02 08 00 BF 84

Leitura válida: 0x0800 (2048).

02FC03 — faixa parcialmente ausente

REQUISIÇÃO01 03 20 48 00 02 4F DD

RESPOSTA01 83 02 C0 F1

Exceção 02: endereço ilegal.

03FC03 — Holding 0x2048

REQUISIÇÃO01 03 20 48 00 01 0F DC

RESPOSTA01 03 02 00 25 79 9F

Leitura válida: 37.

04FC04 — Input 0x56AC

REQUISIÇÃO01 04 56 AC 00 01 E0 63

RESPOSTA01 04 02 52 08 85 96

Leitura válida: 21000.

05FC03 — dois Holdings

REQUISIÇÃO01 03 00 01 00 02 95 CB

RESPOSTA01 03 04 00 00 00 00 FA 33

Estado inicial: 0 e 0.

06FC10 — escrita múltipla

REQUISIÇÃO01 10 00 01 00 02 04 D4 60 00 00 0B 8D

RESPOSTA01 10 00 01 00 02 10 08

Escrita aceita: 54368 e 0.

07FC03 — confirmação

REQUISIÇÃO01 03 00 01 00 02 95 CB

RESPOSTA01 03 04 D4 60 00 00 C3 DD

Releitura confirma a escrita.

TIMEOUT

O atraso de resposta também foi testado separadamente para provocar timeout no cliente. O ensaio confirmou o comportamento, mas não há registro de latência detalhado suficiente para publicar um valor específico.

Exceção não é silêncio.

O segundo quadro devolve 01 83 02: o slave respondeu e informou endereço ilegal. Isso é diferente de um timeout, no qual o cliente não recebe uma resposta válida dentro do prazo.

Os registradores do simulador são palavras independentes de 16 bits. Quando um cliente combina duas palavras em um valor de 32 bits, ordem de words, sinal e escala continuam sendo decisões do mapa do equipamento que está sendo simulado.

Uma ferramenta de bancada, não um inversor universal.

  • O mapa é configurável, mas não reproduz automaticamente regras proprietárias de todos os equipamentos.
  • O atraso bloqueante serve ao ensaio de timeout e não representa uma arquitetura assíncrona.
  • A persistência reduz escritas repetidas na EEPROM, porém não substitui uma análise de endurance para outro uso.
  • As capturas mostram a interface 1.0.0; o firmware público 1.0.1 acrescenta diagnóstico e é a referência atual do código.

Uma peça da bancada Modbus.

ORIGEM

Teste sem inversor

A necessidade de validar clientes e mapas Modbus motivou um slave configurável com valores conhecidos.

EVOLUÇÃO

AP próprio

A configuração por WiFiManager e rede externa foi substituída por um ponto de acesso local direto, mais simples para a bancada.

BANCADA

Leitura, exceção e escrita

Sete cenários demonstraram FC03, FC04, FC10, exceção por endereço ausente e confirmação dos valores por releitura.

ATUAL

Firmware 1.0.1

O código público acrescenta diagnóstico; as capturas preservadas documentam a interface da etapa 1.0.0.