Board Gate Keeper#
Communication Settings#
| Name | Type | Possible Values | Default Value | Description |
|---|---|---|---|---|
| enableMode | Enum | NoneOnePerEnterpriseOnePerSiteOnePerLine | None | How should activate BoardGateKeeper instance:None - No instance will be usedOnePerEnterprise - One Instance for all Lines (Enterprise level)OnePerSite - One Instance for all Lines (Site level) OnePerLine - One Instance per Line |
| callbackPort | Integer | 0 | What port to use to receive events from BoardGateKeeper. Use 0 to use a free port starting at callbackBasePort + 100 | |
| replyTimeout | Integer | 60000 | Number of milliseconds to wait for a BoardRequest reply | |
| registerMode | Enum | UnregisterFirst JustRegister | UnregisterFirst | Mode to register callbacks UnregisterFirst - Unregister Services before register new one to avoid duplicates JustRegister - Doesn't try to unregister anything prior. Can have duplicates. |
| subscriptionNameSuffix | String | Will be added to the subscription name. Possible replacement tokens are ${id} and ${guid} | ||
| eventsExpiration | Integer | 60 | Expiration time (seconds) between events triggered and received. Used to avoid processing old Eventing/Monitoring events that occurred while driver was not communicating with OIB. Use the value 0 for no expiration. |
Events#
BoardGateKeeper.Event.BoardRequest#
BoardGateKeeper requests the MES System to validate a board which has been detected and stopped in the conveyor unit.
| Property Id | Data Type | Possible Values | Description |
|---|---|---|---|
| BoardGateKeeper.Property.Line.Name | String | Full path of the line from SIPLACE Pro including folders (e.g. "MyLines\Line01") | |
| BoardGateKeeper.Property.Station.Name | String | Station without the Line name (e.g. "Station01") | |
| BoardGateKeeper.Property.Board.Barcode | String | The serial number of the board. If no barcode was scanned, an empty string will be returned. | |
| BoardGateKeeper.Property.Board.BoardTime | DateTime | The time this board was scanned for MES request or released by barcode scanner (in Epoch format with milliseconds). | |
| BoardGateKeeper.Property.Position.BcrSide | String | Unknown<br>``Top<br>``Bottom<br> | If a barcode was scanned, this attribute describes if the barcode was scanned from the top or from the bottom of board. Please note that BCRSide does not describe the "board side" defined in "Siplace Pro" but the physical scanner position (top/bottom). |
| BoardGateKeeper.Property.Position.Lane | String | Left<br>``Right | Conveyor |
| BoardGateKeeper.Property.Position.Origin | String | Front<br>``Rear | The scanner position in the line. There are standard values which can easily be selected on scanner configuration GUI. For an individual deployment, e.g. if more then 2 scanners exist per conveyor, the customer can define own origin values as string such as a stations name, "printer", "AOI" etc |
| BoardGateKeeper.Property.Position.SubConveyor | String | None<br>``Right<br>``Left | Sub-Conveyor (allows future quad-lane support) |
| Internal.RequestId | String | Id of the request. Necessary for the reply. |
If interlocking is enabled for the lane, a reply is required to allow/deny the panel from entering the machine. The reply must be sent using the BoardGateKeeper.Command.BoardRequestReply command.
BoardGateKeeper.Event.BoardReleased#
BoardGateKeeper informs the MES if a board was successfully transported to the next production step. This event may be sent automatically if interlocking is disabled (in that case no BoardRequest will be performed) or if MES has previously confirmed a requested board.
| PropertyId | Type | Possible Values | Description |
|---|---|---|---|
| BoardGateKeeper.Property.Line.Name | String | Full path of the line from SIPLACE Pro including folders (e.g. "MyLines\Line01") | |
| BoardGateKeeper.Property.Station.Name | String | Station without the Line name (e.g. "Station01") | |
| BoardGateKeeper.Property.Board.Barcode | String | The serial number of the board. If no barcode was scanned, an empty string will be returned. | |
| BoardGateKeeper.Property.Board.BoardTime | DateTime | The time this board was scanned for MES request or released by barcode scanner(in Epoch format with milliseconds). | |
| BoardGateKeeper.Property.Position.BcrSide | String | Unknown<br>``Top<br>``Bottom<br> | If a barcode was scanned, this attribute describes if the barcode was scanned from the top or from the bottom of board. Please note that BCRSide does not describe the "board side" defined in "Siplace Pro" but the physical scanner position (top/bottom). |
| BoardGateKeeper.Property.Position.Lane | String | Left<br>``Right | Conveyor |
| BoardGateKeeper.Property.Position.Origin | String | Front<br>``Rear | The scanner position in the line. There are standard values which can easily be selected on scanner configuration GUI. For an individual deployment, e.g. if more then 2 scanners exist per conveyor, the customer can define own origin values as string such as a stations name, "printer", "AOI" etc |
| BoardGateKeeper.Property.Position.SubConveyor | String | None<br>``Right<br>``Left | Sub-Conveyor (allows future quad-lane support) |
BoardGateKeeper.Event.BoardFailed#
In case of a previously released board could not be transported to the next processing step, this error will be sent to MES. BoardFailed message will not be supported on all scanner hardware equipment. The following example work-flow may result in that error: The CogiScan flow controller will sent a message to BoardGateKeeper if a board (identified by barcode) has successfully been transported. Unfortunately, the "CogiBox" does not support any error handling. So if the operator removes a board manually out of the conveyor which is currently in validation by the MES, and if the MES confirms that board, the CogiBox will never confirm the release of that board (because it was removed). So teh BoardGateKeeper will wait some time (Timeout can be configured on Manager GUI) and will send a BoardFailed to the MES due to the missing transportation confirmation by CogiBox.
| PropertyId | Type | Possible Values | Description |
|---|---|---|---|
| BoardGateKeeper.Property.Line.Name | String | Full path of the line from SIPLACE Pro including folders (e.g. "MyLines\Line01") | |
| BoardGateKeeper.Property.Station.Name | String | Station without the Line name (e.g. "Station01") | |
| BoardGateKeeper.Property.Board.Barcode | String | The serial number of the board. If no barcode was scanned, an empty string will be returned. | |
| BoardGateKeeper.Property.Board.BoardTime | DateTime | The time this board was scanned for MES request or released by barcode scanner(in Epoch format with milliseconds). | |
| BoardGateKeeper.Property.Position.BcrSide | String | Unknown<br>``Top<br>``Bottom<br> | If a barcode was scanned, this attribute describes if the barcode was scanned from the top or from the bottom of board. Please note that BCRSide does not describe the "board side" defined in "Siplace Pro" but the physical scanner position (top/bottom). |
| BoardGateKeeper.Property.Position.Lane | String | Left<br>``Right | Conveyor |
| BoardGateKeeper.Property.Position.Origin | String | Front<br>``Rear | The scanner position in the line. There are standard values which can easily be selected on scanner configuration GUI. For an individual deployment, e.g. if more then 2 scanners exist per conveyor, the customer can define own origin values as string such as a stations name, "printer", "AOI" etc |
| BoardGateKeeper.Property.Position.SubConveyor | String | None<br>``Right<br>``Left | Sub-Conveyor (allows future quad-lane support) |
| BoardGateKeeper.Property.ErrorId | String | NO_ERROR <br>INTERNAL_ERROR <br>TIMEOUT_RELEASE <br>TIMEOUT_REQUEST <br>UNKNOWN_SCANNER <br>DISABLED_LINE <br>SCANNER_ERROR | Error identifier. Values are defined in enum ErrorLabels. |
| BoardGateKeeper.Property.ErrorMessage | String | A descriptive message or error text corresponding to the ErrorId. |
BoardGateKeeper.Event.ScannerConnectionStateChanged#
Message is sent by BoardGateKeeper if the connection state of a scanner hardware has changed.
| PropertyId | Type | Possible Values | Description |
|---|---|---|---|
| BoardGateKeeper.Property.Line.Name | String | Full path of the line from SIPLACE Pro including folders (e.g. "MyLines\Line01") | |
| BoardGateKeeper.Property.Station.Name | String | Station without the Line name (e.g. "Station01") | |
| BoardGateKeeper.Property.ScannerId | String | The internal/unique ID of the scanner | |
| BoardGateKeeper.Property.Reason | String | A reason text regarding the state change | |
| BoardGateKeeper.Property.State | String | Unknown<br>``Connected<br>``Disconnected<br>``Configuration_Error | The current state of the scanner. |
BoardGateKeeper.Event.LineConfigurationChanged#
Message is sent by BoardGateKeeper if the configuration of a configured line in BGK has changed. The message is sent when the changes are activated, e.g. when the user clicks on "Apply" on the BGK GUI.
| PropertyId | Type | Possible Values | Description |
|---|---|---|---|
| BoardGateKeeper.Property.Line.Name | String | Full path of the line from SIPLACE Pro including folders (e.g. "MyLines\Line01") | |
| BoardGateKeeper.Property.Line.Active | Boolean | Indicates if the Lin is active in BGK. If it is active, board events are generated for this line. | |
| BoardGateKeeper.Property.Line.TimeOfChange | DateTime | Only filled for LineConfigurationChaned event, not when calling BgkLineConfigurationsRequest()! The time at which this new configuration was activated(in Epoch format with milliseconds). | |
| BoardGateKeeper.Property.Line.ChangeTypeCode | Integer | Only filled for LineConfigurationChaned event, not when calling BgkLineConfigurationsRequest()! The type of change that leads to this LineConfiguationChanged event | |
| BoardGateKeeper.Property.Line.ChangeType | String | None<br>``LineRemoved<br>``LineAdded<br>``ActiveState<br>``OperationMode | Text representation of ChangeTypeCode |
| BoardGateKeeper.Property.Line.OperationModeCode | Integer | The operation mode of the line. | |
| BoardGateKeeper.Property.Line.OperationMode | String | Notification<br>``Interlocking | Text representation of OperationModeCode |
Commands#
BoardGateKeeper.Command.BoardRequestReply#
This command is used to send a reply to the BoardGateKeeper.Event.BoardRequest event, and is expecting the following parameters:
| Command Parameter Name | Type | Mandatory | Possible Values | Default Value | Description |
|---|---|---|---|---|---|
| Internal.ReplyId | String | Yes | Id of the request that this command is supposed to reply | ||
| RequestResult | String | Yes | Confirmed<br>``Rejected<br>``Internal_Error<br>``PassThrough | The result of the board validation returned by MES | |
| Reason | String | No | A reason for the return value of RequestResult (e.g. an error message if Internal_Error is set) | ||
| BoardPath | String | No | The Board path for which the result is returned. It is required for the Station software to differentiate between boards | ||
| BoardSide | String | No | Top<br>``Bottom<br>``Undefined | MES system returns the board side. It is logged and maybe later used for a check | |
| OverridingBarcode | String | No | MES is able to override the barcode. If that attribute is empty, the barcode will not be changed. Otherwise the new barcode will whispered down the line (requires: whispering option activated in SiplacePro) | ||
| VIHResult | Object | No | [ { "PanelName": "Test1", "Place": true, "Reason": "Reason 1" }, { "PanelName": "Test2", "Place": false, "Reason": "Reason 2" } ] | Virtual Ink Spot Placements to be performed, is an array of objects, each object must have a Panel Name, if is to Place or not and if not the reason. |