分享免费的编程资源和教程

网站首页 > 技术教程 正文

MODBUS通讯 串口调试助手与西门子PLC通讯全解(下)

goqiw 2025-01-29 15:44:28 技术教程 34 ℃ 0 评论

六、MODBUS 报文

  • MODBUS功能码
  • 01功能码:读单个或多个数字量输出状态

将数字量输出位强制成任意值,方便查看其状态

例一:读 “Q0.1状态 (Q0.1已经强制为1)


发送报文

0A

01

00

01

00

01

AD

71

注释

站地址 10

功能码 01

起始地址

01

位个数

01

CRC校验码

从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

01

01

01

92

6C



注释

站地址 10

功能码 01

返回字节个数

1

返回数值

1(16进制)

CRC校验码



返回数值“01”表示 “Q0.1”状态为1

例二:读 “Q0.0-Q0.7”状态

发送报文

0A

01

00

00

00

08

3C

B7

注释

站地址 10

功能码 01

起始地址

00

位个数

8

CRC校验码

从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

01

01

5A

D3

97



注释

站地址 10

功能码 01

返回字节个数

1

返回数值

5A(16进制)

CRC校验码



返回数值“5A(16进制)”转化为二进制

5A=

(16进制)

0

1

0

1

1

0

1

0

Q0.7

Q0.6

Q0.5

Q0.4

Q0.3

Q0.2

Q0.1

Q0.0


  • 02 功能码:读单个或多个数字量输入状态

将数字量输入位强制成任意值,方便查看其状态

例三:读 “I0.7状态 (I0.7已经强制为1)

发送报文

0A

02

00

07

00

01

09

70

注释

站地址 10

功能码 02

起始地址

07

位个数

01

CRC校验码

从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

02

01

01

62

6C



注释

站地址 10

功能码 02

返回字节个数

1

返回数值

1(16进制)

CRC校验码



返回数值“01”表示 “I0.7”状态为1

例四:读 “I0.0-I1.3”状态

发送报文

0A

02

00

00

00

0C

79

74

注释

站地址 10

功能码 02

起始地址

00

位个数

12

CRC校验码

从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

02

02

9D

0C

74

EC


注释

站地址 10

功能码 02

返回字节个数

2

返回数值

9D 0C(16进制)

CRC校验码


返回数值“9D0C(16进制)”转化为二进制

9D0C=

(16进制)

1

0

0

1

1

1

0

1

0

0

0

0

1

1

0

0

I0.7

I0.6

I0.5

I0.4

I0.3

I0.2

I0.1

I0.0





I1.3

I1.2

I1.1

I1.0

  • 04 功能码:读单个或多个模拟量

将模拟输入强制成任意值,方便查看其状态

例五:读 “AIW0-AIW8”的值

发送报文

0A

04

00

00

00

05

31

72

注释

站地址 10

功能码 04

起始字地址

00

字个数

05

CRC校验码

从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

04

0A

00

0C

00

22

00

38

00

4E

03

8E

DD

B2

注释

站地址 10

功能码 04

返回字节
个数10

第一个字值
AIW0=12

第二个字值
AIW2=34

第三个字值
AIW4=56

第四个字值
AIW6=78

第五个字值
AIW8=910

CRC校验码

  • 05 功能码:写单个位

例六:写Q0.5 为 “1”

发送报文

0A

05

00

05

FF

00

9D

40

注释

站地址 10

功能码 05

起始地址

05

写入“1”

CRC校验码

从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

05

00

05

FF

00

9D

40

注释

站地址 10

功能码 05

起始地址

05

写入“1”

CRC校验码

  • 0F 功能码:写多个位

例七:写入 Q0.1-Q0.7 如下表 即QB0=35

Q0.0

Q0.1

Q0.2

Q0.3

Q0.4

Q0.5

Q0.6

Q0.7

1

0

1

0

1

1

0

0

发送报文

0A

0F

00

00

00

08

00

35

7E

A1

注释

站地址 10

功能码 15

起始地址

00

位个数

写入值35

CRC校验码

从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

0F

00

00

00

08

55

76



注释

站地址 10

功能码 15

起始地址

00

位个数

CRC校验码



  • 03 功能码:读保持寄存器

例八:读VW100-VW108值

将VW100-VW108强制成任意值,方便查看其状态

发送报文

0A

03

00

00

00

05

84

B2

注释

站地址 10

功能码 03

起始字地址

00

字个数

05

CRC校验码

从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

03

0A

00

7B

01

C8

03

15

03

E9

04

42

FE

7E

注释

站地址 10

功能码 03

返回字节
个数10

第一个字值
VW100=123

第二个字值
VW102=456

第三个字值
VW104=789

第四个字值
VW106=1001

第五个字值
VW108=1090

CRC校验码

  • 06 功能码:写单个寄存器

例九:写VW112=1000

发送报文

0A

06

00

06

03

E8

68

0E

注释

站地址 10

功能码 06

起始地址

第6个字

写入“1000”

CRC校验码

从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

06

00

06

03

E8

68

0E

注释

站地址 10

功能码 06

起始地址

第6个字

写入“1000”

CRC校验码

  • 10 功能码:写多个寄存器

例十:写入 VW110-VW114值 如下表

VW110

VW112

VW114

1

2

3

发送报文

0A

10

00

05

00

03

06

00

01

00

02

00

03

30

1A

注释

站地址 10

功能码 16

起始地址

05

字个数
03

字节个数06

第一个字01

第二个字02

第三个字03

CRC校验码从串口调试助手工具中可查到,注意高低字节互换

返回报文

0A

10

00

05

00

03

91

72


注释

站地址 10

功能码 16

起始地址

05

字个数

CRC校验码



本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表