eHouse 1 – Home Automation – valdiklis dvejetaine forma

eHouse Home Automation , Pastatų valdymo 1 variantas – sistemos valdiklis būklės rėmas Home Automation .
Sukurti visiškai funkcinis , efektyvų savo programinės įrangos valdymo skydai, reikia vizualizacija reikia įgyvendinti tiesioginį dekodavimo eHouse 1 vairuotojo statusą dvejetaine forma . Priklausomai nuo veikti įprastu veikimo režimu arba pratęsti adresas (Extended_address) pasirinkimo , rėmas siųsti vairuotojo statusą yra taip (skliausteliuose pažymėti skirtumą Išplėstinis režimas adresas) .
Šis režimas yra reikalaujama dirbti pagal CommManager vairuotojo priežiūrą ir siunčia pranešimą, paskirties adresą lauko renginių , Gali pasakyti savo adresą į paskirties prietaiso siuntėjo gauti įvykius (rankų – purtyti) .
Jei sąsaja RS – 485 tikrai nerekomenduoja tiesioginių bandymų prisijungti prie vairuotojo , ,, siunčiant kai kurios komandos gali sukelti tokį valymo programa atmintį (mikroprogramą) Valdikliai , kuri galėtų baigti savo gyvenimą .
Kitas komandas arba atsitiktiniai signalai RS – 485 gali pakenkti sistemos stabilumui ar tikrai sulėtinti savo darbą .
Gimtoji eHouse Automatikos valdikliai turėtų dirbti pagal gamintojo taikymo priežiūrą ” eHouse . Exe ” .
Dėl saugumo , galite skaityti vairuotojų statusą neprijungus prie jų per paraiškos eHouse . Exe (UDP protokolas ir LAN) .
Tai ne – invazinės skaitymas , ne pakrovimo nei programinė įranga, nei valdikliai , o kas daugiau , per RS ​​nėra įkyrūs jokiu būdu perdavimo protokolas – 485 .
Situacija yra kitokia, kai eHouse_1 valdikliai dirbti pagal CommManager priežiūros .
CommManager valdiklis gali siųsti statusas (eHouse 1 ir CommManager jungtinis paketas) , UDP LAN ir prieiga prie šių duomenų yra jungtimis ir ne – invazinės taip pat tiesiogiai iš CommManager ar kitų Ethernet eHouse valdikliai .
Priima duomenis per UDP statuso negali pakenkti vairuotojams , ir daugiau gaunamus duomenis neteisingai interpretuoti .
EHouse sistema nesiųsti nieko UDP vairuotojo saugos , vairuotojas, nesvarbu, ar klientas gauna duomenys siunčiami per UDP, ar ne , ar klientų skaičius yra 0 arba 250 .
Gaunami duomenis iš eHouse namų automatikos sistemos , UDP yra saugi ir neapkrauna jokiu būdu vadovams arba eHouse programinės įrangos , siųsti transliacijas (UDP_broadcast) LAN .
Statusas dėžutė turi tokį formatą:
< ; ; data_size> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_addres_H> ; ; < ; ; Local_address_L> ; ; < ; ; komanda> ; ; < ; ; _1> ; ; . . . . . < ; ; Duomenys> ; ; < ; ; Data_N> ; ; < ; ; data_size> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_address_H> ; ; < ; ; Local_address_L> ; ; < ; ; komanda> ; ; < ; ; _1> ; ; . . . . . < ; ; Duomenys> ; ; < ; ; Data_N> ; ; < ; ; 0> ; ;
Normalus režimas / vs . (Išplėstas adresas)
1 . dydis duomenimis (duomenų dydis)
2 . Address_H_target (Address_H_target)
3 . Address_L_target (Address_L_target)
4 . Control_command (Address_H_of_local_controller_return_path)
5 . Data_1_byte (Address_L_of_local_controller_return_path)
6 . Data_2_byte (Control_Command)
7 Data_3_byte (Data_1_byte)
8 . . kitų duomenų konkrečios pagalbos komandos .
Jei siunčiate vairuotojo statusą " ; s kontrolės ir valdymo ‘ ai ‘ .
Toliau stebės duomenis dvejetaine forma, siekiant sumažinti informacijos perdavimą per nuoseklaus RS – 485 .
Dėl saugumo , prie duomenų patikrinti – Apibendrinant pašalinti neteisingi transliacijos atlikti .
Siųsti komandų būsena yra ‘ ai ‘ ,
Rėmo vairuotojų statusas Home Automation eHouse 1 ir aprašymas baitų skaičius (puslapis pamainą, priklausomai nuo darbo režimo (normalus arba extended_address) .
Ši konstanta perkeliant pavadintas žemiau TCP_INDEX_INC . Priklausomai nuo veiksenos , 3 vertę ji gali priimti už pratęstą adresą arba 0 įprastai perdavimo . Rašymo programinės įrangos , galite apsvarstyti šį parametrą kaip kintamąjį , , nes jis leidžia mums lengvai manipuliuoti duomenis vėlesnėse redakcijose, jei freimas yra perkeliama į vienu ar kitu būdu .
Indeksus kiekvienas baitas rėmo statusas vairuotojų eHouse 1 (kadro pradžios):
STATUS_ADC = 1 +2 + TCP_INDEX_INC ; / / Vertė A/D_converters_2_bytes_1B = MSB , 2B = LSB! .
STATUS_OUT = 17 2 + TCP_INDEX_INC ; / / Skaitmeninis išėjimas narės pirmiausia indeksas

/ / Kiekvienas išėjimas 1 bit LSB mažiausias skaičius , MSB didžiausia
STATUS_IN = 20 +2 + TCP_INDEX_INC ; / / Skaitmeninis įėjimas narės LSB mažiausias skaičius , MSB didžiausia
STATUS_INT = 21 2 + TCP_INDEX_INC ; / / Valstybės skaitmeniniai įėjimai (nutraukti) LSB mažiausią skaičių , MSB didžiausia
STATUS_OUT25 = 22 2 + TCP_INDEX_INC ; / / Išėjimai valstybes nuo 25 . . 32 taip pat, kaip produkcijos
STATUS_LIGHT = 23 2 + TCP_INDEX_INC ; / / Statusas vieno dimeris dimeris 1B
STATUS_ZONE_PGM = 26 2 + TCP_INDEX_INC ; / / Nėra dabartinis zona EM
STATUS_PROGRAM = 27 2 + TCP_INDEX_INC ; / / Nėra dabartinė programa
STATUS_INPUTEXT_A_ACTIVE = 28 2 + TCP_INDEX_INC ; / / Įvesties inputextender aktyvią būseną
STATUS_INPUTEXT_B_ACTIVE = 32 2 + TCP_INDEX_INC ; / / Įvesties inputextender B aktyvią būseną
STATUS_INPUTEXT_C_ACTIVE = 36 2 + TCP_INDEX_INC ; / / Įvesties inputextender aktyvią būseną C
STATUS_INPUTEXT_A = 40 2 + TCP_INDEX_INC ; / / Įvesties inputextender A Apsaugos ir įspėjamųjų
STATUS_INPUTEXT_B = 50 +2 + TCP_INDEX_INC ; / / Įvesties inputextender B Apsaugos ir įspėjamųjų
STATUS_INPUTEXT_C = 60 2 + TCP_INDEX_INC ; / / Įvesties inputextender C Apsaugos ir įspėjamųjų
/ / Statusas HeatManager
STATUS_ADC_HEART = 1 +2 + TCP_INDEX_INC ; / / Temperatūros matavimai iš 16 jutiklių taip pat, kaip RM
STATUS_OUT_HEART = 33 2 + TCP_INDEX_INC ; / / Skaitmeninis išėjimas teigiama, panašiai RM
WENT_MODE = 51 + TCP_INDEX_INC ;
RECU_MODE: = 50 + TCP_INDEX_INC ;
CURRENT_PGM: = 38 + TCP_INDEX_INC ;
/ / Statusas commmanager – integruota su statuso pagal 1 eHouse vairuotojų (hibridinė sistema) eHouse 1 CommManager priežiūros
STATUS_EHOUSE1_DEVS = 0 ; / / Padėkite prietaisų, prijungtų prie RS485 virš 71 baitų statusą (eHouse_1)
STATUS_ADC_ETH = 72 ; / / ADC_measurements_16_inputs * 2B / D_notation_as_for_RM_Vcc = 3V3
STATUS_ADC_ETH_END = STATUS_ADC_ETH 32 ; / / A / D matavimo pabaiga
STATUS_OUT_I2C = STATUS_ADC_ETH_END ; / / 2 kartus i2c 10 * 8 / / max = 160 modulių išėjimų išplėtimo modulis
STATUS_INPUTS_I2C = STATUS_OUT_I2C 20 ; / / 2 kartus I2c 6 * 8 / / maks 96 įėjimai išplėtimo modulis
STATUS_ALARM_I2C = STATUS_INPUTS_I2C 12 ; / / Input_in signalizacija valstybės (su kauke dabartinės saugumo zonoje)
STATUS_WARNING_I2C = STATUS_ALARM_I2C 12 ; / / Input_warning valstybės (su kauke dabartinės saugumo zonoje)
STATUS_MONITORING_I2C = STATUS_WARNING_I2C 12 ; / / Input_condition priežiūra (dėl dabartinės saugumo zonoje kauke)
STATUS_PROGRAM_NR = STATUS_MONITORING_I2C 12 ; / / Program_number_CommManager
STATUS_ZONE_NR = STATUS_PROGRAM_NR 1 ; / / Number_CommManager_zone
STATUS_ADC_PROGRAM = STATUS_ZONE_NR 1 ; / / ADC_program_number
STATUS_ADC_PROGRAM STATUS_LIGHT_LEVEL = 2 ; / / Statusas 3 reguliatoriais / / dimeris 3 * 2B
Apskaičiavimo pavyzdys temperatūros HM statuso
i = index analoginis įėjimas 0 . . HM gettemplm funkcija (TPĮ 15 , LSB) ;
TEMPHM [i]: = gettemplm (g [STATUS_ADC_HEART + i * 2 + TCP_INDEX_INC] , str [STATUS_ADC_HEART + i * 2 1 + TCP_INDEX_INC]) eHouse_Home_Automation_OpenSource_Delphi