NModbus4练手
using Modbus.Device; using Modbus.Extensions.Enron; using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp21 { internal class Program { static void Main(string[] args)//添加NModbus4库后设置相关参数 { //确定通讯方式 SerialPort serialPort = new SerialPort("COM1");// 实例化并选择COM1端口 serialPort.BaudRate = 9600;//设置波特率 serialPort.DataBits = 8;//数据位 serialPort.Parity = Parity.None;//偶校验 serialPort.StopBits = StopBits.One;//停止位 serialPort.Open();//打开端口 //发送通讯结果 var master = ModbusSerialMaster.CreateRtu(serialPort); ushort[] values = master.ReadHoldingRegisters(1, 10, 4);//从站1,地址10,数量4 //将接收到的结果输出屏幕 Console.WriteLine(values[0] + " " + values[1] + " " + values[2] + " " + values[3]); //写入传递数据 Console.WriteLine( "正在写入 数值到10寄存器" ); master.WriteSingleRegister(1, 20, 12345);//将从站地址1 末位的数值666写入(中间)第20-29个寄存器 master.WriteSingleRegister(1, 21, 12345); master.WriteSingleRegister(1, 22, 12456); master.WriteSingleRegister(1, 23, 12345); master.WriteSingleRegister(1, 24, 12456); master.WriteSingleRegister(1, 25, 12345); master.WriteSingleRegister(1, 26, 12456); master.WriteSingleRegister(1, 27, 12456); master.WriteSingleRegister(1, 28, 12345); master.WriteSingleRegister(1, 29, 12456); Console.WriteLine( "写入完成"); Console.WriteLine("读取线圈状态"); bool[] coilValues = master.ReadCoils(1,0,2);//设置从站地址1,起止地址0,读取数2 Console.WriteLine(coilValues[0] + " " + coilValues[1]); Console.WriteLine("写入一个线圈状态true到寄存器3"); master.WriteSingleCoil(1, 3, true);//写入从站地址1,地址3,状态true Console.ReadKey(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)