1 eHouse – בית אוטומציה – מדינות בקר בצורה בינארית

eHouse בית אוטומציה , ניהול בניין גרסה 1 – מסגרת של מעמד בקר מערכת בית אוטומציה .
ליצירה פונקציונלית מלא , תוכנה יעילה שלו ללוחות בקרה שדורשים הדמיה צריכה לממש את המעמד ישיר פענוח eHouse 1 נהג בצורה בינארית . בהתאם לבחירה של מצב ההפעלה הרגיל, או כתובת מורחבת (Extended_address) , מסגרת לשלוח את מעמדו של הנהג היא כדלקמן (בסוגריים מסומנים הבדל במצב כתובת מורחבת) .
מצב זה נדרש לעבוד תחת פיקוחו של נהג CommManager ושולח את כתובת יעד ההודעה מחוץ אירועים , כתובת של המכשיר ליעד יכול לספר את השולח לקבל אירועים (יד – לנער) .
אם הממשק RS – 485 בהחלט לא ממליצים ניסיונות ישירים לחיבור לנהג , כמו שליחת פקודות מסוימות עלולה לגרום לזכרון תכנית ניקוי כזה (קושחה) בקרים אשר יכול לסיים את חייהם .
פקודות אחרות או אותות אקראיים בRS – 485 עלולות לערער את יציבותה של המערכת או בהחלט להאט את עבודתו .
eHouse Native בקרי אוטומציה צריך לעבוד תחת פיקוחו של מפיק יישום ” eHouse . exe ” .
לביטחון , אתה יכול לקרוא את הסטטוס של נהגים ללא חיבור אליהם באמצעות היישום eHouse . Exe (פרוטוקול UDP ו-LAN) .
זה אינו – קריאה פולשנית , לא טוען לא תוכנה ולא בקרים , ומה יותר , לא חודרני בכל פרוטוקול העברת דרך באמצעות RS – 485 .
המצב שונה כאשר eHouse_1 בקרים לעבוד תחת פיקוחו של CommManager .
CommManager בקר יכול לשלוח סטטוס (1 eHouse וCommManager בחבילה משולבת) , UDP LAN והגישה לנתונים זה הוא חסר חיבור ולא – כמו גם באופן ישיר מפולשנית 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> ; ;
מצב / לעומת רגיל . (כתובה מורחבת)
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 .
למען בטיחות , לנתונים מצורף לבדוק – סיכום לחסל שידורים שגויים לבצע .
שלחו מעמד פקודה הוא ‘ של ‘ ,
מעמד מסגרת של נהגים בית אוטומציה 1 eHouse ותיאור של מספר הבתים (שינוי המדד בהתאם למצב ההפעלה (רגיל או extended_address) .
זו הסטה מתמדת בשם מתחת TCP_INDEX_INC . בהתאם למצב , הוא עשוי לאמץ ערך של 3 לכתובת או 0 המורחבת לשידור רגיל . בעת כתיבת תוכנה , אולי כדאי שתשקלו בפרמטר זה כמשתנה , משום שהיא מאפשרת לנו לתפעל את הנתונים בגרסות מאוחרות יותר בקלות אם המסגרת נעה בדרך זו או אחרת .
אינדקסים של כל סטטוס מסגרת בתים של eHouse הנהגים 1 (תחילת המסגרת):
STATUS_ADC = 1 + 2 TCP_INDEX_INC ; / / הערך של A/D_converters_2_bytes_1B = MSB , LSB 2B =! .
STATUS_OUT = 17 + 2 TCP_INDEX_INC ; / / פלט דיגיטלי קובע מדד הראשון

מספר / / כל LSB קצת פלט 1 הקטן ביותר , 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 העמעם דימר 1
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 ; B / / הקלט inputextender במצב הפעיל
STATUS_INPUTEXT_C_ACTIVE = 36 + 2 TCP_INDEX_INC ; ג inputextender / / קלט במצב הפעיל
STATUS_INPUTEXT_A = 40 + 2 TCP_INDEX_INC ; / Inputextender קלט / A אזעקות ואזהרה
STATUS_INPUTEXT_B = 50 + 2 TCP_INDEX_INC ; קלט / / שעון מעוררי ואזהרה B inputextender
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 / / סטטוס – משולב עם המעמד של נהגים 1 eHouse (מערכת היברידית) 1 eHouse תחת פיקוחו של 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 dimmers / עמעם / 3 * 2B
דוגמה לחישוב הטמפרטורה על מעמדו של הוד מלכותה
אני = קלט הראשים אנלוגי 0 . . 15 לHM gettemplm פונקציה (MSB , LSB) ;
TEMPHM [i]: = gettemplm (str [STATUS_ADC_HEART + i * 2 + TCP_INDEX_INC] , str [STATUS_ADC_HEART + i * 2 + 1 TCP_INDEX_INC]) eHouse_Home_Automation_OpenSource_Delphi