Learn how to troubleshoot common issues with machine monitoring.
Machine attribute not updating
Symptoms: Machine attribute shows "No Data" or stale timestamp
Root causes:
-
OPC UA or MQTT connection lost
- Navigate to Shop Floor > Machines > Machine Data Sources to view the Connector Host status
- Click the Test button on the connector to test the connection
- Verify network connectivity, including firewall rules and port forwarding
-
Attribute not mapped correctly
- Navigate to Machine > Configuration tab
- Verify the attribute maps to the correct OPC UA node or MQTT topic
- Click Get Latest Message (MQTT) or browse nodes (OPC UA) to verify the data source publishes
-
Rate limit exceeded
- Verify the total Hz across your instance does not exceed the 500 Hz limit
- Reduce polling frequency or remove unnecessary attributes
Solution checklist
- Connector Host shows "Connected" status
- Machine attribute maps to an active data source
- Data source publishes data (verify in Kepware or broker UI)
- Machine is not in "Offline" state (verify in Machine Status widget)
Machine trigger not firing
Symptoms: Expected state change or activity field update does not occur
Root causes:
-
Trigger condition never met
- Example: Trigger specifies "When Machine Current > 10" but the attribute maximum is 8
- Navigate to Machine > Activity tab to verify attribute values
-
Trigger disabled
- Navigate to Machine Type > Triggers and verify the toggle is ON
-
Multiple conflicting triggers
- Example: Trigger A sets the state to Running, and Trigger B immediately sets the state to Stopped
- Review all triggers on the machine type for conflicts
-
Trigger action references wrong machine
- If using "at this station" in app triggers, verify the machine is assigned to the station
Solution checklist
- Trigger is enabled (toggle ON)
- Trigger condition is achievable (verify the attribute range)
- No conflicting triggers exist
- Station assignment is correct (if using "at this station")
OEE calculation incorrect
Symptoms: OEE percentage does not match expected values
Root causes:
-
Incorrect state mapping
- The "Running" state must be configured for the Availability calculation
- Navigate to Machine Type > States and verify "Running" is marked as "uptime"
-
Part count not incrementing
- Verify the machine trigger writes to the "Part Count" activity field
- View the Machine Activity table for part count values
-
Ideal Run Rate not set
- The Performance calculation requires an ideal run rate
- Set the ideal run rate using the "Ideal Run Rate" machine activity field or an app input
-
Clock skew
- Machine timestamps are out of sync with the Tulip server
- Verify timezone settings on the Connector Host and Tulip instance
Solution checklist
- "Running" state is configured as uptime in Machine Type
- Part Count activity field populates correctly
- Ideal Run Rate is set (either static or dynamic)
- Timezone alignment is verified
App not displaying machine data
Symptoms: Machine Status widget shows "No Machine Selected" or appears blank
Root causes:
-
Machine variable not populated
- If using a variable datasource, verify the variable is set at runtime
- Add a text widget to display the variable value for debugging
-
Station assignment missing
- If using "at this station" logic, verify:
- A station is selected in Player
- The machine is assigned to that station
- If using "at this station" logic, verify:
-
Machine permissions
- The user role may not have permission to view machine data
- Navigate to Settings > Roles and verify the role has "Machine Monitoring" permissions
Solution checklist
- Machine variable is populated (verify the variable value)
- Station is selected in Player (if using "at this station")
- Machine is assigned to the station (navigate to Shop Floor > Machines > Configuration)
- User has Machine Monitoring permissions (navigate to Settings > Roles)
Automation tasks exceeding budget or rate limit
Symptoms: Unexpected automation costs due to high task execution volume
Root causes:
-
Trigger fires too frequently
- Example: An automation on "Every time machine attribute changes"
- If the attribute updates at 1 Hz, that results in 3600 tasks/hour per machine
-
Missing conditional filters
- The automation runs even when not needed
- Add a condition: "Only when attribute value > threshold"
-
Redundant automations
- Multiple automations perform similar tasks
Solutions
- Batch operations
Before:
Automation: When machine attribute changes → Write to table
(Executes 3600 times/hour)
After:
Machine Trigger: When attribute changes → Update activity field
Automation: Every 1 hour → Copy activity field to table
(Executes 1 time/hour)
- Add conditional filters
Before:
Automation: When machine state changes → Send notification
(Executes on every state change, even Running → Running)
After:
Automation: When machine state changes AND new state = "Stopped" → Send notification
(Executes only on Stopped state)
- Use machine triggers for eligible tasks
- If the task only updates machine state or activity fields, use a machine trigger (free)
- Reserve automations for table writes, connector calls, and notifications
Further reading
- Machine Monitoring
- How to Add and Configure Machines
- Machine Monitoring Architecture
- Build Your First MQTT Data Source
Did you find what you were looking for?
You can also head to community.tulip.co to post your question or see if others have solved a similar topic!

