I have fond memories as a kid spending Saturdays working on the family cars with my dad. We would dive in to taking things apart and putting them back together again. Whatever the problem was we could figure it out and fix it. With cars from the 1960s and 1970s, there wasn’t too much risk with this approach to car repair. Today, I still like to do my own car repairs when I can. But cars nowadays are far more complicated and compact. I have learned that I can’t just jump in and wing it with any hope of getting it done right or in a timely manner. My experience has taught me to rely on the experience of others, learn from their lessons and save myself from late nights asking, “what have I gotten myself into?”
Cimetrix CIM300TM tool kit out of the box has already implemented a lot of the GEM 300 work for you. Notice I said “a lot” and not “all” of the work for you. To complete your GEM 300 application, your software will have to integrate with CIM300. The GEM 300 standards can be quite complex and some of the scenarios have intricate details. CIM300 provides a rich set of APIs and callbacks to help you implement a compliant GEM 300 solution. The key to success is knowing how to use the APIs and callbacks for the different GEM 300 scenarios.
The SEMI E87 Carrier Id Status state model, pictured below, is just one of many state models defined in the GEM 300 standards.
Figure 1 CARRIER ID STATUS STATE MODEL
There are several transitions in this state model and intricate conditions that determine which transition should be triggered. CIM300 supports this state model, but it requires interaction with your application to know which transition to make in the state model. In my experience, most people handle the happy path scenarios correctly, whether they're “winging it” or had formal training. However, I have rarely seen people handle the error scenarios correctly, without training on GEM 300 and CIM300. While understandable, error scenarios are often hard to follow and the implementation differences are subtle. The risk of doing it wrong in the software will execute the wrong transition in the state model, which in turn sends the incorrect event to the GEM host. The wrong event could really mess things up for the host. In both the happy path and error scenarios, the CIM300 API to call is the same:
CMSLib::CCxE87CMS::CarrierAtPort
However, how you specify the parameters to the call, it is different for each scenario. The differences in how you call the API will trigger different transitions in the state model. Our documentation for this one API call alone is longer than this entire blog post. That is how important it is to get it right. In addition to our product documentation, Cimetrix also provides CIM300 training and sample applications illustrating how to use our products.
I strongly recommend taking advantage of our CIM300 training. Training is the best first step to integrating CIM300 with your tool application. Training is typically a week long and provides an overview of the GEM 300 standards as well as hands-on experience using CIM300. The goal for Cimetrix in training is that by the end of the week-long training, clients have completed an implementation of a GEM 300 happy path scenario. That is, you receive hands-on experience using CIM300 to implement carrier verification (SEMI E87), creating and running a process job (SEMI E40) and control job (SEMI E94), tracking substrates (SEMI E90), and tracking equipment performance (SEMI E116).
Make sure you also leverage the sample applications that accompany CIM300. The sample applications provided with CIM300 give a jumpstart on integrating CIM300 with your own application. You can use the sample application as a reference for how to use our APIs and callbacks, copy/paste portions of the code into your own code, or use our application as a starting point for your own software. If you’re like me, you like having working source code you can refer to for concrete examples of how to do things and to see how things should work together.
If you dive right in and start implementing CIM300 without training or mentoring from an expert, you may find yourself spending a lot of late nights asking yourself, “what have I gotten myself into?” A little training goes a long way in simplifying the implementation!
Find out more about CIM300 or request a Technical Product Overview and/or Product Demo today!