基于ProfiBus的電動執行器控制系統研究
介紹了具有ProfiBus現場總線接口的電動執行器控制系統的開發過程。在保留原執行器功能的基礎上,增加了ProfiBus通信模塊,給出了軟硬件實現方案以及程序流程圖。該電動執行器控制系統支持組態軟件的接入并實現與其他現場總線產品的互連、互操作。
現場總線是一種開放式、數字化、多點通信的底層控制網絡,是一項集嵌入式、計算機、數字通信、網絡技術為一體的綜合技術。目前,世界上存在著幾十種總線技術,其中,ProfiBus作為主流總線技術的代表占據了相當一部分市場。
隨著現代化工業水平的提高,現有的電動執行器控制系統在功能和使用上的缺點暴露得越來越明顯,如模擬量控制信號精度低且易受干擾,缺少及時的遠程報警機制和故障處理方式,數字化程度不高,模擬量、開關量控制功能受約于連接線的數量等問題,不僅增加了產品成本,也增加了系統操作的復雜性。為了彌補現有電動執行器控制系統的不足之處,強化其控制功能,本文把ProfiBus現場總線技術應用于電動執行器控制系統。
1、控制系統硬件設計
本套控制系統主要完成以下功能:本地電動執行器控制,以及總線通信。控制系統結構如圖1所示。
圖1 控制系統結構圖
1.1、執行器控制單元結構設計
本文采用C8051F040作為控制系統的MCU。它內含CIP-51的CPU內核,兼容MCS-51指令集,具有64kB片內Flash程序存儲器,4kRAM,128B的非易失性存儲器。C8051F040的片上資源豐富,外圍硬件電路連接簡單,便于硬件調試,更縮短了設計開發周期,提高系統的可靠性和穩定性。
執行器控制單元結構分以下幾個大的模塊:位置采集電路,模擬量輸入電路、模擬量輸出電路、遠程開關量輸入電路,按鍵輸入電路,電機驅動電路,LCD、LED顯示電路。其中:位置采集電路實現執行器當前位置的采集;模擬量輸入電路實現遠程控制用4~20mA信號的采集、轉換;模擬量輸出電路實現當前電動執行器位置值向4~20mA模擬量的轉換;遠程開關量輸入電路實現遠程控制狀態的采集;按鍵輸入電路負責采集本地按鍵控制;電機驅動電路用于驅動電動執行器;LCD、LED顯示電路用于當前位置、控制類型等信息的顯示。
1.2、ProfiBus通信電路設計
ProfiBus-DP是一個開放的、與制造商無關的標準,任何人都可以獲得這個標準并設計各自的ProfiBus-DP設備。不過通過這種方法構成DP接口,除了物理層以外的協議都要通過軟件來完成,軟件編程工作量大,可靠性不易受到保障,通信速度也受到限制。本文采用SIEMENS公司提供的SPC3(SIEMENS ProfiBus Controller,3rd generation)ASIC接口芯片來開發ProfiBus-DP接口。SPC3中集成了(RS-485),數據鏈路層、DP從站用戶接口以及部分現場總線管理(FMA),與其相連的MCU只需要少量的軟件工作就可以實現ProfiBus-DP智能從站的通信功能,大大縮短了系統的開發周期。SPC3與MCU通過數據地址總線進行數據交換,本文采用數據地址線復用方式,SPC3的AB8~AB10接地,AB0~AB7接收高八位地址,DB0~DB7為低八位地址與數據復用的總線,ALE、XWR、XRD,連接MCU的ALE,WR、RD,控制SPC3的讀寫。SPC3中斷源共用一個外部中斷XINT,觸發MCU的外部中斷INT0。ProfiBus-DP物理層介質選用屏蔽雙絞線,驅動芯片采用SN75LS176。SN75LS176與SPC3的接口包括Rxd、Txd和發送使能DE,并通過6N137隔離。SN75LS176的接收使能端RE直接接地以保證全部接收。此外,采用單色LED與SPC3的XDATAEXCH相連,用來指示SPC3工作狀態,撥碼開關用于設置從站地址。ProfiBus通信電路結構如圖2所示。
圖2 ProfiBus通信電路結構
2、控制系統軟件設計
2.1、ProfiBus協議棧的實現
SPC3中集成了完整的ProfiBus-DP狀態機,在很大程度上減化了ProfiBus協議棧的軟件開發周期。SPC3具有如下特點:
(1)可以獨立處理ProfiBus-DP通信協議;
(2)微序列器控制著整個SPC3的工作過程。在芯片進入通信之前,要用外接的MCU對其參數寄存器、方式寄存器進行必要的設置;
(3)可自動建立ProfiBus-DP通信的服務存取點,不同的報文對應不同的緩沖區:
(4)支持多個中斷,具有中斷屏蔽和中斷指示功能,多個中斷共享一個外部中斷;
(5)能夠自動識別9。6kb/s~12Mb/s總線比特率。SPC3的內部集成了1。5k的雙端口RAM,地址為000H~5FFH。內部RAM以8字節為一個單元,共分為192個段。本控制系統中,將SPC3當作一個MCU的外部RAM,通過數據地址總線來進行寄存器的讀寫,達到MCU對SPC3的控制目的。
RAM空間按功能分為處理器參數區、組織參數區、DP緩沖區三個區域。其中:
(1)處理器參數區寄存器包括:從站最小延遲時間寄存器、內部集成看門狗寄存器、中斷寄存器以及狀態寄存器等。
(2)組織參數區用于設置DP緩沖區中各個緩沖塊的長度、指針(首地址)。這些長度、指針的設置必須在SPC3離線情況下完成。在運行狀態下,除了Dout_Buf和Din_Buf的長度可變以外,其他的指針和長度都不可變。
(3)DP緩沖區是DP數據的緩沖區,包括3個DP輸出緩沖塊3個DP輸入緩沖塊、2個診斷緩沖塊、2個輔助緩沖塊、設置參數緩沖塊、通信接口配置緩沖塊等。
SPC3能夠完成DP從站的通信功能,從站的MCU只需要完成SPC3的初始化以及處理相應的應答報文。在DP模式下,SPC3提供如下的服務存取點:
DefaultSAP-數據交換服務;
SAP55-設置從站地址(Set_Slave_Add);
SAP56-讀DP輸入(Read_Input);
SAP57-讀DP輸出(Read_Output);
SAP58-全局控制命令(Global_Control);
SAP59-讀接口配置(Get_Config);
SAP60-讀從站診斷(Slave_Diag);
SAP61-設置參數(Set_Param);
SAP62-通信接口配置檢查(Check_Config)。
ProfiBus-DP系統從站通信狀態機如圖3所示。
圖3 ProfiBus-DP系統從站通信狀態機
SPC3中集成了ProfiBus-DP的完整協議以及DP狀態機,并支持波特率自搜索,與其相連的MCU只需要少量的軟件工作就可以實現ProfiBus-DP智能從站的通信功能,而不需要參與其狀態機。MCU的具體工作包括:
SPC3的初始化,spc3init();
對SPC3接收的數據進行處理,outdataincept();
將要發送的數據寫入SPC3,indatasend();
處理故障診斷,diagmodule();
響應SPC3中斷,dpint()interrupt0。
2.2、主程序流程
圖4 程序流程圖
控制系統程序流程如圖4所示。上電之后,系統首先進行MCU的初始化,包括系統時鐘、ADC、DAC,定時器等資源的配置。然后,MCU開始初始化SPC3,并等待SPC3進入數據交換。如果等待超時或者SPC3已經進入數據交換狀態,則開始循環程序。若系統未發生不可恢復的通信錯誤,將依次進行:SPC3診斷、處理總線數據、模擬量采集、菜單處理、錯誤檢測、執行機構命令、開關量輸出,否則,不進行總線數據的處理,總線功能不可用。
3、組網與測試
當今對現場總線的研究多以從站開發為主,而采用功能強大的PLC作為主站設備,結合配套軟件或第三方組態軟件,將自行研發的從站設備于主站相連,組成現場總線網絡。圖5為本文控制系統組網環境。
圖5 系統組網環境
3.1、ProfiBus組網
ProfiBus現場總線組網環境所有傳輸介質和設備接插頭均符合協議標準,主站設備采用SIEMENS的S7-300系列PLC上的ProfiBus-DP模塊,從站設備為本控制系統所驅動的電動閥門。另外,為了能夠搭建一個更接近實際工作情況的測試系統,本文把第三方組態軟件“組態王6。53”與PLC連接,開發建立了一個從監控軟件到現場總線的典型工業控制應用環境。在ProfiBus網絡中,PLC的CPU存儲器中變量的變化直接映射了設備間的I/O通信狀態。通過“組態王”與PLC的通信,結合上位機監控界面,可以實時反映網絡通信是否流暢,以及直觀方便地設置控制命令,觀察閥門控制器的功能實現情況。系統監控系統運行界面如圖6所示。
圖6 ProfiBus總線系統監控界面
3.2、系統運行測試
通過長時間的運行測試,本系統運行情況良好,實時性、可靠性能夠滿足工業現場需求,測試結果如表1所示。
表1 ProfiBus組網運行測試結果
由以上測試結果可以看出,本文設計的電動執行器控制系統能夠正確識別ProfiBus總線波特率,并完成總線數據交換功能,實現控制系統的網絡化。本系統最高能在6Mbps波特率的網絡中正常運行,對于數據量較小的電動執行器,6Mbps可以滿足絕大多數的使用需求。
4、結論
本文所研究的電動執行器控制系統,能夠自適應總線波特率,正確接入ProfiBus總線系統,并長時間運行無誤,在模擬的工業監控環境下顯示了良好的使用性能。ProfiBus總線技術的引入,大大增強了電動執行器的市場競爭力和發展前景。