Zur Überwachung eines einzelnen Slaves wird im Programm die Instanz aufgerufen und der Zustand wird über wState
ermittelt. Zur Vereinfachung können alle Master und Slaves durch verkettete Listen ermittelt werden und durch eine einfache WHILE-Schleife sämtliche Slaves überprüft werden.Beim Master und auch beim Slave gibt es die Eigenschaften NextInstance
und LastInstance
. Diese Eigenschaften geben einen Zeiger auf den nächsten bzw. vorherigen Slave zurück. Für den Master gibt es zusätzlich die Eigenschaft FirstSlave
, die einen Zeiger auf den ersten Slave bereitstellt.Gemäß folgendem Beispiel können Sie alle Slaves überprüfen:
Beispiel
Deklaration:
pSlave: POINTER TO ETCSlave;
Programm:
pSlave := EtherCAT_Master.FirstSlave;
WHILE pSlave <> 0 DO
pSlave^();
IF pSlave^.wState = ETC_SLAVE_STATE.ETC_SLAVE_OPERATIONAL THEN
;
END_IF
pSlave := pSlave^.NextInstance;
END_WHILE
Zunächst wird über EtherCAT_Master.FirstSlave
der erste Slave am Master geholt.
In der WHILE-Schleife wird die jeweilige Instanz aufgerufen und damit wState
ermittelt. Dann kann der Status überprüft werden. Mit pSlave^.NextInstance
wird der Zeiger auf den nächsten Slave geholt. Wenn die Liste zu Ende ist, ist der Zeiger NULL und die Schleife wird verlassen.
Siehe auch