Add new attachment

Only authorized users are allowed to upload new attachments.

This page (revision-1) was last changed on 28-Aug-2023 12:35 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 1 added 115 lines
%%(display:none)
{{{
WikiUp
}}}
/%
[{TableOfContents }]\\
!!! Generalità\\
La pianificazione materiali (MRP) è un algoritmo consolidato ormai da parecchi anni (le prime installazioni risalgono alla metà degli anni sessanta negli Stati Uniti) e quindi ogni nuova implementazione informatica deve necessariamente rifarsi ad esso nel suo modo di operare.\\
Tuttavia, invece di realizzare una struttura rigida di pianificazione, si può pensare ad un "motore" elementare che implementa l'algoritmo MRP, inseribile in un flusso di attività flessibile, che può seguire in modo più efficace le necessità dell'utente.\\
Nella nostra realizzazione abbiamo seguito le seguenti linee guida, nello spirito di tutte le applicazioni Sme.up.:\\
* __Impostazione__ dei dati di base al livello più alto possibile;\\
* __Indipendenza__ dall'ambiente gestionale;\\
* __Modularità__ dei vari passi della pianificazione;\\
* Possibilità di __simulare a video__ ogni singolo passo;\\
* Ampia __parametrizzazione__ delle scelte.\\
Abbiamo poi realizzato una procedura MRP classica, composta dai moduli elementari; è tuttavia possibile, in situazioni particolari, utilizzare soltanto alcuni moduli, ricombinati nel modo opportuno e integrati eventualmente da moduli scritti ad hoc.\\
Nel seguito illustriamo in dettaglio le impostazioni che ci hanno guidato nella realizzazione della applicazione di pianificazione dei materiali.\\
\\
!!! Impostazione dei dati di base al livello più alto possibile\\
L'MRP richiede una notevole quantità di informazioni di base per ogni articolo che tratta:\\
* politica di riordino, che guida la modalità di pianificazione (a fabbisogno, a punto di riordino, modalità di lottizzazione, tipo d'ordine da emettere e se produzione, acquisto o lavorazione, ecc...);\\
* tempi di approvvigionamento (fissi, variabili, di produzione, acquisto e lavorazione);\\
* lotti di approvvigionamento (minimi, multipli e massimi, divisi anch'essi in produzione, acquisto e lavorazione).\\
Uno degli ostacoli iniziali maggiori all'introduzione dell'MRP in azienda è la necessità di dover specificare, per ogni articolo, queste informazioni: se esse sono errate o mancanti possono essere sbagliati i risultati, non solo dell'articolo specifico, ma anche dei suoi componenti, a tutti i livelli in cascata e quindi l'intera pianificazione può risultare inaffidabile.\\
Per ovviare a questo problema, i dati di pianificazione sono inseriti in una struttura a tre livelli di risalita, ciascuno composto da due chiavi definibili liberamente, a livello di generalità crescente.\\
Ad esempio, si può definire una struttura di dati di questo tipo:\\
* livello 1 __Articolo__;\\
* livello 2__ Classe gestionale__;\\
* livello 3 __Generale__.\\
La funzione di reperimento dei dati di pianificazione ha come ingresso l'articolo e ritorna i dati del livello più basso presente (N.B.: livello 1<3), oltre all'informazione del livello da cui ha reperito i dati.\\
\\
[{Image src='immagini/MBDOC_VIS-M5_002/M5_004_01.png' caption='Risalita a "pettine"' width='100%' style='max-width: 100%;'}]\\
!!! Indipendenza dall'ambiente gestionale\\
Le funzioni di pianificazione sono indipendenti dall'ambiente gestionale in cui sono inserite.\\
Tale indipendenza si realizza in tre ambiti:\\
* i dati di base (esposti al punto 1) sono reperiti da un'interfaccia che dipende dall'ambiente impostato, nella voce dei parametri di pianificazione. Si può quindi reperirli, oltre che dalla struttura a tre livelli di Sme.up, da ambienti esterni, con gli opportuni driver;\\
* i singoli eventi in corso, necessari alla pianificazione (giacenze, scorte, entrate e uscite future) vengono ritornati dalla scansione della disponibilità, che è una funzione generale, indipendente dall'ambiente, impostando unicamente un gruppo di fonti. Ciascuna fonte ha definito in sé il modo di reperire le informazioni: oltre a tutte le fonti interne di Sme.up (giacenze, scorte, ordini e impegni di produzione, righe di ciclo esterno attivo e passivo, viste MPS, ecc.), si possono definire fonti utente, che contengono driver specifici ad applicazioni esterne. In questo modo si può costruire, tramite un gruppo fonti opportuno, un profilo di disponibilità e quindi di pianificazione misto, che tratta archivi Sme.up insieme ad archivi di altri applicativi e ad archivi proprietari, oppure una pianificazione totalmente estranea agli archivi Sme.up;\\
* il rilascio dei suggerimenti viene eseguito da una funzione generale che richiama il singolo driver di applicazione, definibile a livello di politica di riordino, tramite la fonte di pianificazione impostato in essa. In questo modo gli ambienti si possono diversificare anche in output, oltre che in input: ad esempio, se la gestione degli acquisti è esterna a Sme.up, si definirà una fonte che leggerà gli acquisti esterni e una politica che pianificherà una fonte d'acquisto, contenente un driver che scriverà a sua volta nell'applicazione di acquisti esterna.\\
\\
!!! Modularità dei passi di pianificazione\\
La modularità si realizza sia in modo esterno (si possono definire flussi pre/post pianificazione) sia in modo interno (i singoli elementi della pianificazione sono realizzati in moduli separati).\\
\\
!! Modo esterno\\
''1)'' La procedura di pianificazione può essere preceduta e seguita da flussi di attività;\\
\\
''2)'' è possibile impostare un flusso pre/pianificazione che esegua un'elaborazione MPS per determinare il piano principale di produzione, che avrà come risultato una o più viste comprese nel gruppo fonti trattato dalla pianificazione;\\
\\
''3)'' è inoltre possibile impostare un flusso post/pianificazione, che esegue le stampe opportune dei risultati della pianificazione, oppure che li consolidi in viste MPS.\\
\\
!! Modo interno\\
''1)'' Il motore di pianificazione vero e proprio;\\
\\
''2)'' la determinazione del lotto da pianificare;\\
\\
''3)'' la suddivisione in più ordini (per pianificazione mista interna/esterna oppure per suddivisione tra più fornitori dello stesso fabbisogno);\\
\\
''4)'' la scelta del/dei fornitori con le relative percentuali di assegnazione;\\
\\
''5)'' il calcolo delle date in funzione del tempo di approvvigionamento e delle quantità;\\
\\
''6)'' i suggerimenti di riduzione e spostamento in funzione dei lotti e dei periodi;\\
\\
''7)'' la pianificazione a livello inferiore degli ordini pianificati;\\
\\
''8)'' l'applicazione dei suggerimenti.\\
\\
Alcune tra queste funzioni sono richiamate dall'interno di altre e comunque esiste la possibilità di usufruirne in altre applicazioni.\\
\\
!! Possibilità di simulazioni a video\\
La modularità dei passi di pianificazione si presta in modo nativo ad una simulazione a video del loro comportamento.\\
È possibile, ad esempio:\\
* simulare l'applicazione di un suggerimento;\\
* simulare la pianificazione di un nuovo fabbisogno, eventualmente diviso in quote di produzione interna ed esterna;\\
* verificare la modalità di assegnazione del fornitore preferenziale;\\
* simulare il calcolo delle date a partire dai tempi di approvvigionamento;\\
* oltre a tutto questo, è stata realizzata una funzione specifica di simulazione della pianificazione (set'n play), che permette, dopo aver impostato un articolo, di verificare a video i risultati della pianificazione, sia impostando un gruppo fonti (ed eventualmente modificando manualmente alcune di esse), sia immettendo nuovi fabbisogni e coperture.\\
* viene eseguito fisicamente lo stesso motore dell'MRP dell'applicazione reale: in questo modo l'utente può verificare (play) il modo di operare di qualsiasi situazione di pianificazione.\\
* può essere anche uno strumento didattico di ausilio nell'istruzione di nuovi utenti sugli argomenti di pianificazione materiali;\\
* è inoltre possibile, rimanendo all'interno del simulatore, consultare ed eventualmente modificare i parametri di pianificazione dell'articolo in esame (a tutti i livelli) e i parametri delle politiche\\
coinvolte: tali modifiche hanno effetto immediato sulla successiva simulazione;\\
* ciò è di aiuto nell'impostazione iniziale (set) dei parametri di pianificazione, garantendo la massima visibilità del loro modo di influenzare i risultati.\\
\\
!!! Parametrizzazione delle scelte di pianificazione\\
L'ampia parametrizzazione permette di ottenere un gran numero di comportamenti diversi, in certe condizioni anche non ortodossi, ma comunque fonti di apertura a situazioni non preventivate:\\
* il tipo oggetto del codice di rottura (ad esempio la configurazione, la commessa, l'esponente di modifica), che si aggiungerà all'articolo nel definire l'oggetto elementare della pianificazione e se tutti gli articoli verranno gestiti a codice di rottura, evitando di specificare tale informazione per tutte le politiche;\\
* la modalità di trattamento dei tempi di approvvigionamento (se lavorativi o di calendario), separatamente per gli ordini di produzione, d'acquisto e di lavorazione. Si può quindi, realisticamente, considerare per l'interno i giorni lavorativi e per l'esterno quelli di calendario (ricordiamo che, nel caso di giorni lavorativi, verrà considerato il calendario della risorsa definita a livello di magazzino);\\
* la possibilità di suggerire aumenti a ordini in corso, piuttosto che emetterne di nuovi;\\
* se eseguire il ricalcolo del livello minimo prima della pianificazione e, in alternativa, a tenerlo fasato dinamicamente. Ciò può essere utile in caso di distinte complesse, con vari livelli e centinaia di\\
legami, per le quali l'inserimento di un livello può comportare tempi di ricalcolo proibitivi;\\
* la modalità di datazione della scorta minima: alla data di pianificazione oppure avanzata del tempo di approvvigionamento, in modo da non produrre turbamenti (ordini scaduti) all'atto del suo\\
consumarsi;\\
* il periodo di raggruppamento per definire la quantità da coprire all'atto di emissione di un ordine pianificato (uno ad uno, in numero di giorni, settimane o mesi, oppure in base a una data periodicità) e la modalità di trattamento del lotto, se superiore al lotto massimo (segnalazione, divisione in serie o in parallelo);\\
* la modalità di pianificazione (se a fabbisogno, a punto di riordino, se articolo escluso dalla pianificazione);\\
* la fonte di pianificazione che verrà assegnata all'ordine pianificato: dato che la fonte ha, tra le sue caratteristiche, il driver di applicazione del suggerimento, si può diversificare il portafoglio di rilascio nell'ambito della stessa fonte pianificata (produzione / acquisto / lavorazione). Ad esempio, si può decidere che, all'atto del rilascio, gli ordini pianificati d'acquisto si trasformino, per certi articoli, in richieste d'acquisto, mentre per altri con politica diversa, direttamente in ordini;\\
* la modalità di costruzione degli impegni pianificati (fonte, tipo distinta e tipo scansione della distinta stessa). Ad esempio, per certi articoli, è possibile pianificare ordini di produzione che non diano luogo a impegni, oppure selezionare una scansione distinta riepilogata ai materiali di base, ottenendo un comportamento come se tutti i codici intermedi di distinta fossero particolari fantasma;\\
* il gruppo fonti che, a livello di politica, può sostituire quello impostato all'atto del lancio della pianificazione (e che ne costituisce l'input). Ciò induce a una flessibilità estrema: si può, ad esempio, considerare la scorta minima soltanto per alcuni articoli;\\
* la modalità di assegnazione dell'ente o degli enti a cui si assegneranno gli ordini pianificati di acquisto e lavorazione, che quindi può essere diversa in funzione dell'articolo;\\
* se l'articolo deve essere pianificato per codice di rottura, nel caso sia stato definito, a livello generale, il codice di rottura stesso. Può essere quindi realizzata una pianificazione mista, che è interessante se il codice di rottura coincide con la commessa. Per un articolo pianificato a commessa, vengono proposti ordini di produzione che generano impegni contenenti la commessa. All'atto della pianificazione dei componenti gestiti a commessa, quest'ultima verrà trasferita nel codice di rottura e quindi ribaltata sui loro impegni. Nei componenti gestiti globalmente, la commessa rimarrà un'informazione sull'impegno, che non si riporta sull'ordine, determinando l'interruzione della catena;\\
* la fonte di eccedenza presente: se impostata, verrà dato un suggerimento di eliminazione con data a zero per la quantità di giacenza eccedente, inutile per la pianificazione;\\
* la fonte di eccedenza futura: se impostata, verrà dato un suggerimento di eliminazione per la quantità superflua alla data di disponibilità dell'ordine (se l'ultimo ordine in corso non potrà essere ridotto completamente, per motivi di lottizzazione; se l'ultimo ordine pianificato dovrà essere ridotto per una quantità superiore a quella necessaria, sempre per motivi di lottizzazione);\\
* la politica di produzione, di acquisto e di lavorazione. Se inserita solo una politica, l'articolo verrà pianificato conformemente alla colonna in cui è inserita la politica. Se inserita più di una politica, si dovrà assegnare per ciascuna la percentuale di assegnazione (con quadratura a cento) e si otterrà una pianificazione mista (ad esempio parte di produzione e parte di lavorazione esterna);\\
* per ogni politica impostata, i tempi di approvvigionamento fisso, variabile, di rettifica e il lotto minimo, multiplo e massimo.\\
\\
!!! Considerazioni finali\\
!! Orizzonte di pianificazione\\
Un parametro di esecuzione della pianificazione è la data di lancio, che serve unicamente a datare le fonti negative con data zero (le scorte, a meno che sia stato scelto lo spostamento in avanti, le giacenze negative nel caso in cui le si voglia trattare come fabbisogni, ecc...). Non viene fatto nessun tentativo di salvaguardare la pianificazione dall'emissione di ordini con inizio e/o fine scaduta: l'orizzonte di pianificazione è totalmente aperto all'indietro, in modo da riuscire a valutare completamente la gravità dello scaduto.\\
Se si portasse ad oggi la partenza di un ordine da pianificare nel passato, i suoi impegni sarebbero datati ad oggi (in assenza di tempi di rettifica sul legame). Se anche per essi si dovessero pianificare\\
nuovi ordini, avrebbero la data di inizio scaduta, che verrebbe portata ad oggi, con la conseguenza irrealistica di avere i due ordini (uno dipendente dall'altro) pianificati con la stessa data inizio di oggi.\\
\\
!! Anticipo/Emissione nuovi ordini\\
Quando si presenta una rottura di stock, la nostra pianificazione cerca sempre di anticipare ordini futuri, emettendo nuovi ordini solo per la parte che non riesce ad anticipare.\\
Questo comportamento, oltre ad essere intuitivo e con comportamento prevedibile, evita (mettendo una soglia in giorni al massimo anticipo ammissibile) che il sistema suggerisca l'annullamento di un ordine, per poi suggerire l'emissione di uno nuovo, posto dopo la soglia di massimo anticipo.\\
\\
!!! Esempi di output\\
[{Image src='immagini/MBDOC_VIS-M5_002/M5CMRP_01.png' caption='Scheda lancio analisi' width='100%' style='max-width: 100%;'}][{Image src='immagini/MBDOC_VIS-M5_002/M5CMRP_02.png' caption='Scheda indici MRP' width='100%' style='max-width: 100%;'}][{Image src='immagini/MBDOC_VIS-M5_002/M5CMRP_03.png' caption='Scheda quantità superflue' width='100%' style='max-width: 100%;'}][{Image src='immagini/MBDOC_VIS-M5_002/M5CMRP_04.png' caption='Scheda situazione Kernel' width='100%' style='max-width: 100%;'}][{Image src='immagini/MBDOC_VIS-M5_002/M5CMRP_05.png' caption='Andamento grafico della disponibilità' width='100%' style='max-width: 100%;'}][{Image src='immagini/MBDOC_VIS-M5_002/M5CMRP_06.png' caption='Scheda suggerimento' width='100%' style='max-width: 100%;'}][{Image src='immagini/MBDOC_VIS-M5_002/M5CMRP_07.png' caption='Scheda coperture - fabbisogni' width='100%' style='max-width: 100%;'}][{Image src='immagini/MBDOC_VIS-M5_002/M5CMRP_08.png' caption='Scheda peg-down a scalare' width='100%' style='max-width: 100%;'}]
This page has only one version
«