Jump to content

Search the Community

Showing results for 'tally wait times'.

  • 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. Hello all and thanks for letting me be a part of Simio Insiders I am closing in on having done my first source, server, sink simulation. It is done as a part of a University study and is due next week. Feel free to download my attempt and have a look at it. The process I want to simulate is as follows: 1. Chef recieves an order of 1-6 beef patties 2. The chef puts the patties in a grill, that has capacity of 12 patties, and a base cooking time/process time of 1 minute total (that increases with order size) 2a. If more orders come in, while the grill is preparing an existing order, they have to be put in queue, as the grill should not be interrupted. When the grill/server is free again, it will take all - or up to 12 - from the queue, depending on how many orders are in queue 3. The patties go to the sink I am using a Time Varying Arrival Rate table from real life data, on the course of 2.5 hours. The trouble I am having is as follows, and please, feel free to only answer some of them, if you don't have answers for all: _____________________________ a) Order size We want to have orders vary from 1 to 6 patties, per order, in a way that resembles this distribution: 1 (min order size) patty ; was ordered 2 times 2 patties ; was ordered 18 times 3 patties ; 9 ... 4 ; 7 5 ; 3 6 (max order size) ; 1 I have not been able to imitate this behavior. Right now, I use Entities per Arrival to be Random.Possion(2), as this looks a bit like this distribution above, but the flaw with Poisson is (I believe), is that an order-size of 0 patties is a possibility, which doesn't make sense. I have also been playing around with a lookup table, without a real clue on if that's the right thing to do. What should I do to resemble this? _____________________________ b) Server (grill) behavior The problem right now is, that the grill (server) can keep taking in patties, even if it's already processing. That doesn't make sense, if you think about it, since you can't put patties into a closed grill. I want it to start preparing an order, as soon as it gets it, and just let the queue of patties build up until the grill is free again. Then, take up to 12 patties into the grill. _____________________________ c) Process times For the grill, I want the process times to follow the amount of patties in the grill. The grill takes 60 seconds to prepare a patty, and we assume each patty takes 2 seconds to load. Therefore, we choose to simplify that: 1 patty takes 62 seconds to make 2 patties take 64 seconds 3 ; 66 sec 4 ; 68 sec 5 ; 70 sec 6 ; 72 sec 7 ; 74 sec 8 ; 76 sec 9 ; 78 sec 10 ; 80 sec 11 ; 82 sec 12 (max grill capacity) patties ; 84 sec Which is basically y = 2x + 60 In the simulation I uploaded, each patty, no matter the order size, just takes 60 seconds, which is incorrect. How do I get the grill to behave like this? _____________________________ d) Batching After getting the server behavior to work, I want to work with the utilization of the grill. My idea is, that if the server (grill) is told NOT to start preparing patties right at the moment, it receives the order, e.g. if the quantity is small, but instead waits a certain amount of seconds, to see if more orders should come in, maybe the total wait can become less. There shouldn't grow any large queues with the current arrival rates, but if we double it, it might become relevant, so customers shouldn't wait for too long. Another option would be, that it waits till a certain amount of patties are in queue, such as a minimum of 6. _____________________________ Thanks again, and I sure hope you will take a look at this! You are more than welcome to edit the file, but it is also fine, if you just type in here. Best regards, Johan Grill.spfx
  2. I build my simulation model with some troubles, some adittional help would be nice! I am having problems with tables. I want to do a arrival table ( as has been said) but fails to get the results. Since I have two entities I build a two node lists for two rounting groups ( for each entity) and in the table with I specifiy each entity interarrival time ( for excercise pourpuce) with which rounting group goes to.... I mean If I set a table with arrival times I don't get statistic results like ultilization and so on... and do I have to set an outputsource any more specific ( If I did this in tables already?) How can I get table with interarrival time and rounting group? Do I have to bind this to? So to be more clear: how to set tables in arrivals or interarrival time for ( each) entity coming in one source and in which rounting group each entity goes to? thank you in advance! beautysalon - Kopija.spfx
  3. One option would be to have an arrival table, instead of fitting the data to a distribution - the arrival table would include the time that the arrival occurs (based on your table above) and then you would reference the arrival table from the Source using Arrival Mode == 'Arrival Table'. With an arrival table, you could also include an Arrival Time Deviation (Source - under Other Arrival Stream Options) property as a distribution, which would add some randomness to the arrival time. Another option is to use the Arrival Mode == 'Time Varying Arrival Rate' where you would specify a Rate Table (Data tab) that would include varying rates for different times of day. The interval size and number of intervals can be easily changed. The Rate (events per time period) would include the mean of an exponential distribution and would allow the rates to change hourly or every x hours. You may wish to review a few of the Sample SimBit Solutions (Support ribbon) under the Arrival Logic category of SimBits for more options.
  4. You cannot hold an token associated with an entity at the SetNode step in a process. The token can be held at a Wait step or Scan step.
  5. I would add a process something like this to determine which entities have waited too long and Tally them: Then execute that process at the point you want to record it, something like this: Then an expression like LongWaitEntities.NumberObservations would give you the number of observations in that Tally. You will also see a TallyStatistic that provides the average value of the observations: I was having problems uploading multiple pictures so here is a composite, but out of order:
  6. As I downloaded the model it had an error in the RankingRuleExpression of Cashier 1. This field requires a number and you were giving it an entity type. Instead: --Set priority of OTCustomer to be 1 and set priority of Prescription customers to 2. --Set this ranking rule as Smallest Value First with the expression "Entity.priority". Now, whenever both types of entities are waiting, the OTC will be selected first. To select from the set of cashiers, --Create a Node List named Cashiers (graphically or in Definitions tab) containing Input@Cashier7, 6, ...Input@Cashier1. The order matters. --For your WaitingArea node select: ----EntityDestination: SelectFromList ----NodeListName: Cashiers ----SelectionGoal: Preferred Order (or experiment with other rules) ----SelectionCondition: Candidate.Node.AssociatedObject.Name=="Cashier1" || Entity.Priority==2 The first 3 properties above force all entities to individually select a cashier, starting from bottom to top (selecting Cashier1 only if no others are available). The SelectionCondition says Any entity can select Cashier1 or priority 2 entities can select any cashier. The BlockedDestinationRule of Select Available Only forces entities to wait at that Waiting_Area node until a Cashier is available. Unfortunately node doesn't have a way of displaying entities that are waiting. If you want to display and control entities I recommend replacing that node with a Server with 0 process time. This is an easy way to provide an output node with a station where entities can wait. Without changing it to a server, entities will wait on the incoming path. Change the AllowPassing option to False on both those paths to see the entities waiting there. This doesn't solve all your problems but it should give you a good start while not taking away your opportunity to learn (why I gave you instructions instead of a model )
  7. Hello. I am a student studying Operations Management at Aalborg university Denmark I am currently writing a project with a group centering about the queue system of a pharmacy. They currently have a system where they start opening additional registers when the waiting time for a customer exceeds 10 minutes. A queue time that does exceed 10 minutes is according to the national association of pharmaceuticals unacceptable. I would therefore like our simulation to reflect this by opening and closing registers based on the waiting time so that we can see the effect on number of customers waiting more than 10 minutes if they start opening additional registers once a customer has waited for example 8 minutes, 6 minutes, 4 minutes and so forth. (to see the effects of trying to prevent long queue times rather than winding them down once they have arisen) Another requirement is that there are two types of customers where one is "over-the-counter" and the other is prescription customers. Register one must prioritize OTC customers and take prescription customers if none of the other type is in the store. the other 6 registers must exclusively serve prescription customers. additionally I would like the maximum amount of registers to be 5 between 12 to 13 and 14 to 15 as the employees have breaks during these hours. I am completely new at this program and I have a hard time figuring out how to properly use the features and our professors (even though they are the ones that told us to use simio) are unfortunately inexperienced in the program too so I decided to come to this forum for help. I have uploaded the current version of my model as well Any tips or guides that can help me achieve the functionality I wish for this simulation would be greatly appreciated as we are completely stuck at the moment Thanks for your time reading and if this is somehow not on the correct sub forum please let me know Pharmacy Model v1.11.spfx
  8. Hey I am new member and a new user of simio! English is my second language so bear with me, great product btw! I would like to ask some questions about simulation that is unknown for me.... for example ( in my case) I have a real time between costumers, real times for each specific server, and server 8 ( that costumers all go through).... So I have a make a simulation. situation of this specific queueing is: I have 1 source and 7 servers ( the first 4 are equal or Equivalent and the server 5,6,7 are equal). MY question is following: -Can I make a one DATA table for servers 1-4 ( they are equvalent) and another for 5,6,7 ? Or do I have to create 7 data tables ( for each on own)?? - And there isn't real FIFO neither LIFO ranking rule, there is specific, And I don'0t know how to adress this to add specific ranking rule for my case - Do I have to make 2 model enteties cuz there are 2 differnt servers for this case? My primary goal is utilization of server 8! is ranking important or it doesn't matter? thank you very much!
  9. Thank you! The table method seems to do the job. However, I do question the 'RandomRow' Expression. Is this truly stochastic? I ran the SIMBIT 10+ times, and each time the first 4 parts were Part B and the 5th part was a Part C. I noticed this with my model as well. My model does create the appropriate percentage of parts based on my table, but I'm not sure that it's a true mix (as far as arrivals go) each time I run it. Thanks for all of the help. -Mario
  10. I recommend looking at the SimBit called TableReferenceInRepeatingProperty.pdf. You can reference your data table on your server object for the processing times by right clicking on the Processing time property of the server object. Then select Set Reference Property. Click on the DataTableName.ColumnName that you want to have the server point to. The other option is to use the Math.If( ) expression. To find out more about it's syntax, please read the section called Math Functions in the help documentation. Judy
  11. Hello, The Average Waiting Times for all 3 entities don't look right. They are in the order of 0.0592 to 0.0854 minutes. Can someone help me? Thank you. Walter Assemply Line.spfx
  12. You can follow up the logic I included. By this way you can calculate cumulative times for either workers or parts or both. ExprmntResponseResults.spfx
  13. Thank you for the model provided.. it gave me some great insight on some of the items I'm trying to achieve. Just to clarify, it looks like Response 1-3 are each of the Entity(Part) total times and Response 4 is worker 1's total time. Is there a way to have a cumulative time for this? For instance, all three workers were assigned to Server 1, and then the tallystatistic will add the time together. Or, do I just have to do some post calculation/analysis using Excel from an exported CSV? I appreciate all of the help! -Mario
  14. Hello everybody! I need some help to model a workers logic. I already read most of topics about workers and went through the MoveableOperator and InterruptibleWorker simbits. I have a line with 3 stations and 3 workers. The 3 of them can work at the first server. Then only 1 (that is identify) can work at the 2nd server and only another one (also identify can work at the 3rd server. I want that the 3 of them work initially at the 1st server. As soon as an entity arrive at the 2nd or 3rd server, the identify worker be seized to do the job at the correct station. After the job is done at the 2nd or 3rd station, I want the worker to be released to be seized again at the 1st station so that it help to finish th work in process at 1st server. The problem can be set in another way. Each server as an accredited worker and worker from servers 2 and 3 can be seized by the 1st server if they have no work at their own station. I've already tried several things but it never work how I wanted. The biggest problem was th e following. there is a worker that is seized by the wrong entity or entities wait to finish a process to seize a worker. So if I understand well the Simio logic and if it's possible, I need to know how to command which entity have to seize which worker and how to seize a worker during an entity is processed. Thanks in advance!!
  15. Thank you very much for your kind help, for sharing your knowledge with me. Actually i am working with lean manufacturing and lean thinking as well, and i will work on your advice. Concerning the infinite capacities and 0 processing times, i am traying to represent an storage space where pieces will stay storaged until they are pulled for the next precess (enfriados). I am indeed thankful to you. God bless you! Carlos Alberto
  16. To get you started I changed the right side of your model to make it do what I think you wanted at the last 2 sets of servers. The RoutingGroups you needed were pretty simple. I didn't work back any further to the left because I didn't know what you were doing with the infinite capacities and 0 processing times.ExperimentoBucleV1.spfx
  17. Most simulations are "push" -- as soon as a part is done, it pushes on to the next server where it waits for processing. It sounds like here you are looking for a "pull" system -- each part remains where it is at until it is pulled forward to the next server. There are several ways to implement a push system - detailed process logic is probably the most difficult. A better choice is generally to use a resource or event to control the timing. Exactly where parts wait can have a significant effect on the logic required. For example should the part be blocking its current server? wait in its output buffer? wait somewhere else? When you have parts waiting in multiple areas it gets a bit more complicated. --SimBit CONWIP is not exactly what you are looking to do, but it does illustrate how to use events to implement a pull system. --SimBit OverflowWIP illustrates using resources to pull appropriate parts from one of two locations to one of two locations, as needed. --Because you have parts waiting in multiple areas to go to multiple areas, you might want to use a slightly more advanced feature named CustomRoutingGroups. There is a SimBit of the same name. Esentially you will create a RoutingGroup (an element) to define what choices an entity can consider, ranking, and the conditions under which it moves forward. Then for each related node (like the two enfriados outputnodes, you specify EntityDestination to be that custom routing group. One key is to make sure you use the Blocked Destination Rule of Select Available Only -- this forces the entity to wait at the node until it is "pulled" forward to an available server or queue location. For any of these approaches I suggest you read up on it in help or a textbook, then review the SimBit. Happy modeling!
  18. If the sample itself is reused 2-10 times (highly unusual) than you could assign the sample to a state, then use that state value multiple times. You might also look into using the Math.SumOfSamples function - that might work for you, depending on what you are doing with it.
  19. Hi! Actually it's still different. I have a random value that could come from a normal distribution and this value repeats randomly between 2 and 10 times. But anyway I'll see with these hints. Thank's a lot!!
  20. Simio does not have a distribution for a time series, but there are other ways: For example, let's say you are assigning length, but that average length increases by 1 inch each hour. You could use an expression like: Random.Triangular(12+TimeNow, 16+TimeNow, 20+Timenow) which at time 0 would give you a mode of 16, gradually increasing to a mode of 17 after 1 hour and to 26 after 10 hours. If it is not a linear increase, you could put values in a table and at successive times read from a different row in the table: Random.Normal(MyTable[CurrentIndex].CurrentMean,5) Or you could use a lookup table and put time and value pairs in the lookup table: Random.Normal(MyLookupTable[TimeNow]
  21. Hi ebabtain, Your instincts are correct. The ExcelReadWrite Add-In only reads in each worksheet once. This is by design, since the steps are generally executed many times and very quickly, and re-reading the file would consume a great deal of time. Within the ExcelReadWrite Add-In there is a worksheet cache of sheets (called _sheets) that is checked against and does not bother to read the file if the worksheet if it is already cached. So, I would suggest a few possibilities: 1. Modify the Add-In to remove the caching. or 2. Use another Add-In (such as text file read-write... this has less overhead) In either case, make sure your logic in the simulation does not call the step more than - say - once a second. Let me know if you have more questions and/or if I am missing the mark. Cheers, Dan
  22. Hi everyone, I'm a freshman university student and am new to Simio, so please correct me if I make any beginner mistakes or say anything wrong. Also, I apologize for posting this in the general section - I didn't know where to post it. In my simulation, I am trying to use excelRead and excelWrite to input and output data to an excel file. I am also using labels to show the exact values. During the simulation, I would like to run a MATLAB script to modify the data in the excel sheet, and read it back into Simio. I have no trouble at all running a MATLAB function using the CallMATLAB step. The problem is reading the modified file back into Simio, which is not explained by the simbit or online tutorials, as far as I know. For example, the values initially in the spreadsheet were all 1's. The first time I use excelRead to read a file, Simio shows the data without a problem. After that, I change the values to 2's, but when excelRead process is triggered, Simio doesn't show changes. Note that the data in the excel file did change. Once I completely stop the simulation and run it again, Simio finally shows the new values. I apologize if I am completely incorrect, but I have been thinking of what the problem might be. It appears to me that the first time Simio uses excelRead to read a file, it somehow stores a copy of it and works only with it, and when it stops it somehow copies it back? I'm really confused about what's happenning. The point is that I just cannot read the same file more than once. Is it possible to modify and read an excel sheet several times while the simulation is running, or is it just not possible using excel files? If so, what would be some solutions to this issue? If I decide to use mySQL databases instead of excel files, would I face the same issue? Please note that I am not familiar with databases, and would like to use excel files if possible. Thank you all. Please let me know if my question is unclear or if you need any more information.
  23. If you know WHEN you want entities to arrive in addition to WHAT (e.g. PartA at time 1.5, PartB at time 1.8, ...) then put that data in an Arrivals table (a normal table that has an arrival time column) and use the Source Arrival Mode of Arrival Table. If instead you want random arrival times with specified parts, use an approach like found in SelectEntityTypeFromTable but use a sequential row number instead of the RandomRow function.
  24. Hello, I'm modeling an orange factory. One thing that I'm trying to solve is the modeling of the reception pools (of oranges). 1) Arrive trucks. 2) The truck is weight. Every truck have a random value of kilograms of oranges. (integer) 3) The truck dispose the oranges in a workstation. (workstation = reception pool). This is model with a Separator. 3.1) There are 3 workstation. 3.2) Every workstation has diferent Input Buffers. 3.3) The entity once entered in MemberOut@Separator1, it triggers a decide process. 3.3.1) This decide is to choose the workstation depending of the Quantity of Oranges versus the Input Buffer. Now I need to Wait until the Input Buffer is Empty, but I'm having problems with that, because the entities don't release from this server. If there are doubts about the model or anything else, I will answer as fast as possible. test1.spfx
  25. Hello, I'm very new to SIMIO and apologize if this question is too elementary. I've been trying to figure out how to run the simulation from a defined list of entities. Most of the SIMBITS and examples I have seen use a random "product mix" or other means to produce entities. Is there a way to simply run say, 40 defined mixed entities from the data table. I'd like to run several different entities from the data table, all with different sequences and processing times. Similar to the SIMBIT EntityFollowsSequenceWithTable but with a defined amount of PartA,PartB,and PartC entities. Thank you for the help!
×
×
  • Create New...