Creating External Tags
This guide shows you how to create external tags that communicate with PLCs, sensors, and other industrial devices.
Step 1: Create a Communication Channel
- Navigate to External Channels tab
- Click Add → External Device
- Select the protocol (e.g., Modbus TCP, Siemens S7, OPC UA)
- Enter channel name
- Configure connection parameters
Example: Modbus TCP Configuration
📷 [Screenshot: Modbus TCP channel configuration dialog]
| Parameter | Description | Example |
|---|---|---|
| Device IP | IP address of the PLC/device | 192.168.1.100 |
| Device ID | Modbus slave ID | 1 |
| Port | TCP port number | 502 (default) |
| Timeout | Communication timeout | 3000 ms |
| Base Address | Address offset (0 or 1) | 1 (default) |
Advanced Settings:
| Parameter | Description | Default |
|---|---|---|
| Byte Order | Endianness for 32/64-bit values | 2143 (CDAB) |
| Independent Link | Dedicated TCP connection | Disabled |
| PDU Diagnostics | Protocol validation | Enabled |
| PDU Length | Max bytes per request | 220 |
| PDU Immediate Submit | Skip batching for faster response | Disabled |
| Static Simulation | Test mode without real device | Disabled |
💡 Tip: Enable Static Simulation during development to test views without connecting to physical devices.
Step 2: Create Groups
Organize tags into logical groups:
- Select the channel
- Click Add Group
- Enter a group name (e.g.,
Temperature_Sensors,Motor_Controls) - Click Confirm
Step 3: Add External Tags
Method 1: Manual Creation
- Select a group
- Click Add in the toolbar
- Configure tag properties in the list
Method 2: Load from Device
Some protocols (OPC UA, S7Comm Plus, EtherNet/IP) support browsing device tags:
- Select a group
- Click Load Tags
- Browse the device tag tree
- Select tags to import
- Click Add
📷 [Screenshot: OPC UA tag browser showing device hierarchy]
Step 4: Configure Tag Properties
| Property | Description | Example |
|---|---|---|
| Tag Name | Unique identifier (letters, numbers, underscore, dot; must start with letter/underscore) | Line1_Temperature_01 |
| Description | Human-readable label | Oven temperature sensor |
| Group | Parent group | Temperature_Sensors |
| Data Type | Value type | Float32, Int16, Bool, String |
| Address | Device register address | 400001 (Modbus holding register) |
| Access Mode | Read/write permissions | Read/Write, Read Only, Write Only |
| Poll Interval | Update frequency | 100ms, 500ms, 1s |
| Poll Mode | When to collect data | Service Running, Page Usage |
| Scale Factor | Multiply raw value | 10 (display 100 for raw value 10) |
| Decimal Places | Precision | 2 (show 12.34) |
| Rounding Rule | How to round | Round, Truncate, Ceiling |
| Historian | Enable historical logging | Enabled / Disabled |
Modbus TCP Address Format
| Register Type | Address Range | Bit Address | Data Types | Access |
|---|---|---|---|---|
| Coil Status | 000001-065536 | N/A | Bool | Read/Write |
| Discrete Input | 100001-165536 | N/A | Bool | Read Only |
| Input Register | 300001-365536 | 0-15 | Bool, Int, Float, String | Read Only |
| Holding Register | 400001-465536 | 0-15 | Bool, Int, Float, String | Read/Write |
⚠️ Caution: Address formats vary by protocol. Refer to the "Device Communication Manual" for protocol-specific details.
Step 5: Optimize Tag Configuration
Click Save and Optimize to validate your tag configuration:
Validation Checks:
- Address Overlap: Detects tags with overlapping memory addresses (writing one tag may change another)
- PDU Length: Ensures tag size doesn't exceed the PDU limit
📷 [Screenshot: Optimization results showing warnings with hover tooltips]
Hover over warning icons to see details. Fix issues or click Ignore to dismiss warnings.
Step 6: Test Communication
- Click Start Debug in the toolbar
- Monitor tag values in real-time
- Write test values to writable tags
- Check quality status codes
Quality Status Codes:
| Code | Description | Action |
|---|---|---|
0 | Success | Normal operation |
1 | Tag name not found | Verify tag exists |
2 | Data type mismatch | Check data type compatibility |
3 | Device disconnected | Troubleshoot network/device |
4 | Other error | Check logs for details |
Debug Columns:
- Current Value: Live tag value (editable for write operations)
- Quality: Status code (see table above)
- Last Change: Timestamp of last value change
- Poll Status:
true(actively polling) orfalse(not polling)
💡 Tip: Use Poll Mode = Page Usage for HMI applications to reduce CPU load. Tags only poll when displayed on an active view.
Best Practices
Naming Conventions
Use consistent, descriptive names:
<Line>_<Equipment>_<Parameter>_<Index>
Examples:
Line1_Oven_Temperature_01
Line2_Motor_Speed_A
Warehouse_Door_Status_North
Organize with Groups
Group tags by:
- Equipment:
Oven_Tags,Conveyor_Tags - Function:
Temperature_Sensors,Motor_Controls - Location:
Line1_Tags,Warehouse_Tags
Optimize Poll Intervals
| Update Frequency | Poll Interval | Use Case |
|---|---|---|
| Critical control | 100ms | Safety interlocks, fast loops |
| Real-time monitoring | 500ms - 1s | HMI displays, alarms |
| Slow processes | 5s - 1m | Temperature, batch status |
| Status checks | 1m+ | Equipment health, diagnostics |
Next Steps
- Creating Internal Tags: Set up Memory, I/O Mapping, Logic, and System tags
- Configuring Historian: Enable historical data logging for external tags
- Tags Reference: Data types, quality codes, and troubleshooting