Overview
Symbols are 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:
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
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.
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: (hashtag ParameterKey ColorChar), you are creating a Parameter, a new key to the dictionary of parameters this symbol can have.
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
Linking Symbols and Tags
A symbol can be configured to be the default representation of a tag type. Whenever you paste a tag into the Drawing, 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 and an input/output text box as their default visualization. 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)
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.
- Go to Unified Namespace / Data Templates to create a new template PID, with the properties Setpoint, CV and PV.
- Go to Unified Namespace / Tags, 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.
Mapping Symbols to Data Templates
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.
Using the PlaceHolder Tag
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:
- The symbol isn't dependent of any tag in the solution
- The PlaceHolder selected informs which tag type is expected to that symbol
- You can access tag properties, with the intelisense when creating more advanced symbols.
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: