← Back to home

Import ISA-101 symbols into Ignition Perspective

15-minute setup · Ignition 8.1+ · Perspective + Vision

Ignition has the cleanest import path of any HMI: drop SVGs into Image Management, place an Image component, and use a switch() expression to pick the right image based on a state tag. Works identically for Perspective and Vision.

Compatibility: tested on Ignition 8.1.30+. Perspective renders SVG natively (best); Vision rasterizes at runtime (still works).

Step-by-step

1

Download the Ignition pack

From the catalog, click ↓ Ignition pack. You get SVGs organized in folders by category. Name format: {kind}_{state}.svg.

2

Upload to Image Management

In the Designer or the Gateway web interface:

  • Designer: Tools → Image Management.
  • Gateway: Config → System → Images.

Create a folder structure: hmi-library/motor/, hmi-library/pump/, etc. Drag the SVG files into each folder. The path becomes the image reference (e.g. hmi-library/motor/motor_3ph_canon_running.svg).

3

Place an Image component (Perspective)

Open a Perspective view. From the Component Palette → DisplayImage. Drop on the canvas.

In the Property Editor, set props.source to the image path:

/system/images/hmi-library/motor/motor_3ph_canon_running.svg
4

Bind state with a switch() expression

Right-click props.sourceEdit Binding → Expression. Use:

// Bind to the state INT tag in your PLC: "/system/images/hmi-library/motor/motor_3ph_canon_" + switch( {[default]Equipment/M101/State}, 0, "stopped", 1, "starting", 2, "running", 3, "nofb", 4, "manual", 5, "disabled", 6, "running_p1", 7, "running_p2", 8, "stopped_p1", "stopped" ) + ".svg"

This expression evaluates the state INT and returns the matching image path. Ignition reloads the image automatically when the tag value changes.

5

(Recommended) Wrap as an Embedded View / Template

For Perspective: create a view per equipment kind (FP_Motor3ph) with two parameters, state (INT) and tag (string). Inside, place the Image bound to those params. Drop the view as Embedded View wherever you need it; bind state and tag per instance.

For Vision: use a UDT-driven Template with a State int parameter — same structure, classic Vision style.

Style preset for Ignition

The catalog has a Style preset → Ignition Perspective dropdown that matches the Inductive Automation flat-modern style. It tweaks border radius, line weight, and accent colors to feel native in Perspective.

Recommended PLC encoding (Ignition tag scripting)

If you want Ignition to compute the state itself (e.g. when the PLC just exposes booleans), drop a Derived Tag with this expression:

// State derived from individual booleans if({[.]Fault}, 8, if({[.]AlarmP2} && {[.]Running}, 7, if({[.]AlarmP1} && {[.]Running}, 6, if({[.]LocalMode}, 4, if({[.]Disabled}, 5, if({[.]NoFeedback}, 3, if({[.]Running}, 2, if({[.]Starting}, 1, 0))))))))

Sizing for Perspective

TargetImage sizeNotes
Desktop browser256×128SVG scales — set the Image component size, not the source
Tablet (Mobile)192×96SVG, smaller component frame
Phone128×64SVG; consider hiding non-critical equipment
Wall display (4K)320×160 or 512×256Studio plan ships 512×256 source

Common pitfalls

What's next

Try the catalog free

12 symbols unlocked. Test the switch() binding pattern in your own Perspective view.

Open the catalog →

Other vendors