跳到主要内容

更新日志

概述

本文档记录了 ThingsGateway 网关的版本更新历史,包括新增功能、优化改进、问题修复和破坏性变更。在升级到新版本之前,请仔细阅读相关版本的更新说明,特别是标记为"破坏性更新"的版本。

升级建议
  1. 升级前备份:升级前务必备份配置文件、数据库和重要数据
  2. 测试环境验证:先在测试环境验证新版本,确认无误后再升级生产环境
  3. 阅读更新说明:仔细阅读每个版本的更新说明,了解可能的影响
  4. 准备回滚方案:准备好回滚方案,以应对升级失败的情况

升级指南

通用升级步骤

  1. 备份数据

    # 默认Sqlite,备份数据库文件夹 /DB


    如果已确认存在数据库破坏性更新,那么通过excel导出全部通道/设备/变量/内存变量.

    更新完成后,再导入相关excel文件

  2. 停止服务

  3. 替换文件

  4. 迁移配置

    • 调整相关配置文件
    • 复制备份的数据库文件夹 /DB
    • 导入/导出 Excel 配置文件(如需要)
  5. 启动服务

  6. 验证功能

    • 检查服务是否正常启动
    • 验证采集功能是否正常
    • 检查数据上传是否正常

常见问题

Q1: 升级后变量配置丢失怎么办?

A: 检查是否按照版本更新说明正确迁移了配置文件。对于 v10.1 等包含破坏性更新的版本,需要按照升级指南重新导入 Excel 配置文件。

Q2: 升级后插件无法加载怎么办?

A: 检查插件版本是否与网关版本兼容。如果插件不兼容,需要更新到兼容版本或联系插件开发者。

Q3: 升级后性能下降怎么办?

A: 检查配置文件是否正确迁移。某些版本可能需要调整配置参数以获得最佳性能。参考版本更新说明中的性能优化建议。

Q4: 如何获取 PRO 版本的注册码?

A: 按照 v10.4 版本的说明,在网关管理界面获取唯一编码,然后联系作者获取注册码。

Q5: 升级后数据库连接失败怎么办?

A: 检查数据库连接配置是否正确。某些版本可能需要调整连接字符串或数据库架构。

技术支持

如遇到升级问题,请按以下步骤获取帮助:

  1. 查看日志:检查网关日志和系统日志,了解错误详情
  2. 查阅文档:查看相关文档和常见问题解答
  3. 提交问题:在 GitHub 提交 Issue,提供详细的错误信息和环境信息
  4. 联系支持:联系技术支持团队获取帮助
提交问题时请提供
  • 网关版本号
  • 操作系统信息
  • 错误日志
  • 复现步骤

版本历史

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 插件授权的二次售卖,确保正版用户权益不受损害。

获取唯一编码的途径

操作步骤

  1. 打开 ThingsGateway 网关管理界面
  2. 进入"系统设置" > "授权管理"
  3. 查看并复制"唯一编码"
  4. 联系作者,提供唯一编码以获取注册码
  5. 在授权管理界面输入注册码完成授权
注意事项
  • 每台设备的唯一编码不同,需要分别获取注册码
  • 授权仅限于被授权方自身承接的项目,不得转售
  • 如有疑问,请联系作者获取更多信息

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

破坏性更新

重要变更

此版本包含破坏性更新,升级前请仔细阅读以下内容。

变更内容

  1. 变量名称唯一性变更:由全局唯一更改为采集设备内唯一
  2. Excel 配置文件变更:不兼容 v10.0 版本 Excel 文件
  3. 业务上传内容变更:更改为字典类型
  4. 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"
}
}

升级指南

  1. 导出旧版本配置:导出 v10.0 版本的 Excel 配置文件
  2. 创建新版本设备:在 v10.1 中建立对应插件的设备/变量
  3. 迁移配置:参照 v10.1 版本的 Excel 格式,将旧版本配置内容迁移到新版本
  4. 导入配置:导入已修改好的 v10.1 版本 Excel 配置文件
  5. 验证功能:验证所有功能是否正常工作

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 卡顿问题:提升界面响应速度

v6.0.5.14

新增功能

  • 添加报警延时逻辑:支持报警延时触发,减少误报
  • mqtt 脚本添加检查按钮:支持脚本语法检查

