地下圍護結構鋼支撐裝置是用于城市地下空間開發(fā)施工過程中,對大型深基坑進行支護的重要部件。以保障基坑本身及周圍道路、建筑物、地下管線設施等鄰近建(構)筑物的安全。
以往鋼支撐施工并無自動監(jiān)測裝置,依靠傳統(tǒng)人工統(tǒng)計。數據采集不及時、無連續(xù)性、讀取精度不高、可追溯性不強。出現質量問題或事故后,為了逃避責任,甚至可能會出現數據篡改造假等違法行為。為了實時、真實記錄鋼支撐力矩變化,利用 SCADA平臺設計一套數據采集監(jiān)視系統(tǒng),實時記錄力矩數據、報表生成等功能,做到實時記錄、數據可溯源、連續(xù)性、可分析等功能,以數據庫形式長期保存,確保數據保存安全性和真實性。這對保障地下空間建設的安全,具有重要意義。
考慮到 SCADA 與 PLC 的數據通信接口,在 SCADA 與 PLC 之間加入了專用 OPC Server,作為系統(tǒng)的數據采集驅動,以達到完美的兼容性。
硬件系統(tǒng)包括有數據源設備(PLC 等)、數據通信設備(HUB)以及數據采集工控機等。軟件包括 Windows平臺、OPC Server、Gateway、SCADA、Microsoft Excel等。系統(tǒng)搭建如圖1 所示。
圖1 數據采集與監(jiān)控硬件/軟件搭建圖
OPCServer 從 PLC 讀寫數據并存儲成一個名為“Sjcjcd.mdb”的數據庫文件。打開 OPC Server 軟件,建立一個名為“Dev01”的驅動,并設置好通信參數,如圖2 所示。通信參數為 :“Q03UDE(CPU型號)”“CPUmodule(通信模式)”“1 9 2.1 6 8.1.1(I P)”“Etherne t(PC/IF)”“TCP(Protocol)”“60000ms(Time-out)”。
圖2 MX OPC Server建立驅動
Gateway 是將(OPC/DDE/SuiteLink/MX)4 種協(xié)議進行相互變換的通用協(xié)議轉換器軟件,是 SCADA 的 OPC Server 。通過 Gateway 設定添加 OPC Server 作為 OPC 服務器,然后添加“Add OPC Group Object”(添加組對象),并把所有需要讀/寫的地址標簽添加進去。
新建一個名稱為“Mreport.mdb”的數據庫文件,是調閱歷史數據報表的數據庫文件。在 SQL 訪問管理器中,綁定需要報表名稱以及設定添加好在各自的報表中需要顯示的地址標簽,通過編輯后臺命令來調用 Excel 就能夠調閱指定時間段歷史報表了。
本次設計的數據采集與監(jiān)控系統(tǒng)包含幾大功能:實時數據采集監(jiān)控、實時曲線、歷史曲線、報表生成、報警信息、歷史報警查詢等。本裝置 SCADA 系統(tǒng)共建立畫面 228+40個。系統(tǒng)按樹狀結構分布各畫面。在系統(tǒng)運行平臺上,任何狀態(tài)下都能一鍵直接返回到“登錄首頁”,便于畫面之間的切換。SCADA 畫面結構配置如圖3 所示。各個分站監(jiān)視畫面之間的切換功能依靠在其對應的標簽畫面上的切換按鈕來實現,簡單快捷。按功能主要分為油壓監(jiān)視畫面、力矩監(jiān)視畫面、歷史曲線畫面、實時報警畫面、油缸設定畫面、歷史報表畫面等。
圖3 SCADA 畫面結構配置
其中,歷史報表畫面中,需要建立第三方插件鏈接,運行預制作完成的報表插件。歷史報表畫面按控制柜編號為單位,可以調閱歷史時間段的報表,一個按鈕代表一臺子站控制柜, 按下對應子站的調用鏈接按鈕后,彈出指定的報表模板,從時間控件中選取指定的日期,點擊“生成報表”按鈕,報表模板中會插入指定日期中每小時一組的數據,供查閱。同時,把調用過的報表保存為指定的、以控制柜編號、日期、時間為名稱的Excel文檔。
SCADA 的數據采集與監(jiān)控中,OPC server 是重要的一個環(huán)節(jié)。OPC server 設定通信鏈接后需要建立一個新的設備“Dev01”。在設備下新建4個地址標簽組別。名稱分別為“IO”(離散地址)、“actualvalue”(實時值模擬量地址)、“alarm”(報警地址)以及“setvalue”(設定值模擬量地址)。地址標簽分組的目的是為了歸類清晰、查閱方便。在這些地址標簽組的高級選項中“Enable Group”(組激活)復選框全部勾選,然后在各個組內新建地址標簽,并與 PLC 地址、參數一一對應。在“Conversion Definitions”(轉換定義)中新建若干數據轉換關系式,作為數據變換公式,提供給模擬量地址標簽數據變換使用。OPC 建立地址標簽組如圖4 所示。完成后進行模擬測試。
圖4 MX OPC Server 建立地址組
地址表的建立,如圖5 所示。左側列表中分 4 個組別,每個組別下面添加各自類別的地址標簽(右側框內)。在這些地址標簽中,定義好“IO Addres”(IO地址)、“Access”(讀寫功能)、“Data”(數據形式)、“Poll.”(采集頻率),并在高級選項中,“Enable Tag”(地址激活)復選框全部勾選;如果模擬量數據需要轉換,則勾選“Use Conversion”選項,并在“Conversion”下拉列表中,選中合適的、自定義數據轉換關系式。
圖5 OPC server 地址表的建立
地址表設置完成后,保存為“.mdb”格式的數據庫文件。通信過程中,所需的標簽地址的狀態(tài)值就會自動存儲到“Sjcjcd.mdb”的數據庫文件中。
與 HMI 相比,SCADA 組態(tài)平臺更具開放性。它沒有固定的設計格式。整個 SCADA 畫面組態(tài)中,所有的自定義指令都是通過后臺命令語言等來實現的。
登錄畫面啟動時,下方的功能按鈕會延時 50 s 出現,這是為了使得程序運行開始時,保證后臺命令語言等一些程序能夠正常運行。具體實現的方法是建立一個變量 Fluid1。在畫面后臺命令語言中運行如下命令(每 1 000 ms)。
Fluid1 = Fluid1+ 1;
IF Fluid1 >= 50 THEN
Fluid1 = Fluid1+ 0;
ELSE Fluid1 = Fluid1+ 1;
ENDIF;
上述命令使得變量“Fluid1”執(zhí)行加 1 指令,當“Fluid1”≥50 時,“Fluid1”保持 50 這個值不變。此時畫面顯示原來隱含的畫面功能按鈕,操作人員才能點擊這些按鈕,進入人機界面。相當于系統(tǒng)啟動 50 s 后,才能正常操作,保證后臺命令指令、插件等功能正常投入運行。
“退出”系統(tǒng)按鈕的鏈接是運用按鍵命令實現的。如:點擊“EXIT”按鈕時,執(zhí)行如下命令,關閉畫面應用程序。“WWControl()”指令是允許你從SCADA 恢復、最小化、最大化或者關閉一個應用程序?!癐nfoAppTitle("view")”顯示此腳本查詢“SCADA運行畫面”應用程序;如果已在運行,則“"Close"”關閉它。
WWControl(InfoAppTitle("view"), "Close");
畫面切換按鈕的實現也是通過按鍵命令實現的。如:點擊“油壓監(jiān)視”按鈕,鼠標鍵放開時,執(zhí)行下列命令,彈出對應畫面(其中"數據采集主畫面 1"、"監(jiān)視菜單欄"、"登陸畫面"為畫面名稱)。
Show"數據采集主畫面1";
Show"監(jiān)視菜單欄";
Hide"登陸畫面";
報表調用鏈接按鈕通過如下命令實現:點擊“01-01泵站數據調閱”按鈕,鼠標鍵放開時,執(zhí)行下列命令,調用出對應的第三方Excel文檔模板。其中,“StartApp”為調用Windows 應用程序命令。這條命令解釋為:調用運行 D 盤中歷史數據文件夾(Hisdata)下報表模板文件夾(reptemp)中的報表模板文件(reptemp0101.xls)。
StartApp"d:Hisdata eptemp eptemp0101.xls";
在運行期間,每 1 0 0 0 m s執(zhí)行下列指令。即如果“Jacktype010101”等于1(油缸的形式等于 1,“Jacktype010101”即01#子站1#泵組01#油缸形式,內存整型標記名。),也就是油缸選為 300 t,那么“Jackcoeff010101=96.12,”(Jackcoeff010101為內存實型的一個標記名,油缸油壓/力矩轉換運算系數);如果 010101 號油缸的形式等于 2,也就是油缸選為 400 t,那么“Jackcoeff010101=138.42”。如此循環(huán),每 1 000 ms 運行一次。這條指令是為了使得設備裝置對應可選兩種不同規(guī)格的油缸(擴展設備的應用面),換算出不同的力矩(油缸缸徑不同,相同油壓下換算出的力矩不同)。
IF Jacktype010101==1 THEN Jackcoeff010101=96.12;
ENDIF;
IF Jacktype010101==2 THEN Jackcoeff010101=138.42;
ENDIF;
在數據改變指令中,“$Hour”小時數改變時(系統(tǒng)內存標記名,時間小時),執(zhí)行下列指令?!癝QLInsert”指令即為根據提供的綁定表中的標記名值,將一條新記錄插入參考表中。其中,“ConnectionId0101”是由用戶創(chuàng)建的內存整型標記名,用于存儲由“SQLConnect”函數賦給每個數據庫的編號 (ID)。“"data0101"”為需要訪問的數據庫表格名稱?!?report0101"”為要使用的SCADA標記名以及與之關聯的數據庫列。本條命令表示每小時向數據庫寫一次數據。
status0101=SQLInsert(ConnectionId0101,"data0101","report0101");
在數據改變指令中,“$Second”秒數改變時(系統(tǒng)內存標記名,時間秒),執(zhí)行下列指令。其中,“JPD010101”為油缸設定值與實際值的差值(報表使用),“JTorq010101”為油缸實時力矩值(報表使用)。
JPD010101 = actJack010101 - setJack010101;
JTorq010101 = actJack010101 * Jackcoeff010101;
在 SCADA中使用 Excel 來做報表首先需要把數據導出到數據庫,然后使用 Excel 中的宏命令來讀取數據庫中的數據。
打開“Mreport.mdb”文件,“使用設計器創(chuàng)建表”,分別配置字段(字段名和SCADA綁定列表中的 “列名”對應,區(qū)分大小寫),配置字段的數據類型(數字、文本等)。建立日報表的目的是:能夠按日刪除以往數據,使得數據查詢時能夠快速便捷,優(yōu)化列表,節(jié)約存儲空間,減少查詢時間。
在 SCADA 的 SQL 訪問管理器中綁定上述列表。列表中的標記名.域名、列名。其中:“標記名.域名”是 SCADA 中的名稱,“列名”是數據庫列表中的名稱。
本裝置報表擬定采用 Excel,通過宏命令代碼編輯,編制成適合工藝條件的報表文件。
在d:Hisdata中新建一文件夾“reptemp(臨時報表)”,在 d:Hisdata eptemp下新建 Excel 文檔,命名為“reptemp0101”---“reptemp1004”,共 40 個文檔,對應于各臺泵站的數據。根據工程施工報表要求的標準格式編輯報表頁面。
在文件中進入開發(fā)狀態(tài),創(chuàng)建一個查詢窗口“userform1”,在窗口頂部“caption字幕”輸入文字“查詢窗 01-01 泵站”,在窗口底部“caption字幕”輸入文字“企業(yè)名稱”,并調整好文字字體、大小、顏色等。文字等編輯在左下角“Dtpicker”屬性窗口內進行。在查詢窗口插入日歷控件以及一個“生成報表”的按鈕,按鈕代碼略過,如圖6 所示。
圖6 SCADA 報表查詢窗設計
鋼支撐自動控制裝置的 SCADA 系統(tǒng)編程完成后,進行了系統(tǒng)調試。修正一些程序,并進行了多次修改升級。
系統(tǒng)安裝調試完成后,分別在上海及周邊省市多個工程進行了實際的使用,使用結果總體達到設計要求。在本裝置自動控制系統(tǒng)的運行平臺下,各項報警信息、歷史曲線、歷史報表均能正常調閱。這樣對工程后續(xù)的經驗成果總結、編制竣工資料、專家會診等都有非常積極的意義,受到了建設單位的一致好評。