專利名稱:用于包括多個設(shè)備的聯(lián)網(wǎng)控制系統(tǒng)的編譯器和編譯方法
用于包括多個設(shè)備的聯(lián)網(wǎng)控制系統(tǒng)的編譯器和編譯方法
技術(shù)領(lǐng)域:
本發(fā)明涉及編譯(compile)用于聯(lián)網(wǎng)控制系統(tǒng)的多個設(shè)備的控制邏 輯的編譯器和方法,特別是,涉及自動指派控制邏輯給設(shè)備。
設(shè)備的聯(lián)網(wǎng)是在商業(yè)、工業(yè)和公共機構(gòu)企業(yè)市場以及在消費者市場上 普遍存在的趨勢。聯(lián)網(wǎng)控制系統(tǒng)的例子是大樓設(shè)備自動化系統(tǒng),例如用于 照明、供暖和通風(fēng)或安全。聯(lián)網(wǎng)控制系統(tǒng)可由以下設(shè)備組成,比如燈鎮(zhèn)流 器(light ballast )、開關(guān)、日光或占位(occupancy)傳感器、遙控器、 制動器、閥、恒溫器或計量器。這些設(shè)備優(yōu)選地被無線地連接,也就是經(jīng) 由RF(射頻)技術(shù)來連接??刂凭W(wǎng)可包括大量的設(shè)備。這些設(shè)備可以具有很 小的占地面積;被安裝在難以接近的地方(例如,燈鎮(zhèn)流器被隱藏在天花 板內(nèi)),是資源有限的,以及可能有潛在地非常復(fù)雜的應(yīng)用邏輯要在這些 設(shè)備上運行。這些狀況要求有控制網(wǎng)絡(luò)管理的新途徑。
本發(fā)明的目的是提供用于包括多個設(shè)備的聯(lián)網(wǎng)控制系統(tǒng)的、改進(jìn)的編 譯器和編譯方法。
這個目的是通過獨立權(quán)利要求而解決的。通過從屬權(quán)利要求顯示了其 它的實施例。
本發(fā)明通過編譯而提供了可執(zhí)行的運行時代碼(runtime code)到聯(lián) 網(wǎng)控制系統(tǒng)的設(shè)備的自動指派規(guī)程。控制邏輯到設(shè)備的指派過程可以考慮 各種最佳化準(zhǔn)則,其包括各種分布方面(distribution aspect),例如 網(wǎng)絡(luò)資源或能力,諸如網(wǎng)絡(luò)鏈路的可用帶寬或可靠性,以及設(shè)備資源或能 力,例如CPU、存^f諸器、電源或睡眠行為(sleeping behavior),其例如 由于傳輸延遲或數(shù)據(jù)分組丟失而可能影響該設(shè)備的被觀察到的行為。
下面,解釋這里使用的一些重要術(shù)語。
術(shù)語"聯(lián)網(wǎng)控制系統(tǒng)"具體地是指包括多個被連接的設(shè)備或甚至節(jié)點 的系統(tǒng)。設(shè)備可以通過通信系統(tǒng)——例如無線通信系統(tǒng)——而4皮連接。聯(lián) 網(wǎng)控制系統(tǒng)可以是復(fù)雜的照明控制系統(tǒng),其具有占位和日光傳感器以及例 如針對工作日和周末,工作時間和工余時間的預(yù)先定義的規(guī)則。聯(lián)網(wǎng)控制 系統(tǒng)還可以是大樓設(shè)備自動化系統(tǒng)、家庭控制系統(tǒng)、氣氛照明系統(tǒng)或任何 其他控制和自動化環(huán)境,包括工業(yè)、零售業(yè)、公共機構(gòu)和住宅。
術(shù)語"設(shè)備"在這里可以是指聯(lián)網(wǎng)控制系統(tǒng)的任何設(shè)備或節(jié)點。設(shè)備可包括燈鎮(zhèn)流器、開關(guān)、(日)光或占位傳感器、遙控器、制動器、恒溫器、 閥、計量器和/或附加設(shè)備,比如(網(wǎng)絡(luò))路由器、橋、網(wǎng)關(guān)、聚合器
(aggregator)和控制臺。設(shè)備可以向聯(lián)網(wǎng)控制系統(tǒng)提供控制參數(shù)或功能。 設(shè)備典型地包括設(shè)備邏輯,它可以表示對應(yīng)設(shè)備的硬件或軟件狀態(tài)的屬 性,并定義設(shè)備狀態(tài)與本地設(shè)備功能。設(shè)備邏輯可以通過表示設(shè)備的硬件 和軟件狀態(tài)的屬性的設(shè)備"狀態(tài)變量"來表示。如果狀態(tài)變量由可執(zhí)行代 碼讀取或改變,則該狀態(tài)變量可被稱為"牽涉到"該可執(zhí)行代碼。由可執(zhí)行 代碼讀取的狀態(tài)變量是輸入狀態(tài)變量。由可執(zhí)行代碼改變的狀態(tài)變量是輸 出狀態(tài)變量。主設(shè)備可被指派以狀態(tài)變量,這是指在運行時期間主設(shè)備持 有狀態(tài)變量的實例,并且這個實例的值將被作為對于該狀態(tài)變量的"主"值 對待。如果設(shè)備是"牽涉到"可執(zhí)行代碼的至少一個狀態(tài)變量的主設(shè)備,則 該設(shè)備可被稱為"牽涉到"可執(zhí)行代碼。
術(shù)語"控制邏輯"可以定義與設(shè)備無關(guān)的程序,該程序描述一個或多個 設(shè)備的運行時行為??刂七壿嬁梢曰旧嫌梢跃幊陶Z言明確表達(dá)的、對于 狀態(tài)變量的操作來組成。
術(shù)語"可執(zhí)行代碼"或執(zhí)行器可以定義設(shè)備特定的軟件程序,它是對應(yīng) 的控制邏輯的翻譯。運行時環(huán)境可被配置成執(zhí)行可執(zhí)行代碼??蓤?zhí)行代碼 的執(zhí)行可以允許對聯(lián)網(wǎng)控制系統(tǒng)的至少一個設(shè)備的運行時行為進(jìn)行控制。
按照本發(fā)明的一個實施例,提供了 一種用于包括多個設(shè)備的聯(lián)網(wǎng)控制 系統(tǒng)的編譯器,包括
-用于把控制邏輯劃分成多個功能控制邏輯程序的裝置;
-用于把多個功能控制邏輯程序翻譯成多個可執(zhí)行代碼的裝置;以及
-用于按照安置規(guī)則(placing rule)把多個可執(zhí)行代碼指派給多個 設(shè)備中規(guī)定的設(shè)備的裝置。
用于劃分的裝置可被配置成按照取決于安置規(guī)則的劃分規(guī)則來劃分 控制邏輯。這允許最佳地指派可執(zhí)行代碼和對應(yīng)的控制邏輯程序。
所述規(guī)定的設(shè)備可以是牽涉到該多個可執(zhí)行代碼之一的設(shè)備。這允許 把由可執(zhí)行代碼提供的所需要的功能性安置成靠近需要該功能性的設(shè)備。
用于指派的裝置可被配置成把多個可執(zhí)行代碼中的至少 一個可執(zhí)行 代碼指派給規(guī)定的設(shè)備,該規(guī)定的設(shè)備宿有(host)牽涉到所述至少一個 可執(zhí)行代碼的狀態(tài)變量的主實例。特別地,該狀態(tài)變量可以是可執(zhí)行代碼 的輸出狀態(tài)變量。用于指派的裝置可被配置成把可執(zhí)行代碼指派到規(guī)定的設(shè)備上,該
規(guī)定的設(shè)備包括用于執(zhí)行所指派的可執(zhí)行代碼的足夠資源。這允許防止可 執(zhí)行代碼被指派到資源有限的設(shè)備上。
而且,用于指派的裝置可包括用于區(qū)分包括足夠資源的設(shè)備和包括 有限資源的設(shè)備的裝置以及其中用于指派的裝置可被配置成僅僅在沒 有包括足夠資源的設(shè)備可用的情況下,才把可執(zhí)行代碼指派給包括有限資 源的設(shè)備。因此,可執(zhí)行代碼優(yōu)選地不被安置在具有有限能力或資源的設(shè) 備上。
而且,用于指派的裝置可包括用于區(qū)分包括足夠資源的設(shè)備和包括 有限資源的設(shè)備的裝置;以及其中用于指派的裝置可被配置成僅僅在所 牽涉到的有限資源的設(shè)備上不可得到足夠資源的情況下(例如,由于物理 資源的限制或其他可執(zhí)行代碼所造成的資源耗盡),才把可執(zhí)行代碼指派 給未牽涉到的設(shè)備。在聯(lián)網(wǎng)控制系統(tǒng)是基于802. 15.4/ZigBee、或具有母 子關(guān)系和/或類似于ZigBee終端設(shè)備的資源有限設(shè)備的類似技術(shù)的實施例 中,包括足夠資源的設(shè)備可以是資源有限的子設(shè)備的母設(shè)備。按照另一個 實施例,包括足夠資源的設(shè)備可以是在所牽涉到的設(shè)備之間的通信路由上 的路由器。
按照一個實施例,用于指派的裝置可被配置成把多個可執(zhí)行代碼指 派給規(guī)定的設(shè)備,以使得在包括有限資源的設(shè)備上的通信成本被最小化。 這允許節(jié)省資源有限設(shè)備的有限的資源。
而且,用于指派的裝置可被配置成把多個可執(zhí)行代碼指派給規(guī)定的 設(shè)備,以使得在所有的多個設(shè)備上的通信成本被最小化。這允許減小聯(lián)網(wǎng) 控制系統(tǒng)中的能量消耗。
用于指派的裝置還可被配置成按照多個安置規(guī)則把多個可執(zhí)行代碼 指派給規(guī)定的設(shè)備,以使得如果使用一個安置規(guī)則在規(guī)定的設(shè)備上沒有足 夠的資源,則對于至少一個可執(zhí)行代碼使用另 一個安置規(guī)則。
所述編譯器可以適合于基于802. 15. 4/ZigBee或具有母子關(guān)系的類似 技術(shù)的聯(lián)網(wǎng)控制系統(tǒng),其中該多個設(shè)備包括至少一個子設(shè)備和與所述子設(shè) 備相關(guān)聯(lián)的至少一個母設(shè)備;以及其中用于指派的裝置被配置成如果子 設(shè)備在執(zhí)行多個可執(zhí)行代碼的至少 一個可執(zhí)行代碼時被牽涉到,則指派多 個可執(zhí)行代碼的至少 一個可執(zhí)行代碼給母設(shè)備。
聯(lián)網(wǎng)控制系統(tǒng)可包括至少一個路由器,以及用于指派的裝置可被配置成如果路由器被連接到當(dāng)執(zhí)行多個可執(zhí)行代碼的至少一個可執(zhí)行代碼時 牽涉到的至少 一個設(shè)備,則指派多個可執(zhí)行代碼的至少一個可執(zhí)行代碼給 路由器。
按照本發(fā)明的另 一個實施例,提供了 一種用于包括多個設(shè)備的聯(lián)網(wǎng)控
制系統(tǒng)的編譯器,包括
-用于把控制邏輯翻譯成可執(zhí)行代碼程序的裝置;
-用于把可執(zhí)行代碼程序劃分成多個可執(zhí)行代碼的裝置;以及
-用于按照安置規(guī)則把多個可執(zhí)行代碼指派給多個設(shè)備中規(guī)定的設(shè)備
的裝置。
按照本發(fā)明的另一個實施例,提供了一種聯(lián)網(wǎng)控制系統(tǒng),包括
-多個設(shè)備;以及
-按照本發(fā)明的實施例的編譯器。
按照本發(fā)明的另 一個實施例,提供了 一種用于包括多個設(shè)備的聯(lián)網(wǎng)控
制系統(tǒng)的編i奪方法,包"l舌
-把用戶規(guī)定的控制邏輯劃分成多個功能控制邏輯程序;
-把多個功能控制邏輯程序翻譯成多個可執(zhí)行代碼;以及
-按照安置規(guī)則把多個可執(zhí)行代碼指派給多個設(shè)備中規(guī)定的設(shè)備。
劃分、翻譯和指派的步驟可以迭代地執(zhí)行。這允許編譯過程最佳化。
按照一個實施例,被迭代地執(zhí)行的步驟可以在用戶規(guī)定的控制邏輯的
編譯過程期間、在可執(zhí)行代碼的安裝過程期間、和/或在可執(zhí)行代碼的執(zhí)
行期間被執(zhí)行。這允許把在編譯、安裝或執(zhí)行期間收集的信息包括到編譯
過程中。
按照本發(fā)明的另 一個實施例,提供了 一種用于包括多個設(shè)備的聯(lián)網(wǎng)控
制系統(tǒng)的編-澤方法,包4舌
-把控制邏輯翻譯成可執(zhí)行代碼程序;
-把可執(zhí)行代碼程序劃分成多個可執(zhí)行代碼;以及
-按照安置規(guī)則把多個可執(zhí)行代碼指派給多個設(shè)備中規(guī)定的設(shè)備。
按照本發(fā)明的一個實施例,可提供一種計算機程序,當(dāng)其由計算機執(zhí)
行時,使得能實行按照本發(fā)明的以上方法。這允許以編譯器程序的形式實
現(xiàn)本發(fā)明的方法。
按照本發(fā)明的另 一個實施例,可以提供一種存儲按照本發(fā)明的計算機 程序的記錄載體,例如CD-R0M、 DVD、存儲卡、盤、或適合于存儲計算機
8程序以供電子存取的類似的數(shù)據(jù)載體。參考下文描述的實施例將明白本發(fā)明的這些和其它方面,并將參考這 些實施例來闡述這些和其它方面。下文將參照示例性實施例來更詳細(xì)地描述本發(fā)明。然而,本發(fā)明不限 于這些示例性實施例。
圖1顯示按照本發(fā)明的聯(lián)網(wǎng)控制系統(tǒng)中的編譯器;以及 圖2顯示按照本發(fā)明的示例性聯(lián)網(wǎng)控制的照明系統(tǒng)。下面,功能上類似或相同的單元可以具有相同的參考標(biāo)號。圖1顯示包括編譯器100和多個設(shè)備102、 104、 106、 108、 112的聯(lián) 網(wǎng)控制系統(tǒng)。設(shè)備102是母設(shè)備,而設(shè)備108是被連接到母設(shè)備102的子 設(shè)備。設(shè)備112是路由器。設(shè)備104、 106通過路由器112而被連接。設(shè) 備102被連接到設(shè)備104。設(shè)備102、 104、 106、 108、 112和該編譯器通 過如無線通信系統(tǒng)那樣的通信系統(tǒng)而被連接。編譯器IOO是用于編譯的設(shè)備,它被配置成執(zhí)行由編譯器程序描述的、 用于編譯的方法。編譯器IOO被配置成接收控制邏輯并輸出可執(zhí)行代碼。 該控制邏輯是用戶規(guī)定的控制邏輯??蓤?zhí)行代碼由編譯器從控制邏輯生 成。該編譯器還被配置成把所生成的可執(zhí)行代碼指派給多個設(shè)備102、 104、 106、 108、 112中的至少一個規(guī)定的設(shè)備。編譯器100包括用于劃 分的裝置122、用于翻譯的裝置124、以及用于指派的裝置126。用于劃分的裝置122被配置成接收控制邏輯并把控制邏輯劃分成多 個功能控制邏輯程序。例如,用于劃分的裝置把控制邏輯劃分成兩個或多 個功能控制邏輯程序。用于劃分的裝置122還被配置成把功能控制邏輯 程序提供到用于翻譯的裝置124。用于翻譯的裝置124被配置成接收功能控制邏輯程序,并把每個接 收的功能控制邏輯程序翻譯成對應(yīng)的可執(zhí)行代碼。用于翻譯的裝置124還 被配置成把所生成的可執(zhí)行代碼提供到用于指派的裝置126。用于指派的裝置126被配置成接收可執(zhí)行代碼,并把每個可執(zhí)行代 碼指派給多個設(shè)備102、 104、 106、 108、 112中的至少一個設(shè)備。用于指 派的裝置126被配置成按照安置規(guī)則,選擇可執(zhí)行代碼要被指派到的規(guī) 定設(shè)備。安置規(guī)則定義多個設(shè)備102、 104、 106、 108、 112中的哪個設(shè)備是用于所有的或特定的可執(zhí)行代碼的規(guī)定設(shè)備。安置規(guī)則可以遵循 一 個或 多個最佳化準(zhǔn)則。為此,該編譯器可以有權(quán)訪問有關(guān)系統(tǒng)、應(yīng)用和/或特 定設(shè)備的詳細(xì)信息。用于劃分的裝置122被配置成按照劃分規(guī)則來劃分控制邏輯。劃分 規(guī)則取決于安置規(guī)則。這允許根據(jù)要由用于指派的裝置126向其指派對應(yīng) 的一個或多個可執(zhí)行代碼的一個或多個規(guī)定的設(shè)備,來劃分特定的控制邏 輯。倘若規(guī)定的設(shè)備例如包括足夠的資源,則用于劃分的裝置122可以根 本不劃分接收的控制邏輯,而是從接收的控制邏輯生成單個功能控制邏輯 程序。在一個實施例中,用于指派的裝置126被配置成把可執(zhí)行代碼指派 給牽涉到該可執(zhí)行代碼的規(guī)定設(shè)備。例如,在特定的可執(zhí)行代碼中牽涉到 設(shè)備104、 106,因為設(shè)備104是輸入狀態(tài)變量的主設(shè)備,而設(shè)備106是輸 出狀態(tài)變量的主設(shè)備。因此,用于指派的裝置126把該特定的可執(zhí)行代碼 指派給設(shè)備104或設(shè)備106,以便遵從安置規(guī)則。用于指派的裝置126還可被配置成把可執(zhí)行代碼指派到規(guī)定的設(shè)備 上,該規(guī)定的設(shè)備包括用于執(zhí)行所指派的可執(zhí)行代碼的足夠資源。用于指 派的裝置126可包括用于區(qū)分包括足夠資源的設(shè)備和包括有限資源的設(shè) 備的裝置(圖1上未示出)。例如,在基于802. 15.4/ZigBee或具有母子關(guān) 系的類似技術(shù)的聯(lián)網(wǎng)控制系統(tǒng)中,母設(shè)備102可包括足夠的資源。相反, 子設(shè)備108可以是包括有限的資源或能力的設(shè)備。用于指派的裝置126可 以優(yōu)選地把可執(zhí)行代碼指派給母設(shè)備102,而不指派給子設(shè)備108。特別 是,如果子設(shè)備108宿有可執(zhí)行代碼輸出狀態(tài)變量的主實例的話,則用于 指派的裝置126可以把可執(zhí)行代碼指派給母設(shè)備102。按照另一個實施例,用于指派的裝置126可被配置成把可執(zhí)行代碼 指派給路由器112。特別是,如果被連接到路由器112的設(shè)備104、 106的 至少一個牽涉到對應(yīng)的可執(zhí)行代碼的話,則用于指派的裝置126可以把可 執(zhí)行代碼指派給路由器112。按照另一個實施例,用于指派的裝置126可被配置成指派可執(zhí)行代 碼,以使得在特定的設(shè)備上的通信成本被最小化。特別是,使得在包括有 限資源的設(shè)備上的通信成本最小化可以是有利的。而且,用于指派的裝置 126可被配置成指派可執(zhí)行代碼,以使得在所有的設(shè)備102、 104、 106、 108、 112上的通信成本被最小化。按照另一個實施例,用于指派的裝置126可以使用規(guī)則的(有序的)組合。圖1所示的聯(lián)網(wǎng)控制系統(tǒng)只是示例性地選取的。它可包括遵從聯(lián)網(wǎng)控 制系統(tǒng)所計劃用于的操作領(lǐng)域的要求所必需的任何配置。按照另一個實施例,用于翻譯的裝置124和用于劃分的裝置122的位 置可以在編譯器100內(nèi)被互換。因此,用于翻譯的裝置可以把接收的控制 邏輯翻譯成可執(zhí)行代碼程序。此后,用于劃分的裝置可以把該可執(zhí)行代碼程序劃分成多個可執(zhí)行代碼,以及用于指派的裝置可以按照安置規(guī)則把多 個可執(zhí)行代碼指派給多個設(shè)備中規(guī)定的設(shè)備。按照又一個實施例,翻譯、劃分和指派的步驟可以迭代地重復(fù)進(jìn)行。 按照本發(fā)明的聯(lián)網(wǎng)控制系統(tǒng)可以基于 一 個系統(tǒng),其允許對于聯(lián)網(wǎng)控制 系統(tǒng)的筒單、緊湊和靈活的控制邏輯設(shè)計。這由于與控制有關(guān)的數(shù)據(jù)的遷 移對于應(yīng)用代碼本身簡單和透明,因而是可能的??刂七壿嬁梢杂捎脩粼?目標(biāo)聯(lián)網(wǎng)控制系統(tǒng)中所有的或被選定的設(shè)備的集合上規(guī)定,而不需要考慮 與通信有關(guān)的方面。然后,作為邏輯編譯的一部分,可以通過計算機控制 的或自動的過程而把可執(zhí)行的運行時代碼指派給設(shè)備,使得目標(biāo)聯(lián)網(wǎng)控制 系統(tǒng)相對于設(shè)備和/或網(wǎng)絡(luò)能力或資源最佳化。隨后,可以自動添加覆蓋 分布方面的支持邏輯。換句話說,按照本發(fā)明的聯(lián)網(wǎng)控制系統(tǒng)可包括如下的系統(tǒng),其使得能 獨立于分布方面而開發(fā)和建立控制應(yīng)用,由此減小控制邏輯(正如從用戶 來看的)以及邏輯設(shè)計過程的復(fù)雜性。而且,可以使得能自由地分配控制 邏輯給設(shè)備,這考慮了在應(yīng)用開發(fā)后的計算機控制的或自動化的系統(tǒng)最佳 化。這樣的系統(tǒng)還可以允許非技術(shù)專家型的用戶容易地且以最佳方式定義 和建立控制邏輯。設(shè)計控制邏輯和建立系統(tǒng)的過程可以按以下步驟完成。 由用戶或設(shè)計者進(jìn)行的邏輯設(shè)計可以包括在目標(biāo)系統(tǒng)中的所有設(shè)備 邏輯的集合上開發(fā)控制邏輯("設(shè)計視圖,,),而不用規(guī)定在運行時系統(tǒng)中相關(guān)的運行時代碼將要在其上執(zhí)行的設(shè)備。邏輯設(shè)計可以通過使用圖形工具 來冗成??杀蛔詣訄?zhí)行的編譯可包括把控制邏輯程序翻譯成用于運行時系統(tǒng) 的可執(zhí)行(控制邏輯)代碼(稱為執(zhí)行器),例如字節(jié)碼,這包括把可執(zhí)行代 碼指派給在操作期間該可執(zhí)行代碼應(yīng)在其上被執(zhí)行的設(shè)備。編譯還可包括對支持邏輯進(jìn)行實例化,該支持邏輯實現(xiàn)運行可執(zhí)行代碼所必需的信
息的通信。
除了網(wǎng)絡(luò)和應(yīng)用配置的典型步驟以外,系統(tǒng)建立還可包括把可執(zhí)行 代碼上載到所指派的設(shè)備。
系統(tǒng)維護可包括在啟動后,通過對新的控制邏輯簡單地重復(fù)以上的 步驟且相應(yīng)地下載它,,人而容易地4巴該新的控制邏輯添加到目標(biāo)系統(tǒng),而 不需要改變已經(jīng)在系統(tǒng)中的控制邏輯。
為了舉例說明起見,在下面相對于圖2所描繪的示例性系統(tǒng)來描述用 于聯(lián)網(wǎng)控制的照明系統(tǒng)的兩個示例性腳本。
這些例子以描述性的、用戶可讀的語言表示。僅僅是為了更好的可理 解性而選擇了用戶可讀的語言,它絕不是邏輯設(shè)計腳本語言的句法的指 示。
例1:"房間200內(nèi)的占位傳感器208接通/關(guān)斷燈202和204,同時 開關(guān)206定義調(diào)光水平(dimming level )"。
開關(guān)206、傳感器208和燈202、 204可以是如圖1所示的設(shè)備。
所打算中的設(shè)備行為是與設(shè)備邏輯位置無關(guān)的。例如,在聯(lián)網(wǎng)控制的 照明系統(tǒng)中,腳本"房間200內(nèi)的占位傳感器208接通/關(guān)斷燈202和204, 同時開關(guān)206定義調(diào)光水平"可以作為一個可執(zhí)行代碼或多個派生的可執(zhí) 行代碼而^皮指派成在運行時被執(zhí)行。例如,該可執(zhí)行代碼或多個可執(zhí)行代 碼可被安置在開關(guān)206、占位傳感器208、任一個燈202、 204上、在房間 200之內(nèi)或之外的任何其他設(shè)備(例如中央設(shè)備)上、或在它們的任何選 定的組上,而不改變受控設(shè)備的預(yù)期的行為。
對于在整個系統(tǒng)上規(guī)定的、不考慮分布方面的所設(shè)計的控制邏輯(用 戶的腳本),編譯包括以下步驟特定段(piece)到設(shè)備的邏輯劃分、邏 輯指派,以及邏輯編譯,即,翻譯成運行時代碼。
編譯器可以逐個腳本地工作。
腳本的劃分可以具有如下的目標(biāo)在邏輯劃分的步驟中,分離與特定 規(guī)則、行為或位置有關(guān)的一致的邏輯段,其被稱為控制邏輯程序。
是否需要劃分控制邏輯程序可以由規(guī)則來定義,例如在設(shè)備上可用的 存儲器單元尺寸,例如64B,。對于邏輯的劃分,可以有各種準(zhǔn)則,例如, 按照想要的功能性或所牽涉到的設(shè)備。例如,例1的示例性腳本可被進(jìn)一 步地按以下方式之一 分成兩個可單獨地指派的腳本例l.l:"房間200內(nèi)的占位傳感器208接通/關(guān)斷燈202和204"和 "開關(guān)206定義燈202和204的調(diào)光水平"。
例1.2:"房間200內(nèi)的占位傳感器208接通/關(guān)斷燈202,同時開關(guān) 206定義調(diào)光水平"和"房間200內(nèi)的占位傳感器208接通/關(guān)斷燈204,同 時開關(guān)206定義調(diào)光水平"。
在邏輯指派的步驟中,控制邏輯程序要被指派給運行時代碼應(yīng)當(dāng)在其 上運行的設(shè)備。邏輯指派可以由用戶對于所有的或某一些控制邏輯程序進(jìn) 行定義。
在一個實施例中,可以定義對于邏輯指派的默認(rèn)規(guī)則。例如,應(yīng)用邏 輯僅僅可被指派給所牽涉到的設(shè)備,即持有所牽涉到的狀態(tài)變量之一的主 實例的設(shè)備。所牽涉到的狀態(tài)變量可以是由應(yīng)用邏輯使用的輸入或輸出狀 態(tài)變量。而且,默認(rèn)地,邏輯可以總是被指派給那個設(shè)備,它例如持有可 執(zhí)行代碼輸出狀態(tài)變量的主實例。
例1.2.1:有了以上的先決條件,來自例1. 2的兩個腳本將必須分別 指派給燈2G2和204。
在另一個實施例中,邏輯指派過程可以考慮設(shè)備的能力或資源。為此, 需要關(guān)于每個個體設(shè)備的能力的詳細(xì)信息。 編譯器要考慮的設(shè)備特性可包括CPU功率;可用的存儲器,包括非 易失性存儲器、程序存儲器和隨機存取存儲器;睡眠行為;代理能力或要 求;或者電源。
對于電源評估,規(guī)則可以是可執(zhí)行代碼優(yōu)選地被指派給市電供電的
一、0"夂
隊節(jié)-。
例1.2. 2:如果開關(guān)206和占位傳感器208都是電池供電的設(shè)備,則 來自例1. 2的腳本僅僅可^L指派給燈202、 204。
在一個實施例中,關(guān)于設(shè)備的能力或資源的信息可以例如,由于系統(tǒng) 清查的結(jié)果而在邏輯指派之前對于編譯器可用。
在另一個實施例中,對于諸如存儲器的某些設(shè)備特性,邏輯劃分-指 派—編譯—安裝步驟的鏈可以是迭代的過程。按照本實施例,編譯器首先按
照某些通用規(guī)則,例如所牽涉到的設(shè)備的類型,來指派邏輯。
例如,在安裝時,可以檢查最終得到的可執(zhí)行代碼的尺寸,以便確定 可執(zhí)行代碼是否適合于可用的設(shè)備存儲器。檢查的步驟可以由編譯器執(zhí)行 或由設(shè)備本身執(zhí)行。如果超出存儲器尺寸,則可以迭代邏輯劃分-指派-編譯-安裝過程。
在再一個實施例中,邏輯指派可以相對于每個設(shè)備的通信成本而被最 佳化,所述通信成本包括發(fā)送分組、等待喚醒和偵聽要接收的應(yīng)答幀的能 量成本,以及最終的重傳成本。相對于通信成本的最佳化可能要求附加信
息。這樣的附加信息可包括使用哪種技術(shù),如802. 15, 4或ZigBee;可 用的帶寬和期望的延遲是多少。此外,以下的信息都可能是重要的,即 關(guān)于設(shè)備角色的信息,如ZigBee路由器(ZR)或ZigBee終端設(shè)備(ZED), 設(shè)備鄰居列表,包括關(guān)于母子關(guān)系的信息,特定鏈路的質(zhì)量(LQI),或路 由路徑的長度和成本。路由路徑的長度可以由跳數(shù)來定義。
例1. 2. 3:在例1. 2. 1中,每個電池供電的設(shè)備(206, 208)發(fā)送兩個更 新,燈202、 204每個一個更新。如果來自例1.2的兩個腳本都被指派給 一個燈,例如燈202的話,則每個電池供電的設(shè)備206、 208的功率消耗 可以通過限制發(fā)送的分組的數(shù)量來被進(jìn)一步限制。這樣,每個電池供電的 設(shè)備206、 208只必須發(fā)送一個分組到燈202,后者進(jìn)而又將控制燈204。
為了使設(shè)備通信成本最佳化,除了設(shè)備的能力或資源以外,所考慮的 準(zhǔn)則可包括由應(yīng)用邏輯定義的預(yù)期的設(shè)備行為,例如,發(fā)送出屬性更新 的頻率。
例1.2.4:如果來自例1的占位傳感器208要^f皮調(diào)度成每50毫秒測量 和報告占位狀態(tài),則會非常希望限制由這個傳感器生成的業(yè)務(wù)量。最低限 度,可以使用如在例1. 2. 3中描述的解決方案,即傳感器將只向其中一個 燈報告,并且該燈僅僅在有相當(dāng)大的亮度級改變時才更新另一個燈。替換 地,從例1的腳本得到的執(zhí)行器可被指派給占位傳感器本身,以使得傳感 器將僅僅在有相當(dāng)大的亮度級改變時且當(dāng)燈開關(guān)接通時才更新兩個燈。
所描述的設(shè)備通信成本最佳化是在系統(tǒng)設(shè)計者可用的任何影響性能 的手段之上完成的。例如,引入條件更新,舉例而言,基于絕對或相對屬 性值改變或最大改變通知頻率。
在再一個實施例中,整個系統(tǒng)的應(yīng)用和支持邏輯執(zhí)行的總成本可被最 佳化。對于最佳化準(zhǔn)則,比如在所有設(shè)備上為存儲應(yīng)用和支持邏輯而要求 的總存儲器尺寸,例如以KB計,對于所有設(shè)備的總的應(yīng)用和支持邏輯執(zhí) 行成本-例如以CPU周期計-或功率消耗或例如以分組跳數(shù)計的總通信成 本,需要的傳輸時間(延遲)和/或帶寬,可以被考慮用于最佳化。
最佳化準(zhǔn)則的選擇可以取決于最關(guān)鍵的系統(tǒng)方面。例如,如果帶寬是最關(guān)鍵的系統(tǒng)資源,則帶寬使用應(yīng)當(dāng)被最佳化。這可以是900MHz附近的 較低的802. 15. 4頻帶的情形,其提供20或40kbps的帶寬。另一方面, 較高的802. 15. 4頻帶(在2400MHz附近),提供250bps的帶寬,例如可以 針對電池壽命進(jìn)行最佳化。
例1. 2. 5:假設(shè)來自例1. 2的兩個腳本每個被指派給一個燈204、 206, 則總共必須發(fā)送四個更新消息,導(dǎo)致兩個可執(zhí)行代碼被觸發(fā)。如果來自例 1. 2的邏輯被分配給其中一個燈,則只有一個可執(zhí)行代碼被觸發(fā),且總共
必須發(fā)送三個消息。
在再一個實施例中,以上的邏輯指派方法可以進(jìn)行組合。例如,默認(rèn)
地,邏輯將被指派給牽涉到的設(shè)備中的任一個,要考慮這個設(shè)備的能力或 資源。如果結(jié)果證明是不可能的,則邏輯被以這樣的方式指派給任何第三、 未牽涉到的設(shè)備,即使得對于整個控制系統(tǒng)的總成本被最佳化,例如, 限制更新必須在系統(tǒng)中行進(jìn)的總跳數(shù)。后者例如可以通過把應(yīng)用邏輯指派 給例如在ZigBee環(huán)境下的所牽涉到的ZigBee終端設(shè)備的母設(shè)備、或指派 給在所牽涉到的設(shè)備之間的路由上的任何路由器而達(dá)到。
作為可執(zhí)行的運行時代碼生成過程的一部分,應(yīng)用邏輯必須在邏輯編 譯步驟中一皮編譯,以產(chǎn)生可執(zhí)行的運行時代碼。
輯被劃分和指派之后發(fā)生。這在應(yīng)用支持邏輯_例如預(yù)訂信息_的實例化 也由編譯器完成的情況下簡化了這樣的實例化。
在另一個實施例中,將應(yīng)用邏輯編譯成運行時可執(zhí)行代碼可以在應(yīng)用 邏輯被劃分和指派之前發(fā)生。因此,每個特定的執(zhí)行器的精確尺寸是已知 的,它可被使用來例如相對于設(shè)備的可用的存儲器而最佳化邏輯指派。
概述的本發(fā)明的特定實施例描述了
聯(lián)網(wǎng)控制系統(tǒng),在其中編譯器程序自動地
-把用戶規(guī)定的控制邏輯劃分成功能控制邏輯程序,后者被翻譯成可 執(zhí)行代碼,以及
-以考慮設(shè)備能力/資源的最佳方式把可執(zhí)行代碼指派給設(shè)備(它將在 運行時執(zhí)行該可執(zhí)行代碼),
如上所述的編譯器程序,使用以下的指派最佳化準(zhǔn)則 -優(yōu)選地把可執(zhí)行代碼安置在所牽涉到的設(shè)備之一 上; -優(yōu)選地把可執(zhí)行代碼安置在宿有執(zhí)行器輸出狀態(tài)變量的主實例的設(shè)備上,
-否則,如果使用802. 15. 4/ZB或具有母子關(guān)系的類似技術(shù),則安置 在所牽涉到的減小功能的設(shè)備(例如ZigBee最終設(shè)備)的母設(shè)備上,特 別是如果那個ZigBee最終設(shè)備宿有執(zhí)行器輸出狀態(tài)變量的主實例的話,
-否則,安置在所牽涉到的設(shè)備之間的路由上的任何路由器上;
-優(yōu)選地,不把可執(zhí)行代碼安置在具有有限的能力/資源的設(shè)備上, 所述能力/資源諸如是電源、CPU功率、可用的存儲器(包括非易失性存儲 器)、睡眠行為、代理能力/要求等等;
-優(yōu)選地,安置可執(zhí)行代碼使得每個資源有限的設(shè)備的通信成本最小化。
-優(yōu)選地,安置可執(zhí)行代碼使得在所有設(shè)備上的總通信成本(例如, 在能量消耗、延遲或帶寬方面)最小化。
如上所述的編譯器程序,劃分用戶規(guī)定的控制邏輯,使得上述的最佳 的控制邏輯程序指派是可能的。
以上的用于聯(lián)網(wǎng)控制系統(tǒng)的編譯器程序,其中所述步驟被迭代地進(jìn)
行
-部分地是在編譯,部分地是在安裝,可選地還部分地是在操作時間。 本發(fā)明的至少 一 些功能性可以由硬件或軟件來執(zhí)行。在以軟件實現(xiàn)的
情形下,可以使用單個或多個標(biāo)準(zhǔn)微處理器或微控制器來處理用于實施本
發(fā)明的單個或多個算法。
應(yīng)當(dāng)指出,單詞"包括,,不排除其他單元或步驟,以及單詞"a"或
"an,,("一"或"一個")不排除多個。而且,在權(quán)利要求中的任何參考符
號不應(yīng)被解釋為限制本發(fā)明的范圍。
1權(quán)利要求
1.用于包括多個設(shè)備(102,104,106,108,112)的聯(lián)網(wǎng)控制系統(tǒng)的編譯器(100),包括-用于把控制邏輯劃分成多個功能控制邏輯程序的裝置(122);-用于把所述多個功能控制邏輯程序翻譯成多個可執(zhí)行代碼的裝置(124);以及-用于按照安置規(guī)則把所述多個可執(zhí)行代碼指派給所述多個設(shè)備中規(guī)定的設(shè)備(102,104,106,112)的裝置(126)。
2. 權(quán)利要求l的編譯器,其中所述用于劃分的裝置(122)被配置成 按照取決于安置規(guī)則的劃分規(guī)則來劃分所述控制邏輯。
3. 權(quán)利要求1或2的編譯器,其中所述用于指派的裝置(126)被配置 成把所述多個可執(zhí)行代碼中的至少 一個可執(zhí)行代碼指派給規(guī)定的設(shè)備, 該規(guī)定的設(shè)備宿有在所述至少一個可執(zhí)行代碼中牽涉到的狀態(tài)變量的主 實例。
4. 前述權(quán)利要求的任一項的編譯器,其中所述用于指派的裝置(126) 被配置成在規(guī)定的設(shè)備(102, 104, 106, 112)上指派所述可執(zhí)行代碼,該 規(guī)定的設(shè)備包括用于執(zhí)行所指派的可執(zhí)行代碼的足夠資源。
5. 權(quán)利要求4的編譯器,其中所述用于指派的裝置(126)包括用于 區(qū)分包括足夠資源的設(shè)備(102, 104, 106, 112)和包括有限資源的設(shè)備(108) 的裝置;以及其中所述用于指派的裝置被配置成僅僅當(dāng)沒有包括足夠資 源的設(shè)備可用時,才把可執(zhí)行代碼指派給包括有限資源的設(shè)備。
6. 權(quán)利要求3或4的任一項的編譯器,其中所述用于指派的裝置(126) 包括用于區(qū)分包括足夠資源的設(shè)備(102, 104, 106, 112)和包括有限資源 的設(shè)備(108)的裝置;以及其中所述用于指派的裝置被配置成僅僅當(dāng)在 所牽涉到的有限資源設(shè)備上不可得到足夠資源時,才把可執(zhí)行代碼指派給 未牽涉到的設(shè)備。
7. 前述權(quán)利要求的任一項的編譯器,其中所述用于指派的裝置(126) 被配置成把所述多個可執(zhí)行代碼指派給規(guī)定的設(shè)備,使得在包括有限資 源的設(shè)備(108)上的通信成本最小化。
8. 前述權(quán)利要求的任一項的編譯器,其中所述用于指派的裝置(126) 被配置成把所述多個可執(zhí)行代碼指派給規(guī)定的設(shè)備,使得在所有的多個設(shè)備(102, 104, 106, 108, 112)上的通信成本最小化。
9. 前述權(quán)利要求的任一項的編譯器,其中所述用于指派的裝置(126) 被配置成按照多個安置規(guī)則把所述多個可執(zhí)行代碼指派給規(guī)定的設(shè)備, 使得如果使用一個安置規(guī)則在規(guī)定的設(shè)備上沒有足夠的資源,則對于至少 一個可執(zhí)行代碼使用另 一個安置規(guī)則。
10. 前述權(quán)利要求的任一項的編譯器,用于基于802. 15. 4/ZigBee或 具有母子關(guān)系的類似技術(shù)的聯(lián)網(wǎng)控制系統(tǒng),其中所述多個設(shè)備 (102, 104, 106, 108, 112)包括至少一個子設(shè)備(108)和與所述子設(shè)備相關(guān) 聯(lián)的至少一個母設(shè)備(102);以及其中所述用于指派的裝置(126)被配置 成如果所述子設(shè)備在執(zhí)行所述多個可執(zhí)行代碼的至少一個可執(zhí)行代碼時 被牽涉到,則指派所述多個可執(zhí)行代碼的該至少 一個可執(zhí)行代碼給母設(shè) 備。
11. 前述權(quán)利要求的任一項的編譯器,其中所述聯(lián)網(wǎng)控制系統(tǒng)包括至 少一個路由器(112),以及其中所述用于指派的裝置(126)被配置成如果 該路由器被連接到當(dāng)執(zhí)行所述多個可執(zhí)行代碼的至少一個可執(zhí)行代碼時 被牽涉到的至少一個設(shè)備(102, 104),則指派所述多個可執(zhí)行代碼的該至 少 一個可執(zhí)行代碼給該路由器。
12. 用于包括多個設(shè)備的聯(lián)網(wǎng)控制系統(tǒng)的編譯器,包括 -用于把控制邏輯翻譯成可執(zhí)行代碼程序的裝置;-用于把所述可執(zhí)行代碼程序劃分成多個可執(zhí)行代碼的裝置;以及 -用于按照安置規(guī)則把所述多個可執(zhí)行代碼指派給所述多個設(shè)備中規(guī) 定的設(shè)備的裝置。
13. —種聯(lián)網(wǎng)控制系統(tǒng),包括-多個設(shè)備(102, 104, 106, 108, 112);以及 -按照前述權(quán)利要求之一的編譯器。
14. 用于包括多個設(shè)備(102, 104, 106, 108, 112)的聯(lián)網(wǎng)控制系統(tǒng)的編 i奪方法,包i舌-把用戶規(guī)定的控制邏輯劃分成多個功能控制邏輯程序; -把所述多個功能控制邏輯程序翻譯成多個可執(zhí)行代碼;以及 -按照安置規(guī)則把所述多個可執(zhí)行代碼指派給所述多個設(shè)備中規(guī)定的 設(shè)備。
15. 權(quán)利要求14的編譯方法,其中所述劃分、翻譯和指派的步驟被迭代地纟丸行。
16. 權(quán)利要求15的編譯方法,其中所述被迭代地執(zhí)行的步驟在用戶 規(guī)定的控制邏輯的編譯過程期間、在可執(zhí)行代碼的安裝過程期間、和/或 在可執(zhí)行代碼的執(zhí)行期間凈皮執(zhí)行。
17. 用于包括多個設(shè)備的聯(lián)網(wǎng)控制系統(tǒng)的編譯方法,包括 -把控制邏輯翻譯成可執(zhí)行代碼程序;-把所述可執(zhí)行代碼程序劃分成多個可執(zhí)行代碼;以及 -按照安置規(guī)則把所述多個可執(zhí)行代碼指派給所述多個設(shè)備中規(guī)定的 設(shè)備。
18. —種計算機程序,當(dāng)其由計算機執(zhí)行時,使得能執(zhí)行權(quán)利要求14 到17的任一項的方法。
19. 一種存儲按照權(quán)利要求18的計算機程序的記錄栽體。
全文摘要
本發(fā)明涉及編譯用于聯(lián)網(wǎng)控制系統(tǒng)的多個設(shè)備的控制邏輯的編譯器和方法,特別是,涉及自動指派控制邏輯給設(shè)備。本發(fā)明通過編譯而提供了可執(zhí)行運行時代碼到聯(lián)網(wǎng)控制系統(tǒng)的設(shè)備的自動指派規(guī)程。控制邏輯到設(shè)備的指派過程可以考慮各種最佳化準(zhǔn)則,它包括各種分布方面,例如網(wǎng)絡(luò)資源或能力,諸如網(wǎng)絡(luò)鏈路的可用帶寬或可靠性,和設(shè)備資源或能力,例如CPU、存儲器、電源或睡眠行為,它例如由于傳輸延時或數(shù)據(jù)分組丟失,可能影響設(shè)備的所觀察到的行為。
文檔編號G06F9/45GK101681266SQ200880016915
公開日2010年3月24日 申請日期2008年5月19日 優(yōu)先權(quán)日2007年5月22日
發(fā)明者A·M·M·萊爾肯斯, B·厄德曼, O·施雷耶 申請人:皇家飛利浦電子股份有限公司