假設說我現在要讀取PLC上的資料
現在遇到的問題是,
資料回傳的時候我不知道他會送幾個byte的資料回來,
EX:第一次回傳的訊息是00FF8D <==這樣是6個byte
第二次卻是00FF110 <==這樣是7個byte
因為byte數如果設定為比回傳的byte數大的話,
會出現錯誤,
有什麼辦法能讓程式自動抓取道最後一個byte呢?
圖我晚點再補,
現在傳不上來@@"
假設說我現在要讀取PLC上的資料
現在遇到的問題是,
資料回傳的時候我不知道他會送幾個byte的資料回來,
EX:第一次回傳的訊息是00FF8D <==這樣是6個byte
第二次卻是00FF110 <==這樣是7個byte
因為byte數如果設定為比回傳的byte數大的話,
會出現錯誤,
有什麼辦法能讓程式自動抓取道最後一個byte呢?
圖我晚點再補,
現在傳不上來@@"
[QUOTE=RTX78]
因為byte數如果設定為比回傳的byte數大的話,
會出現錯誤,
有什麼辦法能讓程式自動抓取道最後一個byte呢?
[/QUOTE]
如果是使用RTU模式的話,傳回的數據長度需要自行計算!
使用ASCII模式可以用結尾字元區分資料(比如說CR等),但是速度比較慢啦~!!
okok~
了解了!!
不過我圖片還是傳不上來QQ
感謝上面的大大嚕~
我所用的方式你參考一下
1.送出命令字串
2.等待
3.有幾個BYTE在緩衝區
4.將緩衝區的字串讀回
5.緩衝區的字串為零表示讀完了
6.再解碼讀回的字串是不是可信任的
7.檢查碼的意義可以在這裡發揮
bye238562.9771527778