基于LIN通信与Labview平台的电机控制上位机系统设计
涂文特
【摘 要】在Labviw平台下,通过解析LIN通信LDF格式数据库与文本配置文件,搭建电机控制上位机程序框架,设计了一款能够实现电机系统正常控制、状态显示、耐久试验、数据记录、波形显示与存储等功能的上位机软件.该控制系统具备性能稳定、低成本、高效率、高灵活性、可移植性优异等优点,可灵活应用于各种数据采集及处理项目中,解决了系统设计复杂和移植困难等问题,使用状况验证了该系统的合理性与实用性.
【期刊名称】《现代机械》
【年(卷),期】2016(000)003
【总页数】4页(P87-90)
【关键词】Labview;LIN;电机控制;上位机
【作 者】涂文特
【作者单位】贵州航天林泉电机有限公司,贵州贵阳550000
【正文语种】中 文
【中图分类】TM306
电机设计完成后,还需经过样机试制,经过测试出电机性能上的偏差,进而进行测试、调试、定型[1]。因此除了要对电机和控制器系统进行研制外,还需增加上位机控制系统,辅助完成对电机及控制器的日常和耐久测试,并按需保存试验数据及波形。常见的控制系统上位机通常采用MFC、Labview、QT等平台搭建设计[2,3]。其中MFC和QT平台采用C++语言进行编程,而Labview平台则采用图形化编程的G语言方式进行设计,且提供了丰富的扩展函数库,广泛应用于军事、航天、航空等领域。LIN 是一种基于UART/SCI(通用异步收发器/串行通信接口)的低成本串行通信协议。该通信方式具备一主多从网络节点、低成本、配置简单、可预测EMC等特点,广泛应用于汽车上低速通信部分,且提供信号处理、配置、识别和诊断功能。通过LIN通信方式在Labview平台上搭建数据采集(DAQ)系统,以实现电机运行参数采集和进行环境耐久试验,控制系统具备开发简单、可移植性强等优点。
电机控制上位机主要实现与电机控制器的通信功能,并能发送电机启停、给定速度、数据记录、波形显示等功能。以某电机控制平台为例,上位机系统应具备图1中程序框架内的实体内容。在登录界面中设置波特率、COM口、LDF数据库路径等参数。工作模式可在手动与自动模式之间进行切换。手动模式下可完成电
机正常性能测试,当需实现某项耐久环境类型的试验时,可切换到自动模式以达到无人值守等功能。此外,在上位机界面上应具备电机实时状态反馈,方便试验人员观察电机运行参数及波形。
2.1 主要难点
编写类似电机数据采集类型的上位机时,通常存在以下难点:
(1)多线程编程的处理
上位机平台需要实时更新电机运行状态参数,并显示电机参数波形和存储数据。通常需要调用多项函数,较复杂的多线程处理以及函数的可重入性容易遗留过多的错误机制处理,过多的占用系统内存。
(2)可移植性差
编写好一个上位机控制平台后,由于通信协议字长、内容等的改变,需要花费较大的精力去修改数据处理、波形显示、协议更新等函数。
(3)开发周期长
通常一个项目的控制器上位机开发需要一个月或者数月的时间才能完成数据库的搭建、信号的存储等功能。
2.2 LIN节点设计
LIN规范提供了开放式的API函数,通常下位机系统硬件上只需支持UART接口即可实现LIN通信功能。硬件上可使用UART接口连接LIN收发器(常见的如TJA1021等)。软件上依次调用LIN规范提供的API函数,调用l_sys_init()函数完成初始化功能,调用l_sfc_read_statu()函数完成状态读取,调用l_ifc_connect()函数完成接口连接,调用l_sch_set()函数完成进度表的调度。正则匹配公司名称
3.1 LDF文件读取
LIN数据库文件可简称LDF文件。如下所示,LDF文件主要定义LIN协议版本号、配置语言版本号、总线速率、节点、信号、帧、调度表等内容。
{
LIN_protocol_version = "2.1"; //协议版本
LIN_language_version = "2.1"; //配置语言版本
LIN_speed = 9.6 kbps; //总线速率
Nodes{ } //节点
Signals{ } //信号
Frames{ } //帧
Schedule_tables{ } //调度表
}
在Labview平台下可通过建立配置文件,写入LDF文件路径,然后打开、读取文本文件并建立匹配模式,运用正则表达式[4-5]提取需要的信息并打包成簇。如图2所示,读取LDF文本文件之后,通过调用匹配模式函数去除“/*”和“*/”之间的注释内容,并输入到后续接口。同理可按照此办法提取信号、帧等关键信息作为后续控制的输入参数。
3.2 LIN通信建立
项目中采用了NI公司的USB8476S作为LIN通信与上位机平台的通信设备,Labview中提供了支持该设备打开LIN通信信道的vi函数用于调用。如图3所示通过ncOpen.vi、ncSetAttr.vi和ncAction.vi函数即可完成对LIN
通信的开始和错误处理。通过调用Labview中LIN通信子程序vi并按照LIN协议的通信标准可分别完成总线参数设置、总线数据写入、总线数据读出、总线关闭等步骤。
3.3 波形显示及存储
Labview平台提供了波形图表图形控件,只需将获取到的数据添加到原图形中,即可实现获取数据的实时波形显示。正常情况下电机控制需要将速度设定、启动控制、母线电压、电流、运行状态、保护状态等逐一显示出来。如图4所示,通过设定波形图表显示参数,即可建立各参数坐标轴及名称坐标轴,简单直接。
3.4 电机控制及状态前面板设计
在电机控制前面板上,需完成对电机启动、给定速度以及电机控制器反馈的电机实际运行速度、电压、电流、温度等参数。通过在工具选板上拖拽布尔、字符型控件即可搭建图5所示的控制前面板。
3.5 功能调度
由于LIN通信[8]采用一主多从的方式,其通信具备自己的特点。图6所示,主机任务主要有:调度总线上帧的传输次序、监测数据、作为标准时钟参考、处理错误、接收从机节点发出的总线唤醒命令。从机任务不能
够主动发送数据,需要接收主机发送的帧头(即帧的起始部分),根据帧头所包含的信息判断是否发送应答(即帧中除帧头外剩下的部分),接收应答;既不接收也不发送应答。以某项目为例,若主节点ID为0x01,从节点ID为0x02,则主节点在完成主任务时通过发送帧头为0x01后,在总线上添加主任务数据帧。同理当主节点往总线上发送了从节点任务后,从节点应及时响应并发送从节点数据帧。
因此电机控制上位机系统应具备发送通信主帧、发送从机通信头帧、获取从机数据、显示从机数据、显示从机波形图、存取相关参数、获取控制状态、改变控制状态等功能。由于Labview满足多线程工作,系统通过建立两个while循环分别实现通信和数据处理功能,并在通信和数据处理功能内细分处理数据接收和发送、数据处理和波形显示功能。
3.6 自动模式简介
当切换到自动模式下,可通过条件结构更改条件参数,选择相应条件下的数据配置数组,并整合成簇文件,输入到后续通信内容中。模式详情数组如图7所示。建立好模式详情数组后,上位机按照所给定的时间、转速、启停指令,依次发送给电机控制下位机。下位机根据实时通信指令控制电机的运行。
由于LIN总线支持一主多从网络通信,因此可在总线上连接少于16个的从节点[6-7]。如图8,搭建通信测试
系统,上位机控制系统选择PC平台即可,通过USB口连接到LIN总线上,并使用第三方检测设备测试总线数据。其中第三方检测软硬件采用Vector公司的CANoe诊断工具。通过第三方软硬件可方便的测试出总线上的数据,并诊断错误帧及通信时序。下位机控制器应具备LIN通信功能,并及时上传电机运行相关数据。波特率可设置在20 kbps以下,通信周期选择10 ms每帧。
CANoe配置如图9所示,通过加载LDF数据库文件,鼠标右键选择主节点Master和从节点Slave处于非激活状态。
以某电机控制器为例,测试结果波形图如图10,可以清楚的在波形图上看到指令变化和实时数据波形,例如母线电压(Voltage)波动,速度(Speed)波动等。在CANoe软件上通过在trace窗口也能够实时的观察总线数据。整套系统工作稳定可靠,可以正确的实现电机控制上位机指令的发送及总线数据的保持与处理。且整套系统图形化编程过程明朗,配置简单。通过修改配置文件即可实现其他LIN协议或者通信方式的上位机制作,有较好的工程实践性。
通过Labview平台设计电机控制上位机系统具备开发周期短、性能稳定等优点,且能够很好的移植到各种嵌入式平台。LIN通信作为一种单总线通信方式,具备一主多从、高EMC可靠性、诊断方便、规范开放的优点,能够很好的应用于电机控制及各种仪表器盘控制领域。在Labview平台下,通过读取LIN配置文件,解
析并处理通信数据具备经济实用等优点。采用软件编写的上位机可替代专有的控制测试设备,并且可扩充接入多项传感器数据的采集。本系统已长期应用于某电机控制器产品的控制,系统稳定。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。