机械工程学院机械设计及理论研究所CANopen工作流分析V1.0Date:2011-5-20CopyrightByTongjiUniversityi目录第一章PDO应用实例分析...........................................................................................................1一、目的................................................................................................................1二、手段................................................................................................................1三、分析................................................................................................................1四、过程................................................................................................................24.1对象字典的编写.........................................................................................................24.1.1各节点ID分配表定义.....................................................................................24.1.2对节点1进行对象字典编写...........................................................................24.1.3对节点2进行对象字典编写...........................................................................34.1.4对节点3进行对象字典编写...........................................................................54.2节点1发送数据至节点2、节点3...........................................................................64.2.1节点1发送数据至总线...................................................................................64.2.2节点2、节点3从总线接收数据...................................................................74.3节点2发送数据至节点3........................................................................................84.3.1节点2发送数据至总线.................................................................................84.3.2节点3从总线接收数据..................................................................................9第二章SDO应用实例分析...........................................................................................................1一、目的............................................................................................................................................1二、手段............................................................................................................................................1三、分析............................................................................................................................................1四、过程............................................................................................................................................14.1对象字典的编写..............................................................................................14.1.1各节点ID分配........................................................................................................14.1.2对节点1进行对象字典编写..................................................................................14.1.3对节点2进行对象字典编写..................................................................................14.1.4对节点3进行对象字典编写..................................................................................14.2节点1读取节点2数据.................................................................................14.2.1节点1发送请求读取命令至节点2.......................................................................14.2.2节点2响应节点1读取命令.................................................................................14.3节点1写入数据至节点3.............................................................................14.3.1节点1发送数据至节点3...................................................................................14.3.2节点3响应节点1写入数据命令.......................................................................1附录一................................................................................................................................................1
机械工程学院机械设计及理论研究所CANopen工作流分析V1.0Date:2011-5-201第一章PDO应用实例分析一、目的本应用实例的目的如图1-1所示,实现节点1的数据(A、B)传送到节点2、节点3,同时实现节点2传输数据(C、D)至节点3。图1-1数据传输目的二、手段使用PDO进行数据传送。三、分析
机械工程学院机械设计及理论研究所CANopen工作流分析V1.0Date:2011-5-202图1-2SDO客户/服务器通讯模式[1]PDO通信是基于生产者/消费者(Producer/Consumer)模型,主要用于传输实时数据。产生数据的节点将带有自己节点号的数据放到总线上,需要该数据的节点,可以配置为接收该PDO[3]。四、过程4.1.对象字典的编写对象字典的结构和条目对于所有设备是共同的,本例中采用索引定位,子索引确定对象的思想构建对象字典,方法是使用结构体定义子索引,子索引结构体的成员变量包含对象的属性(读写权限,数据类型,数据长度等)和指向对象的指针,定义索引时包含指向子索引的指针和子索引数目,对象字典各项在代码中采取如图1-3所示的方式来组织构建,这样可以方便地通过索引和子索引找到对应的项,对象定义为指针的形式可以通过主站的SDO报文进行读写,实现对对象字典的灵活配置,同时这种方式实现通讯层与应用层共享数据变量的特点。对象字典的条目格式如图1-3所示:索引对象(符号名)名称属性类型强制/可选图1-3对象字典模块结构图
机械工程学院机械设计及理论研究所CANopen工作流分析V1.0Date:2011-5-2034.1.1各节点ID分配表定义表1-1各节点ID分配表节点节点1节点2、节点3主节点NODE-ID0x010x020x030x044.1.2对节点1进行对象字典编写节点1发送数据至节点2、节点3,故需定义TPDO,我们在此处定义为TPDO1。节点1的应用数据区、TPDO1的通讯参数和映射参数在对象字典中的定义分别如表1-2、1-3和1-4所示。表1-2节点1的应用数据区在对象字典中的定义索引子索引名称类型值权限7100h00h入口数目U802hrw01hAU162DFFhrw02hBU8C3hrw表1-3节点1的TPDO1通讯参数在对象字典中的定义节点1的TPDO1的COB-ID定义为181h。表1-4节点1的TPDO1的映射参数在对象字典中的定义1A00h—TPDO1数据类型值权限00hPDO映射数目U802hrw01hAU1671000110hrw02hBU871000208hrw其中71000110h映射数据对象字典中索引为7100h,子索引为01h,长度1800h—TPDO数据类型值权限00h入口数目U805hro01h发送PDO标识符U32180h+NodeIDrw02h传输类型U8FFhrw03h禁止时间U1600hrw04hReserved————rw05heventtimerU160x0000hrw
机械工程学院机械设计及理论研究所CANopen工作流分析V1.0Date:2011-5-204为16位的数据。4.1.3对节点2进行对象字典编写节点2接收来自节点1的数据(A、B),故需定义RPDO1;此外节点2将数据传(C、D)送给节点3,故需要定义TPDO2。节点2的应用数据在对象字典中的定义如表1-5所示。表1-5节点2的应用数据在对象字典中的定义索引子索引名称类型值权限7200h00h入口数目U802hrw01hAU16--rw02hBU8--rw7300h00h入口数目U802hrw01hCU16F3CChrw02hDU8D5hrw此时索引为7200h,子索引为01h,02h条目中起初并没有实际值,这两个条目分别用来接收节点1的数据A、B。接受数据后,子索引为01h的条目的值为2DFFh,子索引为02h的条目为C3h。索引为7300h,子索引为01h,02h条目中为数据C、D的索引。表1-6节点2的RPDO1通讯参数在对象字典中的定义1400h—RPDO1数据类型值权限00h入口数目U805hro01h接收PDO标识符U32180h+NodeIDrw02h传输类型U8FFhrw03h禁止时间U160rw04hReserved————rw05heventtimerU160x0000hrw节点2定义RPDO1的COB-ID为181h,对应节点1的TPDO的COB-ID,
机械工程学院机械设计及理论研究所CANopen工作流分析V1.0Date:2011-5-205实现节点1与节点2之间的数据传输。表1-7节点2的RPDO1映射参数在对象字典中的定义1600h—RPDO数据类型值权限00hPDO映射数目U802hrw01hAU1672000110hrw02hBU872000208hrw其中72000110h表示映射到对象字典中索引为7200h,子索引为01h,长度为16位的数据。因为节点2发送数据至节点3,故需在对象字典中定义TPDO,在此定义为TPDO2,其通讯参数和映射参数定义如表1-8和1-9所示。表1-8节点2中TPDO2通讯参数在对象字典中的定义1800—TPDO2数据类型值权限00h入口数目U805hro01h发送PDO标识符U32280h+NodeIDrw02h传输类型U8FFhrw03h禁止时间U1600hrw04hReserved————rw05heventtimerU160x0000hrw节点2的TPDO2的COB-ID为282h。表1-9节点2中TPDO2映射参数在对象字典中的定义1A00—TPDO1数据类型值权限00hPDO映射数目U802hrw01hCU1673000110hrw02hDU873000208hrw
机械工程学院机械设计及理论研究所CANopen工作流分析V1.0Date:2011-5-206其中73000110h表示映射到对象字典中索引为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的应用数据在对象字典中的定义索引子索引名称类型值权限7100h00h入口数目U802hrw01hAU16--rw02hBU8--rw7200h00h入口数目U802hrw01hCU16--rw02hDU8--rw其中名称为A、B、C、D的条目起初并没有实际值,接受节点1和节点2的数据后,这些条目才具有相应的值。表1-11节点3的RPDO1的通讯参数在对象字典中的定义1400h—RPDO1数据类型值权限00h入口数目U805hro01h接收PDO标识符U32180h+NodeIDrw02h传输类型U8FFhrw03h禁止时间U160rw04hReserved————rw05heventtimerU160x0000hrw
机械工程学院机械设计及理论研究所CANopen工作流分析V1.0Date:2011-5-207其中RPDO1的COB-ID为181h,与节点1的TPDO1的COB-ID一致,实现节点1与节点3之间的数据传输。表4-11节点3的RPDO1的映射参数在对象字典中的定义1600h—RPDO1数据类型值权限00hPDO映射数目U802hrw01hAU3271000110hrw02hBU3271000208hrw表4-12节点3的RPDO2的通讯参数在对象字典中的定义1401h—RPDO2数据类型值权限00h入口数目U805hro01h接收PDO标识符U32280h+NodeIDrw02h传输类型U8FFhrw03h禁止时间U160rw04hReserved————rw05heventtimerU160x0000hrw其中RPDO2的COB-ID为282h,与节点2的TPDO2的COB-ID一致,实现节点2与节点3之间的数据传输。表4-13节点3的RPDO2的映射参数在对象字典中的定义1601h—RPDO2数据类型值权限00hPDO映射数目U802hrw01hCU3272000110hrw02hDU3272000208hrw4.2节点1发送数据至节点2、节点34.2.1节点1发送数据至总线节点1的TPDO1报文组装如图1-4所示: