MODBUS-TCP协议简介与编程流程图

      最后更新:2022-05-05 19:59:19 手机定位技术交流文章

      本研究的主要目标是为MODBUS-TCP服务器客户应用程序建立一个简单的知识点,其中包括基本背景资料和协议流程图。

      MoDBUS 的基本数据类型

      MODBUS有四种基本数据类型:
      分解输入 : 客户端只能读取它, 由服务器稍稍发送, 并且可以发送实际的切换输入。 例如, 开关的分解信息 。
      ables: 客户可以写和读, 服务器根据客户的数据集修改其值一小部分。 它有能力管理真实继电器的输入和断开 。
      输入登记簿: 客户端只能读取至少16位数的数据, 也可以发送八位数的数据。 超过16位数的数据可以通过多个输入记录器、 真实温度和电压等数据传输 。
      保留登记册:客户至少可写或读取16位数的参数和物理值,如实际电压。

      MODBUS-TCP是一个数据格式。

      典型的MODBUS-TCP数据框架由三部分组成:
      MODBUS-TCP数据帧
      这三个组成部分称为ADU。这是数据模块的应用程序 。它有一个称为PDU的功能代码和数据。协议数据模块是你们要找的ADU的甲基溴行动计划是针对MODBUS-TCP的。在所有MODBUS表格中,PDU都是相同的。
      MODBUS-TCP数据包在502港传送,502港由因特网组织为MODBUS-TCP协议分配。

      甲基溴行动计划标题结构:

      甲基溴行动计划标题(MODBUS 协议标题)由七字节组成,含义如下:
      服务字符标识符: 2 字节,因为客户可以同时提交许多请求,并且为了区分哪个用户请求服务器回答,客户使用反值填充请求框中的区域,服务器可以返回响应框中的相同计数值,供客户区分请求。
      《议定书》标识符:2个字节,保留在0,以表示MODBUS协议。
      长度: 2 字节, 后面是 字节
      单位标识符: 1 字节对于MODBUS 设备很重要,这些设备需要发送到链条链条上,通常应当被忽略和写为 0。

      PDU格式

      由于各种功能代码与各种数据格式有关,这就是为什么必须同时说明功能代码和数据部分的原因。我将只通过三十六条功能守则 我将参与其中。只选择了两个功能代码的原因因为这两个功能代码基本上涵盖所有数据收集职能,写入许多发件人来配置收藏设置、 DA 输出、 切换输出等等 。阅读了多个储存库的各种收集结果。

      03 (0x03) 读以维持登记册

      每个发报机宽度为16位元和2位字节,由于是大端模式(大端),上端字节在前方,下端字节采用以下数据格式:
      请求:

      功能码 1个字节 3(0x03)
      起始地址 2个字节 0~65535(0xFFFFF)
      寄存器数量 2个字节 N=1~125(0x7D)

      响应:

      功能码 1个字节 3(0x03)
      字节数 1个字节 N*2
      寄存器数量 N*2个字节

      发射机的数目限于MODBUS-RTU数据框,不能超过252,因此125=252-2)/2。

      读保持寄存器流程图
      读保持寄存器流程图

      书写到仓库( 16 (0x10))

      保留注册的写入是一个背对背动作, 允许您同时读取多个注册 。它可以读和写的方式与读多个发件人相同。该系统也可用作其他职能要素的独立业务。例如,在DA(模块转换)中,使用多个发件人设定 DA 输出值 。然后您可以使用多个阅读器返回预设值 。也可以相同的地址,返回 AD( 模块转换) 的收藏值 。这取决于实际应用。其具体格式如下:
      请求:

      功能码 1个字节 16(0x10)
      起始地址 2个字节 0~65535(0xFFFFF)
      寄存器数量 2个字节 N=1~123(0x7B)
      字节数 1个字节 2*N
      寄存器值 N*2个字节 大端排列的值

      响应:

      功能码 1个字节 16(0x10)
      起始地址 2个字节 与请求起始地址相同
      寄存器数量 2个字节 N

      与多个发件人创建流程图:
      写多个寄存器流程图

      异常响应

      当请求失败时,服务器会提供错误信息。在异常响应框中,原始功能代码+0x80后面是异常代码,如下文所示:
      异常响应:

      功能码 1个字节 请求函数代码 0x80
      异常码 1个字节 常用异常码:
      01:不支持的功能代码
      02: 地址错误, 起始地址+登记人数, 如果超长, 地址错误
      03:数据错误,如果数据包括PDF数据,例如,所要求的发报机数量超过PDF允许的最大长度。
      04:由于台站故障,服务器处理请求时发现存在问题。

      MODDBUS-TCP的请求答复程序

      服务器在收到客户请求后,可以了解更多有关这个问题的信息。为了开始评估协议的识别,如果协议是MODBUS协议,才能继续处理,然后使用甲基溴标题中的连续字节数来删除整个数据框。如果客户使用请求答复机制,提交请求是可行的。对于每个软件包,服务器只接收一个完整的软件包。最终,根据功能代码向功能代码方案发出请求。流程图如下:
      MODDBUS-TCP的请求答复程序

      它会是一个真正的程序之前,你知道它!

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/23547.html

          热门文章

          文章分类