Ablaufsprache mit IEC-Aktionen - seltsames Verhalten?

SPSstudent

Level-1
Beiträge
61
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Bisher habe ich in der Ablaufsprache (Schrittketten) nur die vereinfachte Darstellung verwendet. Jetzt habe ich mal die IEC-Aktionen (Rechteck(e) neben den Schritten) ausprobiert. In den IEC-Aktionen rufe ich Aktionen auf (also nicht nur Boolsche Werte setzen).

Mir ist dabei aufgefallen, dass jede Aktion mindestens 2x aufgerufen wird, selbst wenn die Transitionen immer TRUE sind und selbst wenn ich den Qualifier "P" (Pulse) statt "N" verwende. In der vereinfachten Darstellung wird der Code in einem Schritt nur 1x ausgeführt, wenn die Transition beim Eintritt in den Schritt bereits TRUE ist.

Ist das normal bei den IEC-Aktionen?

Falls ja, kann man damit doch nicht sinnvoll arbeiten, oder?
Wenn ich beispielsweise die Anzahl der Schrittketten-Durchläufe zähle, dann bekomme ich als Ergebnis 2, 4, 6, 8, ..., weil die Aktion mit P-Qualifier eben 2x aufgerufen wird. Klar kann ich mir jetzt irgendwelche Hilfsmerker erstellen und dann bekomm ich das richtige Ergebnis, aber das macht das Programm total unverständlich.

PS: Falls irgendwie relevant: Innerhalb der Aktionen programmiere ich in ST.
 
Das wir durch den Final-Scan verursacht.
Wird ein Schritt verlassen, läuft die Bearbeitung für genau eine Zyklus länger.
Man könnte dieses verhalten hernehmen um zum Beislpiel beim verlassen des
aktiven schrittes noch etwas aufzuräumen. Variablen initalisieren oder einen
Ausgang zurück setzen.
Im Prinzip btrauchst Du nur Schritt1.X abfragen. Der ist nur einen Zyklus aktiv

Z.B.: If Schritt_Irgendwas.X Then

usw.

Steht aber auch in der Doku
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das wir durch den Final-Scan verursacht.
Wird ein Schritt verlassen, läuft die Bearbeitung für genau eine Zyklus länger.
Man könnte dieses verhalten hernehmen um zum Beislpiel beim verlassen des
aktiven schrittes noch etwas aufzuräumen. Variablen initalisieren oder einen
Ausgang zurück setzen.
Im Prinzip btrauchst Du nur Schritt1.X abfragen. Der ist nur einen Zyklus aktiv

Z.B.: If Schritt_Irgendwas.X Then

usw.

Steht aber auch in der Doku

In der Doku wird das tatsächlich beschrieben:
http://infosys.beckhoff.de/index.ph...control/html/tcplcctrl_editorsfc.htm&id=13768 (ganz unten)

In der Abarbeitungsreihenfolge wird auch erkenntlich, dass der Code der vereinfachten Darstellung gar nichts mit den IEC-Aktionen zu tun hat.

In der Doku habe ich noch so ein "Easter Egg" gefunden:
die Aktionen werden in alphabetischer Reihenfolge und nicht wie vom Programmierer angegeben abgearbeitet.

Für mich sind IEC-Aktionen damit gestorben.
 
Zurück
Oben