c#,modbus协议解析读取线圈状态的值

PJNet666 2017-05-15 11:19:52
如图,我设定读取线圈的值为1011001011,把他在c#里面作为发送包发送读取到的结果为77和3,77对应二进制为01001101,3为00000011. 而77的二进制值与设定值前八位正好相反,请问是怎么回事?
...全文
733 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
PJNet666 2017-05-15
  • 打赏
  • 举报
回复
引用 1 楼 diaodiaop 的回复:
既然都说是modbus 那么你可以搜索"modbus.DLL" 直接根据寄存器地址操作读写 非常简单
我想知道的是为什么在串口缓冲区读取数据显示的值不对?
by_封爱 版主 2017-05-15
  • 打赏
  • 举报
回复
既然都说是modbus 那么你可以搜索"modbus.DLL" 直接根据寄存器地址操作读写 非常简单
xuzuning 2017-05-15
  • 打赏
  • 举报
回复
二进制 1011001011 对应十进制 715
xuggzu 2017-05-15
  • 打赏
  • 举报
回复
补不补看你自己怎么转换得了,这是自定义协议。
PJNet666 2017-05-15
  • 打赏
  • 举报
回复
引用 3 楼 xuggzu 的回复:
回读值是按从低位往高位拼写的,其实也是windows缺省的二进制保存顺序,所以77在前,3在后,且二进制位也是倒着数。
回传的时候11后面是不是应该在补6个0进行发送?
xuggzu 2017-05-15
  • 打赏
  • 举报
回复
回读值是按从低位往高位拼写的,其实也是windows缺省的二进制保存顺序,所以77在前,3在后,且二进制位也是倒着数。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