Niagara程序入门.doc_第1页
Niagara程序入门.doc_第2页
Niagara程序入门.doc_第3页
Niagara程序入门.doc_第4页
Niagara程序入门.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本帖最后由 nightycd 于 2011-9-13 13:09 编辑献给和几个月前的我一样的对Niagra模块编程不知如何着手的同学们。首先,说明一下要编制的模块的功能,很简单,假设一个设备有3个错误干结点,将其在一个字符点输出该设备的错误原因,例如干结点1为真则输出“断电”,干结点2错误输出“保险丝融毁”,干结点3为真错误点输出“缺相保护”。第二,预备条件,NiagaraAX,Eclipse,Eclipse_Niagara_Plugin即Niagara的Eclipse插件要安装好。设置好Eclipse插件中NiagaraAX的地址。下面开始:1.New AX Module,填写模块名等信息,例如 2.添加依赖包,例如 3.添加工程包,例如 4.完成向导。5.右键单机刚建立工程里com.sh.eb包,选new-new class,填写类名并设定依赖包,例如 此步要注意的是,类名首字母必须是大写B,第二个字母必须大写,否则Niagara插件的Slotomatic工具可能不过滤你的类文件。建立好类后,应显示类,并自动添加形如 以“/*”- 开头 “-*/” 结尾结尾的Slotomatic注释区域,该区域用起来很方便。6.使用Niagara插件的Slotomatic工具,过滤你的文件,如条件符合,你会发现类文件中多了类型返回语句,点击Ctrl+shift+o,添加javax.baja.sys.TYPE类型的import。还有,module-include.xml文件中添加了如下语句7.添加输入属性和输出属性,将例子中BErroBand类中的Slotomatic注释区域编辑为如下语句 /*- class BYcBoolBandString properties InBool_1:BStatusBoolean default new BStatusBoolean(false) flags summary,executeOnChange InBool_2:BStatusBoolean default new BStatusBoolean(false) flags summary,executeOnChange InBool_3:BStatusBoolean default new BStatusBoolean(false) flags summary,executeOnChange InBool_1_BindingString:BStatusString default new BStatusString(Bool_1 band Message) flags summary InBool_2_BindingString:BStatusString default new BStatusString(Bool_2 band Message) flags summary InBool_3_BindingString:BStatusString default new BStatusString(Bool_2 band Message) flags summary OutMessage : BStatusString defaultnew BStatusString() flagssummary actions topics -*/其中InBool_1、2、3为输入的3个设备故障干结点,有任何变化都会触发事件。InBool_1_BindingString、 InBool_2_BindingString 、InBool_3_BindingString分别为3个故障干结点所对应的设备故障信息字符串。OutMessage为设备的总的故障信息输出点。其格式对应含义为 InBool_1:BStatusBoolean /属性名及类型 default new BStatusBoolean(false) /默认值及构造函数 flags summary,executeOnChange /属性标签函数,executeOnChange标识该属性一有变化就会触发OnChange事件。8.运行Slotomatic工具,会发现函数内自动增加了上述属性的语句。点击Ctrl+shift+o,添加引用类,如下图 9.手工添加模块的OnChange事件函数,在自动代码后添加如下代码,含义见注释/OnChange Event/覆盖BComponent类中的changed事件,意即只要flags里包含executeOnChange 属性的任意一个属性值有变化,都会/调用该函数,发生变化的属性作为property参数传入。 public void changed(Property property , Context context) super.changed(property, context); /基类事件调用 if(!isRunning() /模块没在运行则跳过 return; else if(Flags.isExecuteOnChange(this, property) if(property.getName().equals(InBool_1.getName() /如果发生变化的属性的名称是InBool_1的名称 getOutMessage().setValue(getInBool_1_BindingString().getValue().toString(); /就将InBool_1_BindingString()的字符串值赋值给 /OutMessage属性。下同 else if(property.getName().equals(InBool_2.getName() getOutMessage().setValue(getInBool_2_BindingString().getValue().toString(); else if(property.getName().equals(InBool_3.getName() getOutMessage().setValue(getInBool_3_BindingString().getValue().toString(); 10.打开module.palette文件,在其中语句下添加如下语句具体含义为: AX里palette工具下 模块名,不是类名 模块下的类名 的名称此文件将使我们的模块在AX中的Palette工具窗口中出现可拖动的工具图标。11.运行Slotomatic工具,再运行Niagara工具里的Build FUll工具,编译为erroBand.jar模块发布到NiageraAX安装目录下的Module目录中。12.运行AX,建立站点,用Palette工具栏打开erroBand.jar模块,将erroBandTool拖入连线视图,实验功能是否实现。如下图 关于工程中几个文件的作用:1.build.xml文件,主管模块的依赖信息等编译链接信息,上例中的1、2、3步都在此文件中有体现,可手工添加,Slotomatic工具不在此文件中自动添加。2.module-include.xml 文件,主管模块中类型对应、管理,如上例中工程建立的实际类名为BErroBand,在此文件中被映射为ErroBand,并且在module.palette文件中使用的是ErroBand这个名称。Slotomatic工具会在此文件中添加必要的语句,但一些高级功能就要手工添加了。注:本教程仅供参考,如有错漏请指正,所做模块功能基本能用,但要真用到实际当中的话就要进一步改进。这个PXInclude的功能真的是非常实用,也很好的体现了界面复用的效果,可以大大提高我们工程中的效率,同时由于可以复用图形界面,也可以缩小Station的空间,提高效率。1。利用PX建立重复使用的图形元素,这个元素有别于我们使用的Module,应该是图形Module的各种组合,例如文档中使用的ahuRow.px;2。为这些图形元素定义相对数据源,固定名字,但路径是相对的;3。定义各种动画;4。使用时,指定路径就可以,只要数据点名称一致,就可以建立与PX界面的连接;5。修改图形元素的PX,所有引用的地方都会修改,大大缩短时间。这里提出了一个问题,什么是好的命名规则:以前的软件中,我们习惯用具体的位置和属性来为一个点命名,如:1#空调送风温度1F_23#水泵运行状态但是在Niagara中,点是通过位置+名字来引用的,名字只是这个点的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论