PDO SDO应用实例分析

时间:2022-11-22 12:08:23 作者:壹号 字数:8953字

机械工程学院机械设计及理论研究所

目录第一章 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