¿Konsistenzbereiche im Prozessabbild?

o.bartz

Level-1
Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
¿Was sind Konsistenzbereiche im Prozessabbild?

Hallo Welt,

wie in einem anderen Thread beschrieben, schreibe ich ein kleines Programm, was nach der Siemens "Operationsliste S7-400" und der im Handbuch "Automatisierungssystem S7-400 CPU-Daten" beschriebenen Vorgehensweise die ungefaehre Zyklus- und Reaktionszeit eines Anwenderprogramms berechnen soll.

(Ich habe das betreffende Dokument "Automatisierungssystem S7-400 CPU-Daten" als Attachment beigefuegt.)

Da muss man mithilfe einer Tabelle die Zeit fuer die Prozessabbildaktualisierung berechnen, unter anderem den

Anteil konsistente Daten im Prozessabbild für die integrierte DP-Schnittstelle
(aus: Siemens: Automatisierungssystem S7-400 CPU-Daten, Tabelle 5-3: "Anteile der Prozessabbild-Transferzeit")


Der wird (je nach CPU) berechnet mit

k * 40 microsek. + n * 0,5 microsek
(aus: Siemens: Automatisierungssystem S7-400 CPU-Daten, Tabelle 5-3: "Anteile der Prozessabbild-Transferzeit")

Als Erklaerung steht unter der Tabelle fuer k (= Konsistenzbereiche im Prozessabbild):

Die in HW-Konfig eingestellten Bereiche, die auf einmal-und somit konsistent-auf die Peripherie bzw. von der Peripherie gelesen werden.
(aus: Siemens: Automatisierungssystem S7-400 CPU-Daten, unter Tabelle 5-3: "Anteile der Prozessabbild-Transferzeit")

Kann mir jemand erlaeutern, wie ich das errechnen oder ablesen kann?

Auch die Erklaerung fuer das in der Tabelle verwendete
n = Anzahl Bytes im Prozessabbild
(aus: Siemens: Automatisierungssystem S7-400 CPU-Daten, unter Tabelle 5-3: "Anteile der Prozessabbild-Transferzeit")

leuchtet mir nicht ganz ein.

Kann mir das jemand genauer erklaeren? Mein STEP 7 hier ist in Spanisch, da heisst alles anders und ich kann da nichts finden, was mir weiterhilft...

Vielen Dank!
 

Anhänge

  • s7400_cpu_daten_114.pdf
    774,9 KB · Aufrufe: 11
Die grösse des Prozessabbilds der S7-400 ist einstellbar. Ferner unsterstützen diese auch Teilprozessabbilder.

Die Einbeziehung solcher Firmwarespezifischen Laufzeiten sind mit gewöhnliche Anweder(kenntnisse) kaum nachvollziehbar bzw. ermittelbar.
Dann müsstes du dich auch mit ganz anderen Themen beschäftigen, da z.b. alle Kommunikationsfunktion real asyncrhon zum Anwenderprogramm laufen.

Du solltest dich daher auf das Anwederprogramm beschränken und für die Firmware den Worst-case annhemen (+1 Zykluszeit).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich soll also zu der Zykluszeit, die ich gar nicht berechnen kann, weil sie von firmawarespezifischen Daten abhaengt, aus eben diesem Grund einfach einmal die Zykluszeit hinzuaddieren (die ich ja gar nicht berechnen kann)?

Siemens beschreibt ja in der Methode zur Berechnung der Zykluszeit ja eben, dass man dafuer die Anzahl der Konsistenzbereiche des Prozessabbildes wissen muss. Wo kann ich denn das ablesen? Siemens gibt sich ja viel Muehe, Sachen so zu beschreiben, dass man sie missdeuten kann.

Aber die Groesse des Prozessabbildes habe ich jetzt tatsaechlich gefunden. Soweit also schonmal vielen Dank.
 
Da hast du mich falsch vertsanden.

Sicherlich kannst du die Zykluszeit mit gewisser Genauigkeit ermitteln (Auflösung: Millisekunden).
Du solltest dein Augenmerk aber hauptsächlich auf das Anwenderprogramm legen.

Für die Zeitmessung ist ein realer Test unabdingbar (also nicht die AWL+SFC Zeiten aus dem Handbuch addieren).
Dann solltest du die verschiedenen Szenarien durchspielen und die Zeit dabei messen.

