• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      開源自動化控制軟件Sedona在物聯(lián)網(wǎng)中的應(yīng)用※

      2012-06-25 02:46:08邱旭華
      關(guān)鍵詞:工具包圖形化開發(fā)者

      邱旭華

      (公安部第一研究所,北京 100048)

      引 言

      如何在不更換設(shè)備的情況下,讓嵌入式智能設(shè)備和系統(tǒng)協(xié)調(diào)工作并且更好地管理是每個集成商和用戶所面臨的關(guān)鍵問題。Sedona軟件解決了這一問題。Sedona軟件為開發(fā)、部署、集成和管理無處不在的最底層的智能設(shè)備應(yīng)用提供完整的軟件平臺,為廉價的設(shè)備提供可編程控制和連接Internet的能力。Sedona框架的分布式?jīng)Q策系統(tǒng)可以使所有的設(shè)備都具備控制和管理的能力,連接到網(wǎng)絡(luò)的任何地方。

      1 物聯(lián)網(wǎng)簡述

      物聯(lián)網(wǎng)(Internet of Things)概念是2005年正式提出來的,是互聯(lián)網(wǎng)的延伸。它是一個基于互聯(lián)網(wǎng)、傳統(tǒng)電信網(wǎng)等信息的承載體,讓所有能夠被獨立尋址的普通物理對象實現(xiàn)互聯(lián)互通的網(wǎng)絡(luò)。它具有普通對象設(shè)備化、自治終端互聯(lián)化和普通服務(wù)智能化3個重要特征。

      在物聯(lián)網(wǎng)應(yīng)用中有兩項關(guān)鍵技術(shù):傳感器技術(shù)和RFID標(biāo)簽。

      編者注:關(guān)于物聯(lián)網(wǎng)特征、關(guān)鍵技術(shù)及展望的詳述略。

      2 Niagara AX平臺

      隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展和應(yīng)用,如何使各種智能設(shè)備連接IP網(wǎng)絡(luò)并融入上層的應(yīng)用系統(tǒng),就變得至關(guān)重要。Tridium公司所研發(fā)的Niagara AX平臺正是用于解決設(shè)備連接應(yīng)用的軟件框架平臺。它創(chuàng)造了一個通用的環(huán)境,幾乎可以連接任何能夠想到的嵌入式設(shè)備或系統(tǒng),而不用太多考慮這些設(shè)備的制造廠家和所使用的通信協(xié)議。其關(guān)鍵在于Niagara AX可以與各種設(shè)備和系統(tǒng)通信,將它們的數(shù)據(jù)和屬性轉(zhuǎn)換成為標(biāo)準(zhǔn)的軟件組件,通過大量基于IP的協(xié)議,支持XML的數(shù)據(jù)處理和開放的API,為企業(yè)級應(yīng)用提供無縫的、統(tǒng)一的設(shè)備數(shù)據(jù)視圖。圖1表示的是一種多對一架構(gòu)的Niagara AX平臺。

      通過轉(zhuǎn)換各種外部設(shè)備和系統(tǒng)的數(shù)據(jù)成為規(guī)范的軟件組件,Niagara AX創(chuàng)造了一種開發(fā)架構(gòu),大大優(yōu)于基于網(wǎng)關(guān)集成的多對多的復(fù)雜架構(gòu)。這種優(yōu)勢體現(xiàn)在任何的設(shè)備和系統(tǒng)通過Niagara AX規(guī)范,就可以兼容其他連接到應(yīng)用框架的設(shè)備和系統(tǒng),為企業(yè)級應(yīng)用提供真正的系統(tǒng)內(nèi)的互操作能力和統(tǒng)一的數(shù)據(jù)呈現(xiàn)。開發(fā)者不再需要花費時間去創(chuàng)建、測試和重復(fù)驗證各種網(wǎng)關(guān)設(shè)施。圖2是傳統(tǒng)的多對多系統(tǒng)結(jié)構(gòu)。

      圖1 多對一架構(gòu)的Niagara AX平臺

      圖2 傳統(tǒng)的多對多系統(tǒng)結(jié)構(gòu)

      3 Sedona及其應(yīng)用

      Sedona是一個開源自控軟件體系框架,由Tridium公司研發(fā),包含Sedona語言、Sedona工具包、Sedona虛擬機、Sedona編譯器、Sedona圖形化開發(fā)調(diào)試工具等部分,于2009年8月正式推出第1版,并開放源代碼。

      Sedona語言繼承了Java、C#等面向?qū)ο笳Z言的特點,使得開發(fā)非常簡單,而實現(xiàn)的功能又非常強大。以Sedona工具包形式發(fā)布的控制邏輯模塊,實現(xiàn)了“一次開發(fā)、隨處可用”的目的,大大降低了用戶的應(yīng)用難度,同時也使很多行業(yè)應(yīng)用經(jīng)驗得到很好的積累與發(fā)展。Sedona虛擬機(Sedona Virtual Machine,SVM)專門針對樓宇自控設(shè)備進行了優(yōu)化,能高效地運行在只有100KB左右內(nèi)存的小型嵌入式設(shè)備上,并且實時性能得到很好的保證。采用Sedona圖形化開發(fā)工具進行在線實時開發(fā)調(diào)試,用組件模塊的方式簡單拖拽各種所需功能,并進行數(shù)據(jù)流向和控制邏輯的連線,就可以立刻完成用戶的應(yīng)用邏輯開發(fā),還能實時看見反饋結(jié)果,使用戶開發(fā)業(yè)務(wù)控制邏輯非常簡單、直觀,大大降低了用戶使用難度。

      3.1 Sedona工作流程

      圖3所示的流程列舉了在樓宇智能控制器上開發(fā)Sedona應(yīng)用程序的整個過程。在Sedona軟件架構(gòu)下進行開發(fā),有兩種角色:一種是開發(fā)者(Developer),另外一種是集成者(Integrator)。雖然在實際工作中不可能將這兩種角色區(qū)分得很清楚,并且大多數(shù)情況下用戶是用兩種角色配合來完成工作的,但在這里區(qū)分這兩種角色將有助于對Sedona軟件框架的深入討論。

      圖3 Sedona開發(fā)工作流程圖

      (1)開發(fā)者角色

      該角色主要是指軟件開發(fā)工程師,他們負責(zé)用Sedona編程語言開發(fā)各種Sedona應(yīng)用組件模塊,如行業(yè)特殊應(yīng)用功能模塊、設(shè)備I/O驅(qū)動模塊、特殊算法模塊等等。組件模塊開發(fā)好以后將以工具包(kit)的形式進行發(fā)布,這樣有利于版本的管理,同時也便于行業(yè)經(jīng)驗的積累和延續(xù)。

      (2)集成者角色

      該角色主要是指某個行業(yè)或領(lǐng)域的專家,通常他們只需要在如圖3所示的圖形化開發(fā)工具里,將開發(fā)者發(fā)布的工具包中所需要用到的組件模塊拖拽到工作區(qū),然后用連線方式將所選擇的組件模塊按照業(yè)務(wù)數(shù)據(jù)流程或者控制邏輯關(guān)系連接在一起,就完成了數(shù)據(jù)處理和控制邏輯的工作。對于開發(fā)者發(fā)布的每個組件模塊,集成者還可以通過屬性來配置和調(diào)整其實現(xiàn)功能的各項參數(shù),以滿足具體應(yīng)用的需要。這樣對于沒有軟件開發(fā)經(jīng)驗的行業(yè)專家來說,Sedona允許他們采用組件模塊的方式來積累并延續(xù)行業(yè)經(jīng)驗,并且以圖形化的方式讓用戶進行模塊的簡單連線組合,這就為行業(yè)專家在各自的領(lǐng)域中進行創(chuàng)造性應(yīng)用奠定了堅實的基礎(chǔ)。

      3.2 開發(fā)者工作流程

      開發(fā)者的工作流程通常按如下步驟進行:

      ① 用面向?qū)ο蟮腟edona編程語言編寫Sedona組件,用于實現(xiàn)某種功能或者算法。

      ② 用sedonac編譯器工具將Sedona組件源代碼編譯成工具包。在編譯的過程中,工具包里所有包含的類都要先進行有效性檢查,然后才被編譯成一種特殊的中間格式代碼(Intermediate Representation,IR)。IR就像是Sedona的匯編語言一樣,它的引入使得用Sedona語言開發(fā)的組件或者應(yīng)用有了很好的移植性,因為用IR實現(xiàn)的用戶邏輯代碼直到最后才會針對某個具體應(yīng)用平臺編譯成對應(yīng)的二進制Sedona虛擬機指令,這樣就能讓開發(fā)好的工具包適應(yīng)所有的平臺,而不需要在不同平臺之間進行多次編譯。在編譯的同時,該編譯器也能針對每個類產(chǎn)生標(biāo)準(zhǔn)的Java classfile文件,從而可以在Java虛擬機上直接運行Sedona應(yīng)用代碼,以便于開發(fā)者利用Java的開發(fā)調(diào)試工具對應(yīng)用組件進行開發(fā)調(diào)試,大大提高開發(fā)效率。

      ③ 開發(fā)者將組件以工具包的形式發(fā)布,由集成者選擇將哪些工具包安裝到最終的設(shè)備上去,這樣就由sedonac工具將這些工具包編譯成二進制的scode映像文件(這一步通常由工具自動完成)。集成者選擇的工具包決定了在設(shè)備上能使用的組件功能,這樣的自由選擇能力,大大提高了設(shè)備的適用范圍,使得集成者可以根據(jù)具體應(yīng)用環(huán)境進行靈活的裁剪。

      ④ 將Sedona虛擬機和scode映像文件加載到設(shè)備上運行。這些文件既可以預(yù)先保存在設(shè)備的ROM上,從而在設(shè)備上電之后直接運行,也可以由集成者臨時選擇,通過網(wǎng)絡(luò)用SOX協(xié)議動態(tài)加載。這樣就使得集成者能非常靈活、方便地根據(jù)不同需求進行現(xiàn)場定制。

      3.3 集成者工作流程

      在開發(fā)者將基本的組件模塊設(shè)計好并發(fā)布出來之后,就可以讓集成者自行進行設(shè)備功能的開發(fā)與定制,從而用標(biāo)準(zhǔn)的開發(fā)方式實現(xiàn)統(tǒng)一的“分散控制”思想。通常集成者是某個領(lǐng)域或者行業(yè)的專家,他們用圖形化工具,靈活地選擇哪些工具包用在設(shè)備上,然后選擇需要的控制組件拖拽到工作區(qū)上,依據(jù)組件之間的數(shù)據(jù)流向或者控制邏輯關(guān)系,采用連線的方式將它們組織在一起,從而實現(xiàn)最終的應(yīng)用程序。

      采用圖形化的工具來設(shè)計應(yīng)用程序,既可以在現(xiàn)場直接連接設(shè)備,實時地用SOX協(xié)議對設(shè)備進行開發(fā),直接觀察到設(shè)備的運行效果;又可以離線進行設(shè)計,然后將應(yīng)用程序保存在“sax”文件里,之后在需要更新設(shè)備的時候用sedonac工具將其編譯成“sab”文件,并用SOX協(xié)議將編譯后的程序傳輸安裝到設(shè)備上,完成應(yīng)用程序的更新。

      3.4 控制邏輯實現(xiàn)

      在Sedona開發(fā)軟件中并沒有現(xiàn)成的組件可以實現(xiàn)樓宇自控系統(tǒng)中風(fēng)機的控制邏輯。雖然可以利用其基本的各種邏輯控制組件實現(xiàn)控制算法,但這里介紹如下步驟,讓開發(fā)者能很容易地開發(fā)用戶自定義的控制邏輯組件。

      ① 以3.4.43版本的軟件為例,假設(shè)應(yīng)用軟件安裝在“C:\Niagara\Niagara-3.4.43”下根目錄,后面為表述方便,將根目錄簡述為{Root}。

      ② 在{Root}\sedona\src目錄下創(chuàng)建一個新的工具包目錄,這里取名為LongDHuaTools。

      ③ 在{Root}\sedona\src\LongDHuaTools目錄下創(chuàng)建“kit.xml”文件,該文件是用來描述編譯器編譯時所需要的相關(guān)源代碼目錄及其他信息,詳細的內(nèi)容如下:

      ④ 在{Root}\sedona\src\LongDHuaTools目錄下創(chuàng)建“Fan.sedona”文件,該文件是用戶自定義風(fēng)機控制邏輯的源代碼文件,詳細的內(nèi)容如下:

      ⑤ 啟動一個DOS命令行窗體,轉(zhuǎn)到{Root}\sedona\src\LongDHuaTools目錄下,輸入如下命令執(zhí)行編譯的過程:

      ⑥ 在經(jīng)過上述5個步驟之后,將會自動創(chuàng)建{Root}\sedona\kits\LongDHuaTools目錄,并將編譯好的工具包文件拷貝到該目錄下,如 LongDHuaTools-182eba01-1.0.0.kit。其命名分3個部分,第1部分是工具包名稱,包含供應(yīng)商信息,第2部分是校驗碼,第3部分是工具包的版本號。至此一個新的風(fēng)機控制邏輯組件已經(jīng)創(chuàng)建成功。

      4 總 結(jié)

      Sedona軟件框架主要是面向基于互聯(lián)網(wǎng)的智能型嵌入式設(shè)備而設(shè)計的,其主要特點如下:

      ①Sedona語言是一種通用的面向組件化的編程語言,非常類似Java或者C#;它支持單一繼承、多態(tài)等面向?qū)ο蟮奶匦?,不支持接口擴展;采用靜態(tài)內(nèi)存設(shè)計模式,不支持new關(guān)鍵字,從而非常適合只有100KB左右的嵌入式設(shè)備,用戶可以編寫自定義的擴展功能函數(shù)或者對象組件等,從而可以不斷擴充新的功能。

      ②Sedona虛擬機是一個小型解析器,采用ANSI C編寫,具有良好的可移植性,無論底層有沒有操作系統(tǒng)的支持,移植都很方便。由于有了Sedona虛擬機,也就實現(xiàn)了類似Java語言的“一次編程、隨處可運行”的目標(biāo),只要是采用Sedona語言編寫的代碼,只要編寫一次,就可以在任何支持Sedona虛擬機的設(shè)備上運行。

      ③ 支持Java。Sedona編譯器不僅能將Sedona程序編譯成Sedona虛擬機能識別的二進制代碼,也能將其編譯成標(biāo)準(zhǔn)Java字節(jié)碼,從而可以在Java虛擬機上運行用戶的Sedona應(yīng)用程序,這就允許像使用Java的JAR文件那樣運行Sedona應(yīng)用程序。在Java虛擬機上運行Sedona應(yīng)用程序有兩點好處,一方面類似HotSpot這樣的Java虛擬機擁有高效的即時編譯技術(shù)(JIT),能在運行時將Java字節(jié)碼編譯并優(yōu)化成本機代碼執(zhí)行,從而提高運行效率,使得Sedona應(yīng)用程序在Java上能運行得更快;另外一方面,在Java環(huán)境下能有更多的開發(fā)調(diào)試工具可以使用,這樣就能在程序運行出現(xiàn)異常情況的時候,充分利用Java下的開發(fā)工具進行邊界檢查和堆棧跟蹤,方便快速開發(fā)調(diào)試程序。

      ④ 面向小型設(shè)備。在Java上運行的Sedona所需要的資源和性能使其并不適合大多數(shù)嵌入式設(shè)備。Java通常需要好幾兆的內(nèi)存來運行,并且有些Java虛擬機還需要運行時的授權(quán)費用,所以Sedona的虛擬機就專門針對只有100KB左右內(nèi)存的嵌入式設(shè)備進行設(shè)計。Sedona虛擬機不支持new關(guān)鍵字,并且采用靜態(tài)內(nèi)存設(shè)計模式,這樣就避免了Java虛擬機在運行時存在垃圾回收算法影響運行效率的問題,使得Sedona虛擬機在嵌入式領(lǐng)域中能滿足對實時性的特殊要求。

      ⑤ 面向組件化的編程。Sedona采用組件化的方式編程,組件可以是某種服務(wù)程序,也可以是其他組件的組合連接,從而完成某種數(shù)據(jù)處理或者流程控制。在已經(jīng)開發(fā)好的組件基礎(chǔ)上,將各個預(yù)先編譯好的組件連接起來,形成最后的應(yīng)用程序,這樣的編程模型非常適合采用圖形化編程工具來進行開發(fā),同時也便于用戶的理解和使用。

      ⑥ 聯(lián)網(wǎng)性能。Sedona內(nèi)嵌多種通信協(xié)議,可以運行在任何基于IP通信的網(wǎng)絡(luò)上,包括6LoWPAN等。通過聯(lián)網(wǎng)通信協(xié)議,可以讓用戶實時觀察設(shè)備運行數(shù)據(jù)并進行遠程控制,也允許用戶通過聯(lián)網(wǎng)遠程實時對應(yīng)用程序進行增加、刪除、修改操作,甚至可以遠程更新整個嵌入式系統(tǒng)的固件代碼。Sedona不僅提供標(biāo)準(zhǔn)的通信協(xié)議,如BAC-net、Lonworks、Modbus等,還允許用戶自行開發(fā)新的通信協(xié)議,以便兼容傳統(tǒng)的控制設(shè)備或者擴展新的用途。

      ⑦ 開源的系統(tǒng)。Sedona核心技術(shù)基于一種靈活的學(xué)術(shù)性授權(quán),因此對于制造廠家來說很容易在其設(shè)備上集成Sedona技術(shù),并且保證用Sedona開發(fā)的工具或者應(yīng)用很容易地移植到任何Sedona設(shè)備上。Sedona開源框架整合了最新的IT技術(shù),如面向?qū)ο缶幊陶Z言、虛擬機、圖形化組件開發(fā)技術(shù)等,給樓宇自動化領(lǐng)域帶來了一種新的解決方案。相信經(jīng)本文的拋磚引玉,會有越來越多的人參與到這個開源項目的開發(fā)與建設(shè)中來,那時就會有源源不斷的新思路補充到這個開源框架里來,使其不斷壯大,給樓宇自動化領(lǐng)域也注入新的活力。希望本文能為Sedona在國內(nèi)的應(yīng)用與發(fā)展開個好頭。

      編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

      [1]朗德華信(北京)自控技術(shù)有限公司.開源樓宇自控軟件體系框架 Sedona簡介[OL].[2012-07].http://www.1000bas.com/html/2009-10/8100.html.

      [2]吳財軍.開源樓宇自控軟件體系框架Sedona簡介[OL].[2012-07].http://www.jielizhun.com/Read.Asp?NewsID=3.

      猜你喜歡
      工具包圖形化開發(fā)者
      Epigallocatechin-3-gallate exerts antihypertensive effects and improves endothelial function in spontaneously hypertensive rats
      谷歌云與Digital Asset合作推出區(qū)塊鏈工具包
      LKJ自動化測試系統(tǒng)圖形化技術(shù)研究
      運用MATLAB軟件求解高中數(shù)學(xué)中的線性和非線性規(guī)劃問題
      科技視界(2016年21期)2016-10-17 19:09:05
      16%游戲開發(fā)者看好VR
      CHIP新電腦(2016年3期)2016-03-10 13:06:42
      運用圖形化聽寫式復(fù)習(xí),構(gòu)建高效地理課堂
      iOS開發(fā)者調(diào)查
      電腦迷(2015年8期)2015-05-30 12:27:10
      iOS開發(fā)者調(diào)查
      電腦迷(2015年4期)2015-05-30 05:24:09
      圖形化地區(qū)電網(wǎng)無功優(yōu)化軟件開發(fā)與應(yīng)用
      Microchip推出PIC32藍牙入門工具包
      民县| 揭西县| 中牟县| 宜宾县| 沅陵县| 琼中| 志丹县| 南和县| 石狮市| 遂川县| 沁阳市| 韩城市| 东乌| 泾阳县| 中卫市| 三江| 吐鲁番市| 延庆县| 永胜县| 铜梁县| 永昌县| 会东县| 通江县| 英山县| 新津县| 贡嘎县| 湖北省| 贞丰县| 平远县| 中江县| 抚州市| 奇台县| 高要市| 进贤县| 三都| 武胜县| 南靖县| 灵山县| 双鸭山市| 平原县| 如东县|