煤矿安全生产监测系统的研究

更新时间:2023-05-16 05:49:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

煤矿安全生产监测系统的研究

赵 晓

(陕西科技大学电气与信息工程学院,陕西咸阳,712081)

摘 要: 本文提出了煤矿安全生产监测系统的总体结构图和实现方法,重点讨论了系统开发中涉及到的数据传输技术、链表的使用等主要技术。本系统的开发和使用将大大改善煤矿安全生产中的不安全因素。

关键词: 煤矿安全生产,监测,数据传输,链表

Investigation about the Safety Productions of Coal Mine Monitor System

(Shaan Xi university of Science & Technology Xian Yang 712081)

Abstract: This paper put forward a total structure diagram and a method about safety productions of coal mine monitor system, and then, we discussed some important technology that involved in the development of system, such as data transmission, the usage of chain form technique and so on. The development and usage of this system will improve the insecurity factor of safety productions of coal mine.

Key words: the safety productions of coal mine, monitor, data transmission, chain form

中图分类号:TP39

1引言

煤矿安全生产是指通过改善劳动环境,减少生产中的不安全因素,防止伤亡事故的发生,从而确保煤矿生产的顺利进行。在安全生产中,安全是前提;生产是目的,是维系安全的物质基础。但是二者之间仍存在一定的矛盾,从某种意义上讲,在投入资源一定的情况下,投入安全中的资源增加,意味着投入生产中的资源减少;另外,许多企业由于缺乏长远的战略目标。为了追求短期的高效益,往往会以牺牲人员或设备的安全为代价来换取暂时的利润。而且,煤矿生产本身具有特殊的作业环境,加上地质和环境的复杂性,致使煤矿生产具有更多的潜在的不安全因素。在日常的生产过程中,由于安全管理不善而引发各类安全事故层出不穷。从而影响了煤矿的生产经营秩序,企业总体经济效益不断下降。由此可见,煤矿安全管理己成为煤矿生产经营的“瓶颈”,煤矿安全生产监控系统正是基于上述背景条件下产生的。该系统是以煤矿企业预警管理理论为指导,针对煤矿企业生产中的不安全因素提出的,是一种新型的、具有创造意义的研究课题。它通过及时反馈安全事故信息,提出一种能够监测、预控安全事故的煤矿安全生产监控系统。旨在为煤矿安全生产管理提供一种具有实际运用价值的安全管理新模式。

2系统的总体设计

2.1 系统结构概述

煤矿安全监控系统采用以B/S(Browse/Server)与C/S(Client/Server)相结合的方式来架构整个系统。B/S方式用于查询实时数据和历史数据,C/S方式用于实现各矿动态图形的上传和维护管理。

在设计上,本系统采用三层结构。三层结构的特点是在传统两层结构的基础上加入一个业务逻辑层。它将C/S体系结构中原本运行于客户端的应用程序移到了中间件层,客户端只负责显示与用户交互的界面及少量的数据处理(如数据合法性检验)工作。客户端将收集到的信息(请求)提交给中间层服务器,中间层服务器进行相应的业务处理(包括对数据库的操作),再将处理结果反馈给客户机。这样减轻了中心服务器的负担,提高了整个系统的安全性。

1作者简介: 赵晓(1978-),女,陕西西安人,讲师,工学硕士,主要研究方向:软件工程。 1

因为B/S结构的无连接性,实时数据以及曲线无法及时更新到监控客户端,所以本系统采用了C/S结构来解决这个问题。同时为了兼容B/S结构的安装部署方便、客户端零维护的优点,系统采用了Web部署来解决这个问题。首先监控客户端程序部署在中心服务器上,当客户端通过权限验证后,就可以请求执行客户端监控程序(一个可执行应用程序文件)。Web服务器收到请求后,首先检查服务器中的客户端监控程序有无更新,然后将该应用程序发送至客户端进行执行。

此种方案所具有的优点:

(a)客户端部署方便:客户端无需安装,只需通过Web页面请求执行监控程序即可,Web服务器会自动将客户端监控程序运行所需的运行库发送至客户端进行执行,高效而且方便。

(b)客户端零维护:客户端的应用程序是通过请求Web服务器来执行,服务端在得到请求后首先进行版本的更新检查以及各种运行时更新检查,然后发送至客户端进行执行。客户端无需进行维护。

(c)安全性高:客户端应用程序与服务端程序通信的协议是自行设计且进行了信道加密,确保通信安全,数据不被窃取、篡改。保证整个系统的安全性不受威胁。

(d)与B/S架构整合统一:客户端应用程序是通过Web浏览器来请求执行的,可与B/S架构做到完美的结合。整体的操作风格趋于一致。

2.2 系统总体设计结构图

煤矿安全监控系统的总体结构图如下图2-1所示:

图2-1系统总体结构图

(a)服务端程序:整个软件的核心,是一个服务端上的应用程序,由系统管理员进行管理。

(b)浏览器:主要是指IE浏览器,它能通过Internet浏览页面进行一些基本的历史数据的查询。

(c)安全监控客户端:它是一个智能客户端,使用了.NET非接触式(no-touch deployment)部署的特性。它就如同是部署在网站上的WinForms的应用程序。用户可以直接通过网络见到各矿点的数据的动态变化。

(d)监控程序1,监控程序2, :是各个矿点发送数据的应用程序,我们用一个模拟程序来表示它们。

(e)数据库服务器:SQL Server2000数据库服务器是保存了各矿点的数据。

2.3 服务器程序的详细介绍

在图2-1中,体现出服务程序是整个系统的核心,各矿点的数据是通过它来中转的。 各个矿点通过TCP传送数据时,服务程序为各矿点开辟了一个实时连接线程,进行实时数据的传输。然后将数据排入缓冲池,缓冲池的设计防止了数据因为同时的发送,而造成数据接收时的冲突,解决数据收发的速率匹配问题,防止从监控程序接收的数据直接发送至客户端而带来的延时及数据丢失。

数据通过两路前行,一路是数据存入数据库,这是一个后台的操作。另一路是数据流向安全客户端,同样安全监控客户端也与服务程序的客户端连接及管理开辟连接线程,通过TCP接收数据。

从总体上来说,安全监控客户端和各矿点的监控程序与服务程序采用了C/S的结构,这种结构不但能够保证数据传输的安全性,而且能够保证数据的实时性。

3 功能实现中的主要技术

3.1 数据传输代码的实现

服务端的监控部分和客户端的访问部分都用到了数据的传输,有两个关于数据传输的基类,分别是连接类和连接管理类,这两个基类分别用了Microsoft的Socket类和TcpListener 类。

(1)Socket类

Socket类为网络通信提供了一套丰富的方法和属性。Socket类允许您使用ProtocolType枚举中所列出的任何一种协议执行异步和同步数据传输。Socket类遵循异步方法的.NET Framework命名模式;例如,同步Receive方法对应于异步BeginReceive和EndReceive方法。

如果当前使用的是面向连接的协议(如TCP),则服务器可以使用Listen方法侦听连接。Accept方法处理任何传入的连接请求,并返回可用于与远程主机进行数据通信的Socket。可以使用此返回的Socket来调用Send或Receive方法。如果要指定本地IP地址和端口号,在调用Listen方法之前先调用Bind方法。如果不调用Bind,基础服务提供程序将为您分配这些值。此后,可以使用LocalEndPoint属性来标识分配给Socket的IP地址和端口号。如果想连接到侦听主机,调用Connect方法。若要进行数据通信,调用Send或Receive 方法。

当数据发送和数据接收完成之后,可使用Shutdown方法来禁用Socket。在调用Shutdown之后,可调用Close方法来释放与Socket关联的所有资源。

如果编写较简单的应用程序,而且只需同步数据传输,则可以考虑使用TcpClient、TcpListener和UdpClient。这些类为Socket通信提供了更简单、对用户更友好的接口。

代码举例:

public WinSocket(ConnManage inManage,Socket inSocket)//连接类构造函数

{

Manage=inManage;

conn=inSocket;

ThreadStart ts=new ThreadStart(ReadData);

clientThread=new Thread(ts);

="Connected";

clientThread.Start();

}

(2)TcpListener类

TcpListener类提供一些简单方法,用于在阻塞同步模式下侦听和接受传入连接请求。使用TcpClient或Socket来连接TcpListener,使用IPEndPoint、本地IP地址及端口号或者

仅使用端口号,来创建TcpListener。可以将本地IP地址指定为Any,将本地端口号指定为0(希望基础服务提供程序分配这些值)。如果选择这样做,使用LocalEndpoint来标识已指定的信息。

Start方法用来开始侦听传入的连接请求。Start将对传入连接进行排队,直至您调用Stop方法或它已经完成MaxConnections排队为止。可使用AcceptSocket或AcceptTcpClient从传入连接请求队列提取连接。这两种方法将阻塞。如果要避免阻塞,可首先使用Pending方法来确定队列中是否有可用的连接请求。

调用Stop方法来关闭TcpListener。Stop方法不会关闭任何已接受的连接。需要用户负责分别关闭这些连接。

代码举例:

public ConnManage(int port)//连接管理类构造函数

