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
Method 1: Drag Tags for Automatic Graphics
- 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
Alignment Tools
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
Performance Optimization
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 shape)
??? FillColor: Status (0=Gray, 1=Green, 2=Yellow, 3=Red)
??? Visibility: Tag.Visible
??? Action: OpenPopup("EquipmentDetails")
Analog Value Display
TextBox
??? LinkedValue: Tag.ProcessValue
??? Format: N2 (2 decimals)
??? Units: "°C" or "PSI"
Trend Popup Button
Button "Show Trend"
??? Action: OpenDisplay
??? Display: "TrendPopup"
??? Parameters: Pass 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.