王 捷 艾 紅
(1.北方工業大學電氣與控制工程學院,北京 100144;2.北京信息科技大學自動化學院,北京 100192)
基于語句表和Profibus的水箱液位與進水口流量串級控制系統
王 捷1艾 紅2
(1.北方工業大學電氣與控制工程學院,北京 100144;2.北京信息科技大學自動化學院,北京 100192)
提出一種基于語句表和Profibus的水箱液位與進水口流量串級控制方案。給出系統組成和設備硬件組態,說明使用符號地址訪問數據塊中數據的方法。闡述了PID功能塊FB41的使用方法和主要參數說明,給出了語句表主要程序段。相關測試結果表明:該系統響應速度快,超調量小。
串級控制系統 水箱液位 進水口流量 語句表 Profibus 符號表
Profibus是一種面向現場級和車間級的數字化通信總線標準,可實現現場設備層到車間級監控的分散式數字控制和現場通信網絡[1~3],為實現工廠綜合自動化和現場設備智能化提供了可行的解決方案[4]。
早期的液位控制系統采用模擬信號控制,這在系統比較簡單時是一種可接受的方案。但是當系統較復雜時則會在控制系統性能、集中管理、成本、可靠性及維護方便性等方面受到諸多限制。而使用Profibus設計液位控制系統可以在以上各方面取得平衡。
在此,筆者以液位控制系統為例,提出一種基于語句表(Statement List,STL)和Profibus的水箱液位與進水口流量串級控制方案。
基于Profibus的液位控制系統組成如圖1所示。
系統以S7-300 CPU315-2DP為主控制器,配備了具有Profibus接口的液位、壓力、流量檢測、閥門定位器及變頻器等設備。系統所有控制信號之間的通信均由Profibus總線實現。系統使用Profibus-DP取代24V(DC)或4~20mA信號傳輸。Profibus-PA可使傳感器和執行機構連在一根總線上,因此在Profibus-PA總線上連接有壓力變送器、溫度變送器、電磁流量計和閥門定位器。

圖1 基于Profibus的液位控制系統組成
硬件組態的主要工作是利用Step7將控制系統的硬件進行相應配置,并在配置時對模塊參數進行設定。創建:雙擊Hardware,添加軌道Rail,在右側SIMERTIC 300中找到RACK-300;雙擊Rail,點擊插槽1,在右側找到SIMERTIC 300中的PS-300;雙擊PS 307 5A,點擊插槽2,在右側找到SIMERTIC 300中的CPU 315-2 DP。加入Profibus-DP線:在彈出的對話框中選擇New,Subnet中將出現Profibus(1),選擇1.5Mbit/s。在插槽4中添加CP 343-1,在彈出的對話框中修改其IP address。建立以太網通信:雙擊CP 343-1查看屬性,若Networked為No則表示沒有以太網通信,點擊Properties進行屬性修改,點擊New新建一個以太網連接,此時Subnet中出現Ethernet(1);若Networked為Yes則表示已建立了以太網通信。液位控制系統硬件組態如圖2所示。

圖2 液位控制系統硬件組態
3.1用戶程序模塊
數據塊(Data Block,DB)、組織塊(Organization Block,OB)、功能塊(Function Block,FB)、系統功能塊(System Function Block,SFB)、功能(Function,FC)和系統功能(System Function,SFC)都包含部分程序,如果要加入某種模塊,可在右邊窗口(即出現OB1的窗口)空白處單擊鼠標右鍵選擇Insert New Object,然后在下拉菜單中單擊所需模塊即可。
3.2組織塊OB35
S7-300 PLC啟動成功后,操作系統將循環執行組織塊OB1。在OB1中可以調用FB、SFB、FC及SFC等用戶程序并使它們循環執行。OB1默認掃描監控時間150ms。OB35是循環中斷組織塊,循環中斷的間隔時間在CPU屬性中設定。OB35默認的循環中斷間隔時間100ms(定時范圍1~60 000ms),用戶可根據實際需要進行修改。如果OB35的中斷時間為100ms,而OB35中的執行程序時間為150ms,則會出現程序未運行完畢,系統就發出第二次中斷,因此設置的中斷時間應大于OB35中程序執行的時間[5]。
3.3DB
DB分為共享數據塊(又稱全局數據塊)和背景數據塊,是系統數據的存儲區域。在共享數據塊和全局符號表中聲明的變量都是全局變量。背景數據塊是專門指定給某個功能塊或者系統功能塊使用的數據塊,是FB或SFB運行時的工作存儲區。當用戶將DB與某一個功能塊相連時,該DB即成為該功能塊的背景數據塊。用戶不能直接修改背景數據塊,只能通過對應功能塊的變量聲明表來修改。訪問數據塊中的數據時可以使用絕對地址也可以使用符號地址。數據塊中存儲單元的地址由兩部分組成:如DB1.DBX20.0,DB1表示數據塊的名稱,DBX20.0表示數據塊第20Byte的第0位;DB41.DBD72表示DB41數據塊的第72Byte開始取雙字。
3.4符號表
在Step7程序中,可以訪問使用地址,如I/O信號、位內存、定時器、數據塊和功能塊;也可以訪問符號地址,程序將更容易閱讀。如在OB35編程時通過符號bzxs就可以知道,其要訪問的相應地址是比值系數。從符號表(表1)的內容中可以看到,符號qkxs1的地址是MD28,表示位內存地址從28開始的一個DWORD雙字大小的內存單元;CONT_C表示使用PID功能塊FB41。因此,使用符號地址更容易識別程序中的元素。

表1 符號表

(續表1)
Step7支持多種編程模式,如梯形圖、功能塊圖、順序功能圖、結構化控制語言及STL等。
4.1STL
STL的每條語句都對應CPU處理程序中的一步;多條語句可組成一個程序段,實現某些不能用梯形圖或功能塊圖表示的功能。用助記符L和T表示數據的裝入和傳送,裝入指令和傳送指令必須通過累加器進行數據交換。L <地址>裝入指令,將原尋址單元中的內容裝入累加器1中,累加器1再將原數據裝入累加器2。T <地址>傳送指令,將累加器1的內容寫入目的地址存儲區中,而累加器1的內容保持不變。數據長度小于32位時,數據在累加器中右對齊即低位對齊,其余各位補0。STL形式的條件跳轉指令是以運算結果RLO的值或狀態字標志位的狀態為跳轉條件的。
4.2PID功能塊FB41
功能塊FB41是連續PID模塊,其測量數據可以存放在數據塊DB43中。在符號表中將符號CONT_C分配給FB41。
設定值以浮點數格式在SP_INT處輸入。過程變量即反饋值可以用兩種方法輸入:一種是用PV_IN輸入浮點數格式的過程變量,這時控制輸入過程變量的開關量PVPER_ON應為0;另一種是從外設直接輸入過程變量到PV_PER,CRP_IN功能將從外設來的模擬量輸入模塊的采樣值PV_PER轉換成-100%~100%之間的浮點數格式,此時控制I/O輸入過程變量的開關量PVPER_ON應置為1,模擬量輸入模塊采樣值的最大值為27 648。CRP_IN功能根據CRP_IN的輸出=PV_PER×100/27648,將PV_PER轉換為-100%~100%之間的浮點數格式。PV_NORM功能根據PV_NORM的輸出=(CRP_IN的輸出)×PV_FAC+PV_OFF使CRP_IN的輸出規格化。
功能LMNLIMT用于對控制器的輸出值限幅。當超過控制器的輸出值上限LMN_HLM時,信號位QLMN_HLM(輸出超過上限)為“1”狀態;低于下限值LMN_LLM時,信號位QLMN_LLM(輸出低于下限)變為“1”狀態。功能LMN_NORM根據LMN=LMNLIMIT的輸出×LMN_FAC+LMN_OFF,將限幅后的LMNLIMIT的輸出進行格式化后輸出LMN(浮點數格式的控制器輸出量)。LMN_FAC和LMN_OFF可以調節控制器輸出量的范圍[6]。功能CRP_OUT將浮點數格式的輸出值LMN根據公式LMN_PER=LMN×100/27648轉換成能直接輸出到外設的值,即直接輸出給模擬量輸出模塊。
4.3水箱液位與進水口流量串級控制STL
系統由主、副兩個回路組成。主被控變量為水箱的液位高度H;副被控變量是氣動調節閥支路流量Q,它是一個輔助的控制變量。由于管道的時間常數小于水箱的時間常數,因而當主擾動作用于副回路時,通過副回路的快速調節作用可以消除擾動影響。程序設計主要涉及3路信號,其中兩路是現場測量信號,即水箱液位和管道流量;另外一路是控制閥門定位器的控制信號。水箱液位與進水口流量串級控制的主要程序如下:
sy10:L 5.000000e+000//將5.000000e+000送累加器1
T PQD 296//將累加器1的值送調節閥參數接口
CALL"CONT_C",DB41//連續調用PID控制器FB41,背景數據塊是DB41
COM_RST:=
MAN_ON:=FALSE//設置PID控制器為“自動控制”模式
PVPER_ON:=TRUE//外設直接輸入過程變量到PV_PER
…
PV_PER:=PIW272//將水箱壓力賦給PV_PER
…
NOP 0
L PID 326//取進水口流量測量值到累加器1中
L 2.778000e+002//將2.778000e+002送到累加器1
*R//進水口流量測量值×2.778000e+002
T DB42.DBD 10//流量測量值×2.778000e+002并送到PV_IN
CALL"CONT_C",DB42//調用PID模塊FB41,使用背景數據塊DB42
…
PVPER_ON:=FALSE//PV_IN輸入浮點數格式的過程變量
…
SP_INT:=DB41.DBD72//DB41的控制器輸出值LMN送給內部設定值SP_INT
…
水箱液位與進水口流量串級控制程序中,通過連續PID控制器FB41分別調用了3個背景數據模塊DB41、DB42和DB43,其中DB41是主回路控制數據塊,DB42是副回路控制數據塊,DB43是變頻器控制數據塊。
主回路測量值來自水箱,此時主回路對應的控制輸入過程變量的開關量PVPER_ON應為1,表示外設直接輸入過程變量到PV_PER。副回路流量測量值經過一定運算后送到PV_IN,此時控制輸入過程變量的開關量PVPER_ON應為0,表示副回路的PV_IN輸入浮點數格式的過程變量。根據串級控制規律,將主調節器的輸出作為副調節器的給定值,即DB42的設定值信號來自DB41的控制器輸出LMN,以實現主回路輸出傳送到副回路的給定[7]。
系統的主調節器選擇PI或PID控制,要求水箱液位穩定在15mm,電磁閥支路上的手動開關放在30°,打開電磁閥,加入階躍干擾。觀察水箱液位過渡過程,以響應快和超調量小為控制目標。水箱液位與流量的測量顯示界面如圖3所示。

