董建忠,程博倫,黃 哲
(1.新疆塔里木河流域管理局信息中心,新疆 庫爾勒 841000;2.新疆塔里木河流域巴音郭楞管理局,新疆 庫爾勒 841000;3.新疆塔里木河流域巴音郭楞管理局博斯騰湖管理處,新疆 博湖 841400)
傳統型RTU(遠程終端設備)一直是數據通信領域的主流設備之一,但隨著技術的不斷發(fā)展,新型DTU可以提供更快速、更可靠的數據傳輸,同時支持更多種類的數據傳輸協議,新型DTU可以采用128位AES加密算法以加強數據傳輸的安全性,新型DTU還可以提供更長的使用壽命,更低的故障率等,本文主要討論使用新型DTU+服務器端軟件替代通用型RTU的思路和方法。
市面上存在2種不同形式的RTU,即通用型RTU和專用型RTU。專用型RTU針對項目或某種前端設備簡化RTU設計,使之僅處理特定型號的前端設備的輸入輸出,并針對項目需求僅輸出特定規(guī)約的數據格式,成本較低;通用型RTU內部集成各種類型前端設備的處理規(guī)則,并為了適配服務器端需求,又集成了各種規(guī)約處理方法,成本較高。
利用支持MQTT協議透傳的DTU,將通用型RTU的前端處理規(guī)則和后端規(guī)約,以配置文件的方式存儲于服務器端,當到達指定的時間或條件后,服務器端通過讀取配置文件,對前端DTU進行輪詢,并根據配置文件解析前端DTU返回的數據,經計算后,按照配置文件中的指定規(guī)約將數據進行打包并發(fā)送給數據接收服務器。這樣,就使用最低成本的DTU+服務器端配置文件+定時輪詢,實現了原來高成本的通用型RTU所具有的功能。
據測算,使用該方法成本僅為通用型RTU的1/10-1/30,具有較好的經濟效益。可供類似工程參考。
RTU是Remote Terminal Unit的縮寫,即遠程終端單元。它是一種在監(jiān)控和控制系統中常用的設備,主要用于收集和傳輸現場監(jiān)測點的數據并向控制中心發(fā)送反饋信號。
RTU通常由數據采集模塊、通訊模塊、控制模塊和電源模塊等組成。數據采集模塊負責接收傳感器的監(jiān)測數據,通訊模塊負責將數據傳輸到控制中心或其他設備,控制模塊負責執(zhí)行控制指令,電源模塊負責為整個設備提供電力。
RTU的工作原理是,將現場監(jiān)測點的數據采集、存儲和處理,然后將數據通過通訊模塊傳輸到遠程控制中心,控制中心根據接收到的數據進行分析和處理,然后向現場下發(fā)控制指令,使得現場設備實現自動化控制。RTU通過現場總線與各種設備進行連接,在無線電、有線電以及光纖等各類信道上傳輸數據。原理如圖1所示。

圖1 RTU的工作原理
由圖1可知,數據采集系統可分為4個部分:前端設備、RTU、DTU、數據接收服務器。
下面簡要分析數據采集系統的一般工作流程:
(1)取數。前端設備與RTU通過RS485接口連接,RTU通過RS485接口向前端設備發(fā)送取數指令,前端設備接到取數指令后,將數據通過RS485接口返回RTU
(2)封包。RTU接到前端設備返回的數據后,根據解析規(guī)則進行解析,解析后的數據根據后端數據接收服務器的數據傳輸規(guī)約進行封包,一般的封包規(guī)則例如:前綴+站碼+時間+數據含義+數據+校驗碼+結束符。
(3)傳輸。RTU喚醒DTU,通過AT指令撥號,將DTU與數據接收服務器建立連接通道,連接完成后,RTU將封包后的數據通過RS232接口發(fā)向DTU,DTU通過連接通道將封包數據發(fā)給數據接收服務器。
(4)接收及解包。數據接收服務器接收到封包數據后,首先進行校驗,校驗無誤后,按照解包規(guī)則,依次解析出站碼、時間、數據含義、數據,然后將數據寫入數據庫,并記錄接收日志。
DTU是Data Terminal Unit的縮寫,即數據終端單元,它是一種用于將各種終端設備的數據集成到互聯網等公網中的設備。
DTU的工作原理是,通過各種通訊接口(如RS232、RS485、CAN等)與終端設備連接,采集設備的數據,然后通過無線或有線網絡將數據傳輸到遠端的監(jiān)控平臺或者基站。
DTU設備常用在智能家居、工業(yè)自動化、農業(yè)、車輛追蹤、遠程監(jiān)控等領域。在智能家居中,DTU作為智能家居系統與各種傳感器、攝像頭等設備連接的橋梁,實現設備之間的數據通訊和交互控制。在工業(yè)自動化中,DTU用于采集并傳輸各類工業(yè)設備的數據,以便于管理人員對生產線進行監(jiān)控和控制。在農業(yè)方面,DTU可用于對農業(yè)設備進行遠程監(jiān)控,實現種植、灌溉等細節(jié)的自動化控制。原理如圖2所示。

