CANopen对象字典生成办法发布时间:2013-09-25 来源:中国自动化网类型:解决方案1081人浏览关键字:CANopen对象字典生成器导读:本文在阐述CANopen对象字典的概念与结构的基础之上,结合生成对象字典常用方法的不足,引出一种可快速可靠创建与修改对象字典的对象字典生成器ODBuilder,不仅有效减少编辑对象字典的时间,而且最大限度地避免工程师手工编辑对象字典的错误出现,为CANopen设备参数设置提供有力可靠的解决方案。
摘要:本文在阐述CANopen对象字典的概念与结构的基础之上,结合生成对象字典常用方法的不足,引出一种可快速可靠创建与修改对象字典的对象字典生成器ODBuilder,不仅有效减少编辑对象字典的时间,而且最大限度地避免工程师手工编辑对象字典的错误出现,为CANopen设备参数设置提供有力可靠的解决方案。
关键词:CANopen,对象字典,生成器,ODBuilder,EDS文件Abstract:In this paper, on the introduction of the concept and structure of the CANo pen object dictionary,c ombined with the shortage of common methods of generat ing object dictionary, l ead to a object dictionary generator-ODBuilde r,which is quick ly and reliabl y create and modify the CANopen object diction ary. T his tool not only effectively reduce the time of editing object dict ionary, but significantly minimize the occurrence of error of manual ly edit ing the object dictionary, and provid e a robust and reliable solutions for th e parameter Settings of CANopen equipment.Key words:CANopen,Object dictionary,generator,ODBuilder,EDS File引言CANopen协议是一种基于控制器局域网(CAN)的应用层协议,该协议具有实时高效、组网灵活和产品兼容性高等优势,CANopen协议在国内越来越受到青睐,其应用领域也越来越多广泛,不仅应用于过程与生产自动化等领域,还涉及到医疗、铁路、军事、太阳能等等领域。
目前CANopen协议由CiA(CAN in Automation)组织负责管理与推广。
对象字典是CANopen通信接口与应用程序之间接口,是CANopen协议的重要组成部分。
在CANopen网络中,每个标准的CANopen设备都有一个对象字典,用来描述CANopen设备的全部功能。
一般在CANopen配置或者开发工程中,对象字典的创建与管理是一个不可缺少的步骤,同时也是保证CANopen正常通讯的重要保障。
如果CANopen系统工程相对比较简单,人工编写对象字典是可行的。
但是如果面对系统较复杂、通讯量庞大的CANopen工程,单纯用人工编写对象字典是很低效的,同时也很容易出现编写错误,可能给CANopen工程带来潜在的危险。
为了提高对象字典的编辑效率,同时最大限度地避免对象字典的编辑错误,本文描述的一个快速可靠的对象字典生成器ODBuilder,为CANopen工程的对象字典生成与修改提供一个很好的解决方案。
一、对象字典结构与EDS文件描述1.1对象字典结构对象字典是一个有序的对象组,每个对象采用一个16 位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8 位的子索引。
对象字典中索引值0000- 0x0FFF 是数据类型的定义,具体类型有固定的分区。
而一个CANopen节点的对象字典相关的常用范围在0x1000 到0x9FFF 之间。
其中,索引1000h-1FFFh描述的是通信对象(COB),如设备类型,错误寄存器,支持的PDO 数量等等,该参数定义了CANopen 接口的通信功能。
索引2000h-5FFFh是预留给制造商定义的特定对象。
索引000h-9FFFh是用于标准化设备子协议的对象描述,例如I/O模块子协议、驱动与运动控制设备子协议、传感器与测量设备子协议、医疗器材子协议、电梯子协议等等。
CANopen 对象字典通用结构如表1所示。
表1 CANopen 对象字典通用结构1.2 EDS文件描述CANopen 网络中每个节点都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数。
而在描述CANopen设备时,使用了一种标准化的ASCII格式的描述文件,即:电子数据表(EDS)。
电子数据表不仅记录了对象字典的所有参数,同时也对设备及其配置进行标准化的描述,所以EDS电子数据表是对象字典的载体与保存方式。
二、对象字典的实现通常来说,在CANopen工程中将所有的CANopen通信描述条目放在一个表格中,然后用索引来访问所有的对象。
这不失是一个解决方法,不过这种方法只适用于系统简单、通信参数少、非CANopen通信标准化的产品中,而且对象字典的修改与管理工作都较为繁琐。
由此本文介绍一种动态输入掩码显示各个参考的对象类型,编辑过程不断检查其正确性并修正的对象字典生成器ODBuilder。
ODBuilder工具生成的对象字典,通信描述完全符合CANopen 标准规范CiA DS301以及设备描述符合EDS标准文件CiA DSP306规范,具有CANopen标准化设备的通用性。
三、对象字典生成器ODBuilder3.1对象字典生成原理对象字典生成器ODBuilder生成对象字典的原理是根据CANopen通信协议的访问对象字典的机制,通过固定的索引、子索引来创建每一个CANopen对象字典条目。
访问对象字典示意图如图3.1所示。
图3.1 CANopen访问对象字典对象字典条目表格提供一个指向存储器中某个变量的指针,而应用程序可直接通过变量名称访问所需的条目。
因此对象字典条目列表就构成了索引/子索引与对应变量名称之间的接口。
对象字典列表分为几个不同的块,目的为了方便对象的查找。
通常分为用户可通过索引查找相应的列表(如通信Communication Profile Area),再通过偏移量访问该列表中所需的单元。
因此在生成对象字典时为了描述索引里的单元,就先创建该单元的访问类型、数据类型和指针变量等的结构体。
然后利用创建好的结构体与应用变量建立相关联的索引条目。
此外,还会编辑一个包含指向子索引字段的指针列表,方便查找相关条目。
3.2对象字典生成过程对象字典生成器ODBuilder创建一个简明树形结构的对象字典工程,方便修改与访问对象字典条目;在编辑对象字典条目过程中,无需手工输入不同条目的数据类型,直接通过下拉选项选择对应类型;在编辑过程中,ODBuilder不断检查对象字典的输入条目的正确性并提供修正参考,最后完成后可生成标准EDS文件。
ODBuilder对象字典生成过程原理框图如图3.2所示。
图3.2 对象字典生成过程原理框图3.3 创建简明树型条目根据对象字典条目的分布特性,ODBuilder将创建的对象字典以简明的树型结构,索引值由小到大排列。
用户需要访问或者修改某一条索引,可直接点击该条目就可以进行访问或修改。
如图3.3所示。
图3.3 树型结构索引结构3.4 编辑对象字典索引属性1.根据CANopen协议CiA DSP306规范,输入不同的索引值,可灵活设定其“可选”、“强制”属性。
以编辑0x1000h索引为例,如图3.3.1所示,通常用于Device Type,“制造商”、如果作为从站的产品,该索引通常为“强制”属性,ODBuilder将其自动设置为“强制”属性。
图3.4.1编辑对象字典索引属性2.根据不同的CANopen设备的存储需要,可选择索引是否存储在非易失存储器以及ROM 或者RAM中。
3.索引的对象参数、数据类型、访问类型等直接通过下拉条选择,如图3.3.2所示,另外可选该索引条目是否有PDO映射功能。
图3.4.2 下拉条选项输入4.根据对象参数属性,如果选择为变量,默认值、最小值和最大值为可输入状态。
5.子索引自动继承索引属性,无需要重新设定其存储属性、PDO映射参数。
3.5检查输入正确性在CANopen系统工程较复杂的情况下,ODBuilder随时提示对象字典的输入,确保对象字典条目的每一个属性参数不遗漏,检查对象字典条目的输入正确性。
例如,如果编辑对象字典时遗漏索引标示符(Designator)的输入,则会提示用户输入对应值。
同样,遗漏索引值、对象类型、数据类型、访问类型任何一项都有相应的输入提示。
如图3.5所示。
图3.4 检查输入提示3.6导出EDS文件当完成对象字典所有条目的编辑,ODBuilder的检查功能已经很大程度的减少对象字典的输入错误,同时导出符合CiA DSP306规范的EDS文件,该文件不仅包含了CANopen设备的对象字典所有的内容,同时也要求添加文件描述信息,设备信息等信息。
如图3.6所示。
图3.6生成EDS结语本文在CANopen对象字典的概念基础上,进一步阐述了一种可快速可靠灵活创建对象字典的工具ODBuilder,并生成标准化EDS文件,不仅为CANopen设备的生产也为CANopen工程设备的参数配置,提供快速创建与修改对象字典的解决方案,目前该软件已经应用于多家大型医疗器材、运动控制、轨道运输等行业设备的对象字典生成。
参考文献[1] Olaf pfeiffer, Andrew Ayre, Christan Keydel,embedded networking with CAN andCANopen [M], 2008,42-56[2](德)Holger Zeltwanger 著,周立功,黄晓清,严寒亮译,现场总线CANopen 设计与应用[M],2011,62-75[3]CiA Draft Standard 306,Version 1.3,01 January 2005[4] CANopen Object Dictionary Software ODBuilder Manual, Edition August 2008作者简介龚龙峰,(1988- ),男,助理工程师,研究方向:自动化及通信技术。