Jump to content

Leaderboard

Popular Content

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

  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
    3 points
  2. 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
  3. Pls refer to below paper for integrating simio and M/L algorithms. very good read. SIMIO和机器学习算法的整合框架【AI】Aston大学Andrew Greasley博士.pdf
    2 points
  4. 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
  5. 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
  6. Thank you .. this is amazing stuff. By the way, is it possible to import and export Process step as well?
    2 points
  7. 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
  8. 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. ***********************************************************************************
    1 point
  9. https://jobs.arup.com/jobs/aviation-analyst-9522 Arup is proud to be recognized by Fast Company in their third annual Best Workplaces for Innovators list, which honors businesses and organizations that demonstrate a deep commitment to encouraging innovation at all levels. We find solutions for some of the world’s most complex problems. From climate action to social value, we consider the broadest impacts of our work. We strive to build a more sustainable, resilient, and equitable future. This purpose shapes our culture and has made us leaders in sustainable development. You’d be joining our multi-disciplinary design teams focusing on technical excellence and innovative solutions that create a better future for people, places, and the planet. Start Here, Go Anywhere! Want to work for a company that invests in innovation and people who catalyze impact in the built environment? Arup is proud to be recognized by Fast Company in their third annual Best Workplaces for Innovators list, which honors businesses and organizations that demonstrate a deep commitment to encouraging innovation at all levels. We find solutions for some of the world’s most complex problems. From climate action to social value, we consider the broadest impacts of our work. We strive to build a more sustainable, resilient, and equitable future. This purpose shapes our culture and has made us leaders in sustainable development. You’d be joining our multi-disciplinary design teams focusing on technical excellence and innovative solutions that create a better future for people, places, and the planet. During your career at Arup, you’ll have the chance to engage in a fulfilling career and work with some of the most highly respected engineers and specialists in the world. You’ll also get the opportunity to work on exciting and significant projects, delivering quality work that has a positive and lasting influence on the community and the environment. Responsibilities of this specific role will include, but not be limited to the following: • Perform capacity/demand assessment for planning studies using various tools, methods and techniques • Conduct passenger and baggage flow simulation modelling, interpret results and identify solutions • Develop spatial requirements and program development for infrastructure and facilities planning • Undertake data driven analysis to gather insights including research-based projects • Assist with development of automation tools using programming languages • Assist with development and review of forecast demand • Collect and collate data from surveys, benchmark studies and other sources as needed in support of planning studies • Assist in preparation of reports, presentations and deliverables including illustrations, tables and drawings to communicate complex technical ideas through a graphical and visual approach for a wide range of clients • Generate and contribute to planning and operational reports and provide advice to planning and design teams, airports and airline clients • Project work includes many of the most significant complex airport developments globally • Some travel may be required in the longer term Qualifications Required: • Bachelor’s degree (Master’s degree preferred) in Civil/Industrial/Operations Research/Transport engineering or other relevant disciplines • 2-5 years of increasingly responsible experience in airport planning and analysis • Knowledge/experience of analytical techniques and tools applied in airport planning including spreadsheet, database and simulation software such as Simio, CAST or others • Python or R or similar programming skills preferred • Proficiency in Microsoft Office applications (Word and PowerPoint); advanced Excel user • Demonstrated strong numeric analytical competence and strategic thinking capability • Good written and verbal communication skills essential for team-based working • Excellent planning and organization skills and attention to detail for our fast-paced environment • Must be highly motivated, proactive and willing to take on new challenges Arup is the creative force at the heart of many of the world's most prominent projects across our industry. We offer a broad range of professional services to clients around the world that combine to make a real difference to our clients and the communities in which we work. Notable Projects: • Toronto Pearson International Airport • Montreal Trudeau International Airport • New York John F. Kennedy International Airport • Chicago O’Hare International Airport • Los Angeles International Airport • Istanbul International Airport • London Heathrow International Airport • Singapore Changi International Airport Benefits that Work - At Arup, we have a comprehensive and valuable benefits program that works for our employees and their families. These are 100% paid for by Arup expect for optional life insurance. These benefits provide health and welfare security for you as well as paid time off for rest and renewal. Our Global Profit Share Plan (paid bi-annually) provides an opportunity for you to share in the success of the Firm. As a valued employee of Arup, you can also choose to participate in our GRRSP 5% company match to help you save for your future. COVID-19 Vaccination Requirement - Arup requires all new employees to be vaccinated for COVID-19. Arup is an equal opportunity employer and consistent with federal, state, and local requirements, will consider requests for reasonable accommodation based on disability or sincerely held religious beliefs where it is able to do so without undue hardship to Arup. Flexible Working - We believe that flexible arrangements create a more inclusive way of working that supports our diversity and the wellbeing of our people. Options for alternative schedules and the ability to work outside of the office for a portion of your workweek are available. Arup is an Equal Opportunity Employer. We consider all qualified candidates regardless of national origin, veteran, disability, sixual orientation, gender, gender identity or other status protected by law. If you need any assistance or accommodations due to a disability, please contact us at americasbenefits@arup.com. For the fourth consecutive year, Arup has been named one of Greater Toronto’s top employers! Greater Toronto’s Top Employers for 2021 are recognized for exceptional human resources programs and forward-thinking workplace policies. Find out more about what makes our Toronto office an outstanding place to work here: https://bit.ly/2B3QYL8
    1 point
  10. Check the SimBit project called "Neural Networks" for a detailed example of this new feature.
    1 point
  11. Sebastian, I don't know if this is what you need, but maybe if you change the paths to connectors and set the 4th server input buffer to 0 it might work. rds. block_test1.spfx
    1 point
  12. Sure, here you are. You can try this one. The inputs are the function name without .m and the function address. CallMATLAB2.dll
    1 point
  13. Hi, Your issue is that Input@STBR_01_54 is a reference to a Simio object. You want to write out the string name of the object. You should use Input@STBR_01_54.Name Regards, Lucas
    1 point
  14. since exclusion property checks the expression at the start of the simulation run to determine if this step should be excluded from the run my suggestion does not work. simply omit this suggestion:( and thus decide step before the tally step best suits your purpose.
    1 point
  15. To the best of my knowlegde every process can be enable or disable by using ProcessName.Enabled. You can assign this state variable true at the beginning of the three hour period (not a must but probabily using a timer element) and false at the and of the three hour period. I hope it works?
    1 point
  16. simply increase your customer types as credit card and cash payers. For example, expand your table by includeing customer1creditcard and customer1cash, customer2creditcard and customer2cash, customer3creditcard and customer3cash? Also, rearrange their probabilities, sequences, etc. as well. Is it ok?
    1 point
  17. Hi Alberto, I recommend you take a look at a standard Vehicle object and compare the VehicleX3 to see the updates that were made. Only 6 new Properties were added to the standard Vehicle to make VehicleX3. The numerous other Properties were inherited from the Vehicle and were not changed. There are other small changes for the States, Events, and Elements as well. Doing a comparison between the standard Vehicle and VehicleX3 will be the most beneficial way for you to learn. Additionally, all the updated Process Logic in VehicleX3 has been colored. Any grey process steps were inherited from the standard Vehicle. Happy modeling, Liz
    1 point
  18. 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
  19. Hi Alb, What I would suggest is for you to use process logic to create your order entities rather than a source. The Create process step can be used to create entities just like a source, and you can put in logic that looks up the percentages. I would also suggest you use timers or perhaps a source to just create trigger entities that tells your model when to fire events (perform logic). For example, in your above case, perhaps have a source that creates an entity at 7pm, 7:30pm, and 8pm. These entities then trigger the process to be executed that decides the percentage of entities to be created at each time.
    1 point
  20. Is it possible to run stored procedures directly from simio? I have seen that there is the DbExecute step that I can use to run an SQL-statement. Is there something similar for stored procedures?
    1 point
  21. I've include my suggestion in the model attached. I assigned low priorities to each vehicle types. Then, select vehicles according to these priorities. It seems it works? SmallModel.spfx
    1 point
  22. 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
  23. Alternatively, you could limit the number of entities created by the source. Check Maximum Arrivals property under your source's Stopping Conditions.
    1 point
  24. If you right-click on the Standard Library you'll see a Show Deprecated Objects option. The Workstation should appear in your library after that, but you could try to solve this using servers instead as a bonus challenge.
    1 point
  25. Simio has a number of enabling features that are not widely known. When you save a project file, most people use the .spfx extension which is a compressed binary file. But if you would like to take advantage of a version control software (VCS), you generally want the VCS to manage versioning and file compares and file compression, itself. Simio has a multi-file project format referred to with a .simproj extension, which is designed with exactly that purpose in mind. Ths format involves a single key simproj file and a related set of folders that contains the uncompressed version of all the included components. This allows VCS to recognize when a small change to your model is made that it only needs to save that small change and not the entire model. While this works with any VCS, internally at Simio we use Tortoise SVN (http://tortoisesvn.net/) which works quite well for us. Simio also has some built-in features to help track and maintain model/library versions. If you right-click on an object (a model) and select "Properties" you will see a set of model properties for that object including Version. This version number is referenced when loading this object as part of a library to help evaluate if an object has been changed and if the change should be accepted (more on this below). Some additional model properties including Description, Keywords, and Categories. These are available in your model, plus they are available externally. For example the Sample SimBit Solutions interface uses these properties to help you quickly find a SimBit of interest. Some of them are also used in the Model Documentation Report. Speaking of which, the Model Documentation Report is designed to provide a quick way of examining all non-default parameters in your project. It can be useful to instructors evaluating assignments or as a way to record or share a snapshot of your model data. If you click on your Project name in the navigation window, the click on Models and the Edit ribbon you will see various options for subclassing, cloning, and copying library objects. These options, while subtle, give you greater control over how the lineage of an object wil be handled. You will also see options on this ribbon to protect your object from viewing and editing, and also to describe changes that have been made with the latest version.
    1 point
  26. First, you should define a "NodeReferenceState" on ModelEntity. After finding the appropriate sink to send use "set node" step to assign the found sink's input node as the destination node of the entity (ModelEntity.NodeReferenceState=input@sinkx). Then, do not use transfer step. Instead, set the entity destination type property of source object as specific and also set node name property as ModelEntity.NodeReferenceState. By this way each entity will find its own way via the links you defined.
    1 point
  27. Hi Nico, I haven't tried this out, so I can't guarantee this to work, but you could specify a Timer that goes off every 7.2 seconds. Additionally, you'd create a process that runs on the triggering event with the name of that Timer. This process Assigns a new value of 1 to Schranke1...Schranke6.CurrentCapacity. I'm unsure whether a delay is required for the entities to move through the system, but I'd try adding a Delay of Math.Epsilon after this Assign step, to ensure they do. Then, with a new Assign step, change the CurrentCapacity of Schranke 1 through 6 back to 0. You may have to change the Initial capacity of all your gates to 0 in the Facility window. Also, make sure you change the Off Shift Rule to finish work that has already started, on all your gates. Hope this works. Tom
    1 point
  28. You can sum the "NumberOfRollContainers" whenever a member entity enters the combiner object by using "on member entering" property under "state assignments" section. Then, set this total to the "TotalRollContainers" state variable of the parent objet by using "before exiting" property of combiner object.
    1 point
  29. Is this what you are looking for? As attached! Best regards/Jeff Model_totalRollContainer_JZ.spfx
    1 point
  30. Because we assign the speed of path 3 and 5 to PathXXX.Contents.NumberWaiting at assign3 step of process 1 which is triggered whenever an entity enters node A. As I said in my previous post this expression may not serve your purposes. This is only for illustrative purposes. Here the message is you can increase all existing entities' speed (but all of them at the same time) on path 3 and path 5 whenever the process1 is triggered. Also, you can trigger process 1 by using monitor elements (which seems more suitable for your purposes). For example, using a monitor element you can track the number of entities on each path seperately and whenever this value crosses some treshold value (got congested) you can trigger process1 using monitor element. Note that in your attached model status labels shows how many enitities exist on each path. At the end, change the assignment expression of assign3 step of process1 accordingly.
    1 point
  31. As far as I know you can not accelerate the speed of an entity on any link? you should use tricky solutions to overcome this difficulty. One of the trick is setting the speed of entities to infinity right after entering node a. then changing the desired speed of path 3 and path 5 to some meaningful values. In the attached model this trick is applied. Note that the assigned values (i.e., Path3.Contents.NumberWaiting) should be replaced by any reasonable values. This assignment is only for illustrative puposes. Note that by this way we made the speed of modelentities limitless but at the same time we limit their speed with the speed of paths. you can do any other tricks as well... One of them maybe changing the type of the modelentities right after entering path 3 and path 5 (say path3_modelentities and path5_modelentities) by creating a copy of the associatedobject. Be sure to destroy the original one. And then whenever you need to increase their speed you should search their population by a search step and then assign appropriate speeds to them individually. These are the ones that come to my mind at the moment, but you can find some better methods by pondering. EntitySpeed4_me.spfx
    1 point
  32. 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!
    1 point
  33. Dear Sean, you can create a new referenced property on WorkSchedule property of Server. and in Experiment windows reference to various pattern-based workschdule name. Best regards/Jeff
    1 point
  34. If the entity is created (similar to the Bicycle Assembly example in Simio) using an arrival table where the arrival time is specified in the table, the entity will automatically be assigned the associated row in that table. To assign a row reference to an entity without such logic, you would have to have the entity enter an add-on process when it is created and then use the SetRow step to assign the entity an associated row in a given table. The GlobalCurrentRowNumber you mention above could be used as the RowNumber assigned for the entity within the SetRow step, provided there were no conflicts with relational tables.
    1 point
  35. 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
  36. You asked for "a way to start/stop timers on a specific entity without creating a bunch of different events". As I understand it, Enable is just a switch that stops/starts the Timer clock. It has nothing to do with triggering events and does not require any events. So if you set a timer to fire in 60 minutes, then after 10 minutes disable the timer, the timer should fire its event 50 minutes after it is enabled.
    1 point
  37. Hello, there! I'm quite new to Simio. I saw "SchedulingDiscretePartProduction" example recently and noticed that there was B2MML data schema which was very impressive. So, What i have wondered is whether the data schema in the example is exactly same as B2MML data schema. Or, are there some changes from original schema? In addition, does anybody know where to get some information about B2MML data schema? Thank you. Jay.
    1 point
  38. I think "TheCombinersName.MemberInputBuffer.Contents.AverageTimeWaiting" is the expression you are looking for. -Adam
    1 point
  39. 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
  40. I have created a simple model that I believe may have solved this problem. I used a dynamic selection rule of largest value first. I then multiplied the entity priority by the time in system. This expression can be extended to include other factors like the equation in the OP. Visually watching the model, it does as expected. If anyone has any suggestions or a better way to model this, feel free to share! I attached the example model. Example Model.spfx
    1 point
  41. Is there an example or a SimBit which shows how to do this?
    1 point
  42. I always wanted an easy way to make my models look tidy. One of our developers created this add-in which can align and evenly distribute nodes or objects added to a list. I think usage is pretty easy and will help in building models with many nodes etc. Feel free to use it as a early christmas gift from LOGIO. SimioAlignAddon (2).rar Would be nice if someone in SIMIO will integrate the code into standart product in future, so we can just select multiple objects and align with rightclick. Petr
    1 point
  43. Hi J, The following two function might help: StandardWeek.TimeUntilNextValue(TimeNow) - the amount of time before a change in Schedule StandardWeek.TimeOfNextValue(TimeNow) - the duration of the next value in schedule StandardWeek.NextValue(TimeNow) - the next value in the schedule So create a schedule and reference the schedule in your expression builder. Regards, Willem
    1 point
  44. You were close, but resources and vehicles all use ResourceState to track their status and that function is referenced by the generic expression: ResourceName.ResourceState.AverageTime(stateValue). You can find the numeric value of StateValue in help if you search on the topic ListStates or ResourceState. In your case the expression might be: Vehicle1[1].ResourceState.AverageTime(7) for Transporterting
    1 point
  45. Hi, The conversion of Distributions to the correct Simio format has been an issue for me for a while, thus I created this macro to convert from @Risk distributions to simio format distributions. I hope that more will share there conversion methods from other software. Regards, Willem DistributionsSimioTo@Risk.xlsm
    1 point
  46. 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
  47. I can catch you on skype to show you for I have various timers performing different things.... One example would be where I have priority based maintenance...i.e...Shutdown...Planned...Breakdown....each running off of their respective timers...As these activities timers can overlap as they form part of their own unique distributions, events are fired based on the priority constraint to allocate the transporter a different state...The logic involves correctly disposing of the tokens in a wait state of the previous constraint process as well as resetting and adjusting the timers....i.e....If I am on breakdown and scheduled maintenance hits, then the schedule maintenance process is executed and Breakdown processes stopped or delayed until a corresponding event is fired....this includes material handling assignments, crew, etc.... Another example would be dynamic generation of "demand" transporters based on a varying monthly rate dictated by variations in supply due to statistical randomly generated constraints... The timer is adjusted based on a change in arrival rate which is calculated and dynamically updated to ensure that there is always just enough demand for current available supply...This forms part of optimized planning for bulk carriers which cost a hell of a lot of money if they are just chilling in the ocean... But ultimately and perhaps the crown jewel is handling flow transfers from one transporter to another...since i had developed the logic before this super awesome new release of the transporter library, I needed events to check when the load or discharge level had been reached, or the full or empty state of the flowcontainer had been reached on either transporter, or objects fired events which needed to seize loading/discharging and stay, or seize loading/discharging and move away, as well as handle inherent timers on the transporter for breakdowns that will execute different processes depending on the type of breakdown....i.e. move the transporter or stay put... It all sounds really complex but its very simple.... Hit me up on skype...
    1 point
  48. 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...