首页 > 其他分享 >Modbus和Modbus/TCP协议

Modbus和Modbus/TCP协议

时间:2024-03-01 15:33:53浏览次数:24  
标签:协议 客户机 TCP Modbus 地址 报文

一. 概述

  Modbus是MODICON公司与1979年开发的一种通讯协议,是一种工业现场总线协议标准。1996年施耐德公司推出了基于以太网TCP/IP的Modbus协议------ModbusTCP。

Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型,协议本身并没有定义物理层,只是定义了控制器能够认识和使用的消息结构,而不管他们是经过何种网络进行通信的。

  标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网口。采用Master/Slave(主/从)方式通信。

  Modbus在2004年成为我国国家标准。

二. 协议规范

(1) Modbus应用协议

  Modbus是一种简单客户机/服务器应用协议

客户机能够向服务器发送请求;

服务器分析请求,处理请求,向客户机发送应答。

(2)通用Modbus帧结构–协议数据单元(PDU)

  Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU),特定总线或网络上的Modbus协议映射能够在应用数据单元(ADU)上引入一些附加域。

(3)Modbus事务处理(无差错和异常响应)

  当服务器对客户机响应时,它使用功能码来指示正常(无差错)响应或者出现某种差错(称为异常响应)。

  对于一个正常响应来说,服务器仅复制原始功能码。

  对于异常响应,服务器将原始功能码的最高有效位置1后返回,异常码指示差错类型。

(4)串行链路上的Modbus地址规则

  Modbus寻址空间有256个不同地址

  地址0为广播地址

  Modbus主节点没有地址,子节点必须有唯一的地址

01-247248-255
广播地址 子节点单独地址 保留
(5)串行链路上的Modbus帧结构

  Modbus串行链路协议是一个主/从协议;

  网络上的每个从站必须有唯一的地址;

  从站地址用于寻址从站设备,由主站发起;

  地址0用于广播模式,从站不需要响应;

  RS485和RS232定义了标准的物理端口。

(6)两种Modbus串行传输模式

三. ModbusTCP简介

  ModbusTCP是运行在TCP/IP上的Modbus报文传输协议。通过此协议,控制器相互间通过网络(例如以太网)和其它设备之间通信。

  ModbusTCP是开放的协议,IANA(Internet Assigned Numbers Authority,互联网编号分配管理机构)给Modbus协议赋予TCP编口号为502,这是目前在仪表与自动化行业中唯一分配到的端口号

(1)ModbusTCP数据帧

(2)MBAP报文头

(3)通信应用层
  • Modbus客户机:允许用户应用控制与远程设备的信息交换。Modbus客户机根据用户应用向Modbus客户机接口的发送要求中所包含的参数来建立一个Modbus请求。

  • Modbus客户机接口:Modbus客户机接口提供一个接口,使得应用能够生成各类Modbus服务的请求,该服务包括对Modbus应用对象的访问。

  • Modbus服务器:在收到一个Modbus请求后,模块激活一个本地操作进行读、写或完成其他操作。

(4)客户机通信过程如下
  • 用Connect命令建立与目标设备的连接;

  • 准备Modbus报文包括7个字节的MBAP在内的请求;

  • 使用Send命令发送报文;

  • 在同一连接下等待应答;

  • 用Recv命令读取报文,完成一次数据交换过程。当通信任务结束时,关闭TCP连接,使ModbusTCP服务器可为其它客户机服务。

标签:协议,客户机,TCP,Modbus,地址,报文
From: https://www.cnblogs.com/ybqjymy/p/18047180

相关文章

  • TCP握手与重发机制
    TCP通信时序 TCP三次握手1.客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的段1。客户端发出段1,SYN位表示连接请求。序号是1000,这个序号在网络通讯中用作临时的地址,每发一个数据字节,这个序号要加1,这样在接收端可以根据序号排出数据包的正确顺序,也可以发现......
  • Protobu协议
    1.protobufprotobuf是Google公司提出的一种更轻便高效的结构化数据存储格式,常用于结构化数据的序列化,具有语言无关、平台无关、可扩展性特性,常用于通讯协议、服务端数据交换场景。1.1Win安装下载地址:https://github.com/protocolbuffers/protobuf/releases添加环境变量......
  • Qt QModbus相关类实现ModbusTcpServer总结
    在疫情环境下催生出了很多的无人或者减少人员接触的项目,比如无人智慧餐厅项目中的无人送餐项目,主要是由送餐小车和一个中控屏和部分协助发餐的设备组成,由于餐厅一般的范围不会很大,考虑到Wi-Fi通信可能比较麻烦,我们前期组网协议使用的是zigbee,这样的话小车可以无网络运行且待......
  • Qt QModbusServer类
    1、概述QModbusServer类是用于接收和处理Modbus请求的接口。1Header:#include<QModbusServer>2qmake:QT+=serialbus3Since:Qt5.84Inherits:QModbusDevice5InheritedBy:QModbusRtuSerialSlaveandQModbusTcpServerModbus网络可以具有多个Modbus......
  • 低功耗全功能蓝牙5.1与2.4GHz私有协议的双模无线连接芯片OM6621FB 无线键鼠应用领域
    便携易操作且连接稳定的键鼠设备市场前景广阔。从有线发展为无线,高性能低功耗芯片在无线键鼠领域的应用,为开发者提供了优异的射频性能、强抗干扰及迅速稳定安全的连接,极大程度上提升了用户的办公灵活性和效率。为什么无线键鼠那么方便和好用,为何现在还有那么多人使用有线键鼠?今天......
  • 2024-02-29-Linux高级网络编程(4-TCP编程)
    4.TCP编程4.1TCP介绍面向连接的流式协议;可靠、出错重传、且每收到一个数据都要给出相应的确认通信之前需要建立链接服务器被动链接,客户端是主动链接TCP编程流程服务器:1.创建套接字socket()2.将套接字与服务器网络信息结构体绑定bind()3.将套接字设置为监听状......
  • LWIP RAW接口TCP与UDP部分函数解析
    RAWTCP接口tcp_input()函数voidtcp_input(structpbuf*p,structnetif*inp) --->staticerr_ttcp_process(structtcp_pcb*pcb) --->staticvoidtcp_receive(structtcp_pcb*pcb) --->>TCP_EVENT_RECV(pcb,recv_data,ERR_OK,err);//调用用户注册......
  • 以太网协议号
    以太网协议号typenamedesrfc1ICMPInternetControlMessage[RFC792]2IGMPInternetGroupManagement[RFC1112]3GGPGateway-to-Gateway[RFC823]4IPIPinIP(encapsulation)[RFC2003]5STStream[RFC1190,RFC1819]6TCPTransmissionCont......
  • 浅析TSN网络之车载以太网协议测试
    TSN是一项从视频音频数据领域延伸至工业领域、汽车领域的技术。TSN最初来源于音视频领域的应用需求,当时该技术被称为AVB,由于针对音视频网络需要较高的带宽和最大限度的实时,借助AVB能较好的传输高质量音视频。2012年,AVB任务组在其章程中扩大了时间确定性以太网的应用需求和适用范......
  • 学习之Http协议
    3.1HTTP简介HTTP超文本传输协议(HTTP-HyperTexttransferprotocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过十几年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器和万维网服务器之间互相通......