Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

All HMI Applications in TSENTRY are viewed using the TSENTRY Screen Explorer, or Texplore, which acts as a container application for displaying and navigating between HMI screens.  Texplore uses the various services to exchange information with the TSENTRY host in order to provide a secure yet highly customizable front end to any control system.

...

Texplore

Overview

The TSENTRY Screen Explorer, or Texplore, is the application used to display HMI screens to a user.  Texplore is simply an application for browsing the TSENTRY HMI subsystem, much like Internet Explorer is an application for browsing the Internet.  Texplore provides much of the common framework for an HMI such as connecting to a TSENTRY host, reading the HMI configuration file, providing a login screen, and managing the navigation between screens within the HMI application, but by itself does not define any specific HMI screens.

Texplore relies on several processes running on the TSENTRY controller to provide it with information as it operates as the HMI client browser.  These are:

  • The NtRtInfo service, which exposes static information from the TSENTRY controller to client objects in a request/reply architecture.

  • The Tsecurity service, which provides authentication and authorization services to client objects.

  • The GsmOpcSvr process, which exposes the values of individual variables in global memory on the TSENTRY controller.

  • The TrendSrv process, which exposes sampled or trended values of variables in global memory on the TSENTRY controller.

Expand
titleInstallation

The instructions for installing Texplore on a client workstation are laid out in the Workstation Configuration section.

Expand
titleInitializaion

The following chart illustrates the sequence of events when Texplore is started and loads an HMI application:

Image Modified
Expand
titleHMI Configuration

An HMI application is configured via a single XML application configuration file.  This file is stored on the TSENTRY host and is retrieved through the NtRtInfo service.  The actual folder on the TSENTRY host in which HMI Configuration files are stored is specified in the configuration file for the NtRtInfo service on the host.

Within this file there must be an <AppConfig> node that specifies the desired configuration for the HMI application

Info

“HMI-” as in 'HMI-Example' is an HMI Configuration sub doc

Expand
titleHMI-App Configuration

This application configuration file must contain an <AppConfig> node that specifies each of the following basic parameters for configuring the application:

Parameter Name

Value

EnableTsecurity

This is a Boolean flag indicating whether or not security is enabled for this HMI application.  If this flag is false, the user is not required to login and is granted a default security key equal to the value specified by the DefaultSAK key.  If this flag is true, the user will be forced to login to the HMI system before he can access any of the HMI screens.  In addition, if this flag is true the AppConfig section of the application configuration file should contain a <LoginConfig> subsection to define how the Login screen should function (see below).

DefaultPrivileges

This is a single string specifying the default privileges that are granted to a user of this HMI application.  Individual privilege names should be concatenated together using semicolons.  If this value is not defined then only authenticated users that are specified (either explicitly or implicitly) in the application’s ASCF will be granted access to the HMI application (i.e. guest access will be denied).  If this value is defined then any authenticated user is granted access to the HMI application with these privileges unless otherwise dictated by the application’s ASCF (i.e. if guest access is allowed then all guests will be given these privileges by default).

DefaultSAK

This is the default security access key that is granted to a user of this HMI application.  If this value is less than zero, only authenticated users that are specified (either explicitly or implicitly) in the application’s ASCF will be granted access to the HMI application (i.e. guest access will be denied).  If this value is greater than or equal to zero, any authenticated user is granted access to the HMI application with this security level unless otherwise dictated by the application’s ASCF.  In addition, if guest access is allowed, all guests will be given this SAK by default.

DefaultCulture

This parameter specifies the default culture for this application.  This string must follow the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>", where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166.

TsecurityHost

This is the IP address or name of the Tsecurity host used by this HMI application.  This parameter is only used if EnableSecurity=True.  If this parameter is not specified in the <AppConfig> section then Texplore assumes that the Tsecurity host is the same as the TSENTRY controller.

TsecurityPort

This is the TCP/IP port number used by the above Tsecurity host.  This parameter is only used if EnableSecurity=True.  If this parameter is not specified in the <AppConfig> section then Texplore assumes the Tsecurity host is configured to listen for requests on the default Tsecurity TCP/IP port number (8080).

TsecurityApp

This is the name of the Tsecurity application that specifies the security configuration for this HMI application.  An ASCF matching this name must be configured on the TsecurityHost above.  This parameter is only used if EnableSecurity=True.  If this parameter is not specified in the <AppConfig> section then Texplore assumes that the Tsecurity application name is the same as the HMI application name.

