Real-Time Software Framework for Distributed Control Systems
Full text
(2) IJLKMONQP
(3) RSUT VXW YZ\[^]`_badcUe f9g h$i&jk. @+&AB CD64;KEB/JFHGIHJ4?;. O M% %G#HN6P>JHG L B/FJHG54#67JH4;* Q#. . /-01&"2 3+54#67* 86>9 #"2 : + $4?;7=<. lnmLopqrsutwvyxz.{G|~} u ( yLB(. $ # &'! #" # #% ## +(,)%-* $ % # &'! #". ) *+,.- /1023 465798:<; =>@?BA(C DEGFH.
(4) ! "$#&%(' L ¡ ¢¤£¥§¦©¨dª¬« ¯®U° ±¤²Q³@´`µ(¶ ·¹¸(º¼»¾½L¿À¤ÁQ ÃÅÄÇÆ\ÈÊÉË ÌÍ@Î`Ï(Ð. åçæ.è$éêëíìïîÚðñóò`ôõGö~÷óø¯ùûú. ÑÓÒ©ÔÕ§Ö¼Ò1× Ø ÔÚÙ1ÛÜÔÚÝÝ9Ö§ÛÜÔÞÙàßyÒÇáãâäÛÜÔ. üyÒÚýþÕ ÿ âÖ Ý Ø ÔÞÙ1ÛÜÔÚÝÝÖÛÜÔÞÙ ß ÒÇáãâäÛÜÔ.
(5) .
(6) !#" $ %'&)(+*-,/.10243 5768:9 ;=<?>A@ BC
(7) DFEHG I ØKJ ÝMLONÕbâOP©×¾Ý ß ÒÇáïâ ÛÜÔ. Figure 1: The Framework of design tools academic real-time software framework research efforts. Section 4 compares real-time software frameworks and forecast future of them. Section 5 summarizes and concludes.. 2. Real-time software framework. An effective real-time programming environment must facilitate sharing and reuse of program modules. It must assist the programmer both in structuring complex systems and in managing the system at run time. The framework must also provide services and tools to combine modules and build systems from reusable components. 2.1 Design tool of real-time software framework Design tool of real-time software framework addresses three domains in the development of distributed systems, as shown in Figure 1. Control engineering domain allows the designer to specify, analyze and simulate control system under development[5]. The framework includes tools to automatically translate the control engineering representation into a software engineering representation. In the software engineering representation, a number of optimizations can be performed on the system under development. Further tool, shown in Figure 1, translate the software engineering representation into source code that can be compiled into executable code[4]. 2.2 Architecture of a real-time software framework The real-time software framework is designed as a layer of components, on top of which real-time application and other libraries for more specific area can be built. The software parts of an application are defined as modules that hide their implementation details while providing their functionality through a simple interface.. Figure 2: Architecture of real-time software framework. With this architecture, the amount of application specific code can be kept small by using the framework and other libraries. Another advantage of this architecture is that all operating system dependent code is concentrated in a thin layer of the real-time software framework, which greatly facilitates porting the application to a new operating system[3, 6, 7, 8].. 3. Research and Development in real-time software framework. Several frameworks for control systems have been developed. Commercially available products are ControlShell and Rhapsody. They feature graphical editors for data flow and state diagrams, from which source code can generated. ControlShell is particular in that it dose not use client/server architecture for communication, but a dissemination system called NDDS. NEXUS is decentralized communication system with hierarchical error recovery for robustness. It was developed for mobile robotics but is generic enough for use in other control systems. PICARD is a software architecture and environment for rapid development of application control system using pre-compiled software components. 3.1 ControlShell - The tool for intelligent control ControlShell is the graphical programming tool for Intelligent Control. With ControlShell, we design and program complex control applications using reusable software components. we choose components from the component repository, hook them together on the graphical diagram, hit the build button, then download and run your program. ControlShell’s methodology and tools fit naturally into the processes teams already use to develop large, complex systems. ControlShell is the practical and powerful tool that gets complex control systems running quickly[9]. ControlShell combines graphical system-building.
(8) tools, an execution-time configuration manager, a realtime matrix package, and an object name service into an integrated development environment. It targets complex systems that require on-line reconfiguration and strategic control[2].. GH Ua/ I
(9) LgbJ h c d
(10) iej5 f PRM ST GU H I% J7*K
(11) I
(12) LDMTJNM OV QPW RM ST EX0D4F15476Y"%ZH0[15< \
(13) )74769]^) B_
(14) 476 ` ":]R4. 3.1.1 Motivation The goal of ControlShell is to create an environment that facilitates sharing and re-use of real-time program modules. This requires providing interface specifications and data transfer mechanisms. Real-time systems present following challenges not present in ordinary computing. • Real-time code is dependent on timing of both control and data flow. • The real-time execution environment is fundamentally multi-threaded. • Real-time systems must often switch between drastically different modes of operation. ControlShell is specifically designed to address these issues. ControlShell clearly defines temporal events, and provides mechanisms for attaching routines-or sets of routines-to those events. ControlShell also provides basic data structure specifications, and mechanisms for binding data and routines while resolving data dependencies. These two critical features make simple generic packages (known as components) possible[10]. ControlShell also address the other issues listed above. An capability of event-driven finite state machines provides an elegant means of weaving asynchronous events into a sequential execution stream. Radical mode changes are supported via a ”configuration manager” that permits quick reconfiguration of large numbers of active routines. 3.1.2 Structure ControlShell is an open system, with user-accessible interfaces at each level. ControlShell executes within VxWorks real-time operating system environment. Virtually all constructs in the system are built from simple routine-plus-data objects known as CSModules. Organizations of these modules, into Lists, Switches, Menus, and Finite State Machines (FSMs) form the core executable constructs. Several higher-level structures provide support for common real-time system needs[2]. A CSModule consists simply of an applicationdefined routine and a set of data objects. These are bound together at run-time via a simple creation function..
(15)
(16) ! "#%$'& (*),+-#/./0*12#31547698:(*; < =>4769?A@ B#/$C0D<,E0D4F154. Figure 3: ControlShell Structure 3.2 Rhapsody Rhapsody is a Unified Modeling Language (UML) compliant application development and collaboration platform used by software developers to deliver pervasive computing applications in C, C++, and Java[11]. By uniquely combining a UML graphical programming paradigm with the target implementation language, Rhapsody provides a complete development environment from analysis and design through implementation and test[12]. Rhapsody provides a collaborative application development platform giving team the ability to analyze, design, implement and test software in an iterative manner. With Rhapsody, legacy code can be reverse engineered and reused. System requirements can be analyzed with UML Use Cases, Sequence Diagram, Statecharts, Collaboration, and Active Diagram. Software architecture can be designed using the UML Object Model Diagram with packages, classes, and relations. Runtime artifacts can be described and documented using the UML Component Diagram. Behavior of software components can be described using Statecharts, Active Diagrams and the implementation language of choice, C, C++, or Java[13]. Real-time embedded, and internet infrastructure applications are currently being developed using Rhapsody with the UML standard. This is possible through Rhapsody’s unique enabling technologies[14]. • Concurrent Design Collaboration: Rhapsody provides a highly collaborative development platform, tailored for both small and large scale team-based development environments. • Visual Modeling: Executable and visual models provide the ability to analyze, design, and test our application as we build it, with no need to wait until integration. • Model/Code Associativity: The design model and the code are one and the same with Rhapsody. Rhapsody’s unique model/code associativity al-.
(17) lows designer to work at either the design-level or at the code-level, whichever designer prefer changing the model updates the code and changing the code updates the model.. 1C/ =
(18) 8Q
(19) BR8#=C 1C = -D2 $ .. e!fhg. < > -M. VijVbkZ]ln mV. 3.3 NEXUS - Open system for integrating robotic software NEXUS is a framework for integrating the software elements (routine, modules, etc) of a robotic system in a modular robust and efficient way. It based on the use of some modular and object-oriented programming techniques. It achieves a desirable decoupling between the programs designed for a given task and the software facilities required in most of the robotic systems, making the software less sensitive to changes than monolithic applications. Another important features of NEXUS are its distribution nature, its hierarchical error recovery system, and the real-time capabilities. NEXUS has been developed for mobile robot, but its design has been done generic enough for implementing other robotic system[15, 16, 17]. NEXUS is divided into two subsystems. The TaskDependent Subsystem contains the modules implemented for a particular application (task). For clearness in the system, they are grouped into sets of modules called Conceptual Units. Both modules and conceptual units may vary from one design to another. On the other hand, the Management Subsystem contains the managers needed for maintaining all the information about the modules and for supporting the communications. They are the fixed part of NEXUS[18]. The task-dependent subsystem can also be seen as a number of services suitable for performing different operation. The services are the components which define the functionality of the system. They are provided by the modules mentioned above. Every module can request a service from another module. NEXUS includes two managers: the ICM and the AIM. Both of them are running on every machine of the. @ P" CA.8# - 67B89 3. C 6A.8B. 1C = -D2 $ ..
(20) . o. • Iterative Development: Designer always has total code control with the ability to change the code generation parameters or the code itself. This iterative bi-directional approach to development ensures that design and code are always in sync.. . $F. )G. KO L9 34
(21) *NM S UT"VWXUYc [Z]\d ^Z]_a`& ,Z]_9 3b. • Executable Models: As the design and application mature, executable production quality code will be automatically generated and deployed on the host platform or the target hardware. • Real-Time Frameworks: With the push of a button Rhapsody’s real-time framework provides the connection between the application software and the target operating system.. E. H.I $J 7 ;83 9. T]_q aT"p,Z& ]lnZ]_3 9b e!f^ hg. Vij qV -bk rZ]lm nV. ! " #$. %, &'(. )*/ $)0 + $' 1 29 34: 5 6; 789 3 > < ? =). . $# -= -. Figure 4: NEXUS open system robotic system. The ICM is in charge of supervising the information flow between the different components of the robotic system. If the source and destination modules of an information package are not being executed on the same computer, the communication package is sent to the ICM of the destination machine, and once it is there, it goes directly to the suitable module. Also the ICM can log the messages flow for further study. 3.4 PICARD - Port Interface Component Architecture for Real-time system Design In order to facilitate the design of control systems and the maintenance of their related software, PICARD has been developed[19]. It is software architecture and environment for the rapid development of control systems such as CNC or robot controllers, which are traditionally implemented with programmable logic controllers (PLCs), digital signal processor (DSPs) and proprietary embedded controllers. The aim of PICARD is to make it easy to create efficient and reliable hard real-time software, using pre-bulit software components. Figure 5 shows the architecture of PICARD implementation. Taskblock is a basic software component in PICARD. It interacts with its outside through welldefined interface called port. Three port types are defined: input port, output port and configuration port. Input and output ports are used to transfer values between taskblocks. Configuration ports are used to set various operation parameters such as the number of axes of machine tools, gains of feedback controller, etc. A taskblock corresponds to a function block of IEC61131-3, or a PBO of Chimera. The properties of a taskblock and its port are described in a taskblock interface description file. It is parsed by the meta-code generator to create a metacode automatically. The meta-code is compiled and linked together with the code written by a taskblock.
(22) W+W+XMXMYl[Y[ZVZ\.4\4]V]^I ^ I_!_!:`V`amGaGX2MXMb!:b:!Z& Z &cdcd\Vi\iVeGeGKX2MXM_!:_:!`j `jf& f g$g$XkXkenhUeU_!:_:!c c. nected by a configuration script file. The configuration script can be written directly in a textual form or can be generated from visual editor. The script specifies the properties of tasks such as period and priority, and also specifies the values of configuration ports for each taskblock.. ?C?C## 4 4QRpQpRMTTMS>#S#> "77"*I*I
(23)
(24) TqqT##. %3 %3 UKKUo .o.
(25)
(26) ?C?C J## 4I I4QRQRMMS>S># ""7*I*I4
(27)
(28) TT##. 8484I,V,V
(29) UK
(30) KU%!! _:_:!rxrxtsyusuf &f& ^[^[e#e#amGaGXvXv]kw]wf f. )+)+* * ,.4,4.-0 5 -5 0/(%/%(1212%((%3%!3!%- 6 6 /%/%(""7*:*:!9;;98 8. F:F:%!!%KGGK 4 4%!!%1:1:=M=MLOPLON N <><>=@=@?B H?H CACEED D F:F:%!!KGG 4I I4!%%!1 1 BAJ. &
(31) '
(32) ( ""## $ $ !%%! & &
(33)
(34) . 4. z zzz |{ {. Figure 5: Architecture of PICARD programmer, and it provides information such as the names of ports, their data types, documentation, etc., to the configuration system. The configuration system provides this information to the system designer when he/she is designing a control system using an interactive editor, and the information is also used by the configuration system to validate design consistencies. A taskblock class is implemented as a C++ class inherited from a common base class, Because a taskblock is compiled independently from the main program of PICARD, the meta-code also provides a function to create an instances of the taskblock class. The taskblock library manages taskblock codes, and it provides methods to dynamically load taskblock codes, get a list of available taskblocks and create taskblock instances for given class names. One or more taskblocks are combined to create either a composite taskblock or a task. A composite taskblock is an encapsulation of one or more taskblocks, internal connections between them and import/export ports. A task is mapped to a process or a thread of the underlying operating system. Tasks are executed periodically and fixed priorities which are determined by rate monotonic scheduling policy (RMS) or deadline monotonic scheduling policy (DMS). Taskblocks contained in a task are executed sequentially in each period and the order of execution in determined by their topological order, as in IEC 611313 to minimize the latency from sensors to actuators. When there is a loop, it is resolved by inserting a delay taskblock. A delay taskblock is a special taskblock that is assumed to have no dependency between its input and output port when the execution order is determined. At run time a value presented at its input port is transferred to its output port in the next period. Tasks and taskblock are created, configured and con-. Comparison and Future prospect of real-time software frameworks. This paper compares four sorts of real-time software frameworks and shows result as a table. ControlShell and Rhapsody are commercial products of real-time software framework. Real-Time Innovations has developed a commercial version of ControlShell, originally developed at Stanford University. Rhapsody is software design and development solution which developed at I-Logix. NEXUS and PICARD are academic works of real-time software framework. NEXUS has been developed at University of Malaga, Spain and PICARD has been developed at Seoul National University. As table 1 shows, real-time software frameworks have been implemented for real-time operating systems. Most of them are trying to implement versions of the system for various real-time operating systems. They were written by language such as C, C++ or Java. There are many applications of real-time software framework in the distributed control systems. ControlShell customers are doing all sorts of automation and simulation projects. Many of these are in military/aerospace and high-end industrial automation. Their applications include robotics, process control, machine control, autonomous vehicles, flight software, hardware-in-the-loop simulation, medical equipment and real-time system simulation[20]. Real-time embedded, and internet infrastructure applications are currently being developed using Rhapsody with the UML standard. NEXUS has been designed as a complete basis on which to implement more sophisticated tools for the integration and implementation of complex control applications. In addition, NEXUS has been implemented and tested in our mobile robot RAM-2. RAM2 is an autonomous mobile robot designed and built at the University of Malaga for research applications in indoor environments. PICARD is a software architecture and environment for the rapid development of control systems such as CNC or robot controllers, which were traditionally implemented with programmable logic controllers (PLC), digital signal processors (DSPs) and proprietary embedded controllers. Real-time framework developers have been trying to implement versions of the system for various operating systems. Also, they want to provide more powerful vi-.
(35) Table 1: Comparison of real-time software framework Developer. Operating System. ControlShell Real Time Innovations VxWorks. Language Application. Rhapsody I-Logix. Autonomous vehicles, Hazardous environment robot, Semiconductor equipment telerobotic control. C, C++, Java Real-time embedded, and internet infra structure applications. NEXUS Univ. of Malaga Lynx OS, Window NT C, C++ Mobile robot. PICARD Seoul National Univ. QNX, Windows98/NT. C++, Java CNC, robot controller. sual tools for designing, programming, and debugging applications. Graphical user interfaces will permit programmers to display and manipulate the system configuration. This capability will improve programmer understanding and provide a powerful environment.. 5. Conclusion. This paper explained the real-time software framework for distributed control systems, and the architecture and the feature of real-time software framework are described. Based on the explanation of real-time software framework, this survey briefly introduced the commercial and the academic products of real-time software framework. In addition, this paper compared the developers, operating systems, languages and applications of real-time softwares. The future prospect of real-time software framework was mentioned. Real-time software framework will implement versions of the system for various operating systems and have more powerful visual tools for designing, programming, and debugging applications.. References [1] Mohamed Fayad, Douglas C. Schmidt, “Special Issue on Object-Orientation Application,” Communications of the ACM, vol. 40, no. 10. [2] Schneider S.A., Chen V.W., Pardo-Castellote G. , “ControlShell: component-based real-time programming,” Proceedings of Real-Time Technology and Applications Symposium, pp. 54–55, 1995. [3] A. Traub, R.D. Schraft, “An object-oriented Realtime Framework for distributed control systems,”. Proceedings of IEEE International Conference on Robotics and Automation, vol. 4, pp. 3115–3121, 1999. [4] Bass J.M., Browne A.R., Croll P.R., Fleming P.J., “ A prototype framework of tools for the design of real-time distributed control software,” International Conference on Control, vol. 2, pp. 922–927, 1994. [5] Department of Automatic Control and Systems Engineering, University of Sheffield, “The CACSD Research Pages,” . [6] M. Torngren and O. Redell, “A modelling framework to support the design and analysis of distributed real-time control systems,” Microprocessors and Microsystems, vol. 24, pp. 81–93, 2000. [7] L. Ferrarini, R. Tomasini, “An extensible modular tool for distributed control systems,” Proceedings of IEEE/IFAC Joint Symposium on ComputerAided Control System Design, pp. 219–224, 1994. [8] Schmidt, D. C, “ACE: an Object-Oriented Framework for Developing distributed Applications,” Proceeding of the 6th USENIX C++ Technical Conference, 199. [9] Real-Time Inovations Inc., “ControlShell: The Tool For Intelligent Control,” 2001. [10] Schneider S.A., Ullman M.A., Chen V.W., “ControlShell: a real-time software framework,” Proceedings of IEEE International Conference on Systems Engineering, pp. 129–134, 1991. [11] Object Management Group, Version 1.1,” doc, 1997.. “UML Summary,. [12] I-Logix, “UML Application Development Platform for Pervasive Computing,” 2001. [13] Eldad Palachi, “Developing Rhapsody with Rhapsody,” I-Logix. [14] Ran Rinat, “A Framework-Based Approach to Real-Time Development with UML,” I-Logix. [15] Fernandez J.A., Gonzalez J., “NEXUS: a flexible, efficient and robust framework for integrating software components of a robotic system,” Proceedings of IEEE International Conference on Robotics and Automation, vol. 1, pp. 524–529, 1998. [16] J. A. Fernandez, J. Gonzalez, “A Flexible Software System for Implementing Robots Control Architectures,” 3rd IFAC Symposium on Intelligent Autonomous Vehicles (IAV’98), 1998..
(36) [17] J. A. Fernandez, J. Gonzalez, “A framework for integrating the software components of a robotic vehicle,” IFAC Workshop on Intelligent Components for Vehicles (ICV’98), 1998. [18] Juan A. Fernandez and Javier Gonzalez, “The NEXUS open system for integrating robotic software,” Robotics and Computer-Integrated Manufacturing, vol. 15, pp. 431–440, 1999. [19] Yunho Jeon and Chong-Ho Choi, “Minimization of blocking time in component-based software architecture for control systems,” Control Engineering Practice, vol. 9, pp. 683–693, 2001. [20] Dave Lavery, “NASA Space Telerobotics Program,” NASA..
(37)
Related documents
The approach proposed in this article is also based on deep learning, but in contrast to those who treat saliency prediction as a regression problem, we reformulate the problem as
Our findings suggest that outpatient care for haemodi- alysis at a haemodialysis unit with superior human resources, such as a higher proportion of haemodialysis patient care
The East Africa Economic & Hi-Tech Crime Forum, Uganda, 2011 (the Forum), is an interactive conference focused on providing practical training as well as the opportunity
Fundamentally, these investment and cartelisation initiatives aimed to improve Chinese steel mills’ resource security by restructuring the Asia-Pacific iron ore market –
Nezaposlenost u Republici Hrvatskoj analizirana je prema geografskom položaju Republike Hrvatske, stupnju obrazovanja osoba i prema spolu i dobi osoba.. Većina korištenih
Dropping incoming connections agreement established in way handshake can containerization help in the received in the tcp socket connections by the buffer, a computer to establish
The security agency shall indemnify the outsourcing unit against all claims for death or injury caused to any security guards, whether on duty or not and the outsourcing
When the initial sample size is above ~30, multiple regression tends to have a lower false positive rate than unit or MPT weighting.. Figure 11: False Negative Rate for