FB_GENIbusGetMValue
Dieser Baustein liest einen Messwert aus einem GENIbus-Gerät aus. Die Operation beschränkt sich dabei ausschließlich auf Werte der Klasse 2. Es ist lediglich der ID-Code des Hi-Bytes und die Länge des Messwertes vorzugeben, die Art der Skalierung und die Messwerteinheit wird durch eine interne INFO-Abfrage ermittelt. Am Ausgang stMValue wird durch eine Struktur alle wichtigen Informationen über den Wert zur Verfügung gestellt.
VAR_INPUT
bStart : BOOL;
byAddr : BYTE := 0;
byIDCode : BYTE := 0;
eDataSize : E_GENIBusMDataSize;
eCommandPriority : E_GENIbusCommandPriority := eGENIbusCommandPriorityMiddle;
bStart: Eine steigende Flanke an diesem Eingang startet den Leseprozess.
byAddr : Adresse des anzusprechenden GENIbus-Gerätes: Gültige Eingaben: 1 - 200. Das entspricht der Einstellung, wie sie am GENIbus-Gerät direkt eingestellt wird. Eine Umrechnung auf den tatsächlichen Adressbereich von 32 - 231, siehe GENIbus-Standard, erfolgt Baustein-intern. Ein Broadcast-Befehl über die Adresse 255 ist naturgemäß nicht erlaubt.
byIDCode: ID-Code des zu lesenden Wertes. Bei 16- 24 und 32-Bit-Werten ist hier die ID des Hi-Bytes anzugeben, wobei immer von folgender Reihenfolge ausgegangen wird: ID = hi, ID+1 = lo1, ID+2 = lo2, ID+3 = lo3.
eDataSize: Datengröße des Messwertes: 8, 16, 24 oder 32 Byte.
eCommandPriority: Priorität (hoch, mittel oder niedrig), mit der der Befehl von der SPS-Bibliothek abgearbeitet wird.
Beispiel: Auslesen des gesamten gepumpten Wasservolumens. Für diesen Fall ist:
- byIdCode = 121
- eDataSize = eGENIbusMSize32Bit

Quelle: Grundfos-Dokumentation "Operating the MAGNA3 and MGE model H/I via the GENIpro interface - Edition 01.00.35 - April 2015" .
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
udiErrorId : UDINT;
udiErrorArg : UDINT;
stMValue : ST_GENIbusMValue;
bBusy: Beginnend mit der Flanke an bStart ist dieser Ausgang so lange auf TRUE, bis der Befehl abgearbeitet wurde.
bError: Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in udiErrorId enthalten.
udiErrorId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das erneute Aktivieren des Bausteins über den Eingang bStart wieder auf 0 zurückgesetzt. Siehe Fehlercodes.
udiErrorArg: Enthält ggf. eine erweiterte Beschreibung des Fehlercodes.
stMValue : Ausgabe des gelesenen Wertes.
VAR_IN_OUT
stCommandBuffer : ST_GENIbusCommandBuffer;
stCommandBuffer: Verweis auf die Struktur zur Kommunikation (Puffer) mit dem FB_GENIbusCommunication()-Baustein.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | erforderliche Bibliotheken |
---|---|---|
TwinCAT v2.11 R3/x64 ab Build 2253 | PC/CX | TcGENIbus-Bibliothek ab V1.0.0 |