Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 07/01/2018 in all areas

  1. Thanks for visiting our Simio User's Forum. This forum has been created to: 1) Share information about Simio, 2) Provide a way for users to communicate with each other and with us, and 3) Provide a mechanism for us to to hear your ideas so we can make the best product possible. Guests If you are Guest (visiting without having registered), you are welcome to browse all our public forums, but we request that you first join our Simio Insiders group before you view the private areas or can post on any areas. Simio Insiders I encourage you to become more involved as a Simio Insider. Insiders will have full access to browse and post in an extended set of forums available just for you. You will find more information on this in Why Become a Simio Insider. There is one more category of membership that is a little harder to achieve. Simio Team Members (employees) are identified as such when we post so you know that we are providing the straight scoop. (This is not to imply by any means that we are always right ) Finally, if you have any other questions about how the forum works, I encourage you to consult the "FAQ" item from the main Forums menu (top center). Again, welcome to the forum. I am always anxious to hear your feedback (positive or negative) and any ideas on how we can improve this forum or our products. Email me anytime using dsturrock at simio.com
    4 points
  2. People often want to model two or more vehicles or entities moving together. There are a few components to this: 1) Seizing the resource appropriately - can be done in processes, but often best done within the vehicle object to make the modeling easier. Here, a vehicle has 4 properties added to support use of an operator. 2) Animating them moving together - the picture below shows use of a second queue animated on the custom vehicle. 3) In some cases, you also need the "driver" to be shown moving. The Attached Animation Speed illustrated below, accomplishes that. I have attached a model that uses a custom vehicle object to model a wheelchair which is "driven" (pushed) by a person to pick up a patient. *********** FOR VERSION 190 AND EARLIER ************************************* VehicleWithDriver.spfx You could use the same approch, possibly with just animation changes, to model something like a truck or forklift that requires a driver. In fact, I just added a second model to that same project that illustrates use in manufacturing (e.g. a lift truck and driver).VehicleWithDriver.spfx VehicleWithDriver.spfx *********************************************************************************** ************** FOR VERSION 191 AND LATER *********************************** VehicleX3.spfx VehicleWithDriver_VehicleX3_Examples.spfx For more information on the update, see the post below. ***********************************************************************************
    2 points
  3. This post contains additional files associated with the paper "Agent-base modeling and simulation in Simio" by Thomas Kehl. The additional files include the original paper, an installer for the Simio Agent Library, the Simio Agent Library user extension, and further documentation. These files were created by Thomas Kehl and are not endorsed or supported by Simio LLC. Note also that these files were published with the paper in 2018 and might be out of date. 1585821475_SimioAgentBasedModeling-ThomasKehl.zip
    2 points
  4. Pls refer to below paper for integrating simio and M/L algorithms. very good read. SIMIO和机器学习算法的整合框架【AI】Aston大学Andrew Greasley博士.pdf
    2 points
  5. Entities are prioritized in server according to the server Ranking Rule. Check my attached model. I set Entity1 priority to 1, Entity2 priority to 2 and told the server to prioritize the ModelEntity with the highest priority value. You can play with that logic to prioritize everything the way you want. entity priority.spfx
    2 points
  6. Hi jord41, Simio loads the bound tables once during the initialization in the Simio tables. Data access requires a lot of computing time. (More for writing as reading). I see that you only have 1 column of integer values. My recommendation is that you do not import the table into a Simio table. It's best to create an integer or real state of type vector. Then you use e.g. the Read-Step or the ExcelRead-Step. In conjunction with a timer or the sample example loop of GFurtado you can load the data at intervals. I think that this could be a solution. At least that's how I would do it if I had to work with real-time data. Normally, such real-time data is written to a SQL database by a PLC or something like that. Then you can use the SQL steps anytime in Simio. Best regards Pascal
    2 points
  7. At some point I would start looking for a SCADA system, write it in Python or anything outside Simio. A Simio Engineer would be better suited to help you, but I still believe you could build this inside Simio (maybe through an API?). I manage to build a very ugly version of this that kinda works. It's not real real-time, because I still need to click on the manual import button (I don't know how to help you with this). I set my source's Arrival Mode to On Event; Create a process with a Decide step that checks if the table received a new value: If it received a new value, trigger SourceEvent; If it didn't, check again a second later. As I said, it's not very elegant, but I hope it inspires you to find the right solution.
    2 points
  8. Hi all, I met some questions in building the model. It seems a very general quesiton but I didn't find any solution from internet... I'm building a general workflow model. I want to decide the quantity of a server to optimize the workflow. I want to use experiments or optquest to get the 'best' number for each server. If I set the capacity type as Fixed, then I can set the initial capacity as ''referenced property'', then I can use this as control in experiments/optquest. However, I have a work schedule for each server now which means I couldn't set the capacity type as Fixed. And then I couldn't set capacity as ''referenced property''. I don't know how to control this capacity in my experiments/optquest. I know I can change the 'value'(which means the capacity) in workschedule table. But I can not change this number flexible in experiments... Or I don't know how to set this value as ''referenced property'' . Is there anyone who could help me with this? Thanks a lot!
    2 points
  9. We have an opportunity for an intermediate to advanced modeller to join us for both a Simio and Operational related role. Relocation to Australia/New Zealand is a prerequisite with Visa sponsorship provided. Please note that a minimum contract duration will be in play. Should you be interested, please pm me, or send your resume with contact details to mark@masterschedulingsolutions.com All conversations will be treated as confidential. Mark
    2 points
  10. Thank you .. this is amazing stuff. By the way, is it possible to import and export Process step as well?
    2 points
  11. Is there an example or a SimBit which shows how to do this?
    2 points
  12. Simio is a simulation modeling framework based on intelligent objects. The intelligent objects are built by modelers and then may be reused in multiple modeling projects. Objects can be stored in libraries and easily shared. A beginning modeler may prefer to use pre-built objects from libraries; however the system is designed to make it easy for even beginning modelers to build their own intelligent objects for use in building hierarchical models. An object might be a machine, robot, airplane, customer, doctor, tank, bus, ship, or any other thing that you might encounter in your system. A model is built by combining objects that represent the physical components of the system. A Simio model looks like the real system. The model logic and animation is built as a single step. An object may be animated to reflect the changing state of the object. For example a forklift truck raises and lowers its lift, a robot opens and closes its gripper, and a battle tank turns its turret. The animated model provides a moving picture of the system in operation. Objects are built using the concepts of object orientation. However unlike other object oriented simulation systems, the process of building an object is very simple and completely graphical. There is no need to write programming code to create new objects. The activity of building an object in Simio is identical to the activity of building a model – in fact there is no difference between an object and a model. This concept is referred to as the equivalence principle and is central to the design of Simio. Whenever you build a model it is by definition an object that can be instantiated into another model. For example, if you combine two machines and a robot into a model of a work cell, the work cell model is itself an object that can then be instantiated any number of times into other models. The work cell is an object just like the machines and robot are objects. In Simio there is no way to separate the idea of building a model from the concept of building an object. Every model that is built in Simio is automatically a building block that can be used in building higher level models.
    2 points
  13. Make sure SimioAPI.dll, SimioAPI.Extensions.dll and SimioAPI.Graphics.dll are not in the ...\Documents\SimioUserExtensions folder. If there are older version of these DLL in this folder, you will get this error message. It is best practice to not have these DLL in this folder. If there are not in this folder, Simio will find them in its executable folder. If you create your own Visual Studio project and compile into this folder, make sure you set the "Copy Local" == False.
    1 point
  14. You can use Unbatch and match condition. thanks! Unbatch one entity.spfx
    1 point
  15. Job Description Energetic and personable professional who applies operational research to best utilize workforce, data, technology, and other resources to achieve maximum productivity within budgetary constraints. Guides current practices and facilitates through more efficient and effective ways to achieve operational excellence. Experience in discrete event simulation, agent-based modeling, and predictive analytics is a plus Job Responsibility Develops metrics, creates dashboards, reports, and identifies areas of improvement across the organization using various analytical tools and techniques. Identifies current process gaps through the use of observations, data collection, data analysis, process ideologies and communication with management and frontline staff. Identifies issues, root causes, strategies for improvement, and development of implementation and sustainment plans. Supports project management, development of project timelines, and follow-up action items for process improvement initiatives. Develops the summary of findings, recommendations, and action plans to management. Applies principles, techniques and procedures to the design and implementation of technology and process solutions (i.e. Lean, Six Sigma, Kaizen). Supports development of principles and methods for curriculum and training design, teaching and instruction for individuals and groups, and the measurement of training effects. Work assignments are varied and require interpretation and independent decisions on the course of action. Decisions may be guided by precedent, previous experience, and known professional guidelines and compliance requirements. Often required to interpret policies, standards, requirements, and approaches to meet work objectives. Regularly exercises independent judgment on matters of significance within defined procedures to determine appropriate actions/approaches. Normally receives general instructions on routine work, and detailed instructions on new projects or assignments. Performs related duties as required. All responsibilities noted here are considered essential functions of the job under the Americans with Disabilities Act. Duties not mentioned here, but considered related are not essential functions. Job Qualification Bachelor’s Degree or equivalent combination of education and related experience as Continuous Improvement Engineer, Industrial Engineer, Operations Process improvement Engineer, Process Engineer, or Lean Six Sigma Black Belt. 1-3 years of technical experience, required. Technical Skill preferred: Experience in discrete event simulation (preferably Simio), Lean, Black Belt Six Sigma Certificate, Statistical Analysis, Graphical Analysis, Facilitation, and Presentation Skills, Operational Research, Programing (i.e., R or Python), Predictive Modeling, Agile Project Management. Here is the link to apply: https://jobs.northwell.edu/job-3/16580688/process-improvement-engineer-lake-success-ny/
    1 point
  16. MOSIMTEC is looking for smart people to solve interesting problems for the world’s leading organizations. MOSIMTEC uses simulation modeling to help our clients understand the best ways to solve their most complex challenges. At MOSIMTEC, you will work on exciting projects covering a wide range of domains including material handling, mining, chemical processing, manufacturing, supply chains, maritime and port operations, and healthcare. You will be joining a diverse team of passionate individuals that can support your growth as a simulation consultant. Entry to early career positions will be located in Herndon, VA or Nashville, TN. Occasional travel to client locations or company-wide meetings will be required. Learn more & apply at: https://www.indeed.com/cmp/Mosimtec-1/jobs
    1 point
  17. Hello, We are evaluating Simio and really like what we see from exploring the Simio Personal Edition. Custom Dashboards are a high priority for us and we appreciate the fact that Simio seems to allow creation of custom dashboards from within a model; however, we would like to know if Simio allows the creation of custom dashboards that are portable from model to model. For example, we would like to: Create a dashboard that displays a chart depicting activity cost per entity (for a selectable set of entities) over the simulation period. Reuse/import this dashboard into any model to display the activity cost per entity over the simulation period (for a selectable set of entities). Two questions: Is this possible with Simio? If yes, which edition(s) of Simio support this capability? Thanks in advance! Donovan
    1 point
  18. Good to know Simio has embeded ANN in new sprint
    1 point
  19. Thanks to you both. Anyway, the approach that I understood the most, it was Mauricio's and I found it really useful.
    1 point
  20. Hello Mauricio, Your model is a good approach but it is incomplete because I explained myself a little wrong: What I really meant was that the server the entity came from should not start its processing time. Anyway, thanks for the effort. In case anyone is wondering a similar question, I attach the solution i came up with in a even more complex version. block.spfx
    1 point
  21. Power BI & Simio Webinar - May 2020 Enhancing your Simio Results using Power BI MORE INFO AND REGISTRATION About the Webinar Simulation modeling has many benefits, namely its ability to forecast and predict multiple scenarios. Simio does an incredible job of providing the user with incredible results, and Power BI enhances these results with useful insights and visualizations. This webinar will provide the benefits of using Power BI for Simio outputs, optimizing your analytics, and giving you a better understanding for decision-making purposes. What will be covered Overview of Power BI benefits with Simio Simulation models Real-world case study of a Simio project using Power BI dashboards Questions and answers for people attending the webinar More details Date: 28 May 2020 Time: 10:00 PT / 17:00 GMT Duration: 1 hour Location: Microsoft Teams (link on registration) Price: Free Hosts Jaco Botha Pr Eng, Managing Director, SE Marco Agas, Webinar Host, SET Presenters Nicolas Finn, Power BI / Simio Trainer, SET Hulda Viljoen, Simulation Engineer, SET
    1 point
  22. Please note that space is limited, click the link below soon to register: MORE INFO AND REGISTRATION
    1 point
  23. Hi Cam.laboy, I mean you have to define new customer types and include sink objects into their sequences. I attach a picture of how to revise probabilities of these new customers. Hope it helps.
    1 point
  24. To answer your question specifically with regards to the MultiEchelonSupplyChain example, the OnReplenishOrder process that you see in the process logic of the data table driven example is automatically executed by the Inventory elements when the inventory detects the need to replenish. Go to Definitions -> Elements and click on the Inventory elements and you will see where that process is being referenced. The ShippingReceivingLogic process is being executed when an entity enters any of the BasicNodes placed in the Facility View. For example, click on the DistributionCenter node and in the Add-On Processes -> Entered property you will see the name of that process befiling referenced. The TryFulfillOrder process is executed by the OnCustomerOrder process using an Execute step, which is in term triggered by a customer order arrival. Note that If you are trying to figure out where the name of a process is being referenced, you might go to Project Home in the ribbon UI and go to the Search window. And then search for the name of the process in the model, and it will show you the locations where it is being referenced.
    1 point
  25. I have attached a simple example of one approach. 1) I edited the ModelEntity object and added a state array of type MatrixFromTable. This type of array is automatically initialized from a table. Ideally I might have also added a table to the entity, but Simio doesn't work that way. Instead, I added a RepeatGroup named InitializationValues consisting of a Real property. I used this repeat group as a way to essentially add a "table" into the object, since internal to Simio there is almost no difference between a table and a repeat group. 2) Back in the model I added a table and then imported data into that table from Excel. I used 10 rows, but I could have imported 350 rows with no change to anything else. 3) Now when you place the ModelEntity object into a model, you can pass a table into the InitializationValues repeat group. Again, intead of just typing a bunch of values into the repeat group, I just say go get the whole repeat group from a specified table. This has the result of sizing that state array inside the model entity to match the current size of the table, and then initializing the state values to whatever is in the table. 4) If you run the model, you can open the Watch window on any entity and view the values of its states. I expect this won't solve all your problems, but maybe it will give you a fresh approach to consider. ImportStateValues.spfx ImportStateValues.xlsx
    1 point
  26. You can use seperate servers (each has 1 capacity) each represents individual firms. Create entities (raw products) via a data table where you should also include one column (a node property from object reference property) to represent where the created entity will be processed (as its destination). Then at the output node of the source object set entity destination type property to specific. Then set node name to Table1.NodeInstanceProperty1. The entities will be routed appropriately.
    1 point
  27. Hello, Would you be able to provide background on your use case? My first response would be no, but I"m curious what your use case is. I believe we should be able to find a solution (perhaps using a function) if you can provide a little background on the use case. Thanks, Jason
    1 point
  28. Updating the data mid-run isn't a good simulation practice, unless you're building some gimmicky application. But I manage to work this out with this little guy in the Table Ribbon. Have you tried it yet?
    1 point
  29. You change entities symbol through thier ModelEntity.Picture state. Select your entity and Add Additional Symbol in the Symbol tab; Customize the new symbol however you want; Look for servers State Assignment; Assign a new value to ModelEntity.Picture (0: default symbol; 1: new symbol). Check the attached model in this post if you need help. Change Entity Picture.spfx
    1 point
  30. Drag and drop an ModelEntity into the facility layout. Then, select ModelEntity and see "Maximum number in system limit" property under "Population" section of properties window. Set this property as how many entities you desire throughout the simulation run.
    1 point
  31. In fact everthing is ok except you did not placed the subclassed sink objects (mysink type objects) into the facility layout. Probably you forgot to drag them from the project library (at the left bottom window) to the facility layout. I attached the fixed version of the same file. Do not hesitate for asking more. cutoff.spfx
    1 point
  32. Hi Tom, thanks for your help! I've found a solution on my own in the meantime (probably not as sophisticated as yours but it works well). I additionally modelled a small version of the lift itself and created a wait process. The triggering event is "vehicle exits Node X". I used the process for my servers ("after processing"). So whenever a chair exits the node, the gates will open. This is actually quite close to reality where the gate opening interval is not fixed but depends on the speed of the lift and the point in time when an empty chair arrives. All the best, Nico
    1 point
  33. You can assign each entity an individual ModelEntity.Priority and set your Combiner to only match entities with the same priority. Check my attached model to see an example. Match Priority.spfx
    1 point
  34. And also, not only do I want to select one randomly, but taking into account one column that would have the weight. For example, 80% of "Type A" that are "Good" goes to "Server_1" and 20% to Server_2. Basically use RandomRow to a table filtering for more than 1 foreign key
    1 point
  35. Maybe you could create several property of type 'Interger' and reference them in the value row..like below... and in the experiments you should be able to see them as controls to optimizer. Best regards/Jeff Zhou
    1 point
  36. I have a model where three conveyors merge from individual sources. All three sources release entities at an inter-arrival rate of 4.5 s. At the merge there is a server which has a processing time of 1 s and a 0 buffer capacity. In the image below I have two models with the exact same properties, the only difference is the conveyor speed. The top model has a conveyor speed of 0.5 m/s and a queue forms reaching a length of infinity as time passes. The bottom model has a conveyor speed of 2 m/s and a queue never forms. Why is it that a queue forms in the top model? Can someone please explain? It does not make sense to me why such a long queue forms. Please explain using queuing theory or mathematics, or Simio logic if necessary.
    1 point
  37. why do you use source? In Workstation 1_exited step you can just increase the currentrownumber by one using an assign step and use a create step just after this assign step, set its properties using any table (and also currentrownumber state variable). and transfer this entity to the appropriate place. you do not need to use source step?
    1 point
  38. 1) You can find what the save index value means by trial and error. Assign this value to a state variable and place a breakpoint onto the search step. Then, when simulation stops at that breakpoint check the state variable's value. 2) you can use match conditons sequential by using "&&" and "||" mathematical operators. For example, a) match condition with "&&": candidate.modelentity.color="red"&& candidate.modelentity.timecreated<500. The search step will found a modelentity when the expression written for match condition evaluated to "true". Fot match condition to be "true" both conditions have to be "true" (the value of candidate.modelentity.color="red" must equal to 1 and the value of candidate.modelentity.timecreated<500 must equal to 1). If not then the match condition will be "false". The search step can not found any modelentity. b) match condition with "||": candidate.modelentity.color="red"|| candidate.modelentity.timecreated<500. The search step will found a modelentity when the expression written for match condition evaluated to "true". Fot match condition to be "true" one of the conditions have to be "true" (the value of candidate.modelentity.color="red" must equal to 1 OR the value of candidate.modelentity.timecreated<500 must equal to 1). If not then the match condition will be "false". The search step can not found any modelentity.
    1 point
  39. Hello! Is there any possible way to change the order of queue depend on the datetime state variable? I have datetime state variable; jut simply set 2018-10-07 0:00:00 There are two entities called partA and partB and they are created following arrival table which has release column. So,partA and partB go to inputbuffer of a server, but partA just wait in the inputbuffer, not goes into the server until 2018-10-07. after the specific time, all of the partA move to the front of the inputbuffer and enter the server. I'm trying to do that using new station where partA is transfered from the inputbuffer to until 2018-10-07. Does anyone have an idea? or can anyone model this situation? Thank you. Jay.
    1 point
  40. Jay, I have attached the revised model. If you examine the model I have followed somewhat different way to achieve your goals. Resource (1).spfx
    1 point
  41. I have taken a glance at your model. At first look your timer element needs to be revised and you should not change the capacity a resource via a user-defined state variable. Use resource.currentcapacity state variable. I have revised your model and it looks like working. Due to having no more time I could not deeply analysed. see attached file. Resource.spfx
    1 point
  42. Hi Team, Good morning, I have a question that I need support. On my simulation under Planning tab then Entity workflow I see the Orders that I created, but also some other items that I don't know where those came from. that is using resources. for example, I highlight on the picture attached on red color. OrderWIP01 is waiting for the grinder [1] on the finish1_1, when I looked for it, I saw that is on Phx4.89. What is that Phx4.89? Phx4 is one of the names of the entities. but why does appear as entity and not as a Order? At the moment I looking for why to increase the output, as the simulation is giving me 17 unit per shift, but engineering said that it should be around 20. I want to make sure the simulation is done correctly. Thanks in advance. Regards, Htatton Arm-boom-draft-R1-test-092718-Test-Scheduled-3tacking.spfx
    1 point
  43. Simio B2MML data tables and importing are compatible with the standard. It is my understanding that it is common that adopting companies will customize the data to their own needs, just as we have done by example within Simio. B2MML consists of a set of XML schemas that implement the data models in the ISA-95 standard. Companies may use B2MML to integrate business systems such as ERP and supply chain management systems with manufacturing systems such as control systems and manufacturing execution systems. The actual standard is an XML implementation of the ANSI/ISA-95 (IEC/ISO 62264) Enterprise-Control System Integration Standard. Searching on them will yield more information. The e-book Planning and Scheduling with Simio that is included on the Support Ribbon, explains more about B2MML.
    1 point
  44. I think 2 more entities (at ridestation of vehicle) for server 1 forces vehicle to wait at server 1. Because they have nowhere to go or wait ? Increasing the capacities of inputbuffers of both servers should solve this problem? if this option is not possible for your problem setting then you have to know how many entities to send from source to servers exactly? or think about many other solutions...
    1 point
  45. Either in the Load Time property or the Loaded add-on process trigger of the object (let's say Worker1) you could add an expression something like this: (Worker1[1].CurrentNode==TransferNode1)* 5 to get a delay of 5 only when at that specific node.
    1 point
  46. Simio was the hit of the show at the recent Winter Simulation Conference. This topic will eventually contain a reproduction the entire talk given at WSC by Dennis Pegden. You can find many more introductory and training videos and webinars on the Simio web site (about 15 hours total) as well as still more on YouTube (many posted by users).
    1 point
  47. If you would like to be automatically notified about new postings to any Simio forum you should subscribe to the Forum by clicking the Follow button. This can be found at the top of every Forum topic (indicated by the red arrow in the screen shot below). Subscribing will ensure that you are among the first to know about each new posting. You can use the same technique to subscribe to any forum of interest to you to ensure that you get the latest news and have the opportunity to participate in any discussions.
    1 point
  48. Create a new project, go to ProjectHome ribbon, click load library button. Then, find and select your own model, simply click open to load it into Simio. You will see your model components (i.e., objects from your own library) at left with the name of your library (custom library).
    1 point
  49. First of all, I won’t argue with you at all – I would also like to see Simio have more intuitive behavior in our Standard Library objects. But perhaps my explanation below will make it a little bit more intuitive. But the good news is that, unlike other products that limit the behavior to one of a few predefined choices: 1) In Simio your choices are unlimited - it is not too difficult to make it behave exactly as you want. The OnCapacityChanged add-on process (or related processes like On Shift and Off Shift) can use the Interrupt, Suspend, and Resume Steps as illustrated in several SimBits. 2) If you want some behavior to be your default behavior, just create a custom object with that behavior. If you think about the built-in behavior as follows it might help… PARADIGM: A resource of capacity > 1 still represents a single resource, but just has the ability to process multiple concurrent entities. But it still only has a single state (Idle, Busy, Failed, …), e.g. if it is failed, the entire resource is failed (all capacity units), and if it is off-shift (e.g. capacity=0) all units are off-shift. REDUCING CAPACITY: When capacity available is reduced below the current number of busy units, there are many possible valid behaviors depending on your system. The default behavior of our standard library is simply to finish working on the current entity, and then take the unit off-line. But you can use the tools mentioned above to change that default. For example, you might implement some behavior that says “if I am within 10 minutes of completion, go ahead and complete it, otherwise record its remaining time, add 5 minutes of restart time, then put it at the beginning of the waiting entities”. OFF-SHIFT: When a resource is taken off-shift (capacity=0) all units are off-shift. Current Standard Library behavior causes all processes to be suspended (Suspend/Resume Steps) while it is off-shift. This essentially means that everything is “frozen” in place. The entities are not removed from the resource, but rather just suspended so no progress is made during the off-shift period. When the off-shift period is complete (e.g. capacity > 0) then all the entities resume exactly where they left off. Unfortunately that last phrase is what causes the unexpected behavior when you suspend at one capacity and then resume at another lower capacity. You are essentially combining the two above paragraphs. You suspend all activity while off-shift, then after you resume, you will behave as though you had just reduced the units in service, which under the default behavior says keep working on the entities in process until they are completed. In your case, it sounds like you would want to add content to the On Shift process so that if capacity is set to less than the number busy, that you would want to Interrupt the remaining entities and send them back to the entry queue. And then perhaps build that behavior into a custom Server object and use that object routinely.
    1 point
  50. A common way to create object definitions in Simio is by combining other objects, for example combining machines and a robot to define a work cell object. This type of object is called a composed object because we create this object by combining two or more component objects. This object building approach is fully hierarchical, i.e. a composed object can be used as a component object in building higher level objects. A second, more basic method for creating objects in Simio is by defining the logical processes that alter their state in response to events. For example, a machine object might be built by defining the processes that alter the machine state as events occur such as part arrival, tool breakdown, etc. This type of modeling is similar to the process modeling done in traditional modeling systems in use today such as Arena or GPSS. An object that is defined by describing its native processes is called a base object. A base object can in turn be used as a component object for building higher level objects. The final method for building objects in Simio is based on the concept of inheritance. In this case we create an object from an existing object by overriding (i.e. replacing) one or more processes within the object, or adding additional processes to extend its behavior. In other words we start with an object that is almost what we want, and then we modify and extend it as necessary to make it serve our own purpose. For example we might build a specialized drill object from a generalized machine object by adding additional processes to handle the failure and replacement of the drill bit. An object that is built in this way is referred to as a derived object because it is sub-classed from an existing object. Regardless which method is used to create an object, once created it is used in exactly the same way. An object can be instantiated any number of times into a model. You simply select the object of interest and place it (instantiate it) into your model.
    1 point
×
×
  • Create New...