LabView是美国国家仪器公司基于G语言开发的一种虚拟仪器平台。它提供了丰富的数据采集、分析和存储库函数以及包括DAQ、GPIB、PXI、VXI、RS-232/485在内的各种仪器通信总线标准的所有函数功能。同时LabView还具有直观的图形化开发环境,强大的数据处理功能,丰富的可视化显示功能,完备的仪器驱动程序,完善的外部接口和强大的网络功能等特点。本系统正是利用LabView的虚拟仪器技术对温湿度传感器的信号进行采集。将采集到的数据利用多个无线路由器传送到ZigBee网络协调器,通过协调器与PC监控计算机通讯,在LabView环境下实现对粮仓中的温湿度进行监控、显示和查询[9]。
二、系统硬件概述 基于LabView的无线粮仓温湿度监控系统是由温湿度传感器、路由器、网络协调器和监控计算机组成。系统通过温湿度传感器采集粮仓内的温度和湿度数据,经过模数转换单元将放大的温湿度信号数字化转换,通过路由器组成的无线网络传输到ZigBee协调器,再通过串口与上位监视计算机通讯。
监控计算机应用LabView8.5的软件平台开发了一套远程实时温湿度监测系统。构建监测界面和数据浏览界面,不仅能监视各个房间内的状态,提供实时曲线图,以形象直观的图形式方式显示设备的运行情况,还具备了历史数据查询、多个数据记录等功能。具有测量准确可靠、反应迅速、功能强大、可扩展性良好等优点。
图4.1 上位机与各节点的系统框架图 三、系统软件设计 (一)硬件读写模块程序设计 LabView提供了功能强大的虚拟仪器软件规范库,VISA库驻留于计算机系统中,是计算机与仪器之间的软件层连接,用以实现对仪器的程控。对于驱动程序、应用程序开发者而言,VISA库函数是一套可方便调用的函数,其中核心函数可控制各类型器件,而不用考虑接口类型。与其他现存的I/O接口软件相比,VISA具有以下几个特点:1.VISA的I/O控制功能可适用各种类型仪器;2.与仪器硬件接口无关的特性,即利用VISA撰写的模块驱动程序既可以用于嵌入式计算机VXI系统,也可以通过MXI、GPIB-VXI或1394接口控制的系统中,当更换不同厂家符合VPP规范的硬件时,模块驱动程序无需改动;3.VISA的I/O控制功能适用于单处理器系统结构,也适用于多处理器结构或分布式网络结构[10]。
利用计算机控制窗口仪器设备在进行串口通信前,首先要配置好串口,也就是先初始化串口,使计算机串口的各种参数设置与仪器设备的串口保持一致,才能正确的通信。
(二)数据通信程序设计 利用VISA和ZigBee实现通信可分为以下几个步骤:1.初始化串口,设置串口的通信参数与ZigBee模块的串口参数一致;2.向ZigBee发送模块节点查询指令;3.延时500MS,等待ZigBee执行命令,并返回相应的字符串;4.从串口中读出ZigBee的返回的字符串,并提取出节点地址;5.对该节点地址发送的检测数据进行识别,每隔一个扫描周期,按照上一步返回的各个节点地址,对检测数据进行识别;6.延时500MS,等待ZigBee执行命令,并返回相应的字符串;7.从串口中读出ZigBee返回该节点的温度或湿度数据包,并提取出温湿度值。8.关闭串口。
(三)程序结构设计 基于LabView编程语言的远程无线粮仓温湿度检测系统是由多个传感器通过串口通信与监控计算机相连的,为了确保每个传感器所采集到的数据传送到监控计算机时不出现相互干扰混绕的情况,必须分开执行多次读和写的操作。在这种情况下,就需要考虑读写的时序问题。要完成连续的周期性多点读写问题,在LabView中可以使用顺序结构。当程序运行到顺序结构时,会按照一个框架接着一个框架的顺序依次执行。每个框架中的代码全部执行结束才会执行下一个框架。顺序结构可分为层叠式顺序结构与平铺式顺序结构2种。
四、基于LABVIEW本题模块功能的设计 (一)串口模块设计 上位机程序采用图形化编程语言LabView编写,LabView提供5个串口通信节点,分别实现串口初始设置、串口写、串口读、检测串口输入缓存中的字节数、串口中断。在进行PC机和无线采集模块串行通信前,首先要配置好串口,即串口初始化,使计算机串口的各种参数设置与无线收发模块的串口参数保持一致,这样才能够正确的通信。
1.VISA Configure Serial Port:对串口配置,进行初始化。用该节点还可以设置串口波特率、数据位、停止位、奇偶校验位、缓存大小以及流量控制等参数。
2.VISA Write:完成输入由计算机发往数据采集板的采集命令。即本设计中该节点向ZigBee发送指令。
3.VISA Read:用于从串口缓存中读出指定长度的数据。即本设计中该节点从ZigBee的反馈信息中读取数据。
4.VISA Close:关闭一个已经打开的串口。
图4.2 串口模块设计图 如图所示,先将波特率、数据位、校验位、停止位和流控制分别对应VISA配置串口进行设置,其中,通信口选择COM1,波特率为无符号长整型,数据位、校验位、停止位和流控制都为无符号双字节整型,然后通过VISA写入完成计算机向ZigBee发出采集指令,通过属性节点连接VISA的读与写,从ZigBee中的反馈信息中读取数据并通过VISA读显示指定长度的数据,最后关闭串口释放资源。 (二)温度模块设计 通常我们要求在粮仓内温度控制在-10℃至20℃,超过此规定范围则上位机会显示报警指示。在面板中以一个指示灯显示,若超过规定工作范围指示灯为红色报警,正常工作时指示灯为绿色,以布尔型输出。
图4.3 温度参数子VI框图 (三)湿度模块设计 通常我们要求在粮仓内湿度控制在30%RH以下,超过此规定范围则上位机会显示报警指示。在面板中以一个指示灯显示,若超过规定工作范围指示灯为红色报警,正常工作时指示灯为绿色,以布尔型输出。
图4.4 湿度参数子VI框图 (四)节点的选择 由于本设计中含有三个粮仓4个节点,每次传输到上位机显示的信息只为一个节点的,故需在虚拟仪器中判断此节点为第几节点。
图4.5 传感节点的选择程序框图 (五)系统前面板
图4.6 系统前面板图 当程序运行开始后,先对串口、波特率和校验位进行选择,选择好后打开串口按钮就可以将采集来的数据显示出来,采集结束按关闭串口按钮。同时,可以从运行的界面分别直观的看到湿度和温度的数字显示图,意味着既可以从图上看出又可以从表格中看到确切的数据。而我们规定在粮仓内温度控制在-10℃至20℃之间,湿度控制在30%RH以下,因此一旦温度或湿度超过此规定范围,报警灯便会对应亮起以便提醒相关工作人员进行处理。运行时的界面如图4.6所示。
|