更新日志
概述
本文档记录了 ThingsGateway 网关的版本更新历史,包括新增功能、优化改进、问题修复和破坏性变更。在升级到新版本之前,请仔细阅读相关版本的更新说明,特别是标记为"破坏性更新"的版本。
升级建议
- 升级前备份:升级前务必备份配置文件、数据库和重要数据
- 测试环境验证:先在测试环境验证新版本,确认无误后再升级生产环境
- 阅读更新说明:仔细阅读每个版本的更新说明,了解可能的影响
- 准备回滚方案:准备好回滚方案,以应对升级失败的情况
升级指南
通用升级步骤
-
备份数据
# 默认Sqlite,备份数据库文件夹 /DB
如果已确认存在数据库破坏性更新,那么通过excel导出全部通道/设备/变量/内存变量.
更新完成后,再导入相关excel文件 -
停止服务
-
替换文件
-
迁移配置
- 调整相关配置文件
- 复制备份的数据库文件夹 /DB
- 导入/导出 Excel 配置文件(如需要)
-
启动服务
-
验证功能
- 检查服务是否正常启动
- 验证采集功能是否正常
- 检查数据上传是否正常
常见问题
Q1: 升级后变量配置丢失怎么办?
A: 检查是否按照版本更新说明正确迁移了配置文件。对于 v10.1 等包含破坏性更新的版本,需要按照升级指南重新导入 Excel 配置文件。
Q2: 升级后插件无法加载怎么办?
A: 检查插件版本是否与网关版本兼容。如果插件不兼容,需要更新到兼容版本或联系插件开发者。
Q3: 升级后性能下降怎么办?
A: 检查配置文件是否正确 迁移。某些版本可能需要调整配置参数以获得最佳性能。参考版本更新说明中的性能优化建议。
Q4: 如何获取 PRO 版本的注册码?
A: 按照 v10.4 版本的说明,在网关管理界面获取唯一编码,然后联系作者获取注册码。
Q5: 升级后数据库连接失败怎么办?
A: 检查数据库连接配置是否正确。某些版本可能需要调整连接字符串或数据库架构。
技术支持
如遇到升级问题,请按以下步骤获取帮助:
- 查看日志:检查网关日志和系统日志,了解错误详情
- 查阅文档:查看相关文档和常见问题解答
- 提交问题:在 GitHub 提交 Issue,提供详细的错误信息和环境信息
- 联系支持:联系技术支持团队获取帮助
提交问题时请提供
- 网关版本号
- 操作系统信息
- 错误日志
- 复现步骤
版本历史
v12.4.94
技术改进
- 优化定时调度器,变量间隔支持最低1ms.
v12
新增功能
- 优化 Roslyn 脚本编译性能:提升脚本编译和执行效率
- 增加内存二次计算变量:支持基于内存变量的二次计算,扩展数据处理能力
- 增加多网关管理软件:支持同时管理多个网关实例
- 增加自定义 ORM 项目:支持自定义数据访问层,灵活对接不同数据库
技术改进
- 优化脚本引擎性能,减少编译时间
- 增强变量计算能力,支持更复杂的数据处理逻辑
- 提升多网关管理效率,简化运维操作
v10.12
性能优化
在 v10.12.1 版本中,对 内存回收机制(GC) 与 异步状态机 进行了重点优化。
根据对比测试结果:
- 🧩 内存分配速率(Allocated MB/min) 同比下降 55%
- 💾 堆内存占用(Heap Size) 同比下降 11%
下图展示了在 100 Device + 100 万 Variable、1 秒采集周期 条件下的 dotMemory 内存监控视图:
技术细节
- 优化异步状态机实现,减少状态转换开销
- 改进 GC 回收策略,降低内存分配频率
- 优化对象生命周期管理,减少不必要的内存占用
v10.4
PRO 授权调整公告
自 10.4 版本 起,PRO 授权模式进行了以下调整:
- 取消固定的 LicenseKey 文件,改为 动态授权密钥(一机一码)
- 个人/企业授权仍为永久授权,但用户在项目部署时 需联系作者获取注册码
- 个人/企业授权一直都是 仅限于被授权方自身承接的项目 的授权,所以本次改动不影响用户授权权益
本次调整旨在 防止 PRO 插件授权的二次售卖,确保正版用户权益不受损害。
获取唯一编码的途径
操作步骤:
- 打开 ThingsGateway 网关管理界面
- 进入"系统设置" > "授权管理"
- 查看并复制"唯一编码"
- 联系作者,提供唯一编码以获取注册码
- 在授权管理界面输入注册码完成授权
注意事项
- 每台设备的唯一编码不同,需要分别获取注册码
- 授权仅限于被授权方自身承接的项目,不得转售
- 如有疑问,请联系作者获取更多信息
v10.4.18
新增功能
- 新增变量分组属性:实现插件分组上传,优化数据传输效率
- 支持按设备类型或业务需求对变量进行分组
- 提升批量数据上传的性能和可管理性
v10.2.4
功能优化
- 规则引擎自定义执行脚本支持 IDisposable 接口:增强脚本资源管理能力
- 脚本内日志对象统一命名为 Logger:统一日志接口,简化脚本开发
技术改进
// 脚本示例:使用 IDisposable 接口
public class MyScript : IDisposable
{
private readonly ILogger _logger;
public MyScript(ILogger logger)
{
_logger = logger;
}
public void Execute()
{
_logger.LogInformation("执行脚本逻辑");
// 业务逻辑
}
public void Dispose()
{
// 释放资源
}
}
v10.2.1
新增功能
- 新增配置通道、设备、变量的数量限制:防止 OOM(内存溢出)问题
- 根据服务器资源自动调整最大配置数量
- 提供配置建议和警告提示
功能优化
- 优化 opcuaserver 插件刷新变量逻辑: 提升变量刷新效率
- taos 插件表名称强制小写:确保表名规范,避免大小写问题
- 数据库插件脚本父类更改:统一脚本接口,提升开发体验
v10.1.21
新增功能
- 新增在线 Excel 配置通道/设备/变量:支持通过 Excel 在线编辑配置
- 提供模板下载和批量导入功能
- 支持 Excel 格式验证和错误提示
v10.1.20
功能优化
- 优化 Excel 导入速度:提升大批量数据导入效率
- 优化 taos 插件插入数据速度:优化批量插入逻辑
- DB 插件全部增加设备名称筛选项:支持按设备筛选数据
功能调整
- 更改默认 SQLite 数据库目录:统一数据库存储位置
- 修复 taos 插件多个插件设备但同个变量名称的插入逻辑错误:确保数据正确性
v10.1.9
新增功能
- mqttClient 插件支持 SSL/TLS:增强 MQTT 通信安全性
- 支持自签名证书和 CA 证书
- 支持证书验证配置
v10.1.1
性能优化
- 性能优化,内存进一步降低:优化内存使用,提升系统稳定性
- 生产环境默认不开启 Swagger:减少安全风险和资源占用
问题修复
- 修复变量寄存器编辑 UI 输出错误:修复 UI 显示问题
- 修复变量表筛选结果,数量错误:修复筛选功能
v10.1
破坏性更新
重要变更
此版本包含破坏性更新,升级前请仔细阅读以下内容。
变更内容:
- 变量名称唯一性变更:由全局唯一更改为采集设备内唯一
- Excel 配置文件变更:不兼容 v10.0 版本 Excel 文件
- 业务上传内容变更:更改为字典类型
- RPC 参数变更:更改为字典类型
详细说明
1. Excel 配置文件变更
不同点在于变量 Excel 业务属性页,添加了设备名称和业务设备名称,旧版本只有业务设备名称。
旧版本 Excel 格式:
业务设备名称 | 变量名称 | 变量地址 | ...
新版本 Excel 格式:
设备名称 | 业务设备名称 | 变量名称 | 变量地址 | ...
2. 业务上传内容变更
旧版本:
[
{
"Name": "变量1",
"Value": "值1"
},
{
"Name": "变量2",
"Value": "值2"
}
]
新版本:
{
"设备1": [
{
"Name": "变量1",
"Value": "值1"
}
],
"设备2": [
{
"Name": "变量2",
"Value": "值2"
}
]
}
3. RPC 参数变更
旧版本:
{
"变量1": "值1",
"变量2": "值2"
}
新版本:
{
"设备1": {
"变量1": "值1"
},
"设备2": {
"变量2": "值2"
}
}
升级指南
- 导出旧版本配置:导出 v10.0 版本的 Excel 配置文件
- 创建新版本设备:在 v10.1 中建立对应插件的设备/变量
- 迁移配置:参照 v10.1 版本的 Excel 格式,将旧版本配置内容迁移到新版本
- 导入配置:导入已修改好的 v10.1 版本 Excel 配置文件
- 验证功能:验证所有功能是否正常工作
v10.0
功能调整
- 重构网关 UI:网关页面以树节点显示通道-设备-变量为主,优化多处操作体验
- 添加独立设备日志:每个设备独立记录日志,便于问题排查
- 添加独立通道日志:每个通道独立记录日志,便于问题排查
- 重构任务管理:支持插件动态更新变量,组态编辑后实时生效
- 添加变量寄存器编辑 UI:新手组态更直接,降低使用门槛
技术改进
- 优化 UI 响应速度,提升用户体验
- 改进日志系统,支持按设备和通道筛选
- 增强任务调度能力,支持动态配置更新
v7.2.0.99
功能调整
- 规则引擎自定义脚本接口定义修改:增加 Logger 属性
- 统一脚本日志接口,提升开发体验
// 脚本接口示例
public interface IScript
{
ILogger Logger { get; set; }
void Execute();
}
v7.2.0.80
功能调整
- 多个业务插件增加上传模式:分为定时/变化/定时或变化的模式
- 删除是否定时的选项:简化配置选项
上传模式说明
| 上传模式 | 说明 | 适用场景 |
|---|---|---|
| 定时 | 按固定时间间隔上传 | 需要定期上报数据的场景 |
| 变化 | 数据变化时上传 | 需要实时响应数据变化的场景 |
| 定时或变化 | 定时或数据变化时上传 | 兼顾实时性和定期性的场景 |
v6.1.0.23
新增功能
- 繁体语言资源:支持繁体中文界面
- 关系库存储插件支持动态表格式脚本:支持自定义表结构
- MqttCollect 插件:支持 MQTT 采集
功能调整
- mqttServer 不再保留全部变量遗嘱数据:可使用 quest rpc 获取
- 优化内存使用,减少不必要的数据存储
问题修复
- 修复多个已知问题,提升系统稳定性
v6.0.5.24
新增功能
- 基础库增加 net8 编译项:支持 .NET 8.0
- SqlHisAlarm 插件添加表名称配置属性:支持自定义报警表名
功能调整
- 默认 server gc true:如有低内存需求,更改 MSBuild 项
<!-- 禁用服务器 GC -->
<ServerGarbageCollection>false</ServerGarbageCollection>
v6.0.5.21
新增功能
- mqtt 协议适配 thingsboard:支持 ThingsBoard 平台集成
- 支持 ThingsBoard 的遥测、属性和 RPC 功能
v6.0.5.16
功能调整
- questdb 初始化失败时更新的时间为格里威治时间:确保时间一致性
v6.0.5.15
性能优化
- await 统一添加 ConfigureAwait(false):优化异步操作性能
- 优化 UI 卡顿问题:提升界面响应速度