Da dir nur eine Milliskenunden-Auflösung zur Verfügung steht solltest du dieses enstprechend oft wiederholen.
Vorsicht, damit du keinen Cache-Hit bekommst (wäre der Fall wenn du einfach nur Schleife machst) solltest du nach deinem Code ensprechend viele Dummy-Bausteine
(Code, keine wiederholende Sequenzen), am besten pauschal >100kB. Dieses hängst du zusammen in die Schleife.
Dann testest du das ganze ohne deinen Code und ziehst die Zeiten ab.
Dann hast du nahezu die gewünschte Reaktionszeit.
Diese weicht je nach CPU Typ/Generation natürlich ab(solltest ensprechend CPU Typ und Firmware festhalten).
 
Warum Programm zur Berechnung der Zykluszeit?

Hallo Gast,

okay, danke. Jetzt verstehe ich, wie Du das meintest.

Mein Problem ist allerdings, dass sich fuer mich (im Rahmen meiner Arbeit) keine Moeglichkeit ergeben wird, die tatsaechliche Zykluszeit zu ermitteln. Die SPS wird ja erst unter anderem anhand der Ergebnisse meiner Arbeit zusammengestellt werden. Die einzige vergleichbare Anlage mit aehnlicher Hardware, an der ich was austesten koennte, steht in Shanghai und ist auch schon in Betrieb. Ich wuerde zwar gerne mal nach Shanghai, aber ich koennte denen ja nicht sagen, die Anlage muss mal fuer eine Woche stillstehen weil der Student mal was austesten will.

