# Datenaustausch SPS - Runtime



## Larry Laffer (2 Mai 2008)

Hallo zusammen,
bei meiner letzten Visu habe ich es wohl endlich mal geschafft, die Runtime und deren Kommunikation zur SPS in die Enge zu treiben (Runtime = ProTool , SPS = CPU 317-2DP , Kommunikation via MPI). 
Der Hintergrund ist, dass das Haupt-Statusbild sehr viele animierte Info's enthält und das so nebenher auch noch ein paar Kurven aktualisiert werden und die Produktionsdaten ständig gespeichert werden.

Nun die Frage :
Ist es erfolgversprechend, den Datenaustausch statt über MPI z.B. mit IE oder Profibus zu machen und dabei die Performance zu erhöhen ? Vielleicht hat da ja schon einer mal so ein Problem gehabt und es ähnlich (oder auch ganz anders) gelöst.

Gruß
der Larry


----------



## kermit (2 Mai 2008)

ich hatte da auch mal so ein Ding, wo ich neben vielem Kleinkram auch noch eine Art Trickfilm über eine symbolische Grafikausgabe laufen hatte, die dann anfing, hakelig zu laufen, als dann immer mehr dazu kam. Weiß nicht, ob und was ich damals dagegen getan hab - ist schon rund fünf Jahre her. Aber, da ja MPI=187,5kBaud und DP bis zu 12MBaud, würd ich mal DP versuchen (z.B. bei PG-Status geht es dann wie Feuerwehr). IE eher nicht, da ich durch TCP/IP keinen so hohen Gewinn erwarten würde (aber da hab gerade erst allererste Erfahrung).

Ein Indiz hab ich Dir: neulich hab ich ein Panel extra von MPI auf DP12 umgestellt, um die Übertragung der Projektierung (initial, mit den diversen Extra-Files, Flex2007) zu beschleunigen - da macht die Übertragung danach fast Freude Aber - nur ein reines Bauchgefühl von mir - weil die Visu ja trotzdem auch über DP wohl mit irgend einem langsamen, azyklischen Dienst(protokoll) kommuniziert Teste ich aber nicht - Mach Du mal (ich hab kein PT-Runtime - immer nur Panel, und das auch nicht am langen WE)


----------



## Larry Laffer (2 Mai 2008)

kermit schrieb:


> Ein Indiz hab ich Dir: neulich hab ich ein Panel extra von MPI auf DP12 umgestellt, um die Übertragung der Projektierung (initial, mit den diversen Extra-Files, Flex2007) zu beschleunigen - da macht die Übertragung danach fast Freude Aber - nur ein reines Bauchgefühl von mir - weil die Visu ja trotzdem auch über DP wohl mit irgend einem langsamen, azyklischen Dienst(protokoll) kommuniziert Teste ich aber nicht - Mach Du mal (ich hab kein PT-Runtime - immer nur Panel, und das auch nicht am langen WE)


 
Ist schon OK ...
Es geht mir dabei in erster Linie um Erfahrungen ...
Ich würde mir dann auch ggf. einen seperaten PB-Strang nur für die Visu aufmachen ...


----------



## Ralle (2 Mai 2008)

Für die Visu weiß ich es nicht, wenn ich mich bei einer Vipa Speed7 oder Siemens 319 direkt per Netzwerk an die CPU hänge geht Laden und Vergleichen von Bausteinen ruckzuck.


----------



## Funky (2 Mai 2008)

Hallo Larry Laffer

Bei größeren Projekten arbeite ich nur noch über Ethernet – Kopplung (HMI). Wichtig für die Geschwindigkeit ist es, dass man eine CPU mit Integrierter PN Schnittstelle nimmt. Bei einem CP muss ja die Kommunikation des CP’s auch noch über denn langsamen Rückwandbus. Hier mal eine Auflistung der Kommunikationsleistung von meinen letzten Projekt: 
Kopplung über PN:      2x OP177B  1x PC - Runtime
Kopplung über DP:      2x Wago 750-333 ca.260EA 3x 750-650 RS323C 1x 750-461 NI1000
                                   3x SEW Movidrive Compact 41  je 10-Worte
                                   1x Mitsubishi MR-MG30  28-Worte 
