本帖最后由 ssssssssssss 于 2018-9-5 15:04 编辑
哪个大神可以通俗解释canopen里的一下对象字典?[size=14.6667px]
[size=14.6667px]4.2对象字典4.2.1对象字典的结构
图23对象字典的结构 对象字典是CANOpen最重要的特性,它将设备的描述标准化。 对象字典中的每一个对象都由16位的索引和8位的子索引来寻址。对于单个的对象字典项子索引总是0.所以一个数据字典最多有65536项。 静态数据类型包含标准数据类型的定义,比如BOOLEAN, INTEGER, floating, string,等。 复杂数据类型包含那些由标准数据类型构成的预定义的数据结构,他们对所有设备都是通用的。 制造商定义的复杂数据类型是由标准数据类型构成的数据结构,但是这些数据类型只是特定的设备使用。 设备子协议可能会为它们的设备定义一些额外的数据类型其中静态数据类型存放在0060-007F,复杂数据类型存放在0080-009F。 通讯子协议区指定了CAN网络的一些参数,它们对所有设备都是通用的。 标准设备子协议区包含了一类设备的所有数据对象。它们可以通过CAN网络读写。 [size=14.6667px]4.2.2数据类型

图24基本的数据类型 CANOpen协议的基本数据类型如图24所列。 [size=14.6667px]4.2.2.1整数的表示方式
以INTEGER32为例:b=b0b1…b31 
 4.2.2.2浮点数的表示方式
以REAL32为例:b=b0b1…b31 



 4.2.3对象的表示方式
图25对象的基本属性 一个对象有上图所示的6种基本属性。 十六进制的index指示了对象在对象字典中的位置。其中不包含子索引。 Object列指示了对象的类型,如下图所示 
Name是用来表示对象作用的文本。 Type指定数据类型。比如Boolean, Usigned8。如果对象是一个复杂类型,比如ARRAY。就会用子索引来指定组成复杂类型的每个基本类型。 Attrbi指定了对象的方位类型。如下图 
M/O指定对象是必须的还是可选的。
4.2.4标识身份的对象
对象字典中的对象很多,但有几个是用来识别设备身份的,经常用到。 
图26用来身份识别的几个对象 
图27 Identity Object的子对象 1008h记录设备的名字,1009h记录设备的硬件版本号,100Ah记录设备的软件版本号。1018h记录了设备的制造商代码,产品号,序列号等。
|