前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >工业物联网简易高效的通信库,支持读取、写入、订阅、状态获取、动态数据转发(Kafka、Mqtt、NetMQ、Netty、RabbitMQ)、以及WebApi控制数据采集

工业物联网简易高效的通信库,支持读取、写入、订阅、状态获取、动态数据转发(Kafka、Mqtt、NetMQ、Netty、RabbitMQ)、以及WebApi控制数据采集

作者头像
Shunnet
发布2025-02-20 14:36:08
发布2025-02-20 14:36:08
26400
代码可运行
举报
运行总次数:0
代码可运行
欢迎访问 Shunnet.top 的工业物联网简易高效的通信库

所有库支持 .net8 与 .net9 ,不管你的项目是 8 或 9 都可以使用

https://www.nuget.org/profiles/Shun

能帮助到各位,是我莫大的荣幸,如果觉得不错可以小小的赞助一下喔

这些都是免费的公共动态库,在 Nuget 上都可以搜索到 [ 搜索格式: Snet.* ]

支持定制开发(带上需求文档)

组态示例(点击跳转)

TEP应用示例(点击跳转)

## 阐述
  1. 所有协议公共函数支持同步异步  
  2. 所有协议读取写入协议参数统一  
  3. 全部都是统一入参出参  
  4. 支持多点转发,多点解析  
  5. 支持快速对接,与配置  
  6. 支持虚拟点位  
  7. 所有采集协议支持订阅模式  
  8. 采集与转发协议接口统一  
  9. 事件结果统一,并支持异步事件  
  10. 所有采集都支持 WEBAPI 来进行控制获取数据
## 核心与扩展组件
  1. Snet.Log Verbose(详细信息)、Debug(调试)、Info(信息)、Warning(警告)、Error(异常或错误)、Fatal(致命错误或异常)
  2. Snet.Unility 公共快捷方便方法集合 (字节、枚举、文件、字符串、验证、比对、转换、反射、扩展、Json、Xml、Ftp、System ...)
  3. Snet.Model 特性、数据结构、接口、枚举、模型工具
  4. Snet.Core 处理、反射、转发、脚本、订阅、虚拟地址、TCP、UDP、HTTP、WS、串口、字节数据转换
  5. Snet.Rpc 基于DotNetty实现的RPC(远程过程调用) 支持一对多,支持身份验证
  6. Snet.Redis 非关系型数据库,用于数据快速出站入站存储
  7. Snet.Driver 底层驱动通信库
## 采集协议
  1. 三菱
  2. 西门子
  3. Modbus
  4. 汇川
  5. 欧姆龙
  6. LSis
  7. 基恩士
  8. 松下
  9. 罗克韦尔
  10. 倍福
  11. 通用电器
  12. 安川
  13. 山武
  14. 永宏
  15. 丰炜
  16. 富士
  17. 信捷
  18. 麦格米特
  19. 横河
  20. 丰田
  21. 台达
  22. 维控
  23. 电力通讯规约
  24. Opc(工业标准通信协议) UA、DA、DAHttp
  25. DB(数据库) SqlServer、MySql、Oracle、SQLite
  26. TEP(Tcp扩展插件)
  27. Sim(模拟库)
  28. 英威腾
代码语言:javascript
代码运行次数:0
运行
复制
namespace Snet.Model.@interface
{
    /// <summary>
	/// 数采接口
	/// </summary>
	public interface IDaq : IOn, IOff, IRead, IWrite, ISubscribe, IGetStatus, IEvent, IGetParam, ICreateInstance, ILog, IDisposable { }
}
## 转发协议
  1. Kafka AdminClient、Producer、Consumer
  2. Mqtt [Client Publish、Subscribe 、Service、WSService]
  3. RabbitMQ Publish、Subscribe
  4. Netty [Client Publish、Subscribe 、Service]
  5. NetMQ Publish、Subscribe
代码语言:javascript
代码运行次数:0
运行
复制
namespace Snet.Model.@interface
{
    /// <summary>
	/// 转发接口
	/// </summary>
	public interface IRelay : IOn, IOff, IProducer, IConsumer, IGetStatus, IEvent, IGetParam, ICreateInstance, ILog, IDisposable { }
}
## 协议服务端(用于数据模拟)
  1. Mqtt服务端  
  2. MqttWebSocket服务端
  3. OpcUa服务端
  4. Socket服务端
  5. WebSocket服务端
## 创建实例合集
代码语言:javascript
代码运行次数:0
运行
复制
//实例创建的几种方式
//以OPCUA 采集协议为例
using Snet.Model.@interface;
using Snet.Opc.ua.client;


OpcUaClientOperate? operate = null;
IDaq? daq = null;


