特立獨行
級別: 略有小成
|
現(xiàn)在用的是FX3U與步進電機驅動器通過485雙線通訊,即半雙工。現(xiàn)在出現(xiàn)的問題是PLC能正常的發(fā)送數(shù)據(jù)給驅動器,但不能正常的接收驅動器返回的數(shù)據(jù),接收到的數(shù)據(jù)混亂,偶爾能接收到正常的。通訊格式設置的是H0C81,RS指令見附件。求教各位,應該怎么解決?步進電機驅動器已經用電腦的串口監(jiān)視過,收發(fā)沒問題。PLC也是。 程序(部分) |
---|---|
|
zhangqi_1234
級別: 略有小成
|
這是三菱RS指令的問題,收發(fā)數(shù)據(jù)幾乎是同時進行,中間沒有時間的間隔,容易收到回傳的數(shù)據(jù)。解決的方法有兩種: 1、改用四線制連接,發(fā)送和接收的線路分開。 2、修改RS指令,發(fā)送數(shù)據(jù)時,設定接收0個數(shù)據(jù),然后延時3.5個字節(jié)時間(9600bps,約30ms),再發(fā)送0個數(shù)據(jù),接收n個數(shù)據(jù)。 第2種方法是否有效,需要驗證。我采用的是第1種方法。 |
---|---|
|
特立獨行
級別: 略有小成
|
目前的設備情況無法改成4線制的。由于485設備是收到PLC的指令后立刻響應一串數(shù)據(jù),因此若設置延時,將收不到設備響應的數(shù)據(jù)。 現(xiàn)在我想嘗試用232口做通訊,然后經過232轉485的轉換器連接到485設備上。但我現(xiàn)在沒有搞明白:怎么選擇通訊口,我現(xiàn)在只能從 485口讀到數(shù)據(jù),232口讀不到數(shù)據(jù)。想請問怎么選擇使用232口做通訊。 我現(xiàn)在將232口和485口通過usb轉換都連接到電腦上,通過串口調試助手監(jiān)控。232口無法進行傳輸數(shù)據(jù) [ 此帖被特立獨行在2017-11-15 11:40重新編輯 ] |
---|---|
|
zhangqi_1234
級別: 略有小成
|
RS232轉485,轉換了信號電平,但不能使收發(fā)數(shù)據(jù)線分開。如果用RS指令,還是容易出現(xiàn)收到反射回來的數(shù)據(jù)。我還是那個意見:如果用第二種方法,發(fā)送數(shù)據(jù)時,設置接收0個數(shù)據(jù),中間延時一段時間,再發(fā)送0個數(shù)據(jù),接收n個數(shù)據(jù)。難度在于延時時間的調節(jié),30ms不行,就調成10ms、20ms、40ms嘗試。實在不行,只有在硬件上增加FX3U-485ADP-MB適配器,使用ADPRW指令。另外,如果PLC使用RS232通信功能板,那么就按RS232方式設置通信參數(shù)。 [ 此帖被zhangqi_1234在2017-11-16 21:45重新編輯 ] |
---|---|
|
特立獨行
級別: 略有小成
|
圖片:
圖片:
我已經嘗試設置延時,從10ms到30ms,隔5ms嘗試一次。收到的數(shù)據(jù)均為0。程序如圖 |
---|---|
|
zhangqi_1234
級別: 略有小成
|
1、使某個位元件置1(如M10),執(zhí)行發(fā)送數(shù)據(jù)的RS指令,接著把數(shù)據(jù)傳送到發(fā)射緩沖區(qū)。然后用邊沿脈沖使M8122置1,開始發(fā)送數(shù)據(jù)。收到回復后M8123置1,需要同時對M10和M8123復位,避免發(fā)送數(shù)據(jù)的指令一直有效。你的程序中使用的是T200,程序中沒有看到對T200的復位。 2、間隔一段時間(間隔時間與通信速率有關,如9600,表示每秒發(fā)送1200個字節(jié),間隔3.5個字符,約3ms左右,可適當調節(jié)。如果間隔時間太短,就降低通信速率)后,使某個位元件置1(如M11),執(zhí)行接收數(shù)據(jù)的RS指令,然后用邊沿脈沖使M8122置1,開始接收數(shù)據(jù),收到回復后M8123置1,需要同時對M11和M8123復位。 在論壇上有人提過,采用這種方式能收到二線式連接從站回復的數(shù)據(jù)。祝你好運! [ 此帖被zhangqi_1234在2017-11-17 19:56重新編輯 ] |
---|---|
|