# TwinCat 3 TE2000 TC3 HMI Visualisierung Erfahrungen



## Olli_BS (31 Juli 2019)

Hi! 
Ich mache nur 1-2 im Jahr mit TwinCat rum. Großer Knackpunkt ist eigentlich immer die HMI (TARGET).
Auf WinCE Funktions arm, auf nicht CE gleichzeitig online programmieren nicht möglich.
Bei beiden nur 1 x HMI pro PLC. 
Und ganz grundsätzlich etwas altbacken. Optisch sowie Editor / Funktionsumfang.

Als Fremd-Alternative kenne ich nur Beijer Panels. Und die sind ja höchstens "naja".
Nach "iX Developer" findet man WinCC auf einmal ganz toll...

Dann sollte ja die neue TC3 HMI die Lösung sein.
Da habe ich mal vor 2-3 Jahren mit rum experimentiert und war ziemlich enttäuscht.
Das war nicht sehr intuitiv und ohne HTML5/Javascript (?) Kenntnisse nicht wirklich verständlich.
Ich hatte nur ein Beispielprojekt gefunden (Ampel !). Und das war keine Hilfe.
Außer einer Sprachumschaltung war da kaum was Relevantes drin (Wir machen Sondermaschinenbau, keine Azubi-Beschäftigungstherapien ...).

Jetzt die Frage:
Kann man da aktuell angenehm+ zügig mit Arbeiten?
Also ohne Web-Entwickler/Hochsprachen Fähigkeiten.
Und wenn man WinCC-Komfort gewohnt ist (Ich hätte früher nie geglaubt, das ich das mal schreibe ...).

Das Meldesystem war am Anfang komplett extra. Und gefühlt noch umständlicher wie das alte. Ist das komfortabler geworden?

