VTS DevGuide1
VTS DevGuide1
PRINTED IN CANADA
Support: [email protected]
Sales: [email protected]
Contents
How to Build an Application 5
The Development Process ..................................................................................................... 5
Fundamentals: The Structure of VTS Applications ................................................................ 7
Application Types ................................................................................................... 7
Application Layers.................................................................................................. 8
Creating and Managing Your Applications.......................................................................... 12
Use the VTS Application Manager (VAM)............................................................ 13
Adding Applications ............................................................................................. 15
ScadaAce Applications ......................................................................................... 21
ChangeSets - An Application in One File .............................................................. 25
Remove an Application from the VAM ................................................................. 32
Make a Backup of Logged Data ............................................................................ 33
Open the Application Configuration Dialog........................................................... 34
Set Application Properties ..................................................................................... 35
The VTS Version Control System ......................................................................... 44
Import File Changes.............................................................................................. 57
Manage Files with the File Manifest ...................................................................... 58
Import/Export Files ............................................................................................... 59
Find Tools in the Configuration Toolbox ............................................................................ 63
Moving the Configuration Toolbox ....................................................................... 64
Pick Graphics and No Tool ................................................................................... 65
Libraries ............................................................................................................... 65
Application Configuration Button ......................................................................... 65
Deploy Changes Button ........................................................................................ 66
Cursor Coordinate Display .................................................................................... 66
Drawing Tools Library.......................................................................................... 66
The VTS Graphic Editor ................................................................................................... 101
Using the Graphic Editor’s Menu ........................................................................ 102
Multiple Levels of Control .................................................................................. 104
Control via Tags, Expressions and Parameters ..................................................... 105
Using the VTS Graphic Editor ............................................................................ 108
Clipboard Tools .................................................................................................. 123
Drawing Graphic Objects .................................................................................... 124
Alignment and Positioning Tools ........................................................................ 140
Working with Objects ......................................................................................... 146
Working with Colors........................................................................................... 150
Working with Parameters .................................................................................... 156
Pages - Adding and Editing .............................................................................................. 157
Quick Links: Common Tasks for Pages ............................................................... 158
Access the Page Configuration Dialogs ............................................................... 159
The Pages Context menu..................................................................................... 160
Working with Application Pages ......................................................................... 164
Properties of Application Pages........................................................................... 165
Link to Pages with the Page Hotbox .................................................................... 171
Link to Pages with the Page Button ..................................................................... 175
Close Pages with a Button ................................................................................... 177
Index 571
In this section of the Guide, VTS and VTScada developers will find all the information they need in order to build
monitoring and control systems.
The chapters follow the development process, beginning with VTS terms and definitions that you will need to know. The
final chapters include development examples that you can learn from or copy for your own applications.
Note: If your application runs on more than one computer, and you intend to do on-going development, then it is
extremely important that you understand the VTS Version Control system and how changes are deployed (or not)
between servers.
Application Types
There are two fundamental types of VTS application: Script and Standard.
Script applications are those that are written in a text editor using VTS script code. Script applications are not based
upon the VTS Library Layer and therefore do not have access to the Display Manager, Configuration Toolbox, Alarm
Dialer or any of the other tools and features provided in the VTS Layer.
Several useful script applications have been included with every copy of VTS. These include debugging and monitoring
tools such as the Source Debugger, the VTS Internet Monitor, etc.
To learn more about how to create script applications, please refer to the chapter, How to Program Customized Tools
Standard applications are those that are based on the VTS Library layer. As such, they inherit the entire set of features
and functionality built into the VTS layer, including:
Fundamental to standard applications is the concept of layering. A standard application may be built directly upon the
VTS Library, or it may be built upon and inherit features from another application. That other application may in turn be
built upon yet another application. VTScada is an example of an application build on the VTS Library. When you select
Application Layers
While the development tools provided in the VTS Library are useful for a wide variety of industries, you may also
require specialized tools. System integrators will often create custom tag types, drivers, wizards, graphics and other
specialized tools for a particular industry. These tools can be used in other applications through the VTS layering system.
A layer (or "OEM layer") is any VTS application. In practice, OEM layers are designed specifically to add custom
features for use in many other applications rather than being designed to run by themselves.
In a situation where you intend to simultaneously run more than one application based on a common OEM layer, you can
configure security for the OEM layer and share its security database with the applications that are based on it.
When creating a new VTS application, a required step is to select its type. This is how you choose the layer that the new
application will be built upon and inherit features from.
Reusability: Inheritance from lower application layers to upper layers means that the custom tools that you
create for an OEM layer can be used in other applications. You do not need to re-create those tools or features
for every application.
Extensibility: New functions can be added to existing objects such as tags and drivers without changing the
structure of applications built on the OEM layer. For example, if you extend the feature set of a custom tag in an
OEM layer, applications built on that OEM layer will continue to work without interruption and, will have
access to the new feature set in your custom tag.
Note: There is a way to cause instances of objects from the OEM layer to be copied to the new application. You can do
this by including a Template ChangeSet file with the OEM layer. See: OEM Template ChangeSet.
Changes to the OEM layer's tag database (that is, new instances of tags) will not be seen by child layers. Also, files and
other information specified in the OEM layer's Template.ChangeSet file will only be copied to a new application when
that new application is created. If the new application contains its own copy of a file or an application property, it will
ignore any changes made to those items in the OEM layer. See: OEM Template ChangeSet.
Warning: The working set of files and the change history repository are stored within the .sync folder. Never attempt to
directly edit any file in that folder structure. Any attempt to do so will damage your application.
Folders:
Pages Contains the source code for all of the application pages. You may edit these files and import
your changes to modify an application.
PlatformInfo Contains information about your VTS installation, the application and the computer you are
running the application on. These details may be viewed by opening the VTS Application
Manager (VAM), clicking on Properties, then on Information.
Any user changes to the files in the PlatformInfo folder will be ignored by VTS.
Resources Contains logo and button images used by VTS.
Files:
Accounts.Dynamic Created only after security has been enabled. Contains encrypted account information. User
edits to this file will be ignored.
Application.version Stores information about the current revision of the application. User edits to this file will be
ignored.
AppRoot.SRC The main source file for an application. Lists top-level variables and modules in use by the
application. Edits may be imported. This file was named "AppMod.SRC" in earlier versions
of VTS.
Default.ROS Contains the default call-out roster for the VTS Alarm Dialer.
GroupName.SRC The source code for any user-defined drawing methods (groups) in the application will be
stored in these files, where the name of the drawing method is used instead of "GroupName".
User edits to these files may be imported.
Lexicon.VLX If you customize the speech lexicon within an application, your edits will be stored in
Lexicon.VLX.
PageMenu.TXT Stores the application's page menu. This file replaces Menu.TXT and Menu2.TXT from
earlier versions of VTS. Edits may be imported.
Servers.RPC Contains the list of configuration servers. This text file is in XML format. User edits may be
imported, but must be made using correctly formed XML.
Settings.Dynamic Contains application properties (formerly, configuration variables) whose value may be
changed without re-starting the application. This file follows the same structure as the
obsolete Config.INI
Settings.Startup Contains application properties (formerly, configuration variables) whose value can only be
changed by re-starting the application. This file follows the same structure as the obsolete
Config.INI
The VAM provides many functions. The following table will help guide you through its features. Note that the VAM is
organized such that the command buttons along the right edge apply to selected applications. Buttons along the bottom
edge apply to VTS itself, rather than to any specific application.
You can read the topics in this chapter from beginning to end in order to gain a complete understanding of how to create
and manage your applications, or you can use this table to skip ahead to topics of interest.
Create Applications The Add button provides access to several options for creating an application. You
can build applications from scratch, copy a remote application to this workstation,
add an existing application to the VAM, or use a ChangeSet to create a copy of an
application.
See: Adding Applications
Start and Stop Applications The Start and Stop buttons in the VAM are used for this purpose. You can also
configure an application to start automatically.
See: Starting and Stopping.
Configure Application Application properties (formerly known as configuration variables) control how
Properties your application looks and works. These values are set using the Application
Properties page, accessed through the Properties button of the VAM.
See: Set Application Properties
Select a theme from the drop-down list. The VAM will be updated immediately to match your theme selection. Your
choice of theme for the VAM will also be applied to all applications except those that have been assigned a color theme
of their own. See: Select a Color Theme.
Adding Applications
When we refer to "adding an application" we may mean any of the following tasks:
• Create a new application, either from scratch or based on an OEM layer
• Add an existing application to the VAM's list of available applications.
• Install an application from a ChangeSet file, either to…
o Restore a backup
o Create a clone for testing and development
o Install an application on a new workstation
• Retrieve and install an application from a remote server
The first step for all of these tasks is to click on the Add button in the VAM.
The Add New Application opens as shown:
Instructions for each of the choices are provided in the following topics.
The path will automatically change to match the name after you press enter or tab to exit from the Name field. Spaces
and punctuation symbols will be removed. You are free to provide a different name for the path if you choose but, if the
path matches the name it will be easier for you to find the application on your workstation.
The Type is a drop-down list of all the standard applications currently available in the VAM. By choosing an existing
application, you build your new application on it as a layer, inheriting all of its features. The first two entries in the list
will always be "Standard Application" and "VTScada". See: Application Layers.
After providing the Name and Type, and optionally changing the path, click OK. The new application will be created and
added to the list of Available Applications in the VAM.
Note: Developers who are familiar with VTS prior to release 10 may expect a more complicated version of the New
Application Properties dialog. Options such as the initial graphics page and choices of configuration server are set after
the application has been created, using the Properties menu.
The VAM does not search your computer, automatically finding and adding all the applications that are present. You
must choose to add each application that you want to see in the list of available applications in the VAM.
You can also use the Browse button in order to look through the hard drive for applications. When looking for an
application, you will select the application's folder rather than any particular file.
Since applications are found based on the path that they are stored in, the Show Path option allows you to see that path
rather than the name of the application.
Note: You can remove or hide applications from the VAM's list without deleting them from your computer. See:
Removing an Application from the VAM.
To create an application from a ChangeSet, select the Get From ChangeSet option in the Add New Application dialog
(illustration: Adding Applications), and click OK. The New Application Properties dialog will open, configured similar
to the following:
The application name is defined by the ChangeSet and cannot be changed here.
The Path will default to the application name (minus spaces and punctuation symbols), but you may change it if you
want.
The Type is pre-determined by the application from which the ChangeSet was created.
Warning: If the application from which the ChangeSet was created is based on an OEM layer, you must first install that
OEM layer before adding the ChangeSet file. ChangeSets do not include OEM layers.
Three of the most common uses of ChangeSet files are, to create a backup of the application (excluding logged data), to
create a clone of an application on the current workstation, and to create a copy that can be installed on other computers
that are not networked.
Note: If you are running an application on multiple servers (a "remote" application) do not use ChangeSets to install the
application on each workstation. Install it on one, then use the instructions in the next topic, Get an Application from a
Server instead.
The drop-down list will be populated with the names of all the computers running VTS that your current
workstation is able to see.
2. Select the name of the computer running your application from the drop down list, or type in the machine name.
VTS will scan the workstation and report how many applications are present on it, including the number
currently running.
4. Click the Inquire button.
A list of the applications counted in the earlier dialog box is shown. Select the application that you want to copy
from that server and click the Acquire button.
The application will be copied to your workstation and added to your list of available applications in the VAM.
After providing the IP address of the gateway unit, and optionally choosing to enable the system time synchronization
feature, click OK. Immediately, you will be prompted to begin entering site information. Click the Add button.
The Area field is automatically made the same as the name (RTU_1 in this example). This is very useful when viewing
the alarm list since it is the area value that allows you to distinguish alarms in one site from another.
The RTU ID value should match the ID value of the hardware.
Following the initial configuration of the new site, as shown, you will be able to configure the inputs and outputs of this
instance.
Clicking on any RTU in the left column, or on its matching pin within the map (if a location has been configured) will
cause the site details page to open. These are created automatically for you, with each new site that you add.
ScadaAce Site Monitoring Pages - Digital Statistics Tab and Analog Statistics Tab
Statistics are available only if configured when creating the input tags within the site.
When viewing the statistics, you may choose to view a table showing the values for all collected statistics over a time
period, or a table showing the specified statistic, over both time periods.
Except for Template ChangeSets, do not store ChangeSet files in the application directory.
A ChangeSet file contains the instructions required to re-create an application. That is, the set of changes that went into
making the application. A ChangeSet is not the same thing as a copy of the application, compressed into one file
(although the Snapshot ChangeSet comes close).
There are four types of ChangeSets, each of which is intended for different purposes. A full description of each type is
provided in the sub-topics of this chapter.
Warning: ChangeSets do not include OEM layers. If your application uses an OEM layer, you must create and send a
ChangeSet for that as well.
Given a ChangeSet file, there are two ways that you can use it, depending on your situation.
You could create a new application. The results will differ, depending on the type of ChangeSet file you have been
given, as described in the following topics.
If the ChangeSet was created from an application that already exists on your workstation, you can choose to create a
clone (copy). A clone is useful when you want to experiment with configuration changes, while being sure that nothing
you do will affect the primary version of the application.
Add-On ChangeSets can be applied to any application based on the same layer or a descendant of that layer. (An Add-
On ChangeSet of an application based on the VTScada layer could not be applied to an application that is based on the
VTS Library layer).
Full, Snapshot and Run-Only Snapshot ChangeSets can only be applied to the same application, presumably located on a
different computer. The purpose is to distribute updates between computers that do not have a network connection. The
changes in the ChangeSet are merged as if the computers were linked and the VTS Version Control system were able to
distribute those changes.
The result of distributing a ChangeSet file is much the same as making a network connection between your computer and
the other workstations that are running the application.
Warning: ChangeSets do not include OEM layers. If your application uses an OEM layer, you must create and send a
ChangeSet for that as well.
Note: Do not store ChangeSet files in the application directory, with the exception of the OEM Template version.
The first option, Create a Complete Backup, is identical to the single Basic Mode function. The other three types of
ChangeSet are described in the following topics.
• Update your application using a ChangeSet file from another workstation that is running the same application, and is
not visible via a network connection.
Note that you cannot apply a ChangeSet file from one application to another.
It is possible that the changes coming from the ChangeSet may conflict with changes that have been made to the
application on this machine. The Apply ChangeSet menu gives you a choice between two options for how to handle
conflicts:
• Use ChangeSet revision on conflict.
The version in the ChangeSet file is used.
• Discard changes from ChangeSet on conflict.
The version on the workstation is used in the case of a conflict. This is often the safest option when you
encounter a conflict while attempting to apply a ChangeSet file to a production system.
5. Click "Yes"
The changes will be applied.
If there is a conflict between versions, an error message will tell you which version was used and which
ignored.
Note: The version history, stored in the ChangeSet, will not be visible unless you set the application property,
RepositoryShowCloneHistory to 1. This property must be part of the section, "Layer" rather than "System".
Use a Full ChangeSet if you want to send a complete copy of the application to a computer that is not on your network.
(That is, a computer that cannot do a "get from server" to obtain a copy of the application.)
Warning: ChangeSets do not include OEM layers. If your application uses an OEM layer, you must create and send a
ChangeSet for that as well.
You can also use a Full ChangeSet to restore an application that has been lost or damaged, but only if the ChangeSet was
created recently. If the application exists on another workstation, it is always better to restore or replace the damaged
workstation, then do a Get-From-Server to recreate it on the machine.
Note that, attempting to revert an application to an older version by applying a Full ChangeSet will not work. Changes
are merged. Since the changes you are trying to apply with the older ChangeSet already exist in the current application,
they will be ignored. Use the VTS Version Control system instead to switch to an earlier version.
Warning: ChangeSets do not include OEM layers. If your application uses an OEM layer, you must create and send a
ChangeSet for that as well.
When installing an application using a Snapshot Copy, install it only on one server, then use Get-From-Server to install
the application on other computers in the network. If you use a Snapshot Copy ChangeSet on one workstation of a
networked application that is currently running, the empty version history of this most recently-modified workstation
will be applied to all other workstations that are running the application.
Warning: ChangeSets do not include OEM layers. If your application uses an OEM layer, you must create and send a
ChangeSet for that as well.
As described elsewhere in this manual, VTS applications are often built on other (OEM) layers in order to inherit drivers,
tag types, reports or other objects from those layers. (See: Application Layers) While the new application will inherit
definitions of those objects, it does not inherit instances of the objects (other than tags) from the lower layers.
This is where the OEM Template type of ChangeSet can be useful. It allows new applications, based on the OEM layer
to be created with the desired configuration in place, including pages.
The steps for creating an OEM template ChangeSet involve creating a new application that contains only the tags, pages,
properties, etc. that are to be part of the template.
Preparation:
There are two, optional preparatory actions to take:
• The OEM layer's repository will contain the name of the machine where it was created. You may wish to substitute
your company name for the sake of creating a more professional appearance.
• If you are maintaining template ChangeSets for several applications, and if those applications have a parent-child
relationship to each other, then each distinct OEM layer that you create should be given a unique machine ID for its
repository history. Do this by creating a unique 12-digit hexadecimal code in the VTS Setup.INI file and changing it
between the creation of one OEM layer and another. The code may be any 12 hexadecimal digits.
To accomplish these actions:
1. Open the SETUP.INI file in the VTS folder, using a text editor.
2. Add the following two lines to the [SYSTEM] section. (Use your company or brand name for the repository
workstation name and invent your own 12-character ID).
RepoWorkstationName = ReliableOEMs
3. Re-start VTS.
If using multiple RepoMachineID values, then it must be changed between the creation of one OEM layer and another.
You should always use the same RepoWorkstationName and RepoMachineID when making any changes to a given
template – keep a record of what values were used for each of your OEM layers.
Template Creation:
A space between steps indicates the completion of a sub-task.
2. Make sure you have no applications in your VAM called "New Application", and that there is no directory
under your VTS installation called "New Application".
If necessary, remove the application and/or directory.
3. In the VAM, click the Add button to create a new application.
4. Select the OEM application as the Type for the new application.
5. Do not change the application's name.
Leave the name as "New Application". If the dialog is initialized with a name like "New Application 1", then
you did not remove the application and/or directory that needed to be removed in step 2.
6. Do not start the new application.
Running an application creates a .platform file that must not be included in the template ChangeSet. All work
in this application will be done with the user files and the Application Configuration dialog.
8. Use the Import File Changes button in the VAM to import the user copy changes.
9. Open the Application Configuration dialog for New Application.
10. Select Create ChangeSet File in the menu.
11. Click on the Advanced Mode button.
12. Select the option, "Create a complete backup to be used as an OEM template".
13. Click on the Create button.
A dialog box will open, asking for a file name and location.
14. Navigate to the OEM layer's application folder.
15. Ensure that the filename is "Template.ChangeSet".
16. Click on OK.
If you are updating an existing OEM layer ChangeSet, replace steps 3-5 above with the following:
1. Click Add New.
2. Select the option, Get From ChangeSet.
3. Select the OEM layer's Template.ChangeSet file as the source ChangeSet.
All applications created on the OEM layer will now include local copies of tags, application properties, pages, etc. that
were part of the temporary application. If you decide to update the OEM layer at a later date, remove the
Template.ChangeSet file from the OEM layer's file manifest and repeat these instructions. See: Manage Files with the
File Manifest.
To remove an application:
1. In the VAM, select the application to remove.
2. Click on the Remove button.
A prompt will ask you to confirm that you want to remove the application.
OEM layers that have dependant applications may not be removed, but they can be hidden. The process is the same
except for the dialog that will be shown:
If you are running VTS on a single computer only, then you will need to take a copy of the history files.
Unless otherwise configured(*), VTS stores logged data in a folder within your application. For example, if you have
installed VTS in the folder, C:\VTS and are running an application named MyApp, then the history would be found as
follows:
C:\VTS\MyApp\Data\
(*) If you have configured your system to use a 3rd party database program for your logged data instead of the VTS
history system, follow the instructions in that program for creating and restoring backups.
The pages within this dialog are described throughout this chapter. This topic provides instructions for the two methods
of opening the dialog.
Note: if security is enabled for an application, you must have at least the Configure privilege before you are allowed to
open this dialog.
The steps to set a value for a property, using the Application Configuration dialog, are as follows. Links to detailed
instructions are provided where appropriate.
The following topics provide detailed instructions for each of these steps.
In the Edit Properties dialog, you will notice that a few properties are shown using a bold font while most are displayed
using a faint text color. Those shown in a faint gray color are properties whose value has been set in one of the
application's underlying OEM layers. (If the Hide OEM Properties option is checked, only local properties are shown.)
In some cases, it will make sense to change a property's value in the OEM layer so that the value you want carries
through to all applications based on that layer. More commonly, you will want to change the property's value on an
application-by-application basis. To do this, you must make a copy of that property in your application as follows:
Note: The Copy Property dialog allows you to change all fields, including the Property Name and Section. Do not
change the contents of these two fields. Unknown property names are ignored. Properties attached to the wrong section
are also ignored by VTS.
11. Type a comment into the Comments dialog and click the OK button.
If you later use the VTS controlled versioning system to review the changes made to your application, this
comment will help you remember what changes were made and why.
10. Type a comment into the Comments dialog and click the OK button.
This comment is for the VTS version control system and should explain why the new property is being added,
unlike the earlier comment that explains what the property does.
Note: The new property will be saved to the Settings.Dynamic file. Do not use this system for properties that take effect
only on application start-up and should therefore be part of Settings.Startup.
6. Click on OK unless you would like to make other configuration changes before proceeding with this one.
The Comment dialog will appear.
7. Type a comment into the Comments dialog and click the OK button.
If you later use the VTS version control system to review the changes made to your application, this comment
will help you remember why the changes were made.
If you choose Not Now, the Restart Required symbol will be added to the application's title bar and further configuration
changes will not be allowed. The buttons for the configuration toolbox and for page notes will be disabled.
If the property is flagged as requiring a restart, you will need to stop and restart the application before the new value goes
into effect and before you are able to make any further changes to the list of application properties.
For more information about workstation-specific properties, see: Workstation-Specific Properties.
If you click on the Yes button, the Edit Properties page will close and none of your edits will be saved. Clicking on No
closes the warning and leaves the Edit Properties dialog open so that you can use the Apply button.
All edits to the application properties are local to your workstation until Deployed. For most applications, changes are
automatically deployed as they are made, but if that feature has been disabled for your particular application, you will
need to use the Deploy Changes button. Deployed changes are shared with all networked workstations running the
applications and are stored in the repository of the controlled versioning system. See: Local Changes versus Deployed
Changes.
Note: Full access to the version control system is an optional feature that your company may or may not have purchased
with your VTS license. Check the list of features included with your VTS license in the About VTS dialog.
The version control system offers far greater flexibility than a simple Undo-Redo. Features include:
• The ability to return directly to any earlier stage of development.
• Since the act of switching to an earlier version is itself logged as a stage in the version control system, you have not
"undone" and lost changes to intermediate stages of development, but have added one more change to the log.
• You can merge (or then reverse) specific changes from a selected version.
For example, given an application with 20 versions recorded in the version control system, you decide to switch
to version 10. You can then choose to merge just the changes made in versions 12, 15 and 18 into version 10
and carry forward from there. (Note: later versions often depend on work done in earlier versions. If you merge
the work from a given version, be sure to include all related changes.)
• You can reverse or merge specific changes from a range of versions.
You can select a range of versions, and then select specific changes done across those versions to be reversed,
or merged.
Commenting Changes
When you apply or deploy a change, VTS will prompt you for a comment:
Comments are extremely helpful. The version history for any application is likely to become large over time. By making
a note of why each change was made, you can create a clear history documenting your application's development.
Comments are not mandatory in the default configuration of VTS. If you prefer to make comments mandatory, you can
change the minimum length required. To do so, add the application property RepositoryCommentMinLen to the Layer
section of your Settings.Dynamic file.
See: Adding a Property to the Current Application.
After setting a value for the property RepositoryCommentMinLen, users will see a dialog similar to the following if they
do not provide the required number of characters.
While there are local changes on a workstation, the Configuration Toolbox button will display a "Work-in-progress"
image.
All changes to an application are automatically and immediately deployed unless you choose otherwise. In most cases, it
is an advantage to have the Automatically Deploy Changes option in effect since it ensures that your edits are always
saved as the official version of the application in the repository. A situation where you might not want this feature is if
you are making changes to a networked application and do not want your edits to be installed on the other workstations
until you have finished and tested your work.
Notes: Changes related to security accounts are always deployed automatically and immediately.
Auto-Deploy cannot be deactivated on a Run-Time licensed workstation.
All changes made to this application will now be local until you use the Deploy Changes option of the Application
Configuration dialog.
In a networked application, other servers will continue to run the deployed version, but will also obtain a copy of your
local changes. This will show up in the Workstations section of the Show Version Log screen, where your workstation
entry will be marked in Blue to indicate the presence of local changes in that branch.
Note: Changes to the Automatically Deploy option affect only the current workstation. You cannot remotely change this
value on other workstations.
The Deploy Changes page is disabled while the Automatically Deploy Changes feature is in effect. See: Local Changes
versus Deployed Changes.
When you are ready to deploy local changes, making them the current version of the application, use the Deploy
Changes page of the Application Configuration dialog.
You can open this page as follows:
Changes made to source code such as a page, will show green lines for what is new, and yellow for the previous values.
(Circled numbers link to descriptions in the following text.)
When you first open the Deploy Changes page, all changed items will be selected. By selecting individual items in the
list and using the buttons at the bottom of the page, you can choose which changed items will be included when you
click the Deploy Changes button.
Warning: Development tasks often involve more than one file. Choosing to deploy only some of the code changes
required by a VTS object may cause serious errors in your application.
The Reload button allows you to refresh the display. If you have made local changes while the Deploy Changes page
was open, click this button to ensure that all changes are displayed before deploying.
Local changes to an application (that is, those changes that have not yet been deployed) can be reverted or undone. If you
need to undo local changes, use the Revert Changes page of the Application Configuration dialog.
You can revert all changes, returning to the last deployed stage of the application, or you can select particular changes to
revert.
When you first open the Revert Changes page, all changed items will be selected. By selecting individual items in the list
and using the buttons at the bottom of the page, you can choose which changed items will be included when you click
the Revert button.
Warning: Development tasks often involve more than one file. Choosing to revert only some of the code changes
required by a VTS object may cause serious errors in your application.
The Reload button will refresh the display. If you have made local changes while the Revert Changes page was open,
you should click this button to ensure that all changes are displayed before reverting.
Deployed changes are managed (and can be undone) using the Version Log.
The various features and tools in this page are shown in more detail in the following image. Numbers refer to notes in the
following text.
Miscellaneous buttons
The buttons, Next 100 and Show All are used to step through the list of version changes, which may become lengthy
over time. The Reload button will refresh the display to show any version changes that may have happened since the
page was opened.
The details display is divided into two screens. On the left is a list of all files that were changed in this version. The right
side screen initially displays a guide to interpreting version changes, until you select a file from the left screen, as in the
following image. Each type of change is indicated by both a symbol and a color.
Use extreme caution when reversing a version change. If later versions depend upon work that was done in the version
that you are reversing, your application will be damaged.
The act of reversing a version change does not remove those changes from the history. Instead, it adds a new version in
which the change is the undoing of whatever was done in the reversed version. You could later decide to re-incorporate
the changes from the reversed version by using the Merge Version Changes command.
You decide that the creation of the page was a mistake, but that the creation of the tag was not. You can proceed as
follows:
1. Switch to version 9.
Changes made in versions 10, 11 and 12 vanish from the current version.
2. Merge the changes from version 11
The tag is again part of the current version.
Note: depending on the change you may need to re-start your application.
The currently selected version will be highlighted to help you keep track. Note that this version is also
highlighted in the workstation list – you can select a range across workstations as well as across the versions on
your workstation.
3. Right-click on the version marking the end of the range you wish to select.
5. Click the Apply button and provide a comment in the dialog that appears.
If files have been copied to or created in any of the application's folders, they will be found by the compilation process
and you will be asked whether you want to add those files to the working set.
By clicking OK, all the checked files will be added to the application's repository and VTS will consider them to be part
of the application.
If you un-check a file before clicking OK, VTS will remember your choice and will not prompt you to import it on any
future compile. You can still add the file later by using the File Manifest. If you change your mind after adding a file you
can also use the File Manifest to remove it from the list of working set files. See: Manage Files with the File Manifest.
The Import File Changes button may be useful in the following situations:
• You have made custom code changes in your application directory, and want to import those changes. Some
changes (like page code, drawing method, and tag code changes) can even be integrated into a running application.
Each folder name (left window) is followed by two numbers: the count of selected files followed by the total number of
files in that folder. File counts include those in sub-directories of each folder.
Files that are marked with red boxes (right window) are required by VTS and cannot be un-checked. Those with green
boxes are under your control.
Warning: Some of the files that you can choose to exclude from the manifest may be useful to your application. For
example, after un-checking PageMenu.txt, the page menu in the application will be empty. Use caution!
Un-selecting a file from the manifest does not delete it from the application directory. While unselected, it will be
ignored by the version management system and will not be synchronized across workstations. You may choose to select
it again at any time.
The following two examples may serve to illustrate the use of the File Manifest:
Custom Bitmaps:
Import/Export Files
Much of VTS can be configured directly by application developers. Examples include:
• Application properties (configuration settings)
• Custom code such as tags, device drivers and user interface wizards
• The page menu
• Server lists
• Application pages
For all such files, VTS maintains two copies: a user copy that you can edit and a working copy that VTS maintains in its
repository.
If you edit one of the user copies, you must direct VTS to import that file before it will become part of the working set.
This provides two benefits: All changes are recorded in the VTS version control system, and security is maintained since
only users who have the Configure privilege are allowed to import file edits.
Warning: Edit only the user files. Never attempt to edit files in the application's repository directory (.sync). Altering
files in that location may cause irreparable damage to the application.
Further information about these functions can be found in the following topics.
This powerful tool allows you to see exactly how the user file differs from the current working version, allowing you to
decide whether or not you want to import it.
Configuration changes to tags will record who made the change, what fields were changed, when the change was made
(see footer bar) and what the previous value was.
Note the slider bar on the left of the file display area. The full vertical range of the slider matches the complete file
contents. Changes are marked in color coded bars along the slider's length. This provides a way to rapidly spot all the
changes in the file and navigate to them.
If image files are changed, this tool will show a before and after version of the image. Other binary files show only the
file name and the date of the change.
1. Edit a file
Examples can be found in the chapter Customizing VTS.
2. Open the Application Configuration dialog.
(Instructions)
3. Click on "Import/Export Files" in the menu.
Note: While changes to some files such as Settings.Dynamic will take effect immediately, changes to others such as
Settings.Startup will not take effect until the application is re-started.
Warning: All selected files in the list will be affected by this command. Ensure that only those files are selected in
which you want to discard the manual changes.
Export Latest
Where Discard File Edits will over-write the user file set with the current copy of the user files, Export Latest will
attempt to merge recent changes from the working set into the user files without destroying changes found there.
In total, the Configuration Toolbox provides a set of 40 tools, one of which (2C) opens a library, which provides access
to many more features.
Use the following reference array to learn more about any given button in the configuration toolbox:
A B C D
1 Pick Graphics No Tool Shape Deploy All
Polygon Changes
2 Tag Browser Menu Editor Libraries Application
Configuration
3 Cut Copy Paste Delete
4 Rectangle Line Polygon Pipe
5 Arc Ellipse Pie Chord
6 Text Bitmap Undo Redo
7 Bring to Front Send to Back Horizontal Vertical
Spacing Spacing
8 Align Left Align Bottom Align Top Align Right
9 Align Vertical Align Group Snap Grid
Center Horizontal
Note: Only users with sufficient privileges may perform the tasks listed above. See: Working with Security.
Switch between configuration mode (pick tool) and operation mode (no tool).
The Pick Graphics button is one of the most frequently used buttons in the Configuration Toolbox. When selected, it
activates the Pick Graphics tool and places the application in design mode, enabling you to configure and develop the
application pages of your application.
Note: When an application is placed in design mode (i.e. the Pick Graphics button or any other button in the
Configuration Toolbox except the No Tool button is selected), certain operational tasks (such as alarm
acknowledgement) are disabled. To place the application in operation mode so that you can perform operational tasks,
either close the Configuration Toolbox or select the No Tool button.
Libraries
This button opens the Libraries menu, from which you can add and edit pages, or work with a variety of VTS
tools and libraries. (See image below.)
The key feature of this menu is that a right-click on any node will always open a context-sensitive menu showing what
can be done with that node.
Please refer to the Drawing Tools Library for more information on the various tools and libraries
The Pages node provides access to the tools used to create edit and delete pages. Detailed information is provided in the
chapter: Adding and Editing Pages.
This button opens the Application Configuration dialog, a powerful toolset that allows you to view and control
development versions, application properties, security settings, line-by-line changes to source files and much more.
See the chapter Create and Manage Your Applications to learn more about the Application Configuration dialog.
Note: The Deploy Changes button will be deactivated if Auto-Deploy is currently enabled (as it is by default).
In a remote applications, this button allows you to deploy your development changes to all the workstations that have
this application. For a full description of what happens when you deploy changes, see: Local Changes versus Deployed
Changes.
The bottom of the Configuration Toolbox includes an area that displays the X (horizontal) and Y (vertical) coordinates of
the mouse pointer as you move it across the screen to help you configure your operator interfaces as accurately as
possible.
The Libraries button in the configuration toolbox opens a dialog that provides specialized tool libraries,
development tools to help you create your own drawing methods and the entire set of application page development and
configuration tools.
The Libraries dialog is shown here with the Drawing Tools menu expanded to display the available libraries.
The following libraries of tools will be available by default. (Note that two of these libraries are only available to
VTScada-based applications.)
• Alarm Tools: Provides tools to build customized alarm displays for your application, either to supplement or
replace the existing default Alarm page. See: Create a Customized Alarm System Interface.
• Meter Parts: Provides tools to create your own photo-realistic meters to use in addition to the Meter 1 through
Meter 13 drawing methods. See: Meter Parts Library.
• Modem Tools: Provides tools to augment your application with event and statistic displays for configured modems.
The Modem Tools library is discussed in "Modem Tools Library".
• ODBC Manager: The OBDC manager includes one tool: A Show Stats button that when added to an application
will display ODBC statistics. See: ODBC Manager Library.
• Report Tools: Provides tools to build a custom reports page, either to supplement or replace the existing default
Reports page. See: Report Tools Library Reference.
• Site Tools Library (VTScada only): The Site Tools Library contains two extra tools (Legend and Program Spawn)
that are useful in the development of VTScada applications. See: Site Tools Library.
• Right-Clicking on a menu entry will open a dialog, from which you can choose the Draw option. This will cause a
dialog box to be displayed, showing all the tools available in that menu item.
Press the OK button to create a border with the default settings as shown.
Step 3: After dismissing the Graphic Editor, you can adjust the size and location of the border by clicking once on it,
then dragging the square handles.
The result of the above configuration is a checkbox labeled, "Alarm Popups" that can be checked to set the
AlarmPopupsEnable application property to 1, or can be unchecked to disable alarm pop-ups.
Each time an operator changes a property using this tool, a comment will be added to the version log as follows: "Edit
Property Checkbox: property name".
Note: Some application properties, such as ScaleDisplayContent, require that your application be restarted before their
value can be read. Review the list of properties in the Application Configuration dialog to find those that are not marked
"Restart". See: Opening the Edit Properties Dialog.
For each property whose value you wish to modify, you must create a new Edit Property Checkbox object.
Note: You may not want operators to have access to the application properties. It is therefore recommended that you
create an application page specifically for all your Edit Property Checkbox objects, and then protect it from operator
access using an application privilege (see: Protect a Page with an Application Privilege.
Section
Enter the name of the section under which the variable you wish this checkbox to modify appears. For example, if the
variable is part of the [System] section in the Settings.Dynamic file, enter "System" in the Section field.
Variable
Enter the name of the application property that will be changed by this checkbox.
Label
Enter the text label that you wish to be displayed for the completed checkbox.
Box on Left
Set the position of the checkbox in relation to its label.
Alignment
Configure the alignment of the completed checkbox object and its accompanying label within its drawing area.
Focus ID
Select a number setting the order of the completed object in the overall tab order. (optional)
Note: For further information about application properties and the Settings.Dynamic file, see: Set Application Properties.
The result of the above configuration is an edit field labeled, "Email Subject".
For each property whose value you wish to modify, you must create a new Edit Property Field object. If you wish to set
an application property that accepts a value of either 0 or 1, use the Edit Property Checkbox tool.
Each time an operator changes a property using this tool, a comment will be added to the version log as follows: "Edit
Property: property name".
Note: You may not want operators to have access to the application properties. It is therefore recommended that you
create an application page specifically for all your Edit Property objects, and then protect it from operator access using
an application privilege (see: Protect a Page with an Application Privilege.
Section
Enter the name of the section in Settings.Dynamic under which the variable you wish this field to modify appears. For
example, if the variable appears under the [LABELS] section heading in Config.ini, enter "Labels" in the Section field.
Variable
Provide the name of the application property that this edit field will enable users to edit.
Title
Enter the text label that you wish to be displayed above the completed edit field.
Data Type
Select the data type accepted by the specified application property. A “data type” is a programming term referring to the
specific type of value that is permissible for a variable. Some variables require text settings, others require numeric
settings that might be small or large, while others require a specific value of "0" or "1".
The available data types are:
• Status: Status is a numeric data type that can have a value of 0 or 1 (i.e. off/on or false/true).
• Long: Long is a numeric data type that is a whole number 4 bytes in length (i.e. -2147483 to 2147483).
• Short: Short is a numeric data type that is a whole number 2 bytes in length (i.e. -32767 to 32767).
• Float: Float is a numeric data type that is a fractional or decimal point value (e.g. 327.983).
• Text: Text is a text data type that accepts alphanumeric characters (e.g. "My Application").
View
Sets the appearance of the completed edit field. This can be one of:
• Invisible: The Edit .INI Var Field object will be invisible to users. You may choose this option if you wish to hide
the object from view, and set it to Force Normal whenever you wish to use it.
• Force Normal: The Edit .INI Var Field object will be enabled and visible.
• Gray If Appropriate: The Edit .INI Var Field object will be enabled when the associated application property
cannot be set.
Vertical Alignment
Draw Bevel
Select this option to have a beveled border drawn around your edit field.
Align Title
Indicates whether or not you wish the height of the title to be factored into the vertical alignment calculations (see
Vertical Alignment above). If not selected, the vertical alignment will consider only the edit box and the beveled edge (if
present).
Focus ID
Use the Focus ID spin box to select a number representing the order of the completed object in the overall tab order.
(optional)
Folder
The Folder drawing object creates a user-interface object with multiple tabs; each tab contains a separate display of
system monitoring and control objects. The tabs are used to select which frame is to be displayed. See also: Frame.
A folder may have from one to fifteen tabs. You have extensive control over the appearance of the folder and the tabs
within it.
The content for each tab's frame must come from a pre-existing object in your application. These may be pages, tag
drawing methods, or library drawing methods (normally, User Draw methods). You do not draw objects on a folder as
you would on a page.
Tab Style
The tabs may use any of the following three styles (shown here using default colors).
Font Style
Select a Font tag to define the appearance of the tab labels.
Number of Tabs
May be any value from one to fifteen. This only changes the number of tabs displayed; tabs are not added to or deleted
from the folder. Thus, if you configure four tabs, then drop the number to three, you will have hidden the fourth tab, not
deleted it.
Move Selected
Tabs may be re-ordered. They are displayed left-to-right across the folder in the order that they appear from top to
bottom in the table.
Tab Layout
Provides control over how the contents of the tab fit into the folder size.
The margin, measured in pixels, will ensure a set amount of blank space around the contents. If the area of the folder
plus the margin is smaller than the selected content, then the content will be scaled down to fit.
If Stretch to Fit is selected, the folder content will be expanded to fit the available size.
The Maintain Aspect Ratio option controls whether the content may be deformed when being stretched or shrunk.
Finally, the Horizontal Alignment and Vertical Alignment options control how content that is smaller than the folder will
be placed within the available space.
Frame
A frame is similar to a border, but has a greater range of options for customizing its appearance.
Besides having their own color, frames can be configured to follow the application's color theme. They can also be
partially transparent.
The VTS Graphic Editor for a frame will appear as follows:
The Color Options section of the configuration will not be enabled if the Use Theme Color is selected. However, since
all frames can have a measure of transparency, this control is repeated outside the Color Options section of the panel.
(See also: Color Options - Adjust Image Hue)
The following frame styles are available. Note that the Use Theme Color option will work only with the frames shown
here in blue.
For example, here are the images for the Raised, Rounded Frame:
While this example shows .PNG format images, any of .PNG, .JPG or .BMP image formats may be used.
Corner images must match the size of their adjoining edges, and be no larger than the number of pixels required to create
the corner. For reference, the largest corner image for any of the frame styles included with VTS, is 20x20 pixels.
Side images (Top, Bottom, Left and Right) must be no wider than the corners they connect to. They need not be square -
for example the chrome frame uses side images that are much longer than they are wide, in order to create the chrome
reflection effect.
The center image is optional. It is commonly included as a square to provide the fill color.
The color serves only as a starting point - developers may modify the hue of any frame when they add it to a page.
Its purpose is to allow your user-defined tag drawing methods to display the question or exclamation mark as
appropriate. See: User Draw Methods.
This symbol will be added to and configured for your Tag Drawing Methods automatically. If you are adding a Tag Icon
Marker manually, then the VTS Graphic editor should be configured as shown here in order to link the symbol to the tag
being drawn.
The defined area for the tool tip is invisible while the application is running. To help the operators find the area, it should
be placed over a bitmap or label. While in development mode, the tool tip button will be displayed as a simple black
rectangle.
The Graphic Editor dialog for the Tool Tip button is as shown:
The display of the tool tip is controlled by configuration variables such as TipOff (sets the number of seconds for which
the message will be displayed), TipFore (sets the foreground color of the message) and ShowTip (enables or disables
tool tips).
Please refer to: Application Properties for Tooltips to see a complete list of the configuration variables that you can use.
Line Color
Click on the button to open the Select Color dialog. You can set the lines to be transparent if none should be shown.
Background Color
Click on the button to open the Select Color dialog. You can set the background to be transparent if none should be
shown.
Analog Clock
Use this option to add the following animated clock to a page. The clock can be positioned and re-sized like any other
drawing object.
The Graphic Editor for the clock contains a single user-configurable option: the selected Time Zone. The time zone list
includes both GMT offsets and major cities around the world.
Note: To create your own meter, you will need to combine parts from this library with images from the Meters group of
the bitmap images library. Those images include: backgrounds, bezels, glass, indicators and tick marks.
The meter parts library includes five meter components: scale markers (Draw Scale), linear indicator, linear legend,
radial indicator and radial legend.
Quick Link:
For a tutorial on the process of building a meter, see:
Build a Custom Meter
Compass Indicator
Draws a compass needle where the needle image is whatever you select from the Meter Parts, Radial Indicator group.
You can apply Hue, etc if you would like to change the colors to something other than the default. Note that most of the
images have an insertion point which is at the center, bottom of the image. For a needle such as the one shown, you will
need to apply a negative offset to bring the vertical center of the needle down to the rotation (i.e. insertion) point.
The graphic editor for the Compass Indicator will appear similar to the following:
Select Bitmap
The image used for the indicator. The meter parts group of the graphic library includes several images of radial
indicators, including compass needle images.. The reference point will always be at the bottom center of the image. For
those that include a pivot, part way along the image (example following) you can add an offset from center.
Counter-Clockwise
When checked, the needle will move in a counter-clockwise direction to indicate increasing values.
Reference Angle
May be either a positive or negative value. Sets the initial angle of the compass needle relative to North (0-degrees).
Dampen Movement
If set, the needle's motion will be animated to move smoothly to position rather than jumping directly to the new value.
Minimum Angle
Sets the starting angle of the needle display (left side). Measured in degrees, clockwise from vertical. Defaults to 225
degrees.
Maximum Angle
Sets the end angle of the needle display (right side). Measured in degrees, clockwise from vertical. Defaults to 135
degrees.
Color Options
Adjusts the hue, etc. of the indicator image. Color control is described in the chapter: Color Options - Adjust Image Hue.
Scaling
Whether to use the tag's scaling values or to set a range directly in the indicator using the minimum and the maximum
value fields.
Draw Scale
Draws a series of scale marks for the meter in either a linear or a radial format as shown:
Relative Size
This slider allows you to scale the tick mark images. Thanks to this control, you do not need to create a new set of tick
marks for every possible meter size.
Linear Scale
When checked, the tick marks will be drawn in a linear format:
The controls, Orientation and Reflect Image are available only to Linear Scales.
Orientation
Can be set to either horizontal or vertical. It is important that the tick mark images selected are appropriate to the
orientation: Select vertical marks for horizontal scales and horizontal marks for vertical scales.
Reflect Image
The normal orientation of the scale markers is as a row across the top (when oriented horizontally) of a relatively large
area. You can choose Reflect Image to flip the markers to the opposite side of the area.
Color Options
Adjusts the hue, etc. of the indicator image. Color control is described in the chapter: Color Options - Adjust Image Hue.
Data Source
The tag that provides the value being indicated. This can be any of:
Select Bitmap
The image used for the line. Note that the same image is used for both the moving marker line and the expanding
indicator (either scale or crop draw mode). The expanding indicator works by stretching the bitmap in the direction
indicated by the linear indicator.
The meter parts group of the graphic library includes two indicators. It is important to select the vertical bar for an
indicator that moves horizontally and the horizontal bar for an indicator that moves vertically.
Orientation
Whether the meter should move horizontally or vertically. Please see the note under Select Bitmap regarding the proper
choice of indicator for each orientation.
Reverse Direction
When checked, horizontal indicators will increase to the left instead of right. Vertical meters will increase down instead
of up.
Draw Mode
This can be one of:
Moving – represented by a moving line:
Dampen Movement
Applies to the moving draw mode: If set, the line's motion will be animated as it moves to position rather than jumping
directly to the new value.
Number of Steps
If set to 0, the indicator shows the exact value. If set to a larger value, the indicator is divided into the given number of
steps and the display will round to the nearest step. So, for example, a step of 1 would mean all on or all off. 20 steps on
an indicator that ranges from 0 to 100 would round the display to the nearest multiple of 5.
Color Options
Adjusts the hue, etc. of the indicator image. Color control is described in the chapter: Color Options - Adjust Image Hue.
Scaling
Linear Legend
Draws a numeric legend for a linear meter. An example, with three labels (0, 50, 100) is shown beneath a Linear
Indicator:
The following options are available for you to control the Linear Legend's appearance:
Tag
Selecting a tag or a page parameter is an optional step. If provided, the legend can take its minimum and maximum
values from this tag or parameter’s value. (Normally, this will be the same tag or parameter that is used for the linear
indicator).
Alternatively, you can ignore this field and specify minimum and maximum values for the display in the Scaling section.
Font
Select a font tag to control the font and other display parameters for the legend text.
Number of labels
Color
Opens the color selector where you can set the text color.
Scaling
If a tag is specified, you can use that tag's scaling to set the beginning and end of the legend's range. Otherwise, you can
specify minimum and maximum values of your own.
Radial Indicator
A radial indicator is used to show values on a round meter. An example, created with the default values, is shown here:
As shown, the outer arc and vertical division line are visible only while in design mode. Their purpose is to help you
scale and place the indicator and will vanish when the application is put into run mode. The needle will remain and can
be any image you wish.
The following image shows the default Graphic Editor dialog for the radial indicator.
Select Bitmap
The image used for the indicator. The meter parts group of the graphic library includes several images of radial
indicators. The reference point will always be at the bottom center of the image. For those that include a pivot, part way
along the image (example following) you can add an offset from center.
Counter-Clockwise
When checked, the needle will move in a counter-clockwise direction to indicate increasing values.
Dampen Movement
If set, the needle's motion will be animated to move smoothly to position rather than jumping directly to the new value.
Minimum Angle
Sets the starting angle of the needle display (left side). Measured in degrees, clockwise from vertical. Defaults to 225
degrees.
Maximum Angle
Sets the end angle of the needle display (right side). Measured in degrees, clockwise from vertical. Defaults to 135
degrees.
Color Options
Adjusts the hue, etc. of the indicator image. Color control is described in the chapter: Color Options - Adjust Image Hue.
Scaling
Whether to use the tag's scaling values or to set a range directly in the indicator using the minimum and the maximum
value fields.
Radial Legend
Draws a numeric legend for a radial meter. An example, with 5 numbers drawn, is shown here inside a Radial Indicator:
The graphic editor dialog for a Radial Legend is shown in the following image:
Tag
Selecting a tag or a page parameter is an optional step. If provided, the legend can take its minimum and maximum
values from this tag or parameter’s value. (Normally, this will be the same tag or parameter that is used for the radial
indicator).
Alternatively, you can ignore this field and specify minimum and maximum values for the display in the Scaling section.
Font
Select a font tag to control the font and other display parameters for the legend text.
Minimum Angle
Maximum Angle
Sets the end angle of the legend display (right side). Measured in degrees, clockwise from vertical. Defaults to 135
degrees.
Number of Labels
Sets the number of labels to display in the legend. There is no minimum, but legends look best with at least 3.
Color
Opens the color selector where you can set the text color.
Counter-Clockwise
When checked, the legend will increase in a counter-clockwise direction.
Scaling
If a tag is specified, you can use that tag's scaling to set the beginning and end of the legend's range. Otherwise, you can
use these fields to specify minimum and maximum values of your own.
Note that it is possible to close the ODBC Statistics screen while the log is still enabled. Use this feature with caution: it
can result in an excessively large log file being created over time.
If you are looking for the Site Draw drawing method, please see: Site Draw Drawing Method.
If you are looking for the page opened by the Site Draw drawing method, see Site Details Page (VTScada).
Site Legend
Provides a legend that can be placed in a page to explain the colors used in the concentric rings of a site symbol.
The Site Legend can be accessed via the Site Tools Library. To do so:
1. Click the Configure button to open the Configuration Toolbox.
2. Click the Libraries button to open the Configure dialog.
3. Expand the Drawing Tools menu item.
4. Expand the Site Tools Library menu item.
5. Right-click on the Site Legend menu item.
6. Click the Draw button place a site legend on the screen. The Site Legend editor will open.
The Legend has no configurable parameters; therefore, you need only click the OK button to finish drawing the legend
on the currently open page. An example of the Site Legend follows:
Note: VTScada makes it easy for you to change the display colors used in the Legend and for site symbols on the
Overview page. The application properties responsible for the colors used in the legend and for site symbols can be
found in Application Properties for Colors.
Program Spawn
Links a button on an application page to a specified external application (e.g. Microsoft Excel). When the button is
clicked, the specified application will run.
The Program Spawn tool can be accessed via the Site Tools Library. To do so:
1. Click the Configure button to open the Configuration Toolbox.
2. Click the Libraries button to open the Select Library dialog.
3. Select the Site Tools Library in the Select Library dialog.
4. Click the Draw button to view the tools in the Site Tools Library.
5. Click the Program Spawn button to place a Program Spawn button on the current page.
6. The Program Spawn Editor graphic editor dialog opens. An example is displayed below.
7. Enter the full path and name of the .exe file you want to run when the button is clicked.
8. Provide a label for the button in the Button Text field
9. Click on OK to complete the process.
If the label is to include an ampersand (&), then the & character will need to be doubled in order to appear.
Contains a collection of tools that help you monitor various aspects of your application.
Custom Libraries
A right-click on the "Drawing Tools" node in the Configure dialog will open a context menu with a single entry: New.
You can create your own library entries, into which you can add your own User Drawing Methods. As you accumulate a
number of these methods, you may find it useful to organize them into new libraries.
The New command opens the following dialog, here showing a new library called "Monitoring Tools" about to be
created.
After clicking on OK, the tools library will have a new entry as shown in the following image. Note that the entries will
always be in alphabetical order.
A sample of the Graphic Editor appears below. This is what you would see if drawing an arc:
Other shapes will have slightly different menu options. For example, rectangles and ellipses have a fill property;
therefore their version of the Graphic Editor will include that option. Pipes do not have outlines, but they do have color.
Pressing the Cancel button, or the X in the upper right corner, will close the dialog box and discard any of the changes
you have made.
Indicator dots:
All the dots are initially grey. This indicates that none of the properties have been changed from their default values. For
each property you modify, the related dot will change to green.
In the example below, a fill color has been set. Note the green dot beside Fill as well as beside the word Ellipse. These
indicate properties that have had values set.
Expanding Menus:
Some menu items expand to display more options. In the next image, both Scaling and Movement have been expanded.
If one item within an expanding menu is set, both its dot and the dot at the top of that topic will also change color, as
shown below for Scaling.
Note: Not all the properties in the menu will have all three control levels. For example, scaling provides a choice of only
"None" or "Advanced".
• None - In the case of fill or outline, this is equivalent to "transparent". Otherwise it means "default value".
• Simple - You will be able to change one option - normally whatever is most common for that property such as the
color for fill. Note that several properties skip this control level, jumping directly from None to Advanced.
• Advanced - You will be able to control the property with several options. For example, with Fill this would include
setting a pattern and a background color as well as a base color.
Referring to the following image, every graphic property has a drop-down menu of control methods. The first choice in
each list is always the native data type for the value. In the example shown here, it is Color. For other properties, it might
be Width, Line Style or Tag Type as matches the property being set.
The following topics describe how to use each of the available control methods.
The tag selector button (shown circled) opens the tag browser, from which you can select any tag within the application.
Control by Expression
Choosing to control a property based on an expression will cause the following options to be displayed in the VGE.
In the example shown, the expression editor has been opened by clicking on the button shown circled. This expression is
examining the value of an Analog Input tag for a pressure monitor, named TankPressure. If its value goes above 80, then
the text will read “Pressure exceeds safe limits”. Otherwise, the text will read “Pressure within limits”. Note the tag
selector button within the expression editor window. It is often much easier to use this to select a tag than to type out the
name, which must be placed within [< >] brackets.
Above the button that opens the expression editor (circled in the preceding image) is a quick link to either the tag
browser (many expressions use tag values) or to an appropriate selector for the property being controlled. For example, if
the property is color, a quick link to the color selector will be provided for your convenience. The following image
shows where to find this link:
Control by Parameter
Properties can be controlled by named page parameters. The parameters cannot be created on the fly in the VTS Graphic
Editor – they must already exist and be defined in the current page instance before they can be selected.
Control by parameter can be a very useful tool when creating new drawing methods (i.e. user-defined groups) and
parameterized pages. It is not meant to be used to control an individual object on a page that will not be copied. For such
cases, a tag value or an expression provides more direct control over an object's properties than a parameter.
Please see: Working with Parameters to gain an understanding of how to use this feature.
Some parameters will have two levels, None and Advanced, while others will have three as shown. Where the parameter
is Fill or Outline, the control level, "None" can be taken as equivalent to "Transparent". For all other parameters, the
control level, "None" can be taken as "No change applied".
Note: You can change the default colors displayed for the fill and outline of the geometric shape tools using the
DefGraphicBColor and DefGraphicPColor application properties (see: Application Properties for Colors).
25 patterns are available, a listing of which is available in Fill Patterns. Referring to the figure below, the dark section of
a pattern will take whatever color is selected in the Color choice.
The light areas of the pattern as shown in the selector, will take on the background color, which is chosen in the same
way as the foreground color.
Note: You can change the default colors displayed for the fill and outline of the geometric shape tools using the
DefGraphicBColor and DefGraphicPColor application properties (see: Application Properties for Colors).
(Background image shows the Graphic Editor with the Advanced option selected.)
Both Editor and width provide the option of control via tag or expression, in addition to selecting directly from the menu
shown above. This is controlled with the button shown circled in the figure below
Being able to adjust the outline width in response to a changing tag value may be useful if you are also setting the scaling
property to adjust with a tag's value. This will allow you to set a narrower outline when the scale values are small and a
wider line when the scale values are large.
Note that the menu provides 5 ways that the object can be scaled: Left, Bottom, Right, Top and Overall. For the first four
options, each refers to which side of the object will be adjusted in response to a change in scale factor. In the case of
"Overall", the entire object will scale relative to its center point.
A change in scale does not affect the number of pixels used to draw an object's outline. The thickness used for the outline
will remain un-affected by a scale change unless the outline's width is also controlled by the same tag or expression. This
can result in outlines which look out of proportion to the rest of the object if there is a large variation in the object's size.
Refer to the section, VTS Graphic Editor: Advanced Outline Properties, for more information on adjusting the outline
width.
You have two options for limiting the motion of an object. First, you can override the tag's scaling by setting a Minimum
Value and a Maximum Value.
Setting a Minimum Value of 0 and a Maximum of 100 is equivalent to using the Tag Scaling.
Leaving the Minimum Value at 0 and adjusting the Maximum Value to 200 would be equivalent to scaling to 50%.
Setting the Maximum Value to 50 would be equivalent to scaling by double the distance.
You also have the option of setting a maximum number of pixels over which the object is permitted to move. A setting
of 0 means that the object cannot move.
Visibility can be controlled by a tag, an expression or a parameter, as selected using the button shown circled in the
figure below.
The example shown in the above figure uses a tag named “AI_001” to control the visibility. The rectangle will be visible
whenever when AI_001’s value is greater than 0.
Select Bitmap
Many graphic objects rely on an image file to provide their appearance and size. Besides the Bitmap images button in the
toolbox, you may need to select an image in order to draw a custom meter, a selector switch, the arrows for input sliders
and the image for an Image Change object.
In all of these cases, the VTS Graphic Editor will include a button labeled, "Select Bitmap" or "Set Bitmap".
Each image button shown here is a group - click on the type of image you are interested in to see a selection of related
images.
When the images within a group are displayed, the dialog will include a "Previous" button. You may click this to back
out of the group, should you wish to view the contents of another.
There are over 4000 images in the various image groups and you can easily add your own images. New images can be
added to existing groups, or you can create new groups.
Note: If you duplicate an existing VTS group name and provide a local thumbnail image for it (which is not optional),
the Select Bitmap dialog will then show the same group twice. They may have different thumbnails, but will contain the
same set of images - both the VTS set and your own. If your intention is to add new images to an existing group,
navigate to that group and use the Import button.
1. Click the New Group button at the bottom of the Select Bitmap dialog.
The New Group dialog opens.
Note that this overwrites only the local thumbnail image being used to represent your custom group, not the
group folder or the collection of files within it.
2. Use the Browse button to select a thumbnail image.
The image will be re-sized to fit the Select Bitmap display.
You can also create image folders by working directly with the bitmap files and folders, then using the Import File
Changes button in the VAM. This older technique may still be useful if you wish to change a local folder name, or delete
a folder. See: Adding Custom Graphics to VTS.
Note: Before proceeding with the following instructions, ensure that the Select Bitmap dialog and the Configuration
Toolbox are both closed. This allows the version control system to finish recording any file changes made with the user
interface before you begin to work directly with those files.
In the case of bitmap groups, the Bitmaps folder will contain both a sub-folder named after the group, and an image (in
the Bitmaps folder, not the sub-folder), also having the name of the group. New entries in the Select Bitmap dialog, both
groups and images within groups, are created based on the presence of that bitmap file.
Bitmaps and bitmap groups that come with VTS are stored in the VTS installation directory. You should not change the
files in the installation directory as later updates to your VTS installation may overwrite your changes. Always work in
the application's folder structure, or the folder for your application's OEM layer.
You can add your own images to the list of those available. See: Select Bitmap for instructions.
This editor also includes the Color Options control to allow you to adjust the hue and other color properties of the image.
See: Color Options - Adjust Image Hue.
The Select Color Range dialog appears as shown in the figure below. Select the range you want for the pipe.
Width
Pipe width is set in pixels, with an available range of 1 to 30. The default value is 7. Like all other display properties, the
width can either be set directly, or controlled by a tag value or an expression.
The current value is always the one shown on top when the list of widths is opened. For example, in this case the pipe’s
current width is 7 pixels.
By using an expression, you can create text messages that change in response to changing values in the application. The
example below shows an expression that checks the value of an Analog Input tag named Pr_AI1. When the value is
below 80, the message will read "Pressure within limits", but when the pressure exceeds 80 the message will change to
"Pressure exceeds safe limit". Used in conjunction with a changing fill color, this can provide a warning which is both
informative and easily spotted.
Text Font
Copy Tool
Note: VTS also allows you to use keyboard shortcuts to select, copy, and paste multiple objects, as described in
"Working with Objects".
The Copy Tool enables you to perform rapid application development in applications where multiple pages have similar
layouts, as you can copy objects on one page, paste them to a new page, and then reassign the tags associated with any
tag drawing methods.
You can use the Copy Tool to reproduce one or more selected objects as many times as you require. Simply select the
object(s) you wish to copy using the Pick Graphics tool or keyboard shorts, and then click the Copy Tool button. A
preview of the objects you have copied will be attached to your mouse pointer. Position the preview objects on the
application page and click to drop a copy. You can continue to position the mouse pointer and click to make as many
copies of the selected object(s) as you wish. When you have finished, right click to drop the last copy and deactivate the
Copy Tool.
Cut Tool
For deleting objects from a page, while placing them on the clipboard so that they may be pasted in again
elsewhere.
Note: VTS also allows you to use keyboard shortcuts to select, copy, and paste multiple objects, as described in
"Working with Objects".
The Cut Tool works the in a similar way as the copy tool except that it also removes the original object selected. It
enables you to perform rapid application development in applications where multiple pages have similar layouts, as you
can cut objects on one page, paste them to a new page, and then reassign the tags associated with any tag drawing
methods.
The only visible result of using the cut tool by itself is to remove the selected object(s) from the page. To reproduce them
elsewhere in the application you will also need to use the paste too, described in the next section:
Paste Tool
For inserting objects onto a page, where the objects had previously been placed onto the clipboard using either the
copy tool or the cut tool.
Note: VTS also allows you to use keyboard shortcuts to select, copy, and paste multiple objects, as described in
"Working with Objects".
To delete an object, select it using the Pick Graphics tool, and then click the Delete Object button to remove the
object from your page. You can also delete selected objects from you pages using the Delete key on your keyboard.
Note: In the case of tag drawing methods, when you delete a drawing method from your application page, you are not
deleting the tag associated with that drawing method. The tag can be drawn again using the same drawing method or a
different drawing method.
Drawing Arcs
To draw an arc, select the arc button from the configuration toolbox or from the page context menu.
The arc’s type may be either circular or elliptical depending on whether or not the imaginary bounding box is square or
not. To create a square bounding box, and therefore a circular arc, hold the shift key down on your keypad while
dragging the mouse between the first point and the second.
To draw a chord, select the chord button from the configuration toolbox or from the page context menu.
After selecting the Chord button, the arrow cursor will be replaced by a crosshair on the page. This is a prompt for you to
indicate where the chord is to be drawn. Do not spend time attempting to be precise in locating the chord, as it is much
easier to drop a chord of any size onto the screen, then adjust it later rather than attempt to locate it precisely when first
drawing it.
Referring to the illustration below, the process is to pick two points on screen, which will create a bounding rectangle,
within which the chord will be drawn. To create a circular chord segment, hold the shift key down while you pick the
two corner points. Otherwise, you can create an elliptical chord segment by picking the corners of any arbitrary
rectangle.
Drawing an Ellipse
To draw an ellipse, select the ellipse button from the configuration toolbox or from the page context menu.
The arc’s type may be either circular or elliptical depending on whether or not the imaginary bounding box is square or
not. To create a square bounding box, and therefore a circle, hold the shift key down on your keypad while dragging the
mouse between the first point and the second.
To draw a pie object, select the pie button from the configuration toolbox.
VTS can display vector-based and bitmap images with the following extensions:
• *.APM
• *.BMP
• *.CUT
• *.EMF
• *.JPG
• *.PCX
• *.PNG
• *.TIF
• *.WMF
Note: Images placed on the pages of your application using the Image button are not associated with tags. In order to
place a visual representation of the value of a tag on a page, you must employ the Tag Browser's "Draw" button. See:
Drawing Tags.
You may expand the range of choices by importing your own images. See: Import Bitmap Images.
Color indicator areas are useful when combined with the Image Change tag drawing method (see "Image Change
Drawing Method") or when the bitmap itself is used as a tag drawing method. In both cases, color indicator will change
color with the tag to indicate equipment status.
Note: a change to the hue of the overall bitmap also affects the color indicator area, making it difficult to achieve (255,
160, 0) as the final color.
Drawing Lines
When the Line button is clicked, the arrow cursor will be replaced by a crosshair on the application page. This is a
prompt for you to indicate where the start point of the line is to be drawn.
Note: Drawing a line by doing a left-click followed immediately by a right-click will result in a line of zero length being
drawn on the application page. This will not be visible, but it may interfere with attempts to select nearby objects later.
To draw a pipe, select the pipe button from the configuration toolbox.
Note: Drawing a pipe by doing a left-click followed immediately by a right-click will result in a pipe of zero length
being drawn on the application page. This will not be visible, but it may interfere with attempts to select nearby objects
later.
Drawing a Polygon
To draw a polygon, select the polygon button from the configuration toolbox.
Note: VTS will allow the segments of a polygon to cross. A sharp-edged hourglass is a perfectly valid polygon shape.
Drawing a Rectangle
To draw a rectangle, select the rectangle button from the configuration toolbox.
Please refer to Using the VTS Graphic Editor for instructions on using this dialog box.
Drawing Text
(see also, Drawing Multi-Line Text)
To draw text on a page, select the text button from the configuration toolbox.
When the Text button is clicked, the arrow cursor will be replaced by the words "Sample Text" attached to an arrow
cursor, as shown in the figure below.
Step 2: Set the text style options, including writing the desired text.
As soon as the sample text has been placed on the screen, the VTS Graphic Editor will be displayed. Selecting the box
labeled "OK" will result in the words "Sample Text" being created with the default font and color.
Please refer to VTS Graphic Editor: Options Unique to Text for instructions on using this dialog box.
Multi-Line Text is found in the Standard Library menu of the Drawing Tools library.
Step 3
The VTS Graphic Editor will open for the Multi-Line Text Object, as shown in the following image.
Undo Tool
Provides a way for you to reverse any mistakes you've made by undoing your last action.
VTS keeps in memory an almost unlimited record of all the actions you've completed. It also handles undo actions page-
independently; therefore, if you've made changes to more than one page, the undo action will only undo the actions that
apply to the currently open page. The other pages will remain unaffected.
You can also apply a redo operation if you should change your mind about undoing an action. Instructions on the Redo
tool appear in the section that follows.
Because VTS keeps in memory an almost unlimited record of all the actions you've completed, it can also redo
actions in the event that you decide you didn't wish to undo an action.
It also handles redo actions page-independently; therefore, if you've made changes to more than one page, the redo
action will only redo the actions that apply to the currently open page. The other pages will remain unaffected.
In the example below, the blue square will be moved to the top layer using the Bring To Front button.
1. 2. 3. 4.
The blue square appears Select the blue square. Click the Bring To The blue square is moved to
in the bottom layer. Front button. the top layer.
The Bring To Front tool works with the Send To Back tool to assist you in layering objects efficiently. The Send To
Back tool is described in the next section.
In the example below, the red triangle will be moved to the bottom layer using the Send To Back button.
The red triangle appears in Select the red triangle. Click the Send To The red triangle is moved to
the middle layer. Back button. the bottom layer.
In the example below, the yellow circle will change position so that it is evenly spaced between the blue square and the
red triangle.
1. 2. 3. 4.
The yellow circle appears Select the objects. Click the The yellow circle's position is
between the square and Horizontal Spacing adjusted. It now appears an
triangle. button. even distance from the square
and triangle.
You can also change the vertical spacing of selected objects using the Vertical Spacing tool. The Vertical Spacing tool is
described in the section that follows.
In the example below, the yellow circle will change position so that it is evenly spaced between the blue square and the
red triangle.
The yellow circle Select the objects. Click the Vertical The yellow circle's position is
appears between the Spacing button. adjusted. It now appears an even
square and triangle. distance from the square and
triangle.
In the example below, the blue square and the red triangle will change position so as to align with the left side of the
yellow circle. The shapes are framed within a box to help demonstrate their position.
1. 2. 3. 4.
The yellow circle Select the objects. Click the Align Left The blue square and red
appears furthest to the button. triangle adjust themselves to
left of the page. align with the left side of the
yellow circle.
1. 2. 3. 4.
The yellow circle Select the objects. Click the Align The blue square and red
appears closest to the Right button. triangle adjust themselves to
right of the page. align with the right side of the
yellow circle.
In the example below, the blue square and the red triangle will change position so as to align with the bottom of the
yellow circle. The shapes are framed within a box to help demonstrate their position.
1. 2. 3. 4.
The yellow circle Select the objects. Click the Align The blue square and red
appears closest to the Bottom button. triangle adjust themselves to
bottom of the page. align with the bottom of the
yellow circle.
1. 2. 3. 4.
The yellow circle is the Select the objects. Click the Align The blue square and red
most central object. Horizontal Center triangle adjust themselves to
button. align with the horizontal
center of the yellow circle.
In the example below, the blue square and the red triangle will change position so as to align with the top of the yellow
circle. The shapes are framed within a box to help demonstrate their position.
1. 2. 3. 4.
The yellow circle appears Select the objects. Click the Align Top The blue square and red
closest to the top of the button. triangle adjust themselves to
page. align with the top of the
yellow circle.
1. 2. 3. 4.
The yellow circle is the Select the objects. Click the Align The blue square and red
most central object. Vertical Center triangle adjust themselves to
button. align with the vertical center of
the yellow circle.
Group Tool
Combines a set of selected objects together into a named User Draw Method (DM). The original objects will be
replaced on the screen by an instance of the new object.
DMs make it easy to move, resize and copy multiple objects as one. The component parts of a DM can still be edited
individually, with the effect that every instance of the object will be updated to be displayed using the new configuration.
DMs that include tags use parameters to allow you to select a different set of tags for each instance of the object.
For example, the following image shows a DM that is made up of several components:
• an analog control, drawn as a slider
• a graphic image showing a scale
• an analog input displaying the feedback from the slider
As indicated by the selection highlight, all three objects are now treated as a single drawing object that can be moved and
re-sized like any other object.
For more information, see the topic: User Draw Methods. Objects that have been grouped can also be un-grouped. See:
Un-Grouping a Drawing Method.
Snap Grid
Note: You can also customize the behavior of the Snap Grid tool application properties. For further information, see:
Application Properties for the Snap Grid.
Keyboard
Shortcut Command Result
Ctrl + A Select All Select all objects on the active page/window.
Ctrl + C Copy Copy the selected object(s) to the clipboard..
Ctrl + V Paste Paste the selected object(s) to the active page/window.
Ctrl + X Cut Cut the selected object(s) from the active page/window.
Note: You can modify the properties of all selected objects by right-clicking one object and using the VTS Graphic
Editor. All the selected objects and their properties will be listed in the editor’s menu on the left side of the dialog box.
Further information on modifying the properties of a group of selected objects can be found in "Modify the Properties of
all Objects in a Selected Group".
Note: Once you've selected all objects on a page, you can copy and paste them to a new location using the other
keyboard shortcuts identified in "Working with Objects". Another option is to copy a page and its contents. For
instructions, please refer to "Duplicating a Page with Copy and Paste".
Shape Polygon
Provides a way to edit selected pipes, lines, arcs and other graphic objects by moving their vertices.
The image displays the handles that appear when you select an object using the Shape Polygon tool. Click and drag a
handle to reposition the matching vertex.
This tool is of particular interest when editing a pipe object since it will not otherwise distort the pipe as changes to the
handles would.
Resizing Objects
VTS provides you with the ability to resize objects freely or proportionally. In both cases, you use the object's handles to
resize it. The difference is that, in order to maintain the height and width proportion, you will hold down the shift key
while resizing the object.
2. Click and hold the mouse button on one of the object's handles. In the example below, an object will be resized
horizontally to the right.
3. Resize the object by continuing to hold down the mouse button and moving the mouse in the direction you wish
to resize the object. An outline is displayed to help guide you.
4. Release the mouse button. The object adjusts to the size you've indicated.
2. Click and hold the mouse button on one of the object's handles. In the example below, the circle will be resized
proportionally to be smaller.
3. Resize the object by continuing to hold in the mouse button and moving the mouse in the direction you wish to
resize the object. An outline is displayed to help guide you. The outline indicates that the object is NOT being
resized proportionally.
4. Press and hold the Shift key on your keyboard while continuing to resize the object. Do not release the mouse
button.
5. Move the mouse pointer out and in from the direction of the handle you've chosen while continuing to hold your
mouse button and the Shift key on your keyboard. The object's outline will indicate proportional resizing.
6. Resize the object according to your needs.
7. Release the mouse button. The object adjusts proportionally to the size you've indicated.
Note: When customizing VTS using the Settings file, properties that change the color of objects or other features require
numeric index values rather than the selection of colors from palettes. A color-coded list of the 255 possible values can
be found in the reference topic, VTS Color Palette.
Note: The option, "Transparent", will not be available in all instances. It is displayed only when "transparent" may be an
acceptable color choice.
Note: If you change the luminosity, and then select another hue, the luminosity will remain unchanged, unless the
luminosity had been set to zero (black) or 255 (white). If the luminosity is currently zero or 255, the act of selecting a
new hue automatically resets the luminosity to 128.
Red/Green/Blue Use these boxes if you know the numeric value of the desired color, as specified using this
color system.
Dynamic selector Click within the rectangle to select a Hue and Saturation value. Use the vertical slider to the
right to adjust luminosity.
Color
Displays the currently selected color and provides a button for accessing the Select Color dialog.
Width
Use the Width checkbox to select a number from 1 to 10, setting the width of the outline in pixels.
Style
Select a number corresponding to a line style for your geometric object. A "1" corresponds to a solid line (no pattern).
Line styles and their corresponding index numbers are described in Line Styles.
Sample
The Sample area displays a preview of the currently selected color, outline width, and line style.
Line Styles
If using the advanced option when setting the outline for a line, rectangle or other geometric shape, you will see a style
option. This can be used to select a line style that will be applied to your completed geometric object. There are 5 distinct
line styles from which you may choose, as shown in the reference chapter: VTS Line Types.
The first is the Hue slider. This allows you to offset the color scale such that the original color of the object will
displayed as a color further along the scale:
The following three images illustrate the effect of the hue slider where the first in the series is the unmodified bitmap,
Equip20.bmp:
Objects that are grey will not be affected by the hue slider unless you first use the Colorize Hue setting to give them a
color, and also adjust the Colorize Intensity slider to apply that color.
The other controls work as follows:
Saturation
Saturation is a measure of the purity of a color. An image with a saturation of 0 will be grey. If the saturation is increased
above 1, the colors in the image will appear more intense.
Brightness
Brightness is a measure of the strength of a color. An image with a brightness of 0 will be black.
Transparency
The slider for transparency is actually controlling the opacity of the object. The lower the setting, the less opaque and
therefore the more transparent the image will be.
Contrast
Contrast is a measure of the difference between colors used in the image. In a low contrast image, the colors will blend
together. In a high contrast image, the colors will stand out.
Colorize Hue
Grey-scale (and other) images can be colored by introducing a hue. Varying shades of grey will be tinged towards the
introduced hue in similarly varying amounts.
Colorize Intensity
Colorize Intensity defines how much color is introduced by the Colorize Hue. A setting of 0 means that no color will be
introduced.
Special Colors
VTS's color palette includes two special colors:
• Active Orange (241)
• Transparent Black (0)
Active Orange
One special shade of orange has been designed to react to the Image Change drawing method for tags.
The RGB values that combine to create this specialized orange shade are R=255, G=160, and B=0. This shade of orange
has been specially configured to be combined with the Image Change tag drawing method (available to digital input,
digital output, alarm, function and Modem tags) to display in color the state of the related tag. When the Image Change
drawing method is employed without the use of a bitmap for one or more states, the resulting color indicator will react
when placed over any image or portion of an image drawn using the active orange color.
The following image illustrates this action:
In this example, four simple squares have been drawn (using the rectangle tool), each in a different shade of orange
chosen from the VTS palette. The square on the lower left has been drawn using the active orange shade. The Image
Change drawing method was then used to draw a Digital Input tag. The Image Change object was positioned in such a
way that it intersects all of the orange squares.
As shown, only the square drawn using active orange reacts with the Image Change object to change as the value of the
tag changes. (In this example: red.)
This feature can be employed in a variety of different ways. For example, you might wish to use an area map, plant map,
or other background image that has been drawn using patches of the active orange color in specific areas. Having
selected the image as the background for a page in your VTS application, you may then overlay its active orange sections
using Image Change objects. The result is that these areas will change in color according to the value of the tags related
to the Image Change objects.
Another use is to create your own equipment bitmaps that have areas highlighted using the active orange color. You can
then add these equipment bitmaps to your VTS application directory, place them on your application's pages, and layer
them with Image Change objects. The result is that the delineated portions of the equipment bitmaps will change color
when the related tags change color. An example follows:
These images demonstrate the reaction of a bitmap that includes the active orange when combined with the Image
Change drawing method for a Digital Input tag.
1. A valve bitmap whose base has been drawn using the active orange color from the VTS palette.
2. An Image Change object (red) has been placed over the active orange shaded area of the valve bitmap.
3. and 4. The area of the bitmap, drawn using the active orange shade, now changes color according to the
value of the tag.
1. 2.
To create your own custom graphics that include transparent areas, use the transparent black color wherever you want
background objects on the page to show through.
Note: Never define parameters in an application’s default page. The default page opens independently of the menu and
the hotboxes, therefore there is no way to pre-define the tags to be used for its parameters.
Parameters can provide even greater efficiencies when used with custom drawing methods for parent-child tag structures.
These put all of the tags for equipment such as a pump controller, an engine or even a pumping station together in a
logical structure. Custom tag drawing methods can represent complete pieces of equipment with multiple I/O values
displayed and controls available.
By using parameters to link hierarchical tag structures to all of the elements of a custom drawing method, you can easily
add complete new units or stations without needing to configure and draw every separate tag that makes up that unit.
Pages can be given replaceable parameters that can then be used as a data source for the objects within the page. Each
added instance of the page can be given its own set of tags for those parameters. This allows you to create a page that can
be reused for a series of similar monitoring or control stations.
Note: If a page has parameters, and if tags have not been selected for those parameters, then any action that displays the
page will always result in a dialog box prompting for values.
There is no requirement that a tag or value be provided for every parameters, but any drawing objects that depend on
unspecified parameters, will not be shown.
Notes:
• You can edit, copy and delete application pages (those that you create) but not system pages (those such as the
Historical Data Viewer that are created by VTS).
• Hovering over the Pages node of the menu will cause a tool-tip to appear that provides a count of the pages in the
application.
• Hovering over a page node in the menu will cause a tool-tip to appear that tells you the name of the source file
where that page is stored. Since pages can have the same name, there will be times that the only way to tell one page
from another is to compare the names of the source files.
• Right-clicking on any node in the menu will produce a context menu with tools appropriate to that node.
Note that you can also see a list of all the pages, including the system pages, with the Menu Editor (see: Editing the
Menu).
To draw one page within another, start by opening the target page. That is, the page that will contain the smaller one.
Open the Libraries dialog and right-click on any page listed there.
Select Draw from the menu that opens. If you choose Draw from the "Pages" node at the top of the list of pages, a dialog
will open to allow you to select which page you want to draw.
After selecting a page to draw, indicate where, on the existing page, it is to be drawn. Only the portion of the drawing
area that is in use in the selected page will be drawn – no empty space will be included around the objects of the drawn
page.
Once drawn, the page is contained within a border that can be resized or moved like any other object.
Right-clicking on the drawn page will open a context menu. From here, if you select the Edit menu, you will open that
page inside a new window. Any changes you make will be reflected in all drawn instances of that page.
You will be prompted for whether or not to add the new page to the menu. Select Yes or No as appropriate. If you
choose not to add the page now, you can always do so later using the Menu Editor.
The page will be added, but not immediately opened for editing. In general, the next steps will be to configure the page's
display properties (see: Page Properties), then open the page for editing.
VTS will attempt to compile the page before it is imported; if the source file does not contain valid script code for a VTS
application page, a Compiler Error message will be displayed.
The import command will always make a copy of the selected page source file. If the original is located in the current
application`s Pages directory, the import copy will be given a unique name by having a number appended to the original
file name. Otherwise, a copy will be made of the source file, having the same filename as the original.
After clicking on the Paste command, you will be prompted for the name to be given to the new page.
The new page will be an exact duplicate of the original, but no connection is maintained between the two. The two pages
will be stored in separate files.
Note: A restart of the application is not normally required after adjusting the page defaults, but in rare circumstances
(possibly on a workstation that is out of sync. with its configuration server) you may see the message, “Some of your
changes will not take effect until you restart the application”. If so, stop the application and restart it.
Use Last Displayed Page If this box is checked then, the last page shown when the application is shut down will be the
first page displayed when the application restarts.
Page If Use Last Displayed Page is not checked, then the page specified here will be the first page to be displayed
whenever the application starts. A select box allows you to pick the start page from a menu of all the pages in the
application. (Dialog box shown in the following image.)
Parameter String The field displays the parameters (if any) that will be passed to the first page, if that page
includes parameters. To change the parameters click the "Change Parameters" button to open the parameter editor.
In the Configure dialog, clicking on the Pages node will cause all of the pages with the application to be shown. Right-
clicking on any application page will cause a context menu to be displayed, giving you access to all tools you need to
work with that page:
Draw
There are many situations where you might want to be able to see the information or controls that exist in one page while
looking at another. You can easily achieve this by drawing one page within another. An example showing how to use
this feature is provided in the topic, Use a Page as a Drawing Object.
Edit
Makes the selected page current so that you can draw and edit tags and other graphic objects on it.
Cut
Copies the current page to the clipboard and removes it from the application. To paste the page back into the application,
right click on the Pages node – you will find the paste function there. (See: Duplicate a Page with Copy and Paste.)
Copy
Copies the current page to the clipboard. As with the Cut function, you will find the paste function in the context menu
of the Pages node.
Delete
Removes the page from the application. If the page has been drawn on other pages, those instances will also be removed.
Properties
Opens the properties dialog. Please refer to the next topic, Properties of Application Pages for a discussion of what you
can accomplish with this dialog.
Changes to these values are stored in the associated page's source code file (\Pages\PageName.SRC).
Page Properties
This is the tab you will use most often when working with pages. Properties that you can set include the following:
Page Name:
Note: The page source file name will be taken from the initial page name, with all spaces and punctuation removed.
Changing the page name does not change the source file's name.
Background
If Use Color is set, you can then click on the Set Color button to select a background color for the page. In general, it is
best to use a background color that is light and of a neutral shade. Since text and lines are black by default, they will not
show up well against a dark background. Garish color choices for the background will likely cause eye-strain among
operators of the application.
If Use Bitmap is set, you can use the Set Bitmap button to select a bitmap image to use as the background. This image is
selected from the VTS Select Bitmap dialog. You should first copy the image you want to use into the
Bitmaps\Backgrounds directory of your application before using this tool. Allowable file formats include *.APM,
*.BMP, *.CUT, *.EMF, *.JPG, *.PCX, *.PNG, *.TIF and *.WMF.
Bitmap Margin
Enabled only if Use Bitmap has been checked and a bitmap image chosen. This set of controls allows you to adjust the
size and position of the bitmap on the background by adjusting the margins (measured in pixels) around the bitmap. The
larger the margins, the smaller the bitmap image. Position is adjusted by making one of each pair of margins larger than
the other. For example, increasing the left margin while decreasing the right margin will move the image to the right.
An optional checkbox allows you to enable margins in windowed pages as well as in normal pages.
New Thumbnail
VTS will attempt to create a thumbnail image of the page, to use as a visual reference when you are working with the
page later. If the page is large or complex, the thumbnail may not be very clear. For this reason, you can use the New
Thumbnail button to select any image from your Bitmaps directory to use instead. Like bitmap backgrounds, it is
recommended that you copy a graphic image to the \bitmaps\backgrounds directory of your application before using this
button.
Remove Thumbnail.
If you selected your own thumbnail image, you can use this button to remove it and allow VTS to again attempt to
provide its own image of the screen as a thumbnail.
Note: Never define parameters in the application’s default page. There is no way to select the tags that will be used for
these parameters when the default page opens. You would therefore see the Edit Parameters dialog every time the
application restarts
Note: Avoid using any name that might conflict with a VTS reserved word. To be safe, adopt a naming convention that
adds a distinct identifier to every name (for example "MA_Name" for My Application...)
The checkbox "Hold Page Button Changes Target" is a function, not a decoration. When enabled and when you have
page buttons on the task bar as shown in the preceding example (Station Control and Overview) then you can replace one
button for another by the following steps:
1. Open a new page using the menu
5. Move the pointer over a button that you want to replace for a link to the current page.
6. Click-and-hold the mouse on that button for three seconds.
7. The link to the old page will be replaced with a link to the current page.
Background
Sets the default background color for pages in the application.
Bitmap Margins
When using a background bitmap on a page, you can use these values to set the top, bottom, left and right margins for
that bitmap.
By default, the margins apply only to full-screen pages. You also have a choice of using the margins for windowed
pages.
The configuration shown will result in a yellow rectangle that users can click to open the page that has been associated
with it (Station1 in this example).
Note: As you place the hotbox on the screen during development, it will show as a simple rectangle. When the
application is running and an operator hovers over the area, the hotbox will appear as a shaded region.
Note: The Page Hotbox drawing tool is much the same in appearance to the Set Value Hotbox drawing method for
Digital Output tags (see "Set Value Hotbox Drawing Method") ; however, its behavior is distinctly different. When the
Set Value Hotbox drawing method is clicked, it changes the value of the related Digital Output tag. Because the
appearance of the Set Value Hotbox tag drawing method and the Page Hotbox tool are similar, it would be prudent to
configure each with a distinct color to signify to operators that they are different tools.
The input field will vary according to the type of parameter - text, checkbox, tag or number.
You can control where each field will look to find the value for the parameter. For example, a numeric parameter for the
page could be given a specific number, or you could choose a tag, a page parameter, a drawn tag property, etc. A
description of each choice follows:
• Tag (If the parameter is of type tag)
This feature is similar to, but more powerful than that of the menu editor (see: Edit the Parameter Values of a Page).
Both features allow you to create multiple links to one parameterized page, each link opening that page with its own set
of parameter values. The additional feature provided by the page hotbox is that, when a page hotbox is placed on a
parameterized page, parameters from that page may be specified for use as the values for the destination page’s
parameters. This powerful feature allows parameter values to be communicated across pages.
You may leave parameters un-assigned in the page hotbox dialog. The result will be that, each and every time an
operator uses this hotbox to open the page, they will need to set the data source for the parameters.
Unlike the page hotbox, the Page Button will always be visible as a labeled button on the page.
If the label is to include an ampersand (&), then the & character will need to be doubled in order to appear.
If the destination page has parameters (see: Working with Parameters.), you may configure the button to provide values
for those parameters.
Values for the parameters may be provided from any of: The native parameter type (tag, numeric, text, etc.), a tag value,
an expression, or a parameter from the page that the button is being added to.
You can find this button in the Standard Library. To add one to a page, right-click on the Page Close button in the library
and select Draw from the context menu.
Drop the button on a page – the graphic editor will open to allow you to configure the labels.
All of the pages listed above are referred to as “System Pages”. Excepting the Call-out List page, these are pages that
you cannot delete, rename or modify, and therefore they are not shown in the Pages list of the Libraries dialog. All are
available to be added or removed from the menu.
In addition to system pages, there are also “Application Pages”. These are the pages that you create as you build the user
interface for your application. You are free to add, edit and delete application pages as needed and without limit.
Overview Page: VTS provides one application page, named “Overview", in every new application. You can use
Overview as the starting page for your operator interface.
Note: If you wish to view communications data for individual RTUs, click the Comm button appearing on the
appropriate RTU's station page. (To open a station page, click the appropriate station symbol on the Overview page.)
A second exception to the above is the case of a station with a Digipeat path. In this case, the Send will start with the
address of the station it is repeating through, followed by ‘RD’ and then the station address of the RTU being polled.
The third character in the Send message is the module number. Here, “1” will indicate module A, “2” indicates module B
and so on, except for “R” which indicates a Radio module.
There is one exception to this pattern: A “0” in the third character position of the Send indicates that a Full Station Read
is being requested. All modules in the station should reply with their status, where an “x” will indicate “No Change” and
a “y” will indicate “Change”.
Normally if a reply indicates that there has been a change, a Send request will go to that module to request its new value.
The final character in either a Send or Reply is a check-bit. This may be any printing character, including punctuation.
This is the only character in either the Send or Reply that should ever have punctuation: a character other than a letter or
number in any other position is a sign of communication errors.
Note: Clicking the Freeze button does not stop data from being communicated; it merely freezes the display for closer
scrutiny. Data continues to be transmitted and received while the Freeze button is depressed.
Shortcut Keys
Press the Ctrl + Print Screen shortcut keys to create a screen capture of the page.
Open a Microsoft Word document or a graphics software file.
Site Map
A Site Map is a dynamically-loaded map, primarily used to show the location of any of the following site-related tags:
Polling drivers, DataFlow RTU drivers, MultiSmart™ stations, MPE™ Duplexer stations, or MPE™ SC stations. You
can also link a Context tag or a user-created type derived from a Context tag to a map by adding the properties "Latitude"
and "Longitude" to the parameter list. (See: Context Tags)
The map is sometimes referred to as a "slippy map" because of the way it can be moved within its frame. Operators can
pan and zoom to change the area displayed.
The map display is built of "tiles" - static images. At each higher magnification level, four times the number of tiles are
used for a given area. As the operator moves the display or changes magnification level, new tiles must be downloaded.
Once downloaded, they will be cached locally on your computer. These tiles are not distributed with VTS, therefore
your server must have an active Internet connection in order to be able to download tiles that have not been cached.
It is possible to switch from map view to satellite view, or to a different map provider. See Change the Map Type.
A Site Map is built into every automatically-generated lift station details page and into the Site Details page. (See: Site
Details Page and Station Pages). You can also add Site Maps to your application using the Site Tools Library, or the
Menu. Instructions are provided in the sub-topics of this article.
Any instance of the tag types listed above can be located on a Site Map as a pin. Operators can click on the pin to open
the associated Site Details Page.
The primary site associated with a map will be marked by an animated bubble. The head of the marker pin uses the same
color-indication system as the Site Draw Drawing Method, and described by the Site Legend.
Control Action
Show All Sites A checkbox to enable or disable pin display for sites other than the root.
Update Site Location After clicking this button, the next click within the map area will re-locate the site.
Magnification Control A slider between (+) and (-) buttons. Provides a way to increase or decrease the
magnification (zoom level) one step at a time.
Click on any pin Opens the details page for that tag, as appropriate for the type.
Click and drag Relocate the focus of the map.
Mouse-wheel Zoom in or out.
Double-click Zoom in, one step, at the location clicked.
(*) Some controls will not be available, depending on how the map is viewed.
Note: Rather than use the default cache, you may set an independent source for the map tiles with
MobileSlippyMapTilesSource1 in your SETUP.INI file.
See: MobileSlippyMapTilesSource1.
Note that the map is drawn within its own window, which will have a higher z-order than the page it is being placed on.
The result can be loss of part of the VTS header or footer if the map is larger than the page.
The Graphic Editor options for a Site Map drawn this way, are as follows:
Parent
The station tag instance (and any child tags that also have valid latitude and longitude values) that is to be the primary
target of this site map. All sites shown will be marked by a pin, but the root site will be further indicated by an animated
dot.
Use Theme
Choose whether the borders of the map should follow the VTS color theme
Text Color
Specify the color to be used for the labels below the map.
Note that satellite tiles may not exist for all magnification levels.
1. Stop VTS
2. Using a text editor, open the file, Setup.INI
3. Change the property SlippyMapRemoteTileSource1 as follows:
SlippyMapRemoteTileSource1 = http://otile1.mqcdn.com/tiles/1.0.0/sat/
Key Details:
• Image Size: The image should be between 10x10 and 20x20 pixels in size.
• Transparent Edges: If using an image that is not already in the VTS library, set all parts that should be transparent to
pure black before importing. (RGB value, 000000.)
• Pin Center: The center of the new site pin's bounding box will be used as the pin location when shown on a map.
The center is calculated based on all graphics that make up the whole.
• Automatic Scaling: The drawing method should be given a numeric parameter named, ZoomLevel.
• Pulse Beacon: The animated spot that marks the active pin on a map is created by adding a Pulse Beacon from the
Site Tools Library. Ensure that the Pulse Beacon is sent to back so that it does not obscure the other parts of the pin
image.
Example:
1. Open the Libraries dialog, and expand the menu to show User Draw Methods.
2. Right-click to Add a new method.
8. Set the name to "ZoomLevel", and the type to any of the numeric options. A description is recommended.
9. Save the new parameter and close the properties dialog.
10. Right-click on the new DM and select Edit from the menu.
11. When the tag browser opens, select any existing site tag to use during the editing session.
12. When prompted, set the ZoomLevel parameter to 18 (the maximum value). Ignore the other parameters.
13. In the Drawing Method Editor, remove the questionable data marker (yellow diamond).
14. Add the bitmap image(s) that you wish to use for the pin.
It is recommended that you add a Pulse Beacon from the Site Tools library. After adding this, select it and then
click the Send to Back tool in the configuration toolbox.
You may wish to add a Site Draw to the pin. This provides a visual indication to operators, showing the status
of the site and also allows them to click on the pin to open the related Site Page.
16. Do so by drawing any of your sites as a Site Draw within the Drawing Method Editor.
17. When the VTS Graphic Editor opens, select the Tag option from the menu.
18. Change the tag source from "Tag" to "Drawn Tag Property".
19. Select the relevant drawn tag type from the drop down menu. (Select only the parent, Drawn Tag, not any of the
properties or variables.)
Sites Page
The Sites (or "Site List with Map") page is a system page that you may choose to add to your VTS menu or to a Page
Hotbox or Page Button.
A Site Map is built into the Site List page, but operators can choose to display it or not by clicking the checkbox, Show
Map.
A "site" is defined as any of the following tags: Polling Driver, MPE Duplexer, MPE SC Series, MultiSmart, DataFlow
RTU, and ScadaAce. Context tags can also be associated with a Sites Page by the addition of a property named
"StationPageName". To represent the Context tag as a pin on a Site Map, it must also have the properties "Latitude" and
"Longitude".
Sites page: (illustration includes four example sites). As you move the mouse pointer over each site in the list, its marker
pin on the map will be highlighted with a dot.
Each time you create a new Polling Driver or a new Data Flow RTU driver tag for your application, VTScada
automatically creates a station page for the new station.
Station pages are launched when the station symbol for the Polling Driver or Data Flow RTU driver tag is clicked. You
may change the page that is launched when a station symbol is clicked (i.e. you may open a custom page you have
created for the station) by changing the station symbol's configuration.
To open the station dialog for a specific station, enter the station number in the Station Number field, and then press the
OK button.
Note: If you have entered an invalid station number (i.e. one that has not been assigned to the Poll Sequence Number
property of any Polling Driver or to the Station Number (RTU Address), Digipeat Route property of any Data Flow RTU
tag), you will receive an error message.
As discussed in the previous section, station pages display and provide access to information about the Polling Driver or
Data Flow RTU tag and its associated I/O tags. There are two ways in which you can open a station page:
• Click the station symbol associated with the station whose data you wish to view (while the application is in
operation mode); OR
• Press the F11 function key on your keyboard, and then enter into the Station Navigator the appropriate station
number.
Note: For a polling driver, the station number is the number that has been assigned to the Poll Sequence Number
property on the tag's I/O tab. For a Data Flow RTU driver tag, the station number is the number that has been assigned to
the Station Number (RTU Address), Digipeat Route property on the tag's ID tab.
I/O Data
Once you begin to configure input and output tags and associate them with your polling driver or Data Flow RTU tag,
VTScada will include them on the related station page.
The image below displays an example of a station page including I/O values.
As indicated in the previous section, there is a pre-defined order in which the tag types appear on a station dialog. The
illustration below shows this order.
Note: The station page still exists, but is considered obsolete, having been replaced by the newer Site Details Page.
If you would prefer to continue using station pages, add the property UseOldSiteDialog to the System section of your
application's Settings.Dynamic file, and set the value of that property to "1".
The manner by which the I/O associated with a polling driver or Data Flow RTU are sorted on a station page (i.e.
alphabetically or numerically) is controlled by the configuration of the Site Draw drawing method used to draw station
symbols.
To set the order of the I/O associated with a polling driver or Data Flow RTU alphabetically on a station page (sorted
alphabetically by each tag's Description property), follow the instructions included below:
Note: The instructions below will guide you through the process of drawing a polling driver or Data Flow RTU driver
tag on a page using the Site Draw Drawing Method, as clicking the resulting station symbol is the means by which a
station page or custom page is accessed. If you have already drawn the polling driver or Data Flow RTU driver tag using
the Site Draw tag drawing method, you may modify its settings by clicking the Configure button, right-clicking the
station symbol, and proceeding to step 8 below.
1. Open the page upon which you wish to draw the polling driver or Data Flow RTU driver tag as a station symbol
(typically the Overview page).
2. Click the Configure button to open the Configuration Toolbox.
3. Click the Browser button to open the Tag Browser.
4. Select Drivers from the Types drop-down list (the Drivers tag group appears quite far down in the Types drop-
down list).
5. Select the Polling Driver or Data Flow RTU driver tag representing the station that you wish to draw, and for
which you wish to establish the order of the I/O on the associated station page.
6. Click the Draw button. The polling driver or Data Flow RTU driver tag drawing methods will be displayed.
You may now click the station symbol you just drew to view the associated station page. The I/O will be sorted
alphabetically in the appropriate portions of their respective columns (i.e. Analog status tags from a-z by Description,
and then Pulse Input tags from a-z by Description in the first column. Digital status tags from a-z by Description, and
then Pump Status tags from a-z by Description in the second column. Finally, Digital Control tags from a-z by
Description in the third and fourth columns).
Note: The station page still exists, but is considered obsolete, having been replaced by the newer Site Details Page.
If you would prefer to continue using station pages, add the property UseOldSiteDialog to the System section of your
application's Settings.Dynamic file, and set the value of that property to "1".
The manner by which the I/O associated with a Polling Driver or Data Flow RTU tag are sorted on a station page (i.e.
alphabetically or numerically) is controlled by the configuration of the Site Draw drawing method used to draw station
symbols.
To set the order of the I/O associated with a Polling Driver or Data Flow RTU tag numerically on a station page (by the
Display Order configured for each I/O tag), follow the instructions included below:
Note: The instructions below will guide you through the process of drawing a Polling Driver or Data Flow RTU driver
tag on a page using the Site Draw Drawing Method, as clicking the resulting station symbol is the means by which a
station page or custom page is accessed. If you have already drawn the Polling Driver or Data Flow RTU driver tag using
the Site Draw tag drawing method, you may modify its settings by clicking the Configure button, right-clicking the
station symbol, and proceeding to step 8 below.
1. Open the page upon which you wish to draw the Polling Driver or Data Flow RTU driver tag as a station
symbol (typically the Overview page).
2. Click the Configure button to open the Configuration Toolbox.
3. Click the Browser button to open the Tag Browser.
4. Select Drivers from the Types drop-down list (the Drivers tag group appears quite far down in the Types drop-
down list).
5. Select the Polling Driver or Data Flow RTU driver tag representing the station that you wish to draw, and for
which you wish to establish the order of the I/O on the associated station page.
6. Click the Draw button. The Polling Driver or Data Flow RTU driver tag drawing methods will be displayed.
7. Click the Site Draw button. The Site Draw dialog will open similar to the one displayed below.
Note: The station page still exists, but is considered obsolete, having been replaced by the newer Site Details Page.
If you would prefer to continue using station pages, add the property UseOldSiteDialog to the System section of your
application's Settings.Dynamic file, and set the value of that property to "1".
When an alarm has been triggered for a station, the centre of the associated station symbol will flash red to notify
operators of the alarm condition. Additionally, an alarm siren will sound.
To respond to alarms for a given station, follow the instructions below.
1. Ensure that your application is in operational mode (i.e. the Configuration Toolbox is closed, or its No Tool is
selected). You cannot respond to alarms while in development mode.
2. Open the station page of the station for which one or more alarms is being indicated (as indicated by a flashing
red station symbol). As you can see from the example below, three alarms associated with this station have been
triggered, are highlighted in the alarm list, and are indicated on the drawing methods for the associated tags
(these flash red to indicate unacknowledged alarms).
In the menu editor, this page is listed as "Lift Station Page". It is a parameterized page, for which you must select a
Station tag and other display parameters.
The Station pages use the information from a Station tag to create complete monitoring and control displays for your
pumping stations.
Each station tag can be drawn using a Station Icon drawing method or a Station Summary drawing method, both of
which provide a link to these automatically-generated pages. You could also create a menu entry, hotbox or hot button to
open one of these pages, providing the correct station tag as a page parameter.
The Station page is an assembly of various monitoring and control drawing methods for the associated station tag. Each
component is described in the following sub-topics. The specifics will vary according to whether the station is a
MultiSmart, MPE SC series or MPE Duplexer, but most components of the pages will be found for all types of station
tag.
The number of pumps displayed will match the configuration of the associated Station tag. When a pump is running, it
will be shown in green.
The current water level is represented by the shaded background and the numeric display. High and low alarm setpoints
for the pumps are shown by the red lines with matching numeric values.
The current flow, both in and out, is displayed as well as a trend of the past 24 hours, showing well level and alarm
levels.
Pump Control
Provides a Hand-Off-Auto control for each pump in the station.
Station Summary
The Station Summary varies according to the type of station tag.
For the MultiSmart Station, six operational profiles may be defined in the Setpoints tab. Profiles are used to store lead
and lag setpoints to be used under varying operating conditions such as storms, drought, etc. The profile selection in the
summary page shows which is active and allows you to select which to use.
If your station uses the Modbus protocol, only the profile number will be shown. If using the DNP3 protocol, you will
see the profile description displayed.
Operating notes may be added using the + button. This opens the standard VTS notebook dialog. Use these to create a
permanent record of operational and maintenance tasks.
For comparison, the station summary pages for the MPE Duplexer Station and the MPE SC Station are shown in the
following images. Note the lack of a Setpoints tab for the MPE Duplexer Station. The MPE SC Station has a Setpoints
tab, but only a single profile.
Station Statistics
An extensive collection of statistics is collected and displayed for each individual pump, the station as a whole, and the
well.
Tabs across the top of the display provide access to different sets of statistics. The number of tabs and the statistics
gathered will vary with the type of station controller.
Within any tab, statistics are grouped by item of equipment (pumps, well, station as a whole). The number of equipment
items shown will vary depending on your screen size. If there is not enough room to show all items, a scroll bar will be
provided so that you can select which set of statistics to view.
Station Inputs
Provides a list of all input tags associated with the station. The list is divided into two pages - digitals and analogs
(digitals shown below). For the digitals, a color dot indicates the tag's value: green is used for zero, red for one and gray
indicates 'no data'. The analog tags are shown with their current value.
The Menu Editor consists of both a toolbar and a menu structure. When used together, both the toolbar and the menu
structure enable you to create menus and submenus for your applications.
Note: You can also create page navigation features using the Page Hotbox or the Page Button.
VTS automatically creates 3 pages when you configure a new application: a system page, the Historical Data Viewer
page, and the Alarm page. Although the application page you add using the New Application Properties dialog is added
by default to the application's menu, the Historical Data Viewer page and Alarm page are not. You can add them to the
menu structure using the Menu Editor.
Each time you create a new page, or copy or add an existing page using the Configure dialog, VTS queries you as to
whether you wish the page to be added to the menu.
If you choose to add the page to the menu, the page will be added to the menu's root. This function streamlines the
development of your menu structure.
The table below identifies and describes the tools available in the Menu Editor's tool bar.
Note: You can add text that will be displayed along the left side of the menu when it is expanded. Use the application
property, MenuSystemTitle. See: Application Properties for details about setting a value.
To add a page to the menu, click the Yes button. If you do not wish the page to be added, click the No button.
You can also add pages to the menu manually, using the Menu Editor's Add button. To do so, follow the instructions
below.
1. Open the Menu Editor using the Menu Editor button that appears in the configuration toolbox.
2. Select the menu item under which you wish the new menu item to be added.
5. Click the OK button. The selected page is added to the menu as a menu item.
3. Click the Divider button (shown below). A divider menu item is added to the Menu Editor under the selected
menu item.
You can now reposition menu items under the sub-tree by clicking and dragging, or you can use the Add button to add
new pages as menu items for the sub-tree.
Note that changing the menu entry text causes a dialog to open, asking if you want to modify the title of the associated
page. If you do so, it will change the title of the page for all other menu entries that call that same page.
You can edit the values associated with a page's parameters by first selecting the page, then clicking the parameters
button:
If the selected page does not have parameters, you will see the following dialog:
For each parameter defined in the page, the following will appear:
• A bitmap graphic that indicates the parameter's type
• The name of the parameter
• The description of the parameter below that.
• Either an edit field where you can type the value, or a tag selector.
You must provide values of the right type. For example, providing text to a parameter that expects a number will cause
the following error message to be displayed:
Open the Page Properties Dialog for a Selected Page from the Menu
Editor
You can open the Page Properties dialog for a selected page from the Menu Editor. To do so, double-click the page's
entry in the editor. For further information about the Page Properties dialog, see the topic, Page Properties.
To close the menu item without adding a page as a menu item, click the Cancel button or the X in the upper right corner.
Note: Tags were originally referred to as points. This term is antiquated but may still be found in some contexts.
A tag is a software component that can communicate with objects in the physical world. For flexibility, each tag type is a
specialized component that can be combined with other tag types to build diverse systems. For example:
• Port tags handle communication between the VTS server and the outside world, whether through a serial port or a
TCP/IP port.
• A specialized driver tag is available for nearly any brand of PLC hardware. Driver tags rely on port tags in order to
communicate with the hardware.
• Input and output tag types, both analog and digital, monitor and communicate with individual addresses on the
remote PLC. I/O tags rely on driver tags to ensure that communications are properly formatted for the remote
hardware.
• Alarm tags and Logger tags can be linked to any I/O tag to monitor and record values.
The term, “communications chain” describes the linkage of VTS with remote hardware through the I/O tag, to the driver
tag, to the port tag. By choosing appropriate tags for each link in the chain, you can build VTS applications for nearly
any situation.
It is typical to begin each application you create by configuring a port tag to accept the data that is flowing through your
PC, and a device driver tag to provide an interface to physical I/O devices such as programmable logic controllers (PLC),
remote terminal units (RTU), I/O boards, or to Windows system features such as Dynamic Data Exchange (DDE). Once
you have these essential tags in place, you can create analog, digital and other tag other types to make your application
communicate with the outside world.
Each tag added to an application includes properties that uniquely identify it, and link it with the other tags in the system
to allow communication to occur. VTS stores all these attributes in a proprietary format that is under revision control.
Whenever you create a new tag, VTS generates a unique tag instance, based on the structure of the chosen type.
Tag Browser
The Browser button in the Configuration Toolbox, launches the Tag Browser dialog - one of the most frequently used
tools in VTS.
Productivity Tip 1: To quickly review the I/O address and the value of all tags of a certain type (for example, Analog
Status tags in a named area), check Show Children and filter the Tag Browser's display. As of VTS 10.1.06, the display
grid includes columns for both I/O addresses and Values. See: Searching and Filtering the Tag List.
Tip 2: You can select more than one tag at a time from the list. Use the Shift and Control keys while selecting, just as
you would when selecting several files in Windows Explorer™. The following operations are available for a selection of
more than one tag: Cut/Copy (optionally followed by Paste), Enable/Disable, Delete.
The tag browser is designed to work much like Windows Explorer, where tag structures are similar to folders and files
on your workstation. See: Parent-Child Tag Structures.
Every VTS application comes pre-configured with several tags that are used for basic functionality. These include Font
Style tags, Alarm Priority tags, and Notebook tags. VTScada-based applications will have even more. Therefore, when
you launch the Tag Browser for the first time, you will see these tags in the list. An example is displayed below.
The top bar displays the context of the tag you are viewing, within a tag structure. It works in much the same way as the
address bar in Windows Explorer:
The window to the right displays parent and child tags that can be found within the currently selected parent. Parent tags
within this list are displayed using a green font. You can right-click on any tag to open a context menu of functions that
apply to a tag, such as Delete, Properties, Copy, etc.
Instructions for using the Tag Browser can be found in the following topics:
• Add a new tag.
• Copy an existing tag.
• Modify the properties of an existing tag.
• Delete a tag.
• Create a parent-child tag structure.
• Searching and Filtering the Tag List.
• See also, Import and Export Tags.
Symbol Meaning
Has child tags. This is a parent tag.
Any tag instance that you have created. Not one of the built-in tags,
and not generated automatically like the child tags of a MultiSmart
Station.
An automatically-generated tag, in which you have over-ridden one
or more of the default parameter values.
Disabled. The start condition evaluates to False, or you have
explicitly disabled the tag. Visible only when the Show Disabled
option is checked.
Related Topic: Tag Field Colors.
Note: If you are using parent-child tag structures, only the immediate child tags of the currently selected parent will be
shown unless you check the Show Children option. Regardless of whether you have organized your tags into hierarchical
structures, the \ entry is considered the grandparent of all other tags.
The following filters are available. You may use any or all of these filters in combination.
If no tags match the filter parameters, or if you have used the address bar or tree window to browse to a tag that has no
child tags, then the main browser window will display the text, "There are no tags that match the current selection".
Note: You can direct VTS to restrict the loading of tags that belong to a certain area on specific workstations, and
therefore prevent them from appearing in the Tag Browser. See: Filtering Application Data.
Note: All filters work together. Be sure that each is set correctly to ensure that you locate the tag(s) for which you are
searching.
By default, when you first run a VTS application, the Search field displays an asterisk (*) indicating that all tags should
be displayed. A search string can consist of the full name of the tag, or parts of the name of the tag combined with the
asterisk (*) wild card character. You can use the asterisk wild card to stand for any combination of characters (i.e. * = 0
or more of). For example:
A* Return all tag names that contain an "A" as their first character (e.g.
"AnalogFont" or "AlarmPriority0").
*A Return all tag names that contain an "A" as their last character (e.g.
"WellA" or "Soda").
*A* Return all tag names that contain one or more instances of the letter
"A" (e.g. "AnalogFont" or "LabelFont").
Note: The Tag Browser's Search field is not case sensitive (i.e. entering "A*" is the same as entering "a*").
When you have finished searching for tags, you should reset the Search field by deleting all text or by entering an
asterisk (*), indicating that all tags should be displayed.
Note: The Types drop-down list works with the Search field and Areas drop-down list to filter the tag list. Be sure that
each of these fields and drop-down lists are set correctly to ensure that you locate the tag(s) for which you are searching.
When you first run a VTS application, the Types drop-down list is set to "All", indicating that all types of tag should be
displayed. You may select a type or a tag group by which to filter the tag list. Types are listed in alphabetical order in the
Types drop-down list, followed by tag groups listed in alphabetical order (see Tag Groups).
In the example shown below, "Alarm Priority" has been selected in the Types drop-down list, and the tag list displays all
the Alarm Priority tags for this application.
Once you've finished searching for tags of a specific type, or belonging to a specific tag group, you should reset the
Types drop-down list by selecting "All", indicating that all tags should be displayed. The orange highlight warns you that
a filter is still in effect.
Note: The Areas drop-down list works with the Search field and the Types drop-down list to filter the tag list. Be sure
that each of these fields and drop-down lists are set correctly to ensure that you locate the tag(s) for which you are
searching.
By default, when you first run a VTS application, the Areas drop-down list is set to "All", indicating that all types should
be displayed. You may select an area by which to filter the tag list.
Once you've finished searching for tags that have been configured with a specific area, you should reset the Areas drop-
down list by selecting "All", indicating that all tags should be displayed.
Further information may be found in: Filtering Application Data.
Tag Identification
Every tag has two forms of identification: A short, human-friendly name that you give it, and unique ID value that is
automatically generated. Throughout this help guide, the word "name" will be used, rather than "short name" or
"friendly name". In the places where the text refers to the unique ID, the term "unique ID" will be used. If you want to
see the unique ID value, hover the cursor over the name field in the tag browser:
Note: Any expressions or relationships between tags will need to be updated after a change of tag name since these are
based on the name parameter rather than the unique ID. See: Move and Rename Tags.
When tags are organized into a hierarchy, the name includes the parent tags. For example, if Pump1 and Pump2 both use
an Analog Status tag to display the flow rate, you are free to call both of those Analog Status tags, "Flow". VTS will
know that they aren't the same tag because a) the unique ID values will be different and b) the full names will differ:
"Pump1\Flow" versus "Pump2\Flow".
Note1: If your application was originally created in a version of VTS prior to 10.2, the unique ID will be the same as the
original tag name.
Note 2: VTS Programmers should note that there is yet another name: the Tag ID. This does not appear in the graphical
interface, but may be used in code. For example, the Tag ID may be used as an equipment serial number. You can edit
the value in this field by exporting the tag database to Excel™ or Access™.
See also:
Move and Rename Tags.
Use a Tag’s Value in an Expression.
Licensing
The version of VTS that you are running has been purchased with certain licensing restrictions that limit the number of
tags that may run at the same time on one computer. The number of tags for which your VTS version is licensed can be
found in the About VTS dialog that is opened when you click the About VTS button on the VAM (see: Learn About
Your Copy of VTS).
The tag limit counts all tags in all running applications. Disabled tags don't count. For example, if your version of VTS is
licensed for 10,000 tags, the combined total number of tags in all applications running at the same time is limited to
10,000 tags. A quick way to discover the total number of tags currently used in your application is to open the Tag
Browser and read its title bar. The Tag Browser's title bar lists the number of tags being displayed (according to the Type
The following is provided as a guide to help you choose the option best suited to your application.
Constant
Constant should be selected for any parameter whose value rarely, if ever, changes. A developer can return to the tag’s
configuration screen to edit the value, but otherwise ‘constant’ means ‘unchanging’. Select this option for all values that
should remain as you configured them.
Expression
Expressions are snippets of the VTS programming language that you can write to create values that change with
changing conditions. For example, you could create an expression that sets this parameter to the average of 3 or more
other tag values. Another expression might set a value of 0 when another tag’s value is below 50%, then set 100 when
the other tag’s value rises above 50%.
Select this option when you want the parameter’s value to be based on a formula, usually referencing other tag’s values.
The button opens the expression editor. The button clears the current expression. The word “: Invalid” means
either that no expression has been provided, or that the result of a calculation is meaningless, such as dividing by zero.
For a guide to the VTS expression language, see: Creating Expressions.
See also: Snapshot Expressions, which are used when configuring tag hierarchies.
Tag
Many parameters can take their value directly from another tag. That other tag might be an operator control for setting a
value, such as an alarm set point or delay. The selected tag need not be one for which you have provided an operator
input – any tag with a value can be used to set the parameter’s value.
Select this option when you want to have a parameter’s value match another tag’s value, such as when you want to
provide an operator with control over a value.
The link button is used with parent-child tag structures to control how the selected tag fits into the overall structure.
For more detail, see Parent-Child Tag Structures.
Control elements that resemble those from physical control panels, such as dials, buttons and sliders can be used to make
an interface that operators will immediately recognize.
Complete coverage of the various tag drawing methods can be found beginning with the topic: Drawing Tags.
For customers whose VTS license includes the Alarm Dialer option: Roster tags, which control the list of operators to be
contacted in the event of an alarm, are linked to tag areas. That is, a given roster will be used for all the alarms having the
matching area property and for no other alarms.
Areas can be used to reduce the amount of memory required to run an application or to stay below licensing restrictions
by allowing you to exclude certain tags from being loaded into your application at startup, on the basis of the area
configured for their Area property. This is done using the [AREAS] section of the Settings.Startup configuration file for
your application. See: Tag Area Filtering.
Areas can also be associated with user groups to restrict configuration access to part of an application when users are
connecting over the internet from a VTS Internet Client (VIC).
Before editing.
After editing.
If security has not yet been enabled, no user name will show in the history. Otherwise, the name of the user logged in at
the time the change was made, will be used.
Changes made to any field will show the latest modification date and the identity of the user logged in at the time (if
security is enabled).
Changes to tag configuration that result from importing a tag file will be attributed to the user who imports that tag file,
and therefore assumes responsibility for ensuring that what is being imported is correct. (See: Import and Export Tags.)
Related Topics: Calculate Tag Configuration Values - Snapshot Expressions, Tag Configuration Overrides.
Name
Add Start Condition
Remove Start Condition
Options for the tag name field are limited to start conditions. See: Conditional Starts and Disabled Tags.
If the field's value is not determined by code (that is, most fields) then the context menu allows you to add or remove a
snapshot expression. See: Calculate Tag Configuration Values - Snapshot Expressions.
Area fields in child tags are coded to take their value from the nearest parent with a defined Area. Simply changing the
value overrides the code, but the Add Override option allows you to lock the current value in place, overriding the code
with the value currently calculated by that code.
If an Override has been added using this menu, the next right-click will show the option, Remove Override. You can
select this to allow the field to take its value from the code within the tag.
Calculated fields are used extensively in the children of Station Tags.
VTScada Tags
Note that the following tags exist only in VTScada-based applications.
The ID Tab
Nearly every tag’s configuration panel will have an ID tab that includes the same four elements. All tags of all types
must be identified and all will share the same identifying characteristics: name, area and description. The fourth element,
Help Search Key, is provided for those who have created their own compiled help files and wish to link specific tags to
topics within that file. (See: Integrating Custom Help Files into VTS.)
Name
Tag names are discussed at length in the topic Tag Configuration Rules and Recommendations. If the tag is a child of
another tag, the parent names will be displayed in a separate area before the name field. See: Parent-Child Tag
Structures.
You may right-click on the tag's name to add or remove a conditional start expression.
Area
The area field is used to group similar tags together. By defining an area, you make it possible to:
• Filter for particular tag groups when searching in the tag browser
• Link dial-out alarm rosters to Alarm tags having a particular area
• Limit the number of tags loaded upon startup.
• Filter the alarm display to show only certain areas.
• Filter tag selection by area when building reports
When working with Parent-Child tag structures, the area property of all child tags will automatically match the
configured area of a parent. Naturally, you can change any tag's area as required. In the case of a child tag, the field
background will turn orange to indicate that you have applied an override.
The area name may be up to 256 characters in length. You may define as many areas as you wish and you may leave the
area blank for some tags (note that for Modem tags that are to be used with the alarm dialer system, it is actually required
that the area field be left blank).
To define a new area, type the name in the field. It will immediately be added. To use an existing area, use the drop-
down list feature. Re-typing an existing area name is not recommended since a typo or misspelling will result in a second
area being created.
There is no tool to remove an area name from VTS since such a tool is unnecessary. An area definition will exist as long
as any tag uses it and will stop existing when no tag uses it (following the next re-start).
Description
Tag names tend to be brief. The description field allows you to give each tag a human-friendly note describing its
purpose. While not mandatory, the description is highly recommended.
Tag descriptions are displayed in the tag browser, in the list of tags to be selected for a report and also on-screen when
the operator holds the pointer over the tag’s drawing method.
The description field will store up to 65,500 characters, but this will exceed the practical limits of what can be displayed
on-screen.
Complete details on configuring the alarm tab for any type are provided with the description of that type in this guide.
I/O Tab
All of the input and output, status and control tags will have an I/O tab in their tag properties folder.
The I/O tab consists of properties used to identify and establish a connection to the communication driver tag being used
to communicate with your physical I/O device. This is accomplished by identifying the communication driver tag, the
address at which this basic I/O tag is to read or write data, and the rate at which the I/O device should be scanned for
data. A manual data option is provided to allow you to set a constant value for the tag, independent of any actual I/O, for
configuration and testing purposes.
Scan Interval. In general, it is desirable to limit the number of different scan intervals for a particular IODevice, to
optimize the reading to a minimal number of blocks and improve overall system update performance.
Typical I/O tabs for both Analog Input and Digital Input tags:
Digital Input tags (including Digital Status and Pump Status tags) can have single or double bit addresses. Status tags
(analog and digital) will include extra configuration options.
Historian Tab
Status, Logger and some other types will have a Historian tab on their tag properties folder. This is used to select the
particular Historian database that will be used to store data recorded from the current tag. See: Historian Tag for
information about the configuration and use of Historians.
Typical Historian tab:
For output and control types, there is no "Quality Based On" field.
Questionable Data
Questionable Data is a means of indicating that the data being reported by a tag might not be accurate. By default, the
Questionable Data checkbox is selected for every new tag you create. This field is available for your convenience when
commissioning a new system. Before you have verified the accuracy of an I/O tag, the questionable data flag will be set
and a question mark will appear on the tag’s drawing methods.
After you have verified the accuracy of each tag’s data, you can un-check its questionable data marker, thereby keeping
track of which tags you have verified and which you haven’t.
Security Privilege
A Security Privilege may be applied to any tag that can write data. Using the drop-down list, you can select an existing
application-specific privilege that will restrict who is allowed to use this tag to write data. Once a value is set, users will
need to have that privilege granted to them before they can send a signal to an I/O device.
Application privileges are added using the Administrative Settings security dialog. Please see: Add Application
Privileges Using the Administrative Settings Dialog".
Order Tab
When you add a Status or Control tag (analog or digital) to your application, and associate this new tag with a Polling
driver, VTScada automatically adds a graphic representation of the tag to the I/O device's station dialog (that is, the
dialog that is displayed when the associated site symbol is clicked on the Overview page).
Station dialogs have four columns, with each column displaying I/O of a specific type. The first column on the left
displays graphics for the Analog Status tags associated with this I/O device at the top of the column, and graphics for the
Pulse Input tags associated with this I/O device at the bottom of the column. The second column displays Digital Status
tags at the top of the column, and Pump Status tags at the bottom of the column. The third and fourth columns display
output tags in corresponding pairs (e.g. On and Off). An example of a station dialog is displayed below.
Although you cannot change the order in which the columns appear, you can change the order in which the I/O appear
within their section of a given column using the Display Order property on the Order tab.
When you set the Display Order property for a tag, the number selected sets the tag's order in its column of the station
dialog in relationship to other tags of the same type (for example, the order of this Analog Status tag in relation to the
other Analog Status tags at the top of the first column).
If you do not specify a display order, tags will appear in their designated column in the order in which they were created.
Owner Tab
Input and Output tags, both analog and digital, have an Owner tab on their tag properties folder.
VTS supports the concept of owner/contributor (also referred to as container/contributor) relationships among tags,
where multiple contributor tags can supply their values to an owner or container tag. An owner tag's value is determined
by a mathematic function of the values of its contributor tags. An example of an owner/contributor relationship might be
at a power generation station, where the owner tag would calculate the overall power output for the entire station based
on the value of its many contributor tags. Within a contributor tag, you can select the owner tag and specify how the
contributor’s value should be used.
Note: You must write your own Owner tag. This requires a solid knowledge of VTS programming techniques. Reference
information can be found in Programming Custom Tag Types.
Owner
The Owner field can be used to specify a tag to which this contributor should supply its data. Establishing an
owner/contributor relationship also allows standard tags to monitor custom tags without prior knowledge of the number
of each type required.
The owner tag may keep track of different aspects of each contributor's data, from the presence of a user-defined manual
data value, to questionable data, according to the configuration of the checkboxes appearing beneath the Owner field.
These checkboxes also determine the way that this contributor tag's value should be used in the owner tag's calculations.
The Engineering Units property of the I/O tab is used to identify the unit value associated with the scaled value.
Script Tab
VTS includes a specialized standard type of tag called a Script tag. Script tags reference a script within a module, and
execute the code when the value of the associated tag changes. Script tags can be associated with this tag using the Script
tab. (Script tags and their properties are described in Script Tags).
Script Contributors
The Script Contributors list identifies the name(s) and description(s) of the existing Script tag(s) that will execute a script
based on the value of this tag (Script tags and their properties are described in Script Tags). The associated Add button
and Delete button may be used to modify the Script Contributors list.
Note: Any Script tags identified in the Script Contributors list are not properties in this tag; rather, this tag is a property
of the Script tag(s), as identified in the Script tag's "In Tag Scope" property (see Script Tag Properties: Execute Tab).
Add
Opens the Tag Browser so that you can select an existing, or create a new Script tag to monitor the value of this tag.
Information on the configuration of Script tags can be found in Script Tags.
Delete
Address Select
I/O tags that have been configured to use the SNMP driver or the OPC Client driver will have access to an Address
Select dialog through a button on the I/O tab of their configuration dialog.
Example of an Analog Control showing the MIB button, visible only after an SNMP driver has been selected as the I/O
device.
For a full discussion of how the MIB button can help you to build an SNMP address, please see the topic, SNMP
Addressing. OPC addresses are described in OPC Client Driver Addressing.
Group Log-enabled
Name Name in exported tables Context type memberships variables
Port Tags
SerialPort SerialPort *Port Numeric, Ports, Value (integer)
Trenders
TCP/IP Port TCPIPPort *Port Numeric, Ports, Value (integer)
Trenders
UDP/IP Port UDPIPPort *Port Numeric, Ports, Value (integer)
Trenders
IP Network IPNetworkListener *Port Numeric Value (byte)
Listener
Driver Tags
A filter in the tag browser won’t stop you from adding a new tag, but it may interfere with your ability to see that tag in
the list after it has been added.
There are several ways to add a tag so that it becomes a child of another.
Method 1: Right click on the tag that is to be the parent, then select New Child from the context menu. This may be
done either of the Tag Browser's windows.
Method 2: Navigate to within a parent tag structure, then click the New button.
Method 3: Copy an existing tag, then Paste as Child to create an identical instance under another tag (which either is, or
will become, a parent). You will have an opportunity to provide the new tag with its own name, and in fact must do so if
the parent already has a child with the same name as that being copied.
Examples:
To move a tag:
7. Select the tag to be moved, in the Tag Browser
8. Right-click on the tag and select Cut, or click the Cut button.
... or ...
9. Right-click on a tag elsewhere in the hierarchy, under which you want to place the original tag.
10. Select Paste as Child
You will be reminded that references may need to be updated - see following notes on the effects of changing
the name.
11. Click Yes to acknowledge the message and complete the move, or No to cancel the move.
Note: The display in the tag browser may not refresh until you change it from one branch to another.
Note: If you have created a new type (tag definition), the names and locations of the tags within that hierarchy are part
of its definition. You may still move and rename tags, but the definition (and therefore all instances of the tag) must be
updated immediately after each change. A dialog will remind you of this and ask you to confirm the action before it takes
place.
Rule: Logged history, tags drawn on a page, reports, built-in alarms and network values are all associated with the tag's
unique ID, not the name.
Example 1:
You have an Analog Status tag named AAA, which has logged history and which is drawn on a page. You delete that
tag. You then create a new Analog Status tag and name it AAA.
The new tag has a new unique ID and therefore nothing that was associated with the old tag's unique ID will be
associated with the new tag's ID. This may surprise anyone who used older versions of VTS where tags were identified
only by their name.
Example 2:
You have created a new type of tag, ValveType. ValveType was created using two tags: a parent Context tag (Valve1 in
this example), and a child Analog Status tag named Flow.
You move Flow from Valve1 into WaterPipe by doing a cut and paste operation.
When asked whether you want to update type ValveType, you decide upon "No".
To start, right-click on any of a tag's configuration fields, then choose Add Snapshot Expression from the context menu.
(Note that you can also use this technique to remove the expression, thus allowing the field value to be directly
configured.)
Any valid expression may be used. You can calculate using values stored in parent tags, application properties, etc.
To access a variable, preface it with a backslash. If there is no ambiguity about the variable's location (that is, the
variable name exists only in the current tag, or in an immediate ancestor) then only the backslash need be used. For a
variable such as "Area" that will exist in both the current tag and the parent, add two dots in front of the backslash to
force the expression to look upwards to at least the immediate parent. (ex: "..\Area". Note that child tags are programmed
to automatically use the parent tag's area, making this particular example uncommon.)
The name of any configuration field in a parent tag may be used as the source for the value. Use quotation marks only for
text that should be used literally, for example as part of a string concatenation function.
In the configuration panel, fields that contain a Snapshot Expressions will be shown in blue so that you can spot them
easily. Hover over the field to see the expression and the time that the it was last saved.
Note: When specifying an absolute path from the top of the hierarchy, the path must start with "VTSDB\".
If the parent is a Context Tag with named properties, you can reference the value of any property using the same
backslash notation.
Related topics: Context Tags, Conditional Starts, Parent-Child Tag Structures.
When you override a parameter, the field will turn orange instead of green, signifying an override rather than a simple
configuration change.
Note: You can explicitly set a tag's start condition to False using the Tag Browser. Right-click on the tag select Disable
from the context menu.
In this example, it is assumed that the parent is a Context tag containing a variable named NumPumps, which can be set
for each instance of a station. This would be created in the Context tag's Settings dialog, as shown:
Disable Tags
You can disable any tag listed in the tag browser. The tag will stop running, and will be removed from view unless Show
Disabled is checked.
To disable a tag, right-click on it and click to remove the checkmark from the line, "Enabled".
You might choose to disable a tag if you do not intend to use it for a period of time, but you do expect to use it again and
therefore do not want to delete it.
The steps to create a new tag based on a copy of an existing one are as follows:
1. Click the Browser button in the Configuration Toolbox. The Tag Browser will open.
2. Use the Tag Browser’s searching and filtering capabilities to locate the tag whose properties you wish to copy.
Delete a Tag
Tags can be deleted using the tag browser.
Note: If you delete a parent tag, you will also delete all of its child tags.
1. Click the Browser button in the Configuration Toolbox. The Tag Browser will open.
2. Use the Tag Browser’s searching and filtering capabilities to locate and select the tag you wish to delete.
3. Right-click on the tag and select the Delete option from the context menu.
A confirmation dialog will open and request confirmation that you wish to delete the selected tag. If you delete
a parent tag, you will also delete all of its child tags.
4. Click the OK button.
If the Auto Deploy option is selected for the application, then this operation is complete. Otherwise, this will be
considered to be a local edit until you deploy your changes.
As an example, VTScada station tags (MultiSmart, MPE SC series and MPE Duplexer tags) make extensive use of child
tags - when you add one station, many child tags are created to handle I/O, alarms, setpoints and more. See: Station Tags.
A logical system to make use of this feature is to create I/O tags as children of the driver they are using. I/O tags are
designed to automatically link to the nearest parent driver, thereby simplifying configuration.
Note: A tag's full name includes the name of all it's parent tags, separated by backslashes. This can sometimes become
too long to display in a field, in which case VTS will abbreviate the displayed name. Hover the pointer over the field in
order to see the full name, displayed within a tool tip.
In the example shown, "*Driver" indicates the type of ancestor. "..\" enforces the rule that only an ancestor tag can be
used. "Modbus driver with virtual IO" happens to be the description of the first matching tag found of type, Driver.
If this Analog Status is copied to another parent, it will look for the first parent that is a driver of any type..
In the example shown, the calculation is referring to a sibling tag, AI_1. The fixed depth relative path in this example is
..\TagName
Absolute Path
Specifies the exact path to the selected tag, starting with the ultimate parent, VTSDB. All copies of the tag will refer to
exactly the same selected tag.
If you add child tags to any standard VTS or VTScada tag, you can also update that tag's type definition. For example,
you might add a Logger tag and an Alarm tag as children of an Analog Input type. All new and existing instances of that
type in the current application will include those child tags.
Note: The Context tag's type name must not duplicate any existing VTS tag type. An error message will be displayed if
the type name cannot be used.
To be safe, adopt a naming convention that adds a distinct identifier to every name (for example "MA_Type" for My
Application...)
The steps to create a tag type are as follows. A list of related topics is provided at the end of this page.
1. Create a Parent-Child Tag Structure and develop it fully.
• The Context tag's Type field must have a value, which will become the name of the new tag type. The name
must be valid for use as tag type name and must not match any existing tag type. If this condition is not met, an
error message will be displayed.
• The child tags should use snapshot expressions where possible in order to match field properties to each new
instance of the parent tag. Of particular note are the Area field and the Address field for I/O tags.
• It is recommended that the child tags do not have their Questionable Data flag set.
2. Right-click on the Context tag in the Tag Browser to open its context menu.
3. Select the option, Create Type.
A dialog will open to confirm that you wish to proceed with this action, and provide an opportunity to un-select
the default drawing method for new types, Tag List.
If the Context tag had been drawn using any user-created drawing methods, then those methods will be listed as
well. If you choose not to make those drawing methods available to the new type, then all instances drawn for
the original context tag will vanish from the pages.
A new tag type will have been added to your application, and the selected context tag will be converted to be an instance
of this type.
Creation of your own tag type definitions is an advanced operation, requiring knowledge of several VTS features. Please
refer to the following for further information:
Related Topics:
• Details about creating the structure for a new type can be found in Parent-Child Tag Structures.
• The Context tag was designed (in part) to be a template for new types. See: Context Tags.
• Maximum flexibility is achieved by configuring the child tags to use Snapshot Expressions and Conditional Starts.
• You can create your own custom drawing objects for the new tag type. This will allow you to draw the new tag type,
with all of its I/O, in a single step. See: User Draw Methods.
• Type definitions can be modified after being created. See: Update Type.
• Instances of your new tag structure can be broken apart into their individual tags. See: Disassemble Tag Structures.
Update Type
Any tag definition can be modified.
Besides updating a type definition that you have created, you could for example, add a Logger tag as a child of an
Analog Input, then update the Analog Input type. All Analog Inputs in the current application will follow the new
definition, gaining an attached Logger tag.
To update a type definition:
1. Create an instance of the tag in the tag browser.
2. Modify the child tags as desired.
Modifications to the parent's parameters have no effect on the type definition.
Allowed modifications include adding and deleting the child tags.
3. Right-click on the parent tag of the structure and select Update Type.
4. Confirm that you wish to proceed. The tag definition will be modified to include your changes, and all existing
instances of that type will follow the new definition.
If you need to add new properties to the settings tab of a Context parent, disassemble the structure between steps 1 and 2
of this process. (See: Disassemble Tag Structures)
The configuration panel of the same tag, after it has been turned into a new type:
This page allows you to work with the type's parameter definitions, rather than with values stored in those parameters for
a single instance of the type.
Options:
Remove Allowed only for user-defined types, and only if there are no instances of that type in the
tag browser.
Edit Applies if the original parent was a Context tag before the type was created. You can use
this to add, remove and edit the properties of that tag, using a dialog similar to the
Settings tab of a Context tag's configuration panel.
Sync Requires an existing spreadsheet or database, created using the Export button.
Synchronize will import any changes that were made in that file, modifying the type
definition within the application. What it does next depends on your choice of Import
Clean Up Options. If Update is selected, a fresh copy of the structure will be sent to the
external file, including an updated version number. If Delete is selected, the external file
will be removed.
Export Sends the structure of the selected tag to a file of the selected type, Access, Excel or other
ODBC.
If you intend to work with the tags in a spreadsheet or database, start by clicking the Export button.
An operating system dialog will open, to prompt you for a file name. The suggested name for the export file will match
the type name, but this is not required. The VTS_Reserved worksheet or table in the file contains the name of the type
that will be modified when the file is re-imported.
Note: Each type must be exported to, or imported from its own file. You cannot put two type definitions into one file.
All the child tags of the current type are exported, no matter how many generations deep in the structure. But, if any of
those child tags are themselves user-defined types, then their structure will not be included, since there can be only one
type definition per export. The exception to this rule is that tags with values that have been over-ridden will always be
exported.
Each entry will be named according to its place in the tag structure. In this example, SpecialPurposeTag has the
following structure (shown with an instance named "MyStation1").
In the export file, child tags are named relative to the parent. So, in this example, the TCP/IP Port worksheet will have
the following entry for the TCP/IP Port child named IO_Port. Since this is the first child in the structure, its name does
not include the top-level parent.
The Modicon Driver tag is a child of the TCP/IP port. It's worksheet name will reflect its place in the structure:
Note the doubled backslashes. A single backslash indicates the division between parent and child tag names, but the
spreadsheet program forces us to use the doubled backslash. See also: Relative Tag References & Snapshot Expressions.
And, so on for the two Analog Input types that are children of the Modicon driver in this structure.
You can add new child tags of any type to the structure, by creating entries in the appropriate worksheet or table, being
careful to follow the naming example shown here. You can also remove or modify any child tag's definition in the
structure.
Upon re-importing the file by using the Synchronize button, the file, the structure within the application will be modified
with your changes.
Version control applies to exporting and importing type definition files. The exported file contains a key that identifies
the application's current version number at the time of the export. VTS is able to compare the contents of the file being
imported to the definition of the type as it existed at that revision. Only differences between the file's current contents
and the type definition as it existed at the time of the export will be merged.
Some developers find that it is efficient to create or edit tags in a tabular format, such as a spreadsheet. This is
particularly true when there are a large number of similar changes to make. VTS makes it easy for you to export your tag
database to either a Microsoft Excel™ or Microsoft Access™ file, then synchronize the changes made in that file with
the running application. You may use other database formats via ODBC, but you will first need to configure a data type
conversion table for that database, to ensure that data is correctly copied in and out. See: Using an Unsupported Database
Format for Tag Storage.
Notes:
• If selecting the Excel format, the Microsoft Excel program must be installed on the computer. Microsoft COM
objects, provided only with a copy of Excel, must be present in order to create a spreadsheet that is fully compatible
with Excel.
• Tags that are created automatically as children of a complex type (those within a MultiSmart or MPE station, or
your own user-defined types) will be exported without configuration data that would be generated automatically
when the complex type is created. Override values will be exported for these values, and you may apply or remove
override values in the exported file.
• You cannot use the procedure described in this topic to modify the structure of a complex type by adding or
removing child tags. A separate tool exists for that purpose - See: Manage Types Using a Spreadsheet or Database.
• If you have custom tags with a large number of parameters, you should be aware of the following limits: If exporting
to Access, the maximum number of tag parameters is 256. If exporting to Excel, the maximum number of
parameters is 65,536. None of the tags built into VTS or VTScada approach these limits.
The export file will contain information that identifies both the application and its current version. This will be used by
the VTS configuration management system when synchronizing the modified database. Look for the table or worksheet,
VTS_Reserved. The synchronization process gives you the following option for what will happen to the spreadsheet or
table after you import it back to the application.
In general, it is best to work on an exported file that matches the current tag database. Importing an older file that does
not include recent changes, which were made within the application, may lead to errors.
Tags can be imported (synchronized) without re-starting your application. Note that if there are a large number of tags to
import or export, the operation may take a few minutes. The operation will be faster if the application is not running.
When you request either operation, a dialog will remind you of this:
The steps to either import or export tags begin with the same page in the Application Configuration dialog:
To export:
1. Open the Application Configuration dialog.
When exported to an external data file, each tag type will be stored in its own table or worksheet. Within a tag type table,
each instance of a tag will be stored on a separate row, with a field for each attribute of the tag. (See following example)
If a tag is part of a parent-child tag structure, the full name of the tag within the structure will be shown.
Note: If adding new tags, you must leave the field in column A blank.
Never change the value in column A for any existing tag (except when deleting an entire row).
To Import:
1. Open the Application Configuration dialog.
(Instructions_D2HLink_2006768)
2. Choose the database format to import from.
If ODBC, you must have already defined a Data Source Name (DSN) for your database using the Microsoft
ODBC Data Source Administrator.
3. Select the clean-up option.
Note: if you attempt to import tags that were exported from a different application, you will see an error message
warning you that the GUIDs do not match. The tags will not be imported. See: Importing Tags from One Application to
Another.
The name of each parent tag is part of the full tag name, where each parent name is separated from the next with a
backslash.
Relative tag references (common when defining a port or driver) will look similar to the following:
In Excel, Access and other programs, the backslash has its own meaning. Therefore, it is necessary to indicate that this
character should be treated as just a backslash and not use that other meaning. This is commonly done by doubling the
character:
A similar rule applies to snapshot expressions, except that here there can be both backslashes and equal signs to mark.
An extra leading backslash is used for both:
In any version 10 application, you can import the tags from an older application's Points.MDB file. The steps are the
same as those provided in the previous topic but, be aware of two potential problems:
• The file, Points.MDB stores tag instances, but not type definitions. If the source file used type definitions from an
OEM layer, then the destination application must also have access to that layer's code in order to use the tags.
• Conflicts between tag names in the older database and the current application may not be resolved the way you
would prefer. Since the older database has no version control information, VTS is not able to automatically
determine how to resolve a conflict between two tags of the same name.
Note that, after importing an older tag database, you must compile the current application (using the Import File Changes
button) before you be able to see all of the imported tags.
This is meant to protect your application in the case that the imported database may include type definitions that are not
present in the destination, or possibly a name conflict between the current and imported set of tags.
If you are satisfied that these two problems will not occur, and you are sure that you want to import the database, then
you need only remove the identifying information from the external tags database. This is stored in a table (or worksheet)
named "VTS_Reserved". After the GUID entry in this table is removed or set to "00000000-0000-0000-0000-
Port Tags
Driver tags need to know how they will communicate with hardware. Rather than build this information into the driver
tag, VTS provides Port tags, allowing your to define the communication details once, then use that information for
multiple drivers.
Port tags tell the VTS drivers about the nature of the physical connection (serial port, TCP/IP over Ethernet, or UDP) and
the required configuration details such as address, port number, transmission speed, whether a modem is attached, etc.
The MDLC_TYP.CFG file must be placed in your application folder, and imported to the application using VTS
configuration management. (see: Import File Changes or Manage Files with the File Manifest.)
The Motorola IP Gateway API is made available via a Component Object Module (COM) object,
ACEIPGatewayAutomation.exe. This will be installed on your system when VTS is installed.
The gateway will support 20 concurrent polling requests.
TCP/IP Address
Provide the gateway's primary address in this field. This must be in IPv4 format, rather than a named address.
If your application has been build on the ScadaAce layer, then the Motorola IP Gateway tag will include a Sites tab. This
should be used for adding all new ScadaAce sites. Note also, every application based on the ScadaAce layer will include
one Motorola IP Gateway tag, named GW.
Note: Serial port tags may use the same port for different purposes on two different PCs. This is achieved by the re-use
of serial ports on backup machines in remote applications.
Port Number
Used to set the number of the serial port that is to be used. The corresponding serial port number must be configured in
the Ports dialog box of the Windows Control Panel. The value should match your port number and be between 1 and
4096.
If the Use Modem checkbox is selected, the Port Number field will be disabled and the Phone Number and Modem
Initialization fields will be enabled.
Phone Number
When a modem is to be used, fill in this field with the phone number that the modem must call in order to reach the
remote system. Supply all the digits including area code, etc. Do not include spaces.
If the Use Modem checkbox is not selected, the Phone Number field will be disabled.
Data Bits
Select a number (either 7, or 8) specifying the number of data bits to use for each character. The 8 bit setting, matching
the size of a byte, is used for almost all devices. The 7 bit setting might be needed for older devices that require ASCII
values.
Stop Bits
Baud Rate
Set the baud rate (bits per second) at which data should be transmitted.
Parity
The Parity section enables data quality verification based on one of the following parity formats. It must be set to match
your device configuration.
• No Parity - select to suspend parity checking for this serial port. By default, the No Parity checkbox is selected.
• Odd Parity - select to use the odd parity mode of parity checking in which the number of mark bits (1's) in the data is
counted, and the parity bit is asserted or unasserted to obtain an odd number of mark bits.
• Even Parity - select to use the even parity mode of parity checking in which the number of mark bits in the data is
counted, and the parity bit is asserted or unasserted to obtain an even number of mark bits.
• Space Parity - select to use the mark parity mode of parity checking in which the parity bit is unasserted.
• Mark Parity - select to use the mark parity mode of parity checking in which the parity bit is asserted.
Echo
Select whether or not the transmitted data should be echoed in the received data.
If the Echo checkbox is selected, the driver should expect that the transmitted data will be echoed in the received data.
By default, the Echo checkbox is not selected.
RTS Keying
Check this box to select whether the driver should assert RTS (Request to Send) flow control while data is being
transmitted.
RTS/CTS (Request to Send/Clear to Send) flow control is typically used with all high-speed modems, or modems that
compress data.
Key Up Delay
The Key Up Delay property sets the delay in seconds prior to data transmission. The Key Up Delay field is only enabled
if the RTS Keying checkbox is selected.
The default value for the Key Up Delay property is 0.1 seconds.
For more information:
Please see Modem Tags for information on configuring Modem tags.
Port Sharing: Multiple drivers can share a Serial Port tag when it is in ‘serial’ mode. See:
SerPortDisconnectDelay.
TCP/IP Name/Address
The TCP/IP Name/Address field provides a space for you to identify the name or IP address of the server to which to
connect (for example, MyRTU.com, or 198.255.32.1).
Disconnect Delay
Specify in seconds or fractions of a second, the amount of idle time that should pass before the connection to the server
is terminated.
Warnings:
All UDP/IP port tags use an internal listener port to receive datagram responses. The is what the Local Port Number
defines (it is also used as the transmit port number).
The engine will automatically route responses back to the UDP socket stream if the remote IP address matches that of the
stream. This means that multiple UDP/IP port tags can make use of the same local port number (internally they share the
UDP port listener). This UDP port listener requires that the port be free, thus any conflict for use of the port runs the risk
of disrupting UDP/IP communications.
Take note of the following possible errors. Some may not cause problems until the next re-start of the application.
1) UDP/IP Port and IP Network Listener tag sharing the same port number.
The IP Network Listener tag uses a socket server to function. This can interfere with the UPD listener port used by the
UDP/IP port tag.
UDP/IP Name/Address
The UDP/IP Name/Address field provides a space for the name or IP address of the server to connect to (for example,
MyRTU.com, or 198.255.32.1).
Warning: The IP Network Listener uses a socket server to accept incoming connections. Improper configuration can
result in communications failure for UDP/IP Port tags that make use of the same local port number. Refer to UDP/IP
Port Tags for more information and further warnings.
Multiple Modicon and DNP3 driver tags can share the same IP Network Listener.
See also:
Modicon Driver Properties: Serial Tab.
DNP3 Driver Properties: Serial Tab.
(Characteristics available in the Table of Type Characteristics.)
Protocol
Select either TCP/IP and UDP/IP, as appropriate for the device your drivers will be communicating with.
Port Number
Define the port that be used for inbound connections. Ensure that your firewall has been configured to allow connections
to this port.
IP Allow List
As a security measure, this listener will accept connections only from the IP addresses you add to this list. A range of
allowed addresses may be defined by leaving portions empty.
Note: Please note that Trihedral Engineering Limited has many other communication driver tags available. Please refer
to the VTS driver library for further information (see VTS I/O Device Driver Library).
A publicly accessible variable, CommStatsTimeStamp, holds the most recent timestamp that was used to update the
above 7 variables and write them to a DAT file.
Two reports are standard for all communications drivers. The Driver Communication Error Detail Report and the Driver
Communication Summary Report. Both are described in “Reports Page: Types of Reports”.
Where
Q = Quality
qF = Quality Factor
Error is a Boolean stating whether the driver reported an error state.
The default Quality Factor is .99 & all drivers start with a default Quality of 1.
Every time the driver completes an operation, the quality is recalculated.
Thus, when it first starts and does a successful operation:
Q = 1 *.99 + .01*1 = 1
When an error occurs, Q = 1*.99 = .99
If a subsequent error occurs, Q = .99*.99 = .9801
If a subsequent success occurs, Q = .9801 *.99 + .01*1 = .980299
The quality value over time will reflect the drivers overall health. It should always be a value between 0 & 1.
Quality includes all errors including any low level errors, retries, or addressing errors.
Where
XmitTime is the time it took to transmit any data
RcvTime is the time it took to receive any data, based on
PLC Type
Select the type of Allen-Bradley PLC that this Allen-Bradley driver tag will represent. This may be one of:
• No Type Selected <default option>
• PLC-2
• PLC-3
• PLC-5
• PLC-5/250
• SLC-500
• ControlLogix
Note also: it may be necessary to adjust the timeout interval on the TCP/IP tab if using ControlLogix.
PLC Address
This field should contain the address of the Allen-Bradley programmable logic controller. One of the following 3 formats
is permitted. (Note that this address must be provided in octal.)
• 012 (octal)
• 034 0357 (octal with a bridge address)
• 1.2.3.4 (IP address)
The PLC Address field and the TCP/IP Address fields are linked, and therefore are completed simultaneously. When you
enter an address in the PLC Address field, the same address is automatically entered in the TCP/IP Address field on the
TCP/IP tab for this tag. Conversely, when you enter an address in the TCP/IP Address field, the same address is
automatically entered in the PLC Address field.
Time-Out Limit
Sets the receiver time-out limit (i.e. the time in seconds or fractions of a second that this driver should wait for a reply
from the PLC or RTU).
Retries
Select the number of attempts that will be made by this driver if there is no reply to a message, before an error is
declared.
ENQ Delay
Specify the amount of time (in seconds or in fractions of a second) that this Allen-Bradley driver should wait before
sending an ENQ in half duplex mode.
Note: Half duplex mode refers to the transmission of data in one direction at a time.
Hold
The Hold checkbox indicates whether this driver should hold data from the PLC or RTU in the event of a
communications failure.
If the Hold checkbox is selected, the last received value from the PLC or RTU will be held.
If the Hold checkbox is not selected, the data will be invalidated in the event of a communications error.
By default, the Hold checkbox is not selected.
BCC
Click this checkbox to select whether the BCC error checking method will be used on communication messages.
By default, the BCC checkbox is not selected (i.e. CRC error checking is used on all communication messages).
Note: The CRC acronym stands for Cyclic Redundancy Check, and the BCC acronym stands for Block Check Character.
Both are techniques used to detect data transmission errors. In general, CRC is a better error checking method, as it is a
16-bit error check, whereas BCC is an 8-bit error check
DF1 Mode
Enables you to choose between the following data transmission modes in communications from the driver to the PLC.
• Half Duplex: Half duplex mode refers to the transmission of data in one direction at a time. If the driver and the PLC
are communicating using the half duplex mode, either the driver or the PLC may transmit data at one time. The
device not communicating must wait until the device that is transmitting data is finished before it can transmit its
data.
• Full Duplex: Full duplex mode refers to the transmission of data by both parties simultaneously.
• Radio Modem: Certain Allen Bradley PLCs implement the Radio Modem Protocol (RMP) to optimize DF1
communication on radio modem links. The protocol is an enhancement of the Full Duplex Protocol and uses the
same message format with all the ACK and NAK responses removed.
Device Name
The name of the device being monitored by this tag. This is a unique name that must be entered exactly as it appears in
the Windows Device Manager’s devices list.
Note: To launch the Device Manager in Windows, click Start, and then click Control Panel. Double-click System. On the
Hardware tab, click Device Manager
Time-Out Limit On SD
The Time-Out on SD field enables you to indicate the amount of time (in seconds or in fractions of a second) that the
driver will wait for a reply from the PLC's SD card.
Retries On SD
The Retries on SD spin box enables you to select the number of retry attempts you wish to be made by the driver if there
is no response to a message.
Note: The TCP/IP Address field and the PLC Address fields are linked, and therefore are completed simultaneously.
When you enter an address in the TCP/IP Address field, the same address is automatically entered in the PLC Address
field on the Type tab for this tag. Conversely, when you enter an address in the PLC Address field, the same address is
automatically entered in the TCP/IP Address field
TCP/IP Port
The TCP/IP Port Number field refers to the port number on the host address through which communications are enabled.
This information should be available from your hardware specification. The default value depends on the PLC Type
selected.
By default, the Allen Bradley Driver tag will assume a length of 80 chars (the maximum allowed by the PLC). While
default value will work, this may impose a penalty on the amount of communication between the driver and the PLC.
Entering the exact length is therefore recommended.
Note: entering an incorrect value will most likely result in failure to read any records from a particular queue, therefore
you should only change the default value if you know the exact value.
Important Notes
When configuring the data-logging feature on the PLC:
• Make sure that both date and time stamps are being logged into the relevant queues.
Note: The above addressing scheme is applicable for all Allen-Bradley PLC's, regardless as to the model. (Where
necessary (e.g. ControlLogix), the PLC's processor takes care of mapping addresses internally.)
An example of the addressing scheme for Allen-Bradley drivers of the PLC-500 type is described below:
Note: For a list of all available data type suffixes that can be used for tag I/O addresses, please refer to Data Type
Suffixes for Tag I/O Addresses.
CalAmp Addressing
Data can be obtained by reading from predefined addresses. The radios generate an ASCII string containing the
diagnostic information.
An analog or digital tag should be configured for each item of diagnostic information. The address structure depends on
the type of radio.
• For Integra-TR and Integra-H, the address format is <radio ID>:<parameter>.
For example, to read supply voltage on radio 3, the address is “3:VOLT”.
• For Viper SC and Phantom II radios, the address format depends on whether the radio is in ROUTER or BRIDGE
mode.
• ROUTER mode: [IP address]:<parameter>
• BRIDGE mode: [MAC address]:<parameter>
For example, with a radio in ROUTER mode, a valid address might be: “[192.168.6.254]:VOLT”.
For Viper SC radios only, the source and destination radio addresses must be specified for the RRSSI and LRSSI
parameters.
For example, a valid address could be “[192.168.1.205],[192.168.2.1]:RRSSI”
Where the source radio is 192.168.1.205 and the destination radio is 192.168.1.2
Phantom II radios:
In addition, 2-dimensional arrays are supported, thus an array of any type listed above is possible:
• DINT[32] – a 32-element array of DINTs.
The ControlLogix family of PLCs also supports a structure. A structure is a collection of these atomic types. For
example, a Timer has the following fields:
• Timer.PRE – DINT
• Timer.ACC – DINT
• Timer.EN – BOOL
• Timer.TT – BOOL
• Timer.DN – BOOL
• Timer.FS – BOOL
• Timer.LS – BOOL
• Timer.OV – BOOL
• Timer.ER – BOOL
The VTS driver can read and write to all of the atomic data types within the structure. The VTS driver can also read a
stream representation of a structure; it does not have any knowledge of the contents of the structure. At present, the
driver cannot write an entire source.
It should be noted that even the atomic data types are themselves structures (of a special sort that can be read and
written). For example, an INT is actually an array of 16 BOOLS, 1 representing each bit in the INT. It is possible to read
and write a bit of an INT by addressing it correctly (i.e. INT_TAG1|INT will write to the least significant bit of
INT_TAG.).
This driver has the ability to save the last value written to each output tag, and to rewrite those values, either
automatically when lost communications are restored, or manually by the press of a button. Carefully review the
information in the Connection tab to decide whether this feature should be used in your application.
Note: The TCP/IP Port Tag should be usually be configured to communicate with the PLC on port 44818 (0xAF12). You
should confirm this against your PLC’s configuration.
Port
The Port field enables you to select the TCP/IP tag you wish to be associated with this driver (this will be the TCP/IP tag
that is representative of the physical TCP/IP socket to which the physical PLC or RTU is connected).
The Port field can be used to associate this tag with a new or existing TCP/IP tag using the button. This button opens the
Tag Browser, that displays only the existing TCP/IP tags for your application, and enables you to create a new TCP/IP
tag using its New button.
The Port field can be cleared using the X button that appears to its right.
Hold
The Hold checkbox indicates whether this driver should hold data from the PLC or RTU in the event of a
communications failure.
If the Hold checkbox is selected, the last received value from the PLC or RTU will be held.
If the Hold checkbox is not selected, the data will be invalidated in the event of a communications error.
By default, the Hold checkbox is not selected.
Retries
The Retries spin box enables you to select the number of attempts that will be made by this driver if there is no reply to a
message. An error will be declared after this number has been reached.
Note: The properties are part of the communications protocol. You must be familiar with the CIP protocols in order to
properly configure them. If the default values for these properties are enabling communications, don't change them.
Time Ticks
Use to specify the length of a time tick in milliseconds. (This value should be 2 to the power of n (where the user
supplies n)). The default value for the Time Ticks property is 6.
Note: When writing to an address in the PLC, a tag modifier must be specified in order to avoid Embedded Service
errors.
Examples:
Address Description
SetPoint Read the value of the tag SetPoint.
Analog_Data[4] Read the value of element 4 of the Analog Data Array.
Timers[6].PRE Read the value of the Preset Attribute of the 6th timer in the Timers
Array.
Inputs[5,9] Read the 9th Element of the Inputs 2 dimensional array.
Modifier Description
Address|BOOL Boolean
Address|SINT 8-bit signed integer
Address|INT 16-bit signed integer
Note: Data Flow RTU driver tags do not require Polling drivers since they have their own polling features.
Operators who do not have configuration privileges, but do have either “tag modify” or “manual data” security privileges
can toggle the active polling state on or off if this tag is drawn as a Comm Indicator on a page. When the operator right-
clicks on the Comm Indicator for the driver, a context menu will open, allowing the Active status to be changed.
When data is written to a Data Flow tag, it is immediately passed to the integrated polling feature and then on to the
associated communication driver tag. Following each write, all I/O addresses will be read immediately so that feedback
need not wait for the next polling cycle.
The Data Flow RTU driver can be represented on a Site Map.
(Characteristics available in the Table of Type Characteristics.)
Poll Interval
Enables you to set the amount of time (in seconds or in fractions of a second) between polls of the physical Data Flow
RTU.
Note: If the Active checkbox is not selected, the associated Data Flow RTU will not be polled, regardless of the interval
assigned in the Poll Interval (Sec) field.
Active
Allows you to specify whether the designated poll interval is active or idle.
If the Active checkbox is selected, the associated Data Flow RTU will be polled according to the interval assigned in the
Poll Interval field.
If the Active checkbox is not selected, the associated Data Flow RTU will not be polled, regardless of the interval
assigned in the Poll Interval field.
The active status can also be toggled by the operator if the tag is drawn as a Comm Status indicator. Right-clicking on
that drawing method will open a menu with which the operator can change the active status. When drawn as a SiteDraw,
the outer ring will turn purple when the driver is not active.
Retries
The Retries spin box enables you to select a number indicating the amount of times that VTScada will attempt to poll an
unresponsive Data Flow RTU, after which the system will move on to the next Data Flow RTU in the polling sequence.
Echo
Used if the Service Port Connection option has been selected. Enable or disable according to whether your device
transmits an echo for each transmit operation.
Module A, B, etc.
Use the Module fields to identify which module installed at a physical RTU by selecting a Data Flow module tags.
To associate this tag with a set of Data Flow module tags, click the drop-down field to select the appropriate Data Flow
module tag for each module.
Related Information:
Site Details Page
The DDE acronym represents the term Dynamic Data Exchange; an inter-process communication system built into the
Windows operating systems. DDE enables two running applications to share the same data. For example, DDE makes it
possible to insert a spreadsheet chart into a document created with a word processor; whenever the spreadsheet data
changes, the chart in the document changes accordingly.
Note: Specific instructions on configuring VTS as a DDE server and as a DDE client are provided in.
Note: Unlike the Modicon, Allen-Bradley, and Omron Host Link drivers|tag=Omron Host Link Driver Tags, the
configuration folder and common routines for the DDE driver cannot be customized.
IP Network Listener
Select the configured IP Network Listener tag that has been configured for this driver to accept TCP or UDP
connections. While a TCP connection is open, new connections will be rejected by the DNP3 driver.
If an IP Network Listener is configured, the Port tag must be TCP/IP or UDP/IP and be configured in client socket mode.
IP Allow
Used in connection with an IP Network Listener tag. General IP address filtering should be set on the IP Network
Listener, as this will be more efficient. The list of allowed IP addresses in the driver is intended to prevent misconfigured
devices from interfering with other devices.
Both filters (that in the Network Listener and this one) can be configured at the same time. The filter in the IP Network
Listener will be applied when the device first connects and the local filter will be applied after a specific driver instance
has been identified.
Retries
The Retries spin box enables you to select the number of attempts that will be made by this driver if there is no reply to a
message. An error will be declared after this number has been reached.
Hold
Select whether this driver should hold data from the PLC or RTU in the event of a communications failure.
If the Hold checkbox is selected, the last received value from the PLC or RTU will be held.
If the Hold checkbox is not selected, the data will be invalidated in the event of a communications error.
By default, the Hold checkbox is not selected.
Reconnect Action
Allows you to choose what action to take when a connection to an RTU is re-established. The default action is "None"
since the connection is usually re-established by VTS making a Read request. No additional action is required in this
case.
In rare circumstances an RTU may make the connection, then send no data. The Poll For Events option exists so that you
can direct the DNP3 driver to send a request for changed data when this occurs.
In older (pre-10.0.12) versions of the driver, a reconnect would always cause an integrity poll to be done. The Integrity
Poll option exists for legacy application support.
Examples:
1) To read a digital input with status (obj 1, var 2) at address 4321 use
1/1/4321.
2) To read a 32 bit delta counter without status (obj 20, var 7) at address 876 use
20/7/876
3) To write a latching digital output to off, (also known as a control relay output block) (obj 12 ,var 1) at address 42 use
12/1/42:LATCH
… sending a value less than 0.
For File Identifiers, I/O addresses are formatted in one of the two following manners:
Where:
• PathToFile includes the path for the file. This will include forward slashes for directories. The exact path will
depend on the outstation – see example.
• The optional parameter, Timestamp, is the timestamp for the file on the outstation in seconds since 1/1/1970, UTC.
The default is the current time of the I/O server (in UTC).
• The optional Permissions* are the permissions for the file. The default is 0777.
• Append is a flag indicating the behavior of the write if the indicated file already exists on the outstation. If TRUE,
the file will be appended to. If FALSE, the file will be overwritten by the new data. The default is false (no append)
* DNP3 File permissions are a set of 9 bits, indicating read, write and execute permissions for the user, group and world.
Normally written in octal, the value 0777 is "all permissions for all classifications". The exact meaning of the bits is
outstation-dependant.
The normal use for this will be from script via a Write command.
Example:
WriteObj = [SomeDriverName]\Driver\Write("70/5//data/newdata.txt", 1, &FileStrm, Invalid, "SomeText",
&Result)
Result will become valid once the file write has completed - TRUE for success, FALSE for failure. In addition, WriteObj
will become invalid on completion.
Where:
• PathToFile includes the path for the file to be deleted.
The normal use for this will be from script via a Write command.
Example:
WriteObj = [SomeDriverName]\Driver\Write( "70/5//data/newdata.txt,DELETE", 1, &FileStrm, Invalid, "SomeText",
&Result)
Note that some valid data must be provided as the data parameter (FileStrm) but it's contents are ignored.
Object Object
Object Description Type Variation Read Write
Single bit binary input all variations 1 0
Single bit binary input 1 1
Single bit binary input with status 1 2
Single bit binary input event all 2 0
variations
Single bit binary input event without 2 1
time
Single bit binary input event with time 2 2
Single bit binary input event with 2 3
relative time
Single bit binary output all variations 10 0
Single bit binary output status 10 2
Control relay output block 12 1
Binary counter all variations 20 0
32 bit binary counter 20 1
16 bit binary counter 20 2
32 bit delta counter 20 3
16 bit delta counter 20 4
*Event\change objects would not normally be configured as I/O addresses. They are listed to indicate that processing
support is provided them. Upon receiving an event\change object, the value of the corresponding static object will be
updated. For example, if 110/255/6 is configured and an event is received for 111/13/6, then the tag reading the first
address will be updated with the value from the event\change as they share the same index.
Static\event object pairs that follow this rule include:
The data values returned for the objects that may be read are listed below:
Index Element
0 The address of the point in the form Object/Variation/Address.
1 Value, after correction for any status flags. If the status is on-line, not
restart and not communication lost, the value will be as reported in the
event; else the value will be invalid.
2 The timestamp of the event.
3 The actual value before correction for status flags
4 The status flags.
For those events that return a time, the time will be as recorded in the device. For those events that do not return a time,
the time will be the local time when the driver received the message.
Time values are returned as a double, representing the time as the number of milliseconds since midnight, on 1/1/1970.
The data values that may be supplied for output objects are listed below:
Note to VTS programmers who are using the DNP3 driver in their code:
The following flags are available in the VTS layer of the driver and will be updated by every response from the remote
station:
Flag Meaning
IINTimeSync TRUE when Time sync is required by the Outstation.
IINLocalDO TRUE when some DO's in the Outstation are in local
control.
IINTrouble TRUE when an abnormal condition exists in the
Outstation.
IINRestart TRUE when an Outstation restart has occurred.
IINEventOverflow TRUE when Outstation event buffers have overflowed.
IINConfigCorrupt TRUE when Outstation configuration is corrupt.
(Characteristics available in the Table of Type Characteristics.)
Note: If a Polling driver has been configured under a DriverMUX, it will be disabled when it is not the current
subordinate. This has the following effects on your application:
• If there are two Polling drivers under the DriverMUX, only one will function at a time.
• An I/O tag will not read if it is configured to read only from the currently disabled polling driver. This includes both
the case of an I/O tag configured directly below the Polling driver, and an I/O address that is configured explicitly
for a particular driver using the format {}{addr}. (See: DriverMUX Addressing.)
• If one subordinate is a Polling driver, then both subordinates must be Polling drivers.
Allowing for the preceding list of considerations, Polling drivers that are subordinate to DriverMUX tags will work
normally, including those that are part of a polling group.
Selection Mode
Automatic allows the DriverMUX to switch between the primary and secondary drivers, using rules defined in the other
modes. (May be a constant, expression or tag that evaluates to 0.)
Sequence Mode
Primary Preferred. In this mode, the primary driver is used for all communication unless it fails, at which point
communication is handled by the secondary driver. When the primary driver comes back online, communication is
transferred back to it. (May be a constant, expression or tag that evaluates to 0.)
Sticky Mode. Similar to Primary Preferred except that communication continues to be handled by whichever driver is
currently in use until that driver fails. Upon failure of the active driver, communication switches to the alternate, where it
remains regardless of whether communication is restored to the driver previously in use. (May be a constant, expression
or tag that evaluates to 1.)
Parallel mode. In this mode, both drivers are used for communication on an as-ready basis. If one driver is busy with a
larger communication packet, the other driver will be used for all packets until the first is ready for another packet. (May
be a constant, expression or tag that evaluates to 2.)
Alternating mode. Both drivers are used in a strictly alternating basis. If the next driver in turn is still busy with its last
communication packet, further communications will be queued until that driver is ready for another packet. (May be a
constant, expression or tag that evaluates to 3.)
Secondary Preferred. In this mode, the secondary driver is used for all communication unless it fails, at which point
communication is handled by the primary driver. When the secondary driver comes back online, communication is
transferred back to it. (May be a constant, expression or tag that evaluates to 4.)
Failover Mode
Failover mode is of use in a remote application where backup servers are configured to handle communications in the
event that a primary server fails.
Switch Drivers First. In the event that communication is lost with the driver currently in use, switch to the alternate
driver. (May be a constant, expression or tag that evaluates to 0.)
Switch Servers First. In the event that communication is lost with the driver currently in use, attempt to switch to a
backup server to re-establish communication with that driver before switching to the alternate driver. (May be a constant,
expression or tag that evaluates to 1.)
Write Mode
By default, the driver multiplexer writes to only the currently active driver. If the drivers are connected to different
hardware devices, then it is possible that one device might not be synchronized with regards to registers that are used as
set points or other controls. This could cause unpredictable results in the case of a hardware fail over.
You have the option of forcing the DriverMUX to write to both devices.
Single Device. The DriverMUX tag writes to the currently active driver only
Both Devices. The DriverMUX tag sends all write requests to both the primary and secondary drivers.
DriverMUX Addressing
The address used by an I/O tag may or may not need to change when the DriverMUX tag switches between drivers. The
following three scenarios are provided to help you with I/O addressing.
Scenario 1: Two lines of communication are set up between a PLC in the field and VTS: one
uses radio and the other uses a modem.
In this case, tag addressing is simple: The address is defined by the PLC device and does not change with the
communication driver.
Note: MDS diagnostic driver tags are only required in applications where you wish to gather data about an MDS radio.
For example, a common arrangement might be an MDS radio connected to your PC, and a secondary MDS radio
connected to an RTU or PLC at a remote location. In order to collect data from the RTU or PLC, your VTS application
could use an appropriate communication driver tag (e.g. Allen-Bradley or Modicon), however, if you wish to gather data
about either MDS radios in such a scenario (e.g. the temperature of an MDS radio), your application will require an
MDS diagnostic driver tag.
Port
The Port field enables you to select the Serial Port tag or TCP/IP tag you wish to be associated with this driver tag.
In order to connect to MDS radio port with VTS, you can use one of several different hardware solutions:
• Serial port cable connected directly.
For this case, configure and select a Serial Port tag.
• Stand alone serial modem connected to the serial port on the radio.
VTS has its own modem that is used to dial up the modem connected to the radio. For this option, configure
and select a serial port that is using a modem.
• Ethernet terminal server connected to the serial port on the radio.
VTS is connected to the same network as the terminal server and can connect to it with either a TCP/IP or
UDP/IP port tag
Any type of VTS port tag may be used, but it must match the hardware connection to the radio.
Time-Out Limit
Set the time in seconds or fractions of a second that this driver should wait for a reply from the remote unit.
Retries
Select the number of attempts that will be made by this driver if there is no reply to a message. An error will be declared
after this number has been reached.
The following predefined addresses are available for digital tags (0 = OK, 1 = BAD):
RSSI.ERR RSSI status
SNR.ERR SNR status
TEMP.ERR Temperature status
CUR.ERR Primary supply current status
SVOLT.ERR Secondary power supply #1 voltage status
SVOLT2.ERR Secondary power supply #2 voltage status
SVOLT3.ERR Secondary power supply #3 voltage status
TXFPOW.ERR Transmit forward power status
TXRPOW.ERR Transmit reverse power status
LNACUR.ERR Low Noise Amplifier current status
Comm Channel
The Comm Channel section enables you to select a radio button indicating the communication channel and protocol to
use for this Modicon driver. The default communications protocol is Serial RTU. This will be one of:
• Serial RTU Select to use the RTU mode of the Modbus serial communications standard.
• Serial ASCII Select to use the ASCII mode of the Modbus serial communications standard.
• SA-85 (MB+) Select to use the Modbus Plus communications protocol via a Modicon SA-85 card.
• Embedded TCP/IP Select to use the Embedded TCP/IP protocol.
• Open Modbus TCP Select to use the Modicon Open Modbus/TCP specification to receive Modbus protocol over
Ethernet TCP/IP.
IP Network Listener
Select the configured IP Network Listener tag that has been configured for this driver to accept TCP or UDP
connections. If the IP Network Listener is configured, this driver must use Open Modbus TCP, configured on the
Options tab.
IP Allow
Used in connection with an IP Network Listener tag. General IP address filtering should be set on the IP Network
Listener, as this will be more efficient. The list of allowed IP addresses in the driver is intended to prevent misconfigured
devices from interfering with other devices.
Both filters (that in the Network Listener and this one) can be configured at the same time. The filter in the IP Network
Listener will be applied when the device first connects and the local filter will be applied after a specific driver instance
has been identified.
PLC Address
The station address of the Modicon programmable logic controller. By default, the PLC Address field is set to 1.
An expression may be used to provide the address if needed. This may be required on a network where the address varies
depending on the workstation where the tag is running.
Note that, to create a valid expression for an address that contains non-numeric characters, you must enclose the address
in quotation marks. e.g. “31.0.0.0” See: Modbus Plus PLC Addressing.
Time-Out Limit
Port
Enables you to select the Serial Port tag or TCP/IP tag you wish to be associated with this driver tag. A Serial Port tag
opens a serial port to enable communications between VTS and your PLC or RTU. A TCP/IP tag enables you to connect
to a series of hosts, allowing you to transmit data across a network or over the Internet.
The Port field can be cleared using the X button that appears to its right.
Squelch Time
Sets the amount of time (in seconds or in fractions of a second) to wait before clearing noise. Enabled only when Squelch
Noise Present has been selected on the Options tab.
Retries
The Retries spin box enables you to select the number of attempts that will be made by this driver if there is no reply to a
message. An error will be declared after this number has been reached.
Hold
The Hold checkbox selects whether this driver should hold data from the PLC or RTU in the event of a communications
failure.
If the Hold checkbox is selected, the last received value from the PLC or RTU will be held.
If the Hold checkbox is not selected, the data will be invalidated in the event of a communications error.
By default, the Hold checkbox is not selected.
Retry Delay
The Retry Delay field enables you to specify the amount of time (in seconds or fractions of a second) that the driver will
wait between attempts to repeat a transmission of data if the previous attempt(s) have failed.
By default, the Retry Delay field is set to 0 (indicating that there should be no delay between retry attempts).
Retries
The Retries spin box enables you to select the number of attempts that will be made by this driver if there is no reply to a
message. An error will be declared after this number has been reached.
Listen on Channel x
The Listen On Channel 1 through 8 checkboxes allow you to select the channels of the Modbus Plus network to which
the virtual PLC should listen. Please note that these do not apply to serial or TCP/IP connections.
Note: Please refer to Modicon Driver Addressing for information on Modicon addressing formats.
Note: when using numeric addressing, the leading digit is significant as it determines the I/O type. Any 4 digit numeric
address will be used as a Holding Coil address.
Older applications may have been configured using the text prefix addresses such that they were 0-based, i.e. the first
holding coil was at HC0. To permit old applications to work correctly, an application property flag
(ModiconTypedAddr1Offset) is used to set the base for text prefix addresses. The flag will default to 1-based (flag is
FALSE).
Bit Addressing
An individual bit in a register (either an Input Register or a Holding Coil) may be read or written (for Holding Coils) by
appending the address with "/x" where x has a value from 0 to 15 and indicates which bit is to be used. For writes, a
read\modify\write cycle is used on the register as the Modicon protocol does not have a bit operation function.
If you are working with long integers, append the text "/sdword" after the bit number. For example: "40050/1/sdword".
Float Addressing
If required, you can use floating point addressing with VTS. The process will require an adjustment to the way the
address is provided in order to reach the correct register.
Modicon registers are 16 bits wide. In order to get a float address you will need to read 2 sequential registers to get 32
bits. To do this, you will need to know the lowest register address of the pair. Note that this may be odd or even and
differs by device.
The address will be formed by entering the lowest address of the pair with the suffix of /FLOAT. e.g. IR9/FLOAT will
read the register pair at IR9 and 10, and return the combined value as a float.
Note that driver options determine how the 4 bytes in the combined register pair are ordered to form the float as this will
differ by device.
Note: For a list of all available data type suffixes that can be used for tag I/O addresses, please refer to Data Type
Suffixes for Tag I/O Addresses.
The expression to use for the PLC address of PLC (x) in the above example might be as follows:
This code says that, if the address is being resolved from server B, then use “20.10”, otherwise use “10”. The following
illustration shows how this would look in your tag configuration panel.
A necessary first step is to program the RTU driver to use the DLOG functions. The DLOG functions can log 8 fields
from any of 16 loggers.
For each set of 8 fields, VTScada requires one to be configured as a "Date and Time" field. It does not matter which field
is used for this purpose or even whether more than one is configured as "Data and Time". VTScada will simply use the
first one found in numerical order.
For the other fields, VTScada supports any of the data types that Control MicroSystems uses.
Configuring VTScada
To retrieve data from history, you must use either the Analog Status tag or the Digital Status tag. These two tags are able
to read both current data and historical data.
The history scan interval is measured in seconds and can be any integer value you wish. For example, to read every hour
you would enter 3600.
Tag Value:
If an address has been defined (standard address - not history address), the value coming from this address will always be
used to set the tag value, regardless of whether or not a history address is also defined.
If only a history address has been defined, and if the value read from the data logger has a newer timestamp than the tag's
current timestamp, then the value read from history will be used as the tag's value.
Scaling
A useful technique for maximizing the data being stored by the RTU is to not scale it at the logger level, leaving it as a
two byte integer. Scaling will be done in VTS after reading from the logger, using the tag's scaling properties.
Note: The tag performs a destructive read. Once the data has been read and saved, a log purge will be performed.
RTU ID
The identifier of the MDLC network that the RTU device was configured with.
RTU Type
Should match the RTU type, as specified in the API configuration file. This name will be found immediately after the
keyword, "Type", and just before the table definitions.
Hold
B3:2:1
Designates Table 3, Row 2, Column1 in Burst mode.
Burst mode may only be used if the RTU was programmed to communicate this way. Simply adding the B to the address
will not cause the RTU to push updates.
Burst mode applies only to data reads. After an initial poll the driver will wait for the RTU to report a change. The burst
option is ignored for data writes. A burst refresh interval is provided in order to periodically perform an explicit poll of
the RTU.
Note: The Omron driver requires that the PLC be in Monitor mode in order for writes to work.
This driver has the ability to save the last value written to each output tag, and to rewrite those values, either
automatically when lost communications are restored, or manually by the press of a button. Carefully review the
information in the Serial tab to decide whether this feature should be used in your application.
(Characteristics available in the Table of Type Characteristics.)
Port
Enables you to select the Serial Port tag or TCP/IP tag you wish to be associated with this driver tag. A Serial Port tag
opens a serial port to enable communications between VTS and your PLC or RTU. A TCP/IP tag enables you to connect
to a series of hosts, allowing you to transmit data across a network or over the Internet.
The Port field can be cleared using the X button that appears to its right.
Time-Out Limit
Sets the receiver time-out limit (i.e. the time in seconds or fractions of a second that this driver should wait for a reply
from the PLC or RTU).
Hold
Controls whether this driver should hold data from the PLC or RTU in the event of a communications failure.
If the Hold checkbox is selected, the last received value from the PLC or RTU will be held.
If the Hold checkbox is not selected, the data will be invalidated in the event of a communications error.
By default, the Hold checkbox is not selected.
Point To Point
Select whether the Point To Point protocol to be used by the Omron Host Link driver in communications with the PLC.
If selected, the driver will use point-to-point protocol (PPP) to communicate with the PLC.
Station
Enter the PLC station address in this field.
Retries
Select the number of attempts that will be made by this driver if there is no reply to a message. An error will be declared
after this number has been reached.
Omron Addressing
The addressing for Omron C-Series PLCs in VTS is made up of two parts, the memory area and the address. The address
string is made up of a two-letter memory designator and an unsigned integer value as outlined in the table below.
Where MM is taken from the first column in the table below, dddd is the register number, and BN is the optional bit
number.
The table below identifies the addressing values for Omron C-Series PLCs.
Channel
Prefix Description Digits Channel Bit
AR Auxiliary Relay 2 Yes Yes
TC Timer/Counter 3 Present Value Status (don't add digits)
T Timer 3 Present Value Status (don't add digits)
C Counter 3 Present Value Status (don't add digits)
DM Data Memory 4 Yes No
HR Holding Relay 2 Yes Yes
IR Internal Relay 3 Yes Yes
LR Link Relay 2 Yes Yes
SR Special Relay 3 Yes Yes
TR Temporary Relay 0 No Yes
EM Extended Memory 4 Yes No
The data types of the Omron registers are set by appending one of the strings listed below to the end of the address
string:
"/UWORD"
"/UDWORD"
"/SWORD"
"/SDWORD"
"/BCD4"
Note: For a list of all available data type suffixes that can be used for tag I/O addresses, please refer to Data Type
Suffixes for Tag I/O Addresses.
Note: If you have used the OPC client driver in versions of VTS prior to 8.1, you may expect to see a field for the
Automation ProgID. With the introduction of Trihedral's own OPC Automation DLL, which is used by default, you no
longer need to provide this information.
If updating an older application that did include Automation ProgID information, the existing id will still be
used, but will not be visible in the tag's configuration dialog.
Server Prog ID
The Server Prog ID field enables you to specify the program identifier (ProgID) for the OPC server to which you wish to
connect. This will be a string of the form Manufacturer.OPC.ServerType.
Note: The OPC Server vendor generally supplies the Server Prog ID; please refer to your OPC Server manufacturer's
documentation for the correct details.
Hold
In the event of an interruption in communication, this option will cause the last good value to be held. You should use
this option with caution since, unless there is another means to alert you to interruptions in communication, it will appear
that a valid value is still being received.
Clicking the OPC button opens the OPC Address Select tool. (Example shows a client connected to the Trihedral OPC
Server – your display will vary depending on the server that your OPC Client is using. )
Note that for the VTS OPC Server, there is no leaf for the "Value" of a tag. The tag node itself has the value attached.
The following is a basic example (not using the OPC Address Select tool) of using an OPC Client driver tag to read data
from an Omron C200H PLC via an OPC Server (in this example, an INGEAR Omron OPC Server version 2.25.0.1).
Note: There is no standard for OPC driver addressing. The following example covers only one possible configuration.
For your application, the definitive guide to OPC addressing will always be the documentation for the OPC Server in
use.
On the OPC Server (using the user interface provided by the manufacturer of the OPC
Server):
1. Create a device named Omron.
4. Create a group named MyGroup.
5. Create two items, Tag1 and Tag2.
6. Configure the tags with the correct addressing information for connecting to the Omron PLC.
Note: For a list of all available data type suffixes that can be used for tag I/O addresses, please refer to Data Type
Suffixes for Tag I/O Addresses.
Note: OPC security is handled by Windows via user and group security permissions set using the Microsoft Component
Services dialog and the COM Security tag of the My Computer dialog. Please refer to Securing an OPC Server for more
information on OPC security.
Only one OPC server may be defined per application. Attempting to define a second server in the same application will
result in an error dialog stating "An application can have at most one OPC Server Setup tag".
Note: Use of the same namespace for more than one application is strongly discouraged as it will cause significant
problems.
There are no drawing methods for this tag. When the OPC Server Setup tag has been created, the application’s OPC-
supporting tags become available on the VTS OPC server.
Please review the information provided in the chapter, OPC Configuration in VTS.
(Characteristics available in the Table of Type Characteristics.)
This driver has the ability to save the last value written to each output tag, and to rewrite those values, either
automatically when lost communications are restored, or manually by the press of a button. Carefully review the
information in the Options tab to decide whether this feature should be used in your application.
Protocol Type
ISO over TCP is the only protocol currently available.
Priority
Two priority levels are available: OP Mode (low priority) and PG Mode (high priority). Note that there may be a limit on
the number of PG mode connections which are available.
CP Type
If you are connecting to a Siemens PLC through a communications processor, select it here, otherwise select None.
Options include: CP-243, CP-343 and CP-443.
Port
Since the only protocol currently available is ISO over TCP, you should configure and select a TCP Port.
Hold
In the event of an interruption in communication, this option will cause the last good value to be held. You should use
this option with caution since, unless there is another means to alert you to interruptions in communication, it will appear
that a valid value is still being received.
Protocol Timeout
Timeout period, after which a lack of protocol traffic is considered an error. Default: 30 seconds.
Memory Area Area Prefix S7-200 Bytes S7-300 Bytes S7-400 Bytes
Input E(I) 16 (128 bits) 8K (64Kbits) 16K (128Kbits)
Output A(Q) 5 (40 bits) 8K (64Kbits) 16K (128Kbits)
Memory M 32 4K 16K
Special Memory S(SM)
Variable Storage V
Timer T 512 1K 4K
When using version 3, authentication may be done using either MHAC-SHA-96 or the MD5 protocol. Encryption uses
either DES or 128-bit AES(1). Choice of protocol is done using the following application properties, found in
Settings.Dynamic:
• SNMPv3DefaultUserAuthProtocol (Set "0" for MD5 and "1" for SHA-1)
• SNMPv3DefaultUserPrivProtocol (Set "0" for DES and 1 for AES128)
(1)
If circumstances require that multiple users or security levels be configured, then multiple SNMP drivers can be
instantiated.
The following security levels are supported: NoAuthNoPriv, AuthNoPriv, and AuthPriv. There can be only one level per
driver instance. When SNMP version 3 is selected, the contents of the Agent tab of the configuration folder change to
allow selection of the security level and parameters for the User name and Context Name. The following application
privileges are used to store the configuration: SNMPv3DefaultUserAuthKey, SNMPv3DefaultUserAuthProtocol,
SNMPv3DefaultUserPrivKey, SNMPv3DefaultUserPrivProtocol.
VTS is considered a Network Management Station (NMS) only and cannot be managed by SNMP. The security level
must be less than or equal to the level configured for the user.
I/O tags that are configured to use an SNMP driver will have an address selection feature. A button labeled "MIB"
(management information base) will be added beside the Address field of the I/O tab. Clicking this will open an SNMP
Address Select window, from which you can choose the correct Object Identifier (OID) address.
Note: The SNMP driver requires more configuration than other drivers. You will need to obtain the MIB library for your
device from the manufacturer and you will need to tell VTS where to find this information. See SNMP Addressing for
details and configuration steps.
Port
Use the tag browser button to select the TCP/IP or UDP port tag to which the remote equipment is attached. The X
button can use used to clear the current selection.
Retries
In the event that a connection cannot be made to the remote equipment on the first attempt, this field sets the number of
communication retries that are to be attempted before the driver gives up with an error message.
Retry Delay
Sets the delay, measured in seconds, between retry attempts.
SNMP Group
The name of a VTS RPC service to which this driver instance will belong. Alternate RPC services need only be created
if your application uses multiple servers on separate sub-nets. In most applications you should leave the default value for
this field.
SNMP Version
Select the simple network messaging protocol version that the agent is using. Supported versions include 1, 2c and 3.
Defaults to 1. Selecting version 3 will cause the available configuration parameters to change as shown.
SNMP addresses are built using a hierarchy of OID values. These can be long. The VTS SNMP Address Select tool,
found in every I/O tag that uses an SNMP driver, will help you build addresses for your I/O tags.
Before using the Address Select tool, you must first tell VTS where to find the MIB file for your device. You will need
to obtain a .MIB file from your equipment manufacturer.
Note: One MIB file may depend on another. Check that you have all that you need.
Importing a .MIB
1. Obtain a .MIB file from your equipment manufacturer.
7. Save this file to a folder on your VTS server computer.
Note: All .MIB files that will be used by an application will be stored a folder named "MIB" within your application
directory. You can create this folder yourself and copy the files to it. If using the Import MIB button as described in step
3e, VTS will create the folder and copy the selected files to it.
Warning: If the .MIB file depends on other .MIB or .MY files, you will get an error message in the Address Select tool
after clicking the MIB button. Hovering over the error will open a tool-tip window, display the name of the missing file.
Locate and copy this file to the MIB folder, then use the Import File Changes button in the VAM.
Building an address.
The following instructions assume that you are configuring an I/O tag that uses an SNMP driver and have
reached the stage of building the address.
Note 1: Polling driver tags are not required for Data Flow RTU driver tags since those have a polling feature built-in.
Note 2: Polling driver tags used in combination with DriverMUX (driver multiplexer) tags may fail to work properly.
Refer to the chapter, Driver Multiplexer Tags for instructions and warnings.
Polling drivers should be configured to stand between a communications driver tag and the I/O tags. Their function is to
control the order and the frequency of data transfer between the I/O tags and the remote equipment via the
communication driver tag.
All input tags associated with a Polling driver will use the scan interval configured for the Polling driver rather than their
configured scan rate.
When data is written from an output tag, it is immediately passed to the Polling driver tag and then on to the associated
communication driver tag. Following each write, all I/O addresses will be read immediately so that feedback need not
wait for the next polling cycle.
Multiple Polling drivers may be attached to a single communication driver tag, each with a separate poll rate, however
the result will be that all will poll at the fastest configured rate.
Note: If Modbus drivers are used in conjunction with a Polling driver in a networked application, then the application
property, ModiconSharedRPC should be set to 1. This will prevent the operation of the Polling drivers being distributed
between the primary and backup servers.
I/O Device
The I/O Device field enables you to specify the communication driver tag for which this Polling driver will set the scan
rate.
The I/O Device field can be used to associate this tag with a new or existing communication driver tag using the tag
browser button. The button opens the Tag Browser, which displays only the existing communication driver tags for
your application, and enables you to create a new communication driver tag using its New button.
For example, you can create 5 Polling drivers, each of which is associated with a different communication driver, and
enter the same polling group name for each of the Polling drivers (e.g. "Poll Group 1", or "East Side Stations Poll
Group"). The result is that the 5 communication drivers associated with the 5 Polling drivers will be polled as a single
group. Instructions on configuring a poll group can be found in Setting Up a Poll Group.
Note: All data that is set to the same Scan Interval is read in the same poll of the I/O device. For this reason, it is
recommended that you limit the number of different scan intervals for a single I/O device to optimize the reading to a
minimal number of blocks, and improve overall system update performance. For example, if you have 12 analog inputs
connected to one I/O device, it is recommended that the scan intervals for these tags be set to the same value (e.g. 1
(second)).
Note: The Delay After Scan Interval must always be less than the Scan Interval value.
Disable Polling
You may find it easier to set the location using the map interface than to enter the latitude and longitude values here. See:
Site Map.
Polling Driver Scan Interval and Delay After Scan Interval Examples
A Polling driver tag can be configured to scan a communication driver tag on a regular schedule. The key to doing so is
proper configuration of the Scan Interval and Delay After Scan Interval properties.
The Scan Interval property specifies the number of seconds between polls, where the polling cycle starts at midnight.
The Delay After Scan Interval property specifies the number of seconds after the Scan Interval to trigger the poll.
Windows Vista requires additional security configuration before you will be able to access performance counter
information (i.e. workstation status information). By default, an application will run using the same privileges as the
person who started it. You can add the user account that the application runs as to the Performance Log Users group and
then assign that group the right to "Log on as a Batch Job User".
For further information, refer to http://technet2.microsoft.com/windowsserver2008/en/library/8620ccc5-b054-48b4-
b276-9f6c716954a71033.mspx?mfr=true
To add a user to the Performance Log Users group:
1. Click Start, click in the Start Search box, type compmgmt.msc, and then press ENTER.
12. Expand System Tools, expand Local Users and Groups, and click Groups.
13. In the list of groups, right-click Performance Log Users, and then click Add to Group.
14. On the General tab, click Add.
15. Type the name of the user you want to add, or click Advanced to search the directory for a user.
16. When you have finished adding users, click OK, and click OK again to close the Performance Log Users property
page.
To assign the Log on as a batch job user right to the Performance Log Users group:
1. Click Start, click in the Start Search box, type secpol.msc, and then press ENTER. The Local Security Policy
snap-in will open in Microsoft Management Console.
17. In the navigation pane, expand Local Policies and click User Rights Assignment.
18. In the console pane, right-click Log on as a batch job and then click Properties.
19. In the Properties page, click Add User or Group.
20. In the Select Users or Groups dialog box, click Object Types. Select Groups, and then click OK.
21. Type Performance Log Users in the Select Users or Groups dialog box, and then click OK.
22. Click OK again to close the property page.
Note: Workstation status driver tags have been configured in such a way that they do not conform to the same
server/backup server fail over process like other VTS drivers (see "Remote Applications"). In essence, the PC being
monitored by a workstation status driver tag is its own server. If the PC being monitored drops off the network, the
workstation status driver tag will be unable to report data about it to the application.
Note: Information on the correct configuration of a workstation status driver tag and its associated Analog Input tags is
provided in Workstation Status Driver Tag Addressing.
Workstation Name
The Workstation Name drop-down list enables you to select the name of the workstation that you wish to monitor (you
may alternatively enter a Net BIOS name in this field). The Workstation Name field defaults to the local machine name
when new workstation status driver tags are initially created.
Note: Please refer to Workstation Status Driver Tag Addressing for instructions on the correct configuration of a
workstation status tag and its associated Analog Input tags.
Set the Address field of each Analog Input tag to one of the following text strings:
Note: You must append the letter for the drive to be monitored to FreeDiskSpace (e.g. FreeDiskSpaceC for drive C, or
FreeDiskSpaceD for drive D.
Suffix Meaning
/ABFloat Allen-Bradley PLC/3 Floating Point (4 bytes) (Used for Allen-Bradley exclusively)
/AB5Float Allen-Bradley PLC/5 Floating Point (4 bytes) (Used for Allen-Bradley exclusively)
/BCD2 2-digit (1 byte) Binary Coded Decimal
/BCD3 3-digit (2 bytes – lowest 12 bits) Binary Coded Decimal
/BCD4 4-digit (2 bytes) Binary Coded Decimal
/Bit Attempts to convert the value to a single bit. The bit number used is always 0. (ex:
40001/Bit)
/Double IEEE Double Precision Floating Point (8 bytes)
/Float IEEE Single Precision Floating Point (4 bytes)
/SByte Signed Byte
/SDWord Signed 32-bit Integer
/SWord Signed 16-bit Integer
For example:
40001/UDWord
Each I/O device uses a different addressing scheme. These addressing schemes are referenced below.
• Allen-Bradley Driver Addressing;
• Modicon Driver Addressing;
• Omron Addressing; and
• OPC Client Driver Addressing.
The sections that follow identify the VTS driver types and their properties.
Additional
Company Device Medium Protocol
Components
Serial DF1
Ethernet DF1
Control Telesafe Micro 16 Serial Modbus RTU, DF1 & DNP are
Microsystems RTU Modbus ASCII, DF1, Telesafe options
DNP
Data Flow RTU Serial, Ethernet Data Flow Systems Includes TACII,
Systems (TCP /IP& HyperTAC,
UDP/IP) HyperServer
Database
DNP 3.0 DNP 3.0 Compliant Serial, Ethernet DNP 3.0 Level 1
Devices
OPC (OLE for OPC Servers for Serial, Ethernet OPC Client
Process Control) various Products
Input Tags
Input tags are used to read data from an I/O device, such as a programmable logic controller (PLC), remote terminal unit
(RTU), or an I/O board. These tags permit the handling of either digital (discrete), or analog (continuous floating point)
values.
The following input tags are included with VTS:
Analog Input tags
Analog Status tags
Digital Input tags
Digital Status tags
Pulse Input Tags
Pump Status Tags
The sections that follow describe each of these input tags and define their properties.
Note: Analogs can have text values if the driver returns a text value. For this to happen, the Unscaled Min and Unscaled
Max values within the Scaling tab must be set equal.
I/O Device
Select the communication driver tag from which data will be read.
By default, the tag will look for a parent tag that is a device driver (..\*Driver). If none is found, the text "--Missing--"
will be displayed. The tag button to the right of the field opens the tag browser, from which you can either select an
existing communication driver tag or add a new one. The X button will clear the field. Right-clicking on a tag in the
field will open a dialog with which you can add or remove a Snapshot Expression, or open a selected driver`s
properties dialog.
Address
Scan Interval
Provide the frequency, measured in seconds, that the I/O device should be scanned for new data. If the I/O Device is a
Polling driver, which provides its own scan interval, then this field will not accept data.
Engineering Units
Provide units of measure that the input data represents. Possible values for this field include "rpm" "degrees C", "%", etc.
Manual Data
This optional field allows you to provide a constant value that will be used instead of input read by the communication
driver. It is commonly used when testing a new Analog Input tag when application is not attached to a live data source.
Tags that are using manual data are marked on screen by a flashing exclamation mark.
Enable Output
If checked, this input tag may also be used to write data to the specified address of the communication driver. A Security
Privilege may be set in the Merit tab to restrict access to this feature.
Note: There is no specific "owner" tag type, rather an owner tag is typically a custom-designed tag that is created using
VTS scripting code for special projects.
Owner
The Owner field enables you to specify a tag to which this contributor should supply its data. An owner tag is one which
you must design and then create, using the VTS scripting language.
The owner tag may keep track of different aspects of each contributor's data, from the presence of a user-defined manual
data value, to questionable data, according to the configuration of the checkboxes appearing beneath the Owner field.
These checkboxes also determine the way that this contributor tag's value should be used in the owner tag's calculations.
Note: Only one Logger tag can be directly associated with a single input or output tag. If you need to have multiple
loggers with different logging rates, please refer to Using Function Tags to Create Multiple Data Logs of an I/O Tag
Note: Analogs can have text values if the driver returns a text value and if the Unscaled Max value is set equal to the
Unscaled Min value in the tag configuration.
Note: Never attempt to attach a Logger tag to an Analog Status tag. Analog Status tags have a built in Historian.
Address
Provide the address within the I/O device from which this tag is to read data. This value must match the configuration
of your PLC or RTU hardware. Refer to the Addressing topic for your particular device driver for guidance.
For some drivers (SNMP and the OPC Client) an address browser is provided to assist you.
Scan Interval
Provide the frequency, measured in seconds, that the I/O device should be scanned for new data. If the I/O Device is a
Polling driver, which provides its own scan interval, then this field will not accept data.
History Address
If set, then the address field becomes optional. This field provides a means of reading values as recorded by a data
logger.
If both the address and the history address are provided, then the address will be polled for data at the interval set by the
Scan Rate, but the values read from the data logger will overwrite the values logged by this tag when it is updated.
The form for the history address will depend on the RTU. Please refer to the addressing reference chapter for your driver.
Further information on reading history information can be found in the topic SCADAPack History Read
Manual Data
This optional field allows you to provide a constant value that will be used instead of input read by the communication
driver. It is commonly used when testing a new Analog Input tag when application is not attached to a live data source.
Tags that are using manual data are marked on screen by a flashing exclamation mark.
Enable Output
If checked, this input tag may also be used to write data to the specified address of the communication driver. A Security
Privilege may be set in the Quality tab to restrict access to this feature.
Note: If you wish to override the built-in low and or high alarms for an Analog Status tag, please refer to "Overriding
Built-in Alarms".
High Alarm Setpoint, High Alarm Priority and Disable High Alarm
These work in exactly the same way as the low alarm set point, low alarm priority and disable low alarm fields, except
that they are used to create an alarm that will be triggered when the tag's value goes above a given set point.
Sound
The Sound field enables you to identify what sound will be played when this alarm is triggered. The Sound field can be
set to blank, 0, 1, or to the name of a .WAV sound file to be played.
If the Sound field is set to 0, no sound will be played when this alarm is triggered.
If the Sound field is set to blank or 1, an alarm sound whose properties are configured on the associated Alarm Priority
tag will be played.
If the Sound field identifies the name of a .WAV sound file, it will override any alarm sound configured for the
associated Alarm Priority tag. When specifying a sound file, you must enter its name and extension (e.g. MySound.wav).
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
This menu includes the following features by which the tag can be controlled:
Help
Opens this help guide.
Alarm Settings
Opens just the alarm tab from the tag’s configuration panel, allowing the alarms to be re-configured.
Manual Data
Opens just the I/O tab from the tag’s configuration panel, allowing manual data (and other I/O values) to be re-
configured.
Logging Deadband
Opens just the I/O tab from the tag’s configuration panel, allowing manual data (and other I/O values) to be re-
configured.
Questionable Data
Toggles the Questionable Data flag on this tag from its current setting to the opposite.
Properties
Opens the tag’s configuration panel, providing access to all tabs.
A common question then is, “which tag should I use?”. The following comparison of features should help you choose.
Any tag attribute not listed below is the same for both.
The feature comparison shows that Analog Status tags have several advantages. There are more built-in features,
reducing the need to use extra tags to provide logging and alarms. Analog Status tags also support history reads and are
displayed on Station Pages. If you plan to use any of these features, then an Analog Status tag is probably your best
choice.
Why then might you ever use an Analog Input tag? First, the dedicated Logging or Alarm tags that you add to an analog
input will have more features and therefore more control than the built in logging and alarms of the analog status. The
other reason has to do with the overhead that comes with the Analog Status tag. For many inputs, you might not want
logging or alarms. In order to support these and other features, the Analog Status tag has more overhead. In most
applications, the difference in performance will never be noticed, but in larger applications, you may find that that there
When you do add Analog Status tags to your application, there is one extremely important configuration option to
remember: You should always set a value for the deadband. The automatic logging feature of these tags will add a new
record each time the value changes, regardless of how small that change is. To avoid filling the log file with system
noise, you should set the deadband to a small value, thus causing the tag to ignore any change less than this amount. For
example, on a input that changes from 0 to 100, you might set the deadband between 0.1 and 1.
Note: Digital inputs clamp raw data values to either zero or one on each input pin (yielding a result of 0, 1, 2, or 3 for
pump status and Digital Status tags). Analog zero yields zero, while all other values yield 1. This is effective for analog
values that have discrete states (e.g. line voltage can be read for on/off), but pure analog data (e.g. velocity) will only
become false when the value drops below the sensitivity of the measuring device.
Note: Digital Input tags can have single or double bit addresses. Information on single and double bit digital inputs can
be found in Single Bit and Double Bit Digital Inputs.
Bit 0 Address
The Bit 0 Address property is the address of the low order bit for this tag in the I/O device. If this is a single bit digital
tag, this is the field that specifies the address of that bit.
Bit 1 Address
The Bit 1 Address property is the address of the high order bit for the digital input in the I/O device. If this is a single bit
digital input, this field should be left blank.
Scan Interval
Provide the frequency, measured in seconds, that the I/O device should be scanned for new data. If the I/O Device is a
Polling driver, which provides its own scan interval, then this field will not accept data.
Manual Data
This optional field allows you to provide a constant value that will be used instead of input read by the communication
driver. It is commonly used when testing a new Analog Input tag when application is not attached to a live data source.
Tags that are using manual data are marked on screen by a flashing exclamation mark.
Invert Input
The Invert Input checkbox enables you to specify whether or not the value of this tag should be reversed. If selected, the
value for this tag will be inverted (i.e. 0 and 1 are swapped).
The typical use for input inversion is in projects where 1 indicates false or off, and 0 indicates true or on. By default, the
Invert Input checkbox is not selected.
Enable Output
Note: There is no specific "owner" type, rather an owner tag is typically a custom designed tag that is created using VTS
scripting code for special projects.
Owner
The Owner field enables you to specify a tag to which this contributor should supply its data. An owner tag is one which
you must design and then create, using the VTS scripting language.
The owner tag may keep track of different aspects of each contributor's data, from the presence of a user-defined manual
data value, to questionable data, according to the configuration of the checkboxes appearing beneath the Owner field.
These checkboxes also determine the way that this contributor tag's value should be used in the owner tag's calculations.
Note: Only one Logger tag can be directly associated with a single input or output tag. If you need to have multiple
loggers with different logging rates, please refer to Using Function Tags to Create Multiple Data Logs of an I/O Tag
Note: VTS also includes Pump Status tags that are to be used for digital equipment processes related to pumps. For
information on Pump Status tags and their properties, please refer to Pump Status Tags.
A digital status can be a single bit digital input or a double bit digital input. For single bit digital inputs, there are two
possible states (e.g. off or on, or running or stopped), whereas for digital inputs that use two address bits, there are four
possible states (e.g. opened, closed, process in action (either opening or closing), or error).
Note: Digital inputs clamp raw data values to either zero or one on each input pin (yielding a result of 0, 1, 2, or 3 for
pump status and Digital Status tags). Analog zero yields zero, while all other values yield 1. This is effective for analog
values that have discrete states (e.g. line voltage can be read for on/off), but pure analog data (e.g. velocity) will only
become false when the value drops below the sensitivity of the measuring device.
Note: Never attempt to attach a Logger tag to a Digital Status tag. Digital Status tags have a built in logger.
Note: Digital Status tags can have single or double bit addresses. Information on single and double bit digital inputs can
be found in Single Bit and Double Bit Digital Inputs.
I/O Device
Select the communication driver tag from which data will be read.
By default, the tag will look for a parent tag that is a device driver (..\*Driver). If none is found, the text "--Missing--"
will be displayed. The tag button to the right of the field opens the tag browser, from which you can either select an
existing communication driver tag or add a new one. The X button will clear the field. Right-clicking on a tag in the
field will open a dialog with which you can add or remove a Snapshot Expression, or open a selected driver`s
properties dialog.
Bit 0 Address
The Bit 0 Address property is the address of the low order bit for this tag in the I/O device. If this is a single bit digital
tag, this is the field that specifies the address of that bit. The reported value of this digital tag is the data at this address
plus two times the data at the Bit 1.
Note: If a data logger is being used on a tag, it can only be for a single bit address.
Bit 1 Address
The Bit 1 Address property is the address of the high order bit for the digital input in the I/O device. If this is a single bit
digital input, this field should be left blank.
Scan Rate
Provide the frequency, measured in seconds, that the I/O device should be scanned for new data. If the I/O Device is a
Polling driver, which provides its own scan interval, then this field will not accept data.
History Address
If set, then the Bit 0 address becomes optional. This field provides a means of reading values as recorded by a data
logger.
If both the Bit 0 address and the history address are provided, then the bit 0 address will be polled for data at the interval
set by the Scan Rate, but the values read from the data logger will overwrite the values logged by this tag when it is
updated.
The form for the history address will depend on the RTU. Please refer to the addressing reference chapter for your driver.
Manual Data
This optional field allows you to provide a constant value that will be used instead of input read by the communication
driver. It is commonly used when testing a new Analog Input tag when application is not attached to a live data source.
Tags that are using manual data are marked on screen by a flashing exclamation mark.
Off Text
The Off Text property enables you to configure text that will be displayed in some of the tag's drawing methods when
the value of this tag is 0 or false/off.
On Text
The On Text property enables you to configure text that will be displayed in some of the tag's drawing methods when the
value of the tag is 1 or true/on.
Invert Input
If the Invert Input checkbox is selected, the value of the tag being used as the data source is reversed (i.e. a 1 becomes a
0 or a 0 becomes a 1) before it is written to the I/O device.
Enable Output
If checked, this input tag may also be used to write data to the specified Bit 0 address of the communication driver.
Pulsed writes are not available. A Security Privilege may be set in the Quality tab to restrict access to this feature.
Alarm State
The Alarm State spin box enables you to select the trigger for the alarm. The alarm will be triggered when the tag's state
becomes one of the following:
0 The alarm is triggered when Bit 0 goes low. The Bit 1 address either has not been provided or is low.
1 The alarm is triggered when Bit 0 goes high. The Bit 1 address either has not been provided or is low.
2 Two addresses provided. Bit 0 goes low and Bit 1 goes high.
3 Two addresses provided. Both Bit 0 and Bit 1 go high.
Upon Change - any change of state triggers an alarm. Note that when the Upon Change option is selected, the
trip alarm option will be set and cannot be un-selected by the developer.
Alarm Delay
Transient changes in state can result in multiple alarms being triggered. By setting an alarm delay, you can specify that if
the tag’s state changes back one which does not constitute an alarm situation, it must remain in that state for a given
length of time before the alarm is deemed to be inactive.
Disable Alarm
The Disable Alarm checkbox enables you to specify whether the alarm for this tag is disabled or enabled. Disabling of
alarms is typically used in situations where you wish to avoid false alarms. For example, in the event that routine
maintenance is being performed on the equipment represented by this tag, or when you are aware that another
interruption in communications will occur for a period of time. In such situations, the alarm can be disabled until the
maintenance is complete and communications are re-established.
Trip Alarm
The Trip Alarm checkbox enables you to indicate whether you wish this alarm to be a trip alarm.
Trip alarms do not have the attribute of being Active or Inactive based on the value of the Trigger tag. Once triggered,
the alarm must be acknowledged by an operator, but the underlying cause of the alarm need not be cleared.
Popup Enable
If the configuration variable AlarmPopupsEnable is set to 1, then setting either the Low Alarm Popup Enable or the High
Alarm Popup Enable, will result in a pop-up dialog being displayed whenever the respective alarm is triggered. It is
strongly suggested that this feature be used sparingly.
Note: If you wish to override the built-in alarm for a Digital Status tag, please refer to "Overriding Built-in Alarms".
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
I/O Device
A Data Flow Driver is required for this tag to function. Select the communication driver tag from which data will be
read.
By default, the tag will look for a parent tag that is a device driver (..\*Driver). If none is found, the text "--Missing--"
will be displayed. The tag button to the right of the field opens the tag browser, from which you can either select an
existing communication driver tag or add a new one. The X button will clear the field. Right-clicking on a tag in the
field will open a dialog with which you can add or remove a Snapshot Expression, or open a selected driver`s
properties dialog.
Address
Provide the address within the I/O device from which this tag is to read data. This value must match the configuration
of your PLC or RTU hardware. Refer to the Addressing topic for your particular device driver for guidance.
For some drivers (SNMP and the OPC Client) an address browser is provided to assist you.
Scan Interval
Engineering Units
Provide units of measure that the input data represents. Possible values for this field include "rpm" "degrees C", "%", etc.
Manual Data
This optional field allows you to provide a constant value that will be used instead of input read by the communication
driver. It is commonly used when testing a new Analog Input tag when application is not attached to a live data source.
Tags that are using manual data are marked on screen by a flashing exclamation mark.
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
Note: Digital inputs clamp raw data values to either zero or one on each input pin (yielding a result of 0, 1, 2, or 3 for
pump status and Digital Status tags). Analog zero yields zero, while all other values yield 1. This is effective for analog
values that have discrete states (e.g. line voltage can be read for on/off), but pure analog data (e.g. velocity) will only
become false when the value drops below the sensitivity of the measuring device.
Note: Never attempt to attach a Logger tag to a Pump Status tag. Pump Status tags have a built in logger.
I/O Device
Select the communication driver tag from which data will be read.
By default, the tag will look for a parent tag that is a device driver (..\*Driver). If none is found, the text "--Missing--"
will be displayed. The tag button to the right of the field opens the tag browser, from which you can either select an
existing communication driver tag or add a new one. The X button will clear the field. Right-clicking on a tag in the
field will open a dialog with which you can add or remove a Snapshot Expression, or open a selected driver`s
properties dialog.
Bit 0 Address
The Bit 0 Address property is the address of the low order bit for this tag in the I/O device. If this is a single bit digital
tag, this is the field that specifies the address of that bit. The reported value of this digital tag is the data at this address
plus two times the data at the Bit 1.
Note: If a data logger is being used on a tag, it can only be for a single bit address.
Bit 1 Address
The Bit 1 Address property is the address of the high order bit for the digital input in the I/O device. If this is a single bit
digital input, this field should be left blank.
Scan Rate
Provide the frequency, measured in seconds, that the I/O device should be scanned for new data. If the I/O Device is a
Polling driver, which provides its own scan interval, then this field will not accept data.
Read History
If checked, the field Bit 0 Address becomes History Address and the field History Scan Interval is enabled.
History Address
If set, then the Bit 0 address becomes optional. This field provides a means of reading values as recorded by a data
logger.
If both the Bit 0 address and the history address are provided, then the Bit 0 address will be polled for data at the interval
set by the Scan Rate, but the values read from the data logger will overwrite the values logged by this tag when it is
updated.
The form for the history address will depend on the RTU. Please refer to the addressing reference chapter for your driver.
Off Text
The Off Text property enables you to configure text that will be displayed in some of the tag's drawing methods when
the value of this tag is 0 or false/off.
On Text
The On Text property enables you to configure text that will be displayed in some of the tag's drawing methods when the
value of the tag is 1 or true/on.
Manual Data
Invert Input
If the Invert Input checkbox is selected, the value of the tag being used as the data source is reversed (i.e. a 1 becomes a
0 or a 0 becomes a 1) before it is written to the I/O device.
Enable Output
If checked, this input tag may also be used to write data to the specified Bit 0 address of the communication driver. A
Security Privilege may be set in the Quality tab to restrict access to this feature.
Alarm Priority
The Alarm Priority drop-down list enables you to select the priority of the alarm that will be triggered for this tag. The
available priorities are:
• None
• 0 – Event
• 1 – Critical Alarm
• 2 – High Alarm
• 3 – Warning Alarm
• 4 – Notice Alarm
If you have defined your own Alarm Priority tags, those will also be available for selection.
Alarm State
Alarm Delay
Transient changes in state can result in multiple alarms being triggered. By setting an alarm delay, you can specify that if
the tag’s state changes back one which does not constitute an alarm situation, it must remain in that state for a given
length of time before the alarm is deemed to be inactive.
Disable Alarm
The Disable Alarm checkbox enables you to specify whether the low alarm for this tag is disabled or enabled. Disabling
of alarms is typically used in situations where you wish to avoid false alarms. For example, in the event that routine
maintenance is being performed on the equipment represented by this tag, or when you are aware that another
interruption in communications will occur for a period of time; in such situations, the alarm can be disabled until the
maintenance is complete and communications are reestablished.
Trip Alarm
The Trip Alarm checkbox enables you to indicate whether you wish this alarm to be a trip alarm.
Trip alarms differ from level alarms in that they are not active or inactive based on the value of the Trigger tag. Once
triggered, they must be acknowledged, but there is no requirement that the cause of the alarm condition be cleared.
Popup Enable
If the configuration variable AlarmPopupsEnable is set to 1, then setting either the Low Alarm Popup Enable or the High
Alarm Popup Enable, will result in a pop-up dialog being displayed whenever the respective alarm is triggered. It is
strongly suggested that this feature be used sparingly.
Note: If you wish to override the built-in alarm for a Pump Status tag, please refer to "Overriding Built-in Alarms".
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
Output Tags
Output tags are used to write data to an I/O device, such as a programmable logic controller (PLC), remote terminal unit
(RTU), or an I/O board. These tags permit the handling of either digital (discrete), or analog (continuous floating point)
values.
Note: Output tags will not write INVALID data. (INVALID is a specific VTS data type, roughly meaning, "no valid
value available"). Also, with the exception of the MultiWrite tag, no output type will write an unchanged value twice
unless directed by the driver performing a "re-write outputs".
I/O Device
Select the communication driver tag to which data will be written.
By default, the tag will look for a parent tag that is a device driver (..\*Driver). If none is found, the text "--Missing--"
will be displayed. The tag button to the right of the field opens the tag browser, from which you can either select an
existing communication driver tag or add a new one. The X button will clear the field. Right-clicking on a tag in the
field will open a dialog with which you can add or remove a Snapshot Expression, or open a selected driver`s
properties dialog.
Engineering Units
Provide units of measure that the input data represents. Possible values for this field include "rpm" "degrees C", "%", etc.
Data Source
[Optional] While Analog Control tags usually take their value from an operator-controlled drawing object, the Data
Source field provides the option of configuring this tag to accept a value from another tag or expression instead.
The value from the Data Source can be written to the I/O device, or it can be used to simply update the drawing method
display. See the following topics: Write output when Data Source Changes and Use Data Source for display only.
If you have selected a data source that is configured to write output, and have also drawn the tag as an object that
operators can use to set values, then both can write to the I/O device. The value written will be whichever was most
recently changed.
Note: The Numeric Entry, Slider, Set Analog Value, Set Value Button, Set Value Hotbox, and Droplist Control drawing
methods allow users to actually output data to the equipment process associated with the tag being drawn. All other
drawing methods simply display the value that has been output.
I/O Device
Select the communication driver tag to which data will be written.
By default, the tag will look for a parent tag that is a device driver (..\*Driver). If none is found, the text "--Missing--"
will be displayed. The tag button to the right of the field opens the tag browser, from which you can either select an
existing communication driver tag or add a new one. The X button will clear the field. Right-clicking on a tag in the
field will open a dialog with which you can add or remove a Snapshot Expression, or open a selected driver`s
properties dialog.
Address
Provide the address within the I/O device to which this tag is to write data. This value must match the configuration of
your PLC or RTU hardware. Refer to the Addressing topic for your particular device driver for guidance.
Engineering Units
Provide units of measure that the input data represents. Possible values for this field include "rpm" "degrees C", "%", etc.
Data Source
The value output by an analog control can be supplied by an operator via a drawing method on the screen, it can be
supplied by a data source, or both can be used.
Normally, the data source would be another tag or an expression. If both a data source and an operator control are
provided, then the value of the control tag will be whichever value was most recently set.
Note: There is no specific "owner" type, rather an owner tag is typically a custom designed tag that is created using VTS
scripting code for special projects.
Owner
The Owner field enables you to specify a tag to which this contributor should supply its data. An owner tag is one which
you must design and then create, using the VTS scripting language.
The owner tag may keep track of different aspects of each contributor's data, from the presence of a user-defined manual
data value, to questionable data, according to the configuration of the checkboxes appearing beneath the Owner field.
These checkboxes also determine the way that this contributor tag's value should be used in the owner tag's calculations.
Note: It is recommended that only one Logger tag be directly associated with a single input or output tag. If you require
multiple loggers with different logging rates, please refer to Using Function Tags to Create Multiple Data Logs of an I/O
Tag
Note: Of the above tag drawing methods, only the Numeric Entry, Slider, Set Analog Value, Droplist Control,
SetValueBtn, SetValueHotbox, and Momentary Button methods enable users to output values to the associated tags; the
remaining drawing methods display the value that has been output.
Note: The behavior of this Deadband Control tag can be reversed such that if the Monitored Value is greater than the
value of the High Setpoint, the value of this Deadband Control tag will be 1 using the Operation radio buttons (see
below).
Inhibit
The effect of setting the inhibit flag is to force the tag’s value to be 0, regardless of other settings.
A valid value for the Inhibit field can be provided via any of a constant, an expression, or a tag. Please see Constant,
Expression or Tag for help selecting which to use.
Operation
The Operation section contains two radio buttons that enable you to set the behavior of this tag.
Start On High: If the Start On High radio button is selected, the value of this tag will be reversed from its default. When
the Monitored Value is greater than the High Setpoint (see Deadband Control Properties: Setpoints Tab), the value of
this Deadband Control tag will be 1 (rather than 0, which is the default).
Start On Low: If the Start On Low radio button is selected, if the Monitored Value is less than the Low Setpoint (see
Deadband Control Properties: Setpoints Tab), the value of this Deadband Control tag will be 1.
Manual Data
The Manual Data property enables you to set a user-defined value for this tag. If the value of the Manual Data field is left
Invalid, or is not a valid number, then the value for this tag is read.
Questionable Data
Questionable data is a means of indicating that the data being reported by a tag might not be accurate. Use this field to
flag the tag’s data in the event that you suspect the values it is reporting might not be accurate, or when this tag has
initially been created and you wish to ensure that its data is marked for extra monitoring.
Note: The behavior of this Deadband Control tag can be reversed such that if the Monitored Value is greater than the
value of the High Setpoint, the value of this Deadband Control tag will be 1.
A valid value for the High Setpoint field and the Low Setpoint field can be provided via any of a constant, an expression,
or a tag. Please see Constant, Expression or Tag for help selecting which to use.
Note: There is no specific "owner" type, rather an owner tag is typically a custom designed tag that is created using VTS
scripting code for special projects.
Owner
The Owner field enables you to specify a tag to which this contributor should supply its data. An owner tag is one which
you must design and then create, using the VTS scripting language.
The owner tag may keep track of different aspects of each contributor's data, from the presence of a user-defined manual
data value, to questionable data, according to the configuration of the checkboxes appearing beneath the Owner field.
These checkboxes also determine the way that this contributor tag's value should be used in the owner tag's calculations.
Note: Only one Logger tag can be directly associated with a single input or output tag. If you need to have multiple
loggers with different logging rates, please refer to Using Function Tags to Create Multiple Data Logs of an I/O Tag
Address
Provide the address within the I/O device to which this tag is to write data. This value must match the configuration of
your PLC or RTU hardware. Refer to the Addressing topic for your particular device driver for guidance.
For some drivers (SNMP and the OPC Client) an address browser is provided to assist you.
Pulse Duration
If you are using a pulsed signal, enter the duration of the pulse here in seconds or decimal parts of a second. In the case
of pulsed outputs, the value of this tag is 1 while the attempted control is in progress (i.e. for the length of the pulse).
If the value of Pulse Duration is 0 or blank (Invalid), then a constant value will be written to the I/O device.
Data Source
The value output by the control can be supplied by a data source. For a digital control, the values supplied by the data
source should be limited to 1 or 0 (true or false).
Invert Output
Note: Remember, the existence of an output tag is not enough to output a value to the I/O device; you must draw the tag
using a control drawing method (such as a Set Value Button) to enable users to send a value to the I/O device and related
equipment.
Feedback
The Feedback field enables you to specify an existing alarm, alarm priority, digital status, or Digital Control tag whose
value can be used to determine whether the control action for this tag was successful. When a value is output by this tag,
the feedback tag reads its value from the I/O device at the same address, and compares this value with the expected
value(s) configured in the Feedback At State 0 and Feedback At State 1 spin boxes (see below).
If the Pulse Duration property for this tag (as set on the I/O tab) is set to a valid value greater than 0 (i.e. a pulsed signal),
then the Feedback At State 0 property is ignored, as the logic assumes that the control attempt is always to drive the
value of the feedback tag to the Feedback At State 1 value.
Note: The 0 state may be inverted to a 1 before writing to the I/O device if this tag's Invert Output property (I/O tab) is
set to 1 (true).
Feedback At State 0
If the Pulse Duration property for this tag, as set on the I/O tab, is set to any of: 0 (the default), invalid, or blank (i.e. a
non-pulsed signal) then...
The Feedback At State 0 spin box should be set to the value you expect for the selected Feedback tag when this tag has
successfully gone to the 0 state. For example, if you've configured this tag to stop a motor by issuing a value of 0 to the
I/O device, you would expect the feedback tag (e.g. a Digital Status tag) to read a 0 back from the I/O device, indicating
that your output was received.
Feedback At State 1
Note: Of the drawing methods displayed above, only the Momentary Button, Set Value Button, and Set Value Hotbox
drawing methods allow users to actually output data to the equipment process associated with the tag being drawn. All
other drawing methods simply display the value that has been output.
Note: Remember, the existence of an output tag is not enough to output a value to the I/O device; you must draw the tag
using a control drawing method (such as a Set Value Button) to enable users to send a value to the I/O device and related
equipment.
Address
Provide the address within the I/O device to which this tag is to write data. This value must match the configuration of
your PLC or RTU hardware. Refer to the Addressing topic for your particular device driver for guidance.
For some drivers (SNMP and the OPC Client) an address browser is provided to assist you.
Pulse Duration
If you are using a pulsed signal, enter the duration of the pulse here in seconds or decimal parts of a second.
If the value of Pulse Duration is 0 or blank (Invalid), then a constant value will be written to the I/O device.
Data Source
The value output by the control can be supplied by a data source. For a digital control, the values supplied by the data
source should be limited to 1 or 0 (true or false).
Invert Output
Reverse the value of the output before writing.
Feedback
Select or create a tag from the digitals group that will provide the source of the feedback.
Feedback At State 0
The Feedback At State 0 spin box can be used to set the value you expect back from the feedback tag when the digital
output has successfully written a 0 (State 0).
Feedback At State 1
The Feedback At State 1 spin box can be used to set the value you expect back from the feedback tag when the digital
output has successfully written a 1, 2 or 3 (State 1).
Owner
The Owner field enables you to specify a tag to which this contributor should supply its data. An owner tag is one which
you must design and then create, using the VTS scripting language.
The owner tag may keep track of different aspects of each contributor's data, from the presence of a user-defined manual
data value, to questionable data, according to the configuration of the checkboxes appearing beneath the Owner field.
These checkboxes also determine the way that this contributor tag's value should be used in the owner tag's calculations.
Note: Only one Logger tag can be directly associated with a single input or output tag. If you need to have multiple
loggers with different logging rates, please refer to Using Function Tags to Create Multiple Data Logs of an I/O Tag
Note: Of these drawing methods, only the Set Value Button, Set Value Hotbox, and Momentary Button methods enable
users to output values to the associated tag; the remaining drawing methods display the value of the tag.
To add a tag to the list, select the next available row, then click on the Tag Browser button. Select or create an output tag.
After you have specified the tag to write to, you can provide a value to write using the Value field.
To remove a tag from the list, select its row, then click on the X button beside the tag field
Move Down Moves the selected tag down the list so that its value will be written later. Enabled only when
the currently selected tag is not the last in the list.
A selector switch can accept two types of feedback: Equipment feedback indicates the current status or state of the
equipment. When configuring the Selector, you may can specify what the expected value will be for each switch
position.
Switch Position feedback (an optional parameter that should be used when a second device is also controlling the
equipment) drives the position of the Selector Switch tag. This value must match the numeric switch position (0, 1, or 2).
In both cases, feedback must be provided by a tag or an expression.
• Position mismatch. The switch position as requested by the operator does not match the actual position as driven by
the switch position feedback value. This can occur when there is a lag in response time from the equipment.
• Value mismatch. The equipment feedback does not match the expected value for the requested or current position.
This type of mismatch can also be used to trigger an alarm. The alarm must be enabled and the mismatch must exist
for a set length of time before an alarm will become active.
The native drawing methods for the selector switch will use the following conventions to notify the operator of a
mismatch or an alarm condition:
• Alarm indicators take precedence. While an alarm indicator is active, no other mismatch indicator will be displayed.
• Alarms are normally indicated with red, and (if possible) will be shown on the requested or current position of the
switch.
• Alarm indicators are displayed until the alarm condition is cleared, regardless of whether the alarm has been
acknowledged.
In the case where each position of the switch writes to a different output address, you can deselect the "Use Single
Output Address" box, and provide a value that will be written to each address not matching the current switch position.
Note that values will be written in a "make before break" order. In other words, the value for a new switch position will
always be written before the value-when-off is written to the addresses matching the unselected switch positions.
Number of Positions
May be either "2" or "3". Limits the number of configurable positions in the switch. Always select "2" for a toggle
switch. (This differs from earlier versions where it was common practice to create toggle switches by configuring
positions "0" and "2", leaving position "1" blank.)
Address
Note: Invalid data, whether on the I/O Device or a feedback tag, will neither cause nor clear an alarm condition.
Alarm Priority
Select the priority level of this alarm. All other controls are disabled while the priority level is set to "None".
Delay
Specify a delay in seconds to wait when the feedback value from the PLC does not match the expected value for the
requested switch position before triggering an alarm.
Sound
[optional] Enter the name of a .wav file in your application directory in order to use that as the alarm sound.
Alarm Disable
Un-select in order to enable alarms on this switch.
Popup Enable
Available only when alarm pop-ups are enabled in the application properties (see: AlarmPopupsEnable)
Trigger Tags
Trigger tags can be used to activate a process at a set time and date. They may be configured to repeat at regular
intervals, or they can be configured to trigger based on an expression or another tag’s value. By drawing the Trigger tag
on a page, you can also provide a way for operators to manually trigger an event.
As well as defining a schedule or event that will set the trigger to 1 (On), you can should also define a schedule for when
it will be reset to 0 in preparation for the next trigger event. This may be configured as a delay measured in seconds after
the On trigger event, it may be set to a regular schedule or it may be tied to an expression or tag value.
Note: the trigger depends on the under-lying Windows operating system and your computer system clock. It should not
be relied upon for precise to-the-second starts or stops.
An “Enable” parameter is provide to allow you to control whether the Trigger tag is activated or not. If the tag is drawn
on a page, this can be toggled by right-clicking on the drawing method. Disabling a Trigger tag will also force its value
to be 0 (OFF).
Note: in VTS applications created prior to version 10, the scheduling option of both the On Condition and Off Condition
could be disabled by setting the "Every" field to 0. This has been replaced by an "Enable" checkbox, but applications
created in earlier versions will continue to work without modification.
Enable
Must be checked in order for the trigger to activate based on a time and date schedule.
Starting Time
Sets the base date and time for the schedule configuration options. Subsequent configuration options will be counted
from this start time. If set to the future, no trigger will occur until that date.
Day Checkboxes
Allow you to control which days the Trigger tag will operate on. For example, you may choose to disable the trigger’s
action on weekends by unselecting Saturday and Sunday.
Months
Selecting the Months option is similar to configuring to Trigger tag to switch on every N Hours. If this option is chosen,
then further refinements include “On The” or “Same Day as Starting Day”.
For example, you may wish to configure the trigger to run “on the 1st Wednesday” or “on the 2nd Monday” of the
month. Alternatively, of you have selected “Same Day as Starting Day” then the trigger will run on the given numeric
day of the month, at the selected time.
When the Months option is selected, the Day checkboxes will not be enabled.
Expression
Select a tag, or enter an expression that will be used to activate the Trigger tag. The On condition will be set when the
selected tag or expression’s value becomes non-zero.
Enable
Must be checked in order for the trigger to de-activate based on a time and date schedule.
Starting Time
Used to set the base date and time for the reset (Off-condition) schedule. The other configuration options on this tab will
be counted from the given Starting Time.
Day Checkboxes
Allow you to control which days the reset schedule will operate on. For example, you may choose to not reset the tag to
0 on weekends by unselecting Saturday and Sunday.
These checkboxes will not be enabled when the Months option is selected.
Months
Configures the tag to reset to 0 every month. If this option is chosen, then further refinements include “On The” or
“Same Day as Starting Day”.
For example, you may wish to configure the trigger to reset “on the 1st Wednesday” or “on the 2nd Monday” of the
month. If you have selected “Same Day as Starting Day” then the trigger will be reset on the given numeric day of the
month, at the selected time.
When the Months option is selected, the Day checkboxes will not be enabled.
Expression
Select a tag, or enter an expression that will be used to reset the Trigger tag’s value to 0. The Trigger tag’s value will be
set to 0 when the value of the selected tag or expression becomes non-zero.
Note: Of these drawing methods, only the Set Value Button, Set Value Hotbox, and Momentary Button methods enable
users to output values to the associated tag; the remaining drawing methods display the value of the tag.
Alarms can be configured such that, if they are acknowledged by an operator, but remain active for a set length of time
(that is, the triggering condition for the alarm remains in effect), the alarm will go back to an un-acknowledged
condition, thereby re-activating any audible and visible warning indicators that are attached to that alarm.
A trip alarm will never be displayed in the list of Active alarms. They are primarily used in situations where the
momentary existence of an alarm condition should “trip” the alarm, after which the state of the Trigger tag is irrelevant.
As an example, consider an intrusion detection system: When an unauthorized person opens a door, the alarm is
triggered. When then happens to the door is irrelevant to the alarm.
Both trip and level alarms must be acknowledged by an operator before their audible and visual warnings will stop.
(Characteristics available in the Table of Type Characteristics.)
Function
The Function drop-down list enables you to select one of 11 operators to use to compare the value of the Triggered By
tag with the Setpoint value configured for the Setpoint field to determine if there is an alarm state.
Setpoint
The Setpoint field enables you to specify the value you wish to be compared to the value of the tag being monitored by
this Alarm tag.
The valid value for the Setpoint field can be provided via any of a constant, an expression, or a tag. Please see Constant,
Expression or Tag for help selecting which to use.
Deadband
The Deadband field enables you to enter a value indicating how much far the Trigger tag’s value must return into the
safe zone before the alarm is no longer considered active. Deadband values are used in systems where some analog
values fluctuate frequently, sometimes providing a false data reading. For example, the level of fluid in a tank aboard a
vessel might shift frequently in high seas, a circumstance that may be perceived as the level of the tank changing, when it
is actually not.
Delay
Disable Alarm
The Disable Alarm field enables you to disable or enable this Alarm tag, using a 0 (not disabled) or 1 (disabled), an
expression or, the value of a second tag. This feature is typically used in situations such as when routine maintenance is
being performed. In such a situation, an alarm can be disabled until the maintenance is complete and communications are
reestablished, thus avoiding false alarms.
Trip
Priority
The Priority field enables you to indicate the priority of this alarm by selecting an Alarm Priority tag. The built-in Alarm
Priority tags have numbers from 0 to 4 with the following meanings:
• None.
• 0 (event) - the alarm will not occur, but its value may still be used as a set point by other tags;
• 1 (critical) - the highest priority alarm;
• 2 (high) - a regular priority alarm;
• 3 (warning) - warning
• 4 (notice) - a notice or informational event. Logged in the event history, but otherwise silent.
You may also create your own Alarm Priority tags.
Sound
The Sound field enables you to identify what audible warning will be played when this alarm is triggered. The Sound
field can be set to a 0, a 1, or to the name of a .WAV sound file to be played.
If the Sound field is set to 0, no sound will be played when this alarm is triggered.
If the Sound field is set to 1, the sound configured in the associated Alarm Priority tag will be played.
If the Sound field identifies the name of a .WAV sound file, it will override any alarm sound configured for the
associated Alarm Priority tag. When specifying a sound file, you must enter its name and extension (e.g. MySound.wav).
The specified sound file must be a .WAV file, and must be stored in the application directory. If the specified sound file
is not found, the alarm will revert to using tones as specified in the associated Alarm Priority tag.
Popup Enable
If the configuration variable AlarmPopupsEnable is set to 1, then Popup Enable will result in a popup dialog being
displayed whenever the alarm is triggered. It is strongly suggested that this feature be used sparingly.
The popup will display the names of all active alarms for which Popup Enable has been set. As alarms are
acknowledged, they will be removed from the popup. Should all the alarms be acknowledged or go inactive while the
popup is displayed, it will close. You may close the popup at any time by selecting the Close button. The popup will not
be displayed again until a fresh alarm event occurs.
The popup does not provide a way to acknowledge the alarm – its purpose is solely to provide extra notification to the
operator of current, un-acknowledged alarms.
Priority Color
When clicked, the Priority Color button opens the Select Color dialog from which you can select the color you wish to
be used to highlight alarms of this priority in the alarm list (thereby helping operators to identify the priority of the alarm
visually
Tone 1 Frequency in Hz
The Tone 1 Freq in Hz field enables you to specify the first of two audio tones that will be used to signal alarms
associated with this Alarm Priority tag. Typically, an alarm sound consists of two tones alternating within a specific time
period (the second of these two audio tones is specified in the Tone 2 Freq in Hz field).
The default value for this property is 2000Hz.
Tone 2 Frequency in Hz
The Tone 2 Freq in Hz field enables you to specify the second of two audio tones that will be used to signal alarms
associated with this Alarm Priority tag. Typically, an alarm sound consists of two tones alternating within a specific time
period (the first of these two audio tones is specified in the Tone 1 Freq in Hz field).
Priority Descriptor
The Priority Descriptor field enables you to enter a short text description (no more than 81 characters in length) that will
be used to identify the priority of those alarms associated with this Alarm Priority tag. This description will appear in
filtering drop-down lists, and in the alarm list, wherever alarm priority is referenced.
Tone Cycles
The Tone Cycles field enables you to specify the number of times an alarm sound (either tones or a specified .WAV file)
is played once an alarm has been triggered.
If you are configuring this Alarm Priority tag to play tones, the Tone Cycles field enables you to indicate the number of
times the alarm tones specified by Tone 1 Freq in Hz and Tone 2 Freq in Hz will cycle (where one cycle is one instance
of the first tone sounding for the amount of time specified in Tone 1 Period in seconds, followed by one instance of the
second tone for the amount of time specified in Tone 2 Period in seconds).
If you are configuring this Alarm Priority tag to play a .WAV file rather than alarm tones, the Tone Cycles field enables
you to specify the number of times the .WAV file is played (whereas the Tone 1 Period in seconds field below enables
you to indicate the duration of play.)
The Tone Cycles field can be set to one of the following values:
• -1 if you wish the tones or the specified .WAV file to cycle infinitely (default)
• 0 if you do not require any alarm sound
• A number representing the number of times you wish the first and second tone or the .WAV file to cycle
Note that, if alarm speech is enabled, the first option (-1 to play the tone indefinitely) will not be available. If this is the
current value when alarm speech is enabled, the tone cycles field will automatically be set to 0.
Area Filter
Name Filter
Use this field to restrict the list of filtered alarms to only those matching a given name. The * wildcard may be used to
permit selection on a set of similar names. For example, "East*" will match "East Pump Alarm", "East Tank Alarm", etc.
Alarm List
Options include “Active”, “Unacknowledged” and “Current”. Only one option may be chosen. Restricts the filter to only
those matching a particular list type.
Modem Tags
Modem tags enable outgoing and incoming calls by providing a link between your VTS application and a modem
configured on your system. This is not the same as configuring a Serial Port that uses a modem for communication.
Your computer must have a voice modem in order to use this feature. Data modems, such as those included with many
laptops, will not function with VTS.
The value of the modem tag can be used to monitor the call status, according to the following table. (These values are
reflected in the Modem Indicator drawing method.)
Value Meaning
0 Modem idle
1 Modem calling
2 Modem answering
3 Modem failed
For example:
Modem1Device = MultiTech Systems MT9234ZPX-UPCI [Trihedral]
If this setting is not provided, the modem manager will select a modem from the list of modems not already associated
with a modem tag. (Results may be unexpected.)
Local modems are typically used only if PPP is being used by VTS, or in a system with custom software designed to use
local modems. Under typical operating conditions, Trihedral recommends that local modems NOT be used.
The text, “Available”, or "Unavailable" in the workstation message field refers to the workstation's availability. It is
displayed even if no modem has been selected.
Note: Once the workstation name has been specified, the Line Name and Name Or Index On Workstation drop-down
lists will automatically update to display the names of the Serial Port tags and modems available on this workstation.
Line Name
The Line Name drop-down list enables you to select the name of an existing phone line to which this modem is attached,
or enter a new and unique line name to which this modem is attached. This name must be unique, and cannot be
identified anywhere else in the system.
The same line name must be used by modems sharing the same physical phone line, even if they are on different
workstations.
Note: Because the index of available modems can change over time, it is recommended that you refer to the modem by
name rather than by its index in the Modem Properties dialog box.
Ring Count
The Ring Count spin box enables you to select the number of rings you wish to occur before the selected modem
answers an incoming call.
If the value of Ring Count is 0, the modem will not answer any calls.
Security Privilege
Select an application security privilege from this drop down if you wish to limit the operation of this control to only
those operators who have been granted the matching security privilege.
In this case, "operation" refers to the ability to disable or enable the tag via the context menu. It does not affect whether
or not the modem will operate while a user without the privilege is logged on.
Application privileges are added using the Administrative Settings security dialog. Information on creating application
privileges can be found in "Add Application Privileges Using the Administrative Settings Dialog".
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
Note: VTS also includes a Modem Tools library that contains modem diagnostics tools that may be added to a page.
Roster Tags
Roster tags are designed to work with the Alarm Dialer call-out system. Using a Roster tag, you may configure contact
information for up to 30 operators. When a Roster tag has been enabled, the call-out system will contact the operators in
order in the event that an alarm has been triggered and has gone unacknowledged for a user-defined period of time. The
call-out system will continue to contact the operators on the active Roster tag until the alarm has been acknowledged.
The Area field, selected during configuration, is especially important for Roster tags. The Area field is used by VTS to
tie the Roster to those alarms that have this same area. If more than one Roster shares the same area, only one of them
can be active at a time. The active Roster Tag in an area is always the one most recently activated – all other Roster tags
with the same area property are automatically de-activated when one is activated.
One Roster Tag, the Default Call-Out Roster, is configured by default in every VTScada system. No names should be
added to this roster. Its purpose is to provide a means of telling VTS to not call anyone. Since only one roster in an area
can be active at a time, if the roster which is active has no names attached, no-one will be called.
Roster tags work with Modem tags, and the Dialer Options and Speech Lexicon tools to form the VTS Alarm Dialer
system. See: Alarm Dialer System.
Note: if your system includes more than one modem, and those modems are attached to servers located in regions with
different area codes, then you must use the Canonical Address Format for each phone number and you must configure
the server's location within the Windows™ Phone and Modem Settings dialog.
The contact fields for the SMS Text option are identical to those for the Voice option. To use the SMS Text option, the
application must have a configured SMS Appliance Tag. See: SMS Appliance Tags.
Communication Method
The Communication Method radio buttons enable you to select the method of contact for this operator record. Options
include phone/voice, pager, or e-mail.
Do Not Contact
The Do Not Contact checkbox enables you to temporarily disable an operator's record in the roster. In the event that an
alarm is triggered and goes unacknowledged, this operator will be skipped by the roster/dial-out system until the
operator's contact information has been enabled.
Contact Description
Used to identify each contact in the list. This is an optional field. If left blank, the Phone Number or E-mail address of
the contact will be shown.
Note: if your system includes more than one modem, and those modems are attached to servers located in regions with
different area codes, then you must use the Canonical Address Format for each phone number and you must configure
the server's location within the Windows™ Phone and Modem Settings dialog.
Pagers: The Phone Number field requires the paging company’s T.A.P. Modem Number (TAP = Telocator
Alphanumeric Protocol). This number allows access to the alphanumeric paging network, enabling VTS to send a
message to the pager phone/PIN (see PIN Number below). The correct number for the Phone Number field can be
obtained from your paging company’s technical support team.
Pager PIN
This field is used only with the pager communication method. A PIN is a required part of the pager contact information.
Time Zone
If one or more of the contacts are located in a time zone other than that of the alarm server, they may find it inconvenient
or confusing to translate the time stated in the alarm notification to their local time. If the contact's time zone is provided,
using this drop-down list, then they will recieve a message that has been adjusted to their location for them.
The list uses the names built into the Microsft Windows' Multilingual User Interface Pack.
Click on the Close button and correct the e-mail address before proceeding. The Roster tag will not permit you to save a
badly formatted e-mail address.
The SMS Appliance tag will re-initialize the appliance once per minute to verify that it is still attached and functioning.
Any error will result in a complete reset, which is repeated at a regular interval until the tag is disabled or a functioning
device is available.
The SMS Appliance tag will queue messages to send, so long as it is operating normally. Received messages are
published immediately. If these should be queued, it is the responsibility of the subscriber to do so.
The value of the SMS Appliance tag can be used to monitor the device status, according to the following table. (These
values are reflected in the SMS Indicator drawing method.)
Value Meaning
1 Connected to cell modem
2 Sending an SMS Message
3 Receiving an SMS message
4 Checking the connection to the cell
modem
5 Disabled
6 Workstation with modem is not
available
7 Modem unavailable
Privilege
Select an application security privilege from this drop down if you wish to limit the operation of this control to only
those operators who have been granted the matching security privilege.
In this case, "operation" refers to the ability to disable or enable the tag via the context menu. It does not affect whether
or not SMS messages are sent while a user without the privilege is logged on.
Application privileges are added using the Administrative Settings security dialog. Information on creating application
privileges can be found in "Add Application Privileges Using the Administrative Settings Dialog".
Disable
Check this box to disable the device without removing it or deleting its configuration.
Historian Tag
The Historian Tag is used to write data that is to be logged to storage. (The Logger tag controls only how often the
Historian tag writes.)
Every VTS application will have a default instance of a Historian tag named "SystemHistorian". In many cases, this will
be the only Historian tag that you use in an application. The data it saves will be written to a VTS proprietary database
format.
The Historian tag's configuration panels provide access to only some of the available options. With a combination of
Historian tags and related application properties, you can also configure the following:
• Save data to a proprietary database such as Oracle, Microsoft SQL Server, MySQL or SQLite instead of the VTS
database.
• Ensure that a redundant backup exists by writing to separate storage locations on two or more servers.
• Configure load sharing between servers.
See also: Data Logging.
The status of the Historian's connection to its data store can be viewed. See: Monitor the Historian's Connection.
Storage Name
Advanced Use Only. Allows a user-specified name to be used, rather than the tag's Unique ID. This provides control
over the folder name that will be used in the data store.
If configuring an ODBC-based database, the use of this field is recommended, as the tag's Unique ID may not remain
unique after being modified to a form that can be used by the ODBC driver.
Storage Type
Advanced Use Only. May be "File" if using the VTS data store. May be "ODBC" if configuring an ODBC-based
database. Defaults to "File" if not otherwise specified and therefore need not be set if using the VTS data store.
Storage Location
Advanced Use Only. If using the VTS data store, you may use this field to specify the path to a storage location other
than the default. (C:\VTS\AppName\Data)
If using an ODBC-based database, this should be set to either the configured DSN (Data Source Name) of the database,
or the connection string.
If you choose to delete data older than a given number of days, you will have the option of setting how many days that
will be. The default is 365.
The sweep interval sets how frequently older data is deleted. When deleting data older than a set number of days, the
sweep interval will always be exactly ¼ of the number of days specified. So, if deleting data older than 1 year, the actual
removal of the older records will happen only 4 times per year. Between sweeps, data older than the set limit will
accumulate.
If you choose a maximum number of records to keep, you can set the sweep interval to any number of days that you
would like. Records beyond the set maximum number may accumulate between sweep intervals.
Logger Tags
Logger tags are used to control when data is to be logged. They are required only for tags such as the Analog Input,
Digital Input and Calculation that do not have logging built-in.
The Logger tag must be linked to a Historian tag, which will perform the actual recording of the data. The Logger's only
job is to define when the value from the source tag is to be recorded.
It is recommended that only one Logger & Historian be directly configured to record values per standard tag. A tag's
name is used to identify the database table to which the Historian writes. If you need to log a tag's value at multiple rates,
see: Using Function Tags to Create Multiple Data Logs of an I/O Tag.
Logger tags themselves have no values and cannot be drawn on a page
Enable
The Enable field allows you to enable or disable the logging of tag data by this logger using a constant value (either a 0,
or a 1), an expression, or the value of a second tag.
If the Constant checkbox beneath the Enable field is selected:
• Enter a 1 to enable the logging of the data for the tag being monitored.
• Enter a 0 to disable the logging of the data for the tag being monitored.
Any expression or tag that returns either a 0 or 1 (or non-zero) can also be used. Please see Constant, Expression or Tag
for help selecting which option to use.
Note: In an Excel spreadsheet, this value must always be entered as a text value to avoid ODBC problems mixing
numbers and text in the same column. To do this, type the apostrophe character (') before typing the number.
Note: Those familiar with versions of VTS prior to 10 may have expected to see a number of other fields in this tab.
Those functions have been either taken over or made obsolete by the Historian.
Interval (Seconds)
The Interval field enables you to specify a period of time (in seconds or in fractions of a second) between logs of the
value of the tag being monitored.
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
Report Tags
The Report tag type is used to track the data of a user-defined group of tags to a user-defined output format at regular
intervals.
VTS also includes a built-in Reports page that enables the generation of reports, along with a set of report tools that
enable you to build your own custom reports page (see "Report Tools Library Reference"). The difference between the
The Report tag’s ID tab differs from the standard in that it includes an extra field: Report Type.
Report Type
The Report Type drop-down list enables you to select the type of report that you wish this tag to generate. This may be
one of:
Daily Snapshot Report
Daily Total Report
Driver Communication Error Detail Report
Driver Communication Summary Report
Hourly Snapshot Report
Hourly Total Report
Standard Report
Load Group
The Load Group button enables you to load a set of tags that has previously been saved. A loaded tag group can then be
used to generate a new report based on your application's requirements. Step-by-step instructions can be found in Saving
and Loading Tag Groups for Reports.
Save Group
The Save Group button enables you to save the tags that have been configured for this report as a group that can later be
reused for report generation. Step-by-step instructions can be found in Saving and Loading Tag Groups for Reports.
Types
Use this drop-down list to select the type of tags you wish to include in this report.
Note: The Types drop-down list is set automatically according to the setting of the Report Type drop-down list on the
Report tag's ID tab. You will rarely need to change it.
Areas
The Areas drop-down list enables you to filter the tags to be included in this report by their Area property.
Tags Available
The Tags Available list displays the names and descriptions of those tags that are available for inclusion in the reports to
be generated by this tag. The < button enables you to move a selected tag (or tags) between the Tags Available list and
the Tags In Report list. The << button enables you to move all tags in the Tags Available list to the Tags In Report list.
Presets
The Presets drop-down list can be used to select a pre-configured period of time for the data to be included in this report.
Trigger Tag
The Trigger Tag field enables you to select any tag with a numeric value whose value will be used to generate this report
(when the value of the selected tag changes, the report will be generated). The Trigger Tag field only becomes enabled
when the By Tag radio button is selected.
Right-clicking the name of the tag that has been selected in the Trigger Tag field opens the tag properties folder for the
selected tag.
Workstation
The Workstation field enables you to enter the name of the workstation upon which this report will be generated. By
default, the Workstation field is set to the name of the local workstation.
Output Type
The Output Type drop-down list enables you to select the format to be used to display this report. This can be one of:
• Default Printer: Prints the report to the printer configured for your PC under the Windows operating system.
• Printer: Enables you to specify the path to a printer other than the default printer configured for your PC under the
Windows operating system.
• Text File: Generates the report as a plain, unformatted text file with the extension .TXT. This option enables the
transmission of report data in the body of an e-mail message (please see "E-mail Report" below).
• Screen Display: Generates the report in a window on your screen. This format enables the use of a Microsoft Excel
template file to modify the way your report appears. Please refer to "Using a Microsoft Excel Template File to
Generate Reports".
Note: A report that has had its Output Type configured as ‘Screen Display’, and for which the ‘Use Excel to Display
Screen Reports’ checkbox has been selected will open as a regular screen display over VIC connections. The ‘Screen
Display Using Microsoft Excel’ feature is not available for VIC connections at the present time.
• CSV File: Generates the report as a comma-separated value file with the extension .CSV. Such files are easily
imported by a variety of different database software packages. This report output option enables the transmission of
report data as an attachment to an e-mail message (please see "E-mail Report As Attachment" below).
• Formatted Excel XLS File: Generates the report as a formatted Microsoft Excel spreadsheet with the extension
.XLS. (The report will feature a bold title and column headings.) This report output option enables the transmission
of report data as an attachment to an e-mail message (please see "E-mail Report As Attachment" below).
• Plain Excel XLS File: Generates the report as a plain, unformatted Microsoft Excel spreadsheet with the extension
.XLS. (Unlike the Formatted Excel XLS File option, the report will not feature a bold title and column headings.)
This report output option enables the transmission of report data as an attachment to an e-mail message (please see
"E-mail Report as Attachment" below).
• Access MDB File: Generates the report as a Microsoft Access database file with the extension .MDB. This report
output option enables the transmission of report data as an attachment to an e-mail message (please see "E-mail
Report As Attachment" below).
• ODBC Data Source: Enables you to specify an existing ODBC data source associated with an existing ODBC-
compatible database file into which you wish the report data to be saved.
E-mail Report
E-Mail Settings
The E-Mail Settings button can be clicked to launch the E-Mail Settings dialog where the recipients, subject, and
message for the e-mail can be configured. See: Send Report Data by E-Mail.
Destination
The destination field's label changes according to the selected report output type|tag=Report Type Drawing Method.
You may enter a path, printer, or ODBC data source for the report. (A path is not required for Default Printer or Screen
Display output types). You may specify a path or printer using either the Browse button to navigate to the desired
location, or by manually typing the path into the destination field.
Browse
The Browse button opens a dialog that allows you to explore your hard drive to locate a printer (when Printer is selected
in the Output Type drop-down list) or path to a Microsoft Excel template to be used to generate this report (when Screen
Display is selected in the Output Type drop-down list). Instructions on utilizing Microsoft Excel templates to generate
reports can be found in "Using a Microsoft Excel Template File to Generate Reports ".
Note: A report that has had its Output Type configured as ‘Screen Display’, and for which the ‘Use Excel to Display
Screen Reports’ checkbox has been selected will open as a regular screen display over VIC connections. The ‘Screen
Display Using Microsoft Excel’ feature is not available for VIC connections at the present time.
Rename sheets/tables
Used in conjunction with the previous option, this checkbox can be selected if you wish the report spreadsheet(s) or
table(s) to be renamed corresponding to the tag used in each iteration.
Generate an event
When checked, an event will be added to the application's history. Events can be viewed in the Alarm Page by selecting
the History display option.
Setting up a database
You can use any ODBC compatible database such as MS-Access, Microsoft SQL Server, MySQL, Oracle, etc.
Instructions on how to install and configure a database program are beyond the scope of this documentation.
Once you have a database created, you will need two tables within it to hold the data that VTS will export. In the
Example directory under VTS (normally found as C:\VTS\Example) there are four files to help you with this task.
• SQLLoggerAccess.mdb
• SQLLoggerMySQL.sql
• SQLLoggerOracle.SQL
• SQLLoggerSQLServer.SQL
The three files which end with the extension ".sql", contain SQL commands to create the tables you will need in your
database.
If you do not have a database and do not own a database program, you can still use this feature of VTS/VTScada by
following these steps:
From the template directory of VTS, copy the file named SQLLoggerAccess.mdb to your application directory.
Rename it to match the data you plan to collect, being sure to keep the .mdb extension on the name.
You are now ready to proceed.
Note: This must be done on all potential servers for a networked VTS application. The DSN must be identical on each
machine.
Database Type
Tell VTS what type of database you are writing to.
CAUTION: The Database Type selection MUST match your database. Choosing an incompatible type will result in the
tag failing to write values to your database due to differences in data format.
Username, Password
The Username and Password fields should match whatever is required to connect to your database. If you are using MS
Access and did not configure a user name and password, then you may leave these fields blank.
Trigger On
If you have chosen Triggered as the Log Type, you also have the choice of whether the trigger happens on a Value
Change, a Rising Edge (from False to True) or a Falling Edge (from True to False. This applies to Constants,
Expressions and Tags.
Log Invalids
You have the option of whether or not to record "invalids" as part of the data being written. An invalid data value is
essentially a NULL.
Enable
Where triggering controls the timing of data output, Enable sets whether or not data is to be output at all. Where the two
controls offer the same options of "Constant", "Expression" and "Tag", the difference may seem subtle, but it is
fundamentally different. Enabling the logger group means that logging is switched on or off. Triggering means that (if
logging is enabled) data values are written when the trigger signals them to be.
Note: if a SQL Logger Group is disabled, then all the SQL Logger tags attached to that group are automatically disabled.
Enable
The "Enable" window allows you to enable or disable logging of the selected value by entering a 1 for Enable and a 0 for
disable. You also have the ability to toggle whether logging is enabled based on a script expression, or by selecting a tag:
Use these tags sparingly. Since each selected statistic is gathered using a child tag, the count of tags in use in your
application will correspondingly increase by the number of statistics being gathered. There is also an increased load on
the CPU. Select only the time frames required.
Source
The Source tab is used to select which tag is to be monitored. Any tag with a numeric value may be selected as the
source.
Available time frames are the same as for the Minimum Values tab.
Available time frames are the same as for the Minimum Values tab.
Calculation Tags
The Calculation tag type is used to wrap an expression, with the resulting value of the Calculation tag being the result of
the expression. This tag type replaces the Function tag.
For a guide to the VTS expression language, see: Creating Expressions.
The characteristics of the Calculation tag are identified in the table below.
(Characteristics available in the Table of Type Characteristics.)
Calculation
The Calculation field enables you to specify a constant numeric value, an expression, or reference another tag that will
be the calculation run by this tag. The Calculation field corresponds to the selected associated checkbox. Select
Expression and click on the button to open the expression editor.
Engineering Units
Provide units of measure that the input data represents. Possible values for this field include "rpm" "degrees C", "%", etc.
Questionable Data
Use this field to flag this tag’s data in the event that you suspect the values it is reporting might not be accurate, or when
this tag has initially been created and you wish to ensure that its data is marked for extra monitoring.
Note: There is no specific "owner" tag type, rather an owner tag is typically a custom designed tag that is created using
VTS scripting code for special projects.
Owner
The Owner field enables you to specify a tag to which this contributor should supply its data. An owner tag is one which
you must design and then create, using the VTS scripting language.
The owner tag may keep track of different aspects of each contributor's data, from the presence of a user-defined manual
data value, to questionable data, according to the configuration of the checkboxes appearing beneath the Owner field.
These checkboxes also determine the way that this contributor tag's value should be used in the owner tag's calculations.
Counter Tags
Counter tags provide a means to count events such as pump starts or equipment cycles. A count is recorded each time the
source changes from 0 to non-zero.
Note: an invalid value for the source is not assumed to mean a 0 or off state. A transition from invalid to 1 will not be
counted.
The Counter tag retains its value between application restarts and uses the last known valid source value when counting.
For example, if the data source was 1 (i.e. running) when VTS stopped and is 1 when VTS restarts, it is assumed that the
equipment continued to run while VTS was offline and the counter is not incremented. Similarly, if the source was 0 (i.e.
off) when VTS stopped and is 1 when VTS restarts, it is assumed that the equipment started at least once while VTS was
offline and the counter is incremented by 1.
Note: Never attempt to attach a Logger tag to a Counter tag. Counter tags have a built in logger.
Also: Note that right-clicking on a Counter tag will not cause the Historical Data Viewer window to open.
Source
The source can be any tag or calculation whose value will change between 0 and a non-zero value. The count will be
increased each time the source changes from 0 to a non-zero.
Constants are not useful here, but are a standard part of this type of selector.
Log Interval
The Counter tag will log its value at the end of each interval specified. This interval goes by the clock, not by running
time. If, for example, the log interval is set to "Day", the tag's value will be logged at midnight, not at the end of 24 hours
of operation. If the log interval is set to "Hour", the tag's value will be logged each hour on the hour. "Weekly" means
midnight Sunday night and "Monthly" means at midnight before the first day of the month.
Engineering Units
Text that states what the Counter tag is counting (e.g. Starts).
External Reset
Allows you to specify a tag or calculation to force a reset of the counter. Note that the current value of the tag will
always be logged before a reset. The reset will occur when this source changes from a 0 or false value to a non-zero or
true value. A change from invalid to true does not cause a reset.
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
Use these tags sparingly. Since each selected statistic is gathered using a child tag, the count of tags in use will
correspondingly increase by the number of statistics being gathered by each Digital Statistics tag. There is also an
increased load on the CPU. Select only the time frames required.
On-Count Units
Similar to the Engineering Units field of analog tags, this value is used for display purposes only. Use it to describe what
is being counted.
Function Tags
The Function tag type is used to perform mathematical and logical calculations using numeric values and/or the values of
other tags. A Function tag can accept up to four tag values or numeric values as properties, and the result of the
calculation becomes the value of the Function tag. Other tags can use the value of a Function tag.
A Function tag will return a value of 1 when the specified input tags are Invalid and the AND operation is used.
Similarly, a Function tag will return a value of 0 when the specified input tags are Invalid.
Function tags are an older technology. They have been replaced by Calculation tags for most applications.
(Characteristics available in the Table of Type Characteristics.)
OpCode
The OpCode drop-down list enables you to specify the type of operation to be performed on the values associated with
this Function tag.
For supported calculations that accept multiple values, any Invalid values are ignored (Invalid values include any
Function Parameter X fields that have No Tag Selected chosen, have a value of 0, or are left blank).
The supported operations are:
+ Function Parameter 1 + Function Parameter 2 + Function Parameter 3 + Function Parameter 4
(excluding any Invalid values).
- Function Parameter 1 - Function Parameter 2 - Function Parameter 3 - Function Parameter 4
(excluding any Invalid values).
* Function Parameter 1 * Function Parameter 2 * Function Parameter 3 * Function Parameter 4
(excluding any Invalid values).
/ Function Parameter 1 / Function Parameter 2 / Function Parameter 3 / Function Parameter 4
(excluding any Invalid values).
& Function Parameter 1 & Function Parameter 2 & Function Parameter 3 & Function Parameter
4 (excluding any Invalid values).
| Function Parameter 1 || Function Parameter 2 || Function Parameter 3 || Function Parameter 4
(excluding any Invalid values).
Average Average of Function Parameters 1 through 4 (excluding any Invalid values).
Note: A Function tag will return a value of 1 when the specified input tags are invalid and the AND operation is used.
Similarly, a Function tag will return a value of 0 when the specified input tags are invalid.
Function Parameter X
The Function Parameter 1 through to Function Parameter 4 fields enable you to specify up to four factors in the
calculation performed by this tag.
The Function Parameter X fields toggle between a numeric entry field and a tag selection field, according to the setting
of their related Constant checkbox (described below).
If the Constant checkbox beneath a Function Parameter X field is selected, you may enter a numeric value to be used in
this tag's calculation.
If the Constant checkbox beneath a Function Parameter X field in not selected, a … button and a X button appear to the
right of the Function Parameter X field. You may click the … to open the Tag Browser, which enables you to select an
Note: For supported calculations that accept multiple values, any Invalid values are ignored. Invalid values include
Function Parameter X fields (where X is 1 through 4) that have No Tag Selected chosen, have a value of 0, or have been
left blank. For example, if the Function tag is configured to perform an addition operation on three factors, and the fourth
factor is left Invalid, the resulting calculation would be Function Parameter 1 + Function Parameter 2 + Function
Parameter 3. Because no Function Parameter 4 was Invalid, the field is ignored.
Constant
Constant checkboxes toggle the field with which they are associated between a numeric entry field, and a tag selection
field.
If the Constant checkbox is selected, the associated field will accept the entry of a number.
If the Constant checkbox is not selected, the associated field contains a … button and a X button. The … button opens
the Tag Browser, which enables you to select an existing tag to associate with this tag, or create a new tag to associate
with this tag. (Information on using the Tag Browser can be found in "Tag Browser"). The X button clears a selected tag
from the field.
Note: You cannot select a Function tag as one of its own function parameters.
Note: A Function tag will return a value of 1 when the specified input tags are invalid and the AND operation is used.
Similarly, a Function tag will return a value of 0 when the specified input tags are invalid.
Manual Data
Enables you to set a user-defined value for this tag, rather than reading the value from the associated I/O device (i.e. this
user-defined value overrides the data incoming from the equipment).
If this field is anything other than a blank, or an invalid number, then the value from the I/O device is ignored and this
value will be used instead.
The drawing method used by any tag with Manual Data will include an exclamation mark.
Note: If the value entered into the Manual Data field is a 0, the actual value reported by the equipment is also overridden,
as 0 is considered a valid value. Therefore, if it is your intention to resume reading data from the I/O device, you must
clear the Manual Data field entirely.
Questionable Data
Use this field to flag this tag’s data in the event that you suspect the values it is reporting might not be accurate, or when
this tag has initially been created and you wish to ensure that its data is marked for extra monitoring. Please see the topic
Merit Tab and Quality Tab, for details.
Note: There is no specific "owner" tag type, rather an owner tag is typically a custom designed tag that is created using
VTS scripting code for special projects.
Owner
The Owner field enables you to specify a tag to which this contributor should supply its data. An owner tag is one which
you must design and then create, using the VTS scripting language.
The owner tag may keep track of different aspects of each contributor's data, from the presence of a user-defined manual
data value, to questionable data, according to the configuration of the checkboxes appearing beneath the Owner field.
These checkboxes also determine the way that this contributor tag's value should be used in the owner tag's calculations.
Note: Only one Logger tag can be directly associated with a single input or output tag. If you need to have multiple
loggers with different logging rates, please refer to Using Function Tags to Create Multiple Data Logs of an I/O Tag
Any numeric tag may be used as the data source, so long as its value is logged. The exception is if the data source is
another History Statistics tag. A warning will appear if you attempt to use a data source that is not being logged.
Note: Use care if attempting to use a Digital Output tag as a data source for counting 0 to 1 transitions (equipment starts).
While the output tag may be writing a 1 to the equipment, the value of the Digital Output tag itself will only be 1 if it is
configured for a pulse duration, or if it has a feedback configured and there is a delay between when the output writes
and the feedback shows that the value has been written. If neither of these is true, then the Digital Output tag's value will
remain 0 and you will not get the number of times that it wrote a start value to the equipment.
The calculated value of the History Statistics tag can be displayed on a page using any of the Analog drawing methods.
While a History Statistics tag can be selected for inclusion in the Historical Data Viewer (HDV), clicking on one that is
drawn on a page will not cause the HDV to open. Note that if you want to save the values calculated by the History
Statistics tag, you will need to configure a Logger tag for it.
Source
Source Variable
For all standard VTS tags, the only source variable is the tag's value. Custom tags, written specifically for your
application, may make other variables available. If so, the drop-down list will be populated with the available choices.
Statistic
Select the calculation to be performed from the following list:
• Average – time weighted average over the data period.
• Minimum value during the data period.
• Maximum value during the data period.
• Value at start of the data period.
• Zero to non-zero transitions during the data period.
• Non-zero time. Example: total time that a pump was running during the period.
• Totalizer – the value of the source added to itself each second during the data period.
Scaling Factor
The calculated value will be multiplied by the factor you specify in this field. Use for applying a scaling factor to the
value, for example if correcting for raw values that are measured in terms of minutes or hours instead of seconds.
Defaults to 1.
Engineering Units
Provide units of measure that the input data represents. Possible values for this field include "rpm" "degrees C", "%", etc.
Questionable Data
Use this field to flag this tag’s data in the event that you suspect the values it is reporting might not be accurate, or when
this tag has initially been created and you wish to ensure that its data is marked for extra monitoring.
Update Rate
Sets the frequency at which the statistic is recalculated. The calculation will always use data from the full length of time
specified by the Latest field, ending on the clock interval specified by this update rate. For example, if the update rate is
5 minutes, the update will occur at the 5 minute mark, 10 minute mark, etc.
The update rate must not be greater than the duration of time over which the statistic is being calculated, and can be no
smaller than 0.1% of that time period.
Machine 1 IP
The Machine 1 IP field enables you to enter the IP address of the first workstation to be monitored by this tag.
Machine 1 Subnet
The Machine 1 Subnet field enables you to enter the subnet for the first workstation to be monitored by this tag.
Manual Data
The Manual Data property enables you to enter a value for this tag, rather than reading the value from the monitored
workstations. In this instance, the Manual Data property may be set to 0, indicating that the workstation is not connected;
or 1, indicating that the workstation is connected.
Questionable Data
Use this field to flag this tag’s data in the event that you suspect the values it is reporting might not be accurate, or when
this tag has initially been created and you wish to ensure that its data is marked for extra monitoring. Please see the topic
Merit Tab and Quality Tab, for details.
Delay
The Delay field enables you to enter the amount of time (in seconds or fractions of a second) that the system
will wait before triggering an alarm for this tag. This tag must therefore be in an alarm state for the amount of
time specified in the Delay field before an alarm will be indicated.
Sound
The Sound field enables you to identify what sound will be played when this alarm is triggered. The Sound field can be
set to a 0, 1, or to the name of a .WAV sound file to be played.
If the Sound field is set to 0, no sound will be played when this alarm is triggered.
If the Sound field is set to 1, an alarm sound whose properties are configured on the associated Alarm Priority tag will be
played.
If the Sound field identifies the name of a .WAV sound file, it will override any alarm sound configured for the
associated Alarm Priority tag. When specifying a sound file, you must enter its name and extension (e.g. MySound.wav).
The specified sound file must be a .WAV file, and must be stored in the application directory. If the specified sound file
is not found, the alarm will revert to using tones as specified in the associated Alarm Priority tag.
Alarm Disable
The Alarm Disable checkbox enables you to disable and enable the alarm for this tag. Alarm disabling is typically used
in situations where routine maintenance is being performed, or when you are aware that another interruption in
communications will occur for a period of time. In such a situation, an alarm can be disabled until the maintenance is
complete and communications are reestablished.
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
Note: The source tag's value must be logged in order for the Rate of Change tag to work properly.
The rate of change will be positive if the source is increasing in value, and negative if the source tag’s value is
decreasing. The tag can be configured to report the absolute value instead, thus showing a positive value for any rate of
change.
For example, the water level in a large holding tank would normally change slowly unless it started to leak. A tank
feeding a process would be expected to have a level decreasing at a minimum rate unless the outlet became blocked. A
Rate of Change tag can be configured for either situation in order to detect departures from an expected rate of change.
Alarms built into the tag can be triggered when the rate is too fast or too slow.
Note that in remote applications, the Rate of Change tag information is distributed from the server to workstations on a
regular interval (default: 60 seconds) or when the value changes by a given percentage (default: 5%). These values are
controlled by variables in your configuration file. See: RateOfChangeTagRPCThreshold and
RateOfChangeTagRPCInterval for details.
(Characteristics available in the Table of Type Characteristics.)
Positive Rate
When checked, the absolute value of the rate of change will be shown. Otherwise, a decreasing value in the source tag
will be displayed as a negative rate of change.
Note: The rate of change calculation is affected by data noise and transient spikes. The period should always be set to a
value larger than the frequency of data noise. To avoid alarms due to transient noise, set a delay on the alarm. (see: Rate
of Change Properties: Alarms Tab.)
Engineering Units
Used by various drawing methods. Set this field to display the units of the rate of change.
Questionable Data
Use this field to flag the tag’s data in the event that you suspect the values it is reporting might not be accurate, or when
this tag has initially been created and you wish to ensure that its data is marked for extra monitoring.
Manual Data
This optional field allows you to provide a constant value that will be used instead of input read by the communication
driver. It is commonly used when testing a new Analog Input tag when application is not attached to a live data source.
Tags that are using manual data are marked on screen by a flashing exclamation mark.
Sound
The Sound fields can be used to set the sound that will be played when either the low alarm or the high alarm is
triggered. These fields can be set to blank, 0, 1, or to the name of a .WAV sound file to be played.
If a Sound field is set to 0, no sound will be played when this alarm is triggered.
If a Sound field is set to blank or 1, an alarm sound whose properties are configured on the associated Alarm Priority tag
will be played.
Acknowledge the dialog by clicking on the Close button, then adjust the complementary value (either a larger period or a
smaller refresh interval) before continuing to set the value you were first attempting to set.
Totalizer Tags
The Totalizer tag provides a means of accumulating the sum of another tag's (or calculation's) value over time. To put it
more precisely, the totalizer integrates a value over a time period.
The totalizer looks for its source to represent values "per second", "per minute" or "per hour". It is important to select a
source time scale that matches the source values. For example, when recording total flow from a meter that is measuring
flow rate per second, selecting the "per minute" source time scale is guaranteed to produce results that are incorrect.
You can also use the totalizer to record running time. For this, the source value must be a 1 when the equipment is
running and a 0 when stopped. Given a source time scale of "per second" this will add 1 second, per second while the
equipment is running and 0 seconds per second while stopped.
An invalid is not taken to mean that the value (or running state) of the tag is 0. If the source's value goes to invalid, it will
be assumed that the last known value remains in effect and that value will continue to be used for the integration.
Values are added to the Totalizer tag at the end of each elapsed source time scale. This will not necessarily be "on the
second" or "on the minute".
Note: If the totalizer is drawn with a Set Analog Value tag or a Numeric Entry tag, two things will happen when the
operator uses either drawing method: the totalizer will log its current value and it will reset to whatever value is set by
the drawing method instead of 0.
It should be noted that a plot of the Totalizer tag on the Historical Data Viewer will show a constant value from one log
interval to the next, with an instant change between values at each log interval.
The current value of the Totalizer tag is saved between VTS restarts.
Note: Never attempt to attach a Logger tag to a Totalizer tag. Totalizer tags have a built in logger.
Log Interval
The Totalizer tag will record its current total to a log file at the end of each interval specified. This interval goes by the
clock, not by running time. If, for example, the log interval is set to "Day", the tag's value will be logged at midnight, not
at the end of 24 hours of operation. If the log interval is set to "Hour", the tag's value will be logged each hour on the
hour. Weekly means midnight on Sunday night and Monthly means midnight starting the first day of the month.
Engineering Units
Text stating what the Totalizer tag is totaling (e.g. Gallons, Liters…).
External Reset
Allows you to specify a tag or calculation to force a reset of the totalizer. Note that the current value of the tag will
always be logged before a reset. The reset will occur when this input changes from a 0 or false value to a non-zero value.
A change from invalid to non-zero does not cause a reset.
Note: There are consequences if you change the selected Historian tag after you have begun
collecting data. If you switch to a new Historian (perhaps for organizational or load sharing
purposes), the data collected for this tag by the previous Historian will become inaccessible.
Script Tags
Script tags monitor the value of another tag and enable the execution of a piece of script code upon a change in the
monitored tag's value. The sections that follow discuss Script tags in detail.
(Characteristics available in the Table of Type Characteristics.)
In Tag Scope
The In Tag Scope field enables you to specify a tag to associate with this tag. The tag identified will be the tag within
which the scripting code defined by this Script tag will run.
The In Tag Scope field can be used to associate this tag with a new or existing tag using the … button. The … button
opens the Tag Browser, which displays the existing tags for your application, and enables you to create a new tag using
its New button. (Information on using the Tag Browser can be found in "Tag Browser").
The In Tag Scope field can be cleared using the X button to its right.
Right-clicking the name of the tag that has been selected in the In Tag Scope field opens the tag properties folder for the
selected tag.
Launched Module
Controller Model
The options are, Duplexer or Intrinsically Safe Duplexer. Defaults to Intrinsically Safe.
Number of Pumps
Set the number of pumps in the station, thereby controlling how many associated child tags will be created. Ranges from
one to two.
Well Depth
Provide the depth of the well, as measured in the units specified in the next field. Setpoints must be with the range of the
well depth provided.
Depth Units
Provide the system of units to be used for the depth of the well. This value is used only as a label on the display.
Well Volume
Provide the volume capacity of the well, as measured in the volume units specified in the next field.
Volume Units
Provide the system of units to be used for measuring the volume of fluid in the well. This value is used only as a label on
the display.
Privilege
If you wish to restrict access to the controls of this station, select the application privilege to be associated with it. Only
the operators who have been assigned a security rule that includes this privilege will be able to control the station.
Port
Select the communications port to use for this station. By default, the nearest parent will be selected.
Modbus Configuration
The driver created for this station will be based on the Modicon Driver. Use the fields in this section to configure the
details of the Modbus protocol that will be used. For detail, see: Modicon Driver Tags.
Station Number
Poll Sequence if this tag is using a PollDriver. Also used for sorting the data in a Pump Activity or Derived Flow report.
You may find it easier to set the location using the map interface than to enter the latitude and longitude values here. See:
Site Map.
Controller Model
Specify whether this tag is to be used with the MPE SC1000 or the SC2000 controller.
Number of Pumps
Select the number of pumps that are installed at this station. Possible values range from one to four.
Well Depth
Provide the depth of the well, as measured in the units specified in the next field.
Depth Units
Provide the system of units to be used for the depth of the well. This value is used only as a label on the display.
Flow Units
Provide the system of units to be used for flow. This is required only if flow calculations are supported by the controller.
Well Volume
Provide the volume capacity of the well, as measured in the volume units specified in the next field.
Volume Units
Provide the system of units to be used for measuring the volume of fluid in the well. This value is used only as a label on
the display.
Privilege
If you wish to restrict access to the controls of this station, select the application privilege to be associated with it. Only
the operators who have been assigned a security rule that includes this privilege will be able to control the station.
Port
Select the communications port to use. By default, the nearest parent will be selected.
Modbus Configuration
Station Number
Poll Sequence if this tag is using a PollDriver. Also used for sorting the data in a Pump Activity or Derived Flow report.
Provides an Enabled / Disabled option for each of the auxiliary input addresses of the station. The actual value being
monitored by each input, N, can be configured using the drop-down list in the "Input N" section of the panel.
Number of Pumps
Lift stations may have from one to six pumps.
Well Volume
Provide the volume capacity of the well, measured in the Units value specified (US gallons or Liters). This value is used
by related reports.
Units
Select the system of measurement to be used. Choices are Metric (base unit: meters), Imperial A (base unit: feet) or
Imperial B (base unit: inches).
Negative Offset
An offset to the level measurement, used to account for the distance from the bottom of the probe to the bottom of the
well. Since the zero level in VTS is relative to the bottom of the probe, failing to add the value of this offset can result in
false alarms and incorrectly displayed values.
Privilege
If you wish to restrict access to the controls of this station, select the application privilege to be associated with it. Only
the operators who have been assigned a security rule that includes this privilege will be able to control the station.
Port
Select the TCP/IP or Serial Port tag that is to be used for communication with the equipment. If the station is being
created as a child tag of a port, the ancestor port tag will be selected automatically.
Protocol
Selection determines what type of communications driver will be created for use in this station. Choices are DNP3 or
Modbus
Protocol Configuration
Configuration options vary according to the selected protocol type. For detail, see: DNP3 Driver Tags or Modicon Driver
Tags.
Station Number
Poll Sequence if this tag is using a PollDriver. Also used for sorting the data in a Pump Activity or Derived Flow report.
You may find it easier to set the location using the map interface than to enter the latitude and longitude values here. See:
Site Map.
Area
After pressing Tab or Enter to finish entering the name, the Area field will automatically configure itself to match the
name that you provided. This is done so that, when viewing alarms on the Alarm Page, any alarms from different sites
that happen to have the same description (a very likely scenario) can be told apart by looking at the Area column. You
are free to change the Area field if you wish.
Description
A description should be provided for every site.
High Alarm Configured in the same way as the Low Alarm. When the input's value goes above this setpoint, an
alarm of the specified priority will be activated.
The Delete button will clear an I/O tag's configuration, effectively removing the matching child tag. It does not destroy
the matching tag number, which may be used again later.
Description Since the names are pre-defined, you must provide a description for each tag in order for operators to
know what the value represents.
Scaled Min The minimum value for this input, in human terms.
Scaled Max The minimum value for this input, in human terms.
Units Engineering units that the input represents.
Description Since the names are pre-defined, you must provide a description for each tag in order for operators to
know what the value represents.
OFF text / ON text These columns match input states zero and one, respectively. You may change the text
accordingly if state zero is defined as "ON" and state one is defined as "OFF" at your operation.
Alarm Delay Configure a time period, measured in seconds, for which the tag must remain in its activation state
before an alarm is considered to have occurred.
Statistics Tracking Check in order to enable tracking of On Time, or On Counts of this input, over time. Two
History Statistics tags will be created for each option you choose. Statistics over the past 24 hours and statistics for the
time period, "yesterday".
Description: Since the names are pre-defined, you must provide a description for each tag in order for operators to
know what the value represents.
OFF text / ON text. These columns match input states zero and one, respectively. You may change the text
accordingly if state zero is defined as "ON" and state one is defined as "OFF" at your operation.
Configuration Tags
Tags in this category relate to the appearance or structure of your application. This list includes Context tags, Font tags
and the Realm Display Setup tag.
Context Tags
Context tags are used as parents in parent-child tag structures. They provide a generic and customizable template that
you can use to define any natural grouping in your application (region, station, city, sub-assembly, etc.). The parameter
A Context can be displayed on a Site Map if it is given settings named "Latitude" and "Longitude".
By adding a setting named, "StationPageName", you can configure a Context to show a custom details page when its
drawing method is clicked on a Site List or Site Map page.
Your custom details page should include a tag parameter, named SiteTag, of the same type as this tag.
Note: Property names may not duplicate VTS reserved words. To be safe, adopt a naming convention that adds a distinct
identifier to every name (for example "MA_Name" for My Application...)
By defining properties in a context tag, you provide a method for children of that tag to adapt their configuration values
to the parent instance via Snapshot Expressions. For example, I/O addresses may be calculated from a BaseAddress
value stored in the Context tag instance.
If you want to display the context tag on a map, you must add properties named "Latitude" and "Longitude".
See: Parent-Child Tag Structures, and Calculate Tag Configuration Values - Snapshot Expressions.
To create a new property click the Add button, which opens the Add Property dialog:
Property names must be unique, not just in the list of properties, but in the tag itself. VTS properties such as Name, Area
and Description may not be used. Attempting to do so will cause the "Name in Use" dialog to open.
Property names must include letters ("Property2" is valid, but "2" is not). The property name may not include a space or
any of the following characters: ! , @ % ^ & * ( ) - ` ~ : ; " ' < > ? / { } [ ] | \
You can change any property name, value or comment by clicking on the field in the settings list. Editing is done in-
place.
If you turn the context tag and its children into a new type using the Update Type command in the tag browser, you can
still edit the list of properties for the type definition as a whole. See: Manage Types Using a Spreadsheet or Database.
Font Tags
Font tags contain font settings that are used throughout your application to display different types of data with different
font attributes.
Several font tags are standard on every installation of VTS, or you may create your own. The standard fonts are
illustrated here:
Fixed Pitch
The Fixed Pitch checkbox enables you to indicate whether or not constant character spacing will be employed for this
Font Style tag (i.e. if the width and height of the font configured for this tag should be fixed.
By default, the Fixed Pitch checkbox is not selected.
Change
The Change button opens a Font dialog that enables you to configure the property settings (font, style, and size) for the
selected Font Style tag.
You can add exactly one Realm Display Setup tag for each realm that includes the application.
MultiWrite The MultiWrite tag allows you to configure a set of values that will be written to a
list of registers when triggered.
Network Status Network status tags enable you to view the connectivity of up to two workstations,
allow you to trigger an alarm should a monitored workstation become
disconnected, and enable you to log this data to file.
Notebook The Notebook tag type enables users to add notes on the Historical Data Viewer
page.
Omron Host Link Driver The Omron Host Link driver provides an interface to an Omron PLC via a serial
port.
OPC Client Driver The OPC Client driver allows VTS to act as an OPC Client to an OPC Server,
enabling the exchange of data from a VTS application to an OPC Server.
OPC Server The OPC Server Setup tag is used to turn your application into an OPC Server.
Polling Driver Polling driver tags provide controlled communication between drivers and ports.
Pulse Input Pulse input tags accept incoming analog data from a pulse input device (such as a
rain gauge, transducer, or a gas, water, or electric meter).
Pump Status Pump status tags accept incoming digital data from pumps.
Rate of Change Rate of Change tags are used to display how quickly another tag’s value is
changing.
Realm Display Setup The Realm Display Setup tag is used to control what options are available to a
VTS Internet Client for managing its own screen parameters and appearance.
Report The Report tag type is used to track the data of a user-defined group of tags to a
user-defined output format at regular intervals.
Roster Roster tags are designed to work with the VTScada call-out system. Using a
Roster tag, you may configure contact information for up to 8 operators
Script A Script tag monitors the value of another tag and allows the execution of a script
when the monitored tag's value changes.
Selector Switch Selector Switch tags provide the means to create three-position switches that can
be used (among other things) for implementing Hand-Off-Auto (H-O-A) switches.
Serial Port The Serial Port tag type opens a serial port for use by a driver.
SNMP Driver The SNMP driver can be used to communicate with any device that uses the
Simple Network Management Protocol (versions 1 or 2c).
SQL Logger Group SQL Logging allows you to record in an ODBC compatible database, the values
from any tag that could normally be logged.
SQL Logger The SQL Logger tag type allows you to select where data that is to be logged is to
come from.
TCP/IP Port The TCP/IP port tag type enables you to connect your VTS application to a series
of hosts, allowing you to transmit data across a network or over the Internet.
Totalizer The totalizer collects the integral of another tag's value over a time period.
Trigger Trigger tags can be used to activate a process at a set time and date.
UDP/IP Port This tag type can be substituted for a TCP/IP port tag for a driver to allow serial
drivers to transparently use UDP/IP.
Workstation Status Workstation status driver tags can be associated with one or more Analog Input
tags to access data that the driver obtains from the Windows Management
Instrumentation (an API in the Windows operating system that enables devices
and systems in a network to be managed and controlled)
Tag Groups
VTS has tag groups that are used to organize the standard tag types into collections based on their value, capabilities, or
other characteristics. Some of the tag types belong to multiple groups based on shared characteristics. The tag groups are:
Analogs Group
The analogs group assembles those tags that read or write analog (continuous floating point) values to an I/O device.
The group is composed of the following members:
Digitals Group
The digitals group assembles those tags that read or write digital (discrete) values to an I/O device.
The group is composed of the following members:
Drivers Group
The drivers group consists of tags that are used to provide an interface to physical I/O devices or to Windows system
features, such as Dynamic Data Exchange.
The group is composed of the following members:
Loggers Group
The VTS loggers group consists of tags that have a numeric value, and that can have their data logged to disk for data
examination and analysis, and plotting on the Historical Data Viewer page by having a Logger tag associated with them.
The group is composed of the following members:
Allen-Bradley driver
Analog status Data Flow RTU (VTScada)
CalAmp diagnostic driver DDE driver
Digital status DNP3 driver
Driver Multiplexer MDS diagnostic driver
Modicon driver Network status
Notebook Omron host link driver
OPC client driver Pump status
Siemens S7 driver SNMP driver
Numeric Group
The numeric group is composed of tags that have a numeric value:
Outputs Group
The outputs group is composed of tags that have can be used to write values:
• Analog Control
• Analog Output
• Digital Control
• Digital Output
• MultiWrite
• Selector Switch
Ports Group
The ports group consists of tags that enable communications between a VTS application and a physical system. The
ports group is composed of the following members:
• Motorola Gateway IP
• Serial port
• TCP/IP port
• UDP/IP port
Stations Group
The ports group consists of tags that enable communications between a VTS application and a physical system. The
ports group is composed of the following members:
• MPE SC Series Station
• MPE Duplexer Station
• MultiSmart Station
P R
page background 166 radial indicator 92
page button 175 radial legend 94
page close button 177 rate of change tags 522
page hotbox 171 realm display setup tags 557
page name 166 rectangle 135
page properties 165 redo 140
page security 167 removable 265
page style 170 remove application 32
Page Title 166 report tags 482
Page Tool Tip 166 resizing objects 148
page window flag 166 resources folder 11
page window properties 169 response time calculation 284
pagemenu.txt 12 ResponseTime 283
pages restart required 43
adding and editing 157 reverse changes 55
background 171 revert changes 49
bitmap margins 171 roster tags 468
configuration 159 RTU 216
context menu 160 Run-Only Snapshot Copy ChangeSet 30
copy and paste 162
drawing 160 S
import 161
new 160 saturation 154
parameter string 163 SC1000 controller 537
use last displayed 163 ScadaAce 548
viewing 159 SCADAPack history read 344
viewing a list of 159 scaling tab 240
pages folder 11 scan interval 235
parameters 156, 167, 213 screens 157
paste tool 123 script applications 7
Phantom radio 294 script tab 240
pick graphics 65 script tag drawing methods 533
pick graphics button 65 script tags 532
pie 128 security and version control 45
pins 184 select bitmap 115
pipe 134, 152 select color dialog 150
pipes - editing 148 select multiple objects 147
platforminfo folder 11 selector switch tag drawing methods 450
PLC 216 selector switch tags 445
points 215 send to back 140
polling driver tags 369 serial port 216
polygon 134 serial port tags 275
ports group 567 servers.rpc 12
positioning 140 settings.dynamic 12
program spawn 98 settings.startup 12
W
window height (realm display setup) 559
window properties 170
window width (realm display setup) 559
working files 11
workstation status tags 374
workstation-specific properties 43