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

c# nmodbus

作者:稍纵即逝   发布日期:2025-09-15   浏览:48

using System;
using Modbus.Device;
using System.Net.Sockets;

class Program
{
    static void Main(string[] args)
    {
        // 创建TCP客户端并连接到Modbus服务器
        using (TcpClient client = new TcpClient("127.0.0.1", 502))
        using (ModbusIpMaster master = ModbusIpMaster.CreateIpMaster(client))
        {
            // 读取保持寄存器(Holding Registers)
            ushort startAddress = 0; // 开始地址
            ushort numberOfPoints = 10; // 读取点数
            try
            {
                ushort[] registers = master.ReadHoldingRegisters(1, startAddress, numberOfPoints);
                Console.WriteLine("读取的寄存器值:");
                foreach (ushort register in registers)
                {
                    Console.WriteLine(register);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("读取寄存器时出错: " + ex.Message);
            }

            // 写入单个寄存器
            ushort writeAddress = 1;
            ushort writeValue = 1234;
            try
            {
                master.WriteSingleRegister(1, writeAddress, writeValue);
                Console.WriteLine($"写入寄存器 {writeAddress} 的值为 {writeValue}");
            }
            catch (Exception ex)
            {
                Console.WriteLine("写入寄存器时出错: " + ex.Message);
            }
        }
    }
}

解释说明

  1. 创建TCP客户端并连接到Modbus服务器:

    • 使用 TcpClient 类创建一个TCP客户端,并连接到指定的IP地址和端口(例如,"127.0.0.1" 和端口 502)。
    • 使用 ModbusIpMaster.CreateIpMaster 方法创建一个 Modbus IP 主设备对象。
  2. 读取保持寄存器(Holding Registers):

    • 定义开始地址 (startAddress) 和要读取的寄存器数量 (numberOfPoints)。
    • 使用 master.ReadHoldingRegisters 方法从 Modbus 服务器读取保持寄存器的值,并将结果存储在 registers 数组中。
    • 遍历 registers 数组并打印每个寄存器的值。
  3. 写入单个寄存器:

    • 定义要写入的寄存器地址 (writeAddress) 和要写入的值 (writeValue)。
    • 使用 master.WriteSingleRegister 方法将值写入指定的寄存器。
    • 打印成功写入的信息或捕获并处理异常。

这段代码展示了如何使用 NModbus 库与 Modbus TCP 设备进行通信,包括读取和写入寄存器的基本操作。

上一篇:c# restsharp

下一篇:c# 字符串转枚举

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

c#网络编程

c# rectangle

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

Laravel 中文站