twincatter
Level-2
- Beiträge
- 139
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Hallo Gemeinde,
in der Regel werden (soviel ich weiß) Aktionen über eine Flankenauswertung gestartet (Trigger).
Wenn eine fallende bzw. steigende Flanke eines boolschen Variablenwerts auftritt wird eine Aktion ausgelöst.
Angenommen ich habe 10 Aktionen in meinem FB (z.B. ExecuteHoming, ExecuteMovePTP...) dann benötige ich auch 10 boolsche Eingangsvariablen. Nach deren Flankenauswahl wird dann innerhalb des FBs die entsprechende Aktion aufgerufen.
Es ist außerdem immer so, dass nur eine einzige Aktion zu einem Zeitpunkt ausgeführt wird.
Soweit so gut.
Alternativ wäre es einfacher eine einzige Integervariable zu verwenden und über deren Wert innerhalb des FBs die entsprechende Funktion aufzurufen (z.B. Wert = 3 dann Aktion 3 ausführen). Damit es eleganter ist könnte auch mit Enums gearbeitet werden. Nach durchlaufen des FBs müsste die Variable natürlich auf 0 gesetzt werden. So kann bei <> 0 detektiert werden, dass sich der Eingangszustand geändert hat.
Vorteil:
nur ein Eingang für alle Aktionen und keine Trigger notwendig.
Nachteil:
hier die Frage an Euch, welche Nachteile gibt es, warum wird es in den mir bekannten Beispielen nicht gemacht.
Danke, Michael
in der Regel werden (soviel ich weiß) Aktionen über eine Flankenauswertung gestartet (Trigger).
Wenn eine fallende bzw. steigende Flanke eines boolschen Variablenwerts auftritt wird eine Aktion ausgelöst.
Angenommen ich habe 10 Aktionen in meinem FB (z.B. ExecuteHoming, ExecuteMovePTP...) dann benötige ich auch 10 boolsche Eingangsvariablen. Nach deren Flankenauswahl wird dann innerhalb des FBs die entsprechende Aktion aufgerufen.
Es ist außerdem immer so, dass nur eine einzige Aktion zu einem Zeitpunkt ausgeführt wird.
Soweit so gut.
Alternativ wäre es einfacher eine einzige Integervariable zu verwenden und über deren Wert innerhalb des FBs die entsprechende Funktion aufzurufen (z.B. Wert = 3 dann Aktion 3 ausführen). Damit es eleganter ist könnte auch mit Enums gearbeitet werden. Nach durchlaufen des FBs müsste die Variable natürlich auf 0 gesetzt werden. So kann bei <> 0 detektiert werden, dass sich der Eingangszustand geändert hat.
Vorteil:
nur ein Eingang für alle Aktionen und keine Trigger notwendig.
Nachteil:
hier die Frage an Euch, welche Nachteile gibt es, warum wird es in den mir bekannten Beispielen nicht gemacht.

Danke, Michael