Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Ich beschäftige mich gerade damit, wie mal LabView im Rahmen der Testautomatisierung am effizientesten fernsteuern kann.
In diesem Zusammenhang bin ich auf das Thema ActiveX gestossen.
Unter Fernsteuerung verstehe ich dabei z. B. folgendes:
1.) Schieberegler auf einen definierten Wert stellen
2.) Schalter auf einen bestimmten Wert stellen (z.B. An/Aus)
3.) Werte aus LabView auslesen.
Falls dazu ActiveX genutz werden würde, könnte man LabView z. B. direkt über ein Python-Script oder indirekt über MATLAB fernsteuern.
Hättet ihr dazu eine Empfehlung?
Oder gibt es einen besseren Weg LabView fernzusteuern als über ActiveX?
Habt ihr in dieser Hinsicht vielleicht schon Erfahrungen?
LabVIEW Professional 2011, Embedded for ARM MCU, Embedded for ADI BF
1996
EN
55129
Deutschland
RE: LabView fernsteuern
Hi,
ja das ist schon richtig, du kannst bei der Erstellung einer LabVIEW EXE, optional einen ActiveX Server einbinden, dann kannst du LabVIEW fernsteuern wie Excel oder andere ActiveX Schnittstellen.
Ich empfehle dann aber gleich das LabVIEW-Proramm, oder besser einzelne subVIs in eine DLL zupacken und diese extern aufzurufen.
Jedoch besteht da ein gewisser Widerspruch, denn LabVIEW ist eigentlich der einfache Weg eine Testumgebung zu gestallten. Verstehe mich nicht falsch. Ich würde eher Matlab aus LabVIEW über ActiveX oder DLL aufrufen und die Python-Script gleich weglassen. Ich kenne keine Entwicklungsumgebung in der eine Visualisierung und Ablaufgestaltung schneller Geht.
Gruß
Das Schönste, was wir entdecken können, ist das Geheimnisvolle.
Nur zum besseren Verständnis: Bei uns ist die Sachlage folgende:
Unser Testautomatisierungswerkzeug (nicht LabView) wird als übergeordnete Applikation alle bisher manuell bedienten Applikationen (z.B. LabView) fernsteuern.
Das Testautomatisierungswerkzeug bietet dabei unter anderem die Möglichkeit, im Testdurchlauf Python-Scripts auszuführen oder aber MATLAB fernzusteuern.
Wir fragen uns nun, was die beste Lösung wäre, LabView fernzusteuern:
- Direkt aus dem Automatisierungswerkzeug mittels Python-Scripts, welche dann die ActiveX-Schnittstelle benutzen
- Direkt aus dem Automatisierungswerkzeug mittels Python-Scripts, welche dann UDP für die Datenübertragung nutzen
- Durch eine indirekte Fernsteuerung mit MATLAB als Vermittler: Testautomatisierungserkzeug steuert MATLAB fern und MATLAB steuert über UDP Labview fern
=> Diese Lösung haben wir schon, wir sind uns jedoch nicht sicher, ob es die beste ist
- Eine andere Lösung
LabVIEW Professional 2011, Embedded for ARM MCU, Embedded for ADI BF
1996
EN
55129
Deutschland
RE: LabView fernsteuern
OK, verstanden.
Dann würde ich dir OPC empfehlen, gibt es einige Beispiel im Example-Finder und für Python gibt es dann OpenOPC. Das ganze ist etwas stabiler als ActiveX und man kann sich die Prozesse auch besser anschauen.
Gruß
Das Schönste, was wir entdecken können, ist das Geheimnisvolle.
Hi!
Das Problem bei den COM/DCOM basierten Lösungen (ActiveX, OPC etc.) ist ja, das man generell auf Probleme stösst, wenn man Labview von einer anderen Workstation aus fernsteuern will. Insbesonderen dann, wenn beide Workstations an einer (Firmen-)Firewall hängen.
Daher würde ich gerne eine Lösung benutzen, die nicht auf COM basiert.
Spontan käme mir da nur UDP oder ein TCP/IP-basierter Ansatz in den Sinn...
LabVIEW Professional 2011, Embedded for ARM MCU, Embedded for ADI BF
1996
EN
55129
Deutschland
RE: LabView fernsteuern
Hi,
aber der OPC-Server liegt doch auf dem Netzwerk. Der Vorteil gegenüber eine selbst gestrickten UDP/TCP Lösung ist, das du den ganzen Overhead nicht mehr Programmieren musst, da das Protokoll alles mitliefert.
Gruß
Das Schönste, was wir entdecken können, ist das Geheimnisvolle.
08.10.2011, 13:40 (Dieser Beitrag wurde zuletzt bearbeitet: 08.10.2011 13:41 von rolfk.)
(13.09.2011 18:11 )Rickson schrieb: Hi!
Das Problem bei den COM/DCOM basierten Lösungen (ActiveX, OPC etc.) ist ja, das man generell auf Probleme stösst, wenn man Labview von einer anderen Workstation aus fernsteuern will. Insbesonderen dann, wenn beide Workstations an einer (Firmen-)Firewall hängen.
Daher würde ich gerne eine Lösung benutzen, die nicht auf COM basiert.
Spontan käme mir da nur UDP oder ein TCP/IP-basierter Ansatz in den Sinn...
Wo Du recht hast hast Du recht! Alles COM/DCOM basierte Gedusel ist mir grundsätzlich suspekt, was nicht heisst dass ich es nicht ab und zu benütze. Die TCP Alternative die Du nennst hat aber ein grosses Problem. Das vom VI Server intern verwendete TCP/IP Protokoll ist leider undokumentiert und daher von aussen nicht einsetzbar. LabVIEW selbst verwendet es aber um zwischen verschiedenen Instanzen auf der selben oder verschiedenen Maschinen miteinander zu kommunizieren. Das bietet auch gleich einen Lösungsansatz. Man kann mittels LabVIEW VI Server eine Library entwickeln und dies in eine DLL umsetzen und dann so von anderen Umgebungen aufrufen. Die Alternative ist um in LabVIEW einen Server zu implementieren der ein eigenes Protokoll implementiert das Du dann voll unter Kontrolle hast.