Virtual Instrumentation for Scada Web Applications Based on Extensible Decsription Languge

Traian Turc 1, Adrian Gligor 1,

1 ”Petru Maior”University

Târgu-Mures,Romania

,

Abstract—The goal of this paper is to describe the development of an extension, such as markup language based on XML standard, called VIML - Virtual Instruments Markup Language. Therefore, author proposes to extend the XML standard for use in the field of virtual instrumentation. The paper intends to present a framework for generating and managing virtual instrumentation for WWW applications. Characteristics, features and conclusions of VIML using are presented.

Keywords-virtual instruments, XML, web services, HMI

I.  Introduction

Nowadays technical systems meet many monitoring applications where a wide range of instruments is used. To keep up with the new requirements engineers can use reconfigurable devices. Virtual instruments represent viable solutions that, without taking the system offline, allow the functionalities and user interface reconfiguration.

In terms of usability and cognitive ergonomics defined in [1,2], virtual instruments contribute significantly to achieving a user-friendly interface between human operators and technical systems monitored.

In terms of monitoring applications developers, virtual instruments are a key element in achieving interfacing with human operator.

The diversity of the instruments entails a number of problems. The most significant, one may found related to their different implementation standards, requiring researches for a uniform way of defining the communication interfaces to allow a simple implementation in case of a application integration and afterwards development opportunity. In the first stage, the authors aim to develop a coherent framework to solve this problem.

II.  General Aspects on Virtual Instrumentation

In a brief analysis of applications using virtual instrumentation, we conclude that we can assign them only to the data acquisition and control monitoring systems developers and integrators such as National Instruments, Citect Pty. and others that provides virtual instrumentation in the form of software components that we can use in applications developed with specific programming environments. This has the advantage of proper integration with the hardware, but has the major disadvantage of dependence on a particular software platform [3].

In the literature, there are attempts to achieve open architecture for virtual instrumentation. Examples would be the proposed system at NASA IRC-Instrument Remote Control, which we can find after improvements as the IML - Instrument Markup Language, which has now reached after successive updates to the system ICML - Instrument Control Markup Language. In case of all these systems, theirs authors designed them to provide support for instrumentation in astronautics and space technology [4].

A more recent approach, described in the paper [5], we can find as the XVIML - Virtual Instrument extensible Markup Language, designed for the UNIX platform.

Acronyms dictionaries include a description of these extensions, but the big drawback is that they do not fall under public domain standards.

III.  Specifications for Description and Management of Virtual Instrumentation

A.  Support for VIML

The main goal being to achieve a development framework for instruments applicable in web-based applications to ensure interoperability in heterogeneous environments authors chose as the starting point the using of XML standard.

XML - extensible Markup Language being an open standard for structuring and encoding data [6], it is appropriate to define a wide range of concepts.

The proposed VIML extension - Virtual Instruments Markup Language – we intended to design it to provide the property of being usable for defining instruments and their mode of operation in a universal way.

XML proposed by W3C intended originally for data transfer between applications on the Internet may cover the basic description of instrumentation requirements. Anyway, we conclude of need for an extension as VIML that can replace the lack in assuring a unitary support for instruments description and support for communication between the instrumentation and control applications in general and particularly the application of the same type on the web or for applications that have support for network communications.

B.  VIML Methodology

To ensure the interoperability and compatibility implies the existence of a VIML structures that provide:

·  - instrumentation description and configuration

·  - control of the instrumentation

·  - communication and data transfer to and from real and virtual instruments.

Description of facilities we expect to serve in instruments user interface and functionality characterization. In addition, we take in account the possibility of functional characteristics setting up. These are the main aspects necessary for instruments human machine interface (HMI) design.

By the control instruments facility we intend to implement a framework for the commands transfer to the virtual instruments and to the associated physical equipment.

An important aspect in real-world operation is to provide data from the instrumentation devices and human operators, and vice versa. By VIML is aiming to create a universal description of data packaged in platform-independent messages.

C.  VIML Description

In VIML description, a virtual instrument should have a description using XML facilities into a structure that encapsulates a specific database like the following one:

<vimeter>

<type id="45">

<caption> Voltmeter </caption>

<code> VA-220 </code>

</type>

<attrib>

<mod> analog </mod>

<aspect> bar markmax="1" </aspect>

<backcolor> blue </backcolor>

<forecolor> white </forecolor>

<width> 150 </width>

<height> 100 </height>

<poz> vertical </poz>

</attrib>

<values>

<unit> volt </unit>

<val> 220 </val>

<minval> 50 </minval>

<maxval> 250 </maxval>

</values>

</vimeter>

This data structure can contain all the data related to virtual instrument needed by APIs in a web application or only partial data, in which case defaults values are used.

In the case of complex instruments, the description can become quite large. It would be problematic on porting to embedded systems platforms with limited memory resources. To optimize the processing of this structure, we can choose to a simplified description of the virtual instrument using no more than two levels, such one presented in the following example:

<vimeter>

<caption> Voltmeter </caption>

<code> VA-220 </code>

<mod> analog </mod>

<aspect> bar markmax="1" </aspect>

<backcolor> blue </backcolor>

<forecolor> white </forecolor>

<width> 150 </width>

<height> 100 </height>

<poz> vertical </poz>

<unit> volt </unit>

<val> 220 </val>

<minval> 50 </minval>

<maxval> 250 </maxval>

</vimeter>

Such a structure can lead to an instrument characterized by a user interface as those shown in Figure 1.

The problem of these types of structures is that they reach a large number of structures needed to describe the universal instruments in the future that lead to inefficient application development. Thus, we propose an implementation of a VIML of description type covering the whole range of instruments. For definition of a new instrument, we propose to use the concept of specialization. To achieve this in this version, we proposed to adopt a structure that uses entities. To ensure generalization, we suggest the using of an entities tree.

Figure 1. HMI of a virtual instrument.

A simple version can have the following description:

<viml>

<type>

<caption> Voltmeter </caption>

<serial> VA-220 </serial>

<deviceid>#AF</ deviceid >

</type>

<description>

<attrib>

<caption>analog</caption>

<value>analog</value>

</attrib>

<attrib>

<caption>background</caption>

<value>blue</value>

</attrib>

<attrib>

<caption>foreground</caption>

<value>white</value>

</attrib>

<attrib>

<caption>aspect</caption>

<value>unit bar markmax</value>

</attrib>

<attrib>

<caption>width</caption>

<value>150</value>

</attrib>

<attrib>

<caption>height</caption>

<value>100</value>

</attrib>

<attrib>

<caption>pozition</caption>

<value>vertical</value>

</attrib>

<attrib>

<caption>unit</caption>

<value>volt</value>

</attrib>

<attrib>

<caption>value</caption>

<value>220</value>

</attrib>

<attrib>

<caption>pozition</caption>

<value>vertical</value>

</attrib>

<attrib>

<caption>valmax</caption>

<value>250</value>

</attrib>

<attrib>

<caption>valmin</caption>

<value>0</value>

</attrib>

</description>

</viml>

To ensure the future development of this framework by ensuring compatibility with previous versions, it would be a good idea to keep track of each generation description. Hence, we propose to introduce some attributes where necessary, as shown by the following example:

<viml version=”1.0” type=”description”>

<type>

<caption> Voltmeter </caption>

<serial> VA-220 </serial>

<deviceid>#AF</ deviceid >

</type>

<description>

<attrib>

<caption>analog</caption>

<value>analog</value>

</attrib>

<attrib>

<caption>background</caption>

<value>blue</value>

</attrib>

….

<attrib>

<caption>valmin</caption>

<value>0</value>

</attrib>

</description>

</viml>

One may note that we introduced a second type of attribute to define the type of description. This suggests that there are three types of descriptors:

·  - description to describe the presentation of the instrument interface

·  - date for the encapsulation of data sent to or from the instrument

·  - control for encapsulation of control commands to the instrument.

In many applications, we operate with several instruments simultaneously. In this case, if description or data is needed to be transmitted simultaneously for entire set, it can be used a package-type structure. Definition in this case is:

<viml version=”1.0” type=”package”/>

<viml:instrument >

<type>

<caption> Voltmeter </caption>

<serial> VA-220 </serial>

<deviceid>#AF</ deviceid >

...

</type>

...

</viml:instrument >

</viml>

If it is necessary, a package can define different versions of instruments or devices to maintain functionality of previously defined ones to avoid the high cost of complex applications update that meet a continuous improvements.

Since instrumentation applications require thorough data transfer operations between different components of a server or client type functions in a uniform manner, both data and commands transmitted is proposed to be described in a specific form.

When we are in situation of transmitting commands from virtual instruments as shown in implementation presented in [7], we need to know the identity of the recipient, the addressed instrument and actions to be executed. An example of a VIML structure used to change the state of an actuator should be of the form:

<viml version=”1.0” type=”command”>

<type>

<caption> Actuator </caption>

<serial> ICON2000</serial>

<deviceid>#A1</ deviceid >

</type>

<description>

<attrib>

<caption>close</caption>

<value>off </value>

</attrib>

<attrib>

<caption>open</caption>

<value>off</value>

</attrib>

<attrib>

<caption>stop</caption>

<value>on</value>

</attrib>

….

</description>

</viml>

This structure will lead to stop the actuator action identified in an application relying on SCADA. Actuator lock in current position, confirm the cancellation of orders for closure or opening.

