DCS; Industrial control system
NameDescriptionContent
NEW CENTER
Current Location:

ABBIndustrial Networks Connecting Controllers via OPC

From:ABB | Author:LIAO | Time :2025-08-27 | 819 Browse: | Share:

Abstract

In order to modernize their infrastructure and keep up with the state of the art,

ABB Power Systems decided to replace the older controller AC450 with a new

generation of controllers called AC800M. Just like its predecessor, its main task is to

work as a sequencer in an otherwise mostly unchanging topology. Although the new

controller AC800M provides modern communication features and a sophisticated

application development system, it lacks of a communication interface compatible

with the residing controllers AC160. A hardware approach addressing this problem

is in development, but not available at this point of time. Thus the decision was

made to realize the connection using OPC, a widely spread and open software

communication interface standard with a high potential of reusability. In addition,

it was aimed at gaining additional knowledge about the OPC interface, which is

commonly used in industry.

In this thesis, we evaluate adequate hardware and software to realize this connection and we have programmed the controllers with applications to evaluate its

performance and integrity. In addition, we are making considerations about redundancy that is vital in automation business in order to increase reliability and

availability. We have shown that it is possible to interconnect controllers using

OPC with satisfactory average performance results. Due to high maximum round

trip times and high complexity when realizing redundancy, it is recommended to

use such a system for testing purposes or non-critical operational applications, but

not for critical systems. In this thesis we also identify and judge several alternative

ways of connection.

Acknowledgements

First of all, I would like to thank Prof. Dr. Bernhard Plattner of the Computer

Engineering and Networks Laboratory TIK at the Swiss Federal Institute of Technology ETH Zurich for supporting and supervising this Master’s Thesis. Special

thanks go to my advisors Rainer Baumann and Bernhard Tellenbach of TIK for

their straightforward and helpful support during my work.

Secondly I would like to thank Dr. Esther Gelle and Pascal Aebli of ABB for

enabling this Master’s Thesis in the first place as well as providing aid throughout

this thesis. Special thanks also to Stephan Egli for supporting me with the first

steps, Swen Woldau for numerous hints concerning AC160 and AF100 as well as

Juerg Beck for AC800M tips and tricks. Finally I would like to thank everyone else

at PSPD for the provided aid and making my work so convenient not only in a

technical but also in a human manner.

Baden, June 2007

Martin Pfister

Chapter 1

Introduction

This chapter will provide a rough overview of the problem treated by this Master’s

Thesis. All technical devices and expressions will be explained more precisely in

the next chapter. Please note that since this is a public thesis, it does not contain

sensitive company-internal data.

1.1 ABB Power Systems

ABB Power Systems is one of the world’s leading providers of infrastructure for

controlling combined cycle power stations and waste-to-energy plants. Such a

plant control infrastructure includes several hardware parts consisting of controllers,

input/output-boards and communication devices as well as many software components to engineer, run, observe and analyze the power plant. A power plant control

system has to satisfy a broad variety of different needs, from the efficient and reliable control of the turbines and associated supporting functions (such as lube oil)

to easy configuration and operation as well as to sophisticated analysis functions

addressing technical and economical aspects.

1.2 Problem Statement

Due to high investment costs, the technical management of power plants is a slowgoing business with long life-cycles. Thus, a considerable amount of hardware

devices currently in use are tens of years old. For future applications within ABB

Power Systems it will be necessary to connect a controller of the newest series used

within ABB, Control IT AC800M, with an older controller of the type Advant

Controller 160 (AC160). The problem is that these two controllers do not share

a fast communication interface of similar type and therefore cannot communicate

directly. The standard communication intended for AC160 is Advant Fieldbus 100

(AF100). However, AC800M can support a whole range of buses except for AF100.

As a consequence, the communication must be implemented using some relaying

technique.

1.2.1 The Use of OPC

It was decided in advance to realize the relaying connection using OPC. This solution was chosen because OPC is an open standard and very common in process and

automation industry. Furthermore, this solution offers a high potential to be used

for similar problems, since a lot of devices support this specification. However, OPC

is normally not used for fast controller-to-controller communication but for slower

visualization and logging purposes and there is no performance data available for

this kind of connection. The use of OPC is therefore both challenging as well as

interesting to gain more insights and know-how.

It is also to mention that a hardware solution addressing our problem is not

available yet. It is therefore necessary to have an alternative way using already

available parts, also for testing purposes.

1.3 Goals

The goals of this Master’s Thesis are stated as follows:

• Setup and evaluation of a test environment

• Setup of test systems

• Theoretical and practical evaluation of the test systems concerning performance, availability and reliability.

• Identification of improvements and different approaches

• Comparison with alternatives

As a starting point for the performance requirements, the current implementation was taken. The corresponding quantity and type of variables are displayed in

Table 1.1 with 32-bit floating point values (floats) as analog in- and outputs and

1-bit boolean values as so-called status and command bits. In the current configuration with AC450 and AC160, all variables are written to the AF100 fieldbus with a

cycle time of 256 milliseconds. Therefore we determined the minimum requirement

for round-trip times from one controller to the other to exactly this time.

In agreement with the advisors, instead of elaborating the optional extension

stated in the task description (Appendix C), we spent more time on trying out a

second PROFIBUS approach and the theoretical derivation of a redundancy concept.

1.4 Structure

For the reader’s convenience this Master’s Thesis is structured thematically starting

with an overview of components and terms (2) in the next chapter. The following

chapters inform about the test system setup (3), the evaluations that were made

(4) and finally the results (5). In a subsequent chapter the subject redundancy

is treated (6) before the thesis comes to an end with the conclusion and outlook

(7). Additional information as well as a CD-ROM containing more detailed data is

located in the appendix of this thesis.

Chapter 2

Components and Terms

In this chapter, hardware and software parts as well as terms used for our test

system and evaluations will be described. Some additional devices and programs

concerning redundancy are introduced not until the chapter according. Information

on the version numbers can be found in Appendix B.

2.1 Basic Terms

• Performance, in this thesis, refers to the capability of a communication

component in means of speed and throughput.

• Availability is the term for the probability that a system will perform its

specified functions when used under stated conditions. A common mathematical definition of operational availability is Ao = MT BF/(MT BF + MDT),

whereas MTBF is the “mean time between failure” and MDT the “mean down

time” [2]. However, in this thesis, availability is used in a more general manner, since the basis for mathematical operations is not available.

• Reliability means the probability of a device remaining failure free during a

specified time interval, e.g. the maintenance interval: R = e

λt

• Redundancy is the implementation of extra components in addition to the

ones needed for normal operation. Thus, redundancy normally increases reliability and availability.

2.2 OPC

OPC, originally short for “OLE for Process Control”, is an open, standardized

software communication interface specification launched in 1996 by a task force of

different automation companies, later forming the OPC Foundation. As the former

name indicates, OPC is an adaption of Microsoft’s Object Linking and Embedding

OLE1

to the process control business, which used to be highly proprietary at that

point of time. Thus it was almost impossible to efficiently combine products of

different vendors. By providing so-called OPC servers with their devices, buses and

software, vendors open their products to any OPC compliant client able to connect

to the server for data exchange. Usually, an OPC server can handle several clients

at once, while these clients—e.g. visualization or calculation applications—can connect to different servers in order to obtain their needed information

Over the years, the OPC Foundation has been adding eight additional specifications to the original one, therefore the name OPC was freed from its original

meaning and is now used as an umbrella term [3]. Some important specifications

are quickly explained in the following:

• DA (Data Access) is the original and most widely used standard of OPC.

Its purpose is the cyclic polling of real time data, for example for visualization

purposes.

1

http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarolegen/

html/msdn_aboutole.asp

• HDA (Historical Data Access), in contrary, specifies the access to already

stored data.

• AE (Alarms and Events) describes the non-cyclic, event-based exchange

of alarms and events.

• Data eXchange is a specification from 2002 which regulates the direct communication between two OPC servers.

For this Master’s Thesis it was made use both of the DA specification for the

main purpose of communication as well as the AE specification in order to display

and log round-trip times. Unfortunately, the promising Data eXchange specification

is almost inexistent in practice and could therefore not be used in our thesis.

The underlying technique to exchange data is the component object model

COM of Microsoft Windows, therefore OPC can only run on Windows operating

systems [4]. A new generation of OPC specifications recently published is called

OPC Unified Architecture (OPC UA) and is independent of COM, thus being able

to run on more operating systems as well as embedded devices [5].

2.2.1 OPC Data Access

OPC DA is organized in the hierarchical structure server, group and item. Items

correspond to variables and can be read and written. Furthermore, a quality and

time stamp is provided with each of them. When reading items, the value usually

comes from the OPC server’s cache, which is updated periodically with the values

of the device (or bus, component). However, it is usually possible to force a read

directly from the device. Clients organize their items in groups, which for example

share the same access method and update rate. Each OPC server has an unique

name, some vendors even offer the operation of multiple servers for the same device.

OPC DA provides different methods to access items, first of all synchronous and

asynchronous read and write operations. More important to us, there is also a

subscription mechanism, which is commonly used by modern clients in order to

reduce communication. That is, the client group subscribes to the server which

then “pushes” values towards the client only if they changed respectively exceed a

pre-defined dead-band. The client can force an update of all these values by issuing

a refresh call, which corresponds to an asynchronous read for all items of a group

[6].

2.3 Programmable Logic Controllers

This section informs about the two controllers involved and about the controller

that has to be replaced. Please notice that we use the term controller equivalent

to programmable logic controller (PLC) throughout our Master’s Thesis.

2.3.1 Advant Controller 160 (AC160)

The AC160 series was launched in 1997 to meet high speed requirements in turbine

control. To this day its outstanding performance is needed for fast closed loop

