Skip to main content
Version: 2.0-dev
Ignition Trigger Node interface

Ignition trigger node

Ignition Trigger Node

Overview

The Ignition Trigger Node automatically initiates MaestroHub pipelines when tag values change in Inductive Automation's Ignition Gateway. Unlike polling-based approaches, this trigger provides real-time event-driven automation with intelligent debouncing—multiple rapid tag changes within 100ms are aggregated into a single pipeline execution with the latest values for all affected tags.


Core Functionality

What It Does

Ignition Trigger enables real-time, event-driven pipeline execution by:

1. Event-Driven Pipeline Execution
Start pipelines automatically when Ignition tag values change, without manual intervention or polling. Perfect for process monitoring, alarm handling, and real-time data flows.

2. Intelligent Debouncing
Multiple tag changes within a 100ms window are automatically aggregated into a single event, preventing excessive pipeline executions while ensuring you receive the latest values for all changed tags.

3. Automatic Subscription Management
Subscriptions are created and cleaned up automatically—no manual subscription management required. The system handles connection lifecycle and resubscription after reconnections.

4. Aggregated Tag Data
All tag values that changed during the debounce window are provided in a single array, making it easy to process multiple related tag changes together.


Debounce Behavior

How Debouncing Works

The Ignition Trigger uses a 100ms fixed debounce window to aggregate rapid tag changes:

  1. First Change: When the first tag value change occurs, a 100ms timer starts
  2. Subsequent Changes: Any additional tag changes within this window update the buffer with the latest values
  3. Timer Expires: After 100ms, the trigger fires once with an array containing the latest values for all tags that changed
  4. Next Window: The process repeats for the next set of changes

Benefits of Debouncing

ScenarioWithout DebouncingWith Debouncing
10 rapid tag changes10 separate pipeline executions1 pipeline execution with all 10 tag values
Burst updatesPipeline overload, potential queueingSmooth processing with aggregated data
Related tag changesProcess tags individually, lose contextProcess all related changes together
Debounce Window

The 100ms debounce window is fixed and cannot be configured. This value provides an optimal balance between responsiveness and aggregation for most industrial automation scenarios.


Reconnection Handling

MaestroHub automatically handles connection disruptions to ensure reliable tag monitoring.

Automatic Recovery

When an Ignition connection is lost and restored:

  1. Connection Lost: The system detects the disconnection automatically
  2. Connection Restored: Subscriptions are automatically re-established within seconds
  3. Transparent Recovery: Pipelines continue to receive tag changes once the connection is restored—no manual intervention required

What This Means for Your Workflows

ScenarioBehavior
Brief network interruptionAutomatic resubscription after reconnection
Gateway restartSubscriptions automatically restored when gateway comes back online
MaestroHub restartAll triggers for enabled pipelines are restored on startup
Minimizing Data Loss

While the trigger automatically reconnects, tag changes that occur during the disconnection period may be missed. For critical data, consider implementing a complementary polling mechanism or using Ignition's built-in store-and-forward capabilities.


Configuration Options

Ignition Trigger Parameters

Parameters Tab

Parameters Configuration

Ignition Trigger Settings

Settings Tab

Settings Configuration

Basic Information

FieldTypeDescription
Node LabelString (Required)Display name for the node on the pipeline canvas
DescriptionString (Optional)Explains what this trigger monitors and initiates

Parameters

ParameterTypeRequiredDefaultDescription
ConnectionConnection IDYes-The Ignition connection profile to use for subscribing
FunctionFunction IDYes-The Ignition Subscribe function that defines which tags to monitor
EnabledBooleanNotrueWhen disabled, the subscription is not created even if the pipeline is enabled
Function Requirement

The selected function must be an Ignition Subscribe function type. Read, write, or browse functions cannot be used with Ignition Trigger nodes.


Settings

Basic Settings

SettingOptionsDefaultRecommendation
Retry on Failtrue / falsefalseKeep disabled for triggers—retries don't apply to event-driven nodes
Error HandlingStop Pipeline / ContinueStop PipelineUse "Stop Pipeline" to halt on critical failures

