In passato, il confronto delle configurazioni delle camere tra camere sullo stesso mainframe o su mainframe diversi richiedeva un metodo manuale che richiedeva un giorno. Recentemente, è stato sviluppato un processo automatizzato utilizzando Workflow Builder in JMP 17. Sono stati creati file di flusso di lavoro individuali per accelerare l'efficienza del processo, utilizzando un flusso di lavoro individuale, a seconda del numero di camere da confrontare. I flussi di lavoro prendevano il file di configurazione e confrontavano la camera di riferimento con la/le camera/e interrogata/e. Il processo ha prodotto un report con grafici e tabelle basati sulla criticità delle discrepanze di configurazione.
Questa presentazione illustra l'efficacia della nuova funzionalità condizionale di Workflow Builder in JMP 18. Questa funzionalità fornisce un metodo per combinare tutti i flussi di lavoro di confronto in un unico flusso di lavoro, con la sezione corretta del flusso di lavoro determinata dal numero di camere da confrontare, inserito dall'utente in un prompt condizionale. Il flusso di lavoro pertinente viene selezionato in base al prompt immesso. Il risultato finale è lo stesso di prima, ma ora è stata eliminata la selezione manuale del file del flusso di lavoro, consentendo di generare un report di confronto tra più tipi di piattaforma in uno o due minuti.
Ciao a tutti. Mi chiamo Gary O'Driscoll. Lavoro per un'azienda chiamata Applied Materials e oggi parlerò dell'utilizzo di Workflow Builder e dei prompt condizionali per monitorare i limiti di temperatura della condotta del gas per la deposizione di strati atomici, e di come possiamo usare Workflow Builder per farlo, in particolare nei prompt per l'interruzione di JMP, dove l'applicazione è entrata in funzione e l'interruzione di JMP.
Qualche informazione su di me. Come ho detto, lavoro per Applied Materials a Dublino. Sono un ingegnere di processo e, naturalmente, mi occupo di diversi processi. Ho quasi 30 anni di esperienza nel settore dei semiconduttori. Per hobby, pratico ciclismo, gioco a golf e alleno la squadra di camogie. È uno sport irlandese, praticato da una squadra femminile adulta. In quella maschile si chiama hurling. Se siete mai stati in Irlanda e avete sentito parlare di questo sport selvaggio, in cui si giocava con i bastoni, questo è il mio caso ed è quello che alleno.
Un rapido sondaggio su chi usa JSL. Se consideriamo JSL e consideriamo tutti gli utenti, quanti lo usano davvero? Si dividono in due gruppi. Tu sei dalla parte del sì, dove JSL è davvero parte del tuo ruolo, ami JSL. Forse sono un esperto di codice e lo uso ogni giorno. Ma anche dalla parte del no, JSL non fa parte del mio ruolo. Non capisco il codice e non l'ho mai usato. Personalmente, sono dalla parte del no. Non capisco davvero il codice. A volte cerco di imparare qualcosa strada facendo. C'è un modo per passare dal no ad arrivare quasi a metà e quasi al sì. Oggi vi mostrerò una parte di questo.
Con il lancio di JMP 17, che ricordiamo a Cary, nella Carolina del Nord, al Discovery Summit, è stato introdotto Workflow Builder. Il Workflow, a pensarci bene, è in realtà il luogo in cui registriamo ciò che vogliamo fare con la manipolazione dei dati, ma aiuta a capovolgere il rapporto tra codice e output. Dal punto di vista JSL, sviluppiamo il codice per ottenere l'output di cui abbiamo bisogno. Con un Workflow Builder, abbiamo l'output, manipoliamo i dati che desideriamo e il codice viene generato in background. I Workflow consentono all'utente di sperimentare e apprendere il codice JSL senza alcuna conoscenza pregressa.
Se osserviamo il builder stesso, possiamo vedere che al suo interno creerò le attività che voglio svolgere a partire dalla manipolazione. Nelle impostazioni dei passaggi in Workflow Builder, potete vedere che il codice viene generato in background da ogni piccola attività che voglio svolgere. I flussi di lavoro vengono utilizzati per attività ripetitive. Migliorano notevolmente l'efficienza, evitando di ripetere sempre la stessa operazione. Il codice per il flusso di lavoro è visualizzabile e modificabile.
Se avessi provato a farlo da solo, soprattutto quando ho iniziato con Workflow Builder, avrei scoperto che i file che volevo selezionare erano quelli di cui avevo effettivamente bisogno, e il nome era lì. Ma non avrei voluto usare sempre quel file. Le modifiche al codice le posso apportare qui. Ma dove ho imparato forse molte cose su come scegliere un file generico, le ho imparate tutte dalla community di JMP. Quando si inizia a scrivere codice per la prima volta, il problema che si presenta non è la prima volta che si verifica. Qualcuno nella community di JMP ha già risolto questo problema e ha condiviso il codice nella community.
Poi, quando pensiamo al lancio di JMP 18. JMP 18 è stato lanciato a Manchester, in Europa, al Discovery Summit. Lì abbiamo sentito parlare delle sei P. Oltre a queste, ce n'era una settima inclusa in JMP 18, di cui ho sentito parlare dopo il summit. Quella P erano i prompt, o prompt condizionali in Workflow Builder, per essere più precisi.
Come utilizzo i prompt e i prompt condizionali nel mio ruolo. Spiegherò cosa, perché e come lo faccio nel mio ruolo. Cosa sto facendo? Sto verificando le impostazioni di temperatura per gli allarmi di guasto e gli avvisi di allarme sulla deposizione di strati atomici, o ALD in breve, le linee del gas della camera probabilmente derivano da attività di manutenzione preventiva. Perché lo sto facendo? Perché qualsiasi variazione di temperatura non rilevata dagli allarmi potrebbe causare scarti di prodotto. Il come è che sto verificando le impostazioni utilizzando i Workflow Builder avanzati che utilizzano prompt condizionali.
ALD, per chi non ci fosse abituato, è un processo che viene utilizzato in numerose applicazioni in tutti i nostri settori. È un processo che consente di depositare il materiale direttamente sulla superficie, un monostrato alla volta. Produce i film più sottili e uniformi possibili, con un processo autolimitante. Esempi di questo processo nei nostri settori sono i rivestimenti su fiale provenienti da laboratori, industrie chimiche e biomediche. I rivestimenti su dispositivi medici e, in realtà, strati nei produttori di dispositivi a semiconduttore. All'interno del chip, potrebbe esserci uno strato. È qui che utilizziamo l'ALD in tutti i nostri settori.
Come viene utilizzato nell'industria dei semiconduttori? Forse nello stesso modo di altri settori. Ho un contenitore che contiene una sostanza chimica liquida, che viene utilizzata nel processo. Le sostanze chimiche vengono utilizzate nel processo, ma vengono trasportate non in forma liquida, ma in forma di vapore, dal contenitore alla superficie del chip in una camera a vuoto attraverso un contenitore. In questo caso, si tratta di una conduttura del gas. Questo è un disegno di base dell'intero flusso chimico, ma per rendere il concetto, avremmo piastre riscaldanti a più temperature lungo l'intero contenitore, dal contenitore fino a una camera sulla superficie del chip.
La superficie del chip, quella che mostro qui, è la rappresentazione di un singolo chip, ma nei semiconduttori abbiamo più chip disposti su un substrato o wafer in una camera. Depositiamo su di essa. Le impostazioni dei limiti del pad riscaldante devono essere controllate dopo ogni cambio di contenitore. I punti freddi, come ho detto in precedenza, potrebbero causare la condensazione di un gas, causando difetti sul chip, perché un gas che si condensa, potenzialmente, quando viene raffreddato, condensa e torna allo stato liquido, potrebbe seccarsi e poi tornare allo stato solido, depositandosi sul chip e causando un problema.
Il vecchio metodo, basato sulle impostazioni e sul controllo delle impostazioni su più camere, era basato su un unico Workflow Builder. Se avessi voluto visualizzare due camere diverse, avrei avuto un altro Workflow Builder. Allo stesso modo, fino in cima, il diagramma qui mostra solo fino a sei camere, ma potrebbero essercene altre. Il vecchio metodo prevedeva che avessi un file in base al numero di camere che avrei utilizzato, lo selezionassi e procedessi in questo modo.
Tornando ai prompt, con Workflow Builder ora c'è una funzionalità che ci permette non solo di selezionarne uno, ma di dare un prompt del tipo: "Invece di averne sei separati, combinali tutti in uno". In JMP 18, nel Workflow Builder, potete vedere che abbiamo una sezione in Avanzate. Poi, quando andiamo in Avanzate, otteniamo un altro menu. All'interno di tutti questi, potete vedere questi quattro qui, aggiungi if, aggiungi else, aggiungi return e aggiungi for each. Sono quelli che consentono di diramare un passaggio. Non si tratta di un solo percorso. Posso seguire un percorso o un altro a seconda di ciò che inserisco. Questa è la nuova funzionalità che era effettivamente in JMP 18, ed è qui che la sto usando.
Per darvi un'idea del nuovo metodo. Dal punto di vista di un diagramma di flusso, inizierei e poi otterrei un prompt. Chiederei: "Sto usando una camera?". In caso affermativo, eseguirei il mio flusso di lavoro, otterrei un report e avrei finito. Se il mio prompt non fosse uno, andrei avanti. Poi, direi: "Sono due?". Sì, possiamo eseguire quello. In caso contrario, andrei avanti. Il metodo controllerebbe continuamente ognuno di questi dati, quindi, a seconda del numero, controllerebbe ciò che inserisco nel mio prompt. Quindi, qualsiasi valore corrisponda, eseguirebbe quel report per me. Il nuovo metodo è incorporato in un flusso di lavoro più ampio, con istruzioni if else o if else. Questo è il mio metodo.
Come tecnico d'ufficio, non conosco il linguaggio JSL. Ecco come mi è venuto in mente questo concetto e come funziona per me. Potrebbero esserci altri metodi in circolazione, ma questo è il mio. Permettetemi ora di mostrarvelo in una demo.
Se dovessi usare il vecchio metodo, userei forse un controllo a quattro camere. Nel mio controllo, direi di voler controllare il file. Dal file che voglio controllare, genererei la tabella dati e la salverei come file JMP. Aprirei il mio file golden. Sto verificando i limiti rispetto a un set di limiti golden perché, quando eseguiamo una manutenzione preventiva, a volte si ampliano i limiti. Se sto raffreddando qualcosa, allora i miei limiti sono: se, ad esempio, ho qualcosa a 200 gradi, lo raffreddo a 20 gradi.
I miei limiti potrebbero essere in realtà molto stretti rispetto ai 200 gradi, ma poiché l'ho raffreddato, è al di fuori della nostra tolleranza, quindi mi dà allarmi costanti. Molte persone allargano i limiti mentre svolgono l'attività di manutenzione preventiva. Una volta terminata quell'attività, si restringono di nuovo i limiti. Questo è ciò che sta cercando. È nel tuo file golden, e i limiti vengono reimpostati al punto in cui sono realmente necessari. Avrei il mio file golden. Lo salverei in una tabella e li unirei. Poi, a seconda delle colonne, li abbinerei. Verificherei se sono tutti corretti. Ad esempio, in questo caso, si tratta di quattro camere. Dove non corrispondono, genererei una tabella di sottoinsiemi.
Da lì, in una distribuzione su larga scala, diciamo, ok, allora, quale piastra riscaldante, quale controller, quale categoria sarebbe. Avrei più flussi di lavoro, come ho detto, uno per una camera singola, uno per due camere, uno per tre camere, uno per quattro camere, uno per cinque camere e uno per sei camere, e così via. Quello che ho fatto è stato combinarli tutti in modo da non dover più selezionarne uno singolarmente.
Quello che ho fatto nei prompt, e quindi quello che potete vedere qui, prima di farlo, fatemi eseguire questo. Quello che farebbe in JMP 18 è: andrei ai miei file. Direi di voler controllare, diciamo, un quattro. Direi, apri. Tutto verrebbe eseguito. Come voglio salvarlo? Direi quattro camere. Salvalo. Sto solo salvando troppo quello che ho. Cerco il file dorato, lo salverà dove voglio, e posso salvare questi. Come ho detto, posso selezionare la mia cartella ovunque si trovi. Questo genererà tutto ciò di cui ho bisogno.
Su un quattro, come potete vedere qui, direbbe: "Ho due problemi sul pad riscaldante 2". Tutto proviene dal controller 2, e uno di questi è un limite di avviso e un limite di errore. Quindi genererebbe una tabella con i valori, i valori attuali, il loro valore previsto, e in questo modo otterrei il mio piccolo report. Inoltre, farei una cosa simile con un controllo a sei camere. Poi arriverei ai miei prompt condizionali. E come potete vedere ora, lo stesso file. Lo scompongo, come se aprissi il mio file di controllo e lo salvassi. Ho il mio file golden nel CSV. Lo salverò come tabella JMP. Quindi è qui che arrivo ai miei prompt.
Quello che puoi vedere ora è che chiederò all'interno del prompt di inserire un messaggio. Nel messaggio, il mio messaggio dirà quali camere voglio veramente? Come puoi dire, se la risposta è quattro, eseguirà questo. Se questo è quattro, altrimenti, andrà avanti. Poi, nell'altro, ho incorporato un altro flusso di lavoro che potrebbe essere per una camera, e poi un altro incorporato all'interno dell'altro. Poi, con quello successivo, continuiamo a scorrere verso il basso. Puoi vedere che è come se ogni flusso di lavoro si spostasse sull'intero processo. Alla fine, quindi, avrei i miei grafici e il mio report. Ecco come lo sto usando. Se dovessi tornare a questo, quello che farei è riaprire il mio file di controllo. Questa volta selezionerò il sei.
Mi chiederà: "Dove voglio salvarlo?". Dirò semplicemente: "Voglio salvare il mio controllo sei qui". Potrei inserire un ID strumento o un ID macchina, oppure potrei dire un processo, a seconda di come voglio salvare il file. Se impostassi l'opzione in modo che io abbia sempre la possibilità di salvare la tabella in un secondo momento, lo farebbe immediatamente. Avrei di nuovo sei, quindi direi di sì, voglio salvarlo come file di riferimento.
Ora è qui che mi chiede: "Quante camere sto cercando di confrontare?". In questo caso, dirò sei. Mi chiederà: "L'ho eseguito un paio di volte, quindi quale file sto cercando di usare?". Dirò: "Controlla le sei". Sta eseguendo il background lì. Come puoi vedere, durante tutto il processo, a seconda dei prompt, salta alcune sezioni, le esegue e dice "saltato". Quello che vedo è che ho i miei file qui. Le mie discrepanze per questo, puoi vederle qui.
Ora puoi vedere che ho la mia tabella che mostra tutti i miei limiti qui. Fondamentalmente dice da tutte le mie righe combinate, ma dalle mie discrepanze, ne ho due su questo. Per le discrepanze tra gli altri, ho fatto altrove. Mi darebbe un report completo a seconda di cosa avevo e lo eseguirebbe per me. Prenderei i miei limiti se tornassi alle discrepanze dai miei quattro, quindi direi, su questa macchina, ho avuto due problemi con il mio termoforo che non funzionava correttamente. Ne avrei, ne ho due. So che è sul termoforo 2. So che è sul controller 2. So che uno è un limite di errore e l'altro è un limite di avviso. Poi tornando a quello, avrei, era un avviso inferiore, un errore inferiore. Posso vedere forse a cosa erano impostati. Puoi vedere qui forse sono impostati a 100 e meno 80, e in realtà dovrebbero essere meno 10 e meno 80.
Tornerei indietro allora, risolveremmo quei limiti e poi tutto andrebbe bene.
Per questo motivo, per me si tratta solo di un controllo per verificare che i limiti siano tornati al punto giusto. Non è qualcosa che forse non viene monitorato. Penso a molti clienti che lo farebbero, ma molti non vogliono monitorare i limiti. Ci sono già abbastanza set point effettivi su come funzionano le temperature. Andrà tutto bene. Non monitoreranno i limiti. Questo è un altro controllo che farei per me.
Questa è la mia dimostrazione. Da un punto di vista riassuntivo, le condizioni del flusso di lavoro possono essere molto utili per combinare diversi flussi di lavoro in un unico flusso più ampio con prompt. I prompt possono essere, per me, numerici, ma ce ne sono altri che possono essere basati su caratteri. Prendiamo, ad esempio, se lavorassi nel settore chimico e avessi due flussi di lavoro, potrei avere un flusso di lavoro in cui lavoro su sostanze chimiche acide e uno in cui ho una base. Posso quindi inserire il mio prompt e chiedere: "Sto lavorando sul mio flusso di lavoro acido o su quello base?"
Si possono usare caratteri diversi, oppure arrivo a un compito e mi chiedo: "È successo questo? Sì o no?". A seconda di questo, potrei semplicemente generare un report in base a determinati risultati. Come ho detto, questa è la mia soluzione. Ci sono altre soluzioni per il mio flusso di lavoro che potrebbero essere prese in considerazione. Dopo aver generato questo, è utile poter studiare il JSL in seguito, e può essere un buon metodo didattico.
Come ho detto, se ora torno al mio flusso di lavoro effettivo, se riesco a trovarlo. Se dovessi tornare qui, ho i miei task, come ho detto, per ognuno. Posso iniziare a imparare JSL dai task che ho creato nel mio flusso di lavoro. Forse, per i miei prossimi passi, potrei aggiungere un prompt alla fine del flusso di lavoro. Ho detto, forse questo era per una macchina particolare con un certo numero di camere. Forse devo occuparmi di una seconda macchina o di una terza. Forse aggiungerò un altro prompt e chiederò: "Devi ancora occuparti di un'altra macchina? Sì o no?". No, avrò finito? Sì, poi forse tornerò all'inizio del flusso di lavoro. Questo è un altro modo in cui la vedo.
Detto questo, se qualcuno ha domande, non esiti a contattarmi nella community e a inviarmi direttamente le sue domande. Come ho detto, mi chiamo Gary O'Driscoll e il mio ID community JMP è godriscoll. Inviatemi le vostre domande, sarò felice di rispondere. Grazie.