勤工儉學(xué)
deep throat
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 188 個
工控威望: 1567 點
下載積分: 5955 分
在線時間: 120(小時)
注冊時間: 2016-03-10
最后登錄: 2024-09-27
查看勤工儉學(xué)的 主題 / 回貼
樓主  發(fā)表于: 2020-03-22 12:25
rs2指令,通道2,參數(shù)設(shè)置如下圖。


plc與電腦通信,數(shù)據(jù)發(fā)送正常,接收也正常。
但是如果電腦沒有發(fā)送數(shù)據(jù)的話,plc通信超時標(biāo)志位不會接通。哪怕是一頓午飯的時間,依然沒有通信超時。
中午飯后發(fā)現(xiàn)沒有通信超時,我嘗試從電腦發(fā)送一段數(shù)據(jù)給plc,plc接收了,完成一次發(fā)送接收。
我查看手冊,手冊里部分內(nèi)容如下。
“當(dāng)接收數(shù)據(jù)中途中斷時,從這一刻開始,如果經(jīng)過了超時時間設(shè)定中的時間,卻依然沒有收到下一個數(shù)據(jù),則通信超時判定標(biāo)志位置ON!
是不是數(shù)據(jù)發(fā)送結(jié)束后,并沒有進(jìn)入”數(shù)據(jù)接收“的狀態(tài),要有數(shù)據(jù)或著其他什么東西來觸發(fā)接收。
所以沒有搞明白為什么通信超時不起作用。
先謝謝各位大神了。
ntbigcg
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 132 個
工控威望: 170 點
下載積分: 52725 分
在線時間: 58(小時)
注冊時間: 2020-02-22
最后登錄: 2024-12-26
查看ntbigcg的 主題 / 回貼
1樓  發(fā)表于: 2020-03-23 07:44
這個有點復(fù)雜了,1、你PLC里用的是什么方式發(fā)送數(shù)據(jù)的,用RS?如果用了,就會一直在發(fā)送接收,除非指令不發(fā)送接收。你如果加了超時判定標(biāo)志斷開了發(fā)送接收,那你得有程序來恢復(fù)發(fā)送接收。2、如果你沒用RS,而是用上位機(jī),那上位機(jī)程序里判斷超時設(shè)置后有沒有用恢復(fù)通訊功能?還有要檢查上位機(jī)的每次發(fā)送接收之間有沒有加延時防止通訊來不及反應(yīng)導(dǎo)致的通訊錯誤,通訊錯誤就會發(fā)生超時。
從問題來看,你是用了RS的,你用RS發(fā)送的時候與上位機(jī)怎樣協(xié)商的,是不是需要上位機(jī)回發(fā)數(shù)據(jù),如果有回發(fā),你PLC里有沒有等回發(fā)結(jié)束再給上位機(jī)發(fā)送,如果沒有加這個判斷,很容易發(fā)生錯誤的,一發(fā)生錯誤通訊就死掉了。
[ 此帖被ntbigcg在2020-03-23 07:49重新編輯 ]
勤工儉學(xué)
deep throat
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 188 個
工控威望: 1567 點
下載積分: 5955 分
在線時間: 120(小時)
注冊時間: 2016-03-10
最后登錄: 2024-09-27
查看勤工儉學(xué)的 主題 / 回貼
2樓  發(fā)表于: 2020-03-23 09:42
引用
引用第1樓ntbigcg于2020-03-23 07:44發(fā)表的  :
這個有點復(fù)雜了,1、你PLC里用的是什么方式發(fā)送數(shù)據(jù)的,用RS?如果用了,就會一直在發(fā)送接收,除非指令不發(fā)送接收。你如果加了超時判定標(biāo)志斷開了發(fā)送接收,那你得有程序來恢復(fù)發(fā)送接收。2、如果你沒用RS,而是用上位機(jī),那上位機(jī)程序里判斷超時設(shè)置后有沒有用恢復(fù)通訊功能?還有要檢查上位機(jī)的每次發(fā)送接收之間有沒有加延時防止通訊來不及反應(yīng)導(dǎo)致的通訊錯誤,通訊錯誤就會發(fā)生超時。
從問題來看,你是用了RS的,你用RS發(fā)送的時候與上位機(jī)怎樣協(xié)商的,是不是需要上位機(jī)回發(fā)數(shù)據(jù),如果有回發(fā),你PLC里有沒有等回發(fā)結(jié)束再給上位機(jī)發(fā)送,如果沒有加這個判斷,很容易發(fā)生錯誤的,一發(fā)生錯誤通訊就死掉了。

先謝謝你的回帖~
用的是rs2指令和電腦進(jìn)行通信的,F(xiàn)在是plc送出數(shù)據(jù)后,等電腦回發(fā)數(shù)據(jù),這樣完成一次簡單的通信。昨天發(fā)現(xiàn)電腦沒有回發(fā)數(shù)據(jù),plc這邊就一直等待電腦回發(fā),沒有通信超時。我想是不是某個參數(shù)沒有設(shè)置好,造成通信超時沒有起作用。
無良!
有事加我頭像微信
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 138 個
工控威望: 248 點
下載積分: 7751 分
在線時間: 117(小時)
注冊時間: 2020-01-15
最后登錄: 2024-12-23
查看無良!的 主題 / 回貼
3樓  發(fā)表于: 2020-03-23 12:11
沒用過三菱。。。
PLC發(fā)出數(shù)據(jù)而沒有接受數(shù)據(jù),我認(rèn)為有兩種情況
1.你發(fā)送的格式,類似報文那樣,校驗之類的對不對?
2.PLC發(fā)給上位機(jī),上位機(jī)有沒有收到數(shù)據(jù)會自動返回數(shù)據(jù)給下位機(jī),還是說要手動用上位機(jī)給下位機(jī)發(fā)送一串?dāng)?shù)據(jù),這樣才能形成一個發(fā)送與接受的過程
有事加我頭像微信
勤工儉學(xué)
deep throat
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 188 個
工控威望: 1567 點
下載積分: 5955 分
在線時間: 120(小時)
注冊時間: 2016-03-10
最后登錄: 2024-09-27
查看勤工儉學(xué)的 主題 / 回貼
4樓  發(fā)表于: 2020-03-23 15:00
引用
引用第3樓無良!于2020-03-23 12:11發(fā)表的  :
沒用過三菱。。。
PLC發(fā)出數(shù)據(jù)而沒有接受數(shù)據(jù),我認(rèn)為有兩種情況
1.你發(fā)送的格式,類似報文那樣,校驗之類的對不對?
2.PLC發(fā)給上位機(jī),上位機(jī)有沒有收到數(shù)據(jù)會自動返回數(shù)據(jù)給下位機(jī),還是說要手動用上位機(jī)給下位機(jī)發(fā)送一串?dāng)?shù)據(jù),這樣才能形成一個發(fā)送與接受的過程

謝謝啦~
報文格式以及校驗是沒有問題的,F(xiàn)在主要是plc這邊的通信超時功能不起作用。標(biāo)志位m8429沒有動作。
無良!
有事加我頭像微信
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 138 個
工控威望: 248 點
下載積分: 7751 分
在線時間: 117(小時)
注冊時間: 2020-01-15
最后登錄: 2024-12-23
查看無良!的 主題 / 回貼
5樓  發(fā)表于: 2020-03-24 21:34
這個通訊超時功能,是不是用在只發(fā)不收時的情況?
你完成一次通訊,說明沒有錯誤
有事加我頭像微信
勤工儉學(xué)
deep throat
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 188 個
工控威望: 1567 點
下載積分: 5955 分
在線時間: 120(小時)
注冊時間: 2016-03-10
最后登錄: 2024-09-27
查看勤工儉學(xué)的 主題 / 回貼
6樓  發(fā)表于: 2020-03-30 18:35
引用
引用第5樓無良!于2020-03-24 21:34發(fā)表的  :
這個通訊超時功能,是不是用在只發(fā)不收時的情況?
你完成一次通訊,說明沒有錯誤

是的,只用在只發(fā)不收的情況。我是在無意中發(fā)現(xiàn)這個情況。
勤工儉學(xué)
deep throat
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 188 個
工控威望: 1567 點
下載積分: 5955 分
在線時間: 120(小時)
注冊時間: 2016-03-10
最后登錄: 2024-09-27
查看勤工儉學(xué)的 主題 / 回貼
7樓  發(fā)表于: 2020-03-30 18:42
我仔細(xì)看了手冊,在rs2指令發(fā)送數(shù)據(jù)后,不會馬上進(jìn)入數(shù)據(jù)接收狀態(tài)。
手冊里有一段話,如下。
執(zhí)行了RS2指令后, 變?yōu)榈却邮諣顟B(tài)。 從連接的設(shè)備接收數(shù)據(jù), 當(dāng)接收數(shù)據(jù)結(jié)束時, 接收結(jié)束標(biāo)志位置ON。
在等待接收狀態(tài)下接收到數(shù)據(jù)后, 數(shù)據(jù)的接收就開始了。
數(shù)據(jù)接收開始后, 以中斷方式保存接收數(shù)據(jù), 而與運算周期無關(guān)。
但是, 當(dāng)在通信格式中指定了報頭時, 連續(xù)接收到報頭中設(shè)定的代碼時, 接收才開始。 除報頭以外的接收數(shù)據(jù)被保存。
這段話說明有在數(shù)據(jù)接收之前有一個狀態(tài),是等待接收狀態(tài)。這個等待狀態(tài)需要接收到數(shù)據(jù)后才會切換到接收中的狀態(tài)。所以在等待接收狀態(tài)中是不會產(chǎn)生通信超時的。通信超時產(chǎn)生于數(shù)據(jù)接收的過程中。
不知道我的理解對不對。