unHMI
1.1.4
|
The unHMI component provides the functionality of the main windown for UNICOS Application and it is a successor of the vision/graphicalFrame/unicosHMI.pnl
panel of UNICOS Core. The "HMI" in its name origins from the "Human Machine Interface" and follows the original naming.
The unHMI is distributed as a part of the UNICOS framework, and it is recommended to use the version included in the distribution. However, additional releases may be provided much more often than the full framework releases to provide bugfixes, improvements and new features. Such new versions assume that the latest available UNICOS framework is installed in the project. We cannot guarantee that the newest release of the component will work with older versions of the framework (usually it will not), and due to heavy pace of development, we usually require that one of the latest WinCC OA patches is installed. Please always refer to the release notes of the latest framework distribution and the release notes of the component for details.
A manual for end-users is available as a separate document EDMS:2377503 (link to be changed to point to the latest version of manual)
To use the new unHMI in its default form it is sufficient to open the unHMI.pnl
panel within the WinCC OA UI Manager; for instance, the following commandline could be used:
It is possible to parameterize the unHMI panel on its startup using dollar parameter, e.g. to start it with a specific frontend application filters, or open a specific panels. For the list of available parameters please refer to the detailed unHMI.pnl
documentation.
Embedded module in WinCC OA is a module embedded within a panel for further displaying panels in this module. Having multiple embedded modules in the main window provides us with a responsive interface. This is achieved by having all the panels “loaded” but with visibility “false” except the one selected by the operator for viewing. So for each Preview Module that we want to have open, we must have a corresponding embedded module in the main panel.
In the initialization phase of this embedded module we have the following actions:
In this section it will be useful to define a common vocabulary to use to address certain parts of the new HMI , as well as declare prefix , suffix and appropriate names for the variable used across the component.
The functionality, i.e. capabilities of the new HMI , should be a super-set to that of the current HMI. By the term necessary we imply the bare minimum capabilities/features which we want to include in the first version of the unHMI. 1) The user has access to window tree and trend tree a. Through the window tree the user can open the desired panel in the Preview Module of his choice. b. Through the trend tree the user can open the desired trend in the Trend Module. 2) The user can view the desired Preview Module in the Main View either in Normal or Splitter Mode. 3) Each preview module has a corresponding navigation bar that is visible in the Main View while it is being viewed. 4) The user has access to a login widget through the Main Window 5) The user has access to a log window through the Main Window
Refer to the documentation that was moved to the panels
To get debugging information messages, the option -dbg unHMI needs to be added in the Console Manager Properties to trigger the DebugFTN() function. The name of the debug flag is unHMI.
A concrete screen layout can be selected as default to be automatically loaded when initialiazing the HMI. To mark a particular layout as default, the button 'Set as Default', inside the Screen layout - Creation and Settings option, should be pressed. Once it has been done, an asterisk '*' will be added before the name of the layout.
Only one of the existing layouts may be defined as default. Therefore, only a screen layout will have the asterisk before the name. If the button 'Set as Default' is pressed for a layout that was not the default, then this layout will be updated, adding the asterisk before the name and removing it from the name of the layout that was previously considered as the default.
This default panel definition has the highest priority on importance, and it will take preference over any other default panel configuration specified in the HMI.
The default panel can be specified as a dollar parameter ($startPanel) in the Console Manager Properties of a particular User Interface for HMI in the Console Manager.
A default panel or panels can be defined using the $startPanel dollar parameter notation in the Console Manager Properties of a particular User Interface for the old version (-p vision/graphicalFrame/unicosHMI.pnl) and the new version (-p unHMI.pnl) of the HMI. The enhancement is similar in concept to a Command Line Interface. The notation is as follows:
After the definition of the $startPanel dollar parameter, others dollar parameters can be added in the Console Manager roperties to populate other fields related to the panel or panels. For example, a dollar parameter called $PageName can also be populated from the Console Manager.
Example of structure:
Examples of the syntax:
Old version of HMI:
New version of HMI where three different panels are populated, being vision/LHCA/QSCA/P4_LHCA_QSCA_OVERVIEW.pnl the one displayed in the main window, and effectively used as default panel when pressing the 'Add Module Button' in the HMI main bar:
New version of HMI where $startPanel and other dollar parameters are defined:
This default implementation is considered with a second order of priority, i.e. it is taken into account after determining that there is not a default screen layout in place.
Defining more than only one panel as default, so multiple modules are opened when initialiazing the unHMI, can be done by clicking the right button of the mouse on the number of the preview module or the default panel button of unHMI_dockedEmbeddedModule.pnl
, and selecting the option 'Save as Default' or 'Save as Default Panel' after.
The panel that has been saved will be added to the default panel string. This string can be found in Menu Configuration —> Application (local) —> General —> Default panel. If the string was empty, the panel will be considered to be the default that will be displayed on the main window, but if there is already another panel or panels specified in the string, then the panel will be added to the default panel complex string. The structuture of the string may look like:
being the first panel defined before the first semicolon, the one displayed in the main window and added to the Module 1, the second panel in the Module 2, etcetera.
The panels saved in this manner have the lowest order of priority among all the default implementation options.
When implementing the contextual buttons that are displayed in the command module area for a particular panel or tree node in the Configuration —> Window Tree Configuration option, the operator has to be careful with the option 'Make multi-reference panel'. Activating this option means that the contextual buttons are only populated for the Tree Nodes that have been defined and customized by the operator. If this option is left unmarked, then the contextual buttons will only be populated for the particular panel and not for the tree node. Currently, there is not an option where the contextual buttons are populated for the synoptic panel and tree node simustanously.
Some incompatibilities have been undeliberately introduced after the implementation of the new version of the HMI. This has affected the correct functioning of customized scripts of buttons and panels introduced in the navigation panel area for a few UNICOS projects. In particular, the open_panel_button.pnl and cascade buttons in the Cryogenics' projects were not working in the new version of the HMI, when still working properly in the old version.
Due to implementation of new features, and the architecture of the new version of the HMI, the structure has noticeable changed when comparing it to the old HMI version. Now, there multiple modules on the code that must be carefully considered when operating on the latest versions of the HMI. As a result, the function myModuleName() might not work in some cases as it used to do before, generating incompatibilities and inconsistencies.
To fix the customized panels used for navigation, the following piece of code needs to be added after handling the dollar parameter $sModuleName and/or any other variable that assigns a value to the module name:
This code, first, checks if the user is running under the new version of the HMI and if that is the case, it checks if the split mode that displays multiple screens in the main view is active or not. Then, the variable dsUserData[1] is populated and the s_moduleName is assigned to the proper command module (name + number) to display the contextual buttons that are used to navigate between different screens, if they have been defined.
Essentially, the block of code mentioned above needs to be added in all the panels using proper variable names as "s_moduleName" and "dsUserData[1]". Sometimes these variables have different names, so the engineer must pay special attention on this. This piece of code has already fixed the incompatibility issues with buttons added to the navigation panel area reported by the Cryogenics operators.
The operators can configure their own front-end filtered applications on Configuration -—> Application (local) -—> Front-End Applications clicking on the button Create/Edit HMIs.
In this panel, the user can see the list of custom HMIs already created, if any, in the left side, and the configuration parameters needed to either create a new filter application or edit an existing one in the right side. A panel name needs to be specified, otherwise the newPanel001, (or newPanel002, newPanel003, etc., depending on the existing number of the panel) will be automatically assigned. The layout file can be either UNICOS or CPC. Front-end applications can be defined as visible, and one of them can be assigned as default under the “Select” section. A user tag may be added, although it is not necessary, and the file can be saved by clicking on the “Apply” button. The related UI can be created and attached to the Console UI manager by pressing on the “Create” button and started by pressing on the “Start” button.
The “new HMI” checkbox button, under the Layout file section, has been added when running under the new latest HMI version to create front-end filtered application using either the unHMI.pnl panel for the new Human Machine Interface when the checkbox is ticked, or the /vision/graphicalFrame/unicosHMI.pnl panel for the old HMI when the checkbox is blank. The “new HMI” checkbox button does not appear when the user is running under /vision/graphicalFrame/unicosHMI.pnl to avoid incompatibility issues. The checkbox is taken into consideration when saving the configuration of a particular filter application, i.e., when pressing the “Apply” or “Add user tag” buttons. If the checkbox is ticked or unticked, but the changes are not saved, and the manager used is created, then the manager used will be the last that was previously saved.
The naming convention for the applications that use the old HMI starts with unicosHMI_, and with unHMI_ for the new HMI. The manager created will also be different as the old version uses /vision/graphicalFrame/unicosHMI_FilteredApplications_..., and the new version uses unHMI_FilteredApplications_.... It is not possible to create two different filtered applications with the same panel name for the old version and the new version.
Similar to the definition of the $startPanel dollar parameter configuration, the application filter can be also configured using the $sApplicationList, $sDefaultApplication, and $sFilterName dollar parameters. There are some examples below:
For Windows:
For Linux:
To run it from a command line -proj <your_project_name> needs to be added to the command.
To run it from the Project Console, the user needs to click 'Append a new manager' from the column of buttons on the right, choose WCCOAui manager and in the Options field paste the command (without manager name).
To have more than one application specified, $sApplicationList, delimited with semicolon should be added. For example: