CANopen是一种架构在控制局域网络(Controller Area Network, CAN)上的高层通信协议,包括通信子协议及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。
CANopen由非营利组织CiA(CAN in Automation)进行标准的起草及审核工作,基本的 CANopen 设备及通讯子协定定义在 CAN in Automation (CiA) draft standard 301中。针对个别设备的子协定以 CiA 301 为基础再进行扩充。如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。
地址:https://www.can-cia.org/groups/specifications/
基本的 CANopen 设备及通讯子协定定义在 CAN in Automation (CiA) draft standard 301中。针对个别设备的子协定以 CiA 301 为基础再进行扩充。如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。
NMT 服务可用于启动、开始、监控、重置或停止 CANopen 设备。
这样,控制器即可遵循下图所示的状态图。只有在打开后或通过发送“重置通信”或“重置节点”NMT 命令才能达到“初始化”状态。 初始化之后可自动激活“预操作”状态。
nmt 消息的 CAN-ID 为 0。消息长度始终为两字节,结构如下:
的值可为 00h;在这种情况下,NMT 命令适用于 CAN 总线(广播)上的所有设备。如果使用了非零数字,则只对具有相应节点 ID 的设备进行寻址。
同步对象用于同时验证总线上所有设备的 PDO 数据的时间。同步消息的结构如下:
对于 SYNC 操作,通常为 RX-PDO 使用传输模式(传输类型)0(数据对下次 SYNC 有效);对于 TX-PDO,则选择 1 到 240 的传输模式。
接收到 SYNC 消息后,会有一个判定时间(“同步判定时间”),在此时间范围内可以发送和接收 PDO 消息;达到此判定时间后,所有设备都必须停止发送 PDO。可在对象 1007h:00h 中设置“同步判定时长”(毫秒)。
只要控制器中发生不是由 SDO 访问引起的错误,就会发送“紧急事件”类型的消息。该服务未经确认,通过 CAN-ID 80h+节点 ID 发送。
紧急事件消息的结构如下:
“服务数据对象”允许对对象目录进行读取或写入访问。
将对象目录的所有者称为“服务器”;将想要请求或写入数据 CAN 节点称为“客户端”。“上传”是指从对象目录读取对象的值;“下载”是指将值写入对象目录。
用于向服务器的对象目录写入数据的加速 SDO 消息结构如下:
对于不高于 4 个字节的读写, 采用加速 SDO 传输。 按照读写方式及内容数据长度的不一致,传输报文各不相同。加速 SDO 写报文如下表:
过程数据对象 (PDO) 用来传输实时的数据,是 CANopen 中最主要的数据传输方式。由于 PDO 的传输不需要应答,且 PDO 的长度可以小于 8 个字节,因此传输速度快。
PDO 的映射配置遵循流程如下:
按照接收与发送的不同,PDO 可分为 RPDO 和 TPDO。 PDO 由通信参数和映射参数共同决定最终传输的方式及内容。 本伺服驱动器使用了 4 个 RPDO 和 4 个 TPDO 来实现 PDO 的传输,相关对象列表如下:
https://us.nanotec.com/products/manual/PD4E_CANopen_ZH/pd4e%2Fintroduction.html?cHash=d3b43174da641a1d53fca9c28d935948
没有反馈的系统控制模式称为开环,有反馈的系统控制模式称为闭环。在闭环控制模式中,无论反馈信号来自电机本身还是来自受影响进程,最初都是无关紧要的。
对于有反馈的控制器,会不断地将测量的控制变量(实际值)与设置点(设置值)进行比较。如果这些值之间存在偏差,控制器将根据规定的控制参数重新调节。
除物理反馈系统(如通过编码器或霍尔传感器)以外,还使用基于模型的反馈系统,统称为无传感器系统。这两种反馈系统也可组合使用,从而进一步提高控制质量。
开环优化:
开环模式下可能会发生共振;在低负载时尤其容易受共振影响。实践经验表明,根据不同应用,多种措施均能够大幅减少共振:
在对象 6040h(控制字)中请求状态更改。
在对象 6041h(状态字)中查看状态机的实际状态。
数字输入可用作限位开关。控制器也支持软件限位开关。
限位开关后即是公差带的起点。在此公差带内可自由运动。可在对象 2056h 中设定公差带的长度。
如果电机进入禁止范围,则控制器将触发立即停止,并切换到故障状态。
软件限位开关
控制器会考虑软件限位开关(607Dh(软件位置限制))。通过 607Dh 限制目标位置 (607Ah);要求位置 (6062h) 不得大于 607Dh 中的限值。如果设置限位开关时,电机处于允许范围以外,则仅接受允许范围方向的行程命令。
对象 6060h(操作模式)设定值“1”。
对象 6083h(标准加速度)、6084h(标准减速度)和 6081h(标准速度)。
标准定位模式用于移至最后目标位置的相对位置或绝对位置(最后参考位置)。在运动过程中,会考虑转速、启动加速度/制动减速度以及加加速的限值。
对象 6048h(速度加速度)、6049h(速度减速度)和 6042h(目标速度)。
对象 6083h(标准加速度)、6084h(标准减速度)和 6081h(标准速度)。
对象 609Ah(找零加速度)、6099h:01h(搜索开关时的速度)和 6099h:02h(搜索零点时的速度)。
可通过高级控制器影响加速和减速斜坡。
可通过外部“定位规定/时间单位”目标影响加速和减速斜坡。
可通过外部“定位规定/时间单位”目标影响加速和减速斜坡。
通过对象 2057h(脉冲方向乘法器)和 2058h(脉冲方向除法器)更改步进分辨率。通过调整脉冲频率优化加速/减速斜坡,以尽快传递共振范围。
控制器的软件为各个对象中的输入和输出分配两个位(如 60FDh Digital Inputs 或 60FEh Digital Outputs):
https://us.nanotec.com/products/manual/PD4E_CANopen_ZH/object_dictionary%2Fobject_dir_intro.html?cHash=d3b43174da641a1d53fca9c28d935948
CANOPEN使用心得1-cia301、cia402简单提要
https://www.canopensolutions.com/
https://us.nanotec.com/
https://us.nanotec.com/products/manual/PD4E_CANopen_ZH/pd4e%2Fintroduction.html?cHash=d3b43174da641a1d53fca9c28d935948
1、官方–CANopen
2、百科–CANopen
3、CanOpen通信----PDO与SDO
4、CanOpen学习记录
5、CanOpenSolutions
6、nanotec–CANOPEN
7、20210714学习手记 CANopen 协议
8、学习CANopen — [5] SDO
9、OSI七层模型、CAN、CiA、CANopen、CiA301CiA402和EtherCAT介绍
10、CANOpen轻松入门—对象字典OD
11、CANOPEN使用心得1-cia301、cia402简单提要
12、CAN总线与CANOPEN协议入门
13、canopen报文格式,通信及映射参数
14、CANopen版本控制产品修改映射PDO对象方法
15、从CAN到CANOpen——准入门大全(三)