Wie gesagt: Es geht um Sondermaschinen. Also nicht einmal viel Arbeit reinstecken und dann nur noch kopieren. 
Man sollte schon spontan mal ein Seite Handbetrieb für einen Servo oder so (Tast-Funktionen, Anzeigen, Zahleneingabe, Text-Symbol-listen (Eingabe+Ausgabe) hinbekommen.

Mehrere HMIs sind ja wohl problemlos möglich, oder?
Gibt es irgendwo ein frei zugängliches Beispiel-Projekt mit gehobenen Funktionsumfang?

Wäre nett wenn jemand mal praktischer Erfahrungen teilen könnte. DANKE !


----------



## wollvieh (31 Juli 2019)

Ich bevorzuge Inosoft Visiwin.net.
Zenon von Copadata ist auch net schlecht. Beide über OPC angekoppelt.


----------



## MasterOhh (1 August 2019)

Wir haben bisher ein größeres Projekt mit der TE2000 HMI realisiert.

Von Hause aus ist der Funktionsumfang recht spärlich. Sind halt mehr oder weniger nur die Standard Elemente enthalten. 
Die wirkliche Stärke des HMIs zeigt sich erst wenn man tiefer in die Materie einsteigt. Wir haben unsere HMIs bisher in C# programmiert und sind es daher gewohnt alle Freiheiten zu haben ohne auf die Limitationen von diversen HMI-Anbietern Rücksicht nehmen zu müssen (wir haben einige getestet und waren mit keinem so recht zufrieden)

Das TE2000 gibt einem fast alle Freiheiten. Der Haken ist, man muss wissen wie. Die Dokumentation von Beckhoff ist traditionell "grenzwertig" und endet oft da, wo es anfängt interessant zu werden.
Web-Programmierung (Javascript + HTML + CSS) ist auch so eine Sache. Für einen Programmierer der die "traditionellen" Hochsprachen + SPS gewohnt ist, ist Javascript erstmal ein Kulturschock (so ging es mir jedenfalls) - siehe asynchrone Funktionsaufrufe, Variablen Scopes um nur 2 Dinge zu nennen, die mir massiv Kopfschmerzen bereitet haben.
Ich habe vor gut einem Jahr angefangen mich einzuarbeiten (meistens privat in meiner Freizeit) und bin mittlerweile auf einem Stand wo ich auch komplexere Sachen recht zügig umsetzen kann, kratze aber immer noch mehr oder weniger an der Oberfläche von dem was Möglich ist. (z.B. habe ich noch nicht mit Extensions gearbeitet)

Dynamische Grafiken lassen sich z.B. sehr schön umsetzen, wenn man SVG nutzt. Zudem gibt es eine Fülle von freien Bibliotheken im Netz (auch für die kommerzielle Nutzung), die eine Menge nützliche Funktionen enthalten.


Tl;dr
Das TE2000 HMI ist ein mächtiges Tool, wenn man sich einarbeitet. Preislich steht die Lizenz im Vergleich zu anderen Herstellern auch recht gut da. Beckhoff erweitert die Funktionalität stetig. Und man kann es, wie die meisten Sachen bei Beckhoff, unbegrenzt Testen ohne einen Cent zu bezahlen.

Was Beckhoff aus meiner Sicht vergessen hat, das man auch eine Möglichkeit braucht das HMI auf der Anlage darzustellen. Der Kiosk-Modus ist bei den meisten Browsern nur noch halbgar implementiert. Den Live-View hat Beckhoff ja auch auf Chromium Basis selber erstellt, hier wäre es doch ein Leichtes einen abgespeckten Browser mit guten Kiosk Funktionen auszuliefern (meinetwegen auch für einen geringen Obolus). Wir haben unseren eigenen Browser (chromium) mit cefsharp erstellt.


----------



## O'Gigis (2 August 2019)

Bin auch gerade dabei ein größeres Projekt mit der TE2000 zu visualsieren, als Alternative zu einer VB Visualisierung. Viele Sachen werden dadurch vereinfacht (z.B. das direkte ansprechen und lesen  der PLC Variablen), wenn man WinForms gewohnt ist gibt es aber auch ein paar Sachen die erheblichen Mehraufwand bedeuten als gewohnt. Zumindest mir ist es so ergangen, einige Funktionen habe ich vermisst z.B.



Radio Button oder eine einfache LED sind nicht vorhanden, hätte ich als Standard Element für eine Automatisierungssoftware erwartet 
CheckBox gibt es, keine CheckBoxGroup -> die muss man sich selber erstellen inklusive der Funktion, dass nur eine CheckBox aktiv ist. 
TabSheet? Leider nein :???: Muss man sich selber basteln ... 
Kurz über ShowMessage modal was ausgeben und darauf reagieren? Nene ... Das muss man sich mit Regions oder Contents selber erstellen und auflösen  

Hinzu kommt das erschwerte Debuggen und Suchen nach Variablen da die TE2000 ist nunmal HTML basiert ist ... 


Es ist halt eine Umstellung, bisher habe ich es nicht bereut. Ein paar mehr Standardkomponenten hätte ich aber nach über 6 Jahren aber schon erwartet 

Ob du dich da einarbeiten willst kann weiss ich nicht, bequem alles kostenlos testen kannst du ja Beckhoff


----------



## Olli_BS (13 August 2019)

Dank der wenigen, aber dafür ausführlichen Infos ist das Fazit für mich ja recht eindeutig:
Für Gelegenheit-User ohne WebTech-Fähigkeiten ist die neue HMI keine Lösung.
Also bleibst gebastelt oder Fremd-Systeme...


----------



## Hack (13 August 2019)

@O'Gigis: Zu deinen Punkten.



Die Checkbox hat ein Attribut ToggleGroup, damit kannst du genau das machen.
TabSheet gibt es nicht. Mit den Regions kann man das aber einfach und schnell machen, es will ja auch nicht jeder Tabs.
ShowMessage gibt es nicht. alert() macht aber genau das gleiche.

Grüße


----------



## O'Gigis (13 August 2019)

@Hack

Danke für deine Hinweise!

Das mit der Checkbox habe ich genau so mit der internen Variablen ToggleGroup gemacht. Leider verhindert es nicht ,dass beim Klicken einer schon ausgewählten CheckBox diese auch ausgewählt bleibt. Das muss ebenfalls programiert werden. Da kann man schnell drauf reinfallen, dass die Zustände der Checkboxen beim wiederanklicken je nach ausgewählten Ereignis zu Beginn des Ereignis noch True sind und am Ende erst auf False gesetzt werden :???: War 'ne schöne Suche 

Die TabSheets habe ich ebenfalls mIt den Regions/Contents erstellt. Da muss man sich aber mit einer angesetzten Buttonreihe für die Tabsheet-Leiste weiterhelfen, ist auch nicht schön wenn man mal was versetzen will. Zudem werden Inhalte wie z.B. die Farbe eines Buttons beim Wechseln der "Tabsheets" nicht behalten, da muss man sich über weitere SPS Variablen weiterhelfen die den gesetzten Status beibehalten. Geht, ist aber halt aufwendiger.

alert() funktioniert auch um was mitzuteilen, kann ich da auch eine Button plazieren und die Antwort auslesen? Sieht aber nicht wirklich schön aus das alert- Fenster. 


Aber nochmals, die *Vorteile Überwiegen* und ich habe es nicht bereut


----------



## MasterOhh (13 August 2019)

Wenn du etwas eingeben möchtest musst du prompt() anstatt von alert() verwenden.

prompt() und alert() lassen sich nicht anpassen ihr Aussehen hängt vom verwendeten Browser und OS style ab.

Du kannst dir aber auch ein eigenes Meldungs-Control erstellen, dass bei Aktivierung im Desktop View einblendest.
Ich habe z.B. im Main View eine halbtransparente Region auf der so ein Meldungsfenster abgelegt ist. Die Region hat einen Z-Index von 9999 und sollte somit immer über allen anderen Controls liegen wenn sie eingeblendet wird. Da die Region die Größe des gesamten Bildschirms hat, wird verhindert das andere Controls betätigt werden, während sie aktiv ist.
Mit etwas Bastelei ist da schon einiges drin... Und wenn man es dann auch noch ordentlich und Sauber macht (Parametrierungsmöglichkeiten, relative Positionierung der Controls, Skalierbarkeit, etc.) dann kann soetwas auch in anderen Projekten weiter verwenden.


----------



## O'Gigis (14 August 2019)

@MasterOhh

Soähnlich  mache ich es auch  Das mit dem Z-Index ist nochmals ein guter Hinweis, aber reicht nicht das halbtransparentes Fenster über den gesamten Bildschirm um sicher zu gehen, dass die dahinterliegenden Controls nicht ausgeführt werden? Bei mir funktioniert es auch so, habe aber auch kein anderes Control mit einem Z-Index belegt.


----------



## Tobi-212 (14 August 2019)

Wir haben die TF2000 mittlerweile auch im Einsatz, da es für uns kein richtig Zugeschnittene HMI gab.
Ich habe zuerst privat ein bisschen Experimentiert, das ganze ist nun gewachsen und kann es recht gut mit aktuellen Systemen aufnehmen.
Die Schulung zur HMI sehe ich aber als notwendig an, wenn man sich nicht die ersten Schritte im Kreis bewegen will.
Insbesondere mit der aktuellen Version und dem Meldungsmamagement kann man schon sehr viel erreichen.


----------



## zuse (15 August 2019)

O'Gigis schrieb:


> @MasterOhh
> So ähnlich  mache ich es auch  Das mit dem Z-Index ist nochmals ein guter Hinweis, aber reicht nicht das halbtransparentes Fenster über den gesamten Bildschirm um sicher zu gehen, dass die dahinterliegenden Controls nicht ausgeführt werden? Bei mir funktioniert es auch so, habe aber auch kein anderes Control mit einem Z-Index belegt.



Wenn dein Control über dem ganzen Bildschirm liegt, kann man mit dadrunter liegenden Controls nicht mehr interagieren. 

Wenn ihr jedoch eh JavaScript-Programmierung (in controls oder code-behind) nutzt solltet ihr euch auch den TopMostLayer ansehen. In Aktion kann man ihn in der Combobox (Attribut "DropDownStyle" auf "mobile" stellen) sehen.


----------



## Olli_BS (15 August 2019)

Tobi-212 schrieb:


> Wir haben die TF2000 mittlerweile auch im Einsatz, da es für uns kein richtig Zugeschnittene HMI gab.
> Ich habe zuerst privat ein bisschen Experimentiert, das ganze ist nun gewachsen und kann es recht gut mit aktuellen Systemen aufnehmen.
> Die Schulung zur HMI sehe ich aber als notwendig an, wenn man sich nicht die ersten Schritte im Kreis bewegen will.
> Insbesondere mit der aktuellen Version und dem Meldungsmamagement kann man schon sehr viel erreichen.



Das Meldungsmamagement ist inzwischen benutzbar?
Das war ja am Anfang noch schlechter editierbar (kopieren !!) wie in TC2.


----------

