摘 要:對 Sedona FrameworkTM的開源開發構架進行描述;闡述Sedona FrameworkTM軟件的技術特點;并分析與之適應的多協議平臺的硬件應用。
關鍵詞:Sedona結構;虛擬機;開源架構多協議;集散控制
1 引言
自動化控制行業提倡的“分散控制、集中管理”的模式,實際應用卻受到重重阻礙。國際知名自控廠家各自采用的體系結構不同,諸如LONWORKS, BACnet IP, MSTP , Modbus , TCP/RTU, oBIX, SNMP,OPC UA 等一系列的標準通信協議與接口標準使用的協議很難做到互聯互通。
因此,Sedona軟件系統框架的誕生就是為了解決集成或兼容上述協議接口。
2 Sedona開源架構技術介紹
Sedona 是一個完全開放的樓宇設備控制軟件系統框架,由Tridium公司于2009年開發并免費提供開放源代碼的工具軟件,包涵了:Sedona語言、工具包、虛擬機、編譯器、圖形化工具等部分;具有以下顯著的優勢:(1)Sedona 平臺將程序語言與虛擬機SVM 預存每個系統的預定義類集合中,可供所有的 Sedona核心 API(Application programming interfaces)可以調用所有資源。這些 API 僅存在于某些 Sedona 安裝系統中,大大降低軟件系統消耗;(2)Sedona語言繼承了Java/C#等語言面向對象之特點,使用開發非常簡單,功能強大;(3)Sedona虛擬機可以運行幾百KB內存的小型嵌入式設備上,大大降低硬件成本與提高實時性;(4)Sedona圖形化開發工具,進行在線實時開發調試,用組件模塊的方式簡單拖拽各種所需功能,并進行數據流向和控制邏輯的連線,立刻完成用戶應用邏輯開發;還能實時看見反饋結果;(5)Sedona FrameworkTM廣泛應用于底層設備開發集成和管理;支持智能通訊、連接網絡。
Sedona FrameworkTM平臺是一套構建以網絡為中心的嵌入式智能設備的應用系統,下面,簡介Sedona FrameworkTM開源軟件框架與硬件系統應用。
3 Sedona FrameworkTM開源軟件框架
3.1 Sedona 工作流程
在Sedona軟件架構下進行的開發兼顧技術開發與集成應用兩個方面的應用:
(1)技術開發可以使用Sedona開發各種應用組件模塊(如行業功能模塊、設備I/O驅動模塊、特殊算法模塊等等)。其次,軟件以工具包(kits code )的形式進行發布,便于使用。(2)集成調試人員使用圖形化開發工具,將開發好的工具包kits應用指定工作區域上、通過屬性配置、實現功能控制。(3)即使沒有軟件開發經驗的調試人員也能靈活使用Sedona組件模塊、以圖形化模塊組合實現邏輯控制。
3.2 íSedona技術開發流程
開發工作通常按如下步驟進行:(1)用面向對象的Sedona編程語言編寫Sedona組件,用于實現某種功能或者算法。(2)用Sedonac編譯器工具將Sedona組件的源代碼編譯成工具包。(如圖1)被編譯成類似與匯編語言的中間格式代碼IR(intermediate representation-IR)。實現用戶邏輯代碼可以編譯成對應的Sedona虛擬機JVM指令,這樣可以應用開發完畢的工具包能適應所有的平臺,而不要再次編譯。(3)在編譯時,也產生標準的Java Classfile文件,可以直接運行Sedona應用代碼、直接用Java對應用組件開發調試,大大提高開發效率。(4)開發組件以.sab工具包的形式發布,集成調試人員根據需要選擇將工具包安裝到指定設備上去;然后集成調試人員根據具體應用環境進行靈活的裁剪、整理。(5)將Sedona虛擬機和scode映像文件加載到設備ROM上運行,通過網絡用SOX協議動態加載設備直接上電之后直接運行、也可以由集成調試人員臨時選擇,優化使用方式。
3.3 Sedona應用調試流程
調試人員以根據實際需要選擇工具包、圖形化工具設計成“sax”文件、在線直接用sedonac工具將其編譯成“sab”文件運用到設備上;也可以離線設計。如下舉例說明:
3.4 Sedona軟件應用舉例
下述案例是筆者在2011年深圳某酒店樓控系統 (BAS)中一臺固定風量風機進行控制的案例,需要有3I/1O共4個控制點:即手自動狀態檢測(DI)、運行狀態檢測(DI)、故障狀態檢測(DI)和風機啟停控制(DO);其常規的控制邏輯是: 監測風機手自動運行狀態在手動狀態下,控制器不進行自動控制,只能通過現場強電箱電箱啟停風機;在自動狀態下;當用戶發出啟停信號后,控制器啟停風機;另外,如果在風機啟動之后檢測到故障狀態,那么就立即停止風機的運行。如下:
(1)安裝Niagara,并尋到根目錄{root}
(2)在{root}\sedona\src目錄中創建新的工具目錄: 如:\jwm_bastools;
(3)在{root}\sedona\src\jwm_bastools創建jwm_kit.xml文件(本文件是用來描述編譯器編譯時所需要的源代碼目錄及其他信息; 如下: