在複雜的生產環境中,會產生大量數據,因此從不同角度來看,不同的細節至關重要。資料可能保存在資料庫和其他 JMP 通常能夠載入的資源中。這些數據顯然無法全部放入一個數據表中。在本次演講中,我將展示如何根據上下文向主資料表添加額外資料。我也會舉例說明如何查詢包含更詳細資訊且與主資料表關聯的其他表。
大家好,感謝觀看本影片。歡迎來到我的演講「資料駕駛艙:點擊即可擴展主表資料」。首先,請容許我介紹一下我的公司—Siltronic。我們擁有四個世界一流的生產基地,4500名員工,業務遍及全球,並在矽技術領域擁有超過50年的歷史。我們最初是瓦克公司的一部分,分別於1984年和1990年生產了第一片200毫米和300毫米晶圓。正如您在這裡看到的,晶圓尺寸一直在不斷縮小,從11奈米、7奈米、8奈米、5奈米、3奈米,到目前的2奈米。
2015年,我們以股份制公司的形式上市。目前,我們正在新加坡新建晶圓廠,並在弗萊堡新建晶體拉製車間,以擴大業務規模。在這裡,您可以了解電子產品的價值鏈,以及價值如何從超純多晶矽到半導體矽片不斷提升。這是我們半導體和電子產品生產的關鍵環節,其價值提升超過1000倍。在這裡,您可以了解我們的國際製造網絡。在德國的弗萊堡和布格豪森,我們擁有小直徑生產線、晶體拉製和晶圓加工設施,而布格豪森則是我們的中央研發中心。
我們在波特蘭和新加坡都設有200毫米晶圓生產設施。此外,我們在新加坡還擁有晶體拉製設施和300毫米晶圓生產設施。新加坡的這些晶圓生產設施是世界上最新、規模最大的設施之一。領先的技術地位和高品質對我們來說同等重要。目前,我們正在研發兩個奈米節點,同時優化晶圓的50多個參數,並且實現了單晶圓可追溯性。因此,我們會產生大量數據。我們的生產流程如下:從原料-超純矽開始,採用直拉法或浮區拉法進行晶體拉製,然後進行錠塊研磨、多絲切割、邊緣倒圓、雷射打標、研磨、清洗和蝕刻、拋光,最後進行外延生長。簡單介紹一下我自己。我是一名電氣工程師,擁有電熱過程模擬方向的博士學位,而我們公司正是從事這類研究。我接受過統計學教育,目前在弗萊堡矽電子公司(Siltronic Freiburg)的主要工作是開發矽晶體生長製程。在此,我要感謝我的公司,感謝他們讓我能夠參加探索峰會,也能讓我能夠工作並與 JMP 合作,這真是太棒了。
我還負責Siltronic公司約500名用戶使用JMP軟體的支援工作。現在來說說這個名為「資料駕駛艙:點擊即可擴充主表資料」的應用程式。我們遇到的問題是,一個表需要包含產品或批次等概覽信息,並且需要一些圖表來評估性能和其他參數。我們希望根據主表的內容和選擇產生額外的表,並新增具有特定值的欄位。此外,我們還希望提供鏈接,以便向下鑽取查看更詳細的數據。我們發現JMP擁有出色的圖形使用者介面,而JMP資料表本身就是一個優秀的圖形使用者介面。為了解決這個問題,我們使用了大量的資料庫查詢,特別是新的SQL查詢物件。我們利用JMP資料表作為概覽和點擊事件處理程序,並使用了大量的表腳本來實現啟動平台、新增列、產生詳細表或一鍵執行所有操作。因此,JSL是實現所有這些功能的理想工具。在實際應用中,我們的資料來自公司資料庫。
在本演示中,我使用範例資料表“陽極鍵合”來模擬這一過程。實際上,駕駛艙摘要是透過查詢多個不同的表格而產生的。也可以從相同或其他資料表或資料庫中新增其他資料表,以及JMP可用的其他資料來源,例如檔案、圖表和影片。但在本演示中,我使用「陽極鍵合」表,因為其資料庫查詢與公司資料庫的存取非常相似。在「陽極鍵合」資料表中,我們包含多個批次訊息,每個晶圓的批次資訊就是晶圓ID。對於每個晶圓,我們都有資料函數,例如以下五個變數:電荷、流量、位置、活塞力、真空度和電壓,順序如圖所示。我們對每個晶圓進行評估,分為「好」或「壞」。這就是包含數據和腳本的駕駛艙介面。它包含晶圓ID、評估結果以及一些匯總資料(如您所見),並且包含許多表腳本。這裡有一個連結可以深入查看。這裡有一些列,其他列則分組在列組詳細資料中。我們稍後會看到。我們還有一個類型為表達式的圖表列。
這就是更詳細的介面,現在我將切換到 JMP。這裡可以看到駕駛艙,目前是空的。這裡有一個腳本,可以顯示我的簡報摘要,了解背景資訊。這裡我提供了一個腳本和一些文檔,說明如何使用這個表格。我會詳細解釋。我已經將腳本分組。我們可以開啟腳本組,然後點擊「更新駕駛艙」按鈕來取得駕駛艙的主要數據。可以看到這裡列出了 30 個晶圓,以及匯總數據。
這裡有一個腳本可以清除表格,我們可以重新填充資料。我們可以查看完整的資料庫,這在實際應用上是不可能的。但我可以在這裡打開它。這是一個 JMP 範例資料表。我們可以看到這裡有 122 行數據,包含 2000 個晶圓 ID。在這個圖表中,我們可以看到陽極鍵合範例表中的功能數據,例如電荷、流量等等。我在這裡查找了一些有趣的細節數據,以便進入駕駛艙。這可能是電荷的第 43 個位置。你可以看到它在這裡變化很大。或流量的第 40 個位置,這是這裡的一個特徵,這個位置和活塞力。
這裡,位置 30 是特徵位置,真空,也就是位置 3。這可能很有意思。還有電壓,位置 27 也很有趣。這裡有一個列切換器,可以輕鬆切換變數。這就是我們使用的資料庫。我把它關掉。現在我們又回到了駕駛艙,可以看看它是如何實現的。更新駕駛艙。我們編輯腳本。可以看到它非常簡潔,主要使用新的 SQL 查詢。就像你在這裡看到的,但它不是針對資料庫,而是針對 JMP 表。這就是存取 JMP 表和資料庫的主要區別。我還使用了自訂 SQL 來編寫查詢,定義查詢。你可以看到,我只篩選了一部分晶圓 ID,以便在駕駛艙中處理較小的資料量。我在這裡得到了一些聚合數據,例如最大值或平均值,就像你在這裡看到的那樣。 SQL 看起來有點複雜,因為我必須在自訂 SQL 字串中轉義雙引號。
稍後,我們將看到一種更優雅的方法。查詢運行後會更新表格,也就是駕駛艙。這裡我必須關閉 JMP 資料表,因為 JMP 會開啟這個表,但查詢結束後不會將其關閉。這裡我刪除了一些查詢執行時不需要的腳本。這是一個很小的腳本,使用起來很方便,也易於維護。為了清空資料表,我們可以看到我在這裡做了什麼。我刪除了所有行。我刪除了稍後會看到的圖表列。我刪除了稍後會出現的列組詳細資料中的所有列,並刪除了晶圓 ID 的屬性。讓我們執行所有查詢。現在我們可以看到完整的駕駛艙是如何填充的。我們看到獲得了一些帶有圖表的附加詳細資訊表。對於駕駛艙中的晶圓,我們獲得了這些晶圓 ID 的詳細資訊(就像我查詢的那樣,總共 30 個),以及流程的詳細資料。在表中,我放置了一個腳本來顯示圖表建立器,以便查看詳細曲線。現在我可以將其關閉了。同樣的道理也適用於收費。
您可以看到這裡有一個連結引用,這裡還有一個連結 ID。在這個圖表建立器中,我可以顯示控制面板,並且可以在這個詳細資料表中使用它…在這個詳細資料表中,我可以使用駕駛艙主表中的數據,例如這裡的條件,只需連結即可,就像它就在同一個表中一樣。在這裡,我將其用作疊加層,用不同的顏色區分好的晶圓和壞的晶圓。這就是連結的作用。讓我們瀏覽一下駕駛艙,看看細節。在圖表下方,我們看到一個總結圖,例如晶圓 ID 上的電荷最大值,同樣帶有列切換器,可以查看不同的變數。如果我將滑鼠懸停在某個點上,就會看到一個詳細圖表。這是因為我將圖表作為一列添加到了資料表中,並將該列設為標籤,就像您在這裡看到的那樣。這就是為什麼我可以在這裡看到圖表中的詳細資訊標籤。也許我們可以在這裡評估真空平均值是否有差異,以及好壞晶圓之間的差異?
例如,我們可以進行單因素分析。同樣,這裡也提供了詳細資訊。這如何用腳本實現呢?它其實就是一個圖表建構器。我創建了圖表建立器,從中提取了腳本,然後像這樣將其貼到表格腳本中。在這裡,我們可以像這樣使用所有聚合值和詳細值進行預測器篩選,就像您在這裡看到的那樣。您可以查看哪些參數可能使條件有利或不利。具體實現方式,我們可以在這裡看到。它首先查找“詳細資料”列和“分組詳細資料”列,如果存在則查找,如果不存在則使用聚合值呼叫預測器篩選。如果「詳細資料」欄位和「分組詳細資料」欄位存在,它也會將「分組詳細資料」欄位新增至預測器篩選中,因此這裡的這些欄位也會被新增至預測器篩選。現在,我們已經了解了圖表部分的內容。讓我們查看更多詳細資訊。晶圓 ID 的詳細資訊。這只是一個提示,請點擊此處顯示的晶圓 ID。點擊這裡,我們可以取得晶圓 ID 1971 或 1973 的詳細資訊。
只需產生一個新表格,該表格附帶一個腳本,用於顯示此圖表。
這是如何實現的呢?這裡使用的技術是事件處理程序。在列資訊下,我們可以看到這裡有事件處理程序。在事件處理程序中,JMP 已經提供了腳本框架。我編寫了一個腳本來啟動查詢,在這個查詢中,我可以使用目前所在的列和行。這裡我造訪的是晶圓 ID 及其對應的編號。這裡我需要資料庫連線。在這個 SQL 語句中,我們可以看到一種不同的字串插入方式,而無需轉義這裡需要的雙引號。這樣看起來更簡潔。透過使用 Eval Insert,我將查詢篩選條件(即查詢條件)插入到這個查詢中。我取得目前列的 ID(即我的晶圓 ID),在查詢中新增篩選條件,查詢完成後,我關閉資料表,刪除一些腳本,並將「費用與訂單」腳本新增至表中。這就是我所做的。點擊此處查看表格,點擊此處查看圖表。我們也可以一步完成所有操作。
我們不再需要這個了。讓我們看看下一個腳本。我取消選擇所有列和所有行。 「詳細資料」顯示已選行。我需要選擇一些行。讓我來操作一下。我按住 Ctrl 鍵,選擇 1、3、5 行,然後顯示已選行的詳細資料。這樣,我就得到了這三個晶圓 ID 的真空曲線,圖表的不同列分別顯示了「良好」或「不良」的條件。我可以進行比較。這是怎麼做到的呢?您可以看到,如果我進入 JMP 主窗口,後台會創建一個陽極鍵合表,但它是隱藏的,我們在這裡只能看到圖表,也就是這個窗口。我可以雙擊它來查看表格。這樣它就不再隱藏了。讓我們看看它是如何工作的。還有一個功能是,如果我關閉圖表,表格也會消失。我只能看到表格。讓我們看看它是如何實現的。首先,如果沒有選擇任何內容,則會彈出一個視窗。如果選擇了某些內容,我會編譯晶圓清單字串。這是一個包含晶圓 ID 列表的字串,我使用替換功能將方括號替換為這裡的括號。
然後,對這個清單也做同樣的處理。我新建一個 SQL 查詢,指向 JMP 資料表,並透過 Eval Insert 將這個晶圓清單作為條件加入 SQL 查詢。運行完成後,重複上述步驟,然後新增圖表產生器腳本。這個腳本在這裡執行。我在這裡告訴圖表生成器對象,關閉時,它應該關閉數據表(陽極鍵合詳情),並且不保存任何內容。這是一個小腳本,我認為它有一個很棒的功能,可以產生這些選定晶圓 ID 的曲線。當我關閉它時,所有內容都會再次消失。以上就是全部細節。
現在,我們來更新詳細資訊。正如您在這裡看到的,這些是新增的詳細資訊列。我已經解釋了這些要點的重要性,它們是透過這個腳本添加的。讓我再次清空表格,並將駕駛艙更新為包含主要資料。我們從詳細資料列開始運行這個腳本。您可以看到這些詳細資訊出現在這裡。接下來我將示範它的工作原理。首先,我整理出一個列表,其中包含我需要的列名、查詢所需的列名以及查詢所需的篩選值。
我將每個資料集編譯成關聯數組,並建立關聯數組列表。如果詳細資訊列不存在,我會創建它們,就像你在這裡看到的那樣。然後我遍歷所有詳細資料清單並建立…下一步是在所有詳細資料列上建立列組詳細資料。接下來是遍歷所有詳細信息,並為每個詳細信息插入查詢,就像你在這裡看到的那樣。同樣,使用 Eval Insert,我們輸入名稱,並輸入查詢所需的值。然後是為每個詳細資訊列建立一個表的循環。此更新會將值新增到詳細資料列中,就像我們之前看到的那樣。最後,在循環內部,我當然需要關閉詳細資料表。讓我們再看一下它是如何工作的。我清空表,更新駕駛艙,並添加詳細資訊列,就像你在這裡看到的那樣。這不是一個很大的腳本,我認為如果你想了解它的工作原理,它很容易維護。下一個詳細資訊是添加真空圖。
它的工作原理是這樣的:我按下按鈕,圖表就會產生。我稍微向右滾動一下。具體操作如下:它生成列,然後暫停數據表的更新,對於每一行,我們像之前一樣查詢所需的詳細信息,然後創建圖表構建器對象,並將其保存為圖片到列圖表的空白區域。最後,當然要關閉圖表建構器和資料表。然後設定單元格高度,以便能夠看到該圖表。這就是它的工作原理。
下一個細節是查詢費用明細。這裡會用到帶有圖表建構器的附加表,就像我們在這裡看到的那樣。這很簡單。它只是像這樣查找晶圓列表。然後查詢明細表,向表中新增屬性,新增圖表建構器的腳本,並執行該腳本。此外,我在這裡生成了連結 ID 和引用,以便能夠使用它。我將其關閉。我將再次執行以使用此晶圓 ID。這裡沒有評估。
評估結果僅在此處的駕駛艙表格中顯示,並且處於「條件」狀態。這使我能夠在詳細資訊中使用評估結果並繪製圖表。我們再次關閉它。流程也一樣。如果您不喜歡,比如說,所有視窗都顯示出來,而且它們有很多窗口,所以我再次清空了表格,您可以像這裡一樣將所有內容移到一個項目中。我們可以為當前資料表(即駕駛艙)建立一個專案。我們可以……我們不再需要這個了。我們可以像單獨使用表格一樣使用它。我們可以像這樣關閉左側面板以獲得全螢幕顯示。這裡的一切都以類似的方式工作。我們可以更新駕駛艙等等。在創建一些詳細信息時,例如費用查詢詳細信息,我們將在選項卡中看到它,而不是像這裡看到的那樣在不同的視窗中。我的演示到此結束。謝謝大家的關注。如果您有任何問題,請在探索高峰會、使用者群組或腳本俱樂部與我聯絡。再次感謝,祝您愉快。再見。