EPICS Sequencer (snc/seq)

E-mail addresses on this page have the at-sign replaced with "_at_" to deter spammers.  Adjust accordingly.

Module owner:
Michael Laznovsky
Stanford Linear Accelerator Center (SLAC)

This is the home of the EPICS Sequencer module, which provides a state notation compiler ("snc") and run-time support ("seq") for implementing state transition diagrams in an EPICS environment. Versions prior to 2.0.0 only run under VxWorks; versions 2.0.0 and later run in any environment which implements the OSI layer (introduced in EPICS R3.14).

This site gives access to the software source code, information on other modules which are needed to install and run it, and documentation on how to include and use it in your EPICS applications.

Please email comments, bug reports, etc. to the aforementioned module owner.

Where to find it

Download the software via anonymous ftp from the SLAC FTP site ftp://ftp.slac.stanford.edu/groups/controls/soft/sequencer, or directly via the links in this table:

version tarball EPICS base release notes known problems




notes by MRK click




notes by MRK click




notes by MRK
notes by JBA




notes by MRK click








notes by MRK Linux build


seq-1.9.6-beta.tar.gz R3.13.x  notes by Ben F.  


seq-1.9.5.tar.gz R3.13.x    task deletion

Installing and building seq/snc

After obtaining a copy of the distribution, it must be installed and built for use at your site. These steps only need to be performed once for the site (unless versions of the module running under different releases of EPICS and/or the other required modules are needed).

In the following, substitute "config" (EPICS R3.13.x) or "configure" (EPICS R3.14.x) for "<config-dir>":

  1. Create an installation directory for the module; usually this will be of the form /path/to/module/seq.

  2. Unpack the distribution tar file in this directory; this will produce a <supporttop> sub-directory named after the version number, e.g. seq-1.9.5.

  3. Edit the files <config-dir>/RELEASE and <config-dir>/CONFIG and set the paths to your installation of EPICS; in CONFIG, either modify CROSS_COMPILER_TARGET_ARCHS or remove it to default to all architectures.

  4. Run gnumake in the top-level directory and check for any compilation errors.

  5. Please drop us a note describing which EPICS and sequencer versions you are using.

Building sequencer applications for EPICS R3.13.x

To use the installed and built support software in an <ioctop> application, make the following changes to the application:

  1. Ensure that it is not using the version of snc (the state notation compiler) from EPICS base (EPICS base does not contain a file called libSeq so this is not a problem).

  2. Edit the config/RELEASE file and add the lines:


  3. Arrange to use the correct version of snc by editing config/CONFIG and adding the lines:

  4. ifdef SEQ
    SNC = $(SEQ)/bin/$(HOST_ARCH)/snc

  5. In the application source directory if the EPICS base object files are linked together, edit Makefile.Vx and add:

      ifdef SEQ
      USR_INCLUDES += -I$(SEQ)/include
      LIBOJBS += $(SEQ_BIN)/seqLib

  6. Also in Makefile.Vx, change the line:

         INSTALLS += iocCore seq
              INSTALLS += iocCore

  7. Rebuild the application and use the newly installed module as desired.

Building sequencer applications for EPICS R3.14.x

  1. Edit configure/RELEASE and set SNCSEQ to the directory where you installed the sequencer:

         SNCSEQ = /path/to/seq/version

  2. Edit your application Makefile and:

    If you used makeBaseApp to create your application framework there will be comments in the application Makefile guiding you through these steps.


The following documentation is available:

Documentation is provided in each release under the "docs" directory. The above links are for version 2.0.x.

See also:

    Tutorial -- http://lansce.lanl.gov/lansce8/Epics/training/snl/index.htm

    Description -- http://www.aps.anl.gov/asd/controls/epics/EpicsDocumentation/TrainingManuals/USPAS1999/06_SNL.ppt

    Lab work -- http://www.aps.anl.gov/asd/controls/epics/EpicsDocumentation/TrainingManuals/USPAS1999/lab_3_SNL.ppt

    Possible Next Steps...


This software was originally developed by Andy Kozubal at Los Alamos National Laboratory (LANL). It was subsequently modified by William Lupton, formerly at  the W. M. Keck Observatory (Keck), with contributions by Greg White of Stanford Linear Accelerator Center (SLAC).

Versions up to 1.9.2 were part of EPICS base and were or are being used at many EPICS sites.

Version 1.9.3 has been in use at many EPICS sites.

Version 1.9.4 is the first version to be distributed as an unbundled module.

Version 1.9.5 is a bug-fix version: sequencer deletion from the VxWorks shell once again works.

Version 1.9.6-beta is 1.9.5 with Ben Franksen's asynchronous pvPut() support.

Version 2.0.0 is the first version to run under operating systems other than VxWorks, via the EPICS OSI layer.

Michael Laznovsky, 2006-04-03