IFix3.5报警历史的设置与查询_第1页
IFix3.5报警历史的设置与查询_第2页
IFix3.5报警历史的设置与查询_第3页
IFix3.5报警历史的设置与查询_第4页
IFix3.5报警历史的设置与查询_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在实际工程中需要对开关量变位,模拟量越限等数据变化存入到历史数据库中,在 此称之为报警历史库,然后再通过编写程序查询报警历史。如何实现报警存入报警历史库呢?本章以 ACCESS 作为报警历史库,来说明报警历 史库的实现过程,并给出实际的报警历史查询代码。第一节报警历史的设置第一步:创 建 一 个 ACCESS 类 型 的 数 据 库 , 命 名 为 hisdata , 路 径 为 : D:DynamicsSampleSystemHistoricalData。第二步:在 ODBC 中创建 DSN ,命名为 hisdata 。创建过程如下:1:双击 ODBC ,出现如图 1.1所示对话框。 2:点

2、击添加后,出现如图 1.2所示对话框。 3:选择 Driver do Microsoft Access (*.mdb项,点击完成,出现如图 1.3所示对话框。 4:输入数据源名 hisdata ,输入说明 “IFIX 报警历史库 ” ,然后点击选择,出现如图 1.4所示对话框。 5:找到开始创建的 Access 数据库,点击确定。出现如图 1.5所示的对话框。 6:点击确定完成 ODBC 配置。在系统配置中选择配置下面的报警,显示如图 1.6所示对话框。 第四步:选择 Alarm ODBC Service, 并启用, 点击修改后显示图 1.7对话框。 第五步:选择报警 ODBC 服务配置下的配

3、置按钮,显示图 1.8对话框。 4 第六步点击数据库类型右边的浏览按钮,出现图 1.9所示对话框。 选择 Access 点击确定。第七步点击图 1.8中数据库标识符右边的浏览按钮出现图 1.10所示的对话 框。5 选择 hisdata 点击确定。第八步点击图 1.8中的现在创建表,会弹出创建成功的对话框。点击确定返 回图 1.7所示的对话框,点击确定,返回图 1.6所示的对话框,点击确定,然后 点击文件中的保存,保存系统配置。至此 iFix3.5报警历史库的配置完成。第二节报警历史的查询启动 iFix3.5演示系统。按 CTRl+W进 入 编 辑 模 式 。 新 建 画 面 如 图 2.1所

4、示 , 命 名 为 “iFix1_Alarm_history_query.grf“ ,画面上有 1个 MSHFlexGrid 控件(Grid1, 1个 ComboBox 控件 (alarmArea , 4个 DTPicker 控件 (StartDTPicker , StartTTPicker , EndDTPicker , EndTTPicker , 4个 Text 控件, 1个 CommandButton 控件 (cmdOK。 MSHFlexGrid 控件用来显示查询结果, ComboBox 控件用来选择报警区域, DTPicker 控件用来选择起始和结束时间, CommandButton

5、控件用来启动查询。 6 需要注意的是采用 ADO 查询,需要在引用中添加 ADO 库,如图 2.2所示。 7代码及说明如下:Dim rdate, rdate1, tag, tt, dtDim StartTime, EndTime As StringPrivate Sub CFixPicture_Initialize(With alarmArea.AddItem "BATCH_PRODUCTION".AddItem "Discrete_Mfg".AddItem "Pharm_Process".AddItem "Waste_Wa

6、ter".AddItem "ALL".Text = "ALL"End Withrdate = Daterdate = Format(rdate, "yyyy-mm-dd"rdate = rdate & " 00:00:00"StartDTPicker = rdateStartDTPicker1 = rdaterdate1 = Daterdate1 = Format(rdate1, "yyyy-mm-dd"tt = Timett = Format(tt, "hh:mm:

7、ss"rdate1 = rdate1 & " " & ttEndDTPicker = rdate1EndTTPicker = TimeEndDTPicker1 = rdate1EndTTPicker1 = TimeStartTime = rdateEndTime = rdate1End SubCFixPicture_Initialize为初始化画面时的事件,在这里对 alarmArea 进行初始 化,添加需要的报警区域;对起始时间进行设置,起始时间设置为当前日期的 零点,结束日期设置为当前日期时间。Private Sub cmdOK_Click(D

8、im strQueryAvg, strQueryAvg1, strQueryAvg2, strQueryAvg3 As StringDim str As StringDim Querytime As Stringstr = ""8If alarmArea.Text <> "ALL" ThenEnd IfESCR, FIXALARMS.ALM_VALUE,FIXALARMS.ALM_ALMAREA, FIXALARMS.ALM_OPFULLNAME, FIXALARMS.ALM_OPNODE FROM FIXALARMS"strQue

9、ryAvg1 = " WHERE (FIXALARMS.ALM_ALMAREA LIKE '%" & str & "%'"strQueryAvg2 = " AND (FIXALARMS.ALM_NATIVETIMELAST BETWEEN ts '" &StartTime & "' AND ts '" & EndTime & "'"strQueryAvg3 = " ORDER BY FIXA

10、LARMS.ALM_NATIVETIMELAST DESC"strQueryAvg = strQueryAvg & strQueryAvg1 & strQueryAvg2 & strQueryAvg3Dim i, j As IntegerDim rsADO As RecordsetcnADO.ConnectionString = "DSN = hisdata; UID = sa; PWD = ;"cnADO.Open "hisdata", "sa", ""rsADO.CursorL

11、ocation = adUseClientrsADO.Open strQueryAvg, cnADO, adOpenDynamic, adLockUnspecified, -1If rsADO.RecordCount > 5000 ThenMsgBox "查询结果超过 5000条,请缩小查询时间范围 "Exit SubEnd IfSet Grid1.DataSource = rsADOSet cnADO = NothingWith Grid1.TextMatrix(0, 1 = "开始日期 ".TextMatrix(0, 2 = "开始时

12、间 ".TextMatrix(0, 3 = "结束日期 ".TextMatrix(0, 4 = "结束时间 ".TextMatrix(0, 5 = "TAGNAME".TextMatrix(0, 6 = "描述 ".TextMatrix(0, 7 = "值 ".TextMatrix(0, 8 = "报警区域 "9.TextMatrix(0, 9 = "登录用户 ".TextMatrix(0, 10 = "操作节点 ".ColW

13、idth(0 = 500.ColWidth(1 = 1000.ColWidth(2 = 1250.ColWidth(3 = 1000.ColWidth(4 = 1250.ColWidth(5 = 2250.ColWidth(6 = 2000.ColWidth(7 = 1500.ColWidth(8 = 1500.ColWidth(9 = 1500.ColWidth(10 = 1200.ColWidth(11 = 1200End WithFor i = 1 To Grid1.Rows - 1Grid1.TextMatrix(i, 0 = iNextEnd SubcmdOK_Click启动查询,并

14、将查询的结果显示在 Grid1上。在这里注意的是 SQL 语句, 主要用到了 SELECT , WHERE , LIKE , BETWEEN , AND , ORDER BY 等 SQL 查询语句。实现了起始时间到结束时间内,规定报警区域的报警历史查询。Private Sub EndDTPicker_Change(dt = EndDTPickerdt = Format(dt, "yyyy-mm-dd"tt = Format(tt, "hh:mm:ss"EndTime = dt & " " & ttEnd SubPriv

15、ate Sub EndTTPicker_Change(dt = EndDTPickerdt = Format(dt, "yyyy-mm-dd"tt = Format(tt, "hh:mm:ss"EndTime = dt & " " & ttEnd Sub10Private Sub StartDTPicker_Change( dt = StartDTPicker dt = Format(dt, "yyyy-mm-dd" tt = StartTTPicker.Hour & ":&quo

16、t; & StartTTPicker.minute & ":" & StartTTPicker.second tt = Format(tt, "hh:mm:ss" StartTime = dt & " " & tt End Sub Private Sub StartTTPicker_Change( dt = StartDTPicker dt = Format(dt, "yyyy-mm-dd" tt = StartTTPicker.Hour & ":" & StartTTPicker.minute & ":" & StartTTPicker.second

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论