SECS Protocol
The SECS
protocols are supported for four types of connections:
-
SECS-II / SECS-I using RS-232 connections
-
SECS-II / SECS-I using TCP/IP terminal server
connections
-
SECS-II / HSMS-SS SEMI Standard
-
SECS-II / HSMS-SS 1993 draft SEMI Standard
The SECS/GEM
software is useable from your chosen language,
including .NET/C#, VB, C++, Java, and Tcl/Tk.
The SECS
software is delivered as:
1) commands
that extend the Tcl/Tk programming platform,
2) Tcl/Tk applications with source code that use these
commands,
3) .NET components that provide the SECS/GEM equipment or
host capabilities in the native CLS .NET API,
4) .NET/C# equipment and host applications that demonstrate
use of the .NET components,
5) a Visual Basic Active-X control that provides the
SECS/GEM equipment capabilities for VB6, and
6) a Visual C++ library that provides the SECS/GEM equipment
capabilities for VC++ 6.0.
The
.NET SecsPort Component
gives the equipment manufacturer a rapid start – a
working, high-level SECS/GEM interface, with built-in
understanding of more than 85 standard SECS message types, and
all required GEM variables and event types. The equipment
developer uses a native .NET API to add his equipment alarm
types, variables, events, and custom message handling. At
runtime the component executes the robust and proven Hume SECS
software as a child process, with minimal impact on the .NET
application. An OEM with complex integration requirements will
find that the Hume Datahub SDK
provides the tools needed to integrate the GUI and supervisory
logic with controllers, process instrumentation, and even SECS
sub-equipment.
The factory
developer’s challenge is somewhat different than the tool
provider. He can be faced with dozens of equipment types, all
different. Even the same tool may have different interface
behavior over its short lifetime as its control software is
upgraded. For this challenge, a premium is placed on
flexibility, and working with a high-level, productive
environment with excellent runtime visibility into the proper
functioning of his low-volume applications. The factory
host developer will find a lot to like in the configurable SECS/GEM
Supervisor program.
-
The Supervisor program has the ability to start and
manage multiple SECS host connections running in the same
process. The Datahub SDK provides table-driven,
configurable software for both the SECS Host and Equipment
roles. You use the "other side" for testing and
demonstration.
-
Portable Tcl/Tk
environment and .NET
SecsHost Component including example application
-
The Supervisor program comes with Tcl source code to
support custom requirements. Tcl
is a complete, general purpose programming language that
supports procedures, OOP constructs, and extensibility; it
is not a frustrating language subset.
-
The SECS functionality includes low-level diagnostics
and tracing, all of it dynamically adjustable, and
accessible through the network. Trace windows with
dynamically adjustable views are available for each
connection. You do not need to purchase a separate
product for interface characterization.
-
SECS-II messages are dynamically constructed using Tcl
SECS Notation; a direct mapping of SEMI notation to the
syntax of Tcl lists. For example, the message
"L {A mod5a} {A v2.03}"
represents a list of two ASCII strings.
-
The applications handle most of the routine SECS message
conversations. The host logic will successfully attach to
GEM compliant equipment or near GEM equipment and
dynamically discover its alarms, variables, equipment
constants, and initialization behavior. The host UI
provides for configuring custom event reports and alarm
management. No coding is needed to capture and forward
custom event reports and alarms to higher level software.
-
A Replay window with Save and Load lets you capture and
replay SECS-II message exchanges.
-
Make
the most of scarce access to process tools.
-
Run
characterization scripts and use the results for
off-line interface development.
-
Replay
individual messages while dynamically revising custom
application code.
-
The software uses asynchronous IO and does not
compromise the efficient, no-polling application event loop.
-
Multiple interleaved transactions with queuing are
supported for both Host and Equipment roles.
-
As many connections as you choose are supported in a
single process.
-
HSMS sessions feature loss detection with configurable
automatic reconnection logic.
We have
mentioned that the SECS Equipment and SECS Host application software can be
implemented using
.NET Components SecsPort and SecsHost, respectively. These applications can also be
controlled and used from a different language environment, or
integrated with other platforms. The Hume Datahub SDK provides
DMH message system
libraries for many platforms
including .NET, an Active-X control for VB and Labview which could be
used to implement an APC solution. Compared to similar
solutions in the industry, superior performance is obtained by
executing stock or custom SECS message conversation logic in the
driver process. The Hume HSMS performance was rated as 10X
faster than the status quo C/C++ solution in a recent SEMI task
group study.
(For information on our Interface A component,
click here)
RS-232 and TCP/IP Socket Connectivity
Hume provides a
high-level Tcl command to send and receive text or binary
messages from devices connected through serial RS-232
connections or through TCP/IP socket connections. The command
is able to parse individual messages from the received data
stream by looking for sequences of characters that represent the
start and/or completion of messages. Additional features
provide for receiving a specified number of characters within a
specified timeout period. Between these two styles of receive
interactions, almost any serial protocol can be supported in
high-level application code. Customers have used this command
for diverse purposes such as automating telnet
sessions, eavesdropping of an RS-232 connection, and connecting
to various instruments.
UDP Protocol Support
The Datahub SDK
also supports sending and receiving UDP datagram messages over
an IP network. In contrast to the stream oriented nature of
TCP/IP, UDP is connectionless protocol where datagrams are sent
with little overhead beyond IP address management. The
protocol can be useful with high speed test equipment since
there is never any delay from trying to establish or
re-establish a TCP connection.
NTP Protocol Support
The software
is also able to obtain accurate clock readings by using Network
Time Protocol in combination with an NTP server. In general, it
is preferable to use NTP to synchronize the system clock at the
operating system level. However, there are circumstances when
this is not possible, or cannot be assumed. |