一. 概述
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主节点没有地址,子节点必须有唯一的地址
0 | 1-247 | 248-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服务器可为其它客户机服务。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2021-03-01 Cognex.VisionPro.QuickBuild命名空间下的一些委托方法
2021-03-01 VisionPro控件的使用 C# 开发篇
2021-03-01 VisionPro Scriptiing 工具解释
2021-03-01 VisionPro OCVMax 工具解释
2021-03-01 VisionPro PatInspect 工具说明
2021-03-01 VisionPro Calib工具说明
2021-03-01 VisionPro CaliperGeometry 游标卡尺工具