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

这篇具有很好参考价值的文章主要介绍了Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇将会以西门子PLC软件搭建ModbusTCP仿真环境,并通过仿真环境,介绍基础知识及模拟实际应用中写一个简单的通信读取PLC数据方法,并简介了编写上位机的方法。

由于具有TCP/IP栈协议,通常在Modbus TCP通讯的上位机开发中,上位机是作为客户端,控制器作为服务器。Modbus TCP使用基于客户端-服务器的模式,其中 客户端是发送请求的设备,服务器是响应请求的设备 。客户端发送称为"Modbus报文"的请求到服务器,服务器对请求进行解析并返回相应的数据。这种模式允许多个客户端同时与服务器通信。这在上篇中已做解释,本篇中的案例也是采用上位机是作为客户端,控制器作为服务器的方式。

1. 搭建ModbusTCP仿真环境

搭建ModbusTCP仿真环境可以采用以下两种方式

  • 怎么快速搭建一个ModbusTCP服务器? ModbusSlave。
  • 可以用西门子PLC来做ModbusTCP仿真环境

先搭建西门子PLC的仿真环境,写ModbusTCP的程序才能实现ModbusTCP仿真环境

1.1 PLC仿真环境搭建

1.1.1 S7-PLCSIM Advanced V3.0设置与程序下载

先安装博图软件(安装环境需要纯净,也可以使用虚拟机),安装授权完成之后启动以下软件来仿真PLC(不需要实际的PLC),设置如下图所示:IP为:192.168.1.166,黄色代表准备状态
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
由于是第一次创建实例,需要使用博图下载程序进去,首先创建一个解决方案
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
解决方案中还没有项目存在
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
创建新项目->“添加新设备”
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
因为是要做仿真,必选选择1500的PLC,一般选择如下图所示:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
创建之后,需要改IP地址为与第一张截图中的IP地址一致,即:192.168.1.166

PLC有两个网卡,三个pn/dp,下图显示的是1段的也就是第二个网卡的信息,而我们一般使用的时默认的0段也就是第一个网卡
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
修改第一个网卡的IP地址为192.168.1.166,修改完之后会发现报错,这是因为网口1和网卡2是在一个网段,因此需要将网卡2的网段进行修改
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
将网卡2的网段进行修改到另一个网段就正常了
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
点击上方的“保存项目”
按照下图方式,尝试进行程序的下载
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
选择接口为“Siemens PLCSIM Virtual Ethernet Adapter”,后点击“开始搜索”
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
搜索之后找到了我们创建的虚拟的PLC的地址,但是无法下载
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
按下图进行编译之后,选择“下载到设备”->“硬件配置”->“开始搜索”,“下载按钮”就显示正常
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
点击“下载”之后
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
点击“装载”
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
如下图选择“启动模块”->“完成”,重启模块
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
此时一直无法装载成功,重新编译下载还是会报如下错误:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
进行如下设置,细节如下:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
重新编译下载之后进行装载成功
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
此时再查看软件界面,状态为绿色,代表程序下载成功
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

1.1.2 创建虚拟PLC并进行通讯

下载成功还是不能与虚拟的PLC进行通讯
可以进行一下尝试
利用以下软件创建一个西门子的PLC
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
设置如下:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
创建一个组即M存储区
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
“保存配置”->“启动”
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
但仍显示“未连接”
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
还需进行操作:勾选“PUTGET”,并对设置进行保存,重新下载PLC
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
重新启动,显示已经连接
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
此时可以看到“MW0”的值为0
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
通过“组对象变量”->“修改变量”,将其修改为“33”
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
在PLC程序中进行监控,监控方法如下,可以看到“MW0”的值变为33
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
上述的过程就可以实现一个虚拟的PLC与程序之间的通讯。“新阁教育配置一体化软件”扮演的角色就是实体PLC,“S7-PLCSIM Advanced V3.0”可能起到的一个中间环境配置的作用,具体后期可以查查官网资料。

在上面的基础上,增加一个“DB1”的“组对象”,同时将“MW0”的组对象禁止(双击组对象,“Active”取消勾选),启动之后发现无法连接
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
这是因为PLC程序中不存在“DB1”,所以也就无法连接进行读取
PLC中添加“DB1”
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
创建变量
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
创建变量值之后,点击“启动”还是无法访问,这是因为需要做以下设置
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
“优化的块访问”取消勾选
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
保存下载,重新启动,显示连接成功
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
修改值成功
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

1.1.3 PLC通讯中常见问题

有些时候还会碰到如下问题
有人将读取长度改为“100”个字节,但是最大只有28个字节,这也会导致无法连接成果
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

下面再给大家分享,如果出现PLC通信不上的问题之后,我们如何快速定位问题,解决问题?
1、我们首先要Ping一下PLC的IP地址,保证物理网络是正常的,一定要记住Ping通只能证明网络没问题,并不能代表一定可以通信。
2、西门子S7协议是基于TCP的,所以我们接下来可以用网络调试助手去连接PLC,IP地址填写PLC的IP地址,端口号填写102(表示端口开放)。
3、用通信测试平台测试变量,记住这里最好先测试M存储区,如MD100(M区是自带就有的,M区能读到后边主要就是优化的问题)。
4、如果通信测试平台可以,说明PLC端设置基本上都没问题了,但是如果这时候配置软件仍然有问题,可以先删除所有的组,只创建一个通信组,并且把存储区选择M存储区
5、如果上面的单个M存储区可以,一般就是你通信组配置的问题了,可以将所有的通信组的Active激活都取消然后逐个开启,定位是哪个或者哪几个通信组的问题,然后再找原因。

