Skip to content

概述

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函数返回最新值,可能是昨天采集的

那么该二次计算表达式将不返回计算结果