机械工程学院机械设计及理论研究所
目录第一章 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数据 ........................................................................ 3
4.2.1节点1发送请求读取命令至节点2..................................................................... 3 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工作流分析 V1.0
Date: 2011-5-20 Copyright By Tongji University i
机械工程学院机械设计及理论研究所
第一章 PDO应用实例分析
一、目的
本应用实例的目的如图1-1所示,实现节点1的数据(A、B)传送到节点2、节点3,同时实现节点2传输数据(C、D)至节点3 。
图1-1 数据传输目的
二、手段
使用PDO进行数据传送。
三、分析
CANopen工作流分析 V1.0 Date: 2011-5-20 1
机械工程学院机械设计及理论研究所
图1-2 SDO客户/服务器通讯模式
[1]
PDO通信是基于生产者/消费者(Producer/Consumer)模型,主要用于
传输实时数据。产生数据的节点将带有自己节点号的数据放到总线上,需要该数据的节点,可以配置为接收该PDO[3]。
四、过程
4.1.对象字典的编写
对象字典的结构和条目对于所有设备是共同的,本例中采用索引定位,子索引确定对象的思想构建对象字典,方法是使用结构体定义子索引,子索引结构体的成员变量包含对象的属性(读写权限,数据类型,数据长度等)和指向对象的指针,定义索引时包含指向子索引的指针和子索引数目,对象字典各项在代码中采取如图1-3所示的方式来组织构建,这样可以方便地通过索引和子索引找到对应的项,对象定义为指针的形式可以通过主站的SDO报文进行读写,实现对对象字典的灵活配置,同时这种方式实现通讯层与应用层共享数据变量的特点。对象字典的条目格式如图1-3所示:
索引 对象(符号名)
名称 属性 类型 强制/可选 图1-3 对象字典模块结构图
CANopen工作流分析 V1.0 Date: 2011-5-20 2
机械工程学院机械设计及理论研究所
4.1.1各节点ID分配表定义
表1-1 各节点ID分配表 节点 NODE-ID 节点1 节点2、 节点3 0x01 0x02 0x03 主节点 0x04
4.1.2对节点1进行对象字典编写
节点1发送数据至节点2、节点3,故需定义TPDO,我们在此处定义为TPDO1。节点1的应用数据区、TPDO1的通讯参数和映射参数在对象字典中的定义分别如表1-2、1-3和1-4所示。
索引 7100h 表1-2 节点1的应用数据区在对象字典中的定义 子索引 名称 类型 值 00h 01h 02h 入口数目 A B U8 U16 U8 02h 2DFFh C3h 权限 rw rw rw 表1-3 节点1的TPDO1通讯参数在对象字典中的定义
1800h — 00h 01h 02h 03h 04h 05h 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。
…… 此处隐藏197字 ……
节点2接收来自节点1的数据(A、B),故需定义RPDO1;此外节点2将数据传(C、D)送给节点3,故需要定义TPDO2。节点2的应用数据在对象字典中的定义如表1-5所示。
索引 7200h 7300h 表1-5 节点2的应用数据在对象字典中的定义 子索引 名称 类型 值 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 权限 ro rw rw rw rw rw 节点2定义RPDO1的COB-ID为181h,对应节点1的TPDO的COB-ID,
CANopen工作流分析 V1.0
Date: 2011-5-20 4