Ist doch offensichtlich, dass ich nicht beim Bund war
Man könnte den Soldaten ja auch vorher befohlen haben, sich nach der Aktion selbstst.... nein? ok.
Danke auch an Baxxy, bin jetzt im Bilde.
Wie lange ist "bei Änderung auslösen" gültig ?
Moderator: Co-Administratoren
-
- Beiträge: 3734
- Registriert: 23.09.2017, 12:04
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 121 Mal
Re: Wie lange ist "bei Änderung auslösen" gültig ?
Doch das kann man. Nennt sich "Einschaltdauer" oder "einschalten für xxx sekunden".
Dann läuft der Timer im Soldaten abwärts.
Aber Deine Frage bezog sich ja auf den Befehlsgeber und der ruft nur einmal.
-
- Beiträge: 3048
- Registriert: 28.01.2016, 18:06
- System: CCU
- Wohnort: Hürth
- Hat sich bedankt: 16 Mal
- Danksagung erhalten: 277 Mal
Re: Wie lange ist "bei Änderung auslösen" gültig ?
Hi,
die bisherigen Antworten waren grundsätzlich richtig, es gibt jedoch etwas zu bedenken.
Angenommen, ich habe eine Systemvariable "Rollladen_schliessen", die als Werte ok und fertig hat.
Nun habe ich für drei Rollläden ein Programm wie dieses hier erstellt, die auf Änderung dieser Variable triggern:
WENN Rollladen_schliessen ist ok bei Änderung auslösen
DANN
Rolladen_xy (1 - 3) sofort Behanghöhe 0%
Rollladen_schliessen sofort fertig
In diesem Fall wird nur einer der Rollläden fahren, die anderen nicht mehr.
Die Programme werden zwar noch getriggert, die Bedingung ist aber inzwischen nicht mehr erfüllt.
Man muß hier also darauf achten, dass der geänderte Status so lange erhalten bleibt, bis alle zu triggernden Programme abgearbeitet wurden.
Gruß
Gerti
die bisherigen Antworten waren grundsätzlich richtig, es gibt jedoch etwas zu bedenken.
Angenommen, ich habe eine Systemvariable "Rollladen_schliessen", die als Werte ok und fertig hat.
Nun habe ich für drei Rollläden ein Programm wie dieses hier erstellt, die auf Änderung dieser Variable triggern:
WENN Rollladen_schliessen ist ok bei Änderung auslösen
DANN
Rolladen_xy (1 - 3) sofort Behanghöhe 0%
Rollladen_schliessen sofort fertig
In diesem Fall wird nur einer der Rollläden fahren, die anderen nicht mehr.
Die Programme werden zwar noch getriggert, die Bedingung ist aber inzwischen nicht mehr erfüllt.
Man muß hier also darauf achten, dass der geänderte Status so lange erhalten bleibt, bis alle zu triggernden Programme abgearbeitet wurden.
Gruß
Gerti
-
- Beiträge: 3734
- Registriert: 23.09.2017, 12:04
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 121 Mal
Re: Wie lange ist "bei Änderung auslösen" gültig ?
Und deshalb könntest Du die Variable auch 2min verzögert auf "Fertig" stellen.Gerti hat geschrieben: ↑25.03.2024, 19:07Hi,
WENN Rollladen_schliessen ist ok bei Änderung auslösen
DANN
Rolladen_xy (1 - 3) sofort Behanghöhe 0%
Rollladen_schliessen sofort fertig
Man muß hier also darauf achten, dass der geänderte Status so lange erhalten bleibt, bis alle zu triggernden Programme abgearbeitet wurden.
das ein Programm eine SysVar verändert, die es selbst als Trigger nimmt, ist immer schwierig. Und sicherlich ein Sonderfall.
-
- Beiträge: 28
- Registriert: 10.01.2022, 21:11
- System: CCU
- Danksagung erhalten: 1 Mal
Re: Wie lange ist "bei Änderung auslösen" gültig ?
Das ist genau die Frage die ich mir schon seit langem stelle. Das grosse Fragezeichen ist doch wie die Programme abgearbeitet werden. Da genau dieser Zustand auftreten kann das mehrere Programme einen geänderten Zustand zur Ausführung benötigen, hätte ich erwartet das der Ablauf so ähnlich wie in einer SPS zyklisch erfolgt:Gerti hat geschrieben: ↑25.03.2024, 19:07Hi,
die bisherigen Antworten waren grundsätzlich richtig, es gibt jedoch etwas zu bedenken.
Angenommen, ich habe eine Systemvariable "Rollladen_schliessen", die als Werte ok und fertig hat.
Nun habe ich für drei Rollläden ein Programm wie dieses hier erstellt, die auf Änderung dieser Variable triggern:
WENN Rollladen_schliessen ist ok bei Änderung auslösen
DANN
Rolladen_xy (1 - 3) sofort Behanghöhe 0%
Rollladen_schliessen sofort fertig
In diesem Fall wird nur einer der Rollläden fahren, die anderen nicht mehr.
Die Programme werden zwar noch getriggert, die Bedingung ist aber inzwischen nicht mehr erfüllt.
Man muß hier also darauf achten, dass der geänderte Status so lange erhalten bleibt, bis alle zu triggernden Programme abgearbeitet wurden.
Gruß
Gerti
Zyklus-Start:
if (Variable_alter_Wert != Variable_aktueller_Wert)
{
Variable_hat_sich_geändert = true;
Variable_alter_Wert = Variable_aktueller_Wert
}
Jetzt laufen alle Programme und schauen und schauen nur bei Änderung auf Variable_hat_sich_geändert
Zyklus-Ende:
Variable_hat_sich_geändert = false
Somit wäre sichergestellt das alle Programme die den geänderten Zustand benötigen, ihn auch bekommen.
Alternativ sollte es möglich sein Programme gezielt an den Anfang oder ans Ende zu setzen damit die Variablen gesteuert manipuliert werden können.
Von NickHM: Und deshalb könntest Du die Variable auch 2min verzögert auf "Fertig" stellen.
das ein Programm eine SysVar verändert, die es selbst als Trigger nimmt, ist immer schwierig. Und sicherlich ein Sonderfall.
Warum soll das ein Sonderfall sein? Ich habe 3 Kameras die jeweils bei Bewegung eine Systemvariable auf true setzen, und am Ende der Bearbeitung direkt auf false. Die Bewegungserkennung ist damit abgeschlossen
-
- Beiträge: 5497
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 751 Mal
Re: Wie lange ist "bei Änderung auslösen" gültig ?
Das System ist aber nun mal ein eventgetriggertes System - aus Performancegründen. Darauf muss man sich einstellen.
-
- Beiträge: 14220
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 593 Mal
- Danksagung erhalten: 1510 Mal
Re: Wie lange ist "bei Änderung auslösen" gültig ?
Nein, das System funktioniert aber andersrum. Es ändert sich ein Zustand und diese Änderung startet die Bedingungsprüfung aller Programme, die diesen Zustand als Trigger enthalten (und nur diese). Trifft eine oder mehrere Bedingungen zu, werden die dazugehörigen DANN ausgeführt (oder ein ggf. vorhandenes SONST). Das System verhält sich grundsätzlich anders (eventgetriggert) als z.B. SPS (die ständig durch die Status kreist) und darauf muss man sich zwangsweise einstellen oder sich nach einem anderen System umschauen. Mit der Denkweise, die man von anderen Sytemen kennt, kommt man nicht sehr weit.CCU3-Tester hat geschrieben: ↑27.04.2024, 13:32Jetzt laufen alle Programme und schauen und schauen nur bei Änderung auf Variable_hat_sich_geändert
Diese Vorgehensweise ist relativ ressourcenschonend und den ersten Generationen der CCU mit relativ schwacher Hardwarebasis geschuldet. Es werden eben keine unnötigen Programmläufe iniitiert, sondern nur welche, die auch den Trigger enthalten. Eine Bedingungsprüfung durch Programme, die diesen Status nicht als Trigger enthalten ist somit überflüssig. Ist nun mal so.
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch