CANopen協(xié)議興起于歐洲,現(xiàn)階段在歐洲特別是工業(yè)發(fā)達(dá)的德國(guó)幾乎所有的設(shè)備都提供CANopen的支持,我國(guó)工業(yè)還相對(duì)的落后,正處在引進(jìn)國(guó)外先進(jìn)設(shè)備的階段,這就要求我們懂得CANopen通信協(xié)議,同時(shí)能夠利用CANopen設(shè)備正確的組建一個(gè)適合特定應(yīng)用的CANopen網(wǎng)絡(luò)。CANopen的多種數(shù)據(jù)傳輸方式為各種應(yīng)用提供優(yōu)異的解決方案,普遍應(yīng)用于數(shù)據(jù)采集與傳輸、電機(jī)控制、汽車(chē)電子、電池充電控制以及紡織等行業(yè)。 1. CANopen從站/主站特點(diǎn) 具有網(wǎng)絡(luò)管理(Network Management:簡(jiǎn)稱(chēng)NMT)主機(jī)功能的設(shè)備通常被稱(chēng)為CANopen主站設(shè)備,通常也具有服務(wù)數(shù)據(jù)(Service Date Object:簡(jiǎn)稱(chēng)SDO)客戶端功能。反之具有網(wǎng)絡(luò)管理(NMT)從機(jī)功能的設(shè)備通常被稱(chēng)為CANopen從站設(shè)備,且其必須具備有服務(wù)數(shù)據(jù)服務(wù)器功能。這樣CANopen主站設(shè)備就可以控制從站以及讀寫(xiě)CANopen從站設(shè)備的對(duì)象字典。 (1)CANopen從站特性CANopen從站在CANopen網(wǎng)絡(luò)中擁有唯一的節(jié)點(diǎn)地址,并且能獨(dú)立完成特定的功能,例如數(shù)據(jù)采集、電機(jī)控制等等。對(duì)實(shí)時(shí)性要求高的數(shù)據(jù),通常通過(guò)實(shí)時(shí)數(shù)據(jù)過(guò)程(Process Data Object:簡(jiǎn)稱(chēng)PDO)進(jìn)行傳輸,因此CANopen從站應(yīng)當(dāng)支持一定數(shù)量的PDO傳輸功能。根據(jù)CANopen協(xié)議DS301 V4.02的定義,每個(gè)從站都預(yù)定義了4個(gè)TPDO(Transmit Process Data Object:簡(jiǎn)稱(chēng)TPDO)和4個(gè)RPDO(Receive Process Data Object),另外從站也應(yīng)具有節(jié)點(diǎn)/壽命保護(hù)或心跳報(bào)文以及生產(chǎn)緊急報(bào)文等功能。每個(gè)CANopen從站都應(yīng)有一個(gè)對(duì)象字典,描述了從站所具有的應(yīng)用參數(shù)和通信參數(shù)。 (2) CANopen主站特性CANopen主站在網(wǎng)絡(luò)所起的作用有別于CANopen從站,通常CANopen主站在網(wǎng)絡(luò)中負(fù)責(zé)網(wǎng)絡(luò)管理、從站參數(shù)配置以及從站數(shù)據(jù)的處理,其并不一定具有特定的功能,但也有自己的對(duì)象字典和唯一的節(jié)點(diǎn)地址。 2. CANopen網(wǎng)絡(luò)組建 由于CANopen是基于CAN總線的一種應(yīng)用層協(xié)議,因此其網(wǎng)絡(luò)組建與CAN總線一致,典型的總線型結(jié)構(gòu),從站和主站都掛接在該總線上即可,在一個(gè)CANopen網(wǎng)絡(luò)中只能有一個(gè)主站設(shè)備和若干個(gè)從站設(shè)備同時(shí)工作。CANopen網(wǎng)絡(luò)布線時(shí)選用帶屏蔽雙絞線,提高總線抗干擾能力。表1所示為CAN通信波特率與總線長(zhǎng)度的關(guān)系。注意網(wǎng)絡(luò)中的各節(jié)點(diǎn)的支線長(zhǎng)度不易過(guò)長(zhǎng),波特率大于100Kbps的情況下,支線總長(zhǎng)度不應(yīng)大于30m,單個(gè)節(jié)點(diǎn)的支線也不應(yīng)大于60cm. 表1總線長(zhǎng)度與波特率關(guān)系 (1)基本的CANopen網(wǎng)絡(luò)結(jié)構(gòu) 圖1 CANopen基本網(wǎng)絡(luò)結(jié)構(gòu) 圖1所示為CANopen網(wǎng)絡(luò)的基本結(jié)構(gòu),在該網(wǎng)絡(luò)中有一個(gè)CANopen主站,負(fù)責(zé)管理網(wǎng)絡(luò)中的所有從站,每個(gè)設(shè)備都有一個(gè)獨(dú)立的節(jié)點(diǎn)地址(NodeID)。從站與從站之間也能建立通信,通常需要事先對(duì)各個(gè)從站進(jìn)行配置,使各個(gè)從站之間能夠建立起獨(dú)立的PDO通信。 (2)復(fù)雜的CANopen網(wǎng)絡(luò)結(jié)構(gòu) 圖2帶網(wǎng)關(guān)設(shè)備的CANopen網(wǎng)絡(luò) 圖3所示為帶有網(wǎng)關(guān)設(shè)備的CANopen網(wǎng)絡(luò),與基本的CANopen網(wǎng)絡(luò)相比,該網(wǎng)絡(luò)中增加了一個(gè)CANopen網(wǎng)關(guān)設(shè)備,該網(wǎng)關(guān)設(shè)備可以是CANopen轉(zhuǎn)DeviceNet、Profibus、Modbus或其它的設(shè)備。在CANopen網(wǎng)絡(luò)中,我們也可把該網(wǎng)關(guān)設(shè)備作為一個(gè)從站設(shè)備或者是CANopen主站設(shè)備。 3. CANopen網(wǎng)絡(luò)中從站的配置CANopen從站設(shè)備在出廠時(shí)都設(shè)定有默認(rèn)參數(shù),并且這些參數(shù)都與節(jié)點(diǎn)地址綁定,例如實(shí)時(shí)數(shù)據(jù)傳輸PDO,其預(yù)定義連接集定義了其默認(rèn)的參數(shù)有4個(gè)TPDO和4個(gè)RPDO,其COB-ID(Communication Object -ID)如表2所示。在一些應(yīng)用簡(jiǎn)單的場(chǎng)合只需要采用默認(rèn)設(shè)置即可進(jìn)行正常通信,但對(duì)于一些應(yīng)用比較復(fù)雜的場(chǎng)合,則需要對(duì)從站進(jìn)行相應(yīng)的配置,最常見(jiàn)的配置參數(shù)有PDO的COB-ID、PDO映射參數(shù)、以及節(jié)點(diǎn)/壽命保護(hù)等參數(shù)。 表2 PDO預(yù)定義鏈接 CANopen網(wǎng)絡(luò)中,對(duì)從站的參數(shù)配置或獲取都是通過(guò)SDO進(jìn)行傳輸,因此從站和主站都必須支持SDO傳輸才能進(jìn)行正常的配置。為了快速配置從站設(shè)備,在配置從站之前通過(guò)NMT使整個(gè)網(wǎng)絡(luò)設(shè)備進(jìn)入到預(yù)操作狀態(tài)。 (1)通信參數(shù)配置CANopen設(shè)備的通信參數(shù)包括PDO的COB-ID、傳輸類(lèi)型、禁止時(shí)間以及映射參數(shù)等。其參數(shù)配置順序如圖3所示。 圖3通信參數(shù)配置順序 在配置PDO的通信參數(shù)時(shí),首先禁止PDO通信,根據(jù)DS301 V4.02的定義,當(dāng)COB-ID的最高位(第31位)為1時(shí)即可禁止該P(yáng)DO通信,禁止PDO通信操作示例如圖4所示。需要注意的是只有在PDO禁止的情況下,相應(yīng)的傳輸類(lèi)型、映射參數(shù)以及COB-ID的值才能被改變,否則試圖以任何方式去更改都會(huì)出現(xiàn)錯(cuò)誤。 (2)其它參數(shù)的配置除了通信相關(guān)的參數(shù)之外,CANopen設(shè)備還有一些與安全相關(guān)的參數(shù),例如節(jié)點(diǎn)/壽命保護(hù)或者心跳報(bào)文。根據(jù)DS301 V4.02的定義,同一個(gè)CANopen從站中只可能使用節(jié)點(diǎn)/壽命保護(hù)或心跳報(bào)文的一種。節(jié)點(diǎn)/壽命保護(hù)可以實(shí)現(xiàn)雙向保護(hù),即主站可監(jiān)控從站的狀態(tài),而從站也可監(jiān)控主站是否在線。心跳報(bào)文只是一種單向的保護(hù)機(jī)制,心跳報(bào)文的消費(fèi)者可以監(jiān)控到心跳報(bào)文生產(chǎn)者的狀態(tài)。在網(wǎng)絡(luò)總線負(fù)載較大的情況下,建議使用心跳報(bào)文的保護(hù)機(jī)制來(lái)減輕總線負(fù)載。 圖4禁止PDO通信方法 (3)配置從站與從之間的通信CANopen網(wǎng)絡(luò)中從站與從站可以直接進(jìn)行PDO通信而不需要主站的參與,這樣就提高了實(shí)時(shí)數(shù)據(jù)的實(shí)時(shí)性。將接收從站RPDO的COB-ID更改為發(fā)送從站TPDO的COB-ID,這樣就建立了兩個(gè)從站之間了PDO通信,在通信過(guò)程中也不需要主站的任何干預(yù)。表3所示。 表3從站與從站通信COB-ID配置 4.結(jié)語(yǔ) 根據(jù)不同應(yīng)用環(huán)境可選用不同的線纜來(lái)組建CANopen網(wǎng)絡(luò),在CANopen網(wǎng)絡(luò)的布置方面,需要了解線纜的阻抗、容抗、信號(hào)延時(shí)等來(lái)匹配總線的終端電阻,減少由于信號(hào)衰減或反射而導(dǎo)致總線工作異常。從而組建一個(gè)抗干擾能力強(qiáng)、穩(wěn)定可靠的CANopen網(wǎng)絡(luò)。 |