Issue
Communication with IP Modbus devices fails. Only the first configured Modbus server responds; subsequent servers do not.
Product Line
Satchwell BAS & SigmaEnvironment
- Sigma IC3-Modbus
- Modbus TCP/IP Devices
Cause
The IC3-Modbus is configured to poll multiple IP Modbus servers. However, only the first server in the configuration communicates successfully. This is due to how the Gateway.txt file is structured and interpreted.
Resolution
The IC3-Modbus uses a Gateway.txt file to define:
- General setup parameters
- A list of Modbus IP servers
- Registers to be polled
Important:
Sigma object numbers must be sequential in the list for proper communication.
Gateway.txt File Structure
Each line in the register section follows this format:
SigmaObject, ControllerAddress, ModbusCommand, RegisterAddress, PollInterval, ObjectCount, MinValue, MaxValue, AlarmSuppressFlag
Example Entries:
; Read a single 16-bit register
51,1,4,062,1,1,0,0,0
; Read three consecutive 16-bit registers to objects 52–54
52,2,4,065,1,3,0,0,0
; Read two 16-bit registers as swapped 32-bit float
78,2,3,120,1,0x1302,0,0,0
- Sigma Object Number
- Controller Address
- Modbus Command (3, 4, 16, 144)
- Register Address
- Minimum Polling Interval (seconds)
- Number of Consecutive Objects (inputs only)
- Minimum Value (outputs only)
- Maximum Value (outputs only)
- Alarm Suppression Flag (optional: 0 = show, 1 = suppress)
Sample Input Object List:
52,1,3,0x804,1,0x1102,0,0,0
54,1,3,0x808,1,0x1102,0,0,0
56,1,3,0x80C,1,0x1102,0,0,0
...
111,1,144,0,1,1,0,100,0
112,2,144,0,1,1,0,100,0
113,1,16,4,1,1,1,30,0IP Address Mapping
The controller-to-IP mapping is defined at the end of the file:
; Controller Address, IP Address
1,10.158.100.114
2,10.158.100.205
⚠️ Note: Serial communications will ignore this table.
Key Takeaways
- Ensure only one IC3-Modbus controller is polling a given Modbus TCP slave.
- Maintain sequential Sigma object numbers in the
Gateway.txtfile. - Use correct Modbus command codes and register formats.
- Validate IP address mappings for each controller.