Skip to content

Faceplate

A Faceplate is a reusable SVG component. You can design frequently used SCADA symbols such as motors, valves, pumps, and tanks once and use them across multiple animation screens.

FeatureAnimationFaceplate
LevelProjectProject
UsageFull SCADA screenReusable component
SVG ContentFull-screen SVGSmall component SVG
BindingAnimation ElementsFaceplate Elements + Placeholders
PlacementStandalone screenEmbedded within an Animation

Menu: Development → Animations → Faceplate Dev

FieldRequiredDescription
NameYesFaceplate name
SVG ContentYesSVG source code
ColorNoTheme color
DescriptionNoDescription
Faceplate: "Motor_Standard"
├── SVG Content (motor symbol SVG)
├── Faceplate Elements (binding definitions)
│ ├── "status_indicator" → color binding
│ ├── "speed_text" → text binding
│ └── "current_bar" → scale binding
└── Faceplate Placeholders (parameter definitions)
├── {motor_name} → "Motor 1"
├── {speed_var} → "Motor1_Speed_RPM"
└── {current_var} → "Motor1_Current_A"

Placeholders are parameters that make a faceplate reusable for different devices.

FieldDescription
NamePlaceholder name (e.g., motor_name)
Default ValueDefault value

A factory has 20 motors. All will be displayed with the same symbol:

  1. Design once: Create the Motor_Standard faceplate
  2. Define placeholders: {motor_name}, {speed_var}, {status_var}
  3. Place in Animation: Add the faceplate for each motor and fill in the placeholder values
Motor 1: {motor_name}="Motor 1", {speed_var}="M1_Speed", {status_var}="M1_Status"
Motor 2: {motor_name}="Motor 2", {speed_var}="M2_Speed", {status_var}="M2_Status"
...
Motor 20: {motor_name}="Motor 20", {speed_var}="M20_Speed", {status_var}="M20_Status"

Instead of designing 20 separate symbols: 1 faceplate + 20 placeholder sets.

A Faceplate Element works with the same logic as an Animation Element — it binds an SVG element to a variable:

Binding TypeDescription
TextText update (RPM, °C, kW display)
ColorStatus color (running=green, fault=red)
VisibilityConditional show/hide
RotationRotation (valve angle, gauge needle)
<svg viewBox="0 0 120 100">
<!-- Motor body -->
<rect id="motor_body" x="10" y="20" width="100" height="60"
rx="5" fill="#dddddd" stroke="#666"/>
<!-- Status indicator -->
<circle id="status_led" cx="95" cy="35" r="8" fill="#cccccc"/>
<!-- Motor name -->
<text id="motor_label" x="60" y="15" text-anchor="middle"
font-size="12">{motor_name}</text>
<!-- Speed value -->
<text id="speed_display" x="60" y="55" text-anchor="middle"
font-size="16" font-weight="bold">-- RPM</text>
<!-- Current bar -->
<rect id="current_bar" x="15" y="70" width="0" height="5"
fill="#3498db"/>
</svg>

Faceplate Elements:

  • status_led{status_var} → Color (true=green, false=red)
  • speed_display{speed_var} → Text (value + ” RPM”)
  • current_bar{current_var} → Scale (0-100A → 0-90px width)

In the future, Faceplates can be encapsulated as Web Components. This allows:

  • A faceplate to be used as a custom HTML tag like <ins-motor>
  • Direct embedding in Custom Menu HTML pages
  • Style isolation through Shadow DOM

Detailed information: Web Components →