What's New...
With each new release, Trihedral makes VTScada more powerful, yet at the same time, easier to use. Explore each category to learn what new features are available.
If you have legacy applications that you want to run in the new version of VTScada, please take time to read the upgrade notes for every version between what you had been running and the current version. Depending on how your application was created, you may need to take certain steps to ensure that it will continue to run.
Programmers can add their own functions for use within the selector. Add Functions to Your Application's Library
Allows large queries. To prevent an extremely long query from taking up excessive time and memory, a query size limit is introduced, which defaults to 32KB.
New Features in VTScada 12.0 (Including those released under 11.5)
Features for Operators and Developers:
Edit the MQTT Client ID or the Sparkplug B SCADA Host ID in an MQTT Client Driver tag (12.0.44)
May be changed when the provider requires a specific ID before allowing a connection.
Customers using Twilio, who maintain multiple callback domains, can now do workstation-specific configuration (12.0.44)
Export tags to either of MySQL or MariaDB (12.0.43)
The set of ODBC data sources available to use when editing tags outside VTScada has been expanded to include these database formats.
Select the Twilio voice for each user's language (12.0.39)
The setting, #TwilioVoice in each language file (en.csv, etc) allows you to select a Twilio voice appropriate for each language.
All maps now have a "Show Legend" button (12.0.35)
On any map, display a legend that describes the colors in a Site Icon (pin).
Excel Add-In shows multiple levels of tags (12.0.35)
The VTScada Excel add-in's tag browser is now capable of showing more than one level of tags at a time in order to make it easier to find the tags you are looking for when filtering
Tags from the Oil & Gas Solutions layer that do not do I/O no longer count against your tag license. (12.0.33)
When OGS layer was a separate product, these were considered custom-coded tags and therefore counted. Now that the OGS layer is included with VTScada, these are counted or not under the same rules as any other tag.
Copy phrase keys (12.0.29)
A convenient "copy" link is now provided for every phrase key in the languages panel. This is especially helpful for anyone writing expressions that involve phrases.Languages
Smart card sign-in functionality on the VIC honors the configuration of Enable Signed-Out VIC Sessions (12.0.27)
Automatic droplist configuration for equipment types (12.0.26)
Output tags for a given type of equipment often have the same setpoint values. Configure these once in a Style Settings tag, then use the values and labels for all the droplist widgets linked to tags of that equipment type.
A "Hold" option has been added to OPC-UA Client tags. (12.0.26)
Select if attached I/O tags should retain their values over a communication loss
Updated Alarm Priority Icon and Alarm Priority Box (12.0.26)
New configuration options allow control over whether these icons notify operators when the associated alarm is shelved or disabled .
When exporting tags to a spreadsheet or database, sheets and tables now use the tag's display name. (12.0.25)
In earlier versions, the tag's module name was used. The update simply makes names consistent.
Write to many Memory Tags in a single operation using a MultiWrite tag. (12.0.23)
The MultiWrite has been updated to allow you to select I/O and Calculations tags configured as Memory tags.
I/O tags and Alarm tags can now select which Alarm Database to use. (12.0.22)
When needed, select an alarm database other than the parent or default. Does not apply to legacy tags with built-in alarms.
VTScada can now communicate with Sparkplug® B compliant devices via the MQTT driver. (12.0.21)
An "Automatic Tag Creation" mode will query the device for tag information and create them automatically. Or, pick and choose which tags to load from the device using the Import Tags feature of the Tag Browser. MQTT Client Driver
The Import Tags feature no longer excludes those with invalid names.(12.0.21)
When importing tags, invalid names are now modified so they can be imported. Import Tags from PLCs
OAuth 2.0 authorization for email services (12.0.20)
Use OAuth 2.0 within your email provider to grant permission for VTScada to send and receive alarm notification emails without needing to configure your user name and password within VTScada.
(Several larger providers such as Google® will soon allow third party access to their services only through OAuth) OAuth 2.0 Configuration
The MQTT driver can now write (12.0.20)
When first created, the MQTT driver could be used only to read data. You can now also use it to write.
Realm-Filtered tags visible on permitted pages are protected from editing and control actions (12.0.19)
Realm filtering does not hide widgets on pages that operators are allowed to see. It will now prevent operators from using those visible tags that are outside their realm to write to hardware. Operators with the Tag Modify privilege will not be able to right-click on a widget to open and modify the properties of a tag that is outside their realm. Realm Filtering
Pulsed output for the Digital option of I/O and Calculation tags. (12.0.19)
A new Pulse Duration field allows you to write a value, holding that for a set period of time before the tag value returns to it's default state. I/O and Calculations tag properties: ID tab version 2
Abort application start-up from the VAM (12.0.19)
Useful when you accidentally start the wrong application.
Tag-related events are now recorded in the parent Alarm Database (12.0.18)
Prior to this change, all VTScada-generated events were stored in the database System Event DB. Most installations, which have only the two default alarm databases, are unaffected by this change. For systems that have custom alarm databases, tag-related events such as operator control actions, are now stored in the parent alarm database. This ensures that those events are available when an alarm list is filtered to only a user-created alarm database(s). Operational events recorded prior to this change remain in the System Event DB, and can be seen only when that database is included in a filter.
PLC Alarm Tag now works with custom PLCs (12.0.17)
When originally released, this tag was limited to Allen Bradley CIP devices. It can now be configured for custom PLCs where alarm management should be done at the PLC level rather than within the SCADA application.
Warning when creating a ChangeSet with un-deployed changes (12.0.16)
It is generally undesirable to create a ChangeSet before deploying your changes. A warning will now remind you to do so.
I/O and Calculations Tag replaces 12 legacy tags
No more starting to create one type of tag only to realize that you should have chosen a similar (but different) type. A single tag now handles input and output, analog, digital and string values as well as calculations and now discrete values. You can also configure pen properties in each I/O tag now, for use when plotting that tag in the Historical Data viewer. Logging (if enabled) is done on change, but you can now set a maximum time between logging intervals. I/O and Calculations Tag
New High Performance HMI widgets for analog data sources
Designed especially to make use of features within the I/O and Calculations tags, these widgets help you to create a modern user interface.
Two-factor authentication supported via smart cards
Available only in conjunction with Windows Security Integration. Successful authentication requires something you have (the smart card itself) and something you know, (the Personal Identification Number (PIN) for the smartcard). Smart Card Support
Master / Subordinate applications
A master application is one that can monitor the tags and alarms in one or more subordinate applications.
Break an application into smaller pieces, where local applications monitor only local processes while a master application monitors all sites.
Build reports in Microsoft Excel using the VTScada Data Retrieval Add-in
Available from the Microsoft Store, the VTScada Data Retrieval Add-in allows you to connect worksheets to your application and retrieve tag data. Standard VTScada summary and grouping functions are built in. Excel Add-in for Data Retrieval
REST replaces SOAP for the VTScada ODBC driver
The REST interface is much more efficient than SOAP for querying VTScada data, resulting in much faster data retrieval. SQL Queries
Native support for multi-monitor applications
Dialogs and pop-ups open where you expect, in whichever monitor you are currently using.
Layers selection panel in the Idea Studio
Simplify how you work with overlapping objects in a selection set while editing a page or widget.
Tag properties dialogs now have an Apply button
Save changes and view the effect while continuing to edit a tag.
Open several tag properties dialogs at once
View one tag's properties while editing another. Copy and paste properties from one tag to another.
(With this feature you must continue to work within one tag at a time. It does not allow you to apply a change to a selection set of tags.)
Open the Idea Studio from a VIC client
If authorized by your license, and if your security account has configuration privileges, you can now open the Idea Studio from a VTScada Internet Client (VIC). Capabilities of Internet Thin Clients (Not available for Mobile or Anywhere client connections.)
Import tags from a supported device
Import all the tags (with names that are legal in VTScada) from one of the supported devices to your application with a single button. Import Tags from PLCs
MQTT Client Driver tag
Read information from your Internet-connected devices to store, trend, alarm and report on within your VTScada application. MQTT Client Driver
Redesigned VTScada Application Manager (VAM)
Sites with many applications can now organize those apps into lists in the VAM.
Choose your own "quick action" button for applications (defaults to Start / Stop). VTScada Application Manager (VAM)
Access the VTScada Application Manager from an Internet client
For those who run VTScada as a Windows service, you can now access the VAM with either the Internet Client or Anywhere Client, enabling you to start, stop and manage applications. Access the VAM from a Thin Client
Redesigned security dialogs
Security configuration has been simplified by a set of new dialogs. Secure Your Application
New security privileges
All tags that can write to equipment are protected automatically by the new privilege, Control Outputs. If no-one is signed in to an application, no-one can operate controls. Restrict Access to Output Tags
Global tag and area filtering (next item) is protected by a second new privilege.
Global Tag and Area Filter
Allow operators to filter their view of tag lists and alarms dynamically, based on tag name (typically by selecting a parent context) or by area, or both. Global Tag & Area Filtering
This feature is protected by a new system privilege that is not granted to any role by default.System Privilege Reference for Developers
Realm Filtering improvements
Realm Area Filtering has been updated so that parent tags that are not part of a user's authorized realm will still appear (but cannot be opened) when that user has access to any of its child tags.
Filtering can now be done using tag hierarchies as well as area properties. (Realm Name Filtering) Collectively, these are now referred to as "Realm Filtering".
Shelve several alarms at once
The shelve tool in the alarm list toolbar now lets you shelve either just the selected alarm or all shown alarms. (Meaning all those that match the current filter.) Shelve Alarms
Automatic Alarm Acknowledgment
At installations where operators do not use VTScada to acknowledge alarms, you can now configure alarms to be acknowledged automatically when the triggering value returns to normal. Does not apply to Trip alarms. Automatic Alarm Acknowledgment
Audible feedback for alarm dialer key presses
When enabled, all phone key presses are spoken back to the user.
Support for Grundfos Dedicated Controls and Grundfos Control MPC
Create the tags and user-interface pages for your Grundfos systems quickly and easily.
New system for driver server lists
Rather than have a separate server list for each driver name, you can now define your own server lists for drivers and share that list with any number of any type of driver. Lists can be selected within the driver configuration panel. Driver Server Lists
History editing
Authorized users can now create overrides to add or edit historical data values.
All data historians will have a DataNotes child tag added automatically. When editing data, you will be prompted for a note to record why it was edited.
Symbols in the Historical Data Viewer mark edited values.
A new general privilege exists: Edit Data. This is not granted to any of the built-in roles.
Use this to correct values from faulty equipment. Insert values that were manually recorded.
Hide empty sheets when exporting tags to Excel
When working on tags outside VTScada, you can save time by hiding all worksheets for tag types that are not part of your application. If you don't have any tags of a given type in your application, you won't get a worksheet or table for that type in the export.
Single table mode for ODBC data storage
For those storing data to a 3rd-party database instead of the VTScada storage system, you can now use ODBCSingleTable to combine data from similar tag types such as drivers and numerics, into one table for each type. This can make it much easier to query values from multiple tags. Historian Data Storage
Data attributes
Manual data, edited data, questionable data and other qualities are flagged with bit-wise attributes.
Easily identify which values have any of the flagged attributes.
Map selection
Choose between several styles of map. Map selection is unique to each user account and will be used for all workstations and devices.
Additionally, proprietary maps from CARTO are now available to VTScada customers by licensing agreement.
Provides greater choice for operators. Administrators retain control over the source of map tiles.
Bulk download of map tiles
Download all required tiles for a given area in one operation.
In a networked application, tiles should be stored on the primary server. Other workstations will obtain their tiles from this server rather than downloading from the Internet.
At a site with a slow Internet connection, download the tiles overnight. Or, download all required tiles for transfer to a server with no Internet connection.
Overlapping sites
When there are overlapping sites drawn on a map, clicking a spot where they overlap will result in a pop-up selection, from which you can choose which site to view.
Crowded site-maps are easier to use.
Change in navigation for Site Detail pages
Clicking a site, listed in a Sites page, now opens the Site Details page embedded within the Sites page. A button is provided to allow you to open it as a pop-up window if you prefer.
Improved navigation.
Require acknowledgment of Page Notes
Sites that require a record that operators have read a note can now use Page Notes to accomplish this. Arm a page note in the Edit Note dialog and the operator can click the note to acknowledge that they have read it. The record will be stored in the Operator Log history, viewable in the Alarm Page.
Language support
The VTScada user interface can be translated into any language. Create applications that can be used around the world. VTScada ships with English phrases for all user-interface elements and French phrases for operator-interface elements. Languages
Export pages and widgets to include phrases
Pages and widgets typically contain text, which is now stored as a phrase key so that it can be translated. Use the new export tool to ensure that you take the matching phrases along with the page or widget. Import / Export Widgets and Pages
Thin Client Monitor now identifies client type
A column has been added to the Thin Client Monitor, identifying whether each client is using the VIC, Mobile Client or Anywhere Client.
When exporting tags, you can exclude those without locally set or overridden values.
Tag exports run much faster when only those tags with a locally set value are included. Child tags of user-defined types, with default values according to the type definition are excluded, as are Menu Item and other types that came from the original OEM layer and have not been modified in this application.
Choose whether to allow application auto-start.
For applications that have been configured to start automatically, a new dialog gives you a chance to stop that from happening.
Applications with large numbers of tags now use significantly less memory.
DDE Server is disabled by default
For your security, Windows DDE is disabled by default. Sites that make use of this technology may choose to enable the feature. Do so by starting VTScada with the command line switch.
Improved Tool Tip widget
Use any of static text, parameters, linked tag properties or expressions to configure the title and body of a tool tip.
Override Detection Tool
Primarily to help with technical support, this tool, found in the Application Configuration dialog, will detect all modules (pages, tags, etc) and application properties that differ from those in the VTScada Library Layer (Standard Application).
Read-Only Workstations enhanced
When declaring a workstation as read-only (sometimes used for servers in a DMZ, or for kiosk installations) you can now add privilege masks to enable or disable privileges. Note that the default mask is restrictive and is designed to prevent further configuration from being done on that station. Read-Only Workstation
Improvements to version control
Especially relevant to those using ChangeSets to distribute updates. VTScada now handles most conflicting files changes on a file-by-file basis. For example, when two machines are merging conflicting changes to a page file, then the conflict resolution will only result in discarding one machine's changes to that one page, rather than discarding all changes made by that machine. The only times that all changes from one machine will be thrown out is when the merge produces a compilation error, or when there is a conflict in an application that was created without source files.
Change the background color of system pages ThemedPageBGColor
Control whether pages maintain or change their aspect ratio if scaled MaintainAspectRatio
Historian tags can now use a PostgreSQL database.
New and changed tags
ABB Totalflow Driver | Use the ABB Totalflow driver tag to communicate with a variety of Totalflow devices produced by ABB. |
Alarm Status Tags | Will now limit its search to an ancestor Alarm Database, if any. |
Allen-Bradley Driver |
Multi-message mode available. Now supports the data type, Long, for MicroLogix devices. |
CAT M5X Driver | Enables communications between VTScada and CAT Electronic Engine Controllers (ECC) and CAT Generator Set Controllers (GSC) through a Customer Communication Module (CCM) using the M5X communication protocol. |
CSV Data Driver | The CSV Data Driver imports values from a comma-separated file(s). |
Fisher ROC I/O Addressing | ROC Plus addressing for minute history data now supported. |
Grundfos Dedicated Controls | Offers support for Grundfos pumping stations. |
Grundfos Control MPC | Support for Grundfos booster pump stations. |
I/O and Calculations Tag |
Replaces 12 input / output and analytic tags. 12.0.20: Modes have been refined to have a separate Calculation option for any of the other data modes. |
JSON/XML Driver | The URL field is now multi-line, to better accommodate longer addresses. You can now add your own processors to handle complex data. |
Modbus Compatible Device Driver | New address prefixes HL and IL provide support for devices that use (non-standard) 32-bit addresses. |
Motorola IP Gateway | Motorola IP Gateway tags now support redundant devices |
MQTT Client Driver | Read data from internet-enabled devices. (12.0.0) Write as well as read (12.0.20) Communicate with devices that support the Sparkplug® B protocol. (12.0.21) |
Opto 22 Mux Driver | The Opto 22 Mux Driver is designed to communicate with Opto22™ B1, B2, B4 and B5 brain boards. |
PLC Alarm Tag | Works with an CIP/ENIP (Allen Bradley) tag to read alarm status and configuration from the PLC for display in the SCADA system. |
String I/O Tags | The properties dialog now includes a display tab, to be used to set the display order property. |
Subordinate Application Tags |
Links a subordinate application to a master application. |
Tesco Driver | An optional feature of your VTScada license. |
TCP/IP Port Tags |
Enable and use mutual TLS authentication for client TCP/IP ports. 12.0.20: TCP and UDP ports with neither address nor port number will now do nothing. This differs from the previous behavior where the port would automatically become a listener on a default port. |
TI505 Device Driver | Communicate with devices in the Simatic TI505 family |
Totalizer Tags | Option to set the update interval |
Workstation Status Driver I/O Addressing |
Two new addresses: PageFileBytes and PrivateBytes, both of which help to provide a more accurate view of memory in use by VTScada. |
New and changed widgets
LCD Meter Widget |
Labels and tick marks now default to gray instead of white. The color can be controlled in the properties dialog. |
Alarm List | Option to remember the last database selected by the operator, from one page visit to the next. (12.0.21) |
Draw Widget |
Alarm indicator within these widgets now uses the colors from a selected System Style tag. |
Droplist Widget | The String Droplist widget has been updated to work with numbers, and has been renamed to simply, "Droplist". The legacy droplist will continue to be supported in existing applications, but cannot be added to new applications. |
Analog Bar & Indicator Widget | Display current and historical information from analog tags, especially the I/O and Calculations tag. |
HP Analog Bar | Bar component of the above. Use for building your own HP-HMI widgets. |
HP Analog Indicator Widget | Indicator component of the above. Use for building your own HP-HMI widgets. |
Numeric Entry Widget | New options allow horizontal alignment of the value. (12.0.26) |
PLC Alarm Control Widget | Allows limited configuration of alarms on the PLC associated with the linked PLC Alarm tag. |
Tag List Widget | Filtering options enhanced to include selection of equipment type. Documentation expanded to include examples of advanced filtering expressions. |
Spider Graph Widget | Monitor several analog values at a glance to ensure that they are within expected ranges. |
LCD Meter Widget
LCD Ring Widget Numeric Entry Widget LCD 5x7 Matrix Widget LCD 7 Segment Widget Meter 1 Widget Meter 2 Widget Meter 3 Widget |
When linked to an I/O and Calculations tag, these widgets can show the number of decimal points configured in that tag instead of configuring that parameter within the widget. |
Features for Programmers
The Case function now works in both Script and Steady-State (12.0.54)
Create multiple-choice steady-state assignments without using nested Cond or IfElse blocks
Write a programmatic filter for Alarm List widgets. (12.0.54)
Refer to notes in the function reference for SetCurrentFilter.
Source Debugger now includes a list and count of structures. (12.0.22)
Protobuf support (12.0.19)
A set of functions has been created to allow you to send and receive serialized data structures using the Protobuf specification.
Sends HTTP requests to an HTTP server (12.0.19)
Support added using a new function, HTTPSend()
Use "." in the RPC Send() function as an alias for the registered service
You can send a message to a remote service object using a module context of "." as an alias for the full scope path of the object that registered for the RPC service.
Secure script applications
Script applications can now be secured. Prevent operator access to debugging applications or allow secured Internet access without needing to add a standard application to the same realm.
UTF-8 support
Use any UTF-8 unicode character in your labels and other text.
Refer to the notes in Moving to the Current Version
Bit-wise operators for retrieving data
New modes have been added to GetTagHistory and GetLog.
Use :value:BitwiseOR or :value:BitwiseAND with the SQLQuery function.
For use when retrieving grouped data over a time span, identify which bits were set on any of the values, or which bits were set on all of the values.
Ability to set a non-resetting return value in script code
Return and SetReturnValue now take an optional Boolean parameter that, when FALSE, will cause the return value not to reset until another Return statement executes that specifies otherwise.
New alarm hook
AlarmNormalAckHook has been added. Use in the code of user-created tags if you want alarms triggered by that tag to be acknowledged as soon as the alarm clears.
New format specifiers
%t - counted string type
New binary type, 9. Reads or writes a 64-bit Microsoft FileTime structure.
New or changed Functions
The VTScada cryptographic functions now have limited Cryptography New Generation (CNG) support in addition to the existing Cryptography API (CAPI) support.
Microsoft has deprecated CAPI, however this will continue to be supported by VTScada to support existing code.
AddCertificate | New. Returns a structure of information about a supplied X.509 certificate. |
AcceptSecurityContext | New. Accepts a Kerberos security context from a client and returns the user principal name (UPN) from the context, along with any output to be returned to the client for mutual authentication. |
CheckCertificateChain | New. Checks the chain of trust of a certificate |
CheckSignature | Added Cryptography New Generation (CNG) support. |
Decrypt | Added Cryptography New Generation (CNG) support. |
DeleteState | Deprecated. Do not use in new code. |
DriverRPCOptimization | Obsolete. Driver RPC is now always optimized. |
Edit | New system bits to control horizontal alignment (12.0.26) |
Encrypt | Added Cryptography New Generation (CNG) support. |
FileChooser | Updated and made public. (12.0.50) |
FindCertificate | New. Locates a certificate in a certificate store. |
GenerateHMAC | Added Cryptography New Generation (CNG) support. |
GenerateSignature | Added Cryptography New Generation (CNG) support. |
GetAlarmList |
New parameters to support area filtering, subordinate applications and deferred loading. |
GetCertificateInfo | New. Returns a structure of information about a supplied X.509 certificate. |
GetCryptoProvider | Added Cryptography New Generation (CNG) support. |
GetKeyParm | Added Cryptography New Generation (CNG) support. |
GetLog and GetTagHistory | Updated. Modes 12 and 13 added to allow for bitwise OR and bitwise AND queries. |
GetLogonCredentialsFromSmartcard | New. Monitors the card reader for a smartcard and reads the certificate information from it |
GetModuleContext | Returns the context of a given module-in-context. |
GetPhrase | New. Returns text in the currently selected language for a given phrase identifier key. |
GetPhraseForLang | New. Returns text in the specified language for a given phrase identifier key. |
GetParmPhrase | New. Returns parameterized text in the currently selected language for a given phrase identifier key. |
GetParmPhraseForLang | New. Returns parameterized text in the specified language for a given phrase identifier key. |
GetRawPhrase | New. Returns a phrase in the provided language, if it exists. |
GetRetainedValue | New. Given the name of a variable whose value is retained, this function will load the retained value from storage. The function also provides the option of deleting the files holding that value. |
GetTagMode | New (12.0.15) Returns text or a structure to identify what kind of tag a given instance is. |
GetStructInfo | Returns names and counts of all instantiated structures. |
HistorianConnect |
New parameter to ensure consistent access to uptime history regardless of varying values for Storage Name across servers for the same Historian. |
HTTPSend | New (12.0.19) Sends HTTP requests to an HTTP server |
ImportKey | Added Cryptography New Generation (CNG) support. |
JSONEncode | Replaces JSON_Encode. Faster and handles a wider variety of value types. |
JSON_Encode | Deprecated. This is now only a wrapper for JSONEncode. |
ListCertificates | New. Enumerates X.509 certificates in a certificate store resident on the local computer. |
MakeFixedBuff | Obsolete. |
MakeSelfSignedCertificate | New. Creates a new self-signed certificate. |
ManualUnshelveDoesNotAckActiveAlarm | Obsolete (12.0.23) |
MapDraw | Updated. Contains two new parameters that are available for use. |
PageChangeReplaceSamePopup | Controls behavior of Page Buttons and Page Hotboxes that refer to their containing page for the destination. (12.0.27) |
ParameterEdit | Updated. The Contexts parameter is no longer used and should be set to Invalid. Context is always Code. |
Pending | Updated. StatementType 0 now returns only 0 because high priority statements are no longer supported. (Priority() and PriorityWeight() are now obsolete.) |
PFileChooser | New. A version of FileChooser for parameter editing dialogs. (12.0.50) |
PPhraseDroplist | New. Used to select a PhraseID by presenting the user with a droplist full of translated phrases. |
PPhraseEdit | New. Language-sensitive, parameter-setting edit field. |
Priority | Obsolete |
PriorityWeight | Obsolete |
ProtobufDecode | New (12.0.19) Decodes Protobuf serialized data. |
ProtobufEncode | New (12.0.19) Creates a buffer for a given Protobuf file containing VTScada value data. |
ProtobufInstantiate | New (12.0.19) Instantiates a message using default values. |
ProtobufParse | New (12.0.19) Load a Protobuf specification from a file. |
RemoveCertificate | New. Removes a certificate from a certificate store. |
Return | Added the ability to set a non-resetting return value in script. |
RmDir | Updated. If the operation fails due to a file lock, RmDir will make 10 attempts, each 100 ms apart. |
SaveFile | Updated. Helper function to save files or streams on a server, VIC or Anywhere Client |
Send | Use an alias for the full scope path of the object that registered for the RPC service. |
SetCertificateProperty | New. Sets a modifiable property on a stored certificate. |
SetKeyParm | Added Cryptography New Generation (CNG) support. |
SetReturn | Added the ability to set a non-resetting return value in script. |
SetWSDL | New parameter allowing a dictionary of additional schemas to be specified. |
Sort | Locale-based sorting option added. |
StrictlyEqual | Will return TRUE if the parameter values are of the same type and also are equivalent, or if both are invalid. |
StrictlyNotEqual | Complement to StrictlyEqual. |
TextSearch | Locale-based sorting option added. |
TimeZone | Modes 2 and 3 return timezones only in English, for compatibility with ConvertTimeStamp. Use mode 1 for a result that matches the user's locale. |
TreeControl | Updated. New parameter allows control of row height. |
TrimSpaces | Returns text with leading and trailing spaces removed. |
VICSmartcardMonitor | Enables and disables Smartcard monitoring on a VIC and outputs authentication information received from the VIC when a Smartcard is used. |
VICSmartcardResponse | Returns the result of the Kerberos Security negotiation after processing a sign in attempt on the VIC. |
WinEditCtrl | New system bits to control horizontal alignment (12.0.26) |
WrapText |
New. Breaks a text string based on given font and width and returns the text segments in an array. |
WatchForTagChanges | Deprecated in favor of WatchTags |
WatchTags | Updated. Accepts two optional parameters, allowing the function to watch only for changes to tags within a given scope. |
Window | New options to hide the source window of a gui object being dragged while dragging. Also to selectively hide the horizontal and vertical scroll bars. |
WinEditCtrl | A new parameter allows you to provide placeholder text in the control, to be used as a prompt to the user. |
New and changed properties
AutoLogon | Obsolete in 12.0.38. For kiosks and demonstration applications, use a method described in Securing a VTScada Thin Client Server instead. |
AlarmWidgetsShowUnackedNormalAlarm | You can cause the widgets that indicate alarms to continue indicating alarms that are unacknowledged but no longer active by changing the value of this property to 1 |
AllowedLanguages | A list of the languages (from those available in an application) that will be available for selection in the Display tab of the Edit Properties dialog. |
AutoAddADUsers | Cannot be set TRUE (1) when a security realm delimiter is set. Can now be configured in the security Administrative Settings dialog. |
AutoAckClearedAlarms | If set TRUE (1) all alarms in the application except Trip alarms will be acknowledged as soon as the triggering value returns to normal. |
AutoStartDlgTimeout | Display time for a dialog allowing users to prevent an application from automatically starting. |
DialDTMFFeedback | When set TRUE (1) all phone key presses are spoken back to the user. |
DisablePageSnapShotting | If set TRUE, snapshots views of pages will not be created as you navigate away from the page. If pages are especially complex, setting this to TRUE can significantly speed navigation between pages. Defaults to FALSE for backward-compatibility. |
DisableVAMPerAppColoring | If set, the VTScada Application Manager's list of applications will use default coloring rather than show each application using its assigned color theme. |
Language | Where dynamic language change support is provided, then this should be set to the index of the current language (from an enumeration of the supported languages) whenever the language is changed. This provides a trigger for code that needs to rebuild message texts. |
MaintainAspectRatio | If set to 1 (true), then pages will maintain their aspect ratio when stretched. |
MobileBrowserAlarmHistoryMaxRecords | Sets the maximum number of alarm history records to display in the Mobile browser. |
MobileBrowserAlarmHistoryTimeRange | Sets the maximum number of days of alarm history to display in a mobile browser. |
NoSoftDriverFailure | Now defaults to 1 in new applications. |
OpenSitesAsPopup | TRUE to always open a site page from the Sites page as a popup; FALSE to open it embedded in the Sites page |
[REALMFILTER] | Replaces [REALMAREAS]. Also, [*-REALMFILTER] replaces [*-REALMAREAS] and [RealmName-REALMFILTER] replaces [RealmName-REALMAREAS] |
SlippyMapDownloadFailoutTime | If the Internet connection error lasts for at least this many seconds, broadcast to other potential servers that the current primary does not have an Internet connection, allowing them to make the attempt. |
SlippyMapMaxRetryDelay | Maximum time between download tests, measured in seconds. |
SlippyMapOSMDisable | True (1) if Open Street maps are disabled. (CARTO® maps are always enabled.) |
StationMaskApp | A bitwise value that controls which application privileges are enabled at a read-only workstation. |
StationMaskSys | A bitwise value that controls which system privileges are enabled at a read-only workstation. |
ThemedPageBGColor | Add a system property to set the background color of the Page Menu page, Site List, Site Details and Lift Station pages. |
VTSDriverClearDataOnServerLossDelay | Changed the seconds without an I/O server before a client will invalidate read values from 1 to 10. |

Features for Operators and Developers:
New option in UDP/IP tags
Feature |
Choose how to handle streams when the RTU's remote destination port differs from the remote source port. |
Configure Alarm Rosters with email aliases
Feature |
An alarm sent to one email account may be forwarded to another, which the operator then uses to acknowledge the alarm. |
Support added for SQL queries that use the LIKE operator
Feature |
Both the % and the _ (underscore) SQL wildcard characters are supported. |
Updated OPC Client
Feature |
You can now configure an OPC client to accept data flagged as bad or uncertain. Scan rates other than the default of 1 second can be configured. |
JSON driver now supports extra header values
Feature |
Up to six name=value pairs may be added to the URL for JSON and XML connections |
Updated instructions for generating and processing SSL certificates
Feature |
It is no longer necessary to edit the system registry. |
Change in behavior for Rosters that are children of a custom AlarmDatabase
Feature |
If a Roster is a child of a custom AlarmDatabase, significant time savings are now achieved if it searches only that database rather than all when looking for alarms with a matching area. |
Set Roster-control properties in parent tags
Feature |
Many alarm notification properties can now be overridden on a case-by-case basis by being set as properties in a parent Context tag. |
Parameter tables for SQL queries
Feature |
Query the list of parameter names and current values for all tag types. |
DNP3 history reads for WITS files
Feature |
VTScada supports history reads from Water Industry Telemetry Standard (WITS) files. |
Import tag history
Feature |
Use comma-separated value files to import process data from other sources. |
Send and receive SMS text notifications using your Twilio® account
Feature |
Roster configuration now supports SMS text messages as a contact option for those using Twilio® |
Broadcast mode added to the DNP3 driver
Feature |
Use broadcast addresses 0xFFFD through 0xFFFF when configuring your DNP3 driver. |
Control over significant digits displayed in the HDV legend
Feature |
You can now control the number of significant digits shown in the Historical Data Viewer's legend. |
Benefit |
Display information to the accuracy you want. The value is set using the application property, HDVPlotSigFigs. |
Easier to import custom animations
Feature |
The animation widget now makes it easy to import a folder of custom animation images. |
File downloads using the Anywhere Client
Feature |
The Anywhere Client now has the ability to download files. |
Benefit |
Files generated by ChangeSets, HDV exports, Reports, etc can now be transferred to Anywhere Client sessions. |
IPv6 Support
Feature |
VTScada provides full support for IPv6 addressing |
Benefit |
Use VTScada on networks that run IPv4, IPv6 or both. Your Network Status tags may need to be updated manually after upgrading to this or later versions of VTScada. Refer to notes in Moving to the Current Version |
Alarm Notification without a modem, using your Twilio® account
Feature |
Configure the Alarm Notification System to use Twilio to send alarm calls. |
Benefit |
Provides an option to using a modem to send voice alarm notifications. Enable voice notifications in a virtual or hosted environment. |
Use OpenID Connect for Anywhere Client logons
Feature |
The Anywhere Client can be configured to allow OpenID Connect logons. |
Benefit |
Operators can connect to the VTScada Anywhere client using the same credentials they use for other Internet-enabled applications at your site. |
IEC 60870-5-104 Driver
Feature |
IEC 60870-5 refers to a collection of standards produced by the International Electrotechnical Commission, or IEC, to provide an open standard for the transmission of SCADA telemetry control and information. |
Improved logging of unsuccessful logon attempts
Feature |
The name used in a failed logon attempt is now logged. |
Benefit | Can help managers identify if an operator who is having trouble has forgotten their account name rather than password. Can help identify malicious attempts to gain access to the SCADA system. |
Add custom point types to Fisher ROC Drivers
Feature |
Custom point types can now be added to your Fisher ROC driver's addressing list. |
Benefit | Communicate with custom devices that use the Fisher ROC driver. |
Features for Programmers:
Profiler integrated into the Source Debugger
Feature |
Signifcant improvements have been made to the Profiler, which is now integrated into the Source Debugger rather than running as a stand-alone application. |
New Alarm Hook
Feature |
AlarmAckAllHook added to the list of alarm hooks. |
Benefit |
When there are many alarms to acknowledge, this can send a single Acknowledge message to the controller for all, rather than one per alarm, for use with controllers that support multiple alarm acknowledgment. |
New or Changed Functions
ClientSocket | New optional parameter to select stream behavior when remote ports differ in value. |
WritePropertiesFile | New optional parameter to force a save to storage immediately after the file is updated. |
GetAllWorkstationNames | RPC-Manager function, replaces the now-deprecated ServerList and T-ServerList. |
SaveFile | Use a call-back function to save files or streams on a server, VIC or Anywhere Client. 11.3.08 allowed the use of a second parameter to the call-back, which can be used to abort the save. |
CryptRandom | Returns a buffer of random byte values. |
GenerateHMAC | Calculates the hash-based message authentication code (HMAC) for a given key and input message. |
CheckSignature | Checks a digital signature with a key given a handle returned from Hash(). |
GenerateSignature | Generates a digital signature of a handle returned from Hash(). |
JSON_Encode | Takes a VTScada dictionary, structure or array which may be nested, and encodes it as JSON. |
TextEncode | Takes text in the local code page and converts it into UTF-8 encoded text where a suitable conversion exists. |
Hash | New optional parameter allows specification of the CSP to be used. |
New or Changed Properties
AlarmAckCodeAgeLimit | Sets an age limit for email and SMS alarm notifications, after which the included code will not be valid for acknowledging the alarm. |
AlarmAckCodeDigits | Defines the set of characters to identify an alarm in email and SMS alarm notifications |
AlarmAckCodeTemplate | Defines the pattern of characters to identify an alarm in email and SMS alarm notifications. |
EnableRosterListRepeat | If TRUE, a roster calling out alarms will repeat the roster list indefinitely if the last contact has the "Continue Roster Sequence" checkbox selected, or if it is a voice contact and no keypress is detected on the call. If FALSE, all alarms in the roster's list are notified at the end of the contact list, so that the roster contact list is not repeated. |
RosterListDelay | The number of seconds to wait before repeating the roster list. |
AlarmRecommissionAgeLimit | Prevent alarms from reactivating when a tag is compiled. |
AlarmListDefaultColumnFormat | Specify the list to be shown when viewing All Databases. |
DisablePageSnapshotting | If set TRUE, snapshots views of pages will not be created as you navigate away from the page. If pages are especially complex, setting this to TRUE can significantly speed navigation between pages. Defaults to FALSE for backward-compatibility. |
AlarmListUsePriorityTextColor | When selected, text for the alarm in the Alarm Page and Alarm List uses the priority color. |
Deprecated or Obsolete Functions
BinIP2Text - deprecated
TextIP2Bin - deprecated
TCPIPReset - obsolete