INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

kommunikation über LAN / HTTP



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!

19.01.2011, 10:34
Beitrag #1

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
kommunikation über LAN / HTTP
Ich möchte eine über LAN ansteuerbare Steckdosenleiste (ePowerSwitch von Leunig) mittels Labview ansteuern.
Im Augenblick stochere ich ziemlich im Trüben, und weiß nicht, wie und wo ich anfangen soll. Kann mir jemand eine Empfehlung geben?

Labview bietet VIs für TCP, HTTP, und anderes. Ich muß wissen, wie ich die Kommunikation mit dem Gerät, welches vernetzt ist, aufnehmen kann. Per Browser funktioniert das ganz gut, nur muß dieses Gerät in den Programmablauf eingebunden werden.

Ist das Basispaket von Labview für diese Aufgabe ausreichend?
Bitte um Tips, bezüglich Verwendung von VIs.
Welche Literatur gibt es, mit dessen Hilfe man sich in diese Aufgabenstellung einarbeiten kann?
Gibt es Beispiele, für derartige Aufgaben?

Gezeigt ist die Homepage des servers in der Steckdosenleiste.

Lv10

Vielen Dank.

Wolfgang


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2011, 11:23
Beitrag #2

Richard Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: Jun 2009

8.6,9.0,9.1,10.0,11.0
2008
DE_EN

80797
Deutschland
kommunikation über LAN / HTTP
Hallo wohl,

die Basisversion von LabView müsste dafür ausreichen.

Du kannst dich über TCP/IP open mit der IP Verbinden. Als Port wirst du vermutlich die 80 brauchen. Danach kannst du den gleichen String, den du im Browser verwendest versuchen. Die Addressierung (http:\[ip]) ist dabei optional.

Gibt es für die Steckdosenleiste eine cgi?

In dieser müsste das genaue Protokoll dokumentiert sein.

Gruß Richard

Murphy was an optimist
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2011, 17:15
Beitrag #3

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
kommunikation über LAN / HTTP
Hallo Richard,

vielen Dank, das sieht gut aus. Der Hersteller hat mir einen Programmcode in Delphi geschickt, in dem alle Befehle aufgelistet sind. Viel ist das ja nicht.

Der Verbindungsaufbau hat anscheinend geklappt, jedenfalls bekam ich keine Fehlermeldung mehr, als das Labview in der Firewall erlaubt wurde.

Nur, diese Steckdosenleiste fragt normalerweise zuerst nach dem User, und will ein Paßwort haben. Mit dem Browser (Firefox) ist das ja klar, aber mit den VIs TCP-Lesen, und TCP-Schreiben komme ich da nicht weiter. Im Frontpanel sehe ich keine Ausgabe. Auch irgendwelche Inputs bleiben ohne Wirkung.

Wolfgang


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.01.2011, 11:15
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
kommunikation über LAN / HTTP
Du wirst Dich mit Authenifizierung herumschlagen müssen. So auf die Schnelle ist nicht zu sagen was für eine Autentizifierungsform Deine Steckdosenleiste möchte. HTTPS scheint es jedenfalls nicht zu sein, und das macht es schon mal wesentlich einfacher.

Wahrscheinlich hast Du in Deinem HTTP Header den Du von der Leiste bekommst Dinge drin wie:

HTTP Status 401
.....
WWW-Authenticate: Digest realm="<application name>", qop="auth,auth-int", salgorithm="MD5", nonce="2C8F69C7E3AB04CB87138C41B3D46320", opaque="9FFE6C2CEEA5FEF8FA6C6DE3071D2A3" ....

oder

WWW-Authenticate: Base

und musst du entsprechend antworten:

Authorization: Base <Base64 encoded username and password>

oder

Authorization: Digest username="<name>", realm="<applications name>", nonce="2C8F69C7E3AB04CB87138C41B3D46320",
uri="<die entsprechende uri>", response="123456789019234566778, opaque="9FFE6C2CEEA5FEF8FA6C6DE3071D2A34",
qop=auth, nc=00000001, cnonce="082c875dcb2ca740"

Diese zweite ist ziemlich kompliziert wenn Du Dich noch nie mit Kryptografie auseinandergesetzt hast aber ausser ein paar Strings
aneinander fügen und ein paar MD5 oder SHA256 Hashes darüber los lassen ist es nicht wirklich schwierig. Da es wohl hauptsächlich für Netwerkinterne Sachen vorgesehen ist wäre die Base Authentifizierung wohl keine Katastrophe, so Dein Device die denn unterstützt.

Wenn die Daten über das öffentliche Internet gehen müssen ist Base64 Encoding für ein Passwort aber bestenfalls ein schlechter Witz.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2011, 15:09
Beitrag #5

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
kommunikation über LAN / HTTP
Hallo,

