Creating Your First Canvas Display
Step 1: Create Display
- Navigate to Displays → Draw
- Click New Document button
- Configure:
- Name: ProcessOverview
- Engine: Portable
- Template: Select "Canvas" (not Dashboard)
- Click OK
Step 2: Set Canvas Properties
In the right sidebar under Display Settings:
- Width: 1920 (typical for Full HD)
- Height: 1080
- Background: Theme or custom color
- OnResize: StretchUniform (maintains aspect ratio)
Adding Process Elements
- From right panel Tags tree, expand your tags
- Drag a tag directly onto canvas
- System creates appropriate visualization:
- Digital tags → On/Off indicator
- Integer/Double → Numeric display
- Custom types → Symbol if mapped
Tip: Map tags to symbols first in UNS → Tags using "Map to Symbol" button for automatic symbol selection.
Method 2: Using Symbol Library
- In left panel, expand Symbols folder
- Browse categories:
- Motors → Motor symbols with wizards
- Pumps → Various pump types
- Valves → Gate, ball, butterfly valves
- Tanks → Storage vessels
- Drag symbol onto canvas
- Double-click to configure parameters
Method 3: Drawing Custom Graphics
Use the Drawing toolbar (left side):
Tool | Use Case | Tip |
---|
Rectangle | Tanks, buildings | Hold Shift for square |
Ellipse | Vessels, indicators | Hold Shift for circle |
Polyline | Piping, connections | Click points, Enter to finish |
Polygon | Complex shapes | Click points, close to finish |
Configuring Symbol Parameters
When you add a symbol with dynamic properties:
- Double-click the symbol
- In Symbol Configuration dialog:
- Parameters section shows available bindings
- Click ... to browse for tags
- Or type tag name directly
Example for a motor symbol:
STATE: Tag.Motor1.Running
SPEED: Tag.Motor1.Speed
FAULT: Tag.Motor1.Fault
Adding Dynamic Behavior
Quick Dynamics Setup
- Select any element
- Double-click to open properties
- Click Dynamics tab
- Add dynamic properties:
Color Change by Value:
- Type: FillColor
- Expression:
Tag.Temperature
- Change Color: UsingLimits
- Add limits: 0=Blue, 50=Green, 80=Yellow, 100=Red
Visibility Control:
- Type: Visibility
- Visible:
Tag.SystemRunning
- Element shows only when tag > 0
Animation:
- Type: Rotate
- Expression:
Tag.FanSpeed
- Range: 0-100 → Angle: 0-360
Creating Interactive Controls
Button for Commands:
- Add button from toolbar
- Double-click → Action dynamics
- Configure:
- Event: MouseLeftButtonDown
- Action: SetValue
- Object:
Tag.Motor1.Start
- Value:
1
Building a Complete Process Display
Typical P&ID Layout
Header: Title and Status
↓
Main Process Area (Canvas)
↓
??? Equipment (Symbols)
??? Piping (Polylines)
??? Instrumentation (Gauges)
??? Values (TextBoxes)
↓
Footer: Alarms Summary
Step-by-Step Example: Simple Tank System
- Add Storage Tank:
- Drag Tank symbol
- Bind Level:
Tag.Tank1.Level
- Bind Temperature:
Tag.Tank1.Temp
- Add Inlet Valve:
- Position above tank
- Bind State:
Tag.Valve1.Open
- Add color dynamics (Green=Open, Red=Closed)
- Connect with Piping:
- Use Polyline tool
- Draw from valve to tank
- Set line width: 3px
- Add flow animation if needed
- Add Level Indicator:
- Place LinearGauge beside tank
- Bind Value:
Tag.Tank1.Level
- Set Range: 0-100%
- Add Control Button:
- Place "Fill Tank" button
- Action: Toggle
Tag.Valve1.Open
Organizing Complex Displays
Using Groups
- Select related elements (Ctrl+Click)
- Click Group button in toolbar
- Benefits:
- Move together
- Copy as unit
- Apply dynamics to group
Layering (Z-Order)
Control what appears on top:
- Bring to Front: Pipes over equipment
- Send to Back: Background shapes
- Switch Z-Order: Fine control
Select multiple elements, then:
- Align Left/Right/Center
- Align Top/Bottom/Middle
- Space Evenly (horizontal/vertical)
Working with Templates
Creating Reusable Symbols
- Draw your equipment representation
- Add dynamics with parameters:
Expression: #STATE:Tag.PlaceHolder
- Select all elements
- Click Make Symbol button
- Name and save to library
Using Symbol Parameters
The #
syntax creates parameters:
#TagName:Tag.Default
- Main tag parameter#Min:0
- Numeric parameter#Color:Red
- Color parameter
When placing symbol, configure each parameter once.
Testing Your Display
Preview Mode
- Click Preview button in toolbar
- Limitations:
- No CodeBehind execution
- Basic animations only
- No real tag values
Runtime Testing
Better approach:
- Keep solution running (Development profile)
- Save display (Ctrl+S)
- Rich Client updates automatically
- Or refresh Web Client
Element Count Guidelines
Display Type | Max Elements | Recommended |
---|
Overview | 1000 | < 500 |
Detailed P&ID | 2000 | < 1000 |
Simple Control | 200 | < 100 |
Optimization Tips
Use symbols instead of individual elements
Limit animations to essential items
Optimize images before importing
Group static elements together
Avoid overlapping transparencies
Common Patterns
Equipment Status Indicator
Rectangle (equipment)
→ FillColor (0=Gray, 1=Green, 2=Yellow, 3=Red)
→ Visibility (Tag.Visible)
→ Action (OpenPopup on click ("EquipmentDetails"))
Analog Value Display
TextBox (Values)
→ LinkedValue (Tag.ProcessValue)
→ Format (2 decimals)
→ Units (°C or PSI)
Button "Show Trend"
→ Action (OpenDisplay)
→ Display ("TrendPopup")
→ Parameters (tag name)
Troubleshooting
Elements Not Aligned
- Use Grid: Show gridlines and snap to grid
- Use Alignment tools in toolbar
Symbol Not Updating
- Check parameter binding
- Verify tag name spelling
- Confirm tag has good quality
Display Too Slow
- Reduce element count
- Simplify animations
- Check CodeBehind for loops
Resize Issues
- Check OnResize setting
- Use StretchUniform for aspect ratio
- Test at different resolutions
Next Steps
- [Working with Symbols →] Create custom symbol library
- [Adding Dynamics →] Advanced animations
- [Display CodeBehind →] Add logic to displays
This child guide focuses specifically on Canvas displays while maintaining our standard structure. It provides practical, hands-on guidance without trying to cover every feature. To explore all features use the MASTER section.