# eCockpit, Var IN_OUT Zugriff durch Visu und OPC UA Bedenkenlos möglich



## shg (11 Oktober 2020)

Hallo liebe Leute,

Folgende Frage:

-PLC Programm mit Visu
-Programm wird aufgebaut aus einzelnen Funktionsblöcken mit eigener Visu.
-in der Visu werden Frames verwendet, diese werden per UDT an das Programm (den Funktionsblock) gekoppelt - soweit kein Problem.
-Jetzt möchte ich die Visu-Variablen im Programm verwenden und gleichzeitig per OPC UA auf diese zugreifen.
-Ich habe für das PLC-Programm zur Kopplung an die Visu eine Variable vom entsprechenden Typ UDT angelegt, ABER:
 diese nicht unter VAR sondern unter VAR IN_OUT deklariert.
-Im UDT enthaltene Datentypen sind z. B. BOOL, INT, STRING, DWORD, etc, keine ARRAYS, keine weiteren Strukturen

-Ergebnis: Programm läuft, Visu läuft, Zugriff per OPC UA funktioniert; heißt: Ich kann das PRG wahlweise von der VISU
 oder per OPC UA steuern / Werte lesen.

-Jetzt die Frage: Ist dieses Vorgehen sauber, oder lauern evtl. zur Laufzeit böse Überraschungen, a la, dass z. B. auf einmal
 die Visu abstürzt oder Ähnliches.

Vielen Dank schonmal für Eure Einschätzung!

p. s. eine Sache die mir erst im Nachgang gekommen ist: Die Referenz der Visu zeigt nun nicht mehr direkt auf die 
im Funktionsblock angemeldete Var IN_OUT sondern auf die im den Funktionsblock aufrufenden Programm deklarierte Variable
gleichen Typs - welche ebenfalls für den Zugriff durch OPC UA gedacht ist; der Direkte Zugriff auf Var IN_OUT (auch durch Visu-
Referenzen) ist meines Wissens nach nicht möglich / erlaubt.


----------



## Blockmove (11 Oktober 2020)

Du musst aufpassen.
OPC UA läuft azyklisch.


----------



## holgermaik (11 Oktober 2020)

Ich würde falls noch nicht geschehen den modifizierten OPC UA Server von Wago benutzen. Ist speziell für eine PFC200.


> keine ARRAYS, keine weiteren Strukturen


Das ist ungünstig für die Performance. Aus diesem Grund sollten alle Variablen als Struktur gelesen und geschrieben werden.
Deine In_Out im FB kann durchaus einen anderen Wert haben als die außen angelegte. Hier musst du selbst was tun um konsistenz zu behalten.

Holger


----------



## shg (12 Oktober 2020)

Hallo holgermaik,

-> den Wago-eigenen OPC-Server benutze ich bereits.
-> Zum Datentransport werden Strukturen verwendet (nur keine Strukturen in Strukturen, da dies der Wago-Server (noch) nicht kann).
-> Um Konsitent zu sein verwende ich die Methode wie im ersten post unter p.s. beschrieben - ich probiers mal auf diese Weise.

Danke für Deine Hilfe!


----------

