Building Automation eHouse – Ustvarjanje Windows programske opreme, prosojnice in algoritmi po meri

Avtomatizacija doma eHouse s programsko opremo PC omogoča, da ustvarite prekrivne za gradnjo sistema avtomatizacije .
To vam omogoča, da ustvarite svojo , Posamezni algoritmi , se ne izvajajo v programski opremi firmware ali gonilnik, ki nadzoruje serijsko Avtomatizacija doma eHouse .
V ta namen , nudimo uporabnikom z oznakami programske opreme (v Delphi 5) . Lahko se zberejo z novejšimi različicami Delphi ali se uporabljajo za druge programske jezike .
Zavestno smo se odločili to arhaično različic, saj so že na voljo brezplačno za amatersko programa .
Delajo tako kot zanesljivo na Windows XP , Vista , Windows 7 oboje 32 in 64-bitni .
Ta programska oprema se imenuje eHouseLogAnalizer in ti zahtevki predloge dnevniki, ki berejo besedilne datoteke posodobljene .
To je mogoče upravljati in spremljati KillWdt aplikacije . exe .
Glavne značilnosti uporabe:

  • Branje iz statusa in imena vseh gonilnikov
  • Preberite status in vpišite imena vseh voznikov
  • Preberite meritve in imena vseh voznikov merilnih vhodov
  • Naloži vse podatke v notranjem pomnilniku programa , ki se lahko nadalje obdelujejo vloge

Aplikacija, ki uporablja stanje ustvarjenih datotek v besedilne datoteke v imeniku ‘ dnevniki / status / ‘ razširitev ‘ . Stanje ‘ .
Datoteka je samo za branje v primeru sprememb v uporabi eHouse . exe .

Upravljavci podatkov se naložijo v naslednjih primerih rekordov ” ehouse_rm_em_hm ” navedene v matriki RM .