1.2 搭建ModbusTCP仿真环境

1.2.1 PLC中ModbusTCP通讯程序编写

需要写些程序来进行通讯,使得PLC成为ModbusTCP服务器
选择“MB_SERVER_DB”程序块
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

需要查看“帮助文档”对接口所需的进行配置,创建一个DB块,改名如下:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
“InterfaceId”查看方式如下
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
PLC作为Modbus TCP通讯的服务器也就是local,连接PLC的客户端就是Remote,需要通过设置“RemoteAddress”设置可以连接PLC的IP地址。当你想要实现凡是知道PLC的IP地址和端口号就可以连接,无所谓客户端是谁,采用默认的“0”的设置即可(下图既是)。“LocalPort”是PLC的端口,最终的设置如下图所示:(相关的设置都可以查看帮助文档)
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
下载之后进行测试

1.2.2 上位机与PLC的ModbusTCP通讯测试

先用“网络调试助手”测试“502”端口有没有开
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
再利用“Modbus Poll”进行测试
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
“Modbus Poll”可以读取到PLC中DB1的值
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
也可以实现对DB1中某一个地址的值进行修改
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
这就实现PLC的通讯

1.2.3 使用到的寄存器与PLC中的映射关系

“MB_SERVER_DB”程序块是西门子提供,其中只写到了“MB_HOLD_REG”,但是我们知道Modbus有四个存储区(输入线圈、输出线圈、输入寄存器、输出寄存器),但是这个程序块中只写了一个存储区,这是因为西门子觉得某些是非必要的。
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

  • 输入线圈与I区进行映射,读输入的话也就读的是I区;
  • 输出线圈与Q区映射

使用“Modbus Poll”进行读取的方法如下:“Setup”->“Read/Write Definition”,读已采输入

modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
下图是读到的I区,如果接的按钮就可以读到按钮的状态
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
同理,“Setup”->“Read/Write Definition”选择“01 Read Coils(0x)” 读取线圈,输入不可改,但是输出是可以修改的,下图将值变为1
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
通过PLC进行监控的话,上面修改为1的点为Q0.0,如果实际中这个点接个风扇或者电机就可以进行操作了
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

  • 输入寄存器映射PIW区

上面三个存储区,西门子都不太重视,主要重视的是输出寄存器即保持型寄存器,原因是:利用输出寄存器就可以实现Modbus tcp通信功能
既能表示读取和写入;又能表示bool、数值、寄存器
因此从某种角度说明,只使用输出寄存器就可以实现Modbus tcp通信功能

如何去做对应关系:
PLC中地址偏移量是以字节为单位,而Modbus是以寄存器为单位,一个寄存器存储两个字节

40001开始到40014 映射关系 P#DB1.DBX0.0 BYTE28:
P#DB1.DBX0.0 BYTE28是以指针形式表示的DB1的DBX0.0开始(在使用的西门子Modbus tcp的程序块中设置的“MB_HOLD_REG”输出寄存器),其有28个字节(28个字节对应14个寄存器),4001是第一个寄存器,往后数14个即可

“Modbus Poll”中“Setup”->“Read/Write Definition”选择“03 Read Holding Registers(4x)” 读取保持型寄存器
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
当想读取某个bool量,需要读取后做进一步的解析,将寄存器变为一个个的位,通过位做对应关系
这样写最大的问题在于bool的操作,不仅是读取,如何写入是很麻烦的
如果想操作DB1.DBX2.0怎么办?后边会讲

为什么通过“Modbus Poll”可以读取到这些数据呢?
答案是通过发报文
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
可以看到内部是在发报文和回收报文
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
如果没有“Modbus Poll”测试软件就得自己用程序去写,去写的前提是需要知道协议,知道如何去发和解析

2. ModbusTCP通信协议报文格式

对于Modbus基础的这里就不涉及了,直接讲协议

ModbusTCP 与 ModbusUDP 的报文格式是一样的,它们之间的区别其实就是 TCP 与 UDP 的区别,因此下面就针对 ModbusTCP 的协议进行分析,ModbusTCP 与 ModbusRTU (ModbusASCII)之间的区别如下图:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
图中右上为串口协议,下为Modbus TCP的协议。从上图可以看出,ModbusTCP 在 Modbus 串行通信的基础上,去除了校验(由于 TCP 本身就带有校验)和设备地址 (ModbusTP 弱化了设备地址,用IP 地址来取代),再加上 MBAP 报文头(占7bytes)。

2.1 报文格式

Modbus TCP报文格式: MBAP +功能码+数据

MBAP分解为四个部分:事务处理标识符+协议标识符+长度+单位标识符
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