功能优化

  • opcuaMaster 服务端时间戳选项在轮询模式下不生效:修复时间戳问题
  • aop 插入日志 ip 字段非 null:确保日志完整性

v6.0.5.13

功能优化

  • 修改用户中心的修改密码为密码输入框:提升安全性
  • opcua 轮询采集时异常捕获内容包含当前读取地址:便于问题排查

v6.0.5.12

功能优化

  • 更新依赖项:升级第三方库版本
  • 修改构建脚本:优化构建流程
  • 添加 arm64 docker 镜像:支持 ARM64 架构

v6.0.5.10

功能优化

  • photino 版本退出时释放资源:优化资源管理
  • 添加 winform 版本:提供 Windows 桌面应用

v6.0.5.7

功能优化

  • 设备 PluginType 属性增加多语言资源键值:支持国际化
  • 修复权限框架解决方案编译错误:修复编译问题
  • index 首页页面文件迁移至主程序:优化项目结构
  • 更新依赖包:升级第三方库版本

v6.0.5.5

问题修复

  • newlife.x 工具库部分命名空间错误:修复命名空间问题
  • 优化 DtuId 属性描述添加 'UTF8':明确编码格式
  • 更新依赖项:升级第三方库版本

v6.0.5.1

功能优化

  • 分离部分代码:优化代码结构
  • 调整代码架构:分出 blazor server 与 blazor hybrid 架构的服务代码

v6.0.4.60

功能优化

  • 支持全局按钮权限:细化权限控制
  • 修改服务类插件启动错误后的等待间隔时间:优化错误恢复机制

v5.0.0.1

2024-1-21

破坏性更新

重要提示

此版本是大版本更新,可能会产生很多不兼容部分,升级之前请做好备份。

更新描述

此版本包含重大架构调整,涉及采集驱动底层、网关缓存、权限管理框架、线程管理器、断线续传功能和脚本支持的全面重构。

升级步骤

如果需要从 5.0 前升级,请按以下操作进行:

步骤 1:导出旧版本配置

导出旧版本的 Excel 配置文件,包括:

  • 采集设备
  • 上传设备
  • 变量配置

步骤 2:创建新版本设备

在 5.0 框架中,只建立一个对应插件的设备/变量。

注意事项

这一步是因为插件是按需导出的,需要建立对应插件,才会导出相应的 sheet。

步骤 3:迁移配置内容

参照 5.0 版本的 Excel 内容,把旧版本的配置内容移到新版本 Excel 文件中。

步骤 4:导入配置文件

导入已修改好的 5.0 版本 Excel 配置文件。

更新详情

  • 重构采集驱动底层:优化驱动架构,提升性能和稳定性
  • 重构网关缓存:改进缓存机制,降低内存占用
  • 重构网关权限管理框架:增强权限控制能力
  • 重构网关线程管理器:优化线程调度,提升并发性能
  • 重构网关断线续传功能:改进断线重连和数据续传机制
  • 重构脚本支持:方便对应各大云平台的 IoT 格式
  • 调整网关 UI 外观风格:优化用户界面体验

v3.0.0.25

功能调整

  • 删除 S7 插件中的 DstTSAP 属性:用插槽号与机架号代替,更直观
  • OPCUAServer 插件 url 属性支持多个 url:以逗号分割,支持多端点

配置示例

{
"Slot": 0,
"Rack": 0,
"Urls": "opc.tcp://localhost:4840,opc.tcp://192.168.1.100:4840"
}

v3.0.0.19

新增功能

  • 添加 TDengineDB 时序库上传插件:支持 TDengine 数据库
  • 添加 QuestDB 时序库上传插件:支持 QuestDB 数据库
  • 添加 DLT645 采集插件:支持 DLT645 协议
  • 添加调试软件:提供设备调试工具

v1.7.0

功能优化

  • OPCUAClient 支持动态类型:增强类型处理能力

v1.2.0

新增功能

  • 添加 OPCUAServer 插件:支持 OPC UA 服务器功能

v1.1.0

新增功能

  • 添加 OPCDAClient 采集插件:支持 OPC DA 协议
  • 添加 OPCUAClient 采集插件:支持 OPC UA 协议
  • 串口基础框架:提供串口通信基础支持

v1.0.0

新增功能

  • 初始发布:ThingsGateway 网关首次发布