Comprehensive guide for integrating Proxus with Modbus TCP devices for industrial data acquisition, including detailed parameter configurations, address formats, and data type specifications.
Modbus TCP is an industrial communication protocol that enables data acquisition from industrial devices over TCP/IP networks. It provides a standardized method for reading data from PLCs, sensors, and other industrial equipment using Ethernet infrastructure.
Configure the communication settings for your Modbus TCP device:
Parameter | Description | Default Value | Range/Format | Required |
---|---|---|---|---|
Host | IP address of the Modbus TCP device | - | IPv4 format | Yes |
Port | TCP port number for Modbus communication | 502 | 1-65535 | No |
ReadingFrequency | Interval between reading cycles (ms) | 1000 | 100-60000 | No |
ConnectTimeOut | Connection timeout duration (ms) | 1000 | 500-30000 | No |
ReceiveTimeOut | Response timeout duration (ms) | 1000 | 500-30000 | No |
DataFormat | Byte order for multi-register data | ABCD | ABCD, BADC, CDAB, DCBA | No |
The DataFormat parameter determines how multi-register values are interpreted:
Each tag represents a data point from your Modbus device and requires:
Component | Description | Default | Example |
---|---|---|---|
s=station | Modbus station/slave ID | 1 | s=2 |
x=function | Read function code | 3 | x=4 |
address | Register or coil number | - | 100 |
.bit | Specific bit within a register | - | .5 |
Function Code | Operation | Address Prefix | Description |
---|---|---|---|
01 | Read Coils | x=1; | Read discrete output coil status |
02 | Read Discrete Inputs | x=2; | Read discrete input contact status |
03 | Read Holding Registers | (default) | Read holding register values |
04 | Read Input Registers | x=4; | Read input register values |
Address Format | Description | Function Code |
---|---|---|
100 | Holding register 100 | 03 |
s=2;100 | Register 100 on station 2 | 03 |
x=4;100 | Input register 100 | 04 |
s=2;x=4;100 | Input register 100 on station 2 | 04 |
100.0 | Bit 0 of holding register 100 | 03 |
x=2;100 | Discrete input 100 | 02 |
x=1;100 | Coil 100 | 01 |
Data Type | Size (Registers) | Size (Bytes) | Description | Range |
---|---|---|---|---|
Bool | - | 1 bit | Boolean value (coil/discrete) | true/false |
Short | 1 | 2 bytes | Signed short integer | -32,768 to 32,767 |
UShort | 1 | 2 bytes | Unsigned short integer | 0 to 65,535 |
Int | 2 | 4 bytes | Signed integer | -2,147,483,648 to 2,147,483,647 |
UInt | 2 | 4 bytes | Unsigned integer | 0 to 4,294,967,295 |
Float | 2 | 4 bytes | Single-precision floating point | IEEE 754 single precision |
Long | 4 | 8 bytes | Signed long integer | Large signed integer values |
ULong | 4 | 8 bytes | Unsigned long integer | Large unsigned integer values |
Double | 4 | 8 bytes | Double-precision floating point | IEEE 754 double precision |
DateTime | 4 | 8 bytes | Date and time value | Date and time representation |
Data Type | Description | Length Usage | Calculation |
---|---|---|---|
String | Variable-length string for text data | Required | Characters = Length × 2 |
Bytes | Variable-length byte data for binary data | Required | Bytes = Length × 2 |
Example: Length = 5 reads 5 registers containing 10 characters
Example: Length = 4 reads 4 registers containing 8 bytes
Read specific bits from registers by adding .bit
to the address:
This reads bit 5 (0-indexed) from holding register 100.
Override the default data format for specific tags:
This reads a float value using BADC byte order instead of the default ABCD.
Issue | Possible Cause | Solution |
---|---|---|
Connection Timeout | Network connectivity, wrong IP/port | Verify network settings and device availability |
Connection Refused | Device not responding, firewall blocking | Check device status and network configuration |
Intermittent Disconnections | Network instability, timeout settings | Adjust timeout values and check network stability |
Issue | Possible Cause | Solution |
---|---|---|
Invalid Address | Address doesn’t exist on device | Check device documentation for valid address ranges |
Data Format Error | Wrong byte order for multi-register values | Adjust DataFormat parameter (ABCD, BADC, etc.) |
Function Code Error | Device doesn’t support function code | Try different function codes (03, 04, 01, 02) |
Length Parameter Error | Wrong Length for String/Bytes | Set correct Length value for variable data types |
Address Range Error | Length exceeds available registers | Reduce Length or check device memory map |
Memory Area | Function Code | Address Prefix | Data Types | Typical Use |
---|---|---|---|---|
Coils | 01 | x=1; | Bool | Digital outputs status |
Discrete Inputs | 02 | x=2; | Bool | Digital inputs status |
Holding Registers | 03 | (default) | All types | Process variables, setpoints |
Input Registers | 04 | x=4; | All types | Sensor readings, measurements |
Comprehensive guide for integrating Proxus with Modbus TCP devices for industrial data acquisition, including detailed parameter configurations, address formats, and data type specifications.
Modbus TCP is an industrial communication protocol that enables data acquisition from industrial devices over TCP/IP networks. It provides a standardized method for reading data from PLCs, sensors, and other industrial equipment using Ethernet infrastructure.
Configure the communication settings for your Modbus TCP device:
Parameter | Description | Default Value | Range/Format | Required |
---|---|---|---|---|
Host | IP address of the Modbus TCP device | - | IPv4 format | Yes |
Port | TCP port number for Modbus communication | 502 | 1-65535 | No |
ReadingFrequency | Interval between reading cycles (ms) | 1000 | 100-60000 | No |
ConnectTimeOut | Connection timeout duration (ms) | 1000 | 500-30000 | No |
ReceiveTimeOut | Response timeout duration (ms) | 1000 | 500-30000 | No |
DataFormat | Byte order for multi-register data | ABCD | ABCD, BADC, CDAB, DCBA | No |
The DataFormat parameter determines how multi-register values are interpreted:
Each tag represents a data point from your Modbus device and requires:
Component | Description | Default | Example |
---|---|---|---|
s=station | Modbus station/slave ID | 1 | s=2 |
x=function | Read function code | 3 | x=4 |
address | Register or coil number | - | 100 |
.bit | Specific bit within a register | - | .5 |
Function Code | Operation | Address Prefix | Description |
---|---|---|---|
01 | Read Coils | x=1; | Read discrete output coil status |
02 | Read Discrete Inputs | x=2; | Read discrete input contact status |
03 | Read Holding Registers | (default) | Read holding register values |
04 | Read Input Registers | x=4; | Read input register values |
Address Format | Description | Function Code |
---|---|---|
100 | Holding register 100 | 03 |
s=2;100 | Register 100 on station 2 | 03 |
x=4;100 | Input register 100 | 04 |
s=2;x=4;100 | Input register 100 on station 2 | 04 |
100.0 | Bit 0 of holding register 100 | 03 |
x=2;100 | Discrete input 100 | 02 |
x=1;100 | Coil 100 | 01 |
Data Type | Size (Registers) | Size (Bytes) | Description | Range |
---|---|---|---|---|
Bool | - | 1 bit | Boolean value (coil/discrete) | true/false |
Short | 1 | 2 bytes | Signed short integer | -32,768 to 32,767 |
UShort | 1 | 2 bytes | Unsigned short integer | 0 to 65,535 |
Int | 2 | 4 bytes | Signed integer | -2,147,483,648 to 2,147,483,647 |
UInt | 2 | 4 bytes | Unsigned integer | 0 to 4,294,967,295 |
Float | 2 | 4 bytes | Single-precision floating point | IEEE 754 single precision |
Long | 4 | 8 bytes | Signed long integer | Large signed integer values |
ULong | 4 | 8 bytes | Unsigned long integer | Large unsigned integer values |
Double | 4 | 8 bytes | Double-precision floating point | IEEE 754 double precision |
DateTime | 4 | 8 bytes | Date and time value | Date and time representation |
Data Type | Description | Length Usage | Calculation |
---|---|---|---|
String | Variable-length string for text data | Required | Characters = Length × 2 |
Bytes | Variable-length byte data for binary data | Required | Bytes = Length × 2 |
Example: Length = 5 reads 5 registers containing 10 characters
Example: Length = 4 reads 4 registers containing 8 bytes
Read specific bits from registers by adding .bit
to the address:
This reads bit 5 (0-indexed) from holding register 100.
Override the default data format for specific tags:
This reads a float value using BADC byte order instead of the default ABCD.
Issue | Possible Cause | Solution |
---|---|---|
Connection Timeout | Network connectivity, wrong IP/port | Verify network settings and device availability |
Connection Refused | Device not responding, firewall blocking | Check device status and network configuration |
Intermittent Disconnections | Network instability, timeout settings | Adjust timeout values and check network stability |
Issue | Possible Cause | Solution |
---|---|---|
Invalid Address | Address doesn’t exist on device | Check device documentation for valid address ranges |
Data Format Error | Wrong byte order for multi-register values | Adjust DataFormat parameter (ABCD, BADC, etc.) |
Function Code Error | Device doesn’t support function code | Try different function codes (03, 04, 01, 02) |
Length Parameter Error | Wrong Length for String/Bytes | Set correct Length value for variable data types |
Address Range Error | Length exceeds available registers | Reduce Length or check device memory map |
Memory Area | Function Code | Address Prefix | Data Types | Typical Use |
---|---|---|---|---|
Coils | 01 | x=1; | Bool | Digital outputs status |
Discrete Inputs | 02 | x=2; | Bool | Digital inputs status |
Holding Registers | 03 | (default) | All types | Process variables, setpoints |
Input Registers | 04 | x=4; | All types | Sensor readings, measurements |