easymodbus实例转载
使用EasyModbus,NuGet安装EasyModbusTCP 5.6.0
添加命名空间using EasyModbus;
byte _DeviceId = 8;
ModbusClient modbusClient = null;
object _transferLockObj = new object();
public void OpenSerialPort()
{
try
{
modbusClient = new ModbusClient("COM1");
modbusClient.UnitIdentifier = _DeviceId;
modbusClient.Baudrate = _baudRate;
modbusClient.Parity = Parity.None;
modbusClient.StopBits = StopBits.One;
modbusClient.ConnectionTimeout = 500;
modbusClient.Connect();
}
catch (Exception ex)
{
}
}
/// <summary>
/// 写入单个寄存器并获取响应
/// </summary>
public byte[] WriteSingleRegister(ushort regAddr, ushort value)
{
try
{
lock (_transferLockObj)
{
modbusClient.receiveData = null;
modbusClient.WriteSingleRegister(regAddr, value);
byte[] Rec = modbusClient.receiveData;
return Rec;
}
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 读取寄存器
/// </summary>
public int[] ReadRegisters(ushort regStartAddr, ushort regEndAddr)
{
try
{
lock (_transferLockObj)
{
ushort Lenth = (ushort)(regEndAddr - regStartAddr + 1);
int[] rec = modbusClient.ReadHoldingRegisters(regStartAddr, Lenth);
return rec;
}
}
catch (Exception ex)
{
return null;
}
}
————————————————
版权声明:本文为CSDN博主「glmushroom」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/glmushroom/article/details/125749515
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?