首页

技术资料

> 详细内容

阅读新闻

基于CAN总线的井下人员定位系统上位机软件设计

1、引言

        井下人员管理及紧急搜救系统通过对矿山井下作业人员实时、精确的定位,建立了一个完整而实时的井下管理信息系统,可对井下作业人员的工作岗位、计划安排、进出巷道的权限、人员分布、安全物资流动等要素进行严格的管理,以达到落实责任、提高安全生产的技术水平、保证安全生产的目的。

        一旦发生安全事故,通过该系统立即可以知道该作业面的具体工作人员构成及人员数量、事故发生位置、救援设备位置等信息,尽快确定被困人员的身份、人数、所处位置等必要信息,确保抢险救灾和安全救护工作的高效运作。救援人员可使用手持式探测器接受被困人员的信息,极大的提高救援效率,保障生命安全。

2、系统结构

        该系统由井下以及井上两部分组成。井下部分主要实现对数据的采集、传输,井上部分主要实现数据的处理、存储等功能。

2.1、井下部分介绍

        井下部分主要由识别卡、分站以及中继器组成,总线电缆各个部分连接起来。总线电缆采用双绞线,以避免电缆反射波。分站接收由井下工作人员所携带识别卡发送的信息,然后通过总线网络,将数据传送到井上数据控制中心。

2.2、井上部分

        井上部分由传输接口、工控机等组成,上位机软件实时对采集来的数据进行处理、存储,对各种异常情况进行实时报警。系统软件可将采集到的数据存储到SQL Server数据库,并可通过查询等方法实现对人员的考勤和管理。同时,主监控计算机还可通过工业以太网连接到矿务局内网,从而实现数据的共享。

3、基于Delphi的数据处理与数据库管理技术

         Delphi具有简单、高效、功能强大的特点,它同时兼备了VC功能强大和VB简单易学的特点。在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组。

3.1、系统上位机软件界面设计

        为了达到直观、形象、动态地显示井下巷道布置情况,准确的实现人员定位的目的,本系统在Delphi中引入了第三方控件Mapx,将井下巷道布置图引入到上位机软件中,可以在图形上实时观察各个站点的人员信息,当发生异常时还可检测到实时报警的报警信息。在上位机软件主界面上可实现如下功能:

  (1)   定位:在图形上标注不同的区域,通过上位机软件对采集到的数据的处理,将各个区域的数据信息显示在图上对应的位置,并可查看当前该区域有哪些人员。

  (2)  实时显示:通过软件右侧的listbox表格,可以查看各个区域人员的流动情况,包括进出限制区域、重点区域时间,超员报警、超时报警、工作异常报警等。

  (3)  报警功能:可通过设定下井时间,对下井超过一定时间的人员提示报警,并给出相关人员的名单等信息;可对进入一些重要位置、危险场合的人员进行报警,从而有效阻止人员违章进入,并将违章人员记录在案。

  (4)  模拟动画:可对图片进行放大、缩小、漫游等功能。可以监测特定人员的活动路线,可实现指示灯、区域信息分类显示、历史轨迹回放等功能。

3.2、数据处理程序设计

        为了实现3.1中所提到的各种功能,本文的数据处理部分必须能够快速、准确地完成对数据的判断、处理。该部分主要完成的功能是对数据的接收、处理以及数据的存储。其中数据的接收是通过Delphi的TThread类来实现;处理部分由若干算法组成;存储部分通过Delphi的ADOconnectin控件来完成。

        本系统运用Delphi的TThread类创建了一个线程函数,通过线程函数可以构造一个接收数据的线程,构造方法如下:

        FHandle:=Begin Thread(nil,0,@Receive Thread,pointer(Self),CREATE_SUSPENDED,FThreadID)。

        在本系统构造的线程中,第三个参数就是线程函数,即在线程中执行的代码部分;第四个参数是传递给线程函数的参数;第五个参数是用于设置线程在创建后即挂起;第六个是返回线程ID。TThread的核心是线程函数Receive Thread,它是一个全局函数。本系统中Receive Thread 部分的代码如下:

        function Receive Thread

        (Thread:TThread):Integer;

        var

              Free Thread:Boolean;

        begin

             try

              if not Thread.terminated then

            try

            Thread.Execute;

        except

         Thread.FFatalException := AcquireExceptionObject;

        end;

        finally

        Free Thread := Thread.FFreeOnTerminate;

        Result :=Thread.FReturnValue;

        Thread.Do Terminate;

        Thread.FFinished := True;

        SignalSyncEvent;

        if FreeThread then Thread.Free;

        EndThread(Result);

        end;

        end;

        在数据处理部分中的一个重要的算法是判断人员进入或者离开某个区域或站点的算法。其中A、B、C为三个数组,三个数组中分别存储代表人员的卡号信息,通过比较三个数组中的卡号信息,比较出人员的来、去信息,并将来、去信息存入数据库以供查询。

3.3、数据库操作

        本系统中采用的是稳定可靠的SQL Server2000 数据库,采用主/从式结构。在Delphi中使用Adoconnection连接数据库,通过Adoquery 实现对数据库的查询。通过Adoconnection连接SQLServer2000 数据库的代码如下:

        Provider=SQLOLEDB.1;PersistSecurity Info=False; User ID=sa; Ini-tial Catalog=passion

        passion 为所创建的数据库的名称。

        通过Delphi与数据库的连接,可以实现对采集到数据的存储、查询等功能。具体功能如下:

        (1)  可具体显示每个下井人员确切的下井时间和上井时间。并根据工种判断不同类别的人员是否足班,从而确定其该次下井是否有效。在月统计报表中对下井时间、下井次数等分类统计,便于考核。还可打印月考勤报表、任意时间段下井统计等有关报表。

        (2)  可实时查询当前井下人员的数量及分布情况、任意指定井下人员在当前或制定时刻所处的区域、任意指定井下人员本日或指定日期的活动踪迹。

        (3)  选定某一区域可以获得当前该区域的人员信息;选定某一分站可以接收和查询经过该分站所有人员的时间信息(包括历史信息)。

        (4)  可对特定的人员进行实时跟踪。

4、结束语

        基于Delphi的煤矿井下人员定位系统,是适应当今煤矿安全生产的要求而提出的。本系统通过射频技术实现数据采集,通过CAN总线实现数据的传输,由Delphi实现的上位机软件实现数据的处理和存储,可实现实时报警、人员考勤、数据管理等功能。该系统已经在新汶矿务局某矿试用,经现场测试,该系统运行良好,达到了预期的效果,极大的改善了煤矿的信息管理和安全生产系数,具有广泛的推广价值。随着当前系统的完善,可进一步实现系统扩展,如挂接传感器、使用光纤提高传输速率等,从而实现对井下环境、气候等其他参数的检测功能。