Creating application from Default
This section presents a roadmap for drawing up a project from the Default Application. To start create a new project by choosing the project template DefaultNewProject. Then enter the project and start creating the other objects as detailed in these next items.
Â
Creation of Dictionaries
When creating tags and user types (templates), you must define the dictionary that will be used to translate the value of a variable into its state. This attribute called Parameter is used in alarm lists. Thus, if the tag of a protection is worth "1", the alarm list will be displayed in the text "ACTUATED".
You should therefore create the dictionaries that will be used to later create the templates and tags.
Dictionaries were created:
SEL_CHAVE: 4-position key states;
SEL_PROTECTION: Digital with normal / actuated phrase;
DNP_IIN_CMD: Result of DNP (Internal Indication) commands; If the user wishes to keep the application in two languages, he/she must:
Include in the English dictionary, presented in the figure below, all terms in Portuguese put on screens and objects.
On all objects with text use the property Localization;
In dynamics with text and in Scripts, in-place texts always use
@Client.Locale ("text") and add the text to the English dictionary;
Creation of Templates
Introduction
In organizing a new application, the user must properly plan the templates. Thus, for example, you will create a monitoring application of a substation with:
Bay line;
Transformer Bay;
Feeder bay;
Because a bay can occur more than once, each bay will be created as a template.
The points of each bay are usually provided in Excel spreadsheets and, from these worksheets, the templates should be created, that is, it is easier to adapt the Excel spreadsheet to the ActionNET format than to type point by point directly in the Tags and Templates.
By studying the tags of a bay the user will be able to observe sequences of points that are repeated in different bays. These sequences, in order to facilitate work and standardize tags, should also be created as templates. So, for example, in different bays one has the same
sequence of analog variables and, to facilitate the work, this sequence is defined as a template, as shown in the figure below:
Bays Template
To generate the template of a bay, from an Excel spreadsheet, simply organize your points identically to that of the templates tab. To create a spreadsheet that is identically organized to the Templates Tab, simply copy a row of this Tab and paste it into an Excel spreadsheet, according to the worksheet below generated from the template ANA1.
From this worksheet, the rows are emptied, keeping the header, and then we must organize our bays point sheet, in the format of this worksheet, as shown in the figure below, where the existing line bay points were placed in a SEL_311.
In this worksheet, the blue cells are the original points of the line bay point sheet, and the blank points correspond to points created by the user for the following reasons:
ANA: Corresponds to the analog points of the bay that are shown in the figure of item 8.2.1.
ALM_GROUP: It is a calculated variable that should be placed in all bays where you want to have a group alarm identifying whether or not this bay has at least one alarm actuated. Note that in
In Category if you have the variable AN_GRUALM_ALM associated.
IIN_VAL and IIN_CMD: these are variables associated with the DNP3 channel that will be explained later when the application's Entry and Exit points are created.
CB (Circuit Break): a template has been created for the circuit breaker where the input variable with the circuit breaker state and the two output variables to turn the circuit breaker on/off are declared;
SC_89-1: A template has been created for disconnecting keys where the input variable with the key state and the two output variables to turn the key on/off are declared;
The template columns used are:
Type: Point type which in the case is:
Digital (0 or 1): digital input and output variables;
AnalogInt: Discrete digital variables are defined as AnalogInt: circuit breaker state and disconnectors (assume values between 0 and 3).
AnalogDouble: Analog variables are set to AnalogDouble.
ANA1: template with all analog variables of a bay.
Parameter: contains the dictionary name that converts the value of the variable into a text;
Retentive: The properties text indicates that at the beginning of the program both the tag value and its properties will be equal to its values when the program closes.
Category: Item "7.3.2" treats the existing categories in the default application, and in this case, a single tag was created for the group alarm associated with this bay.
Description: descriptive text of the tag.
Just as the bay associated with the SEL_311L (line protection) is created, the points associated with the rels that collect feeder and transformer points should be created.
Level Creation (Assets)
Assets (levels) correspond to the organization of the application point groupings. Tags handled from the default application must be different from SysInternals which is the grouping of tags used in the internal routines of the Default application, to generate the screens with the various reports automatically made available:
History of Measures;
Contentium of Tags;
Summary of Alarms;
Event Summary
Event Search;
Operation Log;
Trend in Real and Historical Time;
Using NewLevel (right mouse button on DefaultNewProject_DNP) three new second-level items were defined as shown below, as shown in the figure below:
Feeders: you will have the feeders.
Lines: you will have the line bays;
Trafos: will have the bays of trafo;
All tags created must be on one of these levels.
Creation of Bays tags
To create the bays of the substation, you go to the Objects Tab and create the bays by associating their types (Type) with the respective templates, as shown in the figure below.
Note that these tags must be server type (they are on the server) and cannot be included in the Internal Sys.
Creation of Devices
In this example application, the relafters are being considered to be communicating with SCADA through the DNP 3.0 protocol. For each protocol there is a specific manual.
Creating a DNP3 Channel
In the Channel Tab, a new channel called "DNP301" is created using the DNP3 protocol with TCP/IP communication, as shown below:
This channel uses the default attributes, as below:
Creation of the Node
The node corresponds to the IED (relé, PLC, UTR, etc.).
In ABA Node you should create a new node as shown in the figure below:
After, you must hit the node attributes by clicking on the Primary Station column.
Creation of Channel Points / Nodo
The creation of points is done in a similar way to the creation of the templates, that is, the easiest way is to create any point in the points ABA, export it to an Excel spreadsheet and after, from the spreadsheet of points of the application create an Excel spreadsheet keeping the organization of the exported sheet:
TagName | Node | Address | Datatype | Modifiers | AccessType | Label | Scaling |
Tag.SEL_LINHA_01.DJ_52A | Node.SEL_311L_01 | Native | AccessType.Read | None |
In the DNP 3 protocol manual is information on how to fill each column of a point. BI points are digital input (Binary Input), AI points are analog inputs, CRO points are digital outputs (Control Relay Output), and IIN points are inputs of the Internal Indication type of DNP3.
Observations:
To create a double point as in the case of the disconnectors, the disconnector was defined as an AnalogInt variable, and two digital points were created that correspond to the Bit0 and Bit1 of the disconnector (rows 10 and 11 of the above worksheet);
The variables of type IIN (lines 40 and 41) have a fixed address, as shown in the DNP3 manual;
To perform an output you must call the routine (Class) AN_TAG method of reversing the value of the output variable:
@Script.Class.AN_Tags.ToggleDigOutput(<out tag>);
Each time you send a command, it is interesting to put a message in the Event Summary by registering this command. To do this, perform the action:
@Alarm.SystemEvents.AddCustomMessage("Message" + txtName) where txtName is the string with the name of the commanded variable.
Creation of Alarms
Creating alarms from the Default Application requires that an input (Line) be created in the Alarm Items table for each behavior that must be flagged. The table below shows the number of entries that will be created depending on the situation:
DESCRIPTION | LINES | condition | GROUPS | OBSERVATIONS |
Flag any change | 1 | Changed | EVENTOS_BIP | |
Flag differently 0/1 | 2 | Equal 0 | NOACK_BIP | |
Flag differently 0/1 | 2 | Equal 1 | NOACK_BIP | |
Analogue with 1 Limit | 1 | HI / LO | HI_NOACK_BIP or | When normal - Time |
Analog with 2 Limit (HI) | 2 | HI | HI_NOACK_BIP | When normal - Time |
Analog with 2 Limit | 2 | IT | LO_NOACK_BIP | When normal - Time |
Analogue with 4 Limits | 4 | HI | HI_NOACK_BIP | |
Analogue with 4 Limits | 4 | IT | LO_NOACK_BIP | |
Analogue with 4 Limits | 4 | HIHI | HIHI_NOACK_BIP | |
Analogue with 4 Limits | 4 | LOLO | LOLO_NOACK_BIP |
Observations:
You can place analog tag alarms with two upper and lower 2 limits.
When one of the alarms is active, tags are kept in alarm summary and events. When tags are normalized, they come out of the Alarm Summary, and in the Event Summary the time of their normalization is placed.
In ActionNET, when setting the Alarm Summary, the parameter "Merge Hi and HIHI" is selected, which keeps in the list the most important alarm when two alarms of this type are actuated, that is, if HIHI is actuated, the HI line is inhibited and the same occurs with LO and LOLO.
There are events that are stored in the history whenever a value change occurs. These events are used in maneuvers of equipment such as sectioner, transformer tap, etc.
At run time, the Alarm Summary displays the alarms that are currently active.
The Event Summary has the events presented in chronological order Analog events have their time of operation and normalization signaled. Thus, when an analog alarm starts, it has only the time of operation and when it closes, it has both times.
Creation of the Measure History
As shown, in the Default Application there is a table (Table1) that is written at least every minute and whenever the tag is changed. Below is shown this table populated with all analog variables of line bay 01.
For each Bay, a similar procedure should be repeated.
Creation of Application Screens
As presented in the chapter on the Default Application, there are already nine screens where eight are already ready, see in "Screens Available".
Home Screen (AN_MainPage)
On the main screen, information from Line 01 was placed, as shown in the figure below:
The four lines and the text Protections are rectangles and TextOutput, respectively, which after being created were grouped, with no link to the tags;
The values of the three analog variables on the right are TextBox associated with the variable tags: active power, reactive power, and voltage.
The protections are checkBox, each of which is associated with a line bay tag. They are type Output (Binding: Outputonly) which means that the user never makes an entry in the checkbox;
The line bay drawing was made with rectangle objects, circles, and polygons (arrow) that at the end were grouped together becoming a single object:
The circuit breaker and disconnector are symbols created for the application. The sectioner shows the figure of closed (red rectangle), open (slanted green straight) and invalid (# assumes letter ?).
The circuit breaker turns red when closed, green when opened and with the red band on the side when prevented. A click on both the circuit breaker and the disconnector opens the command screen:
The disj symbol band is only visible when the circuit breaker tag is Disable, as shown in the dynamics below:
The Circuit Breaker is a button with four dynamics: One click on it does two actions:
Makes the global variable AN_DISJ_SELECTED the circuit breaker selected:
Tag.AN_DISJ_SELECTED. Link=#TagDJ:(Tag.SEL_LINHA_01.CB. DJ). GetName( )
Calls the command window:
Display.AN_Command.Open()
The mouse over the object increases its size by 20% and its opacity is 0%.
When the variable is "0", the color is green and when it is "1" the color is red:
The "X" are two rows grouped and have a dynamic that is only appear when the quality of the tag is different from 192 (192 = OK quality).
Command Window (AN_Command)
In this window there are three TextOutputs with the texts:
State
Condition
Alarm Command
The on and off buttons have mouse click dynamics associated with mouseleftbuttondown1 and mouseleftbuttondown2 scripts, respectively, which send the On and Off command to the field:
On this page: