Building Automation eHouse – Oprettelse af en Windows-software overlays og tilpassede algoritmer

Home Automation eHouse med PC-software kan du oprette overlejringer til bygnings automation system .
Dette giver dig mulighed for at oprette din egen , individuelle algoritmer , bliver ikke implementeret i firmware eller driver software, der styrer den serielle Home Automation eHouse .
Til dette formål , giver vi brugerne med software kildekoder (i Delphi 5) . De kan kompileres med nyere versioner af Delphi eller bruges til andre programmeringssprog .
Vi har bevidst valgt denne arkaiske versioner, da de allerede er tilgængelige gratis for amatør program .
De arbejder lige så pålideligt på Windows XP , Vista , Windows 7 både 32 og 64 bit .
Denne software kaldes eHouseLogAnalizer og disse logs skabelon applikationer, der læser tekst filer op til dato .
Det kan styres og overvåges af applikationer KillWdt . exe .
Vigtige funktioner i programmet:

  • Udlæsning af status og navne med alle drivere
  • Læs status og indtaste navnene på alle bilister
  • Læs målingerne og navnene på alle de drivere, der måler indgange
  • Indlæs alle data til det interne program hukommelse , der kan bearbejdes yderligere ved en applikation

Programmet bruger status af oprettede filer til tekst filer i en mappe ‘ logs / status / ‘ udvidelse ‘ . status ‘ .
Filen er skrivebeskyttet i tilfælde af ændringer i ansøgningen eHouse . exe .

Registeransvarlige er lagt i følgende tilfælde Records ” ehouse_rm_em_hm ” opført i arrayet RM .

