MEA系列磁編碼器帶CANOPEN 通信協議使用手冊
MEA系列磁編碼器帶CANopen通信協議使用手冊
1. 磁編碼器概述
.式磁編碼器是利用磁阻效應元件或霍爾元件對于磁場變化感應而工作的編碼器,與光學式.式編碼器一樣,為非接觸式.式編碼器,用于精確測量整個 360°范圍內的角度。其原理是采用磁阻或者霍爾元件對變化的磁性材料的角度或者位移值進行測量,磁性材料角度或者位移的變化會引起一定電阻或者電壓的變化,通過放大電路對變化量進行放大,通過單片機處理后輸出.值數字信號或者模擬量信號,達到測量的目的。
.式磁編碼器采用磁電式設計,通過磁感應器件、利用磁場的變化來產生和提供轉子的.位置。利用磁器件代替了傳統的碼盤,彌補了光電編碼器的一些缺陷,更具抗震、耐腐蝕、耐污染、性能可靠高、結構更簡單。
主要應用:1. 角度測量 2. 工業自動化控制 3. 機器人行業 4. 紡織業 5. 精密機床 6. 伺服電機 7. 閥門控制
主要特征:
1. 產品結構緊湊,適合惡劣工業控制應用場所。.值磁電碼盤,高精度全數字化,無信號干擾、零點飄移。CANopen通信協議總線輸出。從站個數為可多達99個。
2. 波特率和地址碼可現場撥碼開關設置或系統軟件設置。
3. 每圈4096分辨率。
4. 寬工作電壓,極低的耗電流。
5. *法蘭或同步法蘭,國際標準外形結構。
2.主要特性參數
工作電壓 | 10-30Vdc極性保護(或5Vdc 定購) |
消耗電流 | 35mA(24Vdc) ,70mA(12Vdc) |
輸出信號 | CANopen通信協議總線輸出,輸出和輸入二線分離。 |
信號傳輸 | 屏蔽雙絞銅電纜(2根信號線,1根接地線)傳輸距離與波特率有關。 |
分辨率/圈 | 4096 (可選1024、16384、65536) |
重復精度 | ±2BIT(實際精度與安裝精度、軸同心度有關) |
相對濕度 | 98%(無凝液) |
工作溫度 | -40--85℃ |
儲存溫度 | -40--90℃ |
防護等級 | IP65 |
允許轉速 | 10000轉/分(分辨率4096的有效轉速.高3000轉/分) |
停電保存 | 在4096圈內全程.,停電不影響位置保存。 |
連接電纜 | 插座后出 |
外形特征 | *法蘭或同步法蘭,金屬外殼,密封雙軸承結構 (見外形尺寸附圖;特殊外形可訂做) |
磁編碼器電氣連接使用說明
4.1 磁編碼器接線示意圖
4.2 接線說明
功能板接線接口:JP2
1 | V+ | 外部電源輸入正端,10~30VDC,極性保護 |
2 | GND | 外部電源輸入負端 |
3 | CAN+ | CAN輸入接口 |
4 | CAN- | |
5 | GND | |
6 | CAN+ | CAN輸出接口 |
7 | CAN- | |
8 | GND |
4.3 撥碼開關說明
編碼器節點地址和波特率設定通過十進制撥碼開關進行,地址設置為2位,波特率設定1位,還有一個指撥開關可以設定終端電阻。
4.3.1 節點地址設定
節點地址(Node_ID)通過選擇撥碼開關1,2來設定,.位撥碼開關為編碼器設定地址的10位,第二位撥碼開關為編碼器設定地址的個位,編碼器地址=高位碼值×10+低位碼值。出廠值設置為32。
4.3.2 CAN波特率設定
編碼器支持8種不同的波特率傳輸,CAN波特率通過撥碼開關3來設定,CAN波特率可設置為0~7。出廠設置為3(250Kbps)。
CAN Baud | CAN Baud rate |
0 | 1000Kbps |
1 | 800Kbps |
2 | 500Kbps |
3 | 250Kbps |
4 | 125Kbps |
5 | 100Kbps |
6 | 50Kbps |
7 | 20Kbps |
5、Object Directory(對象字典)
5.1 Detailed description of the communication parameters(通訊子協議區域)
5.1.1 Object 1000H: Device type(設備類型)
提供設備外形和所使用的設備類型的信息:
1000 | VAR | Device type | Unsigned32 | ro | M |
數據內容
Device type number | Encoder type | ||
Byte 0 (LSB) | Byte 1 | Byte 2 | Byte 3 (MSB) |
96h | 01h | 01h (單圈.編碼器) | 00h |
5.1.2 Object 1002H: Manufacturer device name(制造商設備名)
包含制造商設備名稱
1008 | VAR | device name | Vis-String | ro | O |
數據內容:" YUBE"
5.1.3 Object 1008H: Device name(設備名稱)
設備名稱
1008 | VAR | device name | Vis-String | ro | O |
數據內容:" XXXX" 或”XXXX”
5.1.4 Object 1009H: Hardware version(硬件版本)
包含硬件版本號
1009 | VAR | Hardware version | Vis-String | ro | O |
數據內容:" 1.00"
5.1.5 Object 100AH: Software version(軟件版本)
包含軟件版本號
100A | VAR | Software version | Vis-String | ro | O |
數據內容:" 1.00 "
5.1.6 Object 1018H: Identity Object(設備ID)
讀取設備ID。
1018 | VAR | Identity Object | ro | M |
數據內容:
Sub-Index 1h : 發送Vendor-ID (0000003Fh)
Sub-Index 2h : 發送產品代碼(h)
Sub-Index 3h : 發送編碼器序號(h)
5.1.7 Object 1800H: 1.transmit PDO parameter (TXPDO1 異步)
這個對象包括PDO1的參數。
1800 | RECORD | 1.transmit PDO parameter | rw | M |
數據內容:
SUB Index 1h: COB ID
Default Value:180h + Node-ID
SUB Index 2h: transmission type(傳輸類型)
Default Value = 1 (循環) ,2(編碼器碼值變化觸發),3(PDO觸發)
5.1.8 Object 2101H: 編碼器分辨率
讀取設備ID。
2101 | VAR | Identity Object | ro | M |
數據內容:12 (位)
5.1.9 Object 2200H: 循環時間
讀取設備ID。
2101 | VAR | Identity Object | ro | M |
數據內容:10-5000
注:設置為10時,波特率須100kbps以上。
5.1.10 Object 2300H: restore default parameters(恢復默認參數值)
2300 | ARRAY | restore default parameters | Unsigned32 | w | O |
數據內容:
Byte0: 6cH(“l”)
Byte1: 6fH(“o”)
Byte2: 61H(“a”)
Byte3: 64H(“d”)
注:恢復默認參數時,地址開關位置必須為0,即兩位地址撥碼開關都設定在0位置上。
5.1.11 Object 3000H: 節點號
2300 | ARRAY | restore default parameters | Unsigned32 | rw | O |
數據內容:Node-ID
5.1.12 Object 3001H: 波特率代碼
2300 | ARRAY | restore default parameters | Unsigned32 | rw | O |
數據內容:0-7
6、Layer-Setting-Service (LSS)
編碼器除了通過指撥開關設置節點地址和CAN波特率以外,還可以通過在CiA DSP-305協議里定義的Layer-Setting-Service (LSS)進行設置。LSS主節點通過CAN總線可以對LSS從節點的節點地址和CAN波特率進行設置。LSS主節點先設置LSS從節點進入configuration mode(配置模式),然后從節點被給予了一個新的節點地址,從節點進行確認是否支持新的節點地址。然后再切換回operation mode (操作模式)。
注:編碼器如果需要載入通過LSS設定并保存在EEPROM里地址和波特率需要把地址設定為0,即兩位地址撥碼開關都設定在0位置上,系統啟動的時候就會從EEPROM里讀取
mod: new LSS mode
0 = set operation mode (操作模式)
1 = set configuration mode(配置模式)
nid: new node address for the LSSslave(LSS的新節點地址)
(range 1 to 127)
tab: 定義使用的baudrate table
0 = 符合標準CiA DSP-305
1 ... 127 = 保留
ind: 在baudrate table中的索引,定義編碼器新的波特率
舉例:
1. Setting node address(設置節點地址)
Send : 7E5 04 01 00 00 00 00 00 00 -> 進入配置模式
Send : 7E5 11 20 00 00 00 00 00 -> 設置新的節點地址為0x20
Receive: 7E4 11 00 00 00 00 00 00 00 -> Success
Send : 7E5 17 00 00 00 00 00 00 00 ->存貯配置
Receive: 7E4 17 00 00 00 00 00 00 00 -> Success
Send : 7E5 04 00 00 00 00 00 00 00 -> 進入操作模式(重啟)
Receive: 720 00 -> New bootup message
2. Setting baudrate(設置波特率)
Send : 7E5 04 01 00 00 00 00 00 00 ->進入配置模式
Send : 7E5 13 00 02 00 00 00 00 00 -> 設置新的波特率500K
Receive: 7E5 13 00 00 00 00 00 00 00 -> Success
Send : 7E5 15 10 00 00 00 00 00 00 -> 設置編碼器波特率(重啟)
Receive: 740 00 -> New bootup message (500k)
注意事項
4 請勿自行維修和拆卸編碼器
4 請在進行下列工作時,務必斷開電源后操作
1、當連接大地線時;
2、當對編碼器接線或斷開接線時。
4 編碼器上電前請仔細檢查接線是否正確無誤
4 在下列場合應采取適當的屏蔽措施
1、靠近電源動力線的場合
2、處在強電場或強磁場的場合
3、在產生靜電或交流接觸器干擾等類似的場合
4 不要將編碼器安裝在下列場合
1、暴露于陽光直射的場合
2、溫度和濕度超過使用條件的場合
3、有腐蝕性氣體或可燃性氣體的場合
4、有大量粉塵、鹽及金屬性粉末的場合
5、水、油及化學液體易濺射到的場合
6、有直接震動或沖擊的場合
故障排除
CANOPEN編碼器采用了.的生產工藝,出廠前進行了嚴格的測試,大大提高了編碼器的可靠性。常見的故障一般是操作或參數設置不當引起的。若發現無法處理的故障,請記錄故障現象并及時通知當地代理經銷商或者和我們聯系。
以下是CANOPEN編碼器在日常應用中的幾個常見故障:
故障現象 | 原因分析 | 處理措施 |
編碼器通電不工作 指示燈不亮 | 電源線接觸不良 | 檢查編碼器接頭是否松脫 |
編碼器CAN通訊不通 | 顯示編碼器CAN的連接線松脫 | 檢查內部線纜,如果CAN速率過高,超過500Kbps,CAN接口的兩端應加上120歐姆電阻。 如仍有問題,請與廠家聯系。 |
編碼器位置值不變化 | 編碼器與其轉換板接觸不良 | 調整編碼器插頭,如仍有問題,請與廠家聯系。 |
附錄:CANopen數據格式
CANopen的數據格式如下:
COB-ID | 指令 | 索引 | 子索引 | 數據 | ||||
11bit | 字節0 | 字節1 | 字節2 | 字節3 | 字節4 | 字節5 | 字節6 | 字節7 |
低位 | 高位 | 低位 | 高位 |
COB-ID組成說明:
10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
功能代碼 | 設備地址 | |||||||||
X | X | X | X | X | X | X | X | X | X | X |
可以使用的功能代碼:
功能 | 代碼(bit) | COB-ID |
NMT | 0000 | 0 |
SYNC | 0001 | 128(80H) |
Emergency | 0001 | 129-255(81H-FFH |
PDO(RX) | 0011 | 385-511(181H-1FFH) |
PDO(TX) | 0100 | 513-639(201H-27FH) |
SDO(RX) | 1011 | 1409-1535(581H-5FFH) |
SDO(TX) | 1100 | 1537-1663(601H-67FH) |
RX/TX是從上位機角度出發,RX為編碼器數據發出,TX為編碼器數據接收。
索引表:
Index | Sub | R/W | Name |
0x1000 | 0x00 | R | 設備代碼 |
0x1002 | 0x00 | R | 廠商 |
0x1008 | 0x00 | R | 設備名稱 |
0x1009 | 0x00 | R | 硬件版本 |
0x100A | 0x00 | R | 軟件版本 |
0x1010 | 0x00 | W | 保存參數 |
0x1018 | 0x01 | R | 廠商代碼 |
0x02 | R | 生產類型代碼 | |
0x03 | R | 生產批號 | |
0x1800 | 0x01 | R | PDO-ID |
0x02 | RW | 傳輸模式 | |
0x03 | R | 同步時間 | |
0x2101 | 0x00 | R | 分辨率 |
0x2200 | 0x00 | RW | 循環時間 |
0x2300 | 0x00 | W | 出廠設置 |
0x3000 | 0x00 | R | 節點號 |
0x3001 | 0x00 | R | 波特率代碼 |
命令字節說明:
命令 | 功能 |
22H | 寫參數 |
60H | 執行確認 |
40H | 查詢參數 |
43H | 查詢返回(1字節有效) |
4BH | 查詢返回(2字節有效) |
4FH | 查詢返回(4字節有效) |
80H | 故障 |
故障代碼列表:
代碼 | 故障 |
0x | 索引不存在 |
0x | 子索引不存在 |
0x | 參數值太小 |
0x | 參數值太大 |
0x | 寫只讀對象 |
0x | 讀只寫對象 |
0x | 一般錯誤 |
編碼器設置說明:
數據格式為ID,DL,D0,D1。數據為16進制格式。假設編碼器的節點號是NN。
啟動所有節點: 發送000,02,01,00
啟動NN號節點:發送000,02,01,NN
停止所有節點: 發送000,02,02,00
停止NN號節點:發送000,02,02,NN
復位所有節點: 發送000,02,81,00
復位NN號節點:發送000,02,81,NN
附錄2、CANopen 簡介
1、CANopen協議
從OSI網絡模型的角度來看同,現場總線網絡一般只實現了第1層(物理層)、第2層(數據鏈路層)、第7層(應用層)。因為現場總線通常只包括一個網段,因此不需要第3層(傳輸層)和第4層(網絡層),也不需要第5層(會話層)第6層(描述層)的作用。
CAN(Controller Area Network)現場總線僅僅定義了第1層、第2層(見ISO11898標準);實際設計中,這兩層由硬件實現,設計人員無需再為此開發相關軟件(Software)或固件(Firmware)。
同時,CAN只定義物理層和數據鏈路層,沒有規定應用層,本身并不完整,需要一個高層協議來定義CAN報文中的11/29位標識符、8字節數據的使用。而且,基于CAN總線的工業自動化應用中,越來越需要一個開放的、標準化的高層協議:這個協議支持各種CAN廠商設備的互用性、互換性,能夠實現在CAN網絡中提供標準的、統一的系統通訊模式,提供設備功能描述方式,執行網絡管理功能。
● 應用層(Application layer):為網絡中每一個有效設備都能夠提供一組有用的服務與協議。
● 通訊描述(Communication profile):提供配置設備、通訊數據的含義,定義數據通訊方式。
● 設備描述(Device profile):為設備(類)增加符合規范的行為。
下面的章節將介紹基于CAN的高層協議:CAL協議和基于CAL協議擴展的CANopen協議。CANopen協議是CAN-in-Automation(CiA)定義的標準之一,并且在發布后不久就獲得了廣泛的承認。尤其是在歐洲,CANopen協議被認為是在基于CAN的工業系統中占.地位的標準。大多數重要的設備類型,例如數字和模擬的輸入輸出模塊、驅動設備、操作設備、控制器、可編程控制器或編碼器,都在稱為“設備描述”的協議中進行描述;“設備描述”定義了不同類型的標準設備及其相應的功能。依靠CANopen協議的支持,可以對不同廠商的設備通過總線進行配置。
2、通信對象
CANopen 有四類通信對象。
.類通信對象是用8 個字節的數據字段,把過程數據對象PDO(Process Data Objects)映象到一個單一的CAN 幀,從而傳輸應用對象。每個PDO 有一個.的標識符,且可以僅通過一個節點發送,但其接受者可不止一個(生產者/消費者通信)。發送PDO 可用多種方式,如由內部事件驅動、由內部定時器驅動、由遠程請求驅動和由接收到來自特定的節點的一個同步信息驅動。應用對象和支持的傳送方式的缺省映象在對象字典中對每一個PDO 都作了描述。PDO 標識符具有高優先級以確保良好的實時性能,如果需要硬實時控制,那么系統的設計者可為每個PDO 組態一個禁止時間(inhibit-time) ,該“禁止時間”嚴禁在特定的時間內發送這個對象。因此設計者可對多個對象設計一個確定的PDO 行為,發送PDO 無需確認PDO。 映象對象中定義了被在PDO內傳送的應用對象,它描述了所映象的應用對象的順序和長度。在預操作狀態(Pre-Operational State)期間支持動態PDO 映象的設備必須支持這個功能。若在預操作狀態下支持動態映象,則服務數據對象SDO 客戶負責數據的一致性。
第二類通信對象是傳送組態數據的服務數據對象SDO(Service Data Objects) ,組態數據有時多于8 個字節。SDO 傳輸協議允許傳送任意長度的數據對象,.段內的.個字節包含必須的數據流控制信息,它包括為克服的雙重接受CAN 幀的問題而設置的一個觸發位,.段內的第2 4 字節包含要讀出或寫入的對象字典登入項的索引和子索引,.段內的.后四個字節可用于組態數據,用同樣的CAN標識符。第二段以及其后繼段包含控制字節和多達7 個字節的組態數據,接受者確認每個字節以便有點對點通信(客戶/服務器)。
第三類通信對象是網絡管理對象節點保護對象(Nodeguarding Object)和NMT 對象節點保護對象。是由NMT 主站節點遠程請求的,具有一個字節的CAN 幀數據字節,主要包含節點的狀態節點保護時間,在對象定期發送節點保護時間,在對象字典中也作了規定,并且可以由SDO 進行組態。此外還規定了保護時間壽命(Life Guarding Time) ,在該時間區內NMT 主站必須保護一個NMT 從站,這就確保了即使在主站不存在的情況下,節點仍能以用戶的方式作出反應。NMT 對象映象到一個單一的帶有2 個字節數據長度的CAN 幀,它的標識符為0 ,.個字節包含命令說明符,第二個字節包含必須執行此命令的設備的節點標識符(當節點標識符為0 時所有的節點必須執行此命令), 由NMT 主站發送的NMT 對象強制節點轉換成另一個狀態。CANopen 狀態機規定了初始化狀態子程序操作、操作狀態和停止(正式為準備)狀態。
在加電后每個CANopen 處于初始化狀態然后自動地轉換到預操作狀態,在此狀態下提供了同步對象和節點保護,還允許SDO 的傳送。如果NMT 主站已將一個或多個節點設置為操作狀態,則允許他們發送和接受PDO,在停止狀態除NMT 對象外不允許通信。初始化狀態又分成三個子狀態,以使全部或部分的節點復位在Reset_Application 子狀態中。制造商專用(manufacture-specific)行規區域和標準化設備行規區域的參數均設置成它們的缺省值。在Reset_Communication 子狀態中,通信行規區域的參數設定為它們的通電(power-on)值。第三個子狀態是初始化狀態在通電后或復位通信后或復位應用后,節點自動地進入此狀態,通電值(Power-on)是上一次存儲的參數。
第四類通信對象是應急對象。由設備內部出現致命錯誤來觸發,并從相關應用設備上的應急客戶發送,因此應急對象適用于中斷類型的報警信號,每個“錯誤事件”(error event)只能發送一次應急對象,只要在設備上不發生新的錯誤就不得再發送應急對象。零個或多個應急對象消費者可接受這些應急消費者的反應是由應用的。CANopen 定義了應急對象中要傳送的若干個應急錯誤代碼,它是一個單一的具有8 個數據字節的CAN 幀。
3、CANopen預定義連接集
為了減小簡單網絡的組態工作量,CANopen定義了強制性的缺省標識符(CAN-ID)分配表。這些標志符在預操作狀態下可用,通過動態分配還可修改他們。CANopen設備必須向它所支持的通訊對象提供相應的標識符。
缺省ID分配表是基于11位CAN-ID,包含一個4位的功能碼部分和一個7位的節點ID(Node-ID)部分。如圖3-1所示。
Node-ID由系統集成商定義。Node-ID范圍是1~127(0不允許被使用)。如下表格CANopen預定義主/從連接集CAN標識符分配表。
CANopen預定義主/從連接集的廣播對象 | |||
對象 | 功能碼 ID-bits 10-7 | COB-ID | 通訊參數在OD中的索引 |
NMT Module Control | 0000 | 000H | |
SYNC | 0001 | 080H | 1005H,1006H,1007H |
Time Stamp | 0010 | 100H | 1012H,1013H |
CANopen主/從連接集的對等對象 | |||
對象 | 功能碼 ID-bits 10-7 | COB-ID | 通訊參數在OD中的索引 |
緊急 | 0001 | 081H-0FFH | 1024H,1015H |
PDO(接收) | 0011 | 181H-1FFH | 1800H |
PDO(發送) | 0100 | 201H-27FH | 1400H |
SDO(接收) | 1011 | 581H-5FFH | 1200H |
SDO(發送) | 1100 | 601H-67FH | 1200H |
NMT Error Control | 1110 | 701H-77FH | 1016H-1017H |
注意: ● PDO/SDO 發送/接收是由上位機觀察的。
● NMT 錯誤控制包括節點保護(Node Guarding)和Boot-up協議。