wenliang
擡頭白雲悠悠,前竟一片黯愁……
級別: 家園?
精華主題: 0
發(fā)帖數量: 717 個
工控威望: 910 點
下載積分: 43033 分
在線時間: 547(小時)
注冊時間: 2014-04-04
最后登錄: 2024-11-11
查看wenliang的 主題 / 回貼
樓主  發(fā)表于: 2021-12-01 08:49
請問各位大師三菱MODBUS通訊,現(xiàn)在問題是PC發(fā)送一條數據給PLC,當PLC收到數據時M8123動作、而且馬上回復PC已經收到指令,但是現(xiàn)連機訊運行時偶而會出現(xiàn)PC發(fā)送數據給PLC、而PLC收到后并沒有回復PC,現(xiàn)在用串口軟件來測試也是一樣的情況,PC輪詢指令間隔時間160MS,輪詢N多條指令后就會出現(xiàn)PLC少回復的情況,另外也問過三菱客戶了,說是把D8129超時改成1也沒有用,不知道各位大師有什么高見,煩請多多指點一下,在此謝過了。!


  
[ 此帖被wenliang在2021-12-01 09:32重新編輯 ]
gxtmdb82164
級別: 論壇先鋒
精華主題: 0
發(fā)帖數量: 752 個
工控威望: 1130 點
下載積分: 363 分
在線時間: 590(小時)
注冊時間: 2019-09-22
最后登錄: 2024-11-14
查看gxtmdb82164的 主題 / 回貼
1樓  發(fā)表于: 2021-12-02 16:46
本身modbus是應該有重試機制的,一問一答保證每次都會有回應,如果沒收到就重來一次.

LZ可以試試看PC對PC發(fā)送和PLC對PLC發(fā)送,一端固定不變就是你現(xiàn)在的PC程序和PLC程序,另一端寫一個最簡單的收發(fā)程序,這樣跑一段時間來看一下結果如何.

最后提醒一個點是這樣的,兩線串口這種半雙工的通信程序,要給數據傳輸完成留時間,換言之并不是收到了馬上就發(fā)送硬件可能還還沒準備好,或者對方的buffer還沒清空,這個是底層硬件和底層系統(tǒng)軟件的機制決定的,在PLC這樣的環(huán)境中,至少延遲一個周期是非常有用的方法.

或者還有一個辦法,把波特率提高,我就喜歡用高波特率,信號傳輸的時間越短出幺蛾子的概率反而越低,反正有重試,錯了再發(fā)~