//无参实例
operate = new OpcUaClientOperate();
//无参实例调函数创建实例,与无参实例配合使用
operate = new OpcUaClientOperate().CreateInstance(new OpcUaClientData.Basics()).GetRData<OpcUaClientOperate>();
//有参实例
operate = new OpcUaClientOperate(new OpcUaClientData.Basics());
//有参单例
operate = OpcUaClientOperate.Instance(new OpcUaClientData.Basics());
//接口 - 无参实例
daq = new OpcUaClientOperate();
//接口 - 无参实例调函数创建实例,与无参实例配合使用
daq = new OpcUaClientOperate().CreateInstance(new OpcUaClientData.Basics()).GetRData<OpcUaClientOperate>();
//接口 - 有参实例
daq = new OpcUaClientOperate(new OpcUaClientData.Basics());
//接口 - 有参单例
daq = OpcUaClientOperate.Instance(new OpcUaClientData.Basics());


using (operate)
{
    //使用完直接释放
}


using (daq)
{
    //使用完直接释放
}
## 采集应用
  1. 上 “NUGET” 搜索
  2. 安装对应的协议包
  3. 应用代码如下
  4. 协议包内还有内部公共方法,请自行研究使用
代码语言:javascript
代码运行次数:0
运行
复制
//采集协议
//以OPCUA 采集协议为例
using System.Collections.Concurrent;
using Snet.Core.script;
using Snet.Log;
using Snet.Model.data;
using Snet.Model.@enum;
using Snet.Opc.ua.client;
using Snet.Unility;


