Step 7 Zykluszeit durch SFB bei Step7 langsamer als im TIA Portal?

Jürgen84

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

habe in Step7 und im TIA Portal das gleiche Program geschrieben. Ein FB mit 5 SFB. Im TIA Portal nennen die sich ja direkt TON TOF usw. Mit den 5 SFB messe ich die Zykluszeit der SPS. Allerdings habe ich in Step7 eine Zykluszeit von 1,08ms und im TIA Portal eine Zykluszeit von 0,96ms. Hat jemand schonmal Erfahrung mit sowas gemacht? Weil im Grunde müsste es wirklich gleich sein. Für die Anlage ist zwar beides noch im Rahmen, aber das abweichende Ergebnis ist sehr verblüffend ;)

Grüße
Jürgen
 
In welcher Sprache wurden das Programm geschrieben? In SCL gibt es einige Optionen die sich nicht unerheblich auf die Laufzeit und die Programmgröße auswirken.

Ansonsten lad das neue Programm vom TIA-Portal in PLCsim, und machst dann mit dem alten Programm mit Step7 einen Bausteinvergleich mit dem Programm in Plcsim. Dann siehst du die Unterschiede.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Jürgen,

ich bin zwar auch kein Profi aber ich könnte mir Vorstellen, dass es an der Einstellung "optimierter Bausteinzugriff" liegt. Dadurch soll die CPU auch schneller Daten lesen können.
Ich habe ähnliches bemerkt bei meinem Umstieg von Step7 5.5 auf TIA und kann es mir eigentlich nur dadurch erklären, da sich die Hardware sonst nicht geändert hat.

Gruß
 
So wie ich das verstehe benutzt er weiterhin die gleiche CPU, d.h. eine S7-300/400, und da gibts keinen "optimierten" und "nicht optimierten" Zugriff. Andernfalls wären die Werte wohl nicht miteinander vergleichbar.
 
Hi,

das Programm wurde in FUP geschrieben. Hat auch die gleiche Ladespeichergröße. Und sonst sind alle Netzwerke identisch. Ja es ist beide mal eine 300er S7. Ich kann mir es nur so erklären, dass die SFB das langsame in Step7 verursachen. Vielleicht werden die SFB im TIA Portal anders aufgerufen? Bin so langsam mit meinem Latein am Ende....

Grüße
Jürgen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie ist es überhaupt möglich, auf einer S7-300, Zeiten im µs-Bereich zu ermitteln? Berechnest du den Durchschnitt aus n Zyklen? Klar ist auch, dass die PG-Kommunikation etwas Zykluszeit verschlingt, je nachdem was du online so veranstaltest können sich schon daraus minimale Unterschiede ergeben, selbst auf ein und demselben System.
 
Zuletzt bearbeitet:
Hi,

das Programm wurde in FUP geschrieben. Hat auch die gleiche Ladespeichergröße. Und sonst sind alle Netzwerke identisch. Ja es ist beide mal eine 300er S7. Ich kann mir es nur so erklären, dass die SFB das langsame in Step7 verursachen. Vielleicht werden die SFB im TIA Portal anders aufgerufen? Bin so langsam mit meinem Latein am Ende....

Grüße
Jürgen

Hast du wirklich einen Bausteinvergleich (Codevergleich) vorgenommen, und es sind keine Unterschiede zu sehen?
 
meine Vermutung wäre, das die BS Funktionen unter Tia anders sind als unter Step7.

Die SFB sind unter Tia anders als unter step7

Wüsste nicht wie das funktionieren soll.

Wenn im Programm der SFB4 aufgerufen wird, dann wird der SFB4 aufgerufen (Betriebssystem-Funktion). Ob der AWL Code von TIA-Portal, Step7 oder sonstwem geschrieben wurde ist irrelevant.
Und ein Betriebssystem-Update macht auch TIA-Portal nicht mal so nebenbei. Außerdem müsste dann auch das Programm später mit Step7 schneller sein.

Ich verstehe nicht wieso er wild rumspekuliert, anstatt das naheliegendste zu machen. Nämlich den Code vollständig zu vergleichen. Die Ladespeichergröße ist doch keine Aussage.
 
Allerdings habe ich in Step7 eine Zykluszeit von 1,08ms und im TIA Portal eine Zykluszeit von 0,96ms.
Mich würde auch interressieren wie du diesen Unterschied von 120ns auf deiner 300er (oder 400er) festgestellt hast.

Wie Thomas schon schrieb. An den SFB (TON) kann es nicht liegen, die sind Teil des Betriebssystems. TIA kann die nicht ändern oder ersetzen. Sollte der Compiler für den Rest (Aufruf etc) was anders machen, dann lässt sich das ja rausfinden.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe den Code gerade nochmal überprüft, ist 1:1. Hatte das Programm nochmal synchron ist Step7 und TIA neu aufgesetzt. Wenn ich das Programm mit Step7 in die CPU übertrage und die CPU nicht starte und es dann mit TIA auslese, zeigt es beim Vergleich an, dass bei den DBs die Datenunterschiedlich sind. Das Programm besteht nur aus OB1 und FB1 mit den Bausteinen TP, TOF und CTU. Beim FB1 zeigt es außerdem an, dass der Code unterschiedlich ist, wenn ich den Baustein dann anschaue ist alles ok, bis auch die Zeit. Schreibweise S7: T#10S und TIA: T#10s. ansonst passt der Code. Das muss wohl an den DBs oder direkt an den IEC Zeiten und Zählern liegen.
 
Mich würde auch interressieren wie du diesen Unterschied von 120ns auf deiner 300er (oder 400er) festgestellt hast.

Ich zähle in einem Baustein die Zyklen und bilde nach z.B. 10.000 Zyklen den Mittelwert. Das Ergebnis ist in Step7 und TIA übrigends sehr konstant.
 
Mädels, dass ich meinen bescheidenen Beitrag #6 noch einmal um einen Gedanken ergänzt hatte, habt ihr bemerkt?

@Jürgen, wenn du diese Tests durchführst, dann bist du doch sicherlich mit dem PG online? So wie ich das sehe, ist der einzige Unterschied die Software auf dem PG mit der du online bist. Und wie wir alle wissen, belastet jede Kommunikation den CPU-Zyklus. Vielleicht kannst du die Zykluszeitmessung mal ohne PG-Kommunikation durchführen, z.Bsp. über einen Eingang triggern?
 
Beim Onlinestatus gibt es wirklich einen großen Unterschied zwischen Step7 und TIA.
Step7 aktualisiert den Onlinestatus beim Beobachten eines Bausteins oder auch einer Variablentabelle um ca. den Faktor 30 schneller als TIA.
Durch das langsame TIA-Portal wird also auch die CPU beim Onlinestatus weniger belastet.
 
Zurück
Oben