In the past, comparisons of chamber configuration setups between chambers on the same mainframe or across different mainframes involved a manual method that took a day. Recently, an automated process has been developed using Workflow Builder in JMP 17. Individual workflow files were created to speed up the efficiency of the process, using an individual workflow, depending on the number of chambers being compared. The workflows took the config setup file and compared the reference chamber to the chamber(s) being queried. The process resulted in a report with graphs and tables based on the criticality of the configuration mismatches.
This presentation showcases the effectiveness of Workflow Builder's new conditional feature in JMP 18. This feature provides a method for combining all comparison workflows into one workflow, with the correct section of the workflow determined by the number of chambers being compared, which is entered by the user in a conditional prompt. The relevant workflow is selected based on the prompt entry. The end result is still the same as before but now the manual selection of the workflow file has been eliminated, allowing a comparison report to be generated across multiple platform types in one or two minutes.
Hello, everybody. My name is Gary O'Driscoll. I work for a company called Applied Materials, and today I am going to be presenting on using Workflow Builder and the conditional prompts to monitor atomic layer deposition gasline temperature limits, and how we can use Workflow Builder to do this, especially in prompts for JMP breaking, where the application came in and JMP breaking.
A little bit of information about myself. As I said, I work for Applied Materials in Dublin. I'm a process engineer, and of course, multiple processes. I have almost 30 years of semiconductor experience. For hobbies, I do cycling, I play golf, and I coach camogie. It's a sport in Ireland, and it's an adult ladies team. In the men's it's called hurling. If you have ever been to Ireland, and you've heard about the wild game where we played with sticks, this is it and that's what I coach.
A quick poll about maybe who uses JSL. If we look at JSL and there's all the users, how many people really are a user of JSL? It comes into two camps. You're on the yes side, where JSL is really a part of your role, you love JSL. Maybe I'm a code expert and I use it every day. But also on the no side, JSL is not part of my role. I don't understand code and I've never used it. For me personally, I'm in the no side. I do not really understand the code. Sometimes I try to learn a little bit as I go along. There is a way of actually getting from maybe the no and getting nearly to the middle and nearly jumping to the yes. Part of that I will show you today.
In JMP 17's launch, which we can remember back in Cary in North Carolina at the Discovery Summit, Workflow Builder was introduced. Workflow is actually, if you think about it, it's where we record what we want to do with data manipulation, but it helps flip the relationship between code and output. From a JSL point of view, we develop the code to give us the output we need. With a Workflow Builder, we have the output, we manipulate the data we want, and there's a code generated in the background. Workflows allow a user to experience and learn JSL code without any prior knowledge.
If we look at the builder itself, what we can see is that in the builder, I will create my own tasks that I want to do from the manipulation. In the step settings in Workflow Builder, you can see that the code is generated in the background from every little task that I want to do. The workflows are used for repetitive tasks. They really improve efficiency so that you're not doing the same thing over and over again. The code for the workflow is viewable and editable.
If I was trying to do this for myself, especially when I started with Workflow Builder, what I found was that the files that I wanted to pick, I would pick the actual file I needed, and the name is in here. But not every time would I want to use that file. Tweaks in the code, I can do it here. But where I learned maybe a lot of things to say how do I pick a generic file, I got all of that from the JMP community. When you're going into code for the first time, the problem you have, it's not the first time the problem has been seen. Someone in the JMP community, has already solved this problem and has shared a code in the community.
Then when we think about JMP 18 launch. JMP 18 was launched in Manchester, in Europe at the Discovery Summit. There we heard about the six P's. On top of them, there was a seventh P that was included in JMP 18 that I heard of after the summit. That P was prompts, or conditional prompts in Workflow Builder, to be more precise.
How I use the prompts and conditional prompts in my role. I'll go through what, why, and how that I do this in my role. What I am doing? I am checking temperature settings for fault alarms and alarm warnings on atomic layer deposition, or ALD for short, chamber gas lines probably are following from preventive maintenance tasks. Why am I doing it? Because any temperature shifts not captured by alarms could result in scrap of product. The how is, I'm checking the settings using the enhanced Workflow Builders that use conditional prompts.
ALD, for those that are not used to it, ALD is used in many applications across all of our industries. It's a process to deposit material directly onto the surface, a monolayer at a time. It produces the thinnest, most uniform films possible in a self-limiting nature. Examples of this across our industries are I would have coatings on vials from labs, chemical and biomedical. I would have coatings on medical devices, and actually, layers in semiconductor device manufacturers. Inside the chip, there may be a layer. This is where we use ALD across all of our industries.
How it's used in the semiconductor industry? Maybe the same as some of the other industries. I have a container that would have a liquid chemical, and it's used in the process. Chemicals are used in the process, but they're transported not in liquid form, in vapor form, from a container to the chip surface in a vacuum chamber across a pot. In this case, it's a gasline. This is like a basic drawing of the whole chemical flow, but to give the concept, we would have multiple temperature heat pads across the whole pot from the container all the way to a chamber on the chip surface.
The chip surface, what I'm showing here is a representation of one chip, but in semiconductors, we have multiple chips across on one substrate or wafer in a chamber. We deposit on that. The heat pad limit settings need to be checked after every container change. Cold spots, as I said on the line, would cause maybe a gas to condense causing defects on the chip because a gas condensing potentially when it's cooled, it condenses, and back in liquid form, it may dry out and actually then come back in a solid form and deposit on the chip and cause an issue.
The old method from the settings and the settings check on multiple chambers. If you think about it one way, what I did, I had one Workflow Builder if I wanted to look at it as one chamber. If I had two different chambers that I wanted to look at, I would have another Workflow Builder. Similarly, all the way up, the diagram here only shows up to six chambers, but there could be more and more chambers on top of that. The old method was I would have a file depending on what number of chambers I would use, I would select that and that's how I would run.
If we go back to prompts, so with Workflow Builder, there's now a feature that allows us to maybe not just select one, but I can give a prompt to say, "Instead of having six separate ones, combine them all into one." In JMP 18, in the Workflow Builder, you can see that we have a section in Advanced. Then, when we go into Advanced, we get another menu. Inside all of these, you can see that these four here, the add if, add else, add return, and add for each. These are the ones that they allow a step to branch off. It's not just one path. I can go one path or another way depending on what I input. This is the new feature that was actually in JMP 18, and this is where I'm using it.
To give you some idea of the new method. From a flowchart point of vie, I would start, and then I would get a prompt. I would say, am I using one chamber? If yes, I would run my workflow, and I'd get a report, and I'm finished. If my prompt was not one, it would move on. Then say, is it two? Yes, we can run that one. If not, move on. It would continuously check for each of these then depending on the number, it would check on what I put in on my prompt. Then whichever one it matched, it would run that report for me. The new method is embedded if else faults or if else statements within a larger workflow. This is my method.
As an office engineer, I do not know JSL. This is how I came up with this concept and how it works for me. There may be other methods out there, but this is my method. Allow me now to show you on a demo.
If I was to go the old method, I would have maybe a four-chamber check. In my check, I would say I want to check the file. From the file that I wanted to check, would be, I would generate the data table and I would save that as a JMP file. I would open up my golden file. I'm checking limits against a golden set of limits because when we were doing a preventive maintenance, sometimes you widen the limits. If I'm cooling something down, then my limits are, if say for example I had something at 200 degrees, I cool it down to 20 degrees.
My limits may be actually very tight in relation to the 200 degrees, but because I've cooled it down, it's outside our tolerance, so it's giving me constant alarms. A lot of people will widen the limits while they're doing the preventative maintenance task. If you are finished that task, you would narrow your limits again. That's what this is looking for. It's in your golden file, and the limits being set back up to where they really need to be. I would have my golden file. I would save that into a table and join them. Then depending on the columns, I would match up. I would look at, are they all correct? For say, in this case, it's four chambers. Where they do not match, I would then generate a subset table.
From there, in a large distribution then say, okay, well then, what heat pad, what controller, what category would it be. I would have multiple workflows, as I said, I would have one for a one-chamber, a two-chamber, a three-chamber, a four-chamber, a five-chamber, and a six-chamber, and so on all the way up. What I've done is I combined them all so that I don't have to select an individual one anymore.
What I did in the prompts, and so what you can see here, before I do that, let me run this. What it would do is in JMP 18, I would go to my files. I would say I want to check, say, a four. I would go, open. This would all run. What do I want to save it as? I'd say four chamber. Save it. I'm just over-saving the one I have. Looking for the golden file, it's going to save that wherever I want, and I can save these. As I said, I can select on my folder wherever it is. This will generate everything I need.
On a four, as you can see here, it would say, I have two issues on heat pad 2. It all comes from controller 2, and one of them is a warning limit and a fault limit. Then it would generate a table of what they are, what the values are still, what they're meant to be, and I would have my little report that way. Also, I would do a similar thing with a six-chamber check. Then I came to my conditional prompts altogether. And as you can see now, the same file. What it is I have it broken down as I will open my check file, I'd save it. I have my golden file in the CSV. I'll save it as a JMP table. Then this is where I get to my prompts.
What you can see now is I will ask it within the prompt to put in a message. In the message, my message will say what chambers do I really want? As you can say, if the answer is four, it'll run this. If this one's four, else, it'll move on. Then in the else, I have embedded another workflow that might be for one chamber, and then another embedded one inside the else. Then the next one, we keep moving down. You can see that it's like each workflow is tabbing in over the whole thing. At the end then, I would have my charts and my report. That's how I'm using this. If I was to go back to this, what I would then do is, I open my check file again. This time I'm going to select the six.
It'll tell me, "Where do I want to save it?" I'm just going to say, I want to save my check six here. I could be putting in a tool ID or a machine ID or I could say a process depending on how I wanted to save my file. If I gave it that way that I always had the option that I just didn't have my table and tried to save it later, it would do it for me immediately. I would have six again, so I would say yes, I want to save that as the golden file.
Now this is where it's asking me, "How many chambers am I trying to compare?" In this aspect, I'm going to say six. It's going to ask me, I've run this a couple of times, so which file am I trying to use? I'll say, "Check the six." It's running the background there. As you can see, through the whole thing, it's depending on the prompts, it's skipping certain sections, and it's running those and saying, skipped. What I can see is then I have my files here. My mismatches for this, you can see them are here.
You can see now I have my table showing all of my limits here. It's basically saying from all my rows combined, but from my mismatches, I have two on this. For my mismatches across the others, I have done elsewhere. It would give me my full report depending on what I had and run that for me. I would take my limits if I go back to my mismatches from my four, I would then go, on this machine, I had two issues where my heat pad wasn't working properly. I would have, I've got two. I know it's on heat pad 2. I know it's on controller 2. I know one is a fault limit and the other one is a warning limit. Then going back to that, I would have, it was a lower warning, a lower fault. I can see maybe what they were set to. You can see here maybe they're set to 100 and minus 80, and really they should be minus 10 and minus 80.
I would go back then, and we would fix that limits and then everything's good.
For this then, it's just a check for me of checking that limits are back in the right place. It's not something that maybe is not being monitored. I think of many customers that would be doing this, a lot of people don't want to monitor limits. There's enough actual set points on how temperatures are running. We'll be fine. They're not going to be monitoring limits. This is another check that I would do for me.
That's my demonstration. From a summary, workflow conditions can be very helpful combining several workflows into one larger flow with prompts. Prompts can be, for me, they were numeric, but there are other ones that can be character-based. Take, for example, if I was in the chemical industry and I have two workflows, I can have a workflow that I'm working on acidic chemicals are one where I have a base. I can then enter in my prompt and say, "Am I working on my acidic workflow or am I working on my base workflow?"
You can use different characters, or I get to a task and I say, "Did this happen? Yes or no?" Depending on that, I may just generate a report depending on certain results. As I've said, it's my solution. There are other solutions to my workflow that may be considered. After I generated this, it's good to be able to study the JSL afterwards, and it can be a good teaching method.
As I said, if I go back now into my actual workflow, if I can find it. If I was to go back on here, I have my tasks, as I said, for each one. I can start learning JSL from what tasks I've created in my workflow. Maybe for next steps for me, it would be to add a prompt at the end of my workflow. I said, maybe this was for a particular machine with a certain number of chambers on it. Maybe I have to do a second machine or a third machine. Maybe I'll add in another prompt and say, "Do you still have to do another machine? Yes or no?" No, I'll be finished? Yes, then maybe loop way back into the start of the workflow again. That's another way I'm looking at it.
With that then, if anyone has any questions, feel free to contact me in the community and actually send your questions to me. As I said, my name is Gary O'Driscoll, my JMP community ID is godriscoll. Send me your questions, I will be happy to answer. Thank you.
Presenter
Skill level
- Beginner
- Intermediate
- Advanced