LabVIEWForum.de
HTTP-Post für Steuerung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: HTTP-Post für Steuerung (/Thread-HTTP-Post-fuer-Steuerung)



HTTP-Post für Steuerung - Adivh - 23.07.2019 07:58

Hallo zusammen,

ich möchte über Labview mittels HTTP-Post ein BHKW ansteuern. Dazu erzeuge ich per Matlab einen "Fahrplan" für einen Beispieltag nach VDI 4655, dieser wird mir als .csv-Datei mit 0=Aus und 1=Ein ausgegeben, ebenfalls ist die Zeitdauer eines Befehls mit 300s hinterlegt. Das Lesen des Fahrplans+"Zeitstempel" funktioniert soweit auch, nur die Kommunikation mit dem BHKW mittels HTTP-Post Befehl funktioniert überhaupt nicht. Es wird bei jedem Versuch der Fehler 56 angezeigt.
Soweit ich das verstehe bedeutet dieser, dass eine Zeitüberschreitung des Befehls vorliegt.

Hat jemand Erfahrung mit dem Post-Befehl und kann mir weiterhelfen?

Anbei ein Screenshot meiner "Problemstellung" mit Fehlermeldung und einmal ohne.

Laut Hersteller sollen die übermittelten Befehle richtig sein, um den Start des BHKWs auszulösen.

Vielen Dank


Grüße
Ulrich


RE: HTTP-Post für Steuerung - GerdW - 23.07.2019 08:41

Hallo Ulrich,

funktioniert dieser POST, wenn du ihn über einen "normalen" Browser absetzt?
Kannst du das BHKW auf irgendeine andere Art erreichen (PING, Webserver auf der SPS des BHKW, Zugang zum Router des BHKW, …)?

Zum gezeigten VI:
- Bitte aufräumen!
- Bei einer autoindizierenden FOR-Loop musst du nicht noch zusätzlich prüfen, ob das Ende deiner Daten erreicht wird. (Und wenn du schon prüfen musst, dann solltest du eine While-Loop verwenden…)
- Es gibt eine Funktion direkt zum Einlesen von CSV-Dateien…
- Wenn deine CSV-Datei nur Integer enthält, solltest du auch mit Integer arbeiten - ist für die ganzen Vergleiche etc. sinnvoller…


RE: HTTP-Post für Steuerung - th13 - 23.07.2019 09:05

Versuch doch mal den Post-Request per Hand zu schicken, um sicherzustellen, dass die Verbindung an sich funktioniert.

In der Powershell:
Code:
> $uri = 'http://a.b.c.d:8080/setKeys?Stromf_Ew.Anforderung_GLT.bAktiv=1'
> Invoke-RestMethod -Method 'Post' -Uri $uri



RE: HTTP-Post für Steuerung - Adivh - 23.07.2019 10:01

Hallo Gerd und th13,

vielen Dank für eure schnellen Antworten.

Der POST-Befehl an sich funktioniert, über den "normalen" Browser kann ich das BHKW ansteuern und den Startbefehl geben. Das BHKW erreiche ich auch, über GET kann ich verschiedene Messwerte mir ausgeben lassen, soweit funktioniert das bei LabView, nur der POST Befehl funktioniert nicht.

Habe nochmal beim Hersteller angefragt: dieser meinte, dass die Schaltbefehle in den Body des Post-Befehl müssen. Nun meine Frage ist der Body dann gleichzusetzen mit dem Puffer des Http-Post.vi? Falls nicht, wie kann ich dann in diesen Body meinen Befehl eingeben?


@Gerd
Wegen dem VI:
-Ich bin ziemlich neu in Labview. Was meinst du mit VI aufräumen, die Verbindungen bereinigen und Leerräume reduzieren etc?
-Bei dem Auto-Indizierten For-Loop soll dieser nach Ende meiner Datenreihe beendet werden, deswegen die Prüfung, ob das Ende meiner Daten erreicht wird. Wenn alles fertig ist, soll automatisch für jeden Tag ein neuer Fahrplan erstellt werden. Deswegen soll überprüft werden, ob alle Datenpunkte "betrachtet" wurden und auf Basis eines vorhandenen Speichers und dessen Energiegehalts ein neuer Fahrplan mit (vermutlich) anderen Einsatzzeiten des BHKWs erstellt werden.
-Zum Einlesen einer CSV-Datei: Habe mich da nur an andere Programme gehalten, die ähnlich aufgebaut wurden. Da ich nur eine bestimmte Zeit habe das Projekt durchzuführen, konnte ich mich nicht ausführlich in LabView einarbeiten...


RE: HTTP-Post für Steuerung - th13 - 23.07.2019 11:23

(23.07.2019 10:01 )Adivh schrieb:  Der POST-Befehl an sich funktioniert, über den "normalen" Browser kann ich das BHKW ansteuern und den Startbefehl geben.
In den meisten Broswern kannst du dir anzeigen lassen, was der Browser sendet und dadurch nachsehen, wie der POST tatsächlich aussieht.

(23.07.2019 10:01 )Adivh schrieb:  Habe nochmal beim Hersteller angefragt: dieser meinte, dass die Schaltbefehle in den Body des Post-Befehl müssen. Nun meine Frage ist der Body dann gleichzusetzen mit dem Puffer des Http-Post.vi?
Das war mein Fehler, der Puffer-Eingang ist schon richtig.

Bekommst du in LabVIEW mit get eine Antwort?


RE: HTTP-Post für Steuerung - Adivh - 23.07.2019 12:55

Zitat:In den meisten Broswern kannst du dir anzeigen lassen, was der Browser sendet und dadurch nachsehen, wie der POST tatsächlich aussieht.
Ich habe den Befehl über das Programm Postman durchgeführt doch im Prinzip sollte das ja keinen Unterschied machen zu einem Browser, oder täusche ich mich da?

Die Befehlsstruktur habe ich angehängt, kann nur nichts damit anfangen, wie ich das in den LABView-Post Befehl übernehmen kann.

Zitat:Bekommst du in LabVIEW mit get eine Antwort?
Ja mit Get bekomme ich eine Antwort, ich lasse mir die Werte in eine lmv.Datei schreiben, damit diese Messwerte abgespeichert werden, damit diese später ausgewertet werden können.


RE: HTTP-Post für Steuerung - th13 - 23.07.2019 14:54

Woher kommt die Authorization-Zeile? Probier doch mal vor dem POST einen entsprechenden Header hinzuzufügen.

[attachment=60220]

Edit: Wie übergibst du Postman die Daten? Schreibst du die tatsächlich in eine Zeile durch & getrennt?


RE: HTTP-Post für Steuerung - Adivh - 24.07.2019 07:52

@th13

Vielen vielen Dank für den Tipp mit dem Header, das war die Lösung von meinem Problem, jetzt funktioniert es das BHKW über Labview zu starten Smile

Gruß
Ulrich