escride1
Level-3
- Beiträge
- 1.262
- Reaktionspunkte
- 327
-> Hier kostenlos registrieren
Eigentlich ging es mir nur um die Schleifenabarbeitung, könnte ich aber gleich schnell umstellen und laden.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Gemessen:
Baustein RUNTIME im OB30 (höchste Prio) um den Code auf verschiedenen 1200+1500er inklusive der oben angegebenen, also rein die Verarbeitungszeit dieser Anweisung.
+1Interessant wäre auch der Vergleich optimierte oder nicht optimierte Bausteine
Da steht aber nicht dass durch diese dynamische Berechnung einen Zykluszeiterhöhung erzuegt werden kann. Und da steht nichts ob es mit optimiert/nicht optimiert zu tun hat.Indirekter Zugriff mit Laufvariable mit dynamischer Indexberechnung zur Laufzeit möglich
Egal, was da zur Laufzeit genau zusätzlich ausgeführt wird, IndexTabelle anlegen oder sonstwas, verstehe ich nicht, warum sich der Vorgang auf diverse Zyklen aufteilen soll.... Vermutlich tut er das erst dann, wenn er feststellt, daß da ein indizierter Zugriff erfolgt, was erklären würde warum die Zykluszeiterhöhung nur temporär ist (sich wieder erholt).
Egal, was da zur Laufzeit genau zusätzlich ausgeführt wird, IndexTabelle anlegen oder sonstwas, verstehe ich nicht, warum sich der Vorgang auf diverse Zyklen aufteilen soll.
Die Schleife wird doch schon im ersten Zyklus komplett durchlaufen und müsste für all die Elemente, für die noch keine "Abkürzung" ermittelt und hinterlegt wurde noch "zu Fuss" die Adressen ermitteln.
Laut escrides Beitrag sieht es aber für mich nicht so aus, als ob mehrere Zyklen durch das Ermitteln der Abkürzung in die Länge gezogen würden.
Falls zur Laufzeit wirklich entsprechende Tabellen angelegt werden, dann wäre ja auch die SpeicherBelegung durch solche Massnahmen nicht mehr so vorhersehbar, wie man es bei einer SPS erwartet.
Ein Auslagern von Teilen des ArbeitsSpeichers, die längere Zeit nicht genutzt wurden, zugunsten von ProgrammTeilen, die akut benötigt werden, gibt es bei SPS doch hoffentlich nicht!?
Meine Frage und Testhinweis beziehen sich darauf, daß die temporäre Zykluszeiterhöhung vielleicht gar nicht von der Abarbeitung der Schleife herrührt, sondern noch Teil des Ladevorgangs außerhalb des SPS-Programms ist, und wie man das testen kann. Den selben Umstand, den Du selber im Beitrag vorher erwähnt hast ...Verstehe ich nun nicht ganz Harald
liegt es nahe, das die Daten nicht beim ersten Aufruf aufgearbeitet werden und Indexe erstellt, sondern das dieses bereits (wie ich irgendwo mal von Siemens gelesen habe) bei optimierten Zugriffen beim Übersetzen&Laden geschieht.
Von welcher Zykluszeit spricht der Mario denn genau? Ermittelt mit RT_Info? - denn dort wird ja noch zwischen Zykluszeit (Anwenderprogramm) = Mode 25 und Zykluszeit Organisationsbaustein = Mode 1 unterschieden. Ich vermute nämlich auch eher, dass das laden und anschließende "online gehen + beobachten" den Zyklus in die höhe treibt. Deshalb würde mich auch die Antwort zu Ralfs Post #11 interessieren.
Ich würde in der Funktion mal einen "Schalter" einbauen, der auf False steht. Damit umspringst du die Schleife.
Jetzt alles laden, dann online gehen und die Schleife mit dem Schalter aktivieren. Die Frage wäre, wie sich nun die Zykluszeit verhält, also ohne das "Laden".
Es ist übrigens nicht das erste mal, daß in der Firmware der S7-1500 "versehentlich" solche Zykluszeitbomben bei Zugriffen des PG auf die CPU eingebaut wurden.
@MFreiberger: Verbessert vielleicht die neueste Firmwareversion V2.8.1 das Problem?
Im Beitrag #3 war es noch V2.8.0 - testest Du mit mehreren CPUs?Die CPU selber hat die FW 2.8.1
6ES7 515-2FM01-0AB0 FW 2.8.0
Im Beitrag #3 war es noch V2.8.0 - testest Du mit mehreren CPUs?
Harald
Hast Du mal in dem neu nachgeladenen Code sofort einen freien SPS-Ausgang fest auf 1 geschaltet und geschaut, ob die Ausgangs-LED schon vor/während der Zykluszeiterhöhung angeht oder eher erst danach, wenn die Zykluszeit wieder normal ist? Letzteres bedeutet, die Zykluszeiterhöhung kommt nicht aus Deinem Programm, sondern wird von der Firmware außerhalb des SPS-Programms verursacht und könnte mit erhöhtem Rechenzeitbedarf durch/nach dem Laden zu tun haben.
PS: ich meine den Code im RUN der CPU laden
Harald
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen