
![]()
|
| Home | Team | Services | Solutions | Libraries | Training | Download | Careers | Contact | |
![]()
|
GEMLib is a software package that implements the GEM standard published by the Semiconductor Equipment Manufacturing Institute, SEMI. GEMLib is written in the "C" programming language, and is a collection of library modules which implement the GEM collection of SECS messages, along with a lesser number of state machines which implement the GEM state models. GEMLib must be used in conjunction with another FabMation product, SECSC. SECSC provides low-level support for the SECS-I and SECS-II levels of the protocol. GEMLib makes use of SECSC to implement the messaging requirements. Why should you use GEMLib?The advantage of using GEMLib is that it provides all the message, state, event and variable support required by the GEM specification and thereby reduces the amount of work you must do to implement GEM. GEMLib works as a high level interface between FabMation's SECS-I and SECS-II driver package (SECSC) and your application. GEMLib makes most of the calls to SECSC for you automatically, and saves you from having to spend the time and effort needed to integrate SECSC into your application. GEMLib provides a simpler interface to the features of GEM. The GEMLib interface relies almost exclusively on "C" language function calls. The number of these calls that are required to access GEM features through GEMLib is greatly reduced over those that would be required if you were using SECSC alone, and the requirement that you have a thorough working knowledge of the internals of SECSC is practically eliminated. You pass only that data to GEMLib that is called for by GEM. Also, thanks in large part to the degree of standardization afforded by GEM, much of the work of supporting the messages is already done and will work "out of the box". What GEM Services Are Provided by GEMLib?GEMLib supports the following GEM services:
How is GEMLib Used?All of the interactions between GEMLib and your application program take place through "C" function calls. These functions fall into two categories -- the first are functions within GEMLib which you can call to cause GEM events or messages to be sent-- the second category are functions you provide that GEMLib will call to inform your application of GEM events, status or updates to variables. GEMLib contains all the functions in the first category; you supply those in the second. As an example of functions in the first category, consider what your application must do when an alarm or event happens. It will call a function in GEMLib to signal that an event or alarm has occurred. It will pass to this GEMLib function an index which identifies the event or alarm. GEMLib will automatically see if the alarm or event report is enabled, and if so, it will send the appropriate message to the host. Now consider functions in the second category--those in your application that you must write. These are functions which will be called by GEMLib when there is a status or informational change via the GEM interface. For example, when a terminal message is received by GEMLib for display on your equipment, GEMLib will call a function named TerminalDisplay(). You must provide a function by this name which accepts this message and displays it. Your function will need to display this message in whatever hardware or display mechanism your equipment uses. GEMLib has no idea what kind of terminal you might be using or how to access it. Examples of some of the other functions you must provide include such things as checking the validity of process programs, executing remote commands, and to informing of a change in communications state. GEMLib performs many of the requirements of GEM regarding the maintenance of variables all by itself without any interaction on your part. For instance, management of equipment constants, reading status variables, report storage and generation and reporting of process programs are all done automatically by GEM. As an example, for equipment constants, you need to do no coding whatsoever to support the ECS/ECA, ECR/ECD, ECNR/ECNRR transactions. These are all handled transparently by GEMLib. This is also true of status variables and many other of the features required by GEM. This greatly reduces the complexity of the interface between GEMLib and your application, and it saves you all the work associated with supporting these features. |
![]()
| Copyright © 2010 FABMation GmbH. All rights reserved. Click here to view legal information. |