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


  
[ 此帖被wenliang在2021-12-01 09:32重新編輯 ]
gxtmdb82164
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 771 個(gè)
工控威望: 1149 點(diǎn)
下載積分: 401 分
在線時(shí)間: 605(小時(shí))
注冊(cè)時(shí)間: 2019-09-22
最后登錄: 2024-12-28
查看gxtmdb82164的 主題 / 回貼
1樓  發(fā)表于: 2021-12-02 16:46
本身modbus是應(yīng)該有重試機(jī)制的,一問(wèn)一答保證每次都會(huì)有回應(yīng),如果沒收到就重來(lái)一次.

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

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

或者還有一個(gè)辦法,把波特率提高,我就喜歡用高波特率,信號(hào)傳輸?shù)臅r(shí)間越短出幺蛾子的概率反而越低,反正有重試,錯(cuò)了再發(fā)~