Symbol Library
Using the graphical development tools you can create new symbols to use in your own projects. You can organize for your own use a library of symbols that will be reused on several screens in the company's projects. The native basic library already comes with a set of symbols such as Keys, Tanks, Gauges and Bombs, Buttons, Gauges, Sliders and others.
Â
Organizing the Symbol Library
New objects can be clusters of existing objects with all associated dynamics.
Below, for example, the object is shown Fan representing a wind turbine. This object is ungrouped and then regrouped by adding to the existing tachometer and a value indicating the speed in RPM. Note that in the dynamics of the propeller, it is selected to rotate it when a value is greater than 1 (on).
Symbols are complex objects created using the screen editing tools of the Action.NET. Thus, for example, a circuit breaker object must be a figure with all the properties and methods associated with a circuit breaker on a screen of a unifilar.
Each symbol must have a name that identifies it, a category that groups it among its peers, and a description that assists in its use by technicians who must configure the SCADA screens.
In the case of an integrating company that works with several energy concessionaires, one possibility of organization is to group all the objects (circuit breakers, sectioners, analog measures, etc.) associated with the concessionaire's culture into a category, such as the example CEB_SIMBOLOS (Brasilia Distribution Concessionaire).
A circuit breaker object will have, for example, the following dynamics:
When the mouse hovers over it, it will increase in size;
It will be a square with four distinct colors as a function of being: Locked (0), Open (1), Closed (2) and Undefined (3);
A double click on it should open a command window that will allow you to turn it on, turn it off, stop it, or disable it.
Creating a Symbol (Breaker)
For example, to create a symbol for the Breaker object:
About the Default application, a rectangle object is created in the shape of a circuit breaker. A double click on this object opens the dynamics window for configuration.
We select the dynamics
Action and assign the following actions:
Tag.AN_AnalogInt_SELECTED. Link = #DISJ:(tag. AN_DEFAULT_AnalogInt). GetName()
The first action will be to play the reference link of the variable associated with label #DISJ the variable on the left: AN_AnalogInt_SELECTED. In the construction of the symbol we use a variable Dummy (AN_DEFAULT_AnalogInt ) that during the design of the screens should be replaced variable pala that describes the state of the circuit breaker.
Display.AN_Command.Open(): The second action will be to call the AN_Command which should have as input parameter the variable globalTag.AN_AnalogInt_SELECTED , since in the first line of the dynamic pointer of this variable points to the dummy variable that represents the state of the circuit breaker.
Below is the dynamic share Complete:
The second dynamic will be fillcolor and we will use the value of the associated variable (tag. AN_DEFAULT_AnalogInt). Value to assign colors (0) White, (1) Green, (2) Red, and (3) Yellow.
The last dynamic associated with this rectangle object will be Shine that will cause the object to increase by 20% (1.2) when the mouse hovers over it.
Another implemented action will be to place an "X" on the object if there is no communication with the field. To do this, a figure "X" is created ( Two straight
and it is defined that it will be invisible when the tag quality is different from 192 (ok quality).
Finally, one object is placed on the other, grouped, and creates the breaker symbol.
Circuit Breaker Control Window
The circuit breaker control window is shown below. It handles the global variable:
AN_AnalogInt_SELECTED and has the localizable headers:
Tag: Displays the name of the variable associated with the circuit breaker:
Tag.AN_AnalogInt_SELECTED. GetName()
State: Displays the state in the variable associated with the circuit breaker:
Tag.AN_AnalogInt_SELECTED. ValueAsString
Command: Indicates whether or not the command is impeded (in this case only the check-box)
Signaling: also check-box of states;
In addition to these parameters of "labels" there are three buttons, where each button is associated with a dynamic:
Turn off: Tag.AN_AnalogInt_SELECTED. Value = 1
Call: Tag.AN_AnalogInt_SELECTED. Value = 1
Exit: CloseDisplay action.
Creating a Unifilar with Breaker Symbols
In the following figure, a unifilar with one bar and six DISJ symbols was created. For each symbol, as can be seen in the figure, the variable Tag.AN.DEFAULT.AnalogInt was replaced with a variable associated with a circuit breaker.
The on/off command changes the tag value (1=off / 2=On) and its associated figure.
Just as this circuit breaker object was created, you can create all the objects associated with the client culture.
Operations in Creating New Symbols
It is common when generating new items in the Symbols library:
Associate Labels with dummy variables:
#LAB1:(Tag.AN_AnalogInt_Selected)
Use reference type tags to point to dummy variables as in:
[Tag.AN_AnalogInt_Selected.Link =#LAB1:(Tag.AN.Default.AnalogInt). GetName()]
Do all operations with the reference variable, after making your note
To create a dummy variable that will assume the role of a variable from a routine associated with a symbol, for example: Circuit breaker, create a dummy variable of the same variable type that contains the breaker state and create a reference type variable.
For example, if we have a circuit breaker that is an AnalogInt, we create a dummy variable of the same type, such as Tag.AN.Default.AnalogInt, and create a global variable of the reference type, such as tag. AN_AnalogInt_Selected.
After pointing the reference variable to the circuit breaker: [Tag.AN_AnalogInt_Selected.Link
=#LAB1:(Tag. An. Default.AnalogInt). GetName()], the following attributes can be used:
Circuit breaker state: (Tag.AN_AnalogInt_Selected.value (0=locked, 1=open, 2=closed, 3=Undefined);
Circuit breaker status reading quality: (Tag.AN_AnalogInt_Selected).quality
Circuit breaker description: (Tag.AN_AnalogInt_Selected).description
Inhibited circuit breaker (alarm disabled): (Tag.AN_AnalogInt_Selected). AlarmDisable = 1
Simulated circuit breaker: (Tag.AN_AnalogInt_Selected.locked = 1
Circuit breaker changed the value: (Tag.AN_AnalogInt_Selected).changed
State of the circuit breaker in text: (Tag.AN_AnalogInt_Selected). ValueAsString - In this case there must be an associated dictionary;
String with breaker tags: (Tag.AN_AnalogInt_Selected). GetName()
On this page: