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