canopen協(xié)議介紹(講義)_第1頁(yè)
canopen協(xié)議介紹(講義)_第2頁(yè)
canopen協(xié)議介紹(講義)_第3頁(yè)
canopen協(xié)議介紹(講義)_第4頁(yè)
canopen協(xié)議介紹(講義)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、canopen協(xié)議介紹(講義)2010-10-12 15:58:28| 分類: 技術(shù)文檔 |標(biāo)簽:|舉報(bào)|字號(hào)大中小訂閱很長(zhǎng)一段時(shí)間以來,很多人問我canopen總線優(yōu)勢(shì)到底在什么地方,我也大體的給了口頭的講述,但是比較籠統(tǒng),沒辦法做到詳細(xì)解釋,加上純技術(shù)的話語比較晦澀,遇上內(nèi)行還能多聊幾句,如果是剛接觸的,那就是云里霧里了。這次正好要進(jìn)行公司業(yè)務(wù)員培訓(xùn),要講講canopen,在整理過程中把我的講義貼出來,希望能幫到大家,以下內(nèi)容是我講課的口述內(nèi)容,比較白話,不能作為資料,大家見諒,鑒于我整理也比較辛苦,也算個(gè)小小的知識(shí)產(chǎn)權(quán),所以ppt我就不貼出來了。a-a講義內(nèi)容:通常canopen協(xié)議相關(guān)

2、的一些資料相對(duì)來說比較晦澀,非專業(yè)人士看起來比較困難。我盡量以淺顯易懂的方式將canopen協(xié)議的框架和它在實(shí)際應(yīng)用中存在的優(yōu)缺點(diǎn)展示給大家。我按照最先接觸的內(nèi)容由淺入深的講 解,直接講canopen協(xié)議會(huì)有點(diǎn)跳躍的感 覺,所以,我以產(chǎn)品作為切入點(diǎn),分析一下 如何使用,在這個(gè)過程中,讓大家理解什么 是canopen協(xié)議。首先,我們拿到一個(gè)產(chǎn) 品,比方說是編碼器,它的用途是作為位置 傳感器,那我們就需要將編碼器送出的數(shù)據(jù) 進(jìn)行采集。一般自然界中存在的信號(hào)有多種 形式,大多以模擬量形式存在,類似于人感 覺到溫度的高低、水流的快慢、風(fēng)力的大小 等等。但這是很模糊的概念,今天熱了還是 冷了,風(fēng)大風(fēng)小,

3、沒有比較是很難界定的, 為了規(guī)范這些量,方便描述時(shí)的統(tǒng)一性,溫 度計(jì)量標(biāo)準(zhǔn)有華氏和攝氏、水流有每秒多少 立方、風(fēng)力有級(jí)數(shù)。這些,就是數(shù)字量。數(shù)字量在人與人之間傳遞時(shí),可以通過嘴和耳,語言和聽力,在設(shè)備之間如何來傳遞呢?學(xué)過數(shù)電的人知道,燈泡有兩種狀態(tài),亮和暗,在最基礎(chǔ)的電路回路里,“通”和“斷”是兩個(gè)最基本的狀態(tài),我們可以把他理解為“t和“0”,這樣,就有了表述的方法。但是單獨(dú)使用這兩種狀態(tài)是無法傳遞信息的,如>!何把編碼器的數(shù)據(jù)傳遞出去,就需要使用到 協(xié)議,下面我就講講協(xié)議。我們知道,人與人交流需要用到語言,我 們要表達(dá)出一個(gè)完整的意思就要使用一句 話,一句話內(nèi)會(huì)包含很多的字,每個(gè)字又

4、由 筆畫構(gòu)成。這樣,我們協(xié)議的基本框架就出 來了,在整個(gè)canopen協(xié)議傳遞過程中, 最大的單位稱為“幀”,類似于一句話,“幀” 由“字節(jié)”組成,就代表了字,每個(gè)“字節(jié)”由 “位”組成,我們稱為筆畫。那地球上還有英 語、法語、德語、還有聽不懂的鳥語呢!那 就是各個(gè)通訊協(xié)議,比如profibus-dp.devicenet、cc-link> hart> modbus 等。讓dp和canopen通訊,那就是相當(dāng)于一個(gè)講德語的與講中文的對(duì)話,雞同鴨講,能溝通嗎?需要翻譯,對(duì)吧?;剡^頭來我們講講canopen的幀格式,canopen 幀數(shù)據(jù)由一個(gè)cob-id (報(bào)文頭)和最大8字節(jié)數(shù)據(jù)組成

