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