Zum Hauptinhalt springen
Version: 5.4

Editor

Script-Editor

Neben standardmäßigen Bedienfunktionen (Kopieren, Einfügen, Ausschneiden, Rückgängig, Speichern) bietet der Editor einige besondere Funktionen:

  • Menü „Datei – Extern speichern“: Speichert das Skript als XML-Datei mit Kopfdaten, Code und Parameterdefinitionen. Das Öffnen solcher XML-Dateien und damit das Importieren von Skripts ist ebenfalls möglich.
  • Menü „Einstellungen – Parameter verwalten“: Hier legen Sie benötigte Parameter und Variablen an (s. Transferobjekt-Skripte und Trigger-Skripte).
  • Menü „Einstellungen – Kommentar bearbeiten“: Der Kommentar wird in der Script-Liste des Plug-ins angezeigt.
  • Taste „F6“: Kompiliert und testet das Programm auf Fehler.

Im rechten Fensterteil finden Sie eine grafische Programmierhilfe für OPC-Zugriffe, Variablen aus der OPC-Router-Konfiguration, Log-Nachrichten und Parameter.

  • Doppelklicken Sie auf einen Eintrag, und die entsprechend vorbereitete Codezeile wird eingefügt. Einträge können als String (in Anführungszeichen) oder als vorbelegte Variable geschrieben werden.

Hinweise zu OPC-Nullwerten

Haben Sie im OPC UA Plug-in den Haken bei „OPC-Nullwerte transferieren“ gesetzt, werden die entsprechenden Werte der Datenpunkte immer transferiert, wenn diese Null sind.

Wenn der Haken nicht gesetzt ist und „Quality“ des Datenpunktes ist nicht „Good“, dann wieder der Wert nicht transferiert und die Verbindung läuft auf Fehler.

Wenn der Haken nicht gesetzt ist und die „Quality“ des Datenpunktes ist „Good“ und der Wert ist Null, dann wird Null transferiert

OpcAccess.Read

Liest den Wert eines OPC-Items aus.

Object <myValue\> = OpcAccess.Read("<ItemPath\>", "<OPCServerName\>")
  • Rückgabe: Objekt
  • ItemPath: Zugriffspfad und Name des Items
  • OPCServerName: Name der OPC-Anbindung im Router-Projekt

OpcAccess.ReadMultiple

Liest den Wert mehrerer OPC-Items aus.

List<string> <lItemNames\> = new List<string> ();

<lItemNames\>.Add ("<ItemPath.ItemName1\>");
<lItemNames\>.Add ("<ItemPath.ItemName2\>");
...

Dictionary<string,object> <MyValues\> = OpcAccess.ReadMultiple(<lItemNames\>, "<OPCServerName\>");
  • Rückgabe: Dictionary <string>
  • lItemNames: Zugriffspfade und Namen der Items als Liste
  • OPCServerName: Name der OPC-Anbindung im Router-Projekt

OpcAccess.Write

Schreibt einen Wert in ein OPC-Item.

OpcAccess.Write ("<ItemPath\>", <objValue\>, "<OPCServerName\>")
  • Rückgabe: keine
  • ItemPath: Zugriffspfad und Name des Items
  • objValue: zu schreibender Wert
  • OPCServerName: Name der OPC-Anbindung im Router-Projekt

OpcAccess.WriteMultiple

Schreibt mehrere Werte in mehrere OPC-Items.

Dictionary<string,object> <dicItemsToWrite\> = new Dictionary<string,object> ();
<dicItemsToWrite\>.Add("<ItemPath.ItemName1\>", <Value1\>);
<dicItemsToWrite\>.Add("<ItemPath.ItemName2\>", <Value2\>);
...
OpcAccess.WriteMultiple(<dicItemsToWrite\>, "<OPCServerName\>")
  • Rückgabe: keine
  • dicItemsToWrite: Dictionary mit Items und Werten
  • OPCServerName: Name der OPC-Anbindung im Router-Projekt

OpcAccess.Browse

Bietet die Möglichkeit für OPC DA- und UA-Anbindungen einen Browse (Objektsuche) durchzuführen.

ItemPath: Zugriffspfad und Name des Items

ServerName: Name der OPC-Anbindung im Router-Projekt

Verschiedene Abfragen stehen Ihnen zur Verfügung:

OpcAccess.Browse(ItemPath, ServerName).Select(e => e.DisplayName).ToArray()
  • Rückgabe: Gibt die Namen der Tags von diesem OPC Pfad an.
OpcAccess.Browse(ItemPath, ServerName).Select(e => e.NodeKind.ToString()).ToArray()
  • Rückgabe: Gibt den Typen der Tags von diesem OPC Pfad zurück.
OpcAccess.Browse(ItemPath, ServerName).Select(e => e.Identifier).ToArray()
  • Rückgabe: Gibt den Namen der Tags mit vollständigem Pfad zurück.
OpcAccess.Browse(ItemPath, ServerName).Select(e => e.HasChildren).ToArray()
  • Rückgabe: Gibt zurück, ob die Tags noch Unterobjekte (Childs) besitzen.
warnung

Wichtig: Um OPC Objekte zu suchen muss für die Usings „Using System.Linq;“ sowie der Assemblyverweis „System.Core.dll“ angegeben werden.

VariablesAccess.Read

Liest den Wert einer Variablen des OPC-Routerprojekts aus. Gemeint sind hier nur Variablen, die über das Variablen-Plug-in angelegt wurden, also keine Platzhalter in Templates, Mail-Objekten o. ä. Wenn die Variable nicht existiert, wird NULL zurückgegeben.

Object <myValue\> = VariablesAccess.Read("<VariableName\>")
  • Rückgabe: Objekt
  • VariableName: Variablen-Name im OPC-Router-Projekt

VariablesAccess.Write

Weist einer Variablen des OPC-Routerprojekts einen Wert zu. Gemeint sind hier nur Variablen, die über das Variablen-Plug-in angelegt wurden, also keine Platzhalter in Templates, Mail-Objekten o. ä. Wenn die Variable nicht existiert, wird sie neu angelegt.

VariablesAccess.Write("<VariableName\>", Value)
  • Rückgabe: keine
  • VariableName: Variablen-Name im OPC-Router-Projekt
  • Value: Wert, der zugewiesen wird, Object

Log

Schreibt eine Nachricht in die Logdatei

Log("<strMessage\>", MessageType.<LogLevel\>)
  • Rückgabe: keine
  • strMessage: zu schreibende Nachricht
  • LogLevel: zu schreibender Log-Level. Wenn der entsprechende Log-Level deaktiviert ist, wird auch nicht aufgezeichnet. MessageType.All protokolliert in jedem Fall, unabhängig von der Router-Konfiguration.