b r a y d e n . o r g / Software

/ WebHome / NetApps / SecsGem

This Web


WebHome  
Topic List  
Web Statistics 

All Webs


Books
Main
Random
Software
TWiki  

brayden.org


Home
Monthly Digest
Today's Links
Resumé
Reading List
Books RSS
Random RSS
Software RSS

Other


Dale's Blog

currently-reading
TextDrive

SECS and GEM

SECS

Around 1980 there was a big push in the semiconductor manufacturing industry to develop automation. An industry consortium (Sematech) was formed and began work on a wide variety of standards proposals. Among them was SECS (Semiconductor Equipment Communications Standard). Though it's now getting a bit long in the tooth, the SECS standard was a remarkable accomplishment. The designers had the foresight to recognize that message content should be separate from transport mechanism, and so defined SECS-I (the RS-232 transport) and SECS-II (the message content). Since that time an alternate transport mechanism, TCP/IP based, called HSMS has been defined and has been the most common transport implementation for the past 8 years or so.

SECS is a point-to-point protocol, with one end being termed the equipment and the other end the host , for reasons that should be obvious.

SECS messages are hierarchical - lists within lists, basically. Each message has an identifier pair called a stream and function - both are integers. Each stream represents a category of message - for example, alarms are stream 5, event reporting is stream 6, terminal messages are stream 10. Each function represents a unique message specification within a stream. Odd-numbered messages are called primary messages ; even-numbered messages are called secondary messages . A SECS transaction consists of a primary message sent by one side of the communication link and the secondary reply message sent by the other side of the communication link. The reply message function number is always 1 greater than the primary message function number. For example, an event report message sent by the equipment is stream 6 function 11 (normally written as S6F11), and the reply message is stream 6 function 12 (written S6F12). Not all primary messages require a reply, and in some cases the decision whether a particular message requires a reply is configurable at runtime.

Messages are represented in a binary structure. The message itself has a 10-byte header that

Each item within a message has a short header that specifies

For compactness and versatility there can be 1, 2, or 3 length bytes, so each item can be up to 2^24 bytes in size. The data types are:

An item can consist of an array of any of these types (except List).

Lists can be nested to any level. Each list is defined as either fixed-size or variable-size. At runtime there is no such distinction - a list is whatever size it is. But in the SECS-II message definition provision was made for variable-length lists. For example, an event report can contain any number of individual reports and each report can contain any number of variable values - all configurable by the host.

GEM

The SECS standard defined many messages. Initially I think streams 1-12 were defined, and there are about 10-40 messages defined per stream. The SECS standard provided very little guidance about how the messages should be used. Each equipment vendor would choose the set of messages that it would provide, so host-side programming was a very case-by-case business. This was not a Good Thing. The GEM (Generic Equipment Model) standard was created to address this problem.

GEM specifies a smallish subset of the SECS-II messages. It says how those messages should be used, and defines a set of scenarios with associated transactions . It also defines a set of standard state machines (represented as StateCharts of course!) which must be implemented by the equipment. Finally, it provides a compliance chart. The standard consists of a required core and a set of optional GEM features. To be termed GEM compliant an equipment must implement the GEM core features in a compliant way. To be termed fuly GEM capable an equipment must implement all of the optional GEM features in a compliant way.

-- DaleBrayden - 07 Jul 2002

 
 
Current Rev: r1.2 - 25 Jun 2003 - 17:40 GMT - DaleBrayden, Revision History:Diffs | r1.2 | > | r1.1
© 2003-2011 by the contributing authors.