配色: 字号:
LabVIEW-basedtemperaturemeasurementandcontrolsystemofsingle-chipdesign
2012-09-23 | 阅:  转:  |  分享 
  
邮局订阅号:82-946360元/年









单片机开发与应用

《PLC技术应用200例》

您的论文得到两院院士关注

1引言

虚拟仪器技术已经在测试测量以及工业控制领域得到广泛

的应用。通过利用NI(NationalInstruments)公司提供的LabVIEW

软件和相关硬件,可以方便快捷的设计出所需的测控系统,但其

提供的硬件大都比较昂贵。

这里设计的系统组成框图如图1所示。上位机PC通过自

带的串行口,和单片机进行通信。在此基础上,使用LabVIEW

8.0设计上位机监控界面,实现对被控温度的测量和控制,从而

降低了系统的硬件成本。

下位机采用89C51单片机,单片机外围电路将采集到的温

度信息传给单片机,单片机再将其传到上位机。上位机根据从

单片机得到的数据,完成被控量的显示和控制。

为了实现PC机和单片机的串行通信,还需设计一个电平

转换电路,这里使用的核心芯片是MAX232CPE。

图1系统组成框图

2上位机软件设计

上位机采用LabVIEW编程,LabVIEW是专业的测控软件。

通过使用LabVIEW可以缩短测控系统的设计时间,而且设计出

的系统界面美观,便于修改,易于扩展。

2.1LabVIEW串行通信功能模块介绍

在LabVIEW功能面板的InstrumentI/O-->Serial目录下,

包含串行通信所需的集成模块。利用这些模块,可以非常方便

的设计出基于串行通信的测控系统。需要注意的是,在使用这

些模块之前,需安装光盘上的VISA驱动程序;也可从NI的网

站免费下载最新VISA驱动程序。下面介绍一下最常用的串行

通信模块:

1)VISAConfigureSerialPort。

用于初始化所选择的串行口。其中VISAresourcename用

于选择所用到的串行口,PC机中常用到的串口号分别用COM1

和COM2表示。Flowcontrol用于设置握手方式,buffersize用于

设置缓冲区的大小。Baudrate,databits,stopbits,parity分别用

于设置串行通信的波特率,数据位长度,停止位长度,校验方式。

2)VISAWrite。

用于将writebuffer中的字符写到VISAresourcename指定

的串行接口中。

3)VISARead。

从VISAresourcename指定的串行接口中读取规定字节数

的数据,并将这些数据传递给readbuffer。Bytecount用于设置

要读取的字节数。

4)VISAClose。

用于关闭VISAresourcename指定的串行口,让出串行口

的使用权。

2.2LabVIEW程序设计

图2上位机监控界面

基于

LabVIEW

的单片机温度测控系统设计

SingleChipMicrocomputerTemperatureMeasurementandControlSystemBasedon

LabVIEW

(1.燕山大学;2.河北大学)肖金壮

1

张伟

1

王洪瑞

2

魏会然

1

XIAOJINZHUANGZHANGWEIWANGHONGRUIWEIHUIRAN

摘要:利用LabVIEW开发环境设计PC上位机的监控界面,上位机通过串行口与89C51单片机通信,从而实现对过程参数的

测量和控制。该测控系统设计简单,简化了系统硬件结构,并且易于修改,具有很好的可扩展性。

关键词:串行通信;温度测控系统;单片机

中图分类号:TP368.1文献标识码:A

Abstract:ByusingLabVIEWdevelopmentenvironment,aPC-basedsupervisoryinterfaceisdesigned.ThePCcommunicateswiththe

89C51SingleChipMicrocomputerviaserialcommunication,thentheprocessparametercanbeacquiredandcontrolledbythePC.

Thismeasurementandcontrolsystemissimpletodesign;itsimplifiesthehardwarearchitectureandisconvenienttobemodified,it

alsohasgoodextensibility.

Keywords:SerialCommunication,TemperatureMeasurementandControlSystem,SingleChipMicrocomputer

文章编号:1008-0570(2007)10-2-0071-03

肖金壮:讲师博士研究生

基金项目:河北省自然科学基金资助项目(F200400260)

71--









中文核心期刊《微计算机信息》(嵌入式与SOC)2007年第23卷第10-2期

360元/年邮局订阅号:82-946《现场总线技术应用200例》

单片机开发与应用

系统主监控界面如图2所示。用到的控件包括:控件面板

上I/O子面板中的VISAResource控件;Array,Matrix&Cluster

子面板的Array控件;Numeric子面板下的NumericControl控

件;Boolean子面板下的RoundLED控件;Graph子面板下的

WaveformChart控件。

其中端口选择用于设置用到的串行口,温度设定用来设置

期望的温度值。波形图控件用于显示采集到的温度值。这里系

统所能达到的最高温度为230℃左右,因此图中波形图控件的

最大量程设置为250℃。

图3上位机程序框图1

图4上位机程序框图2

系统的程序框图如图3和图4所示。其中串行通信的主要

参数设置如下:波特率为1250,数据位8位,停止位1位,不采

用握手信号。

程序开始首先利用VISAConfigureSerialPort模块对串行

口进行初始化。然后判断开始/暂停采集按钮是否按下,如果处

于按下状态,则执行Case语句的True分支程序;否则执行Case

语句的False分支程序。

在True分支程序里,首先利用VISAWrite模块将温度设定

值传给单片机,然后用VISARead模块接受单片机传递过来的

温度信息,并将其显示在波形图控件上。在False分支程序中,

则不进行任何操作。

图5单片机程序框图

因串行通信中传递的是字符串类型的数据,因此需要将以

数字量形式存在的温度设定值转化为字符串格式,才能写入

VISAWrite;这里采用ByteArrayToString功能模块实现这一功

能。同样的,需要将从VISARead读取的字符串信息转换成数

字量,然后才能在波形图控件上显示;可采用StringToByte

Array功能模块实现这一转换。

框图中的WaitUntilNextmsMultiple模块用于设置系统

串行通信的控制周期,其输入端子millisecondmultiple用于给

定需要等待的毫秒数。这里给出的设定值为1000,即等待1秒

的时间。

3单片机程序设计

这里选用的是89C51单片机,采用C语言编程。

51系列单片机自身具有全双工的异步通信接口,可方便的

实现串行通信。通过软件编程,它可以做通用异步接收和发送

器UART(UniversalAsynchronousReceiver/Transmitter)用,也可

作为同步移位寄存器用。其帧格式可有8位、10位和11位,并

能设置各种波特率,在实用上灵活方便。

主程序框图如图5所示。其中temp中保存的是采集到的实

际温度,set_temp中保存的是上位机传给单片机的温度设定值。

系统初始化阶段,令单片机的定时器T1工作于定时方式

2,用于产生串行通信所需的波特率。串行口工作在方式1,为

10位异步通信方式,即每帧数据由1个起始位,8个数据位,1

个停止位构成。

令51单片机的定时器T0工作于定时器模式,用于产生指

定的控制周期。在T0的中断程序里,首先将采集到的温度信息

保存到全局变量temp中,然后再根据上位机给出的期望温度值

set_temp,计算出温度的偏差E。在此基础上,可选用PID等控制

算法给出控制量C,进而对温度进行实时控制。

72--

邮局订阅号:82-946360元/年









单片机开发与应用

《PLC技术应用200例》

您的论文得到两院院士关注

单片机与上位机串行通信的中断程序如下:

serial()interrupt4

{

if(RI==1)

{

RI=0;

set_temp=SBUF;

SBUF=temp;

while(TI==0);

TI=0;

}

}

4结论

本文利用LabVIEW设计了一个温度测控系统,可以在上位

机PC上完成被控温度的显示与控制。比较详细的介绍了上位

机和单片机程序的编写过程。借助于LabVIEW还可以通过简单

的设置,将采集到的温度数据保存到指定的文件中。LabVIEW

具有强大的网络通信功能,可以方便的实现远程控制。相信

LabVIEW将在测控领域得到更广泛的应用。

本文作者创新点:使用LabVIEW软件设计上位机监控界

面,与VisualC++等开发软件相比,使用LabVIEW软件可更加

方便的设计出美观的监控界面,并缩短系统的开发周期。在本

文设计的系统中,上位机PC通过串行口与单片机进行通信,不

但实现了对工业现场温度信息的采集,而且实现了对现场温度

的实时、远程控制。

参考文献

[1]李群芳,黄建.单片微型计算机与接口技术.北京:电子工业出

版社,2001

[2]魏晨阳,朱健强.基于LabVIEW和声卡的数据采集系统[J]微计

算机信息,2005,1:45-46

[3]刘君华等.虚拟仪器图形化编程语言LabVIEW教程.西安电

子科技大学出版社,2001

作者简介:肖金壮(1976-),男,汉族,讲师,燕山大学博士研究生,

研究方向为机器人智能控制、工业测控系统;张伟(1982-),男,

汉族,燕山大学硕士研究生,研究方向为嵌入式测控系统、机

器人容错控制;王洪瑞(1956-),男,汉族,燕山大学教授,博士生

导师,研究方向为机器人系统控制及轧钢机控制;魏会然

(1982-),女,汉族,燕山大学硕士研究生,研究方向为模型辨

识、机器人故障诊断。

Biography:XiaoJinzhuang(1976-),male,Instructor,Doctor.

Researchfield:intellectualrobotcontrol,industrialprocesscon-

trolsystem.

(066004河北省秦皇岛燕山大学电气工程学院)肖金壮张伟

魏会然

(071002河北省保定市河北大学电子信息工程学院)王洪瑞

(InstituteofElectricalEngineering,YanshanUniversity,Qin-

huangdaoHebei066004,China)XiaoJinZhuangZhangWei

WeiHuiRan

(CollegeofElectronicandInformationEngineering,HebeiU-

niversity,BaodingHebei071002,China)WangHongRui

通讯地址:(071002河北省河北大学电信学院自动化系)

肖金壮

(收稿日期:2007.8.23)(修稿日期:2007.9.25)

(上接第34页)

表2MC35模块AT指令

在switch语句中,根据模块当前状态值来完成不同的操作,

但无论进行何种操作,都需要先根据数据输入缓冲区中的应答

数据进行判断,若应答正确(符合上表),则继续下一步骤,否则,

设定程序结束标志为1,显示错误信息,从回调函数返回。因此,

任何不正确的应答信息,都会结束整个程序的执行,我们可以根

据系统提示的错误信息判断是哪个步骤出错,比如模块状态不

正常、短信发送未成功等。

5结论

本文的创新之处在于提供了一种方便快捷的嵌入式Linux

下串行通信设备程序开发方法,该方法利用串行接口驱动函数

库libcssl,以I/O事件驱动设备的数据采集,多串口数据采集能

够异步并发。异步事件驱动的架构可以提高系统并发处理性能,

程序能够执行多个异步操作而不调用阻塞线程,降低系统开销,

同时采用了开放式的体系架构,硬件平台基本不受限制,通过

Linux的移植,就可以运行在其他平台。而嵌入式系统加GSM模

块的系统组成非常适合于偏远地区或移动的数据采集系统中,

根据系统的需要,还可以充分利用模块的GPRS功能,实现高速

的数据采集。

参考文献

[1]程全.李向东.基于GSM模块与AT98C51的接口设计及应用.

[J]微计算机信息,2006:9-2:293-295

[2]威尔金森.阿兰.并行程序设计(美).机械工业出版社.2005年5月

[3]孙琼.嵌入式Linux应用程序开发详解.人民邮电出版社.2006

年7月

[4]《TechnicalProductInformationMC35》

作者简介:沙泉(1974—),女(蒙古族),内蒙古通辽人,上海应用技

术学院机电分院讲师,硕士研究生,主要从事过程控制、嵌入式

系统方面的研究。

Biography:ShaQuan(1974—),female(Mongolia),Tongliao

Mogolia,prelectorinschoolofmechanicalandautomationof

Shanghaiinstituteoftechnology,master’sdegree.Myresearch

areaisaboutprocesscontrolandembeddedsystem.

(200235上海上海应用技术学院)沙泉

(ShanghaiInstituteofTechnology,200235)ShaQuan

通讯地址:(201102上海上海古美路675弄19号1202室)

沙泉

(收稿日期:2007.9.23)(修稿日期:2007.10.25)

73--

献花(0)
+1
(本文系qiange21首藏)