Echtzeit und CPU-Auslastung

Für die einwandfreie Funktionsweise des CX7051 ist es wichtig, die CPU-Auslastung und die Einhaltung der Echtzeit im Blick zu behalten. Andernfalls arbeitet der CX7051 bei einer Überlastung nicht mehr zuverlässig. Beachten Sie, dass bei einer Überlastung auch die Auslastungsanzeige betroffen ist und keine aktuellen Werte mehr liefert. So kann fälschlicherweise eine Auslastung von 40 %angezeigt werden, die SPS aber bereits nicht mehr in Echtzeit arbeiten und das System überlastet sein. Sie sollten sich also bei einer Kleinsteuerung schrittweise an die Belastungsgrenze herantasten.

Was versteht man in diesem Zusammenhang unter Echtzeit? Die SPS arbeitet standardmäßig zyklussynchron, das bedeutet, dass immer eine Taskzeit definiert und zu einem festen Zeitpunkt aufgerufen wird. Die SPS arbeitet zyklussynchron, wenn die Taskzeit nicht überschritten wird. Wenn Sie beispielsweise eine Taskzeit von 10 ms definieren und die SPS nur 2 ms für die Bearbeitung braucht, ist die gewählte Taskzeit in Ordnung und die SPS arbeiten zyklussynchron.

Auch wenn Sie die Echtzeit nicht brauchen, ist es empfehlenswert die Echtzeit einzuhalten, weil es sonst zu negativen Effekten kommen kann. Das können Verbindungprobleme oder Probleme mit Subsystemen wie K-Bus oder EtherCAT sein. Folgende Schritte können Sie durchführen, um zu überprüfen, ob der CX7051 optimal eingestellt oder eher überlastet ist:

Exceed-Counter beobachten

Sobald die SPS nicht mehr zyklussynchron arbeitet und die definierte Taskzeit überschritten wird, wird der Exceed-Counter hochgezählt. Im Idealfall sollte der Zählerstand Null sein.

Echtzeit und CPU-Auslastung 1:
Anzeige des Exceed-Counters in TwinCAT.

Es kann vorkommen, dass der Exceed-Counter beim Start der SPS hochgezählt wird, weil die SPS beispielsweise zum ersten Mal aufgerufen wird oder bestimmte Bestandteile initialisiert werden. Beobachten Sie den Exceed-Counter über einen Zeitraum von mehreren Stunden. Erst wenn der Exceed-Counter über einen längeren Zeitraum nicht mehr hochgezählt wird, kann von einem stabilen Zustand gesprochen werden.

CPU-Auslastung kontrollieren

In TwinCAT wird unter Realtime und der Registerkarte Online, die CPU-Auslastung angezeigt. Kontrollieren Sie den Wert, um zu ermitteln, ob Sie zusätzlichen Programmcode ausführen oder die Taskzeit verkürzen können.

Echtzeit und CPU-Auslastung 2:
Anzeige der CPU-Auslastung in TwinCAT

Die hellgrüne Linie zeigt das voreingestellte CPU-Limit an. Wenn die Auslastung ≥ 65 % beträgt, ist der CX7051 bereits gut ausgelastet und es sollte kein weiterer Programmcode ausgeführt oder die Taskszeit verkürzt werden. Sie sollten nicht bis an die Grenzen gehen und den CX7051 voll auslasten.

Maßnahmen bei einer Überlastung

Wird eine Überlastung mit Hilfe der gezeigten Schritte festgestellt, kann die Auslastung durch eine verbesserte Programmierung oder eine Erhöhung der Taskzeit reduzieren werden. Um Stellen im Programmcode mit langen Bearbeitungszeiten zu finden, kann das Beispiel unter: Bearbeitungszeit im SPS-Programm messen genutzt werden.

Einen Einfluss auf die Echtzeit, hat auch das gewählte Klemmensystem. Abhängig von der Anzahl der Klemmen, kann beispielsweise der K-Bus zusätzlich mehrere Millisekunden beanspruchen und muss bei der Wahl der Taskzeit berücksichtig werden. Es kann durchaus sein, dass bei einer eingestellten Taskzeit von 10 ms das SPS-Programm nur 5 ms benötigt, der Exceed-Counter aber trotzdem hochzählt. Das liegt daran, dass der K-Bus mehr als 5 ms für die Bearbeitung benötigt und die Taskzeit von 10 ms inklusive SPS-Programm und K-Bus überschritten wird. Dieses Problem kann gelöst werden, wenn die Anzahl der Klemmen reduziert wird oder die Taskzeit erhöht wird.

Standardmäßig ist die Echtzeit auf 80 % eingestellt. Das ist bereits der maximale Wert und eine Erhöhung auf 90 % ist mit einer Erhöhung auf 100 % gleichzusetzen.

Echtzeit und CPU-Auslastung 3:
Einstellung der Echtzeitauslastung in TwinCAT.

TwinCAT würde dann die gesamte CPU-Leistung beanspruchen und Dienste, die das Betriebssystem bedient, nicht mehr oder unzureichend funktionieren. Wenn Sie die Echtzeitauslastung auf 90 % erhöhen, sollten Sie sich der möglichen Folgen für das Betriebssystem bewusst sein.