基于IFix与SQL Server的操作记录查询功能实现
2019-10-22查剑林
查剑林
ZHA Jian-lin1,2
(1.徐州工业职业技术学院 机电工程学院,徐州 221140;2.中国矿业大学 机电工程学院,221116)
0 引言
随着工业自动化水平的提高,各煤矿开始逐步实现由早期的单机自动化系统过度到全面集控综合自动化系统[1],在煤矿综合自动化集控系统运行过程中,对于设备的启停原因的监控尤为重要。以皮带集控系统为例,对于皮带的每次停机原因、停机时间、操作人员等参数往往作为事故原因判断的重要信息。为了在事故发生后能够准确定位事故根源,操作记录查询系统应该准确记录每台操作员站发出的操作指令信息和下位机反馈的操作反馈结果[2]。
1 模块的需求分析
在IFix组态软件中,有着众多的专家与向导,如画面专家、报警专家等,但并没有一种明确适用于操作记录的查询与报警工具。在这种情况下,利用IFix软件自带的Microsoft VBA开发环境进行自主编程可以完成许多额外的工作,如动画的设计、调度的实现等。
自动化控制系统中要求对现场设备的启停状态进行监控,同时需要实时监控设备的运行状态、非正常停机原因等。通过使用IFix自带的历史数据库可以实现小型系统的实时监控,一旦系统过大,历史数据库的文件增幅非常大,可实行性较低。
本文通过IFix自带的VBA开发环境,开发一个自定义的操作记录和报警模块,工具以VB6.0的函数体展现,该模块通过联合IFix前台、SQL Server以及IFix后台调度能够有效记录操作员的每次操作记录并通过语音报警的形式在集控室播报,一旦出现误操作,操作员能够及时反映并撤销误操作。通过分析煤矿皮带的控制需求,该模块应该具备以下功能:
1)查询与文件存储功能
当管理人员或事故分析人员需要分析事故原因时,可根据查询规则快速查询操作记录并保存到文件,便于分析及文件转储。
2)报警功能
集控系统运行过程中,如果操作员进行皮带或给煤机的启停操作,则集控室内音箱发出语音报警,并在数据库中插入操作记录。
同时该模块需要反馈给分析人员的条目如表1所示。
2 模块的设计方法
在需求分析完成后,通过IFix组态软件内嵌的VBA子程序创建全局函数体,该函数能够被所有的画面及调度调用,调用完成后在SQL数据库中插入操作记录并在调度后台发布语音报警,建立操作记录查询界面,可通过该界面查询操作记录。
表1 操作记录查询条目
2.1 建立数据查询表
利用SQL Server建立查询数据库,将其命名为HYMK,新建表名为PD_KT,意为皮带开停记录。新建表列如图1所示。
图1 数据表PD_KT的列名
皮带的启停原因、启停用户以及运行时间等信息均插入这张表中。
2.2 建立调度插入记录到数据库
以刘二矿四八二部为例,建立基于事件项的调度,设置表达式为皮带开停反馈点,事件类型为变化时触发。四八二部故障检测类型较多,以皮带过流故障为例设计脚本。刘二矿的IFix节点名称为PDSERVER,标签命名以HYMK作为前缀,其功能紧随其后,48二部作为本次项目的第六条皮带命名为PD6。
当皮带的运行反馈点发生状态变化时,调度时间触发,如果皮带从停止状态切换到启动状态,则记录启动时间及操作人员。如果因故障从启动状态切换到停止状态,则记录停止时间和故障原因。如果是正常停止,则记录停止时间和操作人员。
2.3 编写VB函数读取数据库
这一部分主要实现数据库的连接与数据读取
2.4 模块的使用方法
由于操作记录通过IFix的调度写入了数据库中,所有的操作记录已经进行了保存,操作人员的使用可通过IFix的前台界面进行操作,设计画面如图2所示。通过点击查询按钮即可实现开停记录的查询。
图2 开停记录查询界面
界面中使用到DTpicker控件、Vxdata和VxGrid控件。
DTpicker控件作为VB内嵌控件能够让用户选择格式化的日期字段,通过两个DTpicker控件即可实现时间段的选择。
VxData和VxGrid控件则分别作为IFix中数据源的读取与表格化显示将数据库中读取的数据进行格式化并显示到前台。具体实现方法如下:
3 结语
对操作记录和报警系统的功能需求进行了分析,给出了系统的设计与实现方法。通过恒源煤电刘二矿的实际应用表明,该系统能够准确、详实、完整的记录操作员的操作信息,为事故发生后准确找到事故根源,判断事故原因提供了有力依据。