web developer & system programmer

coder . cl

ramblings and thoughts on programming...


proview I/O layers

published: 09-06-2012 / updated: 09-06-2012
posted in: c, c++, development, programming, projects, proview, tips
by Daniel Molina Wegener

Understanding the I/O layers on ProView is a must. If you understand the I/O layers, you will be able to configure channels and signals grouped in classes allowing a very good usage and abstraction of the devices that are being examined and manipulated from ProView. For example a Profibus device can have 8 digital input channels for its status, but they should be grouped a custom class using an array of digital channels with Bit8 as data representation, so they are used as object attributes rather than separate channels, if you do not configure the proper class, you will be wasting your time configuring separate channels for each device, leading to some mistakes. Just imagine that you want to configure 50 devices with the same number of channels for its status, you will need to configure 50 times each channel. So, you really need to know about the I/O layering on ProView.

The I/O layers are represented by an I/O Context, Agents, Racks, Cards and Channels. An I/O Context, is an I/O virtual space for I/O operations, where one or more Agents can work separately, but sharing some data, where you can use only on I/O Context from each Application. An Agent is a protocol layer, where each Agent can work as protocol handler, for example there is a Profibus and Modbus agents, where each Agent connects to one or more endpoints. Then comes one or more Racks where they are groups of Cards, and each card is grouping Channels.

ProView I/O Layers

ProView I/O Layers

Also the ProView system has a class hierarchy implementation, where each Agent, Rack and Card class is allowing sub-classing. This allows some custom devices to be configured easily over some other generic devices, for example those which are handled by Profibus and Modbus protocols. For example we have created our own classes to handle some very specific devices. So, ProView is great for building custom ICS systems. For example it has support for a Siemens ET200S-2AI device as Card and some other devices, but it is so customizable that you can build your own classes for any level.

Siemens ET200S

Siemens ET200S

We currently have made some custom classes for our project, almost on all levels, this is really nice. You just need to read the documentation and have a deep knowledge on C and C++ programming languages. Java is supported, but it is not so good to be used in soft real-time systems, as we have configured our processing stations. Also we cannot use PLC programming due to the algorithm complexity, like priority queues and task scheduling. Also it has some very nice features, like mapping between nodes and plant nodes automatically using a single IoConnect attribute on the mapped component, to allow automatic connections between channels on device classes and signals in I/O components. There are many useful features around the I/O system in ProView that can make it a very good framework for ICS systems. For example I am very sure that you will love to work with GDH, because it is really one of the best abstraction layers that I have seen.


No coments yet.

post a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>