CPU:   S7 317 PN/DP  CP343-2 ASi (Kopplung von 3 ASi-Sicherheitsmonitore)

In den Pulten werden mit einen Zyklus von 200ms ca. 40 Worte gelesen. (Triggervariabeln von Fehlerworten, 5 Kurvenschreiber usw.)
In der PC – Runtime sind zusätzlich zu den 40 Worten, wie in OP177, ca. 90 Real-Zahlen und 10 Zeichenketten von einer Länge von 12 Stellen zu lesen. Die Real-Zahlen sowie die Zeichenketten werden mithilfe der Aktualisierungskennung innerhalb von 400ms gelesen und an eine SQL-Datenbank geschrieben. Die Zykluszeit der CPU beträgt ca.4-5ms. Die Kommunikationsbelastung in der CPU steht auf 20%. 
Ich hoffe mit diesen angaben kannst du dir ein Bild von der möglichen  Kommunikationsleistung machen.


----------



## Larry Laffer (3 Mai 2008)

... ich glaube, ich präzisiere das mal ein bißchen ...

Meine RunTime hat aktuell ca. 800 Powertags - das ist eigentlich nicht viel ...
Die Anlage produziert im 3-Sekunden-Takt ein neues Teil, von dem die Messdaten, die die SPS erfasst hat, abgespeichert werden. Dazu gehört auch die Kraft-Weg-Messung einer Feder mit ca. 150 Werte-Paaren (Typ INT).
Weiterhin läuft noch 2 Trend-Erfassungen mit (nicht in der Visu sondern in der SPS, da aus den Werten eine Tendenz berechnet wird, die zu eigenständigen Alarmen führen kann). Diese Kurve wird zwar nicht kontinuierlich an die Visu übertragen, schon aber wenn man auf der entsprechenden Anzeigeseite ist.

In diesem Konstruct kann es zu Spitzen kommen, die die Visu Sekundenlang totlegen können. Für mich ist hier das Nadelöhr die MPI-Verbindung - an der Datenmenge kann und will ich nichts machen ...

In diesem Zusammenhang ist in der Visu für mich nutzbar : Onboard-Ethernet und eine CP5611 mit der ich MPI mache, aber auch DP machen kann ...

Gruß
LL


----------



## rostiger Nagel (3 Mai 2008)

Hallo Larry,
ich denke deine Anwendung ist bestimmt nicht die kleinste. Wenn wir etwas anspruchsvollere Anwendungen hatten die schnell gehen sollten auch bei der Visualisierung sind wir auf PC Technik umgestiegen. Selbst bei kleinen PC (Siemens Panel PC 477 mit RTX / Flexible) sind wir wesentlich schneller als eine Standard CPU 317. Die Komunikation RTX -> Flexible läuft über den internen Bus und ist wirklich sehr schnell, das hält den PB Strang frei.


----------



## Larry Laffer (3 Juni 2008)

So,
an der Sache habe ich jetzt noch mal ein bißchen herumgebastelt.

Mein Versuch war, den Panel-PC an den Profibus (mit 12 MBit) zu hängen. Klappte toll - brachte gar nichts. Nett war, hier zu sehen, dass der 12 MBit Profibus (mit einer eigenen Schicht für die B & B-Dienste) nicht annähernd die Leistung im Datenaustausch brachte, wie der 187,5 kBit (schwache) MPI. Ich bin jetzt wieder auf MPI, habe aber meine Scripte extrem überarbeitet um ein brauchbares Lauf-Verhalten der Visu auch weiterhin gewährleisten zu können.

Was ich auch ausprobiert habe war der ominöse FC625 von Siemens - war schon mal ein Thema in einem anderen Thread. Der brachte gar nichts, war aber vielleicht auch für diese Angelegenheit nicht gedacht. Auch das Umstellen der Resourcen für den Daten-Austausch in der CPU-HW-Konfig hat m.E. nichts gebracht.

Nett war auch, dass auch Super-WinCC-Flex 2007 hier NICHTS besser hinbekommt wie ProTool.

OK, das eigentlich nur zur Vervollständigung dieses Beitrages ...


----------



## xhasx (3 Juni 2008)

Hallo.

Hab ne WinAc Rtx und Wcf zusammen auf nem BoxPc 627B. Seit dem Dual Core flutscht die Sache... Kommt echt drauf an wieviele Tags permanent aufgefrischt werden und was die Rtx Windoof noch übrig lässt.


----------



## HeizDuese (3 Juni 2008)

Kann nicht sogar MPI bei dieser CPU 12 Mbit?

Einen echten, spürbaren Geschwindigkeitsvorteil bekommt man aber eh nur, wenn die zu lesenden / schreibenden Daten einigermaßen zusammenhägend gelesen / geschrieben werden. Ich hab's mal mit Rezepturdaten (mehrere kb je Transfer* je ein *DB) gemacht - der Unterschied war sehr wohl spürbar und schneller als mit CP (wie schon beschrieben: Flaschenhals Rückwandbus).


----------



## Larry Laffer (4 Juni 2008)

HeizDuese schrieb:


> Kann nicht sogar MPI bei dieser CPU 12 Mbit?


 
Das habe ich durch Zufall auch mal zwischendurch angewählt gehabt. In der Konsequenz ist der MPI dann nicht mehr ansprechbar. Ich hatte das aber zunächst für meinen Fehler gehalten - so gesehen also gut, dass du das hier ansprichst. Dann werde ich doch mal parallel die Hotline dazu befragen ...


----------



## Larry Laffer (4 Juni 2008)

xhasx schrieb:


> Hallo.
> 
> Hab ne WinAc Rtx und Wcf zusammen auf nem BoxPc 627B. Seit dem Dual Core flutscht die Sache... Kommt echt drauf an wieviele Tags permanent aufgefrischt werden und was die Rtx Windoof noch übrig lässt.


 
Die Rechner-Leistung spielt bei der Angelegenheit (nach meinen Erkenntnissen) eine untergeordnete Rolle. Das Betriebssystem schon eher. Mit Win2000 beispielsweise läuft die Sache sicherer aber auch langsamer. Hier ist interessant zu beobachten, dass zu aktualisierende Variablen unterschiedlich gepollt werden. Das macht WinXP interessanterweise nicht. Hier kann es einem dann nur passieren, dass eine zeitlang gar nichts passiert.
Dieses Thema wäre aber für die Siemens-Hotline sicherlich eine Nummer zu hoch ...

Gruß
LL


----------



## xhasx (4 Juni 2008)

@Larray

Du kannst gerne vorbeikommen und dich davon überzeugen!!!
Hab ich beide Rechner mit identischer Software drauf 627 und 627B. Das "B" macht die Musik (Dual Core).
Bei der B Version muss ich interne Skripte die mit externen Variablen arbeiten mit ner Schleife "schlafen legen" damit es nicht zur Variablenüberlast kommt. Auch interne Skripte werden mit dem Faktor 50 schneller abgearbeitet. Ist ja auch logisch - arbeitet beim 627 RTX und Wcf auf einem Core hat beim 627B jede Anwendung ihren eigenen Core.

Gruß


----------



## Larry Laffer (4 Juni 2008)

@xhasx:
Heh , heh , heh ...
Ist schon OK, Vielleicht habe ich mich da falsch ausgedrückt ...
Die Rechner, die ich im Augenblick so am Start habe sind nicht gerade Schlafmützen ... und Dual-Core haben die, die ich vergleiche alle. Ich habe allerdings nicht unbedingt den Eindruck, dass das vom System genutzt wird ...

Aber ...





> Bei der B Version muss ich interne Skripte die mit externen Variablen arbeiten mit ner Schleife "schlafen legen" damit es nicht zur Variablenüberlast kommt.


Variablen- und Scripte-Überlast ist genau mein Thema ... Schreib mir doch mal mehr zu dem, was du da machst ...

Gruß
LL


----------



## xhasx (4 Juni 2008)

Schildre mir dein Problem...
Oder Ruf mich mal an - Pn dann bekommst du meine Nummer.


----------



## Larry Laffer (4 Juni 2008)

