本文针对伺服电机远程控制接线复杂性、单一性、不稳定性等问题,提出采用开放式通信协议 DS301、驱动子协议 DSP402 实现伺服电机控制的新方法。

前  言
CANopen 是一种架构在控制局域网路(CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。CANopen 实现了 OSI 模型中的网络层以上(包括网络层)的协定。CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。CANopen 支援网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的分段传送及其组合。一般而言数据链结层及物理层会用 CAN 来实作。除了 CANopen 外,也有其他的通讯协定(如 EtherCAT)实作 CANopen 的设备子协定。

 


CANopen 由非营利组织 CiA 进行标准的起草及审核工作,基本的 CANopen 设备及通讯子协定定义在 CiA301 中。针对个别设备的子协定以 CiA301 为基础再进行扩充。如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。

针对伺服电机远程控制接线复杂、控制单一、可靠性不高等问题,提出利用 CANopen 通信协议、驱动子协议实现伺服电机控制的新方法。分析 CANopen 协议的对象字典和报文格式,详细介绍了 CANopen 伺服控制状态机各步骤的转换以及实现 CANopen 协议下 PP、PV、HM3 钟伺服控制模式的报文设置。利用 CAN 卡和伺服驱动设备以及伺服驱动设备以及 PC 机构建了实验平台,在上位机界面通过报文设置成功实现了基于 CANopen 协议的伺服电机的 PP、PV、HM 的三种模式的控制。实脸结果表明利用协议的报文设置控制电机简单易操作,通讯数据快速、可靠,用户通过上位机可以很好的实现对伺服电机的监控。

系统架构搭建
整个控制系统由 PC 机、CANopen 上位机、USBCAN 适配器、伺服驱动设备构成。CANopen 通讯部分由 DS301 协议实现,伺服控制部分由 DSP402 协议实现伺服驱动设备作为的从节点,具有 CANopen 通讯功能,负责电机的电流、转速、位置等控制对象,它通过通信接口与总线相连,将信息传送给计算机的上位机界面;上位机界面则根据从站的反馈信息通过 USBCAN 适配器对伺服驱动设备实现控制。如图 1 所示为开放式通讯协议的伺服控制系统总体架构图。

 


图 1 开放式通讯协议伺服控制系统总体架构图


开放式通讯协议伺服控制原理
1 CANopen 通讯设备模型

CANopen 的设备模型分为以下 3 个部分:通信单元、对象字典、应用过程。用户可以通过该模型对功能完全不同的设备进行描述。

CANopen 的核心概念是对象字典,对象字典包含描述这个设备和它的网络行为的所有参数,应用单元和通信单元都可以问这个参数列表。对象字典中的参数通过一个 16 位索引和位子索引进行识别和定位。

通信部分由 CAN 收发器、CAN 控制器和 CANopen 协议栈组成协议栈中定义了实现通讯的通讯对象:NMT(网络管理报文)、PDO(过程数据)SDO(服务数据对象)预定义报文或者特殊能对象(含同步报文、紧急报文、时间标记对象等)通信的所有内容和功能由这些通信对象描述,所有设备之间通信也通过这些通信对象完成。其中 NMT 用于主站对从站进行状态管理以及从站应答自身所处的通信状态,SDO 用于主站对从站的对象字典进行配置和监控。PDO 用来传输高速、小型数据。而特殊功能对象则用于同步网络中的通信对象(通常为 PDO)的方法。应用部分是对设备的基本功能的定义和描述,它是连接设备与主站上位机的纽带,其核心功能是通过访问设备的对象字典对设备进行参数配置、状态控制和监控,并高速传输设备的过程数据信息。

2 伺服控制模式
CANopen 驱动及运动控制设备子协议 DSP402 对特性的描述要求非常准确,它不仅定义了驱动器的运行模式,还定义了用于控制驱动器的状态机。驱动器状态机通过对象字典中的控制字 6040 来控制,并通过状态字 6041 来读取驱动器的状态。控制状态机如图 2 所示。

 


图 2 控制状态机图


状态机可以分成以下 3 个部分:PowerDisabled(主电关闭)、PowerEbabled(主电打开)和 Fault。所有状态在发生报警后均进入“Fault”在上电后,驱动器完成初始化,然后再进入 SWUTCH_ON_DISABLED 状态,在该状态,可以进行 CAN 通讯,可以对驱动器进行配置。此主电仍然关闭,电机没有被励磁。经过 StateTransition(状态传输)2,3,4 后,进入 OPERATIONENABle 此时,主电已开启,驱动器根据配置的工作模式控制电机。StateTransition(状态传输)9 完成关闭电路主电。一旦驱动器发生报警,驱动器的状态都进入 FAULT。

PP 模式(简表位置模式)是典型的定位模式,可通过单步设定与连续设定两种方式控制电机运行到目标位置。PV 模式(简表速度模式)是速度控制模式,HM(回零模式)提供多种达到起始位置的方法。

 


系统软硬件设计
1 系统硬件设计

本文设计采用 USBCAN 和伺服驱动设备和 PC 机来搭建硬件平台。伺服驱动控制芯片采用的是 DSP 的芯片。

系统硬件搭建按以下步骤进行。首先在 TI 的开发环境中配置好的相关参数,并建立 DS301 工程项目,完成 CANopen 协议通信程序的调试运行。项目调试成功之后下载到驱动器中,在上位机界面中设置报文,测试 SDO、PDO、NMT 等通讯对象。测试结果正确则系统硬件搭建完成。

2 系统软件设计
整个伺服控制的软件设计在 CCS 中建立,主要包括永磁同步电机的闭环控制程序和 CANopen 协议找的实现两大部分。如图 3 所示为软件设计流程图。

 


图 3 软件设计流程图


初始化部分程序主要完成 DSP 系统的初始化以及 CANopen 通讯的初始化。

初始化主要完成的工作如下:

初始化相关变量,使能全局中断,进人伺服电机编码器霍尔传感器反馈 UVW 三路信号来判断电机初始电角度位置。

初始化通讯的主要完成的工作如下:

设置从站节点地址和 CAN 通信波特率,初始化各通对象,完成各路的预定义映射,最后进入通信处理程序。

3 伺服控制报文设置
CANopen 报文结构由 11 位的 COB-ID 以及最多 8 字节的数据域构成。在上位机界面中通过 NMT 报文设置控制从站进入预作状态或者运行状态,再通过 SDO 报文设置伺服控制的各个参数(速度、位置等)以及状态机的各个状态可以使电机按照不同控制模式运转起来,最后通过将电机的当前参数映射到 PDO 中,读取 PDO 报文的值得到电机当前值,将其与设置值对比得到控制结果的正确性。控制报文全部由 SDO 实现。

以下为 PP 模式控制、PV 模式控制和 HM 模式控制报文列表:
1.PP 模式控制报文列表

 


2.PV 模式控制报文列表

 


3.HM 模式报文列表

 


以上三种控制模式报文操作都是首先设置伺服控制模式,然后根据当前模式依次输入相关的目标控制值(如位置、速度、回零方式等),最后按照状态机步骤使用 6040h 控制电机启动与停止。
 

 

仿真实验
本系统的上位机界面由 USBCAN 的上位机界面及电机的监控界面两部分构成,其中 USBCAN 的上位机界面作为 CANopen 报文数据监控界面,电机的监控界面用 VB2008 开发。在上位机界面中通信波特率选用 1Mbps 伺服电机 Node-ID 设置为 1,心跳周期为 1s,TPDO 发送周期为 100ms,同时设置好电机电流环、位置环、速度环的参数,将设置的报文依次输入上位机界面的 SDO 控制,电机启动并运行到报文中的设定值,电机手动遥控器显示值与设定值一致,同时上位机界面中报文显示值也与设定值一致,成功实现了伺服控制的控制。

1PP 模式
电机监控界面中位置控制曲线如下图 4 所示:

 


图 4 电机位置控制曲线


在上位机界面中设置好报文值,电机启动。电机先加速运行,达到设定的目标速度值后开始匀速运行,直至达到设定的目标位置值就不再变化。上位机过程数据与电机监控曲线变化一致。如果需要改变电机的位置值,在上位机界面中依次输人新的控制报文,电机会根据设定值正转或者反转,继续运行到新的位置。

2PV 模式
电机首先加速到设定的目标速度值,然后按照设疋值勾速运打。如果需要改变运行的速度,同样可在上位机界面中输人新的速度值,加速时的变化如上所述。减速控制时,电机减速直至速度为则停止。如图 5 所示为上位机数据变化与电机监控曲线变化一致速度控制曲线。

 


图 5 电机速度控制曲线图


3HM 模式
电机先加速到设定速度,然后寻找原点位置,找到原点后,电机回零,减速直至这时分别在上位机界面以及电机的手动遥控器伺服电机中査看电机的当前位置值,都可以看到电机的当前设为说明电机回零操作完成。如图 6 所示为位置控制曲线图。

 


图 6 位置控制曲线图


结  论
在实际应用应用过程中,本文所设计的系统运行可靠,数据准确易分析,机先加速运行,达到设定的目标速度值后开始匀速实时性好,协议栈程序易植入。该方法可以扩展适用于多电机控制系统,而且的 CANopen 通信协议栈适用于所有设备,在工程应用应用领域非常广泛。