張振亞,施 璇,駱麗春,王 萍
(1.安徽建筑大學電子與信息工程學院,安徽合肥 230601;2.安徽建筑大學智能建筑與建筑節能安徽省重點實驗室,安徽合肥 230022)
城市排水系統是市政工程建設中的重要基礎設施。內澇災害是城市化帶來的城市型洪水災害,對經濟社會發展造成極大的危害[1]。但城市排水系統雨水排水調度的自動化水平不高,一般排水泵站調度基本還是依賴于人工,通過調度人員分析運行參數,依靠電話下達調度命令[2-3]。在城市排水調度中需要能及時、準確地掌握城市排水系統運行狀態等相關信息,從而科學、有效地對排水系統中的現場設備進行調度。
現有的面向排水泵站系統的數據采集與監控主要基于SCADA 系統[4],而SCADA 系統搭建通常基于組態軟件。目前SCADA 系統可監控設備的現場狀態并進行控制,實現簡單的泵調度策略。但其對大數據的決策能力有限,通常需要設計第三方智慧決策程序對設備進行智能化控制[5],第三方應用程序通常需要通過組態軟件與數據庫實現對下位機末端設備的控制。針對自動化控制系統中存在的問題,通過修改排水泵站PLC 程序,實現設備的自動化運行,并在上位機控制系統中應用ODBC 和ADO 方法實現組態軟件與數據庫的交互[6]。最后由第三方應用程序作出決策,通過數據庫下達控制指令。本文對底層PLC對水泵的控制、SCADA 系統對水泵的控制、基于第三方決策的控制共三層控制機制進行設計與實現,以進一步提升排水系統自動化控制的信息化與智能化水平。
在工業領域,控制系統主要通過工業過程控制部件對實時數據進行采集、監測,在計算機的調配下實現自動化系統的管理與監控[7]。現階段工業控制系統的控制對象包括機械裝置、交通工具、實驗裝置、儀器儀表,以及家庭生活設施、家用電器等。國家核設施、鋼鐵、有色金屬、化工、電力、天然氣、水利樞紐、鐵路、民航、城市供水供氣供熱等都是工業控制系統信息安全管理的重點領域[8]。典型的基于PLC 的工控系統分為站控層、現場控制層和過程層。其中,站控層部署在上位機,現場控制層主要以下位機PLC為控制單元,過程層主要包括現場設備如傳感器、開關閥門等。上位機與PLC 下位機之間通過工業以太網進行通信,PLC 下位機與現場設備通過現場總線進行通信[9]。目前,大多數組態軟件提供用戶可配置的數據采集程序。基于COM 技術的OPC 標準自動化接口實現了OPC 服務器與OPC 應用程序之間的數據交換[10],一般通過VB.NET 中的ADO.NET 組件連接數據庫進行數據訪問[11-12]。但OPC服務器配置成本過高,無法得到普遍應用。本文在半實物仿真系統中將利用組態軟件中的相關ADO 組件進行數據庫連接。
目前針對排水系統智能性差、自動化水平低等問題,國內外大多采用分布式控制理論對排水系統架構進行重新設計[13]。一般將PLC 作為系統主控制器,結合物聯網技術,設計一種多模式運行的管理方式。在控制方面,將各功能模塊分成不同單元,最后由控制網絡將各單元連成整體,負責各單元的數據交互。如文獻[14]設計一套以PLC控制單元為核心的煤礦井下排水集中式控制系統,系統根據水倉水位實現自動啟停水泵,PLC 控制單元負責與地面監控中心進行通信,同時也負責水泵控制與調度,系統的可靠性依賴于PLC 控制單元;文獻[15]結合分布式控制理論,設計一套集中式控制系統,系統由控制主站、控制分站和各種傳感器組成,控制主站負責與地面控制單元通信,同時也負責水泵控制與調度;文獻[16]提出主排水監測監控系統設計方案,系統通過水泵房控制單元實現排水系統的自動化運行;文獻[17]采用分層結構設計,結合工業以太網技術,為保德煤礦設計了一套獨立的自動化排水系統,系統由地面控制中心、工業以太網傳輸網和水泵控制系統3 部分組成,排水系統的水倉分為小水倉和中轉水倉,小水倉可自動運行,每個中轉水倉控制系統可以直接接收地面控制中心的指令;文獻[18]設計一套獨立式的煤礦井下排水系統,每臺水泵都配備了PLC 控制單元,地面監控中心可以直接控制每臺水泵,系統運行指令來自地面,如果通信出現故障,則系統無法運行;文獻[19]在搭建排水系統時使用一種由3+2 控制結構構成的控制網絡[20],即三層設備兩層網絡。
本文在已有研究的基礎上,對排水系統進行分層設計,并對每一層進行半仿真實現。
為實現排水泵站控制系統中的無人值守功能以及泵站的自動化控制,進一步實現靈活且可變通的控制方式,本文設計系統架構如圖1 所示。主要控制模型體系分為3層:Ⅰ層為現場控制層,主要包括儀表和水泵等底層設備,基于PLC 對現場儀表和泵組進行控制;Ⅱ層為SCADA 層,在中控室內搭建SCADA 監控系統,完成所有泵站的信息采集與聯動,實現多泵站的聯合調度;Ⅲ層為應用層,在后期決策時,應用層將根據更多信息對各泵站的調度進行更高級的決策。

Fig.1 System architecture圖1 系統架構
圖1 中,Ⅰ層控制層通過PLC 內預先編譯的梯形圖程序控制設備啟停,并采集流量信號和水位信號、水泵狀態等設備數據。控制層可通過工業以太網、RS485 總線等方式與SCADA 層連接。
Ⅱ層SCADA 層一般設有中央控制室,實現對各泵站現場運行設備狀態的顯示與控制,并采集狀態數據,通過操作界面實現對現場的遠程監控,完成簡單的人工調度,最后將各泵站數據上傳至應用層。
Ⅲ層第三方應用層通過外部數據庫接收SCADA 層上傳的設備數據,結合外部數據庫中存儲的其它數據如天氣數據、歷史決策數據等,對數據進行分析處理,最后作出智能決策,之后再通過SCADA 層將決策下達至下位機PLC,實現對設備的控制。
本文實現了一個面向排水系統水泵調度的控制系統,以泵的工作時間和負載平衡為約束,模擬對排水系統中泵的調度。半實物仿真排水部分由1 個蓄水池、2 個12V 水泵和1 個24V 水泵以及1 個液位傳感器組成。
此外,為實現系統水循環利用,設置了由輔助排水系統運行的回水系統,分別由1 個蓄水池、1 個12V 和1 個24V 水泵以及1 個液位傳感器組成,未來還可模擬城市地表降雨情況。
系統分為現場控制層、SCADA 層、應用層三層。其中現場控制層的PLC 采用西門子S7-200,CPU224XP。PLC內部數據存儲器如表1 所示。其中,數字量輸入寄存器I用于PLC 的輸入,該寄存器內容系統只能讀取,不能修改。本仿真系統不使用輸入寄存器,利用PLC 內部的位存儲器M 寄存器進行命令修改,輸出寄存器Q 輸出高電平用于控制設備。

