Creating Internal Tags
This guide covers creating and configuring Memory Tags, I/O Mapping Tags, Logic Tags, and System Tags.
Memory Tags
Purpose: General-purpose storage for calculations, user inputs, and temporary data.
Create a Memory Tag Channel
- Navigate to Internal Channels tab
- Click Add → Internal Variable
- Enter channel name
- Select Memory Tags type
- Click Confirm
Configure Memory Tag Properties
| Property | Description | Options |
|---|---|---|
| Tag Name | Unique identifier | ProductionCount, UserInput_Speed |
| Description | Human-readable label | Daily production counter |
| Data Type | Value type | Bool, Int8-64, Float32/64, Date, Time, DateTime, String |
| Initial Value | Value on system startup | Set Value, Saved Value, None |
| Historian | Enable historical logging | Enabled / Disabled |
Initial Value Modes
| Mode | Behavior |
|---|---|
| Set Value | Load a predefined value on startup |
| Saved Value | Restore the last value before shutdown |
| None | Reset to default (0, false, or empty) |
Data Type Ranges
| Data Type | Min Value | Max Value |
|---|---|---|
| Int8 | -128 | 127 |
| UInt8 | 0 | 255 |
| Int16 | -32,768 | 32,767 |
| UInt16 | 0 | 65,535 |
| Int32 | -2,147,483,648 | 2,147,483,647 |
| UInt32 | 0 | 4,294,967,295 |
| Int64 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
| UInt64 | 0 | 18,446,744,073,709,551,615 |
| Float32 | -3.402823E+38 | 3.402823E+38 |
| Float64 | -1.7976931348623157E+308 | 1.7976931348623157E+308 |
I/O Mapping Tags
Purpose: Decouple views and scripts from physical device addresses. Change the underlying device without reconfiguring views.
Use Cases
- Pre-configuration: Design views before PLC addresses are finalized
- Address Changes: Update one mapping instead of hundreds of view bindings
- Device Swaps: Replace a PLC without touching view configurations
Create an I/O Mapping Channel
- Navigate to Internal Channels tab
- Click Add → I/O Mapping
- Enter channel name
- Click Confirm
Configure I/O Mapping Tag Properties
| Property | Description |
|---|---|
| Tag Name | Unique identifier (e.g., Oven_Temperature) |
| Description | Human-readable label |
| Data Type | Matches the linked external tag (auto-filled) |
| Link to I/O | Select the external tag to map |
| Access Mode | Read/Write, Read Only, Write Only |
| Historian | Enable historical logging |
Workflow Example
If the PLC address changes from 400001 to 400050, you only update the mapping - the view remains unchanged.
Logic Tags
Purpose: Perform calculations and transformations on tag values.
Create a Logic Tag Channel
- Navigate to Internal Channels tab
- Click Add → Logic Variable
- Enter channel name
- Click Confirm
Configure Logic Tag Properties
| Property | Description |
|---|---|
| Tag Name | Unique identifier |
| Description | Human-readable label |
| Data Type | Result type of the expression |
| Logic Expression | Formula using tags and operators |
| Historian | Enable historical logging |
Expression Examples
| Use Case | Expression |
|---|---|
| Temperature conversion | Temperature_C * 1.8 + 32 |
| Average of sensors | (Sensor1 + Sensor2 + Sensor3) / 3 |
| Conditional logic | Temperature > 80 ? 1 : 0 |
| String concatenation | "Batch_" + BatchNumber |
💡 Tip: Click the Expression Builder button to access a visual formula editor with tag picker and function library.
System Tags
Purpose: Predefined tags providing system information.
Available System Tags
| Tag Name | Type | Description | Scope |
|---|---|---|---|
System_Date | String | Current date (YYYY-MM-DD) | Server |
System_Time | String | Current time (HH:MM:SS) | Server |
System_DateTime | String | Current date and time | Server |
System_Shift | String | Current shift name | Server |
System_ShiftDate | String | Current shift date | Server |
Client_LoginUser | String | Logged-in username | Client |
Dev_<ChannelName>_State | Bool | Device communication status | Server |
⚠️ Caution: System tags are read-only and cannot be modified. They are automatically created and updated by the system.
Scope Explanation:
- Server: Value is the same for all clients (e.g., system time)
- Client: Value is unique per client session (e.g., logged-in user)
Batch Operations
Batch Create Tags
Quickly create multiple similar tags:
- Select an existing tag
- Click Batch Create
- Enter the number of tags to create
- Click Confirm
The system creates copies with auto-incrementing names (e.g., Temperature_01, Temperature_02, Temperature_03).
Batch Edit Tags
Modify properties of multiple tags at once:
- Select multiple tags (Ctrl+Click or Shift+Click)
- Click Batch Edit
- Choose properties to modify:
- Tag name pattern (find/replace)
- Address offset (increment addresses)
- Poll interval
- Access mode
- Historian settings
- Click Apply
📷 [Screenshot: Batch edit dialog with find/replace and offset options]
Import/Export Tags
Export Tags:
- Select a channel or group
- Click Export
- Choose file format (CSV or Excel)
- Save the file
Import Tags:
- Select a channel or group
- Click Import
- Choose the file
- Select import mode:
- Update: Modify existing tags, add new ones
- Replace: Delete all existing tags, import new ones
- Click Confirm
⚠️ Caution: Replace mode deletes all tags in the selected channel/group. Use Update mode to preserve existing tags.
Best Practices
Use I/O Mapping for Flexibility
Always use I/O Mapping Tags in views and scripts. This allows you to:
- Change PLC addresses without touching views
- Swap devices without reconfiguring the application
- Test with simulated tags before connecting real devices
Mark Poll Mode on Views
Enable Poll Mode Markers in the view editor to visually identify which components use "Page Usage" tags. This helps verify that critical tags are set to "Service Running".
📷 [Screenshot: View editor with poll mode markers showing colored borders on components]
Next Steps
- Configuring Historian: Enable historical data logging for internal tags
- Tags Reference: Data types, quality codes, and troubleshooting
- Creating Views: Display tags on HMI screens