Setup OIB#
Overview#
This feature is responsible for handling the connection setup between the Automation Driver and the OIB (Operations Information Broker) equipment. During initialization, the driver reads configuration parameters from the IoTMetadataDefinition Smart Table, initializes all OIB extensions, and establishes the connection to the OIB Configuration Manager.
How to Configure#
To configure the OIB connection, a set of keys must be set in the IoTMetadataDefinition Smart Table at the Area level.
Relevant Artifacts#
The table below describes the artifacts involved in this configuration:
| Name | Type | Is Mandatory | Data Type | Description |
|---|---|---|---|---|
| IoTMetadataDefinition | SmartTable | Yes | Metadata configuration for OIB equipment integration |
IoTMetadataDefinition Area Level Configuration#
At the Area level, the following configuration keys must be set in IoTMetadataDefinition to control the OIB driver behavior.
General Settings#
| Resource | Resource Type | Area | Name | Value | Description |
|---|---|---|---|---|---|
| MES OIB Resource | OIB_sdkVersion | e.g. OIB_65 | Base version of the OIB SDK to use. Supported values: OIB_60, OIB_62, OIB_63, OIB_64, OIB_65 | ||
| MES OIB Resource | OIB_logUnhandledEvents | True / False | Log all received events, even if they are not handled by the controller | ||
| MES OIB Resource | OIB_enableOibTraceData | True / False | Log all OIB trace data as debug log | ||
| MES OIB Resource | OIB_dumpMessagesReceived | True / False | Dump debug log of received messages | ||
| MES OIB Resource | OIB_dumpMessagesReceivedPath | e.g. ${tmp} | Path where to dump received messages (use ${tmp} for user temporary directory) |
Network Settings#
| Resource | Resource Type | Area | Name | Value | Description |
|---|---|---|---|---|---|
| MES OIB Resource | OIB_localInterface | Hostname or IP | Hostname (or IP) where OIB callbacks will be registered. Leave empty to use OIB_localNetworkName | ||
| MES OIB Resource | OIB_localNetworkName | Network name | Network Name (part of, case sensitive) used to fetch IP information. Leave empty to use registered hostname |
Line & Station Resolution#
| Resource | Resource Type | Area | Name | Value | Description |
|---|---|---|---|---|---|
| MES OIB Resource | OIB_lineNameResolver | RegEx pattern | RegEx to resolve the line name from its full path. E.g. .*\\(.*) extracts Line 1 from Production\Line 1 | ||
| MES OIB Resource | OIB_stationNameResolver | RegEx pattern | RegEx to resolve the station name from its full path. E.g. .*\\(.*) extracts SX4 01 from Stations\SX4 01 | ||
| MES OIB Resource | OIB_linesToHandle | Comma-separated | List of lines to handle using this driver. Leave empty for all. | ||
| MES OIB Resource | OIB_linesToIgnore | Comma-separated | List of lines to ignore using this driver. Leave empty for none. | ||
| MES OIB Resource | OIB_LineNameStationName_* | Entity name | Maps OIB line name and station name to MES Resource. |
Timing & Port Settings#
| Resource | Resource Type | Area | Name | Value (Default) | Description |
|---|---|---|---|---|---|
| MES OIB Resource | OIB_defaultCommandTimeout | 60000 | Default timeout (ms) for driver commands | ||
| MES OIB Resource | OIB_callbackBasePort | 4000 | Base port number for callbacks. Each OIB service uses this port plus an offset | ||
| MES OIB Resource | OIB_coreHeartbeatInterval | 60000 | Interval (ms) between heartbeat frames sent to OIB core |
Configuration Manager Settings (OIB Core Service)#
| Resource | Resource Type | Area | Name | Value (Default) | Description |
|---|---|---|---|---|---|
| MES OIB Resource | OIB_configurationManagerAddress | localhost | Hostname (or IP) where the OIB ConfigurationManager is listening | ||
| MES OIB Resource | OIB_configurationManagerPort | 1406 | Port where the OIB ConfigurationManager is listening | ||
| MES OIB Resource | OIB_configurationManagerCallbackPort | 0 | Callback port for ConfigurationManager. Use 0 for a free port starting at OIB_callbackBasePort |
Docking Stations Settings#
| Resource | Resource Type | Area | Name | Value | Description |
|---|---|---|---|---|---|
| MES OIB Resource | OIB_enableDockingStations | None / OnePerEnterprise | Enable support for Docking Stations features | ||
| MES OIB Resource | OIB_dockingStationsToHandle | Comma-separated | List of Docking Stations to handle using this driver | ||
| MES OIB Resource | OIB_dockingStationsToIgnore | Comma-separated | List of Docking Stations to ignore using this driver |
For more information check the OIB driver documentation.
OIB Extensions Configuration#
Each OIB extension can be individually configured via IoTMetadataDefinition. The key naming convention follows the pattern:
- OIB_
The following extensions are available and initialized by default:
| Extension Name | Assembly | Default Enable Mode | Notes |
|---|---|---|---|
BoardGateKeeper | Cmf.Connect.IoT.Driver.Oib.BoardGateKeeper.<SDK>.dll | OnePerLine | replyTimeout: 60000, registerMode: UnregisterFirst |
SetupCenter | Cmf.Connect.IoT.Driver.Oib.SetupCenter.<SDK>.dll | OnePerEnterprise | subscriptionExpiration: 4, eventsExpiration: 60 |
Traceability | Cmf.Connect.IoT.Driver.Oib.Traceability.<SDK>.dll | OnePerLine | operationMode: Interlocking, replyTimeout: 60000, registerMode: UnregisterFirst, eventsExpiration: 300 |
Eventing | Cmf.Connect.IoT.Driver.Oib.Eventing.<SDK>.dll | OnePerEnterprise | subscriptionMode: Permanent, eventsExpiration: 60 |
ProcessData | Cmf.Connect.IoT.Driver.Oib.ProcessData.<SDK>.dll | OnePerEnterprise | subscriptionMode: Permanent, eventsExpiration: 60 |
LineControl | Cmf.Connect.IoT.Driver.Oib.LineControl.<SDK>.dll | OnePerLine | subscriptionMode: Permanent, eventsExpiration: 60 |
PrinterControl | Cmf.Connect.IoT.Driver.Oib.PrinterControl.<SDK>.dll | OnePerEnterprise | replyTimeout: 60000 |
PackagingUnit | Cmf.Connect.IoT.Driver.Oib.PackagingUnit.<SDK>.dll | OnePerLine | replyTimeout: 60000 |
LineControlInterceptor | Cmf.Connect.IoT.Driver.Oib.LineControlInterceptor.<SDK>.dll | OnePerLine | replyTimeout: 60000, registerMode: UnregisterFirst |
DisplayService | Cmf.Connect.IoT.Driver.Oib.DisplayService.<SDK>.dll | OnePerEnterprise | Optional clientRegistrationId, unregisterOnDisposeFinalize: false, newRegistrationOnRestoreFailed: true |
Per-Extension Configurable Settings#
The following settings can be overridden per extension via IoTMetadataDefinition:
| Key Pattern | Description |
|---|---|
OIB_<ExtName>_assembly | Override the assembly DLL file name |
OIB_<ExtName>_path | Override the file system path for the extension |
OIB_<ExtName>_enableMode | Override the enable mode (OnePerLine, OnePerEnterprise, etc.) |
OIB_<ExtName>_operationMode | Override the operation mode (e.g., Interlocking) |
OIB_<ExtName>_subscriptionNameSuffix | Override the subscription name suffix |
OIB_<ExtName>_replyTimeout | Override the reply timeout (ms) |
OIB_<ExtName>_eventsExpiration | Override the events expiration time |
OIB_<ExtName>_callbackPort | Override the callback port |
OIB_<ExtName>_callbackPortRange | Override the callback port range |
OIB_<ExtName>_disabled | Set to True to disable and remove the extension from the setup |
Extension Configuration Example
To change the operation mode of the Traceability extension and disable the PrinterControl extension:
| Resource | Resource Type | Area | Name | Value |
|---|---|---|---|---|
| MES OIB Resource | OIB_Traceability_operationMode | Interlocking | ||
| MES OIB Resource | OIB_PrinterControl_disabled | True |
How to Use#
On Automation startup, the following sequence is executed:
- The OnInitialize driver event fires.
- The
IoTMetadataDefinitionPersistedtable mappings are reset. - The Area entity instance is loaded to retrieve the linked area name.
- The repository location is fetched from system configurations (
Cmf/System/Configuration/ConnectIoT/RepositoryLocation/). - The
IoTMetadataDefinitionSmart Table is resolved using the Area context to retrieve all OIB parameters. - All configured parameters are emitted to the Equipment Configuration task.
- OIB extensions are initialized with default values, then overridden with any values found in
IoTMetadataDefinition. - Disabled extensions are removed from the list.
- The Equipment Configuration task is activated and triggers the Connect command.
Every time you change IoTMetadataDefinition Area values you must restart the Automation Manager.
Implementation Details#
During Equipment Setup, the controller performs the following actions:
- Stores the Area Name in persistent data store under key
LinkedEntityName. - Resets table mappings for
IoTMetadataDefinitionPersistedandIoTStateModelContextPersisted. - Resolves the
IoTMetadataDefinitionSmart Table filtered by the current Area. - For each entry with a key starting with
OIB_LineNameStationName_, the following persistent data store keys are initialized per station entity:CurrentState_<EntityName>StateChangingWait_<EntityName>StatePending_<EntityName>RecipeIsBeingChanged_<EntityName>StationActiveRecipe_<EntityName>
- Extension settings are read from
IoTMetadataDefinitionand applied on top of the default values. - Extensions marked with
OIB_<ExtName>_disabled = Trueare filtered out before being passed to the Equipment Configuration task. - The final list of enabled extensions is emitted as
OIB_extensionsto the driver. - A custom template for
Traceability.Event.TraceabilityDatais registered, extending the default driver template with additional properties includingErrorCode,Printers, andLenses. - The Connect command is triggered after the Equipment Configuration and custom template tasks complete successfully.