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);
}
}
}
}
创建TCP客户端并连接到Modbus服务器:
TcpClient
类创建一个TCP客户端,并连接到指定的IP地址和端口(例如,"127.0.0.1" 和端口 502)。ModbusIpMaster.CreateIpMaster
方法创建一个 Modbus IP 主设备对象。读取保持寄存器(Holding Registers):
startAddress
) 和要读取的寄存器数量 (numberOfPoints
)。master.ReadHoldingRegisters
方法从 Modbus 服务器读取保持寄存器的值,并将结果存储在 registers
数组中。registers
数组并打印每个寄存器的值。写入单个寄存器:
writeAddress
) 和要写入的值 (writeValue
)。master.WriteSingleRegister
方法将值写入指定的寄存器。这段代码展示了如何使用 NModbus 库与 Modbus TCP 设备进行通信,包括读取和写入寄存器的基本操作。
上一篇:c# restsharp
下一篇:c# 字符串转枚举
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站