• Modbus RTU 协议使用汇总


    原创地址:https://blog.csdn.net/u012166958/article/details/64920144

    标准的Modbus 口是使用RS-232C 兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem 组网。控制器通信使用主—从技术,即仅设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据做出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域。

    从设备回应消息也由Modbus 协议构成,包括确认要行动的域、任何要返回的数据、和错误检测域。如果在消息接收过程中发生错误,或从设备不能执行其命令,从设备将建立错误消息并把它作为回应发送出去。在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。

    在消息位,Modbus 协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果控制器发送消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到消息,它将建立一从设备回应格式并返回给发送的控制器。

    主设备查询
    查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03 是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。

    从设备回应
    如果从设备产生正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:像寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。

    每个MODBUS 帧都包括 地址域  功能域  数据域  错误检测域。

    MODBUS  RTU 的工作方式

    帧定界:在MODBUS RTU 方式下,每两个字符之间发送或者接收的时间间隔不能超过1.5 倍字符传输时间。如果两个字符时间间隔超过了3.5 倍字符传输时间,就认为一帧数据已经接收完成,新的一帧数据传输开始。

      

    MODBUS RTU 协议

    常用的功能码

    0x01 读取输出继电器的状态

    0x02 读取输入继电器的状态

    0x03 读多个寄存器

    0x05 写单个输出继电器的状态

    0x0F 写多个输出继电器的状态

    0x10 写多个寄存器

  • 相关阅读:
    【转】C#进阶系列——WebApi 接口参数不再困惑:传参详解
    微信内测小程序,苹果你怎么看?
    给你一个团队,你应该怎么管?
    ios修改产品名
    【原创】windows下搭建vue开发环境+IIS部署
    【原】“系统”重新启动
    Ubuntu root密码修改
    【转】网络编程常见问题总结
    Python + Selenium -Python 3.6 3.7 安装 PyKeyboard PyMouse
    python3 获取当前路径及os.path.dirname sys.path.dirname的使用
  • 原文地址:https://www.cnblogs.com/zouhao/p/9274076.html
Copyright © 2020-2023  润新知