Skip to content

Board Gate Keeper#

Communication Settings#

Name Type Possible Values Default Value Description
enableMode Enum None
OnePerEnterprise
OnePerSite
OnePerLine
None How should activate BoardGateKeeper instance:
None - No instance will be used
OnePerEnterprise - 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.