当前位置:
文档之家› 开源楼宇自控软件体系框架Sedona简介
开源楼宇自控软件体系框架Sedona简介
ǃSedona ㅔҟ Sedona ᰃϔϾᓔ⑤ὐᅛ㞾䕃ӊԧ㋏Ḛᶊˈ⬅ Tridium ݀ৌⷨথˈࣙ Sedona 䇁㿔ǃ
Sedona ᎹࣙǃSedona 㰮ᢳᴎǃSedona 㓪䆥఼ǃSedona ᔶ࣪ᓔথ䇗䆩Ꮉㄝ䚼ߚˈѢ 2009 ᑈ ᳜ӑℷᓣߎϔ⠜ˈᑊᓔᬒ⑤ҷⷕDŽ
Sedona 䇁㿔㒻ᡓњ JavaǃC#ㄝ䴶ᇍ䈵䇁㿔ⱘ⡍⚍ˈՓᕫᓔথ䴲ᐌㅔऩˈ㗠ᅲ⦄ⱘࡳ 㛑জ䴲ᐌᔎ˗ҹ Sedona ᎹࣙᔶᓣথᏗⱘࠊ䘏䕥ഫˈᅲ⦄њĀϔᓔথǃ䱣໘ৃ⫼” ⱘⳂⱘˈ䰡Ԣњ⫼᠋ⱘᑨ⫼䲒ᑺˈৠᯊгՓᕜ㸠Ϯᑨ⫼㒣偠ᕫࠄᕜདⱘ鳥㌃Ϣথሩ˗ Sedona 㰮ᢳᴎ˄Sedona Virtual Machine——SVM˅ϧ䮼䩜ᇍὐᅛ㞾䆒䖯㸠њӬ࣪ˈ㛑 催ᬜⱘ䖤㸠া᳝ 100K Ꮊেݙᄬⱘᇣൟጠܹᓣ䆒ϞˈᑊϨᅲᯊᗻ㛑ᕫࠄᕜདⱘֱ䆕˗䞛
ƹᓔথ㗙㾦㡆˖䆹㾦㡆Џ㽕ᰃᣛ䕃ӊᓔথᎹᏜˈҪӀ䋳䋷⫼ Sedona 㓪䇁㿔ᓔথ 辵 Sedona ᑨ⫼㒘ӊഫˈབ˖㸠Ϯ⡍⅞ᑨ⫼ࡳ㛑ഫǃ䆒 I/O 偅ࡼഫǃ⡍⅞ㅫ⊩ഫ ㄝㄝDŽ㒘ӊഫᓔথདҹৢᇚҹᎹ˄ࣙkit˅ⱘᔶᓣ䖯㸠থᏗˈ䖭ḋ᳝߽Ѣ⠜ᴀⱘㅵ⧚ˈ ৠᯊг֓Ѣ㸠Ϯ㒣偠ⱘ鳥㌃ᓊ㓁DŽ
ᓔ⑤ὐᅛ㞾䕃ӊԧ㋏Ḛᶊ Sedona ㅔҟ
ᳫᖋढֵ˄࣫Ҁ˅㞾ᡔᴃ᳝䰤݀ৌ ਈ䋶ݯ
Ǐᨬ 㽕ǐ˖ᴀ᭛Џ㽕ҟ㒡њϔ辵ᑨ⫼Ѣὐᅛ㞾ࡼ࣪ࠊ乚ඳⱘᓔ⑤䕃ӊḚᶊ Sedonaˈࣙ ᣀ䖭ϾḚᶊϟབԩ䖯㸠䕃ӊᓔথᑨ⫼ᑣ䆒䅵ˈҹঞ䆹Ḛᶊⱘᡔᴃ⡍⚍DŽ Ǐ݇䬂䆡ǐ˖Sedonaǃ䕃ӊᶊᵘǃ㰮ᢳᴎǃὐᅛ㞾ǃ䲚ᬷࠊ㋏㒳 An introduction of an open source software framework Sedona in Building Automation Wu Caijun LongDHua (BeiJing) Controls Technology Co., Ltd. Abstract˖This paper introduces an open source software framework called Sedona, which is used in the Building Automation. It describes the workflow of developing source code, presents the design flow of the integration and summarizes the technical features of the framework. Keywords˖SedonaǃSoftware FrameworkǃVirtual MachineǃBuilding AutomationǃDCS
ǃᑨ⫼冫՟ ᴀᇣ㡖ˈᇚ䗮䖛ᓔথϔϾԧⱘᅲ՟ᴹ䇈ᯢᓔথ㗙䲚៤㗙ϡৠⱘᎹ⌕ˈҹঞѠ
㗙П䯈䆹བԩण䇗䜡ড়DŽ䖭䞠䗝ᢽὐᅛ㞾ࡼ࣪ࠊЁᐌ㾕ⱘ亢ᴎࠊ䘏䕥ᴹВ՟ˈ䗮ᐌᇍϔ ৄ亢ᴎ䖯㸠ࠊ䳔㽕᳝ϝܹϔߎ݅ಯϾࠊ⚍˖㞾ࡼ⢊ᗕẔ⌟˄DI˅ǃ䖤㸠⢊ᗕẔ⌟˄DI˅ǃ ᬙ䱰⢊ᗕẔ⌟˄DI˅亢ᴎਃ˄ࠊذDO˅DŽ݊ᐌ㾘ⱘࠊ䘏䕥ᰃ˖ⲥ⌟亢ᴎ㞾ࡼ䖤㸠⢊ ᗕˈࡼ⢊ᗕϟˈࠊ఼ϡ䖯㸠㞾ࡼࠊˈা㛑䗮䖛⦄എᔎ⬉ᶰਃذ亢ᴎ˗㞾ࡼ⢊ᗕϟˈ ᔧ⫼᠋থߎਃֵذোৢˈࠊ఼ਃذ亢ᴎ˗ˈབᵰ亢ᴎਃࡼПৢẔ⌟ࠄᬙ䱰⢊ᗕˈ䙷 Мህゟࠏذℶ亢ᴎⱘ䖤㸠DŽ 3.1 ࠊ䘏䕥ᅲ⦄ℹ偸
- Sedona Kit - Copyright (c) 2009 LongDHua (BeiJing) Controls Technology Co., Ltd. - WuCaiJun, on 2009-10-01. - Licensed under the Academic Free License version 3.0 --> <sedonaKit name = "LongDHuaTools" vendor = "LongDHua" description = "Tools package for the Building Automation" version = "1.0.0" includeSource = "true" doc = "true" > <!-- Dependencies --> <depend on="sys 1.0" /> <!-- Source Directories --> <source dir="." /> <source dir="test" testonly="true"/>
</sedonaKit> 䖭䞠᳝⚍䳔㽕䇈ᯢⱘ˖
ϔǃ sedonaKit ᷛㅒ乍Ёˈname ሲᗻᰃ⫼ᴹᦣ䗄䆹Ꮉⱘࣙৡ鹵ˈvendor ⫼ᴹᦣ 䗄ᎹⱘࣙկᑨଚDŽབᵰ vendor ᰃ“Tridium”ⱘ䆱ˈ䙷М name ৃҹⳈݭᎹⱘࣙৡ鹵ˈ 㗠བᵰ vendor ϡᰃ“Tridium”ⱘ䆱ˈབڣᴀ᭛ӊⱘݭᰃ“LongDHua”ˈ䙷М name ݭᎹ ࣙৡ鹵ⱘᯊˈᑨ䆹Ꮉࣙৡ鹵ⱘࠡ䴶гᷛ⊼ vendor ⱘৡ鹵ˈབ“LongDHuaTools”ˈ 䖭ᰃ㓪䆥ᎹⱘϔϾᇣ㽕∖DŽ
ƹ䲚៤㗙㾦㡆˖䆹㾦㡆Џ㽕ᰃᣛᶤϾ㸠Ϯ乚ඳⱘϧᆊˈ䗮ᐌҪӀা䳔㽕བ ᠔冫 ⱘᔶ࣪ᓔথᎹ䞠ˈᇚᓔথ㗙থᏗⱘᎹࣙЁ᠔䳔㽕⫼ࠄⱘ㒘ӊഫᢪᣑࠄᎹऎϞˈ✊ ৢ⫼䖲㒓ᮍᓣᇚ᠔䗝ᢽⱘ㒘ӊഫᣝ✻Ϯࡵ᭄⌕㗙ࠊ䘏䕥݇㋏䖲ϔ䍋ˈҢ㗠ህ ᅠ៤њ᭄໘⧚ࠊ䘏䕥ⱘᎹDŽᇍѢᓔথ㗙থᏗⱘ↣Ͼ㒘ӊഫˈ䲚៤㗙䖬ৃҹ䗮䖛ሲ ᗻᴹ䜡㕂䇗ᭈ݊ᅲ⦄ࡳ㛑ⱘ乍খ᭄ˈҹ⒵䎇ԧᑨ⫼ⱘ䳔㽕DŽ 䖭ḋᇍѢ≵᳝䕃ӊᓔথ㒣偠ⱘ㸠Ϯϧᆊᴹ䇈ˈSedona ܕ䆌ҪӀ䞛⫼㒘ӊഫⱘᮍᓣᴹ鳥㌃ ᑊᓊ㓁㸠Ϯ㒣偠ˈᑊϨҹᔶ࣪ⱘᮍᓣ䅽⫼᠋䖯㸠ഫⱘㅔऩ䖲㒓㒘ড়ˈ䖭ህЎ㸠Ϯϧᆊ 㞾ⱘ乚ඳЁ䖯㸠߯䗴ᗻᑨ⫼༴ᅮњമᅲⱘ⸔DŽ
ǃᓩ㿔 Ⳃࠡᱎ㛑ὐᅛЁՓ⫼ⱘ䲚ᬷࠊ㋏㒳˄Distributed Control System——DCS˅Ḍᖗ⧚
ᗉᰃĀߚᬷࠊǃ䲚Ёㅵ⧚āˈ㱑✊Ͼ䆒ॖᆊ㞾Ꮕⱘ㋏㒳ᅲ⦄䖭Ͼᗱᛇᮍ䴶خᕫ䴲ᐌ ϡ䫭ˈԚᰃ䖯㸠ϡৠ㋏㒳П䯈ⱘ䲚៤ᮍ䴶ैᰃϡሑҎᛣDŽᆊ㋏㒳䞛⫼ⱘԧ㋏ᶊᵘϡৠˈ Փ⫼ⱘण䆂гⳌᏂᕜˈᕜ䲒⫼㞾ⱘ谷᳝ण䆂䖯㸠Ѧ㘨Ѧ䗮ˈℸгህ䆲⫳њ䇌བ LonworksǃBACnetǃModbusǃOPC ㄝϔ㋏߫ⱘᷛޚ䗮ֵण䆂ষᷛⱘⳂˈޚህᰃЎњ㛑⫼ 㒳ϔⱘᮍ⊩ᴹᅲ⦄ϡৠ㋏㒳П䯈ⱘ䲚៤DŽ
2 ǃ{Root}\sedona\src Ⳃᔩϟ߯ᓎϔϾᮄⱘᎹⳂࣙᔩˈ䖭䞠পৡЎ “LongDHuaTools”DŽ
3ǃ{Root}\sedona\src\LongDHuaTools Ⳃᔩϟ߯ᓎ“kit.xml”᭛ӊˈ䆹᭛ӊᰃ⫼ᴹ ᦣ䗄㓪䆥఼㓪䆥ᯊ᠔䳔㽕ⱘⳌ݇⑤ҷⷕⳂᔩঞ݊Ҫֵᙃˈ䆺㒚ⱘݙᆍབϟ˖ <!--
2 Sedona ᔶ࣪ᓔথᎹ
ҪӀ䞛⫼ᔶ࣪ⱘᎹᴹ䆒䅵ᑨ⫼ᑣᯊˈेৃҹ⦄എⳈ䖲䆒ˈᅲᯊⱘ⫼ SOX ण䆂ᇍ䆒䖯㸠ᓔথˈҢ㗠Ⳉ㾖ᆳࠄ䆒ⱘ䖤㸠ᬜᵰ˗জৃҹ行㒓䖯㸠䆒䅵ˈ✊ৢᇚᑨ⫼ ᑣֱᄬ“sax”᭛ӊ䞠ˈПৢ䳔㽕ᮄ䆒ⱘᯊ ⫼sedonac Ꮉᇚ݊㓪䆥៤“sab” ᭛ӊˈᑊ⫼ SOX ण䆂ᇚ㓪䆥ৢⱘᑣӴ䕧ᅝ㺙ࠄ䆒Ϟˈህᅠ៤ᑨ⫼ᑣⱘᮄDŽ
1 Sedona ᓔথᎹ⌕ 2.2 ᓔথ㗙Ꮉ⌕
ᓔথ㗙ⱘᎹ⌕䗮ᐌᣝབϟℹ偸䖯㸠˖ 1ǃ⫼䴶ᇍ䈵ⱘ Sedona 㓪䇁㿔㓪 ݭSedona 㒘ӊˈ⫼Ѣᅲ⦄ᶤ辵ࡳ㛑㗙ㅫ⊩DŽ 2ǃ⫼ sedonac 㓪䆥఼Ꮉᇚ Sedona 㒘ӊ⑤ҷⷕ㓪䆥៤ᎹࣙDŽ㓪䆥ⱘ䖛ЁˈᎹ ࣙ䞠᠔᳝ࣙⱘ㉏䛑㽕ܜ䖯㸠᳝ᬜᗻẔᶹˈ✊ৢᠡ㹿㓪䆥៤ϔ辵⡍⅞ⱘЁ䯈Ḑᓣҷⷕ ˄intermediate representation——IR˅DŽIR ህڣᰃ Sedona ⱘ∛㓪䇁㿔ϔḋˈ⬅Ѣᅗⱘ ᓩܹՓᕫ⫼ Sedona 䇁㿔ᓔথⱘ㒘ӊ㗙ᑨ⫼᳝њᕜདⱘ鼠ỡᗻˈЎ⫼ IR ᅲ⦄ⱘ⫼᠋䘏䕥 ҷⷕⳈࠄ᳔ৢᠡӮ䩜ᇍᶤϾԧᑨ⫼ᑇৄ㓪䆥៤ᇍᑨⱘѠ䖯ࠊ Sedona 㰮ᢳᴎᣛҸˈ䖭ḋህ 㛑䅽ᓔথདⱘᎹࣙ㛑䗖ᑨ᠔᳝ⱘᑇৄˈ㗠ϡ䳔㽕ϡৠᑇৄП䯈䖯㸠ⱘ㓪䆥䖛DŽ 㓪䆥ⱘৠᯊˈ䆹㓪䆥఼г㛑䩜ᇍ↣Ͼ㉏ѻ⫳ᷛ ⱘޚJava classfile ᭛ӊˈҢ㗠ৃҹ Java 㰮ᢳᴎϞⳈ䖤㸠 Sedona ᑨ⫼ҷⷕˈҹ֓Ѣᓔথ㗙߽⫼ Java ⱘᓔথ䇗䆩Ꮉᇍᑨ⫼㒘ӊ䖯 㸠ᓔথ䇗䆩ˈҢ㗠ᦤ催ᓔথᬜ⥛DŽ 3ǃᓔথ㗙ᇚ㒘ӊҹᎹⱘࣙᔶᓣথᏗˈ⬅䲚៤㗙䗝ᢽᇚાѯᎹࣙᅝ㺙ࠄ᳔㒜ⱘ䆒 Ϟএˈ䖭ḋህ⬅ sedonac Ꮉᇚ䖭ѯᎹࣙ㓪䆥៤Ѡ䖯ࠊⱘ scode ڣ᭛ӊ˄䖭ϔℹ䗮ᐌ⬅ Ꮉ㞾ࡼᅠ៤˅DŽ䲚៤㗙䗝ᢽⱘᎹࣙህއᅮњ䆒Ϟ㛑Փ⫼ⱘ㒘ӊࡳ㛑ˈ䖭ḋⱘ㞾⬅䗝 ᢽ㛑ˈᦤ催њ䆒ⱘ䗖⫼㣗ೈˈՓᕫ䲚៤㗙ৃҹḍԧᑨ⫼⦃๗䖯㸠♉⌏ⱘ㺕࠾DŽ 4ǃᇚ Sedona 㰮ᢳᴎ scode ڣ᭛ӊࡴ䕑ࠄ䆒Ϟ䖤㸠DŽ䖭ѯ᭛ӊेৃҹᰃ乘ֱܜᄬ 䆒ⱘ ROM ϞˈҢ㗠䆒Ϟ⬉ПৢⳈ䖤㸠ˈгৃҹ⬅䲚៤㗙Јᯊ䗝ᢽˈ䗮䖛㔥㒰⫼ SOX ण䆂ࡼᗕࡴ䕑DŽ䖭ḋህՓᕫ䲚៤㗙㛑䴲ᐌ♉⌏ǃᮍ֓ⱘḍϡৠ䳔∖䖯㸠⦄എᅮࠊDŽ 2.3 䲚៤㗙Ꮉ⌕ ᓔথ㗙ᇚᴀⱘ㒘ӊഫ䆒䅵དᑊথᏗߎᴹПৢˈህৃҹ䅽䲚៤㗙㞾㸠䖯㸠䆒ࡳ㛑 ⱘᓔথϢᅮࠊˈҢ㗠⫼ᷛⱘޚᓔথᮍᓣᅲ⦄㒳ϔⱘĀߚᬷࠊāᗱᛇDŽ 䗮ᐌ䲚៤㗙ᰃᶤϾ乚ඳ㗙㸠ϮⱘϧᆊˈҪӀ⫼ ᠔冫ⱘᔶ࣪Ꮉⱘ⌏♉ˈ䗝ᢽા ѯᎹ⫼ࣙ䆒Ϟˈ✊ৢ䗝ᢽ䳔㽕ⱘࠊ㒘ӊᢪᣑࠄᎹऎϞˈձ㒘ӊП䯈ⱘ᭄⌕ 㗙ࠊ䘏䕥݇㋏ˈ䞛⫼䖲㒓ⱘᮍᓣᇚᅗӀ㒘㒛ϔ䍋ˈҢ㗠ᅲ⦄᳔㒜ⱘᑨ⫼ᑣDŽ