Details zum HTTP-Server in CAN-Anzeige-Terminals von MKT Systemtechnik

Datei: cproj/UPT_xx/http_server_info/srv_info_49.htm (in deutscher Sprache)
Web: http://www.mkt-sys.de/http_server_info/srv_info_49.htm
Autor: Wolfgang Büscher, MKT Systemtechnik
Stand: 2016-08-30 (ISO8601)

Inhalt

  1. Aufbau einer Verbindung zum Web-Server
  2. Funktionen und Webseiten des Servers im programmierbaren Terminal
    1. Startseite des Web-Servers ('Main' page)
    2. Fernwartung / Fernbedienung ('Remote Control' page)
    3. Debugging Tools im Webserver (Trace, Script, Variable Dump)
    4. 'Device Setup' (Gerätekonfiguration per Webserver)
    5. 'Network Setup' (Netzwerkkonfiguration im Webserver)
      1. DHCP, Statische vs dynamische IP-Adressen, Hostname
      2. CAN-via-UDP, FlexRay-via-UDP
    6. Auslesen des optionalen Wireshark-kompatiblen 'Packet Capture'-Buffers
  3. Zugriff auf das (Pseudo?-) Dateisystem per HTTP
    1. Root-Verzeichnis des Pseudo-Dateisystems
    2. Der 'Daten'-Flash-Bereich (files/data_flash)
    3. Der 'Audio'-Flash-Bereich (files/audio_flash)
    4. Der 'Font'-Flash-Bereich (files/font_flash)
    5. Dateien auf der Speicherkarte (files/memory_card)
    6. Dateien in der RAMDISK (files/ramdisk)
  4. Hochladen von Dateien (Firmware und Display-Applikation)
    1. Dateien zum Hochladen auswählen
    2. Dateien nach dem Hochladen verarbeiten
  5. Spezielle Schlüsselwörter in den HTML-Vorlagen
  6. Spezielle Dateinamen im HTTP-Server
    1. Auslesen des Grafikspeichers (framebuffer) als Bitmap-Datei
    2. Senden von Maus- und Tastatur-Events (für die Fernsteuerung)
    3. Remote-Aufruf von Kommandos des Display-Interpreters
    4. Remote-Aufruf des Interpreters zur Berechnung von Ausdrücken
    5. Auslesen des optionalen Wireshark-kompatiblen 'Packet Capture'-Buffers
  7. Troubleshooting
    1. Konfigurieren von Windows 7 zum Aufbau einer Punkt-zu-Punkt-Verbindung per Ethernet-Kabel (ohne Router)
  8. Links und weitere Informationen

Dieses Dokument enthält einige Informationen für Entwickler, die den in einigen von MKT's CAN-Anzeigesystemen vorhandenen Web-Server für eigene Zwecke einsetzen wollen.

Darüberhinaus richtet sich dieses Dokument auch an Anwender, die Probleme mit dem Aufruf des Web-Servers per Web-Browser haben (z.B. Betrieb des Web-Servers ohne DHCP, usw).

Die HTML-Seiten, die der Web-Server im Internet-Browser des Anwenders anzeigen kann, befinden sich -bis auf wenige Ausnahmen- im ROM des Gerätes. Daher können die meisten Seiten nicht ohne neues Compilieren der Firmware modifiziert werden.
Dynamische Inhalte werden, wie später in diesem Dokument beschrieben, von der Firmware (oder auch vom Anwenderprogramm!) beim Auslesen der Webseite erzeugt, und in geeigneter Form an den Web-Browser übergeben.

Falls Sie dieses Dokument durch Anklicken eines 'Help'-Buttons geöffnet haben: Dieses Dokument (srv_info_xy.htm) befindet sich nicht im ROM des Anzeigegerätes, sondern auf der Webseite des Herstellers (MKT Systemtechnik).
Höchstwahrscheinlich enthielt eine der im Web-Server enthaltenen Seiten einen Link auf dieses Dokument, welches bis auf Weiteres auch als 'Hilfesystem' für die Bedienung des Webservers dient.

Software-Entwickler und Applikateure finden in diesem Dokument Tipps, wie der Web-Server für eigene Zwecke verwendet werden kann, z.B. zur Fernsteuerung des Anzeigegerätes. Mehr dazu im Kapitel 'Fernbedienung' (Remote Control).

1. Aufbau einer Verbindung zum Web-Server

Abhängig von den Einstellungen im 'Network Setup' des Gerätes gibt es verschiedene Möglichkeiten um per Browser eine Verbindung mit dem Webserver aufzubauen:

Falls DHCP verfügbar ist:
Geben Sie den Gerätenamen ("Hostnamen") in der Adressleiste des Browsers ein.
Bei allen UPTs (User Programmable Terminals, dazu gehört auch das MKT-View II + III), ist der Hostname per Default auf    UPT    eingestellt, und DHCP ist aktiv.
Stellt sich der Browser bei der Eingabe etwas dämlich an, und 'googelt' nach dem Hostnamen (statt damit eine Verbindung aufzubauen), oder ergänzt ihn zu 'www.upt.com', versuchen Sie dem Browser diesen Unfug abzugewöhnen (*), oder geben Sie eine komplette URL wie z.B. http://UPT ein .
Hinweis: Der Name (hostname) "UPT" ist nur im lokalen Netzwerk gültig. Es handelt sich hier nicht um eine 'WWW'-Adresse !

Falls DHCP nicht verfügbar ist (und stattdessem eine feste IP-Addresse verwendet werden muss):
Geben Sie die (numerische) IP-Adresse des Gerätes in der Adressleiste des Browsers ein. Bei älteren UPTs (User Programmable Terminals, incl. MKT-View) war die feste IP auf 192.168.0.243 voreingestellt, und kein DHCP verfügbar. Details zum Betrieb von Geräten ohne DHCP finden Sie hier. Der Zugriff auf Geräte ohne DHCP über dessen Host-Namen war unter Windows oft schwierig - wie man dieses Problem lösen kann, finden Sie in einem Microsoft-Artikel mit dem Titel 'Cannot Connect to Remote Systems Using Host Name' (nur für Fortgeschrittene - daher die Empfehlung, statt eines langen Kampfes mit der DNS-Konfiguration oder dem Editieren der 'hosts'-Datei das Gerät gleich über dessen numerische IP-Adresse anzusprechen).

Wenn DHCP verwendet wird (d.h. eine variable IP-Adresse), aber der Hostname vom Browser nicht aufgelöst werden kann:
Versuchen Sie selbst, die dem Gerät aktuell zugewiesene IP-Adresse herauszufinden, und geben diese (numerisch) in der Adressleiste des Browsers ein. Dazu wird die aktuelle (per DHCP geleaste) IP-Addresse für wenige Sekunden im Display angezeigt (sofern dies nicht per Konfiguration unterbunden wurde). Beispiel:
DHCP: local IP = 192.168.0.114
      hostname = 'UPT'
Für das oben gezeigte Beispiel sollte eigentlich die Eingabe des Hostnamens UPT (ohne Hochkomma!), oder notfalls 192.168.0.114 in der Adressleiste des Browsers ausreichen. In der Browser-Steinzeit musste eine vollständige URL mit dem Namen des Protokolls eingegeben werden, z.B. http://UPT/index.htm bzw http://192.168.0.114/index.htm .

Wenn das programmierbare Gerät (UPT) 'weit entfernt' ist, außerhalb des eigenen LANs, dann kann es nur per 'Internet' kontaktiert werden.
Fragen Sie bitte in diesem Fall Ihren Netzwerk-Administrator, ob (und wie) der vorhandene DSL-Router oder vergleichbares Equipment so konfiguiert werden kann, um das UPT mit einer eigenen, weltweit nur einmal verwendeten 'Internet-IP' zu verbinden. Dazu muss in fast allen Fällen auch die im Router integrierte Firewall umkonfiguriert, und ein neuer NAT-Eintrag (Network Address Translation) im Router hinzugefügt werden. Der Router selbst hat eine 'eigene' IP-Adresse, und um Anfragen an das UPT durchzureichen, erhält dieses im Router eine eigene Portnummer. Anfragen aus dem Internet werden dann vom Router per NAT an das UPT (mit Port 80 für HTTP) durchgereicht. Die IP-Adresse des Routers (d.h. 'weltweite' IP-Adresse, die zum Zugriff aus dem Internet verwendet wird), unterscheidet sich IMMER von der lokalen IP-Adresse. Dem Display (UPT) ist die 'weltweite' IP-Adresse des Routers nicht bekannt, und für den HTTP-Server auch belanglos.

In Kurzform: Im Auslieferungszustand werden alle UPTs (auch MKT-View II, III) mit aktivierten DHCP, und dem Hostnamen "UPT" ausgeliefert. Es sollte daher -sofern im lokalen Netz ein DHCP-Server verfügbar ist- per Browser durch Eingabe der Adresse UPT erreichbar sein. Der Hostname wird in vielen Fällen vom Anwender allerdings im Network Setup des programmierbaren Gerätes umgestellt. Sollen mehr als zwei Geräte dieses Typs im gleichen Netzwerk betrieben werden, ist die Änderung des Hostnamens unerlässlich.

(*) Um Firefox das nervtötende Einfügen von 'www.' am Anfang, und '.com' am Ende der Adresse,
    und die automatische Google-Suche per Adressleiste(!) abzugewöhnen, setzen Sie unter 'about:config' den Wert von
browser.fixup.alternate.enabled
auf false. Aus der Eingabe von z.B. 'upt' wird dann nicht mehr automatisch 'www.upt.com',
und der Browser schaltet nicht zu unerwünschten Webseiten um, wenn das Gerät mit dem angegebenen Hostnamen momentan nicht erreichbar ist.

Nachtrag (2014): Um Firefox diesen groben Unfug abzugewöhnen, suchen Sie im Netz z.B. nach
"Firefox: Browser Suche für Doofe abschalten".
Zitat:
> Wie oft hat mich das schon geärgert! Ich gebe in der Adressleiste des Browsers
> einen lokalen Servernamen an und werde statt dessen mit der Google Suchseite verbunden.
> Google sagt mir dann wo ich günstig NAS Geräte oder HP-Drucker kaufen kann. [Argh!!]
> Danke Google, Danke Firefox, Danke IE! – Ich bin nicht doof!
> Wenn ich etwas suchen möchte, dann verwende ich die Suchleiste oder gehe direkt zu Google. (..)

Dem ist wenig hinzuzufügen.
Leider funktionierte der o.g. Trick mit Firefox Version 31 nicht mehr, um die völlig überflüssige Google-Suche per Adressleiste zu unterdrücken:
Dort musste stattdessem (? - oder zusätzlich) per "about:config" der Wert "keyword.enabled" auf "false" gesetzt werden.

Das UPT-Programmiertool kann notfalls auch den Web-Server emulieren, um dessen Funktionalität auch ohne 'echte' Hardware zu testen. Um den Web-Server im Programmiertool zu emulieren, muss in vielen Fällen die Firewall (im PC) entsprechend konfiguriert werden, bevor das Programmiertool mit der Option 'Embedded Web Server emulieren' neu gestartet wird. Die Option zur Emulation des Web-Servers finden sie (zusammen mit dessen Port-Nummer) auf der Registerkarte 'Einstellungen' unter 'Einstellungen des Programmiertools':


(Screenshot aus dem UPT-Programmiertool, 'Settings', 'Programming Tool Settings')

Wenn Programmiertool und Web-Browser auf dem gleichen PC laufen, dann kann der Server durch Eingabe der 'lokalen' Dummy-IP-Adresse in der Adressleiste des Browsers angesprochen werden:
   http://127.0.0.1 .
Verwendet der Web-Server nicht den Default-Port (80 für HTTP), dann muss die Port-Nummer an die Adresse angehängt werden, z.B.:
   http://127.0.0.1:81 .

2. Funktionen und Webseiten des Servers im programmierbaren Terminal

Um Speicherplatz zu sparen, kann das Terminal nur jeweils eine HTTP-Anfrage zu einem einzelnen Zeitpunkt bedienen. Das verwendete Protokoll ist HTTP/1.0, basierend auf einer einfachen und kompakten TCP/IP-Implementierung (LwIP). Da der TCP/IP-Protokoll-Stack gleichzeitig auch für andere Zwecke (z.B. CAN-via-UDP) verwendet wird, hängt die Geschwindigkeit des HTTP-Servers davon ab, welche Aufgaben die CPU noch "nebenher" verrichten muss.

Der Web-Server unterstützt die Methoden HTTP GET und POST. GET dient zum Lesen von "Dateien" (hier i.A. HTML-Dokumente), die ein Web-Browser (Client) vom Server anfordert. POST dient zum Abschicken von Formulardaten, aber auch zum Hochladen einzelner Dateien (vom Client zum Server).

Die nächsten Abschnitte beschreiben einige der HTML-Dokumente ("Seiten"), die fest in der Gerätefirmware verankert sind. Die hier angeführten Links zu den Seiten 'im' Web-Server funktionieren nur, wenn...

2.1 Startseite des Web-Servers ('Main' page)

Diese Seite (upt/index.htm oder einfach nur UPT per Default) zeigt den aktuellen Bildschirminhalt des Gerätes, periodisch ohne Javascript aktualisiert. Bei manchen Browsern kann die Darstellung während der Aktualisierung flackern. Mit Firefox V14.0.1 gab es kein Flackern. Mit dem 'Internet Explorer' war die Darstellung nicht akzeptabel.


(Abbildung der 'Hauptseite' des im MKT-View II integrierten Web-Servers)

Aufgrund der Abwesenheit von Javascript ist auf dieser Seite keine Fernsteuerung möglich, Mausklicks auf der Anzeige des Grafikbildschirms im Browser haben daher keinen Effekt.

2.2 Fernwartung / Fernbedienung ('Remote Control' page)

Diese Seite (upt/remctrl.htm per Default) zeigt ebenfalls den aktuellen Bildschirminhalt des Gerätes, periodisch per Javascript aktualisiert.
Auf allen getesteten Browsern war die Darstellung flackerfrei. Sie erfordert allerdings (leider) Javascript, was auch zur Simulation von Touchscreen-Ereignissen per Maus (im Browser) dient.

Der Hauptzweck dieser Seite ist die Fernbedienung des Gerätes (UPT, MKT-View, etc) per LAN-Verbindung, wozu lediglich ein normaler Web-Browser, aber keine spezielle Software nötig ist. Dies ist auch für Präsentationen hilfreich, wenn z.B. der Bildschirminhalt per Beamer angezeigt wird.
Zur Bedienung dient die Maus (und ein kleines, im Browser laufendes Javascript), als Ersatz für den Touchscreen des Gerätes. Einige Tasten des PCs (auch die Cursortasten) werden ebenfalls per Javascript an das entfernte Gerät durchgereicht.

Für die Fernbedienung muss (vor dem Aufruf der 'Remote Control'-Seite) unbedingt Javascript im Browser aktiviert werden. Folgen Sie danach dem unten gezeigten Link zur 'Remote Control'-Seite.
Wenn DHCP (und NETBIOS) im Network Setup des Gerätes aktiviert sind, und ein DCHP-Server (z.B. im LAN/DSL-Router) zur Verfügung steht, geben Sie upt/remctrl.htm (Default-Name für "User Programmable Terminal") als Adresse im Web-Browser ein.

Auf der 'Remote Control'-Seite sehen Sie ein Bild (Bitmap) mit dem aktuellen Inhalt des Video-RAMs des programmierbaren Terminals. Für die Übertragung werden die Pixeldaten komprimiert, was z.T. einige hundert Millisekunden dauert, und zu einer nicht ganz 'ruckelfreien' Darstellung führt (speziell beim MKT-View II).

Ein Mausklick in dieses Bild emuliert ein 'Touchscreen-Event'. Graphische Buttons auf der aktuellen Anzeigeseite, aber auch die virtuelle Tastatur ("Bildschirmtastatur" für Geräte mit Touchscreen) können so bedient werden.

Tastatureingaben im Web-Browser werden z.g.T. per Javascript an das entfernte Gerät übertragen. Dazu zählen die Cursortasten, ENTER, ESCAPE (=Abbruch), die Funktionstasten F1 bis F3 (eventuell auch mehr). Zumindest mit Firefox funktionierte die Fernbedienung per Tastatur zufriedenstellend. Andere Browser wurden nicht getestet.
Um das 'System-Menü' des Terminals zu öffnen, würden Sie normalerweise F2 und F3 auf der Tastatur des CAN-Anzeigeterminals gleichzeitig drücken. Im Web-Browser (auf dem PC) funktioniert dies i.A. nicht. Als Ersatz dient die 'Windows'-Taste, oder die 'Menü'-Taste (neben der rechten STRG-Taste) beim PC. Auf einem MAC verwenden Sie stattdessem die 'Apple'-Taste (dies wurde allerdings nie getestet).

Auf der defaultmäßig vorhandenen 'Remote Control'-Seite (beim Aufruf vom PC, mit 'großem' Browser-Bildschirm(*) ) befindet sich im unteren Teil ein Panel, welches für Software-Tests gute Dienste leisten kann:


Screenshot der Testfunktionen im unteren Teil der 'Remote Control'-Seite.
(*) Diese Funktion ist bei der Darstellung auf einem Smartphone nicht verfügbar.

Im Feld namens 'Command' kann ein Kommando für den Display-Interpreter eingegeben werden. Per Klick auf 'Submit' ('Abschicken') wird dieses Kommando an das fernbediente Terminal (UPT, MKT-View, etc) gesendet und dort ausgeführt. Einige Millisekunden später sendet das Terminal per TCP/IP eine Antwort, die dann im 'Response'-Feld als Text angezeigt wird.

Das Feld mit dem Titel 'Watch-Expression' kann wie das Fenster 'Überwachte Ausdrücke' (Watches) im Programmiertool verwendet werden: Hier kann ein numerischer Audruck für den Display-Interpreter eingegeben werden, der dann zur Auswertung periodisch an das Display übertragen wird, dort "berechnet", und das Ergebnis wieder zurück an den Browser geschickt wird. Das Resultat (=das "berechnete" Ergebnis des Ausdrucks) wird im Feld 'Watch-Result' angezeigt. Um mehrere Ausdrücke gleichzeitig berechnen zu lassen, trennen Sie diese im Feld 'Watch-Expression' per Komma. Die Resultate werden ebenfalls per Komma getrennt.

Aufgrund des kleinen Bildschirms wird beim Aufruf der 'Remote-Control'-Seite auf Mobilgeräten (z.B. Smartphones) nur der periodisch übertragene Framebuffer, und einige wenige Buttons für die Navigation (am rechten Rand) angezeigt:


Screenshot der 'Remote Control'-Seite auf einem Smartphone.
Links der periodisch übertragene Framebuffer (Bildschirminhalt).

Der Button 'Main' schaltet von der 'Remote Control'-Seite wieder zur Hauptseite um.
Per 'Shdn' kann (bei Steuerung per Smartphone) das Shutdown-Fenster im fernbedienten Gerät geöffnet werden.
Weitere Buttons dienen (bei Steuerung per Smartphone) als Ersatz für die Cursortasten, Enter, und Escape.
Bei Verwendung eines PC-Browsers sind diese Buttons überflüssig, weil die PC-Tastatur-Ereignisse per Javascript an das fernbediente Gerät gesendet werden.

Technisches Detail: Der Webserver erkennt den Typ des 'Besuchers' (Smartphone oder PC mit 'großem' Bildschirm) an dessen 'User-Agent'-Header (Zeichenkette). Bei modernen Browsern wie z.B. Firefox oder Chrome ist es möglich, den User-Agenten gegenüber der besuchten Webseite zu verschleiern (in der englischen Wikipedia: user agent spoofing). So kann -auch für selbsterstellte Webseiten- dem Server zu Testzwecken z.B. ein Smartphone 'vorgegaukelt' werden. Im März 2015 wertete der Web-Server im MKT-View III/IV nur die folgenden Zeichenketten im 'User-Agent'-Header für die Erkennung von Mobilgeräten (Tablets, Smartphones) aus:
  "Android", "BlackBerry", "Mobile".


2.3 Debugging Tools im Webserver (Trace, Script, Variable Dump)

Der Webserver enthält einige Tools zur Fehlersuche (Debugging), d.h. für die Hilfen für die Software-Entwicklung.
Dazu gehören:


Hinweis: "UPT" ist lediglich der Default-Hostname. Der Hostname Ihres Gerätes könnte per Network Setup modifiziert worden sein.


(Anzeige der Seite 'Script Inspector' in einem modernen Browser anno 2013)

Die Option 'Periodic Update' dient zum zyklischen Aktualisieren der Anzeige. Bei einigen Browsern wird bei jedem Neuladen die vertikale Scrollposition leider wieder an den Dateianfang zurückgesetzt, was die Bedienbarkeit stark einschränkt. Gut geeignet erschien im Oktober 2013 der 'Iron'-Browser (ein 'Chrome'-Clone mit angeblich mehr Schutz der Privatsphäre).

2.3.2 Remote Script Debugger (<hostname>/script/d)

Der fernbediente Script-Debugger erfordert keinerlei spezielle Software - er läuft komplett im Web-Browser, und wird vom Browser zusammen mit dem für die Steuerung verwendeten Javascript beim Aufruf der Seite "script/d" aus dem programmierbaren Gerät (z.B. MKT-View II,III) geladen. Dazu ist keine Internet-Verbindung nötig, denn alle benötigten (Java-)Scripte sind im ROM des Gerätes abgelegt.
Das folgende Beispiel zeigt eine Script-Funktion (hier: ein Timer-Event-Handler aus dem zyklisch CAN-Telegramme gesendet werden), die mit Hilfe eines Breakpoints (in Zeile 129, rot markiert) gestoppt wurde, und danach im Einzelschritt-Modus (single step) in Zeile 130 fortgesetzt wurde (grün markiert).

Source-level debugger  (script/d)
   123: 
   124: //--------------------------------------------------------------------
+  125: func OnCANtxTimer( tTimer ptr pMyTimer )  // a TIMER EVENT HANDLER...
+  126:   local tCANmsg msg;  // use LOCAL variables (not globals) in event handlers !
+  127:   msg.id := 0x335;    // set CAN message identifier for transmission
+  128:   msg.len:= 8;        // set CAN data length code (max. 8 bytes = 2 doublewords)
*  129:   msg.dw[0] = 0x11223344; // set four bytes in a single doubleword-move (faster than 4 bytes)
>  130:   msg.dw[1] = 0x55667788; // set the last four bytes in the 8-byte CAN data field
+  131:   can_transmit( msg ); // send the CAN message to the bus
+  132:   return TRUE; // TRUE = 'the event has been handled here' (FALSE would not fire more timer events)
○  133: endfunc; // OnCANtxTimer()
   134: 
   135: 
Haltepunkte (breakpoints) können im Normalbetrieb umgeschaltet werden. Dazu dient ein Doppelklick auf die entsprechende Zeilennummer (in den meisten Browsern); oder (bei Browsern, die per Doppelklick nicht automatisch ein einzelnes Wort markieren) durch Markieren der Zeilennummer per Maus, beim Loslassen der Maus.
Ein Stück Javascript sendet beim Loslassen der Maustaste ein entsprechendes Kommando (per HTTP) an den Debugger. Aus diesem Grund funktioniert der fernbediente Debugger nur, wenn im Browser Javascript ausgeführt werden darf.
Mit dem Internet Explorer funktioniert der Debugger nicht (Grund: Cachen von "AJAX"-Antworten, dier per Javascript mit dem 'XmlHTTPRequest'-Objekt angefordert wurden). Verwenden Sie einen besseren Browser (Firefox, Chrome, Iron).

Die Indikatoren am linken Rand der Quelltext-Anzeige (auf der Seite 'script/d' = Quelltext-Debugger) weichen etwas von den Symbolen im UPT-Programmiertool ab, weil dort Bitmaps, hier aber einfache Zeichen verwendet werden:
Nur Leerzeichen vor der Zeilennummer: "Kein Code in dieser Zeile."
In dieser Zeile steht kein ausführbarer Code; hier kann kein Breakpoint gesetzt werden.
o : "Hier war das Programm noch nicht."
Diese Zeile enthält zwar ausführbaren Code, das Script hat diese Zeile aber seit dem Start der Debugger-Sitzung, oder seit dem Löschen der "War-schon-hier"-Marker noch nicht abgearbeitet.
+ : "Ich war schon hier."
Diese Zeile enthält ausführbaren Code, der schon mindestens einmal abgearbeitet wurde,
seitdem die Debugger-Sitzung begonnen wurde, oder seitdem die 'Been-Here'-Marker gelöscht wurden.
Hinweis: Solange keine Debugger-Sitzung gestartet wurde, werden die 'Been-Here'-Marker nicht aktualisiert, weil die Abarbeitung des Script-Programms dadurch geringfügig langsamer wird.
Beim Ausloggen ('Log Out') wird auch die Debugger-Sitzung beendet, und das Script läuft mit der maximal möglichen Geschwindigkeit weiter.
x : Breakpoint in einer Zeile, die noch nicht abgearbeitet wurde.
Diese Zeile enthält ausführbaren Code in der ein Breakpoint gesetzt wurde,
sie wurde aber (wie 'o') noch nicht abgearbeitet.
* : Breakpoint in einer Zeile, die mindestens einmal abgearbeitet wurde.
Diese Zeile enthält ausführbaren Code in der ein Breakpoint gesetzt wurde,
und sie wurde (wie '+') schon mindestens einmal abgearbeitet.
> (spitzer Pfeil nach Rechts) : Aktuelle Programmzeile
Zeigt die aktuelle (oder die nächste) auszuführende Zeile an.
Hinweis: Der Programmzähler wird i.a. bereits auf den nächsten abzuarbeitenden Befehl gesetzt, bevor der Befehl abgearbeitet wurde.

Siehe auch: Debuggen mit dem UPT-Programmiertool

2.4 'Device Setup' (Gerätekonfiguration per Webserver)

Auf dieser Seite (upt/setup.htm per Default) kann die Konfiguration des programmierbaren Terminals geändert werden, was (ohne Web-Server) sonst nur im 'System-Setup' des Gerätes möglich ist. Bei Geräten ohne Tastatur, Encoder, oder Touchscreen stellt der Web-Server manchmal die einzige Möglichkeit zum Konfigurieren des Gerätes dar.


(Abbildung der Webseite 'Device Setup via Embedded Web Server')

Vor dem Ausfüllen und 'Absenden' des Formulars ('Submit') muss das Passwort eingegeben werden. Nach dem Absenden des Formulars mit einem korrekten Passwort schaltet das Passwort-Panel von blau auf grün um; bei falschem Passwort auf rot. Das Passwort selbst hängt von der Hard- und Software ab; es könnte auch kundenspezifisch sein. Sie finden das Passwort in der Beschreibung, die zusammen mit dem Gerät ausgeliefert wird.
Anwender von MKT's Programmiertool kennen das (Default-)Passwort bereits: Es ist das gleiche wie beim Firmware-Update per RS-232.


2.5 'Network Setup' (Netzwerkkonfiguration im Webserver)


Diese Seite (upt/nwsetup.htm falls noch der Default-Hostname verwendet wird) dient zum Einstellen der Netzwerk-Konfiguration (Ethernet, TCP/IP, UDP).


(Screenshot der Seite 'Network Setup via Embedded Web Server')

Das Passwort ist das gleiche wie beim 'Device Setup'. Die Parameter auf diesem Formular sind in Dokument #85115, "System Setup", beschrieben.

Hinweis:
Beim Absenden des Formulars (per "Submit"-Button) werden die Einstellungen in einem nichtflüchtigen Speicher gesichert.
Einige Einstellungen werden allerdings erst beim nächsten Neustart aktiv.
Falls kein manueller Neustart durch Aus- und Wiedereinschalten des Gerätes möglich ist, füllen Sie daher erst das Formular aus (Passwort nicht vergessen!), klicken danach auf "Submit", und zum Abschluss auf "Reboot" (d.h. System-Neustart).
Ohne gültiges Passwort ist kein Neustart per HTTP-Server möglich.

2.5.1 DHCP, statische vs dynamische IP-Adressen, Hostname

