Configure a Standard Plant SCADA Menu
- Last UpdatedJul 18, 2023
- 13 minute read
You can use the Menu Configuration view in Plant SCADA Studio's Visualization activity to configure a standard menu for your project's runtime system. To do this, firstly select Standard from the drop-down menu below the command bar.

Note: If you want to configure a menu for Industrial Graphics pages displayed on a Web Server, see Configure a Menu for Industrial Graphics Pages.
The method you use to configure a standard menu is determined by the Starter Project that was used to create your project. For an appropriate description of the Menu Configuration Properties, select from the following Starter Projects.
If your project is created from a Situational Awareness Starter Project, the menu configuration is used to build the following:
-
The layout of buttons and tabs on the Navigation Zone on the operator dashboard (see Prepare the Navigation Menu).
-
The tabs that appear across the Information Zone on the operator dashboard.
-
The content of the workspace header bar.
-
A set of custom tabs for the Tab Bar Genie.
A Menu Configuration has the following properties:
General Properties
|
Property |
Description |
|---|---|
|
Page |
The Page property is used to give a name to the menu that will include the item. In a Situational Awareness project, the system expects the following menu names:
A project based on the Situational Awareness Starter Project will include a set of default entries for the InformationZone and Headerbar menus. There are no default entries for the Navigation menu, as you will need to manually configure these to reflect the pages included in your project. See Prepare the Navigation Menu. |
|
Level 1-6 |
In a Situational Awareness project, the Level 1-6 properties are used in the following ways, based on the three expected menus:
In each case, the arrangement of menu entries is determined by the Order property. Note: The greater-than character ( > ) cannot be used within a menu name. |
|
Menu Command |
The Cicode expression to be executed when the menu item is selected. String of up to 254 characters. For Situational Awareness projects, use the "Navigation_ShowTargetPage" command to call a page. If you have the same page in HD1080 and UHD4K resolutions (to support a range of client screens), the variation of the page that displays at runtime will be determined by the context of the current workspace. This means you do not need to add the resolution suffix ("_HD1080" or "_UHD4K") to the end of the page name specified in the Target Page field. |
|
Target Page |
The page that is displayed when the menu item is executed. See the Menu Command property. |
|
Comment |
An optional comment (of up to 128 characters) about the menu entry. |
|
Order |
Defines the position of a menu entry in relation to the other menu entries in the same hierarchy level. The Order property functions in the following ways, based on the three expected menus:
If this field is left blank, it will take the default value of zero (0). If more than one entry of the same order exists, they are displayed in the same order as they are defined in the database. In the case of Navigation menu, the entry will fill the first available space in the layout of buttons. This property affects the order that the menu entries are returned through menu Cicode functions. |
|
Hidden when |
A Cicode expression that determines when the menu entry is hidden on the page. |
|
Disabled when |
A Cicode expression that determine when the menu entry is disabled on the page. |
|
Disabled style |
A number to indicate how the disabled entry is displayed in the menu. It is up to the user to decide what the numbers mean. Note: By default, this property is not used by a Situational Awareness project. |
|
Symbol |
If the menu entry is associated with a tab, this field allows you to display an icon on the tab. Enter the name of the graphic file you would like to display. You can use the Custom 2 property (see below) to hide the symbol if required. |
|
Privilege |
The user privilege (0–8) that is necessary to select the menu entry. |
|
Area |
The user area (0–255) that is necessary to select the menu entry. |
|
Checked |
If the menu entry is associated with a tab, this field allows you to specify if the tab is pinned by default. Leaving the field blank will mean the tab is not pinned by default. Any other value will mean the tab is pinned by default. This setting will only work if pinning is enabled for the tab bar. This is determined by the Can Tabs Be Pinned? parameter in the Tab Bar Genie. |
|
Width |
The width of the menu entry on the page. Note: By default, this property is not used by a Situational Awareness project. |
Equipment Properties
|
Property |
Description |
|---|---|
|
Cluster |
The name of the cluster associated with the menu item. The specified cluster should be configured otherwise a compile will not be successful. |
|
Equipment |
Name of equipment associated with the menu item. Select a name from the drop down list, or type a name. String limit of 254 characters, including separating periods (.). |
Custom Properties
|
Property |
Description |
|---|---|
|
Custom 1 |
If the menu entry is associated with a tab, this property determines if the Close button will appear on the tab. If you leave this field blank, the Close button will appear. Any other value will hide the Close button. |
|
Custom 2 |
If the menu entry is associated with a tab, this property determines if the icon identified in the Symbol field will appear on the tab. If you leave this field blank, the icon will appear. Any other value will hide the icon. . |
|
Custom 3 |
If the menu entry is associated with a tab, this property determines if a label will appear on the tab. If you leave this field blank, the label will appear. Any other value will hide the label. |
|
Custom 4-8 |
These custom properties are reserved for system use. |
Project Properties
|
Property |
Description |
|---|---|
|
Project |
The project in which the menu will be created. |
If your project is created from a SxW starter project, some common menu items are already pre-configured in the menu configuration database (as part of the starter project). They will be displayed on the page automatically at runtime. To view additional pages in your project at runtime you will need to manually configure the menu items.
You can assign individual menu items to a particular page, or make them available to every page. Menu items configured in included projects will be merged with the ones configured in the main project, into a single menu tree structure when you compile your main project. This allows extra menu items to be automatically added to your project depending on what projects are included.
A Menu Configuration has the following properties:
General Properties
|
Property |
Description |
|---|---|
|
Page |
The page on which this entry will exist. If blank, the entry exists on every page. |
|
Level 1-6 |
Creates the menu hierarchy path of the entry. String length can be up to 64 characters. Up to 6 levels of menu hierarchy are supported. Menu entries that have the same upper levels are considered to be under the same hierarchical branch. Menu entries are not case sensitive. Note: The greater-than character ( > ) cannot be used within a menu name. |
|
Menu Command |
The Cicode expression to be executed when the menu item is selected. String of up to 254 characters. |
|
Comment |
A comment about the menu entry. String of up to 128 characters. |
|
Order |
The position of a menu entry in relation to the other menu entries in the same hierarchy level. This property affects the order that the menu entries are returned through the menu Cicode functions. If this field is left blank, it will take the default value of zero (0). The relevant menu entries will be returned at the start as a result. If more than one entry of the same order exists, they are displayed in the same order as they are defined in the database. |
|
Symbol |
The symbol to associate with the menu entry. The string length can be up to 128 characters. A symbol needs to be already defined in the project / included project, and specified in the format of <library name>.<symbol name>. |
|
Hidden when |
Cicode expression to determine when the menu entry is hidden on the page. String of up to 254 characters. |
|
Disabled when |
Cicode expression to determine when the menu entry is disabled on the page. String of up to 254 characters. |
|
Disabled style |
By default, this property is not used by an SxW project. However, if you choose to implement your own menu system, you can retrieve the value of this field (or any other fields) via the Menu family of Cicode functions at runtime. For example, if you set a numeric value for the Disable Style field in a menu configuration, you can then use the Menu family of Cicode functions to retrieve the value: INT hMenuNode = MenuGetPageNode("Headerbar"); INT hItemNode = MenuGetNodeByPath(hMenuNode, "Login Menu.@(Log Out)"); INT nDisabledStyle = StrToInt(MenuNodeGetProperty(hItemNode, 4)); INT bIsDisabled = MenuNodIsDisabled(hItemNode); Once you have retrieved the disabled style and disabled state, you can expose them as the return value of Cicode functions. You can then call the functions in page animations such as color fill, visibility, and so on. Note: This property has no direct relation to the Disable Style property on the Disable tab for a graphic object. The latter is defined as part of the graphic object and cannot be altered via Cicode. |
|
Width |
The width of the menu entry on the page. It is up to the user to decide what units to be used. |
|
Checked |
Determines if the menu entry is initialized with a checked status. |
|
Privilege |
The user privilege of (0-8) necessary to select the menu entry. |
|
Area |
The user area (0-255) necessary to select the menu entry. Note: At runtime, you can use the Menu family of Cicode functions to access the information entered in the Menu Configuration dialog. |
Equipment Properties
|
Property |
Description |
|---|---|
|
Cluster |
The name of the cluster associated with the menu item. The specified cluster should be configured otherwise a compile will not be successful. |
|
Equipment |
Name of equipment associated with the menu item. Select a name from the drop down list, or type a name. String limit of 254 characters, including separating periods (.). |
Custom Properties
|
Property |
Description |
|---|---|
|
Custom 1-8 |
User-defined strings that can be accessed by Cicode Functions MenuNodeGetProperty and MenuNodeSetProperty. Max length is 254 characters. |
Project Properties
|
Property |
Description |
|---|---|
|
Project |
The project in which the menu will be created. |
To configure menus for SxW templates, see Create Custom Menus for SxW Templates.
A set of page templates known as Tab Style Templates is provided with the product. These templates already contain a tabbed menu system.
If your pages are based on these templates, the menu items configured in the menu configuration database will be displayed on the page automatically at runtime. If no menu is defined in the project, a default menu will be created at runtime to provide access to pages in the project. The default menu functionality can be changed using [Page]AddDefaultMenu.
A Menu Configuration has the following properties:
General Properties
|
Property |
Description |
|---|---|
|
Page |
The page on which this entry will exist. If blank, the entry exists every page. The page name of "Template" is a keyword used in the Tab Style templates for defining custom pop-up menus. |
|
Level 1-6 |
Creates the menu hierarchy path of the entry. String length can be up to 64 characters. Up to 6 levels of menu hierarchy are supported. Menu entries that have the same upper levels are considered to be under the same hierarchical branch. Menu entries are not case sensitive. Note: The greater-than character ( > ) cannot be used within a menu name. In a Tab Style Project:
|
|
Menu Command |
The Cicode expression to be executed when the menu item is selected. String of up to 254 characters. |
|
Comment |
A comment about the menu entry. String of up to 128 characters. |
|
Order |
The relative display position of the tabs/buttons or menu items among themselves. For the tabs and buttons, it determines the display order from left to right. For the drop-down menu items, it determines the display order from the top to the bottom. If this field is left blank, it will take the default value of 0. The relevant entries will be displayed at the start as a result. If more than one entry of the same order exists, they are displayed in the same order as they are defined in the database. |
|
Symbol |
The symbol to associate with the menu entry. The string length can be up to 128 characters. The format to use is <library name>.<symbol name>. The template expects the symbol to be a certain size when it is configured against different menu types.
Some common symbols can be found in the symbol libraries "icons_16x16" and "icons_32x32". The field is not applicable for menu and sub-menu items. |
|
Hidden when |
The tab menu bar on the template does not support visibility. When the expression defined in this field is true, the relevant menu entry is disabled instead. |
|
Disabled when |
Cicode expression to determine when the menu entry is disabled on the page. String of up to 254 characters. |
|
Disabled style |
By default, this property is not used by a Tab Style project. However, if you choose to implement your own menu system, you can retrieve the value of this field (or any other fields) via the Menu family of Cicode functions at runtime. For example, if you set a numeric value for the Disable Style field in a menu configuration, you can then use the Menu family of Cicode functions to retrieve the value: INT hMenuNode = MenuGetPageNode("Headerbar"); INT hItemNode = MenuGetNodeByPath(hMenuNode, "Login Menu.@(Log Out)"); INT nDisabledStyle = StrToInt(MenuNodeGetProperty(hItemNode, 4)); INT bIsDisabled = MenuNodIsDisabled(hItemNode); Once you have retrieved the disabled style and disabled state, you can expose them as the return value of Cicode functions. You can then call the functions in page animations such as color fill, visibility, and so on. Note: This property has no direct relation to the Disable Style property on the Disable tab for a graphic object. The latter is defined as part of the graphic object and cannot be altered via Cicode. |
|
Width |
The width (measured in pixels) of the item on the page. If this is not specified, the item is automatically sized to show the most content. This field only applies to the tabs and buttons. The objects used in the template are subjected to minimum widths:
|
|
Checked |
Determines if the menu entry is initialized with a checked status. This field only applies to the menu items and sub-menu items. |
|
Privilege |
The user privilege of (0-8) necessary to select the menu entry. |
|
Area |
The user area (0-255) necessary to select the menu entry. Note: At runtime, you can use the Menu family of Cicode functions to access the information entered in the Menu Configuration dialog. |
Equipment Properties
|
Property |
Description |
|---|---|
|
Cluster |
The name of the cluster associated with the menu item. The specified cluster should be configured otherwise a compile will not be successful. |
|
Equipment |
Name of equipment associated with the menu item. Select a name from the drop down list, or type a name. String limit of 254 characters, including separating periods (.). |
Custom Properties
|
Property |
Description |
|---|---|
|
Custom 1-8 |
User-defined strings that can be accessed by Cicode Functions MenuNodeGetProperty and MenuNodeSetProperty. Max length is 254 characters. |
Project Properties
|
Property |
Description |
|---|---|
|
Project |
The project in which the menu will be created. |
To configure menus for Tab Style templates, see Create Custom Tab Style Menus.
You can also create a custom menu system for your project through the combination of Cicode and graphical objects.
At runtime, three types of menu trees are created.
-
The first type of menu tree allows you to access the configured menu items for generic (all) pages or a specific page. You can access this menu tree using the Cicode function MenuGetGenericNode to get the page node for the generic pages, and MenuGetPageNode to get the menu items specific to a page.
-
The second menu tree automatically merges the menu items for the generic pages and the items specified for the current page. You can access this menu tree using the Cicode function MenuGetWindowNode to get to the root node.
-
The third type of menu tree exists as a virtual menu that is not associated with the generic pages. You can access this menu tree using the Cicode function MenuGetWindowNode to get to the root node.
Note: For existing users of the CSV_Include project, the menu was defined in a file called Menu.dbf in your project folder. You can migrate the menu definition in this file to the built-in menu configuration database using the Project Migration Tool. This step is useful if you plan to migrate your project from the CSV_Include project to a newer set of templates.