李 欣,雷菊陽
(上海工程技術大學機械工程學院,上海 201620)
水箱在高層建筑、工業生產和日常生活等供水系統中發揮著極其重要的作用。水箱的密閉性使其在使用過程中無污染,因此在工業生產生活中能夠廣泛使用。在高層小區內,水箱的使用避免了高層用戶用水困難的情況,但由于水箱的密閉不通透性,使得在水箱在進水和排水過程中容易出現溢水和缺水現象。這種情況的出現將在很大程度上造成水箱水位過高和水位過低,從而影響正常的生產生活。為了避免這些情況的發生,使水箱內的水位控制在一定的范圍,利用MATLAB控制系統與WinCC監視系統調節泵的開度對水箱水位進行控制,具有良好的實用性[1]。自動控制系統能使生產更安全,方便高層建筑的工作人員操作和控制[2]。
用于過程控制的OLE(OLE for process control,OPC)是應用程序和過程控制應用之間的標準化接口協議[3]。OPC是由標準的OLE/COM接口進行設計的,而它的過程控制是一種客戶端/服務器模式[4]。OPC分為定制接口和自動化接口兩種。為了使傳遞過程統一、高效,OPC協議統一了接口函數,使客戶端的訪問方式不根據現場設備的變化而變化[5]。因此,運用OPC協議技術,可以有效地組態系統,使系統內部數據進行實時傳遞;同時,可降低系統的復雜性,節省生產時間,提高系統的穩定性和高效性,方便軟硬件的運行[6]。
視窗控制中心(windows control center,WinCC)是工控過程中運用較廣且具有較高性價比的一款人機界面組態軟件[6]。WinCC通過與OPC服務器的通信連接進行數據交換,從而實現數據高速傳遞。WinCC提供三個OPC服務器,使外部程序與WinCC進行數據傳遞[7]:OPC_DA Server對工控過程的實時數據進行交互,OPC_HDA Server對歷史數據進行交互,OPC A&E Server對報警信息數據進行實時數據交互[8]。因此,利用OPC_DA_Server的數據交互優勢與其他控制軟件相結合的方法,可以滿足對系統運行過程中的設計要求[9]。
矩陣實驗室(matrix laboratory,MATLAB)是集編程環境、圖形處理、功能強大的工具箱、程序接口和應用軟件開發為一體的應用軟件[10]。作為一款專門為數值計算開發的軟件,MATLAB在數字計算領域有很大的優勢,如使用人數較多、現有的資料比較完善等,其在控制系統仿真方面的技術也很成熟[11]。
MATLAB7.0以上的版本中有OPC工具箱。在MATLAB命令窗口的命令行輸入“opctool”,對服務器進行設置,可實現與OPC服務器的連接;通過讀取和控制OPC服務器中的對應變量的值,來進行程序的開發。因此,MATLAB可以讀取系統開發過程中的實時變量值,并對其進行控制,生成實時控制圖;在客戶端繪制變量的實時趨勢圖,使操作員能隨時了解開發過程中控制狀態的變化[7]。
水箱液位監控運用WinCC和MATLAB,實現對水箱液面變化的控制。MATLAB與WinCC組態軟件通OPC協議進行通信,并完成數據交換。控制過程原理如圖1所示。

圖1 控制過程原理圖
為了實現水箱中的水能循環流動,使WinCC與可編程邏輯控制器(programmable logic controller,PLC)之間完成通信連接,需要對S7-300 PLC進行硬件組態。由于本試驗為模擬仿真試驗,因此選用信息傳遞接口(message passing interface,MPI)接口進行WinCC與PLC的通信。新建TEST項目,插入SIMATIC 300站,MPI地址為2,導軌選擇RACK-300下的Rail,電源模塊型號選用PS 307 5A以滿足所有模塊使用,中央處理器選擇CPU 314,信號模塊選擇數字量模塊DI16/DO16x24V/0.5A和模擬量模塊AI4/A04x14/12Bit。
在S7程序塊內,采用LAD梯形圖編寫組織程序塊OB1、OB35和OB100。OB35的主要作用為:當進水泵1和排水泵2接通以后,OB1直接調用該組織塊內的程序,并完成循環中斷為1 000 ms進水速度的操作。OB100組織塊程序的主要作用是設定水箱總液位為100 m3、水箱控制液位為97 m3。在進水泵1打開之后,使水箱實時液位值不超過總液位值100 m3。通過控制器調節,最后使水箱液位穩定在控制液位97 m3左右。
打開仿真軟件,將程序段下載到仿真軟件PLCSIM,程序塊和SIMATIC 300下載到仿真器;然后點擊運行,實現液體流動。
WinCC的組態過程包括新建項目、組態變量、組態畫面和運行項目[6]。新建MyFirstProject項目,在變量管理下添加驅動程序SIMATIC S7 Protocol Suite,選擇MPI通道單元,修改MPI系統參數中的邏輯設備名稱采用PLCSIM.MPI.1。在MPI通道單元下建立邏輯連接S7-300,在該邏輯連接下對外部變量進行設置,建立M00、M01、MW2、MW4和MW6五個外部變量。M00控制泵1的開關,M01控制泵2的開關,MW2為總液位,MW4為實時液位,MW6為控制液位。為了在組態畫面中顯示當前時間,用同樣的方法添加系統驅動程序System Info、連接MyPLC、變量Time。
打開圖形編輯器,新建畫面并對外部變量進行設置,使各個外部變量與相對應的畫面在項目運行之后能夠成功連接。組態軟件WinCC運行之后,打開泵1按鈕。當泵1工作、泵2不工作時,水箱處于進水狀態;當水箱中的實時液體達到設定值時,泵2工作,泵1不工作,以實現排水狀態;當水箱中的液位超過控制液位時,報警器開始報警。
在采用MATLAB建立OPC Server的通信之前,為了防止OPC服務組件未注冊成功,需要重新安裝OPC Core Components Redistributable (x64),在MATLAB命令行輸入opcregister(‘install’),重啟計算機,完成注冊。
以WinCC作為OPC的Server端,MATLAB作為OPC的Client端,Server作為數據的提供方,Client作為數據的訪問方。將Server端與Client端通過OPC協議接口建立聯系,則可以實現數據的雙向傳送[12]。
WinCC作為OPC的Server端,需要在變量管理下添加OPC.chn驅動程序。右擊OPC Groups(OPCHN Unit #1)進入系統參數,在OPC條目管理器下選擇OPCServer.WinCC.1。點擊瀏覽器完成項目的添加,將建立的外部變量添加到OPC Groups下,并建立OPCServer.WinCC.1連接[13]。
MATLAB作為OPC的Client端,需要添加客戶機、組對象和項對象。在MATLAB命令行輸入opctool,進入OPC服務器。右擊OPC Network添加localhost,點擊OPCServer.WinCC.1創建客戶端,添加客戶端所需組對象和項對象并對變量進行設置,確保MATLAB與WinCC之間通信的成功連接。在組對象Group_1下添加OPC服務器變量,即M00、M01、MW2、MW4和MW6五個項對象。
MATLAB通過比例積分微分(proportation integral derivative,PID)運算,實現對水箱液位的實時控制,即在該控制過程中控制器選用PID控制器。經過計算,該水箱被控對象的模型為一個比例環節和一階慣性環節相結合。PID控制可以通過比例調節、積分調節和微分調節三個環節相結合,對傳遞函數進行控制。同時,PID控制具有原理簡單、適應性強和魯棒性強的優點[14],通過控制Kp、Ti和Td三個參數來調節整個控制系統。PID控制過程如圖2所示。

圖2 PID控制過程圖
MATLAB通過OPC讀取WinCC服務器中變量的變化值,在MATLAB上編寫控制程序,通過OPC Server將改變變量傳遞到WinCC客戶端,并由監視過程顯示。MATLAB控制結果如圖3所示。

圖3 MATLAB控制結果圖
由圖3可知,通過PID控制后的水箱液位值達到預期要求,即實時液位不超過控制液位。當水箱中的液位超過液位控制量時,WinCC組態軟件中的報警畫面會出現提示。WinCC通過OPC將外部變量的變化值傳遞給MATLAB服務器;MATLAB通過PID控制,對變量進行調節,從而將液位控制在一定的范圍。通過WinCC組態軟件中的趨勢圖,可以實時觀察液位的控制過程。其過程圖與MATLAB實時液位控制圖相一致。
為了使該控制過程達到預期效果,在控制過程中需要對PID參數進行整定。當系統因響應速度過快而導致系統的穩定性變差時,通過減小比例系數Kp的值、增大積分時間Ti或者增大微分時間Td來增加系統的穩定性、減小系統的超調量。在試湊的過程中,遵循先比例、后積分、再微分的整定步驟。按照該參數整定方法,調整Kp、Ti和Td,使液位控制系統達到滿意的調節效果,并使水箱液位最終趨于穩定。
本文設計的水箱液位監控系統,通過OPC技術結合MATLAB與WinCC,既發揮了MATLAB強大的控制能力,又發揮了WinCC的可視化、報警畫面和數據歸檔的優點,使得對水箱液位的實時控制過程更清晰明了。在該控制過程中,WinCC變量管理器從自動化系統采集過程值的周期時間為250 ms,保存到歸檔數據需要500 ms,因此能更及時地將WinCC采集到的數據傳遞到MATLAB中,并能將控制變量快速反饋到水箱液位。
仿真試驗結果表明,該系統充分利用了MATLAB、WinCC和S7-300 PLC的各自長處,極大地提升了水箱液位的控制效果,提高了系統的控制品質,使水箱的液位控制達到理想的效果。由于控制對象模型的建立使該試驗不僅僅局限于實物的研究,對象的虛擬化更便于各層次的研究人員的研究工作和系統的安全調試。水箱液位實時監控系統是自動化控制系統,能有效節省人力和財力,保證生產作業更安全、高效,在工業控制領域具有很高的實用價值。