Obsidean_VM/40 - 93040 - HENKEL - NEXT .../ALPLA-HENKEL NEXT + 1 - Not...

20 KiB

Related to the NEXT2 addition that was asked by Lenin last week, the scope of the work is this?

  • Receive from Malisko the NEXT2 data on the Spare : Data_From_EbConvey[0-9]. We need to check if this area is free for all the lines.
  • Tunnel this dato to the Supervisor OPC and retransform to String as it is done actually on the BatchNext.BatchNumber e BatchActual.BatchNumber
  • The test will be made first on the 40,41 & 42 (TL25/TL26/TL27) and then on the other lines?

L41 4 days

TL25--------L41

L43/42 counters

Line index:

0 Fill_TL21_L23
1 Fill_TL22_L25
2 Fill_TL23_L43
3 Fill_TL25_L41
4 Fill_TL26_L42
5 Fill_TL27_L40

!Pasted image 20250201161523.png

DINT diAppo

FOR #i := 0 TO 49 DO
    #atFromHenkel[#i] := "FromHenkel".di[#i];
    CASE #i OF
        0, 10, 20, 35..40, 44..49:
            #diAppo.%B3 := #atFromHenkel[#i].%B2;
            #diAppo.%B2 := #atFromHenkel[#i].%B3;
            #diAppo.%B1 := #atFromHenkel[#i].%B0;
            #diAppo.%B0 := #atFromHenkel[#i].%B1;
            #atFromHenkel[#i] := #diAppo;
        ELSE
            #diAppo.%W0 := #atFromHenkel[#i].%W1;
            #diAppo.%W1 := #atFromHenkel[#i].%W0;
            #atFromHenkel[#i] := #diAppo;
    END_CASE;
END_FOR;


"ComSV".TL25_WriteToSv.FromHenkel := #FromHenkel;

Already in use:


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

Process to obtain the ActualSku from AB_IDH_BTL:

"FromHenkel".di -> AB_IDH_BTL -> ReqActualCustomProdNum -> Search( AlplaSkuList ) -> ActualSku -> ProdFamily -> PLC Recipe

HENKEL Communication Data Analysis

Data Array Structure (di[0] to di[49])

Control Words and Status (di[0] - di[1])

Position Data Type Description Processing
di[0] DWORD Status Word (STW) 4-byte swap required
di[1] DWORD Control Word (CTW) 2-byte word swap

Batch Information Fields

Field Array Positions Description Processing Type
PO_NUMBER di[33]-di[44] Current Production Order Number Character conversion, zero-padding
AB_IDH_BTL Direct mapping Actual Batch Bottle ID Space/null replaced with '0'
AB_IDH_CON Not directly visible Actual Batch Container ID Space/null replaced with '0'
PO_NUMBER_NEXT Mapped after PO_NUMBER Next Production Order Character conversion, zero-padding
NB_IDH_BTL Direct mapping Next Batch Bottle ID Space/null replaced with '0'
NB_IDH_CON Not directly visible Next Batch Container ID Space/null replaced with '0'
PO_NUMBER_NEXT2 di[1]-di[3] Second Next Production Order Direct transfer, no processing
IDH_BTL_NEXT2 di[7]-di[9] Second Next Batch Bottle ID Direct transfer, no processing
IDH_CON_NEXT2 di[4]-di[6] Second Next Batch Container ID Direct transfer, no processing

Data Processing Requirements

Data Type Processing Steps Purpose
Status Words 4-byte swap for positions 0,10,20,35-40,44-49 Align byte order for system compatibility
Word Data 2-byte swap for other positions Standardize data format
Character Data Replace spaces/nulls with '0' Ensure consistent string handling
Numeric Data Conversion to appropriate format Enable mathematical operations

NEXT2 Implementation Considerations

The addition of NEXT2 fields will utilize previously spare array positions:

  1. New Data Fields and Positions
    • PO_NUMBER_NEXT2: di[1]-di[3]
    • IDH_BTL_NEXT2: di[7]-di[9]
    • IDH_CON_NEXT2: di[4]-di[6]

CustomProdNum:

Client Side (From HENKEL to Server):

In "Client - FC COM Data - QE1 from to Henkel.txt": The process begins with data reception from HENKEL through an array of 50 positions (0 to 49). The script implements specific byte-swapping operations based on array positions:

For positions 0, 10, 20, 35-40, and 44-49, it performs a four-byte swap where:

In "Client - FormatManagementQE1_G.txt":


The script manages the format change cycle and processes the data through several states:

  • Monitors the calculated bottles remaining
  • Tracks format change status
  • Manages batch transitions
  • Handles communication with Henkel regarding line status

Server Side (Processing and SKU Management):


