Sonstiges suche Panel mit Vollgrafik

Senator42

Level-1
Beiträge
927
Reaktionspunkte
80
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
habe eine Anfrage bekommen mit der man selbst erstellte (z.b. von einem CAD) Objekte erstellen kann die in der Visu animiert werden können.
Animiert wie z.b. färben, bewegen.

Mit welchen Systemen kann man das überhaupt nicht, mit welchen geht das.
Oder muss man so etwas selbst programmieren z.b. C#.

Gibt es bereits Erfahrungen?

Achja, die Anbindung ist S7 300, 400 und leider auch TIA.
 
Mit Einzelbildern als jpg oder png des Objekts, könntest du diese übereinanderlegen, einfärben, und dann einzelne Teile davon bei Bedarf sichtbar / unsichtbar schalten. Es hängt dann vom 3D-Objekt selber ab, ob das dann noch gut aussieht.
Zur Darstellung könntest du einen normalen Webbrowser verwenden, und dann über etwas Javascript die Bilder ein-/ausblenden oder transparent gestalten.

Überhaupt lässt sich in einem Webbrowser mit Javascript sehr viel erledigen. Wenn du die Komponenten als svg hättest, dann lässt sich mit Javascript direkt die svg modifizieren.

Nächster Schritt vollen 3D-Darstellung im Webbrowser wäre dann three.js. Da es WebGL verwendet benötigt es aber einen Rechner mit einer zumindest halbwegs anständigen Grafikkarte, ein Siemens HMI dürfte dafür untauglich sein. Dann benötigst du von der Konstruktion stl Dateien der Einzelkomponenten, und kannst diese via STLLoader mit three.js laden und im Browser darstellen, bei Bedarf Teile einfärben, bewegen, mit der Maus rotieren lassen usw.
 
Ich habe da mal eine kleine Demo mit three.js gebastelt, bei dem Teile eines Kuka-Roboterarms rot eingefärbt werden. Anstelle über Drücken der Buttons könnten die Daten z.B. über eine Textdatei gelesen werden die von der SPS beschrieben wird. Da gibt aber diverse Möglichkeiten das zu realisieren.

https://youtu.be/TLYo6OWtJP0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es soll ein Fließbild dargestellt werden.
Die Objekte sollen , wenn möglich , aus einer CAD-Zeichnung extrahiert bzw. exportiert werden.
Die Objekte in der Visu dann mit Farben, Bewegungen den Anlagenzustand darstellen.
Kein PC mit SCADA, sondern Panels.
 
Ich würde es auch da mal mit einer svg Datei versuchen. So etwas wie Pumpen oder Ventile einfärben lässt sich damit auch realisieren, aber wiederum nur im Webbrowser wenn du das svg direkt modifizieren kannst und es dann auch aktualisiert angezeigt wird.

Bei einer umfangreichen Zeichnung könnte das aber etwas unübersichtlich werden. Visio-Zeichnungen lassen sich beispielsweise auch als svg exportieren, das Format ist schon etwas aufgebläht je nach dem welche Zeichnungsobjekte in Visio verwendet wurden.

Ich persönlich male die Fließschemen mit meinen eigenen Objekten nach und vereinfache es etwas, da auch nicht unbedingt alle Objekte aus dem Schema in einer Übersicht wichtig sind. Das eigentliche Fließschema ist dann über ein PDF bei Bedarf trotzdem in der Visu anzeigbar, bei den Siemens Panels ist das ja möglich, wenn auch bei großen PDFs etwas träge in der Darstellung.
 
Es soll ein Fließbild dargestellt werden.
Die Objekte sollen , wenn möglich , aus einer CAD-Zeichnung extrahiert bzw. exportiert werden.
Die Objekte in der Visu dann mit Farben, Bewegungen den Anlagenzustand darstellen.
Kein PC mit SCADA, sondern Panels.

Mit Fließbilder meist du Pumpen, Ventile, Rohre, Tanks ...
Sowas geht meist noch einigermassen einfach.
Mit dem Konstrukteur ans CAD sitzen und die entsprechenden Anlagenteile einzeln als SVG / PNG exportieren.
Zustände dann mit nen Bildbearbeitungsprogramm (Paint.net / Inkscape, Gimp, ...) erzeugen.
Die einzelnen Bilder der Elemente in nen Bildbaustein packen und die Gesamtanlage aus den Bildbausteinen zusammenbauen.
Ist zwar Gefummel, aber mit etwas Übung geht das.

Direkt aus dem CAD heraus eine entsprechende Visu zu erstellen, wird wohl auf keinem Panel funktionieren.
Da braucht es dann einen PC mit richtig Power.

Gruß
Blockmove
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit dem Konstrukteur ans CAD sitzen und die entsprechenden Anlagenteile einzeln als SVG / PNG exportieren.
Zustände dann mit nen Bildbearbeitungsprogramm (Paint.net / Inkscape, Gimp, ...) erzeugen.
Die einzelnen Bilder der Elemente in nen Bildbaustein packen und die Gesamtanlage aus den Bildbausteinen zusammenbauen.
Ist zwar Gefummel, aber mit etwas Übung geht das.

Direkt aus dem CAD heraus eine entsprechende Visu zu erstellen, wird wohl auf keinem Panel funktionieren.
Da braucht es dann einen PC mit richtig Power.

Das ist auch der völlig falsche Ansatz.

Eine SVG-Datei besteht aus Objekten, und wenn du ein SVG in ein z.B. in einer html-Seite anzeigst, dann kannst du über Javascript die Objekteigenschaften wie fill oder stroke direkt manipulieren.
Wenn aus der CAD-Abteilung eine SVG Datei erzeugt wird, in der alle Objekte wie Pumpen und Ventile eine eindeutige Kennung besitzen, dann schreibst du einmal eine Javascript Funktion welche die Objekte anhand der Objekt-ID animiert. Dann kann die CAD-Abteilung die Zeichnung ändern (z.B. Rohrleitung verschieben), generiert dir ein neues SVG in der sich natürlich die bestehenden IDs nicht ändern dürfen, und alles funktioniert direkt ohne Anpassungen.

Wenn du bei Visio eine SVG Datei exportierst, dann besitzen die Objekte leider eine automatisch generierte ID (z.B. shape1-1) die du in Visio selber aber nicht eingeben kannst. Aber das Problem lässt sich dann ja an die CAD-Leute auslagern, die müssen dafür sorgen die eine automatisiert verarbeitbare SVG zu liefern. Vielleicht machen andere Konstruktionsprogramme wie Autocad das auch besser.

Dazu ist auch überhaupt kein PC mit richtig Power notwendig. Das baue ich dir für den Webserver der S7-1200 zusammen, die Arbeit wird nämlich auf den Client in den Webbrowser ausgelagert. Die notwendige Rechenleistung dafür ist aber minimal.
 
Mit Fließbilder meist du Pumpen, Ventile, Rohre, Tanks ...
Sowas geht meist noch einigermassen einfach.
Mit dem Konstrukteur ans CAD sitzen und die entsprechenden Anlagenteile einzeln als SVG / PNG exportieren.
Zustände dann mit nen Bildbearbeitungsprogramm (Paint.net / Inkscape, Gimp, ...) erzeugen.
Die einzelnen Bilder der Elemente in nen Bildbaustein packen und die Gesamtanlage aus den Bildbausteinen zusammenbauen.
Ist zwar Gefummel, aber mit etwas Übung geht das.

Mache ich auch in etwas so, wenn benötigt, obwohl ich wesentlich mehr schematisiere. Es muß nicht wie das Original aussehen, aber man muß erkennen, was dort angezeigt werden soll.
Und es muß sich auch nicht alles bewegen oder verfärben, manchmal reicht eine LED an der entsprechenden Stelle.

Direkt aus dem CAD heraus eine entsprechende Visu zu erstellen, wird wohl auf keinem Panel funktionieren.
Da braucht es dann einen PC mit richtig Power.

Das wäre dann mal wirkliches I4.0 und das überlassen wir doch lieber der übernächsten Generation, denn vorher ist das alles nur Rumgeschwafel von Marketingfuzzis.
 
Das ist auch der völlig falsche Ansatz.

Eine SVG-Datei besteht aus Objekten, und wenn du ein SVG in ein z.B. in einer html-Seite anzeigst, dann kannst du über Javascript die Objekteigenschaften wie fill oder stroke direkt manipulieren.
Wenn aus der CAD-Abteilung eine SVG Datei erzeugt wird, in der alle Objekte wie Pumpen und Ventile eine eindeutige Kennung besitzen, dann schreibst du einmal eine Javascript Funktion welche die Objekte anhand der Objekt-ID animiert. Dann kann die CAD-Abteilung die Zeichnung ändern (z.B. Rohrleitung verschieben), generiert dir ein neues SVG in der sich natürlich die bestehenden IDs nicht ändern dürfen, und alles funktioniert direkt ohne Anpassungen.

Wenn du bei Visio eine SVG Datei exportierst, dann besitzen die Objekte leider eine automatisch generierte ID (z.B. shape1-1) die du in Visio selber aber nicht eingeben kannst. Aber das Problem lässt sich dann ja an die CAD-Leute auslagern, die müssen dafür sorgen die eine automatisiert verarbeitbare SVG zu liefern. Vielleicht machen andere Konstruktionsprogramme wie Autocad das auch besser.

Dazu ist auch überhaupt kein PC mit richtig Power notwendig. Das baue ich dir für den Webserver der S7-1200 zusammen, die Arbeit wird nämlich auf den Client in den Webbrowser ausgelagert. Die notwendige Rechenleistung dafür ist aber minimal.

Ich schätze, dann jagen uns aber unsere CAD-Leute ein wenig durch die Halle, wenn sie das auch noch machen dürfen. ;-)

PS: Wie färbst du dann mit Java-Script mal eben einen Motor grün, wenn der läuft oder rot, wenn er in Störung geht? Ist das wirklich so einfach oder müssen die CAD-Leute dann auch noch die Objekte korrekt anlegen, so dass so etwas überhaupt möglich ist?

PS2: Manchmal hab ich den Endruck, es ist nicht so wichtig,m dass eine Maschine gut funktioniert, sie muß nur richtig schön anzeigen, dass sie es nciht tut! ;-) Das geht jetzt nicht gegen dich Thomas, sondern eher gegen machmal extremen Design-Aufwand in Visualisierungen. Da gehen zum Schluß die wichtigen Infos komplett unter. Bei Serienmachinen würde ich da auch mehr Aufwand reinstecken, aber bei Sondermaschinen wird der Aufwand schnell extrem hoch, hab ich zumindest gemerkt.

PS3: Wenn ich mir die üblichen Siemens-Panels so anschaue, die sind schon extrem schwachbrüstig, da müssen schon die teureren großen Geräte her, auch wenn nicht soooo viel Power benötigt wird.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
PS: Wie färbst du dann mit Java-Script mal eben einen Motor grün, wenn der läuft oder rot, wenn er in Störung geht? Ist das wirklich so einfach oder müssen die CAD-Leute dann auch noch die Objekte korrekt anlegen, so dass so etwas überhaupt möglich ist?

Die lädst die SVG-Datei ins DOM:
<object class="svgClass" type="image/svg+xml" data="Zeichnung.svg"></object>

Dann kannst du mit Javascript einzelne Elemente daraus modifizieren, wie:
document.querySelector(".svgClass").getSVGDocument().getElementById("Pumpe_A1").setAttribute("fill", "red")

Die Variablenwerte liefert dir dann z.B. der Webserver der SPS im json-Format, und anhand der Daten werden dann zyklisch z.B. jede Sekunde die Attribute gesetzt.
 
Das ist auch der völlig falsche Ansatz.

Eine SVG-Datei besteht aus Objekten, und wenn du ein SVG in ein z.B. in einer html-Seite anzeigst, dann kannst du über Javascript die Objekteigenschaften wie fill oder stroke direkt manipulieren.
Wenn aus der CAD-Abteilung eine SVG Datei erzeugt wird, in der alle Objekte wie Pumpen und Ventile eine eindeutige Kennung besitzen, dann schreibst du einmal eine Javascript Funktion welche die Objekte anhand der Objekt-ID animiert. Dann kann die CAD-Abteilung die Zeichnung ändern (z.B. Rohrleitung verschieben), generiert dir ein neues SVG in der sich natürlich die bestehenden IDs nicht ändern dürfen, und alles funktioniert direkt ohne Anpassungen.

Wenn du bei Visio eine SVG Datei exportierst, dann besitzen die Objekte leider eine automatisch generierte ID (z.B. shape1-1) die du in Visio selber aber nicht eingeben kannst. Aber das Problem lässt sich dann ja an die CAD-Leute auslagern, die müssen dafür sorgen die eine automatisiert verarbeitbare SVG zu liefern. Vielleicht machen andere Konstruktionsprogramme wie Autocad das auch besser.

Dazu ist auch überhaupt kein PC mit richtig Power notwendig. Das baue ich dir für den Webserver der S7-1200 zusammen, die Arbeit wird nämlich auf den Client in den Webbrowser ausgelagert. Die notwendige Rechenleistung dafür ist aber minimal.

Natürlich ist der Ansatz vom Prinzip her falsch :)
Aber er lässt sich ohne tiefgreifende Kenntnisse umsetzen und auf "normalen" Panels darstellen.

Ich hab mich einmal mit Siemens NX und SVG beschäftigt :-(

Gruß
Blockmove
 
Solange das normale Panel einen Webbrowser mit Javascript besitzt, dann lässt sich das damit realisieren. Kleine Demo im Anhang, die svg-Datei ist aus Visio heraus erzeugt. Die html Datei kann lokal im Browser geöffnet werden und mit den Buttons oben lassen sich die Farben der Elemente anpassen.

Siemens denkt in vielen Dingen immer viel zu kompliziert. Meiner Meinung nach wird da auch vieles mit Absicht kompliziert gemacht, damit man dann wieder Extra-Software dafür verkaufen kann.
 

Anhänge

  • demo1.zip
    5,1 KB · Aufrufe: 27
Zuviel Werbung?
-> Hier kostenlos registrieren
Solange das normale Panel einen Webbrowser mit Javascript besitzt, dann lässt sich das damit realisieren. Kleine Demo im Anhang, die svg-Datei ist aus Visio heraus erzeugt. Die html Datei kann lokal im Browser geöffnet werden und mit den Buttons oben lassen sich die Farben der Elemente anpassen.

Siemens denkt in vielen Dingen immer viel zu kompliziert. Meiner Meinung nach wird da auch vieles mit Absicht kompliziert gemacht, damit man dann wieder Extra-Software dafür verkaufen kann.

Hallo Thomas,
danke für das Beispiel. :p
Es zeigt wirklich schön, was mit JS und SVG möglich ist.

Allerdings sind SVGs aus einem 3D-CAD selten nur 25kB groß.
Ich hab jetzt keine Erfahrung mit Fließbildern aus dem CAD.
Aber vermutlich werden da die Elemente auch fotorealistisch dargestellt.
Ich hab damals bei einer einfachen Vorrichtung mit ein paar pneumatischen Bewegungen resigniert.

Gruß
Blockmove
 
Die R&I Fließschemata die ich bisher Verfügung gestellt bekommen habe, sind alle in 2D. Das gibt der ISO-Standard auch nicht anders her.

Für 3D ist svg auch nicht besonders gut geeignet. Die Dreidimensionalität kannst du mit einem svg nur simulieren, indem du quasi einen Schnappschuss der aktuellen Darstellung als svg exportierst.
Aber wie ich oben gezeigt habe, geht das mit three.js ebenfalls im Webbrowser. Du musst dein komplettes Objekt aber vorher in einzelne Polygonnetze (Meshes) zerlegen, die du später separat modifizieren willst, wie Material ändern oder bewegen. Und die Dateien werden dann leider richtig groß, weil sich eine Kugel je nach gewünschter Rundheit dann aus mehr oder weniger vielen Polygonen zusammensetzt.
Die Meshes aus dem Kuka-Roboter Video von mir oben sind in Summe ca. 40 MByte groß, und das sind nur 6 Elemente. Für große Animationen musst du darum dafür sorgen die Polygonanzahl zu reduzieren, andernfalls brauchst du wirklich einen PC mit Gaming-Grafikkarte.
 
Ah immerhin, auf dem Firefox (Mac) bekomm ich das zum laufen, sonst nirgends, auch nicht im ie Win7, da wird die SVG nicht angezeigt. Gibt es hier was zu beachten?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei mir (win XP) geht es
mit FF,
mit Chrome keine Reaktion auf die Buttons,
mit IE kommt nur eine Fehlermeldung: "es liegt ein Fehler vor" toll.
 
Zuletzt bearbeitet:
Die korrigierte Version im Anhang. Aber was ich gelesen habe liegt es bei anderen Browsern vermutlich daran, dass wenn eine html-Datei nicht von einem Webserver sondern vom lokalen Dateisystem gestartet wird, andere Sicherheitsregeln gelten. Der IE meint dann auch er müsse Active-X aktivieren, obwohl ein SVG damit überhaupt nicht zu tun hat. Da gibt es einen ellenlangen Artikel von Microsoft wie das alles zusammenhängt, vermutlich ist es bei Apple aber ähnlich. Das ist aber auch nur ein Beispiel und kein fertiges Projekt.
 

Anhänge

  • demo1.zip
    5,1 KB · Aufrufe: 13
Zurück
Oben