yoyo2001426
级别: 略有小成
精华主题: 0
发帖数量: 227 个
工控威望: 464 点
下载积分: 3511 分
在线时间: 167(小时)
注册时间: 2017-04-23
最后登录: 2024-11-03
查看yoyo2001426的 主题 / 回贴
楼主  发表于: 2023-09-07 14:25
上位机 将收到的浮点数值分成两个D值丢进来PLC
那怎么将两个D值合并恢复成原本的数值
陈0928
陈0928
级别: 探索解密
精华主题: 0
发帖数量: 58 个
工控威望: 161 点
下载积分: 7358 分
在线时间: 240(小时)
注册时间: 2021-11-19
最后登录: 2024-11-15
查看陈0928的 主题 / 回贴
1楼  发表于: 2023-09-07 15:59
引用
引用第2楼yoyo2001426于2023-09-07 15:16发表的  :
上位机的输出为 1Byte 所以他将浮点数分成4 Byte
以PLC 这端来看的话就是两个D值
假设 上位机的数值为 45.725
PLC收到为 26342 和 13890 要把这个两个数值合起来 就是45.725
现在就是不知道怎么合并

这牵扯到通信格式的问题,不同的PLC、通信模式都有些差异,而PLC会有通信上的特殊寄存器,通常只要用那个就能解决了。如果那寄存器格式不符合,就要自己解码了
陈0928
陈0928
级别: 探索解密
精华主题: 0
发帖数量: 58 个
工控威望: 161 点
下载积分: 7358 分
在线时间: 240(小时)
注册时间: 2021-11-19
最后登录: 2024-11-15
查看陈0928的 主题 / 回贴
2楼  发表于: 2023-09-08 16:43
不是你的问题不够详细,是你没理解别人在提什么  
你的通讯如果是走MODBUS的话,会有ABCD、BADC、CDAB、DCBA这些接收方式
最后看要不要重新排列,如果接收的寄存器刚好符合指令的格式,就能直接用指令DEBCD之类的指令去转
如果你的资讯只有给这样,别人当然只能给你这样的答案