二郎神
級別: 探索解密
|
硬件組成: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ī)兔纯矗x謝了。 |
---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
|
先測試不需要校驗碼的,也是就是自己算出校驗碼,直接發(fā)送過去 |
|
---|---|---|
|
tingfenghu
級別: 工控俠客
|
寄存器是8位二進制0和1,不分正負,主要看怎么處理數(shù)據(jù), 有符號值FF對應(yīng)-128~127,無符號對應(yīng)該是0-255, 檢查接收的數(shù)值沒問題?數(shù)值正確,更改一下有符號和無符號顯示就可以。 |
|
---|---|---|
|
二郎神
級別: 探索解密
|
跟校驗碼沒關(guān)系,我已經(jīng)在發(fā)送命令幀中直接包含了,末端兩位就是校驗碼。 |
---|---|
|
二郎神
級別: 探索解密
|
接收數(shù)值沒有問題,應(yīng)該是我處理數(shù)據(jù)的方法不對。PLC單個寄存器是16位的,保存數(shù)據(jù)范圍-32767-32767,而RS指令采用8位數(shù)據(jù)模式時只處理低8位的值。 |
---|---|
|
tingfenghu
級別: 工控俠客
|
16位數(shù)據(jù)需要將兩個寄存器合并。 |
|
---|---|---|
|