You are on page 1of 7

International Journal of Control, Automation, and Systems (2010) 8(5):1141-1147 DOI 10.

1007/s12555-010-0523-y

http://www.springer.com/12555

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, real-time design patterns, realtime 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
__________ 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 Electronics Engineering, Ho Chi Minh City University of Technology, 268 Ly Thuong Kiet, District 10, Vietnam (e-mail: tdchau@ hcmut.edu.vn). © ICROS, KIEE and Springer 2010

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.

Fig. 1. Objects and their interaction in traditional SCADA software.

Fig. The real-time data is represented by values of tags in SCADA software. such as WinCC (Siemens.1142 Phan Duy Anh and Truong Dinh Chau Basic SCADA software has four main objects: I/O driver. This work does not affect operation of the other components. client2 connects to component2 through interface2_2 to get service. system engineers have to save their work into a project file. 2. they become complex systems. Utilities of trend. By this way. A software component also is self-deployable computer code. 2. textboxes. It can specify whichever tags will log their values into database or be used in trend. component1 is server of client1 and it is a client of component2. Designer is used by system engineers to design plant picture to monitor and control processes in plant. GeniDAQ Builder and GeniDAQ Runtime are designer and runtime respectively. USA). A software package is installed in only one computer. self-deployable computer code with well-defined functionality and can be assembled with other components through its interfaces [4]. more exactly. components can execute as servers in different computers. Data center stores raw values or processed values of specified tags into database. Germany). Utilities of program are provided by client1 and client2. If customers use a component-based program. 3. Functions of designer and runtime are shown in Fig. runtime and four other sub objects: trend. In Fig. Component2 also provides service for component1 through its interface2_1. This stands for the openness and the reuse of the programs which are constructed from components. Trend or. This stands for the ease to use and the high security of software component. alarm. etc. It can be installed and executed independently of other components. real-time trend uses data directly from I/O driver object or stored data in database to draw charts. we can not know this if the component is from a third-party. alarm. They are developed from their first version which is analyzed and designed upon old technologies and many update patches. 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. to change values of tags. COMPONENT-ORIENTED PROGRAMMING Component-oriented programming (COP) is a modern programming technique which enables programs to be constructed from software components. I/O driver gets real-time data from devices to give to other objects in software. it plays a role of server and the objects using its service are clients. After designing in designer. Runtime is an executive object of the project file created by designer. . Intouch. to display values of tags. It includes many design tools. many same SCADA software packages have to be bought to install in the computers. data center. So. because they are based on modular programming [5-7] which is an old programming technique. they can easily interact remotely to Fig. trend-viewer. we have no need to know how it operates in-side and actually. alarm and report objects are configured and viewed in designer and runtime by trendviewer. so all of its resources are in that computer.NET platform. In the package GeniDAQ (Advantech. Data center has four other sub objects: trend. 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. designer. report and network connector. when providing service for other objects. So. alarm or report objects. buttons. but they only use resources on servers. A software component is a piece of self-contained. Because a software component is a self-contained computer code and it just communicates with out-side objects through its interfaces. not all of resources on clients are used. In the Intouch (Wonderware. So. report and network connector. If a plant wants to apply client-server topology for SCADA. switches. It is used by operators to monitor and control processes in plant. This file will be read and executed by runtime object. we realized that they included nearly all of new technologies. when using a component. 3. 3 shows a program built with components. alarm-viewer. report-viewer respectively. reportviewer. Window Maker is designer and Window Viewer is runtime. Component2 is server of client2 and component1. Use case diagram of SCADA software. such as labels. Report object uses stored data of database to print report papers or display onto screens numerically. After applying some SCADA software packages. Client1 connects to component1 through interface1 to get service. alarm-viewer. they are larger and larger. Taiwan). we can also do for our software products. etc. Designer is a user interface. but they are cumbersome. With the good support of . they will have a chance of upgrading or updating the program by themselves by replacing existing components with new components but the same interfaces. GeniDAQ into many plant projects.

each other [2]. 5. it starts searching in repository. COMPONENT-ORIENTED ARCHITECTURE FOR SCADA SOFTWARE The benefits of component-oriented programming described in section 3 give us the motivation of designing component-oriented architecture for SCADA system to overcome the limits of existing SCADA systems. it will give a “not found” message to client and finish searching. Java. etc. The searching mechanism of component loader is described in Fig. they can help us a stable architecture and short time in design. 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. This kind of program is used for giving solution for distributed (complex) systems. As the useful of them. This means that the component loader does not need to search in the network for IP addresses of server computers if these are in repository. 5. The “component-based architecture” pattern [3] is analyzed and applied into context of this section. Each of server components is stored in specified folder of a server computer (for example. 4. A realtime design pattern can be applied to make the architecture to be stable and more suitable with distributed realtime systems. 4 shows component-based architecture pattern which is applied into computer network context. This means that a server component of client module can be a client of other server components. reuse. They used to face the problems which are similar to each other many times. This searching mechanism is also a solution for redundancy technology which is a complexity in automation. Component-based architecture design pattern in computer network context0 nents. If it finds the requested component at IP[i] address. 4. DESIGN PATTERNS Design patterns were concerned first in [8] for objectoriented programming and the original implementations were presented in C++ and Smalltalk. Client module has its component framework in client computer. return this address to client and end searching. Redundant server package can be stored in specified . Component-based program. it can be C:\MySCADA). At first. client does not know the IP address of the server computer but it knows the folder storing the server component.…). then. The component loader has to load all of these components to give services for the server component. it will add this IP into repository. there are many new patterns which are applied to other programming techniques such as componentoriented programming and implemented into many other programming languages [9] such as: Visual Basic. where. The component framework includes component loader and component repository. it starts the iteration to looks for the requested component by name in the address {IP[i]\component folder}. A design pattern is defined in “a generalized solution to a commonly occurring problem” [3]. openness. high security. object-oriented programming. The component loader has two places to search the requested component: its repository and computer network. When loading a server component. If the iteration ends but the requested component is not found. it will search in network.Component-based Design for SCADA Architecture 1143 Fig. The search in network needs the IP range provided by client. This also stands for the openness of component-oriented software. design patterns are experiences in software engineering. C#. If we find suitable design patterns for our architecture. 3. All characteristics: easy use. Client module uses component loader to search in network for IP address of server computer (which stores specified server component in C:\MySCADA folder) and load server components. conquering complexity make component-oriented programming better than other programming techniques before it (structured programming. For the first time of search. The component loader pings IPs in IP range to find the list of live hosts. Design patterns are found by experienced developers. Repository is used by component loader to save addresses of server components for later use. for instance) of the component in the host whose IP address is the number i in the list of live hosts. Thus. If it does not find the address of requested component in repository. component folder is the default storing folder (C\MySCADA. The solution for the problems is generalized and formalized to create a design pattern. it will return this for client and finish searching. if it finds the address. Fig. The program consisting of components running in different computers is called distributed application. It is serviced by client interfaces of many server compoFig.

