過去,將同一主機上不同腔室或不同主機上的腔室配置設定進行比較,需要耗費一天時間的人工操作。最近,我們利用 JMP 17 中的 Workflow Builder 開發了一種自動化流程。根據待比較腔室的數量,我們創建了單獨的工作流程文件,從而提高了效率。這些工作流程會讀取配置設定文件,並將參考腔室與待查詢腔室進行比較。最終,我們會產生一份報告,其中包含圖表,並根據配置差異的嚴重程度進行分類。
本次示範重點介紹了 JMP 18 中 Workflow Builder 新增的條件功能的強大之處。此功能提供了一種將所有比較工作流程合併為一個工作流程的方法,並根據使用者在條件提示中輸入的待比較腔室數量來確定工作流程的正確部分。系統會根據提示輸入選擇相關的工作流程。最終結果與之前相同,但現在無需手動選擇工作流程文件,從而可以在一兩分鐘內產生跨多個平台類型的比較報告。
大家好,我叫 Gary O'Driscoll,就職於應用材料公司。今天我將為大家介紹如何使用 Workflow Builder 和條件提示來監控原子層沉積氣體管路的溫度限制,以及如何使用 Workflow Builder 來實現這一點,尤其是在 JMP 中斷提示中,應用程式是如何介入並導致 JMP 中斷的。
簡單介紹一下我自己。正如我所說,我在都柏林的應用材料公司工作。我是一名製程工程師,負責多個製程。我擁有近30年的半導體產業經驗。我的興趣包括騎自行車、打高爾夫,以及指導女子曲棍球(camogie)。女子曲棍球是愛爾蘭的運動,是女子成年隊的比賽。男子曲棍球則叫做愛爾蘭式曲棍球(hurling)。如果你去過愛爾蘭,聽說過我們用棍子玩的那種「野性十足」的遊戲,那就是女子曲棍球,而我正是執教這項運動的教練。
讓我們來快速調查一下有多少人使用 JSL。如果我們看看 JSL 的用戶,究竟有多少人真正使用 JSL 呢?大致可以分為兩類。一類是“是”,JSL 是你工作中不可或缺的一部分,你熱愛 JSL。例如,我可能是一位程式碼專家,每天都會用到它。另一類是“否”,JSL 並非我工作的一部分。我不了解程式碼,也從未用過它。就我個人而言,我屬於「否」這一類。我不太懂代碼。有時我會嘗試邊做邊學。其實,有一種方法可以讓你從「否」過渡到接近中間立場,甚至接近「是」。今天我會向大家展示其中的一部分。
在 JMP 17 的發布會上(我們還記得那是在北卡羅來納州卡里市的探索峰會上),工作流程建構器(Workflow Builder)首次亮相。工作流程實際上是記錄我們想要進行的資料操作的地方,它顛覆了程式碼和輸出之間的關係。從 JSL 的角度來看,我們編寫程式碼來獲得所需的輸出。而有了工作流程建構器,我們就能直接獲得輸出,對資料進行操作,後台會自動產生對應的程式碼。工作流程讓使用者無需任何 JSL 程式設計基礎即可體驗和學習 JSL 程式碼。
如果我們查看建構器本身,可以看到,在建構器中,我可以建立自己想要執行的任務。在工作流程建構器的步驟設定中,您可以看到,系統會根據我想要執行的每個小任務在背景自動產生程式碼。工作流程用於處理重複性任務,它們可以顯著提高效率,避免您一遍又一遍地重複相同的工作。工作流程的程式碼是可檢視和可編輯的。
如果我自己嘗試這樣做,尤其是在剛開始使用 Workflow Builder 的時候,我發現,我選擇的文件,我實際需要的文件,文件名稱也在這裡。但並非每次我都想使用這個文件。我可以在這裡對程式碼進行一些調整。但我學到了很多關於如何選擇通用文件的知識,這些知識都來自 JMP 社群。當你第一次接觸程式碼時,你遇到的問題並非第一次出現。 JMP 社群中已經有人解決了這個問題,並在社群中分享了程式碼。
然後我們來談談 JMP 18 的發布。 JMP 18 是在歐洲曼徹斯特舉行的 Discovery Summit 高峰會上發布的。會上我們聽到了關於 JMP 18 的六個「P」的概念。除此之外,高峰會後我還了解到 JMP 18 中新增了第七個「P」。更準確地說,這個「P」指的是工作流程建構器中的提示,或者更準確地說,是條件提示。
我的工作中如何使用提示和條件提示?我將詳細介紹我工作中使用這些功能的原因、用途和方法。我的工作內容是什麼?我正在檢查原子層沉積 (ALD) 製程的溫度設置,以發現故障警報和警告。對於短程腔室氣體管路,這些檢查可能是預防性維護任務的結果。我為什麼要這樣做?因為任何未被警報捕獲的溫度變化都可能導致產品報廢。具體來說,我使用增強型工作流程建構器(支援條件提示)來檢查這些設定。
對於不熟悉原子層沉積(ALD)技術的人來說,ALD 在我們各產業的眾多應用中都有著廣泛的應用。它是一種將材料逐層直接沉積到表面上的製程。 ALD 能夠以自限性的方式產生盡可能薄、均勻的薄膜。例如,實驗室、化學和生物醫學領域的樣本瓶上就經常會用到 ALD 塗層;醫療器材上也經常會用到 ALD 塗層;半導體裝置製造商的晶片內部也經常會用到 ALD 塗層。這就是 ALD 在我們各行業中的應用之處。
它在半導體產業是如何應用的?或許與其他一些行業類似。我有一個容器,裡面裝著液態化學品,用於製程。製程流程確實會用到化學品,但它們並非以液態,而是以氣態形式,透過一個容器,經由一個氣管輸送到晶片表面的真空腔室。這裡指的是氣管。這只是整個化學品流動流程的簡圖,為了便於理解,我們可以在整個氣管上設置多個溫度加熱墊,從容器一直延伸到晶片表面的腔室。
我在這裡展示的晶片表面只是一個晶片的示意圖,但在半導體製造中,我們會在同一個基板或晶圓上,在一個腔室中,放置多個晶片。我們會將材料沉積到這些晶片上。每次更換容器後,都需要檢查加熱墊的限位設定。正如我剛才提到的,冷點可能會導致氣體冷凝,從而造成晶片缺陷。這是因為氣體在冷卻時可能會冷凝,冷凝後重新變成液體,乾燥後又會重新凝固成固體,沉積在晶片上,造成問題。
舊方法是透過設定和多腔室設置檢查來實現的。你可以這樣理解:如果我只想查看一個腔室,我會使用一個工作流程建構器。如果我需要查看兩個不同的腔室,我會使用另一個工作流程建構器。同樣地,儘管這裡的圖表只顯示了最多六個腔室,但實際上可以添加更多腔室。舊方法是,根據我要使用的腔室數量,建立一個文件,然後選擇該文件來執行程式。
如果我們回到提示功能,那麼在工作流程建構器中,現在有一個功能允許我們不僅選擇一個步驟,還可以給出提示,例如「與其創建六個獨立的步驟,不如將它們合併為一個」。在 JMP 18 的工作流程建構器中,您可以看到「進階」部分。進入“高級”後,我們會看到另一個選單。在這些選單中,您可以看到這四個選項:新增 if、新增 else、新增 return 和新增 for each。這些選項允許步驟分支,而不是只有一條路徑。我可以根據輸入的內容選擇不同的路徑。這是 JMP 18 中的新功能,而我在這裡正是使用它。
為了讓您更能理解這種新方法,從流程圖的角度來看,我會先啟動程序,然後收到一個提示。我會問:「我是否使用一個腔室?」如果是,則運行我的工作流程,產生報告,然後結束。如果提示不是“一個”,則繼續下一個操作。然後詢問:「是否使用兩個腔室?」如果是,則執行該操作。如果不是,則繼續下一個操作。程式會持續檢查每個操作,然後根據提示中的數字,檢查我輸入的內容。如果提示匹配,則執行相應的報告。這種新方法是在更大的工作流程中嵌入 if-else 語句或 if-else 錯誤處理語句。這就是我的方法。
身為辦公室工程師,我並不了解 JSL。以下是我構思這個概念的過程以及它如何運作的。或許還有其他方法,但這是我的方法。現在讓我透過示範來展示一下。
如果我採用舊方法,我可能會進行四室檢查。在我的檢查中,我會指定要檢查的文件。對於要檢查的文件,我會產生資料表並將其儲存為 JMP 文件。我會打開我的黃金標準文件。我使用黃金標準來檢查限值,因為在進行預防性維護時,有時需要放寬限值。例如,如果我正在冷卻某個零件,那麼我的限值就是:如果某個零件的溫度是 200 度,我會將其冷卻到 20 度。
我的限值實際上可能相對於 200 度來說非常嚴格,但由於我把它冷卻下來了,它超出了我們的容差範圍,所以它不斷發出警報。很多人在進行預防性維護時會放寬限值。如果你完成了這項任務,你應該再次縮小限值。這就是它所尋找的。它存在於你的黃金檔案中,並且限值被重新設定到它們真正需要的位置。我會有一個黃金文件。我會把它保存到一個表中並將它們連接起來。然後根據列,我會進行匹配。我會檢查它們是否都正確?例如,在這個例子中,有四個腔室。對於不匹配的地方,我會產生一個子集表。
接下來,在大規模分銷的情況下,我會考慮:好的,那麼,應該選擇哪種加熱墊、哪個控制器、哪個類別?如我所說,我將會有多個工作流程,分別對應單腔、雙腔、三腔、四腔、五腔、六腔等等,一直到更高容量的腔體。而我所做的,就是將它們全部合併,這樣我就不必再單獨選擇某個流程了。
我在提示符號裡做了操作,所以你現在可以看到,在我執行之前,讓我先運行一下。在 JMP 18 中,我會開啟我的檔案。我會選擇要檢查的文件,比如說,一個四號彈膛。我會點擊“打開”。然後程式就會運行。我想把它保存成什麼名字?我選擇「四號彈膛」。保存。我只是在覆蓋我現有的文件。它會找到那個黃金文件,然後把它保存到我想要的任何位置,我可以保存這些文件。就像我說的,我可以選擇它所在的資料夾。這將生成我需要的所有文件。
如您所見,在四級測試中,它會顯示「加熱墊 2 有兩個問題」。所有問題都來自控制器 2,其中一個是警告限值,另一個是故障限值。然後它會產生一個表格,列出這些問題的具體內容、當前值以及預期值,這樣我就能得到一份簡短的報告。此外,我也會對六腔測試進行類似的操作。接下來是條件提示部分。正如您現在看到的,這是同一個文件。我將其拆分,打開檢查文件後,我會保存它。我的黃金檔案是 CSV 格式的。我會將其另存為 JMP 表格。然後,我就可以開始寫提示了。
現在您可以看到,我會在提示中詢問它是否要輸入一條訊息。訊息內容是:我真正想要哪些腔室?如您所見,如果答案是 4,它將運行此操作。如果答案是 4,則繼續下一個操作。然後在「否則」部分,我嵌入了另一個可能針對某個腔室的工作流程,然後在「否則」部分內又嵌入了另一個工作流程。以此類推,我們繼續向下移動。您可以看到,每個工作流程都像是在整個流程中不斷切換。最後,我會得到圖表和報告。這就是我的使用方法。如果我要回到之前的步驟,我會再次開啟檢查文件。這次我將選擇 6。
它會問我:「我想把文件保存到哪裡?」 我直接說,我想把檢查結果 6 保存在這裡。我可以輸入工具 ID、機器 ID,或根據我想要儲存檔案的方式,輸入流程 ID。如果我這樣設置,即使我暫時沒有表格,以後再嘗試保存,它也會立即幫我保存。這樣我又會看到檢查結果 6,所以我會選擇“是”,把它儲存為最終檔案。
現在它會問我:「我要比較多少個腔室?」 在這裡,我選六個。它會問我,我已經運行過幾次了,那我要使用哪個檔案?我會說:「選擇六個。」它正在後台運行。正如你所看到的,在整個過程中,它會根據提示跳過某些部分,運行這些部分後會顯示「已跳過」。我可以看到我的文件在這裡。你可以看到,我的不匹配也在這裡。
現在您可以看到我的表格,這裡顯示了我所有的限制。它基本上是綜合所有行的數據得出的,但就我的不匹配項而言,這裡有兩個。至於其他項的不符項,我已經在其他地方處理過了。它會根據我的情況產生完整的報告並運行。如果我回到之前提到的四個不匹配項,我會查看我的限制,然後我會發現,在這台機器上,我的加熱墊出現了兩個工作不正常的問題。我知道它出現在 2 號加熱墊上,也出現在 2 號控制器上。我知道一個是故障限制,另一個是警告限制。然後回到之前的情況,我會發現警告值和故障值都很低。我可以看到它們的設定值。您可以看到,它們可能分別設定為 100 和 -80,但實際上它們應該是 -10 和 -80。
那時我會回去,我們會解決這些限制,然後一切都會好起來的。
所以,對我來說,這只是檢查限值是否恢復正常。並非是某些環節可能沒有被監控。我想很多客戶都會這麼做,但他們可能不想監控限值。畢竟,溫度運作已經有足夠的設定點了。我們沒問題。他們不會去監控限值。這是我自己也會做的檢查。
這就是我的演示。簡而言之,工作流程條件非常有用,它可以將多個工作流程合併成一個帶有提示的大型流程。提示可以是數字,對我來說是數字提示,但也可以是基於字元的提示。例如,假設我在化學工業工作,我有兩個工作流程,一個是處理酸性化學品的工作流程,另一個是處理鹼性化學品的工作流程。然後,我可以輸入提示訊息,例如:“我目前是在處理酸性化學品的工作流程,還是在處理鹼性化學品的工作流程?”
你可以使用不同的角色,或者我遇到某個任務時會問:「這件事發生了嗎?是或否?」 根據結果,我可能會產生一份報告。正如我所說,這是我的解決方案。我的工作流程還有其他解決方案可以考慮。產生報告後,能夠研究日文原文(JSL)是有益的,這也可以是一種不錯的教學方法。
正如我所說,如果我現在回到我實際的工作流程,如果我能找到的話。如果我回到這裡,我會看到我為每個流程都建立了任務。我可以從我在工作流程中建立的任務開始學習JSL。也許下一步我會在工作流程的末尾添加一個提示。例如,也許這是針對一台特定機器及其特定數量的腔室的。也許我還需要處理第二台或第三台機器。也許我會添加另一個提示,問:“你還需要處理另一台機器嗎?是或否?” 不需要,那就完成了?是,那麼也許可以循環回到工作流程的開頭。這是我考慮的另一種方式。
那麼,如果大家有任何問題,歡迎隨時在社區聯絡我,直接把問題寄給我。如我所說,我叫 Gary O'Driscoll,我的 JMP 社群 ID 是 godriscoll。請把問題寄給我,我很樂意解答。謝謝!