Das programierbare Gerät (UPT, MKT-View II / III) unterstützt DHCP (Dynamic Host Configuration Protocol) als Client. DHCP kann (und sollte !) immer dann verwendet werden, wenn im lokalen Netzwerk ein DHCP-Server verfügbar ist. Durch DHCP kann viel Arbeit und Ärger mit IP-Adress-Kollisionen vermieden werden, denn der DHCP-Server weist jedem DHCP-Slave automatisch eine (bis dato) noch freie IP-Adresse zu. Dadurch werden Adresskonflikte vermieden, und die aufwändige manuelle Vergabe (und "Pflege") von 'statischen IP-Adressen', 'Subnetzmasken', und der Konfiguration des 'Standard Gateways' in jedem einzelnen Gerät entfällt.

Es gibt allerding auch Nachteile von DHCP: Es muss ein entsprechender Server zur Verfügung stehen (in vielen Fällen fungiert der Router auch als DHCP-Server; Windows (-XP) allein ist dazu nicht in der Lage); und die dynamisch vergebene IP-Adresse könnte sich bei jedem Neustart ändern. Aus dem Grund wird (beim Einsatz von DHCP) ein Gerät im Netzwerk nicht über seine (numerische) IP-Adresse, sondern über den sogenannten Host-Namen (hier: gleichbedeutend mit dem Gerätenamen) angesprochen. Der Hostname muss im Netzwerk eindeutig sein, d.h. ein bestimmter Hostname darf nur ein einziges Mal vorkommen. Immerhin ist es wesentlich einfacher, einen eindeutigen Hostnamen festzulegen, als eine einzigartige IP-Adresse zu ermitteln (die wirklich 'niemand sonst' im LAN verwendet).
Der per Default (bei der Auslieferung) eingestellte Hostname von allen UPTs ('User Programmable Terminals') von MKT Systemtechnik -wozu auch die 'MKT-Views' gehören- lautet UPT. Dieser Name kann, wie bereits erwähnt, per Browser oder im System-Menü unter 'Network Setup' geändert werden.
Der in den UPTs verwendete Internet Protocol Stack verwendet eine Untermenge des NetBIOS-Protokolls um einen Hostnamen in eine IP-Adresse aufzulösen. Aufgrund der begrenzten EEPROM-Größe sind Hostnamen hier auf maximal 7 Buchstaben beschränkt. Kleinbuchstaben und Sonderzeichen sollten vermieden werden.
Tipp für Anwender ohne 'echte Hardware':
Das UPT-Programmiertool kann den im 'echten' Gerät vorhandenen Web-Server notfalls emulieren. Um den Web-Server des Emulators anzusprechen, geben Sie im Browser statt des Hostnamens die 'Loopback'-IP-Adresse 127.0.0.1 ein, um eine 'lokale' Verbindung mit dem im Programmiertool laufenden Web-Server aufbauen.
So kann die Funktion des HTTP-Servers auch ohne 'echte Hardware' getestet werden.

2.5.2 CAN-via-UDP, FlexRay-via-UDP

CAN-via-UDP (und, als 'Plan für die Zukunft', FlexRay-via-UDP) verwendet das User Datagram Protocol um CAN-Telegramme (oder FlexRay-Frames) über Ethernet/LAN zu 'tunneln'. Details zum verwendeten Protokoll und zur Konfiguration stehen im Dokument Nr. 85140, "CAN via UDP" von MKT Systemtechnik.

Bei einer "Verbindung" per CAN-via-UDP muss einer der beiden Endpunkte als Server, und der andere Endpunkt als Client konfiguriert sein. Üblicherweise arbeitet ein externes CAN-via-UDP- (oder FlexRay-via-UDP-) Gateway als Server (d.h. wartet auf Kommandos an 'seinem' UDP-Port), während das Display als Client die Dienste des abgesetzten Servers in Anspruch nimmt (d.h. der Client versucht, eine Verbindung mit dem Server aufzubauen, damit der Server "im Auftrag des Clients" CAN-Telegramme sendet und empfängt).
Die Default-Port-Nummer für CAN-via-UDP ist, wie in Dokument Nr. 85140 vorgeschlagen, i.A. 55556.
Die Default-Port-Nummer für FlexRay-via-UDP war zum Zeitpunkt der Erstellung dieses Dokumentes (2013-08-07) unbekannt.

2.6 Auslesen des Wireshark-kompatiblen 'Packet Capture'-Buffers (optional)    

Diese Funktion steht nur bei manchen Geräten mit einer Sonder-Firmware (z.B. für MKT-View IV) zur Verfügung !
Der 'Packet Capture Buffer' speichert die letzten 256 (?) kByte an Daten, die das Gerät in das Netzwerk (z.B. Ethernet oder CAN) gesendet bzw aus dem Netzwerk empfangen hat.
Der Puffer ist intern als FIFO (first in, first out) angelegt, und verwendet das mit dem Programm 'Wireshark' kompatible PCAPNG-Dateiformat. Der Pufferinhalt kann per Web-Server angezeigt oder als Datei (auf dem eigenen PC) gespeichert werden. Zusätzlich stehen per Web-Interface Funktionen zum Starten, Stoppen und Löschen des Puffers zur Verfügung. Dazu dienen die im Folgenden aufgeführten 'Adressen' (denen, wie üblich, der Name oder die IP-Adresse des Web-Servers vorangestellt werden muss) :
capture.htm
zeigt einen Teil des Capture-Puffers direkt als HTML an. Das Format entspricht, soweit möglich, der Anzeige in Wireshark (siehe Screenshot am Ende dieses Kapitels).
capture.txt
liest den Puffer in einem einfachen, 'lesbaren' Textformat.
Im Gegensatz zu HTML werden diverse Protokolle nicht farbig markiert.
capture.pcapng
liest den Puffer im Wireshark-kompatiblen 'PCAPNG'-Format aus.

Nach dem Dateinamen und der Dateinamenserweiterung, getrennt per Space, können die folgenden Befehle zum Steuern der Paket-Aufzeichung gesendet werden (zusätzlich zu den Einstellungen im System-Setup, s.U.):

/start
Startet das Aufzeichnen von Ethernet oder/und CAN-Telegrammen im Capture-Buffer.
/stop
Beendet das 'Einsammeln' weiterer Frames bzw Telegramme, und verhindert so, dass die ältesten Einträge im FIFO überschrieben werden.
/clear
Löscht den Inhalt des FIFOs (Capture-Puffer im RAM).
/time=rel
Umschalten auf Timestamp-Anzeigeformat "Relativ; Sekunden seit dem vorhergehenden Paket".
In der HTML-Ansicht erhält die Spalte mit den Zeitmarken danach die Überschrift "DeltaT", d.h. Zeitdifferenz.
/time=sec
Umschalten auf Timestamp-Anzeigeformat "Sekunden seit dem Start des Captures".
In der HTML-Ansicht erhält die Spalte mit den Zeitmarken danach die Überschrift "Time", d.h. Zeit.

Abhängig von den Einstellungen im Setup ("Main System Menu" .. "Diagnostics" .. "Ethernet Capture") können im 'Packet Capture'-Puffer sowohl empfangene als auch gesendete Ethernet-Frames, aber auch CAN-Telegramme stehen.
Diese Funktion diente im Sommer 2015 als Hilfe bei der Entwicklung Ethernet-basierender Diagnose- und Anzeigeprotokollen, u.A. auch 'OpenABK'.


