提出问题
熟悉 Niagara 的人都知道,Niagara的Px页面里面可以使用相对路径,通过一个 Px 界面文件,对应多个设备对象。这个功能可以大大减少工程师制作 UI 的时间。
Niagara的实时数据是在二维结构中的,比如:
Room1/Temp
Room2/Temp
Room3/Temp
Room4/Temp
上面的Room1、Room2、Room3是目录,代表一个房间,Temp是房间温度。在这个二维结构中,我们给房间做一个 PX 界面文件,呈现该房间里的各个参数,如果使用相对路径后,这一个界面可以绑定到各个房间。
这个对于实时数据的呈现、控制是没有问题的,那么,如果有人想把一个其中一个点的历史曲线也放在这个界面上怎么办呢?
分析问题
之所历史数据不能直接用相对路径,是因为单个站点的历史数据根本就不是二维结构,它并不依附于某个目录,比如在 Supervisor 站点里面,历史数据(Ord)结构如下:
history:/JACE01/Room1_Temp
history:/JACE01/Room2_Temp
history:/JACE02/Room3_Temp
history:/JACE03/Room4_Temp
既然原因找到了,那我们不妨尝试把一维的 Ord 引用到二维结构中。具体操作步骤如下。
步骤
在文件空间中,新建一个PX页面,叫sourceChart.px,并拖入一个历史
在页面中建立两个Px Property,即页面属性,一个叫chartTitle,是baja:String类型,另一个叫chartOrd,是baja:Ord类型。
建立属性的连接,ChartHeader.titleàchartTitle,LineChart.TableChartBinding.ordàchartOrd
找到实时数据的数据结构,如果从远程JACE来的数据,应该建立同样的目录结构
slot:/Drivers/NiagaraNetwork/JACE01/points/Room1
slot:/Drivers/NiagaraNetwork/JACE01/points/Room2
给Room1增加一个视图,并sourceChart.px拖入编辑视图。在PxInclude的属性中,增加2个ValueBinding
chartTitle属性用于和相对路径“slot:”绑定,format为“%displayName% – Temperature”
chartOrd属性用于和本目录下的一个Ord绑定,使用Pass Through方式。当然,这个Ord可以是Room1添加的一个slot,也可以是vykonPro:FormatToOrdResolver,或者一个Program的slot。当然,绑定时还要用相对路径的。
最终效果:
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777