您现在所在的是:

紫金桥软件realinfo

回帖:0个,阅读:293 [上一页] [1] [下一页]
9224
紫金桥软件
文章数:2040
年度积分:50
历史总积分:9224
注册时间:2006/1/6
发站内信
发表于:2015/1/14 14:46:49
#0楼
  紫金桥监控组态软件的内置SQL查询功能,主要用于紫金桥实时数据库查询历史数据和报警记录,还可以查询实时数据和统计数据,配合自由报表和起始时间控件,能够快速灵活的查询需要数据。

  下面通过示例工程介绍内置SQL查询历史的使用方法。

  首先来看一下运行时的画面:

附件 001.jpg

  示例中使用了两个时间组件,一个自由报表,三个按钮。查询历史数据之前必须先连接数据源,右上方有显示连接数据源的结果,是连接正常或是故障。连接状态显示正常后,分别选择查询数据的起始和结束时间,然后单击‘查询全部历史’按钮,在下面的列表就会显示已经查询到的历史数据。查询某一时刻的历史,选择起始时间即可,无需选择结束时间,然后单击‘查询某刻历史’,在报表中就能够显示查询到的该时刻的历史值了。

  在组态中给各组件命名,开始时间组件的名称是time1,结束时间组件的名称是time2,报表名称是fr。三个按钮功能我们按照字面意思理解即可。

  下面我们来看一下脚本部分,

  连接数据源:

  此部分只有一行脚本,其功能是连接‘本地’数据源,将返回值赋给一个窗口变量,用于查看数据源连接是否成功,连接状态就是通过窗口变量‘ZT’做动画连接显示的。
ZT = #ObSql.Connect("");

  查询历史数据:

  这部分脚本分成了几个部分,具体见下面的截图,

附件 002.jpg

   这部分脚本内容简单的说明一下,第一部分就是定义临时变量,为了下面的使用方便;第二部分是把整型的时间值(紫金桥软件里的时间默认都是整型值)转换成字符型,用于下面拼接字符串;第三部分应该算是关键的部分,这里使用了内置SQL函数查询历史数据,而且字符串拼接需要特别注意,稍有大意就会导致数据查询不成功。因为是示例工程,只做了两个数据点,如果数据点较多,这部分字符串的拼接脚本可能要复杂一些;第四部分比较简单,就是控制报表的行数,如果本次查询的数据少于16条,那么报表保留16行,如果本次查询数据多于16条,那么按照数据的数量调整报表的行数;最后一部分是将二维表里的数据显示到报表中,该循环语句中每执行一次循环,是将二维表里的一条数据的时间、点名、数值放到报表的一行中,这部分主要需要注意的是二维表里数据的列号,如果取错了列号,那就不是需要的数据了。

  查询某时刻的历史值:

  下面来看一下查询时刻历史的脚本,截图如下:

附件 003.jpg

   这部分脚本与查询全部历史的差别不是非常大。因为查询的是某一个时刻的历史,所以这里只需要一个时间点即可;关于报表行数,由于本例中只用了两个数据点,所以某刻的历史只会有两条数据,无需控制报表行数,直接保留16行;另外一点就是内置SQL查询语句的字符串拼接部分略有不同。
   
  内置SQL查询历史数据的功能介绍就是这样,示例中的脚本可以灵活使用,以后会陆续发布关于内置SQL查询的其他三个功能。

  有任何关于组态软件的技术问题或需要更多的技术资料,可以在微信(微信号:Realinfo)留下联系方式或者到http://www.realinfo.cc/交流论坛里提出,我们将及时为您解答。
打造民族品牌  铸就工控业绩

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003