Kein Gültiges Eigenschaftenmonitoring angegeben ???????

Werner29

Well-known member
Beiträge
296
Punkte Reaktionen
116
Wenn man ein Property in der Symbolkonfiguration konfiguriert, dann geht das nur, wenn das Property eines der beiden Attribute definiert:
{attribute 'monitoring' := 'call'}
{attribute 'monitoring' := 'variable'}
Ich glaube du bist in sowas reingelaufen.
 

Werner29

Well-known member
Beiträge
296
Punkte Reaktionen
116
Auszug aus der Hilfe:

Programmierreferenz > Deklaration > Pragma-Anweisungen > Attribut-Pragmas > Attribut Monitoring
[h=5]Attribut Monitoring[/h]
Dieses Attribut-Pragma ermöglicht das Monitoring von Eigenschaften und Funktionsaufrufen in der Online-Ansicht des IEC-Editors oder in einer Überwachungsliste (watchlist). Siehe im Folgenden: „Monitoring von Eigenschaften“, „Monitoring der Ergebnisse von Funktionsaufrufen“.

Monitoring von Eigenschaften
Das Pragma muss in der Zeile oberhalb der Definition der Eigenschaft eingefügt werden. Dann wird in der Online-Ansicht des Bausteins, der die Eigenschaft verwendet, bzw. in einer Überwachungsliste der Name, Typ und Wert der Variablen der Eigenschaft angezeigt. Dort können auf Werte für das Forcen der Eigenschaften-Variablen vorbereitet werden.
newreply.php

newreply.php
Abb. 559: Beispiel einer zum Monitoring vorbereiteten Eigenschaft

newreply.php

newreply.php
Abb. 560: Beispiel einer Monitoring-Ansicht


Es gibt zwei verschiedene Wege, den aktuellen Wert der Eigenschaften-Variablen angezeigt zu bekommen. Im jeweiligen Anwendungsfall muss sorgfältig erwogen werden, welches Attribut-Pragma geeignet ist, den gewünschten Wert anzuzeigen. Das hängt davon ab, ob innerhalb der Eigenschaft weitere Operationen mit den Variablen implementiert sind.

1. Pragma '{attribute 'monitoring':='variable'}'
Eine implizite Variable wird für die Eigenschaft angelegt, die immer wenn die Applikation die Set oder Get Methode aufruft. Der zuletzt in dieser Variablen gespeicherte Wert wird im Monitoring dargestellt.
Syntax:
{attribute 'monitoring':='variable'}

2. Pragma '{attribute 'monitoring':='call'}'
Dieses Attribut kann nur für Eigenschaften verwendet werden, die einfache Datentype oder Pointer zurückgeben, nicht für strukturierte Typen:
Der zu monitorende Wert wird durch direktes Aufrufen der Eigenschaft geholt, d.h. der Monitoring-Dienst des Laufzeitsystems ruft die Get Methode auf und die Eigenschaften-Funktion wird ausgeführt!
newreply.php
HINWEIS!

Wenn dieser Monitoring-Typ gewählt wird anstelle eine implizite Zwischenvariable zu verwenden (siehe oben, 1.), müssen mögliche Seiteneffekte bedacht werden, die auftreten können wenn innerhalb der Eigenschaft-Funktion die Variable betreffende Operationen implementiert sind!
Syntax:
{attribute 'monitoring':='call'}

Monitoring der Ergebnisse von Funktionsaufrufen
Monitoring von Funktionsaufrufen kann für jeden konstanten Wert verwendet werden, der als 4-byte-numerischer Wert interpretiert werden kann (z.B. INT, SHORT, LONG). Für alle anderen Eingabeparameter (z.B. BOOL) muss eine Variable anstelle des konstanten Parameters verwendet werden. Das Pragma '{attribute 'monitoring':='call'}' muss in der Zeile oberhalb der Funktionsdeklaration eingefügt werden. Dann wird in der Online-Ansicht einer POU, in der einer Variable das Ergenis eines Funktionsaufrufs zugewiesen wird, diese Variable in der Texteditor-Ansicht gemonitored werden. Die Variable kann zum gleichen Zweck auch einer Überwachungsliste hinzugefügt werden. Man beachte, dass dabei der Befehl "Watchliste" verwendet werden kann, um die Variable unmittelbar in einer Überwachungsliste bereitgestellt zu bekommen.
newreply.php

newreply.php
Abb. 561: Beispiel, Funktionen FUN2 und FUN_BOOL2 mit Attribut 'monitoring'

newreply.php

newreply.php
Abb. 562: Beispiel, Aufrufe der Funktionen FUN2 und FUN_BOOL2 in einer Programm-POU

newreply.php

newreply.php
Abb. 563: Beispiel, Funktionsaufrufe im Online-Modus


Zu beachten für das Monitoring von Variablen mit einem impliziten Aufruf einer externen Funktion:
  • Die Funktion muss mit {attribute 'monitoring' := 'call'} gekennzeichnet werden
  • Die Funktion muss mit der Eigenschaft immer binden versehen sein
  • Die Variable muss mit {attribute 'monitoring_instead' := 'MyExternalFunction(a,b,c)'} gekennzeichnet sein
  • Die Werte a,b,c müssen ganzzahlige Werte sein und müssen zu den Eingabeparameter der aufzurufenden Funktion passen
newreply.php
Forcen oder Schreiben von Funktionen wird nicht unterstützt. Forcen kann jedoch implizit implementiert werden, indem ein zusätzlicherEingabeparameter für die jeweilige Funktion hinzugefügt wird, der als internes "Force-Flag" funktioniert dient.
newreply.php
Funktionsmonitoring ist im Kompakt-Laufzeitsystem nicht möglich.
 
OP
S

SY50

Well-known member
Beiträge
271
Punkte Reaktionen
0
Wie gebe ich das ein?

Und wie gebe ich das nun in der Eigenschaft ein? Finde da auch in der Hilfe nichts. :-(
 

Werner29

Well-known member
Beiträge
296
Punkte Reaktionen
116
Zuviel Werbung?
->Hier kostenlos registrieren
An der Stelle nicht, aber einen Link weiter steht es:

Programmierreferenz > Deklaration > Pragma-Anweisungen > Attribut-Pragmas > Benutzerdefinierte Attribute
[h=5]Benutzerdefinierte Attribute[/h]
Ein beliebiges benutzer- oder applikationsdefiniertes Attribut kann einem Baustein, einer Typdefinition oder einer Variablen zugewiesen werden. Dieses Attribut kann vor der Übersetzung des Projekts mit Hilfe von bedingten Pragmas abgefragt werden.
Syntax:
{attribute 'attribute'}
Dieses Pragma wirkt auf die nachfolgende POU- bzw. Variablendeklaration.
Ein Attribut kann den Objekten POUs und Aktionen, dem Objekt Variablen sowie Typen zugewiesen werden.

flip_down.png
Beispiel zu POUs und Aktionen
Attribut "vision" für Funktion fun1:
{attribute 'vision'}
FUNCTION fun1 : INT
VAR_INPUT
i : INT;
END_VAR
VAR
END_VAR



newreply.php
Beispiel zu Variablen
Attribut "DoCount" für Variable ivar :
PROGRAM PLC_PRG
VAR
{attribute 'DoCount'};
ivar:INT;
bvar:BOOL;
END_VAR



newreply.php
Beispiel zu Typen
Attribut "aType" für Datentyp DUT_1:
{attribute 'aType'}
TYPE DUT_1 :
STRUCT
a:INT;
b:BOOL;
END_STRUCT
END_TYPE



Sehen Sie „Bedingte Pragmas“ zum Gebrauch von bedingten Pragmas.

Und bei Properties sieht das dann so aus:
{attribute 'monitoring' := 'call'}
PROPERTY Prop : INT
 
Oben