Jump to content

Search the Community

Showing results for 'Event AND entity'.

  • 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 don't think you need to save those times stamps on MyVehicle. I would suggest you to use processes that triggers when the entity leaves the Output Buffer of the source and enters the Input Buffer of the server. To do that, create two process with the corresponding Triggering Event Name: Source1.OutputBuffer.Exited or Server1.InputBuffer.Entered, saving time stamps directly on the MyModelEntity.
  2. Hi everyone, I am trying to model entities moving from 10 origins (sources) to 10 destinations (sinks). The entities are simultaneously created according to a certain mix (Entity1 (85%), Entity2 (10%), and Entity3 (5%). However, the number of entities created per event is according to a certain distribution. There is an OD-matrix that captures the number of entities moving from origin to a specific destination. Let's say there are 10 destinations, than the destinations of the Entities are determined according to the OD-matrix: Entity1 and Entity2 can move to any of of the sinks. Entity3 can only move to one specific sink. One solution I came up with was to add weights to Connectors and assign destinations using TransferNodes, but I think that this is very inefficient. I then started to work with DataTables, but I cannot figure out how to probabilistically assign the destinations of the entities. My question is: how to model the probabilistic destination assignment of Entities using DataTables in such a way that it is relatively easy and flexible to add or remove Sources/Sinks? I have added the model for you to see, I hope that you can help me! Many thanks in advance Simple_OD_creation.spfx
  3. Hi, I am looking for an event which can be used in a Wait step in a process which is triggered by an entity finishing processing in a station. Also potentially an event which is triggered when an entity exits a station. Do I have to manually fire an event with an addon process from every station which I wish to do this?
  4. Hi John, The entity is requesting a ride from the vehicle and the vehicle will seize the driver if available. However, if the vehicle is unable to seize the driver, it will reject the ride request and the entity will move to the Global Visit Request Queue, as you are seeing. You can attempt to have the Vehicle check again if it can now pick up the entity, and it will run the process to check if a driver is available. To have the Vehicle check the Global Request Queue to see if it can give a ride, use a PlanVisit step. Ensure that the Vehicle, in this case Vehicle_A, is the object executing this step. By default, the Vehicles are not aware if the Driver they need becomes available. You might consider using a Subscribe step on the Vehicle's OnInitialized process. This Subscribe step can watch for an Event and if that Event occurs, can trigger a related process. For example, the Vehicle might wait for the Driver.Released Event. When this Event occurs Process1 could run. In Process1, the Vehicle could execute the PlanVisit step. For more information, I recommend the Help pages in the Simio Reference Guide titled "PlanVisit" and "Subscribe". Happy Modeling!
  5. Hi Amine, I have defined a new process named process1 which is triggered by Input@BUFFER_ST_1.Entered event. Then, I used interrupt step (in process 1) to get one entity from processing station whenever process 1 is triggered. Note that I set the processing time of BUFFER_ST_2 server to infinity to hold entitys until Input@BUFFER_ST_1.Entered event is occured. I am not sure if setting this to infinity is a problem?. Other than this everything is ok and it seems it works. Buffer varianti trazioni V2.spfx
  6. 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!
  7. Hi LizMB, Without evaluating your model in detail, that error is due to a transfer not being completed (transfer request while entity is still being transferred previously). It is typically when you make use of a transfer step and either not end the transfer (using and "End Transfer" step), before transferring it again or when Simio attempts to transfer the entity (due to inherent worker/node/vehicle logic) before the end transfer is completed. It could also be if you interrupt something before a transfer action has completed. What also happens is when you have processes executing e.g. On-Entered and the same entity executes one or more such processes at the same time, resulting in a inherent transfer request before the previous has completed. It could be a matter of timing or the sequence of events, or a problem in your logic. When you are using a transfer step in your logic it is useful to have a process with an End Transfer step that is either subscribed to certain events or executed on an event triggered e.g. StationName.Entered. If you were to interrupt a process/action, you can either fire the trigger event or just use logic to test whether the entity has transferred. With an add-on process it is best to understand the sequence of events happening in the Simio logic and ensure certain logic gets completed first or that you don't have parallel requests at the same time. As you can see there are multiple ways to address something like this and your approach depends on your logic and the system being modeled. Good Luck. H
  8. You can just use a process with a WAIT step. On entity arrival you will fire and event and the process will go on. I also belive that a worker is derived from entity so you can use workers instead of entities. Or the best fitting thing is to use consume step to consume a material (the tools). And have two inventories for it (one near the machine, one in the warehouse of tools). There are some simbits with the basic inventory concepts.
  9. Hi!! I want to know in which object (in this case filler) my container entity is when certain event occurs. Is there a way to access this info? Thank you so much! Teresita
  10. I ran your model until the warning occurs and then examined the Content and Throughput categories in your Results Pivot Grid. I didn't notice any alarming buildups in any of the Combiners, Conveyors, or Servers, but the Entity statistics appear unusual: None of your 3 entity types ever exit the system. Your problem is with creation of too many empty pallets. Another thing I noticed that could be the main problem is that your Empty Pallet source creates 6 empty pallets every .25 minutes, with no limit. When I converted this to a just-in-time (Event Based) creation the entity limit problem went away for that entity type: To answer your specific question, on the Project Home ribbon there is a place to open a Breakpoints window that allows a lot of flexibility to trigger a model break (pause) when a specific condition occurs. I hope this helps.
  11. 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
  12. Every station comes with three events: .Exited, .Entered and .CapacityChanged. So the triggering event of an entity finishing processing in a server is Server.Processing.Exited.
  13. from exponential distribution you can get varying numbers in a very very wide range (for example, if you are using exponential distribution for generating interarrival times in one draw (random number generation) you can get 1 (say hour) and in another draw you can get 100 hours). The authors emphasizes that this situation can cause improper results in simulations due to discrete event simulation time advancement mechanism. Assume that you have periods each length is 20 hours. Note that, in discrete event simulation, i.e., the first event plans the next event. So, assume that in the first period (within the first 20 hour) the first event will be created at exactly time 1 (hour) (say an arrival event). After its creation, this entity plans the next arrival (thus an interarrival time will be generated from an exponential dist), i.e., the second entity will arrive to the system at time 101 (hour, 1+100). this means that you will have only one arrival in the first period and no arrivals in 2th,3th,4th and 5th periods. the authors says that this is an inconvenience and arrival should be planned in each period, seperately. By this way, in each period you will have at least one arrival. For this to happen you can use rate tables.
  14. 1) Depending on how the entity is created in the first place, that assignment may already have been made. So, for example, if the table includes the arrival time and is used as an arrival table within a Source (Arrival Mode is set to 'Arrival Table'), then the entity that is created automatically has a row reference to the arrival table row from which it was created. Alternatively, if you create an entity, you can use the SetRow step to assign it a specific row in a specific table. ** The entity doesn't ever become a token ** Please refer to the Tokens page and the Tokens and Entities page within Simio help for more information. Tokens can be associated with entities (or with a model if a process is triggered by a timer, event, etc.) 2) If the entity has a row reference within a data table, simply referring to the TableName.ColumnName to access the table information is sufficient. This will automatically retrieve the information in the TableName table, ColumnName column at the designated row that the entity has a reference. If the entity doesn't have a reference within that table, Simio will give an error if you attempt to refer to the data in that fashion. Alternatively, you could reference a TableName[RowNumber].ColumnName to specifically reference a given RowNumber. Refer to Data Tables page within Simio help for more information.
  15. Hi there - My entities are going into a wait step based on a condition. So at any point in time I may or may not have multiple entities in the wait step. When I fire an event to release entity from the wait step all the entities which are in the wait step at the time event is fired get released. I don't want that, I want wait to release only one entity every time release event is fired. Any ideas how I can achieve this? Thank you.
  16. You asked for "a way to start/stop timers on a specific entity without creating a bunch of different events". As I understand it, Enable is just a switch that stops/starts the Timer clock. It has nothing to do with triggering events and does not require any events. So if you set a timer to fire in 60 minutes, then after 10 minutes disable the timer, the timer should fire its event 50 minutes after it is enabled.
  17. Is there a way to start/stop timers on a specific entity without creating a bunch of different events? The potential problem I see is that the reset timer event is general and would require a bunch of individual events.
  18. How can I schedule a randomly distributed death event for each entity, and pull them out of the system (or perhaps route to a "mortality" sink) if it occurs before they have already left? Somewhat similar to reneging, but I need mortality to be possible during a service, not only in queues. If an entity is removed from service, I also need the seized resources to be released. What I have tried so far: When an entity is created, I provide them with a state variable for TimeTillDeath, lets say exponential(2) hours. This is a real number, not a datetime. As they enter each queue, I set the reneg trigger as ModelEntity.TimeTillDeath subtract any elapsed time since creation, min 0. This works to model mortality while they are waiting for service, but not during a service. Any help is appreciated, KO
  19. For this particular scenario, you could have a Timer (see Definitions tab, Elements button on panel). The timer would define the time(s) that an event is triggered - for example if the simulation starts at 12 am, then you could have the first timer event at 5 hours (5 am) and then every 12 hours after that (5 pm, 5am, 5pm, etc.). The 'event' that the entity would wait for would then be TimerName.Event. You could use a Decide step before putting the entity into the Wait step, then the event would be automatically fired at a given time by the Timer element. (instead of by a Fire step).
  20. Hello all and thanks for letting me be a part of Simius Insiders I have a question with my model. How can I create dynamic routes of my vehicle (AGV) to attend different events. For example if the server B1 finished its process the vehicle should go from S1 with an entity (pallet), go to A1 (input server A1) then go to B1 (server output B1) take the load and finally take it to S2. Once the entity is left in S2, go to S1 and wait for another event. Another event would be: server A2 ends its process then the vehicle should go from S1 with an entity (pallet), go to B1 (input server B1) then go to A2 (output server A2) take the load and finally take it to S2 . How could I do this programming? Thank you very much Modelo2Pulmones.spfx
  21. Hello, One approach you could use is have an initial capacity of 0 at the Enfriado servers to hold the entities in the input buffer queues. During the entered event of the input nodes of the Enfriado servers, you could insert the tokens into a storage element. And a "controlling" server could then use process logic triggered by a scan step that determines if the number of entities in the input buffer queues are greater than 1, that would perform a search of those Storage.queue for the Entity with the longest processing time. To determine the processing time, one has to track it. The real state variable on the ModelEntity, ModelEntity.RealStateVariable, would be created and TimeNow would be assigned before processing. Then that is assigned TimeNow - ModelEntity.RealStateVariable after it processes at the previous servers. Once the entity is found from the storage queue, a transfer step would take that entity and pass it to the Cortador server's input node. The search step could look for Candidate.ModelEntity.RealState1 using a Backward search type and a limit of 1. Once the entity is transferred, the entity can be removed from the storage element. Judy
  22. Hello, In my model I’ve made entity arrival mode to be On event and I’ve created an event named CommandeEvent in the Definition ==>event section. In order to action the event, I’ve created a process called ProcessEvent in which I have a decide step followed by a fire step that fire the CommandeEvent if the condition in the Decide step is respected. But when I run the model, the entities are not created. Is there something I should do differently or add ? Thank you, Flora
  23. Hi Kevin, I prefer to use Servers instead of Workstations. You can try this approach. During the failed event of the Server, I search the Resource Owners of the server. Then search the Seized Resources of that Resource owner (the entity), then I decide if the worker is seized. If so, then release it. If I need another worker or resource available when the server is repaired then on the repaired event, I search for the Resource owner of the server again, the entity, and have that entity seize the resource/worker. If it is a worker and I want to move that worker to the server's input node and there is more than one server that fails and repairs, then I use the Input arguments of that process, create a state variable for the server instance. I can then tell the seize step to use the node, ServerStateVariableName.Server.Input. I hope this approach gives you some insights as to how to model your system. Judy
  24. 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!
  25. If you mean that an entity should not advance to the next location unless it is available: Try using Node Lists when routing entities to the next location. Lists automatically block the entity from moving forward if the destination server is not available. 1. Create a node list in Definitions>Lists 2. Set the input and output buffers to 0 on your servers 3. On the output nodes, set Entity destination type to "Select From List" and choose the node list. If you mean you have a group entities that are processing at different servers and none in that group can advance until all are processed: Use a Wait step and event. After each entity finishes, trigger the wait step to wait for an event. After the last entity finishes, fire the Event. You will probably also use a Decide step to separate the non-last entities (wait for event) from the last entity (fire event).
×
×
  • Create New...