




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年张家口货运资格证考试有哪些项目
- 加工衣服合同范本
- 2025年重庆货运从业资格证模拟考试保过版
- 买方解除合同范本
- 个人服装采购合同范本
- 个人庭院出租合同范本
- 基槽土夹石换填施工方案
- 临沂制砂机采购合同范本
- 免责任劳务合同范本
- 买卖农村房屋合同范本
- 2025年湖南工业职业技术学院单招职业倾向性测试题库含答案
- 人教版地理七年级下册7.1.1 亚洲的自然环境(课件33张)
- 《Python程序设计基础教程(微课版)》全套教学课件
- GB 39752-2024电动汽车供电设备安全要求
- GB/T 3452.1-2005液压气动用O形橡胶密封圈第1部分:尺寸系列及公差
- 小学二年级数学下册教材研说稿
- 涂料色浆MSDS
- 小学生幽默搞笑相声台词
- A4方格纸-无需排版直接打印完美版
- 湘教版六年级下册美术第2课《俯仰之间》教案
- 大蒜生长记录ppt课件
评论
0/150
提交评论