Documentation Settings

SettingTypeDefaultPurpose
NotesTextEmptyDocument the trigger's purpose, monitored tags, or operational context
Display Note in PipelineBooleanfalseShow notes on the pipeline canvas for quick reference

Output Data Structure

When Ignition tag changes trigger pipeline execution, the following data is available to downstream nodes via the $input variable.

Output Format

{
"type": "ignition_trigger",
"connectionId": "bf29be94-fc0a-4dc4-8e5c-092f1b74eb4b",
"functionId": "aef374c3-aa2b-454e-aabc-5657faac5950",
"enabled": true,
"node_id": "trigger.ignition-1",
"message": "Ignition trigger provides configuration for event-based triggering",
"values": [
{
"path": "[default]Line1/Temperature",
"value": 78.5,
"quality": "Good",
"timestamp": 1704067200000
},
{
"path": "[default]Line1/Pressure",
"value": 145.2,
"quality": "Good",
"timestamp": 1704067200050
}
]
}

Accessing Tag Data

In downstream nodes, use the $input variable to access the trigger output:

FieldExpressionDescription
Tag Values Array$input.valuesArray of all tag values that changed during the debounce window
Individual Tag$input.values[0]Access a specific tag by array index
Tag Path$input.values[0].pathThe full tag path including provider
Tag Value$input.values[0].valueThe current value of the tag
Tag Quality$input.values[0].qualityQuality indicator (Good, Bad, Uncertain, etc.)
Tag Timestamp$input.values[0].timestampUnix timestamp in milliseconds when the value changed
Connection ID$input.connectionIdThe Ignition connection profile used
Function ID$input.functionIdThe Subscribe function that received the changes
Node ID$input.node_idThe trigger node identifier
Trigger Type$input.typeAlways ignition_trigger
Processing Multiple Tags

Use a JavaScript node or loop to iterate through $input.values and process each tag change:

$input.values.forEach(tag => {
if (tag.quality === 'Good') {
// Process good quality tag values
}
});

Validation Rules

The Ignition Trigger Node enforces these validation requirements:

Parameter Validation

Connection ID

  • Must be provided and non-empty
  • Must reference a valid Ignition connection profile
  • Error: "Ignition connection is required"

Function ID

  • Must be provided and non-empty
  • Must reference a valid Ignition Subscribe function
  • Function must belong to the specified connection
  • Error: "Subscribe function is required"

Enabled Flag

  • Must be a boolean if provided
  • Error: "Enabled must be a boolean value"

Settings Validation

On Error

  • Must be one of: stopPipeline, continueExecution, retryNode
  • Error: "onError must be a valid error handling option"

Usage Examples

Production Line Monitoring

Scenario: Monitor critical process parameters on a production line and trigger alerts when values exceed thresholds.

Configuration:

  • Label: Production Line Monitor
  • Connection: Plant Floor Ignition Gateway
  • Function: Subscribe to [default]Line1/* (all tags on Line 1)
  • Enabled: true

Downstream Processing:

  • Iterate through $input.values array
  • Check each tag value against configured thresholds
  • Generate alerts for out-of-range values
  • Log all changes to time-series database
  • Update real-time dashboard

Equipment State Change Handler

Scenario: React to equipment state changes and coordinate downstream systems.

Configuration:

  • Label: Equipment State Handler
  • Connection: Manufacturing Ignition
  • Function: Subscribe to [default]Equipment/*/State (state tags for all equipment)
  • Enabled: true

Downstream Processing:

  • Extract equipment ID from tag path
  • Determine state transition (Running → Stopped, etc.)
  • Update maintenance schedule if needed
  • Notify operators of critical state changes
  • Trigger dependent equipment adjustments

Alarm Acknowledgment Workflow

Scenario: Automatically process alarm acknowledgments and update external systems.

Configuration:

  • Label: Alarm Ack Processor
  • Connection: SCADA Ignition Gateway
  • Function: Subscribe to [default]Alarms/*/Acknowledged (acknowledgment status for all alarms)
  • Enabled: true

Downstream Processing:

  • Filter for newly acknowledged alarms (value changed to true)
  • Extract alarm details from tag path
  • Log acknowledgment to audit database
  • Send notification to maintenance system
  • Update alarm dashboard

Multi-Tag Batch Processing

Scenario: Process related tag changes together for batch operations.

Configuration:

  • Label: Batch Recipe Monitor
  • Connection: Recipe Management Ignition
  • Function: Subscribe to [default]Recipe/Active/* (all active recipe parameters)
  • Enabled: true

Downstream Processing:

  • Receive all recipe parameter changes in single event
  • Validate complete recipe configuration
  • Update PLC setpoints as a batch
  • Log recipe change event
  • Confirm successful application

Best Practices

Connection Health Monitoring

  • Configure your Ignition connection with appropriate Keep Alive intervals
  • Enable Auto Reconnect on the connection profile for automatic recovery
  • Monitor connection status through MaestroHub's connection health dashboard
  • Test reconnection behavior during maintenance windows

Designing Subscriptions

PracticeRationale
Group related tagsLeverage debouncing to process related changes together
Use specific tag pathsReduces unnecessary processing and improves performance
Consider tag update ratesHigh-frequency tags may benefit from additional filtering
Monitor subscription countEach subscription consumes gateway resources

Working with Debounced Data

Processing the Values Array:

  • Always check $input.values.length before processing
  • Validate tag quality before using values
  • Handle missing or null values gracefully
  • Consider tag timestamps when ordering is important

Performance Considerations:

  • The debounce window aggregates changes, reducing pipeline executions
  • Process all tags in the array efficiently to maintain throughput
  • Avoid heavy processing in tight loops over large tag arrays

Error Handling Strategies

For Critical Monitoring:

  • Set On Error to stopPipeline
  • Implement alerting for stopped pipelines
  • Monitor pipeline execution failures
  • Consider backup monitoring mechanisms

For Best-Effort Processing:

  • Set On Error to continueExecution
  • Log failed events for later analysis
  • Ensure downstream nodes handle partial failures gracefully
  • Implement retry logic for critical operations

Tag Quality Handling

Always check tag quality before processing values:

$input.values.forEach(tag => {
switch(tag.quality) {
case 'Good':
// Process reliable data
break;
case 'Bad':
// Log error, skip processing
break;
case 'Uncertain':
// Decide based on use case
break;
}
});

Enable vs. Disable

  • Use the trigger's Enabled parameter to temporarily pause monitoring without changing pipeline state
  • Disable triggers during maintenance windows to prevent unnecessary processing
  • Document the reason for disabled triggers in the node's Notes field
  • Re-enable triggers after testing configuration changes

Performance Optimization

ScenarioRecommendation
High-frequency tagsUse specific subscriptions; consider additional filtering in Ignition
Large tag countsMonitor pipeline execution queue; optimize downstream processing
Multiple triggers on same tagsMaestroHub optimizes with shared subscriptions—no action needed
Burst updatesDebouncing handles this automatically; ensure downstream can process arrays efficiently

Troubleshooting

Common Issues

No Pipeline Executions

  • Verify the trigger is enabled
  • Check that the pipeline is enabled
  • Confirm the Ignition connection is active
  • Verify tags are actually changing values
  • Check subscription function configuration

Missing Tag Changes

  • Connection was down during changes (expected behavior)
  • Tag quality may be Bad (filtered by subscription)
  • Subscription function may not include the tag path
  • Check Ignition Gateway subscription status

Too Many Pipeline Executions

  • Debouncing should prevent this; verify 100ms window is working
  • Check if multiple triggers are configured for same tags
  • Review tag update rates in Ignition

Empty Values Array

  • Subscription may have no matching tags
  • All tag changes may have Bad quality
  • Connection issue during debounce window