Skip to main content

Monitoring in Programmierobjekten aufrufen

Wenn auf der Steuerung eine Applikation läuft, werden in den Editoren der Programmierbausteine bei Variablen die Istwerte angezeigt. Somit können Sie die Variablenwerte überwachen.

Voraussetzung: In Tools → Optionen unter der Kategorie Texteditor in der Registerkarte Monitoring ist die Option Inline-Monitoring aktivieren aktiviert.

  1. Laden Sie eine Applikation auf die Steuerung und starten Sie die Applikation.

  2. Wählen Sie den Befehl Debug → Darstellung → Dezimal.

    Das Darstellungsformat der Istwerte ist eingestellt.

  3. Klicken Sie auf ein Programmierobjekt der Ansicht Geräte oder POUs.

    Der zugehörige Editor öffnet sich. Sowohl in der Deklaration als auch in der Implementierung werden Istwerte der Variablen ständig aktualisiert.

Im Deklarationseditor monitoren

_cds_img_declaration_editor_online.png

Der Istwert eines Ausdrucks (1) wird in der Spalte Wert (3) angezeigt.

In der Spalte Kommentar (6) werden die Kommentare zu einer Variablen an.

Für weitere Informationen zu Logik und Priorisierung der angezeigten Kommentare siehe: ST-Kommentare

Sie können einen in der Spalte Vorbereiteter Wert (4) eingetragenen Wert schreiben und forcen. Während des Forcen wird der Istwert mit dem roten Symbol _cds_icon_forced_variable.png dekoriert.

Der Ausdruck einer Schnittstellenreferenz ist aufklappbar. Wenn die Schnittstelle auf eine globale Instanz zeigt, wird diese globale Instanz als erster Eintrag unter der Referenz angezeigt. Wenn sich danach die Schnittstellenreferenz ändert, klappt die angezeigte Referenz zu.

In der Implementierung monitoren (Inline-Monitoring)

Die Darstellung des aktuellen Variablenwerts in der Implementierung wird als Inline-Monitoring bezeichnet.

Abhängig von der Programmiersprache gibt es folgende Darstellungen im Implementierungsteil:

  • Variablen haben hinter ihrem Namen ein Fenster mit dem aktuellen Wert _cds_img_ex_inline_monitoring_window.png eingeblendet.

    Wenn Sie für Variablen Werte zum Forcen oder Schreiben vorbereitet haben, werden diese innerhalb des Inline-Monitoring-Fensters hinter dem aktuellen Wert in spitzen Klammern dargestellt.

    Nach dem Forcen werden die betroffenen Werte mit dem Symbol _cds_icon_forced_variable.png gekennzeichnet.

  • Netzwerkeditoren und im CFC-Editor

    Verbindungslinien (Signalleitungen) sind entsprechend ihrem booleschen Istwert farblich gekennzeichnet: blau bedeutet TRUE, schwarz bedeutet FALSE.

  • KOP-Editor

    Zusätzlich sind die Kontakt- und Spulenelemente gekennzeichnet.

    Bei Kontakten oder Spulen wird ein vorbereiteter Wert (TRUE oder FALSE) in einem kleinen Fenster neben dem Element angezeigt.

  • AS-Editor

    Transitionen mit Wert TRUE sind entsprechend ihrem booleschen Istwert farblich gekennzeichnet: blau bedeutet TRUE, schwarz bedeutet FALSE.

    Aktive Schritte sind blau gekennzeichnet.

    In der Implementierung sind geforcte Transitionswerte rot gekennzeichnet.

  • AWL-Tabelleneditor

    Aktuelle Werte werden in einer eigener Spalte dargestellt.

Beispiel 39. Monitoring im ST-Editor
_cds_img_inline_monitoring_st.png


Beispiel 40. Monitoring im KOP-Editor
_cds_img_monitoring_in_ld.png


Beispiel 41. Monitoring im AS-Editor
_cds_img_monitoring_in_sfc.png


Tipp

Sie können die Inline-Monitoring-Funktion hier deaktivieren: Tools → Optionen, Kategorie Texteditor, Registerkarte Monitoring.

Array teilweise monitoren

Ein Array, das aufgeklappt ist, zeigt bei bis zu 1000 Elementen die Istwerte an. Das kann allerdings unübersichtlich sein. Außerdem kann ein Array mehr als 1000 Elemente umfassen. Dann ist es hilfreich, den Bereich der angezeigten Elemente zu begrenzen. Das können Sie während des Onlinebetriebs auf folgende Weise tun.

Prozedur. Monitoringbereich begrenzen

Voraussetzung: Eine Applikation läuft. Darin ist eine mehrdimensionale Arrayvariable mit mehr als 1000 Elementen deklariert.

Beispiel: arrBig : ARRAY [0..100, -9..10, -19..20] OF INT;

  1. Klicken Sie bei der Variablen arrBig in das Feld der Spalte Datentyp.

    Der Dialog Monitoringbereich öffnet sich.

  2. Geben Sie bei Start den Wert [1, -9, -19] ein.

  3. Geben Sie bei Ende den Wert [1, 10, 20] ein.

    Die Istwerte von 800 Arrayelemente werden im Deklarationseditor angezeigt. Der Bereich ist begrenzt auf Elemente des Index [1, <i>, <j>] mit i von -9 bis 10 und j von -19 bis 20.

Funktionsbaustein monitoren

