当前位置: 首页 > 网络应用技术

一篇文章了解物联网Modbus通信协议

时间:2023-03-05 19:47:47 网络应用技术

  随着IT技术的快速发展,它进入了情报时代,事物互联网将在未来占据越来越重要的立场。根据百度百科全书的定义,物联网(IoT)是”互联网由一切连接”。这是基于Internet的互联网的扩展和扩展。在任何地方,人,机器或事物的互连。技术上的互联网在通信协议的核心上很重要,即如何连接机器,事物和人员根据商定的通信协议进入互联网,并与Internet进行通信,以实现人物,机器和事物的智能识别。定位,跟踪,监视和管理。

  一般而言,有许多常见的物联网通信协议,例如蓝牙,Zigbee,wifi,modbus,profinet,profinet,Ethercat,honycomb等。协议是由Modicon于1979年制定的,该协议于1979年与可编程逻辑控制器(PLC)进行通信。可以说,它已成为工业通信协议的行业标准。它的优势如下:

  modbus通信协议使用请求 - 响应机制位于主(客户端)和(服务器服务器)之间。客户端服务器原理是通信协议的模型,其中一种控制多个从属设备。Modbus通信协议中的主体对应于客户端,并且从服务器对应于服务器。Modbus通信协议的官方网站是www.modbus.org.at.在目前,官方网站组织建议将Master-Slave替换为Master-Slave到client-server.it可以分为:modbus-rtu(ascii),modbus-tcp和modbus-plus。本文主要介绍modbus-rtu(ASCII)的通信协议原理(ASCII)。标准Modbus物理协议包括RS232,RS422,RS485和以太网接口。

  通信示意图如下:

  一般而言,Modbus通信协议的原则具有以下特征:

  Modbus协议可以使用2个通信模式交换信息:

  无论是请求消息还是答复消息,数据结构如下:

  也就是说,消息(帧数据)由4个部分组成:地址(从属号)+函数代码+数据+check。当前请求已执行,例如读取或写作。数据代表需要通信的业务数据,可以根据实际情况确定。最后一个验证是验证数据是否错误。功能代码如下:

  例如,功能代码为03表示当前寄存器中的一个或多个二进制值,而06表示单个寄存器的二进制值。为了模拟Modbus通信协议过程,您可以在此处使用仿真软件:

  特定的安装过程将不会在此处重复。首先,您需要模拟IoT传感器设备。这是Modbus从定义。首先,打开此软件,并定义具有ID:1:的设备

  此函数代码为03。在附加中,设置连接参数,示例接口如下:

  下面使用Modbus Poll软件来模拟主机以从设备获取数据。首先定义读取消息。

  然后定义连接信息:

  注意:两个COM端口应使用不同的名称。

  成功建立通讯后,通信信息的格式如下:

  TX表示请求消息,RX表示回复消息。

  这是如何使用Java实现Modbus TCP通信的方法。首先,您需要介绍modbus4j库。maven取决于pom.xml定义,如下所示:

  ModBus4J库不得在Maven中正常下载。您可以手动下载它并将其放入项目中并将其添加到项目库中。如下所示:

  注意:第一次实用时,您需要安装它,否则您将在java.library.path中报告no rxtxserial的错误。

  请访问http://fizzed.com/oss/rxtx-for-java下载相应操作系统的库文件。减压后,安装以下指南以复制并安装。

  此外,应该注意的是,此处需要串行端口支持。在这里,您可以使用虚拟串行软件来解决。

  下面给出了Java的核心代码片段。

  首先,您需要启动Modbus RTU从属程序。核心代码片段如下:

  Modbus RTU主程序,核心代码片段如下:

  启动后下面显示了输出:

  参考开源项目:https://github.com/wu-boy/modbus4j

  资料来源:阿里巴巴云