logo资料库

canopen协议中PDO和SDO的实现方式.doc

第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
资料共20页,剩余部分请下载后查看
第一章 PDO应用实例分析
一、目的
二、手段
三、分析
四、过程
4.1.对象字典的编写
4.1.1各节点ID分配表定义
4.1.2对节点1进行对象字典编写
4.1.3对节点2进行对象字典编写
4.1.4对节点3进行对象字典编写
4.2节点1发送数据至节点2、节点3
4.2.1节点1发送数据至总线
4.2.2 节点2、节点3从总线接收数据
4.3 节点2 发送数据至节点3
4.3.1 节点2 发送数据至总线
4.3.2 节点3从总线接收数据
第二章 SDO应用实例分析
一、目的:
二、手段:
三、分析:
四、过程:
4.1.对象字典的编写
4.1.1各节点ID分配
4.1.2对节点1进行对象字典编写
4.1.3对节点2进行对象字典编写
4.1.4对节点3进行对象字典编写
4.2节点1读取节点2数据
4.2.1节点1发送请求读取命令至节点2
4.2.2 节点2响应节点1读取命令
4.3 节点1写入数据至节点3
4.3.1 节点1 发送数据至节点3
4.3.2 节点3响应节点1写入数据命令
附录一:
机械工程学院机械设计及理论研究所 目录 第一章 PDO 应用实例分析 ...........................................................................................................1 一、目的..................................................................................................................... 1 二、手段..................................................................................................................... 1 三、分析..................................................................................................................... 1 四、过程..................................................................................................................... 2 4.1 对象字典的编写........................................................................................................ 2 4.1.1 各节点 ID 分配表定义 .................................................................................... 3 4.1.2 对节点 1 进行对象字典编写 .......................................................................... 3 4.1.3 对节点 2 进行对象字典编写 .......................................................................... 4 4.1.4 对节点 3 进行对象字典编写 .......................................................................... 6 4.2 节点 1 发送数据至节点 2、节点 3.......................................................................... 7 4.2.1 节点 1 发送数据至总线.................................................................................. 7 4.2.2 节点 2、节点 3 从总线接收数据.................................................................. 8 4.3 节点 2 发送数据至节点 3....................................................................................... 9 4.3.1 节点 2 发送数据至总线................................................................................ 9 4.3.2 节点 3 从总线接收数据............................................................................... 10 第二章 SDO 应用实例分析 ...........................................................................................................1 一、目的 ............................................................................................................................................1 二、手段 ............................................................................................................................................1 三、分析 ............................................................................................................................................1 四、过程 ............................................................................................................................................2 4.1 对象字典的编写..................................................................................................2 4.1.1 各节点 ID 分配 ....................................................................................................... 2 4.1.2 对节点 1 进行对象字典编写 ................................................................................. 2 4.1.3 对节点 2 进行对象字典编写 ................................................................................. 2 4.1.4 对节点 3 进行对象字典编写 ................................................................................. 3 4.2 节点 1 读取节点 2 数据.................................................................................... 4 4.2.1 节点 1 发送请求读取命令至节点 2......................................................................4 4.2.2 节点 2 响应节点 1 读取命令 ................................................................................ 4 4.3 节点 1 写入数据至节点 3................................................................................ 6 4.3.1 节点 1 发送数据至节点 3.................................................................................. 6 4.3.2 节点 3 响应节点 1 写入数据命令 ......................................................................7 附录一................................................................................................................................................8 CANopen 工作流分析 Date: 2011-5-20 V1.0 Copyright By Tongji University i
机械工程学院机械设计及理论研究所 第一章 PDO 应用实例分析 一、目的 本应用实例的目的如图 1-1 所示,实现节点 1 的数据(A、B)传送到节点 2、 节点 3,同时实现节点 2 传输数据(C、D)至节点 3 。 图 1-1 数据传输目的 二、手段 使用 PDO 进行数据传送。 三、分析 CANopen 工作流分析 Date: 2011-5-20 V1.0 1
机械工程学院机械设计及理论研究所 图 1-2 SDO 客户/服务器通讯模式[1] PDO 通信是基于生产者/消费者(Producer/Consumer)模型,主要用于 传输实时数据。产生数据的节点将带有自己节点号的数据放到总线上,需要该 数据的节点,可以配置为接收该 PDO[3]。 四、过程 4.1.对象字典的编写 对象字典的结构和条目对于所有设备是共同的,本例中采用索引定位,子 索引确定对象的思想构建对象字典,方法是使用结构体定义子索引,子索引结 构体的成员变量包含对象的属性(读写权限,数据类型,数据长度等)和指向 对象的指针,定义索引时包含指向子索引的指针和子索引数目,对象字典各项 在代码中采取如图 1-3 所示的方式来组织构建,这样可以方便地通过索引和子 索引找到对应的项,对象定义为指针的形式可以通过主站的 SDO 报文进行读写, 实现对对象字典的灵活配置,同时这种方式实现通讯层与应用层共享数据变量 的特点。对象字典的条目格式如图 1-3 所示: 索引 对象(符号名) 名称 属性 类型 强制/可选 CANopen 工作流分析 Date: 2011-5-20 图 1-3 对象字典模块结构图 V1.0 2
机械工程学院机械设计及理论研究所 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 的应用数据区在对象字典中的定义 索引 子索引 名称 入口数目 A B 类型 U8 U16 U8 值 02h 2DFFh C3h 权限 rw rw rw 7100h 1800h 00h 01h 02h — 00h 01h 02h 03h 04h 05h 表 1-3 节点 1 的 TPDO1 通讯参数在对象字典中的定义 TPDO 入口数目 发送 PDO 标识符 传输类型 禁止时间 Reserved event timer 数据类型 U8 U32 U8 U16 —— U16 值 05h 180h+NodeID FFh 00h —— 0x0000h 权限 ro rw rw rw rw rw 节点 1 的 TPDO1 的 COB-ID 定义为 181h(1801H ?)。 1A00h 表 1-4 节点 1 的 TPDO1 的映射参数在对象字典中的定义 — 值 TPDO1 数据类型 00h 01h 02h PDO 映射数目 A B U8 U16 U8 02h 7100 01 10h 7100 02 08h CANopen 工作流分析 Date: 2011-5-20 V1.0 3 权限 rw rw rw
机械工程学院机械设计及理论研究所 其中 7100 01 10h 映射数据对象字典中索引为 7100h,子索引为 01h,长度 为 16 位的数据。 4.1.3 对节点 2 进行对象字典编写 节点 2 接收来自节点 1 的数据(A、B),故需定义 RPDO1;此外节点 2 将 数据传(C、D)送给节点 3,故需要定义 TPDO2。节点 2 的应用数据在对象字 典中的定义如表 1-5 所示。 索引 子索引 名称 类型 表 1-5 节点 2 的应用数据在对象字典中的定义 7200h 7300h 00h 01h 02h 00h 01h 02h 入口数目 A B 入口数目 C D U8 U16 U8 U8 U16 U8 值 02h -- -- 02h F3CCh D5h 权限 rw rw rw rw rw rw 此时索引为 7200h,子索引为 01h,02h 条目中起初并没有实际值,这两个 条目分别用来接收节点 1 的数据 A、B。接受数据后,子索引为 01h 的条目的值 为 2DFFh,子索引为 02h 的条目为 C3h。索引为 7300h,子索引为 01h,02h 条 目中为数据 C、D 的索引。 1400h — 表 1-6 节点 2 的 RPDO1 通讯参数在对象字典中的定义 值 数据类型 RPDO1 00h 01h 02h 03h 04h 05h 入口数目 接收 PDO 标识符 传输类型 禁止时间 Reserved event timer U8 U32 U8 U16 —— U16 05h 180h+NodeID FFh 0 —— 0x0000h CANopen 工作流分析 Date: 2011-5-20 V1.0 4 权限 ro rw rw rw rw rw
节点 2 定义 RPDO1 的 COB-ID 为 181h,对应节点 1 的 TPDO 的 COB-ID, 实现节点 1 与节点 2 之间的数据传输。 机械工程学院机械设计及理论研究所 1600h 表 1-7 节点 2 的 RPDO1 映射参数在对象字典中的定义 — 值 数据类型 RPDO 00h 01h 02h PDO 映射数目 A B U8 U16 U8 02h 7200 01 10h 7200 02 08h 权限 rw rw rw 其中 7200 01 10h 表示映射到对象字典中索引为 7200h,子索引为 01h,长 度为 16 位的数据。 因为节点 2 发送数据至节点 3,故需在对象字典中定义 TPDO,在此定义为 TPDO2,其通讯参数和映射参数定义如表 1-8 和 1-9 所示。 表 1-8 节点 2 中 TPDO2 通讯参数在对象字典中的定义 1800 — TPDO2 00h 入口数目 01h 发送 PDO 标识符 02h 03h 04h 05h 传输类型 禁止时间 Reserved event timer 数据类型 U8 U32 U8 U16 —— U16 值 05h 280h+NodeID FFh 00h —— 0x0000h 节点 2 的 TPDO2 的 COB-ID 为 282h。 1A00 — 表 1-9 节点 2 中 TPDO2 映射参数在对象字典中的定义 值 数据类型 TPDO1 00h 01h PDO 映射数目 C U8 U16 02h 7300 01 10h CANopen 工作流分析 Date: 2011-5-20 V1.0 5 权限 ro rw rw rw rw rw 权限 rw rw
02h D U8 7300 02 08h rw 机械工程学院机械设计及理论研究所 其中 7300 01 10h 表示映射到对象字典中索引为 7300h,子索引为 01h,长 度为 16 位的数据 4.1.4 对节点 3 进行对象字典编写 节点 3 分别接受节点 1、节点 2 的数据,需在节点 3 的对象字典中定义 RPDO1、RPDO2,其中 RPDO1 的 COB-ID 需与节点 1 的 TPDO1 的 COB-ID 一 致,RPDO2 的 COB-ID 需与节点 2 的 TPDO2 的 COB-ID 一致。 索引 子索引 名称 类型 表 1-10 节点 3 的应用数据在对象字典中的定义 7100h 7200h 00h 01h 02h 00h 01h 02h 入口数目 A B 入口数目 C D U8 U16 U8 U8 U16 U8 值 02h -- -- 02h -- -- 权限 rw rw rw rw rw rw 其中名称为 A、B、C、D 的条目起初并没有实际值,接受节点 1 和节点 2 的数据后,这些条目才具有相应的值。 1400h — 表 1-11 节点 3 的 RPDO1 的通讯参数在对象字典中的定义 值 数据类型 RPDO1 00h 入口数目 01h 接收 PDO 标识符 02h 03h 04h 传输类型 禁止时间 Reserved U8 U32 U8 U16 —— 05h 180h+Nod eID FFh 0 —— CANopen 工作流分析 Date: 2011-5-20 V1.0 6 权限 ro rw rw rw rw
机械工程学院机械设计及理论研究所 05h event timer U16 0x0000h rw 其中 RPDO1 的 COB-ID 为 181h,与节点 1 的 TPDO1 的 COB-ID 一致,实 现节点 1 与节点 3 之间的数据传输。 1600h 1401h 表 4-11 节点 3 的 RPDO1 的映射参数在对象字典中的定义 值 数据类型 RPDO1 — 00h 01h 02h PDO 映射数目 A B U8 U32 U32 02h 7100 01 10h 7100 02 08h 表 4-12 节点 3 的 RPDO2 的通讯参数在对象字典中的定义 值 05h RPDO2 入口数目 数据类型 — 00h 01h 接收 PDO 标识符 02h 03h 04h 05h 禁止时间 Reserved event timer 传输类型 U8 U32 U8 U16 —— U16 280h+NodeID FFh 0 —— 0x0000h 权限 rw rw rw 权限 ro rw rw rw rw rw 权限 rw rw rw 其中 RPDO2 的 COB-ID 为 282h,与节点 2 的 TPDO2 的 COB-ID 一致,实 现节点 2 与节点 3 之间的数据传输。 1601h — 表 4-13 节点 3 的 RPDO2 的映射参数在对象字典中的定义 值 数据类型 RPDO2 00h 01h 02h PDO 映射数目 C D U8 U32 U32 02h 7200 01 10h 7200 02 08h 4.2 节点 1 发送数据至节点 2、节点 3 4.2.1 节点 1 发送数据至总线 节点 1 的 TPDO1 报文组装如图 1-4 所示: CANopen 工作流分析 Date: 2011-5-20 V1.0 7
分享到:
收藏