using (OpcUaClientOperate operate = new OpcUaClientOperate(new OpcUaClientData.Basics
{
    ServerUrl = "opc.tcp://127.0.0.1:6688",
    UserName = "user",
    Password = "password",
}))
{
    //点位地址
    Address address = new Address();
    address.SN = Guid.NewGuid().ToString();
    address.CreationTime = DateTime.Now.ToLocalTime();
    address.AddressArray = new List<AddressDetails>
    {
         new AddressDetails()                                        //地址详情参数介绍
        {
            SN=$"",                                                  //可以理解成唯一标识符(可以存机台号、组名、车间、厂)
            AddressAnotherName="",                                   //地址别名
            AddressDataType=DataType.String,                         //数据类型
            AddressDescribe="",                                      //地址描述
            AddressExtendParam=new object(),                         //扩展数据
            AddressName="",                                          //实际地址[ 不能为空 ]
            AddressPropertyName="",                                  //属性名称
            AddressType=AddressType.Reality,                         //地址类型
            IsEnable=true,                                           //是否启用
            AddressRelayParam=new AddressRelay                       //转发参数
            {
                ISns = new List<string> { "ISN1", "ISN2" },          //实例SN
                Topic = $"topic",                                    //主题
                ContentFormat="Value:{0}"                            //内容格式
            },
            AddressParseParam=new AddressParse                       //脚本解析实例
            {
                ScriptParam=new ScriptData.Basics                    //脚本解析基础数据
                {
                    ScriptCode = @"function Convert(addressname,value) { return '【这是调用脚本解析】传入的地址是:'+ addressname + '----传入的参数是:' + value; }",  //脚本代码
                    ScriptFunction = "Convert",                                                                                                                        //脚本入口
                    ScriptType = ScriptData.ScriptType.JavaScript                                                                                                      //脚本类型
                }
            },
            //AddressParseParam = new AddressParse                  //反射解析
            //{
            //    ReflectionParam = new object[]                    //反射解析的参数
            //    {
            //        new ReflectionData.Basics                     //反射解析基础数据
            //        {
            //                                                      //反射解析的基础数据
            //        },
            //        "SN"                                          //反射解析的SN
            //    }
            // },
         }
    };


    #region 打开
    OperateResult result = operate.On();
    LogHelper.Info(result.ToJson().JsonFormatting());  //转成JSON.JSON格式化
    #endregion 打开


    #region 读取
    //读取
    result = operate.Read(address);
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 读取


    #region 订阅
	//事件信息结果
	operate.OnInfoEvent += delegate (object? sender, EventInfoResult e)
	{
		LogHelper.Info(e.ToJson().JsonFormatting());    //转成JSON.JSON格式化
	};
	//事件数据结果
    operate.OnDataEvent += delegate (object? sender, EventDataResult e)
	{
		LogHelper.Info(e.ToJson().JsonFormatting());    //转成JSON.JSON格式化

		//得到精简版数据 速度很快 <=2ms
		IEnumerable<AddressValueSimplify>? simplifies = e.GetSource<ConcurrentDictionary<string, AddressValue>>()?.GetSimplifyArray();
	};
    result = operate.Subscribe(address);
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 订阅


    #region 写入
    ConcurrentDictionary<string, object> value = new ConcurrentDictionary<string, object>
    {
        ["地址"] = "string 值",
        ["地址"] = (float)1.1f,
        ["地址"] = (double)2.2d,
        ["地址"] = (int)3,
        ["地址"] = true
    };
    result = operate.Write(value);
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 写入


    #region 关闭
    result = operate.Off();
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 关闭


    #region 获取状态
    result = operate.GetStatus();
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 获取状态


    #region 获取参数
    result = operate.GetParam();
    LogHelper.Info(result.GetRData<ParamStructure>().ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 获取参数
}
## 转发应用
  1. 上 “NUGET” 搜索
  2. 安装对应的协议包
  3. 应用代码如下
  4. 协议包内还有内部公共方法,请自行研究使用
代码语言:javascript
代码运行次数:0
运行
复制
//转发协议
//以MQTT为例
using Snet.Log;
using Snet.Model.data;
using Snet.Mqtt.client;
using Snet.Unility;


using (MqttClientOperate operate = new MqttClientOperate(new MqttClientData.Basics
{
    Ip = "127.0.0.1",
    Port = 11819,
    UserName = "user",
    Password = "password"
}))
{
    #region 打开
    OperateResult result = operate.On();
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 打开


    #region 生产
    result = operate.Produce("主题", "内容");
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 生产


    #region 消费
    //事件信息结果
	operate.OnInfoEvent += delegate (object? sender, EventInfoResult e)
	{
		LogHelper.Info(e.ToJson().JsonFormatting());    //转成JSON.JSON格式化
	};
	//事件数据结果
    operate.OnDataEvent += delegate (object? sender, EventDataResult e)
	{
		LogHelper.Info(e.ToJson().JsonFormatting());    //转成JSON.JSON格式化

		//根据传进的RRT 转发响应类型来判断
		 switch (basics.RT)
		 {
			 case ResponseType.Bytes:  //字节数据

				 byte[] bytes = e.GetRData<byte[]>();

				 break;
			 case ResponseType.Content:  //字符串数据

				 string str = e.GetRData<string>();

				 break;
			 case ResponseType.ContentWithTopic: //带主题与内容的包体数据

			     ResponseModel rm = e.RData.ToJsonEntity<ResponseModel>();

				 break;
		 }
	};
    result = operate.Subscribe("主题");
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 消费


    #region 关闭
    result = operate.Off();
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 关闭


    #region 获取状态
    result = operate.GetStatus();
    LogHelper.Info(result.ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 获取状态


    #region 获取参数
    result = operate.GetParam();
    LogHelper.Info(result.GetRData<ParamStructure>().ToJson().JsonFormatting());   //转成JSON.JSON格式化
    #endregion 获取参数
}
## 更新表
2023-02-15
  1. 项目启动  
  2. 库框架搭建  
  3. 采集订阅流程实现多线程队列形式,处理速度大大提升  
代码语言:javascript
代码运行次数:0
运行
复制
//更新,无休眠时间
while(true)
{
	//三大步骤
	1.优化
	2.更新
	3.提交
}

复制

2023-09-20
  1. 采集订阅模式关闭优化  
  2. 底层通信库性能提升  
2023-09-23
  1. 日志记录优化,更详细的日志记录  
2023-09-24
  1. 新增公用库方法
  2. 版本更新
  3. MqttService参数类型修改
2023-09-25
  1. CanLib 文件位置更换
  2. Pack 生成位置更换
2023-09-27
  1. Mqtt 客户端 修改内部公共方法函数名
  2. 转发协议包修改
2023-10-08
  1. 反射新增类库,分为内外使用
  2. 修改转发库获取不到状态问题
  3. 版本更新,提交NUGET
  4. 新增边端 结构参数解析JSON
2023-10-10
  1. 解决OPCUA问题
  2. OPCUA版本更新
2023-10-11 ~ 2023-10-12
  1. 修改 OPCUA 订阅流程逻辑,解决超时问题
  2. 修改 OPCUA 工具显示问题
  3. OPCUA 工具新增 导出 Core 地址对象
  4. 版本更新
  5. 细节更新
  6. 结果类型新增
  7. 单例模式下新增实例数量限制
2023-10-13
  1. 解决RMQ内存增加问题
  2. 新增微秒延时
  3. 版本更新
  4. 新增对象比对方法
  5. 修改 override bool Equals 方法
2023-10-15
  1. 优化细节
  2. 移除 override bool Equals 方法,直接使用对象比对
  3. 版本更新
2023-10-16
  1. 自定义订阅修改
  2. 修改对象比对
  3. 版本更新
2023-10-17
  1. 订阅函数变化更新 新增订阅源数据比对更新,使比对更合理
  2. S7读取修改
2023-10-19
  1. 移除多余脚本代码(只做简单脚本计算)
  2. 优化OPCUA
  3. 版本更新
2023-10-20 ~ 2023-10-23
  1. 新增json字符串判断
  2. 修改opcua当断线重连自动订阅
  3. 修改传输协议的数据格式
  4. 新增新的传输协议 Netty 客户端服务端
  5. 细节优化
  6. 版本更新
2023-10-24 ~ 2023-10-25
  1. 新增数据类型DataTime、Time、Date
  2. 新增倍福客户端
  3. 版本更新,细节优化
2023-10-26
  1. 修改CORE的系统与Unility时间工具
  2. 整体细节优化
  3. 版本更新
2023-10-30
  1. 移除S7非标服务端
  2. 移除Modbus 非标服务端
  3. 底层通信新增字节数从末尾从前移除0x00
  4. 多余代码清理
  5. 版本更新
2023-10-31
  1. OpcUa新增根据设置值自动分配订阅组
  2. OpcDa新增根据设置值自动分配订阅组
  3. 细节优化
2023-11-01
  1. 新增三个特性 单位、验证、展示
  2. 新增获取库参数接口方法【GetParam】
  3. 移除单独生成库配置文件
  4. 细节优化
  5. 新增结构参数类
  6. 版本更新
2023-11-02
  1. 新增创建单例接口方法,为了在反射或获取参数的情况下使用所有功能
2023-11-03
  1. 底层通信读取等待结果新增分批读取
  2. 新增三菱PLC数据采集
  3. 细节优化
  4. 版本更新
2023-11-06
  1. 三菱PLC采集优化
  2. 新增欧姆龙PLC FINS协议采集
  3. 版本更新
2023-11-08
  1. 新增 NETMQ 传输协议(不保证消息质量模式)
  2. 优化函数运行时间,使用 struct 直接操作底层,性能提升
  3. 细节优化,版本更新
  4. 修改所有协议获取参数重复代码,移植至Core
2023-11-09
  1. 新增 AllenBradley PLC采集
  2. 新增S7类型读取流程
  3. 优化CORE内部结构代码
  4. 优化所有采集协议的读取代码
  5. 修改采集协议的OFF方法,新添加订阅OFF
  6. 新增S7、AllenBradley、Mitsubishi、Omron、ModBus 测试服务端(非标准)
  7. 版本更新
2023-11-10
  1. 自定义订阅细节修改,移除不必要的事件
  2. 新增松下PLC
  3. 修改获取参数函数细节
  4. 移除不必要的事件跳转
  5. OpcUa Da 属性BUG修改
2023-11-13
  1. 展示特性中新增详细提示字段,方面展示时了解与指导此属性的详情
  2. Serilog 更新至最新版本
  3. 修改版本规则 ( 年.天.秒 ) ( 23.317.30964 ) -- 23年,第317天,当天的30964秒时生成的版本
  4. 生成nuget包位置更新
2023-11-14
  1. 修改S7库名称,现使用Siemens
  2. 所有库新增详细描述
  3. 等待.net8发布,集成.net8
  4. OPCUA 移除默认XML文件,使用动态创建
  5. 新增版本更新工具,一键更新版本
2023-11-15
  1. 所有库 统一更新,支持 net6.0 、net8.0
  2. mqttwsservice 细节优化
2023-11-16
  1. RPC远程过程调用工具编写
  2. 底层SOCKET WEBSOCKET 修改断线重连规则
  3. 版本更新
2023-11-21
  1. 新增基于DotNetty实现的RPC(远程过程调用) 支持一对多,支持身份验证
  2. RabbitMQ 依赖库更新
2023-11-23
  1. 移除Core中的Redis
  2. 新增 扩展工具 Redis
  3. 修改RPC扩展工具细节
  4. 新增 XML 序列化 反序列化 扩展方法
  5. 新增HEX扩展转换
  6. 版本更新
2023-11-24
  1. 整体框架调整 Core、Model、Extend、Daq、Relay
  2. 实现底层数据转发功能支持热加载热更新
  3. 优化数据解析流程,优化转发流程
2023-11-27
  1. 优化数据结构
  2. 测试底层转发流程(成功)
  3. 测试底层解析流程(成功)
  4. 修改脚本解析默认参数传两个
  5. 修改反射解析默认参数传两个
  6. 新增 动态转发 打开失败重试流程
  7. 版本更新
2023-11-28
  1. 优化数据类型
  2. 优化地址处理函数,严格数据质量
  3. OPCUA 新增当订阅的地址点没有在服务器创建订阅,则重新订阅
2023-11-30
  1. 修改所有协议的函数开始返回的SN
  2. 优化解析,当解析失败异常,则返回空数据,为了更好的判断数据质量
  3. OPCUA新增是否重连,重连间隔参数
2023-12-4
  1. 修改地址处理的细节,让数据质量更准确
  2. 对象比较器更换至CompareNETObjects
  3. 新增示例代码
  4. 修改PACK生成代码位置,与主代码不存在引用关系
2023-12-5
  1. 传输协议 netty 更新 ,修复服务端无法群发问题
  2. 修改三菱采集协议包问题
  3. tool 存在遗留问题待解决
2023-12-7
  1. kafka 处理任务优化
  2. 版本更新
2023-12-11
  1. 新增版本自动更新工具
  2. 新增目标框架自动更新工具
  3. 依赖库更新
2023-12-13
  1. 自动更新工具新增自动打包,一键式完整发布流程
  2. 工具主界面修改,性能优化,更友好的交互
  3. 采集协议、传输协议工具开发,正在进行中
2023-12-14
  1. WPF 属性表格研究,为了开发工具时不用手动写入多个属性控件
  2. 所有基础数据新增 Category 特性
  3. 依赖库更新
2023-12-18
  1. 移除关闭时任务等待
  2. 工具界面整体架构更新完成,包含自动加载参数
  3. UDP、TCPSERVICE工具改造完成
2023-12-19
  1. 新增Ws客户端,服务端
  2. 优化Ws Core
  3. 串口、Tcp客户端改造完成
  4. 优化终端展示界面
  5. 新增第一次打开显示默认界面
2023-12-20
  1. 优化工具界面
  2. 改造OPCUA客户端界面
2023-12-22
  1. OPCUA客户端工具改造完成
  2. OPCUA服务端动态库修改
  3. OPCUA服务端工具改造完成
2023-12-25
  1. 修改Mqtt服务端 验证机制
  2. 删除OPCUA服务端 匿名登录机制
  3. OPCDAHTTP 工具改造完成
2023-12-26
  1. mqtt 服务端问题修改
  2. mqtt 客户端新增断开事件
  3. mqtt 客户端服务端工具改造完成
  4. 新增采集、转发工具模版,更快的集成新的驱动
  5. 新增AllenBradley、Beckhoff、Mewtocol、Mitsubishi、Omron、Siemens 工具
2023-12-27 ~ 2023-12-29
  1. MODBUS 底层库读取写入改造完成
  2. 新增 modbus 工具
  3. 工具细节优化
  4. 模版固定值优化
2024-1-2
  1. 新增转发模块工具,kafka、NetMQ、RabbitMQ、Netty
2024-1-3
  1. 修改工具细节
  2. 优化已存在的问题
  3. 新增Windows窗体示例
  4. 新增Windows动画效果示例
2024-1-4
  1. 修改DB采集问题
  2. 优化DB采集的返回数据格式
  3. 工具新增DB数据采集
  4. 采集转发版本更新
2024-1-5
  1. GE 通用电气 PLC 集成,百分之50
2024-1-8
  1. GE 通用电气 PLC 集成完成
  2. OFF接口新增 强制关闭属性
  3. 所有库修改OFF实现与Dispose流程
  4. 依赖库更新
2024-1-9
  1. 修改OPCUA工具节点浏览的节点导出功能
  2. 新增GE工具
2024-1-10
  1. 细节优化
  2. 新增物联网纯配置数采系统(百分之五)
2024-1-15
  1. 修改所有库的 Depart 函数入口的参数,使用反射自动获取
  2. 修改所有 重写的 TAG 参数,使用反射自动获取
  3. pakc 版本、依赖库更新
2024-1-18
  1. 新增物联网纯配置数采系统(百分之十)
  2. 新增插件工具,用于插件参数提取
  3. 修改获取参数接口,新增属性 GetBasicsParam  获取基础数据
2024-1-19
  1. 新增物联网纯配置数采系统(百分之十五)
  2. 新增物联网纯配置数采系统遇到动态属性加载问题
  3. 上传插件已完成
2024-1-22~2024-1-25
  1. 物联网纯配置数采系统 - 完成 插件的上传,插件的添加(百分之十七)
  2. 优化DataGrid,操作性更完美
  3. OPCUA 依赖库更新
  4. NetMQ 属性新增SN
  5. 物联网纯配置数采系统 数据结构完善
2024-1-30
  1. 日志服务优化,新增递归删除文件
  2. 优化所有底层库的单例模式,节省库的开发周期
  3. 底层库的性能优化
  4. 新增 TEP TCP 扩展 插件 库,用于第三方或非标设备(百分之十)
2024-2-19
  1. 依赖库更新
  2. TEP进度服务端 30%
  3. 优化细节
2024-2-21
  1. 依赖库更新
  2. TEP service 80%
  3. 时间处理类修改,解决多线程中互斥问题
2024-2-22
  1. 依赖库更新
  2. TEP SERVICE 100%
  3. TEP CLIENT 10%
2024-2-23
  1. 修改底层TCP通信细节
  2. TEP 客户端 服务端 完成90%
  3. 新增TEP示例工具
2024-2-26
  1. core tcp service 细节修改
  2. core ws service 细节修改
  3. tep 客户端、服务端 细节优化 完成度98%
  4. 修改mqtt客户端参数
2024-2-27
  1. 工具新增TEP
  2. tep 客户端服务端 完成
  3. redis依赖库更新
  4. rpc 细节优化
  5. 新增Snet.TEP接入规范
  6. 移除Snet.Test.Tep解决方案
  7. 新增Snet.TEP 客户端服务端实例解决方案
2024-3-1
  1. OPCUA Server 新增添加节点,读取写入功能
  2. OpcDaHttp 问题修复
  3. redis 依赖库更新
  4. 工具BUG修改
  5. opcua 客户端、服务端 修改参数位置与默认值
2024-3-4
  1. OPCDA 新增host属性
  2. opcua 服务端 新增 节点获取与节点删除
2024-3-5
  1. opcua server 写入值功能修改
  2. opcua server 工具新增读取、写入、新增、移除、获取节点集合模块
  3. opcda client 新增账号密码域参数集
2024-3-6
  1. 所有继承IDAQ的接口库,都已集成断线重连功能
  2. OPCUA Server 证书问题解决
  3. OPCUA Client 新增检测单点订阅状态
2024-3-8
  1. opcua server 新增文件夹新增删除
  2. opcua client 优化节点浏览功能
2024-3-11
  1. TEP 修改包体解析问题
  2. Core tcp service 修改发送使用可异步函数
  3. TEP client service  新增发送队列与接收队列处理
  4. TEP文档新增KEY不允许存在点的注释
  5. 依赖库更新
2024-3-12
  1. 解决TEP断线重连后队列数据堆积问题
  2. 依赖库更新
2024-3-13
  1. TEP 客户端断线重连机制修改
  2. TEP 客户端移除发送队列
  3. TEP 客户端新增身份认证状态
  4. TEP 服务端新增身份认证异步线程函数
  5. TEP 服务端在原有的会话验证初移除身份认证状态
  6. TEP 服务端把线程安全字典的KEY 从 IpPort 修改成 设备名称与设备ID
2024-3-15
  1. 优化所有 采集、转发协议的 GetParam 函数,使前端展示更友好
  2. IBaseAbstract 新增 CN中文名 AC子类信息 RG移除不需要的属性项 虚属性
  3. 依赖库更新
2024-3-19
  1. 新增 NETTY RMQ MQTT NETMQ 性能测试
  2. 依赖库更新
2024-3-20
  1. 修改所有采集库的AC DC,让前端展示更加丰富
  2. 新增压测解决方案
  3. 依赖库更新
2024-3-22
  1. core 修改tcp service 获取客户端数据缓冲区
  2. 新增ECP 专用通信协议开发 10%
  3. 底层 串口/tcp/udp/ws 如果发送的数据超过限定值直接触发自动分包发送
  4. 版本更新
2024-3-25
  1. 修改 ws 发送失败问题
2024-3-26
  1. 新增地址值扩展方法
  2. 新增精简地址值类
  3. 新增转发响应模型
  4. 新增转发响应类型
  5. OPCUA DA 倍福 订阅发送数据改成分批发送
  6. 传输协议改造,请移至 doc/传输协议改造.txt
  7. 采集协议改造,请移至 doc/采集协议改造.txt
2024-3-27
  1. 将 abstract 从 model 移至 core
  2. 修改 IBaseAbstract 至 CoreAbstract
  3. 依赖库更新
2024-3-28
  1. OPCUAService 新增客户端写入事件监控
  2. 新增写入管理,请至 Snet.Tests writeManage 查看
2024-3-29
  1. 底层修改事件,改为两个事件,消息事件/数据事件
  2. 移除结果类型字段
2024-4-1
  1. S7 读取细节优化
  2. ua客户端 状态获取更换新的底层属性
2024-4-3
  1. 修改精简版数据
  2. 移除所有使用Newtonsoft.Json序列号反序列化方法,使用微软提供的json 解析,速度大大提升
  3. 修改脚本处理
  4. 依赖库更新
2024-4-9
  1. 新增富士PLC
  2. 修改opcua客户端 off 时移除所有订阅
2024-4-10
  1. IProducer 新增字节参数
  2. 细节修改
2024-4-12
  1. 新增底层直接转换,用于协议通信PLC的数据转换,类名 TransformOperate
  2. 优化整体数据结构,有参无参构造函数
2024-4-15
  1. 修改串口号默认值
  2. 修改 DataFormat 引用位置
  3. 修改 Fuji 写入返回失败问题
  4. 新增 Fuji 调试工具
  5. 更新redis服务端
  6. 优化底层数据更新处理
  7. DB采集优化
2024-4-16
  1. 新增深拷贝扩展方法
  2. 操作结果新增构造函数入参
  3. 新增Break函数直接传操作结果
  4. 新增WriteGetBytes函数
  5. 操作结果新增获取消息与状态函数
  6. 结果属性 State 修改为 Status
2024-4-19
  1. 底层架构修改
  2. 优化所有异步方法写法
  3. 优化公共帮助类
  4. 新增多个抽象类来解决不重复实现异步方法
2024-4-22
  1. Unility/Log/Model/Core 优化重写
  2. 采集库/转发库/扩展库 优化重写
  3. 新增底层库开发文档
2024-4-23
  1. 新增ILOG接口,可以获取或设置日志参数,来设置底层驱动是否需要输出日志
  2. 细节优化,接口拆分
  3. Snet.Log 新增日志数据类
2024-4-25
  1. 优化MODEL赋值与属性名称
  2. 修改性能测试库以包形式订阅数据
2024-4-26
  1. 新增底层库应用文档
  2. Snet.Unility.Windows 细节处理,类名统一化
2024-4-29
  1. RPC 数据序列化反序列化修改
  2. Model新增转换接口函数,Core实现新增接口
2024-5-8
  1. Mqtt,RabbitMQ 新增消息过期时间属性
  2. 新增性能测试库与模拟库一键打包器
  3. 细节优化
2024-5-10
  1. RabbitMQ 移除内部事件异步
  2. 解决 RabbitMQ 数据截断问题
2024-5-15
  1. 底层操作结果 事件结果 信息结果 新增快速生成方法
  2. 移除 Core 数据转换
  3. 新增 Snet.Driver PLC驱动库
2024-5-28
  1. 底层库 GetRData 变成 GetSource
  2. 结果类新增 GetDetails ,返回状态,抛出消息与结果数据
  3. TCP/UDP/串口/WS 移除分包获取
  4. 虚拟点类型增加现有:实际地址/虚拟静态地址/虚拟动态随机变化地址/虚拟动态随机范围变化地址/虚拟动态顺序变化地址/虚拟动态顺序范围变化地址
  5. 修改 Snet.Core 中的 relay 操作类,优化反射时获取构造函数问题
  6. 新增自动通过特性来分配每个协议类型所需要的参数,简化之前需手动定义每个不同协议类型的使用参数
  7. 优化接口继承问题
  8. 新增 CreateInstance 接口,入参为当前参数的JSON字符串
  9. 优化所有接口,更详细的注释
  10. 移除 ITransform 接口,用不到了
  11. 新增或修改 三菱、西门子、Modbus、汇川、欧姆龙、LSis、基恩士、松下、罗克韦尔、倍福、通用电器、安川、山武、永宏、丰炜、富士、信捷、麦格米特、横河、丰田、台达、维控,PLC通信库
  12. 更新 Snet.Driver 已是最新版本
  13. 修改 Sim 模拟库,支持:虚拟静态地址/虚拟动态随机变化地址/虚拟动态随机范围变化地址/虚拟动态顺序变化地址/虚拟动态顺序范围变化地址
  14. 工具同步更新所有PLC通信库,工具地址数据类型在之前基础上新增:UInt/Long/Short/UShort
  15. 工具 Sim 模拟库新增地址类型的选择
  16. 新增 Crack 工具,方便快速提取对应代码
  17. GetSource 从 Snet.Core 移至 Snet.Unility
  18. 修改包生成路径
2024-5-29
  1. 新增扩展方法 PropertyExists
  2. 在 IGetParam 接口中新增 GetAutoAllocatingParam
  3. 新增 电力通讯规约 通信库 DTSU6606Serial,DLT645,DLT645OverTcp,DLT645With1997,DLT645With1997OverTcp,DLT698,DLT698OverTcp,DLT698TcpNet,CJT188,CJT188OverTcp
2024-5-30
  1. 在 IGetParam 接口中新增 ExistsAutoAllocatingParam
  2. 在 CoreAbstract 抽象类中实现
  3. 工具信息电力通讯规约
  4. 工具模板中新增获取是否存在自动分配属性,如果存在则打印出来,方便使用人人员赋值
2024-5-31
  1. 新增一键自动打包ZIP工具,替换之前繁琐的打包流程
  2. 优化工具界面,解决之前遗留问题
2024-6-11
  1. 底层 DAQ 所有库,现已支持 webapi 功能,On/Off/Read/Write/GetStatus
  2. 更新 三菱、西门子、Modbus、汇川、欧姆龙、LSis、基恩士、松下、罗克韦尔、倍福、通用电器、安川、山武、永宏、丰炜、富士、信捷、麦格米特、横河、丰田、台达、维控,PLC通信库
  3. 更新 电力通讯规约 通信库 DTSU6606Serial,DLT645,DLT645OverTcp,DLT645With1997,DLT645With1997OverTcp,DLT698,DLT698OverTcp,DLT698TcpNet,CJT188,CJT188OverTcp
  4. Snet.Driver 同步更新至最新版本
  5. 底层 DAQ 所有库 Write 写入接口从泛型修改为 object
  6. 底层 DAQ 所有库 Write 新增 WriteModel 更为明了的实现写入
2024-6-13
  1. 修改所有PLC通信的关闭方法
  2. 点位读取或订阅时新增字段 Message 可以返回详细的失败信息
  3. 解决脚本解析内存增加问题
  4. 整体细节优化
2024-6-14
  1. 解决TCP客户端服务端断开后问题
  2. 优化 TCP WS UDP 串口数据接收自动分包
2024-6-17
  1. 底层通信新增数据缓冲大小属性
  2. 修改底层通信 发送等待函数功能
  3. 大部分注释细化
  4. OPCUA service 释放问题解决
2024-6-18
  1. TEP 新增休息时间属性
  2. TEP 写入问题修复
  3. TEP 大部分细节优化
2024-6-19
  1. 底层通信 HTTP WS TCP UDP IP地址优化
  2. HTTP 内容与表单提交属性修统一改为 BodyContent 公用一个属性
  3. 解决底层重连问题
2024-6-21
  1. 移除TCP服务端自动分配地址
  2. OPCUA新增 NODEID 查询点位值
2024-6-24
  1. 更新日志输出依赖库
  2. 底层通信库版本更新发布
2024-6-26
  1. 修改虚拟点问题
2024-7-2
  1. 新增地址扩展方法,检查无效数据
  2. 修改底层订阅方法,更细致的操作
  3. 修改虚拟点的判断规则,新增数据类型,点位类型
  4. 序列化问题优化新增
  5. 传输协议修改
2024-7-8
  1. Unility 新增Protobuf 序列化反序列化扩展方法
  2. Core 新增 Protobuf 精简地址提取阔扩展方法
  3. 底层函数时间记录方法修改,使用耗能更小的方式
  4. kafka,mqtt,netmq,rabbitmq 生产方法默认支持 byte[] ,使用原生的byte[] 数据传输,不做过多转换,string 则使用Encoding.UTF8.GetString /Encoding.UTF8.GetBytes
  5. 大部分细节优化
2024-7-11
  1. 新增 英威腾 PLC 驱动
  2. 修改OPCUA 获取值问题
  3. Snet.Driver 更新优化
  4. 所有 PLC 驱动新增 同类型批量读取,读取字节集
2024-7-19
  1. 修复kafka On 函数BUG
  2. OPC UA 依赖库更新
  3. 工具更新
2024-8-5
  1. opcua 新增属性 KeepAliveInterval
  2. tep 重构,包体/框架整体重写
  3. 类型新增  AccelerateBuildsInVisualStudio 在构建时加速
  4. Snet.TEP 接入规范 ( SocketTcp ) 修改
  5. Snet.TEP 接入规范 ( C#动态库 ) 修改
2025-1-2
  1. pack 新增图片
  2. 版本号更新 => 年份.一年中的哪一天.一天中的第几个版本
  3. 底层事件 新增异步事件
  4. 底层个别简写属性名修改为全拼
  5. 整体细节优化
2025-2-4
  1. 引用库都更新最新版本
  2. 所有库移除.net6 的支持,全部更新.net8/.net9
  3. 优化细节
2025-2-9
  1. DB依赖库更新
  2. 示例代码补全
2025-2-12
  1. 微软所有依赖库更新
  2. 部分细节优化
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎访问 Shunnet.top 的工业物联网简易高效的通信库
  • ## 阐述
  • ## 核心与扩展组件
  • ## 采集协议
  • ## 转发协议
  • ## 协议服务端(用于数据模拟)
  • ## 创建实例合集
  • ## 采集应用
  • ## 转发应用
  • ## 更新表
  • 2023-02-15
  • 2023-09-20
  • 2023-09-23
  • 2023-09-24
  • 2023-09-25
  • 2023-09-27
  • 2023-10-08
  • 2023-10-10
  • 2023-10-11 ~ 2023-10-12
  • 2023-10-13
  • 2023-10-15
  • 2023-10-16
  • 2023-10-17
  • 2023-10-19
  • 2023-10-20 ~ 2023-10-23
  • 2023-10-24 ~ 2023-10-25
  • 2023-10-26
  • 2023-10-30
  • 2023-10-31
  • 2023-11-01
  • 2023-11-02
  • 2023-11-03
  • 2023-11-06
  • 2023-11-08
  • 2023-11-09
  • 2023-11-10
  • 2023-11-13
  • 2023-11-14
  • 2023-11-15
  • 2023-11-16
  • 2023-11-21
  • 2023-11-23
  • 2023-11-24
  • 2023-11-27
  • 2023-11-28
  • 2023-11-30
  • 2023-12-4
  • 2023-12-5
  • 2023-12-7
  • 2023-12-11
  • 2023-12-13
  • 2023-12-14
  • 2023-12-18
  • 2023-12-19
  • 2023-12-20
  • 2023-12-22
  • 2023-12-25
  • 2023-12-26
  • 2023-12-27 ~ 2023-12-29
  • 2024-1-2
  • 2024-1-3
  • 2024-1-4
  • 2024-1-5
  • 2024-1-8
  • 2024-1-9
  • 2024-1-10
  • 2024-1-15
  • 2024-1-18
  • 2024-1-19
  • 2024-1-22~2024-1-25
  • 2024-1-30
  • 2024-2-19
  • 2024-2-21
  • 2024-2-22
  • 2024-2-23
  • 2024-2-26
  • 2024-2-27
  • 2024-3-1
  • 2024-3-4
  • 2024-3-5
  • 2024-3-6
  • 2024-3-8
  • 2024-3-11
  • 2024-3-12
  • 2024-3-13
  • 2024-3-15
  • 2024-3-19
  • 2024-3-20
  • 2024-3-22
  • 2024-3-25
  • 2024-3-26
  • 2024-3-27
  • 2024-3-28
  • 2024-3-29
  • 2024-4-1
  • 2024-4-3
  • 2024-4-9
  • 2024-4-10
  • 2024-4-12
  • 2024-4-15
  • 2024-4-16
  • 2024-4-19
  • 2024-4-22
  • 2024-4-23
  • 2024-4-25
  • 2024-4-26
  • 2024-4-29
  • 2024-5-8
  • 2024-5-10
  • 2024-5-15
  • 2024-5-28
  • 2024-5-29
  • 2024-5-30
  • 2024-5-31
  • 2024-6-11
  • 2024-6-13
  • 2024-6-14
  • 2024-6-17
  • 2024-6-18
  • 2024-6-19
  • 2024-6-21
  • 2024-6-24
  • 2024-6-26
  • 2024-7-2
  • 2024-7-8
  • 2024-7-11
  • 2024-7-19
  • 2024-8-5
  • 2025-1-2
  • 2025-2-4
  • 2025-2-9
  • 2025-2-12
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档