3、运动控制基础:伺服驱动器、步进电机、运动控制器的CANopen接口与典型控制模式
在CANopen运动控制系统中,伺服驱动器、步进电机驱动器和运动控制器是三种最核心的物理节点。理解它们各自的硬件接口定义、CANopen对象字典映射方式以及典型控制模式,是后续高效配置SDO(服务数据对象)和PDO(过程数据对象)的前提。本章将围绕这三种设备的CANopen接口特性展开,重点剖析其控制字、状态字、模式切换机制,并给出工程实战中的选型与接线建议。
3.1 伺服驱动器的CANopen接口与CiA 402状态机
伺服驱动器是运动控制系统中精度最高、响应最快的执行单元。其CANopen接口遵循CiA 402(IEC 61800-7)设备行规,该行规定义了标准化的对象字典、状态机和控制模式。在工程实践中,伺服驱动器通常作为NMT从站,接受运动控制器(主站)的调度。其核心接口包括:CAN收发器(ISO 11898-2)、光电隔离电路、终端电阻选择跳线以及状态指示灯。从软件角度看,驱动器内部维护着一套完整的对象字典,其中0x6040(控制字)和0x6041(状态字)是SDO/PDO通信中最频繁访问的入口。
CiA 402状态机是理解伺服控制的关键。该状态机包含“启动”、“未使能”、“待机”、“使能”、“故障”等状态,状态切换由控制字中的位2(快速停止)、位3(使能操作)、位4(使能斜坡)等控制。例如,要使驱动器从“待机”进入“使能”状态,需要依次写入控制字0x06(屏蔽故障)、0x07(清除故障)、0x0F(使能操作)。这一过程看似简单,但在实际调试中,若状态字中的相应位未正确置位,会导致使能失败。因此,建议在调试初期使用SDO逐位读取状态字,确认每个状态位的逻辑电平。
3.1.1 伺服驱动器的控制模式切换流程
切换控制模式(如从位置模式切换到速度模式)时,必须遵循严格的操作顺序。首先,通过SDO写入模式选择对象0x6060(模式定义),例如写入值1表示位置模式,2表示速度模式,4表示转矩模式。然后,需要将控制字0x6040的位0(使能)和位1(复位)置为有效状态,并等待状态字0x6041的位1(使能确认)置位。若切换过程中出现“跟随误差过大”报警,通常是因为切换前未将目标速度或目标位置清零,或切换时电机仍在高速运转。
| 控制模式 | 0x6060值 | 关键对象 | 典型应用场景 |
|---|---|---|---|
| 位置模式(pp) | 1 | 0x607A(目标位置)、0x6081(轮廓速度) | 点对点定位、插补运动 |
| 速度模式(vl) | 2 | 0x60FF(目标速度)、0x6083(加速时间) | 恒速输送、张力控制 |
| 转矩模式(tq) | 4 | 0x6071(目标转矩)、0x6072(最大转矩) | 压合、拧紧、力控 |
| 回零模式(hm) | 6 | 0x6098(回零方式)、0x6099(回零速度) | 上电找原点 |
3.1.2 实战案例:伺服驱动器使能失败排查
某自动化设备上电后,运动控制器发送使能命令,但伺服驱动器始终无法进入“使能”状态,状态字0x6041一直停留在0x0250(待机状态)。通过CANalyzer抓取总线报文,发现主站发送的控制字为0x000F,但驱动器返回的状态字中位3(使能确认)始终为0。进一步用SDO读取0x603F(错误代码),发现值为0x2310(编码器反馈异常)。检查编码器电缆,发现屏蔽层未接地,导致反馈信号受干扰。重新焊接屏蔽层并增加磁环后,故障消除。此案例说明,CANopen通信正常不代表驱动器内部无故障,必须结合状态字和错误代码综合判断。
3.2 步进电机驱动器的CANopen接口与细分控制
步进电机驱动器在CANopen网络中通常以两种形态出现:一种是内置CANopen协议的智能驱动器,直接支持CiA 402行规;另一种是传统的脉冲型驱动器,需要外接一个CANopen-I/O转换模块或运动控制器输出脉冲。对于内置CANopen的步进驱动器,其接口定义与伺服驱动器类似,但控制逻辑更简单——通常只支持位置模式和速度模式,且没有编码器反馈(开环)或仅有简易闭环。步进驱动器的关键参数包括:细分倍数(通过对象0x6090设置)、电流等级(0x6075)、静止电流(0x6076)。
细分控制是步进电机驱动器的核心特性。例如,一个200步/转的步进电机,设置为16细分后,每转需要3200个脉冲。在CANopen中,目标位置0x607A的单位就是“脉冲数”,而非物理角度。因此,运动控制器必须知道当前细分数,才能正确换算位置值。若在运行中修改细分参数,会导致位置偏差,必须重新回零。此外,步进电机在高速运行时容易失步,建议在PDO中实时监控实际位置(若驱动器支持编码器反馈)或通过速度前馈补偿。
3.2.1 步进驱动器的PDO映射建议
步进驱动器通常支持4个RxPDO和4个TxPDO。推荐将RxPDO1映射为:控制字(0x6040)+ 目标位置(0x607A)+ 目标速度(0x60FF),用于常规定位;TxPDO1映射为:状态字(0x6041)+ 位置实际值(0x6064)+ 跟随误差(0x60F4)。这样,主站只需发送一个PDO即可完成位置和速度设定,同时接收状态反馈。需要注意的是,步进驱动器的PDO映射表必须在驱动器处于“预操作”状态时通过SDO配置,配置完成后需重启或切换到“操作”状态才能生效。
3.2.2 案例:多轴步进系统的同步控制
某3轴点胶机使用3台CANopen步进驱动器,要求三轴同时启动、同时停止。初始方案是主站依次发送3个PDO,但发现轴间启动延迟约2ms,导致胶点位置偏移。改用PDO同步模式后,主站先发送SYNC对象(0x1005),所有驱动器在收到SYNC后同时锁存目标位置并开始运动。同步周期设为1ms,三轴位置偏差从2ms降低到0.1ms以内。此案例表明,对于多轴协同,必须使用SYNC同步机制,而非依赖主站逐个发送。
3.3 运动控制器的CANopen主站功能与网络管理
运动控制器(如PLC、专用运动控制卡或嵌入式控制器)在CANopen网络中扮演NMT主站角色。其核心职责包括:网络初始化(发送NMT启动命令)、节点监控(心跳或节点守护)、SDO客户端(参数读写)、PDO管理(映射配置与同步)。运动控制器的CANopen接口通常集成在CPU模块或专用通信模块上,支持CANopen协议栈,并提供API供用户程序调用。在选型时,需关注其支持的PDO数量、SDO并发能力、同步周期精度以及是否支持冗余CAN总线。
运动控制器的典型控制模式包括:点位运动(PTP)、电子齿轮(Gear)、电子凸轮(Cam)、插补运动(Interpolation)。这些模式在CANopen中通过不同的对象字典组合实现。例如,电子齿轮模式需要设置主站位置(0x60C6)和从站位置(0x60C7)的比例关系,并通过PDO实时接收主站编码器位置。运动控制器必须确保PDO的发送周期与从站的处理周期匹配,否则会出现“齿轮脱啮”现象。
3.3.1 运动控制器的CANopen接口配置流程
- 网络扫描:控制器上电后,发送NMT节点探测命令,识别所有从站的节点ID和类型。
- 参数配置:通过SDO逐个写入各从站的节点ID、波特率、心跳时间等通信参数。
- PDO映射:根据控制需求,配置各从站的RxPDO/TxPDO映射,并设置传输类型(同步/异步)。
- 启动同步:设置SYNC周期,启动PDO循环传输。
- 运行监控:实时读取状态字,检测节点故障并执行紧急停止。
3.3.2 案例:运动控制器与伺服驱动器的PDO同步调优
某包装机械使用运动控制器控制4台伺服驱动器,要求每2ms完成一次位置更新。初始配置中,PDO传输类型设为异步(事件触发),导致总线负载不均,位置更新延迟波动达0.5ms。改为同步传输(传输类型=1,即每个SYNC更新一次)后,将SYNC周期设为2ms,所有驱动器在SYNC后同时执行位置更新。同时,将PDO映射中的目标速度(0x60FF)改为轮廓速度(0x6081),减少了驱动器内部的速度规划计算量。优化后,位置更新延迟稳定在0.1ms以内,包装精度从±1mm提升到±0.2mm。
| 参数项 | 优化前 | 优化后 | 说明 |
|---|---|---|---|
| PDO传输类型 | 异步(事件触发) | 同步(SYNC触发) | 减少总线冲突 |
| SYNC周期 | 无 | 2ms | 匹配控制周期 |
| 速度对象 | 0x60FF(目标速度) | 0x6081(轮廓速度) | 减少驱动器内部计算 |
| 位置更新延迟 | ±0.5ms | ±0.1ms | 提升同步精度 |
3.4 三种设备的接口对比与选型建议
伺服驱动器、步进驱动器和运动控制器在CANopen接口上既有共性,也有显著差异。共性在于它们都遵循CANopen协议栈,使用相同的SDO/PDO机制。差异主要体现在:伺服驱动器支持全闭环和多种控制模式,步进驱动器以开环为主,运动控制器则作为主站负责协调。在选型时,需根据负载特性、精度要求、成本预算和通信实时性综合判断。
- 精度要求:伺服系统定位精度可达±0.01mm,步进系统通常为±0.05mm(带细分)。
- 速度响应:伺服驱动器速度环带宽可达1kHz以上,步进驱动器通常低于200Hz。
- 成本考量:步进系统成本约为伺服系统的1/3,但高速性能受限。
- 通信实时性:两者均支持1Mbps CAN波特率,但伺服驱动器的PDO处理延迟更低。
在接口设计上,务必注意CAN总线终端电阻的配置。标准CANopen网络要求在总线两端各接入一个120Ω终端电阻。若驱动器或控制器内置了终端电阻,需通过跳线或软件使能。错误的终端电阻配置会导致通信不稳定,表现为偶发性的SDO超时或PDO丢帧。建议在调试初期使用CAN示波器测量CAN_H和CAN_L之间的波形,确认差分电压幅值在2V左右。