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.


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

📷 [Screenshot: 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

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

📷 [Screenshot: OPC UA tag browser showing device hierarchy]


Step 4: Configure Tag Properties

PropertyDescriptionExample
Tag NameUnique identifier (letters, numbers, underscore, dot; must start with letter/underscore)Line1_Temperature_01
DescriptionHuman-readable labelOven temperature sensor
GroupParent groupTemperature_Sensors
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

📷 [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

  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:
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 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