首页 > 编程知识 正文

modbus与canopen比较,canopen接口是什么

时间:2023-05-03 11:30:58 阅读:174415 作者:3883

canopen介绍:

CAN提供所有网络管理服务和消息传递协议,但没有定义对象的内容和正在通信的对象的类

类型(它只定义了how,没有定义what ),这正是CANopen的切入点。 CANopen的核心概念是设备对象目录(od )。 CANopen通信可以通过目标词典(OD )访问驱动器的所有参数。

can的数据帧结构:

canopen基于can帧详细地分配了COB_ID和数据字段的使用方法

通常来说,帧ID是COB_ID,cob _ id (11比特)=功能码4比特(node_id ) 4比特,这使得理论上can能够有最多127个节点但是,在实际的APP应用中,最大节点的数目将取决于所使用的CAN收发器的性能。

功能代码说明:

刚接触canopen的时候对功能码不太了解。 简单来说,功能代码指示了每个can帧的作用。 是SDO还是PDO? 是TPDO还是RPDO? 例如:

can帧ID SDO标准结构:

600h Node_ID :从主站向从站580h Node_ID :从站返回主站123 can帧ID PDO标准结构:

tdo:180 hnode _ IDR PDO :200 hnode _ id 280 node _ id 300 hnode _ id 380 hnode _ id 480 node _ id 500 hnode _ id 11110

每个PDO都通过两个对象(通信参数和映射参数)写入对象词典中。

PDO通信参数表示使用哪个COB-ID、传输类型、无效时间和定时时间;

PDO映射参数用于设置PDO消息中数据的映射关系,并确定要传输的数据在CAN消息数据字段中的位置。 通过该参数,PDO的生产者和消费者可以知道发送了什么样的信息。

PDO最多可以映射四个对象。

下面从量上详细介绍了常见的子协议区域是如何定义的。

对象词典中公共子协议区域的索引为1000-1FFFh。 其中

1400-15FFh设置RPDO通信参数1600-17FFh设置RPDO映射参数1800-19FFh设置TPDO通信参数1A00-1BFFh设置TPDO映射参数接着,以表格式更直观地显示需要操作PDO配置的位置

表中金额参数对应请参考对象词典通用子协议区域。

PDO映射流程:

1、使能PDO的映射参数(1600 h或1601 h或1A00 h或1A01 h )子索引0的内容为0;

2、修改PDO兼容映射参数(1600 h或1601 h或1A00 h或1A01 h )子索引1~4的内容进行映射

数据;

3、设置启用PDO的映射参数(1600 h或1601 h或1A00 h或1A01 h )子索引0的内容是合法的

数字(此PDO映射的对象数)。

4、PDO映射完成。

PDO有几种传输方法。

同步(通过接收SYNC对象进行的同步(周期)传输由设备子协议(每1~240条SYNC消息触发异步)中定义的对象特定事件触发。 1234

一个PDO可以指定禁止时间。 也就是说,定义两个连续PDO传输的最小间隔时间,并且取决于高优先级信道

信息数据量过大,总是占用总线,其他低优先级数据无法与总线竞争的问题。 禁止时间为16位无

符号整数定义符号整数的定义,单位为100us。

PDO可以指定事件定时周期,在超过定时时间后,可以启动PDO转发(例如

位)。 事件周期由16位无符号整数定义,单位为1ms。

下面通过示例说明构成PDO的具体操作。

要使用SDO将单个RPDO映射设置为6040h,请执行以下步骤: ()假设装置的节点ID为10 ) ) ) ) ) ) ) ) ) ) ) ) )。

60a2f 00160000000000//rpdo1stop 60 a 2300160110004060//6040 h,长度为16个字节60a2f 0016000100000//rpdo1enable

PDO通信参数的设定

PDO1(发送)是异步周期型transmission_type ) 1800h:02h )=FF h

60A 2F 0018 02 FF 00 00 00

禁止时间2ms(20100us ) inhibit_time ) 1800h:03 )=14h

60A 2F 00 18 03 14 00 00 00

周期时间10ms(101ms ) event_time ) 1800h:05h )=0A h

60A 2F 00 18 05 0A 00 00 00

这样就完成了PDO。

此外,还必须配置RPDO的COB_ID映射。 否则,就不知道将此帧数据发送到哪个节点进行使用。

60A 23 00 14 01 0A 02。

PDO配置完成后,需要重置通信(Reset Communication )才能使配置生效。 NMT管理:

00 82 0A //复位节点号为a的驱动器通信

重新开始通信

00 01 0A ////有效节点a

这样就可以在帧id20a的RPDO中配置电机6040 (控制字)。 例如,使能马达:

601 2B 40 60 00 06 00 00 00 //设定6040h为6

将6012b406000070000//6040h定为7

将6012b406000f000000//6040h设定为f,启用电机;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。