Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# nmodbus4

作者:叶随雨落   发布日期:2025-06-20   浏览:84

using System;
using Modbus.Device;
using System.IO.Ports;

class Program
{
    static void Main(string[] args)
    {
        // 创建一个串口对象,指定串口号、波特率等参数
        using (SerialPort serial = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One))
        {
            serial.Open();

            // 创建Modbus主站设备,使用RTU协议
            using (ModbusMaster master = ModbusSerialMaster.CreateRtu(serial))
            {
                try
                {
                    // 读取保持寄存器的数据,从地址0开始读取1个寄存器
                    ushort startAddress = 0;
                    ushort numRegisters = 1;
                    ushort[] registers = master.ReadHoldingRegisters(1, startAddress, numRegisters);

                    Console.WriteLine($"Read Holding Register: {registers[0]}");
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error: {ex.Message}");
                }
            }

            serial.Close();
        }
    }
}

解释说明:

  1. 引入命名空间using Modbus.Device;using System.IO.Ports; 是为了使用Modbus库和串口通信功能。
  2. 创建串口对象:通过 new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One) 创建一个串口对象,并设置串口号、波特率、校验位、数据位和停止位。
  3. 打开串口:调用 serial.Open() 打开串口连接。
  4. 创建Modbus主站设备:使用 ModbusSerialMaster.CreateRtu(serial) 创建一个RTU模式的Modbus主站设备。
  5. 读取保持寄存器:通过 master.ReadHoldingRegisters(1, startAddress, numRegisters) 读取从设备(地址为1)的保持寄存器数据,从地址0开始读取1个寄存器。
  6. 异常处理:使用 try-catch 块捕获并处理可能发生的异常。
  7. 关闭串口:在完成操作后,调用 serial.Close() 关闭串口连接。

上一篇:c# 委托和事件

下一篇:c# rtsp

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c#高并发

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站