C# Modbus通信从入门到精通(21)——Modbus TCP协议原理

Modbus TCP是走网口的,也可以在同一时间内有多个从站访问主站,并且通过Modbus事务处理标识来区分同一时刻的不同Modbus事务,这是区别于Modbus ASCII和Modbus RTU的地方。

1、访问模式:

C# Modbus通信从入门到精通(21)——Modbus TCP协议原理_第1张图片

Modbus客户端通常输入Modbus服务器的IP地址和端口号来建立TCP连接,然后根据从站地址来确定具体访问哪个从站设备。

2、地址分配规则

Modbus从站地址有255种,但是0用于广播地址,1到247用于从站地址,其余地址保留。
在这里插入图片描述

3、Modbus TCP格式

C# Modbus通信从入门到精通(21)——Modbus TCP协议原理_第2张图片

3.1 MBAP报文头含义

在这里插入图片描述
MBAP报文头是加载Modbus帧开始的报文,总共包含7个字节,分别如下:
1)事务处理标志符
这两个字节用于区分在同一时刻发送的多个Mobus请求,所以可以采用自增的方式,每次发送一个Modbus请求都将该值加1,然后一直到最大值,然后再次将该值变为1,循环往复即可。
2)协议标志符
这两个字节值就是0,0代表的就是Modbus协议
3)长度
这两个字节代表的是单元标志符(从站地址)以及后面的所有数据所占的字节总数
4)单元标志符
也就是从站地址

3.4 功能码

功能码的作用就是指定主站访问从站的具体目的,是读取数据还是写入数据或者其它,功能码分为三种,公共功能码、用于定义功能码、保留功能码,我们在上位机开发过程中遇到的一般都是公共功能码,公共功能码的值的范围如下图:
C# Modbus通信从入门到精通(21)——Modbus TCP协议原理_第3张图片
关于每个功能码在Modbus ASCII中的应用,详细内容会在本专栏的其他文章中进行介绍

3.5 数据

数据会根据不同的功能码而发生变化,详细内容会在本专栏的其他文章中进行介绍

你可能感兴趣的:(C#,Modbus通信从入门到精通,tcp/ip,Modbus,通信,c#)