Volumes

When configuring a system, and creating objects, you usually know which node the objects
will belong to in runtime. You could group the objects after which node they will belong to,
but a more flexible grouping is made, so instead you group the objects in volumes. A volume
is a kind of container for objects. The volume has a name and an identity, and it contains
a number of objects ordered in a tree structure.

There are a number of different types of volumes, and the first you get in contact with is
a root volume. When configuring a node, you usually work in a root volume. Every node is
connected to a root volume, i.e. when the node is starting up in runtime the root volume,
and its objects, are loaded into the node. Below is a description of the different types of
volumes.

RootVolume

A root volume contains the root of the object tree in a node. At startup, the node is loading
the root volume.

A node is connected to one and only one root volume. Furthermore, a root volume can be loaded
into several nodes. When a process station is running in production, the same volume can
concurrently be loaded into a development station for simulation, and a third node can run
the volume in educational purposes. Though, you have to consider that the nodes have to run
in different communication buses.

SubVolume

Some of the objects in a node can be placed in a subvolume. The reason to divide the objects
of a node in a root volume, and in one or several subvolumes could be that a number of persons
have to configure the node simultaneously, or that you plan to move parts of the control of
some plant parts to another node later.

ClassVolume

The definition of different classes reside in a special type of volume, called ClassVolume.
Here the description of a class is built with objects that define the name of the class
and the attributes of the class.

There are two classvolumes that you always include in a ProviewR system, pwrs and pwrb. pwrs
contains the system classes, mainly classes used in class definitions. pwrb contains base
classes, i.e standard classes that are needed to build a process or operator station.

DynamicVolume

A dynamic volume contains dynamic objects, i.e. volatile objects created at runtime. If you
have a material planning module in the system, an object is created for each material that
is processed in the plant. When the processing is completed, the object is removed.

SystemVolume

The system volume is a dynamic volume that resides in every node, and that keeps various
system objects.

DirectoryVolume

The Directory volume only exists in the development environment. Here the volumes and nodes of
the system are configured.

Volume Identity

Each volume has a unique identity, that is written with four numbers, separated by periods,
e.g. "_V0.3.4.23". The prefix _V states that it is a volume identity. To verify that the volume
identities are unique, there is a global volume list that contains all volumes. Before creating
a project, the volumes of the project should be registered in the volume list.