CanOpen--PDO映射

发布时间:2023年12月21日

1 介绍

1.1 概述

CANOpen协议主要内容分为三大块,如下图CANopen 的设备模型。
在这里插入图片描述

PDO

过程数据对象用于在节点之间传送过程数据,如I/O模块I/O状态读取和设定,模拟量采集和模拟量输出等等,协议考虑从机硬件限制最多支持4组PDO,每组包含一个RPDO和一个TPDO。The Gold drive supports 4 TPDO and 4 RPDO. Each PDO contains up to 8 bytes of data.
在这里插入图片描述

SDO 传输框架

SDO 传输方式遵循客户端—服务器模式,即一问一答方式。由 CAN 总线网络中的 SDO 客户端发起,SDO 服务器作出应答。因此, SDO 之间的数据交换至少需要两个 CAN 报文才能实现, 而且两个 CAN 报文的 CAN 标识符不一样。
在这里插入图片描述

SDO 传输报文

SDO 的传输分为不高于 4 个字节和高于 4 个字节的对象数据传输。 不高于 4 个字节采用加速 SDO 传输方式,高于 4 个字节采用分段传输或块传输方式。SDO 传输报文由 COB-ID 和数据段组成。由下表 可以看出,T_SDO 和R_SDO 报文的 COB-ID 不一致。数据段采用小端模式,即低位在前,高位在后排列。 所有的 SDO 报文数据段都必须是 8 个字节。SDO 传输报文格式如下表:
在这里插入图片描述

对于不高于 4 个字节的读写, 采用加速 SDO 传输。 按照读写方式及内容数据长度的不一致,传输报文各不相同。加速 SDO 写报文如下表:
在这里插入图片描述

符号- 表示数据不予考虑,写数据时建议写 0。

1.2 问题 PDO 配置流程异常

  • 示例
    PDO 先关闭,然后配置,再开启
    在这里插入图片描述

  • 控制程序代码
    PDO 直接开启,然后配置

x 23 00 18 01 81 01 00 00
x 80 00 18 01 43 00 04 06
x 2F 00 18 02 FF 00 00 00
x 60 00 18 02 00 00 00 00
x 2B 00 18 03 05 00 00 00
x 60 00 18 03 00 00 00 00

2 canopen

3 PDO 设置流程

3.1 西门子

SIEMENS–G120 CANopen PDO 通信

3.4 自由 PDO映射设置

使用 STARTER 软件只能通过专家列表配置 PDO 映射参数,双击控制单元树状视图的"Expert list"可以打开专家列表。使用 BOP-2 面板调试请参考以下步骤中对应的参数号将 PDO 映射方式修改为自由映射,P8744= 2:
修改 RPDO1 通信参数和映射参数:

  1. 修改 RPDO1 的 COB-ID 并允许修改映射: P8700[0]=80000202H;
  2. 修改 RPDO1 传输类型: P8700[1]=FEH(采用默认值: 立即接收)
  3. 修改映射: 设置映射参数 P8710[0]=6040 00_10H;
  4. 修改映射: 设置映射参数 P8710[1]=5800 00_10H;
  5. 修改映射: 设置映射参数 P8710[2]= 0H;
  6. 修改映射: 设置映射参数 P8710[3]= 0H;
  7. 将 PRDO1 设置为禁止修改映射: P8700[0]=202 H;

3.2 cnblog 一博主给的流程

7、【good】CANopen笔记2–PDO过程数据对象

PDO 映射事例:将Controlword对象0x6040和Interpolated data record对象0x60C1:1h映射到RPDO1,传输类型为同步类型
(1) Disable RPDO1(COB-ID 0x201),client sends:
	0x601  0x22 0x00 0x14 0x01 0x01 0x02 0x00 0x80
	
	Clear mapping RPDO1,client sends:
	0x601  0x22 0x00 0x16 0x00 0x00 0x00 0x00 0x00
  
(2) Set CW, object 0x6040, 16 bit length in sub index 1 of RPDO1
	0x601  0x22 0x00 0x16 0x01 0x10 0x00 0x40 0x60

	Set Interpolated data record, object 0x60C1, Sub index 1, 32 bit length in sub index 2 of RPDO1
	0x601  0x22 0x00 0x16 0x02 0x20 0x01 0xC1 0x60

