跳至主要内容

模板:input / keypad / table 与模板变量、批量替换

模板将一组组件及其行为保存为可复用内容,通过实例参数替换设备名称、文本或其他配置。内置模板包括 Input、Keypad、Table、Alarm、图表和视频;Template Edit 配置实例,Batch Replace 按类别批量替换。

功能文档修订:2026-10-21

功能: 模板:input / keypad / table 与模板变量、批量替换

模板将一组组件及其行为保存为可复用内容,通过实例参数替换设备名称、文本或其他配置。内置模板包括 Input、Keypad、Table、Alarm、图表和视频;Template Edit 配置实例,Batch Replace 按类别批量替换。

使用方法:保存、插入与各编辑器字段

将组件组合并选中,打开 Templates → Library → Save selection。双击或拖拽库中模板插入实例;Import / Export 交换模板,Delete 删除模板。

Template Edit 按模板类型提供以下字段:

  • 所有实例通用:Position and Size 区的 X / Y / Width / Height(顶部还会只读显示 Instance / Template / Group)
  • 普通模板实例:Template Variables 区按扫描到的 <变量名> 逐行列出输入框(如 PLC、DB、RUN_TAG),填进去即对整组生效
  • input 模板:Input Mode(Plain Input 仅留本地输入值不自动写 / Runtime Variable 绑运行时变量 / PLC Tag 绑 PLC 标签)、Variable 或 PLC Tag(随模式切换)、Write Trigger(默认 Immediate)、Font Size
  • keypad 模板:Target Input(选当前页里要操作的输入模板;数字键追加字符,Back 删一位,Clear 清空,OK 通过目标输入框写出)
  • table 模板:Table Name、Table Text ID、Headers、Header Text IDs、Rows(Rows 可填数组、变量名或函数名)
TextText
// 表达式里写模板变量(分段式 / 整体式)
ReadTagBoolean('<PLC>.<DB>.RUN', false)
ReadTagBoolean('<RUN_TAG>', false)
// 实例填 PLC=PLC_LINE01, DB=DB_PUMP01 -> 运行时等价于 PLC_LINE01.DB_PUMP01.RUN

Template Edit 通用区域按什么顺序填

选中实例根组,打开 Templates → Edit Instance。核对 Instance、Template、Group,填写 Position and Size 和 Template variables,再进入对应模板区域。变量修改仅影响当前实例。

  • Instance:确认当前页实例名称。
  • Template:确认来源模板,避免编辑错实例。
  • Group:确认模板所属分类。
  • X / Y:实例左上角位置。
  • Width / Height:实例整体尺寸。
  • Template variables:逐项填写当前设备或当前页面使用的值。
  • 底部显示 ValidationMessage 时,先修正对应字段再 Save。

Input 模板逐项配置

Input mode 先决定值保存在哪里,再填写随模式出现的目标字段。Plain Input 只保留输入内容;Runtime Variable 写入当前运行时变量;PLC Tag 对应设备 Tag。需要自动提交时选择 Immediate,需要由外部按钮或脚本统一提交时选择 External。最后设置 Font size。

  • Plain Input:不填写 Variable 或 PLC Tag,适合先收集文本。
  • Runtime Variable:固定名称直接填 speedSetpointDraft;动态变量名填 =selectedVariableName,表达式返回变量名字符串。
  • PLC Tag:固定名称可填 PLC_LINE01.PUMP01.SPEED_SETPOINT 或 <PLC>.PUMP01.SPEED_SETPOINT;动态目标填 =selectedSetpointTag。
  • Immediate:确认输入后立即按当前绑定写出。
  • External:按 Enter 或离开输入框不自动提交;Keypad 的 OK 仍会提交目标 Input,且不会执行自定义 Click Script 校验。
  • 保存后在运行页验证显示和提交,并在 Input 中按 Esc 检查放弃草稿。Input 不提供数据类型和数值上下限字段;业务范围校验放在提交脚本中。

Keypad 模板连接目标输入框

当前页必须先有 Input 模板。选择 Keypad 实例进入 Template Edit,在 Keyboard 区的 Target input 中选择或填写目标输入实例名称,保存后导出并验证 0–9、Back 退格、Clear 清空和 OK 提交。Keypad 没有取消键;可在 Input 中按 Esc 放弃草稿。窗口提示 No input templates were found 时,先插入并保存 Input 模板,再重新打开 Keypad 编辑器。

  • 先配置 Input,再配置 Keypad。
  • Target input 必须是当前页实际存在的输入模板实例。
  • 重命名输入实例后,重新检查 Keypad 的 Target input。
  • PLC Tag 模式下验证确认动作是否触发权限、确认和写入。需要由提交按钮校验数值范围时,不要把 Keypad 绑定到该 PLC Tag 输入框;可以改用 Plain Input 收集草稿,再由按钮校验并写入。

Table 模板逐项配置

Table name 是表格显示标题;Table text ID 是标题的翻译键。脚本定位和 ExportTable 使用 Behavior Browser 中的组件 Name 或 shapeId。先设 Font size 和每列宽度,再填写 Headers、Header text IDs 和 Rows。只要填写了列宽,所有已配置列的百分比合计必须为 100;全部留空时按等宽分配。

  • Table name:表格显示标题,不是脚本定位名称。
  • Table text ID:标题的语言键;有翻译时替换 Table name,缺少翻译时保留标题文本。
  • Column layout:逐列填写百分比,合计 100%。
  • Headers:表头显示文本。
  • Header text IDs:与表头对应的语言键或文本标识。
  • Rows:填写数组、页面脚本变量名或返回数组的函数名。
  • 保存后分别用 0 行、1 行和多行数据进行验证。
  • 当前 Table 是只读文本表格;没有内置筛选、分页、单元格输入框、按钮列或逐行状态色。筛选和分页需先在脚本中整理数组;需要编辑或行操作时使用独立 Input / 按钮或自写页。

Alarm 模板筛选范围

Alarm 区用于限定当前报警模板显示的范围。按需要勾选显示项,并在 Tags、PLC codes、Function groups、Device groups、Signal groups 中填写目标。多个值使用逗号或换行分隔。不要把显示名称填进编码字段。

  • Tags:device-code.tag-code。
  • PLC codes:只填 device-code。
  • Function groups:device-code.group-code。
  • Device groups:device-code.group-code。
  • Signal groups:device-code.group-code。
  • 只填写实际需要限制的维度;保存后在 Mingcedar 用已知报警验证结果范围。

模板变量、运行时变量和页面参数不是一回事

以下四类值的生效时机和作用范围不同:

  • 模板变量 <PLC> / <DB> / <RUN_TAG>:模板实例级替换值,导出前必须替换完成;它不是运行时页面参数。
  • Plain Input:只保存输入模板当前值,通过 template.getValue("输入模板实例名") 读取;不会自动跨页。
  • Runtime Variable:当前运行页面内的变量,用于页面联动;不要当作跨页面协议。
  • PLC Tag:由宿主设备数据层维护,可跨页面读取同一 Tag,但这属于数据绑定,不是页面参数。
  • 页面参数:通过 Open Link、openPage 或 Open Page as Popup 发送,由目标页 GetPageParameter* 读取。

适用场景

同类设备:保存泵或阀模板,为各实例填写 PLC、DB 等参数,替换相应绑定目标。

输入操作区:插入 Runtime Variable 或 PLC Tag 模式的 Input,再用 Keypad 的 Target Input 连接。脚本读取使用 template.getValue("输入组件名")。

Batch Replace:核对 Scope 和 Variables,输入 Find / Replace with,检查 Type / Object / Replace in / Current value / Replacement preview 后点击 Replace。

限制与常见问题

  • 变量名必须用尖括号包起来;支持字母、数字、下划线和中文,但横杠、点号、空格不能放在变量名内部。团队模板建议用 <PLC>、<RUN_TAG> 这类 ASCII 大写名称;Tag 路径写成 <PLC>.<RUN_TAG>。
  • 模板变量是“实例级”配置,只挂在模板实例根组上:复制整组时变量一起带走,所有子组件共享同一组值,不要指望逐个子组件单独设
  • 编辑/插入时允许变量留空,但导出时会校验,若仍残留未替换的 <变量名> 会报错,导出前要填全
  • 使用 Edit Instance 前需选中模板实例根组;选中普通图形或普通组后点击,会提示所选对象不是模板实例
  • keypad 必须先有输入模板:若当前页还没有 input 模板,Target Input 会提示先插入输入模板再回来配
  • Batch Replace 按选中类别处理文本、Tag、链接、脚本、行为设置或颜色,不替代模板结构调整;若每次替换后还要大量手改布局,应回到模板源定型
Mingcedar Studio 模板实例编辑界面
图示 1: 模板实例 Template Edit

在 Template Edit 中确认实例来源、位置尺寸,并填写本实例的模板变量。

再次点击图片或按 Esc 关闭