中自网

热门搜索:PID  plc  传感器  电机  变频器  工业以太网  无线通讯  低压 

当前位置:首页>>应用案例首页>>解决方案>>正文

基于LabVIEW与单片机的高温烟雾监控系统设计

发布日期:2011-09-27   作者:陈景帅   浏览次数:50040
分享到:
【摘   要】: labview(laboratory virtual instrument engineering workbench)是美国ni公司具有革命性的图形化虚拟仪器开发环境,是业界领先的工业标准化图形编程工具。它内置信号采集、测量分析与数据显示功能,集开发、调试、运行于一体,labview虚拟仪器程序可以非常容易的与各种数据采集硬件无缝集成,与各种主流的现场总线通信,便于开发各种测试、测量和控制系统。


1  引言
    labview(laboratory virtual instrument engineering workbench)是美国ni公司具有革命性的图形化虚拟仪器开发环境,是业界领先的工业标准化图形编程工具。它内置信号采集、测量分析与数据显示功能,集开发、调试、运行于一体,labview虚拟仪器程序可以非常容易的与各种数据采集硬件无缝集成,与各种主流的现场总线通信,便于开发各种测试、测量和控制系统[1] 。 

2  系统介绍
    高温烟雾实时监控系统来源于兴隆庄救护中队的实际项目。以往救护中队的模拟训练中烟雾、温度、照明、排风等设备需人工操作,安全可靠性差且浪费人力物力,不能为训练提供良好的外部环境。针对这种情况我们设计了一种基于labview与单片机的高温烟雾实时监控系统,单片机体积小,灵活方便,性价比和可靠性高,labview可以快速搭建上位机控制系统,实现了对现场设备的实时监控,为救护中队提供了一个良好的模拟训练平台。
    本系统界面友好,扩充性强,成本低廉,性能稳定可靠。本文对系统的实现的关键技术给出了描述。

3  系统总体设计
    本系统由上位机系统和下位机系统组成。上位机系统使用labview虚拟仪器软件建立人机操作平台,通过与单片机的硬件接口,以串口通信的方式实现上位机与单片机的通信,完成对下位机系统设备的运行状态实时监控和运行参数设置。下位机系统通过avr单片机控制数据的采集和串行通信;采用rs-485通信网络,rs-485总线具有信号传输速度快、传输距离远、抗干扰能力强等优点,其接口可以有多个驱动器和接收器,很容易实现上位机与多个单片机之间的串行通信。系统原理图如图1所示。

图1  系统原理

4  基于labview的虚拟仪器设计
4.1 vi及visa简介
    vi是在labview编程中组建的程序单元,它有三个主要部分:前面板、框图和图标/连接器。前面板是vi的交互式用户界面,包括多种控件和指示器;框图是vi的可执行源代码的图形表示;图标和连接器指定了数据流进流出vi的路径[2]
    visa是虚拟仪器软件结构体系(virtual instrument software architecture)的简称。visa是在所有labview工作平台上控制vxi、gpib、rs-232以及其他种类仪器的单接口程序库[3]
4.2 主要功能程序设计
    根据救护中队训练平台的实际功能需要,上位机系统须具有监视、控制、报警、存储、分析和显示等功能,主体程序框图如图2所示。

图2  主体程序框图

    程序开始首先利用visa configure serial port函数对串口进行初始化[4],为了提高系统界面的响应速度,采用了顺序结构,串口初始化后立即进行温度数据的采集,通过滤波函数处理后快速显示当前温度,其他数据和命令则先不进行采集和处理。
    当温度显示后,则进入顺序结构的下一步。在此结构中实现上位机系统的各种功能。下位机16通道为三种控制模式的切换开关,默认为现场控制。现场控制时,禁用主界面操作按钮(模式切换除外),程序只负责信息的采集显示,采用查询方式,按照自定义协议向下位机发送命令,下位机则返回相应的数据。程序对采集的数据进行处理后显示;远程手动时,程序使能主界面操作按钮,此时用户操作相应按钮则根据当前状态参数生成控制命令,程序中断信息采集线程,占用串口并向下发送命令,如果下位机收到会发送标志码,收到正确响应后则释放串口,恢复对状态和温度的实时监测。自动运行时,首先进入参数设置子界面。
在参数设置界面,选择自动运行的设备并设定相应参数后将参数变量传给主程序,调用手动控制函数并开启定式结构,下位机将按设定参数自动运行,此时上位机主界面自动运行设备对应按钮禁用,其余按钮仍可手动操作。
4.3 关键技术处理
    (1) 串口通信。串口通信时若重复开关串口则浪费大量资源,因此将visa configure serial port配置函数和visa close函数放在while循环外,visa write(读)、visa read(写)函数放在循环内;labview读取数据的方法包括查询和中断两种方式,由于本系统数据量小,本文采取查询方式,编程简单并且可以实现对数据的实时处理和分析;实时监测需要不间断的发送温度和状态采集命令,当控制命令生成发送时,操作同一串口就会产生冲突。本文采取同步技术控制循环,避免了对设备的访问冲突。当控制命令需要发送时,中断数据采集线程独占串口,当确认下位机收到时释放串口,恢复实时监测和数据采集线程。
    (2) 数据处理。本文基于access数据库和免费开源的labsql技术实现了对数据的分析、记录、查询和报警。双击系统主机面温度计图标则会显示历史曲线,包含最大值、最小值、平均值,双击烟雾、升温、排风设备则显示运行记录。安装好odbc驱动后首先通过ado connection create.vi与ado建立连接;选择ado connection open.vi打开数据源;选择sql execute.vi执行sql语句来完成对数据库的查询、插入、更新等各种操作;选择ado connection close.vi断开记录集的连接;最后选择destroy conn.vi来断开整个数据库。程序如图3所示。

图3  数据处理程序框图

    (3) 多线程的处理。labview是一种自动多线程语言,它会根据用户编程的程序决定现成的数目、分配、管理和切换等。一般来说,一个独立的循环或子vi就可以是一个独立的线程。如图4所示,图中的两个循环分别代表两个不同的线程,上面的线程a用来处理手动模式下按钮操事件,下面的线程b用来实时通过串口采集温度和状态信息。线程之间的数据传递采用局部变量来实现,线程的启停可以通过while循环的conditional terminal输入端子来实现。a循环中事件发生改变局部变量,局部变量影响b循环的conditional terminal输入端子,进而终止b循环。本系统有多个循环并通过定时循环设置了线程的同步和优先级。运用定时循环可以进行精确的时间控制,进而可以同步控制各个循环,使多个线程可以实现同步和通信。

图4  多线程处理

    (4) 子vi的处理。参数设置子界面作为子vi需要创建,首先根据子界面功能需求创建普通子vi,此处我们引入controls palette控件,将多个参数设定元素打包。labview会自动根据控件类型判断是输入端子还是输出端子,输入控件对应输入端子,显示控件对应输出端子。子vi各输入控件可保留上次数据,因此不需要主vi向子vi输入,只需子vi单向传递即可。通过unbundle by name函数可以实现对簇元素的解包,再转化为无符号单字节整型传给相应的显示控件,如图5所示。这样通过定义连接端子和图标便可创建子vi,每个显示控件对应一个输入端子。在主vi中设置子vi调用属性即可实现参数设置子界面。

图5  子vi处理

    (5) 事件的处理。labview对事件的处理有查询和事件结构两种方式。事件结构可以使程序变得简单,并降低cpu利用率。当多个事件发生时会形成事件队列,直到每个事件对应的代码都被执行。子界面中,输入框中输入值如果超出参数设定范围,则在失去焦点时提示输入错误并重新获得焦点等待输入,我们采取事件结构,如图6所示。主界面中,手动模式下按钮操作事件若采用事件结构则影响了线程间变量的传递,因此我们采用while循环和case结构来不断的查询;自动运行模式下事件的处理仍然采用事件结构,事件发生则调用手动模式下相应的按钮操作函数。

图6  事件处理

    (6) 程序的打包发布。在labview中可以通过labview application builder工具快速生成安装包。首先生成独立可执行应用程序,成功生成后须将labview 运行引擎、ni-visa run-time打包在一起作为一个安装程序发布。

5  基于单片机的下位机设计
    本系统包括开关量输入模块、开关量输出模块和温度采集模块三部分组成,可扩充性强。开关量输入模块和温度采集模块对温度和状态信号进行采集、调理和转换,然后通过rs232串口通讯将数据送给计算机,pc机命令通过串口送给开关量输出模块。
5.1 硬件电路设计
    (1) 开关量输入、输出模块。at-mega16是基于增强的avr risc结构的低功耗8位cmos微控制器,数据吞吐率高达1 mips/mhz,且内部集成16k字节flash、1k字节sram、定时计数器、串行usart接口和spi接口等设备,十分适合构建一个低成本高性能的数据采集系统。本系统的开关量输入和输出模块均采用atmega16单片机。
    (2) 温度采集模块。温度采集模块采用atmega8单片机和数字温度传感器ds18b20,如图7所示。atmega8单片机集成了较大容量的存储器和丰富强大的硬件接口电路,具备avr高档单片机mega系列的全部性能和特点。ds18b20是dallas公司生产的一线式数字温度传感器,多个ds18b20可以并联到3根或2根线上,cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此ds18b20非常适用于远距离多点温度检测系统。

图7  温度采集模块

    (3) rs-485通信协议。pc机与温度板、开关量输出板、开关量输入板485通讯协议及格式如图8所示。校验采取校验字节前所有字节异或,温度板地址号设定为0x03,0x04,0x05……,对于开关量输出板,收到正确响应即为发送成功。
 

图8  rs-485通信协议

5.2 下位机程序设计
    单片机程序采用c语言编写,开关量输入输出板、温度采集板主要程序流程图如图9所示。

图9  下位机程序流程

6  结束语
    在实际开发中,labview表现了很好的灵活性。尤其是利用其提供的外部接口,结合以单片机为核心组成的前端数据采集系统,可以很方便地完成数据采集及处理等功能,具有很强的工程实用性,可广泛应用于测试控制领域。本系统经济使用,安全可靠,操作简便,自动化程度高,经试用该系统运行良好。
 

作者简介
    陈景帅(1983-)  男  硕士研究生,研究方向:机器人与先进控制系统。
    周风余(1969-)  男  副教授  硕士生导师,研究方向:智能机器人、先进计算机应用技术。

 
 
[ 应用案例搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]  [ 返回顶部 ]

0条 [查看全部]  网友评论