IoTClient:一个.NET开源、稳定的物联网通信协议客户端
IoTClient:一个.NET开源、稳定的物联网通信协议客户端
·
目录
项目介绍
IoTClient是一个.NET开源、免费(采用最宽松MIT协议)、稳定的物联网设备通讯协议实现客户端,将包括主流PLC通信读取、ModBus协议、Bacnet协议等常用工业通讯协议。
跨平台支持
本组件基于.NET Standard 2.0,可用于.Net的跨平台开发,如Windows、Linux甚至可运行于树莓派上。
主要功能
-
支持ModBus(TCP、RTU、ASCII、RTU Over TCP)、Bacnet等多种工业通信协议。
-
提供对Siemens、Mitsubishi、Omron、Allen Bradley等主流PLC品牌的读写操作支持。
ModBus协议
ModBus协议是一种广泛应用于工业环境中的串行通信协议,它定义了一种主从通信模式,允许主设备(如PLC、计算机等)与一个或多个从设备(如传感器、执行器等)进行通信。
Bacnet协议
Bacnet协议(Building Automation and Control Networks)是一种专为楼宇自动化和控制系统设计的通信协议。它旨在实现不同制造商生产的智能建筑设备之间的互操作性,从而允许这些设备能够在一个共同的通信网络中无缝协作。
MitsubishiClient(三菱)读写操作
//1、实例化客户端 - 输入正确的IP和端口
MitsubishiClient client = new MitsubishiClient(MitsubishiVersion.Qna_3E, "127.0.0.1",6000);
//2、写操作
client.Write("M100", true);
client.Write("D200", (short)11);
client.Write("D210", 33);
//3、读操作
var value1 = client.ReadBoolean("M100").Value;
var value2 = client.ReadInt16("D200").Value;
var value3 = client.ReadInt32("D210").Value;
//4、如果没有主动Open,则会每次读写操作的时候自动打开自动和关闭连接,这样会使读写效率大大减低。所以建议手动Open和Close。
client.Open();
//5、读写操作都会返回操作结果对象Result
var result = client.ReadInt16("D210");
//5.1 读取是否成功(true或false)
var isSucceed = result.IsSucceed;
//5.2 读取失败的异常信息
var errMsg = result.Err;
//5.3 读取操作实际发送的请求报文
var requst = result.Requst;
//5.4 读取操作服务端响应的报文
var response = result.Response;
//5.5 读取到的值
var value4 = result.Value;
OmronFinsClient(欧姆龙)读写操作
//1、实例化客户端 - 输入正确的IP和端口
OmronFinsClient client = new OmronFinsClient("127.0.0.1",6000);
//2、写操作
client.Write("M100", true);
client.Write("D200", (short)11);
client.Write("D210", 33);
//3、读操作
var value1 = client.ReadBoolean("M100").Value;
var value2 = client.ReadInt16("D200").Value;
var value3 = client.ReadInt32("D210").Value;
//4、如果没有主动Open,则会每次读写操作的时候自动打开自动和关闭连接,这样会使读写效率大大减低。所以建议手动Open和Close。
client.Open();
//5、读写操作都会返回操作结果对象Result
var result = client.ReadInt16("D210");
//5.1 读取是否成功(true或false)
var isSucceed = result.IsSucceed;
//5.2 读取失败的异常信息
var errMsg = result.Err;
//5.3 读取操作实际发送的请求报文
var requst = result.Requst;
//5.4 读取操作服务端响应的报文
var response = result.Response;
//5.5 读取到的值
var value4 = result.Value;
部分演示效果截图
开源地址
https://github.com/zhaopeiym/IoTClient
更多推荐
已为社区贡献2条内容
所有评论(0)