CANopen對象字典生成辦法
CANopen協(xié)議是一種基于控制器局域網(wǎng)(CAN)的應用層協(xié)議,該協(xié)議具有實時高效、組網(wǎng)靈活和產(chǎn)品兼容性高等優(yōu)勢,CANopen協(xié)議在國內(nèi)越來越受到青睞,其應用領域也越來越多廣泛,不僅應用于過程與生產(chǎn)自動化等領域,還涉及到醫(yī)療、鐵路、軍事、太陽能等等領域。目前CANopen協(xié)議由CiA(CANinAutomation)組織負責管理與推廣。
本文引用地址:http://m.butianyuan.cn/article/201612/330642.htm對象字典是CANopen通信接口與應用程序之間接口,是CANopen協(xié)議的重要組成部分。在CANopen網(wǎng)絡中,每個標準的CANopen設備都有一個對象字典,用來描述CANopen設備的全部功能。
一般在CANopen配置或者開發(fā)工程中,對象字典的創(chuàng)建與管理是一個不可缺少的步驟,同時也是保證CANopen正常通訊的重要保障。如果CANopen系統(tǒng)工程相對比較簡單,人工編寫對象字典是可行的。但是如果面對系統(tǒng)較復雜、通訊量龐大的CANopen工程,單純用人工編寫對象字典是很低效的,同時也很容易出現(xiàn)編寫錯誤,可能給CANopen工程帶來潛在的危險。為了提高對象字典的編輯效率,同時最大限度地避免對象字典的編輯錯誤,本文描述的一個快速可靠的對象字典生成器ODBuilder,為CANopen工程的對象字典生成與修改提供一個很好的解決方案。
一、對象字典結(jié)構(gòu)與EDS文件描述
1.1對象字典結(jié)構(gòu)
對象字典是一個有序的對象組,每個對象采用一個16位的索引值來尋址,為了允許訪問數(shù)據(jù)結(jié)構(gòu)中的單個元素,同時定義了一個8位的子索引。對象字典中索引值0000-0x0FFF是數(shù)據(jù)類型的定義,具體類型有固定的分區(qū)。而一個CANopen節(jié)點的對象字典相關(guān)的常用范圍在0x1000到0x9FFF之間。其中,索引1000h-1FFFh描述的是通信對象(COB),如設備類型,錯誤寄存器,支持的PDO數(shù)量等等,該參數(shù)定義了CANopen接口的通信功能。索引2000h-5FFFh是預留給制造商定義的特定對象。索引000h-9FFFh是用于標準化設備子協(xié)議的對象描述,例如I/O模塊子協(xié)議、驅(qū)動與運動控制設備子協(xié)議、傳感器與測量設備子協(xié)議、醫(yī)療器材子協(xié)議、電梯子協(xié)議等等。CANopen對象字典通用結(jié)構(gòu)如表1所示。
索引 | 對象 |
0000h | 未用(Notused) |
0001-001F | 靜態(tài)數(shù)據(jù)類型(標準數(shù)據(jù)類型,如Boolean,Integer16) |
0020-003F | 復雜數(shù)據(jù)類型 (預定義由簡單類型組合成的結(jié)構(gòu)如PDOCommPar,SDOParameter) |
0040-005F | 制造商規(guī)定的復雜數(shù)據(jù)類型 |
0060-007F | 設備子協(xié)議規(guī)定的靜態(tài)數(shù)據(jù)類型 |
0080-009F | 設備子協(xié)議規(guī)定的復雜數(shù)據(jù)類型 |
00A0-0FFF | 保留(Reserved) |
1000-1FFF | 通訊子協(xié)議區(qū)域 (如設備類型,錯誤寄存器,支持的PDO數(shù)量) |
2000-5FFF | 制造商特定子協(xié)議區(qū)域 |
6000-9FFF | 標準的設備子協(xié)議區(qū)域 |
A000-FFFF | 保留(Reserved) |
表1CANopen對象字典通用結(jié)構(gòu)
1.2EDS文件描述
CANopen網(wǎng)絡中每個節(jié)點都有一個對象字典,對象字典包含了描述這個設備和它的網(wǎng)絡行為的所有參數(shù)。而在描述CANopen設備時,使用了一種標準化的ASCII格式的描述文件,即:電子數(shù)據(jù)表(EDS)。電子數(shù)據(jù)表不僅記錄了對象字典的所有參數(shù),同時也對設備及其配置進行標準化的描述,所以EDS電子數(shù)據(jù)表是對象字典的載體與保存方式。
評論