X4 Produktdokumentation

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>