The HMI subsystem of TSENTRY is designed to provide as much common functionality as possible to the user while maximizing flexibility for a given system. Not only does TSENTRY provide a common set of useful management and diagnostic screens such as ProbeX and TrendX, it also provides a set of tools to allow the user to develop his own HMI screens and easily connect them to the host TSENTRY system.
Within TSENTRY HMI screens are divided into groups called HMI Applications. Each HMI Application is governed by a set of rules defined in the configuration file for that application. These rules specify application options such as which users are allowed to access which screens, which screen should be displayed by default, which languages are supported within the screens, and so on.
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
Expand | ||
---|---|---|
| ||
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:
|
Expand | ||
---|---|---|
| ||
The instructions for installing Texplore on a client workstation are laid out in the Workstation Configuration section. |
Expand | ||
---|---|---|
| ||
The following chart illustrates the sequence of events when Texplore is started and loads an HMI application: |
Expand | ||
---|---|---|
| ||
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 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
This application configuration file must contain an <AppConfig> node that specifies each of the following basic parameters for configuring the application:
In addition to the above key/value parameters, the <AppConfig> section can also contain several subsections:
|
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
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:
<Screen> subnodes have the following attributes:
|
Expand | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
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:
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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:
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:
|
Expand | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
Following is an example <AppConfig> section for a given HMI application.
|
Expand | ||
---|---|---|
| ||
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:
|
Expand | ||
---|---|---|
| ||
The following command line parameters are supported by Texplore:
|
Expand | ||
---|---|---|
| ||
The following several sections describe how to use the Texplore application to browse through screens in an HMI application. |
Info |
---|
“UI-” as in 'UI-Example' is an User Inferface sub doc |
Expand | ||
---|---|---|
| ||
By default, when Texplore is started the Connect screen is displayed to the user. This screen prompts the user to enter the TSENTRY host name (or IP address) and the name of an HMI application to which it should connect. When the user clicks on the Connect button, Texplore tries to connect to the NtRtInfo service running on the specified host. If successful, Texplore then requests the HMI application configuration information for the specified HMI application name. If this is successful, Texplore checks to see if Tsecurity is enabled; if so, it displays the Login screen, and if not it simply displays the default screen for this application. |
Expand | ||
---|---|---|
| ||
The Login screen is used to authenticate the user into the HMI application. It prompts the user for his name, password, domain, and desired language for login into the HMI application. The following buttons are available to the user to allow him to proceed:
If the user successfully logs in, either as a valid user or as a guest, Texplore will then display the default screen for this application. |
Expand | ||
---|---|---|
| ||
In addition to the main client area of the Texplore window used to display the actual HMI screens, at the top of the window is a toolbar providing the user with additional controls and information. At the left side of this bar are three buttons for navigating between screens. The left arrow button navigates the browser back by one screen in the history, and the right arrow navigates forward by one screen in the history, if possible. The third button, which displays an image of a house, automatically navigates directly to the default screen for the application. The fourth button may be used to print a copy of the screen. To the right of the navigation buttons are two colored circles. These are status indicators of data communications with the TSENTRY host: the left indicator represents OPC communications, and the right corresponds to trending communications. Each of these indicators can be in the following states:
To the right of the status indicators the current date and time are displayed. In the center of the toolbar is the name or title of the current screen. If the System.Windows.Forms.Form.Text property of the screen’s class is set to a valid string, this string will be displayed as the title of the screen; otherwise the name of the screen defaults to the class name only (without namespace qualifiers). Double-clicking on this name displays a message box that provides additional details about the class defining the current screen as shown below: At the far right edge of the Texplore toolbar are two fields used to control security within the HMI. First there is the name of the current user logged in to the HMI application, and to the right of that is the Logout button. Double-clicking on the name loads a popup window that provides additional information about the current user, his security access key (SAK) within the application, the list of privileges that he is granted within the application, a brief description of how he logged into the application, and several options for changing the current user. The following buttons are available on this form:
The Logout button at the far right of the Texplore toolbar performs the same function as the Logout button in the Current User Information window: it logs the current user out of the application and returns him to the Login screen. |
Expand | ||
---|---|---|
| ||
Once Texplore has connected to an HMI application and, if required, the user has authenticated into the HMI, Texplore will display the default screen for the HMI application in the main client portion of the Texplore window. Below is a screenshot of NtRtMenu, which is the default screen for the standard TsentryHmi application. |
Expand | ||
---|---|---|
| ||
All screens to be displayed in the Texplore environment must conform to the following:
This is required so that the Texplore container can properly interact with and display all custom application screens. |
Expand | ||
---|---|---|
| ||
One screen can link to another in a variety of different methods:
The Texplore application internally has a TPRI.Tscreen.TscreenMgr object that manages navigation between screens. In either of the cases above, this TscreenMgr object will use the ScreenID name to find the appropriate new screen as follows:
For instance, suppose the application configuration file has the following
When the application is started, a MyNamespace1.MainMenu object will be loaded from the MyAssembly1.dll assembly, assigned a ScreenID of “MainMenu”, and initially presented to the user. This occurs because this screen is marked with the If the NtRtMenu screen has a CmdButton on it whose LinkedScreen property is set to “SubMenu”, the TscreenMgr will immediately find the SubMenu screen in its list of registered screens and activate it. However, if the CmdButton on the MainMenu screen instead specifies “OtherScreen” in its LinkedScreen property, the TscreenMgr will find that there is no screen currently registered with that ScreenID. Therefore it will check if the MyAssembly1.dll assembly contains a class by the name MyNamespace1.OtherScreen; if it finds one then that screen will be immediately registered, created and activated. If this class does not exist then the navigation will be canceled. Consequently, only top-level menus must be specified in the ScreenConfig section of the application configuration file as long as all classes corresponding to screens linked from those menus are located in the same namespace as the top-level menu. |
Expand | ||
---|---|---|
| ||
The Texplore application internally has a TPRI.Tsecurity.TsecurityMgr object that manages security for the HMI application. It is responsible for notifying each screen that is loaded of the currently logged in user and his security access key. However, it is up to each screen (and each object loaded by each screen) to enable or disable its own components as appropriate based on this security access key. In addition, the TsecurityMgr object watches the HMI display for inactivity. If no user interacts with the HMI display for the number of minutes specified by the SessionTimeout key in the AppConfig/LoginConfig section of the HMI application configuration file, the TsecurityMgr will automatically timeout the current login session. When this happens the Login screen is immediately redisplayed for this user. At this point if the user reauthenticates again as the original user, he can return to the same point in the HMI application. If he reauthenticates as a new user then the previous HMI application session will be reset and the user will be log in as if he had not been logged in before. |
Standard Screens
The following sections describe each of the standard screens provided with TSENTRY.
Expand | ||
---|---|---|
| ||
The NtRtMenu screen is the main menu provided with the TSENTRY system. The links in the top section provide access to each of the standard screens provided with the TSENTRY system (NtRtMgr, NtRtProcEd, ProbeX, etc.). At the bottom of the page is a link to the TSENTRY documentation, which starts and instance of Internet Explorer to display TsentryHelp website. Following is a screen shot of the NtRtMenu screen. |
Expand |
---|
The NtRtMgr screen can be used to view the status of the TSENTRY system. It provides a web-based interface mimicking that of the NtRtMgr console application. Following is a screenshot of the NtRtMgr screen: The top half of the screen displays information about each of the processes in the system. As in the console NtRtMgr application, right clicking on any of the process names brings up a menu that allows the user to edit process options (via a link to the NtRtProcEd screen), control the individual process (Activate, Suspend, Deactivate, etc.), or control the process group (Activate Group, Deactivate Group, etc.). The bottom half of the screen is a log of messages sent to the LogMsg message queue by any of the processes. Messages logged here are also written to a disk file as configured in the system initialization files. The two buttons in the lower-right-hand corner of the display allow the user to enter his own LogMsg messages. |
Expand | ||
---|---|---|
| ||
The NtRtProcEd screen is the HMI version of the process editor form created when right-clicking a process in the NtRtMgr application and choosing the Edit Options option. Following is a screenshot of the NtRtProcEd screen: All of the fields on this screen reflect current run-time values. These values are initialized from the process initialization file when the TSENTRY system is started. The fields with a yellow background may be edited; those with white backgrounds may not be edited. Only users with the “Process Edit” privilege may edit the fields on this screen. Field Descriptions:
|
Expand | ||
---|---|---|
| ||
The ProbeX screen is a diagnostic tool that allows the user to “peek and poke” at variables in shared memory. Effectively, the user can enter the fully qualified name of a variable in global common, and the ProbeX screen will retrieve and periodically update its current value on the display. In addition, if the user has the rights to do so he can modify the current value and submit it back to the TSENTRY system. Following is a screenshot of the ProbeX screen: That bulk of the screen constitutes the display of the various variables loaded into the ProbeX screen. This display is effectively a tree, where each root of the tree corresponds to a single variable. In the case where the variable is actually an array, the value of each element in the array will be laid out in sub-branches of the tree. For each variable the display is divided into several columns:
The order of the columns can be re-arranged by Drag and Drop. Notes: The first two columns (Row Drag and Drop column and variable name column) cannot be moved.
The column width can be resized by following the steps below:
The ProbeX screen has the ability to save the list of displayed variables and formats to a file stored on the TSENTRY host so that this list can be easily retrieved again at some later time. The set of controls at the bottom center of the ProbeX screen allow the user to load, save, reset, and delete these files. The drop down list at the left specifies the name of the ProbeSet file currently displayed, and allows the user to choose one to load into the display. To the right of this field are a number of buttons (from left to right):
In the lower-right-hand corner of the screen is the Send Data button, which allows the user to submit modified variable values back to the host system. Note that this button is only available if the currently logged in user has the appropriate rights in his security access key to write variable data back to the host. Next to the Send Data button is a cancel button, which allows the user to cancel the modified variable value changes and display the live values.
The Probe display is based on a “tree view” display format. The display is composed of branches and leafs. The branches may be display as Expanded (“-“) or Collapsed (“+”). If a branch contains a non-array variable it does not contain any leafs and it may not be Expanded or Collapsed. If a branch contains an array variable it may be Expanded or Collapsed. The variations are show here.
A short cut is available to expand or collapse the tree branches and leafs. Click the second column of grid header (1, 2, 3… or *) you can:
One or several of the branches in the tree may be “selected”. Branch selection is performed using the standard Windows Click, Shift Key with Click and Ctrl Key with Click method. All of the “selected” branches will be changed when an appropriate option is selected from the popup menu. To display the popup menu of interactive user options click the right mouse button after selecting one of several branches in the tree. Note: The popup menu will display differently when at least one branch has been selected compare with none is selected. Selecting New Variable option will insert a new variable line at the selected location in the tree. While pointing at the new line in the tree you may double left click the left mouse button to display the Data Dictionary Window. You may also select the Data Dictionary Window from the menu. Selecting the Edit New Variable will display the Data Dictionary Window. You may also directly edit the variable name. The Data Dictionary Window may also be display by clicking on the button at the right side of the field name area. The selected variable/branch will be copied into the paste buffer. Note: The copy function will copy all of the details for the selected branches. If the branch is assigned to an array variable all leafs will also be copied. The selected variable/branch will be copied into the paste buffer and removed from the current position in the tree. If there is a variable/branch in the paste buffer this option will be available. Note: In the case of array variables all leaves of the branch will also be inserted. The selected variable/branch will be removed from the current position in the tree. Add a selected prefix to the selected variable. When the Graph Variable option is clicked the selected variable/branch will be displayed in a graphical format window. Note: The graph option requires that only one variable/branch be selected. You may select each variable/branch and generate a graph window as many times as you would like. The only restriction is that you select a variable/branch one at a time. Each graph window may be sized and positioned individually as shown here. It is not locked inside the Probe window. The graph format may be configured for each window. If the same variable/branch is shown in multiple graph windows each window may have a different configuration. The graph window provides two user editable values for the upper and lower Y axis scale values. The screen also provides a command button to “Rescale” the Y axis. The rescale calculation is based on the currently display data. You may press the button repeatedly to regenerate the Y axis scale values to fit the current data. The graph area supports numerous interactive functions. If you left click in the graph area you will trigger the option to zoom the graph. After entering zoom mode the display provides a scroll bar at the bottom of the display area. You may use the scroll bar to pan the graph display area. To return to the normal non zoomed mode click the right mouse button to display the graph option menu. Then click on the Undo Zoom option. When the menu is displayed you may also use the short cut key “Z” to trigger the Undo Zoom option. The graph option menu provides numerous interactive options. For example the option to display both a graph and a table of the current values is available. Selecting this option as shown below will modify the display format. The option to select a Plotting Method is also very useful. The default plotting method for array variables is Points + Line The default plotting method for non-array variables is Bar Click to show Find and Replace dialog box. Enter Find text and Replace with text. Click Replace All to find and replace the variables for all rows. Click Replace Selected to find and replace the variables for the selected rows Selecting Set Values will display a prompt window. You may then enter a value to be applied to all of the selected variables. Modified values will be show with a red background. While the new values will be shown on the screen it will not be sent to the host until the send data button is pressed If changed values have NOT been sent to the host they may be “reloaded” with their original values. Selecting Set Formats will display a prompt window. You may then select a format from the drop down list to be applied to all of the selected variables. All of the tree nodes will be opened. All of the tree nodes will be closed |
Expand | ||
---|---|---|
| ||
Details on the TrendX screen are provided in the section on the Trend System. |
Expand | ||
---|---|---|
| ||
Details on the TriggerMgr screen are provided in the section on the Trend System. |
Expand | ||
---|---|---|
| ||
Details on the TrendFileMgr screen are provided in the section on the Trend System. |