(Hier mal den Link zu dem Thread zu meiner Aufgabenstellung: http://www.sps-forum.de/phpBB2/viewtopic.php?t=5326&highlight=)

Mein Problem (und der Grund warum ich das Programmschreiben will) ist weniger, dass ich damit tatsaechlich Zykluszeiten errechnen will. Ich will das Programm lediglich benutzen, um meine Vorschlage, was ich an Hard- und Software aendern wuerde, mit Zahlen zu untermauern, die nicht auf vermutungen und annahmen, sondern auf (wenigsten scheinbar) sinnvollen Berechnungen basieren.

Ich studiere halt an einer Uni, die haben einen "wissenschaftlichen" Anspruch. Da kann ich nicht einfach schreiben, "wir kaufen die und die Hardware, weil ich glaube, dass das dann klappt". Da muss eine Begruendung her.

Diese Begruendung soll mir das Programm liefern, indem es die Zykluszeit ausrechnet und die Veraenderung der Zykluszeit, wenn ich z.B. einen CONST_C FB 41 in einem OB35 alle 3 ms aufrufe oder so.

Selbst wenn die absolute Zykluszeit voellig an der Realitaet vorbei geht, besitzt die relative Veraenderung durch die OB-Einschachtelung sicher eine gewisse Aussagekraft.

Ich mache mir also ueberhaupt keine Sorgen, dass die Steel Processing Line, die durch die zusammenzustellende SPS mal kontrolliert werden wird, nicht klappt.

Ich mache mir nur Sorgen, dass ich nicht schluessig werde belegen koennen, warum die Regelung in der ersten Anlage nicht geklappt hat und die in der neuen klappen wird.

Es geht weniger um realistische errechnete Zykluszeiten, als darum, dass sie nuetzlich fuer mich sind.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da dich nur der relative Unterschied der CPUs interresiert kannst du die Firmwarespezifischen Ausführungszeiten der CPU (z.b. bzgl. OB Aufruf)innehralb einer Serie z.b. Firmware V4.0 ausser acht lassen, da diese nahezu identisch sind.

Dann dürfte dir die Operationsliste der S7-400 genügen, indem alle AWL, SFC und SFB Laufzeiten für die verschiedenen CPUs aufgelistet sind.

Als Basis für einen möglichen Unterschied hast du ja die Ergebnisse der real existierenden Anlage und der Zufridenheit bzgl. aktueller Ergebnisse.

Sofern ein Baustein geschützt ist und du den Code nicht direkt einsehen kannst, hift dir nur nachmessen in einer CPU (+ math.Schätzung für Ziel CPU) oder eins der Tools im Umlauf welchen den Code einsehbar machen und nachrechnen.
Da die Bausteine aber verschiedenen Abbruchbedingungen enthalten ist ein trockenes nachrechnen nicht gerade einfach.
 
Konsistenzbereich

Hallo Gast,

vielen Dank erstmal fuer die Vorschlaege.

Meine Frage, wo ich Angaben zu den Konsistenzbereichen des Prozessabbildes finde, um die Prozessabbildtransferzeit zu berechnen, scheint mir damit aber noch immer nicht beantwortet.

Ist ein Konsistenzbereich jeweils ein DP Slave? Wenn an die S7-400 also 18 ET 200 S angeschlossen sind, habe ich 18 Konsistenzbereiche? Oder ist jedes an die ET 200 S angeschlossene Teil, z.B. ein analoges Eingangsmodul, als Konsistenzbereich zu verstehen? Dann haette der Profibus DP 207 Konsistenzbereiche. Wie man sich leicht vorstellen kann, kommt dann was ganz anderes als Prozessabbildtransferzeit raus.

Derzeit berechnet mein Programm einfach anhand der Operationsliste die theoretische AWL-Programmlaufzeit. Ich habe es so verfasst, dass es im Zweifelsfall, also wenn es eine Operation nicht eindeutig zordnen kann, immer die laengstmoegliche Zykluszeit fuer die Operation annimmt.

Ist das, was Step 7 als "Scan Cycle Time" unter "Module Information" misst, wenn das System läuft, ist die (durchschnittliche) Zykluszeit eines AWL-Programmdurchlaufs oder die Reaktionszeit?

Bei einem Test mit einer SPS lag die errechnete Zykluszeit fuer einen AWL-Programmdurchlauf (u.a. ohne Prozessabbildtransferzeit) bei 6 ms, die gemessene aber bei 13 ms. Kann das angehen, dass die Aktualisierung des Prozessabbildes bei 18 ueber Profibus angeschlossenen Peripheriegeraeten die fehlenden 7 ms ergibt?

Und jetzt mal eine Off-Topic-Frage:
Ist das nicht irgendwie seltsam, dass selbst wenn man bei Siemens anruft und angebliche Spezialisten fuer so was fragt, die immer nur Antworten, dass muesse man halt ausprobieren? Heisst das, dass man sich erstmal das ganze Siemens Sortiment auf gut Glueck bestellt und dann daraus die Hardware zusammenstecken muss, die am Ende die Leistung bringt, die man braucht? Man sitzt dann drei Wochen mit einer Riesenkiste Siemensteilen irgendwo an einer Anlage und testet alle moeglichen Kombinationen durch? Oder ist das eine Siemensstrategie, um einen dazu zu bewegen, einfach das teuerste Equipment zu kaufen? Mich wollten die auch die ganze Zeit belabern, wir sollten doch die FM 458-1 DP kaufen und dann Ruhe geben....find ich irgendwie unserioes.
 
Re: Konsistenzbereich

o.bartz schrieb:
Ist das nicht irgendwie seltsam, dass selbst wenn man bei Siemens anruft und angebliche Spezialisten fuer so was fragt, die immer nur Antworten, dass muesse man halt ausprobieren?
Einerseits ja. Andererseits liegt es wohl daran, daß nur noch der Entwickler weiß, wie er eine Sache wie die Teilprozeßbilder implementiert hat und welche Konsequenzen das an welcher anderen Stelle hat. Ferner hat vielleicht ein anderer nachgebessert, geändert, ergänzt oder neue Hard-/Firmware entwickelt, die das ursprüngliche Konzept verändert.
Heisst das, dass man sich erstmal das ganze Siemens Sortiment auf gut Glueck bestellt und dann daraus die Hardware zusammenstecken muss, die am Ende die Leistung bringt, die man braucht?
Nein. Meist ist es so, daß eine grobe Schätzung oder andere Ausschlußkriterien reichen, um zu entscheiden, welche Hardware nötig ist. Im Zweifelsfall kann man von Siemens auch mal Geräte zum Testen bekommen. Ausführliche Tests lohnen sich sicher nur, wenn man einen Maschinentyp in Serie bauen will.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

darf ich aus dem Ausbleiben von Antworten schliessen, dass Ihr genau so wenig wisst, was "Konsistenzbereiche des Prozessabbildes" sind, wie ich und alle Siemens-Menschen die ich bis jetzt angerufen habe?

Ist jetzt jeder an die S7-400 angeschlossenen DP-Slaves ein Konsistenzbereich?

Oder ist jedes Modul in jedem DP-Slave als Konsistentsbereich zu verstehen?

Alle Berechnungsbeispiele, die Siemens angibt, berechnen auch nur Zeiten fuer Systeme ohne Profibus...
 
Zurück
Oben