脚本管理
打开“开发配置 → 脚本管理”。普通采集不需要脚本;要把原始值换算成工程值、计算多个点位或自定义上传格式时再使用。

把原始值缩小十倍
例如设备读到 1234,希望页面显示 123.4。先准备一个正常采集的数值变量,再执行以下步骤。
新建脚本
- 在“本地脚本”点击列表右上方的加号。
- 脚本名称填
ScaleByTen,类型选择“数据转换”,分类留空即可。 - 点击“确定”,进入编辑器。
- 将代码编辑区内容替换为下面两行。这里只写计算内容,不要再包一层类或方法。
// 将设备的整数原始值换算为带一位小数的工程值。
return Math.Round(Convert.ToDouble(raw) * 0.1, 1);
- 点击编辑器右上角的“编译并保存”图标;鼠标停在图标上可看到名称。在底部“编译日志”确认出现“编译成功”,没有加载或保存失败提示。

绑定到变量
- 返回“开发配置 → 采集配置”,编辑要换算的变量。
- 在“基本信息”的“表达式配置”区域,将“读表达式”选择为
ScaleByTen,点击“确定”。 - 等待下次采集,查看“原始值”和“当前值”:原始值为
1234时,当前值应为123.4。 - 读到的原始数据类型仍按设备寄存器设置,不要为了显示小数就把原来读取整数寄存器的类型改成浮点类型。

仅编译脚本不会自动绑定变量。这个脚本只修改读出的显示值,不修改设备寄存器,也不自动提供反向写入换算。
取消换算时,重新编辑变量,把鼠标移到“读表达式”选择框上,点击右侧出现的清除图标,再点击“确定”。下次采集后,当前值恢复为未经这个脚本换算的值。
修改已有脚本
在列表点击“编辑”,修改后再次点击“编译并保存”。返回变量或目标页面检查实际结果,不能只看编译成功。
同名脚本可能被多个变量或目标使用,修改前先记录原代码并确认引用范围。只是调整一个变量的比例时,优先使用带输入参数的脚本,为该变量单独填写参数。
输入参数
“数据转换”和“内存变量”类型在编辑器底部提供“输入参数”。
- 添加参数,填写参数名、数据类型、初始值和描述。
- 在代码中按参数名使用它,点击“编译并保存”。
- 到引用这个脚本的变量配置中选择读表达式,在出现的参数区域填写该变量的值并保存。
普通乘十或除十不必先学习参数配置。需要可调比例、偏移量时,使用带参数的线性换算示例。
脚本类型
| 要做什么 | 选择类型 | 在哪里使用 |
|---|---|---|
| 换算设备原始值 | 数据转换 | 采集变量的读表达式;写入换算使用写表达式 |
| 根据已有变量计算新值 | 内存变量 | 内存计算的读表达式 |
| 改变上传对象或 JSON 字段 | 动态模型-变量数据等 | 转发目标的对应模型脚本属性 |
| 自定义历史或实时表的入库逻辑 | 动态 SQL-变量数据 | 支持该脚本的数据库转发目标 |
| 自定义报警入库逻辑 | 动态 SQL-告警变量 | 历史报警目标 |
| 自定义 MQTT 请求格式 | MQTT RPC | MQTT 客户端或服务端的 RPC 脚本属性 |
| 开发完整扩展 | 完整代码 | 二次开发调用,不是普通变量计算入口 |
设备、插件事件等其他脚本类型只在对应调用功能支持时使用,不能因为列表里能创建,就认为所有转发目标都能选择它。详细代码格式见脚本开发说明。
编译日志
编译失败时先看第一条红色错误,点击错误定位代码。修正后再次编译。出现“编译成功但加载失败”或“保存失败”时,本次操作还没完成,不要离开页面丢失修改。
“已加载脚本”页签用于查看运行时可用脚本;“本地脚本”用于编辑已保存的源码。两者用途不同。
常用操作
| 操作 | 步骤 |
|---|---|
| 单独重新编译 | 在本地脚本列表点击该行“编译” |
| 批量编译 | 勾选脚本,点击批量编译按钮,查看每项结果 |
| 删除 | 先解除变量、目标或其他功能中的引用,再点击“删除”并确认 |
| 找不到刚创建的脚本 | 清空列表筛选;确认编译、加载和保存均成功后刷新 |
AOT 运行时不支持动态加载脚本。需要在 Web 中编译并使用脚本时,应使用支持动态代码加载的 Runtime 发布包。