圖2 DTU的工作原理
由圖1—2可知,DTU的構造要遠比RTU簡單,前端基本無數據處理能力,以透傳模式連接前端設備與后端服務器。服務器通過透傳模式與前端設備進行通訊,以輪詢的方式查詢前端設備數據,DTU僅起到牽線搭橋的作用。
RTU和DTU都是遠程終端設備,但是它們的應用場景和工作原理有所不同。
(1)應用場景。RTU主要應用于工業(yè)控制和自動化領域,用于現場數據的采集和處理、控制和保護;DTU主要用于物聯網領域,提供設備接入云平臺的功能。
(2)數據傳輸方式。RTU通常通過專用的現場通訊網絡,如Modbus、DNP3等協議,將數據傳輸到遠端控制中心;而DTU則是利用GPRS、LTE等無線網絡或以太網等有線網絡,將設備的數據傳輸到云端。
(3)數據處理能力。RTU通常具有較強的實時數據處理能力,能夠在現場進行控制、監(jiān)測和調節(jié);而DTU則主要負責將設備采集的數據上傳云端,由云端進行數據分析和處理。
(4)價格。由于RTU需要更高的硬件配置和工業(yè)級的準確度、可靠性和抗干擾性能,因此價格通常較高。而DTU的造價相對較低,主要是由于其專注于物聯網接入領域而不需要過多重視工業(yè)級的指標。
總之,RTU主要用于工業(yè)自動化領域,DTU則屬于物聯網領域。其主要區(qū)別在于應用場景、數據傳輸方式、數據處理能力和價格等方面。
如果能通過技術手段,將RTU的優(yōu)勢與DTU的低廉價格相結合,將有很好的應用價值。
由于DTU本身數據處理能力較弱,將RTU所具有的取數規(guī)則、解析規(guī)則、封包規(guī)則等均以文件方式存放在服務器端,服務器通過DTU建立的透傳通道直接與前端設備對話,將取數指令發(fā)送給前端設備,再通過解析規(guī)則解析傳回的數據,然后將解析完的數據按照封包規(guī)則將數據進行封包,最后發(fā)送給數據接收服務器,這樣,就可以完成用服務器端的軟件+DTU替代RTU進行數據采集的工作。原理如圖3所示。

圖3 +DTU的工作原理
某型RTU在塔里木河流域管理局水利系統中有著廣泛應用,但其價格較為高昂,采購價格約9000元/臺,再算上安裝費用,保守估計每臺價格在1.1萬元。
由于服務商已全面將數據業(yè)務遷移到4G,2G、3G業(yè)務已停止服務,因此,DTU應支持4G全網通;考慮到現場的惡劣環(huán)境,應支持寬電壓;在低溫和高溫環(huán)境下正常工作;支持多種網絡傳輸協議透傳;至少有一個RS485串口等。最簡規(guī)格參數見表1。
智嵌物聯ZQWL-GD2110YM型DTU即可滿足上述要求,采購價格210元/臺,算上安裝費用價格300元/臺。
計算機端使用USB轉485轉換器,連接4GDTU的RS485接口,在DTU的電源接口處接入9~36V直流電,待DTU正常啟動后,使用智嵌物聯提供的4GDTU配置軟件對DTU進行配置,如圖4所示。

圖4 4G DTU配置軟件
勾選MQTT,點擊設置,進入MQTT設置界面如圖5所示。

圖5 MQTT設置界面
按照下表2設置MQTT服務器參數,填寫完成后確定退出,點擊圖4中的保存參數,將設置保存在DTU。

