# OPC-Client mit TCL/TK



## d.s. (13 März 2008)

Hallo Leute,

vieleich hat das ja schonmal jemand gemacht.

Ich möchte in der Scriptsprache TCL/TK einen OPC-Client erstellen. Das ganze soll unter Windows 2000 und XP laufen.
Dazu hab ich mir eine DLL gebastelt und in TCL eingebunden. Das Funktioniert auch ganz gut, hat aber leider paar unschöne Nebenwirkungen die ich zur Zeit nicht lösen kann. Die gleiche DLL für Visual Basic angepasst funktioniert ohne diese Probleme, aber für meine zwecke möchte ich das in TCL realisieren.

Jetzt gibt es für TCL ja auch das TclXML - Package für XML. Damit sollte es doch möglich sein mit TCL-eigenen mitteln den Zugriff über XML-DA auf eine OPC-Server zu realisieren.

Hat da jemand Erfahrung oder wenigstens einen Ansatz, oder kennt jemand eine andere möglichkeit in TCL auf einen OPC-Server zuzugreifen?

Im Notfall schreib ich mir einen Client in VB oder C++ und setzte die Daten auf eine Netzwerkschnittstelle um. Das wäre kein Problem, aber so über X Ecken möchte ich nicht.

Schon mal Danke!

d.s.


----------



## pvbrowser (15 März 2008)

Zunächst die Frage,
willst Du auf OPC COM/DCOM zugreifen oder auf OPC XML-DA ?

Mit TCL sollte es möglich sein OPC XML-DA zu implementieren.
Hier die analoge Lösung mit C++
http://pvbrowser.de/pvbrowser/tar/pvbaddon.tar.gz
(darin pvbaddon/daemons/opcxmlda/client/opcxmlda_client.cpp ansehen)

Ansonsten kannst Du C/C++ Bibliotheken mit einem TCL Binding versehen.
Dazu verwenden wir
http://www.swig.org/
In http://pvbrowser.de/pvbrowser/index.php?menu=6&topic=6
kannst Du sehen, wie wir ein Python binding mittels swig erstellt haben.

Mit swig kannst Du also sowohl COM/DCOM als auch XML-DA in TCL einbinden,
wenn es schon eine Implementierung in C/C++ gibt.


----------



## d.s. (15 März 2008)

Hallo,
erstmal Danke, werd mir das mal zu gemüde führen, sobald ich Zeit dazu finde. Sieht auf jedenfall erstmal aus als ob es mir weiter helfen könnte.

Zur Frage,
auf welchem weg der Zugriff läuft ist mir eigentlich egal.

Zur Zeit hab ich mir aus dem Projekt
http://sourceforge.net/projects/opcclient/
eine DLL gebaut. Das Funktioniert soweit ganz gut, aber leider sind da noch paar schwerwiegende Probleme wenn der OPC-Server nicht erreichbar ist die ich bis jetzt noch nicht alle beseitigen konnte.
In Verbindung mit VB.NET läuft das jetzt 1A, aber mit TCL macht das Probleme. Heißt, wenn jemand z.B. das Netzwerkkabel abzieht tritt ein Speicherfehler auf und der reißt mir die Komplette TCL-Anwendung mit.
Und das will ich niemanden anbieten.

Daher mein Gedanke das mit TCL-eigenen mitteln zu realisieren. Und mit dem TclXML - Package sollte OPC XML-DA doch machbar sein.


----------



## pvbrowser (15 März 2008)

d.s. schrieb:


> Und mit dem TclXML - Package sollte OPC XML-DA doch machbar sein.



Ja, Du brauchst:
xml
http
soap


----------

