Jump to content

Search the Community

Showing results for 'add Queue tto entity like Batch Member'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
    • Help Getting Started with Simio
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI General Discussions
    • SI Sprint Releases
    • SI Shared Items
    • SI Ideas and Suggestions
    • SI Known Issues and Workarounds
    • SI Performance Tips
    • SI Non-US Cultures
    • SI Student Competition
    • SI Educational
    • SI Libraries and Objects
    • SI Animation and Visualization
    • SI Distributions, Functions, and Expressions
    • SI Simio Tabs
    • SI Experimentation and Optimization
    • SI Functional Approaches
    • SI Industries / Domains
    • SI Types of Simulation
    • SI Emulation
    • SI API

Categories

  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


First Name


Last Name


Company/University Name


OCCUPATION


ICQ


WEBSITE


YAHOO


AOL


LOCATION


FACEBOOK


GOOGLEPLUS


SKYPE


TWITTER


YOUTUBE

  1. Thanks for the example! I see you put the Selection Goal property as "Random", but what happens if I want it to depend on a entity's state variable, for example in my entity I have a state variable that can have the value of 1 or 2, and when it reaches that TransferNode1 I want it to decide which is that entity's destination based on that state variable. You can only use the keyword "candidate" in that property's expression, but how can I refer to the entity that is being transfered and to its state properties? Thanks!
  2. This is my first time using this forum so I hope I am posting this in the correct section. I am currently busy with a problem involving the dust suppression program at an open pit mine. In open pit mines water trucks are used to maintain the condition of haul roads and reduce mine dust. Water trucks load water from refilling stations and traverse the road to spray water. After the water is exhausted, the water truck travels toward one of water stations for refilling and then continues to traverse the roads to satisfy the watering patterns. The water trucks run 24 hours per day.In practice the watering frequency of each road is related to the traffic intensity of haul trucks. The period of effectiveness, after the road has been watered, can range from 30 minutes to 3 hours. Regular light watering at approximately 0.3-0.5l/m2 is much more effective than infrequent heavy watering. To simplify the problem each road will be assigned a watering frequency (e.g. every 60 minutes) and a sliding time window (e.g. 10 minutes). The water can therefore be sprayed on the road within the given time window (e.g. 50 to 70 minutes). If the trucks service the road more frequently than every 50 minutes the road will be over watered and this can cause a host of problems. If the trucks water the road less frequently than every 70 minutes dust aggregation will start becoming problematic. In order to satisfy the water demand of the roads, it is possible that a truck waters a road segment first, then travels along the next road segment without watering it, and then waters another road segment. The road segment that a water truck traverses without watering is called a dead heading. A bidirectional road has to be watered in each of the two directions Empty water trucks are refilled at the refilling stations. A refilling station can serve a limited number of trucks at the same time. Also, a limited number of trucks can wait before being refilled. Hence, every refilling station has two kinds of capacities: the capacity for refilling the trucks and the capacity for holding trucks. If a refilling station is overloaded, some trucks need to be reassigned to a different refilling station. My main problem at this stage is how to model the dust aggregation on the haul roads. I started by setting up each road as a source server sink and then only displaying the server queue. The entities can then be modeled as dust clouds. The trucks then tend to the servers as operators. This still does not give the desired outcomes. I’m struggling to schedule the trucks to move on the shortest route and then return to the nearest filling station once they have depleted their water supply. Does anyone have any other ideas on how to approach the problem? Thanks for your help! Regards Carl-Gustaf Gericke
  3. Basically, I want to know how SIMIO creates the time between entity arrivals. Does SIMIO create all the times at once or the program does it dynamically (one at a time)? My problem is that I'm using the Arrival mode "Time Varying Arrival Rate" and for every day of simulation I want to change the "rate scale factor". If I do this with a state variable it doesn't work. For explample, if on day 1 I have a rate scale factor equal to 1 and on day 2 it's equal to 100, in day 2 the times between arrivals don't change at all.
  4. Hi, I tried this library and it is a nice thing to work with. Few suggestions: 1.) It took me some time to get the difference between ForwardandBack and LeftandRight. 2.) Crane can, to my great suprise, transfer entities to nodes out of Bay. This happens only if the node is outside bay in the direction of cab movement. If it is outside bay in the direction of Bridge movement, warning appears. 3.)If Crane initialnode must be the same as bridge initialnode, it should be nice to have this set by default. This is not possible in Simio at the moment I think. 4.) It would be nice to have transparent Bay with borders only (Or a choice to . Sometimes we have layout of factory and bay does not look good and hides important things on layout. Ok I found that I can change bay as any other object but still transparent color for objects would be nice. 5.) Crane and other crane components do generate a lot of data in trace. It would be nice to have possibility to swich this off just for some steps inside crane and co. I used it in a model that has a simulation time of 1 month and this made my trace impossible to filter and analyse. 6.) If I have Bridge1 initialNode and CraneInitialNode the same as node where my entities go to be transfered, I get this error. I has something to do with fact, that bridge does not have to move, so it has movement.rate == 0 7.) In one model the lift started to fall into depth. This happens if entity has destination node set to specific and to the same node where it is. (e.g. if TransferNode1 is set to Entitity destination type specific, NodeName = TransferNode1) then crane will fall in the depths.
  5. Thank you very much. I was able to create a new model with two servers and have my entities queue up in the server1's input buffer. Then I tried to do something similar with three servers where I want server1's input buffer to have entities queue up when server3 is busy. I have server2 in between server1 and server3. I set server2's input and output buffers to 0 and set server1 and server2 and paths as described below. Is this correct, to set the in between server's input and output buffers to 0? Everything seems to work as expected and I get a long queue at server1's input buffer. I also used a rate table with many entities going through. An interesting thing I noticed was that if I change server1 and server2 process times to 3 and 2 seconds respectively and leave server3 process time to the default random.triangular(.1,.2,.3) minutes. I also changed a few selection weights. I barely ever get a queue at server1 input buffer, and when I do, the time in queue is very small. I would have expected a significant queue with the rate table I am using. Does this sound correct? I also ended up getting a Simio error that I ended up sending to Simio, subject [sIMIO EXCEPTION REPORT] from mmashaie. This email includes the model. Thanks again. Your help has been great. Maryam
  6. I don't think you can dynamically create nodes while model is running, or at startup. So I think you would need to have a single input node, and output node, which you could then follow up with a single node that you could put all your pathing logic in. In that node, you could tell all of entity type A to go down path1, and all of B to go down 2, etc.
  7. I call it cheating because you can't scale it properly. Attached is how I would rectify that (Check out the Parent_Model). Using an entity instead of a server is valid, as it posses functionality we can't get out of the server (heading etc.). While I agree with you about the technicality of the term sub-model, I disagree in your interpretation of its function. Any model that contains a logical flow and is made up of custom logic, that I use within another model, I just call sub-model (for better or worse). The rest I just consider to be part of the provided toolkit. "Sub-models" are incredibly useful, until you need to start to modify things inside them from the Parent model, or need to change their height within the sub-model (sub-models do not scale dimension wise at all, while retaining usefulness). 3DRotatingServer.spfx
  8. I prefer “hack” to “cheat” That’s an interesting comment, though, about sub-models. I feel that in Simio the term ”sub-model” doesn’t really exist; or, rather it describes any model, so it doesn’t really mean anything. I understand the concept of a sub-model, but due to Simio’s object-oriented design any model is a sub-model. The standard library server, for example, is a sub-model. As is the default entity “ModelEntity” and the default model “Model”. So yes, in the sense that I created a custom object (or model) and then used it in another model, the Spinning Server is a sub-model. But then again so is the regular server The real "cheat" here is that the “server” is actually an entity and requires logic (i.e. processes) at the model level to assist with instantiation, (also, most of the parameters are hard-coded, which introduces scalability issues).
  9. Hello, I am interested in having routing information read into a model from an Excel spreadsheet. The basic problem is that I have several entity types that must be processed at one of many servers. There are capability restrictions (i.e. EntityA can only be processed at Server1, EntityB can be processed at Servers1, 2, 3, etc). I have a “capability matrix” as input data that is a table in Excel showing where each entity type can be processed. In the Simio model, I am using a transfer node to route each entity to an available (and capable) Server by using the “Select from list” entity destination. My customer is interested in analyzing the impacts of changing capabilities of the servers. Currently, all other inputs to the model are fed in using bound Excel files. However, the routing logic requires lists, which I have to manually create and/or edit. I would like to have these bound to a data table, or somehow reflect the data in the master input Excel file. Thoughts? Thanks, Adam
  10. Assuming you have a property or state named TargetTime, then you could delay each individual entity by "TargetTime-TimeNow". Regardless of the times that individual entities arrive, they will all finish their delays at TargetTime and then move forward together.
  11. I am working on a rather large model, and the starting conditions are rather important. I would like to establish exact start conditions prior to each excursion. For example, if I have 100 servers, I would like a certain number and type of entity in each server once I begin the run. Is it possible to establish this starting condition in some way? I cannot run my way to this condition due to both changes caused by random number generation and the unexplainable complexities that brought us to the current conditions.
  12. Simple approach: Take advantage of the fact that each model has an OnRunInitialized process that is called at the start of each run. --Create a table that contains all your initialization data. This might optionally be bound to an external file and automatically read if it changes frequently. --Define the OnRunInitialized process to search that table, create the entity(s), initialize the entity, and transfer it to the correct location. Look at the Simio Example (not SimBit) named RPsixample for an example of this approach applied to a simple scheduling model. More comprehensive approach: Take advantage of the fact that each object has an On Initialized add-in process that is called at the start of each run. --Create a table that contains all your initialization data identified by object instance. This might optionally be bound to an external file and automatically read if it changes frequently. --Define the On Initialized process to search that table for a matching object instance, create the entity(s), initialize the entity, and transfer it to the correct location. This can also set object characteristics as well, such as status, capacity, failure data, learning curve, … While this could be used by simply specifying the add-on process in each object instance, it is even more powerful if you create a custom object that includes a custom object-specific initialization process.
  13. The standard library vehicle has the option of a loading and unloading time per entity, but it is often difficult to model a situation where a vehicle stops for a specified time (like a bus or train). This object (with an example model) adds a single reference property and a single step to the standard Vehicle to allow you to specify that time. Smple, but convenient. VehicleWithFixedLoadTime.zip Done using Sprint 68
  14. That function does not currently exist. I have added it to our backlog, It should not be very difficult to implement. Right now you can use Vehicle1[X].ResourceState (Where Vehicle1 is just an example vehicle name, and X signifies the population member) - or just 'ResourceState' if you are attaching the status label - but this returns the numerical value of the Resource State...for example 0 means Idle, 1 means Busy, etc. You can manually convert these numeric values to words using an If statements similar to: Math.If(ResourceState == 0, "Idle", ResourceState == 7, "Transporting", " Busy") <-In an attached label. Thanks,
  15. Thanks for the suggestion. It now takes 30 seconds runtime for 1 million ... tokens, I guess that would be. First time I try this low-level approach. I followed your instructions (begin-seize-delay-release-tally). Read the Reference PDF as well. Added a Resource1 though (so there was something to seize?). Can see utilization of Resource1 (seems correct at .8321), but no queueing stats and cannot find any results from that Tally Statistics. Will continue to try. Still, I find it slow. I have a Javasimulation of an M/M/1 that takes only 4 seconds to run 1 million customers (=tokens/entities in Simio). Each customer has to be generated, wait for a resource (seize), delay, release it and ends up in a sink (that tallies). Same computer. The javasim has none of the GUI that Simio has, but then, there's no GUI processing overhead in FastForward/experiment mode. And, the Javasim reports queue and worker statistics (mean, variance). Perhaps Simio is collecting excessive statistics (if so, can it be turned off)? Or is it that I made a mistake by adding a Resource1 (to be seized)?
  16. Hi, I have made an example model illustrating how to do what you are asking. In the attached model, I have 1 entity that requires a 40 hour delay & a Secondary resource for processing. I have a Day Shift worker and a Night Shift worker, each work 12 hour shifts, and the Entity seizes whichever is availabe from a list upon entering the Server. By default, if a secondary resource is seized, the worker will attempt to finish the current job before going off-shift. This is nice if there is something like 15 or 20 minutes left on a job, but not ideal if there is 28 hours left... What I did was created a process that gets Triggered by the Workers' OffShift Add-On process that Interrupts Processing > Releases the Worker > and Transfers the Entity back into the Server Object - which will then start the whole processing process all over again and seize whatever worker is available. Note that in the Interrupt Step, I set the Interupted Process Action to Resume Delay, and the Save Remaining Process Time property to Record ths remaining processing time to the ModelEntity.ProcessTime State (which is initially assigned to 40 in the Source and then gets updated upon every interrupt) For more examples of Interrupting processes see the SimBits: InterruptibleOperator, InterruptingAcrossMultipleServers, & InterruptingServerWithMultipleCapacity Thanks InterruptingProcessingToSwitchWorkers.spfx
×
×
  • Create New...