Automatizacija u zgradama eHouse – Stvaranje Windows softver slojeve i prilagođene algoritama

Početna Automatizacija eHouse sa PC softver vam omogućuje stvaranje prekrivanja za izgradnju sustava automatizacije .
To vam omogućuje da stvorite svoj vlastiti , pojedini algoritmi , ne provode u firmware ili vozač softver koji kontrolira serijski Početna Automatizacija eHouse .
U tu svrhu , pružamo korisnicima sa šiframa izvor softvera (u Delphi 5) . Oni se mogu sastaviti s novijim verzijama Delphi ili se koristi za drugim programskim jezicima .
Mi svjesno izabrali ovaj arhaični verzije kao što su već dostupni za besplatno za amaterski programa .
Oni rade kao pouzdano na Windows XP , Vidik , Windows 7 i 32 i 64 bitni .
Ovaj softver se zove eHouseLogAnalizer i ti dnevnici predloška aplikacije koje čitaju tekstualne datoteke do datuma .
To se može upravljati i nadzirati aplikacija KillWdt . exe .
Ključne značajke aplikacije:

  • Čitanje iz statusa i imena svih vozača
  • Pročitajte status i unesite imena svih vozača
  • Pročitajte mjerenja i imena svih vozača mjernih ulaza
  • Učitavanje svih podataka na unutarnju programsku memoriju , koji se mogu dalje obrađivati ​​zahtjeva

Aplikacija koristi status stvorenih datoteka u tekst datotekama u imeniku ‘ dnevnici / status / ‘ nastavak ‘ . status ‘ .
Datoteka je pročitao samo u slučaju promjene u primjeni eHouse . exe .

Podaci kontroleri su učitani u sljedećim slučajevima Records ” ehouse_rm_em_hm ” navedena u polje RM .

