内存计算
打开“开发配置 → 内存计算”。这里的变量保存在网关内部,不需要连接 PLC,可用于人工设置值、计算结果或规则中间状态。
新增一个可手动写入的变量
- 点击“新增变量”,名称填
ManualValue,所属设备保持“内存设备”,不需要另外新增设备。 - 数据类型保持
Object,初始值填0,保持“使能”开启。内存变量在这里使用Object,不用另选Double。 - 读写权限选择允许读写,读表达式和写表达式先留空。
- 点击“确定”,回到列表找到
ManualValue。 - 点击这一行的“写入”,在“写入值”填
12.5,再点击弹窗中的“写入”。输入数字时不要加引号。 - 刷新列表,当前值应为
12.5。

写入窗口会自动识别数字、true / false 和 JSON 对象或数组。表格的“运行时数据类型”表示实际保存的值类型,例如本例写入后显示 Decimal,不是新增表单里需要另选的配置。
这里写的是内部变量。但如果该变量已被规则引用,写入仍可能触发下游动作。练习时使用新变量,不使用生产规则正在监听的变量。
根据已有变量计算
需要计算结果自动变化时,给内存变量选择“内存变量”类型的读表达式。不要选择采集变量使用的“数据转换”类型。
- 先确认参与计算的源变量已经存在并正常更新。
- 到脚本管理,新增“内存变量”类型的脚本,按内存变量示例编译并保存。
- 返回内存计算,新增或编辑结果变量,在“读表达式”中选择这个脚本。
- 填写脚本所需输入参数。要固定周期计算,触发方式选择定时,执行间隔先填
1000毫秒。 - 保存后等待一个周期,检查“当前值”“采集时间”和“错误信息”。
读表达式为空时不会自动计算。一个变量尽量只由一种方式更新,避免人工写入后立即被计算脚本覆盖。
新增和编辑变量
点击列表行的“编辑”修改。弹窗中的“保存”会保存并留在弹窗内,“确定”会保存并关闭。
| 配置项 | 怎么设置 |
|---|---|
| 变量名称 | 同一设备内唯一,被脚本或规则引用后不要随意改名 |
| 数据类型、初始值 | 数据类型保持 Object;初始值按实际内容填写,例如数字 0、布尔值 false |
| 单位 | 按需填写,例如 kPa |
| 读写权限 | 人工写入或规则写入时必须允许写 |
| 读表达式 | 自动计算这个变量的脚本;人工赋值可留空 |
| 写表达式 | 写入时需要校验或转换才配置 |
| 触发方式、执行间隔 | 决定计算何时执行;定时计算的间隔单位为毫秒 |
| 报警配置、值过滤 | 按需配置,与普通采集变量的用法相同 |
设备和通道状态变量
新增或编辑采集设备、通道后,系统会在 Memory 设备下自动生成对应的只读系统变量。系统会定期读取当前状态并更新变量,通常约每秒刷新一次。用户不需要手工创建或修改这些变量。
| 对象 | 变量名称 | 数据类型 | 可能的值 | 说明 |
|---|---|---|---|---|
| 采集设备 | <DeviceName>_DS | String(字符串) | Default、OnLine、OffLine、Pause | 表示设备当前状态。 |
| 通道 | <ChannelName>_TS | Boolean(布尔) | true(在线)、false(离线) | 表示通道在线状态。 |
变量名称中的设备名称和通道名称来自对应资源,不需要手工填写。实际名称、描述和当前值可在内存变量列表中查看。
操作步骤
- 登录 GatewayRuntime Web,进入“开发配置 → 内存计算”。
- 在左侧选择“系统内存变量”,清除搜索条件,点击“刷新”。
- 在变量列表中查找以
_DS或_TS结尾的变量,查看“描述”和“当前值”。 - 设备或通道状态发生变化后,等待约一个刷新周期,再查看“当前值”。
设备状态变量和通道在线变量都不能手工写入、编辑或删除。需要在规则、脚本或数据转发中使用时,直接选择对应的变量名称即可。
两种状态的区别
| 查看项 | 表示 |
|---|---|
| 设备状态 | 采集设备自身的运行状态,可能为初始化、在线、离线或暂停。 |
| 通道在线状态 | 通讯通道是否在线。同一通道被多个设备共用时,该变量仍只对应这一条通道。 |
设备名称或通道名称修改后,对应变量名称会同步改为新的名称和后缀,变量描述也会同步更新。删除设备或通道后,对应的状态变量会自动消失。
不需要普通通讯连接的通道,其在线状态可能显示为 true。这表示该通道不需要外部连接,不代表某个采集设备已经在线。
批量修改与备份
少量相似变量可使用行内“复制”。批量修改时先勾选变量,再选择“批量编辑”,只修改本次需要调整的字段。
Excel 操作:
- 先导出一份现有内存变量,保留原文件作备份。
- 在副本中保留工作表和列名,新增变量时使用不重复的名称;不要修改系统自动生成的状态变量。
- 点击“导入变量”选择文件,等待导入结果。选择后即开始导入,不是预览。
- 按失败行修正文件,成功后回到列表检查变量和值。
“导出变量”导出当前页及筛选范围内的内存变量;要完整备份内存变量,使用“导出全部”。通道、设备和普通点表的导入规则见采集配置 → 导入导出。
用于规则、报警或上传
创建好内存变量后,可在规则或转发组中按 Memory.变量名 选择它。需要上传时,仍要将它加入转发组成员,不是创建后就自动上传。
报警在该变量的“报警配置”中设置,步骤见报警查询。
常见问题
| 现象 | 先检查 |
|---|---|
| 当前值不更新 | 是否启用,是否配置读表达式,定时触发和执行间隔是否正确 |
| 写入失败 | 读写权限、数据类型、输入值格式,以及是否为只读系统变量 |
| 脚本报找不到变量 | 脚本中的设备名与变量名是否与现有配置完全一致 |
| 列表找不到变量 | 清空筛选条件后刷新 |
| 转发中没有这个变量 | 检查组范围是否包含这个内存变量 |
| 想删除变量 | 先检查脚本、规则和转发引用,导出备份后再删除 |