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

这篇具有很好参考价值的文章主要介绍了C# Modbus通信从入门到精通(21)——Modbus TCP协议原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C# Modbus通信从入门到精通(21)——Modbus TCP协议原理,C# Modbus通信从入门到精通,tcp/ip,Modbus,通信,c#

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

1、访问模式:

C# Modbus通信从入门到精通(21)——Modbus TCP协议原理,C# Modbus通信从入门到精通,tcp/ip,Modbus,通信,c#

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

2、地址分配规则

Modbus从站地址有255种,但是0用于广播地址,1到247用于从站地址,其余地址保留。
C# Modbus通信从入门到精通(21)——Modbus TCP协议原理,C# Modbus通信从入门到精通,tcp/ip,Modbus,通信,c#

3、Modbus TCP格式

C# Modbus通信从入门到精通(21)——Modbus TCP协议原理,C# Modbus通信从入门到精通,tcp/ip,Modbus,通信,c#

3.1 MBAP报文头含义

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

3.4 功能码

功能码的作用就是指定主站访问从站的具体目的,是读取数据还是写入数据或者其它,功能码分为三种,公共功能码、用于定义功能码、保留功能码,我们在上位机开发过程中遇到的一般都是公共功能码,公共功能码的值的范围如下图:
C# Modbus通信从入门到精通(21)——Modbus TCP协议原理,C# Modbus通信从入门到精通,tcp/ip,Modbus,通信,c#
关于每个功能码在Modbus TCP中的应用,详细内容如下:
1、C# Modbus通信从入门到精通(22)——Modbus TCP(0x01功能码)
2、C# Modbus通信从入门到精通(23)——Modbus TCP(0x02功能码)
3、C# Modbus通信从入门到精通(24)——Modbus TCP(0x03功能码)
4、C# Modbus通信从入门到精通(25)——Modbus TCP(0x04功能码)
5、C# Modbus通信从入门到精通(26)——Modbus TCP(0x05功能码)
6、C# Modbus通信从入门到精通(27)——Modbus TCP(0x06功能码)
7、C# Modbus通信从入门到精通(28)——Modbus TCP(0x0F功能码)
8、C# Modbus通信从入门到精通(29)——Modbus TCP(0x10功能码)

3.5 数据

数据会根据不同的功能码而发生变化,详细内容如下:
1、C# Modbus通信从入门到精通(22)——Modbus TCP(0x01功能码)
2、C# Modbus通信从入门到精通(23)——Modbus TCP(0x02功能码)
3、C# Modbus通信从入门到精通(24)——Modbus TCP(0x03功能码)
4、C# Modbus通信从入门到精通(25)——Modbus TCP(0x04功能码)
5、C# Modbus通信从入门到精通(26)——Modbus TCP(0x05功能码)
6、C# Modbus通信从入门到精通(27)——Modbus TCP(0x06功能码)
7、C# Modbus通信从入门到精通(28)——Modbus TCP(0x0F功能码)
8、C# Modbus通信从入门到精通(29)——Modbus TCP(0x10功能码)

4、为何要学习Modbus通信?

在工业通信领域,Modbus通信是一种使用非常广泛的通信协议,Modbus一般有三种,分别为ModbusRTU、ModbusASCII、ModbusTCP,其中ModbusRTU、ModbusASCII是应用于串行链路上的协议,通俗一点就是说它是走串口的,ModbusTCP通俗点说就是它是走网口的,作者在自动化领域耕耘多年,做过的Modbus项目无数,靠Modbus通信的兼职也赚过数万,毕竟让我徒手撸一个ModbusSlave这种Modbus调试工具对我而言也不在话下,比如上图你看到的Modbus调试助手就是我写的。古人云读万卷书不如行万里路,行万里路不如名师指路,所以入门最快的方法一定是找个前辈模仿他,年轻的时候一定要投资自己!买书、买课程学习都是你提升自己最快的方法,成为高手别无他法,努力学习+模仿高手,他日一定有所成就!一本书、一个课程几十块钱,但是在未来为你赚到的钱一定是这些成本的几十倍、几百倍、上千倍,甚至更多!如果你是一个普通人,没有强大的背景,一定要持续学习,持续学习是普通人逆袭唯一的方法!如果想精通Modbus编程,c#基础的语法知识必不可少,订阅我的专栏《C# Modbus通信从入门到精通》就送《C#本质论》、《C#图解教程》电子书。总之,只要跟我学了Modbus通信,一定能打变Modbus无敌手,如果我问你以下几个问题,你都能答上来,才算是一个高手,不然怎么轻松拿三十万+年薪,当然这些知识我都会在我的专栏《C# Modbus通信从入门到精通》中进行详细介绍。
问题1:Modbus总共有几种?
问题2:Modbus RTU是走串口还是网口?
问题3、Modbus RTU需要校验吗?
问题4、Modbus TCP需要校验吗?
问题5、Modbus支持哪些功能码?每一种功能码的具体含义是啥?
问题6、怎么解决ModbusRTU通信中多线程通信问题?
问题7、怎么解决ModbusTCP通信中掉线重连问题?
如果我问的上面几问题你不能全部掌握的话,我建议你还是来我的专栏《C# Modbus通信从入门到精通》系统学习一下吧!
本专栏将会详细对这三种协议如何在C#程序开发上的应用进行详细讲解,包含协议原理、报文格式、C#源码实现。

