SimpleReadArray

SimpleReadArray (FB)

FUNCTION_BLOCK SimpleReadArray

Triggering of the transmission of Modbus data

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

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

  1. after an edge change at the 'xUpdateActual' input ( FALSE >> TRUE ) ( one-time )

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

  3. after a change of the array at the 'InputArray' input ( data type, size ) ( one-time )

  4. after a change of essential parameters ( 'byUnitId', 'wRegisterAddr', 'eFunctionCode' ) ( one-time )

  5. after an edge change on the input 'xEn' ( FALSE >> TRUE ) ( one-time )

  6. after every cold start ( one-time )

After completion of the data transfer, the result is signalled ( 'xDataValid' = TRUE / FALSE ) and the transmitted data are stored in the 'InputArray' array.

Note: As of 07.07.2023 the data type of the array at the 'InputArray' input cannot be detected and evaluated ( CDS-43675 Compiler, AnyType: Extension for Arrays needed ). The tooltip help for the 'InputArray' input shows the possible array data types depending on the chosen function code.

InOut:

Scope
Name
Type
Initial
Comment

Input

xEn

BOOL

TRUE

Enable / disable communication ( TRUE = enabled )

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’ and ‘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 'InputArray' input depending on the Modbus function code

Output

xInputArrayValid

BOOL

FALSE

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

Output

xDataValid

BOOL

FALSE

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

Output

xAlarm

BOOL

FALSE

General fault ( TRUE = fault )

Output

xAlarmCom

BOOL

FALSE

General 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 operations influenced by the input 'xUpdateActual'

Last updated