??? 摘? 要: 闡述了CANopen應用層協(xié)議的通訊機制,分析了其應用優(yōu)勢,,并通過實際應用案例的講解與剖析,,指導用戶快速建立一個運行可靠的CANopen系統(tǒng)網(wǎng)絡,。
??? 關鍵詞: 現(xiàn)場總線,;CAN-bus;CANopen
?
??? 隨著現(xiàn)場總線CAN-bus技術逐漸深入到國內(nèi)各個應用領域,,同時也基于國內(nèi)廠家的產(chǎn)品設備與國際工控市場的接軌需求,,基于主流應用層協(xié)議——CANopen的應用網(wǎng)絡也逐漸增多,其在車輛工業(yè),、工程機械,、船舶海運等需要大量分布式傳感器、控制器和執(zhí)行機構的行業(yè)都有大量應用,。
?????????????????????????????????????????? CANopen協(xié)議
????????????????????????????????????????? CANopen的發(fā)展
?? ?20世紀80年代,,由于汽車行業(yè)的需要而出現(xiàn)了CAN-bus。CAN-bus只定義了OSI通信模型中的第一層(物理層)和第二層(數(shù)據(jù)鏈路層),,而沒有定義應用層,,因此各個廠商都可以定義自己的應用層協(xié)議,這樣不利于工業(yè)的發(fā)展,。為了統(tǒng)一標準,,在CAN-bus的應用層相繼出現(xiàn)了CANopen、DeviceNet,、J1939等應用層協(xié)議。
?? ?CANopen協(xié)議是在20世紀90年代末由CIA(CAN-in-Automation)組織在CAL(CAN Application Layer)的基礎上發(fā)展而來的,,一經(jīng)推廣便在歐洲得到了廣泛的承認,。經(jīng)過對CANopen協(xié)議規(guī)范文本的幾次修改,使得CANopen協(xié)議在穩(wěn)定性,、實時性,、抗干擾性上都得到了提高,,并且CIA不斷地在各個行業(yè)推出標準協(xié)議描述文本,使得CANopen在各個行業(yè)中更快速地發(fā)展與推廣,。
?????????????????????????????????????????? 對象字典OD
??? CANopen協(xié)議最核心的概念就是對象字典(Object Dictionary),,整個設備的功能都是通過對象字典來描述的。在一個特定的CANopen設備中必須擁有通信參數(shù)描述區(qū)(0x1000~0x1FFF)和設備功能描述區(qū)(0x2000~0x5FFF 或0x6000~0x9FFF),,其他的區(qū)域僅僅表示數(shù)據(jù)類型,。
??? 對象字典分為主索引(16位)與子索引(8位),通過電子數(shù)據(jù)表格(EDS)來描述,。設備子協(xié)議為對象字典中的每個對象描述了它的功能,、名字、索引和子索引,、數(shù)據(jù)類型以及這個對象是必需的還是可選的,,這個對象是只讀、只寫或者可讀寫等,。
???????????????????????????????????????? CANopen通信
??? CANopen協(xié)議定義了四種通信對象,,分別為管理報文對象、服務數(shù)據(jù)對象SDO(Service Data Object),、過程數(shù)據(jù)對象PDO(Process Data Object),、預定義報文或者特殊功能對象。
?? ?一個CANopen設備必須支持一定數(shù)量的網(wǎng)絡管理服務(管理報文,,administrative messages),,需要至少一個SDO,每個生產(chǎn)或消費過程數(shù)據(jù)的設備需要至少一個PDO,,所有其它的通信對象是可選的,。一個CANopen設備中CAN-bus通信接口、對象字典和應用程序之間的聯(lián)系如圖 1所示,。
?
?????????????????????????????????? CANopen節(jié)點開發(fā)
??? 主節(jié)點與從節(jié)之間的主要區(qū)別在于主節(jié)點具有管理報文(NMT)以及服務數(shù)據(jù)客戶端(client)等功能,,有了這些功能,主節(jié)點就可以管理CANopen網(wǎng)絡,。對于開發(fā)主節(jié)點和從節(jié)點設備來說有著較大的區(qū)別,,主節(jié)點主要負責整個網(wǎng)絡的管理并且能加載所有節(jié)點的EDS文件,例如主節(jié)點可以管理任意一個從節(jié)點進入特定的工作狀態(tài),、配置從節(jié)點的參數(shù),、完成與從節(jié)點的數(shù)據(jù)交換等功能。從網(wǎng)絡結構來說從節(jié)點屬于被動設備,,受主站管理,,從節(jié)點只需要支持PDO、SDO服務器、預定義或特殊功能對象,。
????????????????????????????????????? CANopen組網(wǎng)通信
??? 在一個完整的CANopen網(wǎng)絡中可有兩種組網(wǎng)方式,。
?? ?(1)CANopen網(wǎng)絡中,需要一個CANopen主節(jié)點設備和至少一個CANopen從節(jié)點設備,;
?? ?(2)CANopen網(wǎng)絡中,,至少需要兩個CANopen從節(jié)點,由于CANopen可以支持點對點的工作方式,,即對CANopen從節(jié)點配置正確的情況下,,CANopen網(wǎng)絡中沒有主節(jié)點,從節(jié)點與從節(jié)點之間也能夠建立通信并完成實時數(shù)據(jù)的交換過程,。
?? ?對于第一種組網(wǎng)方式需要一個CANopen主站,,現(xiàn)階段能提供的CANopen主站有很多種可以選擇,例如工業(yè)電腦,、PLC,、工控主機等。主站的開發(fā)方式可以選擇帶CANopen API函數(shù)的主站卡,、帶OPC服務器的主站卡或者帶CANopen主節(jié)點的PLC,,如圖2所示。
?
??????????????????????????????????????? CANopen節(jié)點設計
??? 對于一個現(xiàn)有的CANopen網(wǎng)絡,,由于功能上的需求,,需要把不具有CANopen協(xié)議的串行設備(如RS232/RS485等設備)添加到CANopen網(wǎng)絡,這種情況下就需要用到網(wǎng)關設備(不同協(xié)議的轉換設備),,其聯(lián)網(wǎng)示意圖如圖2所示,。
??????????????????????????????????????????? 從節(jié)點設計
??? 設計CANopen從節(jié)點的方案非常多,例如51MCU+SJA1000+CTM8251T(PCA8251T),、LPC2119+CTM-8251T,、FPGA+SJA1000+CTM8251T等方案。如果用戶所設計的CANopen從節(jié)點設備功能相對簡單,,可選用價格較便宜的51單片機的方案,。如果用戶設計的CANopen從節(jié)點的功能比較復雜,代碼可能占有大量的CODE和RAM空間,,因此建議選擇LPC2119方案,。如果要求設備運行速度快,則可選FPGA方案,。這些節(jié)點的設計方案中都需要對CANopen協(xié)議有深入的了解,,并編寫出符合CANopen協(xié)議標準的代碼。
??? 為了簡化CANopen從節(jié)點的設計,,用戶可以選擇由廣州致遠電子有限公司所生產(chǎn)的CANopen從站模塊,,該模塊支持用戶二次開發(fā),,并且已經(jīng)固化了CANopen從節(jié)點的核心代碼(符合CANopen規(guī)范標準),提供API函數(shù)供用戶使用,,可使從節(jié)點的性能更加穩(wěn)定、開發(fā)速度更快,、使用更方便,。
??????????????????????????????????????????? 主節(jié)點設計
??? 在CANopen主節(jié)點的設計中,因為主節(jié)點需要管理最多127個的從節(jié)點,,所以對于主站的硬件資源要求較高,,主節(jié)點的設計通常有以下幾種方案。
?? ?(1)工業(yè)電腦+PCI CANopen主站卡,,這種方案簡單方便,,可通過主站卡提供的API函數(shù)或OPC服務器輕松完成主站的設計或組態(tài);
?? ?(2)嵌入式工控主機(WinCE或linux),,這種方案也可以利用供應商提供的CANopen主站函數(shù)庫或CANopen主站卡來實現(xiàn)CANopen主節(jié)點功能,;
?? ?(3)PLC(CANopen主節(jié)點),這種方案對用戶來說也是比較簡單的方案,,只需要用戶對PLC進行編程,,可以完成CANopen主節(jié)點的組態(tài)應用,但費用較高,。
?? ?用戶可根據(jù)實際情況進行方案選擇,,用最少的時間和費用完成最穩(wěn)定的主節(jié)點,實現(xiàn)用戶的最佳選擇,。
?????????????????????????????????????????? 節(jié)點抗干擾設計
??? ESD脈沖,、電源瞬變、總線浪涌等現(xiàn)象是影響網(wǎng)絡通信,、損壞設備的主要原因,。設計CAN-bus電路時,可以選擇微型封裝的專用ESD保護元件PESDxCAN,,以對抗ESD及其他電壓突變脈沖,。可以安裝CAN-bus共模扼流圈BZ82793,,以確保設備的電磁兼容性,,抑制耦合干擾。同時,,外置CAN-bus總線防雷器可以降低雷電,、大電流浪涌對野外安裝設備的損壞幾率。
??????????????????????????????????? CANopen在紡織機械中的應用
??? 改革開放30年來,,國內(nèi)針織行業(yè)迅猛發(fā)展,,傳統(tǒng)的手搖橫機已經(jīng)無法滿足復雜花型編制的要求,也無法提高生產(chǎn)效率。全自動電腦橫機是國內(nèi)毛衫企業(yè)發(fā)展壯大的必然趨勢,。它可以大大提高生產(chǎn)效率,,保證產(chǎn)品質量。
??? 由于CANopen協(xié)議的獨特優(yōu)勢,,非常適合用作紡織機械的通信協(xié)議,,可參考CANopen標準協(xié)議描述文本DS414。NetEPC-8900集成了CANopen協(xié)議主站函數(shù)庫,,能實現(xiàn)管理多達127個節(jié)點的CANopen網(wǎng)絡,,TinyARM模塊帶有CANopen從節(jié)點的函數(shù)庫,可實現(xiàn)絕大部分工業(yè)控制要求,。應用CANopen協(xié)議構成的CAN-bus網(wǎng)絡可使整個系統(tǒng)完全自動工作,,無需人工參與,可以大大減少企業(yè)人力資源成本,,提高生產(chǎn)效率,,保證產(chǎn)品質量。其方案如圖 3所示,。
?
??? 基于NetEPC-8900的全自動電腦橫機采用廣州致遠電子有限公司生產(chǎn)的NetEPC-8900為控制主機,,通過CANopen網(wǎng)絡連接CANopen節(jié)點(TinyARM T23系列)來實現(xiàn)。工作人員在監(jiān)控服務器上生成需要生產(chǎn)服飾的花型文件,;通過以太網(wǎng)下載到NetEPC-8900上,;NetEPC-8900解析花型文件后,通過CANopen節(jié)點(TinyARM T23系列)的PWM信號控制搖床電機工作,,通過CANopen節(jié)點(TinyARM T23系列)的I/O信號控制選針器工作,,通過CANopen節(jié)點(TinyARM T23系列)的D/A信號控制卷布電機和壓針電機工作;通過CANopen節(jié)點(TinyARM T23系列)控制紗嘴三角系統(tǒng)動作,。NetEPC-8900通過連接LCD顯示器指示橫機當前的狀態(tài)信息,。工作人員也可以通過監(jiān)控服務監(jiān)控生產(chǎn)的衣服產(chǎn)量。
?? ?現(xiàn)階段的中國在工業(yè)領域與歐洲,、美國等其他先進國家存在較大的差距,。CANopen作為先進的通信協(xié)議在歐洲等其他的發(fā)達國家都已得到了廣泛應用,在中國的推廣與應用還處于起步階段,,在我國正大力發(fā)展工業(yè)的時代,,CANopen有著重大的發(fā)展前景與機遇。
?? ?廣州致遠電子有限公司提供CANopen主站卡,、CANopen數(shù)據(jù)采集模塊,、CANopent協(xié)議網(wǎng)關等產(chǎn)品,并提供CANopen軟件支持與網(wǎng)絡服務等,。