Ēku automatizācija ehouse – Radīt Windows programmatūra pārklājumu un pasūtījuma algoritmi

Mājas automatizācijas ehouse ar datoru programmatūru ļauj izveidot pārklājumus uz ēku automatizācijas sistēmas .
Tas ļauj jums izveidot savu , individuālie algoritmi , netiek īstenoti firmware vai vadītājs programmatūra, kas kontrolē seriālā Mājas automatizācijas ehouse .
Šim mērķim , Mēs nodrošināt lietotājus ar programmatūras pirmkodu (5 Delphi) . Tos var apkopot ar jaunākas versijas Delfi vai izmanto citas programmēšanas valodas .
Mēs apzināti izvēlējāmies šo arhaisko versijas, jo tie jau ir pieejami par brīvu amatieru programmas .
Viņi strādā tikpat ticami Windows XP , Skats , Windows 7 gan 32 un 64 bitu .
Šī programmatūra sauc eHouseLogAnalizer un šie baļķi template lietojumprogrammas, ka lasīt teksta failus līdz datumam .
To var pārvaldīt un kontrolēt pieteikumi KillWdt . Exe .
Galvenās iezīmes pieteikuma:

  • Nolasīšanas statusu un nosaukumus visiem autovadītājiem
  • Lasīt statusu un ievadīt nosaukumus visiem autovadītājiem
  • Lasīt mērījumus un nosaukumus visiem vadītājiem mērīšanas ieejas
  • Ielādēt visus datus ar iekšējo programmas atmiņu , ko var tālāk apstrādāt ar pieteikumu

Lietojumprogramma izmanto statusu izveidota failus teksta failus direktorijā ‘ baļķi / statuss / ‘ pagarināšana ‘ . status ‘ .
Fails ir tikai lasāms, ja izmaiņu pieteikuma ehouse . Exe .

Datu apstrādātāji tiek ielādēti šādos gadījumos Records ” ehouse_rm_em_hm ” uzskaitīti masīva RM .

Turklāt , dati tiek glabāti HeatManager šādiem datiem:
bonfire_status: virkne ; / / Statuss ugunskurs par HeatManager – Statuss kamīna apkure panelis ehouse . Exe
boiler_status: virkne ; / / Statuss katla par HM – statuss katla apkures paneļa ehouse . Exe
Solar_status: virkne ; / / Statuss Saules sistēmas – statuss saules apsildes paneļu ehouse . Exe
recuperator_status: virkne ; / / Statuss rekuperācija , ventilācija , gaisa apkure – statuss apkures ventilācijas un siltuma atgūšanu
HADC: masīvs [0 . . 15] dubultā ; / / Siltuma temperatūra vadītājs – temperatūras mērījumi HeatManager
/ / Siltuma vadītājs indeksi tiešai piekļuvei HADC masīva – Pastāvīga temperatūra indeksi Tieši nolasāmi temperatūras HeatManager
KLEPK HM_GWC = 3 ; / / GWC – Zemes siltummainis
HM_KOM1 = 4 ; / / Kamīns Mētelis 1 – Ugunskurs ūdens jaka 1
HM_KOMKONV = 5 ; / / Kamīns konvekcyjne – konvekcijas ugunskurs
HM_KOM2 = 6 ; / / Ugunsdrošības PLANE 2 – ugunskurs ūdens jaka 2 (rezerves)
HM_TWEWN = 7 ; / / Iekšējais telpas temperatūras – iekšējās telpas temperatūra
HM_SOLAR = 9 ; / / Jubilejas Saule – Saules sistēma
HM_ZEWNPN = 8 ; / / Ārējā temperatūra ziemeļu – ārējā temperatūra ziemeļu
HM_ZEWNPD = 1 ; / / Ārējā temperatūra no dienvidiem – ārējā temperatūra dienvidu
HM_KOC = 10 ; / / Temperatūras katlu – katla temperatūra
HM_BANDOL = 11 ; / / CO / karstā ūdens tvertnes uz leju – karsti Iekārtas funkcijas apakšējā bufera
HM_REQIN = 12 ; / / Tīrs gaiss rekuperators ieejas – rekuperācijas skaidrs gaisa ievade
HM_REQOUT = 13 ; / / Izejas rekuperators sākums – heaten rekuperācijas svaigā trieciens gaisa telpā – temperatūra
HM_NAG = 14 ; / / Temperatūras kontrole 3 – vārsts apkurei un radiatoriem – temperatūra pēc trīs veidi nogriešana par ūdens sildītāju vai citu apkures sistēmu
HM_REQWYC = 15 ; / / Mājas rekuperators ekstrakts netīrs – rekuperācijas no mājas netīras izplūdes temp
HM_BANGORA = 2 ; / / Apkures / karstā ūdens tvertnes Gora – karstā ūdens bufera TOP
HM_BANSRO = 0 ; / / Apkures / karstā ūdens tvertne līdzeklis – TUVIE karstā ūdens buferi
VAR HADCNames: masīvs [0 . . 15] string ; / / Nosaukumi sensoriem (mērīšanas ieejas) HeatManagera
Pamata funkcijas EhouseLogAnalizer:
procedūra init_heat_temperature_names ; / / Inicializ un / vai temperatūras sensori lasīt vārdus HM
procedūra loadnames_rm ; / / Load RoomManagerĂłw nosaukumi (eHouse 1)
procedūra readethernetdevs ; / / Skan Ethernet Driver nosaukumus (ehouse 2)
get_index_rm funkcija (iela: virkne): integer ; / / Atgriež indekss galda ar roomManagerami meklēšanu pēc faila nosaukuma statusu
funkcija GB (CHR: char): boolean ; / / Atgriež Būla vērtību nolasīšanas statusu
adc_hm procedūra (iela: virkne ; indekss: skaitlis) ; / / Konvertē virknes ar reģistrēto temperatūru par lasāms statusa HeatManagera
adc_rm procedūra (iela: virkne ; indekss: skaitlis) ; / / Pārvērš virkni analogo mērījumu lasot status RoomManagerĂłw
GBS funkcija (b: Būla): String ; / / Write logisku teksta formā (0 , 1)
RMDeviceIndexByName funkcija (iela: virkne): integer ; / / Atgriež indekss galda ar RoomManagerami meklēt pēc nosaukuma vadītājs
RMGetOutputStateNr funkcija (indekss: skaitlim ; OutputNr: integer): boolean ; / / Atgriešanās izejas valsts RM [indekss] un izejas numuru OutputNR
RMGetOutputState funkcija (indekss: skaitlim ; OutputName: stīgu): boolean ; / / Atgriež izejas valstij RM [indekss] un sauca OutputName
RMGetInputStateNr funkcija (indekss: skaitlim ; InputNr: integer): boolean ; / / Atgriež statusu no ieejas RM [indekss] un reģistrācijas numurs InputNr
RMGetInputState funkcija (indekss: skaitlim ; InputName: stīgu): boolean ; / / Atgriež statusu no ieejas RM [indekss] un ieraksta nosaukums InputName
RMGetTempNr funkcija (indekss: skaitlim ; InputNr: integer): dubultā ; / / Atgriež RM temperatūru [indekss] un reģistrācijas numurs InputNr
RMGetTemp funkcija (indekss: skaitlim ; InputName: stīgu): dubultā ; / / Atgriež RM temperatūru [indekss] un ieraksta nosaukums InputName
RMGetInvPercent funkcija (indekss: skaitlim ; InputName: stīgu): dubultā ; / / Atgriež procentuālais mērījumu 100 atpakaļgaitā % – x RM [indekss] un ieraksta nosaukums InputName (attiecībā uz sprieguma kontrolieris)
RMGetInvPercentNr funkcija (indekss: skaitlim ; InputNr: integer): dubultā ; / / Atgriež procentuālais mērījumu 100 atpakaļgaitā % – x RM [indekss] un reģistrācijas numurs InputNr (attiecībā uz sprieguma kontrolieris)
RMGetPercent funkcija (indekss: skaitlim ; InputName: stīgu): dubultā ; / / Atgriež procentuālais mērīšana RM [indekss] un par ieceļošanas InputName nosaukums (attiecībā uz sprieguma kontrolieris)
RMGetPercentNr funkcija (indekss: skaitlim ; InputNr: integer): dubultā ; / / Atgriež procentuālais mērījumu 100 atpakaļgaitā % – x RM [indekss] un ieraksta nosaukums InputNr (attiecībā uz sprieguma kontrolieris)
RMGetDeviceOutputState funkcija (Devname: virkne ; OutputName: stīgu): boolean ; / / Atgriež valsts no izejas vadītāja sauc Devname un sauca OutputName
RMGetDeviceInputState funkcija (Devname: virkne ; InputName: stīgu): boolean ; / / Atgriež statusu vadītāja ieejas vārdu un Ieceļošanas Devname InputName nosaukums
HMGetTemp funkcija (InputName: virkne): dubultā ; / / Atgriešanās temperatūras mērīšanas ieejas aicināja HeatManagera InputName
HMGetTempNr funkcija (InputNr: integer): dubultā ; / / Atgriešanās temperatūras mērīšanas ieejas numuru HeatManagera InputNr (1 . . 16)
chk_int funkcija (ST: virkne): integer ; / / Droši konvertētu virkni līdz veselam skaitlim
procedūra update_status ; / / Update statusu visiem tabulā vadītāju (jābūt darboties periodiski)
procedūra Test_save ; / / Testa procedūra rakstīt rezultātus teksta failu, lai viegli
Inicializ vadītājs un visi vārdi tiek veikti reizi tiek startēta (FormCreate)
procedūra TForm1 . FormCreate (Sender: TObject) ;
sākt
ceļš: = getcurrentdir () ; / / Get pašreizējā ceļš programmas jābūt direktorijā % eHouse_DIR % \ BIN \
ceļš: = stringreplace (ceļš , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get ceļu pieteikuma ehouse – nosaka pieteikuma ceļu ehouse
loadnames_rm ; / / Load kontrolieris vārdi ehouse1 – slodzes vadītājiem nosaukums ehouse 1
init_heat_temperature_names ; / / Load sensori heatManagera nosaukums
readethernetdevs ; / / Load kontrolieri ethernet ehouse nosaukumi – lasīšanas ierīci vārdi ehouse 2
timer1 . Intervāls: = 3000 ; / / Set ciklisks uzdevums intervāls milisekundēs – Nosaka laiku, lai sāktu pārbaudi cikliskās datus
timer1 . Enabled: = patiess ; / / Start automātisko uzdevumu (statusa atjauninājumu – ietver regulāru pārbaudi datu
update_status ; / / Nolasa pirmo statusu
beigas ;
Ciklisks datu pārbaude tiek veikta ar funkciju timer1 (Timer1Timer) darbojas ar laika intervālu, kas noteikts parametrs timer1 . Intervāls (milisekundēs) .
procedūra TForm1 . Timer1Timer (Sender: TObject) ;
var TF: textfile ;
sākt
update_status ; / / Konvertē statusu vadītāja
Test_save ; / / Par testu raksta visus rezultātus teksta failā
mēģināt / / izveidot marķieri failu par pieteikumu KillExec . exe, kas var ” noskatīties ” pieteikumu pirms avārijas
AssignFile (tf , ceļš + ‘ žurnāli \ žurnāls – Analizer . STP ‘ ) ;
/ / Paziņot WDT Šis pieteikums darbojas pareizi izmantojot stampfile ” log \ log – Analizer . STP ”
pārrakstīt (TF) ;
WriteLn (tf , ‘ 1 ‘ ) ;
beidzot ;
closefile (TF) ;
beigas ;
beigas ;