GaIA BIOS Library
Loading...
Searching...
No Matches
Modbus RTU Slave

Overview

This example runs a Modbus RTU slave on serial port 0.

mb_user_callbacks.c implements access functions for:

  • Holding registers
  • Input registers
  • Coils
  • Discrete inputs

Setup

Serial configuration is 9600 baud, 8 data bits, odd parity, 1 stop bit.

The gwa_examples/common/tools directory contains Modbus Poll configuration files to easily communicate with the device.


Modbus register mapping

Input registers

Input register 0 contains digital inputs in the low byte and DIP switch values in the high byte.

Register high byte low byte
Reg 0 DIP switches digital inputs

Holding registers

  • Holding register 0 contains digital outputs
  • Holding registers 1-2 contain display digits (without dot support)
  • Holding register 3 contains display LED status
Register high byte low byte
Reg 0 reserved digital outputs
Reg 1 reserved char[0]
Reg 2 reserved char[1]
Reg 3 reserved 4 reserved bits + LEDs

Discrete inputs

  • Discrete inputs 0-7 are digital inputs
  • Discrete inputs 8-15 are DIP switch values

Coils

  • Coils 0-7 are digital outputs
  • Coils 8-11 are display LEDs