Skip to main content

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

CmpCodeMeter

IEC-Tasks / Timing (higher level)

CmpIecTask

IEC-Tasks / Timing (low level)

CmpSchedule, SysTask

IEC-Applikation (allgemein)

CmpApp, CmpIecTask

IEC-Applikation (Speicher)

SysMem

Socket-Kommunikation

SysSocket

Ethernet-Kommunikation

SysEthernet

Dateien / Ordner

SysFile, SysDir

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.

. Aktiveren der Meldungskategorie Debug über die PLCShell (bei Laufzeitversionen >= SP20)
  1. Öffnen Sie Ihr CODESYS-Projekt und verbinden Sie es mit der Steuerung.

  2. Öffnen Sie die SPS-Shell durch einen Doppelklick auf die Steuerung im Gerätebaum.

    _rtsl_img_plc_shell.png
  3. Geben Sie in der Shell "?" ein, um alle möglichen Befehle zu sehen.

  4. Verwenden Sie die Befehle logsetfilter, loggetfilter und logdelfilter, 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:

      loggetfilter könnte folgende Ausgabe liefern: Logger.0.Filter : 0x0000000F

    • Globales Setzen der aktuellen Log-Kategorie:

      logsetfilter 0xffffffff

    • Lesen der aktuellen Log-Kategorie für eine bestimmte Komponente (beispielsweise CmpCodeMeter):

      loggetfilter CmpCodeMeter

    • Setzen der aktuellen Log-Kategorie für eine bestimmte Komponente (beispielsweise CmpCodeMeter):

      logsetfilter CmpCodeMeter 0xffffffff

. Aktivieren der Logger-Kategorie über die Runtime-Konfigurationsdatei (bei älteren Laufzeit-Versionen)

Beispiel: über eine SSH-Verbindung und einen Texteditor

  1. Beenden Sie das Laufzeitsystem über das DeployTool.

  2. Verbinden Sie sich mit Ihrem Zielsystem (beispielsweise über putty oder einen anderen SSH-Client).

  3. Öffnen Sie die benutzerspezifische Konfigurationsdatei der Laufzeitumgebung mit einem Texteditor (beispielsweise nano):

    sudo nano /etc/codesyscontrol/CODESYSControl_User.cfg

  4. Suchen Sie den Abschnitt CmpLog und setzen Sie den Filter.

    Beispiel 1. Setzen eines globalen Filters

    Beispiel: Logger.0.Filter=0xFFFFFFFF zum Aktivieren aller Debug-Meldungen

    _rtsl_img_plc_shell_global.png


    Beispiel 2. Setzen eines komponentenspezifischen Filters
    [CmpLog]
    CmpCodeMeter.Filter=0xFFFFFFFF
    SysTask.Filter=0xFFFFFFFF


  5. Speichern und schließen Sie die Datei.

  6. Führen Sie einen Neustart des Laufzeitsystems mit dem Deploy Tool durch.