################################################################################################################ # Definition Logikbaustein "Alarm 10fach" ################################################################################################################ # Alex Dobusch Gebäudeautomation (c) # http://www.dobusch.ch/hslogic # Version 1.001 # 31.05.2006 # ID 11601 # 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 10fach"|0|14|"E1"|"E2"|"E3"|"E4"|"E5"|"E6"|"E7"|"E8"|"E9"|"E10"|"Quittierung"|"Quittierungscode"|"Code"|"Scharfstellung"|14|"A1"|"A2"|"A3"|"A4"|"A5"|"A6"|"A7"|"A8"|"A9"|"A10"|"Quittiert"|"CodeError"|"Scharf"|"Alarm" # Debug #5000|"Alex Dobusch Gebäudeautomation\Alarm 10fach"|0|14|"E1"|"E2"|"E3"|"E4"|"E5"|"E6"|"E7"|"E8"|"E9"|"E10"|"Quittierung"|"Quittierungscode"|"Code"|"Scharfstellung"|15|"A1"|"A2"|"A3"|"A4"|"A5"|"A6"|"A7"|"A8"|"A9"|"A10"|"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|14|14|0|1|1 # 14 Eingänge, 14 Ausgänge, 0 Timer, 1 Speicher, Berechnung bei Initialisierung # Debug #5001|14|15|0|1|1 # 14 Eingänge, 15 Ausgänge, 0 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 # E6 5002|7|0|0 # E7 5002|8|0|0 # E8 5002|9|0|0 # E9 5002|10|0|0 # E10 5002|11|0|0 # Quittierung 5002|12|0|0 # Quittierungscode 5002|13|0|0 # Code 5002|14|0|0 # Scharfstellung ################################################# ###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 # A6 5004|7|0|1|1|0 # A7 5004|8|0|1|1|0 # A8 5004|9|0|1|1|0 # A9 5004|10|0|1|1|0 # A10 5004|11|0|1|1|0 # Quittiert 5004|12|0|1|1|0 # CodeError 5004|13|0|1|1|0 # Scharf 5004|14|0|1|1|0 # Alarm # Alle Ausgänge werden bei Berechnung in Binärform gesendet. # Debug #5004|15|""|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 #---------------------------------------------------------- # Scharfstellung #---------------------------------------------------------- 5012|0|"EN[14] and (EI or EC[14])"|"1"|""|13|0|0|0 # Bedingung: Wenn 'Scharfstellung(E14)' = eins # und entweder Init oder 'Scharfstellung(E14)' gesetzt # Formel: Sende eins an 'Scharf(A13)' # Debug #5012|0|""|"'134 Scharfstellung auf null gesetzt'"|""|15|0|0|0 5012|1|"(EI==0) and EC[14] and (EN[14]==0)"|"0"|""|13|0|0|0 # Bedingung: Wenn nicht Init und # 'Scharfstellung(E14)' auf null gesetzt # Formel: Sende null an 'Scharf(A13)' # Beende die Berechnung, führe keine weiteren Zeilen aus. # Hier keine Quittierung! 5012|0|"EI and EN[14]"|"1"|""|13|0|0|0 # Bedingung: Wenn Init und 'Scharfstellung(E14)' = eins # Formel: Sende eins an 'Scharf(A13)' #---------------------------------------------------------- # Init Alarmspeicher #---------------------------------------------------------- 5012|0|"SN[1]"|"0"|""|0|0|1|0 # Bedingung: Wenn 'Alarm(Speicher1)' = eins # Formel: Schreibe null in 'Alarm(Speicher1)' #---------------------------------------------------------- # Ausgänge 1 - 10 #---------------------------------------------------------- 5012|0|"AN[13] and EN[1] and (EI or (EC[1] and not AA[1]))"|"1"|""|1|0|1|0 5012|0|"AN[13] and EN[2] and (EI or (EC[2] and not AA[2]))"|"1"|""|2|0|1|0 5012|0|"AN[13] and EN[3] and (EI or (EC[3] and not AA[3]))"|"1"|""|3|0|1|0 5012|0|"AN[13] and EN[4] and (EI or (EC[4] and not AA[4]))"|"1"|""|4|0|1|0 5012|0|"AN[13] and EN[5] and (EI or (EC[5] and not AA[5]))"|"1"|""|5|0|1|0 5012|0|"AN[13] and EN[6] and (EI or (EC[6] and not AA[6]))"|"1"|""|6|0|1|0 5012|0|"AN[13] and EN[7] and (EI or (EC[7] and not AA[7]))"|"1"|""|7|0|1|0 5012|0|"AN[13] and EN[8] and (EI or (EC[8] and not AA[8]))"|"1"|""|8|0|1|0 5012|0|"AN[13] and EN[9] and (EI or (EC[9] and not AA[9]))"|"1"|""|9|0|1|0 5012|0|"AN[13] and EN[10] and (EI or (EC[10] and not AA[10]))"|"1"|""|10|0|1|0 # Bedingung: Wenn 'Scharf(A13)' = eins und 'E[1-10]' = eins # und entweder Init oder 'E[1-10]' gesetzt und 'A[1-10]' = null # Formel: Sende eins an 'A[1-10]' und schreibe eins in 'Alarm(Speicher1)' #---------------------------------------------------------- # Alarm #---------------------------------------------------------- # Debug #5012|0|""|"'175 Alarm auf eins'"|""|15|0|0|0 5012|1|"AN[13] and SN[1]"|"1"|""|14|0|0|0 # Bedingung: Wenn 'Scharf(A13)' = eins und 'Alarm(Speicher1)' = eins # Formel: Sende eins an 'Alarm(A14)'. # Beende die Berechnung, führe keine weiteren Zeilen aus. # Debug #5012|0|""|"'183 Abbruch wenn Init'"|""|15|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[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|1|0|0|0 5012|0|"AA[2] and ((EC[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|2|0|0|0 5012|0|"AA[3] and ((EC[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|3|0|0|0 5012|0|"AA[4] and ((EC[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|4|0|0|0 5012|0|"AA[5] and ((EC[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|5|0|0|0 5012|0|"AA[6] and ((EC[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|6|0|0|0 5012|0|"AA[7] and ((EC[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|7|0|0|0 5012|0|"AA[8] and ((EC[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|8|0|0|0 5012|0|"AA[9] and ((EC[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|9|0|0|0 5012|0|"AA[10] and ((EC[14] and EN[14]) or (EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|10|0|0|0 # Bedingung: Wenn 'A[1-10]' = eins # und entweder 'Scharfstellung(E14)' auf eins gesetzt # oder 'Quittierung(E11)' auf eins gesetzt # oder 'Quittierungscode(E12)' gesetzt und 'Quittierungscode(E12)' dem 'Code(E13)' entspricht # Formel: Sende null an 'A[1-10]' 5012|0|"AA[14] and ((EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13])))"|"0"|""|14|0|0|0 # Bedingung: Wenn 'Alarm(A14)' = eins # und entweder 'Quittierung(E11)' auf eins gesetzt # oder 'Quittierungscode(E12)' gesetzt und 'Quittierungscode(E12)' dem 'Code(E13)' entspricht # Formel: Sende null an 'Alarm(A14)' 5012|0|"(EC[11] and EN[11]) or (EC[12] and (EN[12]==EN[13]))"|"1"|""|11|0|0|0 # Bedingung: Wenn 'Quittierung(E11)' auf eins gesetzt # oder wenn 'Quittierungscode(E12)' gesetzt und 'Quittierungscode(E12)' = 'Code(E13)' # Formel: Sende eins an 'Quittiert(A11)' #---------------------------------------------------------- # Quittierung - CodeError #---------------------------------------------------------- 5012|0|""|"(EN[12]!=EN[13]) or (EC[11] and (EN[11]==0))"|""|12|0|0|0 # Bedingung: - # Formel: Sende eins an 'CodeError(A12)' wenn 'Quittierungscode(E12)' != 'Code(E13)' # oder wenn an 'Quittierung(E11)' eine null gesendet wurde # Debug #5012|0|""|"'229 Ende'"|""|15|0|0|0