{

} this.port=port; try { acceptsocket=new TcpListener(port); acceptsocket.Start();//监听 ThreadStart serverThreadStart=new ThreadStart(Listening);//建立线程 serverthread=new Thread(serverThreadStart); ="Manager"; serverthread.Start(); } catch(SocketException) { throw; }

3.2 程序所用链表的代码实现

在程序中我们经常会用到链表这样一种数据结构。很幸运Microsoft为用户提供了很好的数组类ArrayLIst,用起来很方便,如同在用一个链表。

ArrayList类提供在大多数Collections类中提供但不在Array类中提供的一些功能。例如: Array的容量是固定的,而ArrayList的容量是根据需要自动扩展的。如果更改了

ArrayList.Capacity属性的值,则自动进行内存重新分配和元素复制。ArrayList提供添加、插入或移除某一范围元素的方法。在Array中,您只能一次获取或设置一个元素的值。ArrayList提供将只读和固定大小包装返回到集合的方法。而Array不提供。另一方面,Array提供ArrayList所不具有的某些灵活性。例如:可以设置Array的下限,但ArrayList的下限始终为零。Array可以具有多个维度,而ArrayList始终只是一维的。特定类型(不包括Object)的Array的性能比ArrayList好,这是因为ArrayList的元素属于Object类型,所以在存储或检索值类型时通常发生装箱和取消装箱。要求一个数组的大多数情况也可以代之以使用ArrayList。它更易于使用,并且通常具有与Object类型的数组类似的性能。

代码举例:

protected ArrayList conlink=ArrayList.Synchronized(new ArrayList());//成员“连接类链表”是一个链表对象

public int GetCount()//返回连接对象的个数

{

return conlink.Count;

}

public virtual void OnCloseConn(WinSocket inConn)//断开连接

{

DelConn(inConn);

}

protected void AddConn(WinSocket inConn)//加入一个连接对象

{

conlink.Add(inConn);

}

protected void DelConn(WinSocket inConn)//删除一个连接对象

{

Monitor.Enter(conlink);//同步锁

conlink.Remove(inConn);//移除连接对象

Monitor.Exit(conlink);

}

3.3 煤矿安全监测系统的主界面

煤矿安全监测系统的主界面如图3-1所示。

图3-1 主界面设计

a) 菜单栏:

菜单栏拥有系统、查询、视图、帮助四个大栏目。在系统栏中包括了一些系统级的操作,包括:矿场帐号管理、超级管理员密码修改、报表打印等操作。查询栏中主要是历史纪录的查询。视图的作用是当矿场属性、历史报警记录关闭时,可以在里面选择重新打开。

b) 显示框:

显示框的根代表的是矿务总局,也就是系统管理员所在的单位。当矿场连上矿务局这个服务端后,就会在显示框中显示出矿场的名字,以及这个矿厂所拥有的测点。

c) 显示测点信息栏:

在显示框中当有矿场登陆时,系统管理员可以在显示框中单击那个矿场,在显示测点信息栏中就可以看到矿场测点的动态变动值和相关的测点信息。

d) 历史报警记录栏:

在历史报警记录栏中记录了最近所有矿场的超限记录,方便了系统管理员对各矿场的超限值的及时掌控。

e) 矿场属性栏:

在显示框中当有矿场登陆时,系统管理员可以在显示框中单击那个矿场,就可以在矿场属性栏中看到矿场的具体信息。

4总结

本系统现已投入使用,各煤矿企业将实现井上下探测有毒、有害气体浓度的实时监测警报,井上下主要设备运行状态监控,采掘动态位置显示,隐患整改督察,调度指挥,故障、事故调查分析“黑匣子”功能;各市、县及煤矿集团公司将实现对各煤矿安全生产重要信息实时在线监管,对各煤矿下达警告提示、督察指令和工作指示功能,各煤炭管理部门、安全生产监督管理部门、驻地煤矿安全监察办事处(站)之间可交换信息,进行安全调度和资料查询及传输:省级监控中心主要对重点煤矿实行在线督察,对市、县两级安全生产监督管理部门、煤炭管理部门、煤矿安全监察办事处、煤矿集团公司下达工作指令,进行安全调度、信息和资料查询及传输,与省级联合执法部门交流信息,向省政府、国家局报送信息,并接受其网上指令。

参 考 文 献

[1]Simon Robinson, Christian Nagel.C#高级编程(第三版)[M].北京:清华大学出版社,2004.

[2]Chris Sells. Windows Forms程序设计[M]. 北京:清华大学出版社,2004.

[3]李律松,陈少刚,沈刚等. Visual C#数据库高级编程[M]. 北京:清华大学出版社,2005. [4]林锐. 软件工程思想[M]. 北京:人民邮电出版社,2004.

[5]李琨. 煤矿瓦斯综合监控系统[J].计算机科学,2004,31(9):358-359

[6]Andrew S. Tanenbaum . 计算机网络(第三版,熊桂喜等译)[M]. 清华大学出版社. 1998. [7]陈宝智,王金波. 安全管理[M].天津大学出版社.1999.

本文来源:https://www.bwwdw.com/article/uqc4.html

Top