(3) Set transmission type synchronous, every SYNC (RPDO默认传输类型值为255,即默认异步传输)
	0x601  0x22 0x00 0x14 0x02 0x01 0x00 0x00 0x00

(4) Set 2 objects are mapped
	0x601  0x22 0x00 0x16 0x00 0x02 0x00 0x00 0x00

	Enalbe RPDO1
	0x601  0x22 0x00 0x14 0x01 0x01 0x02 0x00 0x00

3.3 雪花飞龙

CANopen通信----PDO与SDO【复制】
CanOpen通信----PDO与SDO【原创】

PDO 的映射配置遵循流程如下

在这里插入图片描述

3.4 zaichen321

03_过程数据对象(PDO)

PDO的映射配置流程如下

  1. 无效PDO; // PDO的COB-ID 最高位写1;
  2. 清除原有映射内容; // 对映射对象的子索引0x0写入0;
  3. 写入PDO映射内容; // 按照映射定义分别写入映射参数子索引;
  4. 写入该PDO映射对象总个数; // 将映射个数写到映射对象子索引0x00
  5. 有效该PDO; // PDO的COB-ID 最高位写1;// 修改为:最高位写0;
1.配置TPDO1
10x603 0x08       0x23 0x00 0x18 0x01 0x83 0x01 0x00 0x80 // 去使能TPDO1 
20x603 0x08       0x2F 0x00 0x18 0x02 0x01 0x00 0x00 0x00 // 1个有效数据,设置TPDO1的传输类型,SYNC 

30x603 0x08       0x2F 0x00 0x1A 0x00 0x00 0x00 0x00 0x00 //  对映射对象的子索引0x0写入0;清除原有映射内容
40x603 0x08       0x23 0x00 0x1A 0x01 0x10 0x00 0x41 0x60 //  写入映射对象1,0x60410010
50x603 0x08       0x23 0x00 0x1A 0x02 0x08 0x00 0x61 0x60 //  写入映射对象2,0x60610008
60x603 0x08       0x23 0x00 0x1A 0x03 0x20 0x00 0x6C 0x60 //  写入映射对象3,0x606C0020
70x603 0x08       0x2F 0x00 0x1A 0x00 0x03 0x00 0x00 0x00 //  映射对象的子索引0x0写入3,说明有3个映射对象
80x603 0x08       0x23 0x00 0x18 0x01 0x83 0x01 0x00 0x00 //  使能TPDO1

3.4 cariohu

CAN与CANOPEN

映射PDO

//使1800 subindex1通讯对象TPDO 最高位为1,以便修改TPDO
0601        23  00  18  01  81  01  00  80
0581        60  00  18  01  00  00  00  00

//设置通讯模式 255-异步
0601        2F  00  18  02  FF 
0581        60  00  18  02  00  00  00  00

//清空1A00中映射的对象数目
0601        2F  00  1A  00  00 
0581        60  00  1A  00  00  00  00  00

//映射第一个对象6064 subindex0  20代表数据长度,00是6064的第0个subindex
0601        23  00  1A  01  20  00  64  60
0581        60  00  1A  01  00  00  00  00

//设置1A00中映射的对象数目
0601        2F  00  1A  00  01
0581        60  00  1A  00  00  00  00  00

//将1800 subindex1的最高位清零,是TPDO有效
0601        23  00  18  01  81  01  00  00
0581        60  00  18  01  00  00  00  00

参考

1、CiA301CANopen应用层和通信协议
2、行动元–CANopen设置
3、SIEMENS–G120 CANopen PDO 通信
4、CAN 知识简析及应用分享
5、CANOpen系列教程07_CANOpen协议概述
6、德国工程师的 CANopen 备忘录
7、【good】CANopen笔记2–PDO过程数据对象
8、CANopen通信----PDO与SDO【复制】
9、CanOpen通信----PDO与SDO【原创】
10、03_过程数据对象(PDO)
11、CAN与CANOPEN

文章来源:https://blog.csdn.net/qq_38880380/article/details/135116593
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。