Codesys auf Pi3b - Stündlicher Ausfall Ethercat

Yoshi79

Level-2
Beiträge
33
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich betreibe seit 2018 meine Hausautomatisierung auf einem Pi3b, der über Ethercat auf der eth0-Schnittstelle mit 3 Stationen (Beckhoff BK1120) kommuniziert.
Außerdem hängt er über einen USB-Ethernetadapter (eth1) am Hausnetz.

Seit einigen Tagen habe ich das Phänomen, das jede Stunde zur fast gleichen Sekunde kurzzeitig die Stationen die Kommunikation abbrechen und wieder aufbauen.
Zwischendurch gibt es immer Pausen von mehreren Stunden, in denen kein Abbruch stattfindet.
Hier ein aktuelles Beispiel von heute und gestern:

- gestern Mittag habe ich die SPS neu gestartet, dann kam es um 14:10:35, 15:10:36 und 19:10:43 zum Ausfall
- es folgt eine Pause bis 01:26:52,
- Ausfall um 01:26:52, 02:26:53 und 03:56:54
- es folgt eine Pause bis 12:27:06
- von 12:27:06 bis 21:27:13 kommt es zu stündlichen Ausfällen

1691092994344.png



Ich hatte diese Phänomen mit der seit 2021 laufenden Runtime 4.0.0.0, gestern morgen habe ich dann auf 4.8.0.0 gewechselt mit der Hoffung auf Besserung. Dazu hatte ich den Pi völlig neu aufgesetzt mit einem frischen& aktuellen Image von www.raspberrypi.com. Außer dem Codesys läuft nix auf dem PI. Versorgt wird der PI über ein Meanwell-Hutschienennetzteil, welches auf 5,15V eingestellt ist.

Einen Hardwaredefekt an den BK1120 würde ich ich erstmal ausschließen, da dann die Ausfälle m.M. nach sporadisch auftreten würden.

Meine Vermutung zielt auf einen Prozess, der im Hintergrund zeitgesteuert läuft und mir dabei die eth0-Schnittstelle deaktiviert.
Ich bin nicht der Linux-Profi, habe aber mit journalctl in der Console die jeweiligen Zeitabschnitte durchsucht und nix gefunden, was auf einen so einen Prozess hindeutet.

Bei jedem Ausfall kommen die gleichen Meldungen
.....
Aug 03 15:27:04 Hauspi kernel: smsc95xx 1-1.1:1.0 eth0: unregister 'smsc95xx' usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet
Aug 03 15:27:04 Hauspi kernel: smsc95xx 1-1.1:1.0 eth0: Link is Down
Aug 03 15:27:04 Hauspi kernel: smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
....

Ich kann gerne das komplette syslofg als txt-Datei zur Verfügung stellen, vielleicht findet ihr ja etwas.


So langsam bin ich mit meinem Latein am Ende, die Akzeptanz lässt bei meinen Damen auch schon langsam nach 😕.

Eine letze Idee wäre noch, auf einen zweiten Pi (auf dem derzeit mein IObroker läuft) zu wechseln und zu schauen, ob der Fehler dort auftritt. Dafür müsste ich mir aber erstmal eine Lizenz besorgen, k.A. ob ich die vor dem Wochenende noch bekomme.

Habt ihr noch weitere Ideen, wo ich auf Fehlersuche gehen könnte?

Vielen Dank & Schönen Abend
Jörg
 
Hallo Jörg,
ist ziemlich komisch denke schon das es vielleicht ein HW Problem sein könnte - ( zur ersten BK Klemme - wenn dann - weil der Link verloren geht).
Ich würde einfach mal die beiden Schnittstellen tauschen, also Ethercat über den eth1 machen und dein Hausnetz an eth0 dann betreiben.
Wenn die Symptome dieselben bleiben, dann denke ich wirds wohl an den Ethercat Slaves liegen.
(Zur Not kannst auch auch mal Wlan zur Kommunikation ins Hausnetz nehmen für einen Test).
Auch mal mit 'dmesg' schauen ob die eth0 oder eth1 Schnittteilen sich in diesem Fall (also dem Fehlerfall) im Linux Kernel irgendwie komisch verhalten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Edwin,
ich habe heute morgen den zusätzlichen USB-Ethernetadapter (eth1) abgezogen, so daß das Ethercat weiterhin über die eth0 läuft und die restliche Kommunikation nur noch über Wlan.
Damit will ich ausschließen, das der Adapter die Ursache sein könnte. Ist nur eine vage Vermutung, bis jetzt läuft es aber seit 11h fehlerfrei. Vielleicht führte ja ein Effekt von außen zum Absturz des Adapters, der wiederum alle USB-Schnittstellen mitreißt. Ist aber wie gesagt nur eine gaaaanz vage Idee.
Ich werde auf jeden Fall eine Rückmeldung geben, sei es positiv oder negativ.
Sollten wieder Fehler auftauchen, werde ich auf jeden Fall deinen Tip ausprobieren.

Gruß
Jörg
 
Guten Morgen,
heute morgen um 9:23 hatte ich dann einen Totalausfall vom Bus.
Im EtherCatMaster kam die Fehlermeldung " AL Statuscode #0020":

Error Code 0x0020
Meaning
Slave needs cold start
Description
Slave device require a power off - power on reset

Leider stand nicht dabei welchen Teilnehmer ich auschalten soll. Weder Stop/start aus codesys, noch ein spannungslos machen aller BK1120 hat zum Erfolg geführt.
Letzendlich hat ein reboot über ssh hat das System wieder zum Laufen gebracht.

Ich werde jetzt die Ethercat-Schnittstelle auf eth1 umstecken und weiter versuchen.

Gruß
Jörg
 
leg auch mal Sync Units fest für jeden Slave eine.. dann hast du eventuell mehr Loginformationen im SPS Log wenn es spackt..
SPS log liegt ja auch persistent unter /var/opt/codesys/codesyscontrol.log
 

Anhänge

  • SyncUnit.jpg
    SyncUnit.jpg
    98,6 KB · Aufrufe: 12
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Gestern 17:00 Uhr hatte ich wieder einen Totalausfall, ich habe daraufhin das Ethercat wieder auf eth0 umgestöpselt. Seitdem läuft es ohne Störung.
Morgen früh werde ich die SyncUnits einpflegen und weiter beobachten. Beim nächsten Ausfall wechsele ich dann auf einen zweiten PI.
 
Schau dir das log an ... das sollte uns helfen.
Kannst ja auch mal Auto Restart Slaves am Ethercat Master aus mach das es nicht komplett geflutet wird im Fehlerfall durch die Restart versuche
 
ok, den Neustart der Slaves habe ich deaktiviert.
Hier mal die Logs vom Samstag:
1691397172675.png

Und hier der LOG aus der codesyscontrol_o.log. Der Log ist um 2 Stunden verschoben gegenüber der Liste im Codesys-Engineering

2023-08-05T14:14:07Z, 0x00000018, 1, 0, 1, Setting router <instance>3</instance> address to <address>(0000:e6b0)</address>
2023-08-05T14:54:11Z, 0x00001005, 2, 1090519296, 0, !!!! Warning: watchdog for opmode expired. Address: 1002
2023-08-05T14:54:11Z, 0x00001005, 2, 1090519552, 0, !!!! Warning: watchdog for opmode expired. Address: 1003
2023-08-05T14:54:11Z, 0x00001005, 2, 1090519040, 0, !!!! Warning: watchdog for opmode expired. Address: 1001
2023-08-05T14:54:12Z, 0x00000018, 1, 0, 5, Network interface <interface>ether 3</interface> unregistered
2023-08-05T14:54:27Z, 0x00000007, 1, 0, 6, Network interface: <ipaddress>169.254.230.176</ipaddress>, subnetmask <subnetmask>255.255.0.0</subnetmask>
2023-08-05T14:54:27Z, 0x00000018, 1, 0, 4, Network interface <interface>ether 3</interface> at router <instance>3</instance> registered
2023-08-05T14:54:27Z, 0x00000018, 1, 0, 1, Setting router <instance>3</instance> address to <address>(0000:e6b0)</address>
2023-08-05T14:59:09Z, 0x00001005, 2, 1090519552, 0, !!!! Warning: watchdog for opmode expired. Address: 1003
2023-08-05T15:07:13Z, 0x00001005, 4, 0, 0, **** ERROR: Error: more than 100 packets lost, perhaps communication lost ! check the cables !
2023-08-05T15:07:13Z, 0x00001005, 1, 0, 0, Networkadapter opened
2023-08-05T15:07:13Z, 0x00001005, 1, 0, 0, Preparation successfull
2023-08-05T15:07:15Z, 0x00000018, 1, 0, 5, Network interface <interface>ether 3</interface> unregistered
2023-08-05T15:07:17Z, 0x00001005, 4, 0, 0, **** ERROR: Checking slaves: perhaps slave(s) missing, mismatch to configuration or no communication at all. Use scan for devices to check!
2023-08-05T15:07:17Z, 0x00001005, 1, 0, 0, Networkadapter opened
2023-08-05T15:07:17Z, 0x00001005, 1, 0, 0, Preparation successfull
2023-08-05T15:07:21Z, 0x00001005, 4, 0, 0, **** ERROR: Checking slaves: perhaps slave(s) missing, mismatch to configuration or no communication at all. Use scan for devices to check!
2023-08-05T15:07:22Z, 0x00001005, 1, 0, 0, Networkadapter opened
2023-08-05T15:07:22Z, 0x00001005, 1, 0, 0, Preparation successfull
2023-08-05T15:07:25Z, 0x00000007, 1, 0, 6, Network interface: <ipaddress>169.254.230.176</ipaddress>, subnetmask <subnetmask>255.255.0.0</subnetmask>
2023-08-05T15:07:25Z, 0x00000018, 1, 0, 4, Network interface <interface>ether 3</interface> at router <instance>3</instance> registered
2023-08-05T15:07:25Z, 0x00000018, 1, 0, 1, Setting router <instance>3</instance> address to <address>(0000:e6b0)</address>
2023-08-05T15:07:26Z, 0x00001005, 4, 0, 0, **** ERROR: Checking slaves: perhaps slave(s) missing, mismatch to configuration or no communication at all. Use scan for devices to check!

