SimpleReadArray

SimpleReadArray (FB)

FUNCTION_BLOCK SimpleReadArray

Representation

Triggering the transmission of Modbus data

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

Requirement: A suitable array is connected at the input InputArray connected. This is indicated by the output xInputArrayValid (= TRUE).

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

  2. after the elapsed time tTimeUpdateActual (tTimeUpdateActual > 0) (cyclic)

  3. after a change in 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 the input xEn (FALSE >> TRUE) (once)

  6. after each cold start (once)

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

Note: The data type of the array at the input InputArray cannot be detected and evaluated as of 07/07/2023 (CDS-43675 Compiler, AnyType: Extension for Arrays needed) In the tool tip help for the 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 the 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 = invalid, 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 display (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