Similarly, opening command could be a description of the form:

<viml version=”1.0” type=”control”>

<type>

<caption> Actuator </caption>

<serial> ICON2000</serial>

<deviceid>#A1</ deviceid >

</type>

<description>

<attrib>

<caption>close</caption>

<value>off </value>

</attrib>

<attrib>

<caption>open</caption>

<value>on</value>

</attrib>

<attrib>

<caption>stop</caption>

<value>off</value>

</attrib>

….

</description>

</viml>

If there are requirements for transmitting data between subsystems of an instrumentation system, VIML structures will be suitable for this. Considering the case of a SCADA application that has an actuator of type ICON2000, we may read its status by sending the data coded in a structure of the following form:

<viml version=”1.0” type=”data”>

<type>

<caption> Actuator </caption>

<serial> ICON2000</serial>

<deviceid>#A1</ deviceid >

</type>

<description>

<attrib>

<caption>valve_close</caption>

<value>off </value>

</attrib>

<attrib>

<caption>valve_open</caption>

<value>off</value>

</attrib>

<attrib>

<caption>valve_closing</caption>

<value>off</value>

</attrib>

<caption>valve_opening</caption>

<value>on</value>

</attrib>

<attrib>

<caption>poizition</caption>

<value>30</value>

<unit>%</unit>

</attrib>

<attrib>

<caption>torque</caption>

<value>23</value>

<unit>Nm</unit>

</attrib>

….

</description>

</viml>

Figure 2. HMI for an actuator found on opening state

With this structure, from the actuator transmit to the HMI (Figure 2) that the valve is in state “being opened”, “not fully open” and is open at a rate of 30% and the opening using a 23 Nm torque.

One can easily see that VIML can code data ready for transmission of the equipment status, both for ensuring feedback to commands transmitted and for assessing remote equipment.

Considering a SCADA application for power quality monitoring the value if voltage that should transferred to a virtual instrument can be a structured in a VIML of form:

<viml version=”1.0” type=”description”>

<type>

<caption> Voltmeter </caption>

<serial> VA-220 </serial>

<deviceid>#AF</ deviceid >

</type>

<description>

<attrib>

<caption>voltage_value</caption>

<value>72,1</value>

<unit>Volt</unit>

</attrib>

</description>

</viml>

Figure 3. HMI associated to a virtual voltage measurement instrument

Figure 4. HMI associated to a collection of virtual devices.

If we want to manipulate a collection of devices as seen in the previous paragraph then its structures and behavior description we can made it available with VIML packages. For illustrating the using of VIML packages, we will consider the SCADA [5] system for monitoring the distribution of natural gas presented in [4]. Figure 4 shows the HMI obtained by using a package-based description.

Appropriate description of this collection of tools VIML structure is:

<viml type=”package”>

<viml:instrument version=”1.0” type=”description”>

<type>

<caption> Actuator </caption>

<serial> ICON2000</serial>

<deviceid>RAE1</ deviceid >

</type>

<description>

<attrib>

<caption>valve_opening </caption>

<value>on </value>

</attrib> ...

<viml:instrument version=”1.0” type=”description”>

<type>

<caption> Actuator </caption>

<serial> ICON2000</serial>

<deviceid>RAE2</ deviceid >

</type>

<description>

<attrib>

<caption>valve_opening </caption>

<value>off</value>

</attrib>

<attrib>

<caption>open </caption>

<value>on</value>

</attrib> ...

<viml:instrument version=”1.0” type=”description”>

<type>

<caption> Actuator </caption>

<serial> ICON2000</serial>

<deviceid>RAE6</ deviceid >

</type>

<description>

<attrib>

<caption>close </caption>

<value>on</value>

</attrib> ...

</viml>

IV.  Conclusions and Future Work

Given the popularity, flexibility and accessibility of the XML standard, in the present study authors propose to introduce new way of description and data transfer in control and monitoring applications that relies on this standard.

Authors consider such a description useful because currently there has not been established a dedicated model for generally describing in universal way instrumentation and virtual instrumentation in particular.

The method described in this paper can have implementation on multiple development platforms since a vast majority has advanced APIs for manipulating XML structures.

Using XML descriptions will also have the advantage of data transfer in case of systems that relies on heterogeneous platforms.

The proposed method is extremely useful for applications that rely on multi-platform components that interface with human operators performed via the World Wide Web.

We can note that many current successful technologies can extend VIML specifications. For example in process of HMI delivery and handling established architectures such as DOM have applicability. In case of data transfer related to control and instruments status can be used SOAP as shown in [8], streaming technology, etc.

Description of the instrumentation system developed ensures the openness of language for communication between devices and HMI.

VIML that is based on XML allows smooth enlargement of existing structures to incorporate new features and the opportunity for improvement in the public domain.