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


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

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


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

數(shù)據(jù)收發(fā)速度太快不太容易觀察,現(xiàn)在用串口助手測試監(jiān)控收發(fā)能看到有發(fā)送給PLC、而PLC沒有回復(fù)(見下圖),我明白半雙工不能同時收發(fā)的,另外M7我在使用列表里面查過了沒有在其他地方使用,現(xiàn)在情況是上位機發(fā)送的比回復(fù)的多,也就是說PLC少回復(fù)了,正常接收要和發(fā)送的一樣多才對
[ 此帖被wenliang在2021-12-02 12:05重新編輯 ]
zmrs163
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 373 個
工控威望: 521 點
下載積分: 1466 分
在線時間: 324(小時)
注冊時間: 2017-06-12
最后登錄: 2024-11-15
查看zmrs163的 主題 / 回貼
9樓  發(fā)表于: 2021-12-02 14:07
我用兩線制也嘗試收發(fā)了幾萬次也沒有出現(xiàn)你的現(xiàn)象,注意到你每次發(fā)送的報文都是一樣的,建議可以PC每次發(fā)送不同的報文,然后PLC接收后返回此報文,這樣可以判斷PLC是否有接收到此報文。
另外我做了測試,按照你程序的寫法,只要接收到數(shù)據(jù)就必然會發(fā)送,與掃描時間無關(guān),那么就有可能是PLC沒收到或者是PC沒收到,可以按照上述方法排查一下。
gxtmdb82164
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 755 個
工控威望: 1133 點
下載積分: 369 分
在線時間: 591(小時)
注冊時間: 2019-09-22
最后登錄: 2024-11-15
查看gxtmdb82164的 主題 / 回貼
10樓  發(fā)表于: 2021-12-02 16:46
本身modbus是應(yīng)該有重試機制的,一問一答保證每次都會有回應(yīng),如果沒收到就重來一次.

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ā)~
wenliang
擡頭白雲(yún)悠悠,前竟一片黯愁……
級別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 717 個
工控威望: 910 點
下載積分: 43033 分
在線時間: 547(小時)
注冊時間: 2014-04-04
最后登錄: 2024-11-14
查看wenliang的 主題 / 回貼
11樓  發(fā)表于: 2021-12-02 20:04
引用
引用第10樓gxtmdb82164于2021-12-02 16:46發(fā)表的  :
本身modbus是應(yīng)該有重試機制的,一問一答保證每次都會有回應(yīng),如果沒收到就重來一次.

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

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

您好 大師!我現(xiàn)在遇到的問題是PC發(fā)送數(shù)據(jù)線PLC,當PLC收到上位機的數(shù)時會馬上回復(fù)PC說已經(jīng)收到數(shù)據(jù)了,但現(xiàn)在會出現(xiàn)偶爾PLC沒有回復(fù)PC收到數(shù)據(jù),這樣就導(dǎo)致PC上位機軟件無法繼續(xù)運行,我換了其他的電腦過來測試也是出現(xiàn)一樣的問題,我直接用串口助手來跟PLC對發(fā)指令也是會少收到PLC回復(fù),另外上位機軟件工程師說他的軟件不能重發(fā)數(shù)據(jù)、因為正常程序都是他發(fā)送一條數(shù)據(jù)PLC就要回復(fù)一條數(shù)據(jù),就類似心跳包一樣,現(xiàn)在都已經(jīng)沒有心跳了,所以后面的程序不能執(zhí)行下去了,上位機軟件是每條指令都有間隔160MS延時的、他說這個時間也不能太長了,所以始終沒有找到問題所在?
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go