钱志欢,孙玉霞
(浙江工业大学 理学院,浙江 杭州 310023)
摘要: 本项目设计并测试了一套线性平移台和光功率计同步控制系统,运用LabVIEW图形化编程语言,编成了步进电机控制软件、光功率计控制软件、步进电机功率计实时画图软件。通过软件可以实现样本位置的精确控制,光功率计读数的自动记录并画图,而且能实现线性平移台运动和光功率计画图的实时同步。和手动方式相比,软件方式既减轻了劳动力又加快了实验时间,同时还能避免人工实验的倦怠出错和不精确性。 关键词:运动控制;软件;实时同步;步进电机;光功率计
A LabVIEW-based automatic control system utilized for optical measurement
QIAN Zhihuan, SUN Yuxia
(College of Science, Zhejiang University of Technology, Zhejiang Hangzhou 310023, China)
Abstract: An automatic control system of the power meter synchronized with the linear stage based on LabVIEW is designed and texted in this project. We compiled a stepper motor control software, a power meter control software, and a stepper motor power meter real-time drawing software with LabVIEW graphical programming language. By software we can not only achieve the precise control of the sample position, power meter reading automatic recording and drawing, but also the linear stage movement and the power meter drawing can be real-time and synchronized. And compared to manual mode, the software approach can reduce labor, accelerate the experimental time and avoid errors and inaccuracies caused by burnout of manual experiment.
0引言
步进电机作为机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。关于步进电机控制已有大量的报道,但大多结合单片机、PLC、ARM等进行编程[1-4]。基于虚拟仪器开发软件LabVIEW的步进电机控制虽然也有报道,但大多结合单片机来进行控制,很少见到有用运动控制器来控制步进电机的报道。本项目还要求能实现图像的实时同步采集,这在国内外研究中也是非常热门的。
LabVIEW是美国国家仪器公司(National Instrument)开发的一种虚拟仪器平台。他是一种图形化编程语言,具有强大功能,提供了丰富的数据采集、分析和存储库函数,比传统的文本式语言更具有优势。 1步进电机控制软件
1.1 步进电机控制软件
我们项目电机模块所用的硬件为连胜光电的LSDP-50JS型电机和平移台,以及LSKZA04型运动控制器,如图1.1所示。
图1.1 LSDP-50JS型电机和LSKZA04型运动控制器
厂商提供了开发源代码以及动态链接库dll文件,因此我们对运动控制器进行了软件开发,应用labview图形化语言编成了步进电机控制软件(如图1.2)。通过这个软件,我们可以由用户输入步进电机的速度参数;可以按键、增量、目标方式多选择运行;能实时显示线性平移台的位置,还能由用户设定的方案运行。由于步进电机是电脉冲驱动的,每步转动1.8°,步的显示对于用户来说不够直观,因此我们对步进电机定标,实现了步与毫米的转化,即10000步对应6.25毫米。
图 1.2 步进电机控制软件
1.2 步进电机的运行方式
按键方式为用户按住前进或后退键步进电机转动,从而平移台向前或向后运动,鼠标释放电机运行停止。
增量方式为用户输入增量数,选择步或毫米,点增加平移台向前行进,点减少后退。 目标方式为用户输入目标位置,平移台可运行到该位置。 1.3 步进电机软件的程序框图
Labview的编程环境分为前面板和程序框图,前面板为提供用户交互的界面,程序框图
是LabVIEW实现程序结构控制命令的图形表示。我们首先用了一个层叠式顺序结构,前两帧为运动控制器的打开和连接;然后用循环结构嵌套事件结构的方式来触发控制电机,用户在前面板点击一个按键,就对应地触发了一个事件;在事件外放了一个检测电机是否忙的子vi的while循环,当电机运行结束就返回1,执行getdata子vi,即得到平移台的当前位置。程序框图如1.3图所示。
图1.3 步进电机控制软件程序框图
2光功率计控制软件
项目所用的光功率计为Newport公司的1918-c型功率计,如图2.1。
图2.1 1918-c型光功率计
对光功率计的编程主要分成三个核心模块:计算机与光功率计的通信模块,数据回传模块和数据存储和绘图模块。
通信模块如图2.2所示,该模块的作用在于,使计算机能够识别光功率计这台设备,并打开通信端口,使双方准备进行交互数据传输。
图2.2 计算机和光功率计的通信模块
数据回传模块的功能在于,我们可以通过计算机对光功率计发送指令,命令其将当前功率大小回传至计算机,以方便对功率数据进行进一步分析。该模块如图2.3所示。
图2.3 计算机和光功率计的通信模块
数据存储和绘图模块的作用在于,可以将连续输入的光功率数据存储到指定位置,并实时绘制扫描曲线。该模块如图2.4所示。
图2.4 数据存储和绘图模块 光功率计软件界面显示功率的时间分布图,每秒采集一次光功率计的读数。相应的软件界面和程序框图如图2.5和图2.6所示。
图2.5 光功率计控制软件
图2.6 光功率计软件程序框图
3 步进电机功率计实时画图软件
要实现线性平移台和光功率计实现同步工作,必须把步进电机和光功率计两台设备结合起来编程,放在一个软件当中。
和前面的步进电机和光功率计控制软件相比,实时画图软件相当于把两款软件整合到一起,这里少了其他控制电机的运行方式,因为我们只需要平移台行进指定距离然后画图就可以了,如图3.1所示。在控制面板上控制步进电机的前进或后退,光功率计能同步地记录并画图,点数据保存可以把位置和功率幅值数据保存。
图3.1步进电机功率计实时画图软件
这里涉及到的同步问题是关键。实验中碰到了许多问题。 问题一:电机开始运行,画图总是延迟0.5s左右开始。
解决办法:用一个计时模块发现光功率计的通信模块耗时546ms,因此把通信模块放在事件外面。
问题二:起先我用while循环,用freetime子vi判断电机是否忙来控制循环的结束,一旦电机运行结束后空闲就停止功率计读数,后来发现freetime这个函数总会有几百ms的延
迟,导致电机运行结束后软件还在向功率计取数并画图。
解决办法:改用for循环,次数由用户输入的增量决定。比如,用户设置速度为1mm/s,增量为5mm,那么电机将会运行5s,for循环每次运行为0.1s,也就是说要运行50次,即向功率计取数50次,每次平移台的运行位移为0.1mm。执行发现平移台运行和功率计画图几乎实时同步,误差为0.2s,这误差为固定误差,即平移台运行2mm和20mm都为0.2s,猜测为for循环判断结束条件的时间消耗。
步进电机功率计实时画图软件的程序框图如图3.2所示。
图3.2步进电机功率计实时画图软件的程序框图
4 结果和分析
因为我们的程序是基于labview语言的,必须在装有labview的电脑上才能运行。要想脱离labview单独运行,必须生成安装文件。我们用项目浏览器(如图4.1)生成了步进电机控制
图4.1 项目浏览器
软件、光功率计软件、步进电机光功率计实时画图软件,安装包如图4.2所示。
图4.2 软件安装包
接着我们来将我们的软件自动方式和手动方式进行对比。因为课题组CdSe量子点样本已损坏,我们这里另外搭置了一个检测装置来检测我们这个步进电机功率计实时画图软件,如图4.3。从左到右依次为473nm激光光源、f=15mm的凸透镜、放在步进电机线性平移台上的光功率计。
图4.3 检测装置
由于透镜的焦距为15mm,激光光源出射的平行光被透镜聚焦在前方15mm处,然后又重新发散,距离越远发散的越多,光斑也就越大。我们光功率计的探头接收面积是有限的,首先将平移台运行到最长处,接着把探头放置在激光光斑面积和探头接收面积大致相当处固定,这样保证了平移台行进过程中不同位置的激光功率都不一样。
我们分别测试了平移台前进40mm和后退40mm两组实验,分别作软件画图和手动画图,手动画图即人工调2mm记录一个功率值,最后将功率和位置导入到excel里画图。软件画图如图4.4所示。软件画图和手动画图的比较如图4.5和4.6所示。
图4.4 软件画图,左边为电机后退,右边为前进
图4.5 手动画图和软件画图比较(前进)
图4.6手动画图和软件画图比较(后退)
从实验结果可看出,手动画图和软件画图大致趋势是一样的,但是还有很大出入。继续多做几组可发现,即使都是手动方式,每次记录下来的数据都不一样,软件自动方式也如此,这是导致我们实验结果不理想很大的原因。而且我们的实验装置搭建不够精细,用透镜的方式略显粗糙,在不同位置处的功率值差别不大。如果用CdSe量子点等对位置区分比较大的样本或装置,我们的实验结果应该会理想一点。 5 结论
本项目设计了一种基于LabVIEW的光学自动测量系统。通过对步进电机编程,能实现步进电机转速、运行方式的调节;同时还对光功率计编程,实现光功率计记录数据并实时画图;最后对步进电机和光功率计进行整合编程,实现线性平移台运行和光功率计画图的实时同步。
和手动方式相比,软件方式能实现数据的自动记录并画图,既减轻了劳动力又加快了实验时间,同时还能避免人工实验的倦怠出错和不精确性。
6参考文献
[1] 谢光奇, 姚 敏, 王银峰,钟广海. 步进电机的单片机驱动控制[J]. 湘南学院学报. 2011,
32(5): 37-41.
[2] 王 静, 王佳鼎, 李军民. UC3717步进电机驱动电路与89C2051单片机的接口技术[J].
电气自动化. 2002, 5: 15-18.
[3] 陈嘉明, 任恩恩, 孔令刚. 基于 AT90CAN128 步进电机控制驱动系统模块设计[J]. 数
字技术与应用. 31-32.
[4] 黄勤兵, 周桂耀, 王京京, 张巧云, 牛改霞. 基于嵌入式ARM Linux步进电机驱动程序
的设计[J]. 电子技术设计与运用. 2010.
因篇幅问题不能全部显示,请点此查看更多更全内容