Connection Data
IP Address | 45.8.248.56 |
---|---|
Modbus Port | 502 |
Slave ID | 1 - 10 (slaves represent different data formats) |
Supported Commands
Code | Name |
---|---|
1 (0x01) | Read Coils (CL) |
2 (0x02) | Read Discrete Inputs (DI) |
3 (0x03) | Read Holding Registers (HR) |
4 (0x04) | Read Input Registers (IR) |
5 (0x05) | Write Single Coil (CL) |
6 (0x06) | Write Single Holding Register (HR) |
16 (0x10) | Write Multiple Holding Registers (HR) (max. 2 registers) |
Supported HR/IR Formats
The test server provides several data formats for Holding Registers (HR) and Input Registers (IR). They differ in data type and byte/word order (A - most significant). Each Slave provides data in its own format:
Slave | Format | Description |
---|---|---|
1 | UINT16 |
Unsigned 16-bit integer, byte order: A B Registers: 1,2,3,…,1024 (1 register per value, 2 bytes) |
2 | UINT32_ABCD |
Unsigned 32-bit integer, byte order: A B C D Registers: 1,3,5,…,1023 (2 registers per value, 4 bytes) |
3 | UINT32_CDAB |
Unsigned 32-bit integer, byte order: C D A B Registers: 1,3,5,…,1023 (2 registers per value, 4 bytes) |
4 | UINT32_BADC |
Unsigned 32-bit integer, byte order: B A D C Registers: 1,3,5,…,1023 (2 registers per value, 4 bytes) |
5 | UINT32_DCBA |
Unsigned 32-bit integer, byte order: D C B A Registers: 1,3,5,…,1023 (2 registers per value, 4 bytes) |
6 | FLOAT_ABCD |
32-bit floating point number, byte order: A B C D Registers: 1,3,5,…,1023 (2 registers per value, 4 bytes) |
7 | FLOAT_CDAB |
32-bit floating point number, byte order: C D A B Registers: 1,3,5,…,1023 (2 registers per value, 4 bytes) |
8 | FLOAT_BADC |
32-bit floating point number, byte order: B A D C Registers: 1,3,5,…,1023 (2 registers per value, 4 bytes) |
9 | FLOAT_DCBA |
32-bit floating point number, byte order: D C B A Registers: 1,3,5,…,1023 (2 registers per value, 4 bytes) |
10 | UINT16 |
Unsigned 16-bit integer, byte order: A B IR Registers: 1,2,3,…,268 (1 register per value, 2 bytes) IR Registers: 300,301 (2 registers per value, 4 bytes) This slave contains only IR registers with current time metrics for different time zones. Registers for different zones are spaced with an offset of 10: 1 + 10 x Z - Year 2 + 10 x Z - Month 3 + 10 x Z - Day of month 4 + 10 x Z - Hour 5 + 10 x Z - Minute 6 + 10 x Z - Second 7 + 10 x Z - Day of week 8 + 10 x Z - Time zone (in hours from UTC) where Z is the time zone index, from 0 to 26 Zones with index 0 to 14 correspond to time zones east of Greenwich (Z==0: UTC+00:00, Z==14: UTC+14:00) Zones with index 15 to 26 correspond to time zones west of Greenwich in reverse order (Z==15: UTC-01:00, Z==26: UTC-12:00) Example of calculating the register address for Greenwich: Zone UTC+00:00, hence Z = 0 Hour register address = 4 + 10 x 0 = 4 Example of calculating the register address for Moscow time zone: Zone UTC+03:00, hence Z = 3 Hour register address = 4 + 10 x 3 = 34 IR Register 300: Unix Timestamp (UINT32_ABCD) Data is provided with an accuracy of ±0.5 seconds. |
Values (for slaves 1 - 9)
- Values in Coils (CL) and Holding Registers (HR) are writable using commands 5, 6 and 16.
Do not rely on written values, as they can be overwritten by other users! - Values in Discrete Inputs (DI) and Input Registers (IR) are generated automatically (incremented once per second)
Software for Polling Registers
To work with the Modbus server, you can use the PultModbusTester utility.The screenshot shows an example of obtaining time metrics:
