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

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Client Server Applikation - wie fange ich an? (/Thread-Client-Server-Applikation-wie-fange-ich-an)



Client Server Applikation - wie fange ich an? - nemesismf - 14.10.2013 12:42

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


RE: Client Server Applikation - wie fange ich an? - GerdW - 14.10.2013 12:57

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?


RE: Client Server Applikation - wie fange ich an? - nemesismf - 14.10.2013 13:25

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


RE: Client Server Applikation - wie fange ich an? - GerdW - 14.10.2013 13:30

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?


RE: Client Server Applikation - wie fange ich an? - nemesismf - 14.10.2013 13:46

Meine Hoffnung war damit das Problem lösen zu können.