Ich verstehe jetzt nicht, wie die Flankenerkennung mit TwinSafe zusammenhängt.
FlankenErkennung im Programm:
1. positive Flanke:
Code:
U aktuellerZustand // nicht negierten, aktuellen Zustand mit dem negierten, vorherigen über UND verknüpfen
UN gemerkterZustand
= FlankenImpuls
U aktuellerZustand // aktuellen Zustand speichern für die Verwendung als vorherigen Zustand im nächsten Zyklus
= gemerkterZustand
2. negative Flanke:
Code:
UN aktuellerZustand // negierten, aktuellen Zustand mit dem nicht negierten, vorherigen über UND verknüpfen
U gemerkterZustand
= FlankenImpuls
U aktuellerZustand // aktuellen Zustand speichern für die Verwendung als vorherigen Zustand im nächsten Zyklus
= gemerkterZustand
3. jede Flanke:
Code:
X aktuellerZustand // aktuellen Zustand mit dem vorherigen über XOR verknüpfen
X gemerkterZustand
= FlankenImpuls
U aktuellerZustand // aktuellen Zustand speichern für die Verwendung als vorherigen Zustand im nächsten Zyklus
= gemerkterZustand
Die boolesche Variable, die für den Vergleich im nächsten Zyklus unverändert zur Verfügung stehen muss, darf nicht temporär sein und nicht anderweitig verwendet werden.
Kann z.B. als IN_OUT an den Baustein übergeben werden.
Bookmarks