Browser-Screenshot mit 'Ethernet Packet Capture'.
Zum Vergrößern in das Bild klicken.

'Echter' Wireshark-Screenshot aus der gleichen Aufzeichnung.
Zum Vergrößern in das Bild klicken.


Sollten Sie Bedenken wegen des Datenschutzes / Netzwerksicherheit haben:
Die Packet-Capture-Funktion ist per Default dauerhaft passiv - sie muss vor der Verwendung im System-Setup des Gerätes ("lokal") aktiviert werden. Auch die oben aufgeführten Befehle (z.B. "/start" per Browser) funktionieren nur, wenn im System-Setup (EEPROM) ein entsprechendes Flag gesetzt ist. Ferner ist ein Log-In (z.B. auf der Seite 'Device Setup') erforderlich, um das 'Packet Capture' per Web-Browser zu steuern, und um den Puffer per HTTP als PCAPNG-Datei auszulesen.
Ohne Log-In ist es weder möglich die Capture-Funktion per Browser mit Start / Stop / Clear zu steuern, noch den Capture-Puffer als PCAPNG-Datei auszulesen. Ohne Log-In ist lediglich die Anzeige 'als Text' (*.txt oder *.htm) im Browser möglich.

2.6.1 Analyse von Ethernet-Verkehr (per 'Packet Capture')

Die bei der direkten Anzeige im Browser 'erkannten' Protokolle (z.B. ARP, DHCP, TCP, UDP) stellen nur eine winzige Untermenge des Funktionsumfangs von Wireshark dar. Es empfiehlt sich daher, für detailierte Analysen den Capture-Puffer im PCAPNG-Format auszulesen, und (wie im rechten Screenshot) direkt in Wireshark zu öffnen.
Anwenderfreundliche Browser lassen sich so konfigurieren, dass sie beim Öffnen einer URL mit der Endung '.pcapng' direkt Wireshark starten, der dann wiederum direkt die vom Browser heruntergeladene Datei (capture.pcapng) öffnet.
Die meisten Protokollfehler und -Warnungen (wie z.B. die 'TCP Retransmission' in Paket Nr. 31 in den obigen Screenshots) werden nur von Wireshark erkannt. Ähnliches gilt für zahlreiche Protokolle und Frame-Typen, die von der im MKT-Gerät integrierten Anzeige nur als ARP, UDP oder TCP erkannt werden, von Wireshark aber auch als LLMR, BROWSER, DHCPv6, NBNS, HIP, HTTP, VNC, FTP, etc...

2.6.1 Analyse aufgezeichneter CAN-Messages (per 'Packet Capture')

Bei der Anzeige von CAN-Frames per Web-Browser wird die Übertragungsrichtung durch die Hintergrundfarbe markiert:
    Blau :   Aus Sicht des Gerätes empfangene CAN-Telegramme,
    Grün :   Vom Gerät in das Netzwerk gesendete CAN-Telegramme.
Im Gegensatz zu Wireshark wird der CAN-Message-Identifier hier nicht im 'Info'-Feld, sondern in der Spalte 'Source' (= Quelle bei empfangenen Frames, blau) oder in der Spalte 'Destination' (= Ziel bei gesendeten Frames, grün) angezeigt. 11-Bit-Identifier werden hexadeximal mit 3 Ziffern angezeigt, 29-Bit-Identifier mit 8 Ziffern. Im 'Info'-Feld wird nur das CAN-Datenfeld angezeigt (maximal 8 Bytes, hexadezimal ohne Prefix). Beispiel:
Packet Capture Status : Running, captured 5 packets .

    No.    Time    Source            Destination     Prot Length Info
1 0.00000 CAN1:0x07B CAN 8 00 02 03 04 05 06 07 08
2 0.13405 CAN1:0x000003FF CAN 8 05 44 4C 34 59 48 46 20
3 0.43712 CAN1:0x07B CAN 8 01 02 03 04 05 06 07 08
4 0.53385 CAN1:0x000003FF CAN 8 05 44 4C 34 59 48 46 20
5 3.12532 192.168.0.206 192.168.0.234 TCP 117 TX "HTTP/1.0 200 OK\r\nContent-Type:"...
Siehe auch: Wireshark-Tricks im Hilfesystem des UPT-Programmiertools (online).

3. Zugriff auf das (Pseudo?-) Dateisystem per HTTP

Ein geeigneter Web-Browser (z.B. Firefox, Chrome oder Iron) kann per HTTP (Hypertext Transfer Protocol) auf verschiedene Speicherbereiche des Gerätes zugreifen. Bei manchen Geräten (z.B. MKT-View II,III) kann der Browser auch auf ein 'echtes' Dateisystem (nämlich auf das FAT-Dateisystem auf der SD-Karte) zugreifen.
Da der HTTP-Server bislang nur HTTP (-'GET'), aber nicht FTP (=File Transfer Protocol) unterstützt, können Dateien bislang nur (aus Sicht des Browsers) gelesen aber nicht geschrieben oder gelöscht werden.
Details zum Pseudo-Datei-System finden Sie im Online-Hilfesystem des Programmiertools (verfügbar auf der MKT-Webseite).

3.1 Das Root-Verzeichnis des Pseudo-Dateisystems

Das Root-Verzeichnis ("Wurzelverzeichnis") des (Pseudo-)Dateisystems kann per Web-Browser über die Adresse <IP-Addresse>/files/ oder (alternativ) <Hostname>/files/ ausgelesen werden.

Bei Geräten mit Speicherkarten-Adapter sind einige Einträge (z.B. das Gerät 'memory_card', s.U.) nicht nur 'Pseudo-', sondern echte Dateisysteme.
Andere Einträge (z.B. data_flash, audio_flash, font_flash, etc) sind keine 'echten' Dateisysteme, sondern repräsentieren verschiedene Flash-Bausteine bzw. verschiedene Adressbereiche innerhalb dieser Bausteine, die für die Übertragung "wie eine Datei" angesprochen werden können.

3.2 Der 'Daten'-Flash-Bereich (files/data_flash)

Dieser Bereich im Flash-Speicher dient zum Speichern der Applikation.
Die einzelnen Elemente (im Flash) sind nicht zum Auslesen als Datei ansprechbar.

3.3 Der 'Audio'-Flash-Bereich (files/audio_flash)

Dieser Bereich im Flash-Speicher wird für Audio-Dateien verwendet, die z.B. als akustische Warnung per Befehl in der Applikation abgespielt werden können.

3.4 Der 'Font'-Flash-Bereich (files/font_flash)

Dient als Speicher für benutzerdefinierte Zeichensätze und den 'Boot-Screen' (BOOTSCRN.BMP).
Werden in einer Applikation 'eigene' (benutzerdefinierte) Zeichensätze verwendet, dann werden diese i.A. automatisch vom Programmiertool per CAN in das Gerät übertragen.

3.5 Dateien auf der Speicherkarte (files/memory_card)

Diese Funktion ist nur bei Geräten mit SD-Memory-Adapter vorhanden, z.B. MKT-View II/III.
Per Web-Browser können die auf der Speicherkarte abgelegten Dateien als Directory aufgelistet und ggf. ausgelesen, aber nicht gelöscht werden.

3.6 Dateien in der RAMDISK (files/ramdisk)

