TwinCAT HMI mit SPS-Datentypen (Struct, Enum) mit TMC-Datei

mgl

Level-2
Beiträge
119
Reaktionspunkte
14
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich möchte ein PLC Struct und Enums in der TwinCAT HMI (TE2000) verwenden um diese dann direkt als UserControl-Schnittstelle zu verwenden. Ich habe hierfür eine TMC Datei erstellt und in der HMI eingebunden, jedoch werden mir die Datentypen nicht angezeigt. Vielleicht habe ich auch nur an der falschen stelle gesucht.

Meine Vorgehensweise war dabei folgende:
  1. Im XAE-Projekt -> System -> Type System "Neues Element" hinzugefügt
  2. Rechte Maustaste auf die neue Datei -> "Edit Project File"
  3. Struct und Enums im TMC-Editor mit Namespace "HMI" hinzugefügt
  4. Danach doppel-Klick auf die TMC-Datei -> Reiter "Daten Typen" ausgewählt -> Checkbox neben den Enums und Structs gesetzt und Datei gespeichert
  5. Datei im Editor auf Inhalt geprüft und dann in das HMI Projekt kopiert.
  6. Im HMI Projekt dann in die "TwinCAT HMI Configuration" und über das Symbol "Attach TMC-File" die TMC-Datei hinzugefügt.
Wenn ich nun aber in der "TwinCAT HMI Configuration" unter "Data types" schaue finde ich weder die Enums noch das Struct. Was mache ich falsch?

Das nächste Phänomen ist, dass wenn ich mein PLC-Projekt übersetze, in der TMC-Datei dann ersten Structs und Enums mehrfach mit gleichen GUIDs erscheinen und zusätzlich noch irgendwelche Interfaces und andere Datentypen die ich da eigentlich nicht haben will.

Wie macht ihr das?

Manchmal frage ich mich ob nur ich mich ständig mit solchen Problemen herum ärgere, da es hier im Vergleich zu Siemens ja relativ wenige Probleme mit Beckhoff gepostet werden.
 
Wie das über den von dir beschriebenen weg geht, da kann ich dir leider nicht weiterhelfen, da ich meine HMI normal immer zusammen mit der SPS entwickle. Entweder läuft die SPS bei mir auf dem Laptop oder eine Test-SPS im Büro. Hier muss ich mich nicht mit TMC im- und exports herumschlagen.

Zu deiner Frage, warum hier so wenig gepostet wird: Ich glaube es nutzt einfach kaum einer die TE2000 im industriellen Umfeld.

Normal hab ich da keine Probleme mit Enums oder Structs.
Ich kann Strukturen aus der SPS direkt in die HMI mappen, in diesem Fall z.B. auch als Parameter in ein Usercontrol übergeben:
1756728331572.png

Im Usercontrol kann man dann ohne größere Probleme einzelne Enums (hier emission color) in z.B. eine Combobox übergeben:
1756728390218.png
1756728399127.png

In der HMI sieht das dann so aus:
1756728413447.png

Sprachumschaltung ist dann zwar nicht mit drin, brauch ich aber für meine enums auch nicht zwingend.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaube es nutzt einfach kaum einer die TE2000 im industriellen Umfeld.
Das würde ich so nicht unterschreiben. Die TE2000 ist schon die beste Lösung, wenn man kein Hochsprachen-Entwickler ist. Wenn ich so Ausschreibungen lese, wird immer die TE2000 mit erwähnt. Das ist schon das Standard-HMI.

Das ich z.B. die nicht nutze hat den Hintergrund, dass ich selbst lange vor Erscheinen der TE2000 ein eigenes leistungsfähiges HMI auf .NET-Basis entwickelt habe.

Daher kann ich leider auch nicht direkt helfen.

Das nächste Phänomen ist, dass wenn ich mein PLC-Projekt übersetze, in der TMC-Datei dann ersten Structs und Enums mehrfach mit gleichen GUIDs erscheinen und zusätzlich noch irgendwelche Interfaces und andere Datentypen die ich da eigentlich nicht haben will.

Die TMC ist nicht nur für das HMI da. Da sind auch die Eventlogger-Meldungen drin, die Hardware-Verlinkung usw. Also nicht daran stören. Die Datei ist nicht umsonst so riesig.
 
Die TMC ist nicht nur für das HMI da. Da sind auch die Eventlogger-Meldungen drin, die Hardware-Verlinkung usw. Also nicht daran stören. Die Datei ist nicht umsonst so riesig.

Na ja, es muss ja nicht nur eine TMC-Datei geben. Ich verstehe schon, dass wenn ich die TMC-Datei von der SPS exportiere dann ein haufen Kram drin ist. Ich möchte es ja eigentlich andersherum machen.

Ich möchte eine TMC-Datei erstellen und diese dann in HMI und SPS importieren. Bei der C++ Schnittstelle sollte das ja ähnlich sein.
Da erstellst man deine TMC-Datei mit den Datentypen und Interfaces usw. und dann kann man für C++ den Code daraus generieren lassen, so dass alles für deinen C++ Quellcode zur Verfügung steht. So habe ich es zumindest aus dem InfoSys entnommen.

Aber selbst wenn ich die TMC-Datei vom Projekt exportiere über rechte Maustaste auf "PLC Instance" -> "TMI/TMC-File" -> "Export TMC-FIle" finde ich den Datentyp dennoch nicht.
 
Die TE2000 ist eigentlich im Variablen Handling in Zusammenhang mit einer Beckhoff SPS so komfortable. Läuft halt über ADS wie vor 25 Jahren. Diese Dateihandling nervt mich schon, wenn ich über OPC mit einer Siemens HMI arbeiten muss. Neue Variable angelegt und schon wieder Datei neu zum OPC Server übertragen und restart ... . Ich wäre gar nicht auf die Idee gekommen die TE200 über eine Datei anzubinden :-).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kurzes Update:
Ich habe zu dem Thema auch Beckhoff befragt. Man benötigt eine Instanz des Datentyps in der TMC. Die kann ich im TMC-Editor so aber nicht erstellen. Wenn ich jedoch die Export-Funktion der SPS verwende, dann sehe ich die Variable mit dem richtigen Datentyp. Kann den Datentyp dann aber dennoch nicht auswählen um ihn als Parameter in einem UserControl zu verwenden.

Die TE2000 ist eigentlich im Variablen Handling in Zusammenhang mit einer Beckhoff SPS so komfortable. Läuft halt über ADS wie vor 25 Jahren. Diese Dateihandling nervt mich schon, wenn ich über OPC mit einer Siemens HMI arbeiten muss. Neue Variable angelegt und schon wieder Datei neu zum OPC Server übertragen und restart ... . Ich wäre gar nicht auf die Idee gekommen die TE200 über eine Datei anzubinden :-).
Ich bin ja noch in der Lernphase und möchte die Sachen einzeln auch mit internen Variablen testen ohne unbedingt eine SPS laufen zu haben. Auch um komische Sachen mit Verbindungsproblemen oder vielleicht schiefer Software in der SPS und damit erschwerte Fehlersuche zu vermeiden.

Ich möchte einfach nur die Datentypen der SPS auch in der HMI haben.
 
Zurück
Oben