This guide walks you through creating operator interfaces with the Displays module. You'll learn to design displays, configure layouts, and deploy to multiple platforms from a single design.
Prerequisites:
- Tags configured for data display
- Understanding of UI requirements
- Basic knowledge of display types (HMI vs Dashboard)
Guide Structure: This overview links to specific guides for different aspects:
- Creating Displays → Basic display creation and configuration
- Drawing Canvas Displays → Process graphics and P&IDs
- Building Dashboards → Responsive data visualization
- Working with Symbols → Using and customizing the symbol library
- Configuring Layouts → Multi-frame application structure
Quick Start: Your First Display
1. Create a Display
- Navigate to Displays → Draw
- Click New Document button
- Configure:
- Name: MainDisplay
- Engine: Portable (works on all platforms)
- Template: Canvas (for process graphics) or Dashboard (for KPIs)
- Click OK
2. Add Basic Elements
Quick Method - Drag Tags:
- From right panel, drag tags directly to canvas
- System auto-creates appropriate visualization
Manual Method - Add Components:
- From left panel, select component (Button, Gauge, etc.)
- Drag to display
- Double-click to configure
3. Test Your Display
- Click Preview button in toolbar
- Or keep solution running and save display
- View in Rich Client or refresh Web Client
Display Types and When to Use Them
Type | Purpose | Best For | Resize Behavior |
---|---|---|---|
Canvas | Process graphics | P&IDs, equipment layouts | Maintains relationships |
Dashboard | Data visualization | KPIs, reports, analytics | Responsive grid |
Page | Main content | Primary displays | Replaces current |
Popup | Overlay content | Trends, details | Non-modal overlay |
Dialog | User interaction | Confirmations, inputs | Modal, blocks UI |
Platform Deployment
Engine Options
Setting | Deploys To | Use When |
---|---|---|
Portable | WPF + HTML5 | Default choice, maximum compatibility |
WPF Only | Windows clients | Using Windows-specific features |
HTML5 Only | Web browsers | Web-only deployment |
RESS Technology
For mobile devices, RESS (Responsive + Server-Side) automatically:
- Detects device type (phone/tablet/desktop)
- Delivers optimized content
- Maintains responsive behavior within each class
Basic Configuration Workflow
Step 1: Plan Your Application
- Define Layout Structure
- Header: Navigation/title
- Menu: Main navigation
- Content: Primary displays
- Footer: Status/information
- Identify Display Types
- Process overviews (Canvas)
- KPI dashboards (Dashboard)
- Detail popups (Popup)
- User inputs (Dialog)
Step 2: Create Layout
- Go to Displays → Layouts
- Click Add button
- Name: "MainLayout"
- Map displays to regions:
- Header → HeaderDisplay
- Menu → NavigationMenu
- Content → (changes dynamically)
Step 3: Configure Startup
- Navigate to Displays → Client Settings
- Set Initial Layout: MainLayout
- Configure display behavior:
- Theme selection
- Security indicators
- Multi-monitor (if needed)
Essential Display Elements
Common Components
Component | Use For | Key Properties |
---|---|---|
TextBox | Values, labels | Text, Font, Alignment |
Button | Commands | Action, MouseDown |
ComboBox | Selection | Items, SelectedValue |
DataGrid | Tables | DataSource, Columns |
TrendChart | Time series | Tags, TimeRange |
AlarmWindow | Alarm display | Filter, Columns |
Adding Dynamics
Quick dynamic properties (double-click element):
- Visibility: Show/hide based on tag
- Color: Change based on value
- Position: Move with tag value
- Size: Scale with data
- Rotation: Rotate based on angle
Display Navigation
Opening Displays
From Script:
csharp
// Replace content area
@Display.ProcessOverview.Open();
// Open as popup
@Display.TrendPopup.OpenPopup();
// Open as dialog
@Display.ConfirmDialog.OpenDialog();
From Button:
- Select button
- Set Action property
- Choose "OpenDisplay"
- Select target display
Changing Layouts
csharp
// Switch entire layout
@Client.OpenLayout("OperatorLayout");
// Just change content
@Display.NewDisplay.Open();
Display CodeBehind
Basic Structure
csharp
public void DisplayOpening()
{
// Initialize before display opens
LoadUserPreferences();
}
public void DisplayIsOpen()
{
// Execute after display is visible
StartDataRefresh();
}
public void DisplayClosing()
{
// Cleanup when closing
SaveUserSettings();
}
Handling User Input
csharp
public void Button1_Click(object sender, EventArgs e)
{
@Tag.PumpStart = 1;
@Display.PumpDetails.OpenPopup();
}
Common Tasks
Making Displays Responsive
- Use Dashboard template
- Set OnResize: Responsive
- Configure grid columns/rows
- Test on different screen sizes
Supporting Multiple Languages
- Create dictionaries in Displays → Localization
- Use syntax:
@(LocalizationKey)
- Switch at runtime:
@Client.Localization = "Spanish"
Optimizing for Mobile
- Create mobile-specific displays
- In Layout, configure Mobile column
- Use larger buttons and fonts
- Minimize text input
Performance Tips
? Limit elements per display - Keep under 500 elements ? Use symbols - Reuse instead of recreating ? Optimize images - Compress and resize appropriately ? Minimize animations - Use only necessary dynamics ? Test on target platform - Verify performance early
Troubleshooting
Display Won't Open
- Check BuildStatus for errors
- Verify display name spelling
- Confirm RunSecurity permissions
- Check layout configuration
Poor Performance
- Reduce element count
- Simplify animations
- Check CodeBehind for loops
- Use async methods
Platform Differences
- Verify Engine setting
- Test on target platform
- Check component compatibility
- Review feature limitations
Next Steps
Detailed Guides
- Creating Canvas Displays → Process graphics tutorial
- Building Dashboards → Responsive layouts guide
- Symbol Library → Using and customizing symbols
- Advanced Dynamics → Complex animations
Related Topics
- [Client Settings →] Runtime configuration
- [Themes →] Visual customization
- [Localization →] Multi-language support
This structure provides a solid overview while acknowledging that detailed coverage requires separate guides for each major area. Would you like me to create one of the child guides (like "Creating Canvas Displays" or "Building Dashboards") to show how they would complement this main guide?
Claude can make mistakes.
Please double-check responses.
Research
Opus 4.1