################################################################################################################ # Definition Logikbaustein "Datum_Wandler" ################################################################################################################ # Alex Dobusch Gebäudeautomation (c) # http://www.dobusch.ch/hslogic # Version 1.001 # 18.03.2008 # ID 11614 # 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 ################################################################################################################ # 18.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\Datum Wandler"|0|1|"Datum"|2|"Wochentag"|"Datum" ################################################# ### 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|1|2|0|4|1 # 1 Eingang, 2 Ausgänge, 0 Timer, 4 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|""|1 # Datum im format '%d.%m.&y' ################################################# ###5003 Definition des Speichers SN[x] ################################################# #5003|Index Speicher|Initwert|Remanent # Index Speicher # | Initwert # | | Remanent # | | | 5003|1|""|0 # Puffer Wochentage-Liste 5003|2|""|0 # Puffer Monate-Liste 5003|3|0|0 # Puffer Datum 5003|4|""|0 # Puffer Datum ################################################# ### 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 # Wochentag 5004|2|""|0|1|1 # Datum ################################################# ### 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|0|"EI==1"|"['Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag']"|""|0|0|1|0 5012|0|"EI==1"|"['Jan.','Feb.','März','Apr.','Mai','Juni','Juli','Aug.','Sep.','Okt.','Nov.','Dez.']"|""|0|0|2|0 # leeres Datum, Ausgänge löschen 5012|0|"(EI==0) and EC[1] and (len(str(EN[1])) <= 0)"|"''"|""|1|0|0|0 5012|1|"(EI==0) and EC[1] and (len(str(EN[1])) <= 0)"|"''"|""|2|0|0|0 # Datum wandeln 5012|0|"(EI==0) and EC[1]"|"__import__('time').mktime(__import__('time').strptime(EN[1], '%d.%m.%y'))"|""|0|0|3|0 # Wochentag 5012|0|"(EI==0) and EC[1]"|"SN[1][__import__('time').localtime(SN[3])[6]]"|""|1|0|0|0 # erzeugt Datum 5012|0|"(EI==0) and EC[1]"|"__import__('string').replace('%d %mmm %Y','%mmm',SN[2][__import__('time').localtime(SN[3])[1]-1])"|""|0|0|4|0 5012|0|"(EI==0) and EC[1]"|"__import__('time').strftime(SN[4],__import__('time').localtime(SN[3]))"|""|2|0|0|0