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 Name | Display Name | Type | Default Value | Description |
|---|---|---|---|---|
| SerialNumberVariableName | Product Code Variable | string | "Inbound_SerialNumberVariable" | Variable name for product code |
| TriggerType | Verification Trigger Type | MaterialDetectionTriggerType | VerificationSignal | Trigger method for verification |
| VerificationSuccessWriteValue | Verification Success Write Value | int | 1 | Value written when verification succeeds |
| VerificationFailWriteValue | Verification Fail Write Value | int | 2 | Value written when verification fails |
| IsRestVerificationResult | Reset Verification Result | bool | true | Whether to reset result when trigger signal resets |
| VerificationRestWriteValue | Reset Result Write Value | int | 0 | Value written when resetting |
| ReadRetryCount | Read Retry Count | int | 10 | Retry count for reading variables |
| ReadRetryDelay | Read Retry Delay | int | 500 | Read retry interval (ms) |
| WriteRetryCount | Write Retry Count | int | 10 | Retry count for writing variables |
| WriteRetryDelay | Write Retry Delay | int | 500 | Write retry interval (ms) |
| IsDeliverResults | Deliver Results | bool | true | Whether to deliver results after verification |
Trigger Types
| Enum Value | Description |
|---|---|
| VerificationSignal | Triggered by monitoring verification signal variable changes |
| BarcodeVariable | Triggered 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 Pattern | Type | Description |
|---|---|---|
| {MaterialName}_Verification_ErrorCode | int | Error code |
| {MaterialName}_VerificationMaterialDetailId | Guid? | Material Detail ID |
| {MaterialName}_MaterialCode | string | Material Barcode |
| {MaterialName}_VerificationResultSignal_Value | bool | Verification Result |
| {MaterialName}_BindMaterialVariable_Value | string | Bound Material Barcode |
| {MaterialName}_ExceptionVariable_Value | string | Exception Description |
| {MaterialName}_MaterialVerification_Counter | int | Verification Counter |
| {MaterialName}_MaterialVerification_Result | DataItemCollection | Verification 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
| Feature | MaterialDetectionActivity | MaterialVerificationActivity |
|---|---|---|
| Execution Mode | Serial, Single Execution | Parallel, Continuous Monitoring |
| Trigger Method | Triggered when flow executes | Triggered when variable changes |
| Exit Mode | Auto Exit | Manual Exit |
| Multi-Material Support | Detect one by one | Parallel detection |
| Applicable Scenario | Simple material detection | Complex multi-material parallel detection |