Ndërtimi Automatizimi eHouse – Krijimi i një overlays software Windows dhe algoritme porosi

Automatizimi në shtëpi eHouse me PC software ju lejon të krijoni overlays për ndërtimin e automatizimit të sistemit .
Kjo ju lejon të krijoni tuaj , algoritme individuale , nuk janë zbatuar në firmware apo shofer software që kontrollon serial Automatizimi në shtëpi eHouse .
Për këtë qëllim , Ne ofrojnë përdoruesve me kodet burimore të softuerit (në Delphi 5) . Ata mund të jetë përpiluar me versionet e reja të Delfit ose të përdoren për gjuhët e programimit të tjera .
Ne me vetëdije zgjodhi këtë versionet arkaike si ata janë tashmë në dispozicion për të lira për programin amator .
Ata punojnë vetëm si të besueshme në Windows XP , Vështrim në të ardhmen , Windows 7 dyja 32 dhe 64 bit .
Ky software është quajtur eHouseLogAnalizer dhe këto aplikacione template shkrimet që lexojnë fotografi tekst deri në datën .
Ajo mund të menaxhohen dhe monitorohen nga zbatimeve KillWdt . exe .
Karakteristikat kryesore të aplikimit:

  • Lexuar statusin dhe emrat e të gjithë shoferëve
  • Lexoni statusin dhe shkruani emrat e të gjithë shoferëve
  • Lexoni matjet dhe emrat e të gjithë shoferëve matëse inputeve
  • Ngarkesës të gjitha të dhënat në memorie të brendshme programit , cila mund të përpunohen më tej nga një aplikim

Aplikimi përdor statusin e dosjeve të krijuara për fotografi tekst në një directory ‘ logs / statusi / ‘ zgjatje ‘ . status ‘ .
Skedë është lexuar vetëm në rast të ndryshimeve në eHouse aplikim . exe .

Kontrolluesit e të dhënave janë të ngarkuar në rastet e mëposhtme Records ” ehouse_rm_em_hm ” të listuara në RM array .

