lightroad
級別: 探索解密
|
使用RS指令與第三方支持MODBUS的數(shù)字量模塊通訊,讀取對方數(shù)字量輸入點。使用串口軟件監(jiān)控收發(fā)數(shù)據(jù)正常,但監(jiān)控FX2N和對方通訊,數(shù)據(jù)不堪入目,不但返回的輸入點跳動,命令的第一、二字(即從站地址和功能碼)也在不同的數(shù)據(jù)間跳動。 程序為不停地讀取從站,M8122或M8123復位后延時10MS~100MS來觸發(fā)M8122。從站通訊口為A,B兩個端子。想不明白,難道同一時刻,發(fā)送和接收均在執(zhí)行,但是程序已作了 M8122和M8123的延時。 求大家指點! |
---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡英雄
|
先監(jiān)控的發(fā)出去的內(nèi)容是否正確,你對了,別人才能回你正確的 |
|
---|---|---|
|
lightroad
級別: 探索解密
|
可以通訊上,可以讀出從站開關量輸入。只是返回數(shù)據(jù)在不同數(shù)據(jù)間跳動。 通訊距離2米。 |
---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡英雄
|
那你就要確定你的M8122是不是一直發(fā)送,或者M8123是否接收到就立馬復位 |
|
---|---|---|
|
lightroad
級別: 探索解密
|
圖片:
圖片:
M8122不是一直為1。否則數(shù)據(jù)不會更新,我的是通訊正常,功能也能實現(xiàn),數(shù)據(jù)可以更新,就是接收數(shù)據(jù)跳動。 |
---|---|
|
二手工控電器
且行且珍惜
級別: 工控俠客
|
看此程序的書寫方式就知道問題所在,一旦通訊出錯就找不到原因所在。建議樓主做個簡單的通訊測試程序,比如:用外部按鈕控制,每按一次按鈕讀取一次數(shù)據(jù),看看是否也存在同樣的問題。 |
|
---|---|---|
|
lightroad
級別: 探索解密
|
圖片:
圖片:
圖片:
寫了一段簡短的程序,依舊如此,能夠返回實際的開關量,但是數(shù)據(jù)跳動。 發(fā)送指令:0B 02 00 10 00 08 78 A3。 0B地址,02讀開關量輸入,0010開關量輸入第一個地址,0008讀8個開關量。 正確的返回指令:0B 02 01 ** AA BB。**代表返回的實際輸入,AA,BB代表校驗碼。 還有一個問題,返回數(shù)據(jù)依次向高字節(jié)移動一個字。如圖三,返回數(shù)據(jù)地址理論應為D7060,實際返回在D7061中,其他依次。 |
---|---|
|
二手工控電器
且行且珍惜
級別: 工控俠客
|
無語! |
|
---|---|---|
|
anlyl2014
大吉大利
級別: 網(wǎng)絡英雄
|
這是舊話重提的了,RS指令的K8是發(fā)送8個數(shù),后面K6是指接收個數(shù)6個,問題出在接收個數(shù)不足,F(xiàn)X2N前的所有型號都有返回碼,也就是說,發(fā)送K8,接收為K8+接收的個數(shù);FX3U后的型號就沒有此問題,解決方法是:接收的K?要足夠大,例如RS D7000 K8 D7010 K30 可參考我發(fā)的例子 |
|
---|---|---|
|
lightroad
級別: 探索解密
|
感謝大神,雖然嘗試沒有效果。改S7-200 MODBUS通訊了。還是喜歡日本風格,簡潔方便。 |
---|---|
|