control (CLC). For our work, we were provided with a rack RF616 for the physical

mounting of the controller parts. The rack also delivers power to each device

and includes the BIOB Backplane Input/Output Bus which, among other tasks,

processes the communication between the processor module and the communication

interface. The tests in this Master’s Thesis were done with processor modules

of the type PM665 (containing a Motorola MPC8240 processor) and the AF100

communication interface CI631, both supporting redundancy [7]. To program the

processor module, its built-in EIA-232 interface was connected to the engineering

PC.

2.3.2 Advant Controller 450 (AC450)

AC450 is the controller to be replaced by the new generation. Its processor module

is built up around a Motorola 68040 microprocessor running at 25 MHz [8]. While its

performance is quite limited, AC450 also lacks of modern communication interfaces

and standards like Ethernet, which become more and more important.

2.3.3 Control IT AC800M

Control IT AC800M is the most current controller series used within all of ABB,

introduced in 2001 [9]. It strikes with its small outline and offers modern communication interfaces. For our tests we were provided with a processor module

PM864A which contains a Motorola MPC862 microprocessor running at 96 MHz

[10]. In addition to two EIA-232 interfaces, the processor module of AC800M offers

two built-in 10 Mbit/s standard Ethernet ports, used for instance to connect to the

engineering computer.

The communication interface CI854A is a sophisticated device to establish

PROFIBUS communication. The device even offers an own web interface which

allows e.g. the surveillance of the cycle time. The device is directly coupled to

the processor module via the Communication Extension Bus (CEX) [11]. At this

point of time, CI854A can only act as a PROFIBUS master, but not as slave. As

a consequence, communication partners must be slaves.

2.4 Bus and Network Communication

This section describes the different communication approaches used in our system.

2.4.1 Advant Fieldbus 100 (AF100)

AF100 is a high performance fieldbus system with time synchronization and the

most popular fieldbus used within ABB, common to almost all platforms. Although

the name Advant Fieldbus 100 is ABB proprietary, it complies to IEC standard

61375-3 as well as US-standard IEEE 1473 and is widely used in railways under

the name of MVB. AF100 works over twisted pair, coaxial and optical media at

a rate of 1.5 Mbit/s. For our system we made use of the first method only. Bus

master responsibility is shared by all communication interfaces with administrator

capabilities, that is, a bus master controls all communication for a certain time

interval and then passes on the bus master token. However, in our setup only AC160

were given administrator capabilities, even though the PCI-card would support

them as well.

Figure 2.6: AF100 time-slot organization up to 2000 m bus length [12]

AF100 is a planned bus with a pre-determined scan table and thus meets realtime requirements. Process Data Transfer is managed through Cyclic Data Packets

(CDPs). Each CDP is configured individually on the communication interface for

a certain signal identity, cycle time, size and direction. Each broadcasted CDP has

a unique signal identity, whereas receiving CDPs can have the same signal identity,

provided they are situated in different communication interfaces. That is, multiple

interfaces can receive the same CDP. The cycle time determines how often the data

of the CDP is transferred on the bus. When a CDP is transferred on the Advant

Fieldbus 100, the interval between consecutive transfers is always the same, the

cycle time. Thus, process data transfer is deterministic, regardless of which other

tasks the communication interfaces perform.

Figure 2.7: DataSet Peripheral and DAT Elements [12]

In AC160, one so-called DataSet Peripheral (DSP) can reference up to eight

32-bit values called Database Elements (DATs). Each DSP uses one CDP to be

transported on the AF100, and can therefore be configured for example with an

individual cycle time. In addition to cyclic message transfer, AF100 offers the

possibilities to send event-based messages using the Service Data Protocol (SDP).

This does not influence the cyclic data transfer at all. At a bus length up to 2000m

it is therefore necessary to keep the cyclic bus load under 70% in order to have

extra space for messages (depicted as gray fields in Figure 2.6) [12].

2.4.2 PROFIBUS DPV0

PROFIBUS (PROcess FIeld BUS) is one of the world’s most widely used fieldbuses and was launched in 1989 by a consortium of companies and institutions.

Until today it was continuously enhanced and extended [13]. It is available in three

variations:

• PROFIBUS-FMS (Field Message Specification) was the first PROFIBUS

communications protocol. It offers sophisticated functionality but is no longer

officially supported.

• PROFIBUS-DP (Decentralized Peripherals) has been designed for fast cyclic

data exchange at field level and is today often referred to DPV0. This specification was extended with DPV1 for acyclic and alarm communication and

DPV2 for slave-to-slave and isochronous communication as well as synchronized system time.

• PROFIBUS-PA (Process Automation) is used for the connection of devices

to a superior process control system. It supports intrinsic safe transmission

[14].

For this thesis, only the DPV0 protocol specification is relevant. Therefore,

when writing PROFIBUS, we are always referring to this specification. DPV0

allows the cyclic exchange of data from a master (initiator) to slaves and vice versa

at a high data rate up to 12 Mbit/s. Communication is organized in input and

output modules of defined size (e.g. one word or four bytes) for every slave, which

then are transmitted completely (non differential) once per cycle. The cycle time

depends on the number of bytes and slaves as well as on timeout settings. The

specified input and output data of one slave is limited to 244 byte each. While the

physical connection can also be established using fiber optics, we used the more

conventional EIA-485 electrical twisted pair connection.

PROFIBUS slaves come with a GSD-File (“Geraete-Stammdaten” in German)

which is an electronic device specification. Most PROFIBUS master systems allow

to directly import the GSD-Files of previously unknown slaves in order to include

them in the bus planning. That makes it easy and comfortable to build PROFIBUS

networks with slaves from different vendors.

2.4.3 MMS

The Manufacturing Message Specification MMS is an application level protocol developed during the eighties by General Motors. Its main goal was to unify communication to controllers independent of manufacturers. Other automobile, aerospace

and PLC companies adopted the protocol and since 1990 MMS is standardized in

ISO/IEC 9506 [15]. While being very general and open, MMS is reputed as heavy,

complicated and costly. Nevertheless MMS was an important step in development

and due to its independence of the underlying communication protocol it is still

being used today. Furthermore it worked as a reference model and has influenced

other protocols. Since 2002 the standard IEC 61850 for “Communication networks

and systems in substations” based on TCP/IP over Ethernet defines the mapping

onto MMS [16].

MMS is used as the main communication protocol for AC800M. On one hand,

this is the communication between controller and the superior control and engineering system, on the other hand the communication between several controllers

of this type as shown in Figure 2.8. One telegram can reach a size up to 1024 bytes

including the header, containing a maximum of 159 integers or 136 floats [17]

2.5 Personal Computer

For our tests we used a personal computer containing an Intel Pentium 4 processor

at a speed of 3.2 GHz and 2 GB memory running a Microsoft Windows Server 2003

R2 operating system

2.5.1 800xA and Development Environment

In order to setup, program and run ABB components, an Industrial IT 800xA

environment was installed on the personal computer. Besides a lot of additional

resources, this installation also encompasses the application development systems

for both controller types.

The development environment to program the AC160 was Control Builder A

(CBA) consisting of Application Builder, Function Chart Builder and Bus Configuration Builder. To program the AC800M controller, the engineering tool Control

Builder M was used.

2.5.2 AF100 Communication

To establish connection to the AF100 fieldbus, we inserted an ABB CI527 PCI card

into the personal computer. The according AC100 OPC Server, which allows us to

access the AF100 bus, was installed with the 800xA for AC100 software extension

[19]. It is to mention that AC100 OPC Server allows access on bit-level, for example,

an integer value is presented by the server both as integer value and split up in 32

boolean values.

2.5.3 MMS Communication

An Intel Ethernet PCI card allowed the communication with the AC800M via MMS

on TCP/IP. The according AC800M OPC Server is part of the 800xA installation.

All communication over this port is performed via the Manufacturing Message

Specification (MMS) protocol running over TCP/IP, utilized for example by the

engineering tool to program the controller. The same connection can also be used

for controller to controller communication when having several MSS-ready devices.

Furthermore, the AC800M OPC Server communicates with the controller via the

same protocol and infrastructure, making available all variables by default [17].

2.5.4 Beckhoff PROFIBUS Communication

For the first PROFIBUS connection we used the FC3102 PCI card from Beckhoff.

This card was chosen due to its flexibility: It provides two ports in one PCI card

which can be freely adjusted either as master, slave or passive bus monitor [20].

We ran Beckhoff’s TwinCat software: TwinCat System Manager to configure

the card, TwinCat IO as driver and TwinCat OPC Server. Beckhoff inserts an

abstraction layer on top of TwinCat IO which operates with the ADS (Automation

Device Specification) protocol [21].

2.5.5 Woodhead PROFIBUS Communication

The Woodhead Electronics SST-PBMS-PCI card is the only card to be found that

provides multi-slave functionality. That is, even though the card only has one physical SUB-D9 interface, it can emulate up to 125 PROFIBUS slave interfaces [22].

This allows not only the simulation of large PROFIBUS outlines in one PC, but—

and more important to us—also makes it easy to bypass the 244 byte limitation

specified by PROFIBUS DP

Figure 2.13: Woodhead Electronic SST-PBMS-PCI card

We configured the card with its configuration tool SST Profibus Configuration.

Furthermore we used the according OPC Server for PBMS Card which was configured with Multi Slave OPC Configuration Utility

2.5.6 OPC Bridging Software

The programs we used to interconnect two OPC servers were Matrikon’s OPC

Data Manager (ODM) [23] and Kepware’s LinkMaster [24]. These programs called

OPC routers or OPC bridges are able to read data from one server and write

it to another. Both programs are similar in configuration and operation. The

functionality includes the definition of groups and update rates, input/output pairs,

dead-bands and quality checks. LinkMaster even allows to write one input value to