Veç kësaj , Të dhënat janë mbajtur HeatManager variablat e mëposhtme:
bonfire_status: string ; / / Gjendja e zjarr i madh për HeatManager – Fireplace Statusi ngrohje panel eHouse . exe
boiler_status: string ; / / Gjendja e kazan për HM – Statusi i ngrohjes bojler eHouse panel . exe
Solar_status: string ; / / Gjendja e sistemit diellor – Statusi i panelit eHouse ngrohjes diellore . exe
recuperator_status: string ; / / Gjendja e çlodhje , ventilim , ngrohje e ajrit – Statusi i ventilimit ngrohje dhe ngrohjes shërim
HADC: array [0 . . 15] e dyfishtë ; / / Temperaturat Heat menaxher – Matjet e temperaturës HeatManager
/ Indekseve / nxehtësisë menaxher për qasje të drejtpërdrejtë të array HADC – Indekset temperatura konstante për lexim të drejtpërdrejtë të HeatManager temperaturës
KUSHTETUESE HM_GWC = 3 ; / / GWC – Nxehtësia Exchanger Ground
HM_KOM1 = 4 ; / / Fireplace Qendra 1 – Zjarr i madh xhaketë ujë 1
HM_KOMKONV = 5 ; / / Fireplace konvekcyjne – zjarr i madh convection
HM_KOM2 = 6 ; / / Zjarri PLANE 2 – xhaketë zjarr i madh me ujë 2 (backup)
HM_TWEWN = 7 ; / / Temperatura e brendshme dhomë – temperatura e brendshme dhomë
HM_SOLAR = 9 ; / / Sun Collector – sistemi diellor
HM_ZEWNPN = 8 ; / / Jashtme temperatura në veri – në veri të jashtme temperatura
HM_ZEWNPD = 1 ; Temperatura / / jashtme e jugut – në jug të jashtme temperatura
HM_KOC = 10 ; / / Temperatura bojler – Temperatura bojler
HM_BANDOL = 11 ; / / CO / tank ujë të nxehtë poshtë – hot fund Watter tampon
HM_REQIN = 12 ; / / Ajër të pastër input rekuperator – çlodhje e qartë e ajrit input
HM_REQOUT = 13 ; / / Output rekuperator në shtëpi – heaten freskët çlodhje goditje ajrore në dhomën – temperaturë
HM_NAG = 14 ; / / Temperatura e kontrolluar tre – mënyrë valvula për ngrohje dhe për radiatorëve – Temperatura pas tre ndërprerje mënyra për ngrohës uji apo sistem tjetër ngrohje
HM_REQWYC = 15 ; / / Home rekuperator ekstrakt pista – çlodhje në shtëpi nga temp pista shter
HM_BANGORA = 2 ; / / Ngrohje / tank ujë të nxehtë Gora – hot tampon ujë TOP
HM_BANSRO = 0 ; / / Ngrohje / nxehtë magazinimit të ujit tank një mjet i – MIDDLE tampon ujë të nxehtë
HADCNames var: array [0 . . 15] e vargut ; / / Emrat e sensorë (matja e inputeve) HeatManagera
Funksionet themelore EhouseLogAnalizer:
init_heat_temperature_names procedurë ; / / Nisja dhe / ose sensore temperatura lexuar emrat e HM
Procedura loadnames_rm ; / Emra / Load RoomManagerĂłw (eHouse 1)
readethernetdevs procedurë ; / / Lexon emrat Ethernet shofer (eHouse 2)
Funksioni get_index_rm (str: string): integer ; / / Kthim indeksi i tabelës me kërkimin roomManagerami me emrin e file status
Funksioni gb (Chr: char): boolean ; / / Jep një vlerë boolean për statusin lexuar
Procedura adc_hm (str: string ; Indeksi: integer) ; / / Konverton vargun me temperatura të regjistruara të HeatManagera statusit lexuar
Procedura adc_rm (str: string ; Indeksi: integer) ; / / Konverton vargun e matjeve analoge, kur leximin e RoomManagerĂłw status
GBS funksion (b: boolean): String ; / / Shkruani boolean në formë teksti (0 , 1)
Funksioni RMDeviceIndexByName (str: string): integer ; / / Kthim indeksi i tabelës me kërkimin RoomManagerami nga shoferi emrit
Funksioni RMGetOutputStateNr (Indeksi: integer ; OutputNr: integer): boolean ; / / Kthehu RM shtetërore e prodhimit [Indeksi] dhe numri i prodhimit OutputNR
Funksioni RMGetOutputState (Indeksi: integer ; OutputName: string): boolean ; / / Kthim shteti prodhimi RM [Indeksi] dhe thirri OutputName
Funksioni RMGetInputStateNr (Indeksi: integer ; InputNr: integer): boolean ; / / Kthim statusin e RM input [Indeksi] dhe numri i InputNr hyrjes
Funksioni RMGetInputState (Indeksi: integer ; InputName: string): boolean ; / / Kthim statusin e RM input [Indeksi] dhe emri i InputName hyrjes
Funksioni RMGetTempNr (Indeksi: integer ; InputNr: integer): të dyfishtë ; / / Kthen temperaturën RM [Indeksi] dhe numri i InputNr hyrjes
Funksioni RMGetTemp (Indeksi: integer ; InputName: string): të dyfishtë ; / / Kthen temperaturën RM [Indeksi] dhe emri i InputName hyrjes
Funksioni RMGetInvPercent (Indeksi: integer ; InputName: string): të dyfishtë ; / / Kthimet një matje përqindja e kundërt 100 % – x RM [Indeksi] dhe emri i InputName hyrjes (në lidhje me kontrollues të tensionit të furnizimit)
Funksioni RMGetInvPercentNr (Indeksi: integer ; InputNr: integer): të dyfishtë ; / / Kthimet një matje përqindja e kundërt 100 % – x RM [Indeksi] dhe numri i InputNr hyrjes (në lidhje me kontrollues të tensionit të furnizimit)
Funksioni RMGetPercent (Indeksi: integer ; InputName: string): të dyfishtë ; / / Kthimet një matje përqindja e indeksit [] RM dhe emri i InputName hyrjes (në lidhje me kontrollues të tensionit të furnizimit)
Funksioni RMGetPercentNr (Indeksi: integer ; InputNr: integer): të dyfishtë ; / / Kthimet një matje përqindja e kundërt 100 % – x RM [Indeksi] dhe emri i InputNr hyrjes (në lidhje me kontrollues të tensionit të furnizimit)
Funksioni RMGetDeviceOutputState (Devname: string ; OutputName: string): boolean ; / / Kthim shtetërore e shoferit prodhimit quajtur Devname dhe thirri OutputName
Funksioni RMGetDeviceInputState (Devname: string ; InputName: string): boolean ; / / Kthim statusin e kontributit shofer emri dhe emri i InputName Devname hyrjes
Funksioni HMGetTemp (InputName: string): të dyfishtë ; / / Kthimi temperatura e kontributit matës bëri thirrje për HeatManagera InputName
HMGetTempNr funksion (InputNr: integer): të dyfishtë ; / / Kthimi temperatura e numrit input matës për HeatManagera InputNr (1 . . 16)
Funksioni chk_int (rr: string): integer ; / / Safe për të kthyer një varg në një numër të plotë
Procedura update_status ; / / Update statusin e të gjithë shoferëve në tabelë (duhet të drejtohet periodikisht)
Procedura Test_save ; / / Test procedura për të shkruar rezultatet në një skedar teksti për të lehtë
Nisja shoferit dhe të gjithë emrat janë bërë një herë është filluar aplikimi (FormCreate)
Procedura TForm1 . FormCreate (Sender: TObject) ;
filloj
rruga: = getcurrentdir () ; / / Get rruga aktuale e programit duhet të jetë në dosjen e % eHouse_DIR % \ BIN \
rruga: = stringreplace (rruga , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get rrugën e aplikimit eHouse – përcakton rrugën aplikimit eHouse
loadnames_rm ; Emrat / / Load kontrollues ehouse1 – ngarkesa emri shoferët eHouse 1
init_heat_temperature_names ; / / Sensorë Load heatManagera Emri
readethernetdevs ; / / Load kontrolluesit eHouse emrat Ethernet – duke lexuar emrat eHouse pajisje 2
timer1 . Intervali: 3000 = ; / / Set detyrë ciklike Intervali në milisekonda – Përcakton kohën për të filluar kontrolluar të dhënat ciklike
timer1 . Aktivizuar: = e vërtetë ; / / Filloni detyrave automatike (update status – përfshin kontrollin e rregullt të të dhënave
update_status ; / / Lexon statusin parë
fund ;
Ciklike dhënat kontrolluar është bërë nga funksioni Timer1 (Timer1Timer) shkon në një interval kohe të caktuar në parametër Timer1 . Intervali (në milisekonda) .
Procedura TForm1 . Timer1Timer (Sender: TObject) ;
var TF: textfile ;
filloj
update_status ; / / Konverton statusin e shoferit
Test_save ; / / Per testin shkruan të gjitha rezultatet në një skedar teksti
provoni / / krijojë një skedar shënues për zbatimin KillExec . exe që mund të ” shikoj ” Aplikimi para rrëzimit
AssignFile (TF , rruga + ‘ logs \ log – analizer . STP ‘ ) ;
/ / Lajmëroni WDT Kjo kërkesë duke punuar si duhet përdorur stampfile ” log log \ – analizer . STP ”
rishkruaj (TF) ;
writeln (TF , ‘ 1 ‘ ) ;
më në fund ;
closefile (TF) ;
fund ;
fund ;