点击写变量 (Set Variable on Click)

「点击写变量」属于交互类行为。给一个图形挂上它以后,用户在导出的画面里点击该图形,就会把计算好的一个值写进一个运行时变量。要注意:它写的是页面内部的运行时变量(JavaScript 变量空间),不是 PLC 标签,要把值下发到 PLC,请用「写标签」或「写标签位」。运行时变量更像是页面里的一个临时记忆位:可以记一个开关状态、记一次选择、记一个计数,然后让画面上其它行为(颜色、可见性、文本、旋转等)读这个变量来联动显示。它只在用户点击时触发,画面静止时不会自己执行。

交互

交互: 点击写变量 (Set Variable on Click)

点击图形时写入一个运行时变量(JS 变量,不是 PLC 标签),用来在页面内部传值、做开关状态、联动其他行为的显示。

功能说明

「点击写变量」属于交互类行为。给一个图形挂上它以后,用户在导出的画面里点击该图形,就会把计算好的一个值写进一个运行时变量。要注意:它写的是页面内部的运行时变量(JavaScript 变量空间),不是 PLC 标签,要把值下发到 PLC,请用「写标签」或「写标签位」。运行时变量更像是页面里的一个临时记忆位:可以记一个开关状态、记一次选择、记一个计数,然后让画面上其它行为(颜色、可见性、文本、旋转等)读这个变量来联动显示。它只在用户点击时触发,画面静止时不会自己执行。

使用方法:编辑器里填什么

在行为编辑器中按下面几个字段填写。运行顺序为:先判断 Enabled → 执行 Definition → 计算 Value → 写入变量 → 刷新联动行为的状态。

  • Definition:准备区。在这里读标签、定义中间变量、做计算,给 Value 用。可留空。
  • Variable:要写入的变量名,只填名字本身,不要加引号(例如填 pumpStart,不要填 "pumpStart")。
  • Value:要写入的值。可以是一个表达式,也可以是完整 JavaScript;如果写成多行脚本,必须用 return 把结果返回出来。
  • Enabled:开关(门)。返回 true 才允许点击写入,返回 false 则点击无效。
  • (外观反馈,可选)启用时显示手型光标、启用时描边加粗、未启用时隐藏,用来给用户「可点 / 不可点」的视觉提示。
// Definition
var nextValue = ReadTagBoolean("PLC1.PUMP.START", false) ? 0 : 1;

// Variable
pumpStart

// Value
nextValue

适用场景

适合“点击后记录一个页面内部变量,并驱动其它组件联动显示”的场景。

  • 本地开关/切换按钮:点击后将 pumpStart 在 0 和 1 之间翻转,再让指示灯的颜色行为读取该变量决定亮灭(注意这只修改页面变量,不会下发 PLC)。
  • 做页面内的视图切换:点不同按钮写入 viewMode(如 1/2/3),让多个图层用可见性行为按 viewMode 显示或隐藏。
  • 记一次用户选择:把当前选中的设备编号写进变量,供页面里的文本、跳转或脚本读取使用。

注意事项 / 常见错误

使用前应先确认以下事项,以减少配置错误。

  • 不要和「写标签」混淆:这里写的是运行时变量,不会下发到 PLC;要写 PLC 用「写标签 / 写标签位」。
  • 变量名不要加引号:Variable 框只填名字(pumpStart),加了引号或表达式会出错。
  • Value 写多行脚本时必须 return:只写一行表达式可以不写 return,但多行逻辑不 return 就拿不到结果。
  • 需要其它组件联动时:写入后只会刷新联动行为状态,其它组件也需要绑定并读取同一个变量名(可通过 qtedit.globals 读取该变量空间)。
  • Enabled 返回 false 时点击不写入,调试「点了没反应」时先检查 Enabled。
点击写变量行为编辑器
图示 1: 点击写变量编辑器

填变量名和要写入的值,点击时把值写进页面运行时变量,供其他行为联动。