more than one output variables and to perform mathematical operations in between.

To make bulk configuration easier (e.g. with Excel), both programs allow to import

and export the configuration from and to comma separated values (CSV) files.

Figure 2.14: Kepware LinkMaster GUI

We ran both bridging programs with a fully functional, time-limited testing

license provided for free by its vendors for the duration of our thesis.

2.5.7 Helper Programs

For setup and testing, a range of other software was used on the engineering/test

system computer. The most important programs are shortly specified here:

• MatrikonOPC Explorer is a freeware OPC client allowing to connect to

any compliant OPC server and displaying the value of chosen tags. It also

supports writing of variables and preserving settings. Furthermore, it allows

measuring the maximum update rate of the OPC servers it is connected to.

• Office 2003 of Microsoft was used for day to day work and configuration

tasks. Especially Excel was helpful for variable definition in AC800M and for

bulk configuring the bridging software using CSV files. Furthermore, with the

Bulk Data Manager plugin, Excel allows convenient bulk setup of PROFIBUS

devices and its variables.

• Process Explorer of Microsoft’s Sysinternals is a freeware program to monitor system processes and their use of resources.

• Synergy was used to operate two computers and screens with only one keyboard and mouse.

• Irfanview helped with the caption of screenshots.

Chapter 3

Test System

This chapter describes the test system we used for our evaluations.

3.1 Overview

The main goal is to connect a controller of the type AC160 with a controller of

the type AC800M which do not share a common communication interface. As

this happens using OPC, the intermediate relay is implemented using a Windows

computer. While there is only one possibility to connect AC160, we tried out

different approaches for linking AC800M.

3.2 AC160 Side

The AC160 is attached to the personal computer via the CI631 using the Advant

Fieldbus 100 and a PCI card CI527. Due to limited communication facilities, this

is the only reasonable choice for this task. Since both communication interfaces

inherently support line redundancy (see Chapter 6), two media were used for this

connection. To program the processor module either a separate EIA-232 connection

or the AF100 fieldbus itself was used. The according AC100 OPC Server is part of

the 800xA for AC100 extension but can also be installed stand-alone [25].

All DSPs sent from AC160 are available in the AC100 OPC Server if not set

to be filtered out by the configuration tool. It is also possible by default to write

to these variables, however, if not configured otherwise the values written on the

OPC Server are not sent using planned DSPs but using event-based Service Data

Protocol (SDP) messages. As a consequence, all communication towards AC160

becomes very slow and is not even guaranteed to arrive. It is therefore necessary to

implement receiving DSPs in the AC160 and to configure the AC100 OPC Server

to send DSPs. The latter is done using the Bus Configuration Builder [26]. In the

properties dialog of the OPC station it is possible to specify the DSPs that have to

be sent [27]. Using this method, data transmission towards the AC160 becomes as

fast as reading from it

AC800M Side

For all of our evaluations we connected the AC800M with our personal computer

using Ethernet. This is firstly necessary for programming and managing the controller. Secondly, we displayed the measured results using OPC AE and therefore

needed this connection in order to let the AC800M OPC Server communicate with

the controller. Last but not least we tested this connection for our purposes as

described in the following subsection.

3.3.1 Communication via MMS

MMS using TCP/IP over Ethernet is the standard communication between computer and controller, and since with AC800M OPC Server a ready-to-use connection

is provided, we included this approach in our evaluations. However, the performance

of this connection depends directly on the CPU load of the AC800M as well as on

the Ethernet network traffic [28].

3.3.2 Communication via PROFIBUS

Due to the missing real-time behavior of a standard Ethernet link, it was planned

right from scratch to test this approach against a PROFIBUS connection. With the

CI854A, a sophisticated PROFIBUS communication interface for AC800M exists,

supporting 12 Mbit/s baud rate not depending on the CPU of the processor module.

This reasons and the fact that it enjoys a high acceptance in entire Europe made

PROFIBUS to our first choice of all fieldbus systems. Another promising bus,

FOUNDATION FIELDBUS High Speed Ethernet (FF HSE) was dismissed after

having recognized that the according communication interface CI860 has a very

poor throughput of only 500 32-bit values per second [17].

Figure 3.4: Module selection in Device Import Wizard

A typical use of PROFIBUS is to connect several slave devices such as sensors

with one or few masters (for example a controller) on one single bus (up to 126

devices). Often the amount of data per slave is very small, since it only represents

an input/output state or a measured value. Therefore it is rather exotic to use

PROFIBUS as a point-to-point communication with a big amount of data as we

did in our case. Since the first test showed that the Beckhoff PROFIBUS solution

has performance problems, it was decided to test a second PCI card/OPC server

product from Woodhead Electronics. Both PROFIBUS cards were configured in a

way that one module consists of four 8-bit bytes to transport integers or two 16-bit

words to transport floats. These mappings were realized using the Device Import

Wizard in CBM and the PCI card’s configuration tools [29].

3.4 Bridging Software

A core part of our system is the OPC bridging software establishing the connection

between two OPC servers. Two different products were tested: OPC Data Manager

from Matrikon and LinkMaster from Kepware. Both products were evaluated due

to their specifications, bulk configuration possibilities (CSV files import/export)

and availability for testing.

There are different possibilities for connections in OPC Data Access. The standard method implemented in both programs is subscription, that is, the bridging

software subscribes as a client to the the source OPC server A to read from. The

source server then pushes changing values to the client at a fixed speed (10 milliseconds is the maximum for LinkMaster, 1 ms for ODM) which writes them to

the destination server. As a consequence, the load and therefore the performance

of the bridging software depends on the number of changes.

Since OPC DA is organized in subscription groups, the signal pairs in the bridging software were combined in groups of 10 to 32 signals with identical update rates

of 10 milliseconds. Both programs also support the (faster) processing of arrays instead of single values. However, we could not take advantage of this solution since

the OPC servers do not support arrays.

3.5 Resulting Test Systems

This section shows more detailed models of the resulting three test system setups

following the considerations above. The AC160 side (illustrated on the left hand

side) stays the same for all three setups. The models visualize one main challenge

of our task, namely the big quantity of different interfaces and each component

running with an own unsynchronized cycle time. While the models are not complete, they include all parts that are considered relevant in relation to our time

domain milliseconds. It is to be mentioned that the impact of BIOB and CEX on

the performance is considered to be very small compared to the other parts.

3.5.1 System 1: Beckhoff PROFIBUS

Figure 3.7 shows the schematic setup for the Beckhoff PROFIBUS approach. It

is to mention that Beckhoff uses their proprietary ADS protocol to communicate

between the OPC server and the card driver, which was therefore outlined in this

figure [20]. The maximum update rate of TwinCat OPC Server is 2 milliseconds,

the cycle time of the variable i/o task is 1 ms.

Figure 3.7: Schematic setup of Beckhoff PROFIBUS approach

3.5.2 System 2: MMS

The MMS approach is depicted in Figure 3.8. In contrary to the PROFIBUS

solution there is no need for an additional communication device connected to

CEX bus as the Ethernet port is located in the processor module itself, using its

resources. Unfortunately, the maximum update rate of the AC800M OPC Server

is limited to 50 milliseconds, which is a comparatively high value compared to the

cycle time of other system parts.

3.5.3 System 3: Woodhead PROFIBUS

In contrary to Beckhoff’s solution, Woodhead implements a more direct access path

for the OPC server. Its maximum update rate is 1 millisecond. The GSD-file of

the SST-PBMS-PCI card had to be slightly modified in order to be importable by

Control Builder M. Furthermore, there exists a trick how to simplify bulk setup of

OPC tag names. More information on the latter as well as a working GSD-file is

enclosed with the CD-ROM in the appendix.

Chapter 4

Evaluation

In this chapter we describe the evaluations performed on the test system. In order

to implement the different tests, we needed to program both controllers with appropriate code, which presumed the know-how for two quite different application

development systems and engineering tools (see [30], [31], [32] and [33]).

4.1 Test Systems

As described in the preceding chapter, we evaluated three different test system

variants. While the AC160 side physically stayed the same for all tests, the AC800

connection was tested with the following approaches:

• PROFIBUS connection with Beckhoff’s card and server

• Standard MMS connection using an Ethernet card

• PROFIBUS connection with Woodhead’s card and server

Due to reasons explained in the next chapter, all main tests were performed with

Kepware’s LinkMaster OPC bridging software.

4.2 Basic Idea

The basic idea behind all tests is the definition of a complementary set of receiving

and sending variables to each of the two controllers. During each controller program

cycle all receiving variables are read from the bus/network and all sending variables

are written. On the other side of the bus/network, the OPC server makes the

variables available. The OPC bridging software, acting as an OPC client to the

servers, links the two corresponding variables by reading the values from one server

and writing them to the other.

4.2.1 Short Circuit

To explore the behavior of one side or to isolate problems, we also performed test

with a “short circuit” configuration. That is, the bridging software is not configured

to link the variables from one OPC server to the other, but right back to other

variables on the same server.

4.3 Variables

This section informs about the type and quantity of variables used to test the

connection.

4.3.1 Data Types

According to the requirements, only 32-bit floating point and boolean values have

to be processed. Since the booleans are packed into integer values, the problem

modifies to the transport of 32-bit floating point and 32-bit integer values.

4.3.2 Packaging of Booleans

The are various reasons to pack booleans into integer values instead of processing

them one by one:

Figure 4.3: Data types in different sections with PROFIBUS

• The smallest possible PROFIBUS module size provided by both cards is one

byte. If processing booleans one by one, 7 bit would get “lost” for every value,

which reduces performance.

• In MMS telegrams, one single boolean requires 3 bytes space whereas one

integer containing up to 32 booleans uses only 6 bytes [17].

• A smaller number of variables improves the performance of the OPC connections.

