Parameter und Funktionsumfang
2.5.4
Handshake-Mechanismus
40
Der Modbus Master pollt (liest zyklisch) das Register "SOE_Control" um zu ermitteln,
ob Einträge in der Meldeliste ("SOE Recorder") enthalten sind, die gelesen werden
müssen.
Die Aussage, dass neue Einträge der Meldeliste zum Auslesen bereitstehen, ist aus
der Information "Sequenznummer" des Registers "SOE_Control" ableitbar (die
Sequenznummer wurde inkrementiert, s. Kap. 2.5.2.2).
Nach Erkennen des Vorliegens von Einträgen in der Meldeliste liest der Modbus Mas-
ter max. die in "Anzahl Meldeblöcke" des Registers "SOE_Control" (s. Bild 2-2) ange-
gebene Anzahl Meldeblöcke aus den Modbus Registern und wertet die Informationen
aus.
Wurden bereits Meldeblöcke bei der Abfrage von "SOE_Control" (auf Verdacht) mit-
gelesen, dann können zuerst diese ohne einen weiteren zusätzlichen Lesezugriff aus-
gewertet werden.
Anschließend quittiert der Modbus Master mit einem Schreibzugriff auf das Register
"SOE_Control" durch Kopieren der Sequenznummer und der Anzahl gelesener Mel-
deblöcke den Lesezugriff auf die Meldeliste und die Auswertung der gelesenen Ein-
träge.
Daraufhin löscht der Modbus Slave in der Meldeliste die zuletzt erfolgreich übertrage-
nen und quittierten Einträge und aktualisiert die Sequenznummer, wenn noch weitere
Einträge vom Master gelesen werden müssen.
Tritt beim Lesen ein Übertragungsfehler auf (CRC-Fehler o.ä.), dann muss der Master
das Lesen wiederholen.
Solange keine Quittierung mittels eines Schreibzugriffs auf das "SOE_Control" Regis-
ter erfolgt, werden die bereitgestellten Daten weder geändert noch die Einträge in der
Meldeliste gelöscht.
Durch erneutes Lesen des Registers "SOE_Control" wird ermittelt, ob weitere Ein-
träge der Meldeliste zum Lesen bereitgestellt wurden.
Der oben beschrieben Vorgang des Lesens, Auswertens und Quittierens der Melde-
listeneinträge durch den Modbus Master wiederholt sich dann.
Wird gleichzeitig mit dem Register "SOE_Control" das Register "Anzahl Meldelisten-
einträge" mitgelesen, dann kann abgeschätzt werden, ob und wieviel Meldeblöcke bei
der nächsten Abfrage des "SOE_Control" Registers mitgelesen werden sollten.
Dies ergibt sich aus der Differenz der "Anzahl Meldelisteneinträge" und der Anzahl
bereitgestellter Meldeblöcke lt. "SOE_Control".
Man erspart sich so ggf. einen Lesezugriff.
SIPROTEC Modbus - Kommunikationsprofil
C53000-L1800-C001-03