wenliang
擡頭白雲(yún)悠悠,前竟一片黯愁……
級(jí)別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 717 個(gè)
工控威望: 910 點(diǎn)
下載積分: 43033 分
在線時(shí)間: 547(小時(shí))
注冊(cè)時(shí)間: 2014-04-04
最后登錄: 2024-11-11
查看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收到后并沒(méi)有回復(fù)PC,現(xiàn)在用串口軟件來(lái)測(cè)試也是一樣的情況,PC輪詢指令間隔時(shí)間160MS,輪詢N多條指令后就會(huì)出現(xiàn)PLC少回復(fù)的情況,另外也問(wèn)過(guò)三菱客戶了,說(shuō)是把D8129超時(shí)改成1也沒(méi)有用,不知道各位大師有什么高見(jiàn),煩請(qǐng)多多指點(diǎn)一下,在此謝過(guò)了。!


  
[ 此帖被wenliang在2021-12-01 09:32重新編輯 ]
wenliang
擡頭白雲(yún)悠悠,前竟一片黯愁……
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 717 個(gè)
工控威望: 910 點(diǎn)
下載積分: 43033 分
在線時(shí)間: 547(小時(shí))
注冊(cè)時(shí)間: 2014-04-04
最后登錄: 2024-11-11
查看wenliang的 主題 / 回貼
1樓  發(fā)表于: 2021-12-01 09:32
請(qǐng)問(wèn)如圖所示,PLC發(fā)送14個(gè)字符時(shí)間為17.5MS,那么接收PC14個(gè)字符是不是按同理17.5MS計(jì)算,可是為什輪詢間隔都設(shè)成160MS了為什么PLC還是會(huì)偶而沒(méi)有回復(fù)呢?另外PC做了一個(gè)判斷、當(dāng)收不到PLC的回復(fù)時(shí)PC就不在輪詢了停在當(dāng)前狀態(tài)。   
zmrs163
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 373 個(gè)
工控威望: 521 點(diǎn)
下載積分: 1466 分
在線時(shí)間: 324(小時(shí))
注冊(cè)時(shí)間: 2017-06-12
最后登錄: 2024-11-12
查看zmrs163的 主題 / 回貼
2樓  發(fā)表于: 2021-12-01 10:52
既然PLC收到了沒(méi)發(fā)送,那可能和你的程序有關(guān)
wenliang
擡頭白雲(yún)悠悠,前竟一片黯愁……
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 717 個(gè)
工控威望: 910 點(diǎn)
下載積分: 43033 分
在線時(shí)間: 547(小時(shí))
注冊(cè)時(shí)間: 2014-04-04
最后登錄: 2024-11-11
查看wenliang的 主題 / 回貼
3樓  發(fā)表于: 2021-12-01 12:02
程序上面看不出什么問(wèn)題,當(dāng)M8123接收到指令時(shí),立馬就啟動(dòng)M8122回復(fù)PC,上面圖片上有程序就是接收和發(fā)送的,然后就是一直往復(fù)接收發(fā)送,沒(méi)有理由程序還有什么其他延時(shí)不回復(fù)的情況?
wenliang
擡頭白雲(yún)悠悠,前竟一片黯愁……
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 717 個(gè)
工控威望: 910 點(diǎn)
下載積分: 43033 分
在線時(shí)間: 547(小時(shí))
注冊(cè)時(shí)間: 2014-04-04
最后登錄: 2024-11-11
查看wenliang的 主題 / 回貼
4樓  發(fā)表于: 2021-12-01 15:01
早上又問(wèn)了三菱客服,說(shuō)讓降低頻率發(fā)送報(bào)文,還是沒(méi)有找到問(wèn)題所在     
zmrs163
級(jí)別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 373 個(gè)
工控威望: 521 點(diǎn)
下載積分: 1466 分
在線時(shí)間: 324(小時(shí))
注冊(cè)時(shí)間: 2017-06-12
最后登錄: 2024-11-12
查看zmrs163的 主題 / 回貼
5樓  發(fā)表于: 2021-12-01 17:06
圖片:
兩線制還是四線制,我寫了個(gè)腳本沒(méi)設(shè)置延時(shí),PLC和PC都是收到就發(fā)。300多秒收發(fā)了10000多次沒(méi)出現(xiàn)你的情況
wenliang
擡頭白雲(yún)悠悠,前竟一片黯愁……
級(jí)別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 717 個(gè)
工控威望: 910 點(diǎn)
下載積分: 43033 分
在線時(shí)間: 547(小時(shí))
注冊(cè)時(shí)間: 2014-04-04
最后登錄: 2024-11-11
查看wenliang的 主題 / 回貼
6樓  發(fā)表于: 2021-12-01 19:20
引用
引用第5樓zmrs163于2021-12-01 17:06發(fā)表的  :
兩線制還是四線制,我寫了個(gè)腳本沒(méi)設(shè)置延時(shí),PLC和PC都是收到就發(fā)。300多秒收發(fā)了10000多次沒(méi)出現(xiàn)你的情況