In addition to the above key/value parameters, the <AppConfig> section can also contain several subsections:

  • If the EnableSecurity parameter above is set to True, then upon starting the HMI application the user will always be automatically directed to the Login screen.  Consequently, the <AppConfig> section above must also contain a <LoginConfig> subsection to configure how the Login screen is to function.

  • If the application is to support multiple languages, the <AppConfig> section can also contain an optional <Languages> subsection to specify various phrases used within the application.

  • If custom variables are defined for a given HMI application, the <AppConfig> section must also contain and <AppVariables> subsection to list these variables and define their initial values.

Expand
titleHMI-Screen Configuration

The <ScreenConfig> subsection within the <AppConfig> main section is required to specify any ‘root’ menu screens within the application.  For more information about how Texplore navigates from screen to screen see Browsing from Screen to Screen.

Subnodes in the <ScreenConfig> subsection must conform to the following format:

Code Block
<Screen ScreenID="MainMenu"
            ClassName="MyNamespace1.MainMenu,MyAssembly1"
            Default="True" />

<Screen> subnodes have the following attributes:

Parameter Name

Value

ScreenID

This is the name by which this screen will be known within the HMI application.  The ScreenID is used when linking from one screen to another.

ClassName

This is the fully qualified assembly name for the class that defines this screen.

Default

This Boolean flag indicates whether or not this is the default screen for the application.  Only one <Screen> subnode should have this attribute set to “True”.  This attribute can be omitted on all other <Screen> subnodes.

Expand
titleHMI-Login Configuration

The <LoginConfig> subsection within the <AppConfig> main section is required if security is enabled and the Login screen is to be displayed to the user.  This section specifies the following parameters:

Parameter Name

Value

AllowGuest

This Boolean flag indicates whether or not users are allowed to login as a guest.

RequireUserIDForGuest

This Boolean flag indicates whether or not a user must provide a username and domain in order to login as a guest.  Though the authenticity of the provided user name and domain are not verified, this feature may be desired for logging events within the HMI application.

PreloadUserID

This Boolean flag indicates whether or not the username and domain fields should be preloaded with the username and domain of the currently logged in Windows user.  Note: for web-based HMI applications, this feature will only work if Anonymous access to the virtual web application is disabled.

AllowAssumedAuthenticated

This Boolean flag indicates whether or not a password must be specified if the username and domain match those of the currently logged in Windows user.  This flag can be used in conjunction with the PreloadUserID flag so that the user needs only to click the Login button in order to log in as himself.

SessionTimeout

This integer value indicates the maximum amount of time (in minutes) that a session can remain idle before it is considered timed out.  Once a session has timed out the user must re-login before he can regain access to the HMI application.

PasswordExpirationNotice

This integer value is used to automatically present a form to allow the user to change his password.  Upon login this form will be displayed if the number of days until the logged in user’s password expires is less than or equal to this value (expressed in days).

BackColor

This is the background color of the Login screen.

TitleColor

This is the font color of the Login screen title.

ForeColor

This is the font color for all other text on the Login screen.

ErrorColor

This is the font color of any errors displayed to the user during the login process.

DisplayLanguages

This flag indicates whether or not the user will be presented with a dropdown box to select the desired language.  

In addition to the above parameters, the <LoginConfig> node should also contain a <Languages> subnode for specifying custom strings (such as the Login screen title) based on currently selected language.  Indeed, it is this subnode that specifies the list of languages presented to the user if the DisplayLanguages parameter above is set to True.

Each of the child nodes listed in the <Languages> subnode corresponds to a separate language available to the HMI system. 

Each language in this table is keyed according to the culture with which the language is specified; consequently, the table key 

Expand
titleHMI-Languages

The <Languages> subsection within the <AppConfig> main section is used to define language-specific phrases used by the HMI application.  The <Languages> section should contain a subnode for each available language specified in the following format:

Code Block
<add Language="en">

</add>

The value of the Language attribute must follow the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>", where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166.

Each of the language nodes should contain a list of key/value pairs where the key is the phrase ID and the value is the phrase given in the current language.  The following phrase IDs are defined by basic Tsecurity HMI functionality:

Parameter Name

Value

LanguageName

This phrase is the string name of the language used for display within the HMI.  For instance, this is the string listed in the language combobox on the Login page for selecting the desired language.

Title

This phrase is the title of the HMI application for the specified language.  For instance, this string is displayed as the Login screen title.

Expand
titleHMI-App Variables

The <AppVariables> subsection within the <AppConfig> main section is used to define application-specific variables used by the HMI application.  Each of the subnodes in this section should specify the key name of the variable and its initial value.  This variables are all stored as strings within the HMI application.

