Skip to main content
Version: Next

Material Verification

Introduction​

MaterialVerificationActivity is a MES-specific material parallel verification node. It is used to monitor material verification signals or barcode variables in real-time and automatically execute material verification. Unlike MaterialDetectionActivity, this node supports multi-material parallel verification and achieves real-time response by subscribing to variable change events.

Configuration Items​

Property NameDisplay NameTypeDefault ValueDescription
SerialNumberVariableNameProduct Code Variablestring"Inbound_SerialNumberVariable"Variable name for product code
TriggerTypeVerification Trigger TypeMaterialDetectionTriggerTypeVerificationSignalTrigger method for verification
VerificationSuccessWriteValueVerification Success Write Valueint1Value written when verification succeeds
VerificationFailWriteValueVerification Fail Write Valueint2Value written when verification fails
IsRestVerificationResultReset Verification ResultbooltrueWhether to reset result when trigger signal resets
VerificationRestWriteValueReset Result Write Valueint0Value written when resetting
ReadRetryCountRead Retry Countint10Retry count for reading variables
ReadRetryDelayRead Retry Delayint500Read retry interval (ms)
WriteRetryCountWrite Retry Countint10Retry count for writing variables
WriteRetryDelayWrite Retry Delayint500Write retry interval (ms)
IsDeliverResultsDeliver ResultsbooltrueWhether to deliver results after verification

Trigger Types​

Enum ValueDescription
VerificationSignalTriggered by monitoring verification signal variable changes
BarcodeVariableTriggered by monitoring barcode variable changes

Business Logic​

Execution Flow​

┌─────────────────────────────────────────────────────────────┐
│ MaterialVerificationActivity │
├─────────────────────────────────────────────────────────────┤
│ EnterAsync - Initialization Phase │
│ ├─ Check if station is enabled │
│ ├─ Check if function is enabled │
│ ├─ Collect monitored variables based on trigger type │
│ ├─ Create variable monitoring channel │
│ └─ Register variable change event handling │
├─────────────────────────────────────────────────────────────┤
│ OnTagValueChanged - Variable Change Handling │
│ ├─ Check if changed variable is monitoring target │
│ ├─ Trigger Signal = 1 → Execute Verification │
│ ├─ Trigger Signal = 0 → Execute Reset (if enabled) │
│ └─ Process verification for multiple materials in parallel │
├─────────────────────────────────────────────────────────────┤
│ VerificationAsync - Verification Processing │
│ ├─ Read material barcode │
│ ├─ Get product model │
│ ├─ Execute barcode rule detection │
│ ├─ Execute material state detection (if enabled) │
│ ├─ Execute material missing process detection (if enabled) │
│ └─ Deliver verification result │
└─────────────────────────────────────────────────────────────┘

Verification Result Output​

After each material verification is completed, the following variables are set in the flow context:

Variable Name PatternTypeDescription
{MaterialName}_Verification_ErrorCodeintError code
{MaterialName}_VerificationMaterialDetailIdGuid?Material Detail ID
{MaterialName}_MaterialCodestringMaterial Barcode
{MaterialName}_VerificationResultSignal_ValueboolVerification Result
{MaterialName}_BindMaterialVariable_ValuestringBound Material Barcode
{MaterialName}_ExceptionVariable_ValuestringException Description
{MaterialName}_MaterialVerification_CounterintVerification Counter
{MaterialName}_MaterialVerification_ResultDataItemCollectionVerification Result Collection

Usage Example​

Basic Configuration​

{
"Name": "Material Parallel Verification",
"Type": "MaterialVerificationActivity",
"TriggerType": "VerificationSignal",
"VerificationSuccessWriteValue": 1,
"VerificationFailWriteValue": 2,
"IsRestVerificationResult": true,
"VerificationRestWriteValue": 0,
"IsDeliverResults": true
}

Difference from MaterialDetectionActivity​

FeatureMaterialDetectionActivityMaterialVerificationActivity
Execution ModeSerial, Single ExecutionParallel, Continuous Monitoring
Trigger MethodTriggered when flow executesTriggered when variable changes
Exit ModeAuto ExitManual Exit
Multi-Material SupportDetect one by oneParallel detection
Applicable ScenarioSimple material detectionComplex multi-material parallel detection