二郎神
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 42 個
工控威望: 173 點
下載積分: 2664 分
在線時間: 11(小時)
注冊時間: 2019-08-08
最后登錄: 2021-03-25
查看二郎神的 主題 / 回貼
樓主  發(fā)表于: 2021-01-28 17:03
硬件組成:FX3U-16MT+FX3U-485BD+485儀表
采用8位數(shù)據(jù)模式,M8161=ON
讀取儀表數(shù)據(jù)命令幀(16進制):01 03 00 04 00 01 C5 CB    
PLC發(fā)送RS程序:M8000 RS D200 K8 D100 K7
當接收存儲器高位D103值小于等于K127時正常。
當接收存儲器高位D103值大于K127時解析數(shù)據(jù)變負數(shù)了。
用串口助手測試過讀取值正常,但在PLC程序解析就不對了,不知道問題出在哪里?
大家?guī)兔纯,謝謝了。
tingfenghu
級別: 工控俠客

精華主題: 0
發(fā)帖數(shù)量: 2848 個
工控威望: 3620 點
下載積分: 3523 分
在線時間: 3811(小時)
注冊時間: 2007-11-04
最后登錄: 2025-01-05
查看tingfenghu的 主題 / 回貼
1樓  發(fā)表于: 2021-01-28 17:54
寄存器是8位二進制0和1,不分正負,主要看怎么處理數(shù)據(jù),
有符號值FF對應-128~127,無符號對應該是0-255,
檢查接收的數(shù)值沒問題?數(shù)值正確,更改一下有符號和無符號顯示就可以。
二手PLC,觸摸屏,伺服驅動,各類氣動設備
http://shop58129605.taobao.com/
tingfenghu
級別: 工控俠客

精華主題: 0
發(fā)帖數(shù)量: 2848 個
工控威望: 3620 點
下載積分: 3523 分
在線時間: 3811(小時)
注冊時間: 2007-11-04
最后登錄: 2025-01-05
查看tingfenghu的 主題 / 回貼
2樓  發(fā)表于: 2021-01-28 21:27
引用
引用第5樓二郎神于2021-01-28 18:14發(fā)表的  :

接收數(shù)值沒有問題,應該是我處理數(shù)據(jù)的方法不對。PLC單個寄存器是16位的,保存數(shù)據(jù)范圍-32767-32767,而RS指令采用8位數(shù)據(jù)模式時只處理低8位的值。

16位數(shù)據(jù)需要將兩個寄存器合并。
二手PLC,觸摸屏,伺服驅動,各類氣動設備
http://shop58129605.taobao.com/