Che cosa fa Sun Tech WCS

Questa pagina descrive che cosa fa il motore di Sun Tech WCS, senza codice: come rappresenta l'impianto, come sceglie le rotte, come dialoga con il WMS e che cosa espone agli altri sistemi. Il dettaglio tecnico sta nella documentazione del repository.

L'impianto come dato

L'impianto è fatto di dispositivi (i punti) e giunzioni (le frecce orientate che li collegano), salvati nel database del WCS. All'avvio diventano un grafo su cui il motore calcola le rotte. Una macchina in più è un punto in più nel disegno, non codice in più.

I tipi di dispositivo sono sette: automazione, carico, buffer, magazzino, distributore circolare, gruppo di dispositivi automatici, carico e buffer insieme. Come si modella un impianto lo spiega la guida Modelling a plant.

Le rotte

  • Vince il percorso con meno salti; a parità di salti, quello meno affollato. La priorità delle giunzioni decide l'ordine in cui il motore esplora le strade.
  • Non usa tempi stimati, per scelta: la rotta si ricalcola a ogni salto guardando lo stato reale dei dispositivi.
  • Si possono imporre passaggi obbligati, gruppi di dispositivi da attraversare una volta sola e livelli diversi dello stesso impianto.
  • I dispositivi fuori linea vengono evitati. Se non c'è alternativa, il motore riprova considerandoli: un impianto degradato continua a lavorare invece di fermarsi.

Missioni e stati dei dispositivi

Una missione è un'unità di carico, una destinazione e un tipo: stoccaggio, estrazione, cambio di ubicazione, scarto, deframmentazione e gli altri previsti dal motore. I passi della missione si creano un salto alla volta.

Ogni dispositivo ha uno stato: pronto, in movimento, in carico, in scarico, occupato, in recupero, fuori linea, bloccato, avviso, errore. «Errore» è uno stato logico, cioè l'ultimo comando non è andato a buon fine: non è un allarme di campo.

Il dialogo con il WMS

Il lavoro lo chiede il WCS. Quando il motore è in marcia, una volta al secondo domanda al WMS che cosa c'è da fare: estrazioni da eseguire, note di spedizione. Il WMS non spinge ordini.

I fatti fisici, come un'unità arrivata in cella, tornano al WMS da code durevoli: vengono consegnati almeno una volta, con una ricevuta, e sopravvivono a un riavvio e a un WMS spento. Se il WMS non risponde il motore continua a girare: le missioni che dipendono da lui aspettano, e i fatti partono quando torna.

La logica di magazzino

Il WCS gestisce la coda di estrazione, le prenotazioni delle celle, le celle a più profondità, la deframmentazione, i gruppi di dispositivi e i punti di scarto. È la parte che sta fra «portare un pallet da A a B» e un impianto che lavora tutto il giorno.

API, eventi e contratti

  • Un'API HTTP con 66 operazioni, protetta da una chiave, per comandare il motore, i dispositivi e le unità di carico e per leggere lo stato.
  • Un canale di eventi in tempo reale (SignalR): cambi di stato dei dispositivi, missioni, coda di estrazione, comandi.
  • Un client .NET tipizzato, con riconnessione automatica agli eventi.
  • I contratti in formato OpenAPI 3.1, generati dal codice e verificati a ogni modifica.

Esercizio

Il WCS gira come servizio Windows e tiene i suoi dati in SQLite, senza un database server da installare. Ha uno strumento per il backup, la verifica e il ripristino anche a motore acceso, uno storico mensile delle operazioni e degli spostamenti, e tre script di monitoraggio. Il dettaglio è nella pagina sicurezza ed esercizio.

Che cosa non c'è ancora

La libreria Viewer, che tiene una copia in sola lettura dello stato, è sperimentale. La logica di un tipo di dispositivo nuovo oggi richiede di modificare il motore: renderla estendibile è una direzione dichiarata dal progetto, non ancora specificata. L'elenco completo è nei known limitations.

Volete vederlo all'opera? L'impianto d'esempio gira su una macchina Windows in una quindicina di minuti, senza macchine e senza un WMS vostro. Come iniziare

Da leggere dopo: integrazione con un WMS · editor dell'impianto · Sun Tech WCS