################################################################################################################ # Definition Logikbaustein "Alarm 5fach mit Verzögerung" ################################################################################################################ # Alex Dobusch Gebäudeautomation (c) # http://www.dobusch.ch/hslogic # Version 1.001 # 31.05.2006 # ID 11600 # Der Baustein darf ohne Veränderung frei verwendet werden. Für den Baustein an sich darf jedoch ohne meine # Zustimmung keine Vergütung verlangt werden. # Wird die Programmierung verändert, muss mein (c) entfernt werden, oder auf die Änderung hingewiesen werden. # # Trotz sogfältiger Prüfung können Fehler nicht ausgeschlossen werden. # Prüfen Sie daher den Baustein, denn ich kann keinerlei Haftung für ein Fehlverhalten übernehmen. # Änderungswünsche an hslogic@dobusch.ch ################################################################################################################ # 08.05.2006 Baustein erstellt # 31.05.2006 Bei Scharfstellung wird auch Quittiert ################################################################################################################ ################################################# ### 5000 Definition für HS-Experte ################################################# # 5000|Bezeichnung|Remanent|Anz.Eingänge|.n.|Anzahl Ausgänge|.n. # Bezeichnung # | Remanent # | | Anz.Eingänge|.n. # | | | Anzahl Ausgänge|.n. # | | | | 5000|"Alex Dobusch Gebäudeautomation\Alarm 5fach mit Verzögerung"|0|11|"E1"|"E2"|"E3"|"E4"|"E5"|"Quittierung"|"Quittierungscode"|"Code"|"Scharfstellzeit"|"Scharfstellung"|"Alarmverzögerung"|9|"A1"|"A2"|"A3"|"A4"|"A5"|"Quittiert"|"CodeError"|"Scharf"|"Alarm" # Debug #5000|"Alex Dobusch Gebäudeautomation\Alarm 5fach mit Verzögerung"|0|11|"E1"|"E2"|"E3"|"E4"|"E5"|"Quittierung"|"Quittierungscode"|"Code"|"Scharfstellzeit"|"Scharfstellung"|"Alarmverzögerung"|10|"A1"|"A2"|"A3"|"A4"|"A5"|"Quittiert"|"CodeError"|"Scharf"|"Alarm"|"Debug" ################################################# ### 5001 Definition des Bausteins ################################################# # 5001|Anzahl Eingänge|Ausgänge|Zeitspeicher|Speicher|Berechnung bei Init # Anzahl Eingänge # | Ausgänge # | | Zeitspeicher # | | | Speicher # | | | | Berechnung bei Init # | | | | | 5001|11|9|2|1|1 # 11 Eingänge, 9 Ausgänge, 2 Timer, 1 Speicher, Berechnung bei Initialisierung # Debug #5001|11|10|2|1|1 # 11 Eingänge, 10 Ausgänge, 2 Timer, 1 Speicher, Berechnung bei Initialisierung ################################################# ### 5002 Definition der Eingänge EN[x] ################################################# # 5002|Index Eingang|Default Wert|Datenformat 0=numerisch 1=alphanummerisch # Index Eingang # | Default Wert # | | Datenformat # | | | 5002|1|0|0 # E1 5002|2|0|0 # E2 5002|3|0|0 # E3 5002|4|0|0 # E4 5002|5|0|0 # E5 5002|6|0|0 # Quittierung 5002|7|0|0 # Quittierungscode 5002|8|0|0 # Code 5002|9|0|0 # Scharfstellzeit 5002|10|0|0 # Scharfstellung 5002|11|0|0 # Alarmverzögerung ################################################# ###5003 Definition des Speichers SN[x] ################################################# #5003|Index Speicher|Initwert|Remanent # Index Speicher # | Initwert # | | Remanent # | | | 5003|1|0|0 # Alarm ################################################# ### 5004 Definition der Ausgänge AN[x] ################################################# # 5004|Index Ausgang|Initwert|Runden binär|Typ (1-send/2-sbc)|Datenformat 0=numerisch 1=alphanummerisch # Index Ausgang # | Initwert # | | Runden binär # | | | Typ # | | | | Datenformat # | | | | | 5004|1|0|1|1|0 # A1 5004|2|0|1|1|0 # A2 5004|3|0|1|1|0 # A3 5004|4|0|1|1|0 # A4 5004|5|0|1|1|0 # A5 5004|6|0|1|1|0 # Quittiert 5004|7|0|1|1|0 # CodeError 5004|8|0|1|1|0 # Scharf 5004|9|0|1|1|0 # Alarm # Alle Ausgänge werden bei Berechnung in Binärform gesendet. # Debug #5004|10|""|1|1|1 # Debug ################################################# ### 5012 Definition der Formelzeile(n) ################################################# # 5012|Ende nach Ausführen|Bedingung|Formel|Zeitformel|Ausgang|Zeitspeicher|Speichervariable|Negierter Ausgang # Ende nach Ausführen # | Bedingung # | | Formel # | | | Zeitformel # | | | | Ausgang # | | | | | Zeitspeicher # | | | | | | Speichervariable # | | | | | | | Negierter Ausgang # | | | | | | | | # 5012|0|"EC[1] and EN[1]"|"1"|""|1|0|0|2 #---------------------------------------------------------- # Scharfstellzeit(Zeit1) abgelaufen #---------------------------------------------------------- # Debug #5012|0|""|"'121 Scharfstellzeit(Zeit1) abgelaufen'"|""|10|0|0|0 5012|1|"OC[1]"|"1"|""|8|0|0|0 # Bedingung: Wenn 'Scharfstellzeit(Zeit1)' abgelaufen # Formel: Sende eins an 'Scharf(A8)' # Beende die Berechnung, führe keine weiteren Zeilen aus. #---------------------------------------------------------- # Alarmverzögerung(Zeit2) abgelaufen #---------------------------------------------------------- # Debug #5012|0|""|"'132 Alarmverzögerung(Zeit3) abgelaufen'"|""|10|0|0|0 5012|0|"OC[2] and AN[8]"|"1"|""|9|0|0|0 # Bedingung: Wenn 'Alarmverzögerung(Zeit2)' abgelaufen # und 'Scharf(A8)' = eins # Formel: Sende eins an 'Alarm(A9)'. 5012|1|"OC[2] and AN[8]"|"0"|""|0|0|1|0 # Bedingung: Wenn 'Alarmverzögerung(Zeit2)' abgelaufen # und 'Scharf(A8)' = eins # Formel: Setze 'Alarm(Speicher1)' auf null. # Beende die Berechnung, führe keine weiteren Zeilen aus. #---------------------------------------------------------- # Scharfstellung #---------------------------------------------------------- 5012|0|"EN[10] and (EI or (EC[10] and (EN[9]==0)))"|"1"|""|8|0|0|0 # Bedingung: Wenn 'Scharfstellung(E10)' = eins # und entweder Init oder 'Scharfstellung(E10)' gesetzt und 'Scharfstellzeit(E9)' = null # Formel: Sende eins an 'Scharf(A8)' # Debug #5012|0|""|"'153 Scharfstellzeit(Zeit2) gestartet'"|""|10|0|0|0 5012|0|"(EI==0) and EC[10] and EN[10] and (EN[9]>0)"|""|"EN[9]"|0|1|0|0 # Bedingung: Wenn nicht Init # und 'Scharfstellung(E10)' auf eins gesetzt und 'Scharfstellzeit(E9)' > null # Formel: Starte 'Scharfstellzeit(Zeit1)' mit 'Scharfstellzeit(E9)'. # Weiter zur 'Quittierung' # Debug #5012|0|""|"'162 Scharfstellung auf null gesetzt'"|""|10|0|0|0 5012|0|"(EI==0) and EC[10] and (EN[10]==0)"|"0"|"0"|8|1|0|0 # Bedingung: Wenn nicht Init und # 'Scharfstellung(E10)' auf null gesetzt # Formel: Sende null an 'Scharf(A8)' und halte 'Scharfstellzeit(Zeit1)' an. 5012|1|"(EI==0) and EC[10] and (EN[10]==0)"|"0"|"0"|0|2|1|0 # Bedingung: Wenn nicht Init und # 'Scharfstellung(E10)' auf null gesetzt # Formel: Halte 'Alarmverzögerung(Zeit2)' an # und setze 'Alarm(Speicher1)' auf null # Beende die Berechnung, führe keine weiteren Zeilen aus. # Hier keine Quittierung! 5012|0|"EI and EN[10]"|"1"|""|8|0|0|0 # Bedingung: Wenn Init und 'Scharfstellung(E10)' = eins # Formel: Sende eins an 'Scharf(A8)' #---------------------------------------------------------- # Ausgänge 1 - 5 #---------------------------------------------------------- 5012|0|"AN[8] and EN[1] and (EI or (EC[1] and not AA[1]))"|"1"|""|1|0|1|0 5012|0|"AN[8] and EN[2] and (EI or (EC[2] and not AA[2]))"|"1"|""|2|0|1|0 5012|0|"AN[8] and EN[3] and (EI or (EC[3] and not AA[3]))"|"1"|""|3|0|1|0 5012|0|"AN[8] and EN[4] and (EI or (EC[4] and not AA[4]))"|"1"|""|4|0|1|0 5012|0|"AN[8] and EN[5] and (EI or (EC[5] and not AA[5]))"|"1"|""|5|0|1|0 # Bedingung: Wenn 'Scharf(A8)' = eins und 'E[1-5]' = eins # und entweder Init oder 'E[1-5]' gesetzt und 'A[1-5]' = null # Formel: Sende eins an 'A[1-5]' und setze 'Alarm(Speicher1)' auf eins #---------------------------------------------------------- # Alarm #---------------------------------------------------------- # Debug #5012|0|""|"'196 Alarm direkt auf eins'"|""|10|0|0|0 5012|0|"AN[8] and SN[1] and (EI or EN[11]==0)"|"1"|""|9|0|0|0 # Bedingung: Wenn 'Scharf(A8)' = eins und 'Alarm(Speicher1)' = eins # und entweder Init oder 'Alarmverzögerung(E11)' = null # Formel: Sende eins an 'Alarm(A9)'. 5012|1|"AN[8] and SN[1] and (EI or EN[11]==0)"|"0"|""|0|0|1|0 # Bedingung: Wenn 'Scharf(A8)' = eins und 'Alarm(Speicher1)' = eins # und entweder Init oder 'Alarmverzögerung(E11)' = null # Formel: Setze 'Alarm(Speicher1)' auf null. # Beende die Berechnung, führe keine weiteren Zeilen aus. # Debug #5012|0|""|"'209 Starte Alarmverzögerung(Zeit3)'"|""|10|0|0|0 5012|1|"AN[8] and SC[1] and SN[1] and (EI==0) and (EN[11]>0)"|""|"EN[11]"|0|2|0|0 # Bedingung: Wenn 'Scharf(A8)' = eins # und 'Alarm(Speicher1)' auf eins gesetzt # und nicht Init und 'Alarmverzögerung(E11)' > null # Formel: Starte 'Alarmverzögerung(Zeit2)' mit 'Alarmverzögerung(E11)'. # Beende die Berechnung, führe keine weiteren Zeilen aus. # Debug #5012|0|""|"'219 Abbruch bei Init'"|""|10|0|0|0 5012|1|"EI"|""|""|0|0|0|0 # Bedingung: Wenn Init # Formel: - # Beende die Berechnung, führe keine weiteren Zeilen aus. #---------------------------------------------------------- # Quittierung #---------------------------------------------------------- 5012|0|"AA[1] and ((EC[10] and EN[10]) or (EC[6] and EN[6]) or (EC[7] and (EN[7]==EN[8])))"|"0"|""|1|0|0|0 5012|0|"AA[2] and ((EC[10] and EN[10]) or (EC[6] and EN[6]) or (EC[7] and (EN[7]==EN[8])))"|"0"|""|2|0|0|0 5012|0|"AA[3] and ((EC[10] and EN[10]) or (EC[6] and EN[6]) or (EC[7] and (EN[7]==EN[8])))"|"0"|""|3|0|0|0 5012|0|"AA[4] and ((EC[10] and EN[10]) or (EC[6] and EN[6]) or (EC[7] and (EN[7]==EN[8])))"|"0"|""|4|0|0|0 5012|0|"AA[5] and ((EC[10] and EN[10]) or (EC[6] and EN[6]) or (EC[7] and (EN[7]==EN[8])))"|"0"|""|5|0|0|0 # Bedingung: Wenn 'A[1-5]' = eins # und entweder 'Scharfstellung(E10)' auf eins gesetzt # oder 'Quittierung(E6)' auf eins gesetzt # oder 'Quittierungscode(E7)' gesetzt und 'Quittierungscode(E7)' dem 'Code(E8)' entspricht # Formel: Sende null an 'A[1-5]' 5012|0|"AA[9] and ((EC[6] and EN[6]) or (EC[7] and (EN[7]==EN[8])))"|"0"|""|9|0|0|0 # Bedingung: Wenn 'Alarm(A9)' = eins # und entweder 'Quittierung(E6)' auf eins gesetzt # oder 'Quittierungscode(E7)' gesetzt und 'Quittierungscode(E7)' dem 'Code(E8)' entspricht # Formel: Sende null an 'Alarm(A9)' 5012|0|"(EC[6] and EN[6]) or (EC[7] and (EN[7]==EN[8]))"|"1"|""|6|0|0|0 # Bedingung: Wenn 'Quittierung(E6)' auf eins gesetzt # oder wenn 'Quittierungscode(E7)' gesetzt und 'Quittierungscode(E7)' = 'Code(E8)' # Formel: Sende eins an 'Quittiert(A6)' 5012|0|"(EC[6] and EN[6]) or (EC[7] and (EN[7]==EN[8]))"|"0"|"0"|0|2|0|0 # Bedingung: Wenn 'Quittierung(E6)' auf eins gesetzt # oder wenn 'Quittierungscode(E7)' gesetzt und 'Quittierungscode(E7)' = 'Code(E8)' # Formel: Sende null an 'Alarmverzögerung(Zeit2)' und halte 'Alarmverzögerung(Zeit2)' an. #---------------------------------------------------------- # Quittierung - CodeError #---------------------------------------------------------- 5012|0|""|"(EN[7]!=EN[8]) or (EC[6] and (EN[6]==0))"|""|7|0|0|0 # Bedingung: - # Formel: Sende eins an 'CodeError(A7)' wenn 'Quittierungscode(E7)' != 'Code(E8)' # oder wenn an 'Quittierung(E6)' eine null gesendet wurde # Debug #5012|0|""|"'265 Ende'"|""|10|0|0|0