Dodatno , podaci čuvaju HeatManager sljedeće varijable:
bonfire_status: niz ; / / Status krijes za HeatManager – Status ognjište grijanje ploča eHouse . exe
boiler_status: niz ; / / Status kotla za HM – Status ploče kotla za grijanje eHouse . exe
Solar_status: niz ; / / Status Sunčevog sustava – Status solarnog grijanja eHouse panel . exe
recuperator_status: niz ; / / Status oporavak , ventilacija , klima grijanje – Status grijanje ventilaciju i povrat topline
HADC: array [0 . . 15] dvostrukog ; / / Toplina Temperature menadžer – temperatura mjerenja HeatManager
/ / Heat Voditelj indeksi za izravan pristup HADC niz – Konstantna temperatura indeksi za izravno očitavanje temperature HeatManager
CONST HM_GWC = 3 ; / / GWC – Prizemlje topline
HM_KOM1 = 4 ; / / Kamin Dlaka 1 – Krijes vode jakna 1
HM_KOMKONV = 5 ; / / Kamin konvekcyjne – konvekcija krijes
HM_KOM2 = 6 ; / / Vatra PLANE 2 – krijes vode jakna 2 (backup)
HM_TWEWN = 7 ; / / Unutarnja sobna temperatura – unutarnja temperatura
HM_SOLAR = 9 ; / / Kolekcionar ned – solarni sistem
HM_ZEWNPN = 8 ; / / Vanjska temperatura sjeverno – Vanjska temperatura sjeverno
HM_ZEWNPD = 1 ; / / Vanjska temperatura na jugu – Vanjska temperatura jug
HM_KOC = 10 ; / / Temperatura kotla – temperatura kotla
HM_BANDOL = 11 ; / / CO / toplu vodu prema dolje – vruće watter dno tampon
HM_REQIN = 12 ; / / Čisti zrak rekuperatora ulaz – rekuperacija čist zrak ulaz
HM_REQOUT = 13 ; / / Izlaz rekuperator dom – heaten rekuperacija svježi zrak udarac u sobu – temperatura
HM_NAG = 14 ; / / Temperatura kontrolira tri – način ventil za grijanje i radijatora – temperatura nakon tri načina gušeći za bojler ili druge grijanjem
HM_REQWYC = 15 ; / / Početna rekuperator ekstrakt prljava – rekuperacija od kuće prljave ispušnih temp
HM_BANGORA = 2 ; / / Grijanje / toplu vodu gora – tople vode tampon TOP
HM_BANSRO = 0 ; / / Grijanje / topla voda spremnik sredstva – SREDNJI tople vode tampon
var HADCNames: array [0 . . 15] od niza ; / / Imena senzora (mjerenje ulaza) HeatManagera
Osnovne funkcije EhouseLogAnalizer:
postupak init_heat_temperature_names ; / / Inicijaliziranje i / ili temperaturni senzori pročitati imena HM
Postupak loadnames_rm ; / / Load RoomManagerĂłw imena (eHouse 1)
postupak readethernetdevs ; / / Čita Ethernet vozač imena (eHouse 2)
get_index_rm funkcija (str: Niz): cijeli ; / / Vraća indeks stol s roomManagerami traženju po nazivu datoteke statusa
Funkcija gb (Chr: char): boolean ; / / Vraća boolean vrijednost za čitanje statusa
adc_hm postupak (str: niz ; Indeks: integer) ; / / Pretvara string sa snimljenim temperature očitanih stanja HeatManagera
adc_rm postupak (str: niz ; Indeks: integer) ; / / Pretvara niz analognih mjerenja prilikom čitanja status RoomManagerĂłw
GBS funkcija (b: boolean): String ; / / Napišite boolean u obliku teksta (0 , 1)
RMDeviceIndexByName funkcija (str: Niz): cijeli ; / / Vraća indeks stol s RoomManagerami traži po imenu vozača
RMGetOutputStateNr funkcija (indeks: cijeli ; OutputNr: integer): boolean ; / / Povratak na RM izlaznu državnu [indeks] i OutputNR izlaz broj
RMGetOutputState funkcija (indeks: cijeli ; OutputName: Niz): boolean ; / / Vraća RM izlaz država [indeks] i povika OutputName
RMGetInputStateNr funkcija (indeks: cijeli ; InputNr: integer): boolean ; / / Vraća status ulaznog RM [indeks] i broj unosa InputNr
RMGetInputState funkcija (indeks: cijeli ; InputName: Niz): boolean ; / / Vraća status ulaznog RM [indeks] i naziv ulaznog InputName
RMGetTempNr funkcija (indeks: cijeli ; InputNr: integer): bračni ; / / Vraća RM temperaturu [indeks] i broj unosa InputNr
RMGetTemp funkcija (indeks: cijeli ; InputName: Niz): bračni ; / / Vraća RM temperaturu [indeks] i naziv ulaznog InputName
RMGetInvPercent funkcija (indeks: cijeli ; InputName: Niz): bračni ; / / Vraća postotak mjerenja unatrag 100 % – x RM [indeks] i naziv ulaznog InputName (u odnosu na kontroleru opskrbnog napona)
RMGetInvPercentNr funkcija (indeks: cijeli ; InputNr: integer): bračni ; / / Vraća postotak mjerenja unatrag 100 % – x RM [indeks] i broj unosa InputNr (u odnosu na kontroleru opskrbnog napona)
RMGetPercent funkcija (indeks: cijeli ; InputName: Niz): bračni ; / / Vraća postotak mjerenje RM [indeks] i naziv ulaznog InputName (u odnosu na kontroleru opskrbnog napona)
RMGetPercentNr funkcija (indeks: cijeli ; InputNr: integer): bračni ; / / Vraća postotak mjerenja unatrag 100 % – x RM [indeks] i naziv ulaznog InputNr (u odnosu na kontroleru opskrbnog napona)
RMGetDeviceOutputState funkcija (Devname: niz ; OutputName: Niz): boolean ; / / Vraća stanje izlaznog vozača pod nazivom Devname i povika OutputName
RMGetDeviceInputState funkcija (Devname: niz ; InputName: Niz): boolean ; / / Vraća status vozača ulaza ime i ime InputName unos Devname
HMGetTemp funkcija (InputName: Niz): bračni ; / / Povratak temperatura mjernog ulaza pozvao HeatManagera InputName
HMGetTempNr funkcija (InputNr: integer): bračni ; / / Temperature povrata mjernog ulaznog broja za HeatManagera InputNr (1 . . 16)
chk_int funkcija (st: Niz): cijeli ; / / Siguran pretvoriti string u cijeli broj
Postupak update_status ; / / Update status svih vozača u tablici (mora se izvoditi povremeno)
Postupak Test_save ; / / Ispitni postupak za pisanje rezultate u tekstualnu datoteku za jednostavan
Resetirajte vozača i sva imena su jednom program je počeo (FormCreate)
Postupak TForm1 . FormCreate (Sender: TObject) ;
početi
Put: = getcurrentdir () ; / / Get trenutni put od programa moraju biti u imeniku % eHouse_DIR % \ BIN \
Put: = stringreplace (staza , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get put aplikacija eHouse – postavlja eHouse aplikacija put
loadnames_rm ; / / Load kontroler imena ehouse1 – opterećenja vozača ime eHouse 1
init_heat_temperature_names ; / / Load senzori heatManagera ime
readethernetdevs ; / / Load kontroleri Ethernet eHouse imena – čitajući imena uređaja eHouse 2
timer1 . Interval: = 3000 ; / / Set ciklički zadatak interval u milisekundama – Postavlja vrijeme za pokretanje provjere cikličke podatke
timer1 . Omogućeno: = true ; / / Start automatske zadatke (aktualno stanje – uključuje redovitu provjeru podataka
update_status ; / / Čita prvi status
kraj ;
Ciklički podaci provjere obavlja funkciju Timer1 (Timer1Timer) radi u razmaku od vremena određenog u parametru Timer1 . Interval (u milisekundama) .
Postupak TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
početi
update_status ; / / Pretvara status vozača
Test_save ; / / Za testu piše sve rezultate u tekstualnu datoteku
pokušajte / / stvoriti marker datoteku za primjenu KillExec . exe koji mogu ” gledati ” Primjena prije sudara
AssignFile (TF , Put + ‘ dnevnici \ log – analizer . stp ‘ ) ;
/ / Obavijesti jave ako to aplikacija ispravno radnog koristeći stampfile ” prijavite \ zapisnik – analizer . stp ”
prepisati (TF) ;
WriteLn (TF , ‘ 1 ‘ ) ;
konačno ;
closefile (TF) ;
kraj ;
kraj ;