通过SQL Server数据库查询ifix历史报警信息(上)
IFIX组态软件中提供报警一览控件,但是只能作为DCS系统中实时报警信息的显示,不能做到历史报警的查询功能,在网上笔者也查了方法,毫不避讳的说,都是垃圾,下面将结合实际项目经验,分享查询ifix历史报警的一种方法,主体思路是通过配置ifix组态软件,将系统报警写入到SQL Server数据库中,然后通过VBA脚本对数据中存放的报警信息进行查询。
软件操作环境:ifixV6.0+SQL Server2014+windows7旗舰版64BIT;
安装ifix6.0软件后,安装sqlserver2014,需要注意安装SQL时,有一步是设置秘密,用户默认是sa,密码需要记住,后面要用,其它步骤不做详述;
1. 新建数据库,用于存放Iifix的报警信息
具体步骤:打开SQL Server 2014,右键数据库,新建数据库,此处我的数据库名字命名为:BJCS
2. 配置系统ODBC
由于ifix只能识别32位的数据源通讯驱动,所以我们千万不可以通过控制面板-----管理工具-----数据源方式进行系统ODBC配置,尤其是win7系统,控制面板中的ODBC默认是64位的,如果是win10系统,是可以通过控制面板进入的,因为它已经直接区分了32位还是64位,选中32的数据源配置即可,如下图:
Win7系统配置系统ODBC正确的方法如下:
按照路径C盘-----windows-----syswow64
找到odbcad32.exe运行,进入到32位ODBC配置;
选中系统DSN,点击添加按钮,选中SQL Server,点击完成;
设置名称和服务器项,我的名称为alm32xt,服务器选中local,下一步;
参照上图进行配置,登录ID和密码,是你在安装SQLServer2014时,自己设置的内容,点击下一步;
勾选“更改默认的数据库”,下拉菜单中,选中我们第一步建立的SQL数据库:BJCS,点击下一步;
点击完成后,在弹出画面中点击测试数据源,如下图,测试成功,关闭保存界面完成系统ODBC配置;
3. 配置IFIX报警ODBC服务
具体操作:
打开ifix项目SCU配置文件
配置-----报警-----启用报警ODBC服务
选中报警ODBC服务,点击修改按钮,再点击配置按钮,进入到ifix ODBC报警服务配置界面;
数据库类型选择SQL Server;
用户名密码为安装SQL Server2014时设置的用户名密码;
数据标识符,选中我们在配置系统DSN时命名的标识alm32xt
勾选“如果找不到则在运行时创建表”;
列配置中根据实际需要选中需要的报警中要包含的信息;
至此就已经完成了IFIX软件的报警ODBC服务配置,点击确定,保存SCU配置文件,退出。
4. 查看ifix是否将报警信息存储在了建立的数据库中
将ifix软件切换至运行状态,在系统中触发报警,打开sql server中我们建立的数据库BJCS,找到子项表,找到子项DBO.FIXALARMS,右键选择“选择前1000行”,可以看到ifix已经将报警信息保存在我们新建的数据库中;
这个DBO.FIXALARMS就是ifix软件自动创建的表,如果没有找到此表,需要打开SCU配置文件,返回到ifixODBC报警服务配置界面,在数据库配置中点击现在创建表按钮,如下图
至此我们就已经完成了,将ifix的报警信息存储在SQL Server数据库中的所有配置,通过VBA脚本开发对数据中的报警信息进行查询,参看下一篇文档!