Darstellung im Realtime Monitor

Vereinfacht erklärt, ermöglicht der TwinCAT 3 Realtime Monitor die Darstellung von gruppierten Events. Zur Vermeidung von Bedeutungsüberschneidungen mit dem TwinCAT Eventlogger und den darin geloggten Nachrichten bzw. Alarmen, wird im Kontext des TwinCAT 3 Realtime Monitors von (Zeit-) Marken gesprochen.

Diese Marken können verwendet werden, um das zeitliche Verhalten von Tasks oder Nutzer-Prozessen / Abläufen darzustellen. Dazu werden den Marken eine ID, ein Markentyp, ein Kontext und ein Zeitstempel mitgegeben. Zusätzlich kann bei Bedarf noch ein als UINT formatiertes Nutzer-definiertes Datum mitgegeben werden, um ggf. zusätzliche Informationen mit in die Darstellung im Realtime Monitor einzubringen (z. B. Fehlernummer, Zustand einer State Machine etc.).

Marken-ID:

Die Marken-ID dient zur Identifizierung der dargestellten Task / des dargestellten Prozesses. Mit anderen Worten sollten alle Marken, welche dieselbe Task / denselben Prozess betreffen, dieselbe Marken-ID verwenden.

Markentyp:

Der TwinCAT 3 Realtime Monitor ermöglicht die Darstellung von Ereignissen oder Prozessen / Abläufen aufgetragen über die Zeit. Für die Darstellung von Prozessen / Abläufen werden diese als Sequenz markiert. Eine Sequenz wiederum kann in ein oder mehrere Intervalle unterteilt werden. Marken können entsprechend typisiert werden, um den Start bzw. das Ende von Sequenzen oder Intervallen zu definieren. Zusätzlich können diese auch Ereignisse innerhalb einer Anwendung über die Zeit mit darstellen. Es wird daher zwischen den folgenden Markentypen unterschieden:

  1. Marke:
    Die Marke kann verwendet werden, um ein Ereignis festzuhalten, z. B. den Zeitpunkt eines Alarms, den Wechsel eines Zustandes etc.
  2. Sequenz-Start:
    Ein Sequenz-Start gibt den Zeitpunkt an, wenn einer Task / einem Prozess erlaubt ist loszulaufen (durch höher priore Tasks / Prozesse geschieht dies u. U. erst verzögert).
  3. Intervall-Start:
    Ein Intervall-Start gibt den Zeitpunkt an, wenn eine Task / ein Prozess tatsächlich startet. Aufgrund von Unterbrechungen etc. kann es innerhalb einer Sequenz mehrere Intervall-Starts geben.
  4. Intervall-Stopp:
    Ein Intervall-Stopp gibt den Zeitpunkt an, wenn eine Task / ein Prozess nicht mehr ausgeführt wird. Dies kann z. B. aufgrund von Unterbrechungen durch höher priore Tasks oder durch noch nicht erfüllte Abhängigkeiten geschehen.
  5. Sequenz-Stopp:
    Ein Sequenz-Stopp gibt den Zeitpunkt an, ab welchem eine Task nicht mehr laufen darf, bzw. ein Prozess beendet ist.

Kontext:

Ein Kontext beschreibt eine Zusammenfassung von Marken bzw. Markengruppen.

Für die System-Tasks, werden alle Tasks, die auf einem Kern abgearbeitet werden, zu einem Kontext zusammengefasst (z. B. Kern 0). Ein solcher (Echtzeit)-Kontext bildet somit das Sheduling innerhalb eines Echtzeitkerns ab. Für diese Echtzeit-Kontexte gilt, dass zu jeder Zeit immer nur genau eine der einem Kontext zugeordneten Tasks aktiv ist. Für Nutzerspezifische Marken-Gruppen gilt diese Einschränkung nicht.

Bei der Verwendung der einfachen Marken (durch Verwendung des FB_Mark), werden die nutzerspezifischen Markengruppen automatisch anhand ihrer Anwendungs-Ports gruppiert. So werden z. B. alle Marken, die aus einem SPS-Projekt mit dem Port 851 heraus abgelegt werden, einem Kontext mit der Context-Id 851 (hexadezial 0x353) zugeordnet.

Bei der Verwendung der komplexeren Marken (durch Verwendung des Bausteins FB_RTMon_LogMarkBase), können selber Kontexte (also Zusammenhänge) definiert werden. Dies könnte beispielhaft eine Gruppierung nach Prozessart oder nach Maschinen-Modulen (Funktionseinheiten) sein.

Darstellung in der Baumansicht:

Wie bereits beschrieben, verwenden alle Marken, die dieselbe Task / denselben Prozess beschreiben, dieselbe Marken-ID. Diese Marken werden zu einer Markengruppe zusammengefasst und erhalten einen Eintrag in der Baumansicht des TwinCAT 3 Realtime Monitors.

Für die System-Tasks wird automatisch ein Eintrag mit dem entsprechenden Namen der Task im Baum angelegt.

