0 évaluation0% ont trouvé ce document utile (0 vote)
502 vues5 pages
This paper at the Industrial Simulation Conference in Budapest 2010 introduces the novel simulation system Simio, and outlines how it incorporates the benefits of 3D modeling and object-orientation.
This paper at the Industrial Simulation Conference in Budapest 2010 introduces the novel simulation system Simio, and outlines how it incorporates the benefits of 3D modeling and object-orientation.
Droits d'auteur :
Attribution Non-Commercial (BY-NC)
Formats disponibles
Téléchargez comme PDF, TXT ou lisez en ligne sur Scribd
This paper at the Industrial Simulation Conference in Budapest 2010 introduces the novel simulation system Simio, and outlines how it incorporates the benefits of 3D modeling and object-orientation.
Droits d'auteur :
Attribution Non-Commercial (BY-NC)
Formats disponibles
Téléchargez comme PDF, TXT ou lisez en ligne sur Scribd
University of Osnabrueck email: Patrick.Kirchhof@uos.de, Nicolas.Meseth@uos.de
KEYWORDS lack of extensibility (Joines and Roberts 1999; p. 133).
Simio, Object-oriented, Manufacturing Object-oriented modeling constitutes a compelling alter- ABSTRACT native, because it is well suited for simulation and in- troduces many benefits. Although today many vendors While object orientation has long become a standard in of industrial simulation software claim their system pro- software development, it has not been fully embraced in vides object-oriented modeling capabilities, this is only simulation modeling. There are many simulation frame- partly correct. No product known to the authors fully works which offer object oriented modeling based on a supports an entirely graphical and object-oriented mod- programming language but no sophisticated graphical eling approach without the need for programming. Most tool. This paper describes Simio, a new simulation soft- of today’s tools contain a set of generic objects that can ware, which simplifies model building by fully integrat- be used for model composition. The modeler can cus- ing an object-oriented modeling approach. Simulation tomize these base objects and enhance their function- models are built from objects, which are stored in ob- ality by developing code in a programming language. ject libraries and can be reused in multiple projects. Thus, the use of these tools is very limited unless the Models themselves can be instantiated as objects in user is capable of programming in the supported lan- other models. A comprehensive set of standard ob- guage. Well known examples are Extend, which uses jects is contained in Simio, while more refined ones a procedural language similar to C, or Anylogic, which can be developed completely graphically, and without integrates with Java (Edwin C. Valentin and Alexander the need for programming. Following the concept of Verbraeck 2007; p. 788). PlantSimulation (former em- object-orientation, objects are created through compo- Plant) uses SimTalk, a procedural language designed for sition of existing objects, sub-classing existing objects, programming simulation applications (Bangsow 2008; and overriding their behavior, or by building new objects p. 89). Another group of tools such as Simul8 can from scratch. This paper is to provide a comprehensive be used completely graphically without the necessity of overview of the Simio simulation software with a focus programming, but is limited to a fixed set of modeling on its underlying object-oriented paradigm. objects.
This paper’s intention is to give an overview of the
INTRODUCTION Simio1 simulation software, a new system which fully supports object-oriented modeling in a purely graphical Although the roots of object orientation can be traced manner without the need for programming2 . The most back to simulation (Dahl and Nygaard 1966), the interesting features are pointed out, and it is shown paradigm is not widely applied in today’s simulation how the modeler benefits from the underlying object- software (Robinson 2005; p. 624). In the field of sim- orientation. Therefore, the following section explains ulation of manufacturing systems process-orientation is how object-orientation is applied in Simio. Afterwards, the predominant modeling paradigm of commercial sim- three different ways to extend Simio’s functionality are ulation systems. Tools such as Rockwell Arena or En- described. The paper concludes with a summary of the terprise Dynamics are well known examples belonging most important aspects of the object-oriented modeling to this category. Process-oriented modeling is consid- approach and its implications for the modeler. ered intuitive and effective in practice, but there are also drawbacks. Modularity and reusability are limited and maintenance is difficult due to the dependencies within a model. Minor changes to the simulated system can prove to be very difficult to implement because changes 1 Simio TM is a commercial product of Simio LLC. have to be made at many different places in the sim- 2 The term programming in this work is defined as typing code ulation model (Edwin C. Valentin and Alexander Ver- in a programming language such as C# or Java. Creating a pro- braeck 2005; p. 655). Others argue that the greatest gram by clicking and arranging symbols is not considered pro- limitation of the procedural modeling paradigm is the gramming in this context. OBJECT ORIENTATION IN SIMIO ing the event-listener pattern and can evaluate events fired by other objects. This is useful to control the in- Simio Object Paradigm teraction between objects. Building models in Simio is done using the graphical In Simio, simulation models are built through the com- modeling interface, which divides an object (or model) position of objects and the definition of their behav- into seven different views. While in the facility win- ior and interaction. Objects of any complexity can be dow the user composes the model from existing objects, stored and categorized in libraries. A set of objects with he can specify the resulting object’s appearance in the basic functionality is contained in the standard library external window. In the process, data, and interface included in Simio. It comes with a pre-defined set of window, the user defines the object’s behavior. More- basic objects, which includes a source, sink, server, com- over, the dashboard and results window allow the user biner, separator, as well as different types of links. These to watch the model’s response during the simulation basic building blocks suffice to build simple models, but and define and analyze corresponding simulation exper- in most real life cases they must be extended. iments. Custom objects are stored in user defined libraries, It should be noted that no programming is required and which can be shared and reused across multiple projects. that the skills needed to build custom objects via inher- According to the equivalence principle there is no differ- itance are purely modeling skills and not programming ence between an object and a model. Every model is by skills (C. Dennis Pegden 2008; p. 231). Object libraries definition also an object and can thus be instantiated in Simio and template libraries share the same idea of into another model (C. Dennis Pegden 2008; p. 230). user-defined libraries, but differ with regard to the mod- This is highly efficient because every model can be hi- eling paradigm they are designed for. How objects can erarchically used as a building block in a higher level of be defined and customized is explained in greater detail models. below. It is important to note the difference between object li- braries and libraries of process templates known from Object Types other commercial process-oriented tools such as Arena. Template libraries in process-oriented simulation tools Any object in Simio is a subclass of either one of the contain templates and not objects. Templates are hier- types displayed in figure 1. These classes provide basic archically constructed from basic building blocks, which functionality, which serves as a starting point for the are a graphical representation of a piece of functionality development of more refined objects. They only define in a process-oriented simulation language. A typical ex- generic behavior to provide a very general basis for mod- ample would be a template for a complex workstation, eling individual object definitions. Objects in the stan- which is made of several building blocks such as resource, dard library are also descendants of one of these basic queue, delay etc. Therefore templates are not more than types. the logical organization of elementary constructs of the underlying simulation or general purpose programming language into a more abstract logical construct, gener- ally combined with a visual parametrization interface. In contrast, objects in Simio are true objects, which in- herit attributes and behavior from their parent classes, allow their behavior to be modified (overridden) and ex- tended, encapsulate their internal structure, and know abstraction and polymorphism. Objects own process definitions that specify their behavior and can be viewed as the equivalent of a method in object-oriented pro- gramming. Process definitions are built fully graphical from a comprehensive set of modeling elements called steps. The processes of any standard library object are also modeled using steps and can therefore be viewed and edited. Objects and therefore models can have properties and states. A property can be thought of as a named param- eter of an object instance and is usually constant dur- Figure 1: Class diagram showing the basic object types ing a simulation run. States are output responses that contained in Simio. change throughout the execution of the object logic. An object can define its own set of events and use those Every object is derived from the Intelligent Object class. events to trigger processes. Objects are designed follow- Intelligent Objects have the optional ability to be seized, released or follow a schedule. They are abstract and used in a wide variety of application areas (C. Dennis cannot be instantiated. Pegden 2008; p. 233). Domain specific extensions to Fixed objects have a fixed location and are used to generic simulation packages provide a modeling aid in a model stationary things in a system like machines in a certain domain and most vendors offer specialized mod- manufacturing system, a plant in a supply chain model eling constructs (Edwin C. Valentin and Alexander Ver- or a counter in an airport. braeck 2005; p. 654). Simio does not include domain Objects of the Agent class are intended for agent-based specific extensions, but it is easy to develop and share modeling approaches in which a large number of in- custom objects and libraries. Thus, domain specific li- dependently acting agents form the system’s behavior. braries can be created from user defined objects and Agents can move freely through continuous space with- distributed as a project file. out the need of a specified network of paths. They can The past section has given an overview of how the detect other objects and react to their actions. In the object-paradigm is applied in Simio. As stated earlier, current version of Simio, Agents are not yet fully func- in most scenarios the standard library’s objects are not tional and cannot be used. sufficient. Simio offers a number of ways in which it’s Entity objects are derived from the Agent type and rep- functionality can be enhanced and they are subject of resent non-stationary objects that have the ability to the next section. move along specified paths and nodes. Paths and nodes can be grouped into networks in order to limit the scope EXTENSIBILITY of Entities. They can enter and exit other stationary ob- ject types (Fixed, Node, Link ) and can be transported. The extensibility of a simulation tool is a critical factor The Transporter class is derived from the Entity class for its acceptance in practice. Simio offers three general and can therefore also move along a specified network. ways to implement functionality that is not provided Transporters add the capability to load, carry, and un- by the standard library. The following sections describe load other objects. By default they follow the shortest those three ways and give examples for each. path to their destination but other modes of behavior such as following a fixed route are also regarded. Creating Custom Objects Node objects are derived from the Fixed object class and are intended to represent vertices in a network, i.e. the For simple models with little specific logic, the stan- starting or ending point of a Link object, or the entry or dard library described above is a good start. By nature, exit points of a Fixed object. At a Node, Entity objects though, simulation models tend to require very specific may be loaded or unloaded by a Transporter. Nodes can and sometimes complex logic to model real world situ- be equipped with a crossing logic which can be executed ations. Simio offers a simple way to extend the library when being visited. without having to write a line of code. Links represent the edges in a network. Links have a Consider for example the server object from the stan- length and can be split into sections for their graphical dard library. It has a set of two nodes, one input and representation. Each Link must have a starting and an one output node, both having their own queue. Imagine ending point defined by Node objects. this server should have a second output node, because it should serve two types of customers (entities) sepa- Projects and Object Libraries rately, and each type should leave the server through a separate exit. The steps required to implement this are In Simio, simulation models are part of a Project, which straightforward and do not demand any programming is saved in a project file and contains all the elements skills. of the model. A project comprises at least one model. The starting point for creating the new server model By distributing a single project file, an entire simulation MyServer is the server object from the standard library. project can be shared between users. By dragging it to the project library, a new object class Objects modeled in Simio can be reused in other is created as subclass of the server. Subclassing has projects by loading the respective object into a differ- the benefit that all parts of the parent class are auto- ent project as a library. The models contained in the matically inherited. Those include all states, properties, loaded project file appear as a user defined library be- elements, and processes, and only the extended func- low the standard library and can be used for modeling tionality must be added. alike. Like models of the standard library they can also To add the second node and to make it visible to the be extended and sub-classed. Models can be password user, it must be added to the object’s external view. protected so that they can be parameterized, used, and This can be done by selecting a node from the ribbon bar distributed, but their inner working is hidden and can- and placing it wherever it should appear. Preferably, it not be changed. should be next to the existing output node. After adding Both, the basic objects and the objects in the standard a new node to the external view it must be connected library described above are domain neutral and can be to the object’s internal logic. so called elements. Elements are static parts that have Simio offers a powerful application programming inter- a certain, in most cases general, functionality that they face (API), which allows flexibility that goes beyond cre- provide the object with. The station element, for exam- ating custom objects. ple, represents a physical place where entities can reside. The server from the standard library has three station Customs Elements and Steps elements to represent the different places an entity can be within the server. The first station is used to model The first way to programmatically extend Simio is to the input buffer where all arriving entities wait to be create custom elements and steps. Simio ships with a processed. The second contains an entity for the time it class library that contains interfaces which can be im- is processed. After the entity is finished processing, it plemented to define a new element or step. Because enters the output station, which represents the server’s Simio and its API are based on the .NET framework, output buffer. If the new output node should have its steps and elements can be programmed in any .NET own output buffer, a new station in the process view language. Therefore, Simio is not platform independent must be added and connected to the output node. and can only be used under Windows systems. Connecting a station to a node in this context means adding the right steps that send (transfer) an entity from Elements the station to the node. The right place to add this step To define a custom element one must implement the in case of the server object is the OnEnteredProcessing IElement interface. It specifies a single method process. This process takes care of an entity that was Initialize(), which is called at the beginning of a sent to the processing station and makes it wait in a simulation run. Here the programmer specifies what delay step until the processing time has elapsed. Af- the element does, and has access to the simulation con- terwards, the process transfers the entity to the output text via an object which is passed in the method as an station. Now that MyServer has two output stations, argument. One possible application would be to sched- the process must be enhanced to decide to which sta- ule events in the event calendar before the simulation tion to send an entity based on some criteria (e.g. the begins. value of an entity’s state). This can be done by drag- Elements can be viewed as complex objects that belong ging in a decide step from the library and setting the to a model. Therby elements can fulfill very different condition accordingly. The second branch of the decide functionality. The station element, for example, is a step must now be equipped with a transfer step to send place where entities can sit within a model, and therefore the entity to the alternative station. represents a physical location. In contrast, the file ele- Finally, when the entity enters the new station, it ment enables an object to read data from a file, and thus should immediately be sent to the external output node represents a connector to the outside world of Simio. through which it leaves the object (if the node has suf- Connectors to different data sources are good examples ficient capacity left; otherwise the entity waits in the for custom elements. To enable the model to query data station until the node’s capacity becomes available). from a SQL Server database, the user could implement Therefore, a process that is triggered whenever an en- a new element and make the connection string config- tity enters the station must be created. Because the urable as a property of the element. steps are the same as for the first output buffer, one can simply copy the OnEnteredOutputBuffer process and re- Steps name it. Elements are most useful when combined with accord- To subsume, the necessary steps to extend the server ing steps that in some way reference the element. To to distinguish two types of entities are the following, of create a new step, the user must implement the IStep which cam all be done graphically: interface and put the desired functionality in its only method Execute(). The method is run when the step 1. Create a model MyServer subclassing the server is executed as part of a process. To continue the exam- model (drag & drop) ple of the SQL server connector, a useful step would be 2. Add a node in the external window (drag & drop) one that executes a SQL query statement against the connection specified by the connector element. 3. Add a station in the process window (drag & drop) The possibility to define new elements and steps is very powerful. It enables the modeler not only to extend 4. Add decide and transfer step to OnEnteredProcess- Simio within the tool itself, but to implement logic that ing (drag & drop) interacts with the outside world. A database connec- 5. Create new process OnEnteredOutputBuffer2 and tor is a good example. Other useful elements could be add transfer step (drag & drop) ones that query web-services on the internet or retrieve data from a structured file format such as XML. It is This simple example was to show how the user can also possible to implement standardized connectors for extend Simio without any programming. Nonetheless, widely used ERP and PPS systems, such as SAP or Mi- crosoft Dynamics NAV. fits of the object-oriented paradigm in an entirely graph- ical manner. Most importantly, Simio allows the mod- Design Add-Ins eler to easily create custom objects to meet highly spe- cific requirements with no need for programming, tak- The second way Simio offers to extend the software pro- ing advantage of inheritance. Nonetheless, the option gramatically is by writing design add-ins. An add-in to extend Simio programmatically is also available and is a compiled .NET library (.dll). Add-in libraries are twofold: custom steps and elements (the atomic units of automatically displayed in the ribbon menu when they functionality) as well as so called design add-ins (appli- are put in the designated folder, and can be activated cation plug-ins with full access to the software) release by clicking on the corresponding icon. For Simio to rec- the modeler of any restrictions of what can be modeled. ognize a valid design add-in, the class must implement Within in the scope of this paper, the author’s tried to the provided interface IDesignAddIn. A design add-in give an overview of the benefits that derive from true has a name, description, and a custom icon property, all object-orientation in a simulation tool; possible draw- of which are set by the programmer. More important, backs such as a potential loss of performance, were not though, is the interface’s sole method Execute(); this commented on. As Simio is a very novel tool, further is the method that is invoked when the user activates investigations must be made to fully evaluate the tool the add-in from the Simio software menu. with more aspects regarded. Within this method, the programmer has access to the currently open facility window and its model through REFERENCES the API provided by the Simio software. The program- mer is offered methods to add objects to the model and Bangsow S., 2008. Fertigungssimulationen mit Plant place them by specifying their coordinates, delete ob- Simulation und SimTalk: Anwendung und Program- jects from the model, and to set the model’s properties. mierung mit Beispielen und Lösungen. Hanser, Thus, one has the same possibilities as a modeler who München. ISBN 9783446414907. creates a model using the Simio GUI. The option to create models programmatically makes C. Dennis Pegden, 2008. Introduction to Simio. In it possible to dynamically generate models from exter- S.J. Mason (Ed.), 2008 Winter Simuation Confer- nal data sources. The data-driven simulation approach, ence: Miami, Florida, USA, December 7 - 10, 2008. where information about objects in the model is re- IEEE, Piscataway, NJ. ISBN 978-1-4244-2708-6, 229– trieved from different applications that already host this 235. information, can thus be implemented with Simio. A Dahl O.J. and Nygaard K., 1966. SIMULA - an good example is to automatically read the bill of mate- ALGOL-Based Simulation Language. Communica- rials from an ERP system instead of inserting it manu- tions of the ACM, 9, no. 9, 671–678. ally. Another application for custom design add-ins is to load Edwin C. Valentin and Alexander Verbraeck, 2005. Re- models stored in a different file format. For this purpose, quirements for domain specific discrete event simula- the add-in fulfills the task of translating the foreign for- tion environments. In M.E. Kuhl (Ed.), Proceedings mat into a Simio model. This way, models from other of the 2005 Winter Simulation Conference: Orlando, simulation tools such as Arena could be transformed into Florida, USA, December 4 - 7, 2005. IEEE, Orlando, a Simio model automatically. For companies using other Fl. ISBN 0-7803-9520-4, 654–663. tools, who would like to migrate to Simio, but do not want to re-implement their existing models, this could Edwin C. Valentin and Alexander Verbraeck, 2007. Do- be an option. main specific model constructs in commercial simu- As described in this section, Simio offers three different lation environments. In S.G. Henderson (Ed.), Pro- levels to achieve extensibility. Thereby, creating custom ceedings of the 2007 Winter Simulation Conference: library objects is even possible for non-programmers. Washington, DC, USA, December 9 - 12, 2007,. This is an enhancement that could widen the range of IEEE, New York, NY. ISBN 1-424-41306-0, 785–792. users that can successfully apply simulation. In most Joines J.A. and Roberts S.D., 1999. Simulation in an cases, the driver of a simulation study is one who un- object-oriented world. In P.A. Farrington; H.B. Nem- derstands the business processes, but is not familiar with bhard; D.T. Sturrock; and G.W. Evans (Eds.), Pro- programming. Simio has the potential to close this gap. ceedings of the 1999 Winter Simulation Conference. Winter Simulation Conference. CONCLUSION Robinson S., 2005. Discrete-event simulation: from the This paper has introduced the new object-oriented sim- pioneers to the present, what next? Journal of the ulation software Simio. Simio is the first truly object- Operational Research Society, 56, no. 6, 619–629. oriented simulation software, which embraces all bene-