Desuden , data holdes HeatManager følgende variabler:
bonfire_status: string ; / / Status for bål for HeatManager – Status pejs opvarmningsplade eHouse . exe
boiler_status: string ; / / Status for kedlen for HM – status af kedlen opvarmningsplade eHouse . exe
Solar_status: string ; / / Status for solsystemet – status af solvarme panel eHouse . exe
recuperator_status: string ; / / Status for rekreation , ventilation , luftopvarmning – status af varme ventilation og varmegenvinding
HADC: array [0 . . 15] af dobbelt ; / / Heat Temperaturer leder – temperatur målinger HeatManager
/ / Heat manageren indeks for direkte adgang til HADC opstilling – Konstant temperatur indeks for direkte aflæsning af temperatur HeatManager
CONST HM_GWC = 3 ; / / GWC – Jorden varmeveksler
HM_KOM1 = 4 ; / / Pejs Coat 1 – Bonfire vandkappe 1
HM_KOMKONV = 5 ; / / Pejs konvekcyjne – konvektion bål
HM_KOM2 = 6 ; / / Fire plan 2 – bål vand jakke 2 (backup)
HM_TWEWN = 7 ; / / Intern stuetemperatur – indre rumtemperatur
HM_SOLAR = 9 ; / / Collector søn – solsystem
HM_ZEWNPN = 8 ; / / Ekstern temperatur nord – ekstern temperatur nord
HM_ZEWNPD = 1 ; / / Ekstern temperatur i syd – ekstern temperatur syd
HM_KOC = 10 ; / / Temperatur kedel – kedeltemperatur
HM_BANDOL = 11 ; / / CO / varmtvandsbeholder ned – hot watter bund buffer
HM_REQIN = 12 ; / / Ren luft rekuperator indgang – rekreation klare luft input
HM_REQOUT = 13 ; / / Output rekuperator home – heaten rekreation frisk blæseluft til værelse – temperatur
HM_NAG = 14 ; / / Temperatur kontrolleret tre – vejsventil til opvarmning og radiatorer – temperatur efter tre måder cutoff for vandvarmer eller andet varmesystem
HM_REQWYC = 15 ; / / Forside rekuperator ekstrakt beskidt – rekreation hjemmefra dirty exhaust temp
HM_BANGORA = 2 ; / / Opvarmning / varmtvandsbeholder gora – varmt vand puffer TOP
HM_BANSRO = 0 ; / / Opvarmning / varmt vand lagertank et middel – MIDTERSTE varmt vand puffer
was HADCNames: array [0 . . 15] snor ; / / Navnene på de sensorer (måling af input) HeatManagera
Grundlæggende funktioner EhouseLogAnalizer:
procedure init_heat_temperature_names ; / / Initialiser og / eller temperaturfølere læse navnene på HM
procedure loadnames_rm ; / / Indlæs RoomManagerĂłw navne (eHouse 1)
procedure readethernetdevs ; / / Læser Ethernet driveren navne (eHouse 2)
get_index_rm funktion (str.: string): integer ; / / Returnerer indekset i tabellen med roomManagerami søgning efter filnavn status
Funktionen gb (chr: char): boolean ; / / Returnerer en boolesk værdi for den læste status
adc_hm procedure (str: string ; index: heltal) ; / / Konverterer strengen med optagede temperaturer af read status HeatManagera
adc_rm procedure (str: string ; index: heltal) ; / / Konverterer streng af analoge målinger, når du læser status RoomManagerĂłw
GBS-funktionen (b: boolean): String ; / / Skriv boolean i tekstform (0 , 1)
RMDeviceIndexByName funktion (str.: string): integer ; / / Returnerer indekset i tabellen med RoomManagerami søg efter navn driver
RMGetOutputStateNr funktion (indeks: integer ; OutputNr: integer): boolean ; / / Return output state RM [indeks] og output nummer OutputNR
RMGetOutputState funktion (indeks: integer ; OutputName: string): boolean ; / / Returnerer output state RM [indeks] og råbte OutputName
RMGetInputStateNr funktion (indeks: integer ; InputNr: integer): boolean ; / / Returnerer status for input RM [indeks] og antallet af indrejse InputNr
RMGetInputState funktion (indeks: integer ; InputName: string): boolean ; / / Returnerer status for input RM [indeks] og navnet på posten InputName
RMGetTempNr funktion (indeks: integer ; InputNr: integer): double ; / / Returnerer RM temperatur [indeks] og antallet af indrejse InputNr
RMGetTemp funktion (indeks: integer ; InputName: string): double ; / / Returnerer RM temperatur [indeks] og navnet på posten InputName
RMGetInvPercent funktion (indeks: integer ; InputName: string): double ; / / Returnerer en procentdel måling af revers 100 % – x RM [indeks] og navnet på posten InputName (i forhold til forsyningsspændingen controller)
RMGetInvPercentNr funktion (indeks: integer ; InputNr: integer): double ; / / Returnerer en procentdel måling af revers 100 % – x RM [indeks] og antallet af indrejse InputNr (i forhold til forsyningsspændingen controller)
RMGetPercent funktion (indeks: integer ; InputName: string): double ; / / Returnerer en procentdel måling af RM [indeks] og navnet på posten InputName (i forhold til forsyningsspændingen controller)
RMGetPercentNr funktion (indeks: integer ; InputNr: integer): double ; / / Returnerer en procentdel måling af revers 100 % – x RM [indeks] og navnet på posten InputNr (i forhold til forsyningsspændingen controller)
RMGetDeviceOutputState funktion (Devname: string ; OutputName: string): boolean ; / / Returnerer staten af ​​output driver kaldes Devname og råbte OutputName
RMGetDeviceInputState funktion (Devname: string ; InputName: string): boolean ; / / Returnerer status for førerens input navn og navnet på posten Devname InputName
HMGetTemp funktion (InputName: string): double ; / / Return temperatur af input opfordrede til HeatManagera InputName
HMGetTempNr funktion (InputNr: integer): double ; / / Return temperatur af input nummer for HeatManagera InputNr (1 . . 16)
chk_int funktion (st: string): integer ; / / Sikker at konvertere en streng til et heltal
procedure update_status ; / / Opdater status med alle drivere i tabellen (skal køres periodisk)
procedure Test_save ; / / Test procedure for at skrive resultaterne til en tekstfil for let
Initialiser føreren og alle navne er lavet, så snart programmet startes (FormCreate)
procedure TForm1 . FormCreate (Sender: TObject) ;
begynde
sti: = getcurrentdir () ; / / Hent den aktuelle sti af uddannelsen skal være i biblioteket % eHouse_DIR % \ BIN \
sti: = stringreplace (sti , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Hent vej ansøgning eHouse – beskriver anvendelsen path eHouse
loadnames_rm ; / / Load controller navne ehouse1 – indlæser drivere navn eHouse 1
init_heat_temperature_names ; / / Load sensorer heatManagera navn
readethernetdevs ; / / Load controllere ethernet eHouse navne – læseindretning navne eHouse 2
timer1 . Interval: = 3000 ; / / Set cyklisk opgave interval i millisekunder – Indstiller tid til at begynde at kontrollere cykliske data
timer1 . Aktiveret: = true ; / / Start automatiske opgaver (statusopdatering – omfatter regelmæssig kontrol af oplysninger
update_status ; / / Læser den første status
ende ;
Cykliske data kontrol sker ved funktionen Timer1 (Timer1Timer) kører i et tidsinterval fastsat i parameter Timer1 . Interval (i millisekunder) .
procedure TForm1 . Timer1Timer (Sender: TObject) ;
var tf: tekstfil ;
begynde
update_status ; / / Konverterer status for føreren
Test_save ; / / For test skriver alle resultater til en tekstfil
prøve / / opretter en markør fil for anvendelsen KillExec . exe der kan ” se ” ansøgning, før nedbrud
AssignFile (tf , sti + ‘ logs \ log – analizer . stp ‘ ) ;
/ / Underret WDT Ansøgningen korrekt virke ved at bruge stampfile ” log \ log – analizer . stp ”
omskrive (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
endelig ;
closefile (tf) ;
ende ;
ende ;