SimpleReadArray

SimpleReadArray (FB)

FUNCTION_BLOCK SimpleReadArray

Auslösung der Übertragung von Modbus-Daten

Die Datenübertragung wird ausgelöst, falls mindestens eine der nachfolgend beschriebenen Bedingungen erfüllt ist:

Voraussetzung: Es ist ein geeignetes Array am Eingang ‘InputArray’ angeschlossen. Dies wird durch den Ausgang ‘xInputArrayValid’ (= TRUE) signalisiert.

  1. nach einem Flankenwechsel am Eingang ‘xUpdateActual’ (FALSE >> TRUE) (einmalig)

  2. nach Ablauf der Zeitdauer ‘tTimeUpdateActual’ (‘tTimeUpdateActual’ > 0) (zyklisch)

  3. nach einer Änderung des Arrays am Eingang ‘InputArray’ (Datentyp, Grösse) (einmalig)

  4. nach einer Änderung wesentlicher Parameter (‘byUnitId’, ‘wRegisterAddr’, ‘eFunctionCode’) (einmalig)

  5. nach einem Flankenwechsel am Eingang ‘xEn’ (FALSE >> TRUE) (einmalig)

  6. nach jedem Kaltstart (einmalig)

Nach dem Abschluss der Datenübertragung wird das Ergebnis signalisiert (‘xDataValid’ = TRUE / FALSE) und die übertragenen Daten im Array ‘InputArray’ abgelegt.

Hinweis: Der Datentyp des Arrays am Eingang ‘InputArray’ kann Stand 07.07.2023 nicht erkannt und ausgewertet werden (CDS-43675 Compiler, AnyType: Extension for Arrays needed) In der ToolTipp-Hilfe zum Eingang ‘InputArray’ werden die möglichen Array-Datentypen in Abhängigkeit vom gewählten Function-Code angezeigt.

InOut:

Scope
Name
Type
Initial
Comment

Input

xEn

BOOL

TRUE

Freigabe / Sperrung der Kommunikation (TRUE = Freigabe)

Input

byUnitId

BYTE

0

Modbus-Adresse des Geräts

Input

InputArray

__SYSTEM.AnyType

Eingang für das Array (FC01/02: ARRAY OF BOOL, ARRAY OF BYTE) (FC03/04: ARRAY OF INT, ARRAY OF UINT, ARRAY OF WORD)

Input

xUpdateActual

BOOL

FALSE

Aktualisierung der Istwerte (bei jeder ansteigenden Flanke)

Input

xResError

BOOL

FALSE

Reinitialisierung der Ausgänge ‘eErrorCodeCom’ bzw. ‘eErrorCodeDev’ auf den fehlerfreien Zustand (bei jeder ansteigenden Flanke)

Inout

ModbusClient

ModbusClientBase

Client des Geräts

Output

eFunctionCodeFb

ReadFunctionCodes

ReadFunctionCodes.FC01_ReadCoils

Rückmeldung - Modbus-Function-Code für das Modbus-Telegramm

Output

wRegisterAddrFb

WORD

0

Rückmeldung - Startadresse des Registers für das Modbus- Telegramm

Output

diInputArrayNumb

DINT

0

Anzahl der Arrayelemente am Eingang ‘InputArray’ in Abhängigkeit vom Modbus-Function-Code

Output

xInputArrayValid

BOOL

FALSE

Gültigkeit des Arrays am Eingang ‘InputArray’ (Datentyp, Grösse) (FALSE = nicht gültig, TRUE = gültig)

Output

xDataValid

BOOL

FALSE

Gültigkeit der Daten im Array ‘InputArray’ (FALSE = nicht gültig, TRUE = gültig)

Output

xAlarm

BOOL

FALSE

Sammelstörung (TRUE = Störung)

Output

xAlarmCom

BOOL

FALSE

Sammelstörung - Kommunikation (TRUE = Störung)

Output

eErrorCodeCom

ModbusErrorCode

ModbusErrorCode.NO_ERROR

Fehlercode - Kommunikation (0 = kein Fehler)

Output

eErrorCodeDev

SIMPLE_READ_ARRAY_ERROR_CODE

SIMPLE_READ_ARRAY_ERROR_CODE.NO_ERROR

Fehlercode - Gerät (0 = kein Fehler)

Output

xBusy

BOOL

FALSE

Kommunikationsanzeige (TRUE = Kommunikation)

Input Const

eFunctionCode

ReadFunctionCodes

ReadFunctionCodes.FC03_ReadHoldingRegisters

Modbus-Function-Code für das Modbus-Telegramm

Input Const

wRegisterAddr

WORD

Startadresse des Registers für das Modbus-Telegramm

Input Const

tTimeUpdateActual

TIME

TIME#3s0ms

Updateintervall für die Vorgänge, die durch den Eingang ‘xUpdateActual’ beeinflusst werden

Zuletzt aktualisiert