Expand
titleHMI-Example Configuration Section

Following is an example <AppConfig> section for a given HMI application.

Code Block
<AppConfig>
  <!-- Application settings -->
  <add key="EnableTsecurity" value="True" />
  <add key="DefaultPrivileges" value="Priv1;Priv2" />
  <add key="DefaultCulture" value="en" />

  <!-- Tsecurity settings -->
  <!-- Commenting out the following three entries selects the -->
  <!-- default settings, which is appropriate for most systems -->
  <!--add key="TsecurityHost" value="127.0.0.1" /-->
  <!--add key="TsecurityPort" value="8080" /-->
  <!--add key="TsecurityApp" value="BCS" /-->

  <!-- Screen Configuration -->
  <ScreenConfig>
    <Screen ScreenID="MainMenu"
            ClassName="MyNamespace1.MainMenu,MyAssembly1"
            Default="True" />
    <Screen ScreenID="SubMenu"
            ClassName="MyNamespace2.SubMenu,MyAssembly2" />
  </ScreenConfig>

  <!-- Login Configuration -->
  <LoginConfig>

    <!-- Login functionality settings -->
    <add key="AllowGuest" value="True" />
    <add key="RequireUserIDForGuest" value="True" />
    <add key="PreloadUserID" value="True" />
    <add key="AllowAssumedAuthenticated" value="True" />
    <add key="SessionTimeout" value="2" />
    <add key="PasswordExpirationNotice" value="14" />

    <!-- Login display settings -->
    <add key="BackColor" value="Navy" />
    <add key="TitleColor" value="Yellow" />
    <add key="ForeColor" value="White" />
    <add key="ErrorColor" value="Red" />
    <add key="DisplayLanguages" value="True" />
  </LoginConfig>

  <Languages>
    <add Language="en">
      <add key="LanguageName" value="English" />
      <add key="Tag" value="_en" />
      <add key="Title"
       value="Tsentry Real-Time Process Control System" />
      <add key="UserName" value="User Name" />
      <add key="Password" value="Password" />
      <add key="Domain" value="Domain" />
      <add key="Language" value="Language" />
      <add key="Login" value="Login" />
      <add key="LoginAsGuest" value="Login as Guest" />
      <add key="ChangePassword" value="Change Password" />
    </add>
    <add Language="es">
      <add key="LanguageName" value="Español" />
      <add key="Tag" value="_sp" />
      <add key="Title" value="Tsentry Sistema Control Proceso" />
      <add key="UserName" value="Usuario" />
      <add key="Password" value="Contraseña" />
      <add key="Domain" value="Domain" />
      <add key="Language" value="Idioma" />
      <add key="Login" value="Entrada" />
      <add key="LoginAsGuest" value="Entrada como huésped" />
      <add key="ChangePassword" value="Cambio contraseña" />
    </add>
    <add Language="it">
      <add key="LanguageName" value="Italiano" />
      <add key="Tag" value="_it" />
      <add key="Title" 
       value="Tsentry Real-Time Process Control System (Italian)" />
      <add key="UserName" value="Utente" />
      <add key="Password" value="Parola d'accesso" />
      <add key="Domain" value="Dominio" />
      <add key="Language" value="Lingua" />
      <add key="Login" value="Entri" />
      <add key="LoginAsGuest" value="Entri come ospite" />
      <add key="ChangePassword" value="Cambi la parola d'accesso" />
    </add>
  </Languages>

  <AppVariables>
    <!-- Application variables and default values -->
    <add key="variable1" value="1" />
    <add key="variable2" value="2" />
    <add key="variable3" value="Test Variable 3" />
  </AppVariables>
</AppConfig>

...

Expand
titleTexplore Configuration File

Texplore stores some data in its own configuration file for use the next time the application is started.  The application configuration file is located in the same folder as the Texplore executable file and is named Texplore.exe.config.

Currently, the only persistent information stored in the configuration file is the history of HMI applications to which the TSE program has connected.

Following is a sample configuration file:

Code Block
<?xml version="1.0" encoding="utf-8"?>

<!-- Configuration file for the Tsentry Screen Explorer -->
<configuration>
  <configSections>
    <!-- Do not edit this section -->
     <section name="TexploreSettings"
      type="TPRI.HMI.Application.Explorer.TexploreSettingsSectionHandler,Texplore" />
  </configSections>

  <appSettings>
  </appSettings>

  <TexploreSettings>
    <AppHistory Host="127.0.0.1" App="TsentryHMI" />
  </TexploreSettings>

</configuration>

...