Telefon können wir machen, aber ich kann mir auch vorstellen, dass dieses Thema irgendwann auch für Andere interessant ist - zumal es anscheinend von der verwendeten Visu relativ unabhängig ist.

Also konkret:
Wie verhinderst du eine Überlast ?


----------



## xhasx (4 Juni 2008)

Vorab. Ich übertrage meine Rezepturdaten an die Steuerung per Skript. Der Vorteil - ich kann auswählen in welchen Db die Daten geschoben werden und zu welchem Zeitpunkt...
Das heißt ich muss meine "Internen Variablen" (ca. 3700 Werte) den "Externen Zuweisen"... Ich hab auch Array's mit bis zu 500 Reals drin die dann Indiziert in ner Schleife zugewiesen werden. Wfc überträgt dann aber bei nem Array immer alles und nicht nur den Index! Hab da auch schon nen SR bei Siemens aufgemacht... Ist eben so. Ein "Internes Array" auf ein "Externes Array" zweisen geht eben nicht direkt sondern nur indiziert. Bei der Zuweisung kommt es dann eben zur Überlast. Zu erkennen wann es soweit ist gibt es laut Siemens nicht.

An den Stellen im Skript wo es kritisch wird (ausprobieren - das Skript meldet ja die Stelle wo es nicht mehr mag) Einfach ne FOR NEXT Schleife platzieren die nichts macht. Wie hoch der Schleifenendwert ist hab ich als Eingabewert gemacht. Hängt eben vom PC ab!!!


----------



## Larry Laffer (4 Juni 2008)

Diesen Fall habe ich so nicht ...
Bei mir kam es zu einer Überlast (hin und wieder) beim Abspeichern der Produktionsdaten. Hierbei habe ich per Handshake zur SPS sichergestellt, dass kein neuer Datensatz kommen kann, während der letzte noch in Bearbeitung ist. Angestossen wird das Script von einer Wert-Änderung eines DW's, das ich bei jedem neuen Datensatz um 1 inkrementiere. Diese DW wird ständig gelesen. Hier ist ganz nett zu beobachten, dass dieses DW trotz hohem Aktualisierungs-Intervall manchmal erst nach Sekunden gelesen wird (Vergleich SPS-Status und Anzeige des DW in der Visu).
Das hat sich jetzt verbessert, wo ich wieder auf MPI und WinXP bin, aber auftauchen tut das Problem immer noch sporadisch ...

An dieser Stelle war dein Ansatz mit dem "schlafen legen" interessant. Ich sehe da im Augenblick aber noch keine Realisierungs-Möglichkeit für mich ...


----------



## xhasx (4 Juni 2008)

Kein Problem - ich wollte nur helfen


----------



## Larry Laffer (4 Juni 2008)

nee - nee,
jetzt nicht aufgeben ... so solltest du das nicht verstehen ...
In der Sache besteht bei mir ja immer noch eine Vakanz ...


----------



## xhasx (4 Juni 2008)

Tu ich nicht!

Hier nochmal was für die Freunde von Wcf!!!

Ich hatte letzte Woche Besuch von "Promotor für Bedien- und Beobachtungssystem" aus Augsburg. Der hat von mir eine Liste bekommen was in Wcf ich sag mal nicht so toll ist. Ich hab die Liste auf die PC Runtime bezogen! Waren so drei Seiten. Ich hab die Punkte mit denen die im Forum standen abgeglichen!
Er hat mir auch in Aussicht gestellt mal bei nem "Siemensinternen Treffen" dabei zu sein. Anscheinend geht Siemens jetzt doch mehr auf Kundenwünsche ein.

In Wcf2008 (soll ja demnächst kommen den Sp1 Termin haben sie auch schon!!!) gibt's zwei Neuerungen die nicht ganz schlecht sind. Das leidige Thema mit der Benutzerverwaltung... Wer darf was anlegen... Hier ist back to the roots angesagt. So wie bei ProoTool kann gibt's Paralell wieder die Levels!
Zum Anderen Listenfelder und deren Einträge. Hier kann man jetzt frei wählbare Strings zuweisen. Na immerhin etwas oder?`

Groß von der Hmi Front


----------

