SecsServer - SECS/GEM Server Application
HumeSDK - a similar program with additional OPC features on Windows


ProgramName is either SecsServer or HumeSDK:

ProgramName ?-notk? ?-console? DMHGroupname

ProgramName -hubclient

ProgramName -license

ProgramName -licensecheck

HumeSDK.exe -opcclient

ProgramName -setup.tcl

ProgramName ?-notk? -source TclFilePathname ?-tclargs arg ?arg...??

ProgramName ?-notk? -tclargs arg ?arg...? ?-source TclFilePathname?

ProgramName -dmh_wish ?-tclargs arg ?arg...??

ProgramName -supervisor


The SecsServer executable file is a replacement for installing the Hume Datahub SDK with the Tcl language files that are used to support the .NET SecsPort, .NET SecsHost, VC++ SecsEquip, VB SecsEquip, and Java SECS libraries. The idea is to simplify the deployment of SECS applications to additional computer systems. This is possible because the SecsServer executable actually contains the same application files as the SDK in a compressed file system that is part of the executable file.  The executable file, HumeSDK, includes the SecsServer features and has a more generic name since the program is also useful for applications that do not involve serving SECS protocol interfaces.  The windows version of the HumeSDK executable includes OPC features that the SecsServer program does not have.

The SecsServer program is distributed from the Hume Integration Software download site in a .zip archive that contains additional files which are optionally used to customize the files embedded in the SecsServer program.  There are different versions of the SecsServer for various platforms including Windows, 32-bit Linux, and 64-bit Linux.  Also, there are different versions of the SecsServer for the different platforms depending on which major release of Tcl/Tk the program is based on; namely Tcl 8.4 or Tcl 8.5.  The different versions are functionally compatible with older or newer SECS client libraries.  The version based on Tcl 8.4 has the advantages of a smaller file size and memory usage, but the disadvantage of imbedding the older, less featured host supervisor program.  You may find it useful to have the newer host supervisor available on your equipment for customer demonstrations, or being able to prove proper operation of the SECS equipment interface.

To use the SecsServer program file, you can place it in the working directory of your SECS application. However, the recommended installation is to place it in a directory of your choice, and set the environment variable specified by your SECS library installation instructions to point to path location using Unix Style slash delimiters instead of DOS style backslash delimiters.   By default, recipe transfer and logging directories are created as subdirectories of the installation directory.

SECS Library
Environment Variable
Java SecsEquip or SecsHost
.NET SecsPort or SecsHost
VB, VC, or POSIX C++

The SECS software use the SecsServer program in preference to using the Datahub SDK installation. You do not need to deploy any of the other files in the SecsServer .zip archive. The other files are only used to create custom versions of the SecsServer executable program.

You still need to have a Datahub SDK runtime license installed to use the SECS software on a machine. If the machine has the Datahub SDK installed, the SecsServer program will read and use the licenses.txt file of the Datahub installation if the DMH_BIN environment variable is set as it should be. If you do not have the Datahub SDK installed, simply place the licenses.txt file in the same directory as the SecsServer program. The licenses.txt file needs to have the same format that is used by the Datahub SDK. Copy the format of the licenses.txt file on your development system as a model for deployment systems.  The SecsServer program has the ability to create a temporary 30 day licenses.txt file for the computer system that it runs on using the -setup.tcl option.  The Datahub SDK setup program has the ability to create temporary 30 day licenses for any hostname.  You can use these features to deploy temporary uses of your SECS interface or other Datahub SDK applications.  

If you run the SecsServer from the command prompt with the argument -license, it will show you the status of your license installation:

  c:> SecsServer -license

The argument -licensecheck is intended for use by other programs.  The program checks the license and terminates after setting an exit code.  The exit code of 0 means that a valid license was found.  Other codes are:  1 - no licenses.txt file found, 2 - the licenses.txt has improper formatted data, 3 - no license code was found for the system in the licenses.txt file, and 4 - an invalid license for the system was found in the licenses.txt file.

The -setup.tcl command line option creates a temporary licenses.txt license file in the current working directory for the machine that the program is executing on.  A temporary license is useful for demonstrations, evaluations, temporary testing, and similar purposes.  Avoid a situation where a temporary license is used for production.  When the license expires, the features stop working.

SecsServer Customization

Do you need to customize the SecsServer program?

The usual case is that you have not modified any of the Tcl language application files. In this situation, you can use the SecsServer program file provided by Hume Integration on their download site. Be mindful of recent changes to the code library you are using. You will want to use a version of the SecsServer program that has any recent new features or bug fixes that your application relies upon. The SecsServerBuilder.bat script (builder script on POSIX systems) has the ability to look inside of the SecsServer program and show the modification times and sizes for the contained files. It is simple to rebuild the SecsServer program using the files that you have been using for development. You will only need to do this if you have added custom Tcl files or modified the Tcl files provided by Hume Integration. Just run the SecsServerBuilder application and use the "Build SecsServer" button action to create your own SecsServer version.

X-Windows Usage

The Linux SecsServer version and other POSIX versions have the ability to run in background without using X-Windows. When the program is started with -notk on the command line, and the environment variable DISPLAY is not defined, or is defined to be an empty string, the SecsServer runs without using X-Windows. When running without X-Windows, the SecsServer cannot display any Tcl/Tk program windows. The default startup of the SecsServer by the Java libraries is to provide the -notk command line option, so your defined value of DISPLAY becomes the deciding factor as to whether X-Windows is used.

"Hidden" SecsServer Features

The SecsServer program can also be used in the field for testing or demonstrating your SECS equipment interface.

We mentioned above that you can install a temporary license or validate a license installation by using the -setup.tcl and -license options.  Execute the program as SecsServer -supervisor and it brings up the Hume Tcl/Tk SECS Host Supervisor Program.   When executing the Host Supervisor app, a user can set an environment variable TCL_SUPERVISOR_DIR to specify the base directory used for reading and writing *.tab files, log files, and host recipe transfers.  The default base data directory is the directory where the SecsServer program is found.

Execute the program as SecsServer -hubclient and it brings up the Datahub SQL client application. In this usage, the default connection information will attach to a SecsServer process that is running in background to support your SECS/GEM equipment application. You will need to edit the DMH groupname and change it from GEM to GEMHOST to connect to a SecsServer that is in use by the Hume-written .NET or Java SECS Host Applications. The hubclient program lets you interactively examine the SECS Server tables.

These applications are not limited to your own computer system. You can edit the connection information to target any SECS equipment interface or any SecsServer running on your Local Area Network.

Another feature is that the SecsServer program will source and execute a Tcl program when it is executed as SecsServer -source TclFilePathname. The option of using -notk to hide windows or to not use X-windows as described above also applies to executing Tcl scripts.  The -tclargs argument is used for specifying Tcl code to execute on the command line.  When used in combination with the -source option, the order of the -tclargs and -source command line options determines whether the Tcl code arguments are executed before the TclFilePathname is sourced or after.

The -dmh_wish option brings up an interactive Tcl/Tk console.

The -opcclient option is used with the Windows HumeSDK.exe program to run the OPC Supervisor application.


dmh_wish  OPC Supervisor  Tcl/Tk GEM Applications  Datahub


Licensed and Supported by Hume Integration Software,


SECS/GEM "Datahub SDK" Daemon server starkit