《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > CANopen現(xiàn)場(chǎng)總線主、從站系統(tǒng)解決方案

CANopen現(xiàn)場(chǎng)總線主、從站系統(tǒng)解決方案

2009-06-30
作者:廣州致遠(yuǎn)電子有限公司

??? 摘? 要: 闡述了CANopen應(yīng)用層協(xié)議的通訊機(jī)制,分析了其應(yīng)用優(yōu)勢(shì),并通過(guò)實(shí)際應(yīng)用案例的講解與剖析,指導(dǎo)用戶快速建立一個(gè)運(yùn)行可靠的CANopen系統(tǒng)網(wǎng)絡(luò)。
??? 關(guān)鍵詞: 現(xiàn)場(chǎng)總線;CAN-bus;CANopen

?

??? 隨著現(xiàn)場(chǎng)總線CAN-bus技術(shù)逐漸深入到國(guó)內(nèi)各個(gè)應(yīng)用領(lǐng)域,同時(shí)也基于國(guó)內(nèi)廠家的產(chǎn)品設(shè)備與國(guó)際工控市場(chǎng)的接軌需求,基于主流應(yīng)用層協(xié)議——CANopen的應(yīng)用網(wǎng)絡(luò)也逐漸增多,其在車(chē)輛工業(yè)、工程機(jī)械、船舶海運(yùn)等需要大量分布式傳感器、控制器和執(zhí)行機(jī)構(gòu)的行業(yè)都有大量應(yīng)用。


?????????????????????????????????????????? CANopen協(xié)議
????????????????????????????????????????? CANopen的發(fā)展

?? ?20世紀(jì)80年代,由于汽車(chē)行業(yè)的需要而出現(xiàn)了CAN-bus。CAN-bus只定義了OSI通信模型中的第一層(物理層)和第二層(數(shù)據(jù)鏈路層),而沒(méi)有定義應(yīng)用層,因此各個(gè)廠商都可以定義自己的應(yīng)用層協(xié)議,這樣不利于工業(yè)的發(fā)展。為了統(tǒng)一標(biāo)準(zhǔn),在CAN-bus的應(yīng)用層相繼出現(xiàn)了CANopen、DeviceNet、J1939等應(yīng)用層協(xié)議。
?? ?CANopen協(xié)議是在20世紀(jì)90年代末由CIA(CAN-in-Automation)組織在CAL(CAN Application Layer)的基礎(chǔ)上發(fā)展而來(lái)的,一經(jīng)推廣便在歐洲得到了廣泛的承認(rèn)。經(jīng)過(guò)對(duì)CANopen協(xié)議規(guī)范文本的幾次修改,使得CANopen協(xié)議在穩(wěn)定性、實(shí)時(shí)性、抗干擾性上都得到了提高,并且CIA不斷地在各個(gè)行業(yè)推出標(biāo)準(zhǔn)協(xié)議描述文本,使得CANopen在各個(gè)行業(yè)中更快速地發(fā)展與推廣。


?????????????????????????????????????????? 對(duì)象字典OD
??? CANopen協(xié)議最核心的概念就是對(duì)象字典(Object Dictionary),整個(gè)設(shè)備的功能都是通過(guò)對(duì)象字典來(lái)描述的。在一個(gè)特定的CANopen設(shè)備中必須擁有通信參數(shù)描述區(qū)(0x1000~0x1FFF)和設(shè)備功能描述區(qū)(0x2000~0x5FFF 或0x6000~0x9FFF),其他的區(qū)域僅僅表示數(shù)據(jù)類型。
??? 對(duì)象字典分為主索引(16位)與子索引(8位),通過(guò)電子數(shù)據(jù)表格(EDS)來(lái)描述。設(shè)備子協(xié)議為對(duì)象字典中的每個(gè)對(duì)象描述了它的功能、名字、索引和子索引、數(shù)據(jù)類型以及這個(gè)對(duì)象是必需的還是可選的,這個(gè)對(duì)象是只讀、只寫(xiě)或者可讀寫(xiě)等。

