IoTClient:一个.NET开源、稳定的物联网通信协议客户端

0f7707060116c242e7a20cde1d0ea00a.png

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!

项目介绍

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;

部分演示效果截图

0fb51f26769260cdb1c523fdc540b987.png 72e878a5d2b2a9032b526cee7e758bf5.png ba48aadd6a83baec29342e401b0d6917.png 8866c9b088b3c1a22abcaeb0c5e280ae.png 01973c6d770b0b896a6db7855cc4362e.png 1ab954c2c3bbb63dc707e6d332ef79b6.png 87f437926e9fbaa749f8b688e54206e7.png 4c4cb6703c2135972d86580fec1fb7df.png 1357f59bb31810feca9a933bb78516c3.png 4525c8bdf8f603030044bc55aa5235f2.png d6a53daedf4909d1362c392fef5b3e15.png 710bb6a17e52ce8b7685700848b305d1.png 86fa25c5b6e3da139431297623f8ebd6.png

开源地址

https://github.com/zhaopeiym/IoTClient

fd7122b860ff4bf74912ffa7cf751f14.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值