工控网首页
>

应用设计

>

紫金桥软件的增强型报警组件与趋势分析组件综合应用

紫金桥软件的增强型报警组件与趋势分析组件综合应用

2018/10/22 11:10:53

一、引言

在项目中,经常会用到增强报警组件来显示报警信息,但是往往发生报警后或者在查看历时报警时,还想关注一下报警点的在报警时一段时间内的数据变化走势,通常的做法为人为的记录该报警点的位号,并到趋势画面中进行查询,这样操作起来比较麻烦,现在可以通过较为简单的方法来达到该目的。

二、功能实现

首先,创建两个窗口,一个命名为“报警显示”,在窗口属性中将“打开其他窗口时自动关闭”的勾去掉,在窗口中添加“增强型报警组件”,命名为_Alarm;另一个串口命名为“趋势分析”,在窗口属性中将窗口类型设置为“弹出式窗口”,在窗口中添加“趋势分析”组件,命名为_Curview,定义一个整形的窗口变量nFlag。其次,创建一个间接变量“SendMessage”做数组用,用来在两个窗口之间传递报警点的信息。

1.报警显示窗口设置

在“报警显示”窗口中,双击“增强型报警组件”,在弹出的“报警属性”对话框中的“报警设置”标题页点击“设置报表”按钮,弹出“自由报表设置”对话框。

在“单元格触发动作设置”中选择“左键双击”动作,输入如下脚本: SendMessage.Clear(); SendMessage.Add(#_Alarm.GetAlrmTxt(2,$R)); SendMessage.Add(#_Alarm.GetAlrmTxt(7,$R)+""+StrLeft(#_Alarm.GetAlrmTxt(7,$R),8)); Display("趋势分析"); 该段脚本的含义为将报警点的点名与报警时间加入到数组SendMessage中。

2.趋势分析窗口设置

在“趋势分析”窗口中,在窗口动作“进入窗口”中编写如下脚本: string _PenName; string _PenEUHi; string _PenEULo; string _PenHi; string _PenLo; _PenName = SendMessage[0]+".PV"; _PenHi = SendMessage[0]+".HI"; _PenHi = SendMessage[0]+".LO"; #本地.RegTag(_PenName); #本地.RegTag(_PenHi); #本地.RegTag(_PenLo); #_Curview.SetPen(0,_PenName); #_Curview.SetPen(1,_PenHi); #_Curview.SetPen(2,_PenLo); nFlag = 1; 该短脚本中要注意数据库函数RegTag()的使用,由于数组SendMessage传递来的是不带参数的点位号,所以要通过_PenName、_PenHi、_PenHi拼接成点名,但拼接成的点名数据库并不承认,所以要用该函数注册之后才可以使用。之后要向“趋势分析”组件中添加三支画笔,分别为实时值、报警上限、报警下线。其中,nFlag为标志位,用于判断曲线显示的起始时间,在周期脚本中调用。 在“窗口运行时中期执行”中编写如下脚本: if #_Curview.GetTimeBegin(0) <> LongTime(SendMessage[1]) &&#_Curview.GetPenDesc(0) <> "" && nFlag == 1 then #_Curview.SetTimeBegin(0,LongTime(SendMessage[1])); nFlag = 0; endif 该短脚本的含义为将曲线的起始时间设置成报警点的报警时间。 这样,在系统运行时,在“报警显示”窗口双击某一条报警信息,则会弹出该报警点在触发报警之后的一段时间内的趋势图,方便用户对该报警点的走势进行分析。

三、结束语

通过该方式可以实现报警信息与趋势分析的快速切换,提供了工作效率同时,也给广大用户带来了方便。

审核编辑(
何为
)
投诉建议

提交

查看更多评论
其他资讯

查看更多

紫金桥跨平台实时数据库发布会及入门培训视频回放

紫金桥跨平台实时数据库入门培训即将开始啦

紫金桥跨平台实时数据库RealHistorian

紫金桥跨平台实时数据库新品发布会

跨平台实时数据库如何实现表格的保存和读取