VTS includes a powerful object-oriented scripting language that is designed for operator interface and communications. The power of the language is illustrated by the fact that all of the user interfaces, communication drivers and even the script code compiler of VTS are written using the VTS scripting language. VTS is written largely in VTS.
All actions of on-screen configuration of the system automatically generate and edit script code. This allows applications to be built using the configuration toolbox, and advanced features or algorithms to be added by editing the corresponding script. The entire application can be represented by a set of ASCII script files, making it easy to maintain the application. The system designer can seamlessly switch back and forth between the script version of the application and the graphical tools. Because it has been designed specifically for real-time operator interface applications, it is much easier to develop HMI systems with VTS than by writing in C++ or Visual Basic™.
VTS uses a state logic programming paradigm. This model provides a powerful metaphor for the system being implemented. Equipment and processes typically have discrete modes of operation. The state logic method allows you to represent each mode as a separate state. For example, a batch process might have fill, agitate, heat, and drain states. Each state would require the operation of different pieces of equipment and monitoring of different values for alarms and advancing to the next state. By having the state logic parallel the actual process, implementation and maintenance become comprehensive. Further, the state logic can be readily represented as a diagram that can be displayed to visualize the logic. The diagram can be animated to monitor the sequencing from one state to the next.
Within each state, you may specify calculations or graphics that are to be active while in that state. VTS has over 500 built-in functions to support all aspects of the graphic, communication, and control requirements. Only the statements in an active state are executed. Within VTS you can have any number of state logic "modules". Each instance of a module has exactly one active state at any time. These modules are "objects" in object-oriented terminology; they not only contain the states, but also variables, sub-modules and parameters. This is known as "encapsulation".
These modules can be organized into a hierarchy. This structuring of the system improves the maintainability of the application by easily dividing the system into sections of logically related components. To aid in the visualization of the architecture, a "module tree" diagram can be displayed showing the relationships of the various modules/objects.
Event driven execution of the code in each state means that the system remains responsive even in very large applications. Whenever value changes, only those statements that are currently using that value will be recalculated.
Note: A common alternative method for updating scripts (often seen in other software packages), is a polling method that re-evaluates all the statements repeatedly or on a timed basis. This results in a large amount of time wasted in doing calculations that are redundant since none of the data has changed. The overall result of a polled system is that the performance degrades rapidly as the size of the application increases.
A debugger assists advanced users in analyzing the operation of their script code. You may view and modify variable values, follow references to other objects, and view the current state of operation of any object instance.