leider bekomme ich überhaupt keine Antwort aus dem Server (Steckdosenleiste). Habe ich den Aufbau falsch konfiguriert? Ich denke, unter Daten müßte ich irgend etwas empfangen, auch wenn ich dessen Sinn (noch) nicht verstehe.

Rufe ich die Adresse im Browser auf, dann kommt die Anfrage nach einem Paßwort. Hier kommt gar keine Ausgabe.

Vielen dank für Hinweise.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2011, 09:21 (Dieser Beitrag wurde zuletzt bearbeitet: 07.02.2011 13:56 von rolfk.)
Beitrag #6

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
kommunikation über LAN / HTTP
' schrieb:Hallo,

leider bekomme ich überhaupt keine Antwort aus dem Server (Steckdosenleiste). Habe ich den Aufbau falsch konfiguriert? Ich denke, unter Daten müßte ich irgend etwas empfangen, auch wenn ich dessen Sinn (noch) nicht verstehe.

Rufe ich die Adresse im Browser auf, dann kommt die Anfrage nach einem Paßwort. Hier kommt gar keine Ausgabe.

Vielen dank für Hinweise.

Bevor ein HTTP Server antwortet musst Du ihm schon zuerst einen HTTP Request schicken. Du sprudelst ja auch nicht mit deinem Wissen los, nur weil Dein Telefon klingelt und sich dann niemand meldet.

Also sowas wie ein "GET / HTTP/1.0\r\n" sollte es schon minimal sein. Man beachte die \r\n am Ende die man in LabVIEW einführt nachdem man das entsprechende Stringkontrol oder -konstanate mit der rechten Maustastte in "Display Codes" umgeschaltet hat.

Hoffentlich unterstützt Deine Leiste HTTP 1.0 denn wenn Du HTTP 1.1 verwenden musst wird der Header einiges komplizierter.

Es ist aber gut möglich dass das noch nicht genug ist. So kann es beispielsweise sein dass der Server darauf mit einem Redirekt antwortet worin der Pfad enthalten ist, den du anstelle des ersten / in obiger Anfrage nochmal anfragen musst. Danach sollte aber die richtige Page kommen die dann wohl weiter oben genannte Informationen enthält um daraus aufbauend eine Authentifizierung zu generieren die Du dann wiederum als HTTP Request zum Server schickst.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.02.2011, 15:11
Beitrag #7

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
RE: kommunikation über LAN / HTTP
Vielen Dank,

die Antwort hat mich wohl auf eine richtige Spur geführt.

Mit http VIs kann ich die Steckdose ansprechen, und prinzipiell auch steuern. Ich merkte es daran, daß ich beim Versuchen die Anmelde-Daten versehentlich geändert hatte. Im Header sah ich übrigens, daß http 1.1 zur Anwendung kommt.

Nur, das gezielte Steuern der einzelnen Funktionen ist mir bisher nicht gelungen. Gibt es eine Möglichkeit, den Verkehr mit einem Browser aufzuzeichnen? Da stehen ja mit Sicherheit die Befehle im Protokoll, welche das Endgerät steuern!?

Da gibt es die VIs GET, PUT, POST, ich habe alle probiert, aber auf keinen hat mein Input die erwartete Reaktion verursacht. Aus dem Inhalt des Heaaders von GET habe ich jedenfalls entnommen, daß ich mich ordnungsgemäß eingeloggt hatte. Jetzt muß ich nur die Information rüberbringen, und der Fall ist erledigt.

Bitte um Hinweise.

Wolfgang


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2011, 17:07
Beitrag #8

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
RE: kommunikation über LAN / HTTP
... jetzt gebe ich mir selbst die Antwort Undecided

einen Web-Debugger (http://www.fiddler2.com) zu verwenden war hilfreich. Hier konnte ich den Inhalt des Request-Headers in die entsprechenden Dialogfeldes des VI eintragen, nachdem ich einmal das Gerät über den Browser betrieben hatte.

Wolfgang


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  HTTP-Post für Steuerung Adivh 7 6.072 24.07.2019 07:52
Letzter Beitrag: Adivh
  Arduino -> LabVIEW Kommunikation über TCP/IP Herrx 2 4.112 08.07.2019 06:35
Letzter Beitrag: Herrx
  Kommunikation über CAN -> Schrittmotor Max_LabVIEW 13 13.894 15.03.2017 10:05
Letzter Beitrag: GerdW
  Kommunikation über Modbus ThBaKa 6 9.274 14.04.2015 12:53
Letzter Beitrag: jg
  Tipp: HTTP Post mit SSL und eigenem Zertifikat buechling 0 4.798 07.03.2015 14:04
Letzter Beitrag: buechling
  Sinumerik 840D - Kommunikation über DDE-Server Mannie 3 9.282 11.02.2015 12:13
Letzter Beitrag: rolfk

Gehe zu: