_天高地厚_ 2023-12-22 14:21 采纳率: 0%
浏览 12
已结题

MODBUS通讯异常

MODBUS通讯时,多从机模式,出现连续两次主机发送命令的原因是什么呢?(倒数第8行和第7行)过一段时间就会出现一次。连接,配置没有问题

img


[图片]

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-25 20:33
    关注

    【相关推荐】



    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7439308
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:modbus协议与串口服务器功能测试
    • 您还可以看一下 许孝刚老师的Modbus协议讲解及实现课程中的 Modbus 帧的雏形小节, 巩固相关知识点
    • 除此之外, 这篇博客: Modbus通讯协议常用功能码解释中的 2.读取输入状态(功能码02) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

              读取从机离散量输入信号(ON/OFF)的状态,不支持广播。

              查询:查询信息规定了要输入起始地址,以及输入信号的数量。输入的起始地址为0000H,1-16个输入口的地址分别为0-15(DO1=0000H,DO2=0001H,以此类推)。

              例子:从地址为17的从机读取D01至D16的状态。

      读取输入状态----查询
      addrFunD0 start reg hiD0 start reg loD0 #of regs hiD0 #of regs loCRC16 hiCRC16 lo
      地址功能码起始线圈地址高8位起始线圈地址低8位线圈量高8位线圈量低8位校验高8位校验低8位
      11H02H00H00H00H

      10H

      XXHXXH

              响应:响应信息中的各输入口的状态,分别对应于数据区中的每一位值,1=ON,0=OFF,第一个数据字节的LSB为查询中的寻址地址,其他输入口按顺序在该字节中由低位向高位排序,直至8个为止,下一个字节中的8个输入位也是从低位向高位排列。若返回的输入位数不是8的倍数,则在最后的数据字节中的剩余位直至字节的最高位全部填0,字节数区说明了全部数据的字节数。

      读取输入状态----响应
      addrFunByte countData1Data2CRC16 hiCRC16 lo
      地址功能码字节数数据位数据位校验高8位校验低8位
      11H02H02H

      33H

      CCHXXHXXH

                                                                                               数据1:

      DI8DI7DI6DI5DI4DI3DI2DI1
      MSBLSB

                                                                                               数据2:

      DI16DI15DI14DI13DI12DI11DI10DI9
      MSBLSB

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月19日
  • 创建了问题 12月22日

悬赏问题

  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 打开powerpont询问是否安装officeplus不小心点了不安装以后再也不提示是否安装了
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥20 我的是道格手机,重置后屏幕右上角出现红色字的未写入tee key 和未写入google key请问怎么去掉啊