ModbusRequest (FB)

FUNCTION_BLOCK ModbusRequest

In addition to the predefined Modbus commands defined in the tab Modbus Slave Channel, this function block allows to execute dynamically additional commands in the application. For this programmatically created commands CODESYS does not provide an I/O mapping but input/output data ranges of type ARRAY OF BYTE or ARRAY OF WORD.

InOut:

Scope

Name

Type

Initial

Comment

Inout

slave

ModbusTCPSlave

Input

xExecute

BOOL

Rising edge: Action start

Falling edge: Resets outputs If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or aborted (xAbort), or in the event of an error. In this case, the corresponding output values (xDone, xError, iError) are present at the outputs for exactly one cycle.

xAbort

BOOL

If this input is TRUE, the action is stopped immediately and all outputs are reset to their initial values.

usiUnitID

USINT

16#FF

This field is used for routing purpose when addressing a MODBUS serial line sub-network.

On TCP/IP, the MODBUS server is addressed using its IP address, the MODBUS Unit Identifier is useless (value 0xFF has to be used). On serial line, Modbus devcies are adressed with Uint-IDs from 1 to 247, 0 is used as broadcast address.

ModbusCommand

ModbusCommand

The Modbus Command to be executed. Supports FCs for bit and word access

pSendData

POINTER TO BYTE

Pointer to a buffer holding the data to be send to the Slave

For Register access the buffer is of type ARRAY[0..ModbusCommand.uiWriteLen - 1] OF WORD. For Bit access the buffer is of type ARRAY[0..ModbusCommand.uiWriteLen / 8] OF BYTE

pRecvData

POINTER TO BYTE

Pointer to a buffer for writing the data received from a Slave

For Register access the buffer is of type ARRAY[0..ModbusCommand.uiReadLen - 1] OF WORD. For Bit access the buffer is of type ARRAY[0..ModbusCommand.uiReadLen / 8] OF BYTE

Output

xBusy

BOOL

Is TRUE as long as a request is in progress

xDone

BOOL

Is TRUE if a request finished successfully

xError

BOOL

Is TRUE if a request finished unsuccessfully

xAborted

BOOL

Is TRUE after a request in progress has been aborted by “xAbort”

ModbusError

MB_ErrorCodes

MB_ErrorCodes.UNDEFINED

Specifies the current error as defined in the “MB_ErrorCodes” enumeration