• 官方微信

    CA800二维码微平台 大视野

  • 工控头条

    CA800二维码工控头条App

当前位置:自动化网>自动化文库>解决方案>CANopen对象字典生成办法

CANopen对象字典生成办法

发布时间:2013-09-25 来源:龚龙峰(广州虹科电子科技有限公司) 类型:解决方案 人浏览
分享到:
关键字:

CANopen 对象字典 生成器

导读:

本文在阐述CANopen对象字典的概念与结构的基础之上,结合生成对象字典常用方法的不足,引出一种可快速可靠创建与修改对象字典的对象字典生成器ODBuilder,不仅有效减少编辑对象字典的时间,而且最大限度地避免工程师手工编辑对象字典的错误出现,为CANopen设备参数设置提供有力可靠的解决方案。

摘要:

本文在阐述CANopen对象字典的概念与结构的基础之上,结合生成对象字典常用方法的不足,引出一种可快速可靠创建与修改对象字典的对象字典生成器ODBuilder,不仅有效减少编辑对象字典的时间,而且最大限度地避免工程师手工编辑对象字典的错误出现,为CANopen设备参数设置提供有力可靠的解决方案。

关键词:

CANopen,对象字典,生成器ODBuilderEDS文件

Abstract:

In this paper, on the introduction of the concept and structure of the CANopen object dictionary, combined with the shortage of common methods of generating object dictionary, lead to a object dictionary generator-ODBuilder, which is quickly and reliably create and modify the CANopen object dictionary. This tool not only effectively reduce the time of editing object dictionary, but significantly minimize the occurrence of error of manually editing the object dictionary, and provide a robust and reliable solutions for the parameter Settings of CANopen equipment.

Key words: 

CANopenObject dictionarygeneratorODBuilderEDS File

引言

CANopen协议是一种基于控制器局域网(CAN)的应用层协议,该协议具有实时高效、组网灵活和产品兼容性高等优势,CANopen协议在国内越来越受到青睐,其应用领域也越来越多广泛,不仅应用于过程与生产自动化等领域,还涉及到医疗、铁路、军事、太阳能等等领域。目前CANopen协议由CiACAN in Automation)组织负责管理与推广。

对象字典是CANopen通信接口与应用程序之间接口,是CANopen协议的重要组成部分。在CANopen网络中,每个标准的CANopen设备都有一个对象字典,用来描述CANopen设备的全部功能。

一般在CANopen配置或者开发工程中,对象字典的创建与管理是一个不可缺少的步骤,同时也是保证CANopen正常通讯的重要保障。如果CANopen系统工程相对比较简单,人工编写对象字典是可行的。但是如果面对系统较复杂、通讯量庞大的CANopen工程,单纯用人工编写对象字典是很低效的,同时也很容易出现编写错误,可能给CANopen工程带来潜在的危险。为了提高对象字典的编辑效率,同时最大限度地避免对象字典的编辑错误,本文描述的一个快速可靠的对象字典生成器ODBuilder,为CANopen工程的对象字典生成与修改提供一个很好的解决方案。

一、对象字典结构与EDS文件描述

1.1对象字典结构

对象字典是一个有序的对象组每个对象采用一个 16 位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个 位的子索引。对象字典中索引值0000- 0x0FFF 是数据类型的定义,具体类型有固定的分区。而一个CANopen节点的对象字典相关的常用范围在 0x1000 到 0x9FFF 之间。其中,索引1000h-1FFFh描述的是通信对象(COB),如设备类型,错误寄存器,支持的 PDO 数量等等,该参数定义了CANopen接口的通信功能。索引2000h-5FFFh是预留给制造商定义的特定对象。索引000h-9FFFh是用于标准化设备子协议的对象描述,例如I/O模块子协议、驱动与运动控制设备子协议、传感器与测量设备子协议、医疗器材子协议、电梯子协议等等。CANopen 对象字典通用结构如表1所示。

索引

对象

0000h

未用(Not used

0001 - 001F

静态数据类型 (标准数据类型,如 BooleanInteger 16

0020 - 003F

复杂数据类型

(预定义由简单类型组合成的结构如 PDOCommParSDOParameter

0040 - 005F

制造商规定的复杂数据类型

0060 - 007F

设备子协议规定的静态数据类型

0080 - 009F

设备子协议规定的复杂数据类型

00A0 - 0FFF

保留(Reserved

1000 - 1FFF

通讯子协议区域

(如设备类型,错误寄存器,支持的 PDO 数量)

2000 - 5FFF

制造商特定子协议区域

6000 - 9FFF

标准的设备子协议区域

A000 - FFFF

保留(Reserved

1 CANopen 对象字典通用结构

1.2 EDS文件描述

CANopen 网络中每个节点都有一个对象字典对象字典包含了描述这个设备和它的网络行为的所有参数。而在描述CANopen设备时,使用了一种标准化的ASCII格式的描述文件,即:电子数据表(EDS)。电子数据表不仅记录了对象字典的所有参数,同时也对设备及其配置进行标准化的描述,所以EDS电子数据表是对象字典的载体与保存方式。

二、对象字典的实现

通常来说,在CANopen工程中将所有的CANopen通信描述条目放在一个表格中,然后用索引来访问所有的对象。这不失是一个解决方法,不过这种方法只适用于系统简单、通信参数少、非CANopen通信标准化的产品中,而且对象字典的修改与管理工作都较为繁琐。由此本文介绍一种动态输入掩码显示各个参考的对象类型,编辑过程不断检查其正确性并修正的对象字典生成器ODBuilderODBuilder工具生成的对象字典,通信描述完全符合CANopen标准规范CiA DS301以及设备描述符合EDS标准文件CiA DSP306规范,具有CANopen标准化设备的通用性。

三、对象字典生成器ODBuilder

3.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 Keydelembedded networking with CAN and

CANopen [M], 2008, 42-56

[2]()Holger Zeltwanger 著,周立功,黄晓清,严寒亮译,现场总线 CANopen 设计与应

用 [M]201162-75

[3]CiA Draft Standard 306Version 1.301 January 2005

[4] CANopen Object Dictionary Software ODBuilder ManualEdition August 2008

作者简介 龚龙峰,(1988- ),男,助理工程师,研究方向:自动化及通信技术

本文地址:本文地址: http://www.ca800.com/apply/d_1nrvgv6j3lnn1_1.html

拷贝地址

上一篇:GPRS城市亮化监控系统

下一篇:取水远传监控系统

版权声明:版权归中国自动化网所有,转载请注明出处!