1. Trang chủ
  2. » Thể loại khác

DSpace at VNU: Component-based Design for SCADA Architecture

7 108 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 605,96 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Component-based Design for SCADA Architecture Phan Duy Anh and Truong Dinh Chau Abstract: Supervisory control and data acquisition SCADA software which is suitable to distributed control

Trang 1

Component-based Design for SCADA Architecture

Phan Duy Anh and Truong Dinh Chau Abstract: Supervisory control and data acquisition (SCADA) software which is suitable to distributed

control systems is a demand for system developers because the characteristics of existing SCADA

software packages are hard to satisfy the requirements of distributed systems For the strengths of

component-oriented techniques, this paper proposes a component-oriented architecture of SCADA

software to satisfy the demand of distributed control systems Design pattern and OPC (OLE for

Process Control) technology are also used to make the openness for the architecture

Keywords: Component-oriented programming, distributed systems, time design patterns,

real-time systems, SCADA, system architecture

1 INTRODUCTION SCADA is known as process of collecting data from

physical devices to monitor, archive on computers and

applying commands from computers to control the

devices SCADA system including these processes bases

mainly on computer infrastructure (maybe one computer

or a computer network) and SCADA software installed

on the computers

By the demand for mass production, productivity,

quality and safety, the current production systems are

large and complex ones Devices of these systems are

installed in wide-area of plants and their statuses are

monitored and controlled by many departments These

are called distributed systems The power system

discussed in [1] is an example They need the advanced

SCADA software with the key features: independence on

distance, flexible operation, easy upgrade, and

reasonable cost to monitor and control all of their

distributed devices in widespread areas

However, the existing SCADA software packages in

the automation market are developed from their original

patterns which base on structured or object-oriented

analysis and design All features are in one package, and

installed in one computer These are hard to satisfy the

requirements of distributed systems

With the development of component-oriented

programming (COP), the good support of NET

programming languages and many modern design

patterns for this programming technique [2,3], current

and future softwares have been being analyzed and

designed to follow this orientation to get its goals: easy use, high security, openness, reuse, conquering complexity And modern SCADA software should also follow component-oriented architecture to archive its goals which are good solutions for distributed systems requirements

This paper presents a component-oriented architecture

in the domain of SCADA system to make it suit with distributed systems For archiving this architecture, in Section 2, we expose the basic architecture of existing SCADA systems and all of its objects Section 3 presents component description; Section 4 gives the advantages of modern design patterns in software design and how to apply these into the architecture Section 5 gives the component-oriented architecture suiting with SCADA system and explains in detail its working mechanism In Section 6, the component-oriented architecture is implemented into distributed production system And Section 7 gives a conclusion of the work

2 BASIC OBJECTS OF A SCADA SOFTWARE From reading and analyzing [5-7], a common picture

of objects in a SCADA software and their interaction is shown in Fig 1

© ICROS, KIEE and Springer 2010

Manuscript received March 5, 2009; revised December 23,

2009; accepted April 5, 2010 Recommended by Editorial Board

member Jietae Lee under the direction of Editor Young-Hoon Joo

Phan Duy Anh is with the School of Electronic & Computer

Engineering, Cao Thang Technical College, 65 Huynh Thuc

Khang, District 1, Vietnam (e-mail: anhphan@caothang.edu.vn).

Truong Dinh Chau is with the School of Electrical and

Elec-tronics Engineering, Ho Chi Minh City University of Technology,

268 Ly Thuong Kiet, District 10, Vietnam (e-mail: tdchau@

hcmut.edu.vn)

Fig 1 Objects and their interaction in traditional SCADA software

Trang 2

directly from I/O driver object or stored data in database

to draw charts

Alarm object uses real-time data from I/O driver

object to announce exceeding statuses of values to users

and these statuses are also stored into database

Report object uses stored data of database to print

report papers or display onto screens numerically

Utilities of trend, alarm and report objects are

configured and viewed in designer and runtime by

trend-viewer, alarm-trend-viewer, report-viewer respectively

Network connector object allows accesses from

outside of SCADA station or from other third-party

applications to the database to collect data or to use

resource of data center

Designer is a user interface It includes many design

tools, such as labels, textboxes, alarm-viewer,

report-viewer, trend-report-viewer, etc to display values of tags;

buttons, switches, etc to change values of tags It can

specify whichever tags will log their values into database

or be used in trend, alarm or report objects Designer is

used by system engineers to design plant picture to

monitor and control processes in plant After designing

in designer, system engineers have to save their work

into a project file This file will be read and executed by

runtime object

Runtime is an executive object of the project file

created by designer It is used by operators to monitor

and control processes in plant

Functions of designer and runtime are shown in Fig 2

In the package GeniDAQ (Advantech, Taiwan),

developed from their first version which is analyzed and designed upon old technologies and many update patches

So, they are larger and larger, they become complex systems A software package is installed in only one computer, so all of its resources are in that computer If a plant wants to apply client-server topology for SCADA, many same SCADA software packages have to be bought to install in the computers, but they only use resources on servers, not all of resources on clients are used

3 COMPONENT-ORIENTED PROGRAMMING Component-oriented programming (COP) is a modern programming technique which enables programs to be constructed from software components A software ponent is a piece of self-contained, self-deployable com-puter code with well-defined functionality and can be assembled with other components through its interfaces [4]

Fig 3 shows a program built with components Utili-ties of program are provided by client1 and client2 Client1 connects to component1 through interface1 to get service; client2 connects to component2 through inter-face2_2 to get service Component2 also provides service for component1 through its interface2_1

Because a software component is a self-contained computer code and it just communicates with out-side objects through its interfaces So, when using a compo-nent, we have no need to know how it operates in-side and actually, we can not know this if the component is from a third-party This stands for the ease to use and the high security of software component

If customers use a component-based program, they will have a chance of upgrading or updating the program

by themselves by replacing existing components with new components but the same interfaces This work does not affect operation of the other components By this way, we can also do for our software products This stands for the openness and the reuse of the programs which are constructed from components

A software component also is self-deployable

comput-er code It can be installed and executed independently of other components So, when providing service for other objects, it plays a role of server and the objects using its service are clients In Fig 3, component1 is server of client1 and it is a client of component2 Component2 is server of client2 and component1 With the good support

of NET platform, components can execute as servers in different computers, they can easily interact remotely to Fig 2 Use case diagram of SCADA software

Trang 3

each other [2] The program consisting of components

running in different computers is called distributed

appli-cation This kind of program is used for giving solution

for distributed (complex) systems This also stands for

the openness of component-oriented software

All characteristics: easy use, high security, openness,

reuse, conquering complexity make component-oriented

programming better than other programming techniques

before it (structured programming, object-oriented

pro-gramming,…)

4 DESIGN PATTERNS

Design patterns were concerned first in [8] for

object-oriented programming and the original implementations

were presented in C++ and Smalltalk As the useful of

them, there are many new patterns which are applied to

other programming techniques such as

component-oriented programming and implemented into many other

programming languages [9] such as: Visual Basic, C#,

Java, etc A design pattern is defined in “a generalized

solution to a commonly occurring problem” [3]

Design patterns are found by experienced developers

They used to face the problems which are similar to each

other many times The solution for the problems is

gen-eralized and formalized to create a design pattern Thus,

design patterns are experiences in software engineering

If we find suitable design patterns for our architecture,

they can help us a stable architecture and short time in

design

5 COMPONENT-ORIENTED ARCHITECTURE

FOR SCADA SOFTWARE

The benefits of component-oriented programming

de-scribed in section 3 give us the motivation of designing

component-oriented architecture for SCADA system to

overcome the limits of existing SCADA systems A

real-time design pattern can be applied to make the

architec-ture to be stable and more suitable with distributed

real-time systems The “component-based architecture”

pat-tern [3] is analyzed and applied into context of this

sec-tion

Fig 4 shows component-based architecture pattern

which is applied into computer network context Client

module has its component framework in client computer

It is serviced by client interfaces of many server

compo-nents Each of server components is stored in specified folder of a server computer (for example, it can be C:\MySCADA) For the first time of search, client does not know the IP address of the server computer but it knows the folder storing the server component The component framework includes component loader and component repository Client module uses component loader to search in network for IP address of server com-puter (which stores specified server component in C:\MySCADA folder) and load server components Re-pository is used by component loader to save addresses

of server components for later use This means that the component loader does not need to search in the network for IP addresses of server computers if these are in re-pository When loading a server component, component loader uses management interface to confirm server name and to know the name list of the other components which the server component depends on The component loader has to load all of these components to give ser-vices for the server component This means that a server component of client module can be a client of other server components

The searching mechanism of component loader is de-scribed in Fig 5 The component loader has two places

to search the requested component: its repository and computer network At first, it starts searching in reposi-tory, if it finds the address, it will return this for client and finish searching If it does not find the address of requested component in repository, it will search in net-work The search in network needs the IP range provided

by client The component loader pings IPs in IP range to find the list of live hosts; then, it starts the iteration to looks for the requested component by name in the

ad-dress {IP[i]\component folder}, where, component folder

is the default storing folder (C\MySCADA, for instance)

of the component in the host whose IP address is the

number i in the list of live hosts If it finds the requested component at IP[i] address, it will add this IP into

reposi-tory, return this address to client and end searching If the iteration ends but the requested component is not found, it will give a “not found” message to client and finish searching

This searching mechanism is also a solution for re-dundancy technology which is a complexity in automa-tion Redundant server package can be stored in specified

Fig 3 Component-based program

Fig 4 Component-based architecture design pattern in computer network context0

Trang 4

folder in anywhere of network Main server can use this

searching method to invoke the redundant server without

caring about the position of redundant server computer in

network

Client-server interaction in Fig 4 is from computer to

computer Thus, remoting technology has to be applied

On NET platform, remoting technology is supported

well [2] .NET gives two options for accessing an object

through network (application domain boundary): by

val-ue and by reference

When accessing an object by value (or marshaling by

value), client can not write value into server side,

be-cause the object in server side is copied to client side, so

client gets a copy of the object and these two objects are

distinct Changes in the object in client side do not affect

the object in server side This option is not suitable for

remoting SCADA application, in which, client has to

change tag values in I/O driver server

When accessing an object by reference (or marshaling

by reference), client uses a proxy as a reference to the

object in sever computer A proxy in client side is an

object that provides exactly the same interfaces, public

methods, properties, and members as the real object in

the server side, but it is not a copy of the real object, it is

just a material for client to make a reference to server

side object With this option of accessing, client can

write value to the server side This is suitable for

remot-ing SCADA application Moreover, the kind

server-activated-single-call of marshaling by reference can be

applied for saving resource of server computer

With the component framework, search mechanism, remoting technology and the good support of NET for component and remoting, this pattern can fully manage all interactions of components without depending on the distance of components in physical network This can help us to distribute components into computer network

to make a distributed SCADA system Thus, we can take advantage of many processors to increase processing speed

Applying basic objects of a SCADA system into the design pattern described in Fig 4 on NET platform, a component-oriented architecture for SCADA system is proposed (Fig 6) It inherits all good characteristics of software component and the design pattern

In Fig 6, designer module and runtime module are clients they have their own component framework, which help them find their servers Graphic library com-ponent is a server providing indicators and control ob-jects for plant picture in designer and runtime Trend, alarm and report components also are servers, they pro-vide their specific services (described in Section 2) for designer and runtime I/O driver server connects to phys-ical devices to acquire time data and provides real-time data for its clients (designer, runreal-time, trend, alarm, report) in the form of values of tags Database compo-nent is used by trend, alarm, and report for archiving tag values

Designer module and its component framework are packaged into a package Runtime module and its com-ponent framework are also in the same package These packages are installed in computers and these computers are clients The server components can be installed sepa-rately in many computers They can execute indepen-dently in their computers to provide their necessary ser-vices to clients

Fig 5 Activity diagram of searching mechanism of

component loader

Fig 6 Component-oriented architecture for SCADA system

Trang 5

Fig 7 shows services of server components through

their interfaces These services are described bellow

In the client interface of trend, alarm or report

compo-nents, there are methods: set_tag_name and get_object_

control Client uses method set_tag_name to provide tag

for these components to make their services Method

get_object_control is used by client to get services from

trend, alarm or report components In client interface of

alarm component, there is another method alarm_limit

This method lets client give the limit levels for the tag

In the client interface of I/O driver, there are three

me-thods: set_tag_data_base, read_tag_value and write_tag

_value Client uses method set_tag_data_base to declare

tag collection Method read_tag_value is used to read the

value of specified tag and method write_tag_value is

used to write specified value into specified tag

The client interface of database component has

me-thods: create_table, insert_record, and select_records

They are used to provide the services of creating table,

inserting record into table and selecting records from

table respectively

The method get_objects in client interface of graphic

library is used by client to get graphic indicators and

control objects

In management interface of all server components,

there is method get_my_name It gives component loader

the name of the server component In the management

interface of trend, alarm and report component, the

me-thod get_servers_name provides a name array of their

servers for component loader to load all of their servers

before loading them

Based on the description in Fig 4, working

mechan-ism of the new SCADA software is briefly explained

below

Designer application in design computer is loaded by

system engineer It automatically uses its component

loader to search and load the graphic library component

to get library of indicators and control objects

The first step of system engineer in design is

declara-tion of tags This activity calls the component loader to

search for the availability of I/O driver server If this

component is not available, the design work will be

stopped, because without tags, nothing can be done in a

SCADA application This step generates a XML

tag-config-file in the format defined as follow

<Group>

<GroupName> …</GroupName>

<UpdateRate>…</UpdateRate>

<Tag TagName="…" Address="…" />

<Tag TagName="…" Address="…" />

</Group>

<Group>

</Group>

… where Group is the group of tags, its name is defined in GroupName All tags in a group have the same Update-Rate to update fresh data for tag values Each of tags has its TagName and Address

Next, indicators and control objects are dragged and dropped to build plant picture Then, they are stuck with specified tags to display and control their real-time val-ues provided by I/O driver server in runtime If indica-tors are trend-viewers, alarm-viewers, report-viewers or some of them, they call component loader to search for the availability of corresponding servers: trend, alarm and report components After finding addresses of these servers, the component loader has to search for the avail-ability of database component, (the I/O driver component was already searched when declaring tags) If they are available, these indicators can be used for design; other-wise, these indicators can not be used For completing project design, the system engineer has to save what he has done into a XML project file The structure of this XML file can be briefly described as follow

<Object>

<ObjectName> …</ObjectName>

<Location X="…" Y="…" />

<Size H="…" W="…" />

<Tag GroupName="…" TagName="…" />

</Object>

<Object>

</Object>

… where each Object is an indicator or a control object in designed picture An object has ObjectName, Location, Size and tag properties Tag is the tag stuck to the object

to display or control its value

User uses runtime application in runtime computer to execute the Tag-config-file and the project file created

by system engineer Tag-config-file is loaded first The runtime searches and load I/O driver component to create tag collection with all tags were configured in Tag-config-file If there is no I/O driver component in net-work, all next steps can not be done Next step (if I/O driver component is found and loaded), project file is executed to generate plant picture All indicators and control objects in the picture are connected to tag collec-tion to get or set tag values If there are trend-viewers, alarm-viewers, report-viewers, their corresponding serv-ers are searched and loaded to provide services for them Fig 7 Interfaces of server components

Trang 6

many OPC servers

With SCADA software architecture in Fig 6, we can

upgrade or update the server components easily without

caring about the significant increasing of software size

All clients and server components can be installed and

run in any computer in network with the regardless of

distance This constructs a distributed computing system

What happens if all these components are in the same

computer? The answer for this question is: each of

com-ponents can use IP of the computer for its address and it

follows the working mechanism of the architecture

The architecture in Fig 6 is discussed with just two

clients: one designer and one runtime When

implement-ing into distributed control system, more than two client

modules can be used in network to give plant monitoring

and control features for operators

Fig 9 shows a large-scale SCADA network system;

each of servers is in separate computer in network There

are many designer and runtime client computers

De-signers are used to design projects Runtimes execute

these projects with the services of servers The black

lines show the interaction between clients and server

components The red lines show the interaction of I/O

driver component with OPC servers in the system

There is a question: will client computers slow or halt

the system if there are many of them in network? The

answer is positive, but just at the first time the clients

search for addresses of the servers in network With

many computers in the network, the searching

mechan-ism described in Fig 5 takes long time to ping and

search for addresses of server components in live hosts

After the first time, all addresses of servers are in

reposi-tory of clients, the problem of searching is solved

Tak-ing advantage of many processors in distributed

compu-ting system and remocompu-ting technique discussed in section

5, many clients can be served well by server components With the OPC technology, the SCADA system can work with many kinds of I/O devices of various vendors This makes the component-oriented SCADA system to

be open with automation world

A component-oriented SCADA software designed by Enterprise Architect software (Sparx Systems, Australia) and coded in C#.net are being tested in the laboratory of Automation and Control, Ho Chi Minh City University

of Technology, Vietnam It is tested with three OPC servers: PC Access (Siemens), Kepware (Kepware, Inc.) and RSlinx (Rockwell Automation) PC Access OPC server connects to a Siemens PLC S7-200, RSlinx con-nects to a PLC Compactlogix and Kepware concon-nects to

an Omron PLC CQM1 All of server components are installed on different computers in network The statuses

of inputs and outputs of the PLCs can be monitored and controlled on three runtime computers as shown in Fig 9

7 CONCLUSION The architecture in Fig 6 of SCADA system and its implementation into large-scale network system in Fig 9 inherit all of the open characteristics from component-oriented technique, design pattern, and OPC technology Component-oriented technique gives the architecture the openness of easy replacing, updating, and upgrading software components Design pattern gives the architec-ture the openness of flexible scale The OPC technology gives it the openness of easy integrating with many kinds

of I/O devices of various vendors The architecture also inherits strong points of distributed computing

technolo-gy These make the component-oriented SCADA system

to be open with automation world

Fig 8 The inside of I/O driver component and the

interaction of it with many OPC servers

Fig 9 A large-scale SCADA network system

Trang 7

REFERENCES

[1] Y Serizawa et al., “Conceptual design for

distrib-uted real-time computer network architecture,”

Proc of IEEE PES Transmission and Distribution

Conference, vol 1, pp 26-31, 2002

[2] J Lowy, Programming NET Components, p 648,

O’Reilly, 2005

[3] B Douglass, Real-time Design Patterns Robust

Scalable Architecture for Real-time Systems, pp

125-130, Wesley, 2002

[4] A Wang and K Qian, Component Oriented

Pro-gramming, p 319, Wiley, 2005

[5] Siemens, WinCC v6 Getting Started Manual, 2003

[6] Wonderware, Intouch HMI Concepts and

Capabili-ties Guide, 2007

[7] Advantech, GeniDAQ User’s Manual, 2000

[8] E Gamma, R Helm, R Johnson, and J Vlissides,

Design Patterns, Elements of Reusable

Object-oriented Software, Addison-Wesley, 1995

[9] J Bishop, C# 3.0 Design Patterns, p 290, O’Reilly,

2007

[10] T D Chau and N N Khai, “Web-based data

moni-toring and supervisory control,” Proc of the Int

Conference ISEE, 2007

[11] K Hamilton and R Miles, Learning UML 2.0, p

286, O’Reilly, 2006

[12] W P Junior and C E Pereira, “A supervisory tool

for real-time industrial automation systems,” Proc

of the Sixth IEEE International Symposium on

Ob-ject-Oriented Real-Time Distributed Computing,

2003

[13] B Atlagic, “Application development environment

of an integrated SCADA system,” Proc of

EURO-CON 2003, Computer as a Tool, The IEEE Region 8,

vol 1, pp 322-326, 2003

[14] F Moscato, N Mazzocca, and V Vittorini,

“Work-flow principles applied to multi-solution analysis of

dependable distributed systems,” Proc of the 12th

Euromicro Conference on Parallel, Distributed and

Network-Based Processing, 2004

[15] Z Ling and J Yu, “The design of SCADA based

on industrial ethernet,” Proc of the 4th World

Congress on Intelligent Control and Automation,

2002

[16] J Zhang and Y Zhang, “Component-oriented modeling and design of hierarchical hybrid control

system,” Proc of IEEE International Conference

on Control and Automation, Guangzhou, China,

May 30 to June 1, 2007

[17] J Cheesman and J Daniels, UML Components, a Simple Process for Specifying Component-Based Software, Addison-Wesley, 2000

[18] I Crnkovi´c, “Component-based software engineer-ing - new challenges in software development,”

Journal of Computing and Information Technology

- CIT 11, pp 151-161, 2003

[19] L Wang and K C Tan, Modern Industrial Auto-mation Software Design, p 313, John Wiley &

Sons, Inc., 2006

[20] H.-G Gross, Component-based Software Testing with UML, p 316, Springer, 2005

Phan Duy Anh received his B.S degree

in Automation and Control from De-partment of Automation and Control, Faculty of Electrical and Electronics Engineering, Ho Chi Minh City Univer-sity of Technology, Vietnam in 2007 His research interests are SCADA system, real-time system software design and programming He is a lecturer of Faculty

of Electronic & Computer Engineering, Cao Thang Technical College, Vietnam Currently, he is pursuing a M.S Degree and doing research on modern SCADA system in the laboratory of Automation & Control, Ho Chi Minh City University of Tech-nology

Truong Dinh Chau received his B.S.,

M.S and Ph.D degrees in Automation and Control from Faculty of Engineering Cybernetics, St Petersburg State Poly-technic University, Russia in 1999, 2001 and 2005, respectively His research interests are control system integration and real-time system software design and programming He is a lecturer and the deputy head of Department of Automatic Control, Ho Chi Minh City University of Technology, Vietnam Currently, he is

a visiting research professor at Modeling Intelligence Process Systems laboratory, University of Haute-Alsace, France

Ngày đăng: 16/12/2017, 09:02

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN