4. CiA402驱动行规核心

CiA402(CANopen Drive Profile)是CANopen协议体系中专门面向驱动与运动控制设备的行规,它定义了伺服驱动器、变频器、步进驱动器在CANopen网络中的标准化行为。对于伺服驱动开发者而言,理解CiA402的设备模型、状态机、控制字/状态字以及运行模式,是完成驱动器固件设计、上位机调试和系统集成的基石。本章将围绕这四个核心维度展开,帮助读者建立从“寄存器映射”到“实际使能运行”的完整认知链路。

CiA402 驱动行规核心架构 设备模型 (Object Dictionary) 0x6000+ 区域 0x2000-0x5FFF 0x6040 控制字 / 0x6041 状态字 0x6060 模式 / 0x6061 模式显示 0x607A 目标位置 / 0x6083 轮廓速度等 状态机 (NMT-like) Not Ready Switch On Dis. Ready To Switch Switched On Operation Enable Quick Stop Fault / Fault Reaction Active 控制字 0x6040 / 状态字 0x6041 Bit0: Switch On Bit1: Enable Voltage Bit2: Quick Stop Bit0: Ready Bit1: Switched On Bit2: Operation Bit3: Fault / Bit4: Voltage Enabled Bit5: Quick Stop / Bit6: Switch On Disabled Bit7: Warning / Bit10: Target Reached 运行模式概述 (Modes of Operation) 位置模式 PP: 轮廓位置 CSP: 循环同步位置 HM: 回零模式 速度模式 PV: 轮廓速度 CSV: 循环同步速度 力矩模式 PT: 轮廓力矩 CST: 循环同步力矩 扩展模式 IP: 插补模式 Homing: 回零 模式选择流程 写 0x6060 模式号 读 0x6061 确认 配置模式参数 使能并运行 图4-1 CiA402设备模型、状态机、控制字/状态字与模式关系总览

4.1 CiA402设备模型:对象字典与通信架构

4.1.1 核心原理:对象字典的分区与映射

CiA402设备模型建立在CANopen对象字典(Object Dictionary, OD)之上。每个伺服驱动器在CANopen网络中表现为一个节点,其所有参数、命令、状态均通过OD中的索引(Index)和子索引(Subindex)进行寻址。CiA402行规对OD的地址空间做了明确划分:0x6000-0x9FFF为行规专用区域,其中0x6040(控制字)、0x6041(状态字)、0x6060(模式)、0x6061(模式显示)是驱动器的“神经中枢”;而0x607A(目标位置)、0x6083(轮廓速度)、0x60FF(目标速度)等则承载具体运动参数。此外,0x2000-0x5FFF区域允许厂商自定义参数,例如电流环PID增益、编码器分辨率、电子齿轮比等。

设备模型还定义了PDO(过程数据对象)与SDO(服务数据对象)的协同机制。SDO用于参数配置和诊断,采用“请求-响应”模式,适合非周期性数据;PDO则用于实时传输控制字、状态字和目标值,采用“生产者-消费者”模式,1ms甚至更短的周期内即可完成一次刷新。实际工程中,通常将0x6040和0x607A映射到同一个TXPDO,将0x6041和0x6061映射到同一个RXPDO,以实现“一发一收”的闭环控制。

4.1.2 判断方法:如何快速定位OD参数

在调试伺服驱动器时,工程师需要快速判断某个功能对应哪个OD索引。建议遵循以下步骤:

  1. 功能归类:先判断是“控制命令”(如使能、急停)、“状态反馈”(如当前位置、报警码)还是“配置参数”(如加速度、电子齿轮)。
  2. 行规查表:控制命令和状态反馈优先查0x6040/0x6041;模式相关查0x6060/0x6061;运动参数查0x607A-0x60FF区间。
  3. 厂商手册补充:若在标准区间找不到,则查阅厂商自定义区(0x2000-0x5FFF),例如某些驱动器将陷波滤波器参数放在0x2100。
经验提醒:使用CANopen分析仪(如PCAN-View、CANopen Magic)在线读取OD时,建议先读取0x1000(设备类型)和0x1018(厂商信息),确认设备固件版本与行规版本匹配,避免因版本差异导致OD索引错位。

4.1.3 案例拆解:电子齿轮比配置

某自动化产线需要将伺服电机每转脉冲数从默认的10000改为8000,以匹配上位机PLC的脉冲输出频率。操作过程如下:

  • 初始现象:电机运行速度比设定值快25%,导致输送带位置偏差。
  • 分析:PLC输出100kHz脉冲,电机实际转速=100kHz/10000×60=600rpm,而期望转速=100kHz/8000×60=750rpm。
  • 操作:通过SDO写入0x6091(齿轮比分子)为1,0x6092(齿轮比分母)为0.8(或直接写入分子8000、分母10000)。
  • 结果:电机转速恢复至750rpm,位置偏差消除。

此案例说明,OD参数配置必须结合机械传动比和编码器分辨率综合计算,不能盲目修改。

4.1.4 常见误区与总结

风险提示:切勿在驱动器运行中通过SDO修改0x6083(轮廓速度)等运动参数,这可能导致内部轨迹规划器出现不可预测行为。正确做法是先将状态机切换至“Switch On Disabled”,修改参数后再重新使能。

设备模型的核心价值在于“标准化接口+灵活扩展”。开发者应优先使用标准OD对象,仅在必要时扩展厂商自定义区,并做好文档记录。

4.2 CiA402状态机:从断电到运行的全生命周期

4.2.1 核心原理:状态定义与转换条件

CiA402状态机定义了驱动器从初始化到故障处理的完整状态流转路径,共包含8个状态:Not Ready to Switch On、Switch On Disabled、Ready to Switch On、Switched On、Operation Enable、Quick Stop Active、Fault Reaction Active、Fault。状态转换由控制字0x6040的低4位(Bit0-Bit3)驱动,同时状态字0x6041的低6位(Bit0-Bit5)反映当前状态。

关键转换路径包括:

  • 上电初始化:驱动器完成自检后进入Switch On Disabled(状态字=0x0250)。
  • 使能流程:依次写入控制字0x0006(Shutdown)→0x0007(Switch On)→0x000F(Enable Operation),状态字依次变为0x0221→0x0223→0x0227。
  • 故障处理:任何状态下发生故障,驱动器进入Fault Reaction Active(状态字=0x002F),执行急停或减速停止,完成后进入Fault(状态字=0x0008)。

4.2.2 操作流程:标准使能与去使能步骤

以PLC通过CANopen控制伺服为例,标准使能流程如下:

// 伪代码示例:使能伺服
writeSDO(0x6040, 0x00, 0x0006);  // Shutdown: 清除使能状态
writeSDO(0x6040, 0x00, 0x0007);  // Switch On: 进入Switched On
writeSDO(0x6040, 0x00, 0x000F);  // Enable Operation: 正式使能
// 去使能流程
writeSDO(0x6040, 0x00, 0x0007);  // 回到Switched On
writeSDO(0x6040, 0x00, 0x0006);  // 回到Ready to Switch On
writeSDO(0x6040, 0x00, 0x0000);  // 回到Switch On Disabled

注意:每次写入控制字后,应读取0x6041确认状态字已更新,再进行下一步操作,避免时序竞争。

4.2.3 案例拆解:使能失败排查

某设备调试时,写入0x000F后状态字停留在0x0223(Switched On),无法进入Operation Enable。排查过程:

排查步骤检查项结果
1读取0x6041 Bit3(Fault)0,无故障
2读取0x6041 Bit5(Quick Stop)0,未激活
3检查0x6060模式值发现模式为0(无模式),导致无法使能
4写入0x6060=1(PP模式)重新使能成功

此案例表明,状态机转换不仅依赖控制字,还受模式配置、硬件使能信号(如伺服使能端子)等外部条件制约。

4.2.4 常见误区与总结

风险提示:在Operation Enable状态下直接写入0x0000(Disable Voltage)会导致电机自由停机,而非受控减速。若需紧急停止,应使用Quick Stop(控制字Bit2=0)或触发硬件急停。

状态机是驱动器的“安全逻辑”,任何应用开发都必须严格遵循状态转换表,不得跳过中间状态。

4.3 控制字与状态字:位定义与工程应用

4.3.1 核心原理:关键位功能详解

控制字0x6040的Bit0-Bit3是状态机控制位,Bit4-Bit6用于模式特定命令(如Bit4=0表示不使能新目标,Bit4=1表示使能新目标)。状态字0x6041的Bit0-Bit5反映状态机状态,Bit10(Target Reached)和Bit12(Drive Follows Command)是运动完成标志。下表列出常用位定义:

位控制字0x6040状态字0x6041
Bit0Switch OnReady to Switch On
Bit1Enable VoltageSwitched On
Bit2Quick StopOperation Enable
Bit3Enable OperationFault
Bit4模式特定(如使能新目标)Voltage Enabled
Bit5模式特定(如立即修改)Quick Stop
Bit6模式特定(如/相对)Switch On Disabled
Bit10-Target Reached

