java通過與4g模塊DTU通信控制串口設備PLC解決方案

項目背景:

最近公司接到一個農業方面的物聯網項目,需求是需要採集土壤的各項參數以及根據溫度、溼度來控制水肥和大棚卷膜的開關。提供的設備有各種傳感器和plc控制類設備,其中一個最爲頭疼的就是要解決plc設備,很煩,不過功夫不負有心人,最後還解決了,這裏允許我笑下,哈哈哈哈哈~

分割線----------------------------------------下面開始正題

首先說下解決思路:

由於考慮到串口開發很麻煩,所以後來買了一個4g模塊的dtu。

所以最後的解決方案是,plc串口設備與dtu相連,由於dtu是透傳模式,使用java與4g模塊進行通信就完事了。

雖然這樣看着很簡單,但是這段時候不少走彎路,頗有一種摸石過河、黑夜走路的感覺,什麼東西都要自己摸索,又怕方向是錯的,直到成功的那一刻才知道原來是這樣,終於到了扒開了雲霧,見到了太陽,然後回頭看看才明白道路是那樣的清晰。

但是:我要說的是不要畏懼困難,哪怕你不知道前路如何,哪怕不知道方向是否正確,但一定有靜下心來去思考,一點點去嘗試,最後一定能找到正確的道路。

經歷的歷程:

歷程1:

拿到plc設備的那一刻,自己完全不知道該怎麼辦,我是誰?我在哪??我要做什麼???但是被項目逼迫的我很快冷靜下來,管他呢,先單獨測試設備吧,先用指令把設備跑通了再說,這是歷程1的主要目標。於是研究串口協議,研究modbus ASCII碼協議、解析其每位16進制數據的含義、研究其校驗碼,花了3天左右的時間終於把協議搞明白了,協議搞明白了,寫了串口指令,接下來我要怎麼發送,請教懂行的人,下載了串口調試助手,反覆試,終於第一條指令成功了,把我高興的差點就流出了老父親般激動的淚水。

歷程2:

4g模塊dtu,拿到後和plc的思路一樣,先看4g模塊是否通信正常,於是在廠家的官網找到配置調試文檔,按着步驟調試、配置,最後把4g模塊參數配置完成,主要這裏的配置主要是給dtu設置服務器地址,就是4g模塊最終要和誰通信,給dtu配置上服務器的ip地址和端口號。最後配置完成,在服務器上裝上網絡調試助手,發送信息測試成功,通信正常。

歷程3:

經過1個多星期的工作,dut和plc已分別收服,接下來要測試,dut連接plc之後,給dtu發信息能否控制plc的運行。由於前期分別做測試時已經做了很多工作,所以兩者在一起調試很順利,很快就通上了信息,使用網絡助手給dtu發送指令,dtu能順利的把指令傳給plc,從而達到控制plc的效果。那接下來就是怎麼用java和dtu通信了。

歷程4:

java與dtu的通信,講真,這兩者通信着實讓我有點不知所措,不過後來回到家躺在牀上靈光一閃,dtu不就用的sokect通信的嗎?我現在寫個socket的服務器來代替之前的網絡助手發送指令是否可行呢?於是第二天早上一到公司就寫了幾行簡易代碼,丟到之前給dtu配置地址的那臺服務器上實驗,果然接收到了dtu的心跳包數據,這時我有點喜出望外,感覺寫了幾行指令實驗,結果真的能行,終於歷經了4個階段後,整個流程都跑通了,解決方案也有了,剩下的就是怎麼寫代碼的事了。

經過這段時間的研究學習了不少東西,也收穫了很多,希望這個能幫助大家就到你們遇到的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章