5、,其中cob-id可以是"位(can2.0),也可以是 29 位(can2.0b), 當(dāng)然,can2.0b需要向下兼容“位can 報(bào)文。對(duì)于每字節(jié)數(shù)據(jù)由哪些位組成,這里 就不再贅述,因?yàn)檫@部分內(nèi)容不在osi模型 的第七層應(yīng)用層內(nèi)描述,開發(fā)人員也不必過 多考慮這塊內(nèi)容。由于canopen協(xié)議內(nèi)對(duì) cob-id的各個(gè)地址段報(bào)文有詳細(xì)規(guī)范,這 里就花點(diǎn)時(shí)間講一下,當(dāng)然也沒時(shí)間全部討 論,只選一些重要內(nèi)容來說。以前我們培訓(xùn)一直在說canopen協(xié)議好,速度快,廣播報(bào)文,這些關(guān)鍵字聽的多了,但是大家可能不是很理解這些內(nèi)容。現(xiàn)在就來解釋一下。在編碼器應(yīng)用中,can報(bào)文我們常用的有sdo(serv

6、ice data object服務(wù)數(shù)據(jù)對(duì)象)和pdo (process dataobject 程數(shù)據(jù)對(duì)象),從字面描述意義看,通常數(shù)據(jù)的發(fā)送讀取是采用pdo來實(shí)現(xiàn)的,can參數(shù)的修改是通過sdo來實(shí)現(xiàn)的(當(dāng)然這不是絕對(duì)的,具體的如果有興趣可以會(huì)后詢問)。先來說說pdo,我們?cè)诤芏噘Y料上會(huì)看到這樣一張表站兔cob-id通訊參數(shù)在08-q1127-2-2y-3438?二 222注慧pdo/sdo發(fā)送/接收是由(slave)can節(jié)點(diǎn)方觀察的表一:canopen主/從連接集對(duì)象假設(shè)我們讀取到一組編碼器數(shù)據(jù)是這樣的 «0x181 0x30 0x1 f 0x00 0x00,我們應(yīng)該如何理解呢?

7、首先,“ox”只是一個(gè)符號(hào),它代表了緊跟著的數(shù)據(jù)是十六進(jìn)制的(等同于在數(shù)據(jù)后面直接標(biāo)“h”,上述表達(dá)式也可以表述為«181h 30h 1fh 00h00h),網(wǎng)81”我們查看上表后發(fā)現(xiàn),它包含在pdo1 (發(fā)送)里面,它代表了是由編碼器發(fā)出的過程數(shù)據(jù)對(duì)象,表上顯示是1htffh”,這是因?yàn)閏ob-id包含了節(jié)點(diǎn)號(hào)信息,地址1對(duì)應(yīng)著181h,地址2對(duì) 應(yīng)了 182h,以此類推,最大127個(gè)節(jié)點(diǎn)?!?x30 0x1 f 0x00 0x00”就代表了 數(shù)據(jù)內(nèi) 容,在can協(xié)議內(nèi),幀數(shù)據(jù)是低位在前, 高位在后的。所以上述數(shù)據(jù)直接讀取后得出編碼器送出1f30h這就代表了編碼器的當(dāng)!前位置值。那

8、在總線上面,多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)不會(huì)產(chǎn)生沖突么?以前我們說過, can協(xié)議具有仲裁這里簡(jiǎn)單介紹一下仲裁 是如何實(shí)現(xiàn)的。上面說了,cob-id包含了 節(jié)點(diǎn)號(hào)信息,也就是說,只要總線上的設(shè)備 節(jié)點(diǎn)號(hào)不同,所送出的廣播報(bào)文的cob-id 肯定是不同的,如果一個(gè)是182h, 個(gè)是183h,仲裁時(shí)怎么做?本文最開始的時(shí)候介紹了每個(gè)字由筆畫組成,現(xiàn)在就要用到位 (bit)的概念了,182h換算成二進(jìn)制是0001 1000 0010 (b) , “b”代表了二進(jìn)制, 183h換算成二進(jìn)制是0001 1000 0011(b),關(guān)于顯性位、隱形位這里不再贅述,這個(gè)有興趣可以找我要資料看,這里我就簡(jiǎn)單描述為

9、69;比的優(yōu)先級(jí)高,可以理解為拖后腿,“0”為低電平,v”為高電平,在線上低電平會(huì)把高電平拉低,一旦183h發(fā)現(xiàn)數(shù)據(jù)傳輸過程中與自身數(shù)據(jù)不符合,就終止上傳,保證了 182h的數(shù)據(jù)先上總線。我們?cè)趯?shí)踐中會(huì)發(fā)現(xiàn),編碼器的數(shù)據(jù)在不 斷的更新輸出,那輸出周期如何定義呢?這個(gè)我們就來討論一下引申的pdo傳送方式。我們以前在培訓(xùn)時(shí)一直介紹canopen協(xié)議與dp協(xié)議相比的好處在于dp是輪詢的,問答方式浪費(fèi)了大量的時(shí)間,而can協(xié)議是廣播的,可以將1mhz的速率發(fā)揮至 極致。這種說法形象,一般可以解釋給初步 接觸canopen的人聽。其實(shí)canopen的 報(bào)文形式很多樣化,在不同的應(yīng)用場(chǎng)合可以 采取不同的方

10、式,上面說的稱為異步方式, 異步方式也分兩種,一種是上面的內(nèi)部時(shí)鐘 觸發(fā),也就是按照固定時(shí)間間隔發(fā)送,另一 種是事件觸發(fā),假設(shè)編碼器發(fā)生轉(zhuǎn)動(dòng),數(shù)據(jù) 相應(yīng)送出。還有一種同步方式,我們也可以 口述為踏拍方式,當(dāng)主站要求報(bào)數(shù)是,所有從節(jié)點(diǎn)按照仲裁的優(yōu)先順序進(jìn)行數(shù)據(jù)發(fā) 送。這三種報(bào)文方式分別在哪些場(chǎng)合適用 呢?我們以車輛來舉例。車輛開在路上,在 整個(gè)車輛控制內(nèi),最重要的,具有高優(yōu)先級(jí) 的,應(yīng)該是牽涉到安全的制動(dòng)(剎車),安 全氣囊等等。其次是轉(zhuǎn)向、車燈。再次是音 響、影視系統(tǒng)(當(dāng)然,我對(duì)車不是很熟悉, 這是我的主觀認(rèn)識(shí),作為一個(gè)例程)。我們 可以把小的節(jié)點(diǎn)號(hào)分配給制動(dòng)系統(tǒng),以保證 數(shù)據(jù)能及時(shí)送達(dá)控制器

11、,并采用定時(shí)報(bào)數(shù), 實(shí)時(shí)監(jiān)測(cè)車輛制動(dòng)系統(tǒng)的情況。對(duì)于音箱什 么的,我們可以采用事件觸發(fā)方式,在有輸 入控制時(shí)(比方說打開收音機(jī))進(jìn)行響應(yīng)。 同步數(shù)據(jù)一般用在實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)方面,比方 是在同一時(shí)間點(diǎn)查閱角度、位置、重量、壓 力、流量等等信息,保證所監(jiān)測(cè)的各個(gè)數(shù)據(jù) 在很小的時(shí)間變化范圍內(nèi)。當(dāng)然canopen 不可能摒棄問答方式的數(shù)據(jù)采集,這可以通 過sdo訪問0d來實(shí)現(xiàn)。講到sdo服務(wù)數(shù)據(jù)對(duì)象,我們可以 這么理解,pdo報(bào)文在發(fā)送出去后不需要反饋信號(hào),總線上能消化這個(gè)數(shù)據(jù)的都可以消化,所以白話叫廣播報(bào)文。而sdo報(bào)文是需要響應(yīng)的,每一幀sdo發(fā)出后需要等待反饋。那這會(huì)不會(huì)引起無反饋時(shí)總線死機(jī) 呢?不

