Automatizácia budov eHouse – Vytvorenie softvéru systému Windows presahmi a vlastné algoritmy

Domáce automatizácie eHouse s PC softvérom umožňuje vytvárať prekrytie pre systému automatizácie budov .
To vám umožní vytvoriť si vlastný , Jednotlivé algoritmy , nie sú realizované vo firmvéru alebo ovládača softvéru, ktorý riadi sériové Domáce automatizácie eHouse .
Za týmto účelom , ponúkame užívateľom s kódmi softvéru zdroja (v Delphi 5) . Môžu byť zostavené s novšími verziami Delphi alebo použité na iné programovacie jazyky .
Vedome sme zvolili tento archaické verziu, pretože sú už k dispozícii zadarmo pre amatérske programu .
Pracujú rovnako spoľahlivo v systéme Windows XP , Výhľad , Windows 7 a to ako 32 a 64 bit .
Tento softvér sa nazýva eHouseLogAnalizer a tieto aplikácie logami šablóny, ktoré čítanie textových súborov do dátumu .
To môže byť riadené a monitorované aplikácií KillWdt . exe .
Kľúčové vlastnosti aplikácie:

  • Čítanie z postavenia a názvy všetkých ovládačov
  • Prečítajte si stav a zadajte mená všetkých vodičov
  • Prečítajte si meranie a mená všetkých vodičov meracích vstupov
  • Načítať všetky dáta na internej pamäte programu , , Ktoré môžu byť ďalej spracované žiadosti

Aplikácia používa stav vytvorených súborov do textových súborov v adresári ‘ logs / status / ‘ predĺženie ‘ . stav ‘ .
Súbor je načítaný iba v prípade zmien v aplikačnej eHouse . exe .

Správcovia sú uložené v nasledujúcich prípadoch Records ” ehouse_rm_em_hm ” uvedené v poli RM .

Navyše , údaje sú uchovávané HeatManager nasledujúce premenné:
bonfire_status: string ; / / Stav ohňa pre HeatManager – Status kúrenie krbom panel eHouse . exe
boiler_status: string ; / / Stav kotla na HM – Stav paneli kotla vykurovacej eHouse . exe
Solar_status: string ; / / Stav solárneho systému – stav solárneho eHouse vykurovací panel . exe
recuperator_status: string ; / / Stav rekuperáciou , ventilácia , ohrev vzduchu – stav vykurovania vetranie a rekuperáciou tepla
Hádke: array [0 . . 15] double ; / / Heat Teploty Správca – Teplota merania HeatManager
/ / Tepelná manažér indexy pre priamy prístup hádke poľa – Konštantná teplota indexy s priamym čítaním teploty HeatManager
CONST HM_GWC = 3 ; / / GWC – Zemný výmenník tepla
HM_KOM1 = 4 ; / / Krb srsť 1 – Bonfire vodné plášť 1
HM_KOMKONV = 5 ; / / Krb konvekcyjne – konvekcia táborák
HM_KOM2 = 6 ; / / Fire PLANE 2 – táborák vodné plášť 2 (záložné)
HM_TWEWN = 7 ; / / Vnútorná teplota – vnútorná teplota v miestnosti
HM_SOLAR = 9 ; / / Collector nie. – Slnečná sústava
HM_ZEWNPN = 8 ; / / Vonkajšia teplota sever – vonkajšej teploty na sever
HM_ZEWNPD = 1 ; / / Vonkajšie teplota na juhu – vonkajšej teploty na juh
HM_KOC = 10 ; / / Teploty kotla – teplota kotla
HM_BANDOL = 11 ; / / CO / zásobník teplej vody sa stanovuje – hot Watter spodnej vyrovnávacej
HM_REQIN = 12 ; / / Čistý vzduch rekuperátora vstup – rekuperácie čistý vzduch vstup
HM_REQOUT = 13 ; / / Výstup rekuperátora home – heaten rekuperácie čerstvého rána vzduchu do miestnosti – teplota
HM_NAG = 14 ; / / Teplota riadená tri – trojcestný ventil pre vykurovanie a pre radiátory – teplota po tri spôsoby, ako cutoff pre ohrievače vody alebo iného vykurovacieho systému
HM_REQWYC = 15 ; / / Home rekuperátora extrakt dirty – rekuperácie z domova špinavé výfukovej teploty
HM_BANGORA = 2 ; / / Kúrenie / nádrže na teplú vodu gora – teplej vody vyrovnávacej TOP
HM_BANSRO = 0 ; / / Kúrenie / zásobník teplej vody prostriedkom – MIDDLE teplej vody vyrovnávacej
var HADCNames: array [0 . . 15] reťazca ; / / Mená senzorov (meranie vstupov) HeatManager
Základné funkcie EhouseLogAnalizer:
Postup init_heat_temperature_names ; / / Inicializácia a / alebo teplotné senzory čítajú mená HM
Postup loadnames_rm ; / / Load RoomManagerĂłw názvy (eHouse 1)
Postup readethernetdevs ; / / Prečíta Ethernet ovládače názvy (eHouse 2)
get_index_rm funkcie (str: string): integer ; / / Vráti index v tabuľke pre vyhľadávanie RoomManager podľa stavu názvu súboru
Funkcia gb (CHR: char): boolean ; / / Vráti logickú hodnotu pre čítanie stavu
adc_hm postup (str: string ; index: integer) ; / / Prevedie reťazec s nahranými teplotách čítanie stavu HeatManager
adc_rm postup (str: string ; index: integer) ; / / Prevedie reťazec analógových meraní pri čítaní stave RoomManagerĂłw
GBS funkcie (b: boolean): String ; / / Zápis boolean v textovej forme (0 , 1)
RMDeviceIndexByName funkcie (str: string): integer ; / / Vráti index v tabuľke pre vyhľadávanie RoomManager podľa názvu vodiča
RMGetOutputStateNr funkcie (index: integer ; OutputNr: integer): boolean ; / / Vracia výstupné štátnej RM [index] a číslo výstupu OutputNR
RMGetOutputState funkcie (index: integer ; OutputName: string): boolean ; / / Vracia stav výstupu RM [index], a zavolal OutputName
RMGetInputStateNr funkcie (index: integer ; InputNr: integer): boolean ; / / Vracia stav vstupného RM [index], a číslo zápisu InputNr
RMGetInputState funkcie (index: integer ; InputName: string): boolean ; / / Vracia stav vstupného RM [index] a názov vstupného inputName
RMGetTempNr funkcie (index: integer ; InputNr: integer): double ; / / Vracia RM teplota [index], a číslo zápisu InputNr
RMGetTemp funkcie (index: integer ; InputName: string): double ; / / Vracia RM teplota [index] a názov vstupného inputName
RMGetInvPercent funkcie (index: integer ; InputName: string): double ; / / Vracia percento meranie zadné 100 % – x RM [index] a názov vstupného inputName (vo vzťahu k regulátora napájacieho napätia)
RMGetInvPercentNr funkcie (index: integer ; InputNr: integer): double ; / / Vracia percento meranie zadné 100 % – x RM [index], a číslo zápisu InputNr (vo vzťahu k regulátora napájacieho napätia)
RMGetPercent funkcie (index: integer ; InputName: string): double ; / / Vracia percento meranie RM [Index] a názov vstupného inputName (vo vzťahu k regulátora napájacieho napätia)
RMGetPercentNr funkcie (index: integer ; InputNr: integer): double ; / / Vracia percento meranie zadné 100 % – x RM [index] a názov vstupného InputNr (vo vzťahu k regulátora napájacieho napätia)
RMGetDeviceOutputState funkcie (drevnatej: string ; OutputName: string): boolean ; / / Vracia stav výstupného budiče s názvom drevnatej a zvolal OutputName
RMGetDeviceInputState funkcie (drevnatej: string ; InputName: string): boolean ; / / Vráti stav vodiča vstupu meno a názov inputName vstupné drevnatej
HMGetTemp funkcie (inputName: string): double ; / / Návrat teplota meracieho vstupu vyzval k HeatManager inputName
HMGetTempNr funkcie (InputNr: integer): double ; / / Návrat teplota meracieho vstupu číslo pre HeatManager InputNr (1 . . 16)
chk_int funkcie (st: string): integer ; / / Safe previesť reťazec na celé číslo
Postup update_status ; / / Aktualizácia stav všetkých ovládačov v tabuľke (musí byť spustený pravidelne)
Postup Test_save ; / / Test postup zapísať výsledky do textového súboru pre jednoduché
Inicializácia ovládače a všetky mená sú po spustení aplikácie (FormCreate)
Postup TForm1 . FormCreate (Sender: TObject) ;
začať
Cesta: = getcurrentdir () ; / / Získanie aktuálnej cesta programu musí byť v adresári % eHouse_DIR % \ BIN \
Cesta: = stringreplace (cesta , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Získanie cestu aplikácie eHouse – nastaví cesta k aplikácii eHouse
loadnames_rm ; / / Load regulátor názvy ehouse1 – zaťaženie vodiča názov eHouse 1
init_heat_temperature_names ; / / Load snímače HeatManager meno
readethernetdevs ; / / Load regulátory ethernet eHouse názvy – čítanie názvy zariadenia eHouse 2
Timer1 . Interval: = 3000 ; / / Set cyklické úlohy interval v milisekundách – Nastavuje čas na začatie kontroly cyklickej údajov
Timer1 . Povolené: = true ; / / Spustiť automatické úlohy (aktualizácia stavu – zahŕňa pravidelnú kontrolu údajov
update_status ; / / Načíta prvý stav
koniec ;
Cyklická kontrola dát sa vykonáva pomocou funkcie Timer1 (Timer1Timer) beží v intervale dobu nastavenú v parametri Timer1 . Interval (v milisekundách) .
Postup TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
začať
update_status ; / / Prevedie stav vodiča
Test_save ; / / Na skúšku zapisuje všetky výsledky do textového súboru
Vyskúšajte / / vytvoriť značku súbor pre aplikáciu KillExec . exe, ktoré môžu ” pozerať sa ” Aplikácia pred havárii
AssignFile (tf , Cesta + ‘ logs \ log – analizer . stp ‘ ) ;
/ / Informujte WDT Táto žiadosť pracuje správne pomocou stampfile ” log \ log – analizer . stp ”
prepísať (tf) ;
printf (tf , ‘ 1 ‘ ) ;
konečne ;
closefile (tf) ;
koniec ;
koniec ;