# CoDeSys 2.3 (WAGO), Ablaufprogramm in AS und Nutzung der Taskkonfiguration



## HPM (10 November 2019)

Hallo,

ich habe ein kleines Problem mit einer A*blaufsteuerung,* die mit *CoDeSys 2.3 (WAGO)* in der *Sprache AS* *programmiert *wurde
und deren Schritte über eine T*askkonfiguration *aktiviert werden sollen (siehe Screenshot).

In den einzelnen Schritten der Ablaufsteuerungen soll lediglich eine bestimmte Lampe (Lampe1, Lampe2) eingeschaltet werden,
 wenn der entsprechende Taster (F1,F2) in der richtigen Reihenfolge aktiviert wurde.

Wenn die A*blaufsteuerung ohne Taskkonfiguration p*rogrammiert wird, funktioniert die Steuerung einwandfrei  und z.B. der Taster F1
 schaltet die Transition F1 so, dass im folgenden Schritt "Lampe1EIN" die Lampe1 angeschaltet wird (erwartete Reaktion).






Läuft das Programm aber *über eine Taskkonfiguration*, scheint es so zu sein, dass der Taster F1 als Taskereignis zwar die Transition
schaltet, der nachfolgende Schritt aber nicht unmittelbar danach abgearbeitet wird (obwohl der Schritt blau markiert ist).
Nach F1 schaltet die Lampe1 nicht sofort, sondern erst, wenn F1 nochmals gedrückt wird, bzw. der Taster F2 gedrückt wird.
Es scheint, als würde das Programm zweimal aufgerufen werden müssen.
Ich würde erwarten, dass die Steuerung nach Aktivierung der Transition den nachfolgenden Schritt ausführt - also gleiches Verhalten 
wie ohne Taskkonfiguration!





Kennt jemand dieses unterschiedliche Verhalten? Wo mache ich einen Fehler - oder ist dies ein Bug von CoDeSys 2.3?
 Da ich das Programm über eine Taskkonfiguration realisieren möchte wäre ein Tip, wie ich dieses Problem lösen kann, interessant.

Bin über jede Hilfe dankbar!

HPM


----------



## holgermaik (10 November 2019)

Hallo HPM 
Codesys Hilfe "Abarbeitung AS" Punkt 5.

PS. Den Task mit der Schrittkette hält man nicht an.
Holger


----------



## HPM (10 November 2019)

Hallo holgermaik,

habe mir den Abschnitt im Manual angesehen - ganz schön kompliziert!

Ich habe ja kein IEC-Schritt verwendet - und gehe davon aus, dass Punkt 6. die Erklärung für das Verhalten liefert.
Im aktuellen Zyklus (ich denke da ist der SPS-Zyklus gemeint) wird, falls die nachfolgende Transition TRUE liefert der
nachfolgende Schritt aktiviert - aber leider nicht abgearbeitet.

Ohne Taskkonfiguration wird dagegen der nachfolgende Schritt abgearbeitet. Ich verstehe leider nicht den Sinn dahinter.
Ich nutze die Taskkonfiguration, um sicherzustellen, dass der gleiche Taster nacheinander 2 unterschiedliche Abschnitte eines
Programms aktivieren kann. Ohne Taskkonfiguration würde das Programm über beide Transitionen mit gleichen
Schaltbedingungen ohne Pause drübergehen.

Ich habe das Programm jetzt so gelöst, dass ich einen zusätzlichen Schritt mit der Transitionsbedingung TRUE dahintergeschaltet 
habe und rufe das Programm in der Taskkonfiguration direkt 2x hintereinander auf.
Beim 2. Aufruf wird der eigentliche Schritt, der zuvor erst im nächsten Zyklus abgearbeitet wurde jetzt sofort abgearbeitet.
Das Programm wartet dann an der nächsten Transition - die wieder vom gleichen Taster aktiviert werden kann.

Vielleicht gibt es ja eine bessere Lösung.
Was ist der Grund, weshalb man eine Task mit einer Schrittkette nicht anhält?

Vielen Dank!

HPM


----------



## Heinileini (10 November 2019)

HPM schrieb:


> Was ist der Grund, weshalb man eine Task mit einer Schrittkette nicht anhält?


Weil man normalerweise nicht erwartet, dass ein Programm, das gar nicht bzw. nicht mehr läuft, etwas ausrichten kann.


----------



## Blockmove (10 November 2019)

HPM schrieb:


> Was ist der Grund, weshalb man eine Task mit einer Schrittkette nicht anhÃ¤lt?



Weil man Ahnung von SPS-Programmierung hat 
Mal im Ernst:
Es gibt grundlegende Unterschiede in der Abarbeitung und Strukturierung von SPS-Programmen im Vergleich zu typischen PC-Programmen.
Dinge wie z.B. Prozessabbild oder Zykluszeitüberwachung gibt es in einem normalen PC-Programm nicht.
Daraus resultiert eben eine andere Art zu Programmieren.
Seitdem Smarthome "modern" ist, habe ich schon manchen Kollegen aus unserer IT an einer simplen Lichtsteuerung verzweifeln gesehen 

Also mach dich erstmal mit den Grundlagen einer SPS vertraut und streiche Tasks.
Das sorgt nämlich erstmal für ganz komische Effekte und macht ein Programm nur schlecht wartbar.

Gruß
Blockmove


----------