Die RAMDISK dient u.A. als Zwischenspeicher beim 'Hochladen' von Dateien (d.h. per Web-Browser gesteuerte Übertragung vom PC in das Zielsystem). Details dazu im folgenden Kapitel.
Darüberhinaus kann z.B. die Script-Sprache Dateien in der RAMDISK anlegen, die dann per Web-Browser lesbar sind.


4. Hochladen von Dateien (Firmware und Display-Applikation)

Bestimmte Dateitypen können vom PC per Web-Browser (und HTTP) in das programmierbare Terminal hochgeladen werden. Sofern das Gerät noch den Default-Hostnamen verwendet ("UPT"), kann die 'Upload'-Seite im Browser unter der Adresse upt/upload.htm aufgerufen werden.

4.1 Dateien zum Hochladen auswählen

Klicken Sie zunächst auf den Button mit dem Text "Durchsuchen.." (bzw. auf einem PC mit englischer Oberfläche auf "Browse"; der Text dieses Buttons wird leider vom Browser diktiert; ebenso die Reihenfolge der Buttons neben dem Eingabefeld). Abhängig vom Betriebssystem wird daraufhin eine Datei-Auswahl-Box angezeigt. Wählen Sie die hochzuladende Datei.


(Abbildung der Seite 'Upload Files' auf einem 'deutschen' PC mit Firefox unter Windows XP)

Bei einigen Browsern muss im Auswahldialog (i.A. mit dem Titel 'Öffnen') der 'Dateityp' zunächst auf 'alle Dateien' umgeschaltet werden, weil die Dateiauswahlliste sonst bis auf wenige, "dem Browser bekannten" Dateitypen leer bleibt (z.B. wurden zwar *.pdf und *.bmp - Dateien angezeigt, aber nicht *.cvt).
Der komplette Zugriffspfad und Dateiname wird danach im Textfeld neben dem 'Durchsuchen'-Button angezeigt.

Wenn Sie sicher sind, die hochzuladende Datei korrekt ausgewählt zu haben, klicken Sie danach auf den Button zum "Absenden". Auch hier wird der Text des Buttons vom Browser, Betriebssystem, und der gewählten Sprache diktiert. Übliche Beschriftungen sind "Send", "Daten absenden", oder Ähnliches. Das eigentliche 'Hochladen' (d.h. vom Client initiiertes Senden der Datei) kann je nach Dateigröße einige Sekunden dauern. Danach schaltet der Browser auf eine neue Seite um, auf der Sie (!) entscheiden können, was mit der hochgeladenen Datei passieren soll.

4.2 Dateien nach dem Hochladen verarbeiten

Nachdem eine oder mehrere Dateien in die RAMDISK des Zielsystems hochgeladen wurden, überprüft das Zielsystem zunächst den Dateityp (und, bei bestimmten Dateitypen, die Integrität der Datei).
Handelt sich um einen 'speziellen' Dateityp, führt die Firmware beim Klick auf den 'Process'-Button ("Verarbeiten!") eine der weiter unten aufgeführten Aktionen aus. Dafür muss sich -bis auf wenige Ausnahmen- der Anwender vorher mit einem Passwort einloggen (Passwort im Feld 'Enter Password' eingeben, danach ENTER-Taste drücken oder auf 'Login' klicken).


(Abbildung der Seite 'Files Transferred', d.h. 'Dateien wurden übertragen', auf einem deutschen PC)


Nach dem Anklicken des 'Process'-Buttons (siehe Screenshot) kann es einige Sekunden dauern, bis die Firmware die entsprechende Aktion durchgeführt hat, und eine entsprechende Statusmeldung im Browser angezeigt wird. Die hochgeladenen Dateien werden währenddessen wie folgt verarbeitet:



(Abbildung der Seite mit dem 'Status Report', nach der Verarbeitung der hochgeladenen Dateien)


Ohne spezielle Verarbeitung verbleiben die hochgeladenen Dateien in der RAMDISK, es sei denn, ein Script im Anzeigeprogramm 'kümmert' sich um die Datei in irgendeiner Form (Lesen, Anzeigen, als Audiodatei abspielen, Löschen, ...).
Zum einfachen Hochladen ohne die oben beschriebene Weiterverarbeitung ist kein Login mit Passwort nötig. Hochgeladene Dateien verbleiben dann bis zum Abschalten in der RAMDISK, wo sie (außer Speicherplatz zu belegen) keinen Schaden anrichten können.
Hochgeladene Dateien können (wie alle Dateien in der RAMDISK) per Web-Browser auch wieder ausgelesen, oder gelöscht werden. Zum Anzeigen des Inhaltsverzeichnisses der RAMDISK, und Ermitteln des verbleibenden freien Speichers in Kilobyte rufen Sie die Seite upt/files/ramdisk auf (ggf. "upt" in der Addresse durch den Hostnamen ersetzen).
Hinweis
Ein Kilobyte besteht seit den frühen Tagen der 'Computerei' aus 1024 Bytes.
Daran wird sich nichts ändern, selbst wenn mancherorts nun das "kibiByte" propagiert wird,
und manche Festplattenhersteller der Meinung sind, 1000 Bytes wären bereits ein ganzes 'kiloByte' !

5. Spezielle Schlüsselwörter in den HTML-Vorlagen (für den Web-Server)

Die meisten Webseiten des Servers enthalten "dynamischen Inhalt". Dieser wird in Form bestimmter Schüsselwörter (Tokens) in den HTML-Dateivorlagen realisiert (nicht mit HTML-Tags zu verwechseln). Der HTTP-Server erkennt diese Schlüsselwörter beim Auslesen, und ersetzt sie (in der HTTP-Antwort) durch die entsprechenden aktuellen Werte.
Zum Zeitpunkt der Erstellung dieser Dokumentation waren die folgenden Tokens implementiert
(ohne Leerzeichen zwischen '$' und dem aus drei Buchstaben bestehenden Token):

Viele der oben aufgeführten Tokens werden auf der 'Index'-Seite verwendet. Dadurch kann der gleiche Quelltext (als HTML-Vorlage) in den verschiedensten Firmware-Varianten verwendet werden, ohne dass jedesmal manuelle Anpassungen nötig sind.

6. Spezielle Dateinamen im HTTP-Server

Neben den oben aufgeführten Schlüsselwörtern (in den HTML-Vorlage-Dateien) erkennt der HTML-Server bei der Anforderung per HTTP auch einige 'besondere' Dateinamen. Zum Zeitpunkt der Erstellung dieses Dokumentes waren dies:

-.. .   -.. .-.. ....- -.-- .... ..-.   ...-.-

7. Troubleshooting

Momentan enhält dieses Kapitel nur einige "Notizen des Entwicklers", der keine Erfahrungen mit Windows "Vista", und nur wenig Erfahrung mit "Windows 7" hatte ... denn in der Entwicklung stand (damals) nur ein Window-XP-System zur Verfügung.

7.1 Konfigurieren von Windows 7 zum Aufbau einer Punkt-zu-Punkt-Verbindung per Ethernet-Kabel (ohne Router)

