CIA402介绍CANopen CiA402也常被称为 DS402是工业自动化领域极为重要的一个标准。简单来说它是CANopen协议体系中专门为“驱动和运动控制设备”如伺服驱动器、变频器、步进电机控制器量身定制的一套通用语言和行为规范。核心组成一标准化的状态机 (State Machine)状态切换驱动器被划分为多个标准状态例如“未准备就绪 (Not Ready to Switch On)”、“准备就绪 (Ready to Switch On)”、“运行使能 (Operation Enabled)”、“故障 (Fault)”等。控制与反馈上位机如 PLC 或运动控制器通过写入控制字 (Control Word)来指挥驱动器切换状态驱动器则通过反馈状态字 (Status Word)来告知上位机自己当前的实际状态。核心组成二统一的对象字典 (Object Dictionary)对象字典是 CANopen 设备的“内存数据库”CiA402 对其中的关键区域进行了严格规范确保不同厂商的设备在语义上完全一致。其中最核心的专用区域是0x6000–0x6FFF。以下是 CiA402 协议中最常用、最核心的对象字典索引对象索引参数名称功能说明6040h控制字u16控制状态机的切换、使能和故障复位等6041h状态字u16反馈驱动器运行状态、故障码等6060h操作模式选择Int8切换伺服的运动模式6071h目标力矩6077h实际力矩60FFh目标速度607Ah目标位置参考通过CANopenCia402和Elmo通讯首先通过SDO或者RPDO向操作模式6060h写入对应的模式代码-128 ——- -2保留-1无模式0保留1位置模式2速度模式不支持3速度模式4扭矩模式5保留6Homing mode7Interpolated position mode8 ——- 127保留然后通过SDO或者RPDO向控制字6040h按照特定顺序写入数值引导驱动器状态机的跳转写入0x06从“未准备就绪”切换到“准备就绪 (Ready to Switch On)”。写入0x07切换到“已通电 (Switched On)”。写入0x0F切换到“运行使能 (Operation Enabled)”。此时电机励磁准备接收运动指令。(切换过程中可以通过读取状态字 0x6041 来确认当前状态)最后通过SDO或者RPDO向对象字典6071h写入期望的扭矩数值。数据单位通常是千分比‰然后通过读取0x6077来实时监控输出扭矩。典型流程在实际控制伺服驱动器时驱动器上电后通常NMT状态机处于Pre-operational。主站必须先发送NMT命令如COB-ID000 DATA: 01 00来将节点的NMT状态切换为Operational。接着通过SDO或PDO写入控制字将CiA402状态机一步步切换到Operation Enabled,此时才能正常控制电机运作。如果电机发生过流等错误CiA402状态机会跳转到Fault状态但此时NMT依然可以是Operational,保证可以通过总线读取到故障码0x603F并进行复位。只有发生极端的总线断开或系统级错误时NMT状态机才会停止。——————————————————————————————————————————通过SDO来进行通讯