Tx:00 03 00 00 00 06 01 03 00 00 00 0A
Rx:00 03 00 00 00 17 01 03 14 00 7B 01 4E 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00

以上面截取到的报文进行分析

  • 事务处理标识符:占两个字节,00 03就是事务处理标识符,通过截取一段时间的报文可以看到它是依次递增的,也就是一个序号而已,没有实质意义
    modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
  • 协议标识符:占两个字节,固定值,00 00
  • 长度:00 06后边有6个字节,00 17(16进制的,对应十进制为23)后面有3+10*2=23个字节,代表了它后面还有多少字节
  • 单位标识符(站地址(音译)):占一个字节,一般都设置为01,也可以是其他值,是否可以设置为其他值是与服务器相关的,西门子是支持改为其他值的
  • 功能码:干什么的,03代表读取保持寄存器
    Modbus 协议同时规定了二十几种功能码,但是常用的只有 8 种,用于针对上述存储区的读写如下表所示:
    modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
  • 数据:是一个变化的,要读数据就配起始地址、长度,要写数据的话配写入的地址和数据

2.2 关于03(读取保持寄存器)功能码的说明

Tx:00 03 00 00 00 06 01 03 00 00 00 0A

发送报文格式如下:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

  • 事务/协议标识符:不用管,不用自增,全部用0
  • 长度:固定为6,这是因为读取保持寄存器,只有两个参数会变:从哪读,读多少个,但是其整体的长度是不会变的

发送报文含义:读取服务器1号从站(单元标识符0x01)保持寄存器,起始地址为0x6B=107(相对地址),对应地址为 40108(绝对地址),寄存器数量为 0x02=2,即读取1号从站保持寄存器,地址从 40108-40109,共 2个寄存器的数值。

返回报文格式如下:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
返回报文含义:返回服务器1 号从站保持寄存器 40108-40109,共 2个寄存器的数值,返回字节数为4个,分别为02 2B 01 06,40108 对应数值为 0x022B,40109 对应数值为 0x0106。

Rx:00 03 00 00 00 17 01 03 14 00 7B 01 4E 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 7B对应的就是DB1.DBW0的值,01 4E对应的就是DB1.DBW2的值,上面的“14”代表十进制20个字节,即返回20个字节数据

看到所谓的协议,基本上也就可以理解为不同的通讯格式

3. 写一个简单的通信读取PLC数据

如果没有“Modbus Poll”测试软件,只有网络调试助手,在懂协议的情况下就可以任意读取数据,例如想要读取下图框选的DB1.DBW14处的值:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
读取和返回对应如下图:上面的偏移量是PLC中地址偏移量是以字节为单位,而Modbus是以寄存器为单位,一个寄存器存储两个字节
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
通讯就是自己组织报文并发出,解析回的东西中的数据,这样就实现了与PLC的通讯

这个过程就称为封装通讯库,后期将会介绍如何手写通讯库

4.学习地址:Modbus TCP通信详解

注:文章中涉及的软件均可以在doNet公众号中下载

5. 下篇将会介绍如何使用Qt创建一个基于ModbusTCP的通信软件

参考博文:QT下的Modbus TCP 通讯

6. 施耐德Modicon M262的ModbusTCP通信

6.1 施耐德Modicon M262

在使用施耐德Modicon M262作为server,上位机作为client中,在server中功能码读取存储区位置的对应关系如下:
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议
modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

6.2 PLC中MX、MB、MW、MD的含义和长度

modbus tcp上位机编写,# ModBus通信从入门到精通,tcp/ip,网络,网络协议

6.2 Qt上位机程序与地址表的对应关系

待续…文章来源地址https://www.toymoban.com/news/detail-713062.html

到了这里,关于Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Modbus通信从入门到精通_1_Modbus通信基础

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

    2024年02月13日
    浏览(47)
  • C# Modbus通信从入门到精通(12)——Modbus ASCII协议原理

    Modbus ASCII是串行链路上的协议,也就是说ModbusASCII是通过串口通信来实现的,它可以通过RS232、RS485物理层的接口来实现,同时它也是一个主从协议,在同一时间总线上只能有一个主站和一个或多个(最多247)个从站。Modbus通信总是由主站发起,从站没有接收到主站的请求时不

    2024年02月15日
    浏览(81)
  • Modbus TCP通信协议详解

    一、Modbus TCP通信概述 MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如PLC,I/O模块,以及连接其它简单域总线或I/O模块的

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

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

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

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

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

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

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

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

    2024年01月22日
    浏览(52)
  • Modbus TCP通信报文解析

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

    2024年02月15日
    浏览(47)
  • 嵌入式通信协议【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日
    浏览(79)
  • 【react从入门到精通】React父子组件通信方式详解(有示例)

    【分享几个国内免费可用的ChatGPT镜像】 【10几个类ChatGPT国内AI大模型】 【用《文心一言》1分钟写一篇博客简直yyds】 【用讯飞星火大模型1分钟写一个精美的PPT】 在上一篇文章《JSX详解》中我们了解了什么是jsx以及jsx的语法规则。 本文中我们将详细了解React父子组件通信方式

    2024年02月05日
    浏览(92)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包