李勝永,張智華,季本山,張江南
(1.南通航運(yùn)職業(yè)技術(shù)學(xué)院,南通 226010;2.南通港口集團(tuán)有限公司,江蘇南通 226006)
現(xiàn)場總線技術(shù)FCS[1](Fieldbus Control System)在港口電氣設(shè)備中大規(guī)模使用,目前已逐步取代DCS控制系統(tǒng),成為當(dāng)前控制系統(tǒng)的主流。FCS是一種全數(shù)字化、雙向、多站的通信系統(tǒng),以數(shù)字信號(hào)取代模擬信號(hào),采用3C(Computer、Control、Communication)技術(shù),使得大量的現(xiàn)場檢測與控制信息能就地采集、就地處理、就地使用,許多控制功能也從控制室轉(zhuǎn)移至現(xiàn)場,溝通了港口生產(chǎn)過程領(lǐng)域的現(xiàn)場級(jí)設(shè)備與更高層次自動(dòng)控制領(lǐng)域的自動(dòng)化控制設(shè)備之間的聯(lián)系。港口電氣設(shè)備FCS主要包括一些實(shí)際應(yīng)用設(shè)備,如PLC、變頻器、上位機(jī)界面、智能儀表和遠(yuǎn)程從站等?,F(xiàn)場總線技術(shù)領(lǐng)域至今仍未形成一個(gè)統(tǒng)一的國際標(biāo)準(zhǔn),一般都遵守OSI參考模型。目前港口電氣設(shè)備控制系統(tǒng)領(lǐng)域內(nèi),Profibus現(xiàn)場總線技術(shù)[1]最為通用,Profibus含Profibus-DP、Profibus-PA以及Profibus-FMS 3個(gè)兼容部分,其中Profibus-DP為分布式外圍設(shè)備,因此國內(nèi)眾多廠商均在開發(fā)自己的FCS系列產(chǎn)品,為能夠快速接入現(xiàn)場Profibus現(xiàn)場總線,采用的方案是Profibus-DP/Modbus網(wǎng)關(guān)和Profibus-DP/RS 485網(wǎng)關(guān)。而作為港口電氣設(shè)備的長期使用者港務(wù)公司來說,面對(duì)港口電氣設(shè)備的FCS系統(tǒng)只能選擇具有Profibus網(wǎng)關(guān)接口的設(shè)備進(jìn)行控制系統(tǒng)組建,以往眾多DCS控制系統(tǒng)中的設(shè)備均遭遺棄,同時(shí)限制了Profibus現(xiàn)場總線技術(shù)的應(yīng)用范圍和控制系統(tǒng)組建的靈活度。因此,設(shè)計(jì)開發(fā)一套具有靈活嵌入特點(diǎn)的Profibus網(wǎng)關(guān)接口設(shè)備可以拓展Profibus現(xiàn)場總線控制系統(tǒng)的設(shè)備接入范圍,降低接入技術(shù)的門檻。
網(wǎng)關(guān)接口方案選擇Profibus-DP/Modbus網(wǎng)關(guān),接入設(shè)備以Profibus總線DP從站方式接入。Profibus協(xié)議端采用VPC 3+C,它是Profichip生產(chǎn)的一款用于Profibus-DP智能從站的芯片,它遵循Profibus標(biāo)準(zhǔn)協(xié)議[2]。RS 485總線端采用帶隔離的增強(qiáng)型RS 485收發(fā)器——ADM 2483,其1/8單位負(fù)載的接收器輸入阻抗可允許多達(dá)256個(gè)收發(fā)器接入總線,最高傳輸速率可達(dá)500 kbps[3],邏輯端兼容3V/5V工作電源,總線端5V供電,適合眾多RS 485設(shè)備通信條件??刂破鬟x擇C8051F020器件,因其為完全集成的混合信號(hào)系統(tǒng)級(jí)MCU芯片,8051兼容的CIP-51內(nèi)核(可達(dá)25 MIPS),可以降低設(shè)備維修難度和接入門檻。硬件連接關(guān)系如圖1所示。單片機(jī)控制VPC3+C通訊芯片,遵循Profibus協(xié)議完全由Profibus通信ASIC來實(shí)現(xiàn),這要求硬件完全可靠,因此通信采用光電隔離的RS-485來進(jìn)行。DP智能從站采用單片機(jī)C8051F020控制通信芯片VPC3+C,通過RS-485與控制設(shè)備進(jìn)行通信。單片機(jī)和VPC3+C都采用3.3 V供電電壓。單片機(jī)外圍有地址撥碼、通信選擇、數(shù)碼顯示等接口,主要是為了設(shè)置從站地址、與控制設(shè)備進(jìn)行通信及上位機(jī)發(fā)送命令顯示。單片機(jī)采用外部22.118 4 MHz晶振,VPC3+C時(shí)鐘源為48 MHz。數(shù)碼管主要顯示PC機(jī)發(fā)送的數(shù)據(jù),用以觀測協(xié)議芯片的工作情況。雙串口與控制設(shè)備通信,可以撥碼進(jìn)行選擇。根據(jù)Profibus-DP協(xié)議,VPC3+C內(nèi)部集成的狀態(tài)機(jī)[4]描述DP從站在每種情況下的行為。主從站通信的過程中,從站一般都是被動(dòng)地等待主站的請(qǐng)求,接到請(qǐng)求之后才能執(zhí)行數(shù)據(jù)交換,而在進(jìn)入數(shù)據(jù)交換之前,主站必須先后對(duì)從站進(jìn)行賦參數(shù)、初始化配置和診斷。如圖2所示,Profibus-DP從站在上電或復(fù)位后,就進(jìn)入Wait_Prm等待初始化參數(shù)狀態(tài),即等待主站發(fā)來的Set_Slave_Add指令,以改變本身的默認(rèn)地址。在本次設(shè)計(jì)中,從站地址儲(chǔ)存在CPU中,設(shè)置從站地址不可改變,從站將直接接受Prm_Telegram參數(shù)賦值指令。在此過程中,CPU除判斷攜帶的Profibus標(biāo)準(zhǔn)規(guī)定的參數(shù)和由用戶應(yīng)用程序特別指定的從站參數(shù)外,其他任何指令都將導(dǎo)致系統(tǒng)復(fù)位。初始化參數(shù)配置完成之后,從站就進(jìn)入Wait_Cfg等待組態(tài)初始化,即從站要執(zhí)行主站命令能夠識(shí)別的數(shù)據(jù)情況。當(dāng)從站接受的參數(shù)賦值及初始化過程完成之后,從站就轉(zhuǎn)入Data_Exch狀態(tài),進(jìn)行與主站的周期性數(shù)據(jù)交換。
圖3所示為C8051F020與VPC 3+C的電路連接示意圖[2]。VPC3+C內(nèi)部參數(shù)鎖存器[5]位于地址單元00H至15H之間,在Intel方式下只可讀或只可寫。地址相同的參數(shù)鎖存器在只可讀和只可寫的情況下功能是不相同的。組織參數(shù)位于地址段16H至3DH中,用戶在特定的地址下將組織參數(shù)存入RAM中,這些參數(shù)可讀可寫。另外,本設(shè)計(jì)中在VPC 3+C中還設(shè)定了看門狗定時(shí)器,當(dāng)監(jiān)視時(shí)間溢出時(shí),VPC 3+C回到Baud_Control狀態(tài),即產(chǎn)生中斷,執(zhí)行wd_dp_mode_timeout_function函數(shù),DP狀態(tài)機(jī)復(fù)位。用戶看門狗計(jì)數(shù)器采用一個(gè)16位的內(nèi)部存儲(chǔ)器單元,初始值由“R_User_WD_Value”單元給定。每接收到一個(gè)數(shù)據(jù)報(bào)文,計(jì)數(shù)器就減1。當(dāng)減到0000H時(shí),VPC 3+C就進(jìn)入“等待參數(shù)化”狀態(tài),DP狀態(tài)機(jī)執(zhí)行“離開主站”命令。對(duì)從站抗干擾的設(shè)計(jì)重點(diǎn)放在對(duì)電源的保護(hù)上,因?yàn)殡娐钒宸€(wěn)定運(yùn)行的核心在于電源。本設(shè)計(jì)選用開關(guān)電源模塊,同時(shí)供單片機(jī)、VPC 3+C等元器件使用,原理如圖4所示,采用外部5V供電,通過AMS1117-3.3電源轉(zhuǎn)換芯片將5V電壓轉(zhuǎn)換為3.3V。主芯片采用3.3 V供電,較5 V供電更具抗干擾性,并且在電壓兩端并聯(lián)電容及穩(wěn)壓二極管UF 4007。一般設(shè)計(jì)電路較常用1N 4007穩(wěn)壓二極管,但是UF 4007比1N 4007容量更大,速度更快,吸收浪涌能力更強(qiáng),電容更能有效濾波。VPC 3+C采用光電隔離的RS 485芯片ADM 2486發(fā)送和接收數(shù)據(jù)。ADM 2486內(nèi)部有邏輯塊和總線塊,其供電電源分別是3V和5V,能有效地減少從站所受的外部干擾,且通信速率[3]可以達(dá)到20 Mbps,完全符合設(shè)計(jì)要求。單片機(jī)串口采用帶隔離的增強(qiáng)型RS 485收發(fā)器ADM 2483。
圖1 硬件電路連接結(jié)構(gòu)示意圖
圖2 Profibus-DP從站流程圖
圖3 C8051F020與VPC3+C的電路連接示意圖
圖4 開關(guān)電源電路連接示意圖
系統(tǒng)軟件總體流程見圖5。系統(tǒng)主要實(shí)現(xiàn)VPC 3+C的初始化和啟動(dòng)、數(shù)據(jù)收發(fā)及處理從站診斷事務(wù)、處理用戶接口數(shù)據(jù)及中斷事務(wù)。上電后,系統(tǒng)只對(duì)單片機(jī)和VPC 3+C芯片初始化一次,數(shù)據(jù)處理和各種狀態(tài)的轉(zhuǎn)換循環(huán)進(jìn)行,系統(tǒng)主要完成通信芯片的初始化、啟動(dòng)、發(fā)送和接收數(shù)據(jù)及診斷等。從站初始化過程中的一個(gè)主要環(huán)節(jié)是運(yùn)行參數(shù)的賦值,即由主站將通信時(shí)所需的參數(shù)賦給從站,并指定從站的工作狀態(tài),同時(shí)從站也能在此過程中得知應(yīng)與其通信的主站地址。
GSD文件開發(fā)如下:
設(shè)計(jì)采用RTU模式下的CRC校驗(yàn)。
OPC是為了連接數(shù)據(jù)源(OPC服務(wù)器)和數(shù)據(jù)的使用者(OPC應(yīng)用程序)之間的軟件接口標(biāo)準(zhǔn)。設(shè)計(jì)中采用基于腳本編程語言而定義的標(biāo)準(zhǔn)接口,使用Visual Basic編程語言開發(fā)OPC服務(wù)器的客戶應(yīng)用。
圖5 系統(tǒng)軟件總體流程圖
采用SIEMENS公司S7-313C-2DP CPU作為Profibus主站,利用設(shè)計(jì)網(wǎng)關(guān)接口實(shí)現(xiàn)與具有Modbus接口的變頻器通信,并控制其運(yùn)行頻率。設(shè)備接入測試結(jié)果截圖如圖6所示。利用上述硬件及軟件設(shè)計(jì)方案構(gòu)建的Profibus-DP/Modbus網(wǎng)關(guān)接口,可以完美實(shí)現(xiàn)Modbus產(chǎn)品接入Profibus現(xiàn)場總線實(shí)現(xiàn)數(shù)據(jù)交換,為港口通用電氣設(shè)備接入Profibus網(wǎng)絡(luò)提供了一種解決方案。
圖6 設(shè)備接入測試結(jié)果示例
[1] Karlsruhe EV.DraftstandardProfibus-DP[M].Germany:ProfibusNutzerorganisation,1994.
[2] 姜日新,宋延民,張平,雷貴亮.基于VPC3+C的Profibus-DP智能從站設(shè)計(jì)[J].天津工程師范學(xué)院學(xué)報(bào),2010,20(4):14-17.
[3] 王淮中,溫靜馨,郝建秀.高精度低成本超聲波熱能表的研制[J].微型機(jī)與應(yīng)用,2009(23):32.
[4] SIMATIC NET SPC3 Siemens Profibus Controller User Description[Z].Siemens AG,2003.
[5] Germany Profibus Interface Center/Lab.ManfredPoppTheRapidWaytoProfibus-DP[Z].1997.