Modbus协议详解1:Modbus的简介

 

Modbus协议是应用非常广泛的一种通信协议规约,也是最早应用在工业现场的协议。

早在1979年出现工业串行链路以来,Modbus的应用就开始普遍起来,它使得各种自动化设备之间的互相通信得到实现,做嵌入式产品开发的朋友应该不会陌生,Modbus的身影是随处可见的。并且在中国Modbus都已经形成了规范的标准,都有相应的国标的文件可以查阅到的。

有兴趣的朋友可以查阅标准文件:

《GBT 19582.1-2008 基于Modbus协议的工业自动化网络规范  第1部分:Modbus应用协议》
《GBT 19582.2-2008 基于Modbus协议的工业自动化网络规范  第2部分:Modbus协议在串行链路上的实现指南》
《GBT 19582.3-2008 基于Modbus协议的工业自动化网络规范  第3部分:Modbus协议在TCP∕IP上的实现指南》

虽然有标准文件的存在,查阅也很方便,但是对初学者和从没接触过Modbus的朋友来说,想要用于开发需要花费不少的时间去研究国标文件,费时间也费脑子。所以我想根据自己在项目开发中使用Modbus协议的经验对该协议进行拆解,有顺序的讲解Modbus的重要内容,帮助大家快速理解Modbus协议,可以做到快速应用于项目中进行协议的开发。

灵魂一问:Modbus是什么?

Modbus本质上是一种应用层上的报文协议,属于OSI模型上的应用层,它可以支持在多种不同类型总线上的设备之间进行通信,当然也一样支持以太网中应用。看下面的图片:

Modbus协议在设备端上实现的是一种主/从的通信协议结构,即请求/应答的通信模型。这怎么理解呢?其实就是使用了Modbus协议进行通信的设备中有一个设备要作为主机,其他的都作为从机,通信就是在主机和从机之间进行的。示意图如下:

Modbus常见的通信链路

Modbus应用很广泛,几乎可以应用在任何能够进行数据交互的场景中。在设备之间应用Modbus协议时,对使用何种物理链路进行数据流动并没有限制。

比如常用的有线方式:EIA/TIA-232-E、EIA-422、EIA/TIA-485-A光纤、网线等。以及很多的无线方式等等的。实现的都是串行链路上的异步通信方式,同一时刻允许数据流向某一端的设备,不能同时出现两端流动。Modbus的通信栈如下:

Modbus应用中常见的一些专业名词

在应用Modbus的时候经常可以看到一些专业名词以及英文缩写,它们都是有着专业的含义和代表意义的。常见的缩略语如下:

ADU :应用数据单元
HDLC :高级数据链路控制
HMI :人机界面
IETF :因特网工程工作组
I/O :输入/输出设备
IP :互连网协议
MAC :介质访问控制
MB :MODBUS 协议
MBAP :MODBUS 协议
PDU :协议数据单元
PLC :可编程逻辑控制器
TCP :传输控制协议
2W :在 “电气接口” 一章中定义的两线制配置,或其中的一个接口。
4W :在 “电气接口” 一章中定义的四线制配置,或其中的一个接口。
2W+2:在两线制系统中使用四线制接口的特殊配置。(需要时可参见 Schneider Electric Momentum 文件 870 USE 101 10)
AUI :连接单元接口 (Attachment Unit Interface)
公共端 :EIA/TIA 标准中的信号公共端 (Common)。在两线制或四线制 RS485 Modbus 网络中,
信号和可选的电源的公共端。 Power Supply 公共端
DCE :一个 Modbus 设备。例如, 实现了 RS232 数据电路设备 (Data-Circuit Equipment) 的
可编程序控制器适配器。也称作数据通信设备(Data Communication Equipment)
设备 :Modbus 设备
驱动器 :发生器,或发送器
DTE :一个 Modbus 设备。例如, 实现了 RS232 数据终端设备 (Data Terminal Equipment)编程终端或 PC
ITr :干缆侧的物理总线接口 (Interface on Trunk Side)
IDv :设备侧的物理总线接口 (Interface on Derivation Side)
LT :线路终端(Line Termination)
Modbus :设备 实现了 Modbus 串行链路并遵循技术规范的设备。
RS232 :EIA/ TIA -232 标准。
RS485 :EIA/ TIA -485 标准。
RS485 :Modbus 与该技术标准一致的两线制或四线制网络

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
康明斯Modbus协议是一种通信协议,用于在康明斯发动机控制器和外部设备之间进行数据交换。Modbus协议是一种基于串行通信的协议,它定义了一组规则和格式,用于在不同设备之间传输数据。 康明斯Modbus协议主要包括以下几个方面的内容: 1. 通信方式:康明斯Modbus协议支持串行通信和以太网通信两种方式。串行通信使用RS-485或RS-232接口,以太网通信使用TCP/IP协议。 2. 数据格式:康明斯Modbus协议定义了数据的格式,包括数据帧的结构和字段的含义。数据帧由起始符、地址、功能码、数据和校验等部分组成。 3. 功能码:康明斯Modbus协议定义了一系列功能码,用于表示不同的操作类型。常见的功能码包括读取寄存器、写入寄存器、读取线圈状态等。 4. 寄存器:康明斯Modbus协议使用寄存器来存储和传输数据。寄存器可以是输入寄存器、保持寄存器、线圈或离散输入。不同类型的寄存器有不同的功能和使用方式。 5. 数据传输:康明斯Modbus协议使用请求-响应的方式进行数据传输。外部设备发送请求命令给康明斯发动机控制器,控制器接收到请求后进行相应的操作,并将结果返回给外部设备。 6. 错误处理:康明斯Modbus协议定义了一套错误处理机制,用于处理通信过程中可能出现的错误。当发生错误时,康明斯发动机控制器会返回相应的错误码,以便外部设备进行处理。 以上是对康明斯Modbus协议的简要介绍,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式之入坑笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值