跳至主要内容

先决定脚本入口 | Mingcedar Studio

脚本入口决定运行时机和可用上下文。

脚本方法入口文档修订:2026-10-21
入口

先决定脚本入口

脚本入口决定运行时机和可用上下文。

页面脚本的配置范围

脚本按页面维护,没有可编辑的项目级脚本文档。当前页逻辑放在 Page Script,跨页复用使用宿主 runtime 或模板。

  • 页面逻辑放当前页 Page Script
  • 跨页复用优先交给宿主 runtime 或模板
  • 单页流程不应作为全局公共逻辑维护
function openAlarmPage() {
  hqVisuDesigner.openPage("Alarm");
}
Page Script:当前页逻辑

Page Script 处理当前页初始化、局部变量、数据整理、表格和交互逻辑。

  • 适合页面打开后的初始化
  • 适合当前页数据整理
  • 适合当前页表格和局部交互逻辑
window.hqVisuDesignerPageReady = function(ctx) {
  var rows = window.tableRows || [];
  hqVisuDesigner.setComponentText("RowCountText", String(rows.length));
};
Setup Script:准备行为使用的数据

Setup Script 读取 Tag、计算中间值,供 Condition、Value 或 Display Text 使用。旧配置名为 Definition;设备写入由点击行为触发。

  • 读取 Tag 并计算中间值
  • 由 Condition / Value / Display Text 返回结果
  • 同页共用的变量和函数放在 Page Script
var running = ReadTagInteger("PLC_LINE01.PUMP01.RUN", 0);
var alarm = ReadTagBoolean("PLC_LINE01.PUMP01.ALARM", false);
var ready = running === 1 && !alarm;
Click Script 与 Hover Script:对象级动作

Click Script 处理点击、跳页、写值和弹窗;Hover Script 处理悬停提示、预览和样式变化。页面初始化使用 Page Script。

  • 点击动作优先放 Click Script
  • 悬停反馈优先放 Hover Script
  • 对象脚本不承担页面初始化职责
// Click Script
hqVisuDesigner.openPage("Alarm");

// Hover Script -> Mouse Over
object.style.opacity = "0.75";
表达式字段:必须同步返回结果

表达式字段须同步返回布尔值、文本、颜色或数字。fetch、Promise 和定时器放在 Page Script、对象脚本或 hqVisuDesignerPageReady 中,将结果存入页面变量。设备写入由用户操作触发。

  • 布尔字段:返回 true / false
  • 数值字段:返回 number
  • 文本和颜色字段:返回 string
  • 异步逻辑不直接作为表达式返回值
// Page Script
function pressureColor() {
  var pressure = ReadTagDouble("PLC_LINE01.PUMP01.PRESSURE", 0);
  return pressure > 8 ? "#dc2626" : "#16a34a";
}

// Script Color / Fill
pressureColor()
页面脚本入口
页面脚本入口

页面级逻辑优先放入 Page Script,避免分散在大量对象脚本中。

点击脚本入口
点击脚本入口

按钮或对象动作优先放点击脚本,职责会更清晰。

悬停脚本入口
悬停脚本入口

悬停类交互和提示行为更适合放在这里。

再次点击图片或按 Esc 关闭