前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Modbus协议介绍

Modbus协议介绍

作者头像
用户5908113
发布2019-11-18 21:33:02
14.4K0
发布2019-11-18 21:33:02
举报
文章被收录于专栏:Pou光明

MODBUS 是一个请求/应答协议,包括ASCII、RTU、TCP等,是1979年开发出的一种工业通信协议,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是通过何种硬件方式进行通信的。所以硬件接口可以是RS-232、RS-422、RS-485和以太网等设备。TCP和RTU比ASCII常见,其中TCP的使用频率更高一些。

关于主站与从站:RTU模式下,一个主站可以连接多个从站,且主站有且只能有一个,从站至少一个;TCP模式下主要分为服务器与客户端,可认为客户端是主站。

1. Modbus协议相关术语及含义:

寄存器种类

数据类型

访问类型

功能码

线圈

读写

01H 05H 0FH

离散输入

读写(主站只读)

02H

保持寄存器

读写

04H

输入寄存器

读写(主站只读)

03H 06H 10H

Memory Block

Coils:线圈、Discrete Inputs:离散输入、Holding Registers:保持寄存器、

Input Registers输入寄存器

Data Type

只有布尔型与无符号整型,即无法传输负数与浮点数,当然,我们可以通过其他方式实

现。

同许多规范一样,不同行业可能会有不同的称呼。如保持寄存器可以被称为输出寄存器,而线圈可以被称为数字或离散输出。

2. 常用功能码

Modbus中常用的功能码有 8个,可以分为位操作和字操作两类,如下表

功能码

描述

PLC地址

寄存器地址

位/字操作

操作数量

01H

读线圈寄存器

00001-09999

0000H-FFFFH

单个或多个

02H

读离散输入寄存器

10001-19999

0000H-FFFFH

单个或多个

03H

读保持寄存器

40001-49999

0000H-FFFFH

单个或多个

04H

读输入寄存器

30001-39999

0000H-FFFFH

单个或多个

05H

写单个线圈寄存器

00001-09999

0000H-FFFFH

单个

06H

写单个保持寄存器

40001-49999

0000H-FFFFH

单个

0FH

写多个线圈寄存器

00001-09999

0000H-FFFFH

多个

10H

写多个保持寄存器

40001-49999

0000H-FFFFH

多个

3. Modbus消息结构

接下来重点说下Modbus的消息结构,以功能码01(0x01)为例进行说明。

功能码01H读取Modbus从站中线圈寄存器的状态,可以是单个寄存器,或者是多个连续的寄存器。

发送:

假设从站地址为01H,读取线圈寄存器的起始地址为0017H,读取38(十进制)个寄存器,指令结构如下表:

从站地址

功能码

起始地址高位

起始地址低位

寄存器数量高位

寄存器数量低位

CRC高位

CRC低位

01

01

00

17

00

26

0D

D4

响应:各线圈的状态与数据内容的每个bit对应,1代表ON,0代表OFF.若查询线圈的数量不是8的倍数,则在最后一个字节的高位补0.

读线圈结果举例:

从站地址

功能码

返回字节数

数据1

数据2

数据3

数据4

数据5

CRC高位

CRC低位

01

01

05

CD

6B

B2

0E

1B

44

EA

第一个字节CDH对应线圈0017H到001E的状态,转为二进制是11001101,其中bit0对应0017H,bit7对应001E,如下表:

001EH

001DH

001CH

001BH

001AH

0019H

0018H

0017H

1

1

0

0

1

1

0

1

ON

ON

OFF

OFF

ON

ON

OFF

ON

对于刚接触的老铁们看到这里有点蒙圈吧?正常,我开始看到这里的时候也蒙圈。其实说白了就是规定了交换数据的方式,大家都按这个方式来,这就是“协议”啊,至于这个协议具体叫什么也不重要,重要的是大家都能明白我发的东西是什么意思就好了。就像以前谍战片里的电报一样,发过来的东西需要“协议”解读下,就是这个意思了。

下次和大家分享下Modbus调试助手的使用,那个更直观!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Pou光明 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档