CANOpen總線與軟PLC在MPS中的應用
1 引言
CANopen是CAN總線的一種有影響力的應用層協議,近年來得到了廣泛的應用,保證了各種廠商設備的互用性、互換性,同時提高了信息傳輸的可靠性,實時性。軟PLC是一種基于PC機的新興自動控制技術,不僅能夠實現硬PLC的所有功能,而且遵循IEC61131-3編程標準,為用戶提供了更多的開放性。MPS是德國FESTO公司結合現代工業企業特點開發研制的模擬自動化生產加工單元。它采用模塊化結構,
將氣動技術、電氣電子、傳感器技術、裝配技術、機械技術、現場總線技術綜合于一體。選取不同的單元可以組成自己的模擬生產加工系統,最大可以構成具有9個單元的MPS系統。包括:送料、檢測、加工、提取、暫存、組裝、沖孔、功能檢測和分揀單元。
基于CANopen協議的I/O從站可以作為MPS控制系統中的一部分,國內還沒有現成的產品可供選用,國外的產品往往價格過高, 增加了系統開發的成本。由此應用C8051F040單片機自行開發基于CANopen DS301、DSP401協議的I/O從站,并且通過上位機CAN卡構建了基于德國3S公司的CoDeSys軟PLC的分布式I/O控制系統。最終,通過測試實驗驗證了系統信息傳遞的可靠性、準確性和實時性。本文采用的控制系統結構(如圖3所示)具有很好的開放性,靈活性和可擴展性。
2 系統概述
圖1控制系統總體結構
整個控制系統由監控計算機、CAN總線主站適配卡、I/O從站節點、CAN總線網絡和現場設備構成。其系統結構如圖1所示。分布在現場的I/O從站節點連接MPS的傳感器信號,并通過CAN通訊接口與總線相連,監控計算機運行軟PLC軟件并通過CAN總線主站適配卡和連接在CAN總線網絡上的各個從節點進行實時通訊,從而實現MPS控制系統的分散控制和集中監管。
監控計算機可以選用普通計算機,軟PLC選用德國3S公司的CoDeSys。總線適配卡完成總線和監控計算機之間的協議轉換。各個從站節點之間使用專用屏蔽電纜互聯構成CAN總線網絡,總線兩端使用終端電阻,用來提高系統穩定性、增強系統的抗干擾能力。
3 基于CANopen協議I/O從站的開發
3.1 系統的硬件設計
如圖2所示,本文采用C8051F040單片機作為I/O從站的主芯片, 它具有與8051指令集完全兼容的CIP-51內核,內部集成的CAN控制器為Bosch CAN控制器[4]。此CAN控制器有以下幾部分構成:CAN內核、報文RAM(與C8051 RAM相互獨立)、報文處理狀態機制和CAN控制寄存器。CAN收發器我們采用SN65HVD232,它具有高速穩定的差動發送和接收能力;為了提高抗干擾能力,系統中采用雙路電源模塊供電,在控制器和傳輸介質之間加接光電隔離器件ADuM1201高速數字隔離器替代傳統的光電耦合器(如6N137),簡化了電路,極大的降低了功耗。此外,從站I/O端口電路還采用了光耦TLP521隔離器進行光電隔離。為了使繼電器輸出得到足夠的電流供應,光耦輸出后加達林頓管以加大驅動電流。最后接自恢復式保險絲,然后輸出。在圖2中只給出一路輸入輸出,16路類同。在工業現場,需要共陰極的繼電器輸出,設計的數字IO從站需要16路輸入,16路輸出。基于此,選擇兩片UDN2982達林頓管。單片機在復位時,端口為高電平,為了避免復位期間繼電器動作,所以
圖2 系統硬件簡圖
設計低電平光耦連通,繼電器吸合。由此,輸出光耦使用下拉電阻。輸入輸出都有LED顯示。
3.2系統的軟件設計
本系統的軟件設計采用模塊化設計,使用C51Windows編程語言進行軟件編程。程序框圖如圖3所示,程序模塊分為主程序模塊、CANopen協議模塊、對象字典與節點配置模塊、系統I/O模塊、單片機與CAN控制器硬件驅動模塊。
CANopen協議的軟件實現遵循CANopen協議預定義主/從連接集,從站節點支持4個接收PDO,4個發送PDO,1個SDO,1個緊急對象和1個節點錯誤控制對象。結合通訊協議的特點,軟件設計中采用結構體的方式來定義諸如CAN報文、發送和接收PDO配置對象、CANopen協議配置對象等,通過定義結構體型指針變量完成對對象中相關數據的讀寫,給程序的編制帶來了方便。此外,利用定義數組的方法實現了對象字典和過程數據映像的操作。在SDO報文處理子函數中,通過被訪問對象的主索引和子索引,以數組查詢的方式實現了對對象字典的讀寫訪問。CANopenI/O從站的狀態機轉換通過判斷接收NMT報文命令字,對心跳報文標志字節代碼進行讀寫,產生程序散轉的方式得以實現。對于PDO、SDO通訊對象的處理則根據心跳報文標志字節代碼指明的當前狀態分別進行處理。
圖3 系統主程序軟件框架圖軟件設計的關鍵在于C8051F040的CAN信息的收發函數、如何濾波以及對象字典在程序中的實現。
評論