IFIX历史报警数据存储与查询
- 格式:doc
- 大小:183.50 KB
- 文档页数:4
第9节IFIX实时报警组态报警是指数据块的状态超过了预定义的报警限值。
报警配置主要包括启用报警一览表、设置报警服务内容、设置数据库中报警等。
报警一览表可以直观的显示报警信息。
报警服务可以提供报警音响功能,搭配电脑音响可以实现声音报警。
让操作员第一时间知道系统异常发生时间及内容。
本节课程主要介绍1、SCU报警配置2、数据块报警参数配置3、建立实时报警一览表4、报警一览表进行表格配置5、画面下显示报警一览表。
同学们在学习过程中有疑问可以在腾讯课堂下搜索相应视频课程就可以观看。
一、SCU报警配置1. 在“SCU-FIX”界面菜单栏中执行“配置”-报警命令,弹出报警配置按钮,选择“报警一览表”服务启动。
2. 在“报警配置”对话框中选择“修改”按钮,弹出“报警一览服务配置”对话框。
报警删除-自动,音响支持-启用。
3. 在“报警一览服务配置”对话框选择“区域”按钮,弹出报警区域对话框。
将可用区域“A”添加到已设置区域。
点击确定按钮完成报警配置,返回SCU 点击文件执行“保存操作”。
二、数据块报警参数配置1. 在数据库管理器器打开过程数据库,找到模拟量双击弹出数据块配置窗口,选择报警标签页。
设置LL:10.0,L:20.0,H:80.0,HH:90.0,优先级:HIGH2.在报警区域双击默认区域“ALL”弹出报警区域-数据库块对话框,这里将区域A添加到已配置区域A。
点击确定完成数据块报警配置。
三、在画面上添加报警一览表1. 新建画面名称为“报警一览表”,在菜单栏下选择插入按钮-选择“对象/连接”下拉箭头选择报警一览。
2. 选择报警一览弹出报警一览表3.双击报警一览表弹出“报警一览表设置”对话框。
常规选项卡-修改报警表字体与描述4.操作员选项卡配置操作员具有哪些权限。
5. 过滤选项卡-进行报警过滤操作6.排序标签页-报警信息的先后排列顺序,可通过下拉菜单选择以何种信息排序。
7.颜色标签页-修改报警状态的颜色、优先级颜色、一览表背景颜色。
目录一、软件安装 (3)1、安装步骤 (3)2、第三方软件安装 (3)二、IFIX基本知识 (4)1)SCADA配置 (5)2)路径配置 (5)3)、I/O驱动配置 (6)4)、报警配置 (7)5)、任务配置 (11)6)、安全配置 (11)7)、数据库配置 (15)8)、人机界面 (18)9)、历史库定义 (18)10)、任务控制 (20)11)、如何更改画面高度 (22)12)、标签组使用 (22)三、如何实现IFIX的MBE仿真 (23)1)、首先在ifix上位机软件上安装好MBE驱动 (24)2)、添加配置好通道和数据块IP填电脑IP (25)3)、设置I/O地址范围,不可超出范围,下图模拟量地址有26个 (26)4)、打开modscan32 (27)5)、“connection”→“connect”出现下图 (28)6)、“connect using”选择“TCP/IP”,“IP Address”填入电脑IP,“Service Port” 与modsim32里设置一样。
然后OK (29)7)、打开modsim32 (29)8)、建立连接: (30)9)、“connection”→“connect”→“modbus/TCP Svr” (30)10)、然后2个软件的:Device Id、Address、MODBUS point Type、Length、必须一样,这样通讯建立! (31)四、常见问题 (32)1)、怎么实现登陆 (32)2)、关于安全,在配置安全以后,重装IFIX时会出现严重错误 (32)3)、VB中语句Private conData As ADODB.Connection运行提示用户定义类型未定义,是怎么回事? (33)4)、如何打开以前的工程 (33)五:常用脚本 (33)1)、按钮二次确认 (33)2)、脉冲输出示例 (34)说明:里面IFIX用MBE驱动为例,现在只是根据自己在使用IFIX中遇到问题总结!共同进步!IFXI使用总结一、软件安装1、安装步骤【说明】在安装过程中,弹出的设置窗口选择默认设置,以下列出需注意的地方。
关于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后,项目工具栏文件----工具栏----插入OLE对象双击选Microsoft date and time picker控件日期控件-属性-格式:1-dtpShortDate,有效前不打勾。
其它默认,时间控件-属性-格式:2-dtpTime, 有效前不打勾。
其它默认2.vxData控件(数据管道)IFIX4.0工具箱底部vxData图标右键-属性vxData对象----PROPERTIES VISICONXDATA VXDATA对象提供者:Microsoft OLE DB Provider for ODBC Drivers数据库:DNS名:Myalarm,用户名密码选项均空---测试连接-测试连接成功-确定记录源:命令类型:SQL命令应用-确定3.vxGrid控件(显示)工具箱底部vxGrid图标选控件vxGrid1-右键-动画-高级-高级动画配置-行为-ADORecords-动画打勾数据源:报警记录一览表.vxData1.ADORecords数据转换:对象四.VBA脚本的编写1.初始化脚本代码'初始化设置Private Sub CFixPicture_Initialize()'设定默认开始时间Me.DTPFromDate = DateAdd("d", -1, Now)Me.DTPFromTime = ("00:00:00")'设默认结束时间Me.DTPEndDate = NowMe.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") & " " & F ormat(Me.DTPEndTime.Value, "HH:MM:SS")End Sub2. 查询按扭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") & " " & F ormat(Me.DTPEndTime.Value, "HH:MM:SS")'设定查询内容'从数据库中查询符合时间段的数据Me.vxData1.SQLCommand = "SELECT *FROM FIXALARMS WHERE" & _ "(FIXALARMS.ALM_NATIVETIMEIN >= {ts 'QP1'})AND(FIXALARMS.ALM_NAT IVETIMELAST <= {ts 'QP2'})"'刷新数据Me.vxData1.RefreshMe.vxGrid1.RefreshEnd Sub3. 完整的VBA按扭代码如下:'初始化设置Private Sub CFixPicture_Initialize()'设定默认开始时间Me.DTPFromDate = DateAdd("d", -1, Now)Me.DTPFromTime = ("00:00:00")'设默认结束时间Me.DTPEndDate = NowMe.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") & " " & F ormat(Me.DTPEndTime.Value, "HH:MM:SS")End SubPrivate 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") & " " & F ormat(Me.DTPEndTime.Value, "HH:MM:SS")'设定查询内容'从数据库中查询符合时间段的数据Me.vxData1.SQLCommand = "SELECT *FROM FIXALARMS WHERE" & _ "(FIXALARMS.ALM_NATIVETIMEIN >= {ts 'QP1'})AND(FIXALARMS.ALM_NAT IVETIMELAST <= {ts 'QP2'})"'刷新数据Me.vxData1.RefreshMe.vxGrid1.RefreshEnd Sub以上工作结束后保存,退出。
通过SQL Server数据库查询ifix历史报警信息IFIX组态软件中提供报警一览控件,但是只能作为DCS系统中实时报警信息的显示,不能做到历史报警的查询功能,在网上笔者也查了方法,毫不避讳的说,都是垃圾,下面将结合实际项目经验,分享查询ifix历史报警的一种方法,主体思路是通过配置ifix组态软件,将系统报警写入到SQL Server数据库中,然后通过VBA脚本对数据中存放的报警信息进行查询。
软件操作环境:ifixV6.0+SQL Server2014+windows7旗舰版64BIT通过上一篇文档操作,我们已经实现了将ifix报警信息存储在我们新建的SQL Server数据库中,本片文档将详细介绍如何通过VBA脚本来读取数据库中的存放的报警信息。
目录1. 新建画面,插入DT PICKER OLE对象 (2)2. 插入其它控件 (2)3. 报警查询按钮VBA具体脚本 (3)4. 初始化VBA具体脚本 (4)5. 运行项目测试 (4)1.新建画面,插入DT PICKER OLE对象具体步骤:新建一个ifix画面,画面中插入两个Microsoft date and time picker control控件,分别命名为StartTime和Endtime控件属性修改:右键添加的日期时间控件,选择属性,参照下图进行设置2.插入其它控件插入一个按钮,作为查询按钮;再插入一个ViseconX网格控件,用来显示查询到的报警信息;3.报警查询按钮VBA具体脚本查询按钮的CLICK事件中编写如下脚本:If PIC报警查询.Endtime.Value < PIC报警查询.StartTime.Value ThenMsgBox ("时间范围有误,请重新输入!")Exit SubEnd If '判断输入时间是否合规Dim rsADO As New ADODB.RecordsetDim cnADO As New ADODB.ConnectionDim SQL As StringDim strStartTimeDim strEndTimestrStartTime = Format(PIC报警查询.StartTime.Value, "yyyy-MM-dd HH:mm:ss") '设置开始时间格式strEndTime = Format(PIC报警查询.Endtime.Value, "yyyy-MM-dd HH:mm:ss") '设置结束时间格式'查询语句查询报警历史数据库中的字段,用户可根据实际需求,修改查询字段SQL = "SelectALM_NATIVETIMEIN,ALM_NATIVETIMELAST,ALM_TAGNAME,ALM_VALUE,ALM_DESCR,ALM_ALM STATUS FROM FIXALARMS where ((FIXALARMS.ALM_NATIVETIMEIN >={ts '" & strStartTime & "'}) and (FIXALARMS.ALM_NATIVETIMEIN <={ts '" & strEndTime & "'})) "Set cnADO = New ADODB.ConnectionSet rsADO = New ADODB.Recordset'Server=数据库所在机器的IP或机器名,DataBase=用户现场实际访问的数据库。
创建IFIX历史报警图解一、创建ODBC数据库:利用控制面板中的数据库(ODBC)创建一个Access数据库DCC.mdb,并存于C盘根目录下,具体步骤如图1,2所示:图1图2二、IFIX历史报警配置:在SCU的报警配置中启用相关选项,如图3;选中“报警ODBC服务”项后“修改”,弹出图4后选择“配置”,配置的参数具体如图5。
在配置完IFIX 历史报警与ODBC中创建的数据库的关联后,创建表FIXALARMS。
图3图4图5选择“报警配置”中的“高级”,并设置“操作员消息”和“配方消息”为“不发送”,如图6、图7(这一步很重要,否则IFIX将区分不开报警与消息)。
图6图7三、画面配置及代码:1、在报警历史画面中创建如下图8所示控件,时间提取控件需要选择菜单栏的“插入”菜单,然后选择“插入OLE”,从中添加“Microsoft Date and Time Picker”控件。
图82、画面中的控件名如图9所示:图93、画面中的VXData1.vxData属性如图10所示。
图104、画面中的VXGrid1. ADORecords属性如图11所示。
图115、画面中控件的具体代码如图12。
图126、附代码:Private Sub CFixPicture_Close()vxData1.DBDisconnectEnd SubPrivate Sub CFixPicture_Initialize()Me.DTp1 = DateAdd("d", -1, Now)Me.DTp2 = NowMe.DTp3 = NowMe.DTp4 = NowtimerDPT.Interval = 10000timerDPT.EnableEndTime = TruevxData1.DBConnectEnd SubPrivate Sub CommandButton1_Click()vxData1.QP1 = Format(DTp1.Value, "yyyy-mm-dd" & " " & Format(DTp2.Value, "HH:mm:ss"))vxData1.QP2 = Format(DTp3.Value, "yyyy-mm-dd" & " " & Format(DTp4.Value, "HH:mm:ss"))vxData1.AutoRefresh = TruevxData1.SQLCommand = " SELECT * FROM FIXALARMS WHERE (FIXALARMS.ALM_NATIVETIMEIN " _& "BETWEEN {ts 'QP1'} AND {ts 'QP2'}) ORDER BY FIXALARMS.ALM_NATIVETIMEIN DESC"vxData1.RefreshvxGrid1.RefreshEnd SubPrivate Sub timerDPT_OnTimeOut(ByVal lTimerId As Long)Me.DTp1 = DateAdd("d", -1, Now)Me.DTp2 = NowMe.DTp3 = NowMe.DTp4 = NowEnd Sub四、设置系统时间:在控制面板中选择区域和语言选项,将系统时间显示方式按图13所示配置。
报警存储与查询例程说明文档北京亚控科技发展有限公司月10年2018.“报警存储与查询”例程说明文档目录1. 功能概述 (1)2. 工程实例 (1)3. 操作步骤 (1)3.1 新建工程 (1)3.2 报警配置 (7)3.3 进入运行系统 (14)3.4 历史报警查询 (15)4. 注意事项 (25)i北京亚控科技发展有限公司.“报警存储与查询”例程说明文档1. 功能概述常规需求:很多工业现场要求将变量的报警信息进行存储,并且可以灵活的进行历史报警的查询、打印。
组态王中的实现方法:组态王支持通过ODBC 接口将数据存储到关系数据库中,并且提供KV ADODBGrid控件对存储的历史报警信息进行条件查询,并可以对查询结果进行打印。
关系数据库可以为Access数据库或者SQLServer数据库。
2. 工程实例我们通过一个简单的工程对报警信息的存储以及历史报警信息的查询进行讲解。
历史报警的查询主要根据日期、报警组为条件进行查询。
报警信息存储的数据库以Access数据库为例进行。
下面就以此为例来演示完成这一现场需求的设置步骤。
3. 操作步骤3.1新建工程3.1.1定义设备新建一个工程,在设备处新建设备,我们在本例中定义一个仿真PLC的设备,设备列表为“PLC-亚控-仿真PLC-串口”,设备名称为“PLC1”。
此仿真PLC可以做为虚拟设备与组态王进行通讯。
仿真PLC主要有如下的寄存器:自动加1寄存器INCREA,自动减1寄存器DECREA,随机寄存器RADOM,常量寄存器STATIC,常量字符串寄存器STRING,CommErr寄存器。
具体的寄存器的使用请参考组态王IO驱动帮助。
3.1.2定义变量在数据词典中新建两个IO变量,变量名称分别为压力、流量,变量类型为IO 实数,连接的设备为前面定义的仿真PLC设备“PLC1”,寄存器分别为INCREA100,DECREA100,数据类型为short,读写属性为“只读”。
历史库数据查询1. VisiconXGrid.vxData(1)从iFIX工作台的菜单栏中单击“插入\OLE对象”。
(2)从“插入对象”对话框的对象类型列表中点击选择“VisiconXGrid.vxData”控件。
单击“确定”按钮插入该控件。
(3)从画面中单击选择控件后,点击右键选择“属性(R) VisiconXData.vxData对象(O)”,打开“VisiconXData.vxData属性”对话框。
(4)在“提供者”选项卡中,单击选择“Microsoft OLE DB Provider for ODBC Drivers”。
(5)在“数据库”选项卡DSN名中,单击选择“FIX Dynamics Historical Data”。
(6)在“记录源”选项卡中,写入SQL命令:SELECT*FROMFIX(7)单击“确定”关闭对话框,完成vxData控件的设置。
注:以上SQL命令的查询结果仅显示当天的数据。
如果需要查询以前的数据,需要指定时间段,如:SELECT*FROMFIXWHERE(FIX.DATETIME > {ts '2011-12-18 08:25:00'})AND(FIX.DATETIME < {ts '2011-12-19 10:54:00'})时间段通过在画面中插入两个DTPicker控件作为起始时间和结束时间,用户可以更改vxData控件的QP值或编写脚本来实现时间赋值。
2. VisiconXGrid.vxGrid(1)从iFIX工作台的菜单栏中单击“插入\OLE对象”。
(2)从“插入对象”对话框的对象类型列表中点击选择“VisiconXGrid.vxGrid”控件。
单击“确定”按钮插入该控件。
注:vxData1控件和vxGrid1控件是iFIX的VX控件,要配合使用。
(3)从画面中单击选择控件后,点击右键选择“动画”,打开“vxGrid1动画”对话框。
IFIX冗余服务器配置IFIX冗余服务器配置 (2)IFIX冗余服务器数据源的切换 (5)历史报警的查询(这里只做出来在客户机上生成的) (7)历史数据时间保存一年。
(12)冗余服务器历史数据同步。
(12)当服务器切换时,客户机的历史趋势仍然能切换。
(12)计算机启动时IFIX自动运行。
(12)IFIX冗余服务器配置首先配置—网络如图所示添加远程节点名,然后点击配置见如图所示。
然后配置-SCADA组态,如图所示,SCADA邻居为SER02然后配置—本地启动,见如图所示,本地节点名为SER01,本地逻辑节点名为IFIX最后更改C:\WINDOWS\system32\drivers\etc目录下的hosts文件用记事本打开更改如下图所示其中圈里面的东西为增加的地方,包含两个冗余服务器,五个客户机。
至此主服务器的配置就完成了。
备服务器配置更改与主服务器类似。
只是需要注意SCADA 邻居为SER01,本地节点名需为SER02。
其他不需要更改。
客户机的配置禁用SCADA支持本地启动需更改为如图所示,本地节点名和本地逻辑节点名均为CL4(以客户机4为例)其他配置和服务器一样,包括网络配置和更高hosts文件。
到这里IFIX冗余服务器的系统配置完成。
IFIX冗余服务器数据源的切换当客户机与主服务器连接丢失时,系统会自动切换到备用的服务器,达到自动切换的效果,果然主服务器这时候恢复正常,不会自动切换回主服务器(可以自动切换不推荐),此时如果需要切换回去,能够在操作站画面上手动的方式切换。
效果图如上图所示,代表此时连接的是SER01的数据源,SER01与SER02都正常。
点击中间的按钮可以实现SER01和SER02的手动切换。
当主服务器故障时,系统会自动切换到SER02,如图所示此时代表SER01与该客户机通信故障,接收的是SER02的数据源。
当主服务器恢复后不会自动切换回(可以自动切换,但是不推荐,因为IFIX如果是服务器与PLC通信故障是不会达到切换的效果的,此时需要手动切换)手动切换方法:新建一个如图所示的画面(参见系统自带画面LocalAsPrimary.GRF、但是在客户机上需更改)更改的部分为原画面中所有的标签后缀_0更改为_1,且脚本的也要进行相应的修改。
iFix监控系统中实现报警记录的存储和查询引言 2#联合泵站供水控制系统主要包括铸机供水控制系统、LF炉及RH炉供水控制系统、4300轧机供水控制系统和平流池控制系统。
采用上位机+PLC网络监控的方式,由上位机、施耐德昆腾系列PLC根据生产工艺组成控制网络系统,监控软件采用Intellution的Ifix。
iFIX提供的图形化的过程信息包括原始数据、计算数据、实时报警、变量字符串、点信息、实时趋势图、历史趋势图和变量状态等大量生产信息,操作人员根据这些信息进行分析和管理,并通过操作界面向数据库写数据,从而实现对现场生产工艺及设备的调节控制。
1 应用背景2#联合泵站铸机供水控制系统采用IFIX软件的报警系统,原设计报警信号只能实时显示,报警和操作记录不能保存,不便于优化操作和故障分析。
系统中由于数据采集量大,运行过程中可能出现大量的报警信息,运行人员不易发现真正的故障点,有时还可能出现忽略、丢失重要报警信息的情况。
因此良好的报警管理系统能及时发现和迅速排除故障,能准确查找故障原因,是系统安全稳定运行的有力保障。
2 解决方法对报警系统进行改造,将开关量变位、模拟量越限等数据变化存入到历史数据库中,然后再通过编写程序查询报警历史。
同时对报警信息进行分类优化,便于运行人员快捷的定位故障,及时采取措施,保证安全稳定生产。
下面就改造中的设计思想和方案进行介绍,并讨论具体实现中的关键技术问题。
2.1 报警记录的存储和查询由于iFIX的“报警历史”功能只能存储实时报警信息,要实现报警信息的存储,需要借助其它工具。
IFIX系统的报警信息可以记录到文本文件中,也可以通过ODBC记录到开放式数据库中,如ACCESS、SQL Server 等。
本次改造选用数据库的方式存储报警记录、运行记录,记录可以长期保存,随时查询并可打印。
2.1.1 IFIX数据库中配置报警信号及报警类型在IFIX 数据库中对需要报警的数据和信号进行配置,设置模拟量的报警值、报警类型,如上限、上上限、下限、下下限、变化率、最小偏差和最大偏差等;设置数字量的报警类型,如变位、闭合和打开等。
实验五报警存储与查询的应用1. 功能概述2. 工程实例3. 操作步骤3.1 新建工程3.2 报警配置3.3 进入运行系统3.4 历史报警查询4. 注意事项1. 功能概述常规需求:很多工业现场要求将变量的报警信息进行存储,并且可以灵活的进行历史报警的查询、打印。
组态王中的实现方法:组态王支持通过ODBC接口将数据存储到关系数据库中,并且提供KVADODBGrid控件对存储的历史报警信息进行条件查询,并可以对查询结果进行打印。
关系数据库可以为Access数据库或者SQLServer数据库。
2. 工程实例我们通过一个简单的工程对报警信息的存储以及历史报警信息的查询进行讲解。
历史报警的查询主要根据日期、报警组为条件进行查询。
报警信息存储的数据库以Access 数据库为例进行。
下面就以此为例来演示完成这一现场需求的设置步骤。
3. 操作步骤3.1新建工程3.1.1定义设备新建一个工程,在设备处新建设备,我们在本例中定义一个仿真PLC的设备,设备列表为“PLC-亚控-仿真PLC-串口”,设备名称为“PLC1”。
此仿真PLC可以做为虚拟设备与组态王进行通讯。
仿真PLC主要有如下的寄存器:自动加1寄存器INCREA,自动减1寄存器DECREA,随机寄存器RADOM,常量寄存器STATIC,常量字符串寄存器STRING,CommErr寄存器。
具体的寄存器的使用请参考组态王IO驱动帮助。
3.1.2定义变量在数据词典中新建两个IO变量,变量名称分别为压力、流量,变量类型为IO实数,连接的设备为前面定义的仿真PLC设备“PLC1”,寄存器分别为INCREA100,DECREA100,数据类型为short,读写属性为“只读”。
这样压力变量就会从0开始自动加1,其变化范围是0到100,流量变量从100开始自动减1,其变化范围是0到100。
变量定义画面如下图一、图二所示:图一定义变量压力图二定义变量流量3.1.3定义报警我们首先定义报警组,在报警组处双击进行报警组对话框,点击“增加”定义两个报警组,分别为“压力报警”、“流量报警”,确认完成报警组的定义,如图三所示:图三报警组定义报警组定义完成后。
第一章IFix3.5报警历史的设置与查询在实际工程中需要对开关量变位,模拟量越限等数据变化存入到历史数据库中,在此称之为报警历史库,然后再通过编写程序查询报警历史。
如何实现报警存入报警历史库呢?本章以ACCESS作为报警历史库,来说明报警历史库的实现过程,并给出实际的报警历史查询代码。
第一节报警历史的设置第一步:创建一个ACCESS类型的数据库,命名为hisdata,路径为:D:\Dynamics\SampleSystem\HistoricalData。
第二步:在ODBC中创建DSN,命名为hisdata。
创建过程如下:1:双击ODBC,出现如图1.1所示对话框。
图1.12:点击添加后,出现如图1.2所示对话框。
图1.23:选择Driver do Microsoft Access (*.mdb)项,点击完成,出现如图1.3所示对话框。
图1.34:输入数据源名hisdata,输入说明“IFIX报警历史库”,然后点击选择,出现如图1.4所示对话框。
图1.45:找到开始创建的Access数据库,点击确定。
出现如图1.5所示的对话框。
图1.56:点击确定完成ODBC配置。
第三步,打开ifix3.5的系统配置在系统配置中选择配置下面的报警,显示如图1.6所示对话框。
图1.6第四步:选择Alarm ODBC Service,并启用,点击修改后显示图1.7对话框。
图1.7第五步:选择报警ODBC服务配置下的配置按钮,显示图1.8对话框。
第六步点击数据库类型右边的浏览按钮,出现图1.9所示对话框。
图1.9选择Access点击确定。
第七步点击图1.8中数据库标识符右边的浏览按钮出现图1.10所示的对话框。
图1.10选择hisdata点击确定。
第八步点击图1.8中的现在创建表,会弹出创建成功的对话框。
点击确定返回图1.7所示的对话框,点击确定,返回图1.6所示的对话框,点击确定,然后点击文件中的保存,保存系统配置。
制丝线IFIX报警改造摘要:我公司制丝车间一区制丝线ifix报警系统的报警模块只有简单的报警功能,对何种原因导致的故障缺乏进一步的信息分析,给操作人员和维护人员故障分析和故障排除造成极大的不便,未充分发挥ifix先进的报警管理功能的优势。
为此,对制丝车间ifx报警系统进行改造,改进措施为:(1)plc子站站点整理和梳理;(2)plc之间的通讯信息改造;(3)阀门故障信息的改造;(4)总线诊断画面改造;(5)恢复ifix的报警一览表功能,并增加报警历史查询的内容。
关键词:plc 网络诊断报警1、系统概述ifix是全球最领先的hmi/scada自动化监控组态软件,提供了生产操作的过程可视化、数据采集和数据监控。
它具备先进的报警管理功能,ifix方便、灵活、可靠、易于扩展的报警系统可报告系统活动及系统潜在的问题,保障系统安全运行。
ifix分布式报警管理提供多种报警管理功能,包括:无限的报警区管理、基于事件的报警、报警优先级、报警过滤功能,以及通过拨号网络的远程报警管理。
另外ifix还可以自动记录操作员操作信息,并作为非关键性报警信息发送,而无需确认。
2、存在问题结合车间使用ifix的多年使用经验,我们发现车间ifix报警系统主要存在以下问题:(1)底层plc与ifix通讯点比较混乱,前期规划不够完善,现行制丝车间监控系统画面与实际设备不能很好的对应起来,需要进行梳理。
(2)同类设备的状态存储方式不够统一,不够规范不便于管理。
(3)设备的故障报警众多,但未按设备所属区域进行分类,经常出现报警信息杂乱等现象不利于操作人员和维护人员的查看判断,有些甚至为误报警。
(4)目前ifix系统上对设备总线上的控制执行元器件(如子站、薄膜阀等)没有较好的监控,无法了解各元器件的运行状况。
(5)一些没有的信息依然存储在上位机服务器中,占用服务器资源,严重影响服务器运行速度。
以上等系统的不足给生产维护工作带来很大的障碍。
为了最大限度地发挥系统和ifix的潜能,及时发现和迅速排除故障,改进一区制丝线的先进的ifix报警管理系统,是保证系统安全稳定运行、保证数据完整性和一致性的有力保障。
IFIX通过Historian实现历史数据归档与查询软件环境:ifixV6.0+Gold_HistorianV7.0+windows7旗舰版X64bit目录1.安装ifix软件 (2)2.安装historian软件 (2)3.安装historian采集器 (4)4.采集器配置-historian collector配置 (5)5.向historian中添加需要归档的变量 (6)6.查看变量是否成功进行历史归档 (7)7.通过ifix组态画面进行历史数据的显示与查询 (8)1.安装ifix软件不做详细说明;2.安装historian软件其它版本安装流程类似,没有截图的步骤,直接就默认就可以了;Historian安装时,勾选accept,点击nextHistorian安装时,选择single server,点击nextHistorian安装时,不用管,点击next直接下一步Historian安装时,填写密码,点击next下一步Historian安装时,选择no,点击next下一步,直到完成安装提示这个时候,点击确定,来完成historian安装3.安装historian采集器没有截图的步骤,直接就默认就可以了;安装historian collector时,勾选accept,点击next下一步安装historian collector时,根据实际需求自己选择,如果只是做一个历史数据的归档与查询功能,只要勾选ifix collector一项就可以了;安装historian collector时,选择存储在historian中,next直到软件安装完成4.采集器配置-historian collector配置先打开ifix项目SCU配置文件,进入到任务配置界面,增加C:\PROGRAM FILES (X86)\GE\IFIX\IHFIXCOLLECTOR.EXE 命令行/Service 并以后台方式启动,具体配置信息见下图,配置完成后保存SCU文件。
iFIX 概述iFIX® 是Proficy 系列软件自动化产品中一个基于Windows 的HMI/SCADA 组件。
iFIX是基于开放的和组件技术的产品,专为在工厂级和商业系统之间提供易于集成和协同工作设计环境。
它的功能结构特性可以减少开发自动化项目的时间,缩短系统升级和维护的时间,与第三方应用程序无缝集成,增强生产力。
iFIX的SCADA 部分提供了监视管理、报警和控制功能。
它能够实现数据的绝对集成和实现真正的分布式网络结构。
iFIX的HMI 部分是监视控制生产过程的窗口。
它提供了开发操作员熟悉的画面所需要的所有工具。
本手册涵盖了以下一些iFIX的基本概念:∙了解有关iFIX结构和功能,请参考系统结构和系统功能等章节∙了解Proficy iFIX WorkSpace,请参考使用Proficy iFIX 工作台章节。
∙了解有关管理节点的知识,请参考管理iFIX 节点章节。
∙如需了解关于电子书的信息,请参阅使用电子书章节。
∙有关iFIX 软件提供的演示系统,请参考使用iFIX演示系统章节。
iFIX 组件iFIX的内部是一个能够提供分布式结构的技术核心。
iFIX 在标准技术(例如,ActiveX、OPC、VBA 和组件对象模型(COM))上构建,它在广域网和Internet 上提供第三方应用程序的简单集成。
iFIX平台可托管许多GE Intelligent Platforms 和第三方应用组件,其中一些如下图中所示。
iFIX 平台iFIX的其中一个重要组件是iFIX 工作台。
这个界面将所有系统组件都组织到一个集成开发环境中(IDE)。
Proficy iFIX 工作台可以存取和操作系统中的所有组件。
Proficy iFIX工作台中包含两个全集成的环境,即配置环境和运行环境。
配置环境中提供了创建漂亮整洁且易于使用和学习的显示画面所必需的所有的图形、文本、数据、动画和图表工具。
运行环境提供了观看这些画面所必需的方法。
历史报警查询1、建立数据库打开windows控制面板里的管理工具见下图双击数据源(ODBC)点击‘添加’按钮选择此驱动输入一个数据源名点击‘创建’按钮创建数据库最后点击‘确定’按钮退出起一个数据库名称数据库存放目录最后点击‘确定’按钮退出目录下已经有了数据库2、配置数据库进入IFIX系统配置画面点击配置菜单下的‘报警(A)’选项把报警ODBC服务置于启动状态双击‘报警ODBC服务’点击‘配置’按钮(1) 选择数据库类型为:Access(2) 数据库标识符,也就是之前我们创建的数据源名称:ALARM (3) 在列配置里选择你要在数据库里记录的内容(4) 在数据库配置表名处起一个名称,再点击‘现在创建表’按钮。
(5)这样数据库就配置好了,我们打开数据库可以看见数据库里有了刚才创建的表,见下图3、 建立画面启动IFIX 进入编辑系统,建立一个新的画面并起名为报警查询。
在新的画面里插入控件,见下图列配置里选择要记录的内容刚创建的表插入时间控件数据连接通道控件属性的名称vxData1数据显示列表控件属性的名称为vxGrid1右键点击控件出现下拉菜单,选择最后一项作为日期的选1作为时间的选2双击此控件,选择连接数据源在进数据库标签选择此驱动选择前面新建的数据源点击‘测试连接’按钮,如果选择正确,则提示测试成功在画面中插入一个‘查询’按钮并建立脚本鼠标点击‘查询’按钮选下拉菜单中的编辑脚本(1)先建立画面是画面初始化的脚本初始化脚本如下;设定结束时间me.dtpEndDate = nowme.dtpEndTime = now设定起始时间me.dtpFromDate = dateadd("d",-1,now) me.dtpFromTime = now查询历史报警脚本如下vxData1.AutoRefresh = True在下拉菜单中选择CFixPicture选项在左边下来菜单中选择初始化Initialize'设定时间格式vxData1.QP1 = Format(dtpFromDate.Value, "yyyy-MM-DDD") & "" & Format(dtpFromTime.Value, "HH:MM:SS")vxData1.QP2 = Format(dtpEndDate.Value, "yyyy-MM-DDD") & "" &Format(dtpEndTime.Value, "HH:MM:SS")'设定查询内容Me.vxData1.SQLCommand = "SELECT * FROM ALARM_FQ " & _"WHERE ALARM_FQ.ALM_NATIVETIMEIN>={ts 'QP1'} and ALARM_FQ.ALM_NATIVETIMEIN>={ts 'QP2'}"vxData1.RefreshvxGrid1.Refresh表格显示,右键vxGrid1控件下拉菜单动画选项:进入高级动画选行为标签第一项打勾最后点击次按钮选对象选择此属性选择画面标签里的vxData1控件确定退出。
关于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后,
项目工具栏文件----工具栏----插入OLE对象
双击选Microsoft date and time picker控件
日期控件-属性-格式:1-dtpShortDate,有效前不打勾。
其它默认, 时间控件-属性-格式:2-dtpTime, 有效前不打勾。
其它默认2.vxData控件(数据管道)
IFIX4.0工具箱底部vxData图标
右键-属性vxData对象----PROPERTIES VISICONXDATA VXDATA对象
提供者:Microsoft OLE DB Provider for ODBC Drivers
数据库:DNS名:Myalarm,用户名密码选项均空---测试连接-测试连接成功-确定
记录源:命令类型:SQL命令
应用-确定
3.vxGrid控件(显示)
工具箱底部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(, "yyyy-MM-DD") & " " & Format(, "HH:MM:SS") 'vxData1.QP2 = Format(, "yyyy-MM-DD") & " " & Format(, "HH:MM:SS") End Sub
2. 查询按扭CmbSearch代码如下:
'开始查询
Private Sub CmbSearch_Click()
'连接自动刷新
= True
'Format函数用于设定时间格式
vxData1.QP1 = Format(, "yyyy-MM-DD") & " " & Format(, "HH:MM:SS") vxData1.QP2 = Format(, "yyyy-MM-DD") & " " & Format(, "HH:MM:SS")
'设定查询内容
'从数据库中查询符合时间段的数据
= "SELECT *FROM FIXALARMS WHERE" & _
"(FIXALARMS.ALM_NATIVETIMEIN >= {ts 'QP1'})AND(FIXALARMS.ALM_NATIVETI MELAST <= {ts 'QP2'})"
'刷新数据
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(, "yyyy-MM-DD") & " " & Format(, "HH:MM:SS") 'vxData1.QP2 = Format(, "yyyy-MM-DD") & " " & Format(, "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()
'连接自动刷新
= True
'Format函数用于设定时间格式
vxData1.QP1 = Format(, "yyyy-MM-DD") & " " & Format(, "HH:MM:SS") vxData1.QP2 = Format(, "yyyy-MM-DD") & " " & Format(, "HH:MM:SS")
'设定查询内容
'从数据库中查询符合时间段的数据
= "SELECT *FROM FIXALARMS WHERE" & _
"(FIXALARMS.ALM_NATIVETIMEIN >= {ts 'QP1'})AND(FIXALARMS.ALM_NATIVETI MELAST <= {ts 'QP2'})"
'刷新数据
End Sub
以上工作结束后保存,退出。
重新启动IFIX4.0,运行后即可使用。