特立獨(dú)行
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 6 個(gè)
工控威望: 205 點(diǎn)
下載積分: 470 分
在線時(shí)間: 2(小時(shí))
注冊(cè)時(shí)間: 2017-11-05
最后登錄: 2018-03-22
查看特立獨(dú)行的 主題 / 回貼
樓主  發(fā)表于: 2017-11-15 10:00
現(xiàn)在用的是FX3U與步進(jìn)電機(jī)驅(qū)動(dòng)器通過(guò)485雙線通訊,即半雙工。現(xiàn)在出現(xiàn)的問(wèn)題是PLC能正常的發(fā)送數(shù)據(jù)給驅(qū)動(dòng)器,但不能正常的接收驅(qū)動(dòng)器返回的數(shù)據(jù),接收到的數(shù)據(jù)混亂,偶爾能接收到正常的。通訊格式設(shè)置的是H0C81,RS指令見(jiàn)附件。求教各位,應(yīng)該怎么解決?步進(jìn)電機(jī)驅(qū)動(dòng)器已經(jīng)用電腦的串口監(jiān)視過(guò),收發(fā)沒(méi)問(wèn)題。PLC也是。 程序(部分)


zhangqi_1234
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 342 個(gè)
工控威望: 493 點(diǎn)
下載積分: 4015 分
在線時(shí)間: 249(小時(shí))
注冊(cè)時(shí)間: 2013-03-22
最后登錄: 2024-09-19
查看zhangqi_1234的 主題 / 回貼
1樓  發(fā)表于: 2017-11-15 10:41
這是三菱RS指令的問(wèn)題,收發(fā)數(shù)據(jù)幾乎是同時(shí)進(jìn)行,中間沒(méi)有時(shí)間的間隔,容易收到回傳的數(shù)據(jù)。解決的方法有兩種:
1、改用四線制連接,發(fā)送和接收的線路分開(kāi)。
2、修改RS指令,發(fā)送數(shù)據(jù)時(shí),設(shè)定接收0個(gè)數(shù)據(jù),然后延時(shí)3.5個(gè)字節(jié)時(shí)間(9600bps,約30ms),再發(fā)送0個(gè)數(shù)據(jù),接收n個(gè)數(shù)據(jù)。
第2種方法是否有效,需要驗(yàn)證。我采用的是第1種方法。
zhangqi_1234
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 342 個(gè)
工控威望: 493 點(diǎn)
下載積分: 4015 分
在線時(shí)間: 249(小時(shí))
注冊(cè)時(shí)間: 2013-03-22
最后登錄: 2024-09-19
查看zhangqi_1234的 主題 / 回貼
2樓  發(fā)表于: 2017-11-16 21:03
RS232轉(zhuǎn)485,轉(zhuǎn)換了信號(hào)電平,但不能使收發(fā)數(shù)據(jù)線分開(kāi)。如果用RS指令,還是容易出現(xiàn)收到反射回來(lái)的數(shù)據(jù)。我還是那個(gè)意見(jiàn):如果用第二種方法,發(fā)送數(shù)據(jù)時(shí),設(shè)置接收0個(gè)數(shù)據(jù),中間延時(shí)一段時(shí)間,再發(fā)送0個(gè)數(shù)據(jù),接收n個(gè)數(shù)據(jù)。難度在于延時(shí)時(shí)間的調(diào)節(jié),30ms不行,就調(diào)成10ms、20ms、40ms嘗試。實(shí)在不行,只有在硬件上增加FX3U-485ADP-MB適配器,使用ADPRW指令。另外,如果PLC使用RS232通信功能板,那么就按RS232方式設(shè)置通信參數(shù)。
[ 此帖被zhangqi_1234在2017-11-16 21:45重新編輯 ]
zhangqi_1234
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 342 個(gè)
工控威望: 493 點(diǎn)
下載積分: 4015 分
在線時(shí)間: 249(小時(shí))
注冊(cè)時(shí)間: 2013-03-22
最后登錄: 2024-09-19
查看zhangqi_1234的 主題 / 回貼
3樓  發(fā)表于: 2017-11-17 19:51
1、使某個(gè)位元件置1(如M10),執(zhí)行發(fā)送數(shù)據(jù)的RS指令,接著把數(shù)據(jù)傳送到發(fā)射緩沖區(qū)。然后用邊沿脈沖使M8122置1,開(kāi)始發(fā)送數(shù)據(jù)。收到回復(fù)后M8123置1,需要同時(shí)對(duì)M10和M8123復(fù)位,避免發(fā)送數(shù)據(jù)的指令一直有效。你的程序中使用的是T200,程序中沒(méi)有看到對(duì)T200的復(fù)位。
2、間隔一段時(shí)間(間隔時(shí)間與通信速率有關(guān),如9600,表示每秒發(fā)送1200個(gè)字節(jié),間隔3.5個(gè)字符,約3ms左右,可適當(dāng)調(diào)節(jié)。如果間隔時(shí)間太短,就降低通信速率)后,使某個(gè)位元件置1(如M11),執(zhí)行接收數(shù)據(jù)的RS指令,然后用邊沿脈沖使M8122置1,開(kāi)始接收數(shù)據(jù),收到回復(fù)后M8123置1,需要同時(shí)對(duì)M11和M8123復(fù)位。
在論壇上有人提過(guò),采用這種方式能收到二線式連接從站回復(fù)的數(shù)據(jù)。祝你好運(yùn)!
[ 此帖被zhangqi_1234在2017-11-17 19:56重新編輯 ]