是二線制通訊的,我就是用串口調(diào)試助手160MS循環(huán)測(cè)試都會(huì)偶爾會(huì)少發(fā)幾條指令,PLC也是沒(méi)有設(shè)置任何延時(shí),收到數(shù)據(jù)就會(huì)馬上回復(fù),所以沒(méi)有找到問(wèn)題所在,不知道大師你們的程序是如何收發(fā)數(shù)據(jù)的呢,另外我現(xiàn)在收發(fā)都是14個(gè)字符沒(méi)有關(guān)系吧?下圖是通訊設(shè)置和數(shù)據(jù)收發(fā)程式,還大師請(qǐng)多多指點(diǎn),在此謝過(guò)了!


  
[ 此帖被wenliang在2021-12-01 19:27重新編輯 ]
jacking
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 10 個(gè)
工控威望: 75 點(diǎn)
下載積分: 701 分
在線時(shí)間: 19(小時(shí))
注冊(cè)時(shí)間: 2021-11-25
最后登錄: 2024-07-25
查看jacking的 主題 / 回貼
7樓  發(fā)表于: 2021-12-02 11:24
你有沒(méi)有觀察你在收時(shí)會(huì)不會(huì)發(fā),兩線半雙工不能同時(shí)收發(fā),觀察下M7會(huì)不會(huì)偶然間誤觸發(fā)導(dǎo)致的沒(méi)有收到。
wenliang
擡頭白雲(yún)悠悠,前竟一片黯愁……
級(jí)別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 717 個(gè)
工控威望: 910 點(diǎn)
下載積分: 43033 分
在線時(shí)間: 547(小時(shí))
注冊(cè)時(shí)間: 2014-04-04
最后登錄: 2024-11-11
查看wenliang的 主題 / 回貼
8樓  發(fā)表于: 2021-12-02 11:56
引用
引用第7樓jacking于2021-12-02 11:24發(fā)表的  :
你有沒(méi)有觀察你在收時(shí)會(huì)不會(huì)發(fā),兩線半雙工不能同時(shí)收發(fā),觀察下M7會(huì)不會(huì)偶然間誤觸發(fā)導(dǎo)致的沒(méi)有收到。

