vlambda博客
学习文章列表

通过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的数据源配置即可,如下图:

通过SQL Server数据库查询ifix历史报警信息(上)

Win7系统配置系统ODBC正确的方法如下:

按照路径C-----windows-----syswow64

找到odbcad32.exe运行,进入到32ODBC配置;

通过SQL Server数据库查询ifix历史报警信息(上)

选中系统DSN,点击添加按钮,选中SQL Server,点击完成;

通过SQL Server数据库查询ifix历史报警信息(上)

通过SQL Server数据库查询ifix历史报警信息(上)

设置名称和服务器项,我的名称为alm32xt,服务器选中local,下一步;

通过SQL Server数据库查询ifix历史报警信息(上)

参照上图进行配置,登录ID和密码,是你在安装SQLServer2014时,自己设置的内容,点击下一步;

通过SQL Server数据库查询ifix历史报警信息(上)

勾选“更改默认的数据库”,下拉菜单中,选中我们第一步建立的SQL数据库:BJCS,点击下一步;

通过SQL Server数据库查询ifix历史报警信息(上)

点击完成后,在弹出画面中点击测试数据源,如下图,测试成功,关闭保存界面完成系统ODBC配置;

通过SQL Server数据库查询ifix历史报警信息(上)

3.      配置IFIX报警ODBC服务

具体操作:

打开ifix项目SCU配置文件

配置-----报警-----启用报警ODBC服务

通过SQL Server数据库查询ifix历史报警信息(上)

选中报警ODBC服务,点击修改按钮,再点击配置按钮,进入到ifix ODBC报警服务配置界面;

数据库类型选择SQL Server

用户名密码为安装SQL Server2014时设置的用户名密码;

数据标识符,选中我们在配置系统DSN时命名的标识alm32xt

勾选如果找不到则在运行时创建表

列配置中根据实际需要选中需要的报警中要包含的信息;

通过SQL Server数据库查询ifix历史报警信息(上)

至此就已经完成了IFIX软件的报警ODBC服务配置,点击确定,保存SCU配置文件,退出。

4.      查看ifix是否将报警信息存储在了建立的数据库中

ifix软件切换至运行状态,在系统中触发报警,打开sql server中我们建立的数据库BJCS,找到子项表,找到子项DBO.FIXALARMS,右键选择“选择前1000行”,可以看到ifix已经将报警信息保存在我们新建的数据库中;


这个DBO.FIXALARMS就是ifix软件自动创建的表,如果没有找到此表,需要打开SCU配置文件,返回到ifixODBC报警服务配置界面,在数据库配置中点击现在创建表按钮,如下图

至此我们就已经完成了,将ifix的报警信息存储在SQL Server数据库中的所有配置,通过VBA脚本开发对数据中的报警信息进行查询,参看下一篇文档!