TOP
SSV Software Systems Register  Register
Log in to check your private messages  Log in to check your private messages
Startseite FAQ Search Mitglieder Profile  Log in 
SSV Support-Forum
IGW/935-FDE …

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> IGW/935
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 18.06.2013, 14:33    Post subject: IGW/935-FDE … Reply with quote

Hallo Forum.

Die FDE (Field Data Engine) des IGW/935 ist durch die vorinstallierte Demo-Anwendung mit der Device „kwk“ und 12 einzelnen Channels (Datenpunkten) vorkonfiguriert. Die folgende Tabelle liefert einen Überblick zur Namensgebung und zum URI (Uniform Resource Identifier):

Code:
Variable     Beschreibung               URI
=========================================================================
kwk/Temision Abgastemperatur            http://<IP>/fde-http/kwk/Temision
kwk/Tengine  Motortemperatur            http://<IP>/fde-http/kwk/Tengine
kwk/pres     Öldruck                    http://<IP>/fde-http/kwk/pres
kwk/speed    Motordrehzahl              http://<IP>/fde-http/kwk/speed
kwk/gas      Kraftstoffmenge            http://<IP>/fde-http/kwk/gas
kwk/Tfor     Vorlauftemperatur          http://<IP>/fde-http/kwk/Tfor
kwk/Tback    Rücklauftemperatur         http://<IP>/fde-http/kwk/Tback
kwk/Tgen     Generatortemperatur        http://<IP>/fde-http/kwk/Tgen
kwk/power    Generatorleistung          http://<IP>/fde-http/kwk/power
kwk/Epower   Elektrische Gesamtleistung http://<IP>/fde-http/kwk/Epower
kwk/CO2      Gesamte CO2-Einsparungen   http://<IP>/fde-http/kwk/CO2
kwk/Tpower   Thermische Gesamtleistung  http://<IP>/fde-http/kwk/Tpower


In der Tabelle dient „<IP>“ als Platzhalter für die jeweilige IP-Adresse, unter der das IGW/935 in einem LAN oder VPN erreichbar ist.

Jeder einzelne Channel (Datenpunkt) ist über einen REST-basierten HTTP-Request ansprechbar. Mit Hilfe eines HTTP GET Requests ist zum Beispiel der aktuelle Wert auslesbar. Die URIs in der Tabelle entsprechen dem jeweiligen Link.

Um zum Beispiel einen Channel zu lesen, kann man cURL benutzen. Die Eingabe:

Code:
curl http://192.168.0.140/fde-http/kwk/Temision


liefert den aktuellen Wert für die Abgastemperatur. Das IGW/935 ist in diesem Beispiel unter der IP-Adresse „192.168.0.140“ erreichbar.

Einige Datenpunkte sind mit einem HTTP PUT Request auch beschreibbar. Die Eingabe:

Code:
curl –X PUT –d “4711” http://192.168.0.140/fde-http/kwk/speed


setzt beispielsweise die Motorendrehzahl auf 4711 U/min. Man kann aber nur die Datenpunkte:

Code:
Variable     Beschreibung               URI
=========================================================================
kwk/speed    Motordrehzahl              http://<IP>/fde-http/kwk/speed
kwk/gas      Kraftstoffmenge            http://<IP>/fde-http/kwk/gas
kwk/Epower   Elektrische Gesamtleistung http://<IP>/fde-http/kwk/Epower
kwk/CO2      Gesamte CO2-Einsparungen   http://<IP>/fde-http/kwk/CO2
kwk/Tpower   Thermische Gesamtleistung  http://<IP>/fde-http/kwk/Tpower


durch einen REST-basierten HTTP PUT Request verändern. Alle anderen werden in der vorinstallierten Demo-Anwendung periodisch durch Zufallswerte verändert.

Gruß

KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 20.06.2013, 14:56    Post subject: Zugriff per HTML-Seite … Reply with quote

Hallo Forum.

Mit Hilfe von JavaScript-Code, der in eine HTML-Seite eingebettet wird, kann man auch direkt auf einen FDE-Channel (Datenpunkt) zugreifen. Hier ein Beispiel:

