Die IEC-Anwendung hängt aufgrund von Semaphoren
Voraussetzunge
Sie haben ein Linux- oder Windows-basiertes Laufzeitsystem der Version >= SP20.
Fehlerbehebung
Wenn Sie beim Ausführen Ihrer IEC-Applikation oder bei Operationen mit Ihrem CODESYS-Laufzeitsystem Deadlocks oder ein Hängen von Semaphoren beobachten, kann dies durch Semphorensperren / Deadlocks verursacht worden sein.
Laufzeitsysteme ab SP20 (Linux und Windows) sind in der Lage, mit einer Diagnosefunktion für Semaphoren zu helfen. Mit dieser Diagnose kann die Semaphore oder die Interaktion zwischen verwandten Tasks, die auf der problematischen Semaphore arbeiten, gefunden werden.
Diese Funktion müssen Sie in der Konfigurationsdatei aktivieren:
[SysSem] SemEnterDiagnosis=1
Wichtig
Dies kann schwerwiegende Auswirkungen auf die Leistung und das Zeitverhalten der Anwendung (und der Laufzeit) haben.
Nur für Diagnosezwecke verwenden
Nicht in Produktivsystemen verwenden

In diesem Beispiel hält MainTask_1
eine Semaphore für einige Millisekunden, und MainTask
versucht, auf diese Semaphore zuzugreifen.