???????????????????????????????????????? CANopen通信
??? CANopen協(xié)議定義了四種通信對(duì)象,分別為管理報(bào)文對(duì)象、服務(wù)數(shù)據(jù)對(duì)象SDO(Service Data Object)、過(guò)程數(shù)據(jù)對(duì)象PDO(Process Data Object)、預(yù)定義報(bào)文或者特殊功能對(duì)象。
?? ?一個(gè)CANopen設(shè)備必須支持一定數(shù)量的網(wǎng)絡(luò)管理服務(wù)(管理報(bào)文,administrative messages),需要至少一個(gè)SDO,每個(gè)生產(chǎn)或消費(fèi)過(guò)程數(shù)據(jù)的設(shè)備需要至少一個(gè)PDO,所有其它的通信對(duì)象是可選的。一個(gè)CANopen設(shè)備中CAN-bus通信接口、對(duì)象字典和應(yīng)用程序之間的聯(lián)系如圖 1所示。

?


?????????????????????????????????? CANopen節(jié)點(diǎn)開(kāi)發(fā)
??? 主節(jié)點(diǎn)與從節(jié)之間的主要區(qū)別在于主節(jié)點(diǎn)具有管理報(bào)文(NMT)以及服務(wù)數(shù)據(jù)客戶端(client)等功能,有了這些功能,主節(jié)點(diǎn)就可以管理CANopen網(wǎng)絡(luò)。對(duì)于開(kāi)發(fā)主節(jié)點(diǎn)和從節(jié)點(diǎn)設(shè)備來(lái)說(shuō)有著較大的區(qū)別,主節(jié)點(diǎn)主要負(fù)責(zé)整個(gè)網(wǎng)絡(luò)的管理并且能加載所有節(jié)點(diǎn)的EDS文件,例如主節(jié)點(diǎn)可以管理任意一個(gè)從節(jié)點(diǎn)進(jìn)入特定的工作狀態(tài)、配置從節(jié)點(diǎn)的參數(shù)、完成與從節(jié)點(diǎn)的數(shù)據(jù)交換等功能。從網(wǎng)絡(luò)結(jié)構(gòu)來(lái)說(shuō)從節(jié)點(diǎn)屬于被動(dòng)設(shè)備,受主站管理,從節(jié)點(diǎn)只需要支持PDO、SDO服務(wù)器、預(yù)定義或特殊功能對(duì)象。


????????????????????????????????????? CANopen組網(wǎng)通信
??? 在一個(gè)完整的CANopen網(wǎng)絡(luò)中可有兩種組網(wǎng)方式。
?? ?(1)CANopen網(wǎng)絡(luò)中,需要一個(gè)CANopen主節(jié)點(diǎn)設(shè)備和至少一個(gè)CANopen從節(jié)點(diǎn)設(shè)備;
?? ?(2)CANopen網(wǎng)絡(luò)中,至少需要兩個(gè)CANopen從節(jié)點(diǎn),由于CANopen可以支持點(diǎn)對(duì)點(diǎn)的工作方式,即對(duì)CANopen從節(jié)點(diǎn)配置正確的情況下,CANopen網(wǎng)絡(luò)中沒(méi)有主節(jié)點(diǎn),從節(jié)點(diǎn)與從節(jié)點(diǎn)之間也能夠建立通信并完成實(shí)時(shí)數(shù)據(jù)的交換過(guò)程。
?? ?對(duì)于第一種組網(wǎng)方式需要一個(gè)CANopen主站,現(xiàn)階段能提供的CANopen主站有很多種可以選擇,例如工業(yè)電腦、PLC、工控主機(jī)等。主站的開(kāi)發(fā)方式可以選擇帶CANopen API函數(shù)的主站卡、帶OPC服務(wù)器的主站卡或者帶CANopen主節(jié)點(diǎn)的PLC,如圖2所示。

?


??????????????????????????????????????? CANopen節(jié)點(diǎn)設(shè)計(jì)
??? 對(duì)于一個(gè)現(xiàn)有的CANopen網(wǎng)絡(luò),由于功能上的需求,需要把不具有CANopen協(xié)議的串行設(shè)備(如RS232/RS485等設(shè)備)添加到CANopen網(wǎng)絡(luò),這種情況下就需要用到網(wǎng)關(guān)設(shè)備(不同協(xié)議的轉(zhuǎn)換設(shè)備),其聯(lián)網(wǎng)示意圖如圖2所示。


