In general, two solutions come to mind for the implementation of gateways:
direct conversion from one protocol to the other
conversion of protocol to and from a standardized format which does not
depend on a protocol
The first approach is well suited for simple one-to-one conversions between
related protocols. Both protocols are very close, i.e. there is a great
resemblance between both protocols in the way information is represented.
This approach offers only a very limited degree of flexibility with respect to
expanding and decoupling both protocols. This need not necessarily be a
disadvantage, if flexibility is not the top priority, as is the case in
conversions from Profibus-DP to Modbus.
The second approach relies on the conversion of data from a protocol to
a standardized protocol independent universal format. This universal representation
must be powerful enough to cover all protocols. This method is best suited for
universal conversions where the target protocol is not specified. It offers the
highest degree of flexibility and modular expansion allowing decoupling of
ipConv relies on the second approach, data is converted from a
protocol-specific to a standardized protocol independent representation and back
ipConv is a modular system comprising several protocol stacks assuming
the protocol-specific communication tasks. Outwardly, the protocol stacks
are connected to external communication partners. Internally, they are able to
exchange data via a standardized interface with the node module (node).
Generally, the protocol stacks are not directly connected to each other.
The normalized interface allows information to be represented in a way which
is protocol independent, so that data can be exchanged between different
Protocol stacks translate information from the protocol-specific representation
to the normalized form and back. During this process, telegrams are broken down
into their atomic units such as individual single indications.
Protocol stacks consist of one or several modules which are self-contained
functional units. Simple protocol stacks usually comprise one single module.
More complex protocols based on the OSI Layer Model will consist of several
modules. In this case the module assumes the functionality of an OSI layer (e.g.
link layer or application layer). Each module (as well as the link layer module)
has its own interface to the node module, which enables the transfer of
administrative data such as the connection status to a specific RTU.
Additional tasks of administrative modules are for instance failover control,
time synching etc.
Node and Normalized Interface
The node takes care of reception, processing and dispatching of normalized
information. During the start-up phase it establishes a connection to each
module which is then used for internal data transmission.
All information dispatched to and from the node is transmitted in normalized
form. Generally normalized information has these attributes:
time stamp (optional)
further type-dependent attributes
The information type determines how the attributes are to be interpreted.
Information is addressed via a normalized address (NA) which unambiguously
identifies an information unit inside a module in a specified transmission
direction. The normalized addresses are structured in a way that allows tracing
of the protocol specific address and vice versa. The actual structure of the
normalized address is determined by a protocol stack.
Each piece of information in the node passes through the following stages:
Reception from the source module At this point there is a check
whether the received information has been configured or not. If this is not
the case, the information is rejected and the appropriate message is written
to the logfile.
Processing Configured information can be processed as determined by
the configuration parameters, it can be scaled, inverted, converted etc.
Dispatching The configuration also specifies where the information is
to be transmitted, i.e. to which module and with what target NA (normalized
address). At this point the information type is also converted, if the source
type is not identical to the target type.
Transmission to the target module Before the information is sent to
the target module, the node checks whether the target NA has been
configured. If this is not the case, the information is rejected and
the appropriate message is written to the logfile. Similar to the reception,
additional information processing might take place at this point.
It is the node configuration which determines how the information is
processed. It defines exactly what information (address, type) comes from a
module and proceeds to a module.
Only if there is status or value change data (single indications, measured
values etc.) is transmitted in monitoring direction. In control direction all data
(commands, set points etc.) is transmitted directly. Generally the behavior
depends on the normalized information type.
Protocol Stacks and Modules
A protocol stack is an organizational unit of one or more protocol modules that
helps to simplify configuration. At runtime only the individual protocol modules
A protocol module is connected to a remote communication partner as well as
to the node. Its task is to maintain the data flow with the remote station and
to translate the data from the protocol specific into normalized form and vice
A protocol module consists of a clearly defined "vocabulary" of normalized
information which it can exchange with the node. There are two basic categories:
Process information is data that is directly transmitted to/from the
communication partner. Inside the protocol module, only the conversion of
addresses and values between the protocol specific and normalized form takes
place. The function range of a protocol defines what normalized information
types can be processed by a protocol module.
Internal information on the
other hand is only indirectly related to the remote station. It is generated and
processed directly inside the protocol module and has an organizational
function. If, for instance the remote station does not respond, this fact is
often signaled to the node with an internal message.
Protocol modules are self-contained units which are able to set up and
maintain data traffic with the remote station without any instructions from
outside. For instance a slave module has an image of all the information to be
transmitted to the corresponding master and can respond to all requests
independently, without referring back to the node. The transmission mode to be
used (spontaneous, polling etc.) depends on the protocol. The node provides all the
information to the module in case of value / status changes. In contrast
the master module makes sure that a general poll is executed, if a new RTU is
recognized, thus ensuring that all information with respect to this RTU is fully
For tracing the data traffic at the communication interface,
each protocol module offers the possibility to log the data at different levels
In addition to protocol modules, there are further modules that do not have
any direct communication tasks. For example the NTP
module takes care of system clock synchronization via the NTP protocol.
Administrative modules, too, use the normalized interface to communicate with the