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.
New Features in VTScada 12.1
Features for Operators and Developers:
A best-practices guide is included with every copy of VTScada. This is a stand-alone document (not part of these help files), which can be found in the Documents sub-folder of your installation folder.
(C:\VTScada\Documents\VTScada_Security_Guidelines_Manual.html
The manual provides guidance for installing, commissioning, verifying and maintaining the cybersecurity-certified capability of VTScada in accordance with applicable IEC 62443 cybersecurity standards.
SCADA Security Guidelines
Time Range Mode added to DrawHDV (12.1.60)
Select a custom time span to enable time range mode and display a fixed time range on the DrawHDV widget.
Two-Stage Dialing for VoIP calls (12.1.60)
VTScada now supports VoIP calls dialed in two stages with a pause in the middle. This feature is useful in cases where an extension must be dialed to reach an outside line. The length of the pause is adjustable.
Define HTTP Strict Transport Security (12.1.60)
HTTP Strict Transport Security (HSTS) is an optional security feature that instructs a web browser to communicate with VTScada using only HTTPS.
New support of DV8 Energy’s Pump Off Controller in the Oil and Gas Solutions layer. (12.1.58)
The POC-DV8 parent tag contains drivers that have been pre-configured with the addresses and poll sequences necessary for reading Dynacard data, setpoints and other telemetry values.
Override the Camera Tag Connections Limit (12.1.58)
The default of 15, set with system performance in mind, is now able to be changed up to a hard maximum of 50 connections.
DisableGoToPageAsPopup Setting (12.1.57)
The “Go to Page (Popup)” option in the Alarm Page and Tag Browser context menus can now be disabled using the DisableGoToPageAsPopup setting.
Limit Display of Notes in Note List Widget (12.1.57)
Limit the display of notes by a specified number of days or to just notes from the current day.
Expanded functionality for New Page Button Widget and New Page Hotbox Widget (12.1.57)
Classic Page Button widget and Page Hotbox widget have become legacy widgets for continued support. The new versions have new options for pop-ups, disabling functions, applying font and more options for setting parameters.
Predefined startup pages for multi-monitor configurations (12.1.57)
At sites using multi-monitor configurations, you can now define the startup page for each monitor. Configure for Multiple Monitors
Custom Documentation is now accessible on the Anywhere Client (12.1.55)
Custom help files can now be opened with desktop installations of VTScada, with the VIC thin client and with Anywhere thin clients.
Opacity editing may now be disabled within the color selector (12.1.53)
VTScada now disables opacity editing within the color selector in contexts where it is inapplicable.
New support for the Toyopuc Driver (12.1.53)
The Toyopuc Driver now supports the Relay COmmand function to forward commands to other PLCs on the network.
Expanded support for the Mitsubishi Driver (12.1.53)
The Mitsubishi Driver can now communicate with FX3U series PLCs using 1E frames.
Daylight Savings Time support (12.1.52)
VTScada now supports acquiring Daylight Savings Time information for a given year and time zone name.
Support for placeholders in parameter phrase edit field functions (12.1.52)
Display the user's realm in the application title bar (12.1.52)
By enabling the property ShowUserRealm, the user's realm will display next to their name in the title bar.
The I/O and Calculation tag can now be configured to write values outside of the Scaled Process Min and Max range. (12.1.49)
Generate a .wav file that audibly speaks an alarm (12.1.49)
MakeAlarmRecordSpeechFile() is now available for generating a .wav file that audibly speaks an alarm.
Hide the tag list scroll bar (12.1.49)
You now have the option to hide the scrollbar in the tag list widget. This option may be used to limit the number of widgets displayed.
New method of removing parameter overrides (12.1.49)
GetTagConfiguredParameters() function can be used in conjunction with OPChange or ModifyTags (with merge parameters set to false) to remove parameter overrides.
Expanded Workstation Status Driver Tag reporting (12.1.47)
Now reports current System Total Memory, System Used Memory in bytes, System Used Memory as a percentage, amount of unused RAM on the system in bytes, the amount of RAM available for use by applications and processed in bytes.
OCPP Driver has expanded support for charging events (12.1.47)
Now supports reporting the Name and TransactionID to IO tags for charging events.
Option for enhanced visual alerting when there are unacknowledged alarms (12.1.47)
VTScada now supports flashing the task bar when there are unacknowledged alarms.
Output widgets now have a Disable Control option (12.1.46)
Disable a specific control directly rather than by setting permissions on the linked tag.
The BACnet driver now supports command relinquishing (12.1.46)
BACnet addressing has been enhanced with greater support for specifying a command priority, and two new widgets are available: one for relinquishing a command and one to indicate the priority of a write.
Send SMS alarm notifications over VoIP with supported systems. (12.1.46)
If supported by your system, you can now send SMS alarm notifications over VoIP.
Smoother experience when working in the Idea Studio (12.1.46)
Now, when you click cancel in a properties dialog while working in the Idea Studio, we take your word for it and no longer prompt for confirmation.
Driver Discovery now supports Delta PLC as well as BACnet (12.1.46)
Rapid development for Delta AH, AS and DVP PLCs
Expanded list of addresses for the Workstation Status driver (12.1.47)
The Workstation Status Driver now reports current System Total Memory, System Used Memory in bytes, System Used Memory as a percentage, amount of unused RAM on the system in bytes as well as the amount of RAM available for use by applications and processes in bytes.
Operator changes to a tag's Manual Data value are now logged (12.1.45)
Changes must be made by an authorized user within the tag's Properties dialog.
The Alarm List widget can now ignore Global Tag and Area Filtering (12.1.45)
Ensure that you do not miss alarms while using the filter for other purposes.
Operator changes to a tag's Manual Data value are now logged (12.1.45)
Changes must be made by an authorized user within the tag's Properties dialog.
The Alarm List widget can now ignore Global Tag and Area Filtering (12.1.45)
Ensure that you do not miss alarms while using the filter for other purposes.
SMS Indicator Widget now displays local signal strength. (12.1.43)
This can warn you if signal strength is not adequate to send SMS alarm notifications.
Enhanced ability to edit values in the Color Selector dialog (12.1.43)
Type a new color value in the dialog without needing to navigate to a second page.
Smoother experience when working in the Idea Studio
Now, when you click cancel in a properties dialog while working in the Idea Studio, we take your word for it and no longer prompt for confirmation.
Use a single Twilio account that has multiple numbers for multiple applications. (12.1.40)
A new selection allows you to choose which number an application will use for inbound calls and texts.
User-defined widgets with text or color parameters can now use tag values for those parameters. (12.1.40)
The Delta driver can now import tags from a DIADesigner XML file (12.1.39)
In new applications using the DNP3 driver, addresses without a suffix default to event-based polling. (12.1.39)
Legacy applications upgraded to 12.1.39 are unaffected. Refer to DNP3DefaultNoScan for notes on how to toggle this new behavior.
Control Tokens are now managed as an RPC service (12.1.39)
Stale tokens or requests from disconnected workstations will be removed automatically after a configurable length of time.
Enable rotation of user-defined widgets (12.1.39)
Rotation is not suitable for many widgets, but for those that should be able to do so, a "CanRotate" flag may be added to the widget's source code.
Address Assist dialogs when using a Driver Multiplexer (12.1.39)
The I/O tags that you attach to a Driver Multiplexer tag can now use the address assist feature of the drivers that are subordinate to that DriverMUX.
Updates to the I/O and Calculations tag (12.1.39)
Memory tags can now be configured with default values.
Digital I/O tags with the same read and write address cannot be configured with mismatches Invert options.
Use the new WebSocket interface to connect to EV Charging stations running the Open Charge Point Protocol (12.1.37)
VTScada can be configured as a WebSocket server, allowing your custom modules to accept WebSocket connections.
This allows the new OCPP Driver tag to communicate with electric vehicle charging stations running at least OCPP version 1.6J
Idea Studio -> Tag Browser Improvement (12.1.37)
When linking tags in the Idea Studio, the Tag Browser will now reopen to the last-used location in the tag hierarchy (if one exists). The location is retained for each user doing configuration.
The Driver Redirect tag is now standard. (12.1.37)
Formerly available only to applications built on the Oil and Gas Layer, this container tag is now available for all applications. Driver Redirect Tag
Support for TLS 1.3 for both server and client TCP sockets. (12.1.30)
It remains the installation's responsibility to disable older protocol versions via the operating system as required.
Idea Studio Improvements (12.1.35)
When pasting a graphic into the Idea Studio, the new object will be placed wherever the cursor is currently located. In earlier versions it would be placed in the center of the screen.
The Idea Studio's "Open" dialog can be filtered for pages, widgets, or both (all). It will now remember your choice of filter for the next time you open an existing file.
Historical Data Viewer Improvements (12.1.35)
You now have a choice of text sizes when viewing a plot in the HDV.
The Thin Client/Server Setup dialog now separates servers and connection addresses. (12.1.30)
Easier to use and less prone to misconfiguration. Advanced techniques of server-specific lists, which once required custom code can now be created easily for those who need such things. Configure a VTScada Thin Client Server. Important: See notes in Moving to the Current Version
Improved identification of Driver Multiplexer tags on the Services page. (12.1.34)
The VTScada OPC UA client driver can successfully OpenSecureChannel with an OPC UA Server that does not respond with the corresponding RequestHandle. (12.1.35)
Greatly increased the number of recipes that can be exported to Excel. (12.1.30)
Up to 16,384 recipes can be exported.
Control Lock System (12.1.28)
Control Locks can be used to prevent use and operation of selected equipment via the VTScada screens. Control Locks
Control Tokens (12.1.28)
The Control Token system ensures that only one person at a time has control over a tag or set of tags. It is complimentary to the Control Locks system. Control Tokens
Alarm Suppression (12.1.28)
Separate tracking of alarms that are turned off by an expression or event versus alarms that disabled by a developer.Suppress Alarms
Recipe Import widget
For the convenience of those building their own recipe pages, this duplicates the features of the import button of the built-in Recipe Page. (12.1.30)
Driver Discovery in the Tag Browser (12.1.27)
Initially enabled only for BACnet devices. This will search the specified location on your network for available devices. Driver Discovery
Date and time selection for memory tags. (12.1.26)
Numeric Entry widgets can now be configured to prompt operators for a date and time associated with each value they type. You can use this to record data collected outside VTScada.
Select Before Operate mode for several control widgets (12.1.18)
Set Value Button and Set Value Hotbox have been renamed "Legacy Set Value (Button or Hotbox)".
The new Set Value Button and the updated Numeric Entry Widget have several enhancements including the ability to configure confirmation such that operators must arm the write using this button (or numeric entry), then press another button to either Execute or Cancel the operation.
Set Value Button Widget, Numeric Entry Widget, Execute / Cancel Button Widget
Input tags using the DNP3 driver will now record attributes such as Quality and Comm Failure (12.1.18)
These can be used in graphics and reports.
The Alarm tag now supports "Fail to Operate" and "Unexpected Change of State" modes. (12.1.18)
Applies only for Trip alarms and only when connected to an I/O & Calculations tag. Alarm Tag
The Tag Browser now supports filtering by I/O address. (12.1.17)
Monitor service status and control which computer is the current server for any service 12.1.16
Use the Service Status page, Service Status widget, or the Service Status dialog of the Trace viewer to view the status and the architecture of the services in your multi-server application.
New security privileges protect access to the Service Status page, and the ability to switch servers.
Read strings from register-based addresses in PLCs such Delta and Modbus 12.1.17
Do so by setting the "String stored in registers" flag of the IO tag, along with specifying the length in bytes.
Tag names can now be displayed beside their value in the Historical Data Viewer and the Plot Data widgets. (12.1.15)
Updated License Management
After being activated on a workstation, a license cannot be used on another workstation until deactivated on the first. This eliminates the need for hardware locks.
Reset tag parameters to default values using a right-click. (12.1.14)
Applies only to parameters that have a default value
Toggle Switch Widgets for Digital Controls (12.1.13)
The switch widgets are not just for Selector Switch tags anymore; you can now use them for your digital I/O control tags. A new Toggle Button Widget is also available.
IEC-62443-4-1 Certification
VTScada’s Development Environment is now certified to be in compliance with IEC 62443 Security For Industrial Automation And Control Systems, Part 4-1: Secure Product Development Life-cycle Requirements.
Redesigned Roster Tags
Add a separate delay between each contact (or have none at all), and set rules for how many times one or more contacts should be tried before moving on to the next entry in the list.
Every roster can now configure its own timing for callout delays, etc.
Add up to 39 contacts in each roster. Roster Tags
A new security privilege just for Roster tags.
To allow roster configuration without granting the Tag Modify privilege, use the new Roster Contacts privilege instead of Manual Data or Tag Parameter View. Legacy applications will be updated to migrate existing accounts to use the new privilege.
Custom views of Roster contact lists (12.1.07)
(For advanced developers only) Expression code can now access an array of the contacts in each roster, displaying relevant information about each in a list that you create.
Use parameter expressions to enable / disable Roster contacts. (12.1.11)
Enable or disable one or more contacts without needing to reopen the Roster's properties dialog
Alarm Notification call-outs using Voice over Internet Protocol (VoIP)
Use an analog telephone adapter (ATA) or your existing VoIP phone system to send voice alarm notifications to operators. Using VoIP for Alarm Notification
Improved Twilio Performance
You no longer need a VTScada account as part of your Twilio configuration. Security and performance have both been improved. Using Twilio for Alarm Notifications
Recipe & Batch Processing
Create recipes for batch processes and then run and monitor them from within VTScada. Recipes and Batch Processing
Updated Tag Browser
New and more powerful filtering tools make it easier to find your tags in a large application.
Authorized operators can now write to output tags directly from the Tag Browser. The Tag Browser
Updated VTScada Application Manager (12.1.08)
Applications in the VAM will now indicate their progress while loading and whether a restart is required before you can do further configuration work. The application loading indicator will be especially useful to those using a thin client connection.
Page Shuffle (12.1.03)
Create a slide show of pages. Page Shuffling
Camera Tag and Widget
This tag and widget work together to display the video feed from your network-connected cameras within any page. Camera Tag, Camera Viewer Widget
Web Browser Widget
Embed a selected website within any page using the Web Browser Widget. Navigation widgets allow controlled navigation to selected sites.
A Function Selector for those creating expressions
Use this to browse a portion of the VTScada function library for code to use in your expressions. The Function Selection dialog is available from any VTScada Expression Editor dialog. Function Selection Dialog
Programmers can add their own functions for use within the selector. Add Functions to Your Application's Library
Multiple connections from a TCP/IP or UDP/IP port
Where supported by the VTScada driver and the PLC, you can now enable multiple connections on a single TCP/IP or UDP/IP port. While radios support one TCP/IP or UDP/IP connection per device, PLCs in a plant can open dozens (depending on the PLC). This frees PLCs from the limitations of network speed and allows them to use intervals of free time to process outstanding comm messages and achieve up to ten times the throughput per second.
Drivers that support multiple TCP/IP connections include:
Multiple Monitors for VTScada Internet Clients (VICs)
VIC connections can be configured to use multiple monitors. Realm Display Setup Tags
(Note: The Anywhere Client runs within a browser and therefore cannot be divided.)
SQL View tags
For those using ODBC to query VTScada data. Select tags and data attributes that will be available in named views rather than needing to sift through all properties of all tags when building your queries. SQL View Tag
A new security privilege can restrict access to the main History table for those who have the Remote Data View privilege. (12.1.07)
The new privilege is labeled: Remote Tag Value / History Retrieve. The intent is to restrict access to only those SQL Views the account is authorized to view. For backward compatibility, all existing accounts that have Remote Data Access will be granted this new privilege.
Support for POST requests to the REST interface
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.
Improved security for the SNMP agent.
Expanded SNMP V3 support improves security. SNMP Driver
Define a default sort key and direction for all alarm lists.
New application properties, AlarmListDefaultSortDir and AlarmListDefaultSortKey can be added to set a default sorting key and direction for all alarm lists except the History list.
Tag attributes available to ODBC queries
Value attribute such as Questionable and Manual Data can now be ready by the ODBC interface when querying VTScada.
Enhanced Rockwell Driver
Formerly CIP, this new driver allows switching between Rockwell device protocols and modes to best suit the need, resulting in significantly faster performance.
Further updated in 12.1.10 to include a PLC Mode that connects to the 1756-DHRIO's DH+ channels, sending DF1 messages directly to the target PLCs. This provides support for customers using older PLC-5 and SLC controllers using routed PCCC over CIP through 1756-DHRIO Interface Modules.
New Delta Driver
As part of the Delta Electrics family, VTScada is being integrated with their hardware around the world. To facilitate this, 12.1 includes a dedicated driver for Delta’s Modbus-based PLCs and VFDs. To maximize throughput, this driver supports multiple PLC port connections.
Faster Installer
VTScada’s new installer is 27% smaller and 18% faster.
Script Bubbles
While VTScada already supports dedicated threads, version 12.1 allows script code to run in parallel “Bubbles” across all PC cores. (For example, the Modbus driver now runs in its own bubble.) The effect on performance is like running multiple copies of VTScada at once.
On-Screen Keyboard Support
Touchscreen PCs are now commonplace and have begun to replace single purpose Operator Interface Terminals (OITs). VTScada seamlessly supports the native Windows onscreen keyboard. Touchscreens
MultiSpeak® Support
The MultiSpeak® protocol facilitates data exchange between SCADA and various services required by electric utilities, such as outage management. Version 12.1 supports a variety of methods required by the Milsoft™ DisSPatch™ outage management system. MultiSpeak Support
Overall Total Report
Similar to the Hourly Total and the Daily Total reports, this calculates an overall total for total for the specified time period.
(Note that the X-Total reports are for values that accumulate, such as pump starts, and do not calculate things like total flow given a flow rate. For that, use a Totalizer tag.) Note that for these to calculate a total for an accumulator that rolls over each time a maximum is reached, you must specify that rollover value in the included tags' scaling parameters.
Choose whether new Tag Widgets get Tag Icon Markers and the Operator Controls menu.
When creating a new Tag Widget, you are likely to remove the Tag Icon Marker and disable the various operator controls. Now you can choose to exclude those features
Alarm Details dialog updated
The Alarm Details dialog now includes entries for both the time when an alarm normalized and when it was acknowledged. (This information has always been available in the History list.) Alarm Details Dialog
Export alarm lists from the Anywhere client (12.1.05)
When the Alarm Page is viewed in a VTScada Anywhere client, the "Copy to Clipboard" button is replaced by an "Export to CSV file" button.
I/O Tags will now write manual data values (12.1.06)
This applies only if the tag has an output address, and only if the person setting the manual data value has the security privilege configured for the tag.
Security roles at the root level can now be made visible in realms. (12.1.26)
Reduces the number of roles required by sharing base role descriptions between realms. Must be enabled on a role-by-role basis.
The BACnet driver can now import tags from your device. (12.1.06)
Additional drivers, including Enron Modbus, CAT M5X, GE Series 90, Honeywell Mercury, Fisher ROC, IEC 6087, and the ABB Totalflow, now show address information in the Address column of the Tag Browser. (12.1.10)
VTScada now supports a user interface in Traditional or Simplified Chinese, in addition to English and French.
The Source Debugger toolbar now includes a View Source button. (12.1.13)
If the source code is available for the module you are viewing, click this to open the file using your default editor.
Oil & Gas Layer Improvements (12.1.16)
When importing gas composition results from a file in the Oil and Gas Solutions layer, the Heating Value is now imported along with the rest of the results if it is available
Non-translatable parameters (12.1.16)
Parameters that you add to your pages and widgets can now be set as non-translatable. This is especially appropriate when the parameter is an I/O address.
Priority 0 (Event) alarms on I/O tags are now logged when they clear as well as when they trigger. (12.1.26)
Source Debugger Step Out feature (12.1.60)
A new break point tool. Start at the breakpoint and run the remainder of the subroutine at full speed.
New and changed tags
ABB Totalflow Driver | No longer requires a third party service. Now reads historical alarm logs. |
Camera Tag | Provides a link between your network-connected camera and a Camera Viewer widget. |
Delta Driver | The Delta Driver Tag supports both PLC and VFD (variable frequency drive) devices from Delta Electronics. |
DNP3 Driver | Added time sync options in a new advanced properties tab. |
Flow Computer Tags | Includes a new tab for configuration of CFX reports. (12.1.34) |
I/O and Calculations Tag |
Default deadband values and the units of input fields are now shown. Improved calculations for the default deadband amount reduce the likelihood of needing to change the value (although you should always check). Alarms on Discrete I/O tags can now be triggered by state or upon change. Outputs limited to within Scaled min/max by default, can now be disabled. |
GE Series 90 Addressing | The GE Series 90 driver now supports %G (bit) and %GY (byte) addressing. |
History Statistics Tag | Includes two new statistics: Change in Value and Change in Value with Rollover. |
Honeywell Mercury Driver | This driver can communicate with several types of Honeywell Mercury flow computer devices. |
Mitsubishi Driver | Now supports FX3U series PLCs and 1E frame. |
Modbus Compatible Device Driver |
Redesigned so that I/O reads run on a separate core, resulting in greater responsiveness and the ability to handle large applications when using Modbus. Now uses a common Modbus Transport service for sending communications, which allows for 16-bit addresses. Also supports multiple TCP/IP port connections between a single instance of the driver and the RTU. |
Motorola ACE Driver | When viewed in the Tag Browser, the RTU ID value configured in this driver will be shown as the address. (12.1.26) |
MultiSmart Station | The MultiSmart station can now support up to nine pumps in two wells. |
OPC UA Client Driver | ClientCertificateName parameter is now modifiable. |
Multi-Write Tags | You can now disable event logging for multi-writes that trigger automatically. |
OCPP Driver | New addresses, Name and TransactionId. These will display the current name of the OCPP User Tag entry using a charger as well as the transactionID of the charge session. |
POC-DV8 Tag | New DV8 Pump-off Controller compatibility. (12.1.58) |
Rockwell Driver Tag |
This is an updated and improved version of the CIP/ENIP Driver tag. For those using DH+ networks, this tag will support Allen Bradley data file addressing via DF1 commands. These commands can then be routed via the PCCC protocol to communicate with PLC5, SLC and Micrologix PLCS that are connected to Control Logix gateways. 12.1.28: CIP message building has been standardized. Extensive cleanup of the related documentation. |
Recipe Book Tag | Holds a set of ingredients to be used for batch processing. |
Recipe Ingredient Tag | Holds the description and quantity of an ingredient to be used in a recipe. |
Recipe Proportions Tag | Modifies the amount of an ingredient used in a batch. |
Recipe Trigger Tag | Use to automate the start of a batch run. |
SMS Appliance Tags | Added a field to configure the com port number when that information is not otherwise available. (12.1.07) |
SNMP Driver | Expanded SNMP V3 support improves security. |
For Modbus, Enron Modbus and TI505 drivers, enable multiple connections on a single TCP/IP or UDP/IP port | |
Toyopuc Driver | The Toyopuc driver provide support for all PLCs in the PC3 and PC10 lines. (12.1.26) |
New and changed widgets
Bar Graph Widget | Display the values from a set of tags as a bar graph. |
Call Manager Status Widget | Presents a picture of the current state of voice calls, displaying call attempt, failure, and incoming call counts. |
Camera Viewer Widget | New. Display the MJPEG feed from a Camera tag. |
Draw HDV Widget |
Updated. Included an option to minimize the size of the legend. When selected, the legend will be just tall enough to show the list of pens, up to a maximum of 50% of the overall widget height. This option is enabled automatically when opening the HDV by clicking on a widget. It does not apply to the Historical Data Viewer page. Added Time Range Mode. Enable this mode by selecting "Custom" as the Time Span. Set a fixed date and time range to display. When Time Range Mode is enabled, the x axis can be plotted with time elapsed or time stamps by toggling Show Elapsed Time parameter in the Plot settings of the Idea Studio properties dialog. |
Folders | Updated. Set the tab number to display, either initially via configuration or dynamically using an expression. |
History Stats Value Widget | New. Display a selected statistic of a tag's value over a selected time span. Both can be selected by the operator. |
HP Radial Gauge | New. A radial version of the HP Analog Bar widget. |
I/O Multi-Text | When the linked tag's value is Invalid, use the label defined in the Style Settings tag (Exceptions tab) or double question marks: "??". (12.1.11) |
Linear and Radial, Indicators and Gauges | For tag values that are out of range, an overage of up to LinearIndicatorOverage or RadialIndicatorOverage percent is allowed, and no more. |
Numeric Entry Widget | Updated. New options allow horizontal alignment. |
Pie Chart Widget | Display the values from a set of tags as a pie chart. |
Recipe Import Widget | Allow recipe importing as a feature of your custom recipe screen. (12.1.30) |
Tag List Widget | Option to remove the scroll bar, enforcing only the top N widgets being visible. (12.1.49) |
Toggle Button Widget | Start on one press. Stop on the next. |
Web Browser Widget | New. Display any website within a page. |
Web Browser Navigate Button | Button to redirect a Web Browser widget to a new URL. |
Web Browser Navigate Hotbox | Hotbox to redirect a Web Browser widget to a new URL. |
Features for Programmers
Source Debugger Improvements
Set the font height. (12.1.35)
The Profiler now shows the name of the file being profiled (12.1.35)
Bubbles (CPU-specific threads)
Run modules in bubbles to take advantage of multiple CPU cores. Threads and Bubbles
The Profiler shows the name of the file at the top of the page
Helpful when tabs are open for multiple files.
Alarm Notification Template Hooks
New hooks in the Alarm Manager can be used to create customized notification templates that override existing % codes to create dynamic messages. Alarm Notification Template Hooks
Build a customized view of a Roster's contact list.
The list is view-only, not editable. Script a Custom View of a Roster
Maximum Nested Expression Depth
Limits nested expressions to no more than 200 levels. MaxNestedExpressionDepth
ClientSocket and SocketServerStart now support buffer sizing for UDP receive buffers
VTScada now has the ability to accept external language translations in the form of a dictionary. (12.1.18)
Calls to Navigator (a tag's right-click menu) now support NavData structures in the parameter list.
If the parameter specifies a module to run, use of the structure provides a way to include parameters for that module. (12.1.29)
New or changed Functions
AddRead | New parameter: Deadband. Sets a minimum amount by which the unscaled values must change before a new value is reported to NewData |
AddNote | Adds a note to a notebook tag. This interface is not intended as a means of logging frequent string values. It was designed for occasional notes entered by people. |
AlarmCondition | New. Returns TRUE (1) if the monitored tag has an active alarm |
AlarmUnAckCondition | New. Returns TRUE (1) if the monitored tag has an unacknowledged alarm. |
BinaryToIP | New. Converts an IP address from binary notation to decimal. |
Bubble | New. Starts a new child bubble and launches the given module into a new script thread in that bubble. |
BubbleList | New. Lists the running child bubbles of the current bubble. |
BubbleQueueLength | New. Reports the length of the queue of messages from the current bubble's parent bubble or one of its children. |
BubbleReceive | New. Receives a message from the given bubble. |
BubbleSend | New. Sends a message to the given bubble. |
Case | Updated. Can now be used in steady state. |
ClosePopUp | New. Close the current instance of a pop-up page. (12.1.41) |
Edit | New parameter that when set to TRUE causes the Disable parameter to fully disable all aspects of the control. |
GetAdaptersInfo | The output dictionary of the GetAdaptersInfo function now includes an "Addresses" member. (12.1.26) |
GetEquipmentColor | Returns a defined Equipment Color that was set in a style tag based on the equipment type of an IO tag (12.1.27) |
GetEquipmentLabel | Returns a defined Equipment Label that was set in a style tag based on the equipment type of an I/O tag. (12.1.27) |
GetLiveMJPEG | Configured within a camera tag module, returns a reference to the current frame retrieved from the IP camera. |
GetPhrase | Can accept external language translations in the form of a dictionary. |
RunInBubble | New. |
\PortManager\PortConnectSem | Updated. Three new optional parameters supporting multiple driver connections on a single port. |
WKSStatus | Updated: The WksStatus function can report values greater than 100% for percentage counters such as "\\@\Process(VTS)\% Processor Time" when (for example) a total of more than one CPU core is being used by the process. |
WinEditCtrl and System.Edit | Updated. Two new System parameter bits allow horizontal alignment. |
DoOperate | New. Used by tags that can be operated from the Tag Browser, this displays an input dialog where users can enter the new value to write. |
GetAlarmStat | New. Returns the number of alarms in the given tag and its descendents, where those alarms match the specified statistic. |
GetAllSCADAPoints | New. The GetAllSCADAPoints method provides a way for an OAS Outage Analysis System to request the complete list of SCADA points from a SCADA system. |
GetMethods | New. The GetMethods method provides a way for an OAS to request a list of MultiSpeak methods supported by a VTScada. |
GetModuleTimeStamp | Returns the timestamp of the module's source file, showing the last time it was synchronized with the application. |
GetParmPhrase | Updated. Provide a dictionary instead of individual phrases. (12.1.39) |
GetPhraseID | New. Returns the key matching a given phrase. |
GetSCADAAnalogByScadaPointID | New. The GetSCADAAnalogByScadaPointID method is used by an OAS Outage Analysis System to request SCADA analog data on demand for a specific SCADA point. |
GetSCADAStatusByScadaPointID | New. Similar to GetSCADAAnalogBySCADAPointID but for Digitals. This method is used by an OAS Outage Analysis System to request SCADA digital data on demand for a specific SCADA point |
GetTagConfiguredParameters | To be used with OPChange or ModifyTags, this API makes it possible to revert a tag parameter to its default or remove an override by changing some configured parameters while keeping others. |
IsTagOperable | New. Returns TRUE if the user is able to operate the selected tag from the Tag Browser using the right-click menu. |
LargeSocketWrite | Paces the write speed to prevent exceeding the socket output buffer limit. |
ListInstances | Returns a list of all instances of a module. |
MakeAlarmRecordSpeechFile | Generates a .wav file from an alarm record to audibly speak an alarm. |
MakeParmPhrase | New. Returns a \ParmPhrase structure given a phrase key and parameters. |
OilVolumeCorrectionFactor | New. Returns a coefficient to adjust a volume of oil to different temperature and pressure conditions. |
OilVolumeCorrectionToBase | New. Wrapper for OilVolumeCorrectionFactor, used to determine the volume correction factor for shifting a fluid at alternate conditions to standard conditions (60°F, 0 psig). |
PercentDifference | New. Returns the percentage difference between two numbers |
PingURL | New. The PingURL method provides a way for an OAS Outage Analysis System to test that it can communicate with VTScada’s MultiSpeak web service. |
RunInBubble | New. Starts a new thread in the given child bubble and launches the given module into that script thread. |
SCADAAnalogChangedNotification | New. The SCADAAnalogChangedNotification method provides a way for VTScada to send to an OAS Outage Analysis System such as Milsoft DisSPatch, notifications of changes in VTScada’s analog tag values. |
SCADAStatusChangedNotification | New. This method is the same as SCADAAnalogChangedNotification, but for statuses (digitals). The SCADAStatusChangedNotification method provides a way for VTScada to send to an OAS Outage Analysis System such as Milsoft DisSPatch™, notifications for changes in VTScada’s status (digital) tag values. |
SetSuppressed | AlarmManager subroutine that handles the suppressing and unsuppressing of alarms. |
SetUserLanguage | Changes the display to any of the languages currently enabled in the application. |
ShellTemperatureCorrection | New. Returns a coefficient to adjust the calculation of volume within a tank. |
SocketAttribs | Returns information about a TCP/IP socket's attributes. Added new options. |
SpeakToFile | Updated to restrict the number of characters allowed in a supplied phrase. |
TableInterpolation | New. Given a graph described by a CSV file containing X and Y values, this function will interpolate a Y value for any provided X value within the range of the graph. |
ToggleVal | New. Toggles between TRUE (1) and FALSE (0), once each given period. |
TriggerCounter | New. Returns a count of zero-to-non zero transitions during the current session. |
WebBrowser | New. Displays a web browser at the given position in the current VTScada window |
WebBrowserNavigate | New. Call this to cause a WebBrowser to change pages. |
Zip | New. (12.1.39) Generates a zip archive of a file stream. |
Deprecated or Obsolete |
|
Beep | Deprecated. Relies on the VTSIO driver, which is no longer included in new installations. Will continue to function in legacy installations if you have hardware that will produce a beep, but should not be used in new code. |
CopyIn | Deprecated. Relies on the VTSIO driver, which is no longer included in new installations. Will continue to function in legacy installations but should not be used in new code. |
CopyOut | Deprecated. Relies on the VTSIO driver, which is no longer included in new installations. Will continue to function in legacy installations but should not be used in new code. |
In | Deprecated. Relies on the VTSIO driver, which is no longer included in new installations. Will continue to function in legacy installations but should not be used in new code. |
InWord | Deprecated. Relies on the VTSIO driver, which is no longer included in new installations. Will continue to function in legacy installations but should not be used in new code. |
MemIn | Deprecated. Relies on the VTSIO driver, which is no longer included in new installations. Will continue to function in legacy installations but should not be used in new code. |
MemOut | Deprecated. Relies on the VTSIO driver, which is no longer included in new installations. Will continue to function in legacy installations but should not be used in new code. |
Out | Deprecated. Relies on the VTSIO driver, which is no longer included in new installations. Will continue to function in legacy installations but should not be used in new code. |
OutWord | Deprecated. Relies on the VTSIO driver, which is no longer included in new installations. Will continue to function in legacy installations but should not be used in new code. |
PPPDial | Deprecated |
PPPHandles | Deprecated |
PPPStatus | Deprecated |
New or changed Properties
AckAllAcksOnlyVisible | When set to 1 (TRUE), only those alarms that are visible in the list will be acknowledged. |
AlarmListDefaultSortDir | Sets a default sort direction for all alarm lists except the History list. |
AlarmListDefaultSortKey | Sets a default sorting key for all alarm lists except the History list. |
AlarmSnapshotMinInterval | Minimum time to wait until alarm database saves snapshots of their state. |
CallManagerAlarmPriority | Defines the Alarm Priority to use when notifying of a Call Manager voice configuration failure alarm. |
CallManagerBadCallLimit | Defines the number of bad calls in a row for any voice configuration before activating an alarm. |
CallManagerShowCredentials | When set to 1, VTScada will include DTMF Transport Layer Security key values in the logs. |
CallMgrMaxLogAge | Defines the number of seconds before log files on the hard drive are deleted. Defaults to one week. |
CallMgrTraceInterval | Defines the number of seconds to wait before forcing the log out to the hard drive. Defaults to one day. |
CallMgrTraceMax | Defines the number of call manager log entries that will be held internally before writing the log out to the hard drive. |
CameraTagConnectionLimit | Change the default camera tag connection limit from 15 up to 50. |
CIPMaxNumberofSessions | The maximum numbers of CIP Connections a user can select within the Rockwell Driver Tag. |
DefaultDriverDeadbandFractionOfFullScale | Used by analog tags, this is one factor in the calculation of the default deadband used when reading values. |
DeltaDigitalMaxBlockSize | For Delta drivers, limits the size of a read block for digitals. |
DeltaVTSMaxBlock | For Delta drivers, limits the number of analogs included in a read. |
DisableGoToPageAsPopup | Enable to disable pop-up pages. |
EnableVOIP | Set 1 (true) if VoIP (Voice over Internet Protocol) is to be enabled. |
IncludeAreaNotesWithTrendedTags | Set to 0 to exclude notebooks with a matching area when opening the HDV by clicking on a tag. (12.1.30) |
IncludeGroupNotesWithTrendedTags | Set to 0 to exclude notebooks with a matching plot group when opening the HDV by clicking on a tag. (12.1.30) |
MakeActiveAlarmUnackedWhenEnabled | TRUE to mark an active alarm as unacked when it becomes enabled |
MakeActiveAlarmUnackedWhenUnshelved | TRUE to mark an active alarm as unacked when it becomes unshelved |
MakeActiveAlarmUnackedWhenUnsuppressed | TRUE to mark an active alarm as unacked when it becomes unsuppressed |
ManualUnshelveDoesNotAckActiveAlarm Renamed to... |
By default a manually unshelved normalized alarm should transition to the acknowledged state unless this variable is set to TRUE |
MaxSpeakToFileLength | Maximum number of characters allowed in a phrase supplied to SpeakToFile. (12.1.26) |
MercuryDriverAlarmXXXPriority | Where XXX is the item number (only a certain subset of item numbers are alarms) |
MercuryDriverEventXPriority | Where XXX is the item number (only a certain subset of item numbers are alarms). |
MercuryDriverTAPriority_XXXX | Where XXXX is a particular trigger type |
MitsubishiFailoverCount | Number of retries before failing over for all instances of the Mitsubishi type |
MitsubishiPortSharedRPC | Controls whether the same RPC service should be used for all instances of the Mitsubishi driver tags that are connected to the same serial port or TCP/IP connection. |
MitsubishiSharedRPC | Controls whether the same RPC service should be used for all instances of the Mitsubishi driver. |
MultiSpeakLegacyIOPublish | Controls whether Legacy IO tags (Analog Status, Digital Output, etc.) are included as Multispeak tags for ScadaAnalogChangedNotification and ScadaStatusChangedNotification messages. |
MultiSpeakMaxMessagePoints | Controls the maximum number of ScadaAnalog, ScadaStatus or ScadaPoint items that VTScada will send in a single message. |
MultiSpeakMaxPointIDLength | Imposes a maximum PointID length, measured in characters. |
MultiSpeakMessageRetries | Sets the maximum number of PingURL requests to be tried before VTScada will give up and report an error. |
MultiSpeakMessageTimeout | The number of seconds that VTScada will wait to receive a response before giving up on the current request. |
MultiSpeakMHCompanyAttribute | Outgoing MultiSpeakMsgHeader Company attribute value. |
MultiSpeakNotificationDelay | When there is a change in value of tags that are configured to publish, a notification is sent via ScadaAnalogChangedNotification and ScadaStatusChangedNotification. |
MultiSpeakPingURLProbingPeriod | Sets the frequency of checks to verify that a MultiSpeak endpoint remains available during long periods of inactivity. |
MultiSpeakRealmNames | The realm names that can be used by other MultiSpeak end points to connect into VTScada. If more than one realm name is available, separate those names by semi-colons. |
MultiSpeakSubscriptionMethods | A comma-separated value (CSV) list of notification methods that VTScada will send to the configured subscriber. This is equivalent to the MethodsList that would be provided in the RegisterForService method. |
MultiSpeakSubscriptionPassword | Password to authenticate notification messages. This is equivalent to the ResponsePwd field in the RegisterForService method. If authentication is not required this property should be left blank (Invalid). |
MultiSpeakSubscriptionURL | Destination endpoint where VTScada will send notification messages. This should be the server name (could be fully qualified) of the MultiSpeak endpoint. By default, HTTP and port 80 will be used. Port 443 will be used for HTTPS. |
MultiSpeakSubscriptionUsername | Username to authenticate notification messages. This is equivalent to the ResponseUserID field in the RegisterForService method. If authentication is not required this property should be left blank (Invalid). |
MultiSpeakTraceFileSize | Maximum size in MB of the MultiSpeak diagnostic trace file. When the file reaches this size, the oldest half is deleted. |
MultiSpeakTraceLevel | Diagnostic trace level for the MultiSpeak service. A lower value will log only important messages to the file, while a higher level will log more diagnostic details about the service. Setting it to 0 turns off logging. |
MultiSpeakTraceMemorySize | The log records written to the trace file are also stored in memory. This setting controls how many are kept in a FIFO buffer. |
RecordAlarmStatusWhileDisabled | TRUE to record the alarm status while an alarm is disabled |
RecordAlarmStatusWhileSuppressed | TRUE to record the alarm status while an alarm is suppressed |
RecordSuppressionStatus | TRUE to record the suppression status of an alarm |
RockwellMaxUploadIdle | The maximum idle time in seconds for the tag upload procedure during tag importing. |
RockwellPollB4BuildComplete | Set to 1 (TRUE) in order to poll before all reads are built. |
RockwellReadsBeforeAddressError | Number of reads before setting an address error. |
RockwellWriteMode | Set to 1 for Fragmented (0x53) or 2 for Tag (0x4D) |
RosterFailureBackoffRate | After each failure to contact anyone on the roster, the delay before trying again is multiplied by this value, progressively increasing the time until the next attempt. |
RosterFailureMaxDelay | The maximum delay after experiencing a failure to connect with anyone on a roster before trying again. |
RosterFailureMinDelay | Specifies the minimum delay after failing to connect with anyone on a roster before trying again. |
DisableControlWidgetIfMismatched | TRUE to disable a control widget if it is currently executing (Select Before Operate) |
DisableControlWidgetIfOtherMismatched | TRUE to disable a control widget if another control is currently executing (Select Before Operate) |
DisableControlWidgetIfOtherSelected | TRUE to disable a control widget if another control has already "selected" a value (Select Before Operate) |
DisableControlWidgetIfSelected | TRUE to disable a control widget if it has already "selected" a value (Select Before Operate) |
ShowUserRealm | TRUE to display user's realm next to username in the title bar. |
SlippyMapCriticalDiskSpace | The maximum amount of disk space, measured in MB, that VTScada will use for storing map tiles. |
SlippyMapMaxTileSize | Maximum allowable size of a tile, measured in bytes. |
SNMPAgentSNMPVersion | SNMP version used by the VTScada SNMP Agent. |
SNMPAgentTagExposedProperties | Defines a list of tag properties to identify in the SNMP MIB generated by VTScada. |
SNMPDriverLegacyV3Notifications | In legacy applications (those built prior to the release of VTScada 12.1), notifications carrying different usernames were accepted if they had the same credentials. |
SNMPDriverOctetStringMaxSize | Specifies the expected maximum size in bytes of OCTETSTRING data to be read by any SNMP driver in the application. |
SNMPFailoverCount | Controls how many connection attempts will be made before a failure is set and an alternate is recommended. |
SNMPv3AgentMinSecurityLevel | This specifies the SNMP security level the VTScada SNMP agent will use when the SNMP version is set to v3. |
SNMPv3AgentReadAuthPassword | Encrypted authentication password for the read user. This property can be set only by using the fields provided in the 'Other' tab of the Edit Properties dialog, basic mode |
SNMPv3AgentReadAuthProtocol | Specifies the authentication protocol in use for the username defined in SNMPv3AgentReadUser. |
SNMPv3AgentReadPrivPassword | Encrypted privacy password for the read user. This property can be set only by using the fields provided in the 'Other' tab of the Edit Properties dialog, basic mode. |
SNMPv3AgentReadPrivProtocol | Specifies the privacy protocol in use for the username defined in SNMPv3AgentReadUser. |
SNMPv3AgentReadUser | Username for an SNMPv3 user with read-only permission. |
SNMPv3AgentTrapAuthPassword | Encrypted authentication password for the trap user. |
SNMPv3AgentTrapAuthProtocol | Specifies the authentication protocol in use for the username defined in SNMPv3AgentTrapUser. |
SNMPv3AgentTrapPrivPassword | Encrypted privacy password for the trap user. |
SNMPv3AgentTrapPrivProtocol | Specifies the privacy protocol in use for the username defined in SNMPv3AgentTrapUser. |
SNMPv3AgentTrapUser | Username for an SNMPv3 user for sending traps. |
SNMPv3AgentWriteAuthPassword | Encrypted authentication password for the write user. |
SNMPv3AgentWriteAuthProtocol | Specifies the authentication protocol in use for the username defined in SNMPv3AgentWriteUser. |
SNMPv3AgentWritePrivPassword | Encrypted privacy password for the write user |
SNMPv3AgentWritePrivProtocol | Specifies the privacy protocol in use for the username defined in SNMPv3AgentWriteUser. |
SNMPv3AgentWriteUser | Username for an SNMPv3 user with read and write permissions. |
SQLQueryMaxRequestLength | Sets the maximum payload size (measured in bytes) that will be accepted by the VTScada HTTP server in a REST or SOAP request. |
SQLQueryMaxResultCells | Sets a maximum amount of cells, which is the number of rows times the number of columns, that will be returned in response to any SQL query. |
SQLQueryParserDepthLimit | Controls how deeply-nested SQL queries may be, when run against the VTScada SQL API. |
ThinClientDisclaimer | Specifies the name of an HTML file that will be displayed to operators connecting to the application via a thin client (VIC or Anywhere). |
TwilioPickupDelay | Sets the interval in seconds from when a Twilio call is initiated until speech starts. |
UseLegacyEventPriorityAlarmBehavior | Records priority 0 alarm transactions as events rather than non-annunciating alarms. (12.1.30) |
VICDistributionPath | Path to the distribution file for the VTScada Internet Client. Replaces ClientCabPath. |
VOIPPickUpDelay | Sets the interval in seconds from when a VoIP call is initiated until speech starts. |
VOIPRegisterTimeout | Defines the preferred registration interval in seconds when connecting to a VoIP provider. |