概述
TDS脚本可以用于:
- 对监控点数值进行二次计算和统计
- 根据条件判断进行输出控制
脚本使用标准javascript编写,并且提供了一些内置函数,与TDS系统进行交互
全局脚本
全局脚本需要编辑完整的脚本文件,有周期自动执行、接口调用、设备调用三种方式
调试文件
脚本运行时自动调用
debug.json设置设备的ip,可模拟设备,使用 Dev内置方法
json
{
"dev":"127.0.0.1:30001"
}mock.js模拟数据
javascript
const TdsNotify = {
"jsonrpc": "2.0",
"method": "onDataUpdate",
"params": [
{
"file": "null",
"tag": "Main.telemetry.core_tailNumber",
"time": "2025-12-31 10:54:24.291",
"val": 5,
"valDesc": "5.0"
}
]
}在main.js中可以直接获取

设备调用
在【系统组态】-【设备接入】页面中,可选择自定义脚本进行绑定,会自动执行脚本
| 执行方式 | 说明 |
|---|---|
| 周期采集 | 自动周期执行 |
| 控制输出 | 根据条件判断进行输出控制 |
| 主动上送处理 | 处理设备主动上送的数据 |
实例请看 使用内置脚本模拟第三方设备
在脚本管理中配置脚本

可以在【脚本管理】-【设备脚本状态监控】中可以查看运行情况

表达式脚本
当系统组态-监控对象-IO类型设置为【内部变量】时,可以通过其他监控点计算得出值,设置的【计算表达式】即为表达式脚本
配置用于计算该监控点实时值的表达式,自动周期执行
比如val("温度")/2 ,是由 科技大楼.一楼.温度 值 / 2 实时计算的
可在【脚本管理】-【表达式脚本状态监控】查看运行情况

无效的表达式脚本
表达式脚本中如果使用了val函数,该函数返回null时,将不会生成计算结果。
例如,需要计算今天的用电量 val("总电量") - val("总电量","today","first"),使用当前值减去今天的第一个值,
如果今天没有采集到过任何数据,后面那个val函数返回null
前面的val函数返回最新值,可能是昨天采集的
那么该二次计算表达式将不返回计算结果