Ablauf Schrittkette in AS (Transitionsbedingungen)

thomas187

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

kann mir vll jmd erklären wie bei Codesys der genau Ablauf beim Abarbeiten einer Schrittkette in AS ist?
Wann wird die Transitionsbedingung eines vorherigen Schittes geprüft? Im gleichen Zyklus der SPS oder im nächsten Zyklus?
Und in Welchem Zyklus wird der darauffolgende Schritt aktiv, sofern die Transitionsbedingung erfüllt ist?


Hintergrund ist die Portierung eines S7-Programms nach IEC61131 in Codesys.
Anscheinend ist die Abarbeitung der Tranistionen bei S7-Graph anders als bei Codesys.

Dazu ein Bsp:
Trans2 prüft ob var. Ready TRUE ist, wenn TRUE erfolg der Übergang ist Schritt 3.
Trans3 prüft unter anderem ebenfalls ob die var. Ready TRUE ist, wenn ja...->Schritt4..
In Schritt 3 wird der Befehl zum Senden eines Telegramms gesetzt, was dann in anderen Bausteinen ausgeführt wird.
Im nächsten Zyklus wird wird die var. Ready von einem anderen Baustein auf FALSE gesetzt und nach erfolgreichem empfangen der Daten wieder auf TRUE.
In Schritt 3 soll so lange gewartet werden, bis die empfangenen Daten verarbeitet wurden und die var. Ready wieder TRUE ist.
Jedoch wird in Schritt 3 nicht gewartet und direkt in Schritt 4 übergegangen, da die Bedingung von Trans2 auch in Trans3 zutrifft.
Im Debugmodus habe ich festgestellt wenn ich in Schritt 3 einen Einzelschritt weiter gehe, dass im Hintergrund schon Schritt 4 aktiv ist, obwohl das Programm an einer ganz anderen Stelle ausgeführt wird.

Bei S7-Graph ist dies nicht der Fall. Da wird in Schritt 3 gewartet bis alle Daten empfangen wurden und dann erst in Schritt 4 übergegangen.
Die Programmierung ist bei Codesys AS und S7-Graph genau gleich umgesetzt.

Prüft S7 die nachfolgende Bedingung im nächsten SPS-Zyklus und Codesys im gleichen Zyklus?

Hoffe jmd hat Erfahrung damit und kann mir den unterschied zwischen Codesys AS und S7-Graph bei der Abarbeitung von Schrittketten erklären.
Die Dokumentation zu diesem Thema sind ziemlich dürftig.

Danke im Voraus
Gruß
Thomas
 
Hallo Thomas,

ich habe deiner Beschreibung entnommen, dass du einen Flankenwechsel 1 -> 0 -> 1 hast (durch einen asynchronen Neben-Ablauf) den du aber nicht so abfragst. Du hast dich bei Graph7 darauf verlassen, dass zwischen 2 benachbarenden Schritten immer ein SPS-Zyklus liegt und bist davon ausgegangen, dass dein Nebenablauf immer sofort anspringt.
Ich würde sagen, dass du da bei Graph7 schon Glück gehabt hast, dass es funktioniert hat.
Aus meiner Sicht kommst du nicht drum herum, in deiner Schrittkette den Signalwechsel zu überprüfen - dann funktioniert es mit Sicherheit auch.
Besser ZDF als ARD (Zahlen-Daten-Fakten statt Alle Reden Davon)

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die schnelle Antwort.. werde ich gleich mal ausprobieren;)
Laut Siemens support werden von aussen gesetzte Bedingungen erst im nächsten Zyklus überprüft.
Gruß
Thomas
 
Zurück
Oben