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