勤工儉學(xué)
deep throat
級別: 論壇先鋒
![]() |
rs2指令,通道2,參數設置如下圖。 ![]() plc與電腦通信,數據發(fā)送正常,接收也正常。 但是如果電腦沒(méi)有發(fā)送數據的話(huà),plc通信超時(shí)標志位不會(huì )接通。哪怕是一頓午飯的時(shí)間,依然沒(méi)有通信超時(shí)。 中午飯后發(fā)現沒(méi)有通信超時(shí),我嘗試從電腦發(fā)送一段數據給plc,plc接收了,完成一次發(fā)送接收。 我查看手冊,手冊里部分內容如下。 “當接收數據中途中斷時(shí),從這一刻開(kāi)始,如果經(jīng)過(guò)了超時(shí)時(shí)間設定中的時(shí)間,卻依然沒(méi)有收到下一個(gè)數據,則通信超時(shí)判定標志位置ON! 是不是數據發(fā)送結束后,并沒(méi)有進(jìn)入”數據接收“的狀態(tài),要有數據或著(zhù)其他什么東西來(lái)觸發(fā)接收。 所以沒(méi)有搞明白為什么通信超時(shí)不起作用。 先謝謝各位大神了。 |
---|---|
|
ntbigcg
級別: 探索解密
![]() |
這個(gè)有點(diǎn)復雜了,1、你PLC里用的是什么方式發(fā)送數據的,用RS?如果用了,就會(huì )一直在發(fā)送接收,除非指令不發(fā)送接收。你如果加了超時(shí)判定標志斷開(kāi)了發(fā)送接收,那你得有程序來(lái)恢復發(fā)送接收。2、如果你沒(méi)用RS,而是用上位機,那上位機程序里判斷超時(shí)設置后有沒(méi)有用恢復通訊功能?還有要檢查上位機的每次發(fā)送接收之間有沒(méi)有加延時(shí)防止通訊來(lái)不及反應導致的通訊錯誤,通訊錯誤就會(huì )發(fā)生超時(shí)。 從問(wèn)題來(lái)看,你是用了RS的,你用RS發(fā)送的時(shí)候與上位機怎樣協(xié)商的,是不是需要上位機回發(fā)數據,如果有回發(fā),你PLC里有沒(méi)有等回發(fā)結束再給上位機發(fā)送,如果沒(méi)有加這個(gè)判斷,很容易發(fā)生錯誤的,一發(fā)生錯誤通訊就死掉了。 [ 此帖被ntbigcg在2020-03-23 07:49重新編輯 ] |
---|---|
|
勤工儉學(xué)
deep throat
級別: 論壇先鋒
![]() |
先謝謝你的回帖~ 用的是rs2指令和電腦進(jìn)行通信的,F在是plc送出數據后,等電腦回發(fā)數據,這樣完成一次簡(jiǎn)單的通信。昨天發(fā)現電腦沒(méi)有回發(fā)數據,plc這邊就一直等待電腦回發(fā),沒(méi)有通信超時(shí)。我想是不是某個(gè)參數沒(méi)有設置好,造成通信超時(shí)沒(méi)有起作用。 |
---|---|
|
無(wú)良!
有事加我頭像微信
級別: 略有小成
![]() |
沒(méi)用過(guò)三菱。。。 PLC發(fā)出數據而沒(méi)有接受數據,我認為有兩種情況 1.你發(fā)送的格式,類(lèi)似報文那樣,校驗之類(lèi)的對不對? 2.PLC發(fā)給上位機,上位機有沒(méi)有收到數據會(huì )自動(dòng)返回數據給下位機,還是說(shuō)要手動(dòng)用上位機給下位機發(fā)送一串數據,這樣才能形成一個(gè)發(fā)送與接受的過(guò)程 |
|
---|---|---|
|
勤工儉學(xué)
deep throat
級別: 論壇先鋒
![]() |
謝謝啦~ 報文格式以及校驗是沒(méi)有問(wèn)題的,F在主要是plc這邊的通信超時(shí)功能不起作用。標志位m8429沒(méi)有動(dòng)作。 |
---|---|
|
無(wú)良!
有事加我頭像微信
級別: 略有小成
![]() |
這個(gè)通訊超時(shí)功能,是不是用在只發(fā)不收時(shí)的情況? 你完成一次通訊,說(shuō)明沒(méi)有錯誤 |
|
---|---|---|
|
勤工儉學(xué)
deep throat
級別: 論壇先鋒
![]() |
是的,只用在只發(fā)不收的情況。我是在無(wú)意中發(fā)現這個(gè)情況。 |
---|---|
|
勤工儉學(xué)
deep throat
級別: 論壇先鋒
![]() |
我仔細看了手冊,在rs2指令發(fā)送數據后,不會(huì )馬上進(jìn)入數據接收狀態(tài)。 手冊里有一段話(huà),如下。 執行了RS2指令后, 變?yōu)榈却邮諣顟B(tài)。 從連接的設備接收數據, 當接收數據結束時(shí), 接收結束標志位置ON。 在等待接收狀態(tài)下接收到數據后, 數據的接收就開(kāi)始了。 數據接收開(kāi)始后, 以中斷方式保存接收數據, 而與運算周期無(wú)關(guān)。 但是, 當在通信格式中指定了報頭時(shí), 連續接收到報頭中設定的代碼時(shí), 接收才開(kāi)始。 除報頭以外的接收數據被保存。 這段話(huà)說(shuō)明有在數據接收之前有一個(gè)狀態(tài),是等待接收狀態(tài)。這個(gè)等待狀態(tài)需要接收到數據后才會(huì )切換到接收中的狀態(tài)。所以在等待接收狀態(tài)中是不會(huì )產(chǎn)生通信超時(shí)的。通信超時(shí)產(chǎn)生于數據接收的過(guò)程中。 不知道我的理解對不對。 |
---|---|
|