- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CANopen协议—PDO介绍
目录第一章 PDO实例分析 1
一、目的: 1
二、手段: 1
三、分析: 1
四、过程: 2
4.1.对象字典的编写 2
4.1.1各节点ID分配表定义 2
4.1.2对节点1进行对象字典编写 2
4.1.3对节点2进行对象字典编写 3
4.1.4对节点3进行对象字典编写 5
4.2节点1发送数据至节点2、节点3 6
4.2.1节点1发送数据至总线 6
4.2.2 节点2、节点3从总线接收数据 7
4.3 节点2 发送数据至节点3 8
4.3.1 节点2 发送数据至总线 8
4.3.2 节点3从总线接收数据 9
参考文献 10
第一章 PDO实例分析
一、目的:
实例的目的如图1-1所示,实现节点1的数据(A、B)传送到节点2、节点3,同时实现节点2传输数据(C、D)至节点3 。
图1-1 数据传输目的
二、手段:
使用PDO进行数据传送。
三、分析:
图1-2 SDO客户/服务器通讯模式[1]
PDO通信是基于生产者/消费者(Producer/Consumer)模型,主要用于传输实时数据。产生数据的节点将带有自己节点号的数据放到总线上,需要该数据的节点可以配置为接收该节点发送的数据[3]。
四、过程:
4.1.对象字典的编写
对象字典的结构和条目对于所有设备是共同的,本例中采用索引定位,子索引确定对象的思想构建对象字典,方法是使用结构体定义子索引,子索引结构体的成员变量包含对象的属性(读写权限,数据类型,数据长度等)和指向对象的指针,定义索引时包含指向子索引的指针和子索引数目,对象字典各项在代码中采取如图1-3所示的方式来组织构建,这样可以方便地通过索引和子索引一找到对应的项,对象定义为指针的形式可以通过主站的SDO报文进行读写,实现对对象字典的灵活配置,同时这种方式实现通讯层与应用层共享数据变量的特点。对象字典的条目格式如图1-3所示:
索引 名称 属性 类型 强制/可选
图1-3 对象字典模块结构图
4.1.1各节点ID分配表定义
表1-1 各节点ID分配表
节点 节点1 节点2、 节点3 主节点 NODE-ID 0x01 0x02 0x03 0x04
4.1.2对节点1进行对象字典编写
节点1发送数据至节点2、节点3,故需定义TPDO,我们在此处定义为TPDO1。节点1的应用数据区、TPDO1的通讯参数和映射参数在对象字典中的定义分别如表1-2、1-3和1-4所示。
表1-2 节点1的应用数据区在对象字典中的定义
索引 子索引 名称 类型 值 权限 7100h 00h 入口数目 U8 02h rw 01h A U16 2DFFh rw 02h B U8 C3h rw
表1-3 节点1的TPDO1通讯参数在对象字典中的定义
1800h — TPDO 数据类型 值 权限 00h 入口数目 U8 05h ro 01h 发送PDO标识符 U32 180h+NodeID rw 02h 传输类型 U8 FFh rw 03h 禁止时间 U16 00h rw 04h Reserved —— —— rw 05h event timer U16 0x0000h rw
节点1的TPDO1的COB-ID定义为181h。
表1-4 节点1的TPDO1的映射参数在对象字典中的定义
1A00h — TPDO1 数据类型 值 权限 00h PDO映射数目 U8 02h rw 01h A U16 7100 01 10h rw 02h B U8 7100 02 08h rw
4.1.3对节点2进行对象字典编写
节点2接收来自节点1的数据(A、B),故需定义RPDO1;此外节点2将数据传(C、D)送给节点3,故需要定义TPDO2。节点2的应用数据在对象字典中的定义如表1-5所示。
表1-5 节点2的应用数据在对象字典中的定义
索引 子索引 名称 类型 值 权限 7200h 00h 入口数目 U8 02h rw 01h A U16 -- rw 02h B U8 -- rw 7300h 00h 入口数目 U8 02h rw 01h C U16 F3CCh rw 02h D U8 D5h rw
此时索引为7200h,子索引为01h,02h条目中起初并没有实际值,这两个条目分别用来接收节点1的数据A、B。接受数据后,子索引为01h的条目的值为2DFFh,子索引为02h的条目为C3h。索引为7300h,子索引为01h,02h条目中为数据C、D的索引。
表1-6 节点2的RPDO1通讯参数在对象字典中的定义
1400h — RPDO1
文档评论(0)