大家好,欢迎来到IT知识分享网。
准备工作:
1、增加一对虚拟串口,COM4和COM5,如下所示:
2、使用Modbus Slave软件建立3个数据区,从左到右分别是线圈,寄存器(存放整数),寄存器(存放浮点数)
Modbus Slave的站地址为1,其他信息如下:
步骤1、创建一个串口
首先添加引用,using System.IO.Ports;
设置串口属性,要求与Modbus Slave的属性相同;
static SerialPort port = new SerialPort();
port.PortName = “COM4”;
port.BaudRate = 9600;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.DataBits = 8;
最后,打开串口
try
{
port.Open();
Console.WriteLine(“串口 ” + port.PortName + ” 已打开”);
}
catch (System.Exception)
{
throw new Exception(“串口 ” + port.PortName + ” 已打开失败!”);
}
步骤2、引入NModbus4,创建一个RTU主站
1、添加NeGet包,NModbus4
2、添加引用 using Modbus.Device;
3、创建一个Modbus主站
static IModbusSerialMaster master;
master = ModbusSerialMaster.CreateRtu(port);
master.Transport.ReadTimeout = 1000;//读超时
master.Transport.WriteTimeout = 1000;//写超时
master.Transport.Retries = 3;//尝试重复连接次数
master.Transport.WaitToRetryMilliseconds = 200;//尝试重复连接间隔
步骤3、进行数据读写操作
1、读数据
//读数据
bool[] coils = new bool[8];
coils = master.ReadCoils(1, 0, 8);//读多个线圈
ushort[] datas = new ushort[8];
datas = master.ReadHoldingRegisters(1, 0, 8);//读多个寄存器
2、写数据
//写数据
master.WriteSingleCoil(1, 0, false);//写单个线圈
master.WriteSingleRegister(1, 2, 515);//写单个寄存器
NModbus4,常用功能如下:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27754.html