12、會(huì),can數(shù)據(jù)鏈路內(nèi)規(guī)定了超時(shí),在 一定時(shí)間內(nèi)得不到回答,總線將進(jìn)行后面的 作業(yè),多次詢問無果,總線會(huì)對(duì)錯(cuò)誤節(jié)點(diǎn)進(jìn) 行屏蔽處理。sdo的幀格式和pdo的幀格 式是一致的,但對(duì)有些字節(jié)的定義不同,下面就簡(jiǎn)單介紹一些編碼器修改參數(shù)時(shí)用到>!的幀格式。sdo中實(shí)現(xiàn)了 5個(gè)請(qǐng)求/應(yīng)答協(xié)議,這里我只講講啟動(dòng)域下載與上傳,其他的有興趣可以問我要資料看。cob-id命令 字對(duì)象 字典od子索 引數(shù)據(jù)主從 連接 集1 byte2bytes1 byte4bytes我來解釋一下上表,cob-id引用第一張 表的sdo地址段。假設(shè)主站需要讀取1號(hào) 編碼器對(duì)象字典(od) 6200h內(nèi)的參數(shù),我們應(yīng)該如何做呢?

13、我們需要發(fā)送0x601 0x40 0x00 0x62 0x00 0x00 0x000x00 0x00我們得到編碼器的反饋數(shù)據(jù)是0x581 0x4b 0x00 0x62 0x00 oxoa 0x000x00 0x00上述命令的解釋是,控制器通過sdo指令讀取1號(hào)編碼器0d為6200h的編碼器發(fā)送數(shù)據(jù)周期的參數(shù),得到編碼器的回答是每隔10ms發(fā)送一次。40h和4bh是啟動(dòng)域上傳的命令字。如果需要將6200h的參數(shù)修改為20ms一次數(shù)據(jù),我們應(yīng)該怎么做?發(fā)送:0x601 0x22 0x00 0x62 0x00 0x140x00 0x00 0x00反饋:0x581 0x60 0x00 0x62 0x0

14、0 0x000x00 0x00 0x00未完待續(xù)。作為十大總線來說,canopen的開放性等等就不贅述to該協(xié)議最早在汽車總線中得到了大量的推廣。目前很多廠家都支持canopen總線。比如施耐德、菲尼克斯等。尤其是施耐德,目前在所有的傳動(dòng)產(chǎn)品、中高端的plc±都支持canopen總線??赡苁怯捎谒挟a(chǎn)品在總線支持上不然rockwell和西門子的緣故吧。目前canopen在連接現(xiàn)場(chǎng)從站設(shè)備時(shí),很多廠家的plc 已經(jīng)可以像step7軟件組態(tài)profibus dp從站設(shè)備樣,只 需導(dǎo)入eds文件后,在軟件中直接選擇或拖拉即可。相關(guān)參 數(shù)的地址定義等等都自動(dòng)完成。相對(duì)來說比較簡(jiǎn)單。當(dāng)然如果軟

15、件即便不支持上述方式,有個(gè)公司專門開發(fā)了一個(gè)sycon的軟件,利用sycon軟件也可以直接定義canopen從站設(shè)備。相對(duì)來說也比較簡(jiǎn)單。貝不過需要做sycon到plc軟件的地址的映射的操作。canopen總線與profibus dp總線相比:1. canopen的通訊速率較低,最高1mbps。而profibus dp最高支持12mbps;2. 兩種總線隨著距離的增加都會(huì)衰減,但是canopen衰減的更快一些;3. 理論上canopen支持127個(gè)子站(當(dāng)然和canopen 主站設(shè)備有關(guān),在實(shí)際plc產(chǎn)品中一般最大只能支持64, 有的只能支持32或16個(gè)),而profibus dp在子站支持能

16、力上較強(qiáng);4. canopen的中繼器支持樹形結(jié)構(gòu)連接,這一點(diǎn)與profibus的總線型連接方式有區(qū)別;5. 從組態(tài)來說,集成canopen總線的設(shè)備組態(tài)方式與profibus dp的組態(tài)方式類似。只需導(dǎo)入eds文件即可;6. 抗干擾能力經(jīng)過我使用了,感覺和profibus dp差不多。當(dāng)然canopen電纜有4種,dp應(yīng)該分普通和復(fù)雜環(huán)境兩 種。從電纜來說,canopen電纜的適用性更強(qiáng)一些。以上內(nèi)容,只是一己之見,不含任何廣告內(nèi)容,也請(qǐng)各位批評(píng)指正于canopen協(xié)議的分布式控制系統(tǒng)設(shè)計(jì)孫樹文楊建武(北京工業(yè)大學(xué)機(jī)械工程與應(yīng)用電子學(xué)院,北京100022)摘耍:針對(duì)印刷機(jī)外圍設(shè)備多分散、數(shù)據(jù)

17、傳輸信息量大、實(shí)時(shí)性和可靠性要求高等問題,設(shè)計(jì)了一種基于can現(xiàn)場(chǎng)總線的分布式控制系統(tǒng)。監(jiān)控主機(jī)運(yùn)行軟plc程序,通過pc-can卡與現(xiàn)場(chǎng)i/o從站進(jìn)行通信,形成分布式網(wǎng)絡(luò),簡(jiǎn)化了系統(tǒng)結(jié)構(gòu),提高了可靠性。本文介紹了分布式監(jiān)控系統(tǒng)的整體結(jié)構(gòu)、工作原理及特點(diǎn);分析了 canopen協(xié)議、詳細(xì)說明了采用p87c591單片機(jī)開發(fā)i/o從站的硬件電路、軟件設(shè)計(jì)流程以及從站節(jié)點(diǎn)的調(diào)試方法。經(jīng)系統(tǒng)測(cè)試和模擬運(yùn)行表明,i/o從站與監(jiān)控主機(jī)通訊可靠、準(zhǔn)確,實(shí)時(shí)性滿足了印刷機(jī)控制系統(tǒng)的要求,具有一定的參考價(jià)值和廣闊的應(yīng)用前景。關(guān)鍵詞:canopen; can總線;軟plc;分布式控制系統(tǒng);p87c591中國(guó)分類號(hào)

18、:tp247文獻(xiàn)標(biāo)識(shí)碼:athedesignofdistributedcontrolsysteml/osiavebasedoncanopen protocolsun shuwen,yangjianwu,zhanghuihui,zhaojiangua ng(collegeofmecha nicalengineering&appliedelectronicstech nology,beijingllniversityofiech nology,beijing100022,china)abstract: co un teringtheproblemsexistingintheprinting

19、machi ne, suchastheexcessivea nddistributedperipheralequipme nt,ma nyi n formati on exchange,thereliability,veracityandrealtimefeatureof datacom mun ication,adistributedcontrolsystembased on can(c on trolareanetworks)busisdesig ned.thesoftplcisstudieda ndr ealizedontheplatformofmonitorhostcomputer.v

20、iapc-cancard,t hemastercomputerand l/oslave no desca ncom mun icatewitheac hotherdirectlyjikeadistributednetwork.thesystemstructureismo reconcise.thefunctionofdistributedsettingandconcentratedcont rolisrealizedinthissystem.thewholestructureandpri ncipleofsyst em,thehardwarecircuit,thesoftwareprogram

21、minga ndthetesti ng experimentwerediscussedindetail.practicalusingshowsthatthis distributedcontrolsystemhasthebettercontroleffectjndicatesifs brillia ntandvaliditybeyon dtraditionalc on trolmethodsa ndissuitabl eforsimilarpracticale ngineering.keywords:canopen,canbus,softplc,distributedcontrolsystem

22、,p87c5910引言e卩刷機(jī)有大量的外圍設(shè)備,存在大量的i/o信號(hào),如何保證外圍設(shè)備與控制主機(jī)之間的實(shí)時(shí)通訊,使得印刷機(jī)可靠運(yùn)行,目前采用的方式主要有2種:1 )采用傳統(tǒng)的plc構(gòu)成集散型控制系統(tǒng)(dcs); 2 )采用基于現(xiàn)場(chǎng)總線的分布式i/o系統(tǒng)。采用前一種方式存在系統(tǒng)不開放、硬件投資人、布線復(fù)雜、維修不便的缺點(diǎn),具有明顯的局限性口。而采用第二種方式基本局限于國(guó)外產(chǎn)品,如西門子公司的基于profibus分布式i/o系統(tǒng),wago公司基于canbus、devicenet. profibus分布式i/o系統(tǒng),但價(jià)格較高。因此我們?cè)O(shè)計(jì)了基于can現(xiàn)場(chǎng)總線技術(shù)與軟plc的印刷機(jī)分布式控制系統(tǒng)。c

