| ING PARADIGMS | | | | execution and hold only the model state variables and |
| In the early days of discrete event simulation the | | | | a reference to their parent object instance. This is a |
| dominant modeling paradigm was the event orientation | | | | highly efficient structure that is crucial for large scale |
| implemented by tools such as Simscript (Markowitz, et | | | | applications such as agent-based models that can |
| .al 1962.) and GASP (Pritsker, 1967). In this modeling | | | | have many thousands of object realizations. |
| paradigm the system is viewed as a series of | | | | 7 THREE WAYS TO BUILD OBJECT DEFINITIONS |
| instantaneous events that change the state of the | | | | The previous example in which we defined a new |
| system. The modeler defines the events in the system | | | | object definition (work cell) by combining other objects |
| and models the state changes that take place when | | | | (machines and a robot) is one example of how we |
| those events occur. This approach to modeling is very | | | | can create object definitions in Simio. This type of |
| flexible and efficient, but is also a relatively abstract | | | | object is called a composed object because we |
| representation of the system. As a result many people | | | | create this object by combining two or more |
| found modeling using an event orientation to be difficult. | | | | component objects. This object building approach is |
| In the 80's the process orientation displaced the event | | | | fully hierarchical, i.e. a composed object can be used |
| orientation as the dominant approach to discrete event | | | | as a component object in building higher level objects. |
| simulation. In the process view we describe the | | | | This is only one way of building objects in Simio there |
| movement of passive entities through the system as a | | | | are two other important methods. |
| process flow. The process flow is described by a | | | | The most basic method for creating objects in Simio is |
| series of process steps (e.g. Seize, Delay, Release) | | | | by defining the logical processes that alter their state in |
| that model the state changes that take place in the | | | | response to events. For example, a machine object |
| system. This approach dates back to the 1960's with | | | | might be built by defining the processes that alter the |
| the introduction of GPSS (Gordon, 1960) and provided | | | | machine state as events occur such as part arrival, |
| a more natural way to describe the system. However | | | | tool breakdown, etc. This type of modeling is similar to |
| because of many practical issues with the original | | | | the process modeling done in traditional modeling |
| GPSS (e.g. an integer clock and slow execution) it did | | | | systems in use today such as Arena or GPSS. An |
| not become the dominant approach until improved | | | | object that is defined by describing its native |
| versions of GPSS (Henriksen, 76) along with newer | | | | processes is called a base object.A base object can |
| process languages such as SLAM( Pegden/Pritsker, | | | | in turn be used as a component object for building |
| 79) and SIMAN (Pegden, 82) became widely used in | | | | higher level objects. |
| the 80's. During the 80's and 90's graphical modeling | | | | The final method for building objects in Simio is based |
| and animation also emerged as key features in | | | | on the concept of inheritance. In this case we create |
| simulation modeling tools. Graphical model building | | | | an object from an existing object by overriding (i.e. |
| simplified the process of building process models, and | | | | replacing) one or more processes within the object, or |
| graphical animation dramatically improved the viewing | | | | adding additional processes to extend its behavior. In |
| and validation of simulation results. The introduction of | | | | other words we start with an object that is almost |
| Microsoft Windows made it possible to build improved | | | | what we want, and then we modify and extend it as |
| graphical user interfaces and a number of new | | | | necessary to make it serve our own purpose. For |
| graphically based tools emerged (e.g. ProModel and | | | | example we might build a specialized drill object from a |
| Witness). | | | | generalized machine object by adding additional |
| Another conceptual advance that occurred during this | | | | processes to handle the failure and replacement of the |
| time was the introduction of hierarchical process | | | | drill bit. An object that is built in this way is referred to |
| modeling tools that supported the notion of domain | | | | as a derived object because it is sub-classed from an |
| specific process libraries. The basic concept here is to | | | | existing object. |
| allow users to create new process steps by | | | | Regardless which method is used to create an object, |
| combining existing process steps. The widely used | | | | once created it is used in exactly the same way. An |
| Arena modeling system (Pegden/ Davis, 1992) is a | | | | object can be instantiated any number of times into a |
| good example of this capability. | | | | model. You simply select the object of interest and |
| Since the wide spread shift to a graphics-based | | | | place it (instantiate it) into your model |
| process orientation there have been refinements and | | | | 8 OBJECT CLASS |
| improvements in the tools, but no real advances in the | | | | There are six basic classes of objects in Simio. These |
| underlying framework. The vast majority of discrete | | | | six classes of objects provide a starting point for |
| event models continue to be built using the same | | | | creating intelligent objects within Simio. By default, all six |
| process orientation that has been widely used for the | | | | of these classes of objects have very little native |
| past 25 years. | | | | intelligence, but all have the ability to gain intelligence. |
| Although a process orientation has proven to be very | | | | You build intelligent versions of these objects by |
| effective in practice, an object orientation provides an | | | | modeling their behavior as a collection of event driven |
| attractive alternative modeling paradigm that has the | | | | processes. |
| potential to be more natural and easier to use. In an | | | | The first class is the fixed object. This object has a |
| object orientation we model the system by describing | | | | fixed location in the model and is used to represent the |
| the objects that make up the system. For example | | | | things in your system that do not move from one |
| we model a factory by describing the workers, | | | | location to another. Fixed objects are used to |
| machines, conveyors, robots, and other objects that | | | | represent stationary equipment such as machines, |
| make up the system. The system behavior emerges | | | | fueling stations, etc. |
| from the interaction of these objects. | | | | Agents are objects that can freely move through |
| Although a number of products have been introduced | | | | 3dimensional space. Agents are also typically used for |
| to support an object orientation, to date many | | | | developing agent-based models. This modeling view is |
| practitioners who have elected to stick with the | | | | useful for studying systems that are composed of |
| process orientation. A big reason for this is that while | | | | many independently acting intelligent objects that |
| the underlying modeling paradigm might be simpler and | | | | interact with each other and in so doing create the |
| less abstract, the specific implementation may be | | | | overall system behavior. Examples of applications |
| difficult to learn and use (e.g. require programming), or | | | | include market acceptance of a new product or |
| slow in execution. This is no different than the | | | | service, or population growth of competing species |
| challenges faced by the process orientation in | | | | within an environment. |
| unseating the event orientation. Although the first | | | | An entity is sub-classed from the Agent class and has |
| process modeling tool (GPSS) was introduced in 1961, it | | | | one important added behavior. Entities can move |
| took 25 years before the process orientation was | | | | through the system from object to object over a |
| developed to the point that practitioners were | | | | network of links and nodes. Examples of entities |
| persuaded to make the paradigm shift. This paper | | | | include customers in a service system, work pieces in |
| describes Simio -- a new simulation modeling tool that | | | | a manufacturing system, ships in a transportation |
| is designed to make the object orientation easy to use | | | | system, tanks in a combat system, and doctors, |
| and efficient to execute. Although Simio incorporates a | | | | nurses, and patients in a health delivery system. |
| number of innovative features in pursuit of this goal, | | | | Note that in traditional modeling systems such as |
| only time will tell if this tool has bridged the many | | | | GPSS or Arena the entities are passive and are acted |
| practical issues that must be addressed to trigger a | | | | upon by the model processes. However in Simio the |
| widespread paradigm shift in the way practitioners | | | | entities can have intelligence and control their own |
| build models. | | | | behavior. |
| The tool is designed from the ground up to support the | | | | Link and node objects are used to build networks over |
| object modeling paradigm; however it also supports | | | | which entities may flow. A link defines a pathway for |
| the seamless use of multiple modeling paradigms | | | | entity movement between objects. A node defines a |
| including a process orientation and event orientation. It | | | | starting or ending point for a link. Links and nodes can |
| also fully supports both discrete and continuous | | | | be combined together into complex networks. |
| systems, along with large scale applications based on | | | | Although the base link has little intelligence we can add |
| agent-based modeling. These modeling paradigms can | | | | behavior to allow it to model unconstrained flow, |
| be freely mixed within a single model. | | | | congested traffic flow, or complex material handling |
| 2 THE SIMIO OBJECT PARADIGM | | | | systems such as accumulating conveyors or power |
| Simio is a simulation modeling framework based on | | | | and free systems. |
| intelligent objects. The intelligent objects are built by | | | | The final class of object is a transporter and is sub- |
| modelers and then may be reused in multiple modeling | | | | classed from the entity class. A transporter is an entity |
| projects. Objects can be stored in libraries and easily | | | | that has the added capability to pickup, carry, and drop |
| shared. A beginning modeler may prefer to use | | | | off one or more other entities. By default transporters |
| pre-built objects from libraries, however the system is | | | | have none of this behavior, but by adding model logic |
| designed to make it easy for even beginning modelers | | | | to this class we can create a wide range of |
| to build their own intelligent objects for use in building | | | | transporter behaviors. A transporter can model a taxi |
| hierarchical models. | | | | cab, bus, AGV, subway car, forklift truck, or any other |
| An object might be a machine, robot, airplane, | | | | object that has the ability to carry other entities from |
| customer, doctor, tank, bus, ship, or any other thing that | | | | one location to another. |
| you might encounter in your system. A model is built by | | | | A key feature of Simio is the ability to create a wide |
| combining objects that represent the physical | | | | range of object behaviors from these six basic |
| components of the system. A Simio model looks like | | | | classes. The Simio modeling framework is application |
| the real system. The model logic and animation is built | | | | domain neutral -- i.e. these six basic classes are not |
| as a single step. | | | | specific to manufacturing, service systems, healthcare, |
| An object may be animated in 3D to reflect the | | | | military, etc.. However it is easy to build application |
| changing state of the object. For example a forklift | | | | focused libraries comprised of intelligent objects from |
| truck raises and lowers its lift, a robot opens and | | | | these six classes designed for specific application.. For |
| closes its gripper, and a battle tank turns its turret. The | | | | example it is relatively simple to build an object (in this |
| animated model provides a moving picture of the | | | | case a link) that represents a complex accumulating |
| system in operation. | | | | conveyor for use in manufacturing applications. The |
| Objects are built using the concepts of object- | | | | design philosophy of Simio directs that this type of |
| orientation. However unlike other object oriented | | | | domain specific logic belongs in the objects that are |
| simulation systems, the process of building an object is | | | | built by users, and not programmed into the core |
| very simple and completely graphical. There is no need | | | | system. |
| to write programming code to create new objects. | | | | 9 CREATING INTELLIGENT OBJECTS WITH |
| The activity of building an object in Simio is identical to | | | | PROCESSES |
| the activity of building a model -- in fact there is no | | | | Modeling in Simio begins with base objects -- it is the |
| difference between an object and a model. This | | | | foundation on which higher level objects are built. A |
| concept is referred to as the equivalence principle and | | | | base object in Simio is a fixed object, agent, entity, link, |
| is central to the design of Simio. Whenever you build a | | | | node, or transporter that has intelligence added by one |
| model it is by definition an object that can be | | | | or more processes. Processes give an object its |
| instantiated into another model. For example, if you | | | | intelligence by defining the logic that is executed in |
| combine two machines and a robot into a model of a | | | | response to events. |
| work cell, the work cell model is itself an object that | | | | Each process is a sequence of process steps that is |
| can then be instantiated any number of times into | | | | triggered by an event and is executed by a token.A |
| other models. The work cell is an object just like the | | | | process always begins with a single Begin step, and |
| machines and robot are objects. In Simio there is no | | | | ends with a single End step. A token is released by the |
| way to separate the idea of building a model from the | | | | Begin step and is simply a thread of execution (similar |
| concept of building an object. Every model that is built | | | | to entities in Arena). A token may have properties |
| in Simio is automatically a building block that can be | | | | (input parameters) and states (runtime changeable |
| used in building higher level models. | | | | values) that control the execution of the process |
| 3 THE OBJECT ORIENTED FOUNDATION | | | | steps. You can define your own classes of tokens |
| Many popular programming languages such as C++, | | | | that have different combinations of properties and |
| C#, and Java are all built around the basic principles of | | | | states. |
| object oriented programming (OOP). In this | | | | The modeling power of Simio comes from the set of |
| programming paradigm software is constructed as a | | | | events that are automatically triggered for the six |
| collection of cooperating objects that are instantiated | | | | basic classes of objects, along with the process steps |
| from classes. These classes are designed using the | | | | that are available to model state changes that occur in |
| core principles of abstraction, encapsulation, | | | | response to these events. Fully mastering the art of |
| polymorphism, inheritance, and composition. | | | | building intelligent objects involves learning the events |
| The abstraction principle can be summarized as | | | | and the collection of available process steps, along |
| focusing on the essential. The basic principle is to make | | | | with the knowledge and experience of how to |
| the classes structure as simple as possible. | | | | combine these steps to represent complex logic. |
| The encapsulation principle specifies that only the | | | | Each step in Simio models a simple process such as |
| object can change its state. Encapsulation seals the | | | | holding the token for a time delay, seizing/releasing of |
| implementation of the object class from the outside | | | | a resource, waiting for an event to occur, assigning a |
| world. | | | | new value to a state, or deciding between alternate |
| Polymorphism provides a consistent method for | | | | flow paths. Some steps (e.g. Delay) are general |
| messages to trigger object actions. Each object class | | | | purpose steps that are useful in modeling objects, links, |
| decides how to respond to a specific message. | | | | entities, transporters, agents, and groups. Other steps |
| Inheritance is a key concept that allows new object | | | | are only useful for specific objects. For example, the |
| classes to be derived from existing object classes: this | | | | Pickup and Dropoff steps are only useful for adding |
| is sometimes referred to as the "is-a" relationship. This | | | | intelligence to transporters and the Engage and |
| is also referred to as sub-classing since we are | | | | Disengage steps are only useful in adding intelligence to |
| creating a more specialized class of an object. | | | | Links. |
| Sub-classing typically allows the object behavior to be | | | | Each object class has its own set of events. For |
| extended with new logic, and also modified by | | | | example, a link provides events that fire when entities |
| overriding some of the existing logic. | | | | enter and leave the link, merge fully onto the link, collide |
| Composition allows new object classes to be built by | | | | with or separate from other entities that reside on the |
| combining existing object classes: this is sometimes | | | | link, move within a specified range of another entity, |
| referred to as the "has-a" relationship. Objects | | | | etc. By providing model logic to respond to these |
| become building blocks for creating higher level objects. | | | | events we can completely control the movement of |
| It is interesting to note that the roots of these ideas | | | | entities across the link. For example, to add |
| date back to the early 1960's with the Simula 67 | | | | accumulation logic to the link we simply write a small |
| simulation modeling tool. This modeling tool was | | | | process that its triggered when an entity collides with |
| created by Kristen Nygaard and Ole-Johan Dahl (1962) | | | | the entity it is following, and reassigns the speed of the |
| of the Norwegian Computing Center in Oslo to model | | | | entity to match the speed of the entity that it is |
| the behavior of ships. They introduced the basic | | | | following. |
| concepts of creating classes of objects that own their | | | | The process steps that are used to define the |
| data and behavior, and could be instantiated into other | | | | underlying logic for an object are stateless -- i.e. they |
| objects. This was the birth of hierarchical modeling and | | | | have properties (input parameters) but no states |
| object-oriented programming. | | | | (output responses). This is important because this |
| Many people assume that object-oriented | | | | means that a single copy of the process can be held |
| programming concepts were developed within the | | | | by the object class definition, and shared by an |
| programming world; however this was not the case. | | | | arbitrary number of object instances. If the process |
| These principles were developed for building simulation | | | | logic is changed, this fact is automatically reflected by |
| models, and then adopted by the programming world. | | | | all instances of the object. |
| Although the simulation world created the original | | | | The states for an object instance are held in elements. |
| object-oriented concepts, it has yet to produce an | | | | Elements define the dynamic components of an |
| object- oriented modeling framework that practitioners | | | | object and may have both properties (input |
| have widely embraced. Although there have been a | | | | parameters) and states (runtime changeable values). |
| number of attempts to provide such a framework, in | | | | Within an object the tokens may execute steps that |
| the end practitioners have for the most part stuck to | | | | change the states of the elements that are owned by |
| their proven process orientation for modeling. One of | | | | the object. |
| the big reasons for this is that most past attempts | | | | An example of an element is the station that defines a |
| have simply been object- oriented programming | | | | location within an object. Stations are also used to |
| libraries that require the user to step back in time 25 | | | | define entry and exit points into and out of an object. |
| years and again code their models and/or objects in a | | | | Entities can transfer into and out of stations (using the |
| programming language. | | | | Transfer step), and a station maintains a queue of |
| 4 THE SIMIO OBJECT FRAMEWORK | | | | entities currently in the station as well as entities waiting |
| The Simio object framework is built on the same basic | | | | to transfer into the station. A station has a capacity |
| principles as object oriented programming languages; | | | | that limits transfers into a station. Hence an entity |
| however these principles are applied within a modeling | | | | arriving to an object over a link can only exit the link |
| framework and not a programming framework. For | | | | and enter the object if the entry station for the object |
| example the Microsoft development team that | | | | has capacity available. |
| designed C# applied these basic principles in the design | | | | 10 FINITE CAPACITY SCHEDULING |
| of that programming language. Although these same | | | | Although simulation has traditionally been applied to the |
| principles drive the design of Simio, the result is not a | | | | design problem, it can also be used on an operational |
| programming language, but rather a graphical modeling | | | | basis to generate production schedules for the factory |
| system. This distinction is important in understanding the | | | | floor. When used in this mode, simulation is a Finite |
| design of Simio. | | | | Capacity Scheduler (FCS) and provides an alternative |
| Simio is not simply a simulation modeling tool that is | | | | to other FCS methods such as optimization algorithms |
| programmed in an OOP language (although it is | | | | and job-at-atime sequencers. However simulation |
| programmed in C#). Likewise it is not simple a set of | | | | based FCS has a number of important advantages |
| classes available in an OOP language such as Java or | | | | (e.g. speed of execution and flexible scheduling logic) |
| C++ that are useful for building simulation models. Simio | | | | that make it a powerful solution for scheduling |
| is a graphical modeling framework to support the | | | | applications |
| construction of simulation models that is designed | | | | Simulation provides a simple yet flexible method for |
| around the basic object oriented principles. For | | | | generating a finite capacity schedule for the factory |
| example when you create an object such as a | | | | floor. The basic approach with simulation-based |
| "machine" in Simio, the principle of inheritance allows | | | | scheduling is to run the factory model using the starting |
| you to create a new class of machines that inherits | | | | state of the factory and the set of planned orders to |
| the base behavior of a "machine", but this behavior | | | | be produced. Decision rules are incorporated into the |
| can be modified (overridden) and extended. Whereas | | | | model to make job selection, resource selection, and |
| in a programming language we extend or override | | | | routing decisions. The simulation constructs a schedule |
| behavior by writing methods in a programming | | | | by simulating the flow of work through the facility and |
| language, in Simio we extend or override behavior by | | | | making "smart" decisions based on the scheduling rules |
| adding and overriding graphically defined process | | | | specified. The simulation results are typically displayed |
| models. | | | | as jobs loaded on interactive Gantt chart that can be |
| This distinction between object oriented modeling and | | | | further manipulated by the user. There are a large |
| object oriented programming is crucial. With Simio the | | | | number of rules that can be applied within a simulation |
| skills required to define and add new objects to the | | | | model to generate different types of schedules |
| system are modeling skills, not programming skills. | | | | focused on measures such as maximizing throughput, |
| 5 THE ANATOMY OF AN OBJECT (MODEL) | | | | maintaining high utilization on a bottleneck, minimizing |
| When you create a model in Simio, you are creating | | | | changeovers, or meeting specified due dates. |
| an object class from which multiple instances can be | | | | Because of the special requirements imposed by |
| created. This process is referred to as instantiation. | | | | scheduling applications (e.g. the need for specialized |
| When you instantiate an object into a model, you may | | | | decision rules and the need to view the results in the |
| specify properties of the object that govern the | | | | form of an interactive Gantt chart), simulation-based |
| behavior of this specific instance of this object. For | | | | scheduling applications have typically employed |
| example the properties for a machine might include the | | | | specialized simulators specifically designed for this |
| setup, processing, and teardown time, along with a bill | | | | application area. The problem with this approach is that |
| or materials and a operator required during the setup. | | | | the specialized simulators have built-in, data-driven |
| The creator of the object decides on the number and | | | | factory models that cannot be altered or changed to |
| the meaning of the properties. The properties in Simio | | | | fit the application. In many cases this built-in model is an |
| are strongly typed and can represent numeric values, | | | | overly simplified view of the complexities of the |
| Booleans, strings, object references, dates and times, | | | | production floor. .This one model fits all approach |
| etc. Since any model that you build is by definition an | | | | severely limits the range of applications for these tools. |
| object, you have the opportunity to parameterize your | | | | Some production processes can be adequately |
| model through properties as well. | | | | represented by this fixed model, but many others |
| It should be noted that instantiating a model is not the | | | | cannot. |
| same as copying or cloning the model. When a model | | | | Simio takes a different approach by allowing the |
| is used as a building block in the construction of other | | | | factory model to be defined using the full |
| models it may be instantiated many times in many | | | | general-purpose modeling power of the tool. Hence the |
| different models. The model instance simply holds a | | | | range of applications is no longer restricted by a fixed |
| reference to the one model definition that is used over | | | | built-in model that cannot be altered or changed |
| and over again. The instance also holds the property | | | | between applications. The complexities of the |
| values since these are unique to each instance. | | | | production process can be fully captured by the |
| However the model logic is shared by all instances. | | | | user-built Simio model. This not only includes the logic |
| Regardless of how many instances are created, there | | | | within each work center, but also the material handling |
| is only one class definition of the object, and each | | | | required to move jobs between work centers. |
| instance refers back to this single definition. Each | | | | The specialized requirements for FCS applications are |
| instance holds the properties that are unique to that | | | | addressed by incorporating features into Simio to |
| instance, but looks back to the definition to get its | | | | specifically support the needs of FCS. These features |
| underlying behavior. If the behavior in the definition is | | | | include the support for externally defined job data sets |
| changed then all instances automatically make use of | | | | along with very flexible modeling of resources and |
| this new behavior. | | | | materials. Although these features are specifically |
| In addition to properties, objects also have states. | | | | designed to unleash the full modeling power of Simio |
| States are also strongly typed but always map to a | | | | for FCS applications, they are also useful in general |
| numeric value. For example the Booleans true and | | | | modeling applications. |
| false map to 1 and 0, and an enumerated list of state | | | | A Simio job data set allows a list of jobs to be |
| names map to the list index position (0, 1,
., N) in the | | | | externally defined for processing by the simulation |
| list. A state changes as a result of the execution of | | | | model. The jobs are defined in a data set containing |
| the logic inside the object. Properties can be thought of | | | | one or more tables, with relations defined between |
| as inputs to an object, and states can be thought of | | | | table columns. The specific schema for holding the job |
| as output responses that change throughout the | | | | data is arbitrary and can be user defined to match the |
| execution of the object logic. A state might represent | | | | data schema for the manufacturing data (e.g. an ERP |
| a count of completed parts, the status of a machine | | | | system). The job data typically includes release and |
| selected from an enumerated state list, the | | | | due date, job routings, setup and processing times, |
| temperature of an ingot heating in a furnace, the level | | | | material requirements, as well as other properties that |
| of oil in a ship being filled, or the accumulation level on a | | | | are relevant to the system of interest.. The objects in |
| conveyor belt. | | | | Simio can directly reference values specified in the job |
| There are two basic types of states: discrete and | | | | data set (e.g. processing time) without knowing the |
| continuous. A discrete state is a value that only | | | | schema that was implemented to store the data. |
| changes at event times (customer arrival, machine | | | | Any object in Simio can serve as a capacitated |
| breakdown, etc.) A continuous state (e.g. tank level, | | | | resource and can have its own independent behavior. |
| position of a cart, etc.) has a value that changes | | | | Resources can be selected from a list based on |
| continuously over time. | | | | flexible rules such as minimum changeover time or |
| 6 THREE OBJECT TIERS | | | | longest idle time. . Resources also support very flexible |
| One of the important and unique internal design | | | | rules (earliest due date, least remaining slack, critical |
| features of Simio is the use of a three tier object | | | | ratio, etc) for selecting between competing jobs that |
| structure that separates an object into an object | | | | are waiting to seize the resource. Finally the job usage |
| definition, object instance, and object realization. The | | | | history for resources can be displayed on an |
| object definition specifies the object behavior and it is | | | | interactive Gantt chart. |
| shared by all instances of the object. An object | | | | The Materials element in Simio provides direct support |
| instance is simply an instance of that object within a | | | | to model things that can be consumed and produced |
| parent object definition (e.g. a lathe machine instance is | | | | during the execution of the model. Materials can also |
| placed inside a work cell definition). The object instance | | | | be defined hierarchically to model a traditional Bill of |
| defines the property values for each individual instance | | | | Materials (BOM) for manufacturing applications. Hence |
| of the object and this instance data is in turn shared by | | | | a manufacturing step can be modeled as the |
| all object realizations. | | | | consumption of a specific list of materials within the |
| The object realization is used to represent a specific | | | | hierarchical BOM. |
| realization of an instance within an expanded model | | | | 11 SUMMARY |
| hierarchy. For example, each time a new work cell | | | | Simio is a new modeling framework based on the |
| instance is placed in a parent object definition (e.g. a | | | | core principles of object oriented modeling. It is unique |
| production line) it creates the need for a new | | | | in the following ways: |
| realization for the embedded lathe. Although the work | | | | The Simio framework is a graphical object- oriented |
| cell definition is built from a single lathe instance, this | | | | modeling framework as opposed to simply a set of |
| single lathe instance cannot hold the state values | | | | classes in an object-oriented programming language |
| corresponding to multiple lathe realizations that result | | | | that are useful for simulation modeling. The graphical |
| from multiple instances of the work cell. The object | | | | modeling framework of Simio fully supports the core |
| realizations provide the mechanism for holding this | | | | principles of object oriented modeling without requiring |
| hierarchical state information in a very compact form. | | | | programming skills to add new objects to the system. |
| The object realizations are only created during model | | | | |