跳至主要内容

画面复用与参数配置

按目标在制作时确定还是运行时变化,选择 Tag、模板参数、页面变量或页面参数。

画面设计文档修订:2026-10-21

画面设计: 画面复用与参数配置

按目标在制作时确定还是运行时变化,选择 Tag、模板参数、页面变量或页面参数。

1. 选择复用方式

模板的每次插入称为实例。模板参数在制作时填写,页面变量保存当前页状态,页面参数在打开另一页时传递。

左右滑动查看完整表格

使用场景配置方式值的生效时机
同一页并排放 PUMP01、PUMP02 的操作区<PLC> / <PUMP> 模板参数制作时给每个实例填值,再导出
一个输入框在两台设备间切换保存 Tag 名称的页面变量运行时点击按钮修改变量,页面保持打开
从不同水泵打开同一张详情页页面参数 + GetPageParameter打开详情页时传入设备编码
按钮切换表格的 A 区 / B 区页面变量 + 返回行数组的函数按钮改变量,函数返回对应的行
转速持续更新,而非只在打开页时读一次在反复求值的函数内调用 ReadTagDouble显示重新求值时再次读数据

2. 区分 Tag 名称与数值

Tag 是 Mingcedar 数据点;speedTag 保存名称,ReadTagDouble 读取数值。将 PLC_LINE01.PUMP01.SPEED 替换为项目中可读取的数值 Tag。

左右滑动查看完整表格

写法含义
"PLC_LINE01.PUMP01.SPEED"完整 Tag 名称,是一个字符串
speedTagJavaScript 变量,里面保存上述字符串
<PUMP>模板占位符,每个实例在制作时分别填值
GetPageParameter("pump", "PUMP01")读取打开本页时带来的字符串;没传时使用 PUMP01
ReadTagDouble(speedTag, 0)读取当前数值;0 是回退值,不代表设备已确认停机
  1. 新建一页,打开 MX Design → Scripts → Page Script,填写下方代码。
  2. 插入文本框,打开 MX Design → Behaviors → Browse,将 Text → Script Text 拖到该文本框的组件节点。双击新增行为,清空默认 Setup Script,Condition 填 true,Display Text 填 speedTag + " = " + String(speedNow),然后保存。
  3. 保存 PPT,通过 MX Design → Export → Export HTML 导出,在 Mingcedar 打开该页,核对显示的名称和数值。
Page Script:比较 Tag 名称与读取值JavaScript
var speedTag = "PLC_LINE01.PUMP01.SPEED";
var speedNow = ReadTagDouble(speedTag, 0);

完成标志 上面的 speedNow 只在这两行执行时采样一次。需要实时显示时,把读取放进每次会求值的行为表达式或表格函数;动态 Tag 的候选范围按后续教程声明。

3. 各字段的变量写法

下表为独立示例。selectedTag 在 Page Script 中保存对应类型的完整 Tag 名;buildRows 是表格教程的行数组函数。各字段的表达式格式不同。

左右滑动查看完整表格

填写位置直接绑定或模板使用页面变量
Input → PLC Tag<PLC>.<PUMP>.SPEED_SETPOINT=selectedTag
Write Tag / Write Tag Bit → Target Tag<PLC>.<PUMP>.CTRL_WORD=selectedTag
Table → Rows[["PUMP01", "1200 rpm"]]=buildRows()
Click ScriptWriteTagDouble("<PLC>.<PUMP>.SPEED_SETPOINT", 1200)WriteTagDouble(selectedTag, 1200)
State Color → ConditionReadTagBoolean("<PLC>.<PUMP>.RUN", false)ReadTagBoolean(selectedTag, false)
Write Tag Bit → Bit Index3此字段只填固定整数;动态位号使用 Click Script 中的 WriteTagBit

完成标志 Input 的目标变量前写 =;函数参数中直接使用变量;JavaScript 里的模板占位符放在引号内。不是所有字段都能填模板变量或脚本。

4. 转换数字与布尔模板参数

本例新建一页,不需要 PLC 数据。LIMIT 表示非负数值,ENABLED 表示 true 或 false。模板参数按文字替换,需要转换类型后使用。

左右滑动查看完整表格

实例LIMITENABLED转换结果
A1500true1500 / true
B2200false2200 / false
  1. 插入文本框并添加 Text → Script Text。用下方完整代码替换默认 Setup Script,Condition 填 true,Display Text 填 String(limit) + " / " + String(enabled),然后保存。
  2. 选中文本框,打开 MX Design → Templates → Library,点击 Save selection。Template name 填 Parameter display,确认 Captured variables 包含 LIMIT、ENABLED,再点击 Save。
  3. 确认保存成功后,从当前页删除仍带占位符的原始文本框。Save selection 只保存到模板库,不会移除原稿;仅隐藏或移到同一 PPT 的其他页不能将其排除在整包导出之外。
  4. 双击 Parameter display 卡片两次。分别选中整个实例组合,点击 MX Design → Templates → Edit Instance,在 Template variables 中填写下表的 A、B 两组值并保存。导出后打开该页,A 应显示 1500 / true,B 应显示 2200 / false。
Script Text → Setup ScriptJavaScript
var limitText = "<LIMIT>".trim();
var limit = Number(limitText);
if (!limitText || !Number.isFinite(limit) || limit < 0) {
  throw new Error("LIMIT must be a non-negative number");
}
var enabledText = "<ENABLED>".trim().toLowerCase();
if (enabledText !== "true" && enabledText !== "false") {
  throw new Error("ENABLED must be true or false");
}
var enabled = enabledText === "true";

如果结果不一致

  • Number("<LIMIT>") 的引号必须保留;直接写 var limit = <LIMIT> 不是可用的 JavaScript。
  • Boolean("false") 的结果是 true;本例用字符串比较得到正确布尔值。
  • 只保存了组件模板时,当前页 Page Script 不会跟着复制到另一页。

5. 排查数据显示问题

  1. 先用常量确认控件:Table 的 Rows 写 [["PUMP01", "1200 rpm"]];Input 先选 Plain Input;状态灯 Condition 先写 true / false。确认控件本身可见、可操作。
  2. 检查目标计算:新增 Script Text 时清空默认 Setup Script,Condition 填 true;Display Text 临时填 selectedTag 或 GetPageParameter("pump", "未传")。显示 <PUMP> 原文说明模板值未替换;显示另一设备名则检查选择或传参。
  3. 连接真实 Tag 后,检查名称、类型、通信质量、用户权限及运行平台连接状态。写入后对照设备回读值确认结果。

完成标志 依次定位控件配置、参数/变量计算和数据连接问题。

再次点击图片或按 Esc 关闭