Seltsames Verhalten in der IEC-Applikation
Voraussetzungen
Sie verwenden ein CODESYS-Laufzeitsystem.
Fehlerbehebung
Wenn Sie auf ein seltsames Verhalten stoßen, sollten Sie prüfen, ob der Logger des Laufzeitsystems wertvolle Hinweise oder Informationen liefert. Der CODESYS-Laufzeitsystem-Logger verfügt über einen Mechanismus zum Filtern von Meldungen nach ihrer Kategorie. Standardmäßig ist die Kategorie Debug nicht aktiviert. Aktivieren Sie diese Kategorie, um die Ursache für seltsames Verhalten oder unerwartete Symptome zu finden.
Es gibt globale und komponentenspezifische Log-Filter. Eine Liste aller möglichen komponentenspezifischen Filter können Sie in der Logdatei des Laufzeitsystems im Detail sehen. Verwenden Sie die Filter wie nachfolgend beschrieben.
Symptome bezogen auf | möglicher komponentenbasierter Log-Filter |
|---|---|
Lizenzierung |
|
IEC-Tasks / Timing (higher level) |
|
IEC-Tasks / Timing (low level) |
|
IEC-Applikation (allgemein) |
|
IEC-Applikation (Speicher) |
|
Socket-Kommunikation |
|
Ethernet-Kommunikation |
|
Dateien / Ordner |
|
Tipp
Aktivieren Sie nicht alle Debug-Kategorien auf einmal, da es sonst schwierig wird, das eigentliche Problem zu finden. Gehen Sie Schritt für Schritt vor und deaktivieren Sie „nicht relevante“ Filter, um einen besseren Überblick über das Problem zu erhalten.
Öffnen Sie Ihr CODESYS-Projekt und verbinden Sie es mit der Steuerung.
Öffnen Sie die SPS-Shell durch einen Doppelklick auf die Steuerung im Gerätebaum.

Geben Sie in der Shell "?" ein, um alle möglichen Befehle zu sehen.
Verwenden Sie die Befehle
logsetfilter,loggetfilterundlogdelfilter, um einen Filter zu schreiben, zu lesen und zu löschen. Sie können entweder globale Debug-Filter für das gesamte Laufzeitzeitsystem oder Filter für eine bestimmte Komponente verwenden.Globales Lesen der aktuellen Log-Kategirie:
loggetfilterkönnte folgende Ausgabe liefern:Logger.0.Filter : 0x0000000FGlobales Setzen der aktuellen Log-Kategorie:
logsetfilter 0xffffffffLesen der aktuellen Log-Kategorie für eine bestimmte Komponente (beispielsweise
CmpCodeMeter):loggetfilter CmpCodeMeterSetzen der aktuellen Log-Kategorie für eine bestimmte Komponente (beispielsweise
CmpCodeMeter):logsetfilter CmpCodeMeter 0xffffffff
Beispiel: über eine SSH-Verbindung und einen Texteditor
Beenden Sie das Laufzeitsystem über das DeployTool.
Verbinden Sie sich mit Ihrem Zielsystem (beispielsweise über
puttyoder einen anderen SSH-Client).Öffnen Sie die benutzerspezifische Konfigurationsdatei der Laufzeitumgebung mit einem Texteditor (beispielsweise
nano):sudo nano /etc/codesyscontrol/CODESYSControl_User.cfgSuchen Sie den Abschnitt
CmpLogund setzen Sie den Filter.Beispiel 2. Setzen eines globalen FiltersBeispiel:
Logger.0.Filter=0xFFFFFFFFzum Aktivieren aller Debug-Meldungen
Beispiel 3. Setzen eines komponentenspezifischen Filters[CmpLog] CmpCodeMeter.Filter=0xFFFFFFFF SysTask.Filter=0xFFFFFFFF
Speichern und schließen Sie die Datei.
Führen Sie einen Neustart des Laufzeitsystems mit dem Deploy Tool durch.