NModbus4项目1——使用NModbus进行简单的线圈和寄存器的读写操作

NModbus4项目1——使用NModbus进行简单的线圈和寄存器的读写操作准备工作:1、增加一对虚拟串口,COM4和COM5,如下所示:2、使用ModbusSlave软件建立3个数据区,从左到右分别是线圈,寄存器(存放整数),寄存器(存放浮点数)ModbusSlave的站地址为1,其他信息如下:步骤1、创建一个串口首先添加引用,usingSystem.IO

大家好,欢迎来到IT知识分享网。

准备工作:

1、增加一对虚拟串口,COM4和COM5,如下所示:

NModbus4项目1——使用NModbus进行简单的线圈和寄存器的读写操作

 

2、使用Modbus Slave软件建立3个数据区,从左到右分别是线圈,寄存器(存放整数),寄存器(存放浮点数)

NModbus4项目1——使用NModbus进行简单的线圈和寄存器的读写操作

 

 Modbus Slave的站地址为1,其他信息如下:

NModbus4项目1——使用NModbus进行简单的线圈和寄存器的读写操作

 

 

 步骤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,常用功能如下:

NModbus4项目1——使用NModbus进行简单的线圈和寄存器的读写操作

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27754.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信