首页 » 通讯 » MODBUS读离散输入功能(0x02)_字节_状况

MODBUS读离散输入功能(0x02)_字节_状况

乖囧猫 2024-11-18 07:36:59 0

扫一扫用手机浏览

文章目录 [+]

在从设备返回的中, 每个离散输入的状态用1位二进制数据进行编码, 1表示ON, 0表示OFF. 返回的每个字节可以表示8个离散输入的状态. 离散输入的状态按地址从低到高编码到字节流中. 返回字节流中的字节的低位对应低址址离散输入的状态, 返回字节流中的前面的字节对应低址址离散输入的状态. 第1个字节的最低位表示的状态对应要求PDU中首个离散输入的状态.

如果返回离散输入状态的数量不是8的整数倍, 则对应的字节的高位部分用0添补. 返回的字节总数域指天命据域的字节总数.

MODBUS读离散输入功能(0x02)_字节_状况 通讯

要求PDU的构成

字节数

描述

功能码

1

0x02

起始地始

2

0x0000-0xFFFF

离散输入数

2

1-2000(0x7D0)

相应PDU的构成

字节数

描述

功能码

1

0x02

字节总数

1

N

离散输入状态

n

n=N/8或N+1

若N%8==0, 则n=N/8, 否则n=N/8+1.

缺点PDU的构成

字节数

描述

功能码

1

0x82

非常代码

1

01或02或03或04

示例

读离散输入状态197-218.

要求PDU

相应PDU

值(HEX)

值(HEX)

功能

02

功能

02

起始地址高8位

00

字节总数

03

起始地址低8位

C4

离散输入状态(204-197)

AC

离散输入数高8位

00

离散输入状态(212-205)

DB

离散输入数低8位

16

离散输入状态(218-213)

35

在要求报文中, 离散输入197对应的地址为196, 用十六进制表示为0x00C4, 离散输入187-218对应22个离散输入, 用十六进制表示为0x0016.

由于要求的离散输入状态为22个, 每个字节可以表示8个离散输入状态, 以是须要3个字节表示全部22个离散输入状态, 在相应报文中, 字节总数为3.

离散输入204-197的状态为

字节位序

7

6

5

4

3

2

1

0

离散输入序号

204

203

202

201

200

199

197

198

离散输入状态

1

0

1

0

1

1

0

0

用十六进制表示即为0xAC.

离散输入212-205的状态为

字节位序

7

6

5

4

3

2

1

0

离散输入序号

212

211

210

209

208

207

206

205

离散输入状态

1

1

0

1

1

0

1

1

用十六进制表示即为0xDB.

离散输入218-213的状态为

字节位序

7

6

5

4

3

2

1

0

离散输入序号

218

217

216

215

214

213

离散输入状态

x

x

1

1

0

1

0

1

用x标示的位用0表示, 以是用十六进制表示即为0x35.

读离散输入流程图

从设备读离散输入流程图如下图所示.

备注

读离散输入的过程与读线圈的过程基本上是同等的.

读线圈输入功能可阅读 https://www.toutiao.com/i7056402170543014413/

参考文献

[1] Modbus Application Protocol(V1.1b). http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf

版权

转载或者引用本文内容请注明来源及原作者。

标签:

相关文章

C语言编译器的演变与未来展望

C语言作为一种高级编程语言,自1972年诞生以来,在计算机科学领域取得了举世瞩目的成就。C语言编译器作为将C语言源代码转换为机器代...

通讯 2025-01-05 阅读0 评论0

C语言节点,构建高效程序的基石

在计算机科学领域,C语言作为一种经典的编程语言,凭借其简洁、高效的特点,深受广大程序员的喜爱。在C语言中,节点作为一种基本的数据结...

通讯 2025-01-05 阅读0 评论0