ImballaggioService
La funziona Principale è: SalvaPesoAsync
- Se NON c'è un epc/RFID segue la procedura KoNoRFID
- Se C'E' l'epc/RFID abbinato alla pesata salva la lettura nella tabella: LettureRockwellTb
- Se l'appConfig ha impostato a true l'avvio del flusso logico, inizia la procedura logica
await controllaCampione(customLetturaBilancia);
-
- Cerco nella tabella Pesi_Campione se esiste un pallet con l'epc/RFID letto dalla bilancia
-
- Se E' un CAMPIONE
-
await KoNoCampione(pesoCampione);
-
await Salva_Pallet_Tabella_5_A_Terra
-
- Se E' un CAMPIONE
-
- Se NON è un CAMPIONE
-
await CercaNelleTabelleSTAIN(customLetturaBilancia);
-
- Cerca in Tabella3:
response = await _dbContext.Set<QryTabella3>().OrderByDescending(x=>x.Ncolata)
.FirstOrDefaultAsync(x =>
x.IdPallet == codiceEpc
&& x.Bollettino != 0
&& x.RigaBollettino != 0
&& x.Destinatario.Length > 0
&& x.CodiceApaspedizione.Length > 0
&& x.Stanza.Length > 0
&& x.Corsia != 0
&& x.StatoPacco == 3
&& x.FormatoPacco != "0"
&& x.LunghPani != 0); - Cerca in Tabella4:
-
response = await _dbContext.Set<QryTabella4>().OrderByDescending(x => x.Idrecord)
.FirstOrDefaultAsync(x =>
x.AnnoBollettino == responseTabella3.AnnoBollettino
&& x.Bollettino == responseTabella3.Bollettino
&& x.RigaBollettino == responseTabella3.RigaBollettino
&& x.Stanza.Length > 0
&& x.Corsia != 0);
- Cerca in Tabella3:
-
- Chiede all'OPCUA il numero di colata
- Cerca in Tabella5FineLavoro:
-
response = await _dbContext.Tabella5FineLavoro
.FirstOrDefaultAsync(x => x.IdPallet == codiceEpc && x.Ncolata == ncolata);
- Chiede all'OPCUA il numero di colata
-
-
-
- Gestione CASI:
- CASO 1:
Pallet presente in tabella 3, in tabella 4, non in tabella 5 fine lavoro e il numero di colata del pallet è lo stesso di quello della colata attuale oppure è bypassata la gestione numero colata (num colata == 0) - CASO 2: Pallet presente in tabella 3, in tabella 4, non in tabella 5 fine lavoro, ma il numero colata del pallet è diverso da quello della colata impostata sulla bilancia --> PACCO A TERRA
- CASO 3: Pallet non presente nel DB --> forzare bit di bypass PC nel PLC
- CASO 1:
- Gestione CASI:
- Se NON è un CAMPIONE
CASO 1:

CASO 2:
- Inizializzo variabili OPCUA "KOCaso2" e le invia alla Bilancia
- SalvaPalletTab5_aTerra
CASO 3:
- Se il numero di colata è == 0: Inizializzo variabili OPCUA "KOCaso3Colata" e le invia alla Bilancia
- Se il numero di colata è != 0: Inizializzo variabili OPCUA "KOCaso3" e le invia alla Bilancia