KJ215煤炭产量监测系统双机热备设计

时间:2022-10-12 06:07:24

KJ215煤炭产量监测系统双机热备设计

摘 要:矿用系统对可靠性要求比较高,国家标准里面明文要求有双机热备功能,为此开发了该套软件。该软件的开发工具VC++6.0、SQL Server2005,使用Socket建立通讯,及时了解对方电脑上的数据采集软件运行的状态,并决定是否进行切换操作,使用触发器,同步数据库的记录。实验表明,该软件运行状况良好,基本达到预期目的。

关键词:双机热备;Socket;触发器

1 引言

图1是双机热备软件主界面,具有通讯功能、启动第三方程序、数据库同步功能。为实现自动切换,采用Socket通讯,每隔10s交换一次数据,以了解数据采集软件在对方电脑上的运行状态,并据此决定启动或者关闭数据采集程序。数据库的同步可以采用订阅方式,这里不适合,主要是因为订阅方式会添加其他键到数据库,应用程序跑不起来,加上该系统插入记录、修改数据比较频繁,采用触发器方式合适。

2 基本通讯的建立与自动切换

这里只讨论启动一个第三方软件,多个启动软件处理方法类似,编程思想:

(1)通讯正常情况下,第一次连接成功后,主机启动数据采集软件,同时启动定时器1,定时器1将定时检查数据采集软件在主机上的运行状况,并把运行状况发给备机。如果该软件正在主机运行,则不操作;否则备机启动数据采集软件。备机切换后,也启动一个定时器,定时检查数据采集软件在备机上的运行状况,并把运行状况发给主机。如果备机的数据采集软件不运行,主机启动数据采集软件。

(2)不正常情况下,主备机不能交换数据,网线连接断开、其中一台电脑死机、人为关掉一方软件都属于这种情况。这种情况下,主机检查数据采集软件,没有则启动,同时启动定时器2,定时检查数据采集软件在主机上的运行状态,如果关掉,自动打开;备机检查数据采集软件,没有则启动,同时启动定时器1,定时时间到,发一条信息给主机,如果没有回音,检查数据采集软件,关闭的话启动,如果有回音,转为通讯正常情况,做相应处理。

3 触发器同步数据库

编程思想:

(1)通讯正常情况下,如果主机运行数据采集软件,把触发器加到主机的数据库,同时删掉备机的触发器;如果备机运行数据采集软件,把触发器加到备机的数据库,同时删除主机的触发器;

(2)如果通信不正常或者软件退出运行,删除触发器。

使用触发器同步数据库,需要相应设置MSDTC;MSDTC依赖于RPC,RPC使用的端口是135,要打开135端口;启动DTC服务;启动1433端口;关闭防火墙;链接服务器。

数据采集软件对数据库操作包括插入新记录、修改原记录,假设对方计算机名PC-201004191511,数据库pubs,表employee,列名job_lvl,则

(1)针对插入新纪录操作,相应触发器

Create trigger [dbo].[tr_insert_employee] on [dbo].[employee]

for insert

as

set xact_abort on

insert [PC-201004191511].pubs.dbo. employee (emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date)

select emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date from inserted

go

(2)针对修改列job_lvl,相应触发器

Create trigger [dbo].[tr_update_employee_job_lvl] on [dbo].[employee]

for update

as

set xact_abort on

if update(job_lvl)

update [PC-201004191511].pubs.dbo.employee

set [job_lvl] =i.[job_lvl] from [PC-201004191511].pubs.dbo.employee b, inserted i

where b.emp_id=i.emp_id

go

参考文献

[1] 毛应爽,赵慧玲,孟宪颖,SQL Server 2005 程序设计与管理基础同步实训教程[M],北京:清华大学出版社,2009. 12.

[2] BL DataMirror双机热备软件,南京北路科技.

[3] KJ90瓦斯安全监控双机热备软件,煤炭研究总院重庆研究院(田兵).

[4] 包建军,霍振龙,樊菁,可靠实现煤矿双机热备系统的方法[J],工矿自动化,2010.10.

[5] SOCKET API通讯程序源代码..

作者简介

汤其三,男,1986年生,江苏科技大学09级硕士研究生,主要研究方向:单片机、DSP、FPGA软硬件设计开发,波形数据采集与大屏幕液晶显示,VC++可视化编程,SQL Server数据库操作,串口通信等。

上一篇:聚合物注入过程中粘度降解损失分析 下一篇:油田常规抽油机机型特点及节能降耗措施分析