很久以前,写过一篇C#做Modbus从站的博客
C#工控机作为Modbus从站的方法_gaooolianggg的专栏-CSDN博客_c# modbus 从站
,当时用的是NModbus,整体使用略微有些繁琐。最近在做项目时,使用了一个更方便的方法,这里分享出来。
这里使用的是EasyModbus。在Nuget程序管理中直接下载安装即可。如果你需要使用从站,只需要非常简单的几行代码
ModbusServer modbusServer = new ModbusServer();
modbusServer.Listen();
此时,你就已经完成了一个从站的创建。当你需要读写某个寄存器时,只需要像访问变量值一样
modbusServer.holdingRegisters[1227] = (short)1;
short val = modbusServer.holdingRegisters[1227]
非常的简单好用。
当然,不再使用这个通讯端口时,记得关闭掉
modbusServer.StopListening();
很久以前,写过一篇C#做Modbus从站的博客C#工控机作为Modbus从站的方法_gaooolianggg的专栏-CSDN博客_c# modbus 从站,当时用的是NModbus,整体使用略微有些繁琐。最近在做项目时,使用了一个更方便的方法,这里分享出来。 这里使用的是EasyModbus。在Nuget程序管理中直接下载安装即可。如果你需要使用从站,只需要非常简单的几行代码ModbusServer modbusServer = new ModbusServer();...
WinForm框架 是 Windows Form 的简称,是美国微软公司Microsoft开发基于 .NET Framework 平台的桌面运用程序框架,一般使用 C#语言 编写。WinForm框架可用于设计窗体和可视控件,采用面向对象语言C#,可快速创建绚丽漂亮的基于Windows的桌面应用程序、非常适合做上位机的界面! 串口(Serial Port),也称串行通讯接口(通常指COM口), 串口通信是指将数据一个比特一个比特地逐位进行传输的通信模式。 C#串口通信是借助一个SerialPort类的对象来方便的对串口进行读写。 Modbus是一种串行通信协议,是施耐德电气发表工业标准协议。C# NModbus4库提供了ModbusMaster、ModbusSlave类来实现Modbus通讯相关的功能 本课程主要帮助学员熟练掌握C# WinForm框架上位机串口编程,Modbus协议编程,并且通过两个实战工具项目,为学习C# WinForm上位机编程 串口、Modbus编程打下坚固的基础!
一、为什么使用EasyModbus?
之前一直使用开源库NModbus,它是一个非常优秀的Modbus通信类库,偶然机会下我发现了EasyModbus,发现EasyModbus的代码非常精炼、间接,一两行代码就可以创建一个Modbus TCP Client。
EasyModbus官网:http://easymodbustcp.net/en/
二、使用步骤
1.添加引用
在官网下载DLL文件,在项目中添加引用。
代码如下(示例):
using EasyModbus;
2.创建一个Modbus TCP Cli
EasyModbusTCP.NET -
.NET 的
Modbus TCP、
Modbus UDP 和
Modbus RTU 客户端/服务器库行业认可!! 从 PC 或嵌入式系统快速安全地访问许多 PLC 系统和其他工业自动化组件。 从 PLC 读取数据或向 PLC 写入数据只需要几行代码。
附加软件工具,例如
Modbus 服务器模拟器,使软件
开发变得快速而简单。
从 NuGet 或从以下位置下载库 (*.DLL):
支持的功能代码:
读取线圈 (FC1)
读取离散输入 (FC2)
读取保持寄存器 (FC3)
读取输入寄存器 (FC4)
写单线圈 (FC5)
写单个寄存器 (FC6)
写入多个线圈 (FC15)
写多个寄存器 (FC16)
读/写多个寄存器 (FC23)
Modbus TCP、
Modbus UDP 和
Modbus RTU 客户端/服务器库
用于.NET和Java实现的Modbus TCP Server仿真器和库。 参见库和源代码:www.easymodbustcp.net 连接到 Modbus-TCP、Modbus-UDP 客户端和 Modbus RTU 主站。 服务器侦听端口 502(可以更改)。 还显示协议信息。 允许多个连接数字输入; 线圈; 可以在表格视图 V2.5 版中查看和更改输入寄存器和保持寄存器: - 使用新功能升级库 V1.1 版: - 异步读取和写入以加快服务器 V1.0 版: - 错误修正 V0 版。 96: - 修正 - 服务器模拟器可用作 Java 版本 V0.95: - 支持 Modbus UDP 的 V0.94 版: - 一些错误修正 V0.93 版: - 添加了功能代码 16(写入多个寄存器) - 一些加快速度的措施Modbus服务器-用于.NET实现的DLL库添加了版本V0.92:-添加了功能代码15(写入多个线圈)
要在C#中实现Modbus TCP通信,您需要使用一个Modbus TCP库。以下是使用NModbus库实现Modbus TCP通信的步骤:
1. 在Visual Studio中创建一个新的C#控制台应用程序项目。
2. 在解决方案资源管理器中,右键单击“引用”并选择“管理NuGet程序包”。
3. 在NuGet包管理器中搜索“NModbus”并安装它。
4. 添加以下名称空间:
using System.Net;
using System.Net.Sockets;
using NModbus;
using NModbusTcp;
5. 初始化一个ModbusTCP客户端:
TcpClient client = new TcpClient("IP地址", 端口号);
ModbusIpMaster master = ModbusIpMaster.CreateIp(client);
6. 使用以下代码读取保持寄存器:
ushort[] registers = master.ReadHoldingRegisters(设备地址, 起始地址, 寄存器数量);
7. 使用以下代码写入保持寄存器:
master.WriteMultipleRegisters(设备地址, 起始地址, registers);
请注意,IP地址和端口号应该与您的Modbus TCP从设备的IP地址和端口号匹配。设备地址是Modbus地址,通常为1。
以上是使用NModbus库实现Modbus TCP通信的基本步骤。您可以根据自己的需要进行修改和扩展。
jiangzhe1014:
C#实现ModbusTCP从站
爆魔龙神脚の正义伙伴:
Auto-Encoder理解
CSDN-Ada助手:
1. Prism项目创建
咩野66:
使用C#与Halcon采集Realsense深度图并获取目标点的三维数据
吴国鹏937: