二郎神
级别: 探索解密
精华主题: 0
发帖数量: 42 个
工控威望: 173 点
下载积分: 2664 分
在线时间: 11(小时)
注册时间: 2019-08-08
最后登录: 2021-03-25
查看二郎神的 主题 / 回贴
楼主  发表于: 2021-01-28 17:03
硬件组成:FX3U-16MT+FX3U-485BD+485仪表
采用8位数据模式,M8161=ON
读取仪表数据命令帧(16进制):01 03 00 04 00 01 C5 CB    
PLC发送RS程序:M8000 RS D200 K8 D100 K7
当接收存储器高位D103值小于等于K127时正常。
当接收存储器高位D103值大于K127时解析数据变负数了。
用串口助手测试过读取值正常,但在PLC程序解析就不对了,不知道问题出在哪里?
大家帮忙看看,谢谢了。
tingfenghu
级别: 工控侠客

精华主题: 0
发帖数量: 2795 个
工控威望: 3567 点
下载积分: 3413 分
在线时间: 3719(小时)
注册时间: 2007-11-04
最后登录: 2024-05-23
查看tingfenghu的 主题 / 回贴
1楼  发表于: 2021-01-28 17:54
寄存器是8位二进制0和1,不分正负,主要看怎么处理数据,
有符号值FF对应-128~127,无符号对应该是0-255,
检查接收的数值没问题?数值正确,更改一下有符号和无符号显示就可以。
二手PLC,触摸屏,伺服驱动,各类气动设备
http://shop58129605.taobao.com/
tingfenghu
级别: 工控侠客

精华主题: 0
发帖数量: 2795 个
工控威望: 3567 点
下载积分: 3413 分
在线时间: 3719(小时)
注册时间: 2007-11-04
最后登录: 2024-05-23
查看tingfenghu的 主题 / 回贴
2楼  发表于: 2021-01-28 21:27
引用
引用第5楼二郎神于2021-01-28 18:14发表的  :

接收数值没有问题,应该是我处理数据的方法不对。PLC单个寄存器是16位的,保存数据范围-32767-32767,而RS指令采用8位数据模式时只处理低8位的值。

16位数据需要将两个寄存器合并。
二手PLC,触摸屏,伺服驱动,各类气动设备
http://shop58129605.taobao.com/