Hallo zusammen
Ich habe in einem Ethernet-Netz mit vier Mikrocontrollermodulen. Jedes
stellt 8 Temperaturwerte bereit und kann 8 Relais ansteuern. Die uC
haben auch einen intetrierten Webserver.
Nun würde ich die Messwerte und Steuervariablen aller uc-Module gerne
auf einer einzigen Webseite darstellen und von dort aus auch die Relais
steuern.
Ich könnte mir hierfür z.B. einen zentralen PC vorstellen auf dem der
Internet Information Server installiert ist und dort ein Programm läuft,
welches die Daten sychronisiert..
Wie würdet ihr das lösen? Gibt es vieleicht schon etwas Fertiges, mit
dem ich zumindest die Daten synchronisieren kann und "nur" mehr das
Web-Interface programmieren muß?
Vielen Dank für eure Tipps und beste Grüsse
Geri
Hallo Peter
Vielen Dank für deinen Tipp. Aha, und das geht.
Kannst du mir bitte etwas genauer schildern wie das funktioniert? Ich
möchte ja Daten von mehreren Controllern auf einer Webseite darstellen
und von dort aus steuern.
Der Zugriff auf eine Webseite (mit Javascript) erfolgt ja immer nunr auf
einen Domain-Namen oder IP-Adresse. Wie kommt man aber zu den Daten der
anderen Controller?
..oder vielleicht ab
Beste Grüsse
Geri
So habe nach den Schlüsselwörtern gesurft, bin aber noch nicht richtig
schlau daraus geworden. Kennt jemand von euch vielleicht noch ein paar
gute Links wo die Techniken des "cross origin resource sharing" für
Newbies beschrieben werden - evtl. mit Beispielen
Vielen Dank
Geri
Geri schrieb:> So habe nach den Schlüsselwörtern gesurft, bin aber noch nicht richtig
Sag uns erst mal wie dein Webserver Befehle an die Module weiterleitet
wie der konfiguriert ist,... Da muss ja schon irgendwas drauf laufen
(PHP,...?)
Bullshitbingo kannst du dann später spielen - "cross origin resource
sharing" - leck mich fett, für jede Trivialität ein Begriff.
lebensmittelhändler schrieb:> Geri schrieb:>> So habe nach den Schlüsselwörtern gesurft, bin aber noch nicht richtig> Sag uns erst mal wie dein Webserver Befehle an die Module weiterleitet> wie der konfiguriert ist,... Da muss ja schon irgendwas drauf laufen> (PHP,...?)
nein muss er nicht.
Er braucht einfach nur eine Webseite mit JavaScript. Diese kann lokal
auf der Festplatte oder auf irgendeinem Webspace liegen.
Du musst dann "nur" JavaScript programieren. mit JQuery ruft er von den
Modulen die Daten ab und baut sie in die seite an.
lebensmittelhändler schrieb:> Er will nicht nur Daten abrufen sondern auch Kommandos zurückschicken.
das ist bei HTML kein unterschied.
ein http://ip/daten?test=x
sendet etwas und liefert eine Antwort.
Hallo zusammen
Vielen Dank für eure zahlreichen Rückmeldungen.
Bei meiner Anwendung ist auf jedem Controller einen Webserver
integriert.
Auf dem Webserver liegt eine Webseite auf die der Benutzer zugreifen
kann und digitale Ausgänge lesen und schreiben kann.
Gerne würde ich nun gleichzeitig auf allen Controller einen Ausgang
setzen und den Status aller Controller anzeigen. Von mir aus könnte man
zentral auch einen Webserver laufen lassen, welcher die Daten irgendwie
konsolidiert. Der Benutzer würde dann immer "nur" auf eine Webseite auf
dem zentralen Webserver zugreifen.
…wenn das halt überhaupt geht…
Beste Grüße
Geri
Peter II schrieb:> das ist bei HTML kein unterschied.
Du wolltest wahrscheinlich http sagen.
> ein http://ip/daten?test=x>> sendet etwas und liefert eine Antwort.
Es ist schlechter Stil mit einem GET den State auf dem Server zu ändern,
auch wenn es geht und viele es so machen, dazu wurde das POST erfunden.
Peter II schrieb:> lebensmittelhändler schrieb:>> Er will nicht nur Daten abrufen sondern auch Kommandos zurückschicken.>> das ist bei HTML kein unterschied.> ein http://ip/daten?test=x> sendet etwas und liefert eine Antwort.
Das ist mir auch klar, nur müsste man mal wissen was "Webserver auf MC"
genau ist. Kann der nur statische Seiten raushauen, ist der Code
vorhanden, ...
Wie soll man da eine brauchbare Empfehlung geben? Mehr als allgemeines
Blabla kommt da nicht bei raus.
lebensmittelhändler schrieb:> Das ist mir auch klar, nur müsste man mal wissen was "Webserver auf MC"> genau ist. Kann der nur statische Seiten raushauen, ist der Code> vorhanden, ...
spielt doch überhaupt keine rolle, scheinbar kann er jetzt über den
Webserver alles machen was er will. Damit kann er es auch von einer
gemeinsamen seite bei JavaScript machen.
1. Wenn Du die Daten immer von den gleichen Geräten abrufst kannst Du
Dir eine HTML Seite bauen in der Javascript (jQuery ist eine
Javascriptbibliothek) enthalten ist. Das Skript dass Du Dir schreiben
musst würde die Daten von den Geräten abrufen und auf der Seite sichtbar
machen, umgekehrt kannst Du Dir Buttons reinprogrammieren die dann
jeweisl auf den Geräten eine Aktion auslösen. Diese HTML Datei mit dem
Javascript kopierst Du Dir einfach auf die PCs lokal auf denen Du messen
und steuern willst.
2. Kauf Dir einen Minirechner (Raspberry etc.) auf dem ein kleiner
Webserver läuft. Auf den die obige Datei kopieren, so kann man mit allen
Geräten zugreifen ohne die Datei rumkopieren zu müssen.
Stefan
Hallo zusammen
Der Webserver, welcher auf dem Controller läuft, unterstützt Befehle für
die Abfrage und das setzen von Variablen.
In eine html-Webseite, die dort läuft kann man z.B. denn Code z.B
schreiben:
<input type="hidden" name="variable" value="DigitalOut1" size="50">
@Stefan: Vielen Dank für die Hinweise
add 1:
Die Daten würde ich immer von den gleichen Geräten lesen und schreiben.
>>Das Skript dass Du Dir schreiben musst würde die Daten von den Geräten abrufen
.aber eben, wie greift man über eine Webseite auf mehrere dezentrale
Webserver zu?
.. oder vielleicht sehe ich den Wald ohne
add 2: könnte von mir auch auch IIs sein, ich hänge aber bereits bei
Punkt 1:)
Beste Grüsse und vielen Dank!
Geri
Geri schrieb:> .aber eben, wie greift man über eine Webseite auf mehrere dezentrale> Webserver zu?
Auf einer Webseite kann JavaScript enthalten sein. JavaScript läuft im
Browser. JavaScript kann seinerseits HTTP requests an andere Server
ausführen. Das ist das selbe Prinzip wie es bei Werbeverseuchten
Webseiten zu finden ist: Du rufst eine Seite unter www.example.com auf
und dann beginnt Dein Browser (oder besser gesagt die vielen
eingebetteten JavaScript-Schnipsel der Werbebranche *von Deinem Browser
aus*) ungefragt und vollautomatisch hunderte von Requests an hunderte
von anderen zwielichtigen Servern in der ganzen Welt zu machen von denen
Du noch nie was gehört hast. Direkt und ohne Umwege von Dir nach dort.
Das ist das selbe Prinzip. So kannst Du das für Deine Zwecke
implementieren. Frag in einem Webdesigner-Forum wie das im einzelnen
funktioniert.
Vielleicht verschaffst Du Dier dort auch erstmal generell einen
Überblick wie die Interaktion zwischen einem Webserver und einem
Webbrowser abläuft und wo man überall eingreifen oder ansetzen kann und
wie das üblicherweise gehandhabt wird auf Webseiten die Elemente von
verschiedenen Diensten auf einer einzigen Seite integrieren. Es gibt
verscheidene Ansätze, manche sogar komplett ohne JavaScript, nur mit
Frames oder Iframes und Du brauchst garantiert auch kein jquery dazu,
das ist kein Muss, zu Lehrzwecken kann (oder sollte!) man das auch mal
komplett mit nacktem JavaScript (oder ganz ohne JavaScript)
durchexerzieren. Das ist eine ganze Wissenschaft für sich mit vielen
Facetten (aber auch genausovielen Stolperfallen), also erstmal in Ruhe
einen Gesamtüberblick verschaffen über den grundsätzlichen Aufbau des
www und der Abläufe darin.
Servus Bernd
Vielen Dank für deine ausführliche Rückmeldung. Werde dann wohl auch mal
in einem Web-Designer Forum nachfragen oder ein verseuchte Seite
studieren:)
Beste Grüße
Geri
Guck dir auf folgender Seite
http://de.selfhtml.org/html/frames/definieren.htm#framesets das
Detailbeispiel 5 an. Jedes dort im Bild dargestellte Frame gehört zu
einem der MCUs. Ist bestimmt nicht die schickste Lösung, aber ziemlich
sicher die einfachste.
Eine eigene Frage?
Dieser Thread ist über 12 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.