Consulenza

Programmazione e pianificazione della produzione con FrePPLe 3/5 - Un modello di esempio

Questo articolo fa parte della serie:

FrePPLe viene fornito con un modello di esempio che serve a capire i concetti principali. Per caricarlo, una volta effettuato il login, basta andare nel menù alla voce "Admin/Execute/Amministra" e scegliere l'opzione "Empty the database/svuota il database". Fatto ciò basta caricare il dataset "tutorial 1" da "Load a dataset/Carica un dataset".


L'azienda di esempio è composta da due fabbriche. Nella prima fabbrica i prodotti possono essere fabbricati, immagazzinati e poi confezionati. La seconda fabbrica, invece, può solo confezionare i prodotti che gli vengono inviati dalla prima fabbrica. Le materie prime per la produzione sono acquistate con un certo lasso di tempo (lead time o tempo di approvvigionamento) da fornitori esterni. Nell'esempio si assume una fornitura infinita di materiale di confezionamento. I clienti possono essere forniti con i prodotti di entrambe le fabbriche, e si preferisce consegnare dalla fabbrica vicina al cliente. Solo quando la fabbrica più vicina non può trasportare in tempo la merce richiesta sarà l'altra fabbrica ad essere selezionata come alternativa.

Di seguito una panoramica dei dati che compongono il modello. Prima di iniziare è bene specificare che tutti i dati possono essere importati o esportati in fogli excel oppure si possono realizzare delle integrazioni per alimentare automaticamente i dati di FrePPLe da quelli presenti nel proprio gestionale.

  • Calendario (Calendar): Un calendario modella un valore che varia nel tempo. Può essere ad esempio la capacità produttiva di una risorsa, l'orario di lavoro in una fabbrica, la scorta di sicurezza in un buffer, ecc. Ad esempio se normalmente la capacità produttiva di un macchinario è due unità alla volta, ma quando viene fatta la manutenzione questa capacità scende a una unità alla volta, allora il calendario indicherà un valore 2 di default e 1 nei periodi di manutenzione. Un altro esempio potrebbe essere il calendario lavorativo (nei dati del tutorial "Working Days") che vale 1 dal lunedì al venerdì e 0 il sabato e la domenica. Quando si definisce un calendario oltre ad indicare il nome, si utilizzano i Bucket di Calendario (Calendar Buckets) per specificare le variazioni al valore di default del calendario. Un Bucket di Calendario specifica una variazione al valore di default del calendario in un intervallo di tempo. In altri termini il valore del calendario in una certa data è il valore di default se in quella data non c'è nessun bucket definito oppure è il valore del bucket con priorità inferiore che comprende quella data. Ad esempio se volessi modellare il calendario di un dipendente potrei indicare che di default vale 1 e inserire i bucket relativi alle sue ferie con valore 0.

  • Locazione (Location): Una locazione è un luogo dove si trovano le risorse, i buffer e le operazioni (Es. potrebbe essere una fabbrica, una zona di una frabbrica, ecc.). Le locazioni possono essere fisiche o logiche. Nell'immagine le locazioni sono contrassegnate con il rettangolo nero attorno alle altre entità. Nel definire una locazione è anche necessario indicare qual è il calendario associato a tale locazione per indicare le ore di lavoro e le ferie. Es. se l'azienda ha uno stabilimento produttivo in Cina e uno in Italia probabilmente il calendario lavorativo in Cina è diverso da quello in Italia.

  • Operazione (Operation): Un'operazione rappresenta un'attività, consuma e produce materiali, impiega un certo tempo e richiede una certa capacità produttiva. Il consumo di materiale è modellato come un flusso. Il consumo di capacità produttiva delle risorse è modellato come un carico. Nell'immagine in alto le operazioni vengono indicate con un rettangolo rosso. Ci sono diversi tipi di operazioni:

    • Operazioni Fixed_time: durano sempre per un periodo determinato di tempo, a prescindere dalla quantità prodotta o trasformata.
    • Operazioni Time_per: richiedono una durata proporzionale alla quantità prodotta.
    • Operazioni Alternative: modellano una scelta tra diverse opzioni. Le alternative sono elencate come sotto-operazioni.
    • Operazioni Routing: modellano una sequenza di operazioni da eseguire in sequenza. I passaggi sono elencati come sotto-operazioni.
  • Articoli (Item): Un articolo rappresenta un prodotto finito, prodotto intermedio/semilavorato o una materia prima.

  • Buffer: Un buffer è un punto di raccolta per gli articoli. Rappresenta un luogo in cui è conservato l'inventario di un elemento. Le operazioni consumano materiale o lo producono in buffer utilizzando i flussi. Ci sono diversi tipi di buffer:

    • Buffer Infiniti: hanno una fornitura a tempo indeterminato e illimitato, in altri termini si assume che non limiteranno mai la produzione.
    • Buffer di default: hanno una fornitura limitata, nel definirli va indicato, nel campo produttore, qual è l'operazione che va pianificata per rifornire il buffer.
  • Flusso (Flow): I flussi sono utilizzati per modellare il consumo e la produzione di materiale. I flussi creano un collegamento/assiocation tra un'operazione e un buffer. Nella figura sopra i flussi sono visibili come frecce tra un buffer e un'operazione. Le frecce che vanno dal buffer all'operazione rappresentano il consumo di materiale, mentre le frecce che partono dall'operazione e finiscono nel buffer rappresentano la produzione di materiale.

  • Risorse (Resource): Le risorse rappresentano delle risorse produttive con una certa capacità. Esempi di risorse possono essere un macchinario, un lavoratore o un gruppo di lavoratori, ecc. Le operazioni consumano la capacità produttiva delle risorse per mezzo dei carichi di utilizzo o load. Nell'immagine ad ogni operazione è associata una risorsa per mezzo della linea tratteggiata. Ogni risorsa è associata a un calendario che ne determina la variazione della massima capacità produttiva disponibile col variare del tempo. Ad esempio la risorsa lavoratore sarà associata al calendario che indica che la sua capacità produttiva è 1 durante il suo turno e 0 fuori dalle ore del suo turno.

  • Utilizzo/Carico (Load): I carichi sono utilizzati per modellare il consumo della capacità produttiva di un'operazione. Nella figura sopra vengono visualizzati come una linea tratteggiata. Durante tutta la durata di una certa operazione pianificata verranno occupate e utilizzate le risorse associate in base al carico richiesto.

  • Domanda (Demand): Definisce gli ordini e le richieste dei vari articoli. Possono essere gli ordini dei clienti, effettivi o previsti. La domanda effettiva non viene mostrata nell'immagine, ma si vedono sulla destra le operazioni di consegna necessarie a soddisfare la domanda. In questo esempio le operazioni di consegna sono delle alternative, perché devono modellare la possibilità di soddisfare la domanda da entrambe le fabbriche. Nella modellazione dei dati, le richieste sono associate alle operazioni che devono essere svolte per soddisfare la domanda.

  • Parametri di pianificazione (Parameter): la tabella dei parametri permette di definire i parametri di pianificazione. Tra questi molto importanti sono:

    • currentdate: indica la data di inizio pianificazione. Esempio se pianifico di settimana in settimana, all'inizio di ogni settimana dovrò impostare questo parametro con la data di inizio della settimana.

    • loading_time_units: è facoltativo e permette di indicare l'unità di misura temporale utilizzata nel report sul carico di utilizzo delle risorse. I valori possibili sono ore (hours), giorni (days) o settimane (weeks).

  • Time buckets: i time buckets permettono di definire le varie risoluzioni temporali con cui visualizzare i report. Possono essere definiti manualmente o, se non già presenti, possono essere caricati facilmente. Per caricarli basta utilizzare il preset "dates" che popola in automatico i possibili bucket: giornalieri, mensili, settimanali, ecc.

  • Percorso di fornitura: Una volta modellato il sistema e inseriti tutti i dati di input è possibile verificare che rispecchi il modello mentale dell'utente utilizzando la funzionalità "Percorso di fornitura" che mostra l'immagine seguente. Per richiamare questa funzionalità basta andare sull'articolo finale della produzione e dal suo menù contestuale scegliere la voce "Percorso di fornitura". È possibile seguire la catena di approvvigionamento "verso valle", vale a dire a partire dalle materie prime e passo dopo passo verso il prodotto finale. Basta cliccare su un'operazione, una risorsa o un buffer e scegliere la voce "dove viene usato" nel menù contestuale. È anche possibile seguire la catena di fornitura "verso monte", cioè partendo dal prodotto finale a ritroso.

ATTENZIONE: SERVIZIO DI CONSULENZA SOSPESO#

Non offriamo più questo tipo di consulenza.

Questo articolo resta per documentare un'attività che abbiamo svolto in passato, ma che non facciamo più.

Votazione pagina#

[Voti: 27 Media voto: 4.6/5]
Autore: Lorenzo Chiodi
Senior software developer con più di 10 anni di esperienza nello sviluppo di soluzioni web based, enterprise, su misura. Dal 2011 socio fondatore di Garda Informatica Snc condivide questa avventura col fratello Giovanni.

Promemoria sui Cookie e sulla Privacy

Leggi l'informativa
closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menu