Passa al contenuto principale

Servizio Microsoft in Backgruond

All'avvio del servizio vengono avviati i seguenti WorkerService:

  1. ImpinjWorker
  2. BilanciaWorker
  3. DBWorker

NotificatoreHubClient: gestisce la comunicazione SignalR tra servizio LineaImballaggioService e WebApp MonitorConnessioni

ConnessioneDB MSSQLLineaImballaggioDB

SeriLog: gestione sia su File che su DB

Varibili presenti nell'AppConfig:

  • IpImpinj: IP Locale dell' Gateway INPINJ
  • IpBilancia: IP Locale della Bilancia collegata tramite OPCUA
  • URIBilancia: Indirizzo URL OPCUA
  • SecondiBilancia: Secondi di controllo se la lettura pesata tramite OPCUA è già stata salvata per lo stesso PESO e stesso RFID
  • MinutiLetturaRFID: Minuti di controllo se lo stesso RFID è già stato letto
  • NotificatoreHubIP: IP del Server SignalR
  • Dir_Archivio: Root principale del Cartella di Archiviazione dei DATI 
  • Dir_Csv: Sotto Cartella di Archiviazione dei DATI in formato .csv
  • Giorni_Storico: Num dei giorni antecedenti che verranno archiviati nei file .csv
  • IsNotificatore: Flag di abilitazione per la gestire dello scambio di messaggi SignalR
  • IsAvviaFlussoLogico: Flag di abilitazione per la logica di gestione del pacco
  • IsTest: Flag di abilitazione se in ambiente di TEST
  • GiorniPuliziaLogDB: Numero dei giorni antecedenti per la pulizia delle tabelle di LOG
  • tentativiConn: Numero di tentativi di riconnessione all' Inpinj in caso di fallimento
  • secondiAttesa: Secondi di attesa al prossimo tentativo di riconnessione all' Inpinj in caso di fallimento

 

LOGICA FUNZIONAMENTO E ORDINE COMUNICAZIONE CON GLI APPARATI:

Il worker che comunica con l'Impinj resta in ascolto del passaggio dell'epc/RFID e una volta arrivato lo salva in tabella ed anche in una variabile globale UltimoEPCInserito.

Il worker che comunica con la bilancia continua a chiedere la presenza del pallet alla bilancia e una volta individuato il pallet, invoca la funzione principale dell'ImballaggioService (SalvaPesoAsync).

Il service prende il valore inserito nella variabile globale UltimoEPCInserito aggiungendo un'attesa di 3 secondi in caso di ritardo nella lettura dell'epc/RFID.
Se trova un epc/RFID da abbinare alla pesata lo salvo e avvio la logica altrimenti gestisce l'errore mandando KO