zoukankan      html  css  js  c++  java
  • modbus-poll和modbus-slave工具的学习使用——modbus协议功能码3的解析(及欧姆龙温控器调试笔记)

    最近的项目中使用到了欧姆龙的温控器,里面有很多的通信方式,我们使用的常见的modbus——RTU方式,其他方式我们不使用,其中通信手册上面有很多通信的实例,欧姆龙modbus还区分4字节模式和2字节模式,我们选择2字节,加快通信效率,而且2字节和4字节的模式的地址还不一样,但是实现的功能是一样的,比如开启,关闭等操作。

     

     

     

     下面使用modbus poll 和slave工具模拟modbus的通信协议3,设置的方式可以参考之前的文章,这里不再详细说明,都是差不多的,触类旁通。

    运行后,可以看到一下的信息,我截取如下:
    Tx:008,Rx:009可以忽略,只是软件的时间标志。
    Tx:008-01(从机地址) 03(功能码) 00(寄存器地址高位) 00(寄存器地址高位) 00(寄存器数量高位) 01(寄存器数量高位) 84(CRC低) 0A(CRC高) 
    Rx:009-01(从机地址) 03(功能码) 02(字节数) 00(数据 1 高位) 04(数据 1 低位) B9(CRC低) 87(CRC低).

    然后对比欧姆龙的实例:

     响应:

    通信实例,我这里采用的是2字节的模式。

     

     调试笔记:

    modbus我们使用的rs485总线,我按平常的方法去调试,A-A ,A-B,结果欧姆龙上面的A、B是相反的,A-B ,B-A才行,说明,标签也有不统一的时候,需要多尝试。

    因此有时候调试的时候需要多长点心,自己单片机的代码不着急写,可以使用电脑的串口助手来先调试,查看通信指令,熟悉通信设备,之后在来写单片机的代码。

     

     

     

     

  • 相关阅读:
    字符串倒序
    字符串反转问题
    linux系统性能分析
    操作系统基础知识
    两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
    用加法模拟乘法
    2015年最新中国知网CNKI免费账号直接入口
    nginx模块开发(18)—日志分析
    nginx基本配置
    三层架构和MVC
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12003055.html
Copyright © 2011-2022 走看看