专栏刚推出就上了csdn热销榜,由此可见该专栏内容有多超值!
C# Modbus通信从入门到精通(21)——Modbus TCP协议原理,C# Modbus通信从入门到精通,tcp/ip,Modbus,通信,c#

5、《C# Modbus通信从入门到精通》专栏文章目录

点击下面的文章链接即可转到该文章:
1、C# Modbus通信从入门到精通(1)——虚拟串口调试工具的使用
2、C# Modbus通信从入门到精通(2)——Modbus RTU协议原理
3、C# Modbus通信从入门到精通(3)——Modbus RTU(0x01功能码)
4、C# Modbus通信从入门到精通(4)——Modbus RTU(0x02功能码)
5、C# Modbus通信从入门到精通(5)——Modbus RTU(0x03功能码)
6、C# Modbus通信从入门到精通(6)——Modbus RTU(0x04功能码)
7、C# Modbus通信从入门到精通(7)——Modbus RTU(0x05功能码)
8、C# Modbus通信从入门到精通(8)——Modbus RTU(0x06功能码)
9、C# Modbus通信从入门到精通(9)——Modbus RTU(0x0F功能码)
10、C# Modbus通信从入门到精通(10)——Modbus RTU(0x10功能码)
11、C# Modbus通信从入门到精通(11)——调试软件Modbus Slave和Modbus Poll的使用
12、C# Modbus通信从入门到精通(12)——Modbus ASCII协议原理
13、C# Modbus通信从入门到精通(13)——Modbus ASCII(0x01功能码)
14、C# Modbus通信从入门到精通(14)——Modbus ASCII(0x02功能码)
15、C# Modbus通信从入门到精通(15)——Modbus ASCII(0x03功能码)
16、C# Modbus通信从入门到精通(16)——Modbus ASCII(0x04功能码)
17、C# Modbus通信从入门到精通(17)——Modbus ASCII(0x05功能码)
18、C# Modbus通信从入门到精通(18)——Modbus ASCII(0x06功能码)
19、C# Modbus通信从入门到精通(19)——Modbus ASCII(0x0F功能码)
20、C# Modbus通信从入门到精通(20)——Modbus ASCII(0x10功能码)
21、C# Modbus通信从入门到精通(21)——Modbus TCP协议原理
22、C# Modbus通信从入门到精通(22)——Modbus TCP(0x01功能码)
23、C# Modbus通信从入门到精通(23)——Modbus TCP(0x02功能码)
24、C# Modbus通信从入门到精通(24)——Modbus TCP(0x03功能码)
25、C# Modbus通信从入门到精通(25)——Modbus TCP(0x04功能码)
26、C# Modbus通信从入门到精通(26)——Modbus TCP(0x05功能码)
27、C# Modbus通信从入门到精通(27)——Modbus TCP(0x06功能码)
28、C# Modbus通信从入门到精通(28)——Modbus TCP(0x0F功能码)
29、C# Modbus通信从入门到精通(29)——Modbus TCP(0x10功能码)文章来源地址https://www.toymoban.com/news/detail-606871.html

