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

HPM

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

ich habe ein kleines Problem mit einer Ablaufsteuerung, die mit CoDeSys 2.3 (WAGO) in der Sprache AS programmiert wurde
und deren Schritte über eine Taskkonfiguration 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 Ablaufsteuerung ohne Taskkonfiguration programmiert 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).
jpg.gif


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!
jpg.gif


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
 

Anhänge

  • Problem CoDeSys Taskbearbeitung+AS_1.JPG
    Problem CoDeSys Taskbearbeitung+AS_1.JPG
    123,2 KB · Aufrufe: 32
  • Problem CoDeSys AS ohne Taskkonfiguration.JPG
    Problem CoDeSys AS ohne Taskkonfiguration.JPG
    107,1 KB · Aufrufe: 23
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
Was ist der Grund, weshalb man eine Task mit einer Schrittkette nicht anhält?

Weil man Ahnung von SPS-Programmierung hat :ROFLMAO:
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 :D

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
 
Zurück
Oben