Overview
Symbols are not limited to their representation but include a full dialogue on the screen. We can easily remap symbols to other assets during application runtime without engineering-level changes. This process is faster and can be done dynamically based on the asset model or MQTT Broker.customizable graphical components that can be used on screens. The symbol has the option to be managed in a centralized way, so when changing a Symbol in the solution library, it changes automatically in all displays.
Symbols can have only a static drawing, or they can also have a dynamic behavior and binding to real-time Tags. When using or creating symbols with dynamic properties and tags binding, a simple configuration dialog allows to map the dynamic values to the desired tags, when applying multiple instances of the symbol.
Additionally to allowing full customization, some of symbols frequently used in SCADA displays, like Motors, Blowers, Pumps, Valves and Tasks have a Wizard tool, allowing a quicker customization of its appearance.
On this page:
Table of Contents | ||||
---|---|---|---|---|
|
Custom Symbols And Data Types
Create custom symbols with specific data links to meet user needs. For example, a user can create a custom pump symbol that appears when an integer data type is dragged onto the graphical interface, representing equipment or processes in industrial control systems.
Users can design unique data types, such as ‘PumpDataType’, including parameters like ‘FlowRate’, ‘Pressure’, and ‘Status’. Dragging ‘PumpDataType’ onto the screen brings in all these parameters, providing a detailed and interactive representation of the equipment.
Smart Symbols offer a library of over 500 predefined symbols, in addition to user-created ones, synchronized across the system. For instance, a Smart Symbol could be a temperature gauge with adjustable parameters like ‘TemperatureValue’, ‘MinScale’, and ‘MaxScale’. Modifying this symbol updates all instances in user interfaces, ensuring consistency and simplifying updates.
To manage these symbols:
- Go to Displays / Symbols for exporting, importing, or deleting functions.
- Go to Displays / Draw / Symbols.
- Click or drag-and-drop it on the Drawing area to use it.
Symbol Parameters and Dynamics
When you insert a symbol from the Symbol Library, it may have parameters. For example, the VerticalTank symbol includes LevelValue, MaxScale, and MinScale parameters. To change the tags linked to these parameters, edit the new tag names in the dialog.
To edit symbols:
- Right-click the symbol and select Edit Symbol.
- Double-click the symbol to open its Dynamics.
- Use the syntax
#<PropertyName>:TagName
to create exposed label parameters for the symbol, simplifying the mapping of linked tags (e.g.:“Level”, “MinScale”, and “MaxScale”). - When you insert this symbol in your display, you can set the values for these parameters. The default value follows the colon “:” character. For example,
#LevelValue:Client.SimulationAnalog
creates a property called “LevelValue” with “Client.SimulationAnalog” as the default value. You can use any name for the label parameter.
When creating symbols, initially map properties to Client.SimulationDigital
, Client.SimulationAnalog
, or Client.SimulationDouble
. These variables change every second, allowing you to see the results of dynamic properties. Use Client.DigitalValue
, Client.NumericValue
, and Client.TextValue
for placeholder values without built-in simulation.
To save the symbol, right-click the symbol or the display and click Save to Symbol Library, or click the Save icon on the top toolbar. Double-click the symbol to verify its properties.
Symbols workflow
Product Library and Local Solution Library
Product Symbol Library
When installing the software, a set with a few thousands of global symbols is made available to the solutions. Those pre-defined symbols are stored in the file Library.dbsln, copied on the Templates folder in the Public Documents product folder. That file is a standard built-in solution file, therefore, if you want to customize the built-in library, you just need to open that solution with the Designer and modify the symbols, or other other elements in that global Library.
Solution Local Library
When a Symbol from the global library is used in a Solution, a copy of that symbol is saved in the Solution file, this is important and useful, so it keeps the concept that a solution file is fully autonomous and independent. In that way, when copied to a production computer for deployment, or archived, it has within itself everything the solution needs to run without the need of external dependencies.
In the Drawing Tool, on the Symbols section, the Tree under "In Solution" are the symbols that are part of the solution file, those symbols are also listed in the solution explorer, navigating to Displays -> Symbols.
The tree under Library, are the symbols in the global library file.
The "with Dynamics" checkBox filters to show only the symbols with dynamic properties.
When you select a Symbol from the Library sub-folders, a copy of that Symbol is created in the "In Solution" folders to be used on the displays of that solution.
When you select a Symbol from the "In Solution" folder, you are re-using a Symbols that is already part of the solution.
The first five symbols showed on the list, Blower, Motor, Pump, Tank and Valve, are the Symbol Wizards, which have an additional features: a customization dialog that allows you to easily select the appearance of the elements, guiding the selection across the typical visuals for that type of symbol, for instance if the Task is Horizontal or Vertical, and various other customization options. See Symbol Wizards for more information.
Inserting a Symbol and Customizing Parameters
To Insert a Symbol.
- Select a Symbol from the graphical components. It can be from the "Library" sub-folders (external Library file), or from the "In Solution" folder to pickup symbols ready in the solution.
- You can Click on the Symbol in the ListBox to select it, then Click again in the drawing area to insert. Or, if you prefer, you can perform a Drag-Drop operation. Both mouse actions are accepted.
- When you double-click on the Symbol, or press the Properties icon in the toolbar, the Symbol Configuration dialog is shown.
- if the Symbol has dynamic bindings with tags, the Symbol Links will show the Parameters defined for that symbol, to which tag or expression it is currently connected. Just use the edit the solution to bind that symbol instance to another variable.
Symbol Configuration Dialog
Symbol Configuration Table | |
---|---|
Property | Description |
Is Linked With Library | If checked, the symbol instance appearance will update when saving the symbol to Solution Library. if unchecked, the symbols is now specific the displays, disconnected from the library. |
Linked Size (Propertional) | When linked to the Solution Library, if the symbol is resized in the Library, it resized on the display. |
Internal Dynamics | The list of dynamic animations used inside the symbol. Further explanation on next section, Symbols and Dynamics |
Copy and Paste | Button to copy the Symbol Links to the clipboard, or paste from it. |
Apply | Apply the edited expressions to the Symbol. This action is optional, when closing the configuration dialog, or selecting another object the expression changes are automatically applied. |
Symbol Links | Table with the Parameters defined to that Symbol. Parameters are an easy and quick way to customize each instance of the Symbol to specific tags when using multiple copies of the Symbol. When creating the symbol, none, one, or more, parameters can be defined to change specific properties of the underlying symbol dynamic behavior and tags binding. |
Symbols and Dynamics
When you insert a symbol from the Symbol Library, it may have customization parameters, for instance, the previous image, has a parameter STATE, which should receive the Expression that will control if the blower will show ON or OFF when running the solution.
Those parameters will affect the behavior of Dynamic properties embedded in the symbol creation. Those internal settings are not visible, unless you EDIT or BREAK the symbol, as described in later sections. The Configuration dialog has a a string, INTERNAL DYNAMICS, which just list the types of animations the symbols has, ir other to assist the understanding of its behavior in runtime.
The DYNAMICS BUTTON in the configuration dialog isn't related to those internal dynamics, but it's intended to add additional dynamic behavior that will apply to the entire symbol, in the same way you can do with any graphical element in the screen.
For instance, you can apply an Visibility-Opacity property, to change the appearance of the entire symbol when in maintenance state, or you can add a ACTION dynamics to perform some operation when the operator clicks on the Symbol.
Creating New Symbols
Static Drawing
Creating New Symbols
You can use the drawing tools and the COMBINE commands in the horizontal toolbar to draw your own symbols.
You can also use the symbols from the Symbol Factory and click the UNGROUP command in the horizontal toolbar to edit the imported symbols.
You can use the Direct Selection cursor to edit internal elements without needing to ungroup.
If you want to save a new symbol to the Local Symbols Library, select the object or objects that you want to be part of the symbol. Then, right-click and select Make a new symbol.
Enter the Name, Folder, and the description of the Symbol.
You can open the Symbol Library and choose the symbol to use in your displays.
title | Adding Labels |
---|
Expand | ||
---|---|---|
| ||
Inserting a Local Symbol
- Go to Displays / Draw;
- Click on the Symbols in the Components Panel;
- Click to select the desired Symbol;
- Click or drag-and-drop it on the Drawing area to use it.
- Double-click a symbol to see its runtime properties and map it to the tags in your application.
Some symbols do not have custom parameters. In this case, double-clicking the symbol will show the Dynamics dialog.
Expand | ||
---|---|---|
| ||
Expand | ||
---|---|---|
| ||
Editing a Symbol
Go to Displays / Draw;
Click to select the desired Symbol on the Drawing area;
Click Edit Selected Symbol on the Drawing Toolbar; It will enable the Symbol Editor on the Drawing area.
Dynamic Properties and Parameters
After creating a new drawing, or modifying an existing one, you can optionally add Dynamic Properties to the symbol.
→ See the page Dynamics and UI Elements to learn about the dynamic animations available.
When applying those dynamics, you can make the configuration so the dynamic behavior is fixed, embedded inside the symbol, or expose some properties or Parameters for customization each time a new instance of the Symbol is used in a display.
For instance, when creating a symbol for a VALVE that has the dynamic behavior to change its color to Green or Red, according to its ON or OFF state, it is desirable that the Tag driving that On/Off state can be customized to each instance the symbol is used.
This is accomplished by using a special syntax on the Value field (or other fields you want to later bind), which uses the Hashtag Symbol (#) to add a Parameter Key to that symbol.
Example, Expression: #STATE:Client.SimulationDigital
In this example, when applying the text #STATE: you are creating a Parameter, a new key to the dictionary of parameters this symbol can have. That is done by using the hashtag (#) followed by the Parameter.
The STATE Parameter will allow to later customize which tag shall be used to control the value of ColorFill dynamic.
The value after the colon char, in this example "Client.SimulationDigital", is the default value for that property.
The same parameter can be used in various animations of the Symbol, for instance, if adding also a LineColor dynamic, you can use the same STATE parameter key, so when biding a tag to the STATE parameters, both the Fill and the Line dynamic properties will be connected with the tag.
When creating Symbols, it is useful to add simulated values, or the Tag.PlaceHolder variable, so your symbol is independent of you solution data, and can be easily be exported to other solutions, it also brings the befit of having a preview of the symbol behavior before binding it to the production data.
In this other example, a Bargraph dynamic property was added to the object, with 3 Parameters keys being created. The TagValue, the Min, and Max parameters. The default values for Min and Max were set to 0 and 100, the default value for the TagValue was the internal variable Client.Second.
Then a TextBox object was added, using the same TagValue Parameter key to its value, so when selecting binding a new tag to the TagValue parameters, both the level of Bargraph and the TextBox message will show the value of the selected tag.
When those two graphical elements (the Bargraph and the TextBox) are selected, and applying the command GROUP to SYMBOL (or Save to Symbol if ending an existing one), the Symbol Configuration Dialog will present 3 Parameters to be customized to the symbol, on each instance of Symbol.
- TagValue: this parameter will set which tag will drive the level of the barograph and the value on the TextBox
- Min: this parameters will set the Tag, or Constant, or Value, that will driver the minimum value for the bargraph level.
- Max: this parameters will set the Tag, or Constant, or Value, that will driver the maximum value for the bargraph level.
Automatically Linking Symbols And Tags
title | Customizing Symbols |
---|
Linking Symbols and Tags
A symbol can be configured to be the default representation of a tag type.
Whenever Every time you paste a tag into the Draw EnvironmentDrawing, a symbol will be automatically created and mapped to the inserted tag.
The Digital, Integer, Double, Decimal, Text, DateTime, and TimeSpan tag types have the tag name of the tag and an input/output text box as their default visualization. To select multiple lines on Unified Namespace / Tags click on a line and hold Shift while clicking on another line to mark a range. The system will automatically create one object for each of the tags.
If you want to change any of the properties for the objects that were created, select all the TextBox objects by clicking and dragging over the display. Select the area with the objects and double-click on any selected object to open the "Edit Combined Dynamics" dialog.
The lines on Unified Namespace / Tags can be copied to Excel. Add the Left and Top columns to the Excel table. Then, copy/paste the table and its header column to the display. After this, the system will position the objects using the coordinates found in the table.
If you create a symbol with one dynamic parameter, and save it with the name "Integer", that will become the default visualization for the "Integer" tags. The same applies to any tag type. If you create a symbol with one dynamic parameter and save it with a name, it will become the default visualization for any tag with that name. For example, a symbol saved with the name Integer will become the default visualization for the "Integer" tags.
Linking Symbols To Tag Templates
. The Data Templates and Arrays, will use a DataGrid by default.
You can customize that behavior at Unified Namespace → Tags, using selecting the Tag and using the Map To Symbol button. (The result of that configuration is saved on the DefaultSymbol column)
Tip | ||
---|---|---|
| ||
Check out our Link Tags to Symbol to see this feature in action. |
Dropping Tags on Displays
The traditional way to setup HMI and SCADA screens was to drop graphical elements on the displays, and then go the configuration to bind Tags to those elements.
Our platform presents a newer, fasters and simpler way to do that, which is by directly dropping tags into the displays, and automatically the proper representation of tag is selected, using the Symbol to Tag configuration. No binding is required, and the symbol will be created on the display mapped to the selected tag.
There are various ways to start that operations:
- At Unified Namespace → Tags, select one or more rows with tag names, click COPY on toolbar (or Ctrl-C), go a displays and PASTE the tags on the display.
- You can also do that copy and pasting from Excel, when doing from Excel, you can add the columns Top and Left to customize the position the tag/symbol will be inserted.
- In the Drawing tool, right-click on the display to open the context menu, and use the Insert Tag command
- In the Drawing area, select Tags on the Tree on the Right side and drag-drop the tags to the displays.
For advanced solutions, or large projects composed with many SCADA displays, it is possible to fully automate this process, using a .NET programming API (EngWrapper) that creates the displays automatically based on external files, or custom programming.
Linking Symbols To Tag Templates
When using Data Templates in your solution, it is possible to create Symbols that will bind automatically to various members (properties) of the Data Template, just by selecting the main tag, instead of having to bind each individual property.
For instance, if you have a Data Template called PID, with members Setpoint, CurrentValue and ControlValue, you can create faceplate symbols that expect just the main PID tag, and will use the internal properties automatically.
In order to create those symbols, you just have to use an extension of the HashTag syntax to create Symbol Parameters keys, in order to specify that only the main tag will be replaced when customizing the parameters in the symbol.
Let's do and example of this procedure. You can define a symbol to be the default view for a tag template.
- Go to Unified Namespace / Data Templates to create a new template PID, with the properties Setpoint, CV and PV.
- Go to Unified Namespace / Tags
In the Display Drawing environment, insert any objects that you want to be part of the symbol. In the example, we use a TextBlock and TextBox with the parameters #Tag: (Tag.Demo.Integer1) for their dynamic properties.
Now, select the TextBox and the TextBlock and right-click to make it a New Symbol with the Name and Folder called "Demo".
The parentheses () in the TextBox and TextBlock expression define the scope on what should be replaced when you map the symbol.
For the hashtag syntax, #Label: When you paste the tags, they become the placeholder that will show where the tag name should be replaced with the dynamic animations or expressions.
Go to Unified Namespace / Tags and copy all tags with Type:Demo.
Paste the tags in the Drawing environment
When inserting tags of this template type, the system will look for a symbol with the same name of the template. If a match is found, the symbol is created and linked to the tag you inserted in the display.
If you create symbols using only Tag Elements and not expressions, you do not need to explicitly use the full syntax: #Label:(tag.Demo).Integer1 to define the label parameters. If you just use your tag in the object's dynamic properties and execute the Make Symbol command, the system will automatically search for tags in the symbol and create the related parameters. When using expressions or when having multiple tags and templates in the same symbol, you must explicitly use the hash tag # and the parentheses in order to define the scope of your symbol's customizable parameters.
Linking Symbols and Tags Using Categories
You can map a symbol to a group of tags, but you do not have to make the symbol map to all tags with the same type. To do this, use the Category column to link which symbols should be used as the default interface for each group of tags.
Go to Solution / Categories and create new categories.
Insert a symbol in the Drawing Environment.
Go to the Displays/ Symbols tab and chose the respective category for the symbol in the Category column.
If the Category column is not visible, right-click any Column name and select columns you want to see.
Go to Unified Namespace / Tags and define the category for the tags.
Select all the tags and copy/paste them into the Draw Environment. Each tag will map to the respective symbol, according to the association defined in the Category column.
- , or use the New TAG button in the main toolbar, and create a Tag (loop1) of type PID.
- Go to Displays / Draw and follow the procedure to create a bargraph and a TextBox, as presented earlier in this chapter, but using a slight change in the expression for the value, adding parentheses to isolate the tag name.
Expression: #TagValue:(Tag.Loop1).Setpoint
When you define the Parameter key with this syntax, it means the #TagValue parameter will replace only the Tag.Loop1 piece, meaning that the Bargraph, or TextBox, will always show the SETPOINT of whatever PID tag was selected in the Symbol instance configuration.
4. Continue the example by creating 2 more TextBoxes or Bargraphs with the following expressions:
Expression: #TagValue:(Tag.Loop1).PV
Expression: #TagValue:(Tag.Loop1).CV
5. Select the Graphical elements and Create a Symbol.
The Symbol Configuration dialog will show only ONE parameters, TagValue, which is expected to receive any Tag of type PID.
Default Symbols for Tag Templates
if a Symbol is created with the same name of the Data Template, like PID in the previous example, that symbol will be used by default, when dropping tags of type PID to displays.
If you want to use another symbol by default, Navigate to UnifiedNamespace/Data Templates, select the Data Template from the list, and Map the Symbol for that data Template by clicking the "map to symbol" button.
Some Data Templates are internal and pre-defined, like the PlaceHolder data template, don't allow to have a custom symbol mapping.
Tip | ||
---|---|---|
| ||
When using Data Templates, you do the automated connection of Symbol to Data Templates, not symbols to each one of the individual members of the template. Like in the previous example, the faceplate symbol is applied to PID tags, not individual symbols to Setpoint, PV or its individual members. If you want to create Symbols to bind to specific members of a DataTemplate, instead using the template Tag, just use the same syntax you would use with any tag, without the parenthesis. Example: #TagValue:Tag.Loop1.Setpoint In this example, without the parenthesis around Tag.Loop1, that configuration will expect the Parameter #TagValue to receive the final value of any attribute or tag (a replacement for Tag.Loop1.Setpoint), no longer it's expecting a PID tag. |
Linking Symbols with Tag Properties
When defining Symbol Parameters, in a similar way used on Data Templates, the parenthesis can be used to define various dynamics properties, using fields (properties) of a Tag, and having only the main tag name as parameter key.
For example, if you want to show the Tag Value, Quality and Timestamp, of a Tag, instead of definition 3 parameters, you can define one parameter to the TagName, and access the fields of that main tag.
- Expression: #TagName:(Tag.Tag1).Value
- Expression: #TagName:(Tag.Tag1).Quality
- Expression: #TagName:(Tag.Tag1).Timestamp
When creating the symbol, the parameter key #TagName will be created, allowing the instances of the Symbol to replace Tag.Tag1 to another tag in the application.
Tip | ||
---|---|---|
| ||
When creating Symbols intended to use across multiple solutions, it is a better practice to use the Tag.PlaceHolder when creating the symbol. The PlaceHolder tag is a data template with digital, integer, double and other Tag types, and it is defined by default in all solutions. In this way you can create the symbol with the expressions like: #TagName:Tag.PlaceHolder.IntegerTag, or #TagName:(Tag.PlaceHolder.DoubleTag).Quality This approach has various benefits:
|
Managing the Solution Symbols
The symbols included in the Solution, are listed navigating to Displays → Symbols.
At this page, you can export the symbol, delete, or verify Symbol Information, including Size and Description.
Save as an Image File
This command, creates a image (PNG) file with the Symbol Preview
Export to the Library
This command saves the symbols to the file Library.dbsln, located at the folder \Users\Public\Public Documents\<productName>|Templates.
This file is shared to be used by the Designer tool, when editing any solution in the computer.
Delete Unused Symbols
In order to delete a symbol, select the Row (or multiple rows), and use the delete (X) icon on the toolbar in top of the table
.
In this section:
Page Tree | ||||
---|---|---|---|---|
|