• One can save a lot of configuration effort for the bridging software.

• AC800M supports transparent packaging of the booleans into PROFIBUS

modules, that is, it is not even necessary to manually pack them into integers.

• AC160 offers a program code element to pack/unpack booleans into/from

integers.

Since the size of one variable in an AF100 DSP is limited to 32 bit, we intended to

pack this amount of booleans into an integer value. However, the packaging program

code element offered in AC160 treats the last bit as a sign flag not compatible to the

transparent mapping of the AC800M. Instead of implementing additional program

code we therefore decided to set this last bit aside and pack only 31 bits into one

integer value.

4.3.3 Quantity

In order to learn more about the behavior of the concerned parts, we performed six

main tests with different amounts of variables:

• The first four Tests 0 to 3 are intended to get an overview on the behavior

of the configurations. They are designed such that they can run with all test

system variations, that is, the amount of data does not exceed 488 bytes in

one direction (due to the limitation of two PROFIBUS slaves with Beckhoff’s

solution). Test 0 is carried out with only one integer value going forth and

back. Test 2 contains twice and Test 3 about three times the quantity of

variables as in Test 1, allowing to observe linear tendencies.

• Test 4 represents the real requirements for the quantity of variables and data

types according to Table 1.1. Thus, the results of Test 4 are the most important ones for statements regarding the feasibility of the setup. In contrary

to Tests 1 to 3, the amount of floating point values transmitted from AC160

to AC800M is much higher. As a consequence, it cannot be performed with

Beckhoff’s PROFIBUS solution.

• Test 5 is the duplication of Test 4, trying to determine the limits of the system.

4.4 Measurements

The following methods were used to evaluate our test system.

4.4.1 Round-Trip Time

The most relevant evaluation we performed is the round trip time (RTT) measurement. For this reason, a boolean value (packed in an integer) is set true and

sent from the AC800M controller to the AC160. At the same time, a stopwatch is

started. Inside the AC160 the value is moved to another boolean and sent back.

As soon as this value returns to AC800M, the stopwatch is stopped and the RTT

displayed via generated event that allows subsequent interpretation for 500 entries.

This number is the minimum sample quantity for our results discussed in the next

chapter. The actual communication slowed down by the cycle time of AC160 and

the resolution of the results is limited by the cycle time of AC800M. The results

can therefore be looked at as worst-case values, while the exact time used for communication only is considered to be somewhat lower in most cases.

An important thing to know is that all the other values, which are transmitted

with every cycle but are not directly relevant for measuring the RTT, changed every

controller cycle. While this does not matter for the fieldbus communication it has

an influence on the OPC communication. The common subscription mode for the

OPC bridging software works differential, that is, values are only transmitted when

they change, which saves CPU load. In order to test the worst case scenario—which

is our task—it is therefore necessary to transmit a new value with every cycle.

A problem that showed up was the cycle time of the AC160 program code

and the cycle time of DSPs transmitted on AF100. For Tests 0 to 3, both values

are constantly 8 milliseconds, which make these tests very comparable. Since the

amount of values increases a lot for Tests 4 and 5, the performance of both the CPU

and the bus are not sufficient anymore and need higher cycle times. However, higher

cycle times on AC160 and AF100 make the RTT slower and results are not directly

comparable to the first tests due to changed conditions. For better understanding it

was therefore decided to test with different configurations and cycle times depicted

in Table 4.2. The trade off is to have lower (faster) cycle times in exchange for OPC

server load: While with configuration A it is a worst-case test, the RTTs get very

high and are not directly comparable anymore. Configuration C makes also Test 4

and 5 directly comparable to the others, but it is not a worst-case test anymore.

For better understanding the following definitions we introduce two terms: For

each configuration there is only one receiving and one sending DSP relevant for

measuring the round-trip times on AF100, containing the variables to time the

connection. We call them the two measuring DSPs while all other DSPs are called

load DSPs.

• Configuration A: The cycle time for all DSPs on AF100 is identical and

complies with a safe choice for the AF100 bus load (see Appendix D). Since

for Tests 4 and 5 the program code runs faster than the bus, there is a new

value sent in each bus cycle.

• Configuration B: The cycle time for the measuring DSPs is set to same value

as the program code cycle time. All load DSPs are sent as in configuration A.

For Tests 4 and 5 this means that load values change only every fourth time

in comparison with the measuring value.

• Configuration C: It is of course not possible to set the DSP cycle time faster

than the program code. Thus it would never be possible to reduce it to 8 ms

for Tests 4 and 5. We therefore installed a second processor module, working

at 8 ms cycle time and only processing the measuring DSPs while the load

DSPs were still processed in the first module. For Tests 4 this means that

load values change only every eighth time compared to the measuring value,

for Test 5 it is even only every 16th time.

The 8 ms cycle time for AC160 program code and AF100 for Tests 0 to 3 was

chosen since it fits for all these tests and still is in the range of other component’s

cycle times. Of course it would have been possible to simply increase the cycle

times for Tests 0 to 3 in order to have the same preconditions as in Tests 4 or 5.

But since it is our task to evaluate the performance of the communication and not

the controller we decided not to falsify results by doing so.

4.4.2 Integrity

The intention of this measurement is to prove that every linked value is communicated correctly (not just the ones relevant for measuring the RTT). For this reason,

all float variables were set to exactly the same value, being increased by one at

every cycle and sent from one controller to the other. On this receiver side, the

range between the maximum and minimum value are identified. If the range is

small, integrity is good. If the range is wide, this shows that some variables do not

change at the same time and therefore are not transmitted correctly.

4.4.3 Availability

To get an idea about the availability of such a system, one configuration was running for one week (seven times 24 hours). The goal of this evaluation was to find

out about the capability to run the system for a longer period or if it fails after some

hours. Furthermore, the two preceding measurements are included with recording

the average and maximum RTT as well as average and maximum integrity check

range. Due to time limitation this availability long-time test was only performed

using the Woodhead PROFIBUS approach and a realistic variable quantity according to Test 4 Configuration B. In order not to impair the measurement and falsify

results, we abandoned a more detailed logging.

While numerical information on availability of industrial devices it based upon

extensive tests and long-time information, this was not within the scope of our

thesis. A mathematical approach cannot be performed either, due to the lack of

numerical information of the single parts in the personal computer.

Chapter 5

Results

In this chapter we will present and discuss the results gained from our evalutations.

5.1 Bridging Software

We started the evaluation using Matrikon’s OPC Data Manager. Unfortunately,

the behavior of the GUI was sometimes unsatisfying, particularly due to its long

delays. Additionally, the communication stopped at times for unknown reasons.

The equivalent product LinkMaster from Kepware offers similar possibilities in

configuration but did not show these effects. Furthermore, the performance of

LinkMaster could be determined as being vastly better than the one of ODM:

For Test 3 with Beckhoff PROFIBUS the median RTT with LinkMaster is 510

milliseconds, whereas with ODM and the same preconditions the RTT becomes

more than ten times slower. As a consequence, all main tests were performed

using Kepware’s LinkMaster software. For some configurations we enabled a device

refresh rate of 10 ms for only one group in each direction, which prevented the

program from unwanted stopping.

5.2 Round-Trip Times

This section shows the results for the round-trip time tests, grouped by test system variations. In Table 5.2 we show the expected maximum RTTs based on the

addition of cycle times and update rates.

Test 1 Test 2 Test 3 Test 4 Test 5

2.7 ms 3.2 ms 3.5 ms 7 ms 10 ms

Table 5.1: Rounded PROFIBUS cycle time measurements

For the PROFIBUS cycle times we entered the maximum values measured with

CI854A shown in Table 5.1, Test 3 for the Beckhoff setup and Test 5 for Woodhead

approach. The configuration of the PROFIBUS parameters was done automatically

by AC800M with “actual value based” method for all test we performed.

5.2.1 System 1: Beckhoff PROFIBUS

Evaluations were performed for different amounts of signals as defined in Table 4.1.

Starting with the Beckhoff PROFIBUS solution, we could observe that the RTT

increases linearly to the amount of signals. While test results with one single signal

(Test 0) were promising, the following tests were already unacceptable, although

defining only a fraction of the required amount of variables.

After short-circuiting the connections it was quickly determined that the bottleneck is to be found in the writing to the AC800M. After inspecting the LinkMaster

software and PROFIBUS configuration the bottleneck was isolated as the OPC

server to PCI card communication. Interrogating Beckhoff support confirmed this

suspicion: Since it is much more common to read from OPC servers, the reading

process was optimized by transporting several values in block mode from the PCI

card to the OPC server, using Beckhoff’s own ADS protocol. In contrary, values

written to the OPC server are transmitted one by one [34]. This explains our results, and after putting into operation two more clone OPC servers, which is the

maximum number, the RTT expectedly was more or less three times lower. However, with 190 ms median RTT for Test 3 and added configuration effort, this is

still not satisfactory. It is to add that Beckhoff offers a nice and sophisticated configuration tool, which also allows the swapping of words and bytes. This function

is used when processing float values which are interpreted different in FC3102 PCI

card than in CI854A.

After these findings it was inevitable to look for another solution, also keeping

thoughts in mind that it would be necessary—due to the 244 byte limitation—to

put six FC3102 PCI cards into a computer in order to have enough capacity for

all required values, or alternatively to have eleven DP/DP-couplers at work1

. The

idea to “multiplex” data over the PROFIBUS in order to defuse byte limitation was

discarded as impracticable.

5.2.2 System 2: MMS

Before looking at the results, it is to mention that, compared with the PROFIBUS

solution, the MMS approach suffers from vast disadvantages: Firstly, the maximum

update rate of the AC800M OPC Server amounts to 50 ms and is therefore a big

obstacle. Since MMS cannot perform much better anyway (we estimate around

40 transactions per second [28]) this rate is justified, though. Secondly, the performance depends on the processor module CPU and network traffic. While the

1DP/DP-couplers are hardware relaying devices able to connect two PROFIBUS DP masters,

acting as a slave device on each side and copying data back and forth.

median RTTs with Configurations B and C meet our requirements, the results could

not convince us entirely. As suspected, the standard deviation of the measurements

is enormous. For different configurations of Test 4 it varied in the range from 40.9

to 62.7 ms.

It is not due to MMS that the results for Test 5 show such bad results. This

time it is the fault of our personal computer which is not able to handle this amount

of variables anymore. That is, the CPU load reaches 100% and therefore slowing

down the LinkMaster process.

5.2.3 System 3: Woodhead PROFIBUS

Since the SST-PBMS-PCI card supports the definition of several virtual slaves in

one card, the 244 byte limitation is not a problem any more. Thus, also Tests 4

and 5 could be performed with this one single card. This card and its server show

a good performance in both directions even with a big quantity of variables. Of

course, the CPU overload problem with Test 5 shows up here as well.

While the performance is satisfactory, another problem could not be solved well:

The word order in CI854A is interpreted differently than in the SST-PBMS-PCI

card. More precisely, 32-bit floats are split in two 16-bit words on PROFIBUS

and are thus sent in a certain order (see Figure 4.3). They are re-assembled in

the opposite interface just the other way round, such that floating point values

are always interpreted wrong. According to Woodhead Electronics and ABB, this

alleged small problem cannot be solved changing the configuration of either part.

At the present day it is therefore necessary to implement additional program code

in AC800M to manually perform word swaps for each float. It is to add that we experienced the configuration tools offered by Woodhead as being of less convenience

compared with Beckhoff’s solution. Especially the naming of tags in big quantities

is troublesome, but fortunately there could be found some workarounds [35].

5.3 Integrity

The results of our integrity test for selected configurations are very satisfying. The

maximum range of the received variables never exceeded the value to be expected

according to the maximum RTT. As an example, for Test 4 Configuration B a

maximum range of 6 in one direction is considered a normal delay due to transmission time and not indicating an integrity problem of the bridging software or

different parts. More detailed, since we measured a minimum RTT of 60 ms and a

maximum RTT of 290 ms for this specific setup (results contained on CD-ROM),

the difference of the fastest possible way and the worst path in one direction is

considered about (290ms − 60ms)/2 = 115ms. Within this time-frame, the program code (cycle time 16 ms) is executed 7.2 times. That is, if two variables arrive

at the same time, but one took the fastest and one the slowest path, a maximum

difference of 7 is to be expected. However, while the integrity check showed that

things run correctly for different variants and configurations in a short-term view,

its results of the long-time test covered by the next section might even be of more

importance.

5.4 Availability

The long-time test lasted for exactly one week and ran without interruption, therefore proving the basic long-term functionality of the system. Within this time, a

quantity of 2,283,900 samples was taken and analyzed.

The contents of Table 5.3 show that the results are satisfactory in average. With

an expected maximum RTT of 146 ms according Configuration B2

, the average

RTT value is inside the expected range. The average integrity range fits to this

value and affirms the correct transfer of values also in a long term. However, the

maximum RTT of almost three seconds and the consequential integrity range is

not what we had expected from our system. Most likely this maximum RTT are

due to temporary CPU overloads caused by concurrent processes on the personal

computer, or because of an OPC server failure. If an OPC server fails, LinkMaster

tries to restart it after some time, however, this time was adjusted to 10 seconds

for our evaluations.

In contrary to the RTT test above, all floating point signals in AC800M had to

be processed one by one in order to switch the word order. This was necessary for

the integrity evaluation, otherwise the signals would have been interpreted wrong,

2Replacing the first two values with 16 ms in Table 5.2

causing a worthless range. This extra program code slowed down the cycle time

such that it was not possible anymore to keep 10 ms, which of course also influences

the RTT results. With an average cycle time of 12 ms, the impact is still not

devastating, though. A maximum cycle time of 43 ms was displayed at the end of

the test.

5.5 Summary

Figure 5.4 shows the combined results for the different variants. For better comparability, only Configuration C is displayed, such that the relevant DSP cycle time

is 8 milliseconds for all tests (see Table 4.2). It shows clearly, that the test system variation with Woodhead PROFIBUS returns the best round-trip times, while

the Beckhoff approach is worthless for our task. Moreover, its ability of emulating several slaves saves the effort of inserting multiple PCI cards. Beside all these

advantages, the Woodhead PROFIBUS approach causes the word swap problem,

which cannot be solved without adding program code at this time.

Whereas MMS also meets our requirements, it is about two times slower than the

Woodhead approach. Furthermore, the standard deviation of the RTTs measured

is vastly greater with MMS than with PROFIBUS. This is remarkable, since our

test were made with a direct Ethernet link (crossed cable). As the performance

of MMS depends on network traffic and AC800M’s CPU load, it is to be expected

that communication using MMS will get slower and even less deterministic in a real

environment

Although on the first spot Test 5 seems to be useless, this is not the case at

all. Firstly, it proved that the system basically works even with this amount of

variables. Secondly, while Test 4 is the most relevant evaluation concerning the

real requirements, Test 5 was intended to look for the limits of the current system,

Chapter 6

Redundancy

This chapter will provide theoretical considerations on redundancy. Since the

Woodhead PROFIBUS solution was the most promising approach, our considerations are based on this test system variation and the amount of signals according

to Test 4, which resembles the real requirements.

6.1 Terms and Concepts

Please notice that when talking about redundant components in this context, we

mean duplication if not stated otherwise. The term redundancy does not define the

number of redundant components in general.

6.1.1 Levels of Redundancy

There is a large variety within the levels of redundancy. While it is possible to

double only the most important or critical components, one can also make a whole

system redundant. This usually allows the concurrent outage of several different

parts of a system (e.g. a processor module and a bus line) without interrupting

the whole system. An outage can be an unplanned failure of a component but also

a planned maintenance action. Security relevant parts like protection systems are

often even implemented three times or more.

It is also important to know that redundancy can be implemented on different

levels in communication. Most redundancy hardware devices or software programs

that are able to switch between different connections work on a protocol level,

that is, they recognize errors in the communication protocol e.g. if a device fails

or the connection is broken. They are not able to identify errors in the transported data, though. In contrary, redundancy logic on application level checks the

values/contents of the transported data, and therefore also detects errors if the protocol itself runs correctly. It is also possible to combine these approaches, e.g. if an

application level program is able to force a switchover in a physical switch. A typical specification for the maximum switchover time in the turbine control business

is 20 ms.

6.1.2 Master-, Slave- and Line-Redundancy

In bus systems there are three aspects of redundancy which can be combined arbitrarily. Since the outage of a non-redundant bus master in a classical master/slave

bus system like PROFIBUS interrupts any communication, it is very common to

implement bus master redundancy. In contrary, slave redundancy can be implemented depending on the importance of a specific slave. For real master or slave

redundancy it is of course necessary to implement two completely independent

communication stacks [36]. In practice this is normally done by using two identical

communication interfaces. The two interfaces communicate directly or via a third

component (e.g. the processor module) to be activated or deactivated and exchange

configuration data. Line redundancy means the multiple presences of physical media. A redundant master/slave bus system is showed in Figure 6.3. ABB offers a

device called RLM01 to connect single-line PROFIBUS slaves to a line redundant

layout, allowing reducing the non-redundant part to a short distance. Since the

device needs to copy data, it causes a delay, but this is very small compared to our

cycle times (about 1.5 µs at 12 Mbit/s).

6.1.3 Transparency

For the different components of a redundant system it makes a difference whether

the redundant pairs behave in a transparent manner or not. If they behave transparently, the other parts recognize a redundant pair as one single device and will

not have to do anything; at the most there will be a more or less drastic pause due

to the switchover. If redundant components behave not transparently, it is usually needed that nearby components are intelligent enough to check which device is

working correctly.

For redundant components which behave transparently it is inevitable to have

a redundancy communication (RedCom), which can be a direct link or be managed

by a superior component. This connection is on one hand needed to determine

which component is the active one and which is in stand-by mode. On the other

hand, also status information has to be communicated. If a component fails it can

for example be very important that the redundant part is able to recover the most

recent values in order to take over the communication.

6.1.4 Stand-by modes

There are different modes of redundancy. Sometimes, the redundant parts run in

parallel (load balancing) but can take the whole load in case the second system

stops working, as for example with water pumps or internet web servers. This kind

of redundancy is sometimes also referred to as hot standby with load balancing.

With line redundant bus systems, the sending component usually writes on both

lines whereas the receiving part chooses the line to read from.

In contrary there exist modes where only one part of a redundant pair can be

active, while the other part is in a standby mode ready to take over. Dependent

on the level of stand-by we talk about cold, warm or hot stand-by. Cold stand-by

usually means that the redundant system first has to start up and gather necessary

information before it is able to take over the communication, causing a comparatively long delay. Hot stand-by in contrary means that the redundant part is all

the time up and running and even knows status information of the active system,

always ready to take over the shortest possible amount of time. Warm stand-by at

last is something in between.

In bus systems, where normally the different bus subscribers are addressed, the

“flying redundancy” concept as in the CI854A can be used. That is, the active

communication interface and the backup interface always have the same address,

independent of which is the active one and which the backup. As a consequence, the

active and the passive interface have to switch addresses if a switchover takes place.

The advantage of this implementation is, that the backup slave has a valid address

and therefore can be reached as well, to receive status information, for example.

Moreover, such a switchover is transparent for the other bus subscribers. However, if there is an error during the switchover, it can happen that both redundant

components have the same address, the effects of which would be devastating.