Das folgende Kapitel enthält eine kurze Beschreibung, wie eine Punkt-zu-Punkt-Verbindung per Ethernet-Kabel zwischen einem PC mit Windows 7 und einem programmierbaren Gerät mit fester IP-Adresse (hier: MKT-View III) hergestellt werden konnte.
Da auf dem privaten Notebook des Autors nur Windows 7 in deutscher Sprache installiert war, ist die folgende 'Kurzanleitung' auch nur in deutscher Sprache verfügbar.

  1. "Start" in der linken unteren Ecke, "Systemsteuerung".
  2. "Netzwerk und Freigabecenter"
  3. "Adaptereinstellungen ändern"
    (im Fenster mit dem Titel "Systemsteuerung - Netzwerk und Internet - Netzwerkverbindungen")
  4. auf das Symbol für die "LAN-Verbindung" (d.h. Ethernet-Schnittstelle) klicken,
    über die später die Verbindung zum programmierbaren Gerät aufgebaut werden soll.
    (Siehe Screenshot 'Auswahl der LAN-Verbindung' am Ende dieses Kapitels)
  5. Unter dem Symbol darf, wenn die Kabelverbindung zum Gerät hergestellt ist, KEIN ROTES KREUZ erscheinen !
    (das rote Kreuz soll wohl andeuten, dass die Verbindung "physikalisch" nicht funktioniert)
  6. Doppelklick auf das Symbol "LAN-Verbindung". Es sollte sich ein Fenster mit dem Titel "Status von LAN-Verbindung" öffnen.
    (Siehe Screenshot 'Status von LAN-Verbindung' am Ende dieses Kapitels)
  7. In besagtem Fenster den Button namens "Eigenschaften" anklicken
  8. In der Liste unter "Netzwerk" den Eintrag "Internetprotokoll Version 4 (TCP/IP)" markieren.
  9. Klick auf "Eigenschaften" (unter der Liste mit den Netzwerkprotokollen).
    Es öffnet sich ein weiteres Fenster:

    (Details zur IP-Adresse, Subnetzmaske, und dem Standardgateway folgen später)
  10. Da bei einer Punkt-zu-Punkt-Verbindung zwischen Windows (7) und dem programmierbaren Gerät kein DHCP-Server zur Verfügung steht, muss wohl oder übel die Option
     (o) Folgende IP-Adresse verwenden:
    aktiviert werden, und im darunterliegenden Feld eine noch freie IP-Adresse eingegeben werden (ähnlich wie im obigen Screenshot).

Im oben gezeigten Screenshot wurde im programmierbaren Gerät die feste IP-Adresse 192.168.0.206 verwendet. Wichtig:
Da in der beschriebenen Konfiguration (Notebook direkt über Ethernet-Kabel mit dem Gerät verbunden) kein DHCP-Server zur Verfügung stand, darf auch im programmierbaren Gerät kein DHCP verwendet werden !
Die ersten drei Bytes in den IP-Adressen (hier: 192.168.0) müssen bei allen Geräten im Netzwerk identisch sein. Üblicherweise ist die Subnetzmaske für diese drei Bytes immer '255.255.255'; das letzte Byte der Subnetzmaske ist üblicherweise Null. Eine detailierte Erklärung würde den Rahmen dieses Dokuments sprengen; fragen Sie ggf. Ihren Netzwerk-Spezialisten !
Zu den obigen Screenshots passende Einstellungen im 'Network Setup' des programmierbaren Gerätes (hier: MKT-View III) :

     
       NETWORK SETUP
       
       MAC: 00-50-C2-8E-70-00
       Name: UPT2
       DHCP: disabled (static IP)
        IPaddr: 192.168.000.206
        Subnet: 255.255.255.000
        Gatew.: 192.168.000.001
       Local TCP Server Ports:
        HTTP:80 TN:23 FTP:21
       CAN via UDP: off
        RemoteIP: 192.168.000.242
        Ports: R=55556 L=55557
        
        
   

Zusammenfassung der Screenshots von den Netzwerk-Einstellungen unter Windows 7 (64-Bit, auf dem Notebook des Autors):


(Auswahl der LAN-Verbindung, aka 'Ethernet-Port', unter Windows 7)




("Status von LAN-Verbindung", nach Doppelklick auf den Adapter aus dem vorherigen Screenshot)




("Eigenschaften von LAN-Verbindung", nach Klick auf "Eigenschaften" unter 'Status von LAN-Verbindung' [s.O.] )




("Eigenschaften von Internet Protokoll Version 4 (TCP/IPv4)",
nach Klick auf "Eigenschaften" unter 'Eigenschaften von LAN-Verbindung' [s.O.],
wenn dort der Eintrag 'Internetprotokoll Version 4 (TCP/IPv4)' markiert ist )




("Eigenschaften des Ethernet-Controllers im PC", hier: Realtek PCIe im Notebook des Autors)


Mit den oben gezeigten Einstellungen funktionierte -zumindest auf dem Notebook des Autors, einem HP630- die Verbindung zum Web-Server des programmierbaren Gerätes unter Windows 7, 64 Bit, "Home Premium", problemlos.
Das programmierbare Gerät (MKT-View III) konnte per Browser (Firefox) sowohl über die IP-Adresse (z.B. 192.168.0.206) als auch über den Hostnamen des Gerätes (z.B. UPT) angesprochen werden.

Hinweise zur IP-Konfiguration:
IP-Adresse :
Fragen Sie ggf. Ihren Netzwerk-Administrator, ob eine feste IP-Adresse im Netzwerk zulässig ist, und tragen Sie diese IP-Adresse im entsprechenden Eingabefeld ein.
Eine IP-Adresse darf im gesamten (lokalen) Netzwerk nur ein einziges Mal vorkommen, d.h. die IP-Adresse des PCs kann niemals mit der IP-Adresse des programmierbaren Gerätes identisch sein !
Falls DHCP verwendet wird (d.h. keine festen, sondern dynamisch zugewiesene IP-Adressen), ist die Eingabe in diesem Feld belanglos, und das Gerät sollte statt über seine IP-Adresse über seinen Host-Namen angesprochen werden.
Subnetzmaske :
Hier wird fast immer der Wert 255.255.255.0 eingestellt.
Falls DHCP verwendet wird (d.h. keine festen, sondern dynamisch zugewiesene IP-Adressen), ist die Eingabe in diesem Feld belanglos.
Standardgateway :
Wird nur benötigt, wenn das Gerät eine Verbindung außerhalb des lokalen Netzwerks aufbauen muss; z.B. wenn das Gerät (oder der PC) aus irgendwelchen Gründen eine Verbindung mit dem Internet aufbauen muss. Falls DHCP verwendet wird (d.h. keine festen, sondern dynamisch zugewiesene IP-Adressen), ist die Eingabe in diesem Feld belanglos.

8. Links und weitere Informationen

http://UPT  ( = default hostname der meisten programmierbaren Geräte (ohne CoDeSys), wozu auch die MKT-Views (II, III) zählen.
Diese Adresse (URL) funktioniert nur innerhalb eines Ethernet LANs, und solange der Hostname noch nicht geändert wurde ! )

Netzwerk-Einstellungen im Systemmenü des programmierbaren Terminals, in Dokument Nr. 85115, "Network Setup"

Liste mit weiteren 'druckbaren Handbüchern' von MKT Systemtechnik / "MKT-CD"

Webseite von MKT Systemtechnik