TM5-4 Proceedings of the 2000 IEEE International Conference on Control Applications Anchorage, Alaska, USA ,, September 25-27, 2000 2:00 Mechatronic Objects encapsulation in IEC 1131-3 Norm M a r c e l l o Bonf~ a n d C e s a r e F a n t u z z i U n i v e r s i t y of F e r r a r a , v. S a r a g a t , 1, 44100 F e r r a r a - Italy. E-mail: {mbonfe, c f a n t u z z i } © i n g , u n i f e , i t Abstract overtake these problems ([2], [3], [4], [5]), trying to exploit its basic concepts (abstraction, encapsulation, inheritance), which showed effectiveness in increasing software modularity and reusability in many Personal Computer applications. This paper concerns with the definition and use of "mechatronic objects" for the design of complex manufacturing system as large machinery. In particular the programming languages and structures defined under the IEC 1131-3 norm are considered regarding the software encapsulation of the mechanical system. The paper reports about a real application example of the proposed concepts showing effectiveness of the object-oriented framework for industrial applications. A leading common theme between these works is the use of object-oriented methodology in system modeling and designing phase, that leads to a very powerful description of the physical devices in which the system can be split. Unfortunately, the description so obtained is hard to translate i~ a PLC-based environment, without introducing limitations or loss of powerness or without developing a specific intermediate tool between the high-level objects model and the low-level programming environment for the controlling device chosen. In fact, even if the objects model in itself is general and abstract, its implementation requires an adaptation to the PLC language characteristics, which change dramatically among different producers and, sometimes, from different series within a single producer. 1 Introduction. Large automated machines designed and developed for goods production are complex systems in which mechanical and electronic parts are often designed separately, even if they are structurally close connected. Moreover, the software developing tools for programmable controllers are very primitive, especially when compared to those designed for high level languages such as C or Java. As matter of fact, industry standards PLC (Programmable Logic Controllers) relies on low level programming languages such as Ladder Diagram and Instruction List [1] for control program implementation, with evident limits with respect to software structuring and modularization, not mentioning lack of parameterizable procedures. However, PLC users and developers had recently risen requests of standardized languages and tools to PLC manufacturers, so that International Electrotechnical Commission (IEC) organization, aiming to cope with this request, issued the IEC 1131-3 standard [6] that regards the main aspects of industrial controllers programming languages and structures. This international norm is going to be widely accepted from PLC producers, and it seems that in the next years it will be an establishment. This scenario leads to very inefficient developing cycle for manufacturing machineries, and often few components (e.g. mechanical, electrical and software parts) can be reused in subsequent projects, increasing overall machinery costs. This paper aims principally to explore how the languages and the structures of the cited norm can be exploited to develop industrial software object-oriented. Right before to discuss the main topic, we should discuss the Object-oriented philosophy has been recently introduced in the industrial field in order to 0-7803-6562-3/00510.00@2000 IEEE 598 or its resetting phase, and a state represented by the last value sensed. A DC motor, a transporting conveyor, even a simple button can also be described as objects. Nevertheless, the implementation of the control software needed to automate the system modeled is still a hard job, especially when considering a PLC-based application, typically non-object oriented. That kind of model is probably too much sophisticated for this environment. It would be more effective to consider only those objects (and within them only some aspects) strictly related to control aspects. Back to the sensor example, the programmable controller needs only to receive the value sensed as an input to perform a control algorithm. The designing approach to a complex machine controlled by a PLC should then be slightly different: more attention must be given to interactions between the electro-mechanical project and the control software project. The system must be split into physical-functional modules, even distributed onto several hierarchical levels, that can be considered as stand-alone components each performing a specific functionality in the productive process. For example, in a products packaging machine there can be a single product transport cell, a pick-up cell, and a box transport cell. Maybe a transport cell can be composed by two or more simple conveyors, moved by motors actuated as an incoming product is detected by a photo-cell. The conveyor-motorphoto-cell ensemble can then represent an object composed by mechanic and electronic parts (a mechatronic object) that works together to transport the products to the subsequent working cell. The control algorithm needed by the object should also be considered as part of it, like a method is encapsulated in a software object. Of course, this control 'method' remains almost independent by the rest of the control program and can be encapsulated in a software block. It is evident that as an identical conveyor is used in another machine, or in another part of the same machine, the control block defined can be reused. definition of a "mechatronic object" in industrial environment, that is treated in the next Section. Then Section 3 gives a quick survey on the main concepts defined in part 3 ("Programming Languages") of the IEC 1131 standard, that can be helpful for implementing a mechatronic object-oriented architecture. Subsequent section presents a practical application of the projecting methodology discussed with regards to a packaging machine. 2 D e f i n i t i o n of mechatronic object. When the object-oriented paradigm was introduced, in the first 80's, it changed dramatically the approach to software development. The main difference with traditional process of program construction was in shifting the focus point from algorithm to data structure. This means: "ask not first what the system does, but what it does it to" [7]. As the object-oriented approach was gaining space in software development field, its potential in modeling and abstracting physical complex systems attracted the attention of automation engineering specialists ([8], [9], [10]). However, some aspects peculiar of automated systems where difficult to describe without improving the capabilities of objects model, especially with regards to the operational features of the physical devices. A specific object-oriented technique for modeling real-time working systems, called OMT (Object Modeling Technique [11]), has been developed. The work of the engineering group behind this technique leaded to the formal description of an object-oriented language, called UML (Unified Modeling Language [12]), specific for expressing the constructs and relationships of complex physical architectures 1. A model obtained applying UML concepts to an automated machine will be a set of heterogeneous objects, some describing mechanical parts and some describing electronic parts. For example, a sensor (of any type) could be an object with an attribute related to the value sensed, methods related to its acquiring phase 3 Object-oriented technology under I E C l 1 3 1 - 3 n o r m languages 1 UML is intended to be a visual modeling language, programming language, despite its powerness in specifying and c o n s t r u c t i n g a software system. However, a tight m a p p i n g into an object-oriented prog r a m m i n g language can be done. n o t a visual The implementation aspects concerning control software for mechatronic objects described above, regard mainly the modularization and 599 encapsulation facilities that can be used in the programming tools. This is a typical weak point of the PLC systems, mainly beacuse the characteristics of the Ladder Diagram language which is by far the most used programming language. As people with different background get close to PLC programming, they perceived its characteristics as limitations, so has been introduced new languages (e.g. the assemblerlike Instruction List [1] language and the statetransition chart Grafcet [13]) and facilities to split large programs in smaller blocks and subroutines. Unfortunately, every company producer of programmable controllers followed a different road to improve its products, that resulted in a Babel of languages and software structures. In this confused situation, the request for standardization grew up from PLC users until it has been recognized by the international industrial community. So, in 1979, the IEC set up a task force with the objective of defining a norm that could, from one side, identify a common syntax for the several programming languages and, from the other side, fix a guideline for future application of highlevel software developing concepts in the PLC scenario. The result of the IEC 65B/WGT/TF3 work is the IEC 1131 Standard, published in 19932. Let's focus on part 3 of this norm, the one devoted to 'Programming Languages', and its two cardinal concepts: • the definition of four different programming languages and a graphic formalism for structuring the internal organization of software blocks; and Graphical languages are instead: L a d d e r Dia g r a m (LD), based on most known PLC programming logic, suitable for managing directly the boolean inputs and outputs coming from sensors and going to physical actuators; Funct i o n B l o c k D i a g r a m ( F B D ) , a powerful formalism for describing signal and data connections between function blocks, that are software elements, as will be better described later, basic for encapsulation and reuse of code segments. Another graphical syntax is described in the definition of Sequential Function Chart (SFC), a state-transition diagram derived from Grafcet [13], very expressive for describing, in a readable and intuitive way, sequential behavior of complex systems. Even if many people consider SFC as an effective programming language and several programming tools are equipped with a SFC editor, it cannot be considered as a full language, because some of its parts (actions and transitions) require an internal implementation with instructions from other languages. Another innovative concept proposed in the IEC standard regards the structure of a control application. As said above, a software model has been defined for this purpose. The IEC software model allows the decomposition of the application into functional components that are defined 'Program Organization Units' (POUs). The description of the three types of POUs is the following: Program: it is the larger container of all programming elements and constructs necessary for the control of a machine or a process. Each of the software elements composing a program can be programmed in any IEC languages and will be an instance of the following POUs; • the definition of the software model of a control application. The programming languages described in IEC 1131-3 can be divided in two families: textual and graphical. Textual languages are: Ins t r u c t i o n List (IL), a low-level (similar to assembler) language that, because of its 1:1 relation to machine code, is suitable for generating optimized code; S t r u c t u r e d T e x t (ST), a high-level language, with some resemblance to PASCAL, suitable for complex computations on numerical data or any other operation hard to describe with a low-level language. Function Block: it is a software element defined by two parts: (i) a d a t a set, which describes the input/output parameters that permit connections to the other POUs (its external interface) and internal variables that can maintain their value between two subsequent executions (this allows storing the state of function block elaboration); (ii) an a l g o r i t h m , which is the code executed every time the function block is called and perform elaboration on the data set described above. ~a proposal for a revision came during 1999. 600 As said, a Function Block can be programmed in any of the five IEC languages, also using calls to other Function Blocks, t h a t results in a strong hierarchical decomposition. the entire program. Another important aspect of implementing a machine control program under IEC 1131-3 software model is related to its nested architecture, that suggests a top-down approach to the designing phase. In practice, the system is decomposed step by step until elemental devices are recognized. For a manufacturing machine these steps could be determined by the following decomposition levels: Function: it is a software element that differs from Function Block only in the lack of permanent internal variables (so that it can't maintain an internal state) and in having a single output parameter. (i) Cell: this level corresponds to a work-cell in which, for example, raw materials are processed or transported by a belt system between two neighboring work-cell. The parametric definition of POUs, in particular Function Blocks, is the major point indicated in the IEC norm for software reuse. For example, a program may contain several instances of a specific Function Block (FB), each one independent from the others because it is executed upon different variables and its internal data is allocated in a reserved memory area. Furthermore, the same FB can be used in several different programs, reducing time spent on rewriting code tested for a preceding project. This means that a growing library of userdefined software blocks can be constructed as programs end their 'on-the-field' test phase and show effectiveness. Another notable aspect of the IEC 1131-3 definition of POUs, related to hierarchical decomposition, is that FB parameters may even be other FB or Functions. This means that some functionalities of an FB internal algorithm can be associated to generic FBs, which will be specified only when an instance of that FB is called. This mechanism resemble the "genericity" concept of object-oriented programming languages [7]. (ii) U n i t : it is a subset of devices in a cell which are related to a particular function. For example, considering a filling system for a can machine, the set of devices (actuators and sensors) used by the filling control. (iii) D e v i c e : the b o t t o m level corresponding to "atomic" devices, provided directly "offthe-shelf" by manufacturers, even if composed themselves by mechatronic components (e.g. pneumatic actuators with embedded endstroke sensors). Once determined the definition of the nested mechatronic components, the external interface of the FBs related to control their functioning is fixed by the input and o u t p u t signals coming from machine parts. The FBs internal algorithm is then programmed, that could be done with the help of a user-defined library of FBs related to standard machine components defined in previous projects. This means that the designing and programming process for control application results in a combination of a t o p down and a b o t t o m - u p approach. The first one is more oriented to the complexity management of the high-level point of view of the project, while the second is better suited to deal with the low-level implementing phase, making easier the maintainability and reuse of the modules. Figure 1 shows the projecting steps on the left and their results on the right. Vertical arrows should be followed according to the top-down or b o t t o m - u p approach chosen. It is evident that the software component appointed to implement the mechatronic objects model of Section 2 is identifiable in the Function Block (FB). This one is in fact the structure that can encapsulate the functional description of the behavior of a physical object. Its data section permits to keep memory of preceding executions, so the operative state of the object is well identifiable. Input and o u t p u t parameters can represent signals (from sensors and to actuators) needed by the algorithm of the FB to control the object it is related to and, as said above, is part of. Furthermore, input and output parameters are also the interface of the object with the rest of the program. This means that they can be used to represent interlocks and relationships with the rest of the machine, that is, from a control point of view, 4 A practical example The projecting methodology discussed in previous sections can be applied to any automated 601 Physical-functional Modularizatlon I Phase ........ I I Control Software Phase [ ~Re°dyl KSI t N FunctionBlocks - Reody:= false St_Mot'.= false i q Ok_S _ oko Ready[i...... .ot i_ F OK_SANDNot[OK_DELl-~- NoIIOK_S) Ready Start F i g u r e 3: Sequential Function Chart of the "conveyor" Function Block internal behavior. F i g u r e 1: The projecting methodology oriented to mechatronic objects. motors. The central conveyor differs only in that it shifts products under a metal detector, needed to reveal faults 3 , while the last conveyor differs in that it is controlled by an inverter, so that the device can signals when the motor moves at the operative speed, condition necessary to start the first conveyor. This physicalfunctional decomposition leads to the definition of an elementary class of objects related to a conveyor type. This object type is composed by the physical metal conveyor and its motor, together with the driving electronics needed by the motor. With regards to controlling aspects of the 'conveyor' type, it is obvious that it will result in a FB definition, with an external interface of input variables, that correspond to a "get ready" and a "go" commands, and output variables, that correspond to actuating commands going to motor driver. The control algorithm encapsulated in the 'conveyor' FB can be expressed in any of IEC 1131 languages and, of course, it will be easy to develop than the entire control program, because of the small number of input and output variables. In this paper, a Sequential Function Chart description has been chosen, essentially because of its effectiveness in describing sequential behavior. The SFC diagram is fully described in Figure 3. ._..,, | ...... Cony r '-~ Not[OK_S) MovLL~ N St Mot:=true Start Software Modules Library programrnlng Phase Readyi= true -'--~OK_SANDOK_DEL Interface $ , N Objects l $ Stucturlng -~t~ Mechatronic i Boxes transportingcell I F i g u r e 2: Schematic layout of the packaging machine considered. machine. The packaging machine briefly described in Section 2 can be an effective example, so its detailed analysis is given in the following. The system described in Figure 2 can be decomposed in four main cells. The first cell receives products and delivers them to the following manipulations, so it is mainly composed by transporting conveyors. The s e c o n d cell is also a transporting system, but its purpose is to put products, falling down from the preceding conveyors cell, into individual carriers, so they can be easily placed to compose a matrix that can be picked by the robot in the following cell. In the r o b o t cell products are picked up from their individual carrier and placed in boxes. In the l a s t cell, boxes filled with well ordered products can proceed to their final destination: customer. Next step of the control application construction consists in describing the entire cell behavior, that will be done declaring and using instances of different FBs, either user-defined or defined in the IEC standard. In this example, three instances of the FB described above and As can be seen, the decomposition done at a machine level can be done also at a cell level, so the transporting cell results in the combination of three conveyors, powered by identical athe discarding system is not considered. 602 | Launch_Cony r--ioa8 [1] R. Lewis, Programming industrial control systems using IEC 1131-3. The Institute of Electrical Engineers, revised ed., 1998. R...yl-- I ~ _ ~ ~ - ~ • NO Emerg -- TRUE References / Detect_Cony ~:-sDel I S~M::-- I J. . . . [ $tarlM2 [2] O. Duran and A. Batocchio, "A highlevel object-oriented programmable controller programming interface," in ISlE '94 (I. E. S. IEEE, ed.), pp. 226-230, 1994. i [3] F. Bonfatti, P. Monari, and G. Gadda, "Bridging structural and software design of PLC-based system families," in ICECCS '95 (IEEE, ed.), pp. 377-384, 1995. " LOAD CONV [4] K. Williams, "Using object oriented analysis and design in a non-object oriented environment experience report," in International Conference on Sofware Maintenance, pp. 109114, 1995. Ok_l:~ SLM~| [5] C. Maffezzoni, L. Ferrarini, and E. Caxpanzano, "Object-oriented models for advanced automation engineering," Control Engineering Practice, vol. 7, no. 8, pp. 957-968, 1999. F i g u r e 4: Internal implementation of the "transporting_cell" Function Block (with Function Block Diagram). [6] I. 1131-3, "Programmable controllers part 3: Programming languages," 1993. an on-delay timer FB [6] are used. The timer delays the start of the first conveyor, so the operative speed of the two following conveyors is assured before products are forwarded. The connections between "conveyor" FB instances, related to the three conveyors that compose the transporting cell, and the timer is better described with a Punction Block Diagram, shown in Figure 4. [7] B. Meyer, Object-oriented software construction. Prentice-Hall, 1997. [8] R.. Joannis and M. Krieger, "Object oriented approach to the specification of manufactuirng system," Computer-Integrated Manufacturing System, vol. 5, no. 2, pp. 27-35, 1992. [9] B. Abou-Haider, E. Fernandez, and T. Horton, "An object-oriented methodology for the design of control software for flexible manufacturing systems," in 2nd Workshop on Parallel and Distributed Real-Time Systems, pp. 144-149, 1994. 5 Conclusion This paper has treated the implementation of the "object-oriented" technology for industrial automation environment. In particular, have been discussed those aspects that are strictly related to the peculiar characteristics of the software for industrial automation, like the necessity of combining together mechanical and electrical devices, leading to "mechatronic" components, and some characteristics of the industry standard IEC 1131 norm permitting the implementation of object-oriented technology. In particular we focused to the use of FBs that permits module encapsulation and reuse complying to object-oriented methodology. The paper ends with a simple, real example showing the effectiveness of the concepts here treated. [10] M. Andersson, Object-oriented modeling and simulation of hybrid systems. PhD thesis, Department of Automatic Control, Lund Institute of Technology, 1994. [11] J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen, Object-Oriented Modeling and Design. Prentice-Hall, 1991. [12] B. Douglass, Real-Time UML, developing efficient objects for embedded systems. Addison Wesley Longman, 1999. [13] R. David and H. Alia, Petri Nets and Grafcet: Tools for modelling discrete events systems. Prentice-Hall, 1992. 603
© Copyright 2024