Java通過socket和DTU,RTU連線工業感測器通訊
現在做DTU感測器監測資料一塊,給大家分享如何通過socket技術連線到DTU,並能和DTU下面的感測器通訊的,分享一下自己的心得和體會。
總體架構圖
先來看下整體網路結構圖。
工業名稱解釋
感測器:能夠採集資料機器,電腦端通過下發指令通過DTU發給感測器,感測器通過DTU返回相應的資料給電腦端,比如雨量計能實時反饋雨量,這很好理解。
RTU:遠端傳輸單元,可以是一臺plc(程式過程控制),通俗理解就是能夠程式設計的還可以將資料傳輸伺服器的工具。RTU內部是包含通訊模組的,RTU儀表配置伺服器後,他可以通過socket將採集器的資料轉發到伺服器。咦?你剛才不講說的DTU嗎?現在怎麼是DTU了,接下來我們看看。
DTU:資料傳輸單元,他主要的功能是能將IP資料和串列埠資料進行等價轉化。對比上面RTU的功能,如果說RTU能進行資料處理和資料傳輸,那麼DTU就只能進行資料傳輸了。像DTU因為沒有任何的資料處理動作,所以一般業界叫“透傳”即透明傳輸。所以RTU的價格一般比DTU貴很多,因為有軟體程式設計的成本。
RS485:RS485是一個物理介面,DTU和感測器就是通過RS485介面進行連線的。
Modbus協議:標準的序列工業協議。可以支援RS485,RS232介面。那既然是協議,就需要遵循一定的規範,舉個簡單的例子,讀取雨量計的命令是16進位制的_0E04000000027134_
那麼0E 04 00 00 00 02 71 34 分別對應的該感測器的通訊id,功能碼等。如下圖,這是一串指令,能夠讀取雨量的具體資料。
網路:DTU可以配置伺服器,通過socket技術通訊。
伺服器:伺服器解析資料並存入資料庫。
當然,雨量感測器也能返回一串標準16進位制資料DTU,_0E0404326640BCDA52,_具體解析格式如下,如果返回正確我們需要讀取5,6位元組進行解析。
這個是我任意舉的一個案例,是為了更好說明 Modbus協議 的 。 只要支援能modbus的感測器都類似,需要我們對照具體的 感測器通訊協議文件 進行轉化解析,一般都會有說明。
思路整理
樓主在剛開始接到任務不理解這些工業,介面,協議的概念,走了一些彎路。因為我們專案是需要從RTU換成DTU做資料採集的,已有專案RTU是能夠主動推送資料到伺服器的,當時比較困惑有幾個點,順便整理下思路。
- DTU能夠主動推送資料給你嗎?如果不能,我需要如何做?
不能,DTU既然是透傳的,說明我們需要通過DTU給感測器下發指令。‘
- 發什麼指令?
這裡的指令就是modbus指令,上面有類似指令說明,指令需要到相應的感測器通訊協議去獲取,一般都有說明,如果是新手,就找感測器廠家支援下,順便說一句,他們都是搞硬體的,軟體他們可能也不太清楚,這個時候就需要你的正確方向的判斷了。
- 如何下發指令?如何除錯下發指令正確性?
我因為當時是新手,我只懂程式,除錯都是通過自己寫的程式除錯的,一直執行程式沒有調試出來,最終才知道usb連線串列埠轉485工具再直接連線感測器,通過串列埠工具就可以直接傳送命令,返回對應的資料,一目瞭然,串列埠工具我用的是sscom。這個問題給我的感觸很深,可以先不寫程式碼,直接先在工具上分析結果。我主要用的是下面這三個工具。
- 如何打通socket和DTU連線的感測器?
最後一步就比較簡單了,通過socket,拿到二進位制資料後直接轉16進位制進行解析得到結果,我貼部分程式碼。
結尾
好的,今天就到這裡,希望這邊文章能對您有所幫助,有不懂的地方可以給博主留言哦,分享讓我們共同成長,喜歡的請點贊加關注哦。 點關注,不迷路, 我是【 叫練 】 公眾號 ,微訊號 【jiaolian123abc】 邊叫邊練。
- 設計模式【4】-- 建造者模式詳解
- 分散式鎖及其實現
- TDSQL | 國產化浪潮下,資料庫 雲如何跑上核心業務?
- 為了生成唯一id,React18專門引入了新Hook:useId
- Java SPI機制從原理到實戰
- Rust 稽核團隊“一夜之間”集體辭職:開源社群治理話題再被熱議
- PHP 基金會,是個好事 (PHP Foundation)
- 0.99M,150FPS,移動端超輕量目標檢測演算法PP-PicoDet來了!
- Shell 指令碼避坑指南(一)
- KVO原理分析
- Markdown語法基礎
- 升級到Java 17沒這麼簡單
- 無處不在的 Kubernetes,難用的問題解決了嗎?
- Spark 架構設計與原理思想
- 如何用 Flutter開發一個直播應用
- 訊息佇列RocketMQ應對雙十一流量洪峰的“六大武器”
- 面試官問我JVM記憶體結構,我真的是
- Hermes將成為React Native預設的JS引擎
- 做一名真正的軟體工程師
- CDP客戶資料管理平臺體系化搭建