This can help us to distribute components into computer network to make a distributed SCADA system. because the object in server side is copied to client side. Client-server interaction in Fig. Fig. but it is not a copy of the real object. Moreover.NET platform. The server components can be installed separately in many computers. in which. With this option of accessing. Database component is used by trend. alarm. They can execute independently in their computers to provide their necessary services to clients. applied for saving resource of server computer. Main server can use this searching method to invoke the redundant server without caring about the position of redundant server computer in network. a component-oriented architecture for SCADA system is proposed (Fig. When accessing an object by value (or marshaling by value). we can take advantage of many processors to increase processing speed. folder in anywhere of network. A proxy in client side is an object that provides exactly the same interfaces. . designer module and runtime module are clients they have their own component framework. On . the kind serveractivated-single-call of marshaling by reference can be . alarm. Activity diagram of searching mechanism of component loader. When accessing an object by reference (or marshaling by reference). it is just a material for client to make a reference to server side object. This is suitable for remoting SCADA application. which help them find their servers. 6. Changes in the object in client side do not affect the object in server side. Runtime module and its component framework are also in the same package. Graphic library component is a server providing indicators and control objects for plant picture in designer and runtime. These packages are installed in computers and these computers are clients. 4 on . client uses a proxy as a reference to the object in sever computer. Thus. so client gets a copy of the object and these two objects are distinct. In Fig. alarm and report components also are servers. remoting technology is supported well [2]. Applying basic objects of a SCADA system into the design pattern described in Fig. remoting technology has to be applied. 5. With the component framework. Component-oriented architecture for SCADA system.NET for component and remoting. 6.NET platform. It inherits all good characteristics of software component and the design pattern. runtime. client has to change tag values in I/O driver server. this pattern can fully manage all interactions of components without depending on the distance of components in physical network. Designer module and its component framework are packaged into a package. trend.1144 Phan Duy Anh and Truong Dinh Chau Fig. 6). remoting technology and the good support of . public methods.NET gives two options for accessing an object through network (application domain boundary): by value and by reference. Thus. search mechanism. and members as the real object in the server side. report) in the form of values of tags. and report for archiving tag values. properties. This option is not suitable for remoting SCADA application. client can not write value into server side. 4 is from computer to computer. client can write value to the server side. Trend. I/O driver server connects to physical devices to acquire real-time data and provides realtime data for its clients (designer. they provide their specific services (described in Section 2) for designer and runtime.

7. <Group> <GroupName> …</GroupName> <UpdateRate>…</UpdateRate> <Tag TagName="…" Address="…" /> … <Tag TagName="…" Address="…" /> … </Group> <Group> … </Group> … where Group is the group of tags. they call component loader to search for the availability of corresponding servers: trend.Component-based Design for SCADA Architecture 1145 Fig. alarm-viewers. project file is executed to generate plant picture. otherwise. there is method get_my_name. For completing project design. In client interface of alarm component. nothing can be done in a SCADA application. In the management interface of trend. their corresponding servers are searched and loaded to provide services for them. It automatically uses its component loader to search and load the graphic library component to get library of indicators and control objects. there are methods: set_tag_name and get_object_ control. all next steps can not be done. Fig. Designer application in design computer is loaded by system engineer. the system engineer has to save what he has done into a XML project file. If they are available. This method lets client give the limit levels for the tag. insert_record. report-viewers. Tag-config-file is loaded first. An object has ObjectName. Location. . (the I/O driver component was already searched when declaring tags). In the client interface of trend. User uses runtime application in runtime computer to execute the Tag-config-file and the project file created by system engineer. 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. All indicators and control objects in the picture are connected to tag collection to get or set tag values. The first step of system engineer in design is declaration of tags. Next step (if I/O driver component is found and loaded). If there are trend-viewers. alarm or report components. 4. If indicators are trend-viewers. Size and tag properties. its name is defined in GroupName. alarm-viewers. they are stuck with specified tags to display and control their real-time values provided by I/O driver server in runtime. If there is no I/O driver component in network. The structure of this XML file can be briefly described as follow. read_tag_value and write_tag _value. there are three methods: set_tag_data_base. If this component is not available. After finding addresses of these servers. Each of tags has its TagName and Address. these indicators can not be used. Next. The client interface of database component has methods: create_table. working mechanism of the new SCADA software is briefly explained below. Tag is the tag stuck to the object to display or control its value. Client uses method set_tag_name to provide tag for these components to make their services. The method get_objects in client interface of graphic library is used by client to get graphic indicators and control objects. Method get_object_control is used by client to get services from trend. because without tags. indicators and control objects are dragged and dropped to build plant picture. the design work will be stopped. They are used to provide the services of creating table. This activity calls the component loader to search for the availability of I/O driver server. Interfaces of server components. alarm and report component. Client uses method set_tag_data_base to declare tag collection. alarm or report components. the method get_servers_name provides a name array of their servers for component loader to load all of their servers before loading them. These services are described bellow. inserting record into table and selecting records from table respectively. Then. <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. there is another method alarm_limit. In the client interface of I/O driver. All tags in a group have the same UpdateRate to update fresh data for tag values. 7 shows services of server components through their interfaces. report-viewers or some of them. This step generates a XML tagconfig-file in the format defined as follow. and select_records. the component loader has to search for the availability of database component. In management interface of all server components. It gives component loader the name of the server component. these indicators can be used for design. alarm and report components. Based on the description in Fig. The runtime searches and load I/O driver component to create tag collection with all tags were configured in Tagconfig-file.

9 inherit all of the open characteristics from componentoriented technique. 6 of SCADA system and its implementation into large-scale network system in Fig. many clients can be served well by server components. the searching mechanism described in Fig. the problem of searching is solved. 5 takes long time to ping and search for addresses of server components in live hosts. This constructs a distributed computing system. It can be served by many OPC servers which are in the same computer with I/O driver or in many distinguished computers in a LAN. Runtimes execute these projects with the services of servers. With many computers in the network. The black lines show the interaction between clients and server components. Fig. All of server components are installed on different computers in network. Vietnam. Ho Chi Minh City University of Technology. After the first time. 6 is discussed with just two clients: one designer and one runtime. Fig. PC Access OPC server connects to a Siemens PLC S7-200. OPC . 8. CONCLUSION The architecture in Fig. I/O driver component plays a role as an OPC client. A component-oriented SCADA software designed by Enterprise Architect software (Sparx Systems. Inc. the SCADA system can work with many kinds of I/O devices of various vendors. The OPC technology gives it the openness of easy integrating with many kinds of I/O devices of various vendors. The inside of I/O driver component and the interaction of it with many OPC servers. each of servers is in separate computer in network.NET wrapper is used to make I/O driver component [10]. 9. Component-oriented technique gives the architecture the openness of easy replacing. All clients and server components can be installed and run in any computer in network with the regardless of distance. design pattern. but just at the first time the clients search for addresses of the servers in network. Design pattern gives the architecture the openness of flexible scale. 9. It is tested with three OPC servers: PC Access (Siemens). With the OPC technology. Fig. and upgrading software components. When implementing into distributed control system. 9 shows a large-scale SCADA network system. With SCADA software architecture in Fig. There are many designer and runtime client computers. The statuses of inputs and outputs of the PLCs can be monitored and controlled on three runtime computers as shown in Fig. Taking advantage of many processors in distributed compu- Fig. and OPC technology. What happens if all these components are in the same computer? The answer for this question is: each of components can use IP of the computer for its address and it follows the working mechanism of the architecture. 8 shows the inside of I/O driver component and the interaction of it with many OPC servers. So. These make the component-oriented SCADA system to be open with automation world. There is a question: will client computers slow or halt the system if there are many of them in network? The answer is positive. updating.NET technology described in section 5. RSlinx connects to a PLC Compactlogix and Kepware connects to an Omron PLC CQM1. . This makes the component-oriented SCADA system to be open with automation world.) and RSlinx (Rockwell Automation). A large-scale SCADA network system. The red lines show the interaction of I/O driver component with OPC servers in the system. and the use of . The architecture in Fig. we can upgrade or update the server components easily without caring about the significant increasing of software size.net are being tested in the laboratory of Automation and Control. The architecture also inherits strong points of distributed computing technology. IMPLEMENTATION For the openness and the standard of OPC technology. all addresses of servers are in repository of clients. more than two client modules can be used in network to give plant monitoring and control features for operators. ting system and remoting technique discussed in section 5. Australia) and coded in C#. 6. Designers are used to design projects. Kepware (Kepware.1146 Phan Duy Anh and Truong Dinh Chau 6. 7.

of EUROCON 2003. Zhang. 316. Lowy. May 30 to June 1. Vietnam in 2007..Component-based Design for SCADA Architecture 1147 REFERENCES Y. “The design of SCADA based on industrial ethernet. [2] J. pp. 2000. [13] B.” Proc. Wang and K. Degree and doing research on modern SCADA system in the laboratory of Automation & Control. [6] Wonderware. [5] Siemens. [18] I. of the Sixth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. 1.” Proc. of the Int. 2000. Currently. Component-based Software Testing with UML. of IEEE International Conference on Control and Automation. Crnkovi´c. Ho Chi Minh City University of Technology. Hamilton and R. 2003. Programming . Tan. 1995. p. GeniDAQ User’s Manual. D. 2005. [20] H. “Component-oriented modeling and design of hierarchical hybrid control system. 2005. 2004. [4] A. Vietnam. [3] B.” Proc. 2003. “Conceptual design for distributed real-time computer network architecture. [7] Advantech.CIT 11. E. Junior and C. [17] J. degrees in Automation and Control from Faculty of Engineering Cybernetics.S. R. vol.” Proc. Cao Thang Technical College. He is a lecturer and the deputy head of Department of Automatic Control. 2006. 2002. 2002. 1. Gross. . P. 2007. Truong Dinh Chau received his B. R. 2007.S.” Journal of Computing and Information Technology . “Component-based software engineering . Learning UML 2. Wiley. Gamma.” Proc. [11] K. Springer. Qian. [1] [16] J. Cheesman and J. Intouch HMI Concepts and Capabilities Guide. [9] J. Elements of Reusable Objectoriented Software. “Workflow principles applied to multi-solution analysis of dependable distributed systems. University of Haute-Alsace. Atlagic. Modern Industrial Automation Software Design. p. and V. Khai. 151-161. Design Patterns. Petersburg State Polytechnic University. Real-time Design Patterns Robust Scalable Architecture for Real-time Systems. France. Phan Duy Anh received his B. of the 12th Euromicro Conference on Parallel. and Ph. 2001 and 2005. Distributed and Network-Based Processing. “Web-based data monitoring and supervisory control.-G. 2007. degree in Automation and Control from Department of Automation and Control. Serizawa et al. His research interests are SCADA system. Wesley. [10] T. he is pursuing a M. 2006. 2005.D. Russia in 1999. Faculty of Electrical and Electronics Engineering. vol. 286. St. he is a visiting research professor at Modeling Intelligence Process Systems laboratory. O’Reilly. 2003. 2007.S. [15] Z. 290.new challenges in software development. Helm. Conference ISEE.” Proc. 319. [12] W. C# 3. O’Reilly. pp. p. Miles. 322-326. p.0. Vittorini. 2002. Vietnam. Douglass. M. p. C. N. Computer as a Tool. Guangzhou. Moscato. Component Oriented Programming.0 Design Patterns. Pereira. and J. Zhang and Y. pp. John Wiley & Sons. 648. China. [8] E.S. [14] F. O’Reilly. 125-130. “A supervisory tool for real-time industrial automation systems. respectively. WinCC v6 Getting Started Manual. Mazzocca. Bishop. His research interests are control system integration and real-time system software design and programming. Chau and N. The IEEE Region 8. Johnson. Ling and J. He is a lecturer of Faculty of Electronic & Computer Engineering.. Currently. UML Components. 2003. Vlissides. Wang and K. “Application development environment of an integrated SCADA system. 313. Addison-Wesley.. [19] L. real-time system software design and programming. 26-31.” Proc. Ho Chi Minh City University of Technology. Daniels. Yu. Inc. Addison-Wesley. a Simple Process for Specifying Component-Based Software. Ho Chi Minh City University of Technology. N. p. of IEEE PES Transmission and Distribution Conference.NET Components. of the 4th World Congress on Intelligent Control and Automation. pp.