wenliang
擡頭白雲悠悠,前竟一片黯愁……
級別: 家園?
![]() |
請問(wèn)各位大師三菱MODBUS通訊,現在問(wèn)題是PC發(fā)送一條數據給PLC,當PLC收到數據時(shí)M8123動(dòng)作、而且馬上回復PC已經(jīng)收到指令,但是現連機訊運行時(shí)偶而會(huì )出現PC發(fā)送數據給PLC、而PLC收到后并沒(méi)有回復PC,現在用串口軟件來(lái)測試也是一樣的情況,PC輪詢(xún)指令間隔時(shí)間160MS,輪詢(xún)N多條指令后就會(huì )出現PLC少回復的情況,另外也問(wèn)過(guò)三菱客戶(hù)了,說(shuō)是把D8129超時(shí)改成1也沒(méi)有用,不知道各位大師有什么高見(jiàn),煩請多多指點(diǎn)一下,在此謝過(guò)了。! ![]() ![]() ![]() ![]() [ 此帖被wenliang在2021-12-01 09:32重新編輯 ] |
---|---|
|
wenliang
擡頭白雲悠悠,前竟一片黯愁……
級別: 家園?
![]() |
請問(wèn)如圖所示,PLC發(fā)送14個(gè)字符時(shí)間為17.5MS,那么接收PC14個(gè)字符是不是按同理17.5MS計算,可是為什輪詢(xún)間隔都設成160MS了為什么PLC還是會(huì )偶而沒(méi)有回復呢?另外PC做了一個(gè)判斷、當收不到PLC的回復時(shí)PC就不在輪詢(xún)了停在當前狀態(tài)。 ![]() ![]() |
---|---|
|
wenliang
擡頭白雲悠悠,前竟一片黯愁……
級別: 家園?
![]() |
程序上面看不出什么問(wèn)題,當M8123接收到指令時(shí),立馬就啟動(dòng)M8122回復PC,上面圖片上有程序就是接收和發(fā)送的,然后就是一直往復接收發(fā)送,沒(méi)有理由程序還有什么其他延時(shí)不回復的情況? ![]() ![]() ![]() |
---|---|
|
wenliang
擡頭白雲悠悠,前竟一片黯愁……
級別: 家園?
![]() |
早上又問(wèn)了三菱客服,說(shuō)讓降低頻率發(fā)送報文,還是沒(méi)有找到問(wèn)題所在 ![]() ![]() ![]() |
---|---|
|
zmrs163
級別: 家園?
![]() |
圖片:
![]() 兩線(xiàn)制還是四線(xiàn)制,我寫(xiě)了個(gè)腳本沒(méi)設置延時(shí),PLC和PC都是收到就發(fā)。300多秒收發(fā)了10000多次沒(méi)出現你的情況 |
---|---|
|
wenliang
擡頭白雲悠悠,前竟一片黯愁……
級別: 家園?
![]() |
是二線(xiàn)制通訊的,我就是用串口調試助手160MS循環(huán)測試都會(huì )偶爾會(huì )少發(fā)幾條指令,PLC也是沒(méi)有設置任何延時(shí),收到數據就會(huì )馬上回復,所以沒(méi)有找到問(wèn)題所在,不知道大師你們的程序是如何收發(fā)數據的呢,另外我現在收發(fā)都是14個(gè)字符沒(méi)有關(guān)系吧?下圖是通訊設置和數據收發(fā)程式,還大師請多多指點(diǎn),在此謝過(guò)了! ![]() ![]() ![]() [ 此帖被wenliang在2021-12-01 19:27重新編輯 ] |
---|---|
|
jacking
級別: 正式會(huì )員
![]() |
你有沒(méi)有觀(guān)察你在收時(shí)會(huì )不會(huì )發(fā),兩線(xiàn)半雙工不能同時(shí)收發(fā),觀(guān)察下M7會(huì )不會(huì )偶然間誤觸發(fā)導致的沒(méi)有收到。 |
---|---|
|
wenliang
擡頭白雲悠悠,前竟一片黯愁……
級別: 家園?
![]() |
數據收發(fā)速度太快不太容易觀(guān)察,現在用串口助手測試監控收發(fā)能看到有發(fā)送給PLC、而PLC沒(méi)有回復(見(jiàn)下圖),我明白半雙工不能同時(shí)收發(fā)的,另外M7我在使用列表里面查過(guò)了沒(méi)有在其他地方使用,現在情況是上位機發(fā)送的比回復的多,也就是說(shuō)PLC少回復了,正常接收要和發(fā)送的一樣多才對 ![]() ![]() [ 此帖被wenliang在2021-12-02 12:05重新編輯 ] |
---|---|
|
zmrs163
級別: 家園?
![]() |
我用兩線(xiàn)制也嘗試收發(fā)了幾萬(wàn)次也沒(méi)有出現你的現象,注意到你每次發(fā)送的報文都是一樣的,建議可以PC每次發(fā)送不同的報文,然后PLC接收后返回此報文,這樣可以判斷PLC是否有接收到此報文。 另外我做了測試,按照你程序的寫(xiě)法,只要接收到數據就必然會(huì )發(fā)送,與掃描時(shí)間無(wú)關(guān),那么就有可能是PLC沒(méi)收到或者是PC沒(méi)收到,可以按照上述方法排查一下。 |
---|---|
|
gxtmdb82164
級別: 論壇先鋒
![]() |
本身modbus是應該有重試機制的,一問(wèn)一答保證每次都會(huì )有回應,如果沒(méi)收到就重來(lái)一次. LZ可以試試看PC對PC發(fā)送和PLC對PLC發(fā)送,一端固定不變就是你現在的PC程序和PLC程序,另一端寫(xiě)一個(gè)最簡(jiǎn)單的收發(fā)程序,這樣跑一段時(shí)間來(lái)看一下結果如何. 最后提醒一個(gè)點(diǎn)是這樣的,兩線(xiàn)串口這種半雙工的通信程序,要給數據傳輸完成留時(shí)間,換言之并不是收到了馬上就發(fā)送硬件可能還還沒(méi)準備好,或者對方的buffer還沒(méi)清空,這個(gè)是底層硬件和底層系統軟件的機制決定的,在PLC這樣的環(huán)境中,至少延遲一個(gè)周期是非常有用的方法. 或者還有一個(gè)辦法,把波特率提高,我就喜歡用高波特率,信號傳輸的時(shí)間越短出幺蛾子的概率反而越低,反正有重試,錯了再發(fā)~ |
---|---|
|
wenliang
擡頭白雲悠悠,前竟一片黯愁……
級別: 家園?
![]() |
您好 大師!我現在遇到的問(wèn)題是PC發(fā)送數據線(xiàn)PLC,當PLC收到上位機的數時(shí)會(huì )馬上回復PC說(shuō)已經(jīng)收到數據了,但現在會(huì )出現偶爾PLC沒(méi)有回復PC收到數據,這樣就導致PC上位機軟件無(wú)法繼續運行,我換了其他的電腦過(guò)來(lái)測試也是出現一樣的問(wèn)題,我直接用串口助手來(lái)跟PLC對發(fā)指令也是會(huì )少收到PLC回復,另外上位機軟件工程師說(shuō)他的軟件不能重發(fā)數據、因為正常程序都是他發(fā)送一條數據PLC就要回復一條數據,就類(lèi)似心跳包一樣,現在都已經(jīng)沒(méi)有心跳了,所以后面的程序不能執行下去了,上位機軟件是每條指令都有間隔160MS延時(shí)的、他說(shuō)這個(gè)時(shí)間也不能太長(cháng)了,所以始終沒(méi)有找到問(wèn)題所在? |
---|---|
|