6.1.5 Power Supply Redundancy

A lot of controllers and automation components are prepared to be connected to

two different power sources to further avoid outages. Establishing redundant power

supply, however, is a topic on its own and not covered by this Master’s Thesis.

6.2 Considerations

In this section we will make considerations on redundancy for the different parts

of our test system. Please notice that we omit a solution using only one personal

computer, since, in our opinion, this is the weakest part of our system, and numerous

software parts (e.g. the bridging programs) cannot be installed/run twice in order

to increase availability. We therefore aim at two PCs right away.

6.2.1 AC160 Side Devices

The AC160 controller and AF100 fieldbus provide a sophisticated redundancy concept. Thus, it is very common to insert two redundant processor modules as well

as two communication interfaces into one rack. For other bus participants this

configuration works transparently, so they do not care which PM/CI combination

is currently in use and which is in stand-by mode. All communication interfaces

already support line redundancy with two ports, this is also true for the CI527 PCI

cards.

Not only controllers are included in the redundancy concept, but also OPC

servers. That is, if two personal computers with CI527 and AC100 OPC Servers

are connected to the same AF100 bus, both servers can provide data sent from the

controller. Unfortunately, the redundancy concept is limited as this will not work in

the opposite direction when using DSPs, which are vital for our application: Only

one of the two servers is allowed writing to a specific variable on the controller.

However, since we need to transmit a lot more values from AC160 to AC800M than

vice versa, the OPC server redundancy concept helps us a great deal anyway: We

do not have to define and send all these values twice (it is to mention here that

defining and sending variables in AC160 is considerably less comfortable than in

AC800M).

In contrary, if we want redundancy for receiving variables, we have to define the

receiving DSPs twice. The according redundancy brainpower must then be placed

in the controller program code itself, that is, the code has to compare each received

data pair and then decide how to proceed. In other words, the redundancy of the

OPC servers/PCI cards is not transparent from the view of the AC160. Achieving

this transparency would only be possible by modifying the OPC server to support

transparent redundancy when writing DSPs to the controller, or by the development

and insertion of a specific hardware device between the AC160 and the PC.

6.2.2 AC800M Side Devices

Similar to the AC160, the AC800M supports processor module and communication

interface redundancy for PROFIBUS as shown in Figure 6.3. In order to increase

the availability of the CEX bus, also the redundancy link module BC810 is inserted

[10].

In contrary, the Woodhead PROFIBUS card and OPC server does not support slave redundancy and therefore limits the concept. It is to add, that no

single PCI card/OPC server combination product that supports slave redundancy

could be found on the market. However, Woodhead offers an API to control their

PROFIBUS multi-slave card. That is, it would be possible to program an own

redundancy logic for the PCI card. The OPC server, which has to support redundancy as well, needs to be adjusted or reprogrammed. Implementing this redundancy brainpower in the personal computer, one of the two cards has to be

the active card while the other is in standby mode to appear transparently to the

AC800M bus master.

Since the SST-PBMS-PCI card neither does support line redundancy, we would

have to insert two cards in one computer and implement the line redundancy logic

as computer software. As a far less laborious alternative, the RLM01 introduced

earlier can be inserted.

The automation company Comsoft offers a hardware device called PRS to implement master redundancy in PROFIBUS DP systems [38]. It is intended to connect

two masters with the same address to one PROFIBUS. If one master fails, the device, which contains a galvanic switch, changes to the other master. The switchover

can also be initiated from outside via PROFIBUS itself or an additional Ethernet

connection. The device is intended for implementing master redundancy, which

is already done in our case. But, according to Comsoft, it is possible to “misuse”

the device for implementing slave redundancy and therefore replacing a software

solution [39]. However, logic to force a switchover would be needed anyway in order

for the system to work properly

6.2.3 OPC Communication

It is of course necessary that the OPC servers for both bus interface cards are running, as well as the bridging software, e.g. Kepware LinkMaster. In addition it

would be possible to add specific redundancy management software on the computers and interconnect them via (redundant) network and DCOM to the servers

located on the second computer. That would theoretically allow the setup of a completely redundant system, coping with the outage of two different OPC servers or

PCI cards at the same time, for example. Figure 6.5 shows the setup of such a completely redundant system. The black lines stand for OPC communication while the

three dotted arrows symbolize the redundancy communication (RedCom) between

two components.

There are different redundancy manager programs (RedMgr) available on the

market, for example Matrikon’s Redundancy Broker [40] or Kepware’s RedundancyMaster [41]. They act as a server on one side while acting as a client on the other

side, able to connect to redundant servers. The decision which server has to be considered the active one depends on the quality of the OPC connection and/or can

be configured with additional checks of values. The software therefore also allows

a restricted view on the transported data. However, these programs also insert an

additional delay in communication, and from the computers point of view they are

a weakness themselves since most likely all OPC connections are canceled if the

program fails. Therefore it would also be possible to use different products at the

same time, increasing the chance that one product keeps running when the other

fails. However, a very interesting alternative is the software OPCFailover of Jemmac Software. While its function is the same as the classical redundancy managers,

it does not insert a further relay, which also means no delay and no single point

of failure. This is reached by just managing the OPC connection, always pointing

to an active real OPC server, instead of acting as a proxy. As a drawback of this

solution it is to mention that it does not support the periodical check of OPC values

yet [42].

However, the introduction of such redundancy managers only makes sense if

the OPC servers are implemented transparently redundant, meaning that only one

sever is active at the time and without the need to send/receive some variables

twice. This is not the case at the moment. The imaginary dashed green and red

RedCom links in Figure 6.5 would have to be implemented first as discussed in the

previous sections. Otherwise the OPC bridging software in PC1 will for example

not match the variables defined in AF100 OPC Server of PC2. Dependent on

the brainpower of both OPC server logics, maybe also the OPC bridges are not

allowed to run concurrently and need an own (gray) redundancy communication.

Matrikon’s OPC Data Manager supports such a layout.

Subsuming, there is one big advantage in implementing redundancy for the OPC

connections in our system: It allows the simultaneous outage of several unequal

parts of both computers. As a further consequence of the presumed transparent

redundancy of the OPC servers, no variables have to be defined and sent twice in

the controllers, there for saving transmission time. Unfortunately, there is also an

considerable number of disadvantages:

• The support of transparent redundancy for both OPC server pairs is missing

and has to be implemented first in order to establish a clean solution for OPC

connection redundancy. This work is a huge programming task not to be

underestimated.

• When using classical redundancy managers, also an extra delay and another

OPC connection weakness is inserted. When using OPCFailover as redundancy manager instead, no periodical check of data can be implemented since

this feature is missing.

• A save and possibly redundant network connection between the computers is

needed.

• Only ODM supports a redundant setup if a redundancy link for the bridging software is needed. But our tests showed that ODM works slower than

LinkMaster.

• It is possible that (e.g. due to a small temporary error) the current connection

runs over the Ethernet network and in some cases even back again. This could

make the connection slow.

• DCOM is considered as a weak part. We have to accept that or alternatively

install even more software, namely a so-called OPC tunneler.

• If D/COM or other basic services fail, most likely all OPC communication on

the computer will be canceled, no matter how redundancy is implemented.

• The complexity of the system makes it expensive as well as difficult to setup

and observe.

6.3 Proposal

Unfortunately, neither the AC160 side of the system nor the AC800M side can be

implemented with transparent redundancy on bus level. In both cases it is the PCI

card/OPC server combination that lacks of this functionality. It is theoretically

possible to add this functionality, but as there are numerous drawbacks in doing so

and since there are other approaches, it is not recommended to do so.

We recommend using two personal computers as “single lines” without communication between the redundant counterparts. This saves implementation and

programming time as well as communication delay due to relays. With this configuration, the system is not completely redundant, thus it is not allowed that more

than one computer is affected by errors. However, in this approach we look at the

computers as one functional device, and it is in fact very likely that if one application fails, the whole system is inconsistent and communication has to be switched

to the second anyway.

Using this configuration, the redundancy brainpower is located in the application programs of the controller. The two personal computer connections run at the

same time. Each controller side puts their sending data on both channels and the

controller on the other end has to select which information should be processed.

This inspection on application level has also the advantage, that almost any kind

of communication problem is detected. On the AC160 this kind of selection has

to be implemented for every receiving signal. However, there are just 56 signals to

proceed. The hundreds of sending signals do not matter since due to the AC160

redundancy concept they are distributed to both OPC servers anyway. On the

AC800M the selection has to be implemented for every receiving signal, too. Since

AC800M allows object oriented programming it is possible to program a generic

code to be used for every signal. In contrary to AC160, also the sending signals

have to be sent two times (to each PROFIBUS-card). The voting of receiving signals in both controller types can happen using different methods. One could for

example check the quality of one or more specific variable/s for each channel and

thus determine which of the two channels is used for incoming values. Alternatively

it would be possible to always compare the redundant variables of both channels

one after one and generating a resulting value using some voting algorithm.

If there is a physically long distance between the personal computer location

and the AC800M, we recommend the use of the RLM01 in order to establish line

redundancy. To keep things simple and since the device causes a small delay, it is

reasonable to do without line redundancy on PROFIBUS if the devices are placed

6.4 Summary

We realized that the subsequent implementation of redundancy in a mostly notredundant system is complex, difficult and also expensive. Furthermore, it slows

down the connection due to introduced redundancy components and/or the twofold

transmission of data. However, we proposed a solution that minimizes this drawbacks to acceptable size and can be implemented in a realistic time-frame. Nonetheless it is recommended to introduce redundancy only if it is really needed.

Finally we would like to mention that our considerations also apply when establishing a connection with MMS to AC800M instead of using PROFIBUS. The

AC800M OPC Server does not support redundancy for writing variables, neither.

