论文部分内容阅读
摘 要:对于电机及控制器的调试工作,以往主要依赖于串口调试的预先写入的数据帧测试用例与传统编程语言编写的上位机。前者在调试环节需要人为换算十六进制数据且缺少实时性;后者的软件开发周期较长,对于不同控制器产品,程序不易改写。本文设计了一种基于LabVIEW平台的调试系统,并使用电机及控制器产品搭建调试平台进行验证。测试结果表明,该调试系统具有模拟实际工况好、方便易用、改写容易等优点,还可以对控制器的不同研发阶段进行针对性地调试。
关键词:LabVIEW;调试系统;电机控制器;VISA;上位机
1.引言
在智能制造2025与工业4.0浪潮不断冲击的今天,在电机控制领域,DSP等主控芯片引导的数字电路越来越普及,同时也对于快速调试電机控制器产品提出了更高的要求。在一个大型工程系统中,电机及其控制器通常作为一种子系统出现,在不同工况下,系统期望的电机工作状态也不尽相同,使用主控芯片作为下位机,接受并响应上位机下发的数据帧指令以控制电机的起动、停止及调整至要求的转速,逐渐变为一种常见的工作模式。工程化应用中,如何快速模拟电机及控制器的实际使用工况,并快速有效地提高产品调试效率,加快产品研制进度,切实满足用户需求,具有着至关重要的意义。
以往较为常用的上位机通信软件通常采用VC、VB等软件,这类软件的前面板显示与操作控件需要单独编写脚本,研制周期较长,当上位机软件需要应用于其他硬件产品时,软件代码改动较大,效率低下。与传统软件编写平台不同的是,LabVIEW采用图形化编程,即G语言进行程序编写。LabVIEW软件的前面板,允许编写者放置多种仪器单元模块与控件,这种高度的仪器自定义能力,使得LabVIEW能够完成编写者指定的功能以及特殊的显示需要。在程序框图中,编写者可以对控件和数据进行编辑和处理,采用数据流线框的方式代替文字编程的逻辑顺序。本文基于LabVIEW软件平台,采用前面板与程序框图相结合建立模板的方式,设计了一种面向电机控制领域通用化的软件调试系统平台,以实现高速高效的电机控制器调试工作。
2.上位机及电机控制器平台组成
2.1软件部分组成
以DSP芯片主控的控制器为例,该控制器调试系统的软件部分由上位机调试软件系统和控制器主控DSP芯片内置烧录软件构成,上位机在LabVIEW软件平台设计开发。下位机软件在CCS3.3软件平台中设计开发,烧录在DSP芯片内部。整体框图如图1所示。
2.2硬件部分组成
调试系统包括如下几个部分硬件,调试软件系统所在的工控机、被测试的目标代码所在的电机控制器以及与控制器相连的电机本体,硬件设备关系图如图2所示。
3.软件部分程序设计
3.1软件总体架构
调试软件与控制器的交互方式采用控制器实时反馈,上位机对反馈的数据进行解析与显示,当上位机需要下发指令时,在使用者需要的时刻对控制器发送数据帧,总体架构如图3所示。
3.2VISA
VISA的全程是Virtual Instrument Software Architecture,其本质是I/O口规范的汇总。在Instrument I/O的Serial中选择串口通信模块,在串口通信中主要用到的VISA功能有:(1)VISA Configure Serial Port:对VISA进行初始化并编辑串口通信相关参数;(2)VISA Write:将LabVIEW输出缓冲区的数据发送到VISA串口缓冲区;(3)VISA Read:将VISA串口缓冲区的数据读取预先设定字节的数据并保存到计算机中;(4)VISA Bytes at Serial Port:查询上述VISA Read预先设定的字节数;(5)VISA Close:关闭串口资源;(6)VISA Set I/O Buffer Size:设置VISA串口资源缓冲区字节数;(7)VISA Flush I/0 Buffer:清空VISA串口缓冲区。
3.3程序前面板操作界面设计
3.3.1程序主界面
程序主界面作为整个调试软件系统的入口,力求简洁明了,快速引导软件使用者进行串口通信等相关设置作为调试准备,包括设置、实验测试、仿真测试以及退出共四个选项,如图4所示。当选择前三个选项中的一个时,系统会打开一个新的页面,执行对应的子程序。
3.3.2“设置”子程序界面
设置子程序主要用于对VISA串口参数进行设置,包含读取的物理串口序号、数据传输波特率、一个字节数据中包含的数据比特、奇偶校验、停止位、数据流控制、未接收到串口数据报串口故障的最短时间和一帧数据包含的字节数,如图5所示。以上参数对于不同控制器对应的通信协议可以快速设定,对于较为常用的参数类型,可以对数据输入控件右键点击“当前值设为默认值”。设置完毕后,单击“保存”按钮,软件会弹窗提示已经设置成功,再次点击“返回”回到程序主界面。
3.3.3“实验测试”子程序界面
电机与控制器的调试环节集中在“实验测试”子程序中,如图6所示。当进入该界面时,VISA读串口已经执行,调试系统可以实时接收并显示控制器反馈的数据。在实际使用中,由于上位机下发的数据为十六进制数据,下位机会严格执行给定的电机转速值,因此在开始试验前,必须设置转速上限值,当输入给定的转速值超过该值,实际发送的转速给定指令会按照转速上限值发出,以保护实验人员与电机的安全。开始实验时,点击“启动”按钮,上位机就会发送启动数据帧指令,作用等效于对转速给定指令的使能开启。然后输入需要的电机转速值,并点击“转速给定”按钮,此时控制器就会响应指令驱动电机旋转,并获取当前电机工作状态反馈给上位机。需要电机停止转动时,先降低转速给定数值,使电机工作在低速状态,然后单击“停止”即可。点击“退出程序”可以返回值主界面。 在上方数据显示界面中,左侧波形图表绘制转速给定与转速反馈曲线对比图,右侧显示电机当前参数与工作状态。
3.3.4“仿真测试”子程序界面
对于尚未确定主控芯片软件技术状态的控制器,主要工程需求在于选取合适的控制策略参数,此时使用控制器驱动电机的方式就不安全,同时效率也较低,因此采用仿真测试的方式,直接检测控制器软件内部参数变量在给定不同转速值的条件下的变化情况,加快产品研制进度,主要操作方法与“实验测试”相同,如图7所示。
3.4程序框图软件设计
3.4.1程序主界面程序框图
采用布尔控件值改变触发的事件结构,当某一个控件布尔按钮被按下后,调用对应的子VI程序。
3.4.2“设置”子程序程序框图
当VISA参数设置完毕后,点击保存按钮,此时会将该设置存储在一个全局变量中,子程序被关闭后全局变量中的数据仍然会被保留,在后续调试中的VISA参数均从该全局变量中读取。
3.4.3“实验测试”子程序
子程序启动后,会首先进行一个初始化的步骤,读取上一步存储的串口参数,并在程序启动开始时执行清空缓存区的指令,然后进入程序主循环,如图8所示。
程序主循环将串口读数据操作作为主体,对于数据缓冲区的数据,固定读取一帧数据对应的字节数长度,因缓冲区数据是首尾相连的,对于取出的数据,并不确定是否从帧头开始,至帧尾结束,因此需要对数据帧进行整理,识别出帧头所在位置。具体做法是,识别数据帧头,从帧头处将数据帧一分为二,帧头以前的数据为上一帧数据,帧头及以后的数据为本帧数据,利用程序框图的移位寄存器,在两次循环之间存储数据,把同属于一帧的数据进行重新拼接。数据整理完毕后,对该帧数据的校验位进行核算,并将数据帧由十六进制数字格式转换为十六进制字符串格式。如图9所示。
对于校验位核算无误的数据帧,对照控制器通信协议,对各个字节信息进行物理量换算,由于信息已更换为十六进制字符串格式,对于一些物理量包含高八位与低八位甚至更多字节数据,也可以用字符串连接的方式进行解析,这些数据、波形与布尔状态均显示在前面板中,如图10所示。
上位机下发数据指令的功能,由独立于主循环的一个事件结构完成,其工作原理类似于主界面中各个子程序切換的功能,不同的是,由该布尔触发的是对VISA串口执行一次写操作,且这个事件结构没有独立的结束循环触发,该结束触发由主循环的“退出程序”布尔按钮执行,如图11所示。
3.4.4“仿真测试”子程序程序框图
该部分子程序与“实验测试”子程序相似,区别在于数据的物理量换算由电机转动的实际物理量变为控制软件的参数变化情况。
4.调试系统应用实例
对于某型电机及控制器,使用“实验测试”子程序对控制器响应上位机的转速指令与电机工作状态进行了测试,如图12所示。针对该型无刷直流电机控制器,采用270VDC供电,设定转速为4000rpm,控制器母线电流为6A,相电流为8.5A,电机工作状态正常无故障,通过观测电机转速升高的斜率以及超调量,该型电机及控制器工作状况良好,满足设计方案及实际工作要求。
5.结论
本文采用LabVIEW 2017软件平台,针对电机及控制器产品设计研发调试,设计并编写了一个调试系统软件。该软件针对控制器的不同研发阶段,具备控制器部分参数整定调试的“仿真测试”功能,和控制器与电机整体联调的“实验测试”功能。通过对实际电机控制器产品的调试过程进行验证,能够切实有效的提高电机控制器产品的调试精确程度,以近似实际使用工况的条件进行工作。该软件对于不同控制器的适应性好,对于不同通讯协议的程序改写十分方便,目前已实际应用于工程研发,具备一定的实用价值。
参考文献
[1] 陈树学.LabVIEW实用工具详解[M].北京:电子工业出版社,2014.
[2] 吴振奎,张自雷,魏毅立,等.基于LabVIEW平台DSP与PC的Modbus协议串口通信实现[J].内蒙古科技大学学报,2014,33(1):58-62.
[3] 孙丽芹,王海龙,张景顺,等.一种基于LabVIEW的串口数据传输方法[J].通信技术,2013(4):139-141.
[4] 刘君华.基于LabVIEW的虚拟仪器设计[M].北京:电子工业出版社,2003.
[5] 王玉刚,王恒新,陈晔,等.基于LabVIEW的某型航箭发射检测仪设计[J].现代电子技术,2015,451(20):81-83.
关键词:LabVIEW;调试系统;电机控制器;VISA;上位机
1.引言
在智能制造2025与工业4.0浪潮不断冲击的今天,在电机控制领域,DSP等主控芯片引导的数字电路越来越普及,同时也对于快速调试電机控制器产品提出了更高的要求。在一个大型工程系统中,电机及其控制器通常作为一种子系统出现,在不同工况下,系统期望的电机工作状态也不尽相同,使用主控芯片作为下位机,接受并响应上位机下发的数据帧指令以控制电机的起动、停止及调整至要求的转速,逐渐变为一种常见的工作模式。工程化应用中,如何快速模拟电机及控制器的实际使用工况,并快速有效地提高产品调试效率,加快产品研制进度,切实满足用户需求,具有着至关重要的意义。
以往较为常用的上位机通信软件通常采用VC、VB等软件,这类软件的前面板显示与操作控件需要单独编写脚本,研制周期较长,当上位机软件需要应用于其他硬件产品时,软件代码改动较大,效率低下。与传统软件编写平台不同的是,LabVIEW采用图形化编程,即G语言进行程序编写。LabVIEW软件的前面板,允许编写者放置多种仪器单元模块与控件,这种高度的仪器自定义能力,使得LabVIEW能够完成编写者指定的功能以及特殊的显示需要。在程序框图中,编写者可以对控件和数据进行编辑和处理,采用数据流线框的方式代替文字编程的逻辑顺序。本文基于LabVIEW软件平台,采用前面板与程序框图相结合建立模板的方式,设计了一种面向电机控制领域通用化的软件调试系统平台,以实现高速高效的电机控制器调试工作。
2.上位机及电机控制器平台组成
2.1软件部分组成
以DSP芯片主控的控制器为例,该控制器调试系统的软件部分由上位机调试软件系统和控制器主控DSP芯片内置烧录软件构成,上位机在LabVIEW软件平台设计开发。下位机软件在CCS3.3软件平台中设计开发,烧录在DSP芯片内部。整体框图如图1所示。
2.2硬件部分组成
调试系统包括如下几个部分硬件,调试软件系统所在的工控机、被测试的目标代码所在的电机控制器以及与控制器相连的电机本体,硬件设备关系图如图2所示。
3.软件部分程序设计
3.1软件总体架构
调试软件与控制器的交互方式采用控制器实时反馈,上位机对反馈的数据进行解析与显示,当上位机需要下发指令时,在使用者需要的时刻对控制器发送数据帧,总体架构如图3所示。
3.2VISA
VISA的全程是Virtual Instrument Software Architecture,其本质是I/O口规范的汇总。在Instrument I/O的Serial中选择串口通信模块,在串口通信中主要用到的VISA功能有:(1)VISA Configure Serial Port:对VISA进行初始化并编辑串口通信相关参数;(2)VISA Write:将LabVIEW输出缓冲区的数据发送到VISA串口缓冲区;(3)VISA Read:将VISA串口缓冲区的数据读取预先设定字节的数据并保存到计算机中;(4)VISA Bytes at Serial Port:查询上述VISA Read预先设定的字节数;(5)VISA Close:关闭串口资源;(6)VISA Set I/O Buffer Size:设置VISA串口资源缓冲区字节数;(7)VISA Flush I/0 Buffer:清空VISA串口缓冲区。
3.3程序前面板操作界面设计
3.3.1程序主界面
程序主界面作为整个调试软件系统的入口,力求简洁明了,快速引导软件使用者进行串口通信等相关设置作为调试准备,包括设置、实验测试、仿真测试以及退出共四个选项,如图4所示。当选择前三个选项中的一个时,系统会打开一个新的页面,执行对应的子程序。
3.3.2“设置”子程序界面
设置子程序主要用于对VISA串口参数进行设置,包含读取的物理串口序号、数据传输波特率、一个字节数据中包含的数据比特、奇偶校验、停止位、数据流控制、未接收到串口数据报串口故障的最短时间和一帧数据包含的字节数,如图5所示。以上参数对于不同控制器对应的通信协议可以快速设定,对于较为常用的参数类型,可以对数据输入控件右键点击“当前值设为默认值”。设置完毕后,单击“保存”按钮,软件会弹窗提示已经设置成功,再次点击“返回”回到程序主界面。
3.3.3“实验测试”子程序界面
电机与控制器的调试环节集中在“实验测试”子程序中,如图6所示。当进入该界面时,VISA读串口已经执行,调试系统可以实时接收并显示控制器反馈的数据。在实际使用中,由于上位机下发的数据为十六进制数据,下位机会严格执行给定的电机转速值,因此在开始试验前,必须设置转速上限值,当输入给定的转速值超过该值,实际发送的转速给定指令会按照转速上限值发出,以保护实验人员与电机的安全。开始实验时,点击“启动”按钮,上位机就会发送启动数据帧指令,作用等效于对转速给定指令的使能开启。然后输入需要的电机转速值,并点击“转速给定”按钮,此时控制器就会响应指令驱动电机旋转,并获取当前电机工作状态反馈给上位机。需要电机停止转动时,先降低转速给定数值,使电机工作在低速状态,然后单击“停止”即可。点击“退出程序”可以返回值主界面。 在上方数据显示界面中,左侧波形图表绘制转速给定与转速反馈曲线对比图,右侧显示电机当前参数与工作状态。
3.3.4“仿真测试”子程序界面
对于尚未确定主控芯片软件技术状态的控制器,主要工程需求在于选取合适的控制策略参数,此时使用控制器驱动电机的方式就不安全,同时效率也较低,因此采用仿真测试的方式,直接检测控制器软件内部参数变量在给定不同转速值的条件下的变化情况,加快产品研制进度,主要操作方法与“实验测试”相同,如图7所示。
3.4程序框图软件设计
3.4.1程序主界面程序框图
采用布尔控件值改变触发的事件结构,当某一个控件布尔按钮被按下后,调用对应的子VI程序。
3.4.2“设置”子程序程序框图
当VISA参数设置完毕后,点击保存按钮,此时会将该设置存储在一个全局变量中,子程序被关闭后全局变量中的数据仍然会被保留,在后续调试中的VISA参数均从该全局变量中读取。
3.4.3“实验测试”子程序
子程序启动后,会首先进行一个初始化的步骤,读取上一步存储的串口参数,并在程序启动开始时执行清空缓存区的指令,然后进入程序主循环,如图8所示。
程序主循环将串口读数据操作作为主体,对于数据缓冲区的数据,固定读取一帧数据对应的字节数长度,因缓冲区数据是首尾相连的,对于取出的数据,并不确定是否从帧头开始,至帧尾结束,因此需要对数据帧进行整理,识别出帧头所在位置。具体做法是,识别数据帧头,从帧头处将数据帧一分为二,帧头以前的数据为上一帧数据,帧头及以后的数据为本帧数据,利用程序框图的移位寄存器,在两次循环之间存储数据,把同属于一帧的数据进行重新拼接。数据整理完毕后,对该帧数据的校验位进行核算,并将数据帧由十六进制数字格式转换为十六进制字符串格式。如图9所示。
对于校验位核算无误的数据帧,对照控制器通信协议,对各个字节信息进行物理量换算,由于信息已更换为十六进制字符串格式,对于一些物理量包含高八位与低八位甚至更多字节数据,也可以用字符串连接的方式进行解析,这些数据、波形与布尔状态均显示在前面板中,如图10所示。
上位机下发数据指令的功能,由独立于主循环的一个事件结构完成,其工作原理类似于主界面中各个子程序切換的功能,不同的是,由该布尔触发的是对VISA串口执行一次写操作,且这个事件结构没有独立的结束循环触发,该结束触发由主循环的“退出程序”布尔按钮执行,如图11所示。
3.4.4“仿真测试”子程序程序框图
该部分子程序与“实验测试”子程序相似,区别在于数据的物理量换算由电机转动的实际物理量变为控制软件的参数变化情况。
4.调试系统应用实例
对于某型电机及控制器,使用“实验测试”子程序对控制器响应上位机的转速指令与电机工作状态进行了测试,如图12所示。针对该型无刷直流电机控制器,采用270VDC供电,设定转速为4000rpm,控制器母线电流为6A,相电流为8.5A,电机工作状态正常无故障,通过观测电机转速升高的斜率以及超调量,该型电机及控制器工作状况良好,满足设计方案及实际工作要求。
5.结论
本文采用LabVIEW 2017软件平台,针对电机及控制器产品设计研发调试,设计并编写了一个调试系统软件。该软件针对控制器的不同研发阶段,具备控制器部分参数整定调试的“仿真测试”功能,和控制器与电机整体联调的“实验测试”功能。通过对实际电机控制器产品的调试过程进行验证,能够切实有效的提高电机控制器产品的调试精确程度,以近似实际使用工况的条件进行工作。该软件对于不同控制器的适应性好,对于不同通讯协议的程序改写十分方便,目前已实际应用于工程研发,具备一定的实用价值。
参考文献
[1] 陈树学.LabVIEW实用工具详解[M].北京:电子工业出版社,2014.
[2] 吴振奎,张自雷,魏毅立,等.基于LabVIEW平台DSP与PC的Modbus协议串口通信实现[J].内蒙古科技大学学报,2014,33(1):58-62.
[3] 孙丽芹,王海龙,张景顺,等.一种基于LabVIEW的串口数据传输方法[J].通信技术,2013(4):139-141.
[4] 刘君华.基于LabVIEW的虚拟仪器设计[M].北京:电子工业出版社,2003.
[5] 王玉刚,王恒新,陈晔,等.基于LabVIEW的某型航箭发射检测仪设计[J].现代电子技术,2015,451(20):81-83.