Controller Extensibility#
Overview#
The workflow doCommonLogic is a generic, event-agnostic subworkflow — used by ItemTransferIn and ItemTransferOut (see Event Handling). It reads the triggering event's name, looks up a matching CAMX_<EventName>_useDEE key in IoTMetadataDefinition, and invokes that DEE. This means any additional standard event exposed by the CAMX driver can be connected to a DEE the same way, without driver or code changes — only an Automation Workflow and a configuration entry.
Additional Template Events#
| Event Name | URI | Description |
|---|---|---|
| EquipmentAlarm | http://webstds.ipc.org/2541/EquipmentAlarm.xsd | Equipment enters an alarm condition |
| EquipmentError | http://webstds.ipc.org/2541/EquipmentError.xsd | Equipment enters an error condition |
| EquipmentHeartbeat | http://webstds.ipc.org/2541/Heartbeat.xsd | Periodic liveness signal from the equipment |
| EquipmentRecipeSelected | http://webstds.ipc.org/2541/EquipmentRecipeSelected.xsd | Equipment selects a recipe |
| EquipmentInformation | http://webstds.ipc.org/2541/EquipmentInformation.xsd | Equipment reports general information |
Requirements
Extra events need to be properly defined and assigned in the driver definition or in the workflow itself using the Custom Template task. To enable a specific event-driven feature, an IoTMetadataDefinition entry should be added (similarly to ItemTransferIn and ItemTransferOut).
How doCommonLogic Resolves the DEE#
When invoked, doCommonLogic:
- Reads the resource name (
LinkedEntityName) from persistency - Reads the triggering event's name from its
EventTypeinput - Looks up
IoTMetadataDefinitionfor aCAMX_<EventName>_useDEEentry matching that event name - If none is found, the workflow ends without calling any DEE
- Optionally reads
CAMX_<EventName>_retriesfor the max retry count (default: 1) - Calls the configured DEE with
ResourceName,EventType,Attributes, andExtensions - Retries on retriable errors (deadlock, data changed, connection refused) up to the configured max
Wiring a New Event to doCommonLogic#
To connect an additional standard event (e.g., EquipmentAlarm) to doCommonLogic:
- Create a new Automation Workflow for the event (e.g.,
EquipmentAlarm) - Add an "On Equipment Event" task, setting its Event Name to the target event (e.g.,
EquipmentAlarm) - Add a "Merge Object" task (optional) to combine the event properties you want to expose to the DEE into an
Attributesobject — e.g.,alarmId,alarmType,laneList,zoneList - Add a "Call SubWorkflow" task targeting
doCommonLogic, wiring: EventTypeIn← the "On Equipment Event" task's raw event outputAttributesIn← the "Merge Object" task's output (or leave unbound if not needed)ExtensionsIn← the "On Equipment Event" task'sExtensionsoutput- Save and publish the workflow
- Configure
CAMX_<EventName>_useDEE(and optionallyCAMX_<EventName>_retries) inIoTMetadataDefinitionfor the resource - Restart the Automation Controller
Example: Enabling EquipmentAlarm#
Resource: MES Resource
CAMX_EquipmentAlarm_useDEE = CustomAlarmNotificationDEE
CAMX_EquipmentAlarm_retries = 3
Driver Definition
The properties declared and defined in the scope of the Driver Definition should represent the expected event attributes.
Extensions
Should there be extensions within the event, they shall be exposed as a JSON object in a variable named "Extensions".