跳到主要内容

脚本管理

脚本管理用于维护网关运行时脚本。脚本可用于变量数据转换、内存变量计算、数据转发模板、动态 SQL(自定义入库语句或表结构)、MQTT RPC(MQTT 反向写入或查询请求)等场景。脚本保存后需要编译成功,相关功能才会使用最新内容。

先看术语

术语现场理解
脚本网关内部可复用的计算或转换逻辑,用来处理变量值、生成上传内容或处理外部请求。
编译检查脚本能否被网关运行。编译失败时,相关变量、规则或转发不会使用新内容。
数据转换把设备原始值换算成现场需要的工程值,例如比例换算、单位转换、状态文本转换。
内存变量脚本计算网关内部变量的脚本,不直接读取 PLC,而是读取已有变量或内部状态。
动态模型 / 模板按外部系统约定的格式生成上传内容,例如自定义 JSON 字段、设备字段或报警字段。
动态 SQL自定义写入数据库的语句或表结构,常用于项目要求固定宽表或特殊字段命名的场景。
MQTT RPC通过 MQTT 接收外部系统的写入、查询或控制请求,并由脚本解析和返回结果。
完整代码高级扩展方式。需要理解 C# 代码和运行影响,普通现场配置不建议从这里开始。

页面入口

登录 GatewayRuntime Web 后,点击左侧菜单“开发配置 → 脚本管理”。

脚本管理页面

页面结构

区域说明
本地脚本维护当前运行时保存的脚本,支持新增、编辑、编译、删除和批量操作。
已加载脚本查看已经可被网关使用的脚本,只读展示名称、分类、类型和数据类型等信息。
名称搜索按脚本名称过滤列表。
分类筛选按脚本分类过滤,本地分类来自已保存脚本。
类型筛选按脚本类型过滤,例如数据转换、内存变量、MQTT RPC。
工具按钮依次为新增、批量编译、批量删除、刷新;批量按钮需要先勾选脚本。

列表字段

字段说明
名称脚本在系统中的唯一名称。
分类用于按业务、设备或用途组织脚本,可为空。
类型脚本表达式类型,决定编辑器模板、可用输入和后续引用方式。
更新时间最近一次保存或编译写库时间。
操作编辑、编译、删除当前脚本。

新建脚本

点击列表右上角新增按钮,打开“新建脚本”弹窗。

新建脚本对话框

配置项说明
脚本名称必填。建议使用英文、数字和下划线,名称保存后会被变量、规则、数据转发或 RPC 配置引用,不建议频繁修改。
脚本类型必填。选择后弹窗底部会显示对应编写提示。
分类可选。可以选择已有分类,也可以直接输入新分类。
描述可选。记录脚本用途、引用位置和维护注意事项。
类型说明只读提示,说明当前脚本类型的用途和编写要求。

点击“确定”后,系统会创建脚本并自动进入脚本编辑器。

脚本类型

类型适用场景
数据转换对采集变量的原始值做单位换算、格式化、范围映射或状态转换。
内存变量计算内存变量,可读取其它变量后生成派生结果。
动态模型-变量数据为变量数据转发生成自定义上传对象。
动态模型-设备数据为设备状态转发生成自定义上传对象。
动态模型-告警变量为报警数据转发生成自定义上传对象。
动态模型-插件事件为插件事件转发生成自定义上传对象。
动态 SQL-*按变量、设备、报警或插件事件维度自定义入库逻辑。
MQTT RPC处理 MQTT RPC 消息,适合需要按现场约定解析消息和组织应答内容的写入场景。
完整代码编写完整 C# 代码,适合高级扩展。使用前应先确认编译要求和运行影响。

脚本编辑器

脚本编辑器包含顶部操作栏、代码编辑区和底部信息面板。

脚本编辑器页面

区域说明
返回按钮返回脚本列表。未保存内容应先执行编译保存。
脚本名称标签显示当前脚本名称、分类和脚本类型。
编译并保存顶部右侧主按钮。执行编译,成功后保存脚本并加载编译结果。
代码编辑维护 C# 代码,支持语法高亮、撤销、重做和注释切换。
底部面板包含“编译日志”“节点信息”“输入参数”页签。

底部页签

页签说明
编译日志显示编译过程、错误、警告和成功信息。点击错误或警告可定位到对应代码位置。
节点信息维护脚本名称和分类。修改后需要编译保存才会持久化。
输入参数仅“数据转换”和“内存变量”类型显示。用于定义可配置参数。

输入参数字段

字段说明
参数名参数标识,脚本中按该名称读取。
数据类型参数值类型。数字选择整数或小数类型,开关量选择布尔类型,文本选择字符串,时间选择日期时间;应与脚本实际输入值保持一致。
初始值参数默认值,留空时按类型默认处理。
描述参数用途说明,便于后续维护。

编译日志

点击顶部“编译并保存”后,底部“编译日志”页签会显示完整过程。

脚本编辑器编译日志

日志项说明
开始编译脚本标记本次编译开始,并显示脚本名称。
脚本类型显示当前表达式类型,例如“数据转换”。
编译成功表示脚本已经通过编译。
编译输出显示编译输出信息,用于现场排查加载问题。
错误 / 警告统计底部面板右侧会显示错误和警告数量。

编译失败时,应先处理红色错误;警告不一定阻止编译,但建议在上线前一并处理。

常用操作

操作步骤
编辑脚本在列表中点击“编辑”,进入编辑器,修改代码或参数后点击“编译并保存”。
单个编译在列表中点击“编译”,适合快速验证已有脚本是否还能通过编译。
批量编译勾选多个脚本,点击工具栏批量编译按钮。常用于升级后统一验证。
删除脚本点击“删除”并确认。删除前应确认变量、数据转发、MQTT RPC 或规则中不再引用该脚本。
查看已加载脚本切换到“已加载脚本”页签,确认运行时当前可用的表达式。

使用注意

场景建议
脚本命名使用稳定命名,不要频繁改名。变量、规则、数据转发和 RPC 配置可能会按脚本名称引用。
生产修改生产环境修改脚本前先导出配置或记录原脚本内容。
编译失败查看编译日志的第一条错误,通常后续错误是连锁结果。
已加载列表为空先确认脚本已成功编译,再刷新“已加载脚本”页签。
AOT发布AOT 场景下动态编译能力可能受发布方式限制,应在发布前完成脚本验证。

相关链接