【摘要】本文提出了煤矿安全生产监测系统的总体结构图和实现方法,重点讨论了系统开发中涉及到的数据传输技术、链表的使用等主要技术。本系统的开发和使用将大大改善煤矿安全生产中的不安全因素。
【关键词】煤矿安全生产 监测 数据传输 链表
一、引言
煤矿安全生产是指通过改善劳动环境,减少生产中的不安全因素,防止伤亡事故的发生,从而确保煤矿生产的顺利进行。在安全生产中,安全是前提;生产是目的,是维系安全的物质基础。但是二者之间仍存在一定的矛盾,从某种意义上讲,在投入资源一定的情况下,投入安全中的资源增加,意味着投入生产中的资源减少;另外,许多企业由于缺乏长远的战略目标。为了追求短期的高效益,往往会以牺牲人员或设备的安全为代价来换取暂时的利润。而且,煤矿生产本身具有特殊的作业环境,加上地质和环境的复杂性,致使煤矿生产具有更多的潜在的不安全因素。在日常的生产过程中,由于安全管理不善而引发各类安全事故层出不穷。从而影响了煤矿的生产经营秩序,企业总体经济效益不断下降。
由此可见,煤矿安全管理己成为煤矿生产经营的“瓶颈”,煤矿安全生产监控系统正是基于上述背景条件下产生的。该系统是以煤矿企业预警管理理论为指导,针对煤矿企业生产中的不安全因素提出的,是一种新型的、具有创造意义的研究课题。它通过及时反馈安全事故信息,提出一种能够监测、预控安全事故的煤矿安全生产监控系统。旨在为煤矿安全生产管理提供一种具有实际运用价值的安全管理新模式。
二、系统的总体设计
1.系统结构概述
煤矿安全监控系统采用以b/s(browse/server)与c/s(client/server)相结合的方式来架构整个系统。s方式用于查询实时数据和历史数据,c/s方式用于实现各矿动态图形的上传和维护管理。
在设计上,本系统采用三层结构。三层结构的特点是在传统两层结构的基础上加入一个业务逻辑层。它将c/s体系结构中原本运行于客户端的应用程序移到了中间件层,客户端只负责显示与用户交互的界面及少量的数据处理(如数据合法性检验)工作。客户端将收集到的信息(请求)提交给中间层服务器,中间层服务器进行相应的业务处理(包括对数据库的操作),再将处理结果反馈给客户机。这样减轻了中心服务器的负担,提高了整个系统的安全性。
2.系统总体设计结构图
煤矿安全监控系统的总体结构图如下图2-1所示:
3.服务器程序的详细介绍
在图2-1中,体现出服务程序是整个系统的核心,各矿点的数据是通过它来中转的。
各个矿点通过tcp传送数据时,服务程序为各矿点开辟了一个实时连接线程,进行实时数据的传输。然后将数据排入缓冲池,缓冲池的设计防止了数据因为同时的发送,而造成数据接收时的冲突,解决数据收发的速率匹配问题,防止从监控程序接收的数据直接发送至客户端而带来的延时及数据丢失。
数据通过两路前行,一路是数据存入数据库,这是一个后台的操作。另一路是数据流向安全客户端,同样安全监控客户端也与服务程序的客户端连接及管理开辟连接线程,通过tcp接收数据。
从总体上来说,安全监控客户端和各矿点的监控程序与服务程序采用了c/s的结构,这种结构不但能够保证数据传输的安全性,而且能够保证数据的实时性。
三、功能实现中的主要技术
1.数据传输代码的实现
服务端的监控部分和客户端的访问部分都用到了数据的传输,有两个关于数据传输的基类,分别是连接类和连接管理类,这两个基类分别用了microsoft的socket类和tcplistener类。
(1)socket类
socket类为网络通信提供了一套丰富的方法和属性。socket类允许您使用protocoltype枚举中所列出的任何一种协议执行异步和同步数据传输。socket类遵循异步方法的.net framework命名模式;例如,同步receive方法对应于异步beginreceive和endreceive方法。
(2)tcplistener类
tcplistener类提供一些简单方法,用于在阻塞同步模式下侦听和接受传入连接请求。使用tcpclient或socket来连接tcplistener,使用ipendpoint、本地ip地址及端口号或者仅使用端口号,来创建tcplistener。可以将本地ip地址指定为any,将本地端口号指定为0(希望基础服务提供程序分配这些值)。如果选择这样做,使用localendpoint来标识已指定的信息。
start方法用来开始侦听传入的连接请求。start将对传入连接进行排队,直至您调用stop方法或它已经完成maxconnections排队为止。可使用acceptsocket或accepttcpclient从传入连接请求队列提取连接。这两种方法将阻塞。如果要避免阻塞,可首先使用pending方法来确定队列中是否有可用的连接请求。
调用stop方法来关闭tcplistener。stop方法不会关闭任何已接受的连接。需要用户负责分别关闭这些连接。
2. 程序所用链表的代码实现
在程序中我们经常会用到链表这样一种数据结构。很幸运microsoft为用户提供了很好的数组类arraylist,用起来很方便,如同在用一个链表。
arraylist类提供在大多数collections类中提供但不在array类中提供的一些功能。例如:
array的容量是固定的,而arraylist的容量是根据需要自动扩展的。如果更改了ty属性的值,则自动进行内存重新分配和元素复制。arraylist提供添加、插入或移除某一范围元素的方法。在array中,您只能一次获取或设置一个元素的值。arraylist提供将只读和固定大小包装返回到集合的方法。而array不提供。另一方面,array提供arraylist所不具有的某些灵活性。
四、总结
本系统希望在以后能投入使用,各煤矿企业将实现井上下探测有毒、有害气体浓度的实时监测警报,井上下主要设备运行状态监控,采掘动态位置显示,隐患整改督察,调度指挥,故障、事故调查分析“黑匣子”功能。
参考文献:
[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.
本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/245001.html