C# Modbus通信从入门到精通(11)——调试软件Modbus Slave和Modbus Poll的使用

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

前言

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

1、协议选择

一般情况下我们开发的Modbus主站程序,当我们没有硬件作为从站的时候,我们可以使用Modbus Slave来模拟Modbus从站,然后我们就可以对Modbus Slave进行访问,进行读取线圈状态,读取保持寄存器的值等操作,当然我们在进行Modbus调试的时候可能有三种不同的协议,也就是ModbusRTU、ModbusASCII、ModbusTCP,下面分别介绍如何在Modbus Slave使用这三种不同的协议

1.1 ModbusRTU

当我们使用ModbusRTU协议时,在连接时选择Serial Port,然后Mode中选择RTU即可,如下图:
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节

1.2 ModbusASCII

当我们使用ModbusASCII协议时,在连接时选择Serial Port,然后Mode中选择ASCII即可,如下图:

c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节

1.3 ModbusTCP

当我们使用ModbusTCP协议时,在连接时选择Modbus TCP/IP,然后设置IP Address、Port即可,如下图:
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节

2、Modbus Slave

2.1 Modbus Slave创建0到9一共10个地址的线圈

这里以Modbus RTU为例,我们通过Modbus Slave创建0到9一共10个地址的输出线圈,并且将地址0、1、2这三个地址的值赋值为1,其余地址值为0,操作步骤如下:
1)点击“Connect”
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节
2)设置通信参数
尤其注意,因为我电脑使用虚拟串口助手,虚拟了COM1、COM2这一对串口,所以我在这里选择的是COM2,因为我会在Modbus主站打开COM1,然后点击“OK”
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节
3)点击“Slave Definition”
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节
4)设置读取、写入参数

c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节
设置从站地址(Slave Id)为1
设置功能(Function)为01 线圈状态,这里特别要注意的是:
4.1)当主站使用0x01、0x05、0x0F这三个功能码时,ModbusSlave的Function都是选择01 Coil Status
4.2)主站使用0x02这个功能码时,ModbusSlave的Function都是选择02 Input Status
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节
4.3)当主站使用0x03、0x06、0x10这三个功能码时,ModbusSlave的Function都是选择03 Holding Register,如下图:
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节
4.4)当主站使用0x04这个功能码时,ModbusSlave的Function都是选择04 Input Register,如下图:
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节

设置起始地址为0
设置数量为10,
结果如下:
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节

我们可以手动的更改每个线圈的值如下:
双击箭头所指处,然后弹出一个窗体,我们可以设置该线圈的值时ON还是OFF。
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节
我们将地址0、1、2设置为ON,如下图:
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节
5)打开Modbus Poll
c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节

c# modbus,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节
将Modbus Poll的参数设置的和Modbus Slave一样,就会发现地址0、1、2的值在ModbusPoll中显示的都是1.

3、为何要学习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,C# Modbus通信从入门到精通,c#,通信,Modbus,1024程序员节

一、《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-741851.html

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

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

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

相关文章

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

    Modbus TCP是走网口的,也可以在同一时间内有多个从站访问主站,并且通过Modbus事务处理标识来区分同一时刻的不同Modbus事务,这是区别于Modbus ASCII和Modbus RTU的地方。 Modbus客户端通常输入Modbus服务器的IP地址和端口号来建立TCP连接,然后根据从站地址来确定具体访问哪个从站

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

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

    2024年02月14日
    浏览(35)
  • C# Modbus通信从入门到精通(29)——Modbus TCP(0x10功能码与C#代码实现)

    使用该功能码能将多个保持寄存器的值写入到远程地址中 更详细的格式如下: MBAP报文头+功能码+寄存器起始地址高字节+寄存器起始地址低字节+寄存器数量高字节+寄存器数量低字节+字节计数(1个字节)+寄存器1高字节+寄存器1低字节+…+寄存器N高字节+寄存器N低字节+CRC,一

    2024年02月06日
    浏览(42)
  • C# Modbus通信从入门到精通(22)——Modbus TCP(0x01功能码与C#代码实现)

    使用该功能码能从远程地址中读取1到2000个线圈的状态,每个线圈的状态只能是0或者1,读取的线圈数量由主站读取时指定。 MBAP报文头格式如下: 更详细的格式如下: MBAP报文头+功能码+起始地址高位+起始地址低位+线圈数量高位+线圈数量低位,一共12个字节。 更详细的格式

    2024年02月07日
    浏览(41)
  • Modbus PLC攻击分析:从Modbus Poll Slave到M340_intouch modbustcp 读取 m340

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月28日
    浏览(26)
  • Modbus通信从入门到精通_1_Modbus通信基础

    关于Modbus通信的相关知识比较零碎,此处对查找到的知识点从 理论 , 通信协议 、 使用方法 方面进行整理。 值得学习的博文:Modbus及调试用软件介绍;Modbus协议和上位机应用开发介绍 Modbus是一种第三方公开协议 ,采用主从结构,主控设备房称为Modbus Master,从设备方称为

    2024年02月13日
    浏览(29)
  • 【工具使用】Modbus Poll软件使用详解

             Modbus Poll是一个模拟Modbus协议主机的上位机软件,主要用于模拟测试跟其他从机设备通信的过程。与之成套存在的另一个软件--Modbus Slave,则是模拟Modbus协议从机的上位机软件。该软件内部封装标准Modbus协议栈,通过图形化界面使得操作更为简便。目前软件支持

    2024年02月03日
    浏览(30)
  • C#使用NModbus4库创建Modbus TCP Slave(服务器)简单示例

    本文续上篇Codesys—标准库ModbusTCP Master(客户端)配合C#的NModbus4库的通讯示例 链接:https://blog.csdn.net/wushangwei2019/article/details/136375234?spm=1001.2014.3001.5501 上篇描述在Codesys端的Modbus TCP Master(客户端)的设备添加、IO映射、通讯简单展示等方面,本文记录PC端C#利用NModbus4通讯库创建Mo

    2024年03月16日
    浏览(35)
  • 基于C#制作一个串口通信调试软件

    串口调试软件是一种用于调试和监测串口通信的工具软件。它可以帮助用户通过串口与外部设备进行通信,并实时显示发送和接收的数据,方便用户进行数据的分析和调试。

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

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

    2024年02月08日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包