徐受天, 游宇嵩, 葉 蕾, 趙嚴(yán)振, 徐劍安
(中鐵工程裝備集團(tuán)有限公司, 河南 鄭州 450016)
隨著隧道施工機(jī)械自動化程度不斷發(fā)展,采用全斷面隧道掘進(jìn)機(jī)施工成為當(dāng)前隧道施工的主要工法。本文中隧道掘進(jìn)設(shè)備主要指全斷面隧道掘進(jìn)機(jī),包括盾構(gòu)(用于城市軟土地層掘進(jìn))和TBM(用于山嶺隧道硬巖掘進(jìn))。根據(jù)工作原理不同,盾構(gòu)分為土壓平衡盾構(gòu)和泥水平衡盾構(gòu),TBM分為敞開式、雙護(hù)盾式和單護(hù)盾式[1-3]。全斷面隧道掘進(jìn)機(jī)掘進(jìn)時工作環(huán)境惡劣,高頻振動、電磁干擾等現(xiàn)象嚴(yán)重[4],采集設(shè)備一般集中部署,位于掘進(jìn)設(shè)備的主控室內(nèi),通過網(wǎng)絡(luò)連接到設(shè)備各處感知端。傳統(tǒng)盾構(gòu)/TBM的相關(guān)監(jiān)控系統(tǒng)主要限于對PLC數(shù)據(jù)的采集。隨著隧道施工機(jī)械化、數(shù)字化、Wi-Fi、5G及大數(shù)據(jù)技術(shù)的發(fā)展,對數(shù)據(jù)的獲取提出了更高的要求[5]。除傳統(tǒng)盾構(gòu)/TBM外,隧道施工專用設(shè)備、礦用機(jī)械也越來越多地投入使用。不同種類的控制器數(shù)據(jù)、高頻率振動數(shù)據(jù)、工業(yè)相機(jī)照片、三維激光掃描點(diǎn)云圖等通過數(shù)據(jù)挖掘后,在指導(dǎo)施工、改進(jìn)裝備設(shè)計(jì)上發(fā)揮的作用越來越大。當(dāng)前智能傳感、物聯(lián)網(wǎng)、大數(shù)據(jù)、無線通信、工業(yè)互聯(lián)網(wǎng)等技術(shù)發(fā)展迅速,對于盾構(gòu)/TBM智能化起到了推動作用[6]。同時,國內(nèi)外各大廠家均在產(chǎn)品智能化方面開展了大量研究,隧道施工數(shù)據(jù)的種類與數(shù)量與日俱增,無疑對海量多源異構(gòu)數(shù)據(jù)的采集、存儲也提出了更高的要求。
張靜等[7]采用地上地下部署工控機(jī),利用光纖網(wǎng)絡(luò)傳輸?shù)姆绞?,采集PLC的數(shù)據(jù)到Web服務(wù)器,進(jìn)而實(shí)現(xiàn)可視化;但這種方式僅實(shí)現(xiàn)了接入PLC的數(shù)據(jù)獲取。陳剛等[8]采用基于云平臺的盾構(gòu)數(shù)據(jù)采集系統(tǒng),通過OPC協(xié)議循環(huán)讀取PLC地址,根據(jù)用戶設(shè)置的配置文件,將PLC記錄信息按照類型逐條區(qū)分處理,然后調(diào)用Web API接口,將數(shù)據(jù)同步發(fā)送到云服務(wù)器的數(shù)據(jù)庫中;這種方式不用進(jìn)行終端部署,但仍僅采集接入PLC的數(shù)據(jù)。周奇才等[9]針對盾構(gòu)施工地層損失監(jiān)測,設(shè)計(jì)了一種基于Modbus協(xié)議和RS485總線的數(shù)據(jù)采集系統(tǒng);但該種方式采集數(shù)據(jù)較為單一,只針對RS485接口傳感器進(jìn)行采集。于祥濤[10]以昆明市軌道交通5號線施工為項(xiàng)目依托,利用亞控科技的采集盒子進(jìn)行數(shù)據(jù)采集,盒子自帶RS232、RS485、以太網(wǎng)口3種接口,采集的數(shù)據(jù)主要是PLC數(shù)據(jù)、電表、水表、電瓶車狀態(tài)等;這種方式利用現(xiàn)有產(chǎn)品進(jìn)行采集,優(yōu)點(diǎn)是可以快速實(shí)現(xiàn),缺點(diǎn)是不便于拓展,對于其他接口的傳感器無法采集。
針對國內(nèi)外市面上存在的大量數(shù)據(jù)采集終端或數(shù)據(jù)網(wǎng)關(guān),樹根互聯(lián)、上海自動化儀表、Woodhead等公司產(chǎn)品能兼容國內(nèi)外主流PLC和控制器,但是普遍存在以下問題:1)只能采集主流的、標(biāo)準(zhǔn)的物聯(lián)設(shè)備,對隧道施工中類似工業(yè)相機(jī)、振動傳感器、點(diǎn)云掃描、激光/雷達(dá)探測等設(shè)備產(chǎn)生的數(shù)據(jù)無法采集,可擴(kuò)展性較差;2)鼓勵數(shù)據(jù)存儲于開發(fā)廠商的公有云,數(shù)據(jù)的靈活讀取和二次利用較困難,也不利于數(shù)據(jù)安全,如果私有化則需要高額的定制費(fèi)用且后期運(yùn)維成本極高。因此,有必要開發(fā)可以同時采集隧道施工中產(chǎn)生的大量多源異構(gòu)數(shù)據(jù)的專用數(shù)據(jù)采集系統(tǒng),本文以此展開研究。
在進(jìn)行隧道施工專用多源異構(gòu)數(shù)據(jù)采集系統(tǒng)研究時,需要提前將系統(tǒng)所應(yīng)達(dá)到的指標(biāo)明確化、具體化。系統(tǒng)所應(yīng)達(dá)到的目標(biāo)如下。
1.1.1 多數(shù)據(jù)源支持
在一個物理終端上支持同時采集多種類型數(shù)據(jù)源的數(shù)據(jù),彼此獨(dú)立,互不干擾;同種類型支持多通道數(shù)據(jù)傳輸,如支持同時采集多個同類型的PLC數(shù)據(jù)。
1.1.2 多協(xié)議解析
支持多種常用協(xié)議的解析,如西門子PLC的S7協(xié)議、OPC UA、Modbus TCP等。支持多種硬件設(shè)備數(shù)據(jù)的采集,如西門子S7-200/300/400/1200/1500系列PLC、易福門控制器、TBM刀盤磨損檢測裝置、線陣/面陣工業(yè)相機(jī)、高頻振動傳感器等。
1.1.3 實(shí)時和歷史數(shù)據(jù)傳輸
按實(shí)時數(shù)據(jù)和歷史數(shù)據(jù)2種途徑同時傳輸數(shù)據(jù)。實(shí)時數(shù)據(jù)每次僅傳輸當(dāng)前時刻最新的數(shù)據(jù)。歷史數(shù)據(jù)傳輸頻率相對較小,每次打包傳輸多條數(shù)據(jù)。遇到網(wǎng)絡(luò)、故障等原因,則按時間順序續(xù)傳,確保數(shù)據(jù)不丟失。
1.1.4 數(shù)據(jù)預(yù)處理和邊緣計(jì)算
支持在終端上進(jìn)行簡單預(yù)處理和邊緣計(jì)算:將明顯異常的數(shù)據(jù)進(jìn)行過濾或處理,將結(jié)構(gòu)化/半結(jié)構(gòu)化數(shù)據(jù)或占用空間較大的數(shù)據(jù)轉(zhuǎn)換為簡單、小巧的結(jié)構(gòu)化數(shù)據(jù),具體處理或計(jì)算方法可以隨時進(jìn)行遠(yuǎn)程調(diào)整等。
1.1.5 現(xiàn)場數(shù)據(jù)接口
為終端的上位機(jī)、第三方信息化智能化系統(tǒng)提供統(tǒng)一的數(shù)據(jù)接口。提供數(shù)據(jù)接口的目的是:1)防止第三方直接讀取現(xiàn)場設(shè)備,破壞設(shè)備數(shù)據(jù)的保密性,及造成設(shè)備數(shù)據(jù)輸出負(fù)載增大;2)減少上位機(jī)和第三方軟件的復(fù)雜數(shù)據(jù)處理過程。
1.1.6 數(shù)據(jù)源動態(tài)擴(kuò)展
在不影響其他程序的情況下,支持快速定制化開發(fā)擴(kuò)展新組件,以支持新類型數(shù)據(jù)源的接入。當(dāng)新類型的數(shù)據(jù)源接入后,無需刷機(jī)、固件升級和新增硬件,而是通過遠(yuǎn)程管理的形式進(jìn)行功能擴(kuò)展。
1.1.7 本地Web管理及遠(yuǎn)程監(jiān)控接口
終端不開發(fā)基于平臺的圖像界面,采用Web方式進(jìn)行可視化圖形管理頁面開發(fā)。維護(hù)人員使用另外一臺計(jì)算機(jī)通過Web瀏覽器打開終端管理網(wǎng)頁,進(jìn)行現(xiàn)場終端管理。系統(tǒng)提供對終端進(jìn)行遠(yuǎn)程監(jiān)控的接口,主要包括:查看終端操作系統(tǒng)狀態(tài)(CPU、內(nèi)存、外存);查看和結(jié)束進(jìn)程;查看和設(shè)置網(wǎng)絡(luò)連接;瀏覽操作系統(tǒng)文件系統(tǒng);上傳、下載文件;查看和配置數(shù)據(jù)源參數(shù);查看運(yùn)行日志文件等。
系統(tǒng)總體架構(gòu)設(shè)計(jì)決定了后期維護(hù)的便捷性、可拓展性以及施工單位、業(yè)主等用戶的使用體驗(yàn)[11]。本文所述多源異構(gòu)數(shù)據(jù)采集系統(tǒng)采用一主多從的架構(gòu),每個數(shù)據(jù)源作為獨(dú)立從設(shè)備,與其他設(shè)備互不干擾,主從設(shè)備之間通過Socket套接字進(jìn)行通信,基于TCP/IP協(xié)議可實(shí)現(xiàn)數(shù)據(jù)源的快速接入。管理者可以通過遠(yuǎn)程或者在本地以插件形式添加、刪除、修改從設(shè)備,在不影響其他鏈路的前提下,實(shí)現(xiàn)數(shù)據(jù)源的靈活配置、簡單部署。采集終端在采集到數(shù)據(jù)之后,通過MQTT等協(xié)議進(jìn)行數(shù)據(jù)的上傳,數(shù)據(jù)以結(jié)構(gòu)化存儲在本部的大數(shù)據(jù)中心。多源異構(gòu)數(shù)據(jù)采集系統(tǒng)總體架構(gòu)設(shè)計(jì)如圖1所示,當(dāng)前所接入的數(shù)據(jù)源為基于Snap7協(xié)議的PLC數(shù)據(jù)源、基于Modbus RTU協(xié)議的刀盤滾刀監(jiān)測數(shù)據(jù)源、基于Http協(xié)議的Python邊緣計(jì)算數(shù)據(jù)源、基于Socket套接字通信的振動監(jiān)測數(shù)據(jù)源、基于千兆網(wǎng)通信的線陣相機(jī)圖像采集數(shù)據(jù)源以及基于OpcUA、Modbus TCP協(xié)議的國產(chǎn)PLC數(shù)據(jù)源等。服務(wù)器位于數(shù)據(jù)中心,用于收集來自所有終端的數(shù)據(jù),并集中統(tǒng)一管理。終端安裝于各隧道施工現(xiàn)場。每個終端由1個主模塊和若干個數(shù)據(jù)源模塊組成。每個數(shù)據(jù)源模塊啟動1個獨(dú)立進(jìn)程,對應(yīng)1種類型的數(shù)據(jù)源采集。
圖1 多源異構(gòu)數(shù)據(jù)采集系統(tǒng)總體架構(gòu)設(shè)計(jì)
1.3.1 運(yùn)行環(huán)境及關(guān)鍵技術(shù)應(yīng)用
本文所述多源異構(gòu)數(shù)據(jù)采集系統(tǒng)中,服務(wù)器運(yùn)行環(huán)境為基于x86架構(gòu)的64位標(biāo)準(zhǔn)Linux-CentOS操作系統(tǒng)。采集終端可以實(shí)現(xiàn)跨平臺部署運(yùn)行,適用于基于ARM或x86的Linux操作系統(tǒng)、Windows操作系統(tǒng),同時支持32位和64位。本系統(tǒng)開發(fā)語言根據(jù)語言特性進(jìn)行選定,采用多種語言共同開發(fā)。其中,服務(wù)器、終端主模塊和數(shù)據(jù)源模塊的主體部分選用Go語言;Web前端部分選用JavaScript、HTML5語言;終端Web后端使用Go語言;服務(wù)器Web后端使用Java或Go語言;邊緣計(jì)算、部分?jǐn)?shù)據(jù)源的前置輸入視情況選用C/C++或Go語言。
1.3.2 終端交互設(shè)計(jì)
終端主模塊與數(shù)據(jù)源模塊的交互流程如圖2所示。TCP連接成功后,開始針對不同數(shù)據(jù)源配置相應(yīng)的硬件參數(shù),連接硬件成功后,配置相應(yīng)的映射表讀取數(shù)據(jù)。
圖2 終端主模塊與數(shù)據(jù)源模塊的交互流程
終端主模塊與服務(wù)器的交互流程如圖3所示。終端上電后,檢查數(shù)據(jù)源列表,查看哪些數(shù)據(jù)源在線,然后開始進(jìn)行各個數(shù)據(jù)源服務(wù),與各個數(shù)據(jù)源建立獨(dú)立連接和映射關(guān)系,進(jìn)而周期性發(fā)送采集到的設(shè)備數(shù)據(jù)。在發(fā)生連接錯誤時,發(fā)布廣播消息,通知服務(wù)器連接錯誤,不再發(fā)送數(shù)據(jù)。
圖3 終端主模塊與服務(wù)器的交互流程
針對歷史數(shù)據(jù)傳輸,終端每隔指定時間讀取多條數(shù)據(jù)進(jìn)行打包,將數(shù)據(jù)包通過網(wǎng)絡(luò)傳遞給服務(wù)器。在終端傳送前,提前與服務(wù)器約定好數(shù)據(jù)包大小、歷史數(shù)據(jù)時間段信息、數(shù)據(jù)量以及采樣頻率等。
1.3.3 終端通信設(shè)計(jì)
本系統(tǒng)根據(jù)各數(shù)據(jù)源與終端特性進(jìn)行相應(yīng)的通信設(shè)計(jì)。為了保證統(tǒng)一性,終端采用多接口設(shè)計(jì),多接口接入的數(shù)據(jù)統(tǒng)一進(jìn)行無縫協(xié)議轉(zhuǎn)換,最終輸出到終端主進(jìn)程數(shù)據(jù)均是按照TCP/IP協(xié)議進(jìn)行數(shù)據(jù)接收處理。通信設(shè)計(jì)依據(jù)如下:
1)為方便代碼維護(hù),服務(wù)器與終端主模塊之間、終端模塊與各數(shù)據(jù)源模塊之間采用統(tǒng)一的通信模塊。
2)采用TCP長連接方式和RPC形式,即一問一答。通信伙伴對每個請求都必須響應(yīng)且只響應(yīng)1次。
3)密鑰交換使用標(biāo)準(zhǔn)TLS,保證通信過程中數(shù)據(jù)不會被破譯和篡改[12]。無需再設(shè)計(jì)其他形式的加密算法。
4)終端主進(jìn)程與服務(wù)器之間、終端主模塊與數(shù)據(jù)源模塊均基于C/S架構(gòu)方案,相對于B/S架構(gòu),C/S架構(gòu)具有響應(yīng)速度快、與現(xiàn)場設(shè)備通信頻率高等特點(diǎn)[13]。
建立TCP連接后的所有通信過程,都按1個請求嚴(yán)格對應(yīng)1個響應(yīng)的方式展開。每個請求稱為1個“請求幀”,每個響應(yīng)稱為1個“響應(yīng)幀”,如圖4所示。
圖4 通信過程
當(dāng)1個TCP連接建立后,同時開啟2個隊(duì)列Channel,一個是Send Loop隊(duì)列,另一個是Receive Loop隊(duì)列。TCP是基于流的可靠連接,但仍需要考慮多線程及多協(xié)程時數(shù)據(jù)的正確性[11]。
服務(wù)器端的方案設(shè)計(jì)由高性能服務(wù)程序、數(shù)據(jù)傳輸與存儲2部分組成。
1.4.1 高性能服務(wù)程序
高性能服務(wù)程序要求能夠達(dá)到處理高并發(fā)、高數(shù)據(jù)吞吐量的網(wǎng)絡(luò)數(shù)據(jù)的能力。服務(wù)器的資源包括網(wǎng)絡(luò)帶寬、包吞吐量、CPU資源、內(nèi)存資源等[14-15]。
本系統(tǒng)采用Go語言,其語言特性對異步提供了良好的支持,用Goroutine(協(xié)程)+Channel的模式構(gòu)造服務(wù)程序。Goroutine是在線程之上封裝的協(xié)程,每個協(xié)程都有自己的堆棧,協(xié)程間使用Channel進(jìn)行相互通信。服務(wù)程序采用網(wǎng)絡(luò)連接池、線程池和內(nèi)存池,實(shí)現(xiàn)了多任務(wù)多線程的異步處理。
1.4.2 數(shù)據(jù)傳輸與存儲
數(shù)據(jù)傳輸與存儲是利用事先定義好的數(shù)據(jù)傳輸策略,在服務(wù)器接收到數(shù)據(jù)后進(jìn)行存儲。數(shù)據(jù)遠(yuǎn)程傳輸分為實(shí)時數(shù)據(jù)傳輸和歷史數(shù)據(jù)傳輸2部分。實(shí)時數(shù)據(jù)可盡可能保證數(shù)據(jù)的實(shí)時性,但不能保證數(shù)據(jù)不丟失;歷史數(shù)據(jù)可保證數(shù)據(jù)在時間上的完整性,但不能保證數(shù)據(jù)實(shí)時性。
實(shí)時數(shù)據(jù)是按照指定時間間隔從已緩存的內(nèi)存中獲取當(dāng)前最新數(shù)據(jù),直接推送到遠(yuǎn)程數(shù)據(jù)中心。歷史數(shù)據(jù)是從緩存數(shù)據(jù)庫中查詢指定數(shù)量的最老數(shù)據(jù),按照時間順序打包,然后發(fā)送至數(shù)據(jù)中心。當(dāng)數(shù)據(jù)發(fā)送成功后,便將該數(shù)據(jù)從緩存數(shù)據(jù)中刪除,如圖5所示。
圖5 數(shù)據(jù)遠(yuǎn)程傳輸示意圖
多源數(shù)據(jù)采集系統(tǒng)遠(yuǎn)程數(shù)據(jù)管理平臺采用B/S架構(gòu),以Java SpringBoot技術(shù)為基礎(chǔ),利用MyBatis、Vue、WebSocket等技術(shù)相結(jié)合進(jìn)行開發(fā),使用WebSocket標(biāo)準(zhǔn)協(xié)議在客戶端和服務(wù)端之間進(jìn)行雙向數(shù)據(jù)傳輸。數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)管理平臺集權(quán)限管理、項(xiàng)目管理、設(shè)備管理、網(wǎng)關(guān)管理、實(shí)時監(jiān)控、數(shù)據(jù)存儲等功能于一體,能夠?qū)崿F(xiàn)從數(shù)據(jù)實(shí)時通訊到應(yīng)用的完整處理流程。系統(tǒng)具有簡潔大方的用戶交互界面,能夠提供最低1 000臺設(shè)備的并發(fā)接入能力與即時的數(shù)據(jù)推送呈現(xiàn)體驗(yàn)。
盾構(gòu)遠(yuǎn)程數(shù)據(jù)管理平臺的網(wǎng)址鏈接為:https://tmain.tbmcloud.com.cn/#/login?redirect=%2Fscreen。用戶可直接登錄進(jìn)行查看。
2.1.1 監(jiān)控中心
多源數(shù)據(jù)采集系統(tǒng)監(jiān)控中心界面如圖6所示。系統(tǒng)總覽頁面展示當(dāng)前用戶權(quán)限下所有的網(wǎng)關(guān)數(shù)據(jù)源的信息,包括設(shè)備總數(shù)、在線數(shù)量、所在位置;實(shí)時數(shù)據(jù)頁面可選擇展示某個數(shù)據(jù)源遠(yuǎn)程傳輸?shù)膶?shí)時數(shù)據(jù)點(diǎn)位數(shù)值信息;歷史數(shù)據(jù)查詢頁面可查詢某個數(shù)據(jù)源一段時間范圍的歷史數(shù)據(jù),展示選定點(diǎn)位的數(shù)據(jù)連續(xù)情況。
圖6 多源數(shù)據(jù)采集系統(tǒng)監(jiān)控中心界面
2.1.2 管理中心
多源數(shù)據(jù)采集系統(tǒng)管理中心界面如圖7所示,能夠?qū)崿F(xiàn)項(xiàng)目管理、設(shè)備管理、網(wǎng)關(guān)管理、角色管理、用戶管理等功能。項(xiàng)目管理用于管理數(shù)據(jù)采集終端應(yīng)用的項(xiàng)目信息,包括項(xiàng)目名稱、負(fù)責(zé)人、項(xiàng)目地址等信息;設(shè)備管理用于管理數(shù)據(jù)采集終端應(yīng)用的掘進(jìn)設(shè)備信息,包括與采集終端網(wǎng)關(guān)的關(guān)聯(lián)與拆解、項(xiàng)目調(diào)度,以及相關(guān)聯(lián)終端網(wǎng)關(guān)的數(shù)據(jù)源的基本參數(shù)、采集頻率、點(diǎn)位信息的遠(yuǎn)程設(shè)置等功能;網(wǎng)關(guān)管理用于管理終端網(wǎng)關(guān)信息,包括網(wǎng)關(guān)的名稱、網(wǎng)關(guān)的編號、網(wǎng)關(guān)遠(yuǎn)程連接的密碼等信息;角色管理頁面將用戶分成不同的角色,角色對應(yīng)功能模塊的管理權(quán)限;用戶管理可以對用戶進(jìn)行查詢、新增、修改、刪除操作,關(guān)聯(lián)到不同的角色,由角色確定用戶的管理權(quán)限。
圖7 多源數(shù)據(jù)采集系統(tǒng)管理中心界面
多源數(shù)據(jù)采集系統(tǒng)終端本地管理平臺采用Web B/S架構(gòu),Web后臺使用Go開發(fā),Web頁面使用HTML編寫[16],實(shí)現(xiàn)了對數(shù)據(jù)采集網(wǎng)關(guān)的系統(tǒng)運(yùn)行環(huán)境信息監(jiān)控、連接遠(yuǎn)程服務(wù)器的通訊配置、數(shù)據(jù)源的增減及參數(shù)配置、數(shù)據(jù)源的數(shù)據(jù)采集監(jiān)控等功能。針對本地管理平臺從以下幾個方面進(jìn)行闡述:
1)終端狀態(tài)可視化。終端狀態(tài)實(shí)現(xiàn)了對網(wǎng)關(guān)硬件運(yùn)行環(huán)境的信息展示,包括運(yùn)行時間、CPU占用率、磁盤占用率等信息,有助于分析采集網(wǎng)關(guān)的運(yùn)行效率和系統(tǒng)的健壯性、可靠性。
2)參數(shù)設(shè)置。參數(shù)設(shè)置頁面實(shí)現(xiàn)了配置數(shù)據(jù)采集網(wǎng)關(guān)與遠(yuǎn)程服務(wù)器通訊的IP地址、端口信息、選擇性是否接入外網(wǎng)等功能。
3)數(shù)據(jù)源管理。數(shù)據(jù)源頁面實(shí)現(xiàn)了配置數(shù)據(jù)源的通訊地址和通訊協(xié)議、采集頻次、歷史數(shù)據(jù)傳輸?shù)臄?shù)量、導(dǎo)入導(dǎo)出點(diǎn)位變量表等信息展示,如圖8所示。
圖8 采集終端管理平臺數(shù)據(jù)源界面
4)數(shù)據(jù)實(shí)時監(jiān)控。實(shí)時監(jiān)控頁面實(shí)現(xiàn)了實(shí)時顯示網(wǎng)關(guān)采集數(shù)據(jù)源的點(diǎn)位變量數(shù)據(jù),數(shù)據(jù)顯示刷新頻率為1 s,在數(shù)據(jù)源斷開或者延遲過大時,實(shí)時監(jiān)控?cái)?shù)據(jù)將不再刷新,由此得知數(shù)據(jù)源出現(xiàn)通信問題,界面如圖9所示。
圖9 采集終端管理平臺實(shí)時監(jiān)控界面
隧道施工時的網(wǎng)絡(luò)部署主要是以以太網(wǎng)為主,各感知端通過以太網(wǎng)接入到主控室的交換機(jī)上,而后接入采集終端,其中,設(shè)備數(shù)據(jù)源的采集頻率一般為缺省值,如PLC采集速率一般為1次/s,且用戶可進(jìn)行自定義設(shè)置。
3.1.1 采集模塊設(shè)計(jì)
目前PLC廠商的OPC服務(wù)器通常只能運(yùn)行在Windows平臺上,且體積龐大,占用資源多[17]。因考慮到兼容ARM開發(fā),宜選用直接利用PLC的內(nèi)部協(xié)議,用以太網(wǎng)進(jìn)行連接。西門子S7-200/300/400等均支持S7協(xié)議。選用開源的Snap7函數(shù)庫可以對S7協(xié)議進(jìn)行解析,相對OPC、OPC UA等其他方式,具有跨平臺、通信效率高、占用資源少的優(yōu)點(diǎn),缺點(diǎn)是開發(fā)難度較大[18]。
由于每臺設(shè)備的PLC地址不盡相同,需要事先定義PLC的點(diǎn)位表,存儲于本地?cái)?shù)據(jù)庫中,只有在點(diǎn)位表中存在的地址才進(jìn)行讀取,避免不必要的CPU和帶寬資源浪費(fèi)。在S7協(xié)議中,PLC數(shù)據(jù)存儲于I、Q、M、DB等不同的區(qū)域,需要分別讀取,而且每次讀取時只能讀取一段連續(xù)存儲區(qū)域。連續(xù)區(qū)域中,部分地址可能是未定義的[19]。通過優(yōu)化算法,既保證每次讀取的連續(xù)區(qū)域足夠大以減少讀取次數(shù),又避免讀取到過多的無用數(shù)據(jù)。
以圖10為例,1個灰色格子表示1個需要采集的PLC變量,白色格子表示不需要采集的PLC變量。圖中列舉了3種讀取方式,其中,A方式保證每次只讀取需要采集的變量,但是讀取了3次;C方式僅讀取1次,但是讀取了過多無需采集的數(shù)據(jù);而B方式兼顧了讀取次數(shù)和讀取總數(shù)量,更加合理。
圖10 PLC連續(xù)區(qū)域讀取示意圖
3.1.2 現(xiàn)場部署測試
2020年7月31日,在廣州地鐵11號線盾構(gòu)上進(jìn)行了PLC接入測試,如圖11所示。該項(xiàng)目通訊機(jī)柜內(nèi)的內(nèi)外網(wǎng)網(wǎng)口相對容易排查,交換機(jī)是比較常規(guī)的網(wǎng)口布局,內(nèi)外網(wǎng)網(wǎng)口分別在交換機(jī)不同的區(qū)域。在查找到內(nèi)網(wǎng)及外網(wǎng)網(wǎng)口后,進(jìn)行系統(tǒng)部屬測試,數(shù)據(jù)實(shí)時回傳至服務(wù)器。
(a)內(nèi)網(wǎng)、外網(wǎng)網(wǎng)口
3.2.1 采集模塊設(shè)計(jì)
主機(jī)振動監(jiān)測系統(tǒng)由加速度傳感器、信號采集與傳輸、信號處理與顯示3個模塊組成,系統(tǒng)架構(gòu)如圖12所示。
圖12 主機(jī)振動監(jiān)測系統(tǒng)架構(gòu)
加速度傳感器可獲取主驅(qū)動電機(jī)、中心艙、刀盤隔板等位置的振動信號,信號采集儀將采集到的加速度數(shù)據(jù)通過TCP/IP通信協(xié)議接入數(shù)據(jù)采集終端,對傳感器數(shù)據(jù)進(jìn)行采集與存儲,最后傳輸?shù)缴衔粰C(jī)。
3.2.2 現(xiàn)場部署測試
2020年12月,在云南大瑞鐵路高黎貢山隧道TBM上搭載了所設(shè)計(jì)的振動監(jiān)測數(shù)據(jù)源,并進(jìn)行了現(xiàn)場部署測試。采集儀部署如圖13(a)所示,位于人艙出口后方主梁底部位置。數(shù)據(jù)采集終端部署如圖13(b)所示,位于主控室操作臺上方。上位機(jī)運(yùn)行圖見圖13(c),為采集到的數(shù)據(jù)在上位機(jī)上的可視化顯示。經(jīng)過本次測試,振動數(shù)據(jù)設(shè)置采集頻率為240 Hz,數(shù)據(jù)可實(shí)時回傳及存儲,系統(tǒng)運(yùn)行正常。
(a)采集儀部署
3.3.1 采集模塊設(shè)計(jì)
在TBM掘進(jìn)時,由掘進(jìn)出渣情況可以從側(cè)面反映當(dāng)前掌子面的情況。渣片圖像分割系統(tǒng)搭載的主要目的是識別TBM施工時渣片的粒徑大小并進(jìn)行分組。在TBM施工時,滾刀與巖層間存在多種形式的作用力,根據(jù)力的相互作用進(jìn)行巖層的切割,形成渣片后利用皮帶機(jī)進(jìn)行出渣。在掘進(jìn)過程中,正常的渣片粒徑長邊為10~15 cm(工程經(jīng)驗(yàn)所得),當(dāng)出現(xiàn)較大粒徑時,說明滾刀與巖層間存在切割異常。為了避免刀具異常磨損,此時渣片分割系統(tǒng)發(fā)出預(yù)警信號,一方面提示前方的地質(zhì)情況可能發(fā)生突變,另一方面提醒總推進(jìn)力可能過大,需要司機(jī)及時調(diào)整掘進(jìn)參數(shù),為TBM安全施工提供一定的保障。在進(jìn)行渣片粒徑分級識別中,由于皮帶機(jī)速度≥3 m/s,普通相機(jī)拍出的渣片圖像模糊且無法準(zhǔn)確分辨,故本數(shù)據(jù)源所采用的渣片相機(jī)為線陣相機(jī),最高行寬為4 096 pt,最高行頻為28 000 pt,所生成的無損圖像大小≥40 MB,利用激光進(jìn)行補(bǔ)光處理后,無需外加燈光。
渣片狀態(tài)在線監(jiān)測系統(tǒng)設(shè)計(jì)方案如圖14所示。硬件部分傳輸采用千兆網(wǎng)口,采用直連或者接千兆交換機(jī)的方式,將相機(jī)端接入到數(shù)據(jù)采集終端,相機(jī)采用獨(dú)立電源/POE供電。軟件部分網(wǎng)絡(luò)傳輸基于TCP/IP協(xié)議,通過相機(jī)廠家提供的API接口和數(shù)據(jù)解析格式進(jìn)行相機(jī)的查找、連接、拍攝及數(shù)據(jù)傳輸。
圖14 渣片狀態(tài)在線監(jiān)測系統(tǒng)設(shè)計(jì)方案
3.3.2 現(xiàn)場部署測試
在進(jìn)行渣片監(jiān)測數(shù)據(jù)源測試時,同樣選擇云南大瑞鐵路高黎貢山隧道TBM進(jìn)行了相機(jī)搭載、通信測試等。如圖15所示,回傳的圖像數(shù)據(jù)在上位機(jī)上顯示,圖像采集頻率為0.7 FPS,圖像大小平均為30 MB。
(a)相機(jī)現(xiàn)場部署
本文主要論述了專用的隧道掘進(jìn)設(shè)備多源異構(gòu)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案、實(shí)現(xiàn)方法及現(xiàn)場應(yīng)用情況。采用一主多從的系統(tǒng)架構(gòu),按照“微服務(wù)”的設(shè)計(jì)思想,設(shè)計(jì)了數(shù)據(jù)源接入接口統(tǒng)一以及數(shù)據(jù)源進(jìn)程相互獨(dú)立的程序架構(gòu),開發(fā)出安全、穩(wěn)定、高性能、高并發(fā)、低帶寬占用的統(tǒng)一數(shù)據(jù)傳輸協(xié)議的程序框架,提出了一種以插件形式組織數(shù)據(jù)源接入,進(jìn)行快速定制化程序開發(fā)并遠(yuǎn)程更新終端程序的方法。
通過隧道施工數(shù)據(jù)智能采集系統(tǒng)在工程項(xiàng)目中的具體應(yīng)用,數(shù)據(jù)采集網(wǎng)關(guān)先后接入PLC數(shù)據(jù)、振動監(jiān)測數(shù)據(jù)、渣土改良數(shù)據(jù)、刀盤磨損數(shù)據(jù)等10多種異構(gòu)類型的數(shù)據(jù)源,解決了隧道施工中各種異構(gòu)數(shù)據(jù)采集的難題。
由于本文所述的多源數(shù)據(jù)采集網(wǎng)關(guān)的邊緣計(jì)算能力有限,內(nèi)存資源有限,從而在同時接入多個大密度數(shù)據(jù)源進(jìn)行傳輸時速率有所降低,因此,如何優(yōu)化多個大密度數(shù)據(jù)源傳輸策略是今后需要研究的重點(diǎn)內(nèi)容。