问个nmodbus的问题

yang1216 2014-10-08 02:51:25
我本来想用nmodbus来读一个设备的256个字节的数据。但是我发现nmodbus对ReadHoldingRegisters有数量限制,只能读125个ushort,这个不够呀。
我是不是应该下源码来自己改一改重新编译?或者有其他方法。
...全文
249 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-10-08
  • 打赏
  • 举报
回复
引用 4 楼 yang1216 的回复:
谢谢Z65443344,NModbus是一个.net的Modbus库,挺好用的。 下位机告诉我就是由256个字节数据需要读,所以我才郁闷了。
实际上就是封装了modbus协议的类库呗 如果modbus协议你足够了解,用串口完全可以自己做. 如果要读256个字节的数据,分2次循环读呗 比如从0开始要读256个字节 先读200字节(100个字), 再从地址99开始读56个字节(28个字) 不就行了
yang1216 2014-10-08
  • 打赏
  • 举报
回复
谢谢Z65443344,NModbus是一个.net的Modbus库,挺好用的。 下位机告诉我就是由256个字节数据需要读,所以我才郁闷了。
於黾 2014-10-08
  • 打赏
  • 举报
回复
错了,modbus最多只能读250个字节的数据,或2000位,读不了256个字节. 256个字节是算上头部地址,功能码,数据位数,和尾部的CRC校验之后,最多只能256个字节.
於黾 2014-10-08
  • 打赏
  • 举报
回复
nmodbus是啥? 我只听说过modbus modbus协议最多只能读256个字节,想读超过这个的字节数,你需要做循环读多次 此外,125个ushort不就是256个字节吗
  • 打赏
  • 举报
回复
ushort就是占两字节,你可以通过BitConverter.GetBtytes()得到双字节

110,534

社区成员

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

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

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