画面设计: 画面复用与参数配置
按目标在制作时确定还是运行时变化,选择 Tag、模板参数、页面变量或页面参数。
1. 选择复用方式
模板的每次插入称为实例。模板参数在制作时填写,页面变量保存当前页状态,页面参数在打开另一页时传递。
左右滑动查看完整表格
2. 区分 Tag 名称与数值
Tag 是 Mingcedar 数据点;speedTag 保存名称,ReadTagDouble 读取数值。将 PLC_LINE01.PUMP01.SPEED 替换为项目中可读取的数值 Tag。
左右滑动查看完整表格
- 新建一页,打开 MX Design → Scripts → Page Script,填写下方代码。
- 插入文本框,打开 MX Design → Behaviors → Browse,将 Text → Script Text 拖到该文本框的组件节点。双击新增行为,清空默认 Setup Script,Condition 填 true,Display Text 填 speedTag + " = " + String(speedNow),然后保存。
- 保存 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 的目标变量前写 =;函数参数中直接使用变量;JavaScript 里的模板占位符放在引号内。不是所有字段都能填模板变量或脚本。
4. 转换数字与布尔模板参数
本例新建一页,不需要 PLC 数据。LIMIT 表示非负数值,ENABLED 表示 true 或 false。模板参数按文字替换,需要转换类型后使用。
左右滑动查看完整表格
- 插入文本框并添加 Text → Script Text。用下方完整代码替换默认 Setup Script,Condition 填 true,Display Text 填 String(limit) + " / " + String(enabled),然后保存。
- 选中文本框,打开 MX Design → Templates → Library,点击 Save selection。Template name 填 Parameter display,确认 Captured variables 包含 LIMIT、ENABLED,再点击 Save。
- 确认保存成功后,从当前页删除仍带占位符的原始文本框。Save selection 只保存到模板库,不会移除原稿;仅隐藏或移到同一 PPT 的其他页不能将其排除在整包导出之外。
- 双击 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. 排查数据显示问题
- 先用常量确认控件:Table 的 Rows 写 [["PUMP01", "1200 rpm"]];Input 先选 Plain Input;状态灯 Condition 先写 true / false。确认控件本身可见、可操作。
- 检查目标计算:新增 Script Text 时清空默认 Setup Script,Condition 填 true;Display Text 临时填 selectedTag 或 GetPageParameter("pump", "未传")。显示 <PUMP> 原文说明模板值未替换;显示另一设备名则检查选择或传参。
- 连接真实 Tag 后,检查名称、类型、通信质量、用户权限及运行平台连接状态。写入后对照设备回读值确认结果。
完成标志 依次定位控件配置、参数/变量计算和数据连接问题。