Add new attachment

Only authorized users are allowed to upload new attachments.

This page (revision-1) was last changed on 28-Aug-2023 14:15 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 249 lines
%%(display:none)
{{{
WikiUp
}}}
/%
[{TableOfContents }]\\
!!! Introduzione\\
\\
Le azioni manuali che si possono eseguire, all'interno del Gantt, per modificare i risultati della schedulazione sono:\\
\\
1 - forzatura di un task sulla risorsa specifica in cui si trova\\
2 - forzatura di un task su un'altra risorsa specifica\\
3 - eliminazione forzatura\\
4 - congelamento della parte iniziale della coda\\
5 - modifica dell'ordinamento del congelamento (sia prendendo un task della stessa coda sia da quella di un'altra risorsa specifica della stessa risorsa principale)\\
6 - Immissione di un vincolo esterno al più presto.\\
7 - eliminazione (totale o parziale) di un congelamento\\
\\
Tutte queste azioni modificano il risultato della schedulazione, ma lo si può conoscere solo eseguendo un'altra schedulazione.\\
La funzione qui descritta ha il fine di presentare un'anteprima dei punti 5, 6 e 7.\\
\\
.\\
!!! Situazione in assenza di RPW\\
\\
Partendo da questa situazione\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_01.png' caption='' width='100%' style='max-width: 100%;'}].\\
Spostiamo il task W160039 (freccia rossa) a destra del task W1411054 si intende posizionarlo tra questo task (freccia blu) e il task W160043, realizzando una coda congelata fino al task spostato.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_02.png' caption='' width='100%' style='max-width: 100%;'}]..\\
Al rilascio del mouse il task spostato si piazza con inizio a metà tra l'inizio del precedente e del successivo, mostrando il nuovo ordinamento dei task, come evidenziato dalla colonna numero forzatura (rettangolo rosso). Lo spostamento a metà ha il solo scopo di modificare l'ordinamento senza alterare la datazione di tutta la coda della risorsa.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_03.png' caption='' width='100%' style='max-width: 100%;'}]..\\
Alla successiva schedulazione (eseguibile anche da questo formato) viene ricalcolata la coda mettendo in sequenza corretta i tre task.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_04.png' caption='' width='100%' style='max-width: 100%;'}].\\
Questo comportamento (realizzato per semplicità ma che comunque raggiunge il suo scopo) risulta abbastanza ostico agli utenti, non risultando chiaro il motivo del posizionamento anomalo del task spostato, che rappresenta un'intenzione e non una reale datazione. D'altra parte, eseguire una schedulazione globale in automatico ad ogni spostamento potrebbe risultare pesante (in certi casi dell'ordine di qualche minuto).\\
\\
.\\
!!! La RPW\\
\\
Per ovviare a questo fastidio abbiamo realizzato una nuova funzione a cui abbiamo dato il nome RPW (rough preview: anteprima grezza), che viene attivata con un'impostazione nello script dei parametri.\\
\\
Quando si esegue uno spostamento nella zona congelata, il nuovo task viene comunque posto come inizio a metà tra gli inizi delle operazioni precedenti e successive in cui si pone.\\
Se attiva la RPW, dopo ave spostato il task si ricalcolano l'inizio e la fine di tutti i task della coda in cui è stato eseguito, tenendo conto dei VPP (vincoli al più presto) di ognuno di loro e, nel ripresentare il Gantt la coda apparirà "stirata" come dopo una normale schedulazione. Il nuovo comportamento si sovrappone al precedente spostamento intermedio.\\
\\
I motivi per cui questa anteprima è grezza sono molteplici: la modifica del congelamento altera il profilo del carico di ogni risorsa, e quindi i task della zona libera potrebbero essere piazzati su altre risorse specifiche, il diverso ordinamento dei task modifica il VPP del task successivo dello stesso job, per cui, operando su quest'ultimo task non sono recepite le modifiche del precedente.\\
\\
La datazione della parte della zona congelata dovrebbe essere comunque abbastanza affidabile.\\
La parte successiva libera viene trattata applicando le regole event based (l'ordine di schedulazione è dato dal VPP e dal CROR). L'esattezza è impedita da VPP dovuti a task di una fase precedente che, se variati manualmente, potrebbero farli variare, oltre alle limitazioni esposte nel seguito.\\
\\
La RPW\\
tiene conto delle exit di ottimizzazione dell'attrezzaggio (S5SMX_04x)\\
tratta i batch\\
tratta i multipallet\\
tratta i multipostazione (parallelismo rigido compreso)\\
coabita con i gruppi temporanei\\
\\
La RPW non tiene conto\\
delle RSV (risorse secondarie dl vincolo)\\
delle exit di datazione del task, quali, ad esempio, lo spostamento dell'inizio del task, se successivo ad un certo orario, all'inizio del giorno successivo (exit S5SMX_01x)\\
delle exit di avanzamento della disponibilità della risorsa ad un istante successivo alla fine del task (rispettivamente exit S5SMX_19x)\\
degli algoritmi di tiro e spinta\\
\\
La RPW viene eseguita sia nel GANTT sia nell'incolonnato. In quest'ultimo caso vengono presentati nella parte a sinistra a matrice gli istanti di inizio e fine che, in assenza di RPW sono stati cancellati per evitare confusione (quando l'inizio è posto a metà tra il task precedente e il successivo).\\
\\
Nota tecnica.\\
È stato realizzato un programma (S5SMES_33) che, lanciato dal Gantt di dettaglio (S5SMES_D4), esegue la datazione RPW, dopo che l'ordinamento è stato acquisito.\\
Come esposto in precedenza non viene eliminata la tecnica del dimezzamento per non introdurre instabilità: la RPW è in più e non invece. In questo modo, comunque, si elimina il problema del massimo numero di spostamenti prima del soffocamento, in quanto i task restano della loro durata e il dimezzamento non riduce in modo eccessivo la distanza tra i task.\\
\\
.\\
!!! Esempio 1: RPW con spostamento nella stessa risorsa specifica\\
\\
Situazione iniziale\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_05.png' caption='' width='100%' style='max-width: 100%;'}].\\
Spostiamo il task W160023 tra il task W160043 (freccia blu) e il task W1600020 (freccia verde)\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_06.png' caption='' width='100%' style='max-width: 100%;'}].\\
Al rilascio del mouse i task si rimettono in fila\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_07.png' caption='' width='100%' style='max-width: 100%;'}]\\
.\\
!!! Esempio 2: RPW con spostamento tra due risorse specifiche diverse\\
\\
Situazione iniziale\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_08.png' caption='' width='100%' style='max-width: 100%;'}].\\
Spostiamo il task GG02 dalla macchina 1 alla macchina K14P01, dopo il task GG01; l'intenzione dello spostamento va sempre interpretata in senso orizzontale: a sinistra (prima) o a destra (dopo) del task di quella riga...\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_09.png' caption='' width='100%' style='max-width: 100%;'}].\\
Come si vede, nella macchina 1 si crea un buco, mentre nella macchina K14P01 il task si accosta a quello da cui si vuol far precedere.\\
Al rilascio del mouse, tutto si mette a posto: nella prima macchina (cerchio rosso) si riempie il buco lasciato dal task spostato, che si infila nella seconda (cerchio blu) spostando i successivi.\\
..\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_10.png' caption='' width='100%' style='max-width: 100%;'}]\\
.\\
!!! Esempio 3: RPW con spostamento e ricalcolo attrezzaggio\\
\\
La presenza dell'attrezzaggio si ricava dalla colonna delle ore attrezzaggio (in questo esempio è attiva l'exit standard di eliminazione attrezzaggio a pari articolo).\\
\\
Situazione iniziale: fino al task di dettaglio 279 (freccia rossa) l'articolo è A01\\
Dal task di dettaglio 314 in poi (freccia blu) l'articolo è A00P. Quindi viene posto un attrezzaggio prima di questo dettaglio.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_11.png' caption='' width='100%' style='max-width: 100%;'}].\\
Spostiamo il task di dettaglio 314 (freccia blu) dopo quello di dettaglio 238 (freccia rossa), in modo da interrompere la sequenza dei dettagli con l'articolo A01.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_12.png' caption='' width='100%' style='max-width: 100%;'}].\\
Al rilascio del mouse si vede che è stato piazzato un attrezzaggio ad ogni cambio di articolo.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_13.png' caption='' width='100%' style='max-width: 100%;'}]\\
.\\
!!! Esempio 4: Batch\\
\\
Situazione iniziale\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_14.png' caption='' width='100%' style='max-width: 100%;'}].\\
Spostiamo il batch di master B05_01 tra i batch di master B04_01 e B07_01\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_15.png' caption='' width='100%' style='max-width: 100%;'}].\\
Al rilascio del mouse il batch (master e slave) viene posto tra i due nella coda della risorsa BCH_MAC02, e viene compattata la coda della risorsa BCH_MAC03. In questo caso il compattamento non avviene in quanto il secondo batch ha un VPP che lo blocca nella sua posizione originale.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_16.png' caption='' width='100%' style='max-width: 100%;'}].\\
Naturalmente viene tenuto conto dei vincoli al più presto.\\
Ad esempio, spostando il batch di master B08_01 tra i batch di master B03_01 e B09_01\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_17.png' caption='' width='100%' style='max-width: 100%;'}].\\
Al rilascio del mouse si ha la seguente situazione, con il batch B08_01 che rimane al suo posto, per tener conto dei suoi vincoli, ma scavalca il batch B09_01 che, essendo libero, si pone al termine della zona congelata.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_18.png' caption='' width='100%' style='max-width: 100%;'}]\\
.\\
!!! Esempio 5: Spostamento di un gruppo temporaneo\\
\\
Situazione iniziale\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_19.png' caption='' width='100%' style='max-width: 100%;'}].\\
Creiamo un gruppo temporaneo\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_20.png' caption='' width='100%' style='max-width: 100%;'}].\\
Spostiamo la master del gruppo temporaneo\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_21.png' caption='' width='100%' style='max-width: 100%;'}].\\
Situazione finale, al rilascio del mouse tutto il gruppo si infila tra i due impegni.\\
NB: le celle cambiano la larghezza in base agli orari di apertura della risorsa.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_22.png' caption='' width='100%' style='max-width: 100%;'}]\\
.\\
!!! Esempio 6: Multipallet\\
\\
La RPW è attiva anche in risorse multipallet.\\
Da questa situazione di partenza (la risorsa ha due postazioni)\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_23.png' caption='' width='100%' style='max-width: 100%;'}].\\
Effettuando il seguente spostamento\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_24.png' caption='' width='100%' style='max-width: 100%;'}].\\
Al rilascio del mouse si ottiene la seguente situazione.\\
Il primo task si accoppia con quello spostato, e si ricombinano gli accoppiamenti successivi.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_25.png' caption='' width='100%' style='max-width: 100%;'}]\\
.\\
!!! Esempio 7: Multipostazione senza parallelismo rigido\\
\\
In questo esempio la risorsa ha quattro postazioni parallele.\\
La situazione di partenza è la seguente\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_26.png' caption='' width='100%' style='max-width: 100%;'}].\\
Effettuando il seguente spostamento\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_27.png' caption='' width='100%' style='max-width: 100%;'}].\\
Al rilascio del mouse la situazione diventa la seguente, con il dettaglio spostato che si inserisce all'interno del primo gruppo di dettagli eseguiti contemporaneamente, congelando i precedenti.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_28.png' caption='' width='100%' style='max-width: 100%;'}].\\
Nota tecnica\\
Nel multipostazione i task che hanno lo stesso inizio in caso di RPW vengono datati a una distanza di un millesimo di ora, in modo da poter inserire un task tra di loro (applicando la regola del dimezzamento). Questa datazione è soltanto apparente, in quanto ad ogni schedulazione, prima di applicare questa regola, viene memorizzato il reale istante di inizio, che viene ripreso all'atto della memorizzazione dei risultati. Dato che tra una schedulazione e una memorizzazione non può si può eseguire nessuna azione manuale (se la si eseguisse sarebbe necessaria una ulteriore schedulazione) questo aggiustamento non provoca nessun effetto concreto ai risultati.\\
\\
.\\
!!! Esempio 8: Multipostazione con parallelismo rigido\\
\\
In questo esempio la risorsa ha quattro postazioni parallele, ma il dettaglio MLP008 va eseguito su due postazioni in contemporanea (parallelismo rigido).\\
La situazione di partenza è la seguente, con il dettaglio MLP008 che si posiziona alla fine, al primo istante in cui ci sono due postazioni libere contemporaneamente (compatibilmente con il suo.VPP e CROR (in questo esempio i CROR di tutti i dettagli sono uguali).\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_29.png' caption='' width='100%' style='max-width: 100%;'}].\\
Eseguendo il seguente spostamento (il dettaglio in terza posizione):\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_30.png' caption='' width='100%' style='max-width: 100%;'}].\\
Il risultato diventa:\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_31.png' caption='' width='100%' style='max-width: 100%;'}].\\
con il dettaglio spostato che occupa le ultime due postazioni all'istane del suo VPP.\\
\\
Se l'avessimo spostato in seconda posizione:\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_32.png' caption='' width='100%' style='max-width: 100%;'}].\\
Il risultato sarebbe diventato il seguente, con l'apparente anomalia di un dettaglio non congelato che si posiziona tra due dettagli congelati.\\
Il motivo è che il dettaglio spostato, che occupa due postazioni, ha un VPP e quindi, dopo aver utilizzato tre postazioni congelate (una del primo dettaglio e due del secondo), rimane una postazione libera, che viene occupata dal primo dettaglio disponibile che, non avendo un VPP, si posiziona all'istante di partenza.\\
La rappresentazione GANTT presenta i dettagli in ordine di istante di inizio: per questo motivo si genera un apparente "scavalcamento", che in realtà non viola nessuna regola di schedulazione.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_33.png' caption='' width='100%' style='max-width: 100%;'}]\\
.\\
!!! Esempio 9: Inserimento istante di vincolo al più presto (VPP)\\
\\
Partiamo da questa situazione:\\
Come si vede tutti gli impegni hanno un istante al più presto (generato da fasi precedenti).\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_34.png' caption='' width='100%' style='max-width: 100%;'}].\\
Se ora assegniamo al terzo impegno (freccia rossa) il VPP alle ore 11 del giorno 18 novembre 2020, esso sarà superato dal quarto.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_35.png' caption='' width='100%' style='max-width: 100%;'}].\\
Alla conferma del VPP, per effetto della RPW la situazione del Gantt sarà la seguente, con l'impegno con il VPP che scenderà in ultima posizione, lasciando intatta la parte precedente.\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_36.png' caption='' width='100%' style='max-width: 100%;'}]\\
.\\
!!! Esempio 10: Scongelamento\\
\\
Partiamo da questa situazione\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_37.png' caption='' width='100%' style='max-width: 100%;'}].\\
Spostiamo l'ultimo impegno in prima posizione (freccia rossa)\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_38.png' caption='' width='100%' style='max-width: 100%;'}].\\
Al rilascio del mouse il Gantt apparirà in questo modo:\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_39.png' caption='' width='100%' style='max-width: 100%;'}].\\
Scongeliamo la cella spostata in prima posizione\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_40.png' caption='' width='100%' style='max-width: 100%;'}].\\
Alla conferma dello scongelamento, la RPW farà ritornare questo impegno in ultima posizione\\
.\\
[{Image src='immagini/MBDOC_OPE-S5IRIS_RPW/S5_RPW_41.png' caption='' width='100%' style='max-width: 100%;'}]\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
This page has only one version
«