23、an (controllerareanetwork)總線,又稱控制器局域網(wǎng), 是由徳國(guó)bosch公司在80年代初為分布式系統(tǒng)在強(qiáng)電磁t擾環(huán) 境下可靠工作而開發(fā)的一種串行數(shù)據(jù)通信網(wǎng)絡(luò),并有效支持分布 式控制和實(shí)時(shí)控制。目前can總線規(guī)范已被iso國(guó)際標(biāo)準(zhǔn)組織 扌旨定為國(guó)際標(biāo)準(zhǔn),并得到了 motorola, intel, philips, siemens, nec等公司的支持。canopen是can總線的一種有影響力 的應(yīng)用層協(xié)議,近年來得到了廣泛的應(yīng)用,它保證了各種廠商設(shè) 備的互用性、互換性,同時(shí)提高了信息傳輸?shù)目煽啃?,?shí)時(shí)性。其應(yīng)用范圍已經(jīng)擴(kuò)展到了汽車行業(yè)、機(jī)械工業(yè)、紡織機(jī)械、農(nóng)用機(jī)械、機(jī)器人

24、、數(shù)控機(jī)床、醫(yī)療器械、家用電器及傳感器等領(lǐng)域。軟plc是一種基于pc機(jī)的新興自動(dòng)控制技術(shù),不僅能夠?qū)崿F(xiàn)硬plc的所有功能,而且遵循iec61131-3編程標(biāo)準(zhǔn),為用戶提供了更多的開放性和適用性°1控制系統(tǒng)的整體構(gòu)成2整個(gè)控制系統(tǒng)由監(jiān)控計(jì)算機(jī)、pc-can適配卡、i/o從站節(jié) 點(diǎn)(n<110)> can總線網(wǎng)絡(luò)組成,其系統(tǒng)結(jié)構(gòu)如圖1所示。分 布在現(xiàn)場(chǎng)的i/o從站節(jié)點(diǎn)連接印刷機(jī)的外圍設(shè)備,并通過can 通信接口與總線相連;監(jiān)控計(jì)算機(jī)運(yùn)行軟plc軟件并通過 pc-can適配卡和連接在can總線網(wǎng)絡(luò)上的各個(gè)從站節(jié)點(diǎn)之間 進(jìn)行實(shí)時(shí)通信,從而實(shí)現(xiàn)整個(gè)印刷機(jī)組的分散控制和集中監(jiān)管??刂?/p>

25、系統(tǒng)中的i/o從站節(jié)點(diǎn)由can控制器、can收發(fā)器和外圍電路(如:光電隔離、i2c、led顯示等)組成。監(jiān)控計(jì)算機(jī)可以選用普通pc或工控機(jī)ipc。pc-can適配卡用來完成can總線和監(jiān)控計(jì)算機(jī)之間的協(xié)議轉(zhuǎn)換,可以選用pci總線適配卡、isa總線適配卡。各個(gè)控制節(jié)點(diǎn)之間通過屏蔽雙絞線互聯(lián)構(gòu)成can總線網(wǎng)絡(luò),總線兩端連接120q的阻抗匹配電阻,用來提高系統(tǒng)的穩(wěn)定性、增強(qiáng)系統(tǒng)的抗干擾能力。2 i/o從站的硬件設(shè)計(jì)目前,有兩種can總線器件可以選擇:一種是帶片上can 的微控制器,如 p8xc591/2. 87c196ca/cb. mc68376 等; 另一種是獨(dú)立的can控制器,如控制philip

26、s公司的sja1000、 82c200,lntel 公司的 82526、以及 microchip 公司的 mcp2510 等,但是獨(dú)立的can控制芯片需要外接一個(gè)微處理器,接收外 部cpu的控制才能運(yùn)行。本系統(tǒng)選用的是philips公司的帶有在 片can控制器的p87c591微型控制器,這樣大大簡(jiǎn)化了節(jié)點(diǎn) 的硬件設(shè)計(jì),提高系統(tǒng)的可靠性2。i/o從站節(jié)點(diǎn)的硬件設(shè)計(jì)上采用了模塊化結(jié)構(gòu),由微控制器、can通信模塊、輸入/輸出接口模塊、擴(kuò)展接口模塊、參數(shù)設(shè) 置模塊組成,其整體結(jié)構(gòu)如圖2所示。p87c591是一款8位高性能微控制器,具有片內(nèi)can控制 器,從80c51微控制器家族派生而來,采用了強(qiáng)大的8

