Modbus协议功能码04怎么转03啊?

04的时候用modbus工具能完美接收到
03的时候代码直接飞了

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7779175
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Modbus功能码
  • 除此之外, 这篇博客: 组态王与Modbus协议的地址对应规则中的 组态王与Modbus协议的地址对应规则 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    Modbus数据帧都是16进制的,而组态王中的寄存器地址是10进制的,因此需要对数据帧中的地址位做一个从16进制到10进制的转换,比如地址1004对应的就4100,前面再加上功能码对应的寄存器,从而构成变量的寄存器地址。下面以成都乔存的一款比例放大器为例,使用ModbusRTU协议与组态王通讯。
    在这里插入图片描述

  • 您还可以看一下 许孝刚老师的Modbus协议讲解及实现课程中的 Modbus 帧的雏形小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^