數(shù)據(jù)收發(fā)速度太快不太容易觀察,現(xiàn)在用串口助手測(cè)試監(jiān)控收發(fā)能看到有發(fā)送給PLC、而PLC沒(méi)有回復(fù)(見(jiàn)下圖),我明白半雙工不能同時(shí)收發(fā)的,另外M7我在使用列表里面查過(guò)了沒(méi)有在其他地方使用,現(xiàn)在情況是上位機(jī)發(fā)送的比回復(fù)的多,也就是說(shuō)PLC少回復(fù)了,正常接收要和發(fā)送的一樣多才對(duì)
[ 此帖被wenliang在2021-12-02 12:05重新編輯 ]
zmrs163
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 373 個(gè)
工控威望: 521 點(diǎn)
下載積分: 1466 分
在線時(shí)間: 324(小時(shí))
注冊(cè)時(shí)間: 2017-06-12
最后登錄: 2024-11-12
查看zmrs163的 主題 / 回貼
9樓  發(fā)表于: 2021-12-02 14:07
我用兩線制也嘗試收發(fā)了幾萬(wàn)次也沒(méi)有出現(xiàn)你的現(xiàn)象,注意到你每次發(fā)送的報(bào)文都是一樣的,建議可以PC每次發(fā)送不同的報(bào)文,然后PLC接收后返回此報(bào)文,這樣可以判斷PLC是否有接收到此報(bào)文。
另外我做了測(cè)試,按照你程序的寫法,只要接收到數(shù)據(jù)就必然會(huì)發(fā)送,與掃描時(shí)間無(wú)關(guān),那么就有可能是PLC沒(méi)收到或者是PC沒(méi)收到,可以按照上述方法排查一下。
gxtmdb82164
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 749 個(gè)
工控威望: 1127 點(diǎn)
下載積分: 357 分
在線時(shí)間: 589(小時(shí))
注冊(cè)時(shí)間: 2019-09-22
最后登錄: 2024-11-12
查看gxtmdb82164的 主題 / 回貼
10樓  發(fā)表于: 2021-12-02 16:46
本身modbus是應(yīng)該有重試機(jī)制的,一問(wèn)一答保證每次都會(huì)有回應(yīng),如果沒(méi)收到就重來(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ā)送硬件可能還還沒(méi)準(zhǔn)備好,或者對(duì)方的buffer還沒(méi)清空,這個(gè)是底層硬件和底層系統(tǒng)軟件的機(jī)制決定的,在PLC這樣的環(huán)境中,至少延遲一個(gè)周期是非常有用的方法.

或者還有一個(gè)辦法,把波特率提高,我就喜歡用高波特率,信號(hào)傳輸?shù)臅r(shí)間越短出幺蛾子的概率反而越低,反正有重試,錯(cuò)了再發(fā)~
wenliang
擡頭白雲(yún)悠悠,前竟一片黯愁……
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 717 個(gè)
工控威望: 910 點(diǎn)
下載積分: 43033 分
在線時(shí)間: 547(小時(shí))
注冊(cè)時(shí)間: 2014-04-04
最后登錄: 2024-11-11
查看wenliang的 主題 / 回貼
11樓  發(fā)表于: 2021-12-02 20:04
引用
引用第10樓gxtmdb82164于2021-12-02 16:46發(fā)表的  :
本身modbus是應(yīng)該有重試機(jī)制的,一問(wèn)一答保證每次都會(huì)有回應(yīng),如果沒(méi)收到就重來(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ā)送硬件可能還還沒(méi)準(zhǔn)備好,或者對(duì)方的buffer還沒(méi)清空,這個(gè)是底層硬件和底層系統(tǒng)軟件的機(jī)制決定的,在PLC這樣的環(huán)境中,至少延遲一個(gè)周期是非常有用的方法.
.......

您好 大師!我現(xiàn)在遇到的問(wèn)題是PC發(fā)送數(shù)據(jù)線PLC,當(dāng)PLC收到上位機(jī)的數(shù)時(shí)會(huì)馬上回復(fù)PC說(shuō)已經(jīng)收到數(shù)據(jù)了,但現(xiàn)在會(huì)出現(xiàn)偶爾PLC沒(méi)有回復(fù)PC收到數(shù)據(jù),這樣就導(dǎo)致PC上位機(jī)軟件無(wú)法繼續(xù)運(yùn)行,我換了其他的電腦過(guò)來(lái)測(cè)試也是出現(xiàn)一樣的問(wèn)題,我直接用串口助手來(lái)跟PLC對(duì)發(fā)指令也是會(huì)少收到PLC回復(fù),另外上位機(jī)軟件工程師說(shuō)他的軟件不能重發(fā)數(shù)據(jù)、因?yàn)檎3绦蚨际撬l(fā)送一條數(shù)據(jù)PLC就要回復(fù)一條數(shù)據(jù),就類似心跳包一樣,現(xiàn)在都已經(jīng)沒(méi)有心跳了,所以后面的程序不能執(zhí)行下去了,上位機(jī)軟件是每條指令都有間隔160MS延時(shí)的、他說(shuō)這個(gè)時(shí)間也不能太長(zhǎng)了,所以始終沒(méi)有找到問(wèn)題所在?