27、0c51指 令集并成功的包括了 philips半導(dǎo)體sja1000can控制器的pelican功能。can收發(fā)器采用的是philipspca82c250芯片, 它具有高速穩(wěn)定的差動(dòng)發(fā)送和接收能力;為了提高抗干擾能力, 系統(tǒng)中采用雙路電源模塊供電,在控制器和傳輸介質(zhì)之間加接光 電隔離器件adum1201高速數(shù)字隔離器替代傳統(tǒng)的光電耦合器(如6n137),簡(jiǎn)化了電路,極大的降低了功耗。從站節(jié)點(diǎn)i/o接口模塊采用了光電隔離電路,提高了抗干擾能力;為了使本系統(tǒng)具有更好的適用性和擴(kuò)展性,預(yù)留了基于i2c總線擴(kuò)展接口模塊。此外,從站節(jié)點(diǎn)還外擴(kuò)了 rs232接口;以及電源信號(hào)、通訊狀態(tài)、i/o端口、故障信號(hào)

28、等狀態(tài)的led顯示。3 i/o從站的軟件設(shè)計(jì)在i/o從站的軟件設(shè)計(jì)中,使用c51 windows編程語言實(shí)現(xiàn)各種功能,與從站節(jié)點(diǎn)的硬件設(shè)計(jì)相一致,軟件設(shè)計(jì)也遵循模塊化的設(shè)計(jì)原則,使控制軟件具有易讀、易擴(kuò)展和易維護(hù)的優(yōu)點(diǎn)。各功能模塊之間通過入口和出口參數(shù)相互聯(lián)系,組合靈活且方便3。從站節(jié)點(diǎn)的軟件設(shè)計(jì)流程如圖3所示。3.1 canopen 通訊協(xié)議45canopen協(xié)議是cia協(xié)會(huì)基于can總線定義的應(yīng)用層協(xié) 議之一,在各種控制系統(tǒng)中得到了廣泛應(yīng)用。canopen設(shè)備模 型如圖4所示,不同設(shè)備通過can總線進(jìn)行連接組網(wǎng),canopen通信協(xié)議接口用于提供在總線上收發(fā)通信對(duì)象的服務(wù);不同canope

29、n設(shè)備間的通信都是通過交換通信對(duì)象來完成的。canopen協(xié)議中定義了 4種通信對(duì)象(通訊模式),用于處 理不同作用的信息,包括:1)nmt對(duì)象,用來傳遞主節(jié)點(diǎn)對(duì) 整個(gè)網(wǎng)絡(luò)系統(tǒng)的管理信息;2 ) sd0對(duì)象,用來傳遞網(wǎng)絡(luò)系統(tǒng) 中的配置信息;3) pd0對(duì)象,用來實(shí)時(shí)傳送過程數(shù)據(jù)信息; 4 )特殊功能對(duì)象,包括同步對(duì)象(sync)緊急對(duì)象(emergency) 時(shí)間戳對(duì)象(timestamp)等,詳細(xì)內(nèi)容可參考canopen協(xié)議 相關(guān)文檔4。設(shè)備對(duì)象字典是canopen協(xié)議的核心概念,描述 了該設(shè)備使用的所有數(shù)據(jù)類型、通信對(duì)象和應(yīng)用對(duì)象,canopen 協(xié)議的網(wǎng)絡(luò)系統(tǒng)中每一個(gè)設(shè)備都要實(shí)現(xiàn)一個(gè)唯一

30、的對(duì)象字典,區(qū) 別在于設(shè)備類型不同其內(nèi)容則不同。對(duì)象字典中每個(gè)對(duì)象擁有一 個(gè)唯一的16位主索引和8位子索引,由此實(shí)現(xiàn)對(duì)其中各種對(duì)象 的訪問。對(duì)象字典在系統(tǒng)軟件設(shè)計(jì)中得以實(shí)現(xiàn),然后使用標(biāo)準(zhǔn)化 的eds文件對(duì)其進(jìn)行描述。eds文件的編寫,基本可以借鑒同 類設(shè)備的eds文件,只需針對(duì)具體不同應(yīng)用做出相應(yīng)修改即可。3.2 i/o從站的canopen通訊協(xié)議實(shí)現(xiàn)i/o從站的軟件設(shè)計(jì)遵循canopen協(xié)議預(yù)定義主/從連接 集,在程序中采用預(yù)定義的強(qiáng)制性的缺省標(biāo)識(shí)符(can-id)分 配表。從站節(jié)點(diǎn)支持4個(gè)接收pdo對(duì)象,4個(gè)發(fā)送pdo對(duì)象, 1個(gè)sdo對(duì)象,1個(gè)緊急對(duì)象和1個(gè)節(jié)點(diǎn)錯(cuò)誤控制對(duì)象。協(xié)議 的相關(guān)

