SimpleReadArray

SimpleReadArray (FB)

FUNCTION_BLOCK SimpleReadArray

Representation

Triggering the transmission of Modbus data

The data transmission is triggered if at least one of the conditions described below is met:

Requirement: A suitable array is connected to input InputArray . This is signaled by output xInputArrayValid (= TRUE).

  1. after an edge change at input xUpdateActual (FALSE >> TRUE) (once)

  2. after the expiry of the duration tTimeUpdateActual (tTimeUpdateActual > 0) (cyclic)

  3. after a change to the array at the input InputArray (data type, size) (once)

  4. after a change of essential parameters (byUnitId, wRegisterAddr, eFunctionCode) (once)

  5. after an edge change at input xEn (FALSE >> TRUE) (once)

  6. after each cold start (once)

After the data transmission is completed, the result is signaled (xDataValid = TRUE / FALSE) and the transmitted data in the array InputArray stored.

Note: The data type of the array at input InputArray cannot be recognized and evaluated as of 07/07/2023 (CDS-43675 Compiler, AnyType: Extension for Arrays needed) In the tooltip help for input InputArray the possible array data types are displayed depending on the selected function code.

InOut:

Scope
Name
Type
Initial
Comment

Input

xEn

BOOL

TRUE

Enable / disable communication (TRUE = enable)

Input

byUnitId

BYTE

0

Modbus address of the device

Input

InputArray

__SYSTEM.AnyType

Input for the array (FC01/02: ARRAY OF BOOL, ARRAY OF BYTE) (FC03/04: ARRAY OF INT, ARRAY OF UINT, ARRAY OF WORD)

Input

xUpdateActual

BOOL

FALSE

Update of actual values (on every rising edge)

Input

xResError

BOOL

FALSE

Reinitialization of the outputs eErrorCodeCom or eErrorCodeDev to the error-free state (on every rising edge)

Inout

ModbusClient

ModbusClientBase

Client of the device

Output

eFunctionCodeFb

ReadFunctionCodes

ReadFunctionCodes.FC01_ReadCoils

Feedback - Modbus function code for the Modbus telegram

Output

wRegisterAddrFb

WORD

0

Feedback - start address of the register for the Modbus- telegram

Output

diInputArrayNumb

DINT

0

Number of array elements at the input InputArray depending on the Modbus function code

Output

xInputArrayValid

BOOL

FALSE

Validity of the array at the input InputArray (data type, size) (FALSE = not valid, TRUE = valid)

Output

xDataValid

BOOL

FALSE

Validity of the data in the array InputArray (FALSE = not valid, TRUE = valid)

Output

xAlarm

BOOL

FALSE

Collective fault (TRUE = fault)

Output

xAlarmCom

BOOL

FALSE

Collective fault - communication (TRUE = fault)

Output

eErrorCodeCom

ModbusErrorCode

ModbusErrorCode.NO_ERROR

Error code - communication (0 = no error)

Output

eErrorCodeDev

SIMPLE_READ_ARRAY_ERROR_CODE

SIMPLE_READ_ARRAY_ERROR_CODE.NO_ERROR

Error code - device (0 = no error)

Output

xBusy

BOOL

FALSE

Communication indicator (TRUE = communication)

Input Const

eFunctionCode

ReadFunctionCodes

ReadFunctionCodes.FC03_ReadHoldingRegisters

Modbus function code for the Modbus telegram

Input Const

wRegisterAddr

WORD

Start address of the register for the Modbus telegram

Input Const

tTimeUpdateActual

TIME

TIME#3s0ms

Update interval for the processes influenced by the input xUpdateActual influenced

Last updated