??????????????????????????????????????????? 從節(jié)點(diǎn)設(shè)計(jì)
??? 設(shè)計(jì)CANopen從節(jié)點(diǎn)的方案非常多,例如51MCU+SJA1000+CTM8251T(PCA8251T)、LPC2119+CTM-8251T、FPGA+SJA1000+CTM8251T等方案。如果用戶所設(shè)計(jì)的CANopen從節(jié)點(diǎn)設(shè)備功能相對(duì)簡(jiǎn)單,可選用價(jià)格較便宜的51單片機(jī)的方案。如果用戶設(shè)計(jì)的CANopen從節(jié)點(diǎn)的功能比較復(fù)雜,代碼可能占有大量的CODE和RAM空間,因此建議選擇LPC2119方案。如果要求設(shè)備運(yùn)行速度快,則可選FPGA方案。這些節(jié)點(diǎn)的設(shè)計(jì)方案中都需要對(duì)CANopen協(xié)議有深入的了解,并編寫(xiě)出符合CANopen協(xié)議標(biāo)準(zhǔn)的代碼。
??? 為了簡(jiǎn)化CANopen從節(jié)點(diǎn)的設(shè)計(jì),用戶可以選擇由廣州致遠(yuǎn)電子有限公司所生產(chǎn)的CANopen從站模塊,該模塊支持用戶二次開(kāi)發(fā),并且已經(jīng)固化了CANopen從節(jié)點(diǎn)的核心代碼(符合CANopen規(guī)范標(biāo)準(zhǔn)),提供API函數(shù)供用戶使用,可使從節(jié)點(diǎn)的性能更加穩(wěn)定、開(kāi)發(fā)速度更快、使用更方便。


??????????????????????????????????????????? 主節(jié)點(diǎn)設(shè)計(jì)
??? 在CANopen主節(jié)點(diǎn)的設(shè)計(jì)中,因?yàn)橹鞴?jié)點(diǎn)需要管理最多127個(gè)的從節(jié)點(diǎn),所以對(duì)于主站的硬件資源要求較高,主節(jié)點(diǎn)的設(shè)計(jì)通常有以下幾種方案。
?? ?(1)工業(yè)電腦+PCI CANopen主站卡,這種方案簡(jiǎn)單方便,可通過(guò)主站卡提供的API函數(shù)或OPC服務(wù)器輕松完成主站的設(shè)計(jì)或組態(tài);
?? ?(2)嵌入式工控主機(jī)(WinCE或linux),這種方案也可以利用供應(yīng)商提供的CANopen主站函數(shù)庫(kù)或CANopen主站卡來(lái)實(shí)現(xiàn)CANopen主節(jié)點(diǎn)功能;
?? ?(3)PLC(CANopen主節(jié)點(diǎn)),這種方案對(duì)用戶來(lái)說(shuō)也是比較簡(jiǎn)單的方案,只需要用戶對(duì)PLC進(jìn)行編程,可以完成CANopen主節(jié)點(diǎn)的組態(tài)應(yīng)用,但費(fèi)用較高。
?? ?用戶可根據(jù)實(shí)際情況進(jìn)行方案選擇,用最少的時(shí)間和費(fèi)用完成最穩(wěn)定的主節(jié)點(diǎn),實(shí)現(xiàn)用戶的最佳選擇。


?????????????????????????????????????????? 節(jié)點(diǎn)抗干擾設(shè)計(jì)
??? ESD脈沖、電源瞬變、總線浪涌等現(xiàn)象是影響網(wǎng)絡(luò)通信、損壞設(shè)備的主要原因。設(shè)計(jì)CAN-bus電路時(shí),可以選擇微型封裝的專用ESD保護(hù)元件PESDxCAN,以對(duì)抗ESD及其他電壓突變脈沖??梢园惭bCAN-bus共模扼流圈BZ82793,以確保設(shè)備的電磁兼容性,抑制耦合干擾。同時(shí),外置CAN-bus總線防雷器可以降低雷電、大電流浪涌對(duì)野外安裝設(shè)備的損壞幾率。


