TC3: Tritt bei EtherCAT-Slaves in InfoData->State immer nur ein Zustand ein?

Beiträge
5.659
Reaktionspunkte
1.160
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
eigentlich sagt der Betreff schon fast alles.
Es sollen Anlagenteile die beim Kunden mit anderen Teilen montiert werden vor der Auslieferung getestet werden. Ich möchte jetzt am Anfang überprüfen, ob alle Klemmen und sonstigen EtherCAT Teilnehmer im OP-Status sind. Auf die Art sollen Verdrahtungsfehler beim EtherCAT oder falsch montierte oder fehlende Klemmen erkannt werden. Dafür kann ich ja den State der einzelnen Slaves unter InfoData auswerten. Ich frage mich jetzt nur, ob immer nur ein Status auftreten kann oder auch mehrere gleichzeitig? Wenn ich die Beschreibung richtig verstehe können die Stati von 0x01 bis 0c08 zusammen mit den Stati > 0x0F auftreten, aber kann z.B. der Status 0x001_ und der Status 0x004_ zusammen auftreten?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hmmm, der Aufbau der State Variable (0x000_) lässt auf jeden Fall zu, dass bei einer Addition der Zustände immer noch eine eindeutige Unterscheidung gegeben ist. Würde also nahe liegend sein, dass das auch so auftreten kann. Kann aber jetzt nicht aus dem Gedächtnis heraus sagen ob ich sowas schon einmal beobachtet habe. Normaler weise prüfe ich den state nur auf <>8 und den WcState auf <>0. Das reicht idR lang hin.
 
Kurze Antwort - Nein ;)

Ich denke die Beschreibung kennst du schon ?

https://infosys.beckhoff.com/index....hercat_diagnostics.htm&id=5785803927231945512

Habe das auch mal gemacht über Info Data den Zustand der Klemme auszulesen, das funktioniert ganz gut und es ist immer nur ein Zustand aktiv.
Nein, ich hatte mir die Beschreibung im Hardwareknoten angesehen.
EtherCAT_SlaveState.PNG
Und da sieht es so aus, als ob zumindest die Fehler < 0x0F (z.B. 0x1) zusammen mit den Fehlern > 0x0F auftreten können (z.B. 0x004_).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst ja die State Variable Bitweise auswerten. Jede Meldung wird ja durch ein Bit dargestellt (abgesehen von den ersten 4 Bits der EtherCAT State machine, die du als Zahlenwert lesen musst).
Dann sollte es egal sein wie viele Meldungen evtl. gleichzeitig anstehen.
 
Bedingt, bei mehreren Meldungen muss ich mir halt ausdenken wie ich die in der Target Visu darstelle.

Von irgendwas mit Internetzugang gesendet.

Jetzt mal anders gefragt, wenn z.B. der Fehler 0x001_ ansteht, was interessiert es dich dann ob noch ein Fehler 0x0004 ansteht?

Erstmal muss doch der schwerwiegendere Fehler 0x001_ beseitigt werden bevor ich mich um einen eventuell "darunter" liegenden Fehler anschließend weiter kümmern muss.

Zeig doch erstmal nur 0x001_ als Fehler an, sollte der behoben werden und es noch einen weiteren Fehler geben wird der anschließend angezeigt. Für die Darstellung sehe ich da keinen Widerspruch, sie wäre doch weiter O.K. - es wird doch nichts Falsches angezeigt nur nacheinander.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Frage ist ja auch, wie viel Details bei den Fehlermeldungen überhaupt sinnvoll sind. Wenn ich da nur an TwinSAFE denke, da kann schon mit einer simplen Störung seine Meldeliste voll knallen mit "sinnlosen" Informationen. Oder reicht es einfach nur "Fehler TwinSAFE" -> jmd. der Ahnung hat muss auf die Anlage drauf gucken.
Genauso handhaben wir auch alle anderen Meldungen, die über das Verständnis eines Vor-Ort-Instandhalters hinaus gehen. Fehler in der Peripherie der sich nicht resetten lässt -> Anruf bei uns und wir schauen uns das an.
Hin und wieder geben wird dann noch den original Fehlercode (als Information) mit aus, ohne diesen aber noch irgendwie aufzuschlüsseln.
 
Jetzt mal anders gefragt, wenn z.B. der Fehler 0x001_ ansteht, was interessiert es dich dann ob noch ein Fehler 0x0004 ansteht?

Erstmal muss doch der schwerwiegendere Fehler 0x001_ beseitigt werden bevor ich mich um einen eventuell "darunter" liegenden Fehler anschließend weiter kümmern muss
Die Werte <= 16x0F sind keine Fehlermeldungen, sondern beschreiben den Modus in dem der Slave gerade ist, z.B. OP, Init, usw.
Ich hatte gerade (endlich) Gelegenheit das ein wenig zu testen. Auf jeden Fall können bei den Werten an der dritten Stelle (00X0) mehrere Zustände Gleichzeitig auftreten. Ich habe mal die vorletzte Karte in einem Strang entfernt, dann erhielt ich die Fehlermeldung 16#2461 was aufgeschlüsselt das folgende bedeutet:

2 = Communication Port B (EtherCAT Out am Slave, weil dahinter noch ein Slave konfiguriert wurde zu dem keine Verbindung besteht)
4 = Missing Link (s.o.)
6 = 2 + 4 = 2 bedeutet Invalid Vendor ID and/or Product Code (Weil die falsche Karte), 4 bedeutet Initialization Error Occured (vermutlich aus dem selben Grund)
1 = Slave in Init state

Bei der letzten konfigurierten Karte wird 16x0101 gemeldet und bedeutet:

1 = Slave not present
0 = Nichts
1 = Slave in Init state
 
Zurück
Oben