Hallo Marco,
der STW muss immer einen Zustandsübergang Wahr-Falsch oder Falsch-Wahr des Ergebnisses des Bedingungsbaums sehen, damit er in den ein oder anderen Zustand wechselt. Und egal in welche Richtung kann das nur alle 500msec erfolgen.
Aber wir können den austricksen, so dass wir trotzdem alle 500msec den Zähler weiter bekämen und zwar mit zwei STW.
Ich habe zum Test mal einen virtuellen Taktgeber (RMK 284 im Beispiel) im Programm auf die von dir angedachte 500ms hoch, 50ms tief, 500ms hoch eingestellt und dann folgendes gemacht:
Neben dem Zähler habe ich noch ein virtuelles zweibegriffiges Signal gemalt und folgende zwei STW angelegt:
1. STW
Bedingung:
Und
-RMK 284 besetzt
-virtuelles Signal rot seit mind. 300 msec. *)
-Nicht
--RMK 284 besetzt seit mind. 700 msec **)
Aktion:
Zähler +1
virtuelles Signal grün
2. STW
Bedingung:
Und
-RMK 284 besetzt
-virtuelles Signal grün seit mind. 300 msec. *)
-Nicht
--RMK 284 besetzt seit mind. 700 msec **)
Aktion:
Zähler +1
virtuelles Signal rot
Anmerkung *)
Zeit wichtig beim 2. STW damit in einem Durchgang nicht beide STW auslösen
Anmerkung **)
dieser Nicht-Unterzweig soll nur verhindern, dass eine RMK-Dauerauslösung wegen exakt stehenbleibender Achse zu einem Dauerzählen führt, wenn du das Ausschließen kannst, dann kann der weg.
Durch die Trickserei mit dem virtuellen Signal ist für ein 500msec der eine STW scharf und im nächsten dann wieder der andere usw. Ggf. sind die Zeitangaben "seit mind." in ihren Werte noch nicht das Optimum, aber so in die Richtung sollte es gehen. Zumindest hatte ich bei meinem virtuellen Taktgenerator mal händisch gestoppt so nach 60 Sekunden den Wert 108 (60/0.55=109). Naja händisch gestoppt, könnte so passen.
Kann ich virtuelle Kontakte auch ausserhalb des STW (also schneller als mit Sampling Rate 2 Hz) ein- und ausschalten?
Mit dem virtuellen Taktgenerator, aber dann halt nur im fixen Takt.
Grüße
Markus