浅论Sedona开源架构与多协议控制
摘要:对 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 文件(本文件是用来描述编译器编译时所需要的源代码目录及其他信息;如下:。