紫金桥实时数据库软件里预置了一些组件,分别实现不同的特定功能,在工程组态的时候,恰当利用这些组件来实现某些功能,会达到事半功倍的效果。
紫金桥实时数据库软件里预置的历史查询组件,能够按照需求查找一段时间内的历史数据,然后通过报表显示出来或者供其他使用。
本示例是通过历史查询组件支持的函数,利用脚本对组件进行操作,关于组件支持的具体函数,可以去软件帮助中查找,这里不详述。
下面主要讲解一下历史查询组件的具体使用。
功能是这样的:首先,将要查询历史的位号,添加到组件中,然后设定要查询历史的起始时间和结束时间,再设定要查询的相邻历史数据之间的时间间隔,执行查询并把结果显示到报表中,功能完成。
在窗口中添加历史查询组件,并将组件命名为His1,同时需要使用一个报表进行配合使用,新建一个自由报表命名为Tab1,该报表用来显示查询的结果。
下图是运行后查询数据的画面:
下面就来说一下各部分的脚本,脚本一共3部分,分别是‘添加位号’、‘开始检索’按钮中的脚本,还有一部分是历史查询组件中的‘事件脚本’。
首先来看‘添加位号’按钮中的脚本,如下图:
因为本例中使用的点名是有规律的,所以使用一个循环脚本一次全添加到历史查询组件中,其中主要是使用了历史查询组件的函数AddTag(),读者可以根据自己的实际情况使用该函数向组件中动态的添加要查询的点。
接下来是‘开始检索’按钮的脚本,如下图:
这里主要就是历史查询组件执行Start()函数,开始历史检索,但是由于函数参数需要,先计算出了指定时间范围内要查找的历史数据个数以及相邻历史的时间间隔。
最后一部分脚本是历史查询组件里的‘事件脚本’,双击组件,在弹出窗口单机‘事件脚本’按钮即进入脚本编辑框,在‘检索完成时’选项卡里面,就是组件检索完成历史数据后要执行的脚本,如下图:
此部分前两段分别是根据查询到的历史数据个数以及数据点的个数,来设置报表的行数和列数,最后一段的循环语句是把查询到的数据添加到报表中,第一层循环是按行添加,循环内的第一行是利用历史查询组件的函数GetTimeText()取得该行历史数据的时刻,第二层循环是按列添加,循环内的第一行使用GetTagName()函数取得每列的点名,添加到报表的表头,第二行使用GetCell()取得每列在该行的历史数据,然后添加到报表中。
以上就是本例中历史查询组件通过函数的使用,适合需要查询的位号较多并且位号名有一定规律的情况,如果需要查询的位号较少,可以直接在历史查询组件的组态界面直接添加,然后直接执行Start()函数即可。
另外,本例中为了方便观察,设置了历史查询组件运行可见,实际上该组件默认在运行状态是不显示的,也没有必要显示,这一点可以在组件的组态界面中勾选或者取消‘运行时可见’即可。
读者如果有些函数不十分清楚,可以查看紫金桥实时数据库的帮助文件。以后我们还会陆续推出其他组件的示例说明。
|