SimpleReadArray
SimpleReadArray (FB)
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.
nach einem Flankenwechsel am Eingang ‘xUpdateActual’ (FALSE >> TRUE) (einmalig)
nach Ablauf der Zeitdauer ‘tTimeUpdateActual’ (‘tTimeUpdateActual’ > 0) (zyklisch)
nach einer Änderung des Arrays am Eingang ‘InputArray’ (Datentyp, Grösse) (einmalig)
nach einer Änderung wesentlicher Parameter (‘byUnitId’, ‘wRegisterAddr’, ‘eFunctionCode’) (einmalig)
nach einem Flankenwechsel am Eingang ‘xEn’ (FALSE >> TRUE) (einmalig)
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:
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

