2 Schrittketten setzen/rücksetzen eine Variable

b.weyand85

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

ich programmiere aktuell mit CoDeSys V3.5 SP16 unter Einsatz einer Turck-Steuerung und habe in Ablaufsprache zwei Schrittketten programmiert, die jeweils unterschiedliche Teile einer Anlage steuern aber mit einer Art "Handshake" zusammenhängen.

Der eine Anlagenteil arbeitet seine Funktion ab (Schrittkette 1) und wenn dieser fertig ist wird eine Variable gesetzt, welche dann die Schrittkette für den anderen Anlagenteil (Schrittkette 2) anstarten soll. Die gesetzte Variable wird dann am Ende der zweiten Schrittkette zurückgesetzt, wodurch Schrittkette 1 wieder in den Initialisierungsschritt springen soll.

Jetzt habe ich allerdings das Phänomen, dass die Variable, die am Ende der Schrittkette von Anlagenteil 1 gesetzt wird immer noch den Wert FALSE hat, obwohl diese definitiv den Schritt, wo sie gesetzt wird durchlaufen hat (es wird auch in nachfolgender Transition abgefragt, ob diese gesetzt ist). Aus diesem Grund wird die Schrittkette 2 auch nicht angestartet. Lösche ich die Aktion in Schrittkette 2, wo die Variable zurückgesetzt wird und gehe mit Online-Change wieder auf die Steuerung so wird Schrittkette 2 angestartet, weil die Variable nun gesetzt ist. Selbes Phänomen in umgekehrter Richtung habe ich dann, wenn Schrittkette 2 fertig ist und ich das Rücksetzen wieder hinzufüge - dann bleibt der Wert der Variable die ganze Zeit auf FALSE. Wert auf FALSE schreiben funktioniert nicht und bei Wert auf FALSE forcen lässt die Schrittkette zu undefiniertem Zeitpunkt zu Ende laufen.

Ist dies bei CoDeSys ein normales Verhalten oder eine Einstellungssache? Liegt es daran, dass ich IEC-Aktionen verwende? Ich komme aus der Siemens-Welt, wo ich ein solches Verhalten nicht kenne und ich es mir hier eigentlich auch nicht erklären kann. Bei Programmierung von Phoenix-Steuerungen mit PLCnext bin ich auch schon hierüber gestolpert, weil hier je nach Einstellung alle Schritte einer Schrittkette aktiv sind. Ich habe das dann außerhalb von der Schrittkette lösen müssen.
Könnte mir bitte jemand weiter helfen?
 
Zurück
Oben