Jump to content

Search the Community

Showing results for 'timestamp loop'.

  • 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, I need check state variable of object/models in a list. Is there any method to use like a "for loop" Thank you!
  2. Hello all I am relatively new to Simio and DES. I am trying to model a pallet conveyor. It is a closed loop conveyor. I use the "vehicle" as the pallet that loops around the conveyor. At the source the part (default entity) is loaded on the pallet. At the sink the part is unloaded. The problem that I am encountering is that the vehicles from time to time pile up at the sink, then after a certain amount of time they continue back to the starting point "Source1". This happens more the more I increas the "initialnumber in system" of vehicles The transfer-in Time for the sink is set at 0. At the model trace I read this for the "Input@Sink1" : "the in Token waiting at VisitNode step for '1' other processes to complete." I would apreciate any advice. Many thanks! Vehicle_stuck_at_sink.spfx
  3. We are building a model of a medical facility where some patients need to be evacuated out of the model using a vehicle. In its current state, when a patient is in the ward or ICU, it will be determined if they need to evacuate. While they are waiting for an evacuation transport, they will be in a task sequence loop. We would like some way for the patient to seize a spot on the transport, perform the tasks loops, and once the transport arrives at the facility transfer node, the patients break out of their loop, and seize a worker to be carried to the vehicle. We have patients looping correctly and workers carrying the patients to the transport node, but they are not waiting for the vehicle to arrive. Having a condition that breaks the loop when the vehicle is in the loading node is not working because as it leaves its current node does not update quickly enough so entities go to the node that then are not picked up. A potential solution we found was to use the MinimumDwellTimeExpired State variable for the Evac transport in the loop conditional (If transport is dwelling then do not continue the loop and get routed to the transport, if it is not dwelling stay in the loop), however this variable is not public with no apparent way to make it so. We have also tried to make a function in the vehicle to try and mirror the state variable value, but this also did not seem to work as it does not update during the run.
  4. I have a question regarding the use of a model state value at a specific timestep. I used a Tallystatistic and processes to calculate the output of a server for a specified interval, based on the Simbit Hourly Statistics. This works, however I dont want the value of the same timestep, but I want to use it two timesteps later. So for example if a server A output variable equals 10 at timestep t=1, I want to save this value as part of the input for server B for timestep t=3. So the value should be 'memorised' for two timesteps. I was wondering whether there are any suggestions on how to model this?
  5. I was inspired by the VehicleX3 (vehicle with operator) that was shared on this forum. I would like to use this type of VehicleX3 with an operator who is a worker to simulate a process where the operator is required to take breaks after certain periods of activity. To implement this logic, I think it would be helpful to have Reliability Logic for the worker object in Simio. This doesn't seem to be part of the standard library so I tried to create my own subclass version of Worker with the Reliability Logic "copied" from the Resource object. My attempt to implement this custom object seems to work as long as the custom worker object doesn't "move". If the custom worker object moves, I get the Runtime error "Possible infinite loop detected in process logic". Any assistance in getting the logic working properly, or pointing me to an existing custom worker object that has Reliability Logic incorporated would be greatly appreciated. I'm attaching my small example model to illustrate the error when the worker (P1) is required to move to the Dest1 server as a required secondary resource for processing. WorkerWithFailuresExample.spfx
  6. Is there a way to keep them in the loop until the transport arrives, there will never be a point where they are done with the loop until the transport gets there. Right now if they are in the loop I can assign them a modelentity state variable (boolean), then when a vehicle arrives it initiates a process that has a search step with the search condition modelentity.BooleanStateVariable==1 with a return limit of the capacity of the vehicle. the found entities must either interrupt the task or process they are currently doing depending on where they are in the loop and be moved by a worker to the evac node. If that seams like a plausible solution, I just need a process step that can completely cancel a task sequence because the interrupt and suspend steps do not seem to apply to tasks. Once the task sequence is suspended the modelentities should flow to the destination node no problem after leaving the server.
  7. If I were you I would define a storage element. Then, if the patients are finished with their loop I send them to storage (you can think of it as a waiting room). Then, when the vehicle is available I should check the storage (with a search step) and if exist get the patients on the vehicle. Does it work for you?
  8. Hello every body. I am a beginner on SImio and this software is very powerfull. I have a problem I want to modify Fixed route vehicle's destination. I don't want a vehicle on demand.I need a fixed route vehicle. But I need to modify the vehicle's destination. Because I want the first vehicle Go to the first source and i want the second vehicle go to the second sources. And I have 80 vehicle and i want this loop destination for all vehicle. It's works very well for the First 5 vehicles ( For Source_Aub_Char in my model) and it's doesn't work for the sixth and after it's works. But my method doesn't work for all vehicle. I don't understand why. My method is : - I select the current vehicle with "Path1.Contents.FirstItem" - And After with "set Row" i selected différent sequences table for the current vehicle - I do a count for the number vehicle entrance and the model choice the good sequence table with this counter. There is my simplify model in attachement. Some body can help me to see what's wrong or to give me a better method ? Thank you very much. And sorry for my english i'm french. Question FOrum.spfx
  9. Hi All, I am attempting to model a triage logic where I want to periodically, sequentially search the contents of a storage queue associated with a station and test the availability of resources to handle processing it. If the resources are not available in the system, I would like to move to the next entity in the queue and test it until all the current queue has been examined. The goal is to sequentially walk the queue organized by priority using the lowest value first of a state variable on the entities. Is there a suggested "best" way to approach this sort of problem? Essentially I want to do a loop to examine entities in a storage queue and transfer the best one with a match to available resources. I tried using a search based on index but ran into an error getting the state values of the entity and also seem to have challenges sorting the storage queue correctly. I would be grateful if someone has a basic example of such a sequential search. Thanks Very Much, Jim
  10. Hi, I appreciate this information, but I have a similar situation and I am a bit confused by the answer. In this case for example, not sure what "stay post a delay" means. Does this imply a loop checking at intervals to see if a release condition is met, namely an OR is freed allowing completion of a state dependent process that frees the ER? It seems this logic might be common where availability of a downstream server blocks completion at an upstream service by blocking the space to process. I would be interested in seeing a simple example of the OR to ER logic model if someone has one or something similar. Thanks Much! Jim
  11. Hello, I have been utilizing SIMIO for a couple of months, however I am relatively unfamiliarized with some of the features. I have recently encountered a difficulty while simulating an airport screening checkpoint. Take the attached picture as a reference. I have entities arriving from a single Source, processed initially at Server 1, and then following a series of separators and additional servers along the way. At Separator 1, the member (luggage) is separated from the parent (passenger). (Luggage is created by a "create" step in an add on process, rather than at its own Source). However, I would like to distinguish statistics between those travelers and luggage going twice through a server. For example in Server 10, I have a loop going from the output node to the input node for the re-scanning of passengers. I managed to provide a priority value to the passengers going though that created loop, and an add on process rule to send those with that priority value to Sink 3, while those without the priority value to Sink 1. I tried applying the same concept to the loop seen in Server 9. However, when the passenger picks up the luggage at the transfer node located at end of the conveyor belt, both the member and the parent exit through Sink 1, rather than Sink 3. It appears that only the member obtains the priority, but not the parent. Although I tried, I did not manage to match the priorities and thus have the combined entities exit the model as anticipated. Any thoughts on how I could match the priorities, or perhaps, any suggestions to make this possible? Any help is greatly appreciated!
  12. Hi George, I know the normal ways, to create an entity from a table are: 1) Use a timer with the date/time table for a trigger for a own process or 2) A source with the arrival table option. If you want to create entities, maybe you can make a loop process like GFurtado with an Read-Step/Excel-Step and then you can use the Create-Step of Simio. Then you can check with an Decide-Step "TimeNow >= value" for example and create your Entity. With this option you can use FastForward too. With an lower delay time it is near the real time. Maybe this could be a solution for your problem. Because, then you dont need a third party tool to click on import. I checked the Simio API and I dont find something about a trigger for the Simio buttons or a button click event, what we can use for the problem. It would be nice, if there is an API to "use" the button click processes. For example, to import one or all tables again. Maybe a professional Simio API developer know more and can write here. Have a nice day! Best regards Pascal
  13. My company is developing a big model that simulates the arrival of passengers to an airport. It is important to us to control the randomness of the model for two reasons: - We want to be able to replicate the outputs of an experiment if the changes had not been significant. - When running different scenarios where only part of the configuration has changed, the part of the model that has not changed should remain the same. It is possible to control the random generated number of the distributions that Simio offers, but we hadn’t been able to fix the randomness in the next cases: - When using the function RandomRow. Any change in the model that modifies the running time when the function is called changes the row selected. - When selecting a path from its weight. As well as with the RandomRow function, we have seen that only moving one meter the node that is connected to more than one path, the randomness of the path selected varies. Furthermore, because of the dimensions of the simulation, some processes take time to end. That means that in some cases when we add more data to the input tables, data that is independent to a previous part of the simulation, everything changes because the process takes a little more time to end and that changes the result of the random decisions. We would like to know if it is possible to control the randomness on this events, or what other alternative can we use. There is a mini model attached that shows the described behavior. It consist on a source that generates 100 entities, and two possible paths with the same weight. If the node that connects to both path is in the center of the facility, 45 entities go up and 55 down, like in the next picture. If the node is moved to another location, the number of entities that go up changes to 48. Finally, adding a process (with a loop that doesn’t do anything) before selecting the path, the number of entities varies again to 47. Randomness_example.spfx
  14. Hi jord41, Simio loads the bound tables once during the initialization in the Simio tables. Data access requires a lot of computing time. (More for writing as reading). I see that you only have 1 column of integer values. My recommendation is that you do not import the table into a Simio table. It's best to create an integer or real state of type vector. Then you use e.g. the Read-Step or the ExcelRead-Step. In conjunction with a timer or the sample example loop of GFurtado you can load the data at intervals. I think that this could be a solution. At least that's how I would do it if I had to work with real-time data. Normally, such real-time data is written to a SQL database by a PLC or something like that. Then you can use the SQL steps anytime in Simio. Best regards Pascal
  15. The expression State.InitialValue might help you, but I believe you can't reset every value of the array at the same time (I might be wrong). In this case, you'd need to set multiple assignments or loop in a process.
  16. Thanks for your reply! That's something that worked indeed. Although I'd like to model it in a different way. At the moment I am trying to store the location.x of each entity in a vector, and keep this updated by using an add-on process with a loop. From there I would like to let every entity use the find step, to look for the lowest value in the list for location.x - (their own location.x). When this is done, they should switch to a boolean state in which they are trying to "couple". If this is true, these entities will not show up in the previous list with the lowest location.x. When this boolean state is active, I would like to let the entity behind speed up, until the distance between the targeted entity is for instance "1m", after that they should proceed with the same desired speed. I did find some interesting simbits which does something similar like "FindAMinimumStateValue.spfx", although. Instead of updating serverprocessing times, I would like to store the location.x of each created modelentity. Is there any way to do this?
  17. Hello Simio team. My group and I are currently working on solutions reguarding queue related issues. We are working on a case where we can implement a loop system similar to the Sim Bit called "Add and remove server capacity", altough we would like relate the opening and closing of capacity based on the maximum queue time (5 minutes = Open another server) and (3 minutes = Closer a server) in the TransferRode instead of the numbers entities in the TransferNodes. We have tried to follow the pdf step by step in the Sim Bit, but we have not been able to get it to work. I hope you guys can help us resolve this issue. -Mlars11 Pharmacy.spfx
  18. Not directly. Choice 1) You could use the Find step in a loop to find the lowest item and copy it to another array or to an output table. If you don't really need it sorted, but just want to use them in the right order you could just clear each item as you access it and not store it elsewhere. Choice 2) You could write a custom step to do it. Choice 3) You could create an entity for each element of the array, assign a state on the entity and then stick those entities in a queue ranked by that state.
  19. First, in a table, list the part types, in order, that you would like, i.e., PartA, PartB, PartC, then PartD in a column. In the Definitions window, add a new integer state (named 'Index' for example) with default value of 1. This can be used to loop through the table rows (and reset to 1 once you create the last one). Then, within the Source, use the TableName.ColumnName' as the Entity Type. Within the Table Row Referencing / Before Creating Entities, set the Table Name and then use the 'Index' integer state as the Row Number. In the state assignments before exiting, simply increase the integer state value - you can use simply a Math.If(Index == 4, 1, Index+1) - or you can use the max rows in the table if you aren't sure how many items in table.
  20. I think "Worker1.RideStation.Contents.ItemAtIndex( index ).ModelEntity.Priority > 5" should work fine as long as index is a valid integer. You could use that expression in a process loop or a Math.If() expression. But as soon as you start indexing through a series of those, perhaps the Search would work better.
  21. Sounds like somewhere in your logic an infinite loop is prevailing.
  22. Yes, on the ModelEntity, under the Population category you will find the property Maximum Number In System. This exists because a common error is to allow entity creation to go wild (via an uncontrolled creation loop or an unbalanced system, for example). Since Simio has no limits, if this is allowed to happen you would run out of memory and possibly lose your model. So instead we allow you to set this number to anything that is reasonable in your model.
  23. Haha, well, I figured out the problem at about the same time you made your post. It turns out that one of my group members moved the last server in the process before the sink from being the very last server to the first server. When he did that, he didn't change the entity routing logic in the transfer nodes of either server, so the entities ended up doing one big loop. Once we corrected the routing logic, everything seems to be flowing smoothly. Anyway, thanks for your response gocken.
  24. The reason for this is that I have a process that loops through a table with hundreds of lines (roughly 500 lines but depends on input - could be thousands) and for each line has to search a value on table that also has hundreds of lines. So for each row of the first table i am looping through the second, which ends with Simio warning me concerning something about excessive loops... So, I thought of a workaround that consists on immediately getting the row value of the value and thus I wouldn't need to loop the second table. Any ideas on how to do this or any other workaround suggestions? Please I need to solve this today... Thanks.
  25. I thought I would be easy to change Write step, but the fact each replication is in a separate file has a reason. Simio can run multiple replications at once. And using External it crates say 4 processess each with one replication. Each process can run in a different thread. But these processess cannot write in one file simultanously. So I recommend using this Makro to join files together. Sub LoopThroughFiles() Application.DisplayAlerts = False i = 0 Dim StrFile As String StrFile = Dir("C:\Users\.....\NameOfExcelFile*") Do While Len(StrFile) > 0 Workbooks.Open Filename:=StrFile Sheets("Sheet1").Activate Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Workbooks("vysledky_makro.xlsm").Activate Sheets("Sheet2").Activate If Range("A1") = "" Then Range("A1").Select Else Range("A1").End(xlDown).Offset(1, 0).Select End If Selection.PasteSpecial xlPasteAll i = i + 1 Workbooks(StrFile).Close StrFile = Dir Loop End Sub
×
×
  • Create New...