EHouse 1 – Home Automation – Кантролер дзяржавы ў двайковай форме

EHouse Home Automation , Кіравання будынкам версія 1 – кадр стану сістэмы кантролера Home Automation .
Каб стварыць цалкам функцыянальны , эфектыўнае ўласнае праграмнае забеспячэнне для панэляў кіравання, якія патрабуюць візуалізацыі неабходна рэалізаваць прамое дэкадаванне EHouse 1 кіроўца статус у двайковай форме . У залежнасці ад выбару нармальнага рэжыму працы або пашыранага адрасы (Extended_address) , рамка для адпраўкі статусу кіроўцы выглядае наступным чынам (у дужках адзначана розніца ў пашыраным рэжыме адрас) .
Гэты рэжым неабходны для працы пад кіраўніцтвам CommManager кіроўцы і пасылае адрас паведамлення прызначэння за межамі падзей , Уласны адрас прылады прызначэння магу сказаць адпраўніка для прыёму падзей (рука – трэсці) .
Калі інтэрфейс RS – 485 дакладна не рэкамендаваў прамыя спробы падлучэння да кіроўцы , як адпраўка некаторых каманд могуць выклікаць такія праграмы ачысткі памяці (прашыўкі) Кантролеры якая магла б пакласці канец іх жыцця .
Іншыя каманды ці выпадковых сігналаў RS – 485 можа падарваць стабільнасць сістэмы ці дакладна замарудзіць сваю працу .
Родныя EHouse Аўтаматызацыя Кантролеры павінны працаваць пад кіраўніцтвам прадзюсара прыкладанняў ” EHouse . ехе ” .
Для забеспячэння бяспекі , Вы можаце чытаць статусу драйвераў без падлучэння да іх праз прыкладанне EHouse . Exe (UDP пратакол і LAN) .
Гэта не з'яўляецца – інвазівных чытанні , Не загружаецца ні праграмнае забеспячэнне, ні кантролераў , і, што больш , ня дакучлівыя ў любы пратакол шлях перадачы праз RS – 485 .
Сітуацыя змяняецца, калі eHouse_1 кантролеры працуюць пад кіраўніцтвам CommManager .
CommManager кантролер можа адправіць статусу (EHouse 1 і CommManager ў інтэграваным пакеце) , UDP доступ у Інтэрнэт і доступ да гэтых дадзеных ўсталявання злучэння і без – інвазівные, а таксама непасрэдна з CommManager ці іншых EHouse Ethernet кантролераў .
Атрыманне дадзеных па статусе UDP мы не можам шкодзіць кіроўцаў , і максімум ўваходных дадзеных перакручваюць .
EHouse сістэма не пасылаць нічога бяспекі кіроўцы UDP , Кіроўца не мае значэння, ці з'яўляецца кліент атрымлівае дадзеныя, якія перадаюцца праз UDP або няма , , Або колькасць кліентаў складае 0 або 250 .
Атрыманне дадзеных з EHouse сістэмы хатняй аўтаматызацыі , UDP з'яўляецца бяспечнай і не загружаецца ў любым выпадку кантролераў або EHouse праграмнага забеспячэння , адпраўка перадач (UDP_broadcast) да лакальнай сеткі .
Статус акно мае наступны фармат:
< ; ; DATA_SIZE> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_addres_H> ; ; < ; ; Local_address_L> ; ; < ; ; Каманда> ; ; < ; ; данные_1> ; ; . . . . . < ; ; Дадзеныя> ; ; < ; ; Data_N> ; ; < ; ; DATA_SIZE> ; ; (< ; ; The_destination_address_H> ; ; < ; ; The_destination_address_L> ; ; ) < ; ; Local_address_H> ; ; < ; ; Local_address_L> ; ; < ; ; Каманда> ; ; < ; ; данные_1> ; ; . . . . . < ; ; Дадзеныя> ; ; < ; ; Data_N> ; ; < ; ; 0> ; ;
Нармальны рэжым / VS . (Extended Address)
1 . Памер дадзеных (аб'ём дадзеных)
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 . . Астатнія дадзеныя для дадзенай каманды .
Калі вы адпраўляеце стан кіроўцы ; з кіруючай каманды ‘ з ‘ .
Працягвайце рухацца дадзеных у двайковай форме, каб звесці да мінімуму перадачу інфармацыі праз паслядоўны RS – 485 .
Для забеспячэння бяспекі , дадзеных прыкладаецца праверыць – Падводзячы для ліквідацыі няправільных трансляцый выконваць .
Адправіць каманду статус ‘ з ‘ ,
Кадр статусу драйвераў Home Automation EHouse 1 і апісанні нумар байта (індэкс зруху ў залежнасці ад рэжыму працы (звычайны або extended_address) .
Гэта пастаяннае зрушэнне названага ніжэй TCP_INDEX_INC . У залежнасці ад рэжыму , ён можа прымаць значэнне 3 для пашыранага адрасы або 0 для звычайных перадач . Пры напісанні праграмнага забеспячэння , Вы маглі б разгледзець гэты параметр ў выглядзе зменнай , таму што гэта дазваляе нам лёгка маніпуляваць дадзенымі ў больш позніх версіях, калі кадр ссоўваецца ў той ці іншай форме .
Індэксы кожны байт стану кадр з кіроўцаў EHouse 1 (пачатак кадра):
STATUS_ADC = 1 +2 + TCP_INDEX_INC ; / / Значэнне A/D_converters_2_bytes_1B = MSB , 2В = LSB! .
STATUS_OUT = 17 2 + TCP_INDEX_INC ; / / Лічбавы выхад гаворыцца, першы індэкс

/ / Кожны выйсце 1 біт LSB найменшую колькасць , MSB найбуйнейшых
STATUS_IN = 20 2 + TCP_INDEX_INC ; / / Лічбавы ўваход дзяржаў LSB найменшую колькасць , MSB найбуйнейшых
STATUS_INT = 21 2 + TCP_INDEX_INC ; / / Штатаў лічбавых уваходаў (перапыненне) LSB найменшую колькасць , MSB найбуйнейшых
STATUS_OUT25 = 22 2 + TCP_INDEX_INC ; / / Выведзе дзяржавы ад 25 . . 32, так жа, як выхад
STATUS_LIGHT = 23 2 + TCP_INDEX_INC ; / / Стан аднаго 1B диммер Диммер
STATUS_ZONE_PGM = 26 2 + TCP_INDEX_INC ; / / Не бягучых зоны для EM
STATUS_PROGRAM = 27 2 + TCP_INDEX_INC ; / / Не бягучую праграму
STATUS_INPUTEXT_A_ACTIVE = 28 2 + TCP_INDEX_INC ; / / Уваходны inputextender ў актыўным стане
STATUS_INPUTEXT_B_ACTIVE = 32 2 + TCP_INDEX_INC ; / / Уваходны inputextender B ў актыўным стане
STATUS_INPUTEXT_C_ACTIVE = 36 2 + TCP_INDEX_INC ; / / Уваходны inputextender C ў актыўным стане
STATUS_INPUTEXT_A = 40 2 + TCP_INDEX_INC ; / / Уваходны inputextender сігналізацыі і папярэджання
STATUS_INPUTEXT_B = 50 2 + TCP_INDEX_INC ; / / Уваходны inputextender B сігналізацыі і папярэджання
STATUS_INPUTEXT_C = 60 2 + TCP_INDEX_INC ; / / Уваходны inputextender C Сігналізацыя і папярэджання
/ / Стан HeatManager
STATUS_ADC_HEART = 1 +2 + TCP_INDEX_INC ; / / Вымярэння тэмпературы з 16 датчыкамі сапраўды гэтак жа, як і для RM
STATUS_OUT_HEART = 33 2 + TCP_INDEX_INC ; / / Лічбавы выхад гаворыцца, па аналогіі з RM
WENT_MODE = 51 + TCP_INDEX_INC ;
RECU_MODE: = 50 + TCP_INDEX_INC ;
CURRENT_PGM: = 38 + TCP_INDEX_INC ;
/ / Стан CommManager – інтэграваныя з статусу драйвераў EHouse 1 (гібрыдная сістэма) EHouse 1 пад кіраўніцтвам CommManager
STATUS_EHOUSE1_DEVS = 0 ; / / Устанавіць статус прылад, падлучаных да RS485 (eHouse_1) вышэй 71 байта
STATUS_ADC_ETH = 72 ; / / ADC_measurements_16_inputs * 2B / D_notation_as_for_RM_Vcc = 3V3
STATUS_ADC_ETH_END = STATUS_ADC_ETH 32 ; / / Канец / D вымярэння
STATUS_OUT_I2C = STATUS_ADC_ETH_END ; / / 2 разы i2c 10 * 8 / / макс = 160 выхадамі модуля на модуль пашырэння
STATUS_INPUTS_I2C = STATUS_OUT_I2C 20 ; / / 2 разы i2c 6 * 8 / / макс 96 уваходаў на модуль пашырэння
STATUS_ALARM_I2C = STATUS_INPUTS_I2C 12 ; / / Input_in стан трывогі (у адносінах да маскі для бягучай зоны бяспекі)
STATUS_WARNING_I2C = STATUS_ALARM_I2C 12 ; / / Input_warning стане (па адносінах да маскі для бягучай зоны бяспекі)
STATUS_MONITORING_I2C = STATUS_WARNING_I2C 12 ; / / Input_condition маніторынгу (у адносінах да маскі для бягучай зоны бяспекі)
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 ; / / Статус 3 диммеры / / Dimmer 3 * 2B
Прыклад разліку тэмпературы на стан HM
я = індэкс аналагавы ўваход 0 . . 15 для HM gettemplm функцыі (MSB , LSB) ;
TEMPHM [I]: = gettemplm (вул. [STATUS_ADC_HEART + я * 2 + TCP_INDEX_INC] , вул [STATUS_ADC_HEART + I * 2 +1 + TCP_INDEX_INC]) eHouse_Home_Automation_OpenSource_Delphi