
Der Funktionsblock 'DrvModbusRead' liest einen oder mehrere Parameter / Werte des Antriebs. Die Anzahl der zu lesenden Daten wird angegeben am Eingang 'Nvar'. Der erste Parameter Nummer wird am Eingang 'PrmNum' angegeben. Alle Parameter müssen von aufeinanderfolgenden Modbus Registern im Antrieb zugänglich sein. Die Werte der Parameter werden im Speicherbereich der SPS gespeichert, der am Eingang 'Data' definiert ist.
Die Aktualisierung der Werte im SPS-Speicherbereich erfolgt, nachdem der Lesevorgang fehlerfrei durchgeführt werden konnte. Dies wird durch JobDone = TRUE und ModMastErrorAct = FALSE angezeigt.
Wurde der Modbus Auftrag mit einem Fehler beendet, wird der Ausgang ModMastErrorAct für einen Zyklus gesetzt. Die vom zurückgegebene Error ID vom Job Modbus wird am Ausgang ModMastErrorIDLast angezeigt. Der Ausgang ModMastErrorIDLast zeigt die letzte Fehler-ID an, bis der Eingang Enable von TRUE auf FALSE gesetzt wird.
Solange die Freigabe = TRUE ist, wird ein neuer Leseauftrag angefordert automatisch einen Zyklus nachdem der weitere Leseauftrag beendet wurde . Der Modbus Job wird vom Kommunikationsblock gestartet, der mit der gleichen 'DriveData' Variablen verbunden ist. Sie verwendet die Funktion Modbus code 03 (n Wörter lesen). Der Antrieb (Modbus Gerät), von dem der Parameter gelesen wird, ist angegeben an diesem Kommunikationsblock. Die Communication Blocks sind verfügbar von der Bibliothek z.B. DrvModbusTcp or DrvModbusRtu.
Der Funktionsbaustein wird aktiviert (Enable = TRUE) oder deaktiviert (Enable = FALSE) über den Eingang Enable. Ist der Baustein aktiv, stehen die aktuellen Werte an den Ausgängen zur Verfügung. Um einen neuen Leseauftrag zu starten, muss der Eingang Enable auf TRUE gesetzt werden. Wenn die Eingabewerte gültig sind, wird eine Aufforderung zur Durchführung eines Modbus Auftrags über die Variable 'DriveData' an den Communication Block gesendet. Wenn mindestens 1 Eingang ungültig ist, wird kein Auftrag generiert, und der Fehler wird angezeigt an den Ausgängen Error und ErrorID statt.