跳至主要内容

动画字段支持哪些写法 | Mingcedar Studio

动画字段分成数值表达式、布尔表达式、颜色值和模板变量。先分清字段类型,再填写表达式,后面的参数才容易稳定。

动画功能语法文档修订:2026-10-21
语法

动画字段支持哪些写法

动画字段分成数值表达式、布尔表达式、颜色值和模板变量。先分清字段类型,再填写表达式,后面的参数才容易稳定。

数值表达式

Move、Rotate、Scale 的输入值、位移、角度和缩放比例都可以写数值表达式。表达式必须能立即算出数字,不能直接放入异步请求。

  • 固定数值:120
  • Tag 数值:ReadTagDouble("<PLC>.<TAG>", 0)
  • 对象尺寸:shape.width、shape.height
  • 计算表达式:shape.width * 2、shape.height * 0.5
ReadTagDouble("<PLC>.<TAG>", 0)
shape.width
shape.height * 0.5
Setup Script 与结果字段的分工

颜色和文本行为通过 Setup Script 准备数据,再由输出表达式返回结果。Fill color / Border color 对应旧名 Fill / Stroke。几何编辑器没有 Setup Script,直接使用读取方法或 Page Script 函数。

  • Setup Script:准备变量和函数
  • Condition:返回布尔值
  • Display Text / Fill color / Border color:返回字符串
  • Source value / Angle / Offset / Scale:返回数字
  • Visibility:返回布尔值
// Setup Script
var running = ReadTagBoolean("<PLC>.<RUN_TAG>", false);
var color = running ? "#22C55E" : "#64748B";

// Script Color / Fill color
color
布尔表达式

State Color、Blink Color 的 Condition 和 Script Color 的 Visibility 需要布尔结果。可直接读取布尔 Tag,或通过比较及组合条件得到 true / false。

  • 二值 Tag:ReadTagBoolean("<PLC>.<TAG>", false)
  • 状态码比较:state === 1
  • 组合条件:running === true && alarm === false
var running = ReadTagBoolean("<PLC>.<RUN_TAG>", false);
var alarm = ReadTagBoolean("<PLC>.<ALARM_TAG>", false);
running === true && alarm === false
颜色值

颜色值可使用十六进制格式。普通颜色行为通过颜色选择器维护;Script Color 的 Fill color 和 Border color 填写返回颜色字符串的表达式。

  • 固定颜色:"#22C55E"
  • 脚本颜色:state === 1 ? "#22C55E" : "#EF4444"
  • 模板颜色:"<FILL_COLOR>"
var state = ReadTagInteger("<PLC>.<STATE_TAG>", 0);
state === 1 ? "#22C55E" : "#EF4444"
字段结果类型清单

Condition、Visibility 返回布尔值;几何字段返回数字;Display Text 和颜色字段返回字符串。模板参数先替换为字符串,数值须显式转换。

  • 布尔值:Condition、Visibility
  • 数字:几何输入、位移、角度和缩放值
  • 字符串:Display Text、Fill color、Border color
  • 模板参数:写在字符串中,按需要转换类型
// Condition
ReadTagBoolean("<PLC>.<RUN_TAG>", false)

// At limit maximum
shape.width * 2

// Script Color / Fill color
ReadTagBoolean("<PLC>.<ALARM_TAG>", false) ? "#dc2626" : "#16a34a"
模板变量

模板变量格式为 <NAME>,变量名以字母或下划线开头。模板变量放入脚本表达式时,应写在字符串里。

  • Tag 字符串:"<PLC>.<RUN_TAG>"
  • 颜色字符串:"<FILL_COLOR>"
  • 模板变量参与 JavaScript 表达式时应放入字符串
ReadTagBoolean("<PLC>.<RUN_TAG>", false)
跨页复用放在哪里

PPT 插件不提供全局脚本文档。当前页所需的换算函数、格式化函数、颜色规则和常量放在 Page Script;确实需要跨页高级复用时,使用宿主 runtime、自写 SDK 或模板能力。

  • 同页换算:formatPressure(value)
  • 同页颜色:getStateColor(state)
  • 同页常量:const QUALITY_BAD_COLOR = "#EF4444"
  • 跨页高级能力交给宿主或 SDK
Page Script 顶层变量和函数

当前页动画字段可引用 Page Script 顶层 var、let、const 和 function,用于共享量程、Tag 名和换算函数。

  • 顶层变量:const levelMax = 100
  • 顶层 Tag 名称:var levelTag = "<PLC>.<LEVEL_TAG>"
  • 顶层函数:function readLevel() { ... }
  • 动画字段:readLevel() 或 levelMax
const levelMax = 100;
var levelTag = "<PLC>.<LEVEL_TAG>";

function readLevel() {
  return ReadTagDouble(levelTag, 0);
}

// Scale / Source value
readLevel()

// Scale / Source maximum
levelMax
页面准备回调与初始动画

window.hqVisuDesignerPageReady 会在页面运行时准备完成后执行,适合做组件初始化、文本设置和显示控制。用于初始动画计算的值,应放在当前页 Page Script 顶层。

  • 初始动画值优先引用顶层变量或函数
  • ready 回调适合调用 hqVisuDesigner.setComponentText 等运行时方法
  • 页面脚本文档只初始化一次
var pumpVisible = true;

window.hqVisuDesignerPageReady = function() {
  hqVisuDesigner.writeVariable("pumpVisible", pumpVisible);
  hqVisuDesigner.refreshView();
};
位语法

位读取用 TAG[bit],如 PLC_LINE01.PUMP01.TAG[0] 或 <PLC>.<TAG>[1]。bit 为 0–31,且须在父 Tag 位宽内。写位使用 Write Tag Bit,Target Tag 填父 Tag,Bit Index 填位号。

  • 读取位语法:`TAG[bit]`
  • 读取位:ReadTagBoolean("<PLC>.<TAG>[1]", false)
  • 写位目标:"<PLC>.<TAG>"
  • Bit Index:0 到 31
  • Bit Action:Set、Reset、Toggle
ReadTagBoolean("<PLC>.<TAG>[1]", false)
异步逻辑放置位置

表达式须同步返回结果。fetch、Promise 或定时器放在 Page Script 或 hqVisuDesignerPageReady,将结果存入页面变量供表达式读取。设备写入由真实用户操作发起。

  • 表达式字段:立即返回值
  • Page Script / hqVisuDesignerPageReady:处理异步准备
  • 动画字段:读取变量、Tag 或函数结果
  • 外部数据建议由 Mingcedar 接口或脚本层整理后再进入页面
行为条件与数据质量

按钮和 Script Color 的 Condition 控制是否执行;State Color 的 Condition 选择 TRUE / FALSE 状态。Quality Override 控制质量边框或隐藏。Active、Enabled 仅用于部分旧配置或特定编辑器。

  • Condition:按行为类型填写执行条件或状态条件
  • Quality Override:启用 Follow data quality (border / hide)
  • Hide when quality is bad:质量异常时隐藏对象
  • 业务状态仍由状态 Tag 或规则表达
var enabled = ReadTagBoolean("<PLC>.<ENABLE_TAG>", false);
var qualityGood = ReadTagQualityGood("<PLC>.<VALUE_TAG>");

// Script Color / Condition
enabled && qualityGood

再次点击图片或按 Esc 关闭