控制工程师论坛

教程与手册

关于IFIX历史报警数据存储与查询

APK
APK

2008-01-26

关于IFIX历史报警数据存储与查询实例


.ODBC服务的连接


    开始-设置-控制面板-管理工具-数据源ODBC



 


    选用户DNS-添加-Microsoft Access Driver(*.mdb)





 


    数据源名:Myalarm



 


    选(或创建)数据库名:Alarm.mdb, 文件类型:Access,驱动器D:



 


    连接池-禁止


.系统SCU的配置


       SCU-IFIX-配置-报警-报警ODBC服务,启动-修改-


区域(A):从报警区域数据库中选择- CLQS-ALM-增加-确定


           配置:数据库类型:Access


           数据库标识符:Myalarm


     列配置:选9


     现在创建表:FIXALARMS(默认表名)


     其它默认-确定






 


.控件的引用


 


1.日期时间控件


典型装VB6.0, 双击选Microsoft date and time picker控件


日期控件-属性-格式:1-dtpShortDate,有效前不打勾。其它默认,



 


时间控件-属性-格式:2-dtpTime, 有效前不打勾。其它默认



2vxData控件(数据管道)


IFIX4.0工具箱底部vxData图标


右键-属性vxData对象-


  提供者:Microsoft OLE DB Provider for ODBC Drivers


  数据库:DNS名:Myalarm,用户名 密码 选项均空---测试连接-测试连接成功-确定


  记录源:命令类型:SQL命令


应用-确定 


3vxGrid控件(显示)


工具箱底部vxGrid图标


选控件 vxGrid1-右键-动画-高级-高级动画配置-行为-ADORecords-动画打勾


      数据源:报警记录一览表.vxData1.ADORecords


      数据转换:对象



 




 


.VBA脚本的编写


1.初始化脚本代码



'初始化设置


Private Sub CFixPicture_Initialize()


'设定默认开始时间


Me.DTPFromDate = DateAdd("d", -1, Now)


Me.DTPFromTime = ("00:00:00")


 


'设默认结束时间


Me.DTPEndDate = Now


Me.DTPEndTime = Now


'设置时间


'vxData1.QP1 = Format(Me.DTPFromDate.Value, "yyyy-MM-DD") & " " & Format(Me.DTPFromTime.Value, "HH:MM:SS")


'vxData1.QP2 = Format(Me.DTPEndDate.Value, "yyyy-MM-DD") & " " & Format(Me.DTPEndTime.Value, "HH:MM:SS")


 


End Sub


 


2. 查询按扭CmbSearch代码如下:


'开始查询


Private Sub CmbSearch_Click()


 


'连接自动刷新


Me.vxData1.AutoRefresh = True


'Format函数用于设定时间格式


vxData1.QP1 = Format(Me.DTPFromDate.Value, "yyyy-MM-DD") & " " & Format(Me.DTPFromTime.Value, "HH:MM:SS")


vxData1.QP2 = Format(Me.DTPEndDate.Value, "yyyy-MM-DD") & " " & Format(Me.DTPEndTime.Value, "HH:MM:SS")


'设定查询内容


'从数据库中查询符合时间段的数据


Me.vxData1.SQLCommand = "SELECT *FROM FIXALARMS  WHERE" & _


"(FIXALARMS.ALM_NATIVETIMEIN >= {ts 'QP1'})AND(FIXALARMS.ALM_NATIVETIMELAST <= {ts 'QP2'})"


               


 '刷新数据


 Me.vxData1.Refresh


 Me.vxGrid1.Refresh


End Sub


 


 


3. 完整的VBA按扭代码如下:


 


'初始化设置


Private Sub CFixPicture_Initialize()


'设定默认开始时间


Me.DTPFromDate = DateAdd("d", -1, Now)


Me.DTPFromTime = ("00:00:00")


 


'设默认结束时间


Me.DTPEndDate = Now


Me.DTPEndTime = Now


'设置时间


'vxData1.QP1 = Format(Me.DTPFromDate.Value, "yyyy-MM-DD") & " " & Format(Me.DTPFromTime.Value, "HH:MM:SS")


'vxData1.QP2 = Format(Me.DTPEndDate.Value, "yyyy-MM-DD") & " " & Format(Me.DTPEndTime.Value, "HH:MM:SS")


 


End Sub


 


Private Sub CFixPicture_KeyDown(ByVal KeyCode As Long, ByVal Shift As Long, ContinueProcessing As Boolean)


 


End Sub


'开始查询


Private Sub CmbSearch_Click()


 


'连接自动刷新


Me.vxData1.AutoRefresh = True


'Format函数用于设定时间格式


vxData1.QP1 = Format(Me.DTPFromDate.Value, "yyyy-MM-DD") & " " & Format(Me.DTPFromTime.Value, "HH:MM:SS")


vxData1.QP2 = Format(Me.DTPEndDate.Value, "yyyy-MM-DD") & " " & Format(Me.DTPEndTime.Value, "HH:MM:SS")


'设定查询内容


 


 


 


'从数据库中查询符合时间段的数据


Me.vxData1.SQLCommand = "SELECT *FROM FIXALARMS  WHERE" & _


"(FIXALARMS.ALM_NATIVETIMEIN >= {ts 'QP1'})AND(FIXALARMS.ALM_NATIVETIMELAST <= {ts 'QP2'})"


               





 '刷新数据


 Me.vxData1.Refresh


 Me.vxGrid1.Refresh


End Sub


 


 


以上工作结束后保存,退出。重新启动IFIX4.0,运行后即可使用


 


 

                                        2008-1-25    QUANFENG-TONG 
回帖

评论1

总共 , 当前 /
首页 | 登录 | 注册 | 返回顶部↑
手机版 | 电脑版
版权所有 Copyright(C) 2016 CE China