-> Hier kostenlos registrieren
Hallo Community,
ich wollte mal einen allgemeinen Thread starten, der das Thema Visualisierungen / Aufbau und deren Schnittstellen etwas diskutiert. Ziel ist hierbei ein Austausch von Informationen, wie es in anderen Bereichen so gehandhabt wird, sowie neue Wege/Ansätze in Richtung Übersichtlichkeit/Komfort/Wartung/Aufwand bei Änderungen auszutauschen (vor allem bei größeren Projekten). Die Entwicklungsumgebung spielt hierbei keine Rolle, da es hier nur um die eigentlichen Prinzipien und Möglichkeiten geht.
Die prinzipiellen Punkte könnten hierbei nachfolgende sein:
Bei Einsatz einer Hochsprache, welche wird hierbei verwendet und welche Kommunikationsschnittstelle wird hierbei verwendet?
Baut ihr alle Objekte in einer einzigen Oberfläche auf oder lagert ihr alles in Templates/Frames aus?
Bei variabler Textgestaltung (z.B. bei Buttons), lagert ihr die Texte in Textlisten aus oder statisch in die IN_OUT_Variablen der GUI (oder anders)?
Direkte Zuweisung z.B. Buttonsignal von Variablen aus dem Quellcode? Schnittstelle in einer zentralen GVL auf die beidseitig geschrieben/gelesen wird?
Mapping/Aktualisierung der Variablen in einer einzigen Task/PRG, FB? Oder wird für jede Visualisierungsoberfläche ein eigenes PRG spendiert?
----------------------
Aus meiner Erfahrung bisher, kenn ich aktuell nur folgende zwei Ansätze:
1. Ansatz:
Visualisierungsoberfläche wurde in C# entwickelt, die Kommunikation geschah über Twincat und ADS-Kommunikation (Alternative: OPC UA).
Aufgebaut war die Oberfläche in diversen Frames, die entsprechend über C# gehandelt wurden. Der Variablenzugriff geschah SPS-Seitig über eine zentrale
Schnittstelle als GVL zw. Visualisierung und Backend-SW. Die Variablenaktualisierung geschah ebenfalls in einem zentralen PRG.
Ansatz war für ein kleineres Projekt, zentrale GVL und zentrales PRG ist doch sehr unflexibel für Änderungen und Unübersichtlich, der Implementierungsaufwand
war in diesem Fall jedoch sehr gering.
2. Ansatz
Visualisierungsoberfläche wurde in einer SPS-Entwicklungsumgebung entwickelt. Aufgebaut wurde alles in kleine Module, die entsprechend in Frames ausgelagert wurden. Frames besaßen hierbei diverse IN_OUT_Zugriffsvariablen.
Jedes größere Template für die HMI, besaß ein eigenes PRG, sowie eine eigene Struktur zum Handling der Interaktionen.
Kommunikationsschnittstelle: WebVisu keine direkte Kommunikationsschnittstelle. Kommunikation mit TargetVisu über OPC UA.
Aufwand hoch, jedoch flexibel für Änderungen.
3. Ansatz:
Eine Mischung aus den beiden ersten Ansätzen
-----
Wie handhabt ihr das so?
Gruß,
Biiebs
ich wollte mal einen allgemeinen Thread starten, der das Thema Visualisierungen / Aufbau und deren Schnittstellen etwas diskutiert. Ziel ist hierbei ein Austausch von Informationen, wie es in anderen Bereichen so gehandhabt wird, sowie neue Wege/Ansätze in Richtung Übersichtlichkeit/Komfort/Wartung/Aufwand bei Änderungen auszutauschen (vor allem bei größeren Projekten). Die Entwicklungsumgebung spielt hierbei keine Rolle, da es hier nur um die eigentlichen Prinzipien und Möglichkeiten geht.
Die prinzipiellen Punkte könnten hierbei nachfolgende sein:
- Allgemein
Bei Einsatz einer Hochsprache, welche wird hierbei verwendet und welche Kommunikationsschnittstelle wird hierbei verwendet?
- Oberflächenaufbau:
Baut ihr alle Objekte in einer einzigen Oberfläche auf oder lagert ihr alles in Templates/Frames aus?
Bei variabler Textgestaltung (z.B. bei Buttons), lagert ihr die Texte in Textlisten aus oder statisch in die IN_OUT_Variablen der GUI (oder anders)?
- Schnittstellen:
Direkte Zuweisung z.B. Buttonsignal von Variablen aus dem Quellcode? Schnittstelle in einer zentralen GVL auf die beidseitig geschrieben/gelesen wird?
Mapping/Aktualisierung der Variablen in einer einzigen Task/PRG, FB? Oder wird für jede Visualisierungsoberfläche ein eigenes PRG spendiert?
----------------------
Aus meiner Erfahrung bisher, kenn ich aktuell nur folgende zwei Ansätze:
1. Ansatz:
Visualisierungsoberfläche wurde in C# entwickelt, die Kommunikation geschah über Twincat und ADS-Kommunikation (Alternative: OPC UA).
Aufgebaut war die Oberfläche in diversen Frames, die entsprechend über C# gehandelt wurden. Der Variablenzugriff geschah SPS-Seitig über eine zentrale
Schnittstelle als GVL zw. Visualisierung und Backend-SW. Die Variablenaktualisierung geschah ebenfalls in einem zentralen PRG.
Ansatz war für ein kleineres Projekt, zentrale GVL und zentrales PRG ist doch sehr unflexibel für Änderungen und Unübersichtlich, der Implementierungsaufwand
war in diesem Fall jedoch sehr gering.
2. Ansatz
Visualisierungsoberfläche wurde in einer SPS-Entwicklungsumgebung entwickelt. Aufgebaut wurde alles in kleine Module, die entsprechend in Frames ausgelagert wurden. Frames besaßen hierbei diverse IN_OUT_Zugriffsvariablen.
Jedes größere Template für die HMI, besaß ein eigenes PRG, sowie eine eigene Struktur zum Handling der Interaktionen.
Kommunikationsschnittstelle: WebVisu keine direkte Kommunikationsschnittstelle. Kommunikation mit TargetVisu über OPC UA.
Aufwand hoch, jedoch flexibel für Änderungen.
3. Ansatz:
Eine Mischung aus den beiden ersten Ansätzen
-----
Wie handhabt ihr das so?
Gruß,
Biiebs