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:
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
- 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
- Add TextBox for value display:
- LinkedValue:
#TagValue:Client.Second
- 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
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:
Export to Library:
- Saves to global
Library.dbsln
- Available to all solutions on computer
Delete Symbols:
- Select rows
- Click delete (X) icon
Best Practices
Reuse symbols from "In Solution" instead of Library
Link to library for consistent updates
Use parameters instead 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"
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.