LabVIEW vs. OPC-Spezifikation
Hallo,
ich bin totaler LabVIEW Neuling und habe so meine Probleme die Umsetzung eines OPC-Clients in Labview zu verstehen. Meine Kollegen haben ein Programm erstellt, das über Data Sockets (aufbauend auf dem offiziellen Bsp.) auf einen OPC-Server (DA) zugreift. Hier kommt es gleich zu mehreren Problemen:
Es werden beim Aufbau der Verbindung sämtliche Datenpunkte abgerufen. Während des Programmdurchlauf wiederum werden nur die ersten Variablen aktualisiert. Eine wird garantiert immer aktualisiert und die im Datenarray weiter unterstehenden Elemente werden nicht aktualisiert. Dies verstehe ich nun nicht. Des Weiteren erfolgt die Abmeldung vom OPC in LabVIEW nicht sauber. Die OPC-Server-Instanz bleibt weiterhin bestehen und muss manuell geschlossen werden!
Ich kenne nur die OPC-Client Programmierung mit VB und dort geht alles konform der OPC-DA-Spec. Also man definiert ein OPC-Server-Objekt, baut die Verbindung auf, definiert eine Gruppe, füllt die Gruppe mit OPC-Items, im Idealfall definiert man ein Gruppenevent, sodass der OPC-Server eigenständig die OPC-Items im Client über ein DataChangeEvent aktualisiert und meldet sich dann über ein disconnect wieder beim OPC-Server ab. All dies vermisse ich bei LabVIEW.
Der Weg über das DSC-Modul in LabVIEW soll laut meiner Kollegen auch suboptimal sein, da der LabVIEW-Item-Browser nicht gut mit dem eingesetzten OPC-Server zusammenarbeitet (alle anderen Testclients haben hier kein Problem!) und eine manuelle Eingabe der Items nicht akzeptiert wird.
Ich habe als alternatives Programm mal Simulink und ein Test-Client (Kassle) ausprobiert und hier habe ich keine Probleme. Als funktioniert wie es soll. Warum geht das in Labview nicht!?
Wenn hier jemand Erfahrung mit OPC und LabVIEW hat, wäre es hilfreich ein paar Informationen darüber zu erhalten. Ich gehe stark von einem Anwendungsfehler in LabVIEW aus.
Danke und Gruß,
|