In "Server - 10.01_SkuManage_G.txt": The server implements an indexing system for managing SKU requests:

  • Maintains a cycling index (0 to 5) for line management
  • Processes both actual and next batch requests simultaneously
  • Implements search functionality through the AlplaSkuList database

The search process includes:

  • Comparing requested CustomProdNum against stored values
  • Updating search flags for tracking purposes
  • Managing both current and next SKU searches independently

In "Server - TL25_ComAlpa_G.txt": This script handles the communication interface between systems:

  • Processes status words and counters
  • Manages batch information transmission
  • Handles character conversion for batch numbers
  • Implements communication monitoring with timeout detection

The server references the "10_FromAlplaSkuList_D" database which contains:

  • Article Version (Av)
  • Article Description (AvDesc)
  • Product Family ID (ProdFamily)
  • CustomArticleNum (12-character identifier)

Return Data Flow: When a match is found in the AlplaSkuList, the server:

  • Returns the complete SKU information
  • Provides the corresponding product family number
  • Updates the line status accordingly
  • Sets appropriate flags for format change management

The system maintains data integrity through:

  • Regular communication checks
  • Status word verification
  • Error flag management
  • Timeout monitoring

This software architecture ensures reliable data translation between HENKEL's batch information and ALPLA's product family system, with proper error handling and status tracking throughout the process.

Data_To_EbConvey Array Structure Documentation

Machine Status Words

Position Data Type Processing Description
di[0] DINT 4-byte swap Main Status Word (STW) - Contains Life Bit (bit 31) and overall machine status
di[10] DINT 4-byte swap Labeler Status Word - Machine status and running conditions
di[20] DINT 4-byte swap Filler Status Word - Contains filler machine ready and running conditions

Machine Operating Parameters

Position Data Type Processing Description
di[11] DINT 2-byte word swap Labeler Infeed Speed
di[12] DINT 2-byte word swap Labeler Machine Speed
di[13] DINT 2-byte word swap Master Filler Speed Command to Merge Slave
di[14]-di[15] DINT 2-byte word swap Duplicate Labeler Speed Values
di[16] DINT 2-byte word swap Spare
di[21] DINT 2-byte word swap Filler Infeed Belt Speed
di[22] DINT 2-byte word swap Processed Quantity
di[23] DINT 2-byte word swap Calculated Bottles Remaining to Fill

Current and Next Batch Information

Position Data Type Processing Description
di[33]-di[38] CHAR Character conversion Current Batch Production Order Number (PO_NUMBER)
di[39]-di[44] CHAR Character conversion Next Batch Production Order Number (PO_NUMBER_NEXT)
di[17]-di[19] SINT 2-byte word swap SAP/SKU Data for Current IDH_CUP
di[24]-di[26] SINT 2-byte word swap SAP/SKU Data for Current IDH_SPOUT
di[27]-di[32] SINT 2-byte word swap SAP/SKU Data for Current IDH_CUP

NEXT2 Batch Information (New Implementation)

Position 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)

System Control and Reserved Fields

Position Data Type Processing Description
di[45]-di[49] DINT 4-byte swap Reserved for system control words

With AUTEFA there is communication with the Next + 1


!Pasted image 20250204094751.png

DB2019 / FB 2014

!Pasted image 20250204095414.png

HENKEL Alpla Vetromeccanica AUTEFA
Before Changeover Sends IDH_BTL_NEXT number to be validated
Data_To_EbConvey[38]
Validates IDH_BTL_NEXT is valid number and send acknowledge
Data_From_EbConvey[0].2
Step 1 Operator manually selects "Line Clearance" (?) and send signal "0" on "CalculatedBottlesRemainingToFill".
Data_To_EbConvey[23]
Step 2 Stops taking bottles out of trays and sends what is already on the tables and conveyors. Emptying Merger and Line Stops taking bottles out of trays and sends what is already on the tables and conveyors.
N/A TG10 Send 0 in Bottles for Actual Batch
Step 3 Operator verifies line is empty and sends "changeover request" signal after last bottle goes thorugh filler.
Data_To_EbConvey[0].0
Step 4 Operator verifies line is empty and sends "line is busy with changeover", confirming on Popup screen
Data_From_EbConvey[0].0
Step 5 Starts changeover Starts changeover
Data_From_EbConvey[0].0 Data_From_EbConvey[0].0
Step 6 Ends changeover. Sends signal "Changeover is finished and ready. Ends changeover. Sends signal "Changeover is finished and ready.
Data_From_EbConvey[0].1 Data_From_EbConvey[0].1
Step 7 Send Reset counters signal Reset Counters
Data_To_EbConvey[0].1
Step 8 Send new value on "CalculatedBottlesRemainingToFill".
Data_To_EbConvey[23]
Step 9 Send Changeover Complete. To be considered "Production Ready" Starts conveying bottles. Finish Chanover Cycle
Data_To_EbConvey[0].2