Das geht dann im 4-Sekundentakt weiter bis:

2023-08-05T15:12:09Z, 0x00001005, 4, 0, 0, **** ERROR: Checking slaves: perhaps slave(s) missing, mismatch to config>
2023-08-05T15:12:09Z, 0x00001005, 1, 0, 0, Networkadapter opened
2023-08-05T15:12:09Z, 0x00001005, 1, 0, 0, Preparation successfull
2023-08-05T15:12:13Z, 0x00000018, 1, 0, 5, Network interface <interface>ether 3</interface> unregistered
2023-08-05T15:12:14Z, 0x00001005, 1, 0, 0, Read slave informations
2023-08-05T15:12:16Z, 0x00001005, 1, 0, 0, Set physical addresses
2023-08-05T15:12:17Z, 0x00001005, 1, 0, 0, All slaves init mode
2023-08-05T15:12:17Z, 0x00001005, 1, 0, 0, prepare slaves
2023-08-05T15:12:17Z, 0x00001005, 1, 0, 0, All slaves pre-operational
2023-08-05T15:12:17Z, 0x00001005, 1, 0, 0, Configure distributed clock settings
2023-08-05T15:12:17Z, 0x00001005, 1, 0, 0, Synchronize Slaves
2023-08-05T15:12:17Z, 0x00001005, 1, 0, 0, Set safe operational
2023-08-05T15:12:17Z, 0x00001005, 1, 0, 0, All slaves safe-operational
2023-08-05T15:12:18Z, 0x00001005, 1, 0, 0, Set operational mode
2023-08-05T15:12:18Z, 0x00001005, 1, 0, 0, All slaves operational
2023-08-05T15:12:18Z, 0x00001005, 1, 0, 0, Startup finished: All slaves in operational !
2023-08-05T15:12:29Z, 0x00000007, 1, 0, 6, Network interface: <ipaddress>169.254.230.176</ipaddress>, subnetmask <su>
2023-08-05T15:12:29Z, 0x00000018, 1, 0, 4, Network interface <interface>ether 3</interface> at router <instance>3</i>
2023-08-05T15:12:29Z, 0x00000018, 1, 0, 1, Setting router <instance>3</instance> address to <address>(0000:e6b0)</ad>
2023-08-05T15:13:54Z, 0x00001005, 4, 0, 0, **** ERROR: Error: more than 100 packets lost, perhaps communication lost>
2023-08-05T15:13:54Z, 0x00001005, 1, 0, 0, Networkadapter opened
2023-08-05T15:13:54Z, 0x00001005, 1, 0, 0, Preparation successfull
2023-08-05T15:13:55Z, 0x00000018, 1, 0, 5, Network interface <interface>ether 3</interface> unregistered
2023-08-05T15:13:58Z, 0x00001005, 1, 0, 0, Read slave informations
2023-08-05T15:14:00Z, 0x00001005, 1, 0, 0, Set physical addresses
2023-08-05T15:14:00Z, 0x00001005, 1, 0, 0, All slaves init mode
2023-08-05T15:14:00Z, 0x00001005, 1, 0, 0, prepare slaves
2023-08-05T15:14:01Z, 0x00001005, 1, 0, 0, All slaves pre-operational
2023-08-05T15:14:01Z, 0x00001005, 1, 0, 0, Configure distributed clock settings
2023-08-05T15:14:01Z, 0x00001005, 1, 0, 0, Synchronize Slaves
2023-08-05T15:14:01Z, 0x00001005, 1, 0, 0, Set safe operational
2023-08-05T15:14:01Z, 0x00001005, 1, 0, 0, All slaves safe-operational
2023-08-05T15:14:01Z, 0x00001005, 1, 0, 0, Set operational mode
2023-08-05T15:14:01Z, 0x00001005, 1, 0, 0, All slaves operational
2023-08-05T15:14:01Z, 0x00001005, 1, 0, 0, Startup finished: All slaves in operational !
2023-08-05T15:14:10Z, 0x00000007, 1, 0, 6, Network interface: <ipaddress>169.254.230.176</ipaddress>, subnetmask <su>
2023-08-05T15:14:10Z, 0x00000018, 1, 0, 4, Network interface <interface>ether 3</interface> at router <instance>3</i>
2023-08-05T15:14:10Z, 0x00000018, 1, 0, 1, Setting router <instance>3</instance> address to <address>(0000:e6b0)</ad>
2023-08-05T15:14:55Z, 0x00000018, 1, 0, 5, Network interface <interface>ether 3</interface> unregistered
2023-08-05T15:15:10Z, 0x00000007, 1, 0, 6, Network interface: <ipaddress>169.254.230.176</ipaddress>, subnetmask <su>
2023-08-05T15:15:10Z, 0x00000018, 1, 0, 4, Network interface <interface>ether 3</interface> at router <instance>3</i>
2023-08-05T15:15:10Z, 0x00000018, 1, 0, 1, Setting router <instance>3</instance> address to <address>(0000:e6b0)</ad>

Dann lief der Bus wieder, bis zum Totalausfall um 18:31:

2023-08-05T16:31:12Z, 0x00000018, 1, 0, 5, Network interface <interface>ether 3</interface> unregistered
2023-08-05T16:31:13Z, 0x00001005, 4, 0, 0, **** ERROR: Error: more than 100 packets lost, perhaps communication lost>
2023-08-05T16:31:14Z, 0x00001005, 1, 0, 0, Networkadapter opened
2023-08-05T16:31:14Z, 0x00001005, 1, 0, 0, Preparation successfull
2023-08-05T16:31:18Z, 0x00001005, 4, 0, 0, **** ERROR: Checking slaves: perhaps slave(s) missing, mismatch to config>
2023-08-05T16:31:18Z, 0x00001005, 1, 0, 0, Networkadapter opened
2023-08-05T16:31:18Z, 0x00001005, 1, 0, 0, Preparation successfull
2023-08-05T16:31:22Z, 0x00001005, 4, 0, 0, **** ERROR: Checking slaves: perhaps slave(s) missing, mismatch to config>
2023-08-05T16:31:22Z, 0x00001005, 1, 0, 0, Networkadapter opened
2023-08-05T16:31:22Z, 0x00001005, 1, 0, 0, Preparation successfull

.....
 
Hallo,
den USB-Ethernetadapter hatte ich abgesteckt gelassen. Im Log waren keine Einträge mit "ether 3" zu finden. Eben habe ich ihn angesteckt und das Log sagt:
2023-08-09T17:52:39Z, 0x00000007, 1, 0, 6, Network interface: <ipaddress>192.168.178.205</ipaddress>, subnetmask <subnetmask>255.255.255.0</subnetmask>
2023-08-09T17:52:39Z, 0x00000018, 1, 0, 4, Network interface <interface>ether 3</interface> at router <instance>3</instance> registered

Wird also der Adapter gewesen sein.
 
Hallo Edwin,
heute um 13:09 ist der pi wieder abgestürzt. Diesmal aber nicht nur das Ethercat, sondern auch die Webvisu und die ModbusTCP-Verbindung zum IObroker.
- Anpingen und eine SSH-Verbindung per putty bzw. über "Aktualisiere Raspberry PI" waren noch möglich.
- Verbindung mit demn Zielsystem war aus Codesys nicht mehr möglich.
- Das Gateway wurde über "Netzwerk durchsuchen" auch nicht mehr gefunden.
- Geholfen hat ein Neustart über "Zielsystem neu starten"

Das ist der Eintrag aus der codesyscontrol.log:
2023-08-13T11:09:14Z, 0x0000011c, 4, 0, 0, **** ERROR: getethframe(1995165456): failed to receive packets,
2023-08-13T11:09:14Z, 0x00001005, 4, 0, 0, **** ERROR: SysEthernet: packet could not be sent, error code:1
2023-08-13T11:09:14Z, 0x00001005, 4, 0, 0, **** ERROR: SysEthernet: packet could not be sent, error code:1

1691930376960.png
Bei den SyncUnit sehe ich gerade, daß die CRC beim Teilnehmer "Scheune" langsam (im Mittel 1*Störung pro Minute, aber nicht konstant).

Ich tausche jetzt mal den Kopf in der Scheune gegen einen anderen.
 
Zurück
Oben