Code:
<html>
  <head>
    <title>Poll temperature with XMLHttpRequest</title>
    <style type="text/css">
      body{background-color: #2c223e}
      p{color: white; font-family: "Arial"; font-size: 48px}
    </style>
  </head>
  <body>
    <script type="text/javascript">
      var timer= setInterval(show_speed, 1000);
      function show_speed() {
        var http_request = new XMLHttpRequest();
        http_request.open("GET", "/fde-http/kwk/Temision", true);
        http_request.onreadystatechange = function () {
          if (http_request.readyState == 4 && http_request.status == 200) {
            var dout= document.getElementById("temp");
            dout.innerHTML= http_request.responseText + " ℃";
          }
        }
        http_request.send(null);
      }
    </script>
    <p id="temp">?</p>
  </body>
</html>


In diesem HTML-Code ist JavaScript eingebettet, um einmal pro Sekunde einen REST-basierten GET-Request zur Abfrage des Channels Temison an die IGW/935-FDE zu übertragen. Für den GET-Request ist die folgende Codezeile verantwortlich:

Code:
http_request.open("GET", "/fde-http/kwk/Temision", true);


Die Antwort des IGW/935-Webservers wird dann als Temperaturwert immer wieder neu vom Webbrowser ausgegeben.

Code:
dout.innerHTML= http_request.responseText + " ℃";


Der periodische Update ergibt sich im Übrigen durch die folgende JavaScript-Codezeile:

Code:
var timer= setInterval(show_speed, 1000);


Sie sorgt dafür, dass die folgende Funktion einmal pro Sekunde (alle 1000 msec.) aufgerufen wird:

Code:
function show_speed() {
  var http_request = new XMLHttpRequest();
  http_request.open("GET", "/fde-http/kwk/Temision", true);
  http_request.onreadystatechange = function () {
    if (http_request.readyState == 4 && http_request.status == 200) {
      var dout= document.getElementById("temp");
      dout.innerHTML= http_request.responseText + " ℃";
    }
  }
  http_request.send(null);
}


Gruß KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 14.09.2014, 13:29    Post subject: Raspberry PI als FDE-Datenquelle … Reply with quote

Hallo Forum.

Bringen Sie zunächst Ihren Raspberry Pi und ein IGW/935 in das gleiche LAN (zum Beispiel 192.168.2.0/24).

Ermitteln Sie die IP-Adressen des Pi und des IGW/935. Ein IGW/935 ist per UPnP auffindbar. Um meinen Pi im LAN zu finden, scanne ich mein LAN einfach per nmap. Zum Beispiel:

Code:
nmap –sn 192.168.2.0/24


Für die weitere Beschreibung gehe ich davon aus, dass dem IGW/935 die IP-Adresse 192.168.2.161 per DHCP zugewiesen wurde.

Speichern Sie den folgenden Python-Code auf Ihrem PC in einer Datei mit dem Namen igw935_put_1.py:

Code:
import httplib

conn= httplib.HTTPConnection("127.0.0.1")
body_content= "4711"
header_option= {"Content-type": "text/plain"}
conn.request("PUT", "/fde-http/kwk/speed", body_content, header_option)
r1= conn.getresponse()
print r1.status
print r1.reason


Übertragen Sie die Datei igw935_put_1.py per WinSCP von Ihrem PC aus in das Pi-Verzeichnis /home/pi.

Ändern Sie die IP-Adresse 127.0.0.1 im Python-Code in 192.168.2.161 (unter WinSCP können Sie auf dem Pi auch Dateien bearbeiten).

Melden Sie sich per SSH auf dem Pi an und starten Sie das Python-Script per

Code:
python igw935_put_1.py


Beobachten Sie per Webbrowser unter http://192.168.2.161 die Übersichtswebseite des IGW/935 und achten Sie besonders auf die Variable "Drehzahl".

Gruß KDW
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> IGW/935 All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

SSV Software Systems GmbH

Dünenweg 5
30419 Hannover

Fon: +49(0)511  ·  40 000-0
Fax: +49(0)511  ·  40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2023 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015