4.3.2 判断方法:通过状态字定位异常

当驱动器无法正常工作时,读取0x6041并解析各状态位是最高效的排障手段。例如:

  • 状态字=0x0008:驱动器处于Fault状态,需读取0x603F(错误代码)定位具体故障。
  • 状态字=0x0250:驱动器未使能,检查控制字是否写入正确。
  • 状态字=0x0227但Bit10=0:目标未到达,检查运动参数是否合理。

4.3.3 案例拆解:PDO映射中的位操作

在PDO通信中,控制字和状态字通常以16位无符号整数传输。某项目需要将状态字的Bit10(Target Reached)和Bit12(Drive Follows Command)组合为一个“运动完成”信号,可在PLC中通过位掩码实现:

// PLC ST语言示例
IF (status_word AND 16#1400) = 16#1400 THEN
    motion_done := TRUE;
ELSE
    motion_done := FALSE;
END_IF;

这种位操作方式避免了逐个位判断的繁琐,提高了程序效率。

4.3.4 常见误区与总结

经验提醒:控制字和状态字是“瞬态”信号,写入后不会自动保持。例如,写入0x000F使能后,若再次写入0x0000,驱动器会立即去使能。因此,PLC程序中应持续输出控制字,而非仅写入一次。

控制字与状态字是CiA402的“数字接口”,理解每一位的含义是进行高级运动控制的基础。

4.4 运行模式概述:位置、速度、力矩与同步模式

4.4.1 核心原理:模式分类与选择依据

CiA402定义了多种运行模式,通过0x6060写入模式号,0x6061显示当前激活模式。主要模式包括:

  • 轮廓位置模式(PP, Mode 1):驱动器内部生成梯形或S型速度曲线,适合点到点定位。
  • 轮廓速度模式(PV, Mode 3):驱动器按设定速度运行,适合恒速输送。
  • 轮廓力矩模式(PT, Mode 4):直接控制输出力矩,适合压合、张力控制。
  • 循环同步位置模式(CSP, Mode 8):上位机每个同步周期发送目标位置,适合多轴插补。
  • 循环同步速度模式(CSV, Mode 9):上位机发送目标速度,适合电子齿轮同步。
  • 循环同步力矩模式(CST, Mode 10):上位机发送目标力矩,适合力控应用。
  • 回零模式(HM, Mode 6):执行找原点操作。

4.4.2 操作流程:模式切换与参数配置

以从PP模式切换至CSP模式为例:

  1. 将状态机切换至Switch On Disabled(控制字=0x0000)。
  2. 写入0x6060=8(CSP模式)。
  3. 读取0x6061确认模式已切换。
  4. 配置CSP相关参数:0x60C0(插补周期)、0x60C1(插补数据选项)。
  5. 重新使能并启动同步周期。
风险提示:在CSP/CSV/CST模式下,若上位机停止发送同步数据(如通信中断),驱动器会因“同步丢失”触发故障。必须配置合理的同步超时时间(0x1006)和看门狗机制。

4.4.3 案例拆解:多轴同步控制中的模式选择

某印刷设备需要三个伺服轴同步运行,其中主辊轴采用CSV模式,两个从动轴采用CSP模式跟随主辊位置。系统架构如下:

轴模式同步方式关键参数
主辊CSV作为同步主站0x60FF目标速度
从动轴1CSP跟随主辊位置0x607A目标位置
从动轴2CSP跟随主辊位置0x607A目标位置

调试中发现从动轴2位置滞后,分析原因是其插补周期(0x60C0)设置为2ms,而主辊为1ms。将从动轴2的插补周期改为1ms后,同步误差从±0.5mm降至±0.05mm。

4.4.4 常见误区与总结

经验提醒:PP模式适合单轴定位,CSP模式适合多轴插补。若在CSP模式下使用PP模式的目标位置更新方式(写入一次目标后等待到达),会导致驱动器报“目标位置无效”错误。必须每个同步周期更新目标位置。

模式选择直接影响控制精度和系统复杂度。工程师应根据应用需求(定位精度、同步要求、通信周期)选择最合适的模式,并充分理解各模式的参数配置和时序要求。

本章系统梳理了CiA402驱动行规的四大核心要素:设备模型提供了标准化的参数访问接口,状态机确保了安全可控的运行流程,控制字/状态字实现了精确的指令交互,运行模式则覆盖了从简单定位到复杂同步的各类应用场景。掌握这些内容,开发者即可在此基础上进行驱动器固件开发、上位机通信调试和系统故障排查。