本身modbus是應該有重試機制的,一問一答保證每次都會有回應,如果沒收到就重來一次.
LZ可以試試看PC對PC發(fā)送和PLC對PLC發(fā)送,一端固定不變就是你現(xiàn)在的PC程序和PLC程序,另一端寫一個最簡單的收發(fā)程序,這樣跑一段時間來看一下結(jié)果如何.
最后提醒一個點是這樣的,兩線串口這種半雙工的通信程序,要給數(shù)據(jù)傳輸完成留時間,換言之并不是收到了馬上就發(fā)送硬件可能還還沒準備好,或者對方的buffer還沒清空,這個是底層硬件和底層系統(tǒng)軟件的機制決定的,在PLC這樣的環(huán)境中,至少延遲一個周期是非常有用的方法.
或者還有一個辦法,把波特率提高,我就喜歡用高波特率,信號傳輸?shù)臅r間越短出幺蛾子的概率反而越低,反正有重試,錯了再發(fā)~