曾武 阳卫伟 袁雄兵
摘 要:鉴于交流伺服电机系统参数繁琐、可操作性差、控制线路复杂、可靠性不高、实时性差等,提出了一种基于CANopen协议的CAN总线伺服电机驱动控制设计方法。CAN总线接口技术用于构建硬件平台,CANopen协议栈程序和电机控制程序在CCS 软件开发环境中实现,并利用PC上位机监控。实验结果表明,交流伺服驱动器采用CAN总线与PC上位机通信,控制简便,实时效果好,数据传输速度快。
关键词:CAN总线;CANopen协议;交流伺服系统;监控主站;对象字典;状态机
中图分类号:TP274 文献标识码:A
文章编号:1003—6199(2020)02—0021—04
Abstract:Aiming at the problems of AC servo drive system such as tedious parameter setting,poor operational,complex wiring and poor real-time capability and so on,the design of CAN-bus servo drive control system based on CANopen is described mainly. The hardware platform is built by using the CAN-bus interface technology,the software in CCS is realized such as the CANopen protocol stack program and the motor control program. Finally the PC Monitoring interface is made. Experimental results show that,by using CAN-bus communication between PC and AC servo motor,there are many advantages in AC servo drive system,such as the control is simple,the real-time effect quickly,the data transmission is rapid and reliable.
Key words:CAN bus;CANopen protocol;AC servo system;controlling master station;object directory;state machine
近年來,通讯网络技术以及微电子技术迅猛发展,现场总线在工业应用领域研究设计已趋于潮流。控制器局域网络(Controller Area Network,简称CAN)总线具备良好的实时性和可靠性、优良的设备兼容性和互操作性、较低的网络成本,应用在工业自动化领域已成热点,而作为CAN总线高层应用协议之一的CANopen协议,精炼易懂,便于理解,在欧洲工业领域已应用广泛。伺服电机控制技术作为有色冶金等工业自动化领域的重要技术,是行业内研究设计亮点,但可操作性差,现场布线复杂、可靠性不高、网络通信能力差等是传统伺服电机控制凸出问题,利用CANopen协议的CAN总线实现伺服驱动系统设计,在国内应用设计实现不
多[1]-[3]。采用CAN总线中CANopen通讯协议,对伺服驱动系统进行设计,完成电机驱动器与上位机之间CAN总线通信,实现基于CANopen协议通讯的伺服电机的多种模式控制。
1 系统结构及eCAN接口模块
1.1 系统结构
交流伺服驱动系统硬件结构如图1所示,设计重点是在伺服驱动器上实现CANopen应用层协议,利用已有丰富硬件平台资源,将CANopen协议从节点功能用软件嵌入在电机驱动器中,CANopen协议通讯框架结构如图2所示。
2.2 eCAN接口模块
设计采用TI的TMS320F2812-DSP,该芯片集成了增强型CAN总线通信接口eCAN模块[4],有效节省了硬件开销,在eCAN模块外增接SH65HVD23x CAN收发器连接,eCAN模块及外围组件如3图所示,CAN总线满足高速CAN总线电平特性。
2 系统软件设计
在CCS软件中设计完成软件部分,主要包括三部分:通讯报文处理、CANopen对象字典、控制模式。上电后,初始化各个模块,进入主循环程序,先以COB-ID对CAN报文扫描处理,再判断有效控制字和状态字指令,最后执行运行模式操作,软件程序流程如图4所示。
2.1 报文处理
为不增加CPU运行开销,拖累电流环等实时反应系统模块,对NMT(网络管理报文)、PDO(进程数据对象)、SDO(服务数据对象)采用查询方式处理,采用中断方式对同步报文处理,调用独立通信函数功能模块来分类、接收和发送信息,eCAN模块使用邮箱管理模式指定邮箱绑定到特定报文COB-ID,实现不同功能报文处理,报文处理流程如图5所示,eCAN模块邮箱与报文绑定如表1所示。
2.2 对象字典实现
将驱动器所有参数结构加入对象词典立标准字典项,定义对象字典数据结构CO_OD[ ],程序通过调用函数CO_FindEntryInOD()查找对象入口地址,再调用函数CO_OD_Read()和函数CO_OD_Write()读写对象字典。对象字典数据结构定义如下
typedef struct {
unsigned int index; // 索引
unsigned char subindex;// 子索引
unsigned char attribute;// 读写属性
unsigned char length;// 数据字节长度
ROM void *pData;// 存放地址的指针
} CO_OD
2.3 控制模式实现
在CANopen协议中,有专用于驱动和运動控制子协议DS-402,其定义了驱动器的操作模式和响应参数,还定义了用于控制驱动器的状态机,对象字典中的指令字(索引6040h)控制驱动器状态机,并状态字(索引6041h)显示驱动器状态机中的每个状态,驱动器状态机有复杂的指令字和状态字[5]-[8]。驱动器状态机如图6所示。
状态机包括“主电关闭”、“主电打开”和“报错”三部分。上电后,驱动器初始化完成,进入“未准备启动”状态,对驱动器进行工作模式配置等,此时,电源仍处于关闭状态且电机未通电状态,在状态传输2、3、4之后,进入“允许操作”状态后,主电已接通,驱动器根据控制指令配置工作模式运行电机。在状态传输9完成后,主电源关闭,并且驱动器在状态传输期间中产生报警,驱动器的状态都进入报“错误”。
设计实现驱动和控制协议DS-402的标准运行模式PV模式和PP模式,程序中首先读取PDO报文映射对象字典中控制字和状态字,然后调用运行模式的中间数据结构接口与驱动器运动控制程序的关联中间数据结构接口,并将设置模式相关参数值写入位置环、速度环,最后执行控制模式操作,如图7所示为程序设计流程图。整个软件程序在CCS中调试完成后,烧写入驱动器DSP中。
3 实验验证
设计PC上位机监控主站采用VB 6.0编程开发,主站通过PC机接一个USB-CAN通信卡扩展出CAN总线接口,连接到伺服驱动器eCAN模块接口,将驱动器设置为CAN通信模式,并开驱动器电源。
打开监控主站界面,将设备索引设置为0,选择第0通道CAN,配置好驱动器设备成功后,配置初始化CAN参数,通信波特率设为1 Mbps,心跳周期为1 s,滤波方式设为双滤波,模式设为正常模式。设定控制模式为PV模式 ,目标速度设定为800 rpmin。测得电机转速变化如图8(1)所示。
将控制模式设置为PP模式,将目标位置设置为1000 r,并测量电机转子位置变化,如图8(2)所示。实验结果表明,用户可以通过PC上位主机方便地监控电机,实现基于CAN总线通讯的交流伺服驱动器上运行CANopen协议。
4 结 论
介绍了在交流伺服驱动器中植入CANopen协议从节点功能的设计方法,并采用CANopen协议实现PC上位主机与伺服电机驱动器之间CAN总线通信,方法简便易行,实验验证效果良好。
参考文献
[1] 张厚林.CANopen通讯协议设计与实现[D].武汉:华中科技大学,2009.
[2] 胥布工,程俊,匡付华.基于CANopen协议的电动执行机构设计[J].控制工程,2010,17(3):367-371.
[3] ZELTWANGER H.现场总线CANopen设计与应用[M]. 周立功,黄晓清,严寒亮,译.北京航空航天大学出版社,2011.
[4] 马成才. 基于CANopen协议交流伺服驱动器从站研究[D]. 南京:南京航空航天大学,2012.
[5] CiA Draft Standard 301 Version 4.02.CANopen application layer and communication profile[S].Nuremberg CiA,2002.
[6] CiA Draft Standard 402 Version 4.02.CANopen device profile for drives and motion control[S]. Nuremberg CiA,2002.
[7] PFEIFFER O,AYRE A,KEYDEL C.Embedded networking with CAN and CANopen [M].New York:Copperhill Technologies Corporation,2008.
[8] JI Wen-gang,JIAO Xiang-dong,ZHOU Can-feng. Research on the control system for automatic pipeline welding based on CANopen [J].IEEE,2008:153-157.