交流电力测功机LabVIEW多线程防锁死的实现

2013-11-28 03:42杨胜兵徐锋熊焱飞吴杰余王俊
湖北汽车工业学院学报 2013年1期
关键词:测功机状态机线程

杨胜兵,徐锋 ,熊焱飞,吴杰余 ,王俊

(1.现代汽车零部件技术湖北省重点实验室,湖北武汉430070;2.东风汽车公司技术中心,湖北武汉430056;3.吉林大学汽车工程学院,吉林长春130012)

交流电力测功机是一种新型的机电一体化高性能测功机,使用三相笼型异步电机作为加载设备。异步电机由ABB变频器提供可变频率的驱动电源,并精确控制其转矩和转速。与其它测功机相比,交流电力测功机具有功率容易控制、转矩和转速控制精度高、动态响应时间短、结构灵活多样以及高效节能和高可靠性等特性,适合各种类型的电机性能测试,从简单的稳态测试到高级的瞬态测试和模拟测试[1,3]。此外,交流测功机具有电动(动力驱动)和加载(动力吸收)能力,配合自动化测量与控制系统,能够进行复杂的动态测试和模拟测试。

LabVIEW对于所有的仪器和测试设备具有良好的兼容性。运用其模块化的思想,可以很好的进行二次化开发。本文设计的交流电力测功机测试系统在一个平台上融合了多种通讯协议[2,4]。系统对于调试和二次开发具有良好的适应性,能够很方便的移植于汽车的动力测试、阻力模拟等系统中。

1 交流电力测功机测试系统的设计

图1为交流电力测功机测试系统的结构框图。该系统主要由工业计算机、西门子PLC、交流电力测功机、ABB变频器ACS800、可编程直流电源模块DCS800、WT3000等设备组成。

图1 交流电力测功机测试系统的结构框图

交流电力测功机测试系统通过西门子PLC控制ABB变频器及电源;可编程直流电源模块DCS800为测功机给定电压,通过ABB变频器ACS800给定测功机转速或者转矩;在数据采集阶段,使用WT3000记录被试电机的转矩、转速及其效率等相关参数,为后续的分析提供数据。因此,使用此系统为基础,可以进行汽车的动力测试、阻力模拟等试验。

2 系统测试与控制软件的开发

该系统使用了4条不同的链路,分别是使用MODBUS协议的PLC链路,应用CANOPEN协议的DCS800链路与ACS800链路以及WT3000所使用的以太网链路。为避免4条链路在系统并行运行过程中因竞争相同的系统资源而使任务无法完成产生死锁,造成系统安全隐患,LabVIEW中提供了专门的同步机制来实现这些操作,其中最常用的就是队列操作。利用队列技术,可以将一个有序的消息(或数据),从一个状态机传递到另一个与之相独立的并行运行的状态机中[5]。

2.1 LabVIEW中状态机原理

LabVIEW中的状态机就是一个在while循环中的case结构:while循环保证状态机的连续运行,case结构的分支与系统的状态一一对应,即case结构的分支名称对应着状态名称。分支里执行代码的功能对应这状态的行为,而case结构的条件变量与系统的事件相对应,引发状态的变迁以及决定状态迁移的方向[5-6]。

2.2 系统队列与状态机操作步骤

首先创建一个队列,利用该队列来实现对其中一个并行设备的信息交互,图2为创建队列的子VI程序,通过该子VI,可以实现队列的快速创建,并为状态机模型的创建提供了前提。

图2 创建队列子VI程序

然后为每个并行设备创建一个状态机模型,利用该状态机实现设备的初始化、信息交互、数据采集、数据处理、设备释放等操作。

2.3 系统的LabVIEW程序实现

运用LabVIEW消息队列与状态机相结合的技术,设计了基于5个消息队列的LabVIEW程序,它们分别是WT3000队列、ACS800队列、S7-200队列、DCS800队列与MAIN主界面相关操作的队列。使用5个相互独立的队列,采用了5个LabVIEW线程,避免了执行混乱。

图3为LabVIEW软件结构图,通过事件结构实现前面板按键检测,并通过线程5实现该队列状态机操作。线程1采用以太网通信,线程2与线程3都采用CANOPEN协议通信,线程4采用Modbus协议实现通信,线程5为LabVIEW内部通信。

图3 LabVIEW软件结构图

2.4 程序的改进

针对系统运行过程中产生锁死现象,对系统程序进行改进。由于DCS800与ACS800应用相同的的硬件可选件和PC工具,DCS800与ACS800具有相同的物理地址。如果DCS800与ACS800在某一时刻同时进行初始化操作,DCS800与ACS800在同一物理地址同时发出初始化指令,会使系统锁死,对系统安全产生重大危害。为了解决这一问题,将DCS800与ACS800的线程合并,以牺牲部分系统响应时间的代价来完善系统的安全性。图4为改进后的LabVIEW软件结构图,其中原线程2与线程3合并为一个线程,采用一个队列状态机,避免了系统的锁死,提高了该系统的安全性与可靠性。

图4 改进后的LabVIEW软件结构图

3 实验验证

为了验证该系统的可靠性与安全性,应用该系统对电机测试,该测试软件电机测试界面见图5。为保证电机安全,对电机进行低转速测试。转速从1000r·min-1加至 2000r·min-1,每隔 100r·min-1记录一组数据,转矩从0N·m加至200N·m,每隔25N·m记录一组数据。经过反复实验,系统未发生死锁现象。图6a为电机理论效率MAP,图6b为运用该系统测出的效率MAP,对比两图可知,运用该系统测试的效率MAP图与理论效率MAP图基本一致,实验证明,该系统安全可靠。

图5 测试软件电机测试界面

图6 电机效率MAP

4 结论

本文设计了基于LabVIEW的CANOPEN网络的交流电力测功机测试系统,利用消息队列和状态机相结合的方法,实现了系统功能。针对CANOPEN网络上同一物理地址的DCS800与ACS800的并行运行过程中产生锁死的问题,把DCS800与ACS800的线程合并,采用一个消息队列,牺牲部分系统响应时间来加强其安全性。实验证明,该程序的改进是可行的。

[1]Zhu Maotao,Wu Kai,Wu Xin,etc.Development of Measurement and Control System for Vehicular Powertrain Testbench in HEV Applications[C]//IEEE.2011 InternationalConference on RemoteSensing,Environment and Transportation Engineering.Nanjing:IEEE,2011:3063-3067.

[2]Jesus Arellano-Padilla,Greg M.Asher,Mark Sumner.Control of an AC Dynamometer for Dynamic Emulation of Mechanical Loads With Stiff and Flexible Shafts[J].IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS,2006,53(4):1250-1260.

[3]李茂森.交流测功机在电机性能测试中的应用[J].电机与控制应用,2005,32(8):62-64.

[4]王子瑞,孙敬敬,王林.基于LabVIEW虚拟仪器的双通道信号采集与分析系统设计[J].机电工程技术,2011,40(8)∶42-45.

[5]李超,焦瑞莉,陈家田.基于LabVIEW的并行数据采集系统设计[J].辽宁工程技术大学学报:自然科学版,2012(1):89-92.

[6]Huang Kaisheng,Jiang Dinan,etc.Design of Testbed System for Parallel HEV Powertrain[C]//IEEE.2007 Second IEEE Conference on Industrial Electronics and Applications.Harbin:IEEE,2007∶1374-1377.

猜你喜欢
测功机状态机线程
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
基于有限状态机的交会对接飞行任务规划方法
浅谈linux多线程协作
底盘测功机的发展及应用
汽车底盘测功机结构、工作原理与使用维护
汽车底盘测功机选购注意事项
双口RAM读写正确性自动测试的有限状态机控制器设计方法
关于CW-系列盘式电涡流测功机的维护小结
基于反熔丝FPGA的有限状态机加固设计