張振亞,施 璇,駱麗春,王 萍
(1.安徽建筑大學電子與信息工程學院,安徽合肥 230601;2.安徽建筑大學智能建筑與建筑節(jié)能安徽省重點實驗室,安徽合肥 230022)
城市排水系統(tǒng)是市政工程建設中的重要基礎設施。內澇災害是城市化帶來的城市型洪水災害,對經(jīng)濟社會發(fā)展造成極大的危害[1]。但城市排水系統(tǒng)雨水排水調度的自動化水平不高,一般排水泵站調度基本還是依賴于人工,通過調度人員分析運行參數(shù),依靠電話下達調度命令[2-3]。在城市排水調度中需要能及時、準確地掌握城市排水系統(tǒng)運行狀態(tài)等相關信息,從而科學、有效地對排水系統(tǒng)中的現(xiàn)場設備進行調度。
現(xiàn)有的面向排水泵站系統(tǒng)的數(shù)據(jù)采集與監(jiān)控主要基于SCADA 系統(tǒng)[4],而SCADA 系統(tǒng)搭建通常基于組態(tài)軟件。目前SCADA 系統(tǒng)可監(jiān)控設備的現(xiàn)場狀態(tài)并進行控制,實現(xiàn)簡單的泵調度策略。但其對大數(shù)據(jù)的決策能力有限,通常需要設計第三方智慧決策程序對設備進行智能化控制[5],第三方應用程序通常需要通過組態(tài)軟件與數(shù)據(jù)庫實現(xiàn)對下位機末端設備的控制。針對自動化控制系統(tǒng)中存在的問題,通過修改排水泵站PLC 程序,實現(xiàn)設備的自動化運行,并在上位機控制系統(tǒng)中應用ODBC 和ADO 方法實現(xiàn)組態(tài)軟件與數(shù)據(jù)庫的交互[6]。最后由第三方應用程序作出決策,通過數(shù)據(jù)庫下達控制指令。本文對底層PLC對水泵的控制、SCADA 系統(tǒng)對水泵的控制、基于第三方?jīng)Q策的控制共三層控制機制進行設計與實現(xiàn),以進一步提升排水系統(tǒng)自動化控制的信息化與智能化水平。
在工業(yè)領域,控制系統(tǒng)主要通過工業(yè)過程控制部件對實時數(shù)據(jù)進行采集、監(jiān)測,在計算機的調配下實現(xiàn)自動化系統(tǒng)的管理與監(jiān)控[7]。現(xiàn)階段工業(yè)控制系統(tǒng)的控制對象包括機械裝置、交通工具、實驗裝置、儀器儀表,以及家庭生活設施、家用電器等。國家核設施、鋼鐵、有色金屬、化工、電力、天然氣、水利樞紐、鐵路、民航、城市供水供氣供熱等都是工業(yè)控制系統(tǒng)信息安全管理的重點領域[8]。典型的基于PLC 的工控系統(tǒng)分為站控層、現(xiàn)場控制層和過程層。其中,站控層部署在上位機,現(xiàn)場控制層主要以下位機PLC為控制單元,過程層主要包括現(xiàn)場設備如傳感器、開關閥門等。上位機與PLC 下位機之間通過工業(yè)以太網(wǎng)進行通信,PLC 下位機與現(xiàn)場設備通過現(xiàn)場總線進行通信[9]。目前,大多數(shù)組態(tài)軟件提供用戶可配置的數(shù)據(jù)采集程序。基于COM 技術的OPC 標準自動化接口實現(xiàn)了OPC 服務器與OPC 應用程序之間的數(shù)據(jù)交換[10],一般通過VB.NET 中的ADO.NET 組件連接數(shù)據(jù)庫進行數(shù)據(jù)訪問[11-12]。但OPC服務器配置成本過高,無法得到普遍應用。本文在半實物仿真系統(tǒng)中將利用組態(tài)軟件中的相關ADO 組件進行數(shù)據(jù)庫連接。
目前針對排水系統(tǒng)智能性差、自動化水平低等問題,國內外大多采用分布式控制理論對排水系統(tǒng)架構進行重新設計[13]。一般將PLC 作為系統(tǒng)主控制器,結合物聯(lián)網(wǎng)技術,設計一種多模式運行的管理方式。在控制方面,將各功能模塊分成不同單元,最后由控制網(wǎng)絡將各單元連成整體,負責各單元的數(shù)據(jù)交互。如文獻[14]設計一套以PLC控制單元為核心的煤礦井下排水集中式控制系統(tǒng),系統(tǒng)根據(jù)水倉水位實現(xiàn)自動啟停水泵,PLC 控制單元負責與地面監(jiān)控中心進行通信,同時也負責水泵控制與調度,系統(tǒng)的可靠性依賴于PLC 控制單元;文獻[15]結合分布式控制理論,設計一套集中式控制系統(tǒng),系統(tǒng)由控制主站、控制分站和各種傳感器組成,控制主站負責與地面控制單元通信,同時也負責水泵控制與調度;文獻[16]提出主排水監(jiān)測監(jiān)控系統(tǒng)設計方案,系統(tǒng)通過水泵房控制單元實現(xiàn)排水系統(tǒng)的自動化運行;文獻[17]采用分層結構設計,結合工業(yè)以太網(wǎng)技術,為保德煤礦設計了一套獨立的自動化排水系統(tǒng),系統(tǒng)由地面控制中心、工業(yè)以太網(wǎng)傳輸網(wǎng)和水泵控制系統(tǒng)3 部分組成,排水系統(tǒng)的水倉分為小水倉和中轉水倉,小水倉可自動運行,每個中轉水倉控制系統(tǒng)可以直接接收地面控制中心的指令;文獻[18]設計一套獨立式的煤礦井下排水系統(tǒng),每臺水泵都配備了PLC 控制單元,地面監(jiān)控中心可以直接控制每臺水泵,系統(tǒng)運行指令來自地面,如果通信出現(xiàn)故障,則系統(tǒng)無法運行;文獻[19]在搭建排水系統(tǒng)時使用一種由3+2 控制結構構成的控制網(wǎng)絡[20],即三層設備兩層網(wǎng)絡。
本文在已有研究的基礎上,對排水系統(tǒng)進行分層設計,并對每一層進行半仿真實現(xiàn)。
為實現(xiàn)排水泵站控制系統(tǒng)中的無人值守功能以及泵站的自動化控制,進一步實現(xiàn)靈活且可變通的控制方式,本文設計系統(tǒng)架構如圖1 所示。主要控制模型體系分為3層:Ⅰ層為現(xiàn)場控制層,主要包括儀表和水泵等底層設備,基于PLC 對現(xiàn)場儀表和泵組進行控制;Ⅱ層為SCADA 層,在中控室內搭建SCADA 監(jiān)控系統(tǒng),完成所有泵站的信息采集與聯(lián)動,實現(xiàn)多泵站的聯(lián)合調度;Ⅲ層為應用層,在后期決策時,應用層將根據(jù)更多信息對各泵站的調度進行更高級的決策。
Fig.1 System architecture圖1 系統(tǒng)架構
圖1 中,Ⅰ層控制層通過PLC 內預先編譯的梯形圖程序控制設備啟停,并采集流量信號和水位信號、水泵狀態(tài)等設備數(shù)據(jù)。控制層可通過工業(yè)以太網(wǎng)、RS485 總線等方式與SCADA 層連接。
Ⅱ層SCADA 層一般設有中央控制室,實現(xiàn)對各泵站現(xiàn)場運行設備狀態(tài)的顯示與控制,并采集狀態(tài)數(shù)據(jù),通過操作界面實現(xiàn)對現(xiàn)場的遠程監(jiān)控,完成簡單的人工調度,最后將各泵站數(shù)據(jù)上傳至應用層。
Ⅲ層第三方應用層通過外部數(shù)據(jù)庫接收SCADA 層上傳的設備數(shù)據(jù),結合外部數(shù)據(jù)庫中存儲的其它數(shù)據(jù)如天氣數(shù)據(jù)、歷史決策數(shù)據(jù)等,對數(shù)據(jù)進行分析處理,最后作出智能決策,之后再通過SCADA 層將決策下達至下位機PLC,實現(xiàn)對設備的控制。
本文實現(xiàn)了一個面向排水系統(tǒng)水泵調度的控制系統(tǒng),以泵的工作時間和負載平衡為約束,模擬對排水系統(tǒng)中泵的調度。半實物仿真排水部分由1 個蓄水池、2 個12V 水泵和1 個24V 水泵以及1 個液位傳感器組成。
此外,為實現(xiàn)系統(tǒng)水循環(huán)利用,設置了由輔助排水系統(tǒng)運行的回水系統(tǒng),分別由1 個蓄水池、1 個12V 和1 個24V 水泵以及1 個液位傳感器組成,未來還可模擬城市地表降雨情況。
系統(tǒng)分為現(xiàn)場控制層、SCADA 層、應用層三層。其中現(xiàn)場控制層的PLC 采用西門子S7-200,CPU224XP。PLC內部數(shù)據(jù)存儲器如表1 所示。其中,數(shù)字量輸入寄存器I用于PLC 的輸入,該寄存器內容系統(tǒng)只能讀取,不能修改。本仿真系統(tǒng)不使用輸入寄存器,利用PLC 內部的位存儲器M 寄存器進行命令修改,輸出寄存器Q 輸出高電平用于控制設備。
Table 1 S7-200 CPU224XP internal data memory表1 S7-200 CPU224XP 內部數(shù)據(jù)存儲器
位存儲器M 為梯形圖中啟停設備的開關,輸出寄存器Q 與繼電器相連,輸出高電平對水泵進行控制。設定Q0.0-0.4 作為5 個水泵的輸出,M0.0-M4.0 作為中間繼電器控制5 個水泵的輸出,其對應關系如表2 所示。
通過連接PLC 內部的寄存器與繼電器,編譯相關梯形圖實現(xiàn)對設備的并行控制。梯形圖如圖2 所示,當接通PLC 電源時,自動實現(xiàn)對液位傳感器的控制,并采集相關液位數(shù)據(jù)。SBR0 模塊與SBR1 模塊分別為排水系統(tǒng)和輔助回水系統(tǒng)的液位采集模塊,可實現(xiàn)對各個系統(tǒng)的液位采集。利用梯形圖中與液位采集模塊并行的程序實現(xiàn)對各水泵的控制,當位寄存器M 置1 時啟動水泵,置0 時關閉水泵。
Table 2 Corresponding relation between pump intermediate relay and output register表2 水泵中間繼電器與輸出寄存器對應關系
Fig.2 PLC internal pump control program structure圖2 PLC 內部水泵控制程序結構
SCADA 層基于在Windows 操作系統(tǒng)下應用的組態(tài)軟件進行系統(tǒng)搭建,實現(xiàn)對現(xiàn)場的部署,設計組態(tài)監(jiān)控界面如圖3 所示。由于本實例系統(tǒng)設置在本地,組態(tài)軟件將通過PPI-USB 電纜連接PLC,并設置相關組態(tài)變量連接其寄存器M0.0~M4.0 實現(xiàn)對現(xiàn)場的直接控制,映射關系如表3所示。通過組態(tài)軟件在界面上設置開關,并綁定對應水泵的變量,從而實現(xiàn)用戶通過組態(tài)界面對水泵的直接控制。
SCADA 層與應用層可基于以太網(wǎng)連接外部數(shù)據(jù)庫進行數(shù)據(jù)交互。外部數(shù)據(jù)庫變量綁定組態(tài)變量,使應用層通過寫入數(shù)據(jù)庫變量實現(xiàn)對組態(tài)變量的控制。在組態(tài)軟件中以ADO 方式連接外部數(shù)據(jù)庫,首先在Windows 上配置ODBC 關系數(shù)據(jù)源,根據(jù)所適用的外部數(shù)據(jù)庫屬性進行配置,完成ODBC 數(shù)據(jù)源與外部數(shù)據(jù)庫的通訊;然后在組態(tài)軟件(以力控組態(tài)軟件為例)中選擇ADO 組件,連接同一ODBC 數(shù)據(jù)源,通過數(shù)據(jù)表綁定功能將數(shù)據(jù)表變量與組態(tài)變量綁定起來。
Fig.3 Water pump control configuration interface圖3 水泵控制組態(tài)界面
Table 3 Drainage system configuration variables connected to PLC corresponding registers表3 排水系統(tǒng)組態(tài)變量與PLC 相應寄存器連接
Table 4 Backwater system configuration variable connected to PLC corresponding register表4 回水系統(tǒng)組態(tài)變量與PLC 相應寄存器連接
通過ADO Module 模塊編寫ADO 函數(shù),進行組態(tài)軟件與數(shù)據(jù)庫之間的數(shù)據(jù)交互操作。將數(shù)據(jù)上傳和數(shù)據(jù)讀取分為兩個ADO 模塊,數(shù)據(jù)上傳部分為ADOModule1,數(shù)據(jù)讀取部分為ADOModule2。首先需要連接外部數(shù)據(jù)庫,然后創(chuàng)建表格,將采集到的數(shù)據(jù)上傳至數(shù)據(jù)庫。
流程1 數(shù)據(jù)庫連接程序
#ADOModule1.OpenDataBase();//打開關系數(shù)據(jù)庫;
#ADOModule1.CreateTableEx(“數(shù)據(jù)庫中的自定義數(shù)據(jù)表名”,“組態(tài)中的變量綁定表”);//創(chuàng)建數(shù)據(jù)庫中的表格;
#ADOModule1.OpenRecordSet(“select * from 數(shù)據(jù)庫中的數(shù)據(jù)表名”);//打開數(shù)據(jù)表中的數(shù)據(jù)集;
流程2 數(shù)據(jù)上傳程序
#ADOModule1.AddNew();//向數(shù)據(jù)庫中添加新數(shù)據(jù);
#ADOModule1.GetData(“組態(tài)中的變量綁定表”);//從綁定數(shù)據(jù)表中獲得新數(shù)據(jù)
#ADOModule1.Update()//更新關系數(shù)據(jù)庫數(shù)據(jù)表中的數(shù)據(jù)
應用層處理完采集到的數(shù)據(jù)后下達0/1 水泵啟停指令,上傳到外部數(shù)據(jù)庫中與組態(tài)軟件變量綁定表的最新一行中,再由組態(tài)軟件讀取決策命令,從而控制現(xiàn)場。
流程3 數(shù)據(jù)讀取程序
#ADOModule2.MoveLast();
//將游標移向數(shù)據(jù)表中最后一行,即讀取最新一條記錄;
Pump1.PV=#ADOModule2.GetValueByIndexInt(0)
//按照字段索引讀取數(shù)據(jù),賦值給組態(tài)的變量,如水泵1 的指令在索引0
應用層選擇合適的外部數(shù)據(jù)庫如SQL Server 和Ac?cess 進行數(shù)據(jù)存儲。SQL Server 用于存儲設備運行數(shù)據(jù),Access 用于存儲本地數(shù)量較少的數(shù)據(jù)如設備的物理信息等。應用層通過修改SQL Server 數(shù)據(jù)庫中運行設備表的控制啟停指令實現(xiàn)對水泵的控制。
在排水泵站中將基于SCADA 系統(tǒng)的數(shù)據(jù)采集、基于數(shù)據(jù)庫的上位機控制以及第三方程序結合大數(shù)據(jù)整合分析3 種關鍵技術相結合,實現(xiàn)了對水泵自動化控制系統(tǒng)的智能化改進。設計半仿真實例進行實驗,并基于數(shù)據(jù)庫完成三層控制層的信息交互。隨著自動化控制、網(wǎng)絡和信息技術的不斷發(fā)展,未來的智能化泵站將基于大數(shù)據(jù)與物聯(lián)網(wǎng)技術,并向“使用更方便、響應更快捷、系統(tǒng)穩(wěn)定性更強”的方向發(fā)展。通過智能化泵站信息系統(tǒng)建設、運行、管理及優(yōu)化經(jīng)驗的不斷積累,同時繼續(xù)在實踐中整合優(yōu)勢資源、順應時代潮流、吸納先進理念、嘗試新設備與新技術,從而將“無人運行的智能化泵站”向“智慧泵站”的方向逐步推進,使城市的排水泵站運行更加安全、高效和穩(wěn)定。