Maneuvers
This functionality aims at the definition of maneuvers, that is, sequential sets of remote controls that are normally used in the operation of electrical systems. A window has been implemented in which you can define a new maneuver, change an already defined one, delete maneuvers, and show a maneuver already registered. Finally, the window also allows you to submit an execution request for an existing maneuver.
General information
Prerequisites
Importing the 'Maneuver' component
With the project open, go to 'Run' -> 'Extensions' -> 'Components';
Make sure the component directory is correct;
Click the 'Refresh' button;
Select the 'Maneuver' component;
Click the 'Add Component...' button
Select the 'Add and merge to project' option, and click 'Ok';
Wait for the import;
Go to 'Run' -> 'Build';
Select all available options for the build;
Click 'Build...';
Using Level (Assets) in Tags
All Tags that are used in Maneuvers features must have an Asset level associated with them. For more information on registering Levels, please refer to "Creating Levels (Assets)".
Deployment mode
The functionality is implemented through a Popup-type display with the name @Display.ZLAS_CmdManeuver.
All control and visualization are done through a template name ZLAT_Operation. A single object is instantiated @ZLA_Operation with this type.
For the choice of Tags for maneuvers, a window has been created @Display. ZLAW_ChooseTag, dialog type.
The control in this window is done through a name template ZLAT_ChooseTag instantiated as @Tag.ZLA_Operation.ChooseTag.
All Scripts code is defined in code behind form on the two above-mentioned displays.
All of these objects were included in the 'Maneuver' component.
The maneuver data is written to a maneuvers name table, resident in the database that has the same project name and .db3 extension (SQLite), and is allocated in the project subdirectory. The connection is named ProjectInternal. The window uses Table ZLAT_Maneuver, and the query ZLAQ_QueryManeuver.
Use of the ManeuverIng Window
Window Call
The call of the Maneuvers window can be made through the code below and results in the presentation of the empty window.
@Display.ZLAS_CmdManeuver.Open()
Alternatively, the following call can be made, which causes the visualization of the maneuver window and the completion with the maneuver data, if any, named "NOMEMANOBRA";
@Display.ZLAS_CmdManeuver.NewPopup("manobra = 'NOMEMANOBRA'")
One can also request the visualization, and direct execution of the maneuver then using:
@Display.ZLAS_CmdManeuver.NewPopup("manobra 'RESETCHAVES'; action='execute'")
Presentation of the Maneuver Screen
The Maneuver Window is shown in the figure below, showing an existing Maneuver:
At the top left, there is a box with the list of all the maneuvers registered in this project. The name that appears in the box is the name of the maneuver currently being shown in the data grid, which exists in the main part of the window.
In this mode of use of only "Show" maneuver data, all grid fields with the data are read-only. They can't be changed.
By clicking on the Box the list with the maneuvers is shown. If you choose an item from the list by clicking with the mouse, this maneuver will have your data shown in place of the data from the previous one:
See that another Maneuver has been chosen and then see the data of this other being shown:
In the maneuver grid, each line corresponds to a command to be executed when the maneuver is performed. In the columns, for each row, there is data that defines how the command should be done. This data is described below:
Order – This is the sequential order number of the commands. The grid is sorted by this column. If this number is changed, the lines are inverted to maintain the sequential order rising from top to bottom. Numbers must be kept sequential.
Equipment –It is the tag name of the open / closed state signaling point of the equipment being commanded. It will be used to verify the success of a command operation (see below how to choose this Tag)..
Command – It is the tag name of the command point, that is, the executive action of a command. This will be the tag that will be modified to generate the sending of a command by the protocol /channel in which it is registered.
Action – Shows the text registered in the tag to be shown as being the ValueAsString attribute of the real-time point (in the case of Command Tags that are used in any state as with the same action, the enumerator parameter must have both texts equal).
If fails - This column contains a list of the words Next and Cancel. At the time of registering the maneuver, it must be specified what action the application should take in case a sent command does not succeed. That is if after a certain time does not reach the expected signaling. Cancel should be used if the user wishes to cancel the maneuver in case of failure in the command of that line. Next indicate that despite the failure of the command of the same line, the application must continue sending the commands from the following lines.
Delay– Serves to set a delay, in seconds, before the execution of the line on which it is specified. In the case of this last figure is not being used any delay, as it is zero. In the first figure, in the first line, it is defined that only after 10 seconds of the start of the execution of the maneuver should be sent the command of the first line. The second-line command should only be sent 10 s after the first line command is successfully signaled.
Message – In this field, you can define a text message that will be added behind the "operation summary" message sent by the window stating that a command has been sent by this Maneuver.
Command Menu
At the top right of the Maneuvers window, there are buttons for performing registration tasks and performing maneuvers. The following items describe the operations performed on the use of each button.
New
The button is used to enter the Inclusion Mode of a new maneuver.
When pressed, the maneuver data currently being shown is erased from the grid;
The name of the maneuver in the box with the list disappears;
A new text box appears to fill in the name of the new maneuver
Appear, buttons to include lines ( + ) and to delete rows ( - );
The button appears Save to be used at the end of the data entry of the maneuver.
In the grid appears the first line of maneuver, empty, but already with the order number 1.
The following figure shows the grid at the beginning of Inclusion Mode.
To enter the window data and each command you must:
In the text box, you must enter the name of the maneuver being created. In the example, RESETKEYS
Double-click the left-click on the empty row in the Equipment column: Tag Choice Windows will be shown, with Tags that are of the type of equipment status signage.
Choose the tag you want to use by clicking on your line, and then press the Ok button at the bottom of the window.
The text with the tag name will be transferred to the previously empty line:
Repeat to the Command column by clicking on the empty cell, and choosing in the Tag Choice Window the tag of the command you want to use. When you close the choice window the command tag is transferred and the action set as the tag enumerator parameter is also transferred to the activecell.
Then choose the operation for the "If it fails" column, and set a delay in seconds if necessary
If you want to type the text of a message to be included next to the command operation generation record, which is done by the window itself, with the command tag and maneuver id.
If you need to set one more command, after the first line is complete, press the , so that a second empty line is created.
Fill in the data of the new command as done on the first line and continue including lines and filling them out until you complete the maneuver steps.
At the end press the Save button to end The Include Mode and permanently record the maneuver. The Maneuver will be shown and the buttons used in the editing disappear. All grid fields are read-only and can no longer be changed.
As shown in the following figure.
Edit
The button is used to enter the Edit Mode of an existing maneuver.
In this mode, you can change any fields from any of the steps of the maneuver, including creating new commands or deleting existing commands.
When you press the Edit, the maneuver data currently being shown remains in the grid:
The name of the maneuver remains in the box with the list at the top left;
Appear, buttons to include lines ( + ) and to delete lines ( - );
The Save button appears to be used at the end of the maneuver data changes.
All grid fields become editable.
To change contents just click on the cell and change them.
In the Equipment and Command fields, if you want to change, you should click for the appearance of the Tag Choice Window, and choose Tags.
The following figure shows the grid at the beginning of Edit Mode:
The change actions will be identical to the one already described in the include mode.
You can also add new lines with the , and after filling them out;
You can delete existing lines by selecting the line and pressing the ;
At the end of saving the changes to the database, press the Save button.
The Maneuver will be shown and the buttons used in the editing disappear. All grid fields are read-only and can no longer be changed.
Delete
The button is used to enter the Exclusion Mode of an existing maneuver.
This button should be used to completely delete an existing maneuver. First, you must choose the maneuver in the List Box, at the top left of the window.
Once the maneuver is shown on the grid you can request its deletion by pressing this button Delete.
A message then appears, asking for confirmation of the deletion.
By pressing the button Yes, the maneuver will be deleted, and the data shown from the maneuver will be erased.
By pressing the button No, the deletion will be canceled.
Execute
The button is used to enter the Execution Mode of an existing maneuver This button should be used to trigger the Execution of an existing maneuver.
First, you must choose the maneuver in the List Box, at the top left of the window. The maneuver to be performed is the one that appears on the grid.
By pressing the Perform the execution of the maneuver is initiated from the first line.
Initially, the Retardation, in seconds, set on the line;
It is then checked for any locks for this command. If there is a lock the command will not run and the one set in If It Fails will be carried out: Follow or Cancel the Maneuver;
If the command can be executed, the change is made to the state of the tag defined in the Command of the same line, and the background color of the line is changed to yellow clear.
The window waits for the signaling resulting from the command. If it comes correctly, the bottom color of the line is changed to green clear.
If the signaling does not come within a Timeout time (by default the 20s), the background color is passed to red, to indicate failure. An operation log will be sent to events that occurred.
If there is a command failure, the one set in If It Fails will be performed: Follow or Cancel;
The execution passes to the second line, repeating the steps mentioned above.
And the execution continues to the last line.
Criteria for checks on signs and locks
Signaling Check
The criterion used is to verify that the first two letters of the 'ValueAsString' of the command tag, after being changed by the command action, are equal to the first two letters of the 'ValueAsString' of the signaling tag.
Therefore, when configuring the database, this criterion should be taken into account for the use of the default Maneuver Window.
Example:
Let the signaling tag be: Key_8.STA.POS defined with states 0 = Open; 1 = Closed
Be the command tag: Key_8.CMD.CMA with states 0 = Open; 1 = Open;
After sending the "Open" command, by changing the state of command tag, the flag is correct when the Chabe_8.STA.POS tag has its state with ValueAsString = Open;
Only the first two letters are tested.
Lock Check
In order to check interlocks, you must set up the tag @Tag.ZLA_Operation.Maneuver.tagForCmdBlocking, in its attribute StartValue the text of the final part of the name of the tag that contains, the blocking information.
For the lock check, a tag will be searched, with the same initial part of the name, that is, the same template in which the flag tag is, and with the final part equal to that defined in this configuration. Blocking is considered if the 'Value' of this tag is 1;
Execution Event Messages
As a result of the Maneuver Window functionality, operation messages are sent to the event list.
In the following figure all commands have been signaled correctly.
In the case of verification that a particular Command is blocked for execution, for example by an impediment, a message is sent with the sayings:
COMMAND NOT EXECUTED - LOCK
If signaling fails, the sent message will include:
CANCELED - Failed Command Signaling (in case if it fails is cancel)
CONTINUES - Failed Command Signaling (in case of If It Fails Is Follow)
Settings
The following settings must be made for the correct operation of the maneuvering window.
Command Signaling Time‐out
Maximum time in seconds of waiting for a signal, after a command is sent. If the correct signaling does not reach the command is considered failed. By default 20s.
Set up on
@Tag.ZLA_Operation.Maneuver.timeout.StartValue
Tag for Lock Verification
The text of the final part of the lock tag name (Inter locking or impediment) must be configured in the Tag:
@Tag.ZLA_Operation.Maneuver.tagForCmdBlocking.StartValue
For the lock check a tag will be searched, with the same initial part of the name as the flag tag, and with the end part equal to that defined in this configuration.
End-of-name definitions for Tag Choice Window
In so that the Tag Choice Window doesn't get too crowded when it's opened and with point tags that aren't of the wanted type, the caller passes the information whether to show Command Tags or Signaling Tags.
Depending on this parameter, the list shown window will be loaded with Tags whose final part of the name is the same as one described in the following configuration tags.
Finals for Command Tags
Up to 6 end parts of Command Tags, separated by point and comma in the tag, must be configured to 6 end parts of command tags, separated by
@Tag.ZLA_Operation.ChooseTag.txtSuffixCmdNames.StartValues
Example:
CMA; CMF;_L;_D
Endings for Signaling Tags
Up to 6 end parts of Flag Tags, separated by point and comma in the Tag, must be configured:
@Tag.ZLA_Operation.ChooseTag.txtSuffixEquipNames.StartValues
Example:
POS; R79
On this page: