Skip to content

Validate Units#

Overview#

This feature enables the material interlocking through ValidateUnits event, we will validate the production history and status of a production unit, and its readiness for processing.

How To Configure#

Relevant Artifacts#

The table below describes the properties for this entity type:

Name Type Is Mandatory Data Type Description
IoTMetadataDefinition SmartTable Yes Metadata configuration for equipment integration

IoTMetadataDefinition Resource Level Configuration#

At the Resource level, there are several configuration we can make to set our connection with the AMQP broker and with the Equipment.

Resource Resource Type Area Name Value Description
MES IPC-CFX Resource useIPCCFXToValidateUnits ValidateUnits Enable use of ValidateUnits event for material validation
MES IPC-CFX Resource useRecipeValidation true Enable Recipe validation for material validation

Debuging#

For debuging purposes, it's convenient to bypass the interlocking process and alway return a Passed value.

For this we can use the key useBypassValidation with one of the following values:

Key Value Description
0 All boards in the Panel passed
N All boards are passed except the Position N
key not existing Interlocking process as usual

How It Works#

The equipment sends a CFX.InformationSystem.UnitValidation.ValidateUnitsRequest Event from IPC-CFX standard.

In the Event message, we will receive the validations we need to perform and the material identifier.

Currently Supported Validations

  • UnitRouteValidation
  • UnitStatusValidation
  • UniTraceValidation

Automation Controller will parse the event message and call MES service api/IoTIPCCFX/ValidateUnits that will handle the verification process and return a validation result.

CFX ValidateUnitsRequest Example
{
"Validations": [
    "UnitRouteValidation",
    "UnitStatusValidation"
    ],
    "PrimaryIdentifier": "MaterialName",
    "Units": [
        {
        "UnitIdentifier": "MaterialName1",
        "PositionNumber": 1,
        "PositionName": "CIRCUIT1",
        "X": 50.45,
        "Y": 80.66,
        "Rotation": 0.0,
        "FlipX": false,
        "FlipY": false
        },
        {
        "UnitIdentifier": "MaterialName2",
        "PositionNumber": 2,
        "PositionName": "CIRCUIT2",
        "X": 70.45,
        "Y": 80.66,
        "Rotation": 90.0,
        "FlipX": false,
        "FlipY": false
        }
    ]
}

If useRecipeValidation is enabled, the system will:

  • Retrieve the current Material Recipe.
  • Validate it against the Resource or Lane Recipe, depending on the configuration.
    • If the resource is set as Multi Lane and the validation request targets a specific lane, the check will be performed against the corresponding Lane Recipe.
  • If the recipes don't match the PrimaryResult object of the response will be set with Result Failed and Message "Invalid Recipe. Expected ${expectedRecipeName} but current is ${currentRecipe}";

A CFX.InformationSystem.UnitValidation.ValidateUnitsResponse will be sent to the same request Id with the results of all the validation.

CFX ValidateUnitsResponse Example
{
"Result": {
    "Result": "Success",
    "ResultCode": 0,
    "Message": null
},
"PrimaryResult": {
    "UniqueIdentifier": "CARRIER5566",
    "PositionNumber": 0,
    "Result": "Passed",
    "FailureCode": 0,
    "Message": "OK"
},
"ValidationResults": [
        {
        "UniqueIdentifier": "CARRIER5566",
        "PositionNumber": 1,
        "Result": "Passed",
        "FailureCode": 0,
        "Message": "OK"
        },
        {
        "UniqueIdentifier": "CARRIER5566",
        "PositionNumber": 2,
        "Result": "Passed",
        "FailureCode": 0,
        "Message": "OK"
        }
    ]
}