Table 1 S7-200 CPU224XP internal data memory表1 S7-200 CPU224XP 內部數據存儲器
位存儲器M 為梯形圖中啟停設備的開關,輸出寄存器Q 與繼電器相連,輸出高電平對水泵進行控制。設定Q0.0-0.4 作為5 個水泵的輸出,M0.0-M4.0 作為中間繼電器控制5 個水泵的輸出,其對應關系如表2 所示。
通過連接PLC 內部的寄存器與繼電器,編譯相關梯形圖實現對設備的并行控制。梯形圖如圖2 所示,當接通PLC 電源時,自動實現對液位傳感器的控制,并采集相關液位數據。SBR0 模塊與SBR1 模塊分別為排水系統和輔助回水系統的液位采集模塊,可實現對各個系統的液位采集。利用梯形圖中與液位采集模塊并行的程序實現對各水泵的控制,當位寄存器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 操作系統下應用的組態軟件進行系統搭建,實現對現場的部署,設計組態監控界面如圖3 所示。由于本實例系統設置在本地,組態軟件將通過PPI-USB 電纜連接PLC,并設置相關組態變量連接其寄存器M0.0~M4.0 實現對現場的直接控制,映射關系如表3所示。通過組態軟件在界面上設置開關,并綁定對應水泵的變量,從而實現用戶通過組態界面對水泵的直接控制。
SCADA 層與應用層可基于以太網連接外部數據庫進行數據交互。外部數據庫變量綁定組態變量,使應用層通過寫入數據庫變量實現對組態變量的控制。在組態軟件中以ADO 方式連接外部數據庫,首先在Windows 上配置ODBC 關系數據源,根據所適用的外部數據庫屬性進行配置,完成ODBC 數據源與外部數據庫的通訊;然后在組態軟件(以力控組態軟件為例)中選擇ADO 組件,連接同一ODBC 數據源,通過數據表綁定功能將數據表變量與組態變量綁定起來。

Fig.3 Water pump control configuration interface圖3 水泵控制組態界面

Table 3 Drainage system configuration variables connected to PLC corresponding registers表3 排水系統組態變量與PLC 相應寄存器連接

Table 4 Backwater system configuration variable connected to PLC corresponding register表4 回水系統組態變量與PLC 相應寄存器連接
通過ADO Module 模塊編寫ADO 函數,進行組態軟件與數據庫之間的數據交互操作。將數據上傳和數據讀取分為兩個ADO 模塊,數據上傳部分為ADOModule1,數據讀取部分為ADOModule2。首先需要連接外部數據庫,然后創建表格,將采集到的數據上傳至數據庫。
流程1 數據庫連接程序
#ADOModule1.OpenDataBase();//打開關系數據庫;
#ADOModule1.CreateTableEx(“數據庫中的自定義數據表名”,“組態中的變量綁定表”);//創建數據庫中的表格;
#ADOModule1.OpenRecordSet(“select * from 數據庫中的數據表名”);//打開數據表中的數據集;
流程2 數據上傳程序
#ADOModule1.AddNew();//向數據庫中添加新數據;
#ADOModule1.GetData(“組態中的變量綁定表”);//從綁定數據表中獲得新數據
#ADOModule1.Update()//更新關系數據庫數據表中的數據
應用層處理完采集到的數據后下達0/1 水泵啟停指令,上傳到外部數據庫中與組態軟件變量綁定表的最新一行中,再由組態軟件讀取決策命令,從而控制現場。
流程3 數據讀取程序
#ADOModule2.MoveLast();
//將游標移向數據表中最后一行,即讀取最新一條記錄;
Pump1.PV=#ADOModule2.GetValueByIndexInt(0)
//按照字段索引讀取數據,賦值給組態的變量,如水泵1 的指令在索引0
應用層選擇合適的外部數據庫如SQL Server 和Ac?cess 進行數據存儲。SQL Server 用于存儲設備運行數據,Access 用于存儲本地數量較少的數據如設備的物理信息等。應用層通過修改SQL Server 數據庫中運行設備表的控制啟停指令實現對水泵的控制。
在排水泵站中將基于SCADA 系統的數據采集、基于數據庫的上位機控制以及第三方程序結合大數據整合分析3 種關鍵技術相結合,實現了對水泵自動化控制系統的智能化改進。設計半仿真實例進行實驗,并基于數據庫完成三層控制層的信息交互。隨著自動化控制、網絡和信息技術的不斷發展,未來的智能化泵站將基于大數據與物聯網技術,并向“使用更方便、響應更快捷、系統穩定性更強”的方向發展。通過智能化泵站信息系統建設、運行、管理及優化經驗的不斷積累,同時繼續在實踐中整合優勢資源、順應時代潮流、吸納先進理念、嘗試新設備與新技術,從而將“無人運行的智能化泵站”向“智慧泵站”的方向逐步推進,使城市的排水泵站運行更加安全、高效和穩定。