HMI Server HTML5 / JavaScript

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

vielen Dank für deine Antwort Guga! Es lag einfach tatsächlich daran den richtigen Port und den richtigen Ort zu seiner Beschreibung zu finden.
-> Man muss in den HMI-Server Settings unter "ADS" eine Runtime hinzufügen und diese mit der jeweiligen IP und NetID versorgen. Wichtig ist wie von dir schon richtig vermutet, dort dann auch den
Port des Tasks anzugeben, welcher das C++ Modul ausführt. Den von dir unter #1 beschriebenen Haken unter "Create Symbol" im TMC-Editor setzten, egal ob I/O Symbol / Parameter usw....
Lädt man nun die Config und startet den Run-Mode, sind die ADS-Variablen alle sichtbar und können in die HMI eingebunden werden =)

Danke für die Hilfe,

Matti
 
Hallo,
würde gerne von einer Server-Extension aus benutzerdefinierte Events verschicken auf die ich dann im Client (JavaScript) reagieren kann. Oder anders gesagt - der Client soll über von ihm festgelegte Ereignisse vom Server informiert werden.

Hat zufällig jemand eine Ahnung wie das funktioniert bzw. eine Idee wie man so etwas am besten realisieren könnte?

Lg, Andreas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forenmitglieder,


ich beschäftige mich seid kurzen mit der HMI von Beckhoff.
Für Testzwecke möchte ich jetzt mit einen Tablet mittels WLAN Acesspoint auf meinen Entwicklungsrechner zugreifen.
Der Hmi Server läuft auf localhost.
Kann ich von einem anderen Rechner aus auf den localhost zugreifen ?

mfg
mkersch
 
mal so zum mitschreiben.
Du hast den Server installiert (TF2000). Auf dem gleichen Rechner wie die TE2000.
Natürlich kannst du von "extern" darauf zugreifen.
Schau aber mal das du in den Endpoints des Servers auch 0.0.0.0:1010 gesetzt hast (Einstellung für "jeder Remote Rechner darf anfragen"). Sonst wird es von extern nicht klappen (Config irgendwo im Web-Interface des Servers)
Das du an die Firewall denkst versteht sich von selber oder?

Guga
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Heute ist mir folgendes aufgefallen.

In meiner HMI habe ich mehrere SPS Variablen gemappt.

Dabei rufe ich einen Event auf wenn sich z.B. Var1 ändert.
In diesem Event wird eine weitere gemappte Variable hochgezählt und in die SPS geschrieben.
--> Event. Global Create Data Bindung.. zu gemappter Variable
In diesen Event Write to Symbol

Der Hintergrund ist der, ich möchte alle Sekundem den Status aktualisieren. In einer If Abfrage kann
ich dann bestimmen ob die Hintergrundfarbe eines Rechteckes grün oder rot angezeigt werden muss.
Die Variable welche den Event wirft inkrementiere ich je Sekunde in der SPS.

Nachdem ich mein Life Bild geschlossen habe, wird weiter dieser Event aufgerufen und die Variable wird
immernoch hochgezählt

Sorry evtl. eine Anfängerfrage.
Im Normalfall läuft doch mein Programm auf dem Client. Wenn ich denn Client schließe müsste doch auch das
Programm stoppen.

mfg
mkersch
 
Ich hab mich da jetzt nich durch alles durchgekämpft, sind ja mittlerweile 9 Seiten bei diesem Thread, möchte aber zum Ursprungsthema doch meinen Senf dazugeben.
Wir wollten sowas vor 1 1/2 Jahren machen, und zwar mit einer WebHMI und hofften auch auf diese Beckhoff Lösung, leider (wie so oft) gab es diese nicht funktionsfähig.

Unsere Lösung war dann ein einfacher Python Server mit Python 3.x und dem Paket pyADS. Ist beides Gratis, zum Starten des Python Webserver benötigt man mittlerweile nur mehr eine Zeile und der läuft. Mit pyADS kann man eine Verbindung zu einer beliebigen Variable ebenso mit einem Dreizeiler aufbauen. Der Rest ist dann nur noch Webdevelopper Spezialzeug (Chart.js usw...)

Wir haben dann zum einfacheren Aufbau der Seite auf Bootstrap und JQuery UI zurückgegriffen (alles OpenSource und somit frei zu verwenden)
 
Verstehe ich die Frage nicht?

Ich würde einfach ein Binding auf die Variable machen. Wenn sich diese ändert schalte ich die Farbe um.
Man kann auch wenn man hinten in das Binding klickt die Refresh-Zeit angeben.

Wie soll deine Variante funktionieren wenn mehrere Clients offen sind?

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich wollte nur allgemein sagen, dass es auch noch einfachere und vor allem gratis Möglichkeiten gibt sich auf eine Variable von einer Web-HMI aus zu verbinden und diese anzuzeigen.
Dieser Thread geht ja mittlerweile schon ein paar Seiten lang...

Hier hab ich mal ein kurzes Tutorial dazu geschrieben...

Sg
 
Zuletzt bearbeitet:
Der kleine Unterschied ist hier, dass du für Tame3 oder 4 den Twincat ADS Webservice brauchst und bei der Python Lösung mit pyADS eben nichts. Python lädt die TcAdsDll.dll und verwendet diese direkt zum Verbinden auf die Steuerung.

Sg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@mkersch

wieso sollte dein Programm auf dem Client laufen? Sozusagen als Gedankenspiel: Was sollte dann passieren wenn mehrere Clients angemeldet sind? Soll jeder die Variable auf dem Server hochzählen (d.h. die Variable zählt dann 3 mal so schnell hoch wie wenn du nur einen Client hast)?

Aber konkret zu deinem Wunsch: Generiere dir ein JavaScript Funktion (Timer) die du im Server registrierst und alle x-sekunden dann aufgerufen wird. In der Funktion machst du dann was du willst.
Wenn du willst könnte ich dir ein Beispiel zukommen lassen (Anzeige Datum und Uhrzeit ) das ich von Beckhoff mal bekommen habe.


Guga
 
Servus,
hat jetzt mal wieder Zeit, ein bischen mit einer "Alarmliste" herumzuspielen
Also in der sps generiere ich Fehlermeldungen zb "FB001_E00001" die in einem String-Array liegen die lese ich dann aus der "Sprachtabelle" aus, und gebe dan den Text aus.
Klappt eigentlich soweit ganz wunderbar!

Wenn ich das dann mit console.log() schreibt es mir das auch brav in die Console...........
gibt es die Möglichkeit das ich das auch auf dem Server mache? .... Wär auch cool um mein String Array zu Manipulieren.

Merci

Ps Mein aktueller Stand: HMITest.jpg
 
Zuletzt bearbeitet:
Moin,

ich hole diesen alten Thread mit einer kurzen Frage mal wieder aus der Versenkung.
Es gibt ja bei Beckhoff im Downloadbereich einmal TE2000 | TC3 HMI und einmal TF2000 | TC3 HMI Server.
Die TE2000 TC3 HMI habe ich nun auf meinem Engineering Rechner installiert und kann dadurch die in TwinCAT3 integrierte Engineering Umgebung für die HMI zu meiner Solution hinzufügen.

Nun brauche ich ja noch den HMI Server TF2000 | TC3 HMI Server, den ich installieren muss. Testweise habe ich diesen auch erfolgreich auf meinem Engineering PC installiert. Nun zu meiner Frage.

Ich habe den Embedded PC CX5120 von Beckhoff mit Microsoft Windows Embedded Compact darauf. Momentan nutze ich damit die "normale" PLC HMI und möchte mich nun in die neue HMI einarbeiten.
Kann ich den neuen HMI Server auch auf meinem CX5120 installieren?

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der HMI Server läuft leider nicht auf Windows Embedded Compact.
Wenn du dich nur einarbeiten willst, brauchst du keine SPS. Du kannst doch lokal bei dir auf dem Programmier PC sowohl die TC3 Runtime und den HMI Server laufen lassen. Wird der HMI Server nicht sogar automatisch mit TE2000 | TC3 HMI Engineering mit installiert?
 
Hallo MasterOhh,

danke für die schnelle Antwort. Das hatte ich befürchtet. Deinen Vorschlag den HMI Server auf dem Engineering PC zu installieren habe ich bereits erfolgreich umgesetzt, wie ich oben auch schrieb.

Aber deine Info hilft mir schonmal weiter, ich dachte ich hätte irgendein Installationspaket übersehen.
 
Hallo Perold,

das TF2000 (Server) brauchst Du in der Regel nicht auf Deinem Engineering Rechner.
Im TE2000 (Engineering) ist ein Server bereits mit implementiert der auch automatisch anläuft, wenn Du ein HMI Projekt bearbeitest.
Ohne diesen hättest Du z.B. nicht das Live-View.
Das TF2000 auf Deinem Engineering Rechner bräuchtest Du nur, wenn die HMI auch bei geschlossenem Visual Studio erreichbar sein soll.
Auf dem CX5120 kannst Du prinzipiell ohne Probleme das TF2000 (Server) installieren, sofern Du ein volles/großes Windows hast.
Für CE meine ich gibt es noch keinen Server.

Zur Anzeige kommt Deine HMI durch den Server aber erst einmal noch nicht, der Server hostet ja nur die Website und händelt die Kommunikation.
Du kannst dann entweder direkt auf dem CX5120 einen Browser öffnen oder eben übers Netzwerk auf diesen Server zu greifen.
Bei einem CX5120 mit nur einem CPU Kern auf Atom-Basis, würde ich Dir aber den Weg übers Netzwerk zur Anzeige auf einem anderen Gerät empfehlen.

Noch ein kleiner Tipp aus der Praxis:
Beim Setup des HMI Servers, die benutzerdefinierte Setup-Variante wählen und dort das Häkchen setzen, das der Server auch über http und nicht nur https erreichbar ist.
Bin ich am Anfang auch drüber gestolpert. :-)

Viele Grüße! :-)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

alles klar nun bin ich etwas schlauer geworden.
Soeben habe ich auf der Beckhoff Seite unter dem Punkt "TF2000 | TC3 HMI Server" auch folgenden Hinweis gefunden, der mir meine Frage eigentlich beantwortet:

Verfügbar | Windows CE: voraussichtliche Markteinführung im 2. Quartal 2019

Bleibt abzuwarten ob Beckhoff seinen Termin auch hält ;).
 
Servus,
eventuell kann mir jemand weiterhelfen
1. Zeile: uint (7020)==> Anzeige passt
2. Zeile ULINT (7020)==> Anzeige irgenwie seltsam
ulint.png
 
Zurück
Oben