This guide walks you through applying dynamic animations to display elements, enabling real-time visual changes based on tag values, expressions, and user interactions. Dynamics transform static graphics into interactive, data-driven visualizations.
Prerequisites:
- Display with graphical elements
- Tags configured for data binding
- Understanding of expressions and tag values
Understanding Symbol Libraries
Two-Level Library System
Product Symbol Library:
- Thousands of pre-built symbols installed with software
- Stored in
Library.dbsln
file - Located in
\Users\Public\Public Documents\<productName>\Templates
- Can be customized by opening as a solution
Solution Local Library:
- Symbols copied from Product Library when used
- Stored within solution file
- Ensures solution independence and portability
- Listed under "In Solution" in Components Panel
Using Existing Symbols
Finding and Inserting Symbols
- Navigate to Displays → Draw
- In Components Panel, expand Symbols folder:
- Library - Global product symbols
- In Solution - Symbols already in your solution
- Check "with Dynamics" to filter symbols with behavior
- Insert symbol using either method:
- Click symbol, then click in drawing area
- Drag and drop from panel
Symbol Wizards
The first five symbols in the library have wizards for quick customization:
- Blower
- Motor
- Pump
- Tank
- Valve
These wizards guide you through appearance options (horizontal/vertical, color schemes, etc.) before placing the symbol.
Configuring Symbol Instances
Symbol Configuration Dialog
Double-click any symbol to open configuration:
Property | Description |
---|---|
Is Linked With Library | Updates when library symbol changes |
Linked Size (Proportional) | Maintains size ratio with library |
Internal Dynamics | Lists animations within symbol |
Symbol Links | Parameter mappings for this instance |
Copy and Paste | Transfer configurations between symbols |
Apply | Save changes (auto-applies on close) |
Mapping Parameters
Symbol parameters use simple binding:
- Double-click symbol to open configuration
- In Symbol Links section, find parameters
- Map each parameter to tags or expressions:
- Type tag name directly (with IntelliSense)
- Click ... button to browse tags
- Enter expressions or constants
Common wizard symbol parameters:
- #State: 0=HPGOff, 1=HPGOn, 2+=HPGDefault colors
- #Rotate: 0=static, 1=rotating
- #Speed: RPM when rotating
- #Level: Tank fill level (with #Min/#Max)
Creating Custom Symbols
From Basic Shapes
- Draw your symbol:
- Use drawing tools (Rectangle, Ellipse, Polygon, Polyline)
- Combine shapes with toolbar commands
- Apply colors, gradients, shadows
- Add Dynamic Behavior:
- Select element
- Double-click to open properties
- Add dynamics (FillColor, Visibility, Rotate, etc.)
- Create Parameters: Use hashtag syntax in expressions:
#STATE:Client.SimulationDigital #VALUE:Tag.PlaceHolder.DoubleTag #MIN:0 #MAX:100
- Text before
:
becomes parameter name - Text after
:
is default value
- Text before
- Save as Symbol:
- Select all elements
- Right-click → "Make a new symbol"
- Enter Name, Folder, Description
- Symbol appears in "In Solution" library
Example: Tank Level Symbol
Create a simple tank with level indicator:
- Draw rectangle (tank body)
- Add Bargraph dynamic:
- Expression:
#TagValue:Client.Second
- Min:
#Min:0
- Max:
#Max:100
- Expression:
- Add TextBox for value display:
- LinkedValue:
#TagValue:Client.Second
- LinkedValue:
- Select both → Create Symbol
- Result: Symbol with three parameters (TagValue, Min, Max)
Advanced Symbol Features
Linking Symbols to Tag Types
Automatically use symbols when dropping tags:
- Go to Unified Namespace → Tags
- Select tag
- Click Map To Symbol button
- Choose symbol from library
- Now dragging this tag creates the symbol
Symbols for DataTemplates
Create symbols that bind to DataTemplate members:
For DataTemplate "PID" with Setpoint, PV, CV:
Expression: #TagValue:(Tag.Loop1).Setpoint
Expression: #TagValue:(Tag.Loop1).PV
Expression: #TagValue:(Tag.Loop1).CV
Using parentheses replaces only the tag name, keeping member references.
Default Symbol Mapping
- Name symbol same as DataTemplate for automatic mapping
- Or use Map to Symbol button in DataTemplates
- Default types (Integer, Digital, etc.) have built-in text I/O
Using PlaceHolder Tags
Best practice for portable symbols:
#TagName:Tag.PlaceHolder.IntegerTag
#TagName:(Tag.PlaceHolder.DoubleTag).Quality
Benefits:
- Solution-independent symbols
- Clear type expectations
- IntelliSense support
Customizing Wizard Symbols
Editing Wizard Symbols
- Select symbol on display
- Click Edit Selected Symbol in toolbar
- Environment title changes to "SYMBOL EDITOR"
- Make modifications (add labels, values, etc.)
- Save with toolbar icon or cancel
Note: After customization, wizard no longer applies to that symbol.
Breaking Apart Symbols
To modify without library link:
- Select symbol
- Click Break Apart button
- Elements become individual objects
- Modify as needed
- Optionally recreate as new symbol
Managing Solution Symbols
Symbol Management Page
Navigate to Displays → Symbols to:
- View all solution symbols
- Check size and descriptions
- Export symbols
- Delete unused symbols
Operations
Save as Image:
- Creates PNG preview file
Export to Library:
- Saves to global
Library.dbsln
- Available to all solutions on computer
Delete Symbols:
- Select rows
- Click delete (X) icon
Best Practices
Performance
? Reuse symbols from "In Solution" instead of Library ? Link to library for consistent updates ? Use parametersinstead of fixed values ? Test symbols with PlaceHolder tags first
Organization
? Create folders to organize symbols ? Use descriptive names for symbols and parameters ? Document complex symbol behavior ? Version control important symbols
Design Guidelines
? Keep symbols simple - combine for complex displays ? Expose key parameters only ? Use consistent parameter naming (#State, #Value) ? Provide defaults for all parameters
Common Symbol Patterns
Status Indicator
Rectangle with:
- FillColor: #State:0 (0=Gray, 1=Green, 2=Red)
- Visibility: #Enable:1
- Action: OpenPopup(#DetailDisplay:"Details")
Value Display with Units
TextBox group with:
- Value: #Tag:Tag.PlaceHolder.DoubleTag
- Format: #Format:"N2"
- Units: #Units:"°C"
Control Button
Button with:
- Action: SetValue
- Target: #ControlTag:Tag.Command
- Value: #CommandValue:1
- Security: #Permission:"Operator"
Troubleshooting
Symbol not updating in displays
- Check "Is Linked With Library" setting
- Save symbol in library after changes
- Refresh displays
Parameters not working
- Verify hashtag syntax:
#Name:Default
- Check for typos in parameter names
- Ensure consistent parameter use
Symbol appears broken
- Verify all internal tag references exist
- Check dynamic expressions for errors
- Test with known good tags
Can't edit wizard symbol
- Editing removes wizard capability
- Create copy first if preserving original
- Use "Break Apart" for one-time edit
This guide covered creating, configuring, and managing Symbols in your solution, from using pre-built library symbols to creating custom reusable components with dynamic behavior and parameter-based configuration.