Unique system of 3D visualisation of industrial process gives
unbeatable realistic look of applications and the power of graphics
chips makes the rendering of applications smooth in realtime. Robust
networking linked with a sophisticated system of archivation of
technological values makes the development of distributed
client-server applications and multiple redundant server applications
easier, even without the support of expensive cluster operating
system. These are indisputably the most important inovations which
require more detailed description. However, there is a handful of
minor improvements upon the Control Web 2000 system, which are important as
well and should be mentioned. These improvements were made in almost
all parts of the system — more intuitive user interface,
improved architecture, decreased development time, increased
application performance, etc.
Control Web 5 maintains backward compatibility with its predecessors,
even though the source code writing style was altered a little bit.
Your investments in training and in your own applications are
preserved during the change-over to new version.
A number of system architecture improvements intervene
in almost every field
Many chosen properties became common for all of the
instruments. For example visibility or screen order can be
controlled using an expression.
Many native OCL procedures were unified in a similar way. All
instruments now share procedures for controlling position,
visibility, setting and getting values etc. So there is no need to
speculate whether a given instruments supports these basic OCL
procedures or not.
A new feature is a option of finer control of the system
kernel time resolution. Instead of former 10 to 15ms resolution
there is a possibility of as few as 2ms control. That way the
realtime technology control is greatly improved. However, this
feature is dependent on the motherboard and chipsed installed in the
computer and is available only under Windows 200/XP operating
systems.
The system kernel is monitoring current time and adjusts the
timing of absolute timed instruments. That way a difference between
time provided by operating system as the length of system runnig and
the current time is corrected. This difference could be as much as
several seconds per day on some computers.
Some of the parameters used to be accessible only like
individual instrument parameters (for example an option whether the
same values should be sent to the output all the time). Now they can
be set on a global scale for the whole application.
A new option of direct control over the steps the system
performs during the start was added (for example channel value
initialization, initial instrument activation etc.).
An automatic backup of chosen data elements option is
included in the system, so that the state of the system can be
automatically recovered, for example after a power loss.
Information about each instrument is available during the
application development process - which data elements are being read
by the given virtual instrument, which are being written to, which
other virtual instruments are being activated and which OCL
procedures are being called.
The "draw" instrument for 2D graphics was improved in many
ways. All drawing elements are made accessible by more than one
hundred OCL procedures. The elements can also be chosen by mouse and
the event OCL procedures can be invoked by user actions.
The expression writing style was considerably
enhanced
Where only numbers or simple constants could be written
before, now also constant expressions can be written.
Operator % (modulo) was added to the expression syntax,
operator + works also with string operands (so it saves the work
with nested concat function calling), the comparison operators
(<, >, =, <=, >=, <>) work with all data
types.
Logical operators (and, or, xor, not) can be used with
numerical types - they work like bitwise logical
operations.
Some new functions were added (round, round2, rand, floor,
ceil, frac, replace, subst, ...) etc.
String data type is no longer restricted to 256 characters.
Even though strings do not have any length restrictions anymore,
operations performed on them are not slowed down compared to the
previous version.
It is possible to supress error generation during expression
evaluation (for example divide-by-zero error) and let the
application work without interruption. A new function
last_error returns error code from the most recently evaluated
expression.
Built-in OCL programming language was improved as
well
OCL procedures can return values and be called in expressions
like functions.
Parameters can be passed to procedures by reference. Keyword
"var" ensures working with the passed data element and does not need
explicit writing of the reference (& character) during the
procedure call - that prevents a lot of errors due to the omitted
& character.
A lot of new system OCL procedures were added that
provide the work with the date and time, etc. These procedures are
implemented in a new set of system instruments for better
transparency.
A new system of access rights
The access control for virtual instruments and application
panels was considerably expanded - the access rights are not
linearly structured, but each user or user group access can be
permitted or denied.
In spite of these improvements the new access control system
remains compatible with applications from the previous system
version.
Faster and more intelligent compiler
The compiler does not halt on the first error, but it can
recover and continue the compiling. All found errors are then
displayed and highlighted in the source code and all could be
removed in one pass.
The error diagnostics was also considerably improved. Even
errors from later compiling phases are precisely localised, like
calling a non-existing method of a remote instrument, etc.
A new instrument inspector
The new instrument inspector provides a completely new user
interface, which is displaying all instrument properties at once and
allows to change them directly in a well-arranged table.
The instrument properties can be hierarchicaly arranged and
the instrument inspector can fold or unfold particular
branches.
The inspector could be activated on more than one instrument
at a time - it is for example possible to change a text color or
font on several instruments at once.
The inspector of the "draw" instrument was completely
redesigned and brings advanced function, such as zoom, grids and
guiding lines, etc.
A well-aranged instrument palette
This instrument palette provides a structured look at all of
the instruments included in system. They are arranged in order of
usage purpose, data types, etc., so it makes finding a suitable
virtual instrument simple.
The text editor was improved in many ways. A number of
features was made more intuitive, such as movement of the cursor
over the text, selecting blocks, searching provides most recently
searched and replaced strings, etc.
The look of the application
Not only can be the colors defined with their channels, but
also standard colors of the operating system can be selected - such
as the color of a window caption or a button. The color of the
application in Control Web system complies then with the user color
set.
The look of the controls in a Control Web application complies
with the standard look of these controls in the Control Web system
development environment and also with the look of the Windows system
itself. An application in Control Web 5 environment does not have to
differ from other Windows applications.
Control Web 5 system is fully compatible with the latest versions
of Microsoft Windows 2000, Windows XP Proffessional and Windows XP
Home edition operating systems. Control Web 5 is on these operating
systems developed, tested and is primarily targeted for
them.
Improved SQL database access
SQL instrument can asynchronously connect to a database and
so does not affect the application start and runing.
All SQL queries can also be processed
asynchronously.
The error state management was improved.
The application has a possibility to detect a loss of
connection to the data source (SQL server failure, network
disconnection, ...) and react accordingly to this state.
Newly the NULL value can be read or written.
Built-in HTTP server was improved
The server does not require the existence of an HTML template
in the form of a file on a disk any more. It is possible to create
complete HTML document using only procedure code. The system does
not have to access disk files during server activity.
The format of dynamically generated images showing the visual
appearance of the instruments in an application was changed from
previous GIF, which allowed only 256 colors, to PNG, which is
capable of storing true color images.
Added OCL methods of the HTTP server make a header of an HTTP
request accessible. It is now possible to read the information sent
by the client (such as what is the requested server in the "host"
parameter and many more).
Similarly it is possible to change and add parameters in the
HTTP reply header (for example affect the memory buffer,
etc.).
It is possible to set the HTTP reply state code and for
example redirect to another URL, etc.
Data obtained from HTML forms are accessible not only using
automatic analyzer, which converts the data and assigns them to
selected data elements, but also in the form of text string, which
can be analyzed by the procedure code.
It is possible to identify a client IP address and use it for
example to control the access to WWW pages.
HTTP server can refine the access rights from the whole
application to single directories or even files (URL).
The server contains a controlable memory buffer, which can
make parallel access of a great number of users to the pages or
images much faster.
Internet application generation guide
The Internet application generation guide eliminates the need
to know the HTML format and the WWW environment application
development principles.
The guide is able to automatically generate a WWW application
that is using DHTML (Dynamic HTML), which duplicates an application
running in Control Web environment. If, for example, a panel appears in
a window, this window will also appears in a WWW browser.
The user chooses which components (panels) from the main
application should be displayed in the HTML browser.
It is also possible to choose which control elements should
be displayed in the HTML pages and will allow backward controlling
of the application from the WWW browser.
Automaticaly generated application works without the
contribution from ActiveX components or Java applets, so many
restrictions that come hand in hand with these technologies are not
present (for example using Java applets is restricted to networks
with available DNS service and they require the presence of a Java
VM on the target computer, the usage of ActiveX limits the user to a
PC with Windows operating system and Internet Explorer browser,
...).
3D visualisation in Control Web 5 environment
The three-dimensional graphics field is coming lately through a
rapid technological development. The driving force of this
progress is not the development of the engineering and industrial
visualisation, but the massive maket potential in the
entertainment and computer games area. Thanks to this, even the
low-end computers are equipped with such capabilities for 3D
graphics, that even quite recently noone dared to imagine it even
at the most powerful and very expensive graphics stations. It
would be a waste to miss this potential of these technologies in
the industrial automation field as well.
Three-dimensional and full-motion graphics is without doubt the
most promising and also the most attractive technology in
industrial automation thanks to the possibilites of modern
graphics cards. Control Web as the first visualisation system is
capable of taking advantage of the graphics power of modern
computers for real-world industrial applications.
More impressive and at the same time faster
graphics
Control Web uses these possibilities for technological process
visualisation. Considering the power of modern accelerators,
even very complex scenes with tens of thousands of polygons
are drawn more than hundred times per second. That brings a
great increase in performance and the graphics quality to
application programs, which is not achievable in
two-dimensional GDI graphics.
More suitable architecture for realtime
applications
The redrawing of 3D graphics in the Control Web system is
hadled by a client-server architecture. The server responsible
for scene redrawing runs in a separate thread. If the virtual
instrument requests a redraw, this request will only be sent
to the server and the instrument does not care about it
anymore. This request registration does not slow the
instrument down and the application program continues smoothly
in realtime. It seems like the graphics does not exist at
all.
3D graphics for everyone
Everyone who ever worked with the 3D graphics would object,
that all this is very visually attractive, but it would be too
difficult and complex for a common user to work with it. The
main design objective of the Control Web 3D system was to make
visually impressive 3D applications available to everyone with
minimal work expenditure and without the need for previous
knowledge and experience. Who is capable of creating a 2D
application can do the same in 3D for sure.
The integration of the 3D visualisation in the
application in the Control Web system is very simpe -
appropriate virtual instruments are just dragged from the
palette like any other component. There are three approaches
how to insert the 3D instrument in the
application: A separate instrument directly on
the 2D panel or on the Windows desktop. Inside a 3D
panel with orthographics projection - working with these
panels is practically the same as with common 2D panels.
Everything just looks better, graphics is redrawn faster and
without any annoying flickering. Inside a 3D scene
with perspective projection.
Editation of the 3D scene "in place" - in place
editor of the scene works directly on the integrated
development environment desktop. The editor allows a
manipulation of the objects in the scene, even with custom
camera position. In additon to perspective projection it is
also possible to display orthographics projection of the
scene from all major directions, i.e. front, back, left,
right, up, down. The scene can also be displayed using
wireframe mode.
Movement of the camera in the scene - it allows
displaying not only a general view of the technology, but
also arbitrary details in the scene. It is not necessary to
create more than one switchable panel and the application is
more lucid for maintenance. The movement in the scene can
be: Interactive - the user can move freely in the
scene space using mouse or keyboard Program - it is
possible to read actual position of the camera and
especially set a new position for the camera to move using
native scene procedures. The movement of the camera is
interpolated by the system accordingly to a given number of
steps and time between these steps.
particle system - allows realistic and dynamic
displaying of effects, such as smoke, fire, sparks, etc.
There is a lot of already prepared effects and their usage
does not demand any effort from the application
author.
Support for surface materials - the two-dimensional
drawing needs only color to be set, but a shaded and lit
object in three-dimensional is a little more complex. The
surface materials have some parameters to set, such as
diffuse color, specular color, texture, transparency,
etc.
Rendering of transparent surfaces - the system always
ensures a correct rendering of object transparency with any
custom camera position and virtual instrument drawing order.
There are three ways to define the
transparency: transparency as a parameter of material
color transparency as a texture intensity
factor transparency of a texture given by an external
mask
Textures with high resolution - textures with
resolution up to 2048x2048 pixels are supported. Bigger
textures are internally converted to this resolution. The
application programmer usually does not have to bother with
the size and format of the textures. Textures of any size in
JPG, BMP, GIF, TIF, PCX, TGA and PNG formats are accepted.
Of course the size of the textures is to be chosen carefuly
with respect to memory consumption and loading of the bus
and the texturing units of the graphics card.
Built in 3D objects - the system comes with plenty of
already prepared objects, which makes effective application
development simple even to people who do not want to be
deeply conserned with 3D graphics.
Application of external 3D models - the application
program can accept 3D models in Wavefront OBJ format. This
format is widely used, so it allows almost any arbitrary 3D
graphics created in one of many 3D drawing programs to be
used. And if a certain program does not allow direct export
to OBJ file, one of many freeware or shareware conversion
programs should help. A model imported that way is not
only a passive image - particular groups of the model are
fully under the application program control. In the
application, not only materials in the groups can be
changed, but they can also be inserted in scene hierarchy
and manipulated the way native objects are. The rendering
machine is equipped with high quality algorithms for model
surface smoothing.
Manipulation with graphic groups - every virtual
instrument contains one or more graphic groups. Scene redraw
follows hierarchical structure of these groups. The
hierarchy can be changed and the groups can be in several
ways manipulated. The position, rotation and size of the
groups can be controlled for example by interpolators.
Interpolators are mathematical expressions with additional
information that control their behaviour. That way even
complex animations can be created with a lot of moving
objects in the scene.
Reflective surfaces - simulation of a mirror
reflection on a polished surface is solved with a very fast
algorithm with maximal usage of accelerated functions of
graphics cards.
Planar shadows - a simplified and therefore very fast
mechanism for simulating shadows cast on planar
surfaces.
Volumetric shadows - a robust and sophisticated
algorithm for fully volumetric shadows is realized with the
aid of multipass technology. Every shadow does not affect
only other objects, but also the object that casts this
shadow itself. The shadows properties respect all positional
and directional lights used in the scene.
If there is no graphics card present in the computer that
supports 3D graphics functions in its hardware, the operating
system implements all 3D functions in software. Of course with
much lower efficiency. So it is very convenient to have a
computer equipped with a powerful graphics card for the work
with 3D graphics, for example a card with nVidia GeForce or
ATI Radeon chipset.
Robust networking and database support
Even though Control Web 2000 system supports the development of large
distributed applications there was still a lot of room for
improving the whole architecture, especially the ease of usage.
Interconnection of the applications through remote modules was not
designed with respect for multiple-redundant backing up. The
applications backup required operating systems that supported
clusters (Windows 2000 Advanced Server) and rather expensive
network hardware (SCSI RAID disk array). Control Web is now able to
create a group of redundant control and visualisation applications
without a need for server operating system.
Next motivation for changes is an essential save of effort
while developing an application with many data elements. Control Web
does not require repeated explicit data elements entry in the
instruments for archivation, for watching bounds (alarms) or
displaying historical progress, etc. Similarly is it with data
elements that are read from a remote server application - again,
it is not necessary to declare them explicitly and maintain their
communication.
The solution is a newly introduced concept of "data
sections". A data section is an enhancement of constant,
variable and channel declaration known from Control Web 2000
system.
A section of constants (const), variables (var) a
and channels (channel) were moved from the highest priority
block to a newly introduced block bounded by keywords data ..
end_data. This block that contains data sections is similar to a
block instrument .. end_instrument, which bounds particular
virtual instruments.
The sections can be named (for example var section_name;
.. end_var). Data elements are then accessible through qualified
name containing the name of the section (for example:
section_name.variable_name). Because of this it is possible to
declare the same identifier in more sections, but then it has to
be accessed only with a qualified identifier.
It is possible to read and write data into a driver
without explicit channel declaration. A newly introduced
syntax driver_name.channel_nubmer makes a channel explicitly
accessible (for example a = 3 * drv1.100 + drv2.101).
Apart from present variable and channel sections there
are some new section types: Section expression ..
end_expression declares data elements with assigned expressions.
First usage of data element in each time step invokes expression
evaluation and the result is then shared with other sections and
virtual instruments. If there is a driver reference in the
expression, communication with the driver is
performed. Section schedule .. end_schedule is similar to
the expression section, but in addition it needs a period to be
entered. The expressions are then evaluated in this period and
assigned to data elements. Section archive .. end_archive
is again similar to periodically evaluated data elements, but in
addition are the data saved in a given database. Section
alarm .. end_alarm is watching bounding values of data elements
and records their breaking, confirming and other relevant
information. A combination of the previous sections
is a section alarm_and_archive, which periodically saves data
and at the same time checks breaking bounds.
There can be more than one sections of the same type.
They can differ in their name and attributes.
A part of the sections can also be user or event OCL
procedures, similarly as with instruments. The sections are,
like virtual instruments, equipped with native OCL procedures,
that allow program control of their function.
The sections do not have any visual appearance during the run.
They serve only for data elaboration, communication with
industrial peripherals, network data exchange and archivation to
database. During the user interface development it is possible to
use not only all of the older virtual instruments from previous
versions of the Control Web system, but also brand new virtual
instruments that make use of all data section possibilities.
data_viewer instrument is capable of displaying
proceeding of any data element in the application. Individual
elements or whole sections can be added or removed from
displayed graphs at runtime, the data can be displayed
graphically or in a table. The visualisation can contain
discontinual data, particualr proceedings can obtain individual
scale or a logarithmic scale can be used. The time cursor shows
precise values in particular moments, etc.
Graphics visualisation has a very flexible user interface
and the author of the application decides about the
configurability which would be available to users.
Because the data_viewer instrument is able to communicate
directly with data sections, it is not necessary to explicitly
mark the particular proceedings, it is enough to mark sections
that should be displayed. In respect of the character of data
sections It is possible to display local data as easily as data
from remote computers.
If a connected data section stores history (for example
section archive), a graph can display also all historical
data.
A next new instrument is a section viewer of a type
alarm. It is possible to connect this instrument directly to a
particular section without almost any effort, similarly like
with a graph.
Like a graph, the alarm viewer is able to display data
from remote sections and so it is very easy to create for
example more client applications, where their operators can
acknowledge error states in the server application.
The concept of data element attributes known from Control Web 2000
system was enhanced also to sections. If some attribute is common
to all data elements (for example initialization value, period of
sampling or a driver to which is a channel connected) it will be
more convenient to mention him in the section and save writing
code for each data element.
Next newly introduced attribut scope makes robust application
network connection easily accessible for everyone who needs to
create a distributed application or an application with fail-safe
run safeguarded with active backing up
The synchronization of the sections (scope =
synchronized-shared-remotely) allows creating more data sections
in two or more applications working on different computers, of
which only one is active. It means that only one application for
example communicates with a particular PLC or other hardware,
other applications only synchronize the content of data elements
trough a network. If the active application fails because of
some reason (for example CPU cooler fan stops), the role of
active application will be taken by another computer and the
system will continue the work without a halt.
The choice of the remote section (scope =
imported_remotely) says that the data are not stored localy, but
that they should be sent over network from/to remote computer.
Again it is possible to specify more data sources - it means
that a communication failure with one computer leads to a
reconnection to another computer if there is one available. If
not, the connection can be restored later, its failure does not
cause application halt.
Both attributes allow easy development of reliable
client-server applications - more redundant servers process data
and communicates with the technology and they are able to stand
for each other in a case of a failure. Many clients can be
connected to these servers, they can also change their
connection configuration according to the configuration of the
servers.
The concept of data sections allows the designers to very
easily implement basic functions of their applications
(communication with a technology, archiving, bound breaking check)
by declaring every data element only once in particular data
section. A new instrument data_viewer can visualize the declared
data without a need for further immediate imprinting.
Control Web 5 is more than a worthy successor of a widely known
Control Web 2000 system. Apart from many improvements and enhancements
described in previous text it also contains all features thanks to
which his predecessor became an industrial standard in its
field.
Requirements on operating system
Requirements on operating system: Control Web 5 works under 32 bit
operating systems Windows 95/98/Me and Windows NT/2000/XP.
However, for a serious work and a stable run it is necessary to
use Windows 2000 or Windows XP.
Minimal recommended configuration of a computer for Control Web 5
system
Processor AMD K6-2 or Intel Pentium II 300 MHz or better.
Memory 64 MB for systems Windows 95/98/Me or 128 MB pro systems
Windows NT/2000/XP
Minimal recommended configuration for work with 3D
graphics
Processor AMD Athlon/Duron 1 GHz or Intel Pentium 4 1,5 GHz
or better.
Memory 256 MB.
Graphics card with accelerated OpenGL support with at least
32 MB memory.
|