到了这里,关于C# Modbus通信从入门到精通(21)——Modbus TCP协议原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)

    本篇将会以西门子PLC软件搭建ModbusTCP仿真环境,并通过仿真环境,介绍基础知识及模拟实际应用中写一个简单的通信读取PLC数据方法,并简介了编写上位机的方法。 由于具有TCP/IP栈协议,通常在Modbus TCP通讯的上位机开发中, 上位机是作为客户端,控制器作为服务器 。Modbu

    2024年02月08日
    浏览(34)
  • 嵌入式通信协议【Modbus】Modbus TCP的帧格式

    Client request:例: 19 B2 00 00 00 06 06 03 00 27 00 02 上面是modbus客户端发出的报文内容,为modbus tcp/ip协议格式,其前面的六个字节为头字节( header handle); 19 B2 00 00 00 06 19 B2  00 00 00 06 两个Client发出的检验信息,Sever端只是需要将这两个字节的内容copy以后再放到response的报文的相应位

    2024年02月05日
    浏览(44)
  • 手把手教你从入门到精通C# Modbus通信

    在工业通信领域,Modbus通信是一种使用非常广泛的通信协议,Modbus一般有三种,分别为ModbusRTU、ModbusASCII、ModbusTCP,其中ModbusRTU、ModbusASCII是应用于串行链路上的协议,通俗一点就是说它是走串口的,ModbusTCP通俗点说就是它是走网口的,作者在自动化领域耕耘多年,做过的Mo

    2024年02月14日
    浏览(32)
  • C# Modbus通信从入门到精通(11)——调试软件Modbus Slave和Modbus Poll的使用

    我们在开发Modbus程序的时候,会需要测试以下我们写的Modbus程序有没有问题,这时候就需要使用到Modbus Slave和Modbus Poll这两个软件,Modbus Slave是模拟Modbus从站,Modbus Poll是模拟Modbus从站主站的, 一般情况下我们开发的Modbus主站程序,当我们没有硬件作为从站的时候,我们可以

    2024年02月06日
    浏览(30)
  • C# Modbus通信从入门到精通(1)——虚拟串口调试工具的使用

    由于我们在开发程序时经常是没有硬件给我们测试的,所以我们在开发ModbusRTU以及ModbusASCII程序时,可以使用虚拟串口调试工具来虚拟出来一对串口方便我们进行测试,订阅本专栏后,加入vip专属的qq群,在群资料里面就能找到虚拟串口工具 第1步、双击vspd.exe安装 第2步、 打

    2024年02月06日
    浏览(37)
  • 工业控制系统:HSLCommunication可以与PLC进行通信详解:C# HSLCommunication可以与 modbus tcp通信demo

    当使用C#编程语言时,HSLCommunication库是一种常用的工具,用于实现与Modbus TCP通信。在本文中,我将为您提供详细的步骤和示例代码,以帮助您开始使用HSLCommunication库与Modbus TCP通信。 步骤1:安装HSLCommunication库 首先,您需要在您的C#项目中安装HSLCommunication库。您可以通过Nu

    2024年01月22日
    浏览(33)
  • Modbus tcp转ETHERCAT网关modbus tcp/ip协议

    捷米JM-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中,实现两种不同协议设备之间的通讯。这个网关能够大大提高工业生产的效率和生产效益,让生产变得更加智能化。捷米JM-ECT-TCP 是自主研发的一款 ETHERCAT 从站功能的通讯网关。该产品主要功能是将 ETHERCAT 网络和 MODB

    2024年02月15日
    浏览(46)
  • Modbus TCP通信报文解析

    一、实现了读取线圈状态和写入多个线圈的功能。代码中包含了详细的注释说明,可以清晰地了解每个方法的功能和使用方式。 对于读取线圈状态的方法,使用时需要传入从站地址、起始地址和线圈数量,最后会返回一个 bool 数组,其中每个元素表示一个线圈的状态。 对于

    2024年02月15日
    浏览(24)
  • 【netty系列-01】深入理解网络通信基本原理和tcp/ip协议

    Netty系列整体栏目 内容 链接地址 【一】深入理解网络通信基本原理和tcp/ip协议 https://zhenghuisheng.blog.csdn.net/article/details/136359640 【二】深入理解Socket本质和BIO https://zhenghuisheng.blog.csdn.net/article/details/136549478 在最初的网络中,是借鉴于这个OSI七层网络模型,而在实际开发应用中

    2024年03月17日
    浏览(45)
  • Modbus-TCP协议说明

    文章要说明Modbus TCP协议的相关内容。此协议是1996年施耐德公司推出的基于TCP/IP协议的Modbus协议。 此协议与Modbus-RTU协议最大的不同就是,使用了在TCP/IP协议上的专用的报文头识别Modbus应用数据单元。这种报文头被称为MBAP报文头。  报文头的长度是7个字节,分别有: 事务处理

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包