表2 MQTT設置參數表
2.3.1功能分析
(1)定義MQTT服務器,數據接收服務器,站點列表文件,站點配置文件。可以選擇自己架設MQTT服務器,一般選擇APACHE ACTIVEMQ,或APACHE APPOLLO,也可以利用網上免費的MQTT服務器,如:broker-cn.emqx.io,端口號:1883。如果是正式的生產環(huán)境,建議搭建自己的MQTT服務器。之所以還要設定數據接收服務器而不是直接將接收到的數據入庫,主要是基于如下考慮:①本文只是實驗性質,小范圍試用,不宜改變原有的數據采集架構;②原有的數據接收服務器有數據校驗功能,而數據庫本身是沒有數據校驗功能的,直接入庫易假造數據。可以用JSON文件存儲配置,也可以將配置寫入數據庫,如站點較多,建議使用數據庫,本次采用JSON文件以減少復雜度。配置文件保存MQTT服務器、數據接收服務器的IP地址、端口號,訂閱和發(fā)布的頻道信息。站點列表文件保存站點列表,包括站點名稱、站點編碼等。站點配置文件保存站點名稱、站點編碼,前端設備型號,取數指令,回數指令格式,誤差值調整,回數解析公式等。
(2)定義讀取配置接口。
(3)將各功能分成不同的模塊,有助于減少每個模塊的復雜度,也便于模塊的復用。
(4)主程序實現如下功能:連接MQTT服務器,訂閱DTU上傳頻道,下發(fā)取數指令到DTU,接收DTU返回指令,解析返回指令,加工數據,發(fā)送數據到數據接收服務器,定時循環(huán),運行狀態(tài)寫日志,出現故障向釘釘群報警。
(5)后臺啟動主程序。在windows系統中,可以通過將程序做成服務的方式以避免不小心關閉窗口導致程序被關閉;而在linux系統中,可以通過后臺啟動程序,啟動完畢后可以在進程中發(fā)現主程序,這樣也能避免不小心主程序被關閉。
(6)后臺監(jiān)控主程序,一旦發(fā)現主程序意外退出,立刻重啟主程序。
(7)其他的一些問題。①一些RTU具有超限加報功能,從服務器端實現也是很方便的。首先在配置文件中對該站要設置警戒值,可以是高限,也可以是低限。當服務器端取數指令發(fā)出后,待回數指令解析后,如數據高于高限或低于低限,則服務器進入加密采數程序,即取數間隔減小,上報間隔也減少,即實現了超限加報功能。當數據處于正常值范圍,則轉入正常采集數據模塊。②RTU具有本地存儲,遠程召測功能。這部分功能可以考慮將數據現存入DTU服務器端數據庫,如數據接收服務器故障導致期間數據丟失,可以從DTU服務器數據庫中查詢歷史數據后,重新將這部分數據發(fā)送到數據接收服務器即可。DTU本身也具有一定的數據存儲能力,也可以用指令找回歷史數據發(fā)送到數據接收服務器即可。
為實現2.3節(jié)服務器端功能,在一臺安裝centos的linux虛擬機服務器上,以python3.7作為開發(fā)環(huán)境進行開發(fā),以paho-mqtt模塊為客戶端,逐個實現2.3節(jié)服務器端主程序功能,由于塔里木河流域管理局使用的《塔里木河流域水資源信息化整合項目數據采集編碼通信規(guī)約》規(guī)定了數據傳輸的格式,以SW+站碼+時間+數據標識+數據+校驗碼+NNN的形式進行傳輸,以python crcmod模塊的mkCrcFun實現校驗碼,其他數據使用python的join函數連接即可用上述的方法,使用了9臺DTU做實驗,每臺DTU6 min取一次數據,每天共計取數240條,理想情況下一年回數788400條,實驗結果是786974,數據返回率99.82%,數據損失率<0.3%,滿足實際生產需要。
本文提出一種利用DTU+服務器端軟件替代傳統RTU的新方法,低成本實現遠程數據采集系統。通過準確定義系統各個部件的責任,利用DTU實現基本的數據采集與通信,而服務器端軟件承擔主要的控制與智能處理,大大降低了遠程數據采集系統的成本和難度。這種軟硬件混合的結構使系統在保證性能的同時顯著降低成本,極具實用價值。
當然,本文僅是初步探索,還存在一定不足。首先,文中系統較為簡單,無法處理海量數據和復雜控制場景,后續(xù)需要深入研究。其次,安全性問題沒有進行深入分析,實際應用中安全方面也需要重點考慮。再次,該結構下系統的可靠性如何保證也需進一步探討。