DIY编程器网
标题:
基于LabVIEW的报警显示系统的研究
[打印本页]
作者:
liyf
时间:
2012-1-21 23:43
标题:
基于LabVIEW的报警显示系统的研究
0 引言
随着电子技术和计算机自动控制技术的引入,报警设施的自动化、智能化水平在不断提高。同时,随着高层建筑和大型综合性建筑的增加,使报警系统更加复杂化和立体化,对报警系统提出了多功能性,即不单是防盗,还包括防火,有害气体报警等一系列的要求。准确、及时地获取报警信息和记录报警信息,有助于安防人员做出快速的反应,减少损失,也为日后分析原因提供了依据。当前的图形报警系统主要有以下几种类型:一种是由分区控制器、报警器、总控制器等报警模块组成的多级式报警系统,PC机主要与总控制器进行连接,只是负责报表、打印、显示等功能;另一种是以视频监控为主的,通过捕捉处理图像进行报警,有专用的主机和设备,虽然功能强大,但是价格昂贵。根据上述背景情况,以PC机作为主控机,开发了一款图形报警系统。 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是实验室虚拟仪器集成开发平台的简称,它是目前国际上应用最广泛的虚拟仪器开发环境之一,它具有工业标准的图形化编程工具,主要用于开发测试、测量、和控制系统。LabVIEW和传统的编程语言有很多相似之处,如:数据类型、数据运算、控制结构等,但是LabVIEW采用图形语言进行编程,使编程更灵活、方便。本系统上位机软件采用LabVIEW进行编写,可降低开发难度,缩短开发周期,并可以根据用户的需要对系统做出快速的更改。
1 系统构成
报警系统主要由硬件部分和软件部分组成。硬件部分包括各种类型的传感器、防区模块、USb/RS-485转接器、PC机及通信电缆;软件部分主要是利用LabVIEW开发的图形报警软件。防区模块主要由AT89C2051单片机、SN75176,总线收发器和地址编码器组成。传感器正常工作时I/O口是低电平,当有警情时产生高电平。I/O口接收到报警信号后,把产生警情的传感器的地址码通过SN75176总线收发器经过报警总线发送到上位机。报警总线包括两条RS485数据线和两条电源线。使用USb/RS485转接器使系统既拥有了USb,总线较强的扩展能力,又具有RS485总线较远的传输距离。当上位机接收到防区模块发送的地址码后,将该地址码传入ACCESS数据库,由数据库中得到该地址码所对应的传感器的详细信息,然后以图形、文字、声音三种方式进行报警。记录模块对该次报警进行记录,以便于今后的查询。
2 软件设计2.1 数据库连接
Access数据库是一个关系型数据管理系统,具有数据库小巧,系统资源占用少,与Windows兼容性好的优点,可以根据用户定义的关系存储、处理和管理数据信息。它由许多基本的表组成,用来存放不同的信息,同时可对表间的关系进行设计。LabVIEW提供了丰富的外部程序接口,如ActiveX和.NET,所以可以通过AD0、DA0、AD0.NET等方法与数据库进行连接。采用LabSQL来进行LabVIEW和Access数据库的连接,LabSQL,是一个通过AD0开源的数据库访问工具,可以当作普通的VI进行调用。Access数据库中的监控点信息表由以下字段组成:传感器地址码、传感器类型、传感器所在楼层、传感器所在区域、传感器标示、传感器坐标(X坐标,Y坐标)。报警信息记录表由传感器地址码、类型、报警时间、报警日期等字段组成。管理人员权限表由人员编号、登陆记录、权限代码等字段组成。当产生报警信息时,防区模块会把产生警情的传感器的地址码发送到PC机。系统接收到该地址码后,首先通过ADO Connection Create.vi与ADO建立连接,然后通过ADO Connection Open.vi打开DSN,DSN由ConnectionString指定。利用ConcatenateStrings字符串合成功能把地址码组合成完整的SQL查询语句。ADO SQL execute.vi通过该查询语句,可以得到该传感器的详细信息。
2.2 图形报警
图形报警的主要功能是实现平面图在屏幕上的显示,并提示报警点。现有的图形报警系统普遍采用两种方法,一种是程序内建的绘图程序,这种方法的优点是不依靠其他绘图软件,使用方便,但是绘图能力较弱,地图效果不好。第二种是建立与其他专业的绘图软件(如:AUTOCAD)的连接,这种方法虽然可以得到高质量的地图,但是用户很难独自完成地图,也不便于以后对地图的更改。而本系统不再对绘图软件进行限制,用户可以使用任意的绘图软件进行地图的描绘,只要最后把图片保存为JPG或者bMP的图片格式,并释放到指定位置,系统就会自动调用地图文件。
报警点在地图显示为一个闪烁的圆点,对于圆的绘制采用了bresenham算法生成圆弧,圆心位于原点的圆有四条对称轴x=0,y=0,x=y,x=-y,则利用圆的对称性可减少计算量。若已知圆弧上一点(x,y),则可以得到其关于四条对称轴的其他7个点,这种性质称为圆的八对称性。因此只要扫描转换八分之一圆弧,就可以求出整个圆弧的像素集。bresenham算法产生八分之一圆弧的递推公式为:
当查询完该地址的详细信息后,ADO SQL execute.vi将查询后的结果以数组形式输出。通过Index Array索引数组功能,可以获得该地址码所对应的地图文件名称。然后通过Concatenate Strings字符串合成功能形成相对路径,配合基路径后就可以通过build path创建出完整的路径。Read JPEG Fjle.vi通过该路径可以读取地图文件,并将该地图文件以图像数据的形式传送到Draw FlattendedPixmap.vi。同时,Index Array索引数组功能也获得了传感器的坐标,但是由于得到的结果是字符串,所以要通过Decimal string To Number先转换成数字,通过bundle捆绑后传送到Draw Flattended Pixmap.vi。然后采用公式节点实现bresenham算法后通过DrawFlattended Pixmap.vi实现报警点的图形显示。
2.3 通信模块
通信模块主要负责上位机和防区模块之间的通信。通信模块通过巡更检查的方式对防区模块进行呼叫,防区模块如果正常工作且没有警情发生时,防区模块给上位机一个应答,上位机收到该应答后继续呼叫下一防区模块。如过有警情发生,防区模块则把产生警情探头的地址码发送到上位机。如果防区模块在规定时间内无应答,则通信模块重复呼叫一次,仍无应答,则产生故障报警,并继续呼叫下一防区模块。通信模块可以根据传输距离灵活设置传输速度,默认状态下传输速率设置为1200波特率,在这个速度下传输距离可达到2公里左右。
2.4 记录模块
记录模块主要负责对报警信息的记录的存储,并且能够查询和打印。报警信息的记录包括报警探头的ID、位置、类型和报警的日期和时间。存储功能主要把报警记录保存入数据库或者是Excel文件,以便于日后的查询和统计,操作员可以对数据查看和打印,但是不具有对数据进行更改的权限。打印功能通过打印机实现。 当产生报警信息时,GetData/Time In Sermonds.vi获得当前的日期和时间,通过Format Data/Timestring.vi把时间按照指定的格式进行显示,然后通过build Array.vi把时间和其他信息通过数组进行显示。
3 结束语
图形报警系统为安防人员提供了一种图形化操作界面,有利于安防人员准确、直观地进行监控,并可以迅速做出判断、减少损失。采用LabVIEW进行开发,降低了工作量,并且使程序灵活,有利于以后根据用户的要求进行修改。采用PC机作为控制机简化了系统结构,降低了成本,而且对于PC机的性能要求不高,便于宾馆学校等场所的使用。
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2