However, similar to AC100 OPC Server, all (sending) variables can be accessed on

both servers and the sending variables therefore need not to be sent twice.

Chapter 7

Outlook and Conclusion

This chapter will give an outlook on possible future work and summarize our thesis.

7.1 Contributions

In this thesis we make the following contributions:

• Evaluation and implementation of hard- and software to establish the connection.

• Quantitative results regarding the performance of a fast controller-to-controller

connection via OPC.

• Evaluation of multiple configurations and their impact on performance and

availability.

• Considerations and proposal regarding redundancy to improve availability

and reliability.

• Identification, comparison and rating of different methods to connect controllers.

7.2 Outlook

This section first covers some hazards to be considered. The following part is

divided into suggestions for improvements of the existing infrastructure on one

hand, and in proposals for alternative approaches on the other hand. While some

of the suggestions could be implemented in a comparatively short time, others

require further investigation and long implementation times. We did not focus on

the Advant Controllers since they are in the maintenance phase of their life-cycle.

This means that that no developments will be done for these products.

7.2.1 Hazards

• In the PROFIBUS configuration tools as well as in the AC800M there are only

limited capabilities for mappings of variables. That is, 32-bit values are either

mapped to four 8-bit bytes or two 16-bit words. As this already happened

for 32-bit floats and 32-bit integers (packed booleans!) in our configuration,

no 32-bit mappings are left anymore. If we would like to process integers in

addition, they are limited and mapped to 16-bit for example, or alternatively

they would have to be split in booleans first (due to the transparent packaging

in AC800M).

• While this was not considered a problem in our thesis, it could be one in a different configuration: If besides CI854A additional communication interfaces

are connected to PM864A, the CEX bus could be overloaded and slow down

communication.

• According to the specification, the length of a PROFIBUS segment at 12

Mbit/s baud rate can reach up to 100 meters. However, since a configuration

at this maximum baud rate is considered to be rather sensitive, we propose

to keep the distance as short as possible.

• Since our system implies various interfaces and open standards, it can be

manipulated quite easily by anyone with sufficient know-how. In an operational environment it would thus make sense to limit access to the personal

computer at least, securing login and network.

7.2.2 Improvements

General improvements

• To improve determinism one could replace the current Windows Server 2003

R2 operating system by a real-time version of Windows, for example with

real-time extensions, Windows XP Embedded or Windows CE.

• As AC100 OPC Server offers stand-alone functionality, the system can be

reduced to its vital parts, omitting all other tools: Operating system, OPC

servers, bridging software.

• Signals could be split in different priority groups. Less important signals are

processed slower on AF100 as well as in the OPC bridging software, therefore

leaving more resources for the important signals which then can be processed

faster.

• A combination of PROFIBUS and MMS would be possible, processing fast

signals through PROFIBUS and slow ones via MMS, for example.

• A general reduction of signals would also improve performance, of course.

• Implementing the OPC Data eXchange standard in all OPC servers would

supersede a bridging software. Since this standard was not popular until

now, it is probably not an option for most manufacturers.

• With the new generation of OPC, Unified Architecture, a lot of improvements

are implemented, for example COM-independency, redundancy support and

security. We hope, therefore, that vendors will provide OPC UA servers for

their devices as soon as possible.

PROFIBUS improvements

• PROFIBUS parameters were set automatically by AC800M. It should be

possible to optimize these parameters in order to decrease the cycle time.

However, the impact on the resulting RTT will be rather small.

• From our point of view, it should be possible for the manufacturers to implement the ability of swapping words/bytes either in CI854A or STT-PBMSPCI with reasonable expenditure. This would save the unpleasant word swaps

in AC800M program code and we can therefore only hope that this feature

will be implemented in a future firmware release.

• Further development of CI854A could include the implementation of (multi-)

slave functionality, thus offer new possibilities for PROFIBUS connection, especially the direct connection to PROFIBUS masters without the need for

DP/DP-couplers. For example, there are master PCI cards supporting redundancy [43].

MMS improvements

• While Gigabit-Ethernet is already an accepted standard in office IT, AC800M

provides only a 10 Mbit/s interface. Increasing this data rate would boost

the performance of this connection. As a precondition, all involved parts

need to support this higher rate. This applies to the processor module CPU

in particular, since it is responsible for this communication.

• As a further step, the update rate of AC800M OPC Server should be implemented more flexible, such that an update rate down to 1 ms is possible if

the rest of the communication permits to do so.

7.2.3 Alternatives

• Instead of using OPC as communication interface, the relay could be realized

with own “glue logic” software. Woodhead offers an application programming

interface with its card, for example. However, the implementation would be

time-intensive and far less portable/flexible. Of course, also different operating systems like Linux could be taken into account, yet the card drivers must

be written by oneself as far as we can tell.

• Even further goes the idea to implement the relay not on a personal computer,

but on a customized hardware device containing a microcontroller/FPGA.

This would result in so-called bus coupler device, which is commonly used

for other bus types [44]. However, this approach is of course development

intensive and very specific.

• With PM644 there exists a processor module for AC160 which provides a

PROFIBUS interface [45]. This module’s performance is too weak for the

intended task, though. Nonetheless, it could be “misused” as communication interface, sending/receiving all data to/from the real processor modules

PM665. Since it can only act as PROFIBUS DP master, just like CI854A,

they need multiple DP/DP-couplers1 as relaying devices. The lack of redundancy support could be compensated by the same measures as already

discussed in the preceding chapter [46].

• Last but not least it would be possible to replace PROFIBUS and MMS by

an alternative communication technology. Due to the restricted selection of

communication interfaces and limited capabilities of (field) buses this does not

make much sense today. But as Industrial Ethernet solutions like PROFINET

[47] will become more and more important, this will be changing whithin the

next years.

7.3 Conclusion

Results show that with the accurate components it is generally feasible to establish

a fast (enough) controller-to-controller connection via OPC, meeting the requirements in average. With the Woodhead PROFIBUS solution, which showed best

results, this can be reached using only one PCI card for each bus. However, the

long-time test showed that there are limitations concerning the real-time requirements, since the maximum RTT we measured was almost three seconds. As long

as this is the case, this approach cannot be used for critical applications. Moreover,

there are smaller problems like the word swap that have to be considered. We are

sure that this unwanted appearances can be eliminated by implementing some of

the proposals of the preceding section. Nevertheless, the system can be used for

in-house purposes, e.g. to test certain software parts before another approach is

available, or even for non-critical operational applications like visualization tasks.

Also the engineering effort to realize a PROFIBUS connection is acceptable, especially since variables can be processed transparently in AC800M. The use of tools

like Excel and Bulk Data Manager is a big help in this context.

infrastructure. Implementing complete redundancy even inside the personal computers seems to be in no relation to the effort. The proposed solution, treating the

computers as single “lines” and moving redundancy brainpower to the controllers,

is a realistic and feasible approach. However, it is engineering and programming

effort anyway and redundancy can slow down the connection. It is therefore recommended to do without redundancy as long as such a system is only used for not

process relevant in-house purposes.

Since OPC DA is based on Microsoft’s COM, a proprietary solution, one will always

be restricted in various directions. Along with many other improvements, OPC UA

will get rid of this drawback and open up new perspectives to connect controllers.

It is therefore important for ABB to build up know-how for OPC UA and implement these specifications in their own servers. An alternative, more specific and

less general but also promising approach is the use of PM644 with AC160, which

in our opinion should be tested out if the need for such an application persists.

We believe that the testing of such a configuration can be done in a comparatively

short period. Last but not least we would like to remark that importance of fieldbuses will decrease due to the entry of Industrial Ethernet solutions. We therefore

recommend keeping an eye on this development.

Diplomarbeit ABB Schweiz AG 

Power Systems / Power Generation 

Industrielle Netzwerke 

Leistung – Verfügbarkeit – Zuverlässigkeit 

Es sollen die bestehenden Strukturen von industriellen Netzwerken und Bussystemen für die 

Kraftwerksautomation basierend auf dem ABB Leitsystem 800xA analysiert werden. Dabei sollen 

verschiedene Fragestellungen in den Bereichen Verfügbarkeit, Leistung und Sicherheit bearbeitet 

werden. 

Das ABB Control-System welches zur Steuerung von Hochleistungs-Gasturbinen eingesetzt wird, soll 

mit den neuesten Technologien punkto offener Schnittstellen, Anbindung an TCP/IP Netzwerke und 

Unterstützung von Device Management Tools etc. ausgerüstet werden. Hierzu soll der bestehende 

„Kopf-Rechner“ Advant Controller 450 durch einen Controller der neuesten Generation, einen AC800 

M Controller ersetzt werden. 

Die Aufgabe besteht darin, den AC800 M Controller an einen Advant Controller 160 über das 

bestehende Interface AF100 OPC Server anzukoppeln. Es ist eine Lösung zu erarbeiten, welche 

zyklischen Datenaustausch des AC800 M Controllers mit dem AC160 Controller unter Einhaltung des 

geforderten Datendurchsatzes, der Verfügbarkeit und der Zuverlässigkeit ermöglicht. Dabei sind die 

zurzeit verfügbaren Produkte und Technologien der Plattform zu nutzen. 

Die Bearbeitung der oben aufgeführten Fragestellungen beinhaltet sowohl einen theoretischen als 

auch einen praktischen Teil. Dabei sollen Daten für die Leistung, Verfügbarkeit und Zuverlässigkeit 

der erarbeiteten Lösung theoretisch hergeleitet, sowie ein System aufgebaut werden. Am 

aufgebauten System soll anhand von durchgeführten Tests Verbesserungsvorschläge resp. 

Änderungen an der System-Architektur evaluiert werden können. 

Die technischen Spezifikationen des Control-Systems sind soweit möglich einzuhalten resp. 

Abweichungen entsprechend zu dokumentieren. 

Eine optionale Ausweitung der Aufgabenstellung besteht in folgender Leistung. Das System 800xA 

basiert seit der Einführung vor mehreren Jahren auf OPC. In der Vergangenheit wurden solche 

Systeme immer in einem eigenen Netzwerk und eigener Windows Domäne realisiert. Heutige 

Kundenanforderungen zielen immer häufiger darauf ab, dass sich OPC Server und OPC Client in 

unterschiedlichen Netzwerken resp. Domänen befinden. Im Rahmen der Diplomarbeit soll geklärt 

werden, welche Einbussen in der Übermittlungsleistung in Kauf genommen werden müssen, wenn 

Server und Client in unterschiedlichen Domänen liegen resp. welche Massnahmen ergriffen werden 

können, damit die Leistungseinbussen möglichst gering bleiben. 


  • ENTERASYS A4H254-8F8T Ethernet switch
  • ENTERASYS C2RPS-CHAS2 SecureStack c2 Redundant power supply chassis
  • ENTERASYS A2H124-24 Ethernet edge switch
  • EMG LID43.03 Reference voltage source
  • EMERSON PR6426010-110+C0N021916-240 32mm Eddy Current Sensor
  • EMERSON PR6423/011-110+C0N021 Eddy Current Signal Converter
  • EMERSON VE4003S2B1 DeltaV™ M-series Traditional I/O
  • EMERSON 2500M/AI4UNIV analog input module
  • EMERSON PMCspan PMC Expansion Mezzanine
  • EMERSON PR6424/011-140 16mm Eddy Current Sensor
  • EMERSON KJ3242X1-BK1 12P4711X042 S-Series H1 Card
  • EMERSON 960132-01 FX-316 Positioning Servo Drive 230 VAC
  • EMERSON KJ4006X1-BD1 Interface Terminal Block
  • EMERSON 1C31181G01 module
  • EMERSON CE4003S2B6 I/O Termination Block
  • EMERSON KJ4001X1-CK1 40-Pin Mass Termination Block
  • EMERSON VE4012S2B1 Module
  • EMERSON KL4103X1-BA1 CHARMs Smart Logic Solver Carrier
  • EMERSON A6370D/DP Overspeed Protection Monitor
  • EMERSON P188.R2 Industrial interface module
  • EMERSON VE3008 CE3008 KJ2005X1-MQ1 12P6381X042 MQ Controller
  • EMERSON TPMC917 4MB SRAM with Battery Backup and 4 Channel RS232
  • EMERSON P152.R4 Multifunctional module
  • EMERSON DA7281520 P152 Processor board
  • EMERSON PR6423/008-110 8mm Eddy Current Sensor
  • EMERSON PR6423/000-131 8mm Eddy Current Sensor
  • EMERSON MVME61006E-0163R VMEbus Single-Board Computer
  • EMERSON Ovation 5X00453G01 Remote I/O Node Controller Module
  • EMERSON 5X00070G04 Analog input
  • EMERSON Ovation 5X00070G01 Analog Input Module
  • EMERSON Ovation 5X00790G01 Compact Controller Module
  • EMERSON 5X00846G01 HART analog output module
  • EMERSON 1C31113G01 Digital output module (5-60VDC)
  • EMERSON KJ4110X1-BA1 I/O terminal module
  • EMERSON CSI3125 A3125/022-020 Shaft-Vibration Monitor
  • EMERSON 5X00273G01 Digital output module
  • EMERSON KJ4001X1-NB1 12P3368X012 REV:E 1-Wide I/O Carrier Extender Left
  • EMERSON KJ4001X1-NA1 12P3373X012 REV:C 1-Wide I/O Carrier Extender Right
  • EMERSON A6312/06 Speed and Key Monitor
  • EMERSON KJ4001X1-BE1 8-Wide I/O Carrier
  • EMERSON KJ2005X1-MQ1 KJ2005X1-MQ2 13P0072X082 MQ Controller
  • EMERSON 5X00226G03 - Ovation™ I/O Interface Controller, Electronics Module
  • EMERSON PR6423/00R-010+CON031 Vibration sensor
  • EMERSON 9199-00002 A6120 Control Module
  • Emerson Ovation 1C31234G01 - Ovation™ 16 Channel Compact Digital Input
  • Emerson Ovation KJ3002X1-BF1 12P1732X042 Controller module
  • Emerson Ovation 5X00226G01 I/O Interface Module
  • Emerson Ovation™ Controller Model OCR1100(5X00481G04/5X00226G04)
  • Emerson Ovation 5X00499G01 Digital Input 24Vdc Single 32CH
  • Emerson Ovation 5X00500G01 32-Channel Digital Output Module
  • Emerson ovation VE4001S2T2B4 Analog output card
  • Emerson ovation 5X00501G01 5X00502G01 Ethernet link controller
  • EMERSON A6824R 9199-00098-13 Module
  • EMERSON A6140 9199-00058 Industrial Control Module
  • EMERSON 1C31194G03 Industrial Control Module
  • EMERSON DB1-1 Industrial Control Module
  • EMERSON PMC-IO-ADAPTER I/O module
  • EMERSON L0115012 L0115032 Control module
  • EMERSON PMC-IO-PROZESSOR Process control module
  • EMERSON PMC PROFINET Manage Gigabit Ethernet switches
  • EMERSON A3120022-000 CSI3120 Bearing-Vibration Monitor
  • EMERSON SE3008 KJ2005X1-SQ1 12P6383X032 Controller
  • EMERSON 1000554 Printed circuit board
  • EMERSON PR6423/002-041 Sensor module
  • EMERSON 1C31232G02 Westinghouse control module
  • Abaco TRRM940 Switch
  • Abaco SWE440A Switch
  • Abaco NETernity™ RM984RC Ethernet Switch
  • Abaco NETernity™ GBX411 Ethernet Switch
  • Abaco NETernity™ GBX25
  • Abaco NETernity SWE540A
  • Abaco CP3-GESW8-TM8 Ethernet switch
  • Abaco SWE440S Ethernet switch
  • Abaco SWE450S 100GbE 3U VPX Switch Aligned to SOSA™ Standard
  • Abaco SWE550S 100GbE 6U VPX Switch Aligned to SOSA™ Standard
  • Abaco SPR870A Wideband Digital Receiver/Exciter
  • Abaco SPR507B Serial FPDP XMC/PMC
  • Abaco ICS-1572A Transceiver Module
  • Abaco daq8580 FMV Compression System
  • Abaco VP868 FPGA Card
  • Abaco HPC2812 Rugged 6U VPX High Performance Computer with Dual Intel
  • Abaco VSR347D 3U VPX Rugged Virtual Secure Router
  • Abaco VSR8000 Fully Rugged, COTS System Secure Router
  • Abaco RES3000 Compact, Rugged Ethernet Switches
  • Abaco PMC238 Expansion Card
  • Abaco EXP238 PMC/XMC Expansion Card for XVB603 VME Single Board Computer
  • Abaco VME-REPEAT-A-L VMEbus Repeater Link
  • Abaco VME-4514A VME Analog I/O Input/Output Board
  • Abaco VME-3128A Analog I/O
  • Abaco VME-3125A analog-to-digital Conversion board
  • Abaco VME-3123A VME Analog I/O Input Boards
  • Abaco PMC239/F Analog input/output board
  • Abaco PEX431 Multi-fabric Switch
  • Abaco CPCI-100A-BP 2-slot IndustryPack carrier for 3U CompactPCI
  • Abaco PMC522 Serial Controller
  • Abaco PMC522/FP Serial Controller
  • Abaco VME-2170A Digital Output 32-bit optically isolated
  • Abaco VME-1129 Digital Input Board 128-bit high voltage
  • Abaco IP-OCTALPLUS232 Eight EIA-232 asynchronous serial ports
  • Abaco IP-DIGITAL482 Digital I/O with 48 TTL Channels
  • Abaco PMC523 16-Port Serial Controller
  • EMERSON CE4003S2B1 M-series Traditional I/O
  • EMERSON SE3008 DeltaV™ SQ Controller
  • EMERSON 1C31227G01 - Ovation™ 8 Channel Analog Input
  • EMERSON 1C31224G01 - Ovation™ 8 Channel Analog Input
  • ABB UNS0119A-P,V101 3BHE029154P3 3BHE029153R0101 Digital input
  • ABB 3BDH000050R1 AM811F Battery Module
  • ABB 3ASC25H705-7 Digital output board
  • ABB UDD406A 3BHE041465P201 control board
  • ABB 3BHE014967R0002 UNS 2880B-P,V2: COB PCB Assembled
  • ABB PPC380AE02 HIEE300885R0102 module
  • ABB NU8976A99 HIER466665R0099 Processor Module
  • ABB DIS0006 2RAA005802A0003G Digital Input Module
  • ABB Bailey IMDS003 infi 90 Digital Output Slave Module
  • ABB XO08R1-B4.0 Expand the output relay module
  • ABB VA-MC15-05 Controller module
  • ABB VA-3180-10 Controller module
  • ABB 72395-4-0399123 Excitation module
  • ABB PU516A 3BSE032402R1 Engineering Board - PCI
  • ABB 3BHE044481R0101 3BHE044477P3 PPE091A101 Module
  • ABB UCD224A102 Control unit
  • ABB SNAT603CNT SNAT 603 CNT Motor Control Board
  • ABB SNAT634PAC Drive board
  • ABB UAD149A0011 Servo controller
  • ABB UCD224A103 Industrial controller module
  • ABB 3BHE029154P3/3BHE029153R0101 UNS0119A-P,V101 Processor Module
  • ABB ARCOL 0338 ARCOL 0346 Solid-state motor starter
  • ABB ARCOL 0339 Solid-state motor controller