אוטומצית הבניין eHouse – יצירה של שכבות תוכנה של Windows ואלגוריתמים מותאמים אישית

בית אוטומציה eHouse עם תוכנת מחשב מאפשר לך ליצור שכבות למערכת אוטומצית בניין .
זה מאפשר לך ליצור את עצמו , אלגוריתמים בודדים , אינם מיושם בתוכנת הקושחה או נהג ששולטת סידורי בית אוטומציה eHouse .
לשם כך , אנו מספקים למשתמשים עם קודי תוכנת הקוד (בדלפי 5) . הם יכולים להיות הידור בגרסות חדשות יותר של דלפי או שימוש לשפות תכנה אחרות .
אנחנו בחרנו במודע גרסות ארכאיות זה כפי שהם כבר זמינים בחינם לתכנית חובבנית .
הם עובדים רק כאמינים ב-Windows XP , נוף , Windows 7 גם 32 ו 64 ביט .
תוכנה זו נקראת eHouseLogAnalizer ויישומים אלה תבנית יומנים שקוראים קבצי טקסט מעודכן .
זה יכול להיות מנוהל ומפוקח על ידי KillWdt יישומים . exe .
תכונות עיקריות של היישום:

  • לקרוא את המצב ושמות של כל הנהגים
  • קראו כאן את המצב והכנס את השמות של כל הנהגים
  • קראו את המידות ואת השמות של כל נהגי מדידת תשומות
  • טען את כל הנתונים לזכרון התכנית הפנימית , אשר יכול להיות מעובד נוסף על ידי יישום

היישום משתמש במעמדם של קבצים שנוצר לקבצי טקסט בספרייה ‘ יומנים / סטטוס / ‘ הארכה ‘ . מעמד ‘ .
הקובץ הוא לקריאה בלבד, במקרה של שינויים ביישום eHouse . exe .

בקרי נתונים נטענים בשיאי המקרים הבאים ” ehouse_rm_em_hm ” מופיע במערך RM .

