LabVIEWForum.de - Client Server Applikation - wie fange ich an?

LabVIEWForum.de

Normale Version: Client Server Applikation - wie fange ich an?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe folgendes Problem:
Mein Spannungsgenerator gibt nur so lange Werte aus, so lange das SteuerungsVI läuft. Beendet man das VI, schaltet das Gerät automatisch die Ausgänge potentialfrei. Dem Hersteller ist das Problem bekannt, Hilfe wird es keine geben.
Nun soll ich einen Treiber schreiben, der als Hintergunddienst ständig die Verbindung zum Gerät offen hält und per Globaler Variable, Melder o.ä. angesprochen wird und entsprechende Steuerbefehle an das Gerät schickt. Später muss das ganze als DLL exportiert werden um in Visual Studio (C# oder C++) eingesetzt werden zu können.

Ich stelle es mir ungeführ so vor:
START:
* Init-Routine wird gestartet, installiert einen Hintergrundprozess, der auf neue Werte wartet, beendet den Init-Aufruf.
BETRIEB
* Werte an den Hintergrunddienst geben, Rückmeldung wenn erfolgreich an Gerät gesendet
* Status abfragen
ENDE
* Befehl an Hintergrunddienst Gerät abzuschalten
* Hintergrunddienst beenden

Ich suche nun Tipps und Beispiele, wie ich dieses Problem angehen kann.
Eventuell eine Client-Server Struktur?
Der Aufruf des Hintergrundprozesses (DLL-Funktionsaufruf) darf die eingetliche Messanwendung nicht anhalten.

Gruß

Mirko
Hallo Mirko,

wenn du mit einem im Hintergrund laufenden Programm kommunizieren willst (und das auch aus verschiedenen Programmierumgebungen heraus), würde ich dir TCP als Kommunikationsweg empfehlen. Dies entspricht dann einem Client-Server-Vorgehen...

Definiere ein bestimmtes Format für die zu sendenden Botschaften. Bedenke den Fall, das mehr als ein Client auf deinen "Server" zugreifen will: dies sollte bei einer eingeschränkten Resource als Fehler gemeldet werden...

P.S.: Woran erkennt dein "Gerät", dass die Verbindung abgebrochen wurde? Wird da ein Watchdog verwendet?
Hallo Gerd,

dem Gerät wurde eine Bibliothek für LabVIEW beigelegt, die geschützt ist. D.h. die VIs können verwendet werden, tiefere Schichten sind aber nicht zugänglich. Das Gerät kann über LAN oder USB angesprochen werden. So lange die Applikation läuft, behällt das Gerät seine Einstellungen. Beendet man das Programm und ruft absichtlich die "Close" Routine nicht auf, schaltet das Gerät die Ausgänge trotzdem Potentialfrei. Ich vermute, daß es eine Sessiongesteuerte Kommunikation verwendet.

Lohnt es sich in Data Sockets einzuarbeiten?

Mirko
Hallo Mirko,

Zitat:Lohnt es sich in Data Sockets einzuarbeiten?
Es lohnt sich immer, sich in ein LabVIEW-Feature einzuarbeiten.

Aber was hat das hier mit deiner Aufgabe zu tun?
Meine Hoffnung war damit das Problem lösen zu können.
Referenz-URLs