X4 Help Center
7.5 7.4 German English
Auto Light Dark
Auto Light Dark
7.5 7.4 German English

Modbus TCP Connector

This adapter connects to devices via the Modbus TCP protocol.

Properties

Operation

Defines the operation executed by the adapter

Possible values:

  • Read:  Reads data from the Modbus server

  • Write:  Writes data to the Modbus server

Parameters

ip

Server IP

port

Server port

Possible values:

  • any port number

  • 502 (default)

Status values

1

The operation was executed successfully

-1

Any error occurred during the operation's execution

Input

The adapter expects a specific XML structure for the different operations:

  • Operation Read:

    Sample input for operation READ

    XML
    <?xml version="1.0" encoding="UTF-8"?>
    <Request>
    	<InputRegisters count="2" ref="0"/>
    	<InputRegisters count="1" ref="3"/>
    	<HoldingRegisters count="2" ref="0"/>
    	<HoldingRegisters count="1" ref="3"/>
    	<Discretes count="2" ref="0"/>
    	<Discretes count="1" ref="3"/>
    	<Coils count="2" ref="0"/>
    	<Coils count="1" ref="3"/>
    </Request>
    
  • Operation Write:

    Sample input for operation WRITE

    XML
    <?xml version="1.0" encoding="UTF-8"?>
    <Request>
    	<HoldingRegister ref="11">14</HoldingRegister>
    	<Coil ref="20">true</Coil>
    	<Coil ref="000E1">TRUE</Coil>
    </Request>
    

Output

The adapter outputs different structures depending on the executed operation:

  • Operation Read:

    Sample output for operation READ

    XML
    <?xml version="1.0" encoding="UTF-8"?>
    <Request>
    	<InputRegisters count="2" ref="0">
    		<Result>
    			<InputRegister ref="0">0</InputRegister>
    			<InputRegister ref="1">0</InputRegister>
    		</Result>
    	</InputRegisters>
    	<InputRegisters count="1" ref="3">
    		<Result>
    			<InputRegister ref="0">0</InputRegister>
    		</Result>
    	</InputRegisters>
    	<HoldingRegisters count="2" ref="0">
    		<Result>
    			<HoldingRegister ref="0">0</HoldingRegister>
    			<HoldingRegister ref="1">0</HoldingRegister>
    		</Result>
    	</HoldingRegisters>
    	<HoldingRegisters count="1" ref="3">
    		<Result>
    			<HoldingRegister ref="0">0</HoldingRegister>
    		</Result>
    	</HoldingRegisters>
    	<Discretes count="2" ref="0">
    		Result>
    			<Discrete ref="0">false</Discrete>
    			<Discrete ref="1">false</Discrete>
    		</Result>
    	</Discretes>
    	<Discretes count="1" ref="3">
    		Result>
    			<Discrete ref="0">false</Discrete>
    		</Result>
    	</Discretes>
    	<Coils count="2" ref="0">
    		Result>
    			<Coil ref="0">false</Coil>
    			<Coil ref="1">false</Coil>
    		</Result>
    	</Coils>
    	<Coils count="1" ref="3">
    		Result>
    			<Coil ref="0">false</Coil>
    		</Result>
    	</Coils>
    </Request>
    
  • Operation Write:

    Sample output for operation WRITE

    XML
    <?xml version="1.0" encoding="UTF-8"?>
    <Request>
    	<HoldingRegister ref="11">14</HoldingRegister>
    	<Coil ref="20">true</Coil>
    	<Coil ref="000E1">TRUE</Coil>
    </Request>
    

    Sample output in case of an error

    XML
    <?xml version="1.0" encoding="UTF-8"?>
    <listErrors description="Wrong Input values for the elements of this list">
    	<HoldingRegister ref="11">xx</HoldingRegister>
    	<Coil ref="xxxxx">true</Coil>
    	<Coil ref="000B">45</Coil>
    </listErrors>