Datasheet
Adaption of I/O systems
This section will describe how to add new I/O systems to Proview.
Adding a new I/O system requires knowledge of how to create classes in Proview, and
baseknowledge of c programming.
An I/O system can be added for a single project, for a number of projects, or for the Proview base
system. In the latter case you have to install and build from the Proview source code.
Overview
The I/O handling in Proview consist of a framework that identifies the I/O objects on a process
node, and calls the methods of the I/O objects to fetch or transmit data.
Levels
The I/O objects in a process node are configured in four levels: agent, rack, cards and channels. The
channelobjects can be configured as individual objects or as internal objects in a card object.
To the agent, rack and card objects methods can be registered. The methods can be of type Init,
Close, Read, Write or Swap, and is called by the I/O framework in a specific order. The
functionality of an I/O object consists of the attributes of the object, and the registered methods of
the object. Everything the framework does is to identify the objects, select the objects that are valid
for the current process, and call the methods for these objects in a specific order.
Look at a centralized I/O system with digital inputcards and digital outputcards mounted on the
local bus of the process node. In this case the agent level is superfluous and represented by the
$Node object. Below the $Node object is placed a rack object with an open and a close method. The
open method attaches to the driver of the I/O system. Below the rack object, cardobjects for the Di
and Do cards are configured. The Di card has an Open and a Close method that initiates and closes
down the card, and a Read method the fetches the values of the inputs of the card. The Do card also
has Open and Close methods, and a Write method that transfers suitable values to the outputs of the
card.
If we study another I/O system, Profibus, the levels are not as easy to identify as in the previous
example. Profibus is a distributes system, with a mastercard mounted on the local PCI-bus, that
communicates via a serial connection to slaves positioned in the plant. Each slave can contain
modules of different type, e.g. one module with 4 Di channels, and one with 2 Ao channels. In this
case the mastercard represents the agentlevel, the slaves the racklevel and the modules the
cardlevel.
The Agent, rack and card levels are very flexible, and mainly defined by the attributes and the
methods of the classes of the I/O system. This does not apply to the channel level that consists of
the object ChanDi, ChanDo, ChanAi, ChanAo, ChanIi, ChanIo and ChanCo. The task for the
channel object is to represent an input or output value on an I/O unit, and transfer this value to the
signal object that is connected to the channel object. The signalobject reside in the plant hierarchy
and represents for example a sensor or an order to an actuator in the plant. As there is a physical










