Jump to content

Search the Community

Showing results for 'buffer transfer node'.

  • 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. 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.
  2. Hi Jason, If you just want to see the emissions for each Entity traveling through your Model, you could attach a Status Label to each Entity type displaying the TotalDistanceTraveled, or some calculation including it like TotalDistanceTraveled*0.323. To attach it just click on the Entity instance in Interactive mode and then draw the Status Label near it. Or you could define State Variables like Ship_Dist, Truck_Dist, Train_Dist to keep track of total distance traveled for all Entities of each type. You would then define State Assignments at their final destination (Sink), or some Node along their path, to increment with NewValue of "Ship_Dist + ModelEntity.TotalDistanceTraveled" then compute the total emissions for each type at the end of the run. Note that you would need an Assign If 'Custom Condition' like 'ModelEntity.Is.ShipEntity' for this to work. Happy modeling, Adam
  3. 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
  4. Hello, We want to assign the entities to different servers. The first server has FIFO selection system, and the second has FIFO with entity type OTC as the first priority, and the third server has FIFO. Furthermore, the servers open and close sometimes, but the entities keep transfering to the closed server. How can we divide them after the described rules? We have tried to get the output node to select from a list of nodes with the input of the different servers, but then the entities always choose server1. OTC-and-prescription-model.spfx
  5. I have a series of gated processes that are defined in a sequence table. Occasionally sequential gates will use the same server. In our process, the entity doesn't actually move out of the server, but in Simio the entity has to exit the server and re-enter. What winds up happening is that if another entity is queuing for that server, it will enter first during the approximately 2 seconds it takes for the entity to travel from the output node to the input node , causing the entity that was in the server to queue. I would like the entity to stay in the server through multiple gates, according to the routing logic, without getting bumped by other entities in the queue. It's important to keep the gates separated instead of combining them into a single entry on the routing table, because I need to look at performance statistics for each gate separately. Thank you
  6. I have been utilizing SIMIO for a couple of months, but I am still relatively new to some of the features. One of the problems that I have recently encountered in my simulation is entities taking a path even when the receiving node (a separator) has an off shift rule. Specifically, I determine the availability of the separators based on 5 minute intervals with a TimeIndexedRow table reference. The attached image accurately represents my dilemma while simulating an airport checkpoint. The passengers are first processed in Server 1 and subsequently proceed into the paths leading to either separator 1 or separator 2, depending on which conveyor is available (has a value of 1) to process their luggage. In a specific scenario, lets assume separator 2 has a value of 0 meaning it is in the off shift position. When I simulate only one conveyor open, the passengers sometimes either take the inactive separator path and move back to server 1 to take the other route, or move back and forth the link until the separator becomes active again. Is there a way to block the path leading to that separator, for that 5-minute interval when separator 2 has a value of 0? Perhaps this could be done with an add-on process trigger, however I have not been able to formulate one. Any help will be greatly appreciated!
  7. Hello, I want to model an evacuation network design problem with Simio. My goal is to consider traffic congestion in the model. Congestion happens when road capacity is not enough for that amount of people immediately leave the source node. I was wondering if you could let me know how to consider capacity for either path or connector. I would be happy if you could share an example with me. Thanks, Nadere
  8. You can still use your various 'lists' of servers in SetA, SetB, etc.). You still will need a Sequence table with the Sequence Destination property column. This tells Simio within the Sequence table the destination to route. So, within your Facility window, add a TRANSFERNODE before each 'set' of areas, let's say named SetA, SetB, SetC, SetD. Then, within the TransferNode, use the 'Select From List' for Entity Destination Type property and specify the appropriate list (SetAList, etc.). Then, within the Sequence table, route to the TRANSFERNODE that uses the particular list - so in the above, you would have within your Sequence table, SetA, SetB, SetC, SetD and Input@Sink. Within each of your Server's output nodes, specify Entity Destination Type as 'By Sequence'. You may wish to look at the example named SchedulingDiscretePartProduction to see the layout of the nodes within each section and the Routings table used (this is a much larger example, but the concept of the nodes, the sequence table and in that case a RoutingDestinations table (which is like a node list in Lists) is basically the same.
  9. You could put the two (or more) separator input nodes on a list and then at the Server output node, select from the list of separators - then you could use the Selection Condition property to select between those that are actually available, using either a table value or something like 'Candidate.Node.AssociatedStation.Capacity' expression checking the status of the separator capacity (if offshift).
  10. Within each of the Source objects, you would specify (within the output node of the Source) that a worker is required to transport the entity(s) to the next node. The decision making of the worker is then handled by the worker itself. The worker has several decision making options - first of all, for transporting, the worker has Transport Logic properties, one of which is the Task Selection Strategy property, which can be set to First In Queue, Largest/Smallest Distance or Largest/Smallest Priority. In addition to that, under the Worker's Add-On Process Triggers properties, you have the Evaluating Transport Request process that can be used to accept or reject any transport request. You can add custom logic, a distribution, etc. within a Decide step in that called process and simply then accept (Token.ReturnValue == True) or reject (Token.ReturnValue == False) a request (which is the first in the allocation queue, as ranked as noted above). You can use the requesting entity location within the decision logic as well.
  11. I have created two real states for each entity and depending on the probability based, assigned to each entity a different processing time. I guess that this should work, but now I realized that I have another problem. Before the two servers that I mentioned in the post, I have another server with a lower processing time. It is supposed that Server 2 and Server 1, that have a larger processing time, should create a bottleneck, and I want that all the queue stays in the input buffer of that Server (let's say Server 0). The problem is that the entities that finishes at Server 0, go directly to the server 1, although I specified that the output buffer of the Server 0 is 0, the path capacity is 1, and the input buffer of Server 1 is 0. I even can appreciate how some entities that arrive to the Server 0, if this server is busy, skips that server and pass directly to the next one. How it is possible? I want to create the queue in the Server 0, and then move to the other ones when they are empty, always following a FIFO rule. Thank you so much.
  12. To start with, Destinations in Simio are always nodes. So the table should have a column of type Object Reference Property > Node. Although its not on the pull-down list, when you specify a entity destination as Select From List, you can also specify a table column of type node list and it will automatically respect the table rows associated with that entity. Model_RandomRow_FilteredTable.spfx
  13. For each location where you want to start a time interval (Server 1 and "the very beginning" in your example) you would need to add a state to the ModelEntity (NOT to the model). Then for each place you want to end a time interval (server6, "the very end", and server4 in your example), you would need to add a TallyStatistic element and Tally and observation at the point. For example to record the time between between Server1 and Server6: create a modelentity state named TimeDepartingServer1 assign TimeDepartingServer1 the value of TimeNow when entity departs Server1 create a TallyStatistic element named Server1ToServer6Time record a Tally observation (using node or Tally step) at Server6 recording the value TimeNow-TimeDepartingServer1 to Server1ToServer6Time add a status or floor label using the expression Server1ToServer6Time.Average
  14. I suggest using Node Lists column in a table (see attached example) instead of using a sequence table, I setup a routing table with steps (representing sequences). The route table is a child of the entity table. The sources in the model are setup to reference row 1 of the entity table in Source1 and row2 of the entity table in Source2. Each step in the route table is associated to a node list....The node lists represent the "OR" condition. If the node list has Input@Server1 and Input@Server2, the transfer node will use the list to either sent it to Input@Server1 or Input@Server2 based on the selection goal. In the attached model, the selection goal "Smallest Value" and the selection expression is "Candidate.Node.AssociatedStationOverload"....This represents the sending the entity to the server least available input buffer capacity. I think this handles the scenario you explained. As for integrating with OPC, I would suggest looking at this example: http://www.simio.com/forums/viewtopic.php?f=12&t=1381 It shows how to build custom steps and firing events using .NET code. If you wanted to communicate with OPC, you would use a custom step to read the OPC server. If you want the OPC server to interact with Simio. you would call a custom event. It is possible to setup the same of integration with an ERP system; although it is not recommended. For ERP integration, I would recommend using a data table with data binding. Since the data in an ERP system is much more static, it can be loaded at the beginning on the model run. Then the data can be referenced in the data table during the simulation run. RouteByNodeListsModel.spfx
  15. Hi Sean, Where is your Process triggered? Depending on its location, it may allow multiple Entities to Delay simultaneously. For example, if this Process is at Output@ServerA, this will allow multiple to Delay at once and the Entity that finishes the Delay step first will move along the Path to ServerB first. You can have them Delay one at a time if you change the Output Buffer Capacity to '1', however, this will cause ServerA to be in a blocked state until the Delay is complete. All the best, Caleb Simio Technical Support
  16. Hi Mauricio, You can create a mock warm-up period by using an OnRunInitialized Process. An OnRunInitialized Process is executed when the model is first initialized. For example, you can use OnRunInitialized to Create and Transfer Entities into specific Servers as soon as the model is initialized, which is similar to what a warm-up period does. You can read more about OnRunInitialized in the Simio Reference Guide under the topic "Processes". While using OnRunInitialized can give you similar results to a warm-up period, it is not exactly the same as the Warm-up Period in the Experiments window. Keep in mind doing this will affect your Experiment and any other statistics collected (i.e. if you use a Warm-up Period in the Experiment it will essentially warm-up twice). A second option to explore is using a Timer to trigger a Process that contains a Clear Statistics step. This Timer should only go off once. This option is more similar to what a Warm-up Period in the Experiments window actually does. All the best, Caleb Simio Technical Support
  17. Hi, I am new to Simio. I was trying to add a routing decision in my model based on average time waiting at a server. But this function only shows up in the status label but not when I try to use it in the Processes as shown in the images. An entity reaching a node should choose the route to a server which has minimum average time waiting. What I am trying to achieve is to create a dynamic routing so that the average Time in System of the entity will be minimized. I don't know whether this is the right method or if we need to work with API or functions to achieve this. Any help would be much appreciated. Thank you in advance.
  18. Hi, Is it possible to access the filter expression of standard Dynamic Selection Rules for use in processes? Basically I want to filter queues based on some Entity properties, eg, being a specific material. However standard dispatching rules only apply the filter if multiple entities are in the queue. Eg, if a an entity of "wrong" type arrives to the InputBuffer of a Server and the input buffer is empty it will seize the queue anyway. In my case I want to keep the server starved until an entity of correct type arrives. I found a way to implement that by filtering the queue with the same expression as used in the dynamic selection rule, however I need to add another property for that expression, which is a bit confusing. Thanks for your help Michael
  19. This is a very cool library, i have built two very simple examples to test before using it in a simulation in which they will represent Ship to Shore Cranes. First of all, it took me a moment to figure out that "entity destination" on my home node for the crane has to be set to "specific", can this work using "continue" ? Now, on attached example 1, the Crane picks the entity and will wait for an available vehicle to make the transfer, building a queue in the home node for the crane if there is no available vehicle. This is great since it reflects what happens in the actual operations, the crane waits for a truck to be below the crane to drop the container. crane_example1.spfx But there may be interest in simulating the crane dropping the entity into the floor and just keep unloading the ship, this means i now want to drop the entity without the vehicle being available. Is it possible to control this behaviour at will? I was looking for the option of an input buffer of some sort but for now I just add a normal node and allow the crane to drop it there it will build a queue waiting for the vehicle, this can be seen on example 2, I appreciate any ideas, crane_example2.spfx also, I tried scaling the elements and it gave me an error on height, so I was wondering what should i take into account when scaling (changing size) of this elements? I will take a screenshot next time I encounter the error. finally, I will be using this element in my simulation, and i was wondering what are the thoughts on "tulach" question: "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." thanks best regards
  20. Hello. I would need to create a simulation where the first and the last entities created goes to a different server than other. To do that I have created a node with to exiting path where the rule is a decide and the rule is entity.id == 1 || 150. But when I start the simulation the first entity created has the id = 18. How can I put that the first entity created as the .1 ?? Thank you
  21. It sounds like the problem is you are not using the internal state that Simio uses to hold the current destination. You have not attached your model or included any logic, but I would say you should consider eliminating your custom state ModelEntity.DropOff and use whatever logic you used to set that to instead set the internal state using the SetNode step or the Entity Destination Type option on any Transfer Node. If you use that, then it will automatically be dropped off at the specified destination node.
  22. Hello indsiders, I have the following problem, which i broke down for better understanding: The next time Server2 is free, it should select the red entity with the priority 1 (Dynamical labels notify the Entity.Priority) even if the red entity has not reached the input buffer of Server 2 at that specific time. It seems like i need a ranking expression that says: Server2 select Entity.Priority == 1 out of the input buffer. If there is no Entity that matches this condition wait until a entity with the matching condition arrives in the input buffer. I tried the seize, allocate and reserve step. But nothing is realy acceptable. I assume it's an easy problem, but after several hour of trying i gave up :(. Can someome help me ? Best regards, Benjamin
  23. Hi Fra, Have you tried changing the Input Buffer Capacity and Output Buffer Capacity to '0'? This will prevent the pieces from queuing in front of the servers because there is no input buffer for them to queue in. Instead, they will queue on the link leading up to the server. If you use a Path, to see pieces queue up behind one another, set the Allow Passing to 'False'. If you want the pieces wait at the current object until the downstream object is available, you can use a Connector (instantaneous travel). For a solution where travel time is required between objects, you can explore using Add-On Process Logic to prevent moving until the downstream object is available. In this instance you would use either a TimePath or Path. All the best, Caleb
  24. Hi Benjamin, The first thing I recommend is to select Server2 and change the Ranking Rule to 'Smallest Value First' and the Ranking Expression to 'ModelEntity.Priority'. Doing that will allow the entities that are currently arriving to Server2 to jump ahead of higher valued entities in the input queue. In order for Server 2 to process, when free, an entity with a priority value of 1 even if has not entered Server 2's input buffer at that point, you will need to use a process. This process only looks at values that have entered the paths to Server2. Create an AddOnProcessTrigger for Entered for the two paths going to Server2. -Insert a Decide Step and have the Decide Type be 'ConditionBased' and the Condition Or Probability be 'ModelEntity.Priority== 1'. -Insert a Reserve Step after the True arrow of the process. Change the Resource Name to 'Server2'. This reserves Server2 for a ModelEntity with a Priority value of 1 if such a ModelEntity has entered either of the two paths leading to Server2. This is a general idea how to begin to solve your problem. If you want to do further reading, check out the "Reserve" page in the Simio Reference Guide. All the best, Caleb
  25. Hi - I am trying to relocate nodes during run time using Relocate Object step. It works if my nodes are not connected by any links, otherwise it does not. I want my entities to follow a Network Path in Travel step, therefore, it is crucial that my nodes are connected. Any suggestion how I could achieve this? My aim is to avoid collisions when entities travel from one node to other in free space, only way I know to achieve this is through Travel step. Thanks, Zaki
×
×
  • Create New...