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. Hi, I have a production line with 2 sources. The arrival of entity A in source 1 triggers an arrival of entity B in source 2. Entity A and entity B then enter their respective servers for a processing time. Entity A is processed at table_openings between 10 and 15 minutes with probabilities whereas Entity B is processed at table_MF for 10 minutes. The process type is task sequence. Both Entity join at a combiner. Entity A is the parent and Entity B is the member. Afterwards, the combined entity continue along the production line. I have expected processing times for each task at each server. Before starting a task, a process starts where a state statistic registers the state processing time of the entity. I also put list state to verify the schedule utilization. I have verified visually and the state value for processing time is correct for every station while the simulation is running. What I have observed is that the state statistic average processing time for the servers before the combiner is the expected value, however, all the other stations are 10 minutes off. The simio output has the right processing times for all the stations after the combiner but not for the two stations before the combiner. Moreover, the list state average time busy value are ok for all the stations after the combiner but again the station before the combiner, it gives the total number of minutes it was busy. Also, if i do the average of the state log observation for each station in excel afterwards, I get all the correct processing times. I am guessing it has something to do with the combiner, but I am lost. How can the processing time for table_MF be 10,48 when the processing time is a fixed 10 minutes in the facility window? Why is the list State MF and OP different from all the other list states? Thank you for your help!
  2. That is what I thought. However, my results are not making any sense. I see the following: Logically, adding 5 hours of travel time via an interdiction should lower the responses (at the very least the FuelTotal) however, this is not the case. Just as a quick test I changed the interdictions to negatives and received more logical results. However, when I view individual runs of each of these cases, the opposite of these results is what I receive: Fuel levels plummet and reach 0 multiple times during the scenario since the transports can't keep up (w/ 5hr interdiction) or the transports 'teleport' to the ACo node since there is a -5hr interdiction and therefore the transports are always able to keep the servers at high fuel levels. I must be missing something here.
  3. I have two transporters that have failure rates and associated downtimes. I am trying to create an output so that I can track the transport downtime (say Truck1[1] failed from Hour X to Hour Y) so that I can analyze the impacts of vehicle downtimes on the system. I don't know the best way to go about doing this: Add-on Process for Failure and for Repair but then Assigning what value to what State/Property/Table? This is where I am getting lost. Any help would be greatly appreciated.
  4. Hi, I want to generate one type of product with one interarrival time. I have one source and one model entity. However, this entity can have different lengths following probabilities. Depending on these properties, the processing times at the servers will be shorter or longer. I tried to assign a state to the entity before this entity exits the source so ModelEntity.Length becomes DataLength.prob.randomrow. where DataLength is a table with the different lengths and the probabilities associated with those Lengths. The only thing is that it is a property and not a state, but I do not know how to do it in another way. Afterwards, I have different processing times at the servers depending on the different characteristics of my entity. For example, server1 will have different processing times depending on the length. How can I reference to the good processing time say I have added a column to the table DataLength with the associated processingtimes according to the lengths? Finally, I would also like keep track of those different lengths generated and see what the model produced in the end. Thank you for your help, Emilie
  5. I have 2 transports delivering entities to 3 servers. What should be happening is that Transport 1 loads entities to capacity (12) then moves to Server 1 and delivers all of the entities (12). Transport 2 should load 12 entities and deliver all 12 to Server 2. Transport 1 returns to Home Node and loads 12 more entities for delivery to Server 3... and so on. However, what is happening is that both Transports are loading 12 entities then moving to Server 1 and delivering 4 entities each, then on to Server 2 and repeat and so on. I have removed and added servers to confirm that for some reason the Transports are delivering 1/#ofServers of their total capacity, conducting all of their deliveries and then returning to home once empty. I have limited the timepath to each Server to only allow 1 Transport at a time, but then Transport 2 just waits at the Home Node until Transport 1 is on its way to Server 2. Then it moves to Server 1 and just ends up one node behind Transport 1 at all times. The dispatch logic: (Server1.InputBuffer.Contents.NumberWaiting <= 12)||(Server2.InputBuffer.Contents.NumberWaiting <= 12)||(Server3.InputBuffer.Contents.NumberWaiting <= 12); set at Smallest Value for Selection Goal; Selects from a List of all Server Nodes.
  6. Hi, I have 6 entities arriving at exactly 8am each day. Each of the 6 entities will create a certain number of entities on arrival from their respective distributions. How do I model in my source? I cannot have multiple sources as each entity has its own server processing times. Please can you help? Thank you
  7. [EDIT] Hi all, I am modeling a restaurant, where orders are placed until 22:00. The preparation of these orders takes approximately 20 minutes (it can be more or less due to the probability distributions involved). I have some workers whose schedules are from 10:00 to 22:30 and they prepare these orders. The problem is the following. Suppose that it's 22:30 and there are still some orders in the queue. Since the worker's schedule ends now, those orders can't be processed and will remain for the next day. This obviously does not happen in a real-life restaurant. So if at the end of the worker schedule (22:30) there are some orders in queue, I would like to extend the schedule until all orders are met. The problem is I don't know how long it will take the workers to prepare the missing orders, so I can't suppose a certain time needed to complete the orders. I have to wait that the last order is prepared to set the end of the working day. How can this be done? Thank you in advance, Marcel Favereau
  8. I have a source, called forklift source, that has a varying interarrival time based on the time of day. To do this, I created a time indexed table with the different interarrival times in different rows and the interval period set to one hour. This source also depends on the interarrival time of another source called Newtrucksource, but not on an hourly basis. I am trying to conduct an experiment where the interarrival time of newtrucksource changes with different experiments and a different time indexed interarrival table for source 1 is used for each of these different interarrival times. To do this, I created a real property for newtrucksource's interarrival time and a table property for forkliftsource's time indexed interarrival table. However, I can't get this to work because in the model, the interarrival time property for the forkliftsource must be a "number" and I am referencing a table which comes up as using "string". Trying to find a way to make this work.
  9. Hello, Storing this information in a Data Table and using a Search step might be the best approach. The Search expression will probably need to look for a specific Group and also check that the MaterialName is in stock. If the Table is listed in priority order, you will need to just Search forward until the criteria is met. You will either need to execute the Search step a few times and have a variable for the Group letter, or just have three separate Search steps specifying the exact group. Liz
  10. Hi Jim, May be there are many possible ways to follow to get the information you want. But, I suggest you to use a search step for searching a server's (or any other object's) processing queue to get such information. You can search not only the server's processing queue but also the whole "entity population" to get whole state variable's defined on them at any arbitrary time thoughout the simulation run. All you have to do is to define additional expressions on search step. In the example file attached a simple model is developed to get entities' state variables residing at server1's processing queue. Here note that, you have to click button at arbitrary times. Then, if 3 or more entities exist at server1.processing queue, the search step founds the first 3 of them (since a forward search is performedin this sample model) then later an excel write step writes entities created time (you can get many state variables of entities written on the same excel file). You can change search limit, queue state name, include a match condition etc. If you want to get such information at the beginning or at the end of the simulation run you should use this same logic at appropriate processes (onrunending, onruninitialized etc...). Also, you can get these information written on either a database or an output table as well. Hope this helps? getting a snaphot of Entity WIP via a button.spfx entities_processing.xlsx
  11. Since I am not allowed to save my changes on your file directlt I am not able to upload your revised model. But, it is so simple to follow the steps to get what you wnat. First delete all your processes in your model and only for Volvo server define an afterprocessing add-on where you should include a decide step, an assign step and a wait step (see the attached file). Then, 1) set decide type as conditional and set its condition as: (M1.Capacity.Remaining > 0 && Input@M1.NumberTravelers.RoutingIn == 0) && (M2.Capacity.Remaining > 0 && Input@M2.NumberTravelers.RoutingIn == 0) && (T4.Capacity.Remaining > 0 && Input@T4.NumberTravelers.RoutingIn == 0) 2) at assign step set state variable as: Volvo.ResourceState and set the new value as: 2 (setting this to 2 will block the volvo server) 3) at wait step set event name as Output@T4.Entered. I hope this works for you.
  12. Hi again Liz. I found the problem but it wasn't easy to figure out with the RowForKey formula. I used the search function with tablerows as collection type. When I filtered the trace on the search and tally process, I found that the the table index of the found item and index of the search function was not the same in some cases especially for "small" type products. Further even the available row count of the products table was not returning the correct number rows in the table. The products table has 810 rows but it was finding 197 rows only in the search function. I had a separate "productsize" table which consists of "size" key string property and some other real type properties such as forklift capacity for each product size. I had used this productsize.size as foreign key in my main products table. I figured that the search function automatically filters to the products those matches the size of the product eventhough in search function match condition I only write ModelEntity.EntityType==Products.ProductName. When I removed the foreign key from the products table the problem was solved. Thanks for your help anyway. It was very useful and saved a ton of time from me.
  13. Thanks you so much for you help Liz. That's such an advanced modeling techinique I had never heard of before. I would never be able to figure it out myself. It has almost worked but correctly. It has recorded the results for some tallies correctly but recorded some tallies on the wrong tally. I think there is a problem with the set row feature somewhere. I have no problem with setting rows elsewhere in the model such as arrivals from production and arrivals from truck tables create entities correctly with all their state variables. The product list table also has unique "productnames" (entity instances), set as key and auto set-row property is set to true. I have added another coloumn with element tally statistics reference (DistanceOnForklift) to products table. I have auto created it as you suggested and turned on the auto-set row feature to true. Both my product names and tally statistics coloumn are set as key in same "products" table. But the tally step still doesnt record them to the correct tally statistics. Where am I doing wrong? Would you still be able to help me? Shall I send you the model in private message? Here is the formula I have inputted 'Products[Products.ProductName.RowForKey(ModelEntity.EntityType.Name)].DistanceOnForklift' and in the picture below you can see that tally step records into wrong tally element on last three entries. I would be glad if you could help me.
  14. I would recommend using a Data Table. One column could have all your entity types defined. The next column could be a Tally Statistic Element Reference Property. This column would match up the Tally statistic you want to correspond with the Entity Type. You could choose to auto-create these Tally Statistics from the Data Table. If you change the Tally Statistic Property's column Reference Type property from 'Reference' to 'Create', this will make the Tally Statistics for you. I recommend the Help page "Table-Based Elements (Auto-Create)" in Simio for more information. If your Entity Instances noted in the Data Table are unique, no duplicates, you can set that column as a Key. With that column as a Key, you could use just the Tally step and use the RowForKey expression. RowForKey will allow a key input to search for in that column. If the model entity is driving the process, you could use an expression like this for the Tally Statistic Name 'Table1[Table1.EntityInstanceProperty1.RowForKey(ModelEntityReference)].TallyStatisticProperty'. Since it seems this process will be on the OnRunEnding, it will not have a reference to a specific entity, so you will most likely need a Search step to find the entities still in the system. I would set the Search step to find Infinite things and let each entity reference exit on the found branch. If the EntityInstanceProperty column in your Data Table has the Auto-set Table Row Reference property to 'True', the entities will already know the row reference and your Tally step Tally Statistic Name property could be 'Table1.TallyStatisticProperty'.
  15. Thank you so much Liz! I understand exactly what you mean. However we thought that using Tallies would give more correct results for the average value calculations. I am also thining that running and add on process on "run ending" would allow me to calculate the distances statistics for all the entities even if they are not destroyed. Now I know how to calculate it but there are around 800 different product types. So I have to write 800 if conditions saying if decide, entity.type.name == "A" is true, Tally "distanceonforkliftA", on false exit, if decide entity.type.name == "B", Tally "distanceonforkliftB" etc. Is there a way to automatically create tally statistics for each entity instance?
  16. The SkyBox icon on the View Ribbon opens a library of static and dynamic scenes that can be placed in the 3D animation. Dynamic scenery includes several options for clouds that move with the animation as the model runs. Typically, the Speed Factor should be set to 5 - 10 or greater to see movement. Static skybox options include many indoor and outdoor scenes. Indoor applications include adding building walls to surround your model. The 'None' option will remove any existing skybox. Users can create their own SkyBoxes as well. The “library” skyboxes are simply *.zip files with images inside them with the names front, back, left, right, top, bottom. They don’t need to have all of those names in them, Simio will use whatever ones it finds. They are located in the Skybox folder under \Public\PublicDocuments\Simio. Note when you first apply the SkyBox, you can only view it in 3D and you may need to use the Ctrl Scroll wheel to move the camera down to where you can see the horizon. There are over 20 SkyBoxes that are installed with Simio. A few more are attached below. Simply download and save these zip files in the C:\Users\Public\Documents\Simio\SkyBox folder. The next time you open Simio you should see something like this under SkyBox options: Here is an example of the MFGPlant SkyBox with a server in the foreground: If you create your own skybox images that you feel might be useful to others, please share them here. Hospital.zip MFGPlant.zip Warehouse.zip Airport.zip CleanMFGFacility.zip NEW NOTE: We just decided to reduce the size of these and some existing skybox files and include them all in Sprint 215. So it is probably better that you just wait a bit unless your need is urgent.
  17. Hi all, This one has been confusing me for a few days now. I'm busy building a large 200+ task process, using Task Sequence. For 95% of the tasks, task predecessors are used, and it works fine. However, some tasks can only start after x days. For example, task 5 requires task 4 to be complete & can only start after 4 days. I've tried looking for a place to put this. Things I've tried: 1. Branch type in Task info, where the condition is: "TimeNow > ModelEntity.TimeCreated + ProcessingTasks.Delay_Days" that checks if the current time is more than the initial start of the task plus the time that it needs to wait. This works, but it just skips these altogether. I'd like the resource to check again the next day the tasks that were skipped. 2. Add in additional resources that only become available after x days, and the tasks seizes this additional resource. However, the tasks are seizing multiple resources (e.g. Finance team, Accounts team, etc., so it's specifically looking at a column I've defined in the task resource table. 3. Creating additional servers to represent these "waiting tasks", however, this looks messy and not sure how it can scale/be modified. Any ideas?
  18. Let's see if I can elaborate... The following outlines the relevant characters in simio file "table_selection_by_name.spfx." Model->Definitions: Properties: OptionId (Entity Property, default=null) _SelectedTable (Table Property, default=tableOption1) States: RowId (integer, default=1) maxEntities (integer, default=2) ModelEntity->Definitions: States: _id (Integer, default=0) row_num (integer, default=0) temp (integer, default=0) Model->Facility: ModelEntity Types: Option1, Option2 Source1, Server1, Sink1 Source1->Entity Arrival Logic: Entity Type = OptionId (Reference Property) InterarrivalTime = 1 second Source1->Stopping Conditions->Maximum Arrivals = maxEntities Source1->Add-On Process Triggers->Created Entity = Source1_CreatedEntity Sink1->Add-On Process Triggers->Entered=Input_Sink1_Entered Model->Facility->Controls->General: OptionId = Option1 _SelectedTable = tableOption1 Model->Processes: Input@Sink1 Add-On Processes Input_Sink1_Entered: [Begin-> Tally(temp = ModelEntity.temp) End] Source1 Add-on Processes: Source1_CreatedEntity: ************************* [Begin->Decide1(IsOption1 = True)-> Assign(maxEntities = tableOption1.AvailableRowCount)-> SetRow(tableOption1, RowId)-> Assign(ModelEntity._id = tableOption1.id, ModelEntity.row_num = tableOption1.row_num, ModelEntity.temp = tableOption1.temp)-> Assign(RowId = RowId + 1)->End Decide1(IsOption1 = False)-> Decide2(IsOption2 = True)-> Assign(maxEntities = tableOption2.AvailableRowCount)-> SetRow(tableOption2, RowId)-> Assign(ModelEntity._id = tableOption2.id, ModelEntity.row_num = tableOption2.row_num, ModelEntity.temp = tableOption2.temp)-> Assign(RowId = RowId + 1)->End Decide2(IsOption2 = False)-> End] ************************* It is here that I could like to simply the logic using something like _SelectedTable instead of tableOption1 and tableOption2. I would like to know how to replace Source1_CreatedEntity's above step definitions with something like: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> SetRow(_SelectedTable, RowId) Assign(ModelEntity._id = _SelectedTable.id, ModelEntity.row_num = _SelectedTable.row_num, ModelEntity.temp = _SelectedTable.temp)-> Assign(RowId = RowId + 1)-> End] But this replacement does not work. The following works, but I'm searching for a way to do this without replacing the column name with an indexed value: [Begin-> Assign(maxEntities = _SelectedTable.AvailableRowCount)-> Assign(ModelEntity._id = _SelectedTable.id[RowId, 1], ModelEntity.row_num = _SelectedTable[RowId, 2], ModelEntity.temp = _SelectedTable[RowId, 3] )-> Assign(RowId = RowId + 1)-> End]
  19. Today, I found this topic talks about updating data in real-time when simulation is running. I thought it could be useful for me in the future so I decided to try it myself. But, when I used the Read/ExcelRead Step, I found it only "read" the external file at the first time: It seems the Read Step creates a copy of the external file at the first read and then it will use the copy for the future reads within the simulation. For example, at the start of my simulation, I used a button to call ExcelRead Step to read a excel file. Then, I manually changed some values in the excel file and I called the ExcelRead Step again. However, the second ExcelRead Step didn't read the changed values.If I want to use the changed values, I need to restart the simulation. For the Write/ExcelWrite Step, only when I stop the simulation, the external file will be updated. If I don't stop the simulation, no matter how many times I call Write/ExcelWrite Step, the external file is not changed. Are these kinds of behavior bugs? Because from the above topic, I think the Read and Write step can update the external file within the simulation. My Simio version is 12.207.20659. Thanks to everyone in advance!
  20. Note: WkA and WkB essentially do the same thing, so I'm essentially just explaining WkA on the seizing worker to make things simpler. What needs to happen: I need Wk1 to wait until WkA is at the output node before processing the entity. Then resume movement (to go to input of BPICK) only after the event of Output@APICKRiderWaiting (basically the processing finished; I found it only works when I use the wait for rider waiting). The same thing needs to happen with BPICK. Then Wk1 needs to head back to nRouter. Current State & Problems: Right now it does not wait to process the entity until WkA/B gets there. I have tried adding that as a row in the events more logic, but it doesn't work. I have also tried putting a Wait step with that as it's event before the other Wait. However, Wk1 still gets to APICK/BPICK and immediately the entity is processed. Wk1 does however work on not moving on until the entity is processed. One problem with that though is that Wk1 does not go back to nRouter after finishing at BPICK. I have tried several things like setting node, but perhaps I didn't have that step in the right place. Both entities have a destination by the way. This next photo is showing the seizing of the worker. The decide and execute steps refer to interrupting processes but all those still include the seizing step you see here. I have also attached my model in case you need to run or see it. It may be hard to follow all the logic on other add-on processes other than the ones I showed you. I have other problems in other areas, but this problem I'm posting about is not that affected by the other problems of the model I think. Though honestly, if you find that you may have a solution or fixes in basic logic to those (because its glaring) then by all means, share them. ((And yes, I have looked at InterruptibleOperator simbit as well as other Interrupting example simbits but am still confused on the whole thing.)) ModelForQuestionCOPY5v.3.spfx Thank you!
  21. I'm having some trouble with worker actions and transfer steps. Below is a picture of my current model. I have also attached the simio file itself. What I want to happen: Worker1 carries both entities to their respective nodes and leaves them in their respective stations after worker(A/B) "checks them" (I used a delay to simulate this check) and then Worker1 moves on. The worker(A/B) only picks up the entity if needed. So if the worker was with another entity in process (like Srv(A/B)), he would go check the new entity so that worker1 can move on, but would return to finish out the first entity to the end. My problem: Worker1 doesn't wait for the other workers to check and move on, just puts in station and moves on. I can suspend and resume the processes and get the worker to the (A/B)PICK nodes, but the worker picks the new entity up and starts that. The entity they were working on before just vanishes or something. Then everything becomes a standstill. Lastly, I run into this transfer error so much, and can never figure out exactly what causes it. ModelForQuestionCOPY2.spfx
  22. Set "log observations" property of tallystatistics element as true (under advanced options category of tallystatistics element). then at the end of the simulation you will see all individual observations from results-->logs-->tally observation log in a tabular format. If this not works for you then there exist other alternatives? Will you plot these values dynamically or statically (i.e., at the end of simulation)?
  23. Good day, I have a tally statistic element that contains random values (in my case, the time to process an entity based on many factors which are also random). I was wondering if it is possible to access the values of the tally statistic individually, or in the broader sense, as I am trying to plot a curve from this single tally statistic. Thank you in advance. Eduan
  24. 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.
  25. you can not find .lastrecordedvalue from dropdown menu. Just type it, it will work. Tally1.lastrecordedvalue means just the last tokens value (in your case state's value recorded by tally1 element. I think if Tally1.lastrecordedvalue == 0 which means 1 for exclusion property this tally step should be skipped for this token. And, it is the case what you want to achieve. Just try, I think it should work...
×
×
  • Create New...