31、細(xì)節(jié)可查看文檔6。在系統(tǒng)的軟件設(shè)計(jì)中,結(jié)合通訊協(xié)議 的特點(diǎn),大多采用了結(jié)構(gòu)體的方式來定義諸如can報(bào)文、發(fā)送 和接收pdo配置對(duì)象、canopen協(xié)議配置對(duì)象等,通過定義 結(jié)構(gòu)體型指針變量完成對(duì)相關(guān)數(shù)據(jù)的讀寫,給程序的編制帶來了 方便。此外,利用定義數(shù)組的方法實(shí)現(xiàn)了對(duì)象字典和過程數(shù)據(jù)影 像的操作。在sdo報(bào)文處理子函數(shù)中,通過被訪問對(duì)象的主索 引和子索引,以數(shù)組查詢的方式實(shí)現(xiàn)了對(duì)對(duì)象字典的讀寫訪問。canopenl/o從站的狀態(tài)機(jī)轉(zhuǎn)換通過判斷接收nmt報(bào)文命令字,對(duì)心跳報(bào)文標(biāo)志字節(jié)代碼進(jìn)行讀寫,通過程序散轉(zhuǎn)方式得以實(shí)現(xiàn)。對(duì)pdo、sdo通訊對(duì)象的處理則根據(jù)心跳報(bào)文標(biāo)志字節(jié)代碼指明的當(dāng)前狀態(tài)分別

32、進(jìn)行處理。3.3 i/o從站的調(diào)試從站節(jié)點(diǎn)的開發(fā)與調(diào)試采用了德國(guó)peak公司的canopen開發(fā)系統(tǒng),硬件包括pci和usb接口的can卡,軟件是pcanopenmagicpro3.07專業(yè)開發(fā)版,很好的實(shí)現(xiàn)了對(duì)canopen網(wǎng)絡(luò)節(jié)點(diǎn)的配置、分析和實(shí)時(shí)監(jiān)控。調(diào)試所采用的通訊結(jié)構(gòu)如圖1所示,通過usb-can適配器 監(jiān)控主機(jī)與can總線網(wǎng)絡(luò)連接,構(gòu)成主一從式的網(wǎng)絡(luò)結(jié)構(gòu),這 種方式在后續(xù)系統(tǒng)組網(wǎng)調(diào)試時(shí)可以方便地實(shí)現(xiàn)對(duì)can總線網(wǎng)絡(luò) 的監(jiān)控。通過pcanopenmagicpro3.0軟件可以對(duì)網(wǎng)絡(luò)上傳輸?shù)?canopen通訊對(duì)象報(bào)文進(jìn)行實(shí)時(shí)跟蹤;通過加載從站設(shè)備的 eds文件實(shí)現(xiàn)對(duì)從站節(jié)點(diǎn)進(jìn)行配置;可以方便地實(shí)現(xiàn)對(duì)某個(gè)設(shè) 備對(duì)象字典的訪問。在調(diào)試過程中,要注意保持can總線網(wǎng)絡(luò) 中主從設(shè)備的can波特率要一致,否則將不能建立正常的通信。4控制系統(tǒng)的測(cè)試平臺(tái)控制系統(tǒng)的整體測(cè)試采用如圖1所示的網(wǎng)絡(luò)結(jié)構(gòu)。監(jiān)控計(jì)算機(jī)運(yùn)行德國(guó)3s公司的codesys軟plc軟件及rte實(shí)時(shí)程序組件,作為can總線網(wǎng)絡(luò)的主站(相當(dāng)于一臺(tái)高性能可編程控制器),通過pcan-pci卡與自行設(shè)計(jì)開發(fā)的i/o從站節(jié)點(diǎn)進(jìn)行數(shù)據(jù)通信,構(gòu)成了基于軟plc和can現(xiàn)場(chǎng)總線的分布式i/o控制系統(tǒng)。在控制系統(tǒng)的硬件連接完成后,還需要在監(jiān)控計(jì)算機(jī)上通過 codesys軟件對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行組態(tài),包括:安裝系統(tǒng)支持的 pcan-p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論