目录

项目介绍

跨平台支持

主要功能

ModBus协议

Bacnet协议

MitsubishiClient(三菱)读写操作

OmronFinsClient(欧姆龙)读写操作

部分演示效果截图

开源地址


 

项目介绍

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

引入地址 

更多推荐