現場(chǎng)總線(xiàn)CANopen學(xué)習總結筆記四---對象字典
對象字典是所有數據結構的集合,這些數據涉及設備的應用程序、通信以及狀態(tài)機,對象字典利用對象來(lái)描述CANopen
CANopen協(xié)議已經(jīng)將對象字典進(jìn)行分配,用戶(hù)可以通過(guò)同一個(gè)索引和子索引獲得所有設備中的通信對象,以及用于某種設備類(lèi)別的對象。
4.3.1
在索引6000h~9FFFh中,可以找到用于標準化設備子協(xié)議的對象描述。一個(gè)復雜的現場(chǎng)設備包括多個(gè)CANopen設備,CANopen設備里又包含一個(gè)通信專(zhuān)用的設備狀態(tài)機和多個(gè)邏輯設備,而每個(gè)邏輯設備又包含多個(gè)虛擬設備。
一個(gè)現場(chǎng)設備可以包含一個(gè)或多個(gè)CANopen設備,當然可以包含連接到其他總線(xiàn)系統和網(wǎng)絡(luò )的接口,從而形成一個(gè)網(wǎng)關(guān)。
4.3.2
對象字典中的索引1000h~1FFFh描述設備在CANopen網(wǎng)絡(luò )中通信及交換數據所必須具備的基本功能:
1.用于設備描述的對象
2.用于錯誤顯示的對象
3.制造商狀態(tài)寄存器
4.同步參數
5.設備監控
6.保存以及恢復默認參數
7.用于時(shí)間報文和緊急報文的參數
8.用于SDO服務(wù)器和SDO客戶(hù)端的參數
9.PDO參數
10.保留參數
1.設備類(lèi)型參數的結構(設備類(lèi)型索引1000h)可用來(lái)描述所使用的設備子協(xié)議或應用規范。結構由設備子協(xié)議編號和附加信息組成。由以下對象也可用來(lái)描述設備屬性:
此外,還有一個(gè)可以詳細描述設備的對象-------相同對象,它屬于一種結構,包含最多4個(gè)數據類(lèi)型為Unsigned32
2.用于錯誤顯示的對象(索引1001h和1003h)
錯誤寄存器是一個(gè)8位寄存器,其中所包含的錯誤信息可以通過(guò)緊急報文來(lái)發(fā)送。
錯誤存儲器是一個(gè)包含多達254個(gè)基本單元的數據場(chǎng),這些基本單元提供近期引發(fā)緊急報文的錯誤列表。子索引00h表示錯誤存儲器中錯誤的個(gè)數。
3.同步參數(索引1005h,1006h,1007h,1019h)
同步報文COB標識符參數(1005h)是一個(gè)32位對象。包含有CAN標識符、3個(gè)控制位:
第31位預留位,第30位確定設備為發(fā)送還是接收同步報文,第29位用來(lái)區分11和29位標識符。
通信循環(huán)周期(索引1006h)是針對同步報文發(fā)送方面而言,該參數設置同步周期。
同步窗口長(cháng)度(1007h),在同步窗口時(shí)間范圍內,PDO傳輸必須在同步報文發(fā)送之后才能進(jìn)行。
同步計數器溢出參數(1019h)包含一個(gè)8位值,該值可以用來(lái)同步報文中的計數器。
5.設備監控(索引100Ch、100Dh、1016h、1017h)
有兩個(gè)參數可以用于配置心跳功能。
索引1017h:
索引1016h:消費者心跳時(shí)間間隔,它最多可以包含127個(gè)條目,條目記錄了被監控設備節點(diǎn)ID以及時(shí)間。
用來(lái)監控設備,我們引入2個(gè)新的參數“保護時(shí)間”(索引100Ch)和“壽命因子”(索引100Dh)。
6.保存以及恢復默認參數。
設備啟動(dòng)或通過(guò)NMT主機復位后,設備對象字典中的參數就會(huì )進(jìn)行初始化。之后可以利用SDO把字典中的默認參數設備成新的參數,通常這就代表了PDO參數的設置以及設備監控和同步機制的建立。
下面有兩種配置設備參數的方法
第一種是由配置管理器進(jìn)行分配,好處是可以集中保存所有網(wǎng)絡(luò )信息,并且用一個(gè)結構相同的設備替換另一個(gè)設備后,不再需要進(jìn)行專(zhuān)門(mén)的設備配置。
第二種是配置信息分布在網(wǎng)絡(luò )中。如果在網(wǎng)絡(luò )調試過(guò)程中只對設備進(jìn)行一次配置,將配置信息保存在非易失性存儲器,則無(wú)需中央配置管理器集中保存信息,又可以縮短網(wǎng)絡(luò )啟動(dòng)時(shí)間。
“保存參數”對象(索引1010h)中包含四個(gè)選項:
“恢復默認參數”(索引1010h)是用來(lái)恢復設備默認的配置參數,即出廠(chǎng)設置。
為了防止意外恢復默認參數,便定義了一個(gè)恢復默認參數命令。默認值只有在設備復位之后才生效。
7.用于時(shí)間報文和緊急報文的參數
要想通過(guò)時(shí)間報文發(fā)送網(wǎng)絡(luò )時(shí)間,就必須給時(shí)間報文分配一個(gè)CAN標識符。該CAN標識符記錄在COB標識符參數1012h中。
與時(shí)間報文相似,在對象字典1014h
為了避免總線(xiàn)因持續發(fā)送高優(yōu)先級的緊急報文而無(wú)法進(jìn)行通信,可以在對象字典1015h(禁止時(shí)間緊急報文)中設定一個(gè)禁止發(fā)送緊急報文的時(shí)間。僅當禁止時(shí)間結束之后,才允許重新發(fā)送緊急報文。
8.用于SDO服務(wù)器和SDO客戶(hù)端的參數
SDO服務(wù)器和SDO客戶(hù)端的參數的對象類(lèi)型均為復雜數據類(lèi)型,子索引01h包含客戶(hù)端發(fā)往服務(wù)器報文的COB標識符,子索引02h包含服務(wù)器發(fā)往客戶(hù)端報文的COB標識符。
9.PDO參數
一個(gè)CAN
(1)PDO通信參數
(2)PDO映射參數
用于PDO消息的COB標識符參數的結構中,子索引01h除了包含所使用的CAN標識符之外,還包含有效位,遠程幀,和11/29位標識符。
02h
PDO映射參數最多有64個(gè)數據類(lèi)型為Unsigned32
注意PDO映射參數的結構。
如果支持可變映射,用戶(hù)可以改寫(xiě)子索引。這意味著(zhù)可以利用SDO訪(fǎng)問(wèn)來(lái)改變映射。有如下規定:
10,保留參數
4.3.3對象字典的實(shí)現
一般來(lái)說(shuō)用戶(hù)希望能夠快速地訪(fǎng)問(wèn)索引,所以需要通過(guò)一種查找算法來(lái)找到合適的條目。有一種CANopen
CANopen軟件通過(guò)固定的索引/子索引來(lái)訪(fǎng)問(wèn)對象列表中的條目,對象列表提供一個(gè)指向存儲器中某個(gè)變量的指針,應用程序可直接通過(guò)變量名稱(chēng)來(lái)訪(fǎng)問(wèn)所需的條目。對象字典列表就構成了索引/子索引與對應變量名稱(chēng)之間的接口。
評論