圖3 水箱液位和流量顯示界面
筆者提出的基于STL和Profibus的水箱液位與進水口流量串級控制系統以S7-300 PLC為控制器,應用Step7的STL進行編程,實現了數據采集、記錄、存儲、通信和數據狀態監視。在雙容水箱裝置上進行了水箱液位與進水口流量串級控制測試,不同工況條件下(如改變水箱容積及施加不同外加干擾等)的多次測試結果表明:該系統響應速度快,超調量小,實現了水箱液位與進水口流量串級控制和界面顯示。
[1] 王佳,郝點,袁金寧.煉廠催化車間離心空壓機噪聲測試研究[J].化工機械,2012,39(2):146~149.
[2] 寧金龍,楊海燕.ProfibusDP通信技術在DCS中的應用[J].石油化工自動化,2015,51(2):59~60.
[3] 任振寰.Profibus-PA總線在工程應用中的探究[J].石油化工自動化,2015,51(6): 14~16.
[4] 姜建芳.西門子S7-300/400 PLC工程應用技術[M].北京:機械工業出版社,2012.
[5] 馬秀坤,史運濤,馬學軍.S7-200 PLC控制原理及工程應用[M].北京:北京航空航天大學出版社,2012:224~263.
[6] 黃婷婷.基于ProfiBus的過程控制系統的軟硬件組態[J].現代電子技術,2014,37(1):160~162.
[7] 張素文,賀凱歌.基于Profibus-DP的PLC與交流變頻器通訊的實現[J].工業控制計算機,2008,21(5):58~59.
CascadeControlSystemforWaterTankLevelandInletFlowBasedonStatementListandProfibus
WANG Jie1, AI Hong2
(1.CollegeofElectricalandControlEngineering,NorthChinaUniversityofTechnology,Beijing100144,China;2.CollegeofAutomation,BeijingInformationScience&TechnologyUniversity,Beijing100192,China)
A statement list and Profibus-based cascade control system for both water tank level and inlet flow was proposed; and the system composition and its hardware configuration were presented, including the method of using symbolic address to access the data in a data block, FB41 PID function block’s application and description of main parameters as well as the main segment of statement table STL. Testing results show that this system has fast response speed and smaller overshoot.
cascade control system, water tank level, inlet flow, statement list, Profibus, symbol table
TH862
A
1000-3932(2016)03-0285-05
2016-01-12(修改稿)