Skip to main content
Version: Next

Creating External Tags

This guide shows you how to create external tags that communicate with PLCs, sensors, and other industrial devices.

When to Use This Page

Use this page when:

  • you already have a real controller or device
  • you know the protocol and at least a few test addresses
  • you want to keep an external-channel structure even before hardware arrives

If you have no hardware and only want the fastest learning path, start with Creating Internal Tags first.

Before You Start

Make sure:

  • a project is already open in Editor
  • you know the protocol, IP address, and basic address format
  • you have one small test set of tags instead of importing everything at once

Expected Result

After this page, you should have:

  • one external communication channel
  • one group under that channel
  • three verified starter tags
  • a successful check in Start Debug

Note: Depending on the build, the main creation action may appear as Add or New. Use the action that opens the channel or tag creation dialog in your project.

Day-1 Quick Path

For the first success milestone, keep the path short:

  1. create one channel
  2. create one group
  3. manually add three starter tags
  4. save and optimize
  5. verify values in Start Debug

If your protocol supports browsing or bulk import, you can still use it later. It is usually better to validate a few manual tags first.


Step 1: Create a Communication Channel

  1. Navigate to External Channels tab
  2. Click AddExternal Device
  3. Select the protocol (e.g., Modbus TCP, Siemens S7, OPC UA)
  4. Enter channel name
  5. Configure connection parameters

Example: Modbus TCP Configuration

📷 [UG-TAGS-EXT-01] Modbus TCP channel configuration dialog

ParameterDescriptionExample
Device IPIP address of the PLC/device192.168.1.100
Device IDModbus slave ID1
PortTCP port number502 (default)
TimeoutCommunication timeout3000 ms
Base AddressAddress offset (0 or 1)1 (default)

Advanced Settings:

ParameterDescriptionDefault
Byte OrderEndianness for 32/64-bit values2143 (CDAB)
Independent LinkDedicated TCP connectionDisabled
PDU DiagnosticsProtocol validationEnabled
PDU LengthMax bytes per request220
PDU Immediate SubmitSkip batching for faster responseDisabled
Static SimulationTest mode without real deviceDisabled

💡 Tip: Enable Static Simulation during development to test views without connecting to physical devices.


Step 2: Create Groups

Organize tags into logical groups:

  1. Select the channel
  2. Click Add Group
  3. Enter a group name (e.g., Temperature_Sensors, Motor_Controls)
  4. Click Confirm

Step 3: Add External Tags

Method 1: Manual Creation

  1. Select a group
  2. Click Add in the toolbar
  3. Configure tag properties in the list

Method 2: Load from Device (Advanced)

Some protocols (OPC UA, S7Comm Plus, EtherNet/IP) support browsing device tags:

  1. Select a group
  2. Click Load Tags
  3. Browse the device tag tree
  4. Select tags to import
  5. Click Add

📷 [UG-TAGS-EXT-02] OPC UA tag browser showing device hierarchy

For the first external-tag test, keep the scope small:

Tag NameTypeExample AddressWhy start with it
TemperatureFloat32400001Easy analog value to display on a screen
PressureFloat32400003Second analog value for comparison and trends
MotorRunningBool300001Simple status bit for indicators and alarms

If you are using Static Simulation, use the same tag set so the rest of the guides still match your project.


Step 4: Configure Tag Properties

PropertyDescriptionExample
Tag NameUnique identifier (letters, numbers, underscore, dot; must start with letter/underscore)Temperature
DescriptionHuman-readable labelMain process temperature
GroupParent groupProcess_Values
Data TypeValue typeFloat32, Int16, Bool, String
AddressDevice register address400001 (Modbus holding register)
Access ModeRead/write permissionsRead/Write, Read Only, Write Only
Poll IntervalUpdate frequency100ms, 500ms, 1s
Poll ModeWhen to collect dataService Running, Page Usage
Scale FactorMultiply raw value10 (display 100 for raw value 10)
Decimal PlacesPrecision2 (show 12.34)
Rounding RuleHow to roundRound, Truncate, Ceiling
HistorianEnable historical loggingEnabled / Disabled

Modbus TCP Address Format

Register TypeAddress RangeBit AddressData TypesAccess
Coil Status000001-065536N/ABoolRead/Write
Discrete Input100001-165536N/ABoolRead Only
Input Register300001-3655360-15Bool, Int, Float, StringRead Only
Holding Register400001-4655360-15Bool, Int, Float, StringRead/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

📷 [UG-TAGS-EXT-03] 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

  1. Click Start Debug in the toolbar
  2. Monitor tag values in real-time
  3. Write test values to writable tags
  4. Check quality status codes

Quality Status Codes:

CodeDescriptionAction
0SuccessNormal operation
1Tag name not foundVerify tag exists
2Data type mismatchCheck data type compatibility
3Device disconnectedTroubleshoot network/device
4Other errorCheck 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) or false (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:
Station_A_Temperature_01
Station_A_Pressure_01
Station_A_MotorRunning

Organize with Groups

Group tags by:

  • Equipment: Pump_Tags, Motor_Tags
  • Function: Temperature_Sensors, Motor_Controls
  • Location: Station_A_Tags, UtilityRoom_Tags

Optimize Poll Intervals

Update FrequencyPoll IntervalUse Case
Critical control100msSafety interlocks, fast loops
Real-time monitoring500ms - 1sHMI displays, alarms
Slow processes5s - 1mTemperature, batch status
Status checks1m+Equipment health, diagnostics

Next Steps