Verkettete Liste zur Überprüfung aller Slaves

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.