בנוסף , נתונים נשמרים HeatManager את המשתנים הבאים:
bonfire_status: מחרוזת ; / / מצב של מדורה לHeatManager – eHouse פנל חימום אח המצב . exe
boiler_status: מחרוזת ; / / מצב של דוד לHM – מעמדו של eHouse פנל דוד החימום . exe
Solar_status: מחרוזת ; / / מצב של מערכת שמש – מעמדו של eHouse פנל החימום סולארי . exe
recuperator_status: מחרוזת ; / / מצב של הבראה , אוורור , חימום אוויר – מצב של אוורור חימום והתאוששות חומה
HADC: מערך [0 . . 15] מכפול ; מנהל / / חום טמפרטורות – HeatManager מדידות הטמפרטורה
/ אינדקסי מנהל / חום לגישה ישירה של מערך HADC – מדדי טמפרטורה קבועים לקריאה ישירה של HeatManager הטמפרטורה
Const HM_GWC = 3 ; / / כללי עם נפגעים – מחליף חום קרקע
HM_KOM1 = 4 ; / / אח פרווה 1 – מעייל מי מדורה 1
HM_KOMKONV = 5 ; / / אח konvekcyjne – מדורת הסעה
HM_KOM2 = 6 ; / / אש מטוס 2 – מעייל מדורת מים 2 (גיבוי)
HM_TWEWN = 7 ; טמפרטורת חדר / / פנימית – טמפרטורת חדר הפנימית
HM_SOLAR = 9 ; שמש / / אספן – מערכת שמש
HM_ZEWNPN = 8 ; / / חיצוני טמפרטורת צפון – טמפרטורה חיצוני צפון
HM_ZEWNPD 1 = ; טמפרטורה / / חיצונית של הדרום – טמפרטורה חיצוני דרום
HM_KOC = 10 ; דוד / / טמפרטורה – טמפרטורת דוד
HM_BANDOL = 11 ; טנק / CO / / מים חם למטה – מאגר תחתון watter חם
HM_REQIN = 12 ; / קלט מנגנון החזרת אוויר נקי / – קלט אוויר הבראה ברור
HM_REQOUT = 13 ; / / פלט מנגנון החזרה הביתה – אוויר heaten הבראה טרי מכה לחדר – טמפרטורה
HM_NAG = 14 ; / / טמפרטורה מבוקרת 3 – דרך שסתום לחימום ולרדיאטורים – טמפרטורה אחרי 3 דרכים לניתוק מערכת חימום אחרת חימום מים או
HM_REQWYC = 15 ; / / בית מנגנון החזרת תמצית מלוכלכת – הבראה מהבית מלוכלך פליטה הזמנית
HM_BANGORA = 2 ; / / חימום / מים חמה מכל גורה – TOP מאגר המים חמים
HM_BANSRO = 0 ; / / חימום / מיכל אחסון מים חמים אמצעי – מאגר המים חם תיכון
HADCNames var: מערך [0 . . 15] של מחרוזת ; / / השמות של החיישנים (מדידת תשומות) HeatManagera
EhouseLogAnalizer פונקציות בסיסית:
init_heat_temperature_names הליך ; / / אתחול ו / או חיישני טמפרטורה לקרוא את השמות של HM
loadnames_rm הליך ; / שמות RoomManagerĂłw / עומס (eHouse 1)
readethernetdevs הליך ; / / קורא את שמות מנהלי Ethernet (eHouse 2)
פונקצית get_index_rm (רח: מחרוזת): מספר שלם ; / / מחזיר את האינדקס של הטבלה עם חיפוש לפי שם roomManagerami מצב הקובץ
הפונקציה GB (chr: char): בוליאני ; / / מחזיר ערך בוליאני למעמד הקריאה
הליך adc_hm (רח: מחרוזת ; אינדקס: מספר שלם) ; / / ממיר את המחרוזת עם טמפרטורות שנרשמו במעמד HeatManagera הקריאה
הליך adc_rm (רח: מחרוזת ; אינדקס: מספר שלם) ; / / ממיר מחרוזת של מדידות אנלוגיות בעת קריאת RoomManagerĂłw המעמד
GBS פונקציה (ב: בוליאני): מחרוזת ; / / כתיבת וליאני בצורת טקסט (0 , 1)
פונקצית RMDeviceIndexByName (רח: מחרוזת): מספר שלם ; / / מחזיר את האינדקס של הטבלה עם חיפוש RoomManagerami בשם נהג
פונקצית RMGetOutputStateNr (אינדקס: שלם ; OutputNr: מספר השלם): בוליאני ; / / תשואת RM מדינת הפלט [ראשים] וOutputNR מספר הפלט
פונקצית RMGetOutputState (אינדקס: שלם ; OutputName: מחרוזת): בוליאני ; / / מחזיר RM מדינת הפלט [ראשים] וקרא OutputName
פונקצית RMGetInputStateNr (אינדקס: שלם ; InputNr: מספר השלם): בוליאני ; / / מחזיר את המצב של RM הקלט [ראשים] ומספר InputNr כניסה
פונקצית RMGetInputState (אינדקס: שלם ; InputName: מחרוזת): בוליאני ; / / מחזיר את המצב של RM הקלט [ראשים] ושמו של InputName הכניסה
פונקצית RMGetTempNr (אינדקס: שלם ; InputNr: מספר השלם): הכפול ; / / מחזיר את טמפרטורת RM [ראשים] ומספר InputNr כניסה
פונקצית RMGetTemp (אינדקס: שלם ; InputName: מחרוזת): כפול ; / / מחזיר את טמפרטורת RM [ראשים] ושמו של InputName הכניסה
פונקצית RMGetInvPercent (אינדקס: שלם ; InputName: מחרוזת): כפול ; / / מחזיר מדידת אחוז הפוך 100 % – x RM [ראשים] ושמו של InputName הכניסה (ביחס לאספקת מתח הבקר)
פונקצית RMGetInvPercentNr (אינדקס: שלם ; InputNr: מספר השלם): הכפול ; / / מחזיר מדידת אחוז הפוך 100 % – x RM [ראשים] ומספר InputNr כניסה (ביחס לאספקת מתח הבקר)
פונקצית RMGetPercent (אינדקס: שלם ; InputName: מחרוזת): כפול ; / / מחזיר מדידת אחוז [הראשים] RM ושם InputName הכניסה (ביחס לאספקת מתח הבקר)
פונקצית RMGetPercentNr (אינדקס: שלם ; InputNr: מספר השלם): הכפול ; / / מחזיר מדידת אחוז הפוך 100 % – x RM [ראשים] ושמו של InputNr הכניסה (ביחס לאספקת מתח הבקר)
פונקצית RMGetDeviceOutputState (Devname: מחרוזת ; OutputName: מחרוזת): בוליאני ; / / מחזיר את מצבו של הנהג בשם הפלט Devname וקראו OutputName
פונקצית RMGetDeviceInputState (Devname: מחרוזת ; InputName: מחרוזת): בוליאני ; / / מחזיר את המצב של קלט הנהג את השם ואת שמו של InputName Devname הכניסה
פונקצית HMGetTemp (InputName: מחרוזת): כפולה ; טמפרטורה / חזרה / של קלט המדידה קרא לHeatManagera InputName
HMGetTempNr פונקציה (InputNr: מספר השלם): כפולה ; טמפרטורה / חזרה / של קלט מספר המדידה לHeatManagera InputNr (1 . . 16)
פונקצית chk_int (רח: מחרוזת): מספר שלם ; / / בטוח כדי להמיר מחרוזת למספר שלם
ההליך update_status ; / / עדכון הסטטוס של כל המנהלים בטבלה (יש להפעיל מעת לעת)
Test_save הליך ; / / נוהל בדיקה לכתוב את התוצאות לקובץ טקסט לקל
לאתחל את המנהל ואת כל השמות נעשים ברגע הפעלת היישום (FormCreate)
הליך TForm1 . FormCreate (שולח: TObject) ;
להתחיל
נתיב: = getcurrentdir () ; / / קבל את הנתיב הנוכחי של התכנית חייב להיות בספרייה % eHouse_DIR % \ BIN \
נתיב: = stringreplace (נתיב , ‘ \ בן ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / קבל מסלול של eHouse יישום – מגדיר את דרך יישום eHouse
loadnames_rm ; שמות בקר / טעינה / ehouse1 – עומסי שם הנהגים 1 eHouse
init_heat_temperature_names ; / חיישני שם heatManagera / טעינה
readethernetdevs ; / / טעינת בקרי שמות eHouse אתרנט – קריאת eHouse מכשיר שמות 2
timer1 . מרווח: = 3000 ; מרווח / / סט מחזורי משימה באלפיות שניים – מגדיר את הזמן להתחיל לבדוק נתונים מחזוריים
timer1 . אפשר: = אמיתי ; / / התחל פעולות אוטומטיות (עדכון מצב – כולל בדיקה קבועה של נתונים
update_status ; / / קורא את הסטטוס 1
הסוף ;
בדיקת נתוני מחזורים נעשית על ידי פונקצית Timer1 (Timer1Timer) פועל במרווח זמן שנקבע בפרמטר Timer1 . מרווח זמן (באלפיות שניים) .
הליך TForm1 . Timer1Timer (שולח: TObject) ;
var TF: קובץ טקסט ;
להתחיל
update_status ; / / ממיר את מעמדו של הנהג
Test_save ; / / למבחן כותב את כל התוצאות לקובץ טקסט
לנסות / / ליצור קובץ סמן ליישום KillExec . exe שיכול ” לצפות ” יישום לפני ההתרסקות
AssignFile (TF , נתיב + ‘ יומני \ יומן – analizer . STP ‘ ) ;
/ / הודע WDT זה יישום נכון העבודה המשתמש stampfile ” היכנס \ יומן – analizer . STP ”
לשכתב (TF) ;
writeln (TF , ‘ 1 ‘ ) ;
לבסוף ;
closefile (TF) ;
הסוף ;
הסוף ;