Poleg tega , Podatki se hranijo HeatManager naslednje spremenljivke:
bonfire_status: string ; / / Status kres za HeatManager – Status ogrevanje s kaminom plošča eHouse . exe
boiler_status: string ; / / Status kotla za HM – Stanje ogrevalnega kotla eHouse plošče . exe
Solar_status: string ; / / Status solarnega sistema – Stanje solarnega ogrevalnega eHouse plošče . exe
recuperator_status: string ; / / Status okrevanja , prezračevanje , zrak za ogrevanje – status prezračevanja ogrevanja in rekuperacijo toplote
HADC: array [0 . . 15] o dvojnem ; / / Heat Temperature upravljavec – Temperatura meritve HeatManager
/ / Toplotne Upravljalec indeksi za neposreden dostop HADC niz – Stalne indeksi temperature za neposredno obravnavo HeatManager temperature
CONST HM_GWC = 3 ; / / GWC – Igrišče toplotni izmenjevalec
HM_KOM1 = 4 ; / / Kamin Coat 1 – Bonfire jopič z vodo 1
HM_KOMKONV = 5 ; / / Kamin konvekcyjne – konvekcijo kres
HM_KOM2 = 6 ; / / Fire PLANE 2 – kres jakna vode 2 (backup)
HM_TWEWN = 7 ; / / Notranja temperatura – notranja temperatura
HM_SOLAR = 9 ; / / Kolektorja ne – Solarni sistem
HM_ZEWNPN = 8 ; / / Zunanja temperatura severne – Zunanja temperatura severne
HM_ZEWNPD = 1 ; / / Zunanja temperatura na jugu – Zunanja temperatura jug
HM_KOC = 10 ; / / Temperatura kotla – temperatura kotla
HM_BANDOL = 11 ; / / CO / toplo vodo dol – vroče Watter spodnji varovalni
HM_REQIN = 12 ; / / Čist zrak rekuperatorja vnos – okrevanja čistega zraka Vhod
HM_REQOUT = 13 ; / / Izhod rekuperatorja dom – heaten okrevanja svež zrak udarec v sobo – Temperatura
HM_NAG = 14 ; / / Hladilniki 3 – ventil za ogrevanje in radiatorji – Temperatura po treh cutoff načine za grelec vode ali drugih ogrevalnega sistema
HM_REQWYC = 15 ; / / Home rekuperatorja izvleček umazana – okrevanja od doma umazanega izpušnih plinov temp
HM_BANGORA = 2 ; / / Ogrevanje / toplo vodo gora – tople vode buffer TOP
HM_BANSRO = 0 ; / / Ogrevanje / Hranilnik sredstvo – Bližnji tople vode buffer
var HADCNames: array [0 . . 15] niz ; / / Imena tipal (merjenje vložkov) HeatManagera
Osnovne funkcije EhouseLogAnalizer:
Postopek init_heat_temperature_names ; / / Inicializacija in / ali temperaturnimi senzorji prebral imena HM
Postopek loadnames_rm ; / / Nalaganje RoomManagerĂłw imena (eHouse 1)
Postopek readethernetdevs ; / / Bere Ethernet voznik imena (eHouse 2)
get_index_rm funkcija (str: string): integer ; / / Vrne indeks tabele z iskanjem roomManagerami z imenom datoteke statusa
Funkcija gb (chr: char): boolean ; / / Vrne logično vrednost za branje statusa
adc_hm postopek (str: string ; Indeks: integer) ; / / Pretvori niz z zabeleženih temperatur branje stanja HeatManagera
adc_rm postopek (str: string ; Indeks: integer) ; / / Pretvori niz analognih meritev pri branju stanja RoomManagerĂłw
GBS funkcija (b: boolean): String ; / / Napišite boolean v besedilni obliki (0 , 1)
RMDeviceIndexByName funkcija (str: string): integer ; / / Vrne indeks tabele z iskanjem RoomManagerami z imenom voznika
RMGetOutputStateNr funkcija (indeks: integer ; OutputNr: integer): boolean ; / / Nazaj RM izhodno stanje [indeks] in izhodno številko OutputNR
RMGetOutputState funkcija (indeks: integer ; OutputName: string): boolean ; / / Vrne izhodno stanje RM [indeks] in zaklical OutputName
RMGetInputStateNr funkcija (indeks: integer ; InputNr: integer): boolean ; / / Vrne status vhodnega RM [indeks] in število InputNr vstopne
RMGetInputState funkcija (indeks: integer ; InputName: string): boolean ; / / Vrne status vhodnega RM [indeks] in ime vnosa InputName
RMGetTempNr funkcija (indeks: integer ; InputNr: integer): zakonska ; / / Vrne RM temperature [indeks] in število InputNr vstopne
RMGetTemp funkcija (indeks: integer ; InputName: string): zakonska ; / / Vrne RM temperature [indeks] in ime vnosa InputName
RMGetInvPercent funkcija (indeks: integer ; InputName: string): zakonska ; / / Vrne odstotek meritev hrbtni 100 % – x RM [indeks] in ime vnosa InputName (v odnosu do upravljavca napajalne napetosti)
RMGetInvPercentNr funkcija (indeks: integer ; InputNr: integer): zakonska ; / / Vrne odstotek meritev hrbtni 100 % – x RM [indeks] in število InputNr vstopa (v odnosu do upravljavca napajalne napetosti)
RMGetPercent funkcija (indeks: integer ; InputName: string): zakonska ; / / Vrne odstotek meritev RM [indeks] in ime vnosa InputName (v odnosu do upravljavca napajalne napetosti)
RMGetPercentNr funkcija (indeks: integer ; InputNr: integer): zakonska ; / / Vrne odstotek meritev hrbtni 100 % – x RM [indeks] in ime vnosa InputNr (v odnosu do upravljavca napajalne napetosti)
RMGetDeviceOutputState funkcija (Devname: string ; OutputName: string): boolean ; / / Vrne stanje izhodnega gonilnika imenovanega Devname in zaklical OutputName
RMGetDeviceInputState funkcija (Devname: string ; InputName: string): boolean ; / / Vrne status voznika vhod ime in ime InputName vstopa Devname
HMGetTemp funkcija (InputName: string): zakonska ; / / Nazaj na temperaturo merilnega vhoda pozval HeatManagera InputName
HMGetTempNr funkcija (InputNr: integer): zakonska ; / / Nazaj temperatura merjenja števila vhod za HeatManagera InputNr (1 . . 16)
chk_int funkcija (st: string): integer ; / / Safe pretvori niz v celo število
Postopek update_status ; / / Posodobi stanje vseh voznikov v tabeli (je treba teči občasno)
Postopek Test_save ; / / Preskusni postopek za pisanje rezultate v besedilno datoteko za enostavno
Inicializacija gonilnika in vsa imena se opravi enkrat zaženete (FormCreate)
Postopek TForm1 . FormCreate (Sender: TObject) ;
začetek
Pot: = getcurrentdir () ; / / Get trenutni potek programa mora biti v imeniku % eHouse_DIR % \ BIN \
Pot: = stringreplace (pot , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get pot eHouse uporabe – določa eHouse aplikacij pot
loadnames_rm ; / / Nalaganje imena krmilnik ehouse1 – obremenitev voznikov ime eHouse 1
init_heat_temperature_names ; / / Nalaganje senzorji heatManagera ime
readethernetdevs ; / / Nalaganje krmilniki Ethernet eHouse imena – branje eHouse naprave imena 2
Timer1 . Interval: = 3000 ; / / Set ciklično naloga interval v milisekundah – Nastavi čas, da začnete preverjanje ciklične podatke
Timer1 . Omogočeno: = true ; / / Start samodejnih nalog (sprememba statusa – vključuje redno preverjanje podatkov
update_status ; / / Bere prvo stanje
konec ;
Ciklični podatki preverjanje se opravi funkcijo Timer1 (Timer1Timer) teče v časovnem intervalu, določen v parametru Timer1 . Interval (v milisekundah) .
Postopek TForm1 . Timer1Timer (Sender: TObject) ;
var tf: besedilne datoteke ;
začetek
update_status ; / / Pretvori stanje voznika
Test_save ; / / Za test piše vse rezultate v besedilno datoteko
poskusite / / ustvariti datoteke marker za uporabo KillExec . exe, ki lahko ” gledanje ” Uporaba pred nesrečo
AssignFile (tf , Pot + ‘ dnevniki \ log – analizer . stp ‘ ) ;
/ / Opozori WDT Ta aplikacija deluje pravilno uporabo stampfile ” log \ dnevnik – analizer . stp ”
Reportaža (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
Končno ;
closefile (tf) ;
konec ;
konec ;