################################################################################################################ # Definition Logikbaustein "Scheduler" ################################################################################################################ # Alex Dobusch Gebäudeautomation (c) # http://www.dobusch.ch/hslogic # Version 1.001 # 09.03.2008 # ID 11613 # 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 ################################################################################################################ # 09.03.2008 Baustein erstellt ################################################################################################################ ################################################# ### 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\Ereignisbaustein"|1|3|"E1 Refresh"|"E2 Textdatei"|"E3 Offset"|6|"A1 Datum"|"A2 Ereignis 1"|"A3 Ereignis 2"|"A4 Ereignis 3"|"A5 Ereignis 4"|"A6 Ereignis 5" ################################################# ### 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|3|6|0|2|0 ################################################# ### 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 Refreshzeit (min) 5002|2|""|1 # E2 Textdatei 5002|3|0|0 # Suche Einträge für Tag 0..n, 0=heute ################################################# ###5003 Definition des Speichers SN[x] ################################################# #5003|Index Speicher|Initwert|Remanent # Index Speicher # | Initwert # | | Remanent # | | | 5003|1|"''"|0 #Puffer 5003|2|0|0 #Hilfsspeicher für Indexsuche ################################################# ### 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 # A1 Datum 5004|2|""|0|1|1 # A2 Ereignis 1 5004|3|""|0|1|1 # A3 Ereignis 2 5004|4|""|0|1|1 # A4 Ereignis 3 5004|5|""|0|1|1 # A5 Ereignis 4 5004|6|""|0|1|1 # A6 Ereignis 5 ################################################# ### 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 #5012|1|"(EN[3]<0) or (EN[3]>6)"|"'E3 out of range'"|""|1|0|0|0 #Puffer 5012|0|"EC[1] or EC[2] or EC[3]"|"''"|""|0|0|1|0 5012|0|"EC[1] or EC[2] or EC[3]"|"-1"|""|0|0|2|0 5012|0|"(EC[1] or EC[2] or EC[3]) and ((__import__('time').strftime('%d.%m', __import__('time').localtime(__import__('time').time() + 60*60*24*EN[3]))) in map(lambda x:x.strip().split(chr(124),1)[0].strip(), EN[2].split('\n')))"|"map(lambda x:x.strip().split(chr(124),1)[0].strip(), EN[2].split('\n')).index(__import__('time').strftime('%d.%m', __import__('time').localtime(__import__('time').time() + 60*60*24*EN[3])))"|""|0|0|2|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2]!=-1)"|"EN[2].split('\n')[SN[2]].strip()"|""|0|0|1|0 5012|0|"EC[1] or EC[2] or EC[3]"|"-1"|""|0|0|2|0 5012|0|"(EC[1] or EC[2] or EC[3]) and ((__import__('time').strftime('%d.%m.%y', __import__('time').localtime(__import__('time').time() + 60*60*24*EN[3]))) in map(lambda x:x.strip().split(chr(124),1)[0].strip(), EN[2].split('\n')))"|"map(lambda x:x.strip().split(chr(124),1)[0].strip(), EN[2].split('\n')).index(__import__('time').strftime('%d.%m.%y', __import__('time').localtime(__import__('time').time() + 60*60*24*EN[3])))"|""|0|0|2|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2]!=-1)"|"EN[2].split('\n')[SN[2]].strip()"|""|0|0|1|0 5012|0|"EC[1] or EC[2] or EC[3]"|"len(SN[1])"|""|0|0|2|0 #Ausgabe 5012|0|"EC[1] or EC[2] or EC[3]"|"__import__('time').strftime('%d.%m.%y', __import__('time').localtime(__import__('time').time() + 60*60*24*EN[3]))"|""|1|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] > 0 and (len(SN[1].split(chr(124)))>1))"|"SN[1].split(chr(124))[1]"|""|2|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] > 0 and (len(SN[1].split(chr(124)))>2))"|"SN[1].split(chr(124))[2]"|""|3|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] > 0 and (len(SN[1].split(chr(124)))>3))"|"SN[1].split(chr(124))[3]"|""|4|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] > 0 and (len(SN[1].split(chr(124)))>4))"|"SN[1].split(chr(124))[4]"|""|5|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] > 0 and (len(SN[1].split(chr(124)))>5))"|"SN[1].split(chr(124))[5]"|""|6|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] == 0 or (len(SN[1].split(chr(124)))<=1))"|"''"|""|2|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] == 0 or (len(SN[1].split(chr(124)))<=2))"|"''"|""|3|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] == 0 or (len(SN[1].split(chr(124)))<=3))"|"''"|""|4|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] == 0 or (len(SN[1].split(chr(124)))<=4))"|"''"|""|5|0|0|0 5012|0|"(EC[1] or EC[2] or EC[3]) and (SN[2] == 0 or (len(SN[1].split(chr(124)))<=5))"|"''"|""|6|0|0|0