新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > CANOpen總線與軟PLC在MPS中的應(yīng)用

CANOpen總線與軟PLC在MPS中的應(yīng)用

作者: 時間:2012-10-29 來源:網(wǎng)絡(luò) 收藏

1 引言
CANopen是CAN總線的一種有影響力的應(yīng)用層協(xié)議,近年來得到了廣泛的應(yīng)用,保證了各種廠商設(shè)備的互用性、互換性,同時提高了信息傳輸?shù)目煽啃?實時性。軟是一種基于PC機的新興自動控制技術(shù),不僅能夠?qū)崿F(xiàn)硬的所有功能,而且遵循IEC61131-3編程標(biāo)準(zhǔn),為用戶提供了更多的開放性。是德國FESTO公司結(jié)合現(xiàn)代工業(yè)企業(yè)特點開發(fā)研制的模擬自動化生產(chǎn)加工單元。它采用模塊化結(jié)構(gòu),
將氣動技術(shù)、電氣電子、傳感器技術(shù)、裝配技術(shù)、機械技術(shù)、現(xiàn)場總線技術(shù)綜合于一體。選取不同的單元可以組成自己的模擬生產(chǎn)加工系統(tǒng),最大可以構(gòu)成具有9個單元的系統(tǒng)。包括:送料、檢測、加工、提取、暫存、組裝、沖孔、功能檢測和分揀單元。
基于CANopen協(xié)議的I/O從站可以作為控制系統(tǒng)中的一部分,國內(nèi)還沒有現(xiàn)成的產(chǎn)品可供選用,國外的產(chǎn)品往往價格過高, 增加了系統(tǒng)開發(fā)的成本。由此應(yīng)用C8051F040單片機自行開發(fā)基于CANopen DS301、DSP401協(xié)議的I/O從站,并且通過上位機CAN卡構(gòu)建了基于德國3S公司的CoDeSys軟的分布式I/O控制系統(tǒng)。最終,通過測試實驗驗證了系統(tǒng)信息傳遞的可靠性、準(zhǔn)確性和實時性。本文采用的控制系統(tǒng)結(jié)構(gòu)(如圖3所示)具有很好的開放性,靈活性和可擴展性。
2 系統(tǒng)概述

圖1控制系統(tǒng)總體結(jié)構(gòu)
整個控制系統(tǒng)由監(jiān)控計算機、CAN總線主站適配卡、I/O從站節(jié)點、CAN總線網(wǎng)絡(luò)和現(xiàn)場設(shè)備構(gòu)成。其系統(tǒng)結(jié)構(gòu)如圖1所示。分布在現(xiàn)場的I/O從站節(jié)點連接MPS的傳感器信號,并通過CAN通訊接口與總線相連,監(jiān)控計算機運行軟PLC軟件并通過CAN總線主站適配卡和連接在CAN總線網(wǎng)絡(luò)上的各個從節(jié)點進行實時通訊,從而實現(xiàn)MPS控制系統(tǒng)的分散控制和集中監(jiān)管。
監(jiān)控計算機可以選用普通計算機,軟PLC選用德國3S公司的CoDeSys。總線適配卡完成總線和監(jiān)控計算機之間的協(xié)議轉(zhuǎn)換。各個從站節(jié)點之間使用專用屏蔽電纜互聯(lián)構(gòu)成CAN總線網(wǎng)絡(luò),總線兩端使用終端電阻,用來提高系統(tǒng)穩(wěn)定性、增強系統(tǒng)的抗干擾能力。
3 基于CANopen協(xié)議I/O從站的開發(fā)
3.1 系統(tǒng)的硬件設(shè)計
如圖2所示,本文采用C8051F040單片機作為I/O從站的主芯片, 它具有與8051指令集完全兼容的CIP-51內(nèi)核,內(nèi)部集成的CAN控制器為Bosch CAN控制器[4]。此CAN控制器有以下幾部分構(gòu)成:CAN內(nèi)核、報文RAM(與C8051 RAM相互獨立)、報文處理狀態(tài)機制和CAN控制寄存器。CAN收發(fā)器我們采用SN65HVD232,它具有高速穩(wěn)定的差動發(fā)送和接收能力;為了提高抗干擾能力,系統(tǒng)中采用雙路電源模塊供電,在控制器和傳輸介質(zhì)之間加接光電隔離器件ADuM1201高速數(shù)字隔離器替代傳統(tǒng)的光電耦合器(如6N137),簡化了電路,極大的降低了功耗。此外,從站I/O端口電路還采用了光耦TLP521隔離器進行光電隔離。為了使繼電器輸出得到足夠的電流供應(yīng),光耦輸出后加達林頓管以加大驅(qū)動電流。最后接自恢復(fù)式保險絲,然后輸出。在圖2中只給出一路輸入輸出,16路類同。在工業(yè)現(xiàn)場,需要共陰極的繼電器輸出,設(shè)計的數(shù)字IO從站需要16路輸入,16路輸出?;诖耍x擇兩片UDN2982達林頓管。單片機在復(fù)位時,端口為高電平,為了避免復(fù)位期間繼電器動作,所以

圖2 系統(tǒng)硬件簡圖
設(shè)計低電平光耦連通,繼電器吸合。由此,輸出光耦使用下拉電阻。輸入輸出都有LED顯示。
3.2系統(tǒng)的軟件設(shè)計
本系統(tǒng)的軟件設(shè)計采用模塊化設(shè)計,使用C51Windows編程語言進行軟件編程。程序框圖如圖3所示,程序模塊分為主程序模塊、CANopen協(xié)議模塊、對象字典與節(jié)點配置模塊、系統(tǒng)I/O模塊、單片機與CAN控制器硬件驅(qū)動模塊。
CANopen協(xié)議的軟件實現(xiàn)遵循CANopen協(xié)議預(yù)定義主/從連接集,從站節(jié)點支持4個接收PDO,4個發(fā)送PDO,1個SDO,1個緊急對象和1個節(jié)點錯誤控制對象。結(jié)合通訊協(xié)議的特點,軟件設(shè)計中采用結(jié)構(gòu)體的方式來定義諸如CAN報文、發(fā)送和接收PDO配置對象、CANopen協(xié)議配置對象等,通過定義結(jié)構(gòu)體型指針變量完成對對象中相關(guān)數(shù)據(jù)的讀寫,給程序的編制帶來了方便。此外,利用定義數(shù)組的方法實現(xiàn)了對象字典和過程數(shù)據(jù)映像的操作。在SDO報文處理子函數(shù)中,通過被訪問對象的主索引和子索引,以數(shù)組查詢的方式實現(xiàn)了對對象字典的讀寫訪問。CANopenI/O從站的狀態(tài)機轉(zhuǎn)換通過判斷接收NMT報文命令字,對心跳報文標(biāo)志字節(jié)代碼進行讀寫,產(chǎn)生程序散轉(zhuǎn)的方式得以實現(xiàn)。對于PDO、SDO通訊對象的處理則根據(jù)心跳報文標(biāo)志字節(jié)代碼指明的當(dāng)前狀態(tài)分別進行處理。

圖3 系統(tǒng)主程序軟件框架圖軟件設(shè)計的關(guān)鍵在于C8051F040的CAN信息的收發(fā)函數(shù)、如何濾波以及對象字典在程序中的實現(xiàn)。


上一頁 1 2 下一頁

關(guān)鍵詞: CANOpen總線 PLC MPS

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