Für Nutzer-bezogene Markengruppen, welche z. B. Prozesse beschreiben, muss dies manuell erfolgen. Im Baum erscheint automatisch für jede erkannte nutzerspezifische Markengruppe ein Eintrag NewGroup, der anhand der Marken-ID (entspricht der Group-ID im Eigenschaftenfenster der Gruppe) identifiziert werden kann. Diese Gruppe kann entsprechend umbenannt werden (siehe Kontextknoten).

Darstellung im Realtime Monitor 1:

Wie unter Darstellung im Realtime Monitor beschrieben, werden die einzelnen Markengruppen zu Kontexten zusammengefasst. Dies geschieht für die System-Tasks, sowie bei der Verwendung der einfachen Marken automatisch. Bei der Verwendung der erweiterten Marken geschieht dies anhand der im Anwendungs-Code übergebenen Context-ID.

Darstellung im Realtime Monitor 2:

Die Benennung der Marken-IDs (Gruppen-IDs) sowie der Kontexte kann für die spätere Wiederverwendung exportiert, bzw. importiert werden.

In der Chart-Darstellung, wird eine Marken-Gruppe (also alle Marken einer Task / eines Prozesses) innerhalb einer Zeile dargestellt. Näheres hierzu unter Darstellung im Realtime Monitor.

Darstellung im Chart:

Symbole in der chart-Darstellung:

Darstellung im Realtime Monitor 3:

Sequenz-Start

Darstellung im Realtime Monitor 4:

Sequenz Stopp

Darstellung im Realtime Monitor 5:

Zeigt ein Intervall-Start oder ein Intervall-Stopp an.

Darstellung im Realtime Monitor 6:

Marke

Beispielhafte Darstellung:

Die folgende Darstellung zeigt bespielhaft ein mögliches zeitliches Verhalten einer Task. Diese erhält zu einem Zeitpunkt (1) anhand der eingestellten Zykluszeit die „Erlaubnis“ zu laufen. Aufgrund von fehlenden Abhängigkeiten oder aufgrund von noch aktiven höher prioren Tasks läuft diese tatsächlich aber erst zum Zeitpunkt (2) los. Zum Zeitpunkt (3) wurde eine Marke übermittelt. Dies kann sowohl ein „System-Event“ als auch eine nutzerdefinierte Marke sein. Genauer Informationen erfährt man per Tooltip auf der Marke. Die Marke selbst hat keinen Einfluss auf das zeitliche Verhalten der Task / des Prozesses. Zum Zeitpunkt (4) wird die Task unterbrochen (wieder zum Beispiel durch eine Verriegelung oder eine höher priore Task). Zum Zeitpunkt (5) läuft die Task weiter. Zum Zeitpunkt (6) ist die Task beendet.

Darstellung im Realtime Monitor 7:

Abbildung der Abarbeitung eines SPS-Laufzeitmoduls:

Wie im Absatz Echtzeit beschrieben, ruft jedes SPS-Laufzeitmodul das Update der Ein- und Ausgänge selbst auf. Die komplette Abarbeitung der SPS findet im Cyclic-Update der sie aufrufenden Task statt. Aus diesem Grund wird die Abarbeitung der SPS, sofern das detaillierte Logging aktiviert ist, überlagert im Cyclic-Update einer Task abgebildet. In der folgenden Abbildung wird dies beispielhaft gezeigt. Der Zeitpunkt (1) zeigt die Ausführung des Eingangsupdates des SPS-Laufzeitmodules. Im Bereich (2) findet die zyklische Abarbeitung des SPS-Codes statt, welche in dem hier gezeigten Beispiel von einer anderen Task unterbrochen wird. Nach der fertigen Abarbeitung findet zum Zeitpunkt (3) das Ausgangsupdate des SPS-Laufzeitmoduls statt. Die Task selbst, führt im hier gezeigten Beispiel kein Ein- oder Ausgangsupdate durch.

Darstellung im Realtime Monitor 8:

detailliertes Logging:

Die Option „detailedLogging“ (siehe Projektknoten bzw. Kontextknoten) erlaubt es, für Echtzeittasks eine detaillierte Darstellung der Ausführung auch innerhalb einer Task zu erhalten. Die folgenden beiden Abbildungen machen den Unterschied sichtbar.

Standard Logging aktiviert:

Darstellung im Realtime Monitor 9:

DetailedLogging aktivert:

Darstellung im Realtime Monitor 10:

Darstellung der Task-Referenzen:

Die Option Show Task Reference (siehe Markengruppen-Element) ermöglicht es, die Zuordnung von Anwenderprozessen zu den Tasks auf denen sie ausgeführt werden, im TwinCAT 3 Realtime Monitor sichtbar zu machen. Dargestellt wird dies durch gestrichelte Linien. In der folgenden Abbildung sieht man die Zuordnung des orange dargestellten Anwenderprozesses zur einer SPS-Task.

Darstellung im Realtime Monitor 11: