首页 > 其他分享 >easymodbus实例转载

easymodbus实例转载

时间:2023-03-18 12:22:58浏览次数:31  
标签:Exception null return modbusClient ushort easymodbus 实例 transferLockObj 转载

使用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

标签:Exception,null,return,modbusClient,ushort,easymodbus,实例,transferLockObj,转载
From: https://www.cnblogs.com/zhangfengggg/p/17229710.html

相关文章

  • 【Android开发】Bundle和Intent实例1-实现根据身高计算标准体重
    编写一个实例来实现Bundle在Activity之间传递信息和Intent跳转Activity页面的效果。此实例是让用户输入性别和身高,以此来判断用户的最佳合适的体重(......
  • 单元测试转载
    NUnit使用NUnit是.net平台上使用得最为广泛的测试框架之一,本文将通过示例来描述NUnit的使用方法,并提供若干编写单元测试的建议和技巧,供单元测试的初学者参考。继续下文......
  • NET中使用NLog记录日志转载
    .NET中使用NLog记录日志 以前小编记录日志使用的是Log4Net,虽然好用但和NLog比起来稍显复杂。下面小编就和大伙分享一下NLog的使用方式。引用NLog.Config在使用NLog......
  • JSON详解转载
    JSON详解阅读目录JSON的两种结构认识JSON字符串在JS中如何使用JSON在.NET中如何使用JSON总结JSON的全称是”JavaScriptObjectNotation”,意思是JavaScript对象表示......
  • Socket 中运用 BufferedStream 类(转载)
    下面的代码示例演示如何使用 BufferedStream 类,而使用 NetworkStream 类来提高某些I/O操作的性能。在启动客户端之前,在远程计算机上启动服务器。启动客户端时,将远......
  • 什么是响应式设计?响应式设计的实现方法与实例分析
    响应式设计是指网站或应用能够在多种设备上自适应地进行布局和显示,无论是在桌面、平板还是手机上,都可以获得一致的用户体验。下面是一个实现响应式设计的示例代码:1.使用CSS......
  • 连接系统架构目录(SLD)失败 的解决方案 - 转载
    当您从工作站打开SAPB1客户端,并收到以下错误之一:·连接系统架构目录(SLD)失败;请联系系统管理员·连接到许可证服务器时出错;请联系系统管理员此问题可能与工作站上的某些......
  • 生成文件名为系统时间的C源码实例
    一最近遇到了一个需要根据时间记录文件名的。先写一个实例来实战:#include<stdlib.h>#include<time.h>#include<stdio.h>intmain(){structtm*newtime;......
  • js中的promise详解【转载】
    一、概述Promise是异步编程的一种解决方案,可以替代传统的解决方案--回调函数和事件。ES6统一了用法,并原生提供了Promise对象。作为对象,Promise有以下两个特点:(1)对......
  • [转载] Python:使用in判断元素是否在列表(list)中,如何提升搜索效率?
    经常会做的一个操作是使用in来判断元素是否在列表中,这种操作非常便捷,省去了自行遍历的工作,而且因为大多数时候列表数据量比较小,搜索的速度也能满足需求。key_list=[1,......