State Change#
Overview#
The EquipmentChangeState event is triggered when CAMX equipment state changes. The integration automatically processes this event through the StateChange automation workflow, which validates the state transition and updates the resource state in MES via the SEMI-E10 state model.
Message Fields#
| Field | Type | Description |
|---|---|---|
| eventId | String | Event identifier for traceability |
| currentState | String | New equipment state (IPC-2541 format) |
| previousState | String | Previous equipment state (IPC-2541 format) |
| Extensions | Object | Optional custom data from equipment |
Workflow Processing#
Equipment Event (EquipmentChangeState)
↓
equipmentEvent task → Parse currentState, previousState, eventId
↓
doStateChange subworkflow
↓
IoTStateModelContext → Map equipment state to SEMI-E10
↓
AdjustObjectState → Update resource state in MES
↓
Result logging
Detailed Steps#
- Message Reception: Driver receives
EquipmentChangeStatemessage from broker - State Extraction: equipmentEvent task extracts
currentState,previousState,eventId, andExtensions - Validation: codeExecution task validates:
useCAMXToChangeStatefeature flag is enabledcurrentStateis not null or emptypreviousStateis not null or empty- Resource Resolution: retrieve task gets ResourceName for the resource context
- Subworkflow Invocation (if validation passes): Triggers
doStateChangesubworkflow with: - currentState (IPC-2541 format, e.g., "READY-PROCESSING-ACTIVE")
- previousState (IPC-2541 format)
- State Mapping: Maps equipment state to SEMI-E10 state using
IoTStateModelContextconfiguration - State Update: Calls
AdjustObjectStateAPI with mapped SEMI-E10 state - Error Handling: Connection errors evaluated for retry eligibility; non-retriable errors logged
- Event Logging: Logs state transition with eventId for traceability
State Mapping#
Equipment states are mapped to SEMI-E10 states using IoTStateModelContext:
| Equipment State (IPC-2541) | Description |
|---|---|
| READY-PROCESSING-ACTIVE | Equipment actively processing material |
| READY-IDLE-STARVED | Equipment ready but waiting for input material |
| READY-IDLE-BLOCKED | Equipment blocked and unable to process |
IoTStateModelContext Example IPC-2541 to SEMI E10
{
"<ST>IoTStateModelContext": {
"1": {
"Driver": "CAMX",
"StateModel": "SEMI E10",
"ResourceType": "",
"Resource": "",
"StateModelState": "Productive",
"Values": "READY-PROCESSING-ACTIVE"
},
"2": {
"Driver": "CAMX",
"StateModel": "SEMI E10",
"ResourceType": "",
"Resource": "",
"StateModelState": "Standby",
"Values": "READY-IDLE-STARVED"
},
"3": {
"Driver": "CAMX",
"StateModel": "SEMI E10",
"ResourceType": "",
"Resource": "",
"StateModelState": "Scheduled Down",
"Values": "READY-IDLE-BLOCKED"
}
}
}
Resource Instantiation
An instantiated MES resource is required to properly assign the properties to it
Configuration#
For state change processing, configure the following:
1. Feature Flag in IoTMetadataDefinition#
| Configuration Key | Type | Description |
|---|---|---|
| useCAMXToChangeState | String | Enable state change processing; set to "EquipmentChangeState" to enable |
Validation Flow
State changes are only processed if useCAMXToChangeState is configured in IoTMetadataDefinition. Without this configuration, state change events are logged but not processed by the StateChange workflow.
Error Handling#
Pre-Validation Errors (No API Call)#
These errors prevent AdjustObjectState API invocation:
| Error | Cause | Behavior |
|---|---|---|
| Feature Disabled | useCAMXToChangeState not configured | Log validation error, complete without API call |
API Errors (After AdjustObjectState Call)#
| Error | Cause |
|---|---|
| Connection Refused | MES system unavailable |
| Invalid State | State not valid for resource |
| Resource Locked | Resource currently locked |
Troubleshooting#
State Changes Not Processed#
Equipment sends EquipmentChangeState but resource state doesn't update in MES
- Verify
useCAMXToChangeStateconfiguration exists inIoTMetadataDefinition - Restart Automation Controller after adding configuration
- Check controller logs for validation errors
- Verify state mapping exists in
IoTStateModelContextfor the equipment state
Validation Errors#
Controller logs show validation error messages
- Ensure both currentState and previousState are provided in message
- Verify states are not null or empty strings
AdjustObjectState Failures#
State update called but fails in MES
- Verify resource exists in MES and is correctly configured
- Check resource has SEMI-E10 state model assigned
- Check that mapped SEMI-E10 state is valid for the resource type