Menu
Close
  • Why PDF Solutions
  • Products
    • Exensio® Analytics Platform
      • Exensio Battery
    • Sapience™
    • Advanced Insights for Manufacturing
    • Design-for-Inspection™ System
    • Characterization Vehicle® System
    • secureWISE®
    • Cimetrix® Connectivity & Control
    • Industry Standards
    • Technology
    • Partners
  • Services
    • Overview
    • Integrated Yield Ramp
    • Professional Services
    • Value Added Services
  • Resources
    • All Resources
    • Press Releases
    • Blog
    • Users Conferences
    • Keynotes & Papers
    • White Papers & eBooks
    • News
    • Events
    • Webinars
    • Videos
    • Applications
    • Training
  • Company
    • Overview
    • Management Team
    • Board of Directors
    • Corporate Governance
    • Careers
    • Investor Relations
    • Locations
    • Trust Center
  • Support
    • Overview
    • Support Portal
    • Software Downloads
  • Contact
  • Schedule A Demo
  • Login
  • Support
    • Overview
    • Support Portal
    • Software Downloads
  • Contact
  • Schedule A Demo
Login below to view protected resources.

Lost your password?
Forgotten Password
Cancel
  • Why PDF Solutions
  • Products
    • Exensio® Analytics Platform
      • Exensio Battery
    • Sapience™
    • Advanced Insights for Manufacturing
    • Design-for-Inspection™ System
    • Characterization Vehicle® System
    • secureWISE®
    • Cimetrix® Connectivity & Control
    • Industry Standards
    • Technology
    • Partners
  • Services
    • Overview
    • Integrated Yield Ramp
    • Professional Services
    • Value Added Services
  • Resources
    • All Resources
    • Press Releases
    • Blog
    • Users Conferences
    • Keynotes & Papers
    • White Papers & eBooks
    • News
    • Events
    • Webinars
    • Videos
    • Applications
    • Training
  • Company
    • Overview
    • Management Team
    • Board of Directors
    • Corporate Governance
    • Careers
    • Investor Relations
    • Locations
    • Trust Center
Blog

Creating a SECS/GEM interface for equipment automation using the Cimetrix CIMConnect toolkit

Categories: 
Equipment Solutions
,
Industry Standards

Tags: 
Equipment Connectivity

Posted on January 30, 2019 by PDF Solutions

This blog was originally posted on cimetrix.com

Adding a SECS/GEM interface to an equipiment is the first step in automation. Without the proper toolset, this can seem like an overwhelming endeavor. The CIMConnect™ toolkit provides developers and integrators with the ability to quickly create a SECS/GEM interface and the power to perfect it.

Introduction

Recently I was introduced to the Cimetrix CIMConnect tookit. I had the opportunity to attend a hands-on client training event. Though my knowledge of SECS/GEM was minimal, within three days, I learned the basics of implementing a SECS/GEM interface using CIMConnect and want to share some highlights of that very positive experience.

What is CIMConnect?

CIMConnect provides a robust software development kit that helps developers implement and manage a SECS/GEM interface from their equipment control application. CIMConnect is always current with the latest version of required SEMI standards, which simplifies the process of producing a GEM-compliant interface. When CIMConnect is installed, it comes with multiple tools that make development and testing straightforward and efficient.

CIMConnect Sample projects

CIMConnect samples provide a functioning example of a SECS/GEM application. Sample projects are available in C#, VB.NET, and C++. I will be referring to the C# sample since that is what I used during training.

This sample provides a “known-good” environment that provides a way to accelerate development by taking care of the essentials. I was able to focus on debugging the scope of what I was working on in my application, rather than questioning the SECS/GEM connectivity aspects.

C# Sample Features

  • Processing Simulation: The sample provides a loop that simulates equipment operation. This includes triggering events and updating variable values.
  • EMService Initialization: When the Sample is compiled and run, CIMConnect is initialized and GEM communication is started.
  • GEM Operator Controls: GEM communication status is displayed in real time using GEM state machines. Communication can be controlled from the sample’s user interface.
  • Multi-threading Examples: Data is processed in separate threads. This is a good practice and allows the user interface to remain responsive while data is effectively processed asynchronously.
  • Delayed GEM Communication Initialization: This demonstrates the concept of waiting for the equipment to be ready during initialization.
  • Trigger Events: Events are triggered from the process simulation loop. As events are triggered, related variables are updated.
  • Get and Set Variable Values: This sample provides multiple examples of programmatically getting and setting variable values of varying data types.
  • Set and Clear Alarms: An example alarm can be set and cleared by toggling a checkbox in the user interface.
  • Terminal Services: Terminal services provide an example of effective logging by displaying real-time messages to the equipment user interface.
  • Remote Commands: The sample allows the user to start and stop the processing simulation by sending a SECS-II message from the host.

Training process

Training is very interactive; the instructor demonstrates a new topic, and then allows the trainees time to try it out. When presented with a new feature to try out, I found it beneficial to initially create a button or checkbox to ensure the new feature worked. Next, I embedded the feature into the application. Breaking each process into these two steps removes ambiguity and avoids unnecessary debugging.

The pace was set by the client. The instructor was available to provide assistance as needed. Though the training follows a curriculum, each session is custom tailored to the needs of the client who requested the training. 

My Application

I had created a C# application prior to training. My application read in an XML recipe and simulated wafer processing. Having a working application to modify during training was very beneficial, since it simulated a real-world practical implementation.

Adding the SECS/GEM interface

The first step was to initialize CIMConnect. This step was simplified by extracting the Initialization functions from the sample project. Once I could observe that CIMConnect was initialized, I was able to move on to adding the SECS/GEM functionality.

API Calls

My application sends API calls to, and receives call backs from CIMConnect. The API calls were somewhat difficult to understand initially due to the customization each call allows.

Wrapper functions

The sample project provides several useful wrapper functions that implement API calls. The overhead of API calls is handled inside the wrapper. The benefit of using wrapper functions is that the developer can focus on whether the result matches his/her expectations rather than whether the API call is incorrect.

After my success using wrapper functions to call APIs, I started to modify and make my own wrapper functions. Eventually I became comfortable calling the APIs directly.

Equipment Configuration

CIMConnect lets you statically define events, alarms, variables, and other attributes in a configuration file. In my file, I created multiple variables that related to my application. Later I learned that my application could dynamically define items instead. Also, my application could programmatically override configured attributes. I think these features would benefit companies that produce multiple equipment types with slight variances.

Adding Events and Alarms

The first event that I created was to let the host know when a FOUP had landed on the load port. I used the SendCollectionEventWithData() wrapper function to trigger the event and increment a variable I had previously defined in the configuration file. This variable provided me with a count of FOUPs that had landed on the input port.

Using the AlarmSET() and AlarmClear() functions, I created 3 alarms. Since I didn’t have hardware such as an EMO button, I used check boxes to toggle each alarm’s behavior.

My application with a SECS/GEM interface. 

Developing Using the CIMConnect Control Panel

The CIMConnect Control Panel is a graphical user interface utility that provides a way to observe the inner workings of CIMConnect.

During development, I used the control panel frequently. I could watch the alarms status change as I toggled each checkbox in my application. Event history and alarm history provided real-time updates. I could change variable values and trigger events from the control panel and verify results on the host without needing to constantly modify my application.

I watched the GEM communication status change on the control panel as I used my application’s GEM control. I could also change the status on the control panel and watch it change in my application.

CIMConnect Control panel 1.15.0

Host Testing with GEM Host Messenger

CIMConnect comes with GEM Host Messenger, a host application that allows the user to send and receive SECS-II messages to/from the equipment. Using GEM Host Messenger, I could easily connect with my application. GEM Host Messenger displays and decodes messages into an easy-to-read format.

I could send S2F21 messages “START” and “STOP” to control processing on my application. It was very satisfying to see my once-standalone application being controlled remotely.

Gem Host Messenger 1.0.0

Help Documentation, Tools, and Support

CIMConnect provides an in-depth help file and developer’s guide. I found myself referencing these frequently to get details on different functionality available in the extensive CIMConnect libraries.

Conclusion

CIMConnect allowed me to rapidly develop a SECS/GEM interface and implement it into an already existing program. With CIMConnect training developers unfamiliar with SECS/GEM can learn the basics in as little as 3 working days. Although this was a simple example, CIMConnect has the power and functionality to facilitate projects on any scale.

 

Share on:
  • Facebook
  • Twitter
  • LinkedIn
« Multiple GEM Connections on Manufacturing Equipment
EDA Applications and Benefits for Smart Manufacturing Episode 6: Trace Data Analysis »

More From Author

  • SEMI E148: Time Synchronization
  • EDA Interface A vs. SECS/GEM for Data Collection
  • EDATester Product Launch: EDA/Interface A Freeze II Testing
  • SECS/GEM Series: Recipe Management
  • SECS/GEM Series: Documentation

Categories

  • Data, Analytics, and AI
  • Events
  • Industry Trends
  • Subject Matter Experts
  • Equipment Solutions
  • Manufacturing Integration
  • Partners
  • Industry Standards
  • Company Insights
  • Podcast

Tags

  • Equipment Connectivity

Ready to get Started with PDF Solutions?

Learn how we can transform your manufacturing data into actionable intelligence and improve your product yield, quality, and reliability

Schedule A Demo Contact Us

Corporate Headquarters
2858 De La Cruz Blvd.
Santa Clara, CA 95050 USA

Phone: 408-280-7900

Fax: 408-280-7900

Follow Us on Social Media

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram

© 2026 PDF Solutions. All rights reserved.

  • Privacy Policy
  • Terms of Service
  • 日本語
  • 한국어
  • 中文 (简体)
  • 中文 (繁體)