Wenn Sie während des Onlinebetriebs die Editoransicht eines Funktionsbausteins doppelklicken, erscheint ein Dialog, in dem Sie zwischen der Ansicht der Basisimplementierung oder einer bestimmten Instanz wählen können.

Wenn Sie die Basisimplementierung wählen, dann erscheint im Editor der Code, ohne dass aktuelle Werte angezeigt werden. Setzen Sie nun in der Basisimplementierung einen Haltepunkt. Wenn die Ausführung dort anhält, werden die aktuellen Werte derjenigen Instanz angezeigt, die im Programmablauf zuerst abgearbeitet wird. Sie können nun sukzessive durch alle Instanzen steppen.

Wenn Sie eine der Instanzen wahlen, dann öffnet der Editor mit dem Code der Funktionsbaustein-Instanz. Die aktuellen Werte werden in der Deklaration und gegebenenfalls in der Implementierung angezeigt und ständig aktualisiert.

Eigenschaft monitoren

Sie können in einem Eigenschaftenobjekt _cds_icon_interface_property.png Variablen monitoren, wenn Sie während des Onlinebetriebs einen Haltepunkt in der Funktion setzen. Wenn dort angehalten wird, werden die aktuellen Werte angezeigt.

Zusätzlich zu den eigenen Werten werden automatisch die Werte der Variablen der übergeordneten Instanz angezeigt. Im Deklarationsteil der Eigenschaft erscheint nämlich in der ersten Zeile der Pointer THIS, der auf die übergeordnete Instanz zeigt, mit den aktuellen Datentypangaben und Werten.

Beispiel 42. Beispiel

Code

FUNCTION_BLOCK FB_BaseAlfa
VAR
        iBaseLocal : INT;
        sBaseLocal : STRING;
END_VAR
iBaseLocal := iBaseLocal + 1;
sBaseLocal := 'Testing Text';

FB_BaseAlfa.PorpBeta.Get
iBaseLocal := iBaseLocal + 1;
IF iBaseLocal > 0 THEN
        PropBeta := TRUE;
END_IF

FB_BaseAlfa.PorpBeta.Set
IF PropBeta = TRUE THEN
        iBaseLocal := 0;
        sBaseLocal := 'Tested IF';
END_IF


PROGRAM PLC_PRG
VAR
        fb_BaseAlfa : FB_BaseAlfa;
END_VAR

fb_BaseAlfa();

IF fb_BaseAlfa.PropBeta = TRUE THEN
        xResult := TRUE;
END_IF
IF xReset THEN
        fb_BaseAlfa.PropBeta := TRUE;
        xReset := FALSE;
END_IF
_cds_img_monitoring_property.png


Eigenschaftenzugriff im übergeordneten Programmierobjekt monitoren

Sie können in einem Funktionsbaustein oder Programm zusätzlich zu den Variablenwerten die Werte von untergeordneten Eigenschaften _cds_icon_interface_property.png monitoren.

Fügen Sie dafür in dem untergeordneten Eigenschaftenobjekt in der Deklaration entweder das Pragma {attribute 'monitoring' = 'variable'} oder das Pragma {attribute 'monitoring' = 'call'} ein. Wenn Sie zur Laufzeit die übergeordnete Programminstanz oder übergeordnete Funktionsbaustein-Instanz öffnen, dann werden im Editor zusätzlich zu den aktuellen Variablenwerte die aktuellen Eigenschaftenwerte angezeigt.

Methode monitoren

Sie können in einem Methodenobjekt _cds_icon_method.png Variablen monitoren, wenn Sie während des Onlinebetriebs einen Haltepunkt in der Methode setzen. Wenn dort angehalten wird, werden die aktuellen Werte angezeigt.

Zusätzlich zu den eigenen Werten werden automatisch die Werte der Variablen der übergeordneten Instanz angezeigt. Im Deklarationsteil der Methode erscheint nämlich in der ersten Zeile der Pointer THIS, der auf die übergeordnete Instanz zeigt, mit den aktuellen Datentypangaben und Werten.

Beispiel 43. Beispiel

Code

FUNCTION_BLOCK FB_BaseAlfa
VAR
        iBaseLocal : INT;
        sBaseLocal : STRING;
END_VAR
iBaseLocal := iBaseLocal + 1;
sBaseLocal := 'Testing Text';

METHOD MethBaseAlfa : BOOL // Method of FB_BaseAlfa
VAR_INPUT
END_VAR
VAR
        iMethLocal : INT;
END_VAR
iMethLocal := iMethLocal + 1;


PROGRAM PLC_PRG
VAR
        fb_BaseAlfa : FB_BaseAlfa;
END_VAR
fb_BaseAlfa();
fb_BaseAlfa.MethBaseAlfa();
_cds_img_monitoring_method.png


Funktion monitoren

Sie können in einem Funktionsobjekt Variablen monitoren, wenn Sie während des Onlinebetriebs einen Haltepunkt in der Funktion setzen. Wenn dort angehalten wird, werden die aktuellen Werte angezeigt.

Rückgabewert eines Funktionsaufrufs monitoren

Im ST-Editor einer POU wird an der Stelle, an der eine Funktion aufgerufen wird, der aktuelle Rückgabewert als Inline-Monitoring angezeigt.

. Dafür muss Folgendes erfüllt sein:
  • Es handelt sich um einen Wert, der als 4-Byte-numerischer Wert interpretiert werden kann. Beispielsweise INT, SINT oder LINT.

  • In der Funktion ist das Pragma {attribute 'monitoring' := 'call'} eingefügt.