Abstract:
A method and device for generating a set of graphical objects to be displayed by using OPC UA specification. The method includes indicating, by using OPC UA nodes, graphical objects to be displayed, the graphical objects representing physical components of a monitored process. Further, the method includes indicating, by using OPC UA references, how an indicated graphical object should be interconnected to another indicated graphical object when displayed. Next, the respective OPC UA node is associated with a corresponding predetermined graphical object, the set of graphical objects is generated from the associations and the individual graphical objects of the set is interconnected in accordance with the indicated interconnections. Finally, the generated set of graphical objects is displayed.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention generally relates to a method and device for generating a set of graphical objects to be displayed by using OPC UA specification. 
       BACKGROUND OF THE INVENTION 
       [0002]    OPC Unified Architecture (OPC UA) is a platform independent protocol which specifies how to exchange data between different systems, software applications and hardware devices. OPC UA enables exchange of data between software applications independently of the application&#39;s vendor, supported operating system, and used programming language. 
         [0003]    In the process industry today, process graphics are typically built using a graphic builder, for example the ABB system 800xA includes a graphic builder, and so do most systems in this particular field. These graphic builders facilitate building of process graphics as they assist the users in building the graphic representation of a real object using predetermined graphic building blocks. A graphic builder also assists the user connecting graphic objects to the process&#39; real time data, often provided via OPC. A graphic object does not need to be dynamic; it can be static to serve as a generic building block to be used in other graphics. The generated graphic objects can also contain built in functionality for process control, navigation and indication of invalid data. The graphic objects may also visualize for example if data exceeds specified high or low limits. 
         [0004]    A problem with conventional graphic builders is that a great deal of programming effort is required from a developer in order to create graphical objects, and in particular when trying define a complete environment of graphical objects for a certain industrial process. Further, a set of graphical objects created for a particular industrial process cannot necessarily be reused in a different industrial process when targeting different industries, which has the drawback that a great deal of engineering is required. 
         [0005]    “OPC Unified Architecture” by Wolfgang Mahnke et al published on Springer-Verlag generally discloses the platform independent OPC UA protocol. 
         [0006]    WO 2009/046095 generally discloses systems and methods for gathering, analyzing, formatting and presenting information related to monitored processes and environments, where graphical representations of operational process control data received from servers is displayed within the context of geographical locations at which the processes operate. 
       SUMMARY OF THE INVENTION 
       [0007]    A general object of the present invention is to solve or at least mitigate the above described problems in the art. 
         [0008]    In a first aspect of the present invention this object is achieved by a method of generating a set of graphical objects to be displayed by using OPC UA specification. The method comprises indicating, by means of using OPC UA nodes, graphical objects to be displayed, said graphical objects representing physical components of a monitored process. Further, the method comprises indicating, by means of using OPC UA references, how an indicated graphical object should be interconnected to another indicated graphical object when displayed. Next, the respective OPC UA node is associated with a corresponding predetermined graphical object, the set of graphical objects is generated from said associations and the individual graphical objects of the set is interconnected in accordance with the indicated interconnections. Finally, the generated set of graphical objects is displayed. 
         [0009]    In a second aspect of the present invention this object is achieved by a device for generating a set of graphical objects to be displayed by using OPC UA specification. The device is arranged to receive source code indicating, by means of using OPC UA nodes, graphical objects to be displayed. The graphical objects represent physical components of a monitored process. The source code further indicates, by means of using OPC UA references, how an indicated graphical object should be interconnected to another indicated graphical object when displayed. The device is further arranged to associate the respective OPC UA node with a corresponding predetermined graphical object, generate the set of graphical objects from said associations, interconnecting the individual graphical objects in the set in accordance with the indicated interconnections and providing the generated set of graphical objects for display. 
         [0010]    Thus, capabilities of OPC UA are used to generate graphical objects from combinations of established and predefined OPC UA terminology. The need for prior art graphic builders is thus reduced. 
         [0011]    OPC UA presents an object oriented protocol to represent controller data. The base modeling concepts in OPC UA are nodes and references. Every node is described with attributes like for example, id, name, description, value. To automatically generate graphical objects to be displayed on a screen, the implementation of the OPC UA protocol is browsed and interpreted. 
         [0012]    Additional features and advantages will be disclosed in the following. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    Embodiments of the present invention and advantages thereof will now be described by way of non-limiting examples, with reference to the accompanying drawings, where: 
           [0014]      FIG. 1  illustrates an industrial process to be monitored in an embodiment of the present invention, and 
           [0015]      FIG. 2  illustrates the process of creating graphical objects of the industrial process depicted in  FIG. 1  according to an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0016]      FIG. 1  illustrates an industrial process  100  to be monitored in accordance with an embodiment of the invention. This industrial process is exemplified in the form of a pipe  101  leading liquid, for instance gasoline, to a valve  102 . The valve determines how much if any of the gasoline should be delivered to a tank  103  via the pipe  101 . In this particular example, the level of gasoline in the tank is  10  units. From the tank, the gasoline is supplied to a motor  104 . It should be noted that this example is greatly exemplified and in real-life, an industrial process to be monitored is typically considerably more complex. 
         [0017]    Now, to be able to monitor the industrial process  100  by using OPC UA, the components of the process is connected to a respective OPC server  105 ,  106 ,  107  for collecting OPC data from the components  102 ,  103 ,  104 . In case the components permit external control, OPC data to control the components can be sent to the respective OPC server. For instance, OPS server  105  may collect data relating to flow of gasoline through the valve  102 , but may also allow control of the flow through the valve by means of using OPC data for the control such that the level of gasoline in the tank  103  can be regulated. In this particular example, the tank  103  is a relatively passive process component, which does not offer any property control, but which delivers data pertaining to the gasoline level to the OPC server  106 . Finally, the OPC server  107  collects data from the motor  104  regarding motor speed. Further, the motor speed can be regulated by the OPC server  107  when appropriate OPC data is supplied. 
         [0018]    The OPC servers are typically connected to a bus  108  for delivering measured process data to, and receiving process control data from, an operator work station  109 . 
         [0019]    In order for an operator to be able to monitor the industrial process at his or her work station  109 , a graphical representation of the industrial process must be provided. This graphical representation would typically look very similar to the industrial process  100  as it is depicted in  FIG. 1 . 
         [0020]    In OPC UA, terminology has been established where physical objects can be defined by means of objects, attributes, structures, etc. The set of information that an OPC UA Server makes visible to its clients, such as the work station  109 , is referred to as AddressSpace. The OPC UA AddressSpace represents its contents as a set of Nodes connected by References. This is well-known terminology in the art and will not be explained in any further detail. Nodes in the AddressSpace are used to represent real objects, for instance pipe  101 , valve  102 , tank  103  and motor  104  of  FIG. 1 . 
         [0021]    In an embodiment of the present invention, graphical representation of an industrial process is attained by utilizing the feature in OPC UA that an object oriented protocol is used to represent OPC server data. The base modeling concepts in OPC UA are the above mentioned nodes and references. Every node is described with attributes like for example id, name, description, value, etc. To automatically generate graphical objects to be displayed on a screen, the implementation of the OPC UA protocol is browsed and interpreted. 
         [0022]    Thus, a node type can be related to a graphic representation. In an exemplifying embodiment, one node can for instance represent the valve  102  of  FIG. 1 , while another node can represent the tank  103  and still a further node can represent the motor  104 . 
         [0023]    A set of graphical objects is created and stored in a graphical “library”. To create a graphical representation of the industrial process exemplified in  FIG. 1 , four nodes would have to be used (“pipe”, “valve”, “tank” and “motor”), and the corresponding graphical objects would have to be created. Once this is done, any operator can easily use the established OPC UA terminology to make her own graphical representations of any industrial process. Further, the created graphical objects can be reused and distributed to other operators. 
         [0024]    For instance, the operator (or any other person wishing to create the process graphics), can enter the node types in a script, and thus indicate which graphical objects she intends to include in a graphical representation. 
         [0025]    Thereafter, the operator can indicate how the different nodes should be interconnected. To this end, the already established OPC UA concept of References could be used. Again, this could be entered in the script in an appropriate manner to indicate how a graphical object indicated by the above node types should be interconnected to any other indicated node type. 
         [0026]    Then, the script is computer-interpreted such that each indicated OPC UA node of the script is associated with a respective one of the created graphical objects stored in library. Hence, each indicated node is associated with a corresponding graphical object. This interpretation is typically embodied by making a compilation of the source code of the script. Further, in the computer interpretation, a set of graphical objects representing the physical components of the monitored industrial process is generated. To this end, the associations of the OPC UA node with the graphical objects is utilized, and the indicated references will determine how each graphical object should be connected to another indicated graphical object. Thus, in this example, the valve  102  can be defined as an input element to the tank  103  while the motor  104  can be defined as an output element. Finally, the generated set of graphical objects is displayed. 
         [0027]      FIG. 2  illustrates the process of creating graphical objects of the industrial process depicted in  FIG. 1  according to an embodiment of the invention. The work station  109  of  FIG. 1  is realized by means of a computer screen  110  at which the operator typically is located when supervising the industrial process  100  in  FIG. 1 , and a computer  113 . As previously has been described, the operator enters appropriate OPC UA terms in a script  111  by means of a keyboard (not shown) to define the process to be graphically illustrated. In an embodiment of the invention, this is done by using the concept of OPC UA nodes and references. 
         [0028]    Then, the operator pushes a “compile” button, wherein the text, or source code, entered in the script is compiled (i.e. computer-interpreted) in step  112  such that each indicated OPC UA node of the script is associated with a respective one of the created graphical objects stored in library. Hence, each indicated node is associated with a corresponding graphical object. Thereafter, when the computer  113  has finished the compilation, a set of graphical objects  114  representing the physical components of the monitored industrial process is generated and displayed. 
         [0029]    In a further embodiment of the present invention, the concept of Attributes supported by OPC UA is employed. For example, with reference to  FIG. 1 , a node corresponding to the tank  103  could provide a read-type attribute such that the actual level of the tank could be read at the OPC server  106  and presented to the operator on the generated graphical representation of the industrial process  100  at the work station  109 . 
         [0030]    In a further embodiment, it is possible to assign a write-type attribute to a node. With reference to  FIG. 1 , it would be desirable to control the flow through the valve  102  to attain a desired level of gasoline in the tank  103 . This could be done by providing the valve node with a write-type attribute such that an appropriate control signal is communicated to the valve  102  via OPC server  105  to set the tank level at a desired level. 
         [0031]    The skilled person in the art realizes that the present invention by no means is limited to the examples described hereinabove. On the contrary, many modifications and variations are possible within the scope of the appended claims.