??????????????????????????????????? CANopen在紡織機(jī)械中的應(yīng)用
??? 改革開(kāi)放30年來(lái),國(guó)內(nèi)針織行業(yè)迅猛發(fā)展,傳統(tǒng)的手搖橫機(jī)已經(jīng)無(wú)法滿足復(fù)雜花型編制的要求,也無(wú)法提高生產(chǎn)效率。全自動(dòng)電腦橫機(jī)是國(guó)內(nèi)毛衫企業(yè)發(fā)展壯大的必然趨勢(shì)。它可以大大提高生產(chǎn)效率,保證產(chǎn)品質(zhì)量。
??? 由于CANopen協(xié)議的獨(dú)特優(yōu)勢(shì),非常適合用作紡織機(jī)械的通信協(xié)議,可參考CANopen標(biāo)準(zhǔn)協(xié)議描述文本DS414。NetEPC-8900集成了CANopen協(xié)議主站函數(shù)庫(kù),能實(shí)現(xiàn)管理多達(dá)127個(gè)節(jié)點(diǎn)的CANopen網(wǎng)絡(luò),TinyARM模塊帶有CANopen從節(jié)點(diǎn)的函數(shù)庫(kù),可實(shí)現(xiàn)絕大部分工業(yè)控制要求。應(yīng)用CANopen協(xié)議構(gòu)成的CAN-bus網(wǎng)絡(luò)可使整個(gè)系統(tǒng)完全自動(dòng)工作,無(wú)需人工參與,可以大大減少企業(yè)人力資源成本,提高生產(chǎn)效率,保證產(chǎn)品質(zhì)量。其方案如圖 3所示。

?


??? 基于NetEPC-8900的全自動(dòng)電腦橫機(jī)采用廣州致遠(yuǎn)電子有限公司生產(chǎn)的NetEPC-8900為控制主機(jī),通過(guò)CANopen網(wǎng)絡(luò)連接CANopen節(jié)點(diǎn)(TinyARM T23系列)來(lái)實(shí)現(xiàn)。工作人員在監(jiān)控服務(wù)器上生成需要生產(chǎn)服飾的花型文件;通過(guò)以太網(wǎng)下載到NetEPC-8900上;NetEPC-8900解析花型文件后,通過(guò)CANopen節(jié)點(diǎn)(TinyARM T23系列)的PWM信號(hào)控制搖床電機(jī)工作,通過(guò)CANopen節(jié)點(diǎn)(TinyARM T23系列)的I/O信號(hào)控制選針器工作,通過(guò)CANopen節(jié)點(diǎn)(TinyARM T23系列)的D/A信號(hào)控制卷布電機(jī)和壓針電機(jī)工作;通過(guò)CANopen節(jié)點(diǎn)(TinyARM T23系列)控制紗嘴三角系統(tǒng)動(dòng)作。NetEPC-8900通過(guò)連接LCD顯示器指示橫機(jī)當(dāng)前的狀態(tài)信息。工作人員也可以通過(guò)監(jiān)控服務(wù)監(jiān)控生產(chǎn)的衣服產(chǎn)量。
?? ?現(xiàn)階段的中國(guó)在工業(yè)領(lǐng)域與歐洲、美國(guó)等其他先進(jìn)國(guó)家存在較大的差距。CANopen作為先進(jìn)的通信協(xié)議在歐洲等其他的發(fā)達(dá)國(guó)家都已得到了廣泛應(yīng)用,在中國(guó)的推廣與應(yīng)用還處于起步階段,在我國(guó)正大力發(fā)展工業(yè)的時(shí)代,CANopen有著重大的發(fā)展前景與機(jī)遇。
?? ?廣州致遠(yuǎn)電子有限公司提供CANopen主站卡、CANopen數(shù)據(jù)采集模塊、CANopent協(xié)議網(wǎng)關(guān)等產(chǎn)品,并提供CANopen軟件支持與網(wǎng)絡(luò)服務(wù)等。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。