CANopen伺服控制原理

1)CANopen通讯设备模型

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

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

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

应用部分是对设备的基本功能的定义和描述,它是连接设备与主站上位机的纽带, 其核心功能是通过访问设备的对象字典对设备进行参数配置、状态控制和监控, 并高速传输设备的过程数据信息

2)伺服控制模式

CANopen驱动及运动控制设备子协议DSP402对特性的描述要求非常准确,它不仅定义了驱动器的运行模式, 还定义了用于控制驱动器的状态机。

驱动器状态机通过对象字典中的控制字6040来控制,并通过状态字6041来读取驱动器的状态。控制状态机如图

CANopen伺服控制原理及系统软硬件实现

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

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

​系统软硬件实现

1)系统硬件搭建

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

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

2)系统软件设计

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

CANopen伺服控制原理及系统软硬件实现

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

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

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

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

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

3)伺服控制报文设置

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

中, 读取PDO报文的值得到电机当前值, 将其与设置值对比得到控制结果的正确性。控制报文全部由SDO实现

1. PP模式控制报文列表, 见表

CANopen伺服控制原理及系统软硬件实现

2. PV模式控制报文列表

CANopen伺服控制原理及系统软硬件实现

3.HM模式报文列表

CANopen伺服控制原理及系统软硬件实现

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