Obsidean_VM/04-InLavoro/HENKEL/93040 - HENKEL - BowlingGreen/Description/HENKEL - ALPLA - AUTEFA - B.../HENKEL - ALPLA - AUTEFA - D...

218 lines
6.6 KiB
Markdown
Raw Normal View History

2025-02-18 05:37:27 -03:00
## Plant Overview
The system operates in a manufacturing plant where:
- **ALPLA**: Bottle manufacturing (blow molding)
- **HENKEL**: Bottle filling operations
- **AUTEFA**: Empty bottle storage logistics
- **Vetromeccanica**: Bottle conveyor system and inter-system communications hub
## System Architecture
```mermaid
graph TD
subgraph "Line N"
Q1[Q1 PLC] --> Q2[Q2 PLC]
Q1 --> Q3[Q3 PLC]
Q1 --> Q4[Q4 PLC]
Q1 <--> H[Henkel]
end
subgraph "Supervisor PLC"
S[Supervisor]
end
Q1 <--> S
S <--> AU[AUTEFA]
S <--> AL[ALPLA]
```
### PLC Distribution
- **Q1 PLCs**: Main line controller, interfaces with Henkel and other line PLCs
- **Q2-Q4 PLCs**: Secondary line controllers for conveyor sections
- **Supervisor PLC**: Central system managing communications with ALPLA and AUTEFA
## Batch Identification System
### ID Types and Formats
1. **HENKEL System**
- PO_NUMBER: 12-char Production Order number
- IDH_BTL: 12-char Article Number (bottle specifications)
- IDH_CON: Container specifications
2. **ALPLA System**
- CustomArticleNum: 12-char identifier
- Article Variant (AV): Numeric ID
- Product Family: Numeric ID for recipe selection
3. **AUTEFA System**
- Uses ALPLA's Article Variant (AV) ID
### ID Conversion Process
```mermaid
graph LR
A[Henkel IDH_BTL] -->|Q1 Processing| B[CustomArticleNum]
B -->|Supervisor Search| C[ALPLA SKU]
C -->|Extract| D[Article Variant ID]
D -->|TG10 Telegram| E[AUTEFA]
```
## Data Flow Details
### 1. Q1 PLC (Client) Functions
- Receives data from Henkel in Data_From_EbConvey[0-49] array
- Performs byte-swapping based on data type:
```pascal
CASE index OF
0, 10, 20, 35..40, 44..49: // Control words & IDs
// 4-byte swap
ELSE:
// 2-byte word swap
END_CASE;
```
### 2. Supervisor PLC (Server) Functions
- Manages SKU database (AlplaSkuList)
- Performs ID conversions and validations
- Handles AUTEFA telegram communications
- Provides OPC-UA interface for ALPLA
## Batch Management
### Data Location in HENKEL Array
```
Current Batch (AB):
- PO_NUMBER: di[44-46]
- IDH_BTL: di[35-37]
Next Batch (NB):
- PO_NUMBER: di[47-49]
- IDH_BTL: di[38-40]
Next+1 Batch:
- PO_NUMBER: di[1-3]
- IDH_BTL: di[7-9]
- IDH_CON: di[4-6]
```
### Identifier Explanations
| Prefix | Meaning | Usage |
| ------ | ------------------ | ---------------------------------------- |
| AB | Actual Batch | Current production batch being processed |
| NB | Next Batch | Next scheduled production batch |
| IDH | Internal Henkel ID | Unique identifier used by HENKEL |
| BTL | Bottle | Relates to bottle specifications |
| CON | Container | Relates to container specifications |
| PO | Production Order | Order number for batch tracking |
PO_NUMBER : Batch IDH_CON ( 12 char )
IDH_BTL : Article Number ( 12 char )
| | | ACTUAL | NEXT | NEXT + 1 | | |
| --------- | -------------------- | ------ | ----- | -------- | --- | --- |
| PO_NUMBER | Batch IDH_CON | 44-46 | 47-49 | 1-3 | | |
| IDH_BTL | Batch Article Number | 35-37 | 38-40 | 7-9 | | |
| IDH_CON | | | | 4-6 | | |
### AUTEFA Telegram System
4. **TG10 - Production Info**
- Sends current and next batch information
- Includes Article Variant IDs and batch targets
5. **TG20/21 - Line Change Request**
- Used for tray loader assignment changes
- Includes validation of product compatibility
6. **TG40 - Speed Updates**
- Line speed synchronization
- Values from 0-100 in steps of 10
Each telegram type (TG10, TG20, etc.) has three associated control bits:
1. **Trigger_TGxx**
- Purpose: Initiates sending of new telegram
- Usage: Set when new data needs to be transmitted
- Example: `Trigger_TG10` set when batch information changes
2. **TT_TGxx** (Test Trigger)
- Purpose: Manual testing of telegram transmission
- Usage: Can be set from HMI for testing communications
- Example: `TT_TG10` for testing production info transmission
3. **KT_TGxx** (Kill Trigger)
- Purpose: Cancels pending telegram transmission
- Usage: Set to stop telegram from being sent
- Example: `KT_TG10` to cancel production info update
### SKU Search Process
```pascal
// In Supervisor PLC
FOR #i := 0 TO 249 DO
IF LineN[line].ReqActualCustomProdNum =
AlplaSkuList[#i].CustomArticleNum THEN
// Store complete SKU info
LineN[line].SkuActualReq := AlplaSkuList[#i];
// Mark search complete
LineN[line].SearchActualSku := FALSE;
EXIT;
END_IF;
END_FOR;
```
## Line Indexing System
The system uses a consistent line indexing system across all communications:
| Index | Configuration | Line Reference |
|-------|--------------|----------------|
| 0 | Fill_TL21_L23 | Line 23 |
| 1 | Fill_TL22_L25 | Line 25 |
| 2 | Fill_TL23_L43 | Line 43 |
| 3 | Fill_TL25_L41 | Line 41 |
| 4 | Fill_TL26_L42 | Line 42 |
| 5 | Fill_TL27_L40 | Line 40 |
## Change Management Process
4. **Batch Change Initiation**
- HENKEL sends "CalculatedBottlesRemainingToFill" = 0
- Line clearance verification process starts
5. **Change Execution**
- Q1 initiates emptying sequence
- Supervisor coordinates with AUTEFA
- New batch parameters loaded after confirmation
6. **Production Resume**
- System waits for all confirmations
- New batch counters initialized
- Production flow resumes
## Error Handling
7. **Communication Timeouts**
- 60-second threshold for Q1-Henkel communication
- Automatic reconnection attempts
8. **SKU Validation**
- Not found conditions trigger warnings
- Invalid format handling
- Automatic zero-padding for string fields
9. **Batch Change Safety**
- Multiple confirmation requirements
- Line status verification
- Product compatibility checks
## NEXT2 Batch Information (New Implementation)
| Position From Henkel | Data Type | Processing | Description |
| -------------------- | --------- | --------------- | --------------------------------------------------------------- |
| di[1]-di[3] | SINT | Direct transfer | Production Order Number for second next batch (PO_NUMBER_NEXT2) |
| di[4]-di[6] | SINT | Direct transfer | Container ID for second next batch (IDH_CON_NEXT2) |
| di[7]-di[9] | SINT | Direct transfer | Bottle ID for second next batch (IDH_BTL_NEXT2) |