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

