Jump to content

Search the Community

Showing results for 'seize and release'.

  • 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've got a model where the situation is like this: 1. 3 Worker: W1 W2 W3 2. 3 Server: S1 S2 S3 On Monday (work schedule), W1 will work in S1 in the morning and work in S2 in the afternoon. W2 will work on S2 in the morning and S1 in the afternoon. But on Tuesday, W1 will work in S2 in the morning and S3 in the afternoon. W2 will work in S3 in the morning and S2 in the afternoon. The server properties in the secondary resource are "select from the node list." But since the node list for S1 and S2 contain both W1 and W2, and they both have the same hour of working (4+4), when the S1 server seized the resource on Tuesday morning, instead of W1, W2 got allocated instead( W2 should be in S3). I have tried: 1. Using server selection goal to " smallest distance," but it didn't work since the worker will keep swapping the room every day 2. Giving each worker a new initial value and setting the selection goal to "smallest value," but they still have the issue. 3. Try setting idle action for the worker to stay at the node, but sometimes the worker will go to the wrong destination from the first entity, hence no one working in the other room. (2 worker stay together) Is there any method to realize this idea? Thanks in advance
  2. Hi There, I have lots of experience in simulation but I'm new to Simio - my apologies if my Simio vocabulary/conceptualization is off or if this question has been asked already. I'm working to build a queue model simulation with a network of services and multiple staff types. In my mind, it makes the best sense to do this using the standard library of servers and resource pools (to visualize the network for stakeholders and be able to model multiple staff with different schedules that can each respond to multiple services). Right now, I am starting with a single stage M/M/c type queue to make sure that my implementation is correct before scaling this upwards. I checked out the SimBit titled 'Source – Server – Sink' that has three different M/M/c implementations; however, none of them use Resource Pool objects or combine process triggers with the standard library. I was able to implement a basic model that tries to combine a resource pool with a server by triggering separate Seize and Release process triggers on entry to the server object and after the processing time is completed, respectively. It runs without error; however, the results for average time in system (calculated by an average of a tally statistic that is only recorded for every 500th customer/entity), the results are one third less than in a scenario where I don't use a resource pool and set the capacity of the server explicitly, (which I validated against M/M/c formulae results). Does anyone have tips for how to link servers and resource pools and troubleshoot this scenario? Is there a SimBit or other example out there that is relevant? Am I triggering the seize/resource processes at the wrong points in time? Or is my framework for how to conceptualize this in the Simio environment missing a key concept? Thanks!!
  3. Hello, I'm working on an emergency department (ED) model where I'm using both nurses and doctors as resources. At the ED, there is a 4:1 Patient to Nurse ratio, meaning that on average, a nurse takes care of 4 patients at the same time. When I was thinking about how to implement this logic on Simio, I looked at this option on the Seize step under Advanced options (you can see it on the picture I attached). I set the Units per Object to 0.25 - because I thought that every time a patient seizes a nurse, it will take out 0.25 out of 1 unit of capacity, instead of taking the whole 1, allowing for 3 other patients to seize her before she is completely busy. However, this doesn't work, because I ran a model trace as I ran the model and the server is ignoring the seize because the "Units per object" is set to 0 (which is not, it's set to 0.25) - the exact model trace comment is: "Ignoring resource release of type Specific 'Nurse'. The required capacity units per object '0' is not a positive quantity.". Therefore, the model ignores the resource seize and processes the entity without the resource. Is this because this property field only works with integers? I thought of a work around by just multiplying my number of nurses by 4 to account for that, but that's not optimal. Would there be any other way of achieving this? Thank you very much for the help!
  4. Hi, Usually what I do in cases that I want to check capacity before sending is create a "dummy" Resource. This way I seize its capacity before sending the entity forward. If it has no capacity for a given entity, the entity will just wait until it has capacity.
  5. Perhaps its a little late, but attached is a possible solution to your problem. This started out pretty simple. The problem was how to specify which server is serviced by which resource. One way to do that is a table. But since its changing over time I chose to use a time-indexed table, that is a table that knows about time and returns different data at different times. In this case, each row corresponds to 12 hours and each column specifies the resource needed by the respective server. As they say, "the devil is in the detail" and in this case the "devil" is that the specified resource may change between seize and release (e.g., seize at 11:59, release at 12:05). Simio doesn't like that and all the easy options re-evaluate the resource expression on release and so may try to release the wrong resource. One option would have been to create a custom server, but that seems to be overkill. Here is a somewhat simpler approach: 1) Add an entity state named MyResource and assign it at the last possible moment before use. This value will be used only for release. The assigned value is drawn from the table using an expression like Table1.S1Resource.TimeIndexedValue.Object. Note that the .timeindexedvalue indicates to get the value associated with the current time. And the .object at the end is used to tell Simio to return that value as an object not a number. 2) Use Secondary Resources - Other Resource Seizes to seize the name specified in the table using the same expression above Table1.S1Resource.TimeIndexedValue.Object. 3) Use Secondary Resources - Other Resource Releases to release the resource saved in MyResource. TimeBasedWorkerSelection.spfx
  6. I know it's been a while, but I just came across this question and I'm responding in case this can help someone else. Depending on the problem, modeling nurses as patient capacity might not work; for example, if you need to limit both a nurse's active utilization and the nurse's patient load. Two general approaches exist: Easier: Create two different resources, rename one 'NursesActive' and the other 'NursesPassive.' Set the latter to have n times the capacity of the former, where n is the patient ratio at n:1. Require simultaneous seizure of one of each type of resource when first assigning the patient, and release them separately, re-seizing the former as needed. Harder: Subclass the Resource object and create states to track the patients assigned and a property to define the patient ratio. This approach enables more fine-tuning as necessary.
  7. Rotary filler head object that represents animation of bottles rotating around a cylinder as they get filled. You can use a regular server if animation is not required. This object lets you define the number of filling heads, direction of rotation and rate (Bottles Per Minute), pitch of fillers heads (in degrees) and ReleaseType (Release type represents where the bottle will be released at 180 Degree from the start point or 270 degree). As seen in the picture above, Arrow represents the starting point. Users can also specify if they need fine control over the rotation of the filler heads. If fine control is set to True filler head will pitch by 1 degree. This provides smoother animation.Users will have to make sure the pitch is set correctly in relation to the release type if Fine Movements are set to False. With FineMovements set to False filler heads movement is equal to pitch defined. Users can also specify failure rate in similar way to server or other standard Simio objects. This object has not been extensively tested and it can be further customized to requirements. IndexingPlate - V4.spfx
  8. Hello, I'm new to both the forum and the world of simio in general. I am trying to simulate how much the maximum buffer could be in 2 points of my process which are defined by the Buffer_ST1 and Buffer_ST2 servers. My problem is that I would like the Buffer_ST2 server based on a condition that would be every time an entity passes on Input @ Buffer_ST1, the Buffer_ST2 server releases only one processed entity and not all those inside the server as it happens now, I hope for being clear and thank you in advance. I put the model in the attachment Buffer varianti trazioni V2.spfx
  9. Thank you for the model! It took a long time to get the sprint release but now I can see it and it helps. Now I have another problem. I am trying to do a pick up at two different places and the drop off at one destination. There I want to have the transport costs split on the entity with the calculation TransportCostRate/TransportQty. The logic works like this: The transport from Source1 to Source2 (or BasicNode4) should be charged and assigned to ModelEntity.Cost. Then from Source2 to Server1 another calculation should be done, now with the increased transport quantity in dependency. But in BasicNode4 the process is not triggered by the ModelEntity, but by the Transporter. Is there any way that the process is triggered by the passenger? (the entity in the ridestation). The model is in the appendix. Best regards. Model_421.spfx
  10. Hey, Thanks for your reply. No I have not used a move or size step, I use the worker as a resource. I use it for processing, and have a resource seize and release before processing.
  11. ConveyorLibrary.spfx Simple conveyor library with a merge controller, slug conveyor, Slug Node and a Photo Eye. Library has two example models. A MergeControllerModel and a PE_ExampleModel. Merge controller,Slug Conveyor and Slug Node are used together to develop a slug merge. ConveyorLibrary.spfx On the slug conveyor you can specify the size of the slug. Slug node controls when the next slug is to be released. As soon as last entity in slug crosses the slug node it will send a signal to merge controller to release the next slug. Ending node of the slug conveyor has to be a slug node. Conveyors before and after slug conveyor are regular conveyors. These objects have not be extensively tested. These can be used to develop other conveyor related objects.
  12. I am working on a model of a production line where one of the work stations is a long work table with six workers at it. These workers perform identical assembly tasks and will sometimes leave the table in order to transport finished items to the next step in production. I am currently representing the work table as a single server. I am wondering if it is possible to dynamically change the server's capacity based on how many workers it is able to seize at a given time. Essentially, the server can process with just one seized worker but can seize up to six. Is this something I can implement with Simio's built in functionality, or is it easier just to represent the six spots in the table as individual servers? Thank you!
  13. Hello! In my model, there are 5 machines running for production. Each machine has opportunity to be failed, the mean time between two failures is exponential(4.5) hours, and the repair time will last triangular(20,25,30) minutes. I use 5 Resource to represent these 5 machines and place them on the canvas because I want to see the state changing of each machine during the model running. Five entities will be created at the time zero simultaneously and the Source will only create 5 entities, those entities arrive at a Server which capacity be set to 5 and the Server’s processing time is exponential(4.5) hours. When one entity go out the Server, it means one machine (Resource) failed. My question is how can I find the corresponding resource related to this entity and change its state to failure and then after certain time duration of repairing to change its state to busy. Say, if entity 3 go out the Server, then I need to set the state of Resource 3 to failure and then change it back to busy. I want to use list or table to achieve my job such that the model can fit for very large amount of machine’s condition, e.g. 1000 machines. Thanks!
  14. Hello everybody! I need some help to model a workers logic. I already read most of topics about workers and went through the MoveableOperator and InterruptibleWorker simbits. I have a line with 3 stations and 3 workers. The 3 of them can work at the first server. Then only 1 (that is identify) can work at the 2nd server and only another one (also identify can work at the 3rd server. I want that the 3 of them work initially at the 1st server. As soon as an entity arrive at the 2nd or 3rd server, the identify worker be seized to do the job at the correct station. After the job is done at the 2nd or 3rd station, I want the worker to be released to be seized again at the 1st station so that it help to finish th work in process at 1st server. The problem can be set in another way. Each server as an accredited worker and worker from servers 2 and 3 can be seized by the 1st server if they have no work at their own station. I've already tried several things but it never work how I wanted. The biggest problem was th e following. there is a worker that is seized by the wrong entity or entities wait to finish a process to seize a worker. So if I understand well the Simio logic and if it's possible, I need to know how to command which entity have to seize which worker and how to seize a worker during an entity is processed. Thanks in advance!!
  15. You could also use the Release Batch Early Triggers to recheck the condition after an event.
  16. Thank you very much for your help, but simio says I can't use the Release step with the server because I don't have any resources to release. In addition, although the Search step works very well, since I don't have any step that keeps the entities inside the server even if they are not called, they continue to leave the server and merge with entities that should not be merged. If I set the processing time to infinity, despite calling entities with the Search process, the entity does not leave the server. I tried to condition the processing time of each entity according to the "Ventana_de_entrega" state, but as expected, it is not the most appropriate. 21.10.spfx
  17. You need to put the search, release and transfer steps into the Add-on Process Triggers "Parent Entered" of the Combiners. For example, for the "Juntar_secos" combiner, at the "Parent Entered" Addon process, you would search for Slots.Processing.Contents, matching "Candidate.ModelEntity.Id_Del_Pedido == ModelEntity.Id_del_pedido". After that you should use a release step, to release Server "Slots", and a transfer step to transfer what have been found to Output@Slots.
  18. Well, first thing, you don't need your entities to be bouncing between the output and the input of your server like that. If you want to use it as sort of storage, set both the processing time and the capacity to infinity. After that, at the moment that the parent entity enters the combiner "Parent Entered" you could search the queue of your storage using a search step with something like "Server1.Processing.Contents", with the condition of "Candidate.ModelEntity.State == ModelEntity.State", release the server and transfer what have been found to the output. You need to take some care on some situations, like what if the parent entity arrives first at the combiner then the member at the storage? And some care with batching quantities aswell. But I think you can handle it.
  19. Hello I would like an help doing the next thing, I already try diverse solution but nothing: I would like a add-on process in a server evaluation seize request that search in the queue for example minimization of processing time, and do another search for the maximizatioj between time now and entry time in this queue, and if the second is greater than the server must produce this one, else produce the first one. The search step, and the decide I already achieve, I confirm that with "model trace", but I can't find any solution to allocate the entity found in the respective server. A little help?
  20. Hi, I'm already assigning resources based on priority, but if I have a high-priority entity hit a certain point and there are no resources available (capacity ==0), I want to branch off and have a resource "stolen" from a lower priority entity so that my high-pri entity can get service. Does this imply a release-seize? Maybe I could fire an event and all my low-pri processes are listening to do a release? But how could I make it so that not everyone dumps their resource? Or is this a "Move"? Note that there isn't actual movement, so I'm not sure if this applies. Any tips gratefully received! I'm not sure even how to use "Candidate" well, in order to see if the "Candidate"s Owner is a low-pri entity or not.
  21. 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!
  22. Is it possible to release a resource after a model entity departs the system? I am trying to model a case when an exam room in a hospital is cleaned after a patient leaves the system. The exam room should not be made available to other patients prior to cleaning. It seems the default is to release all associated resources when an entity departs the system. Thanks in advance!
  23. HI all, I keep running into an error every time I run my model and I'm not sure what it means. The dialog box says: --------------- Entity: PartType.88 A Runtime error was detected at time 288.17 Hours at the following process step: Object: Model Process: Srv8_AfterProcessing Token: Token.1 Step: [Release] ReleaseTool Property: NumberOfObjects Error releasing resources of type Specific 'Tool1' owned by object 'PartType.88'. Unable to release '1' resource object(s) of the specified type because the number of individual resources owned and satisfying release conditions is only '0'. --------------------- My model is set up so that it creates entities (PartType 0 through 4) so that it will make one PartType 0, then one PartType 1, ... , then one PartType 4, and start back over at PartType 0. (Based on the SimBit "Sequential Processing By Batch Specified in Table"). As each entity enters the model after being assigned a specific type, it seizes capacity in a resource specific to that PartType. The resource remains seized until the last server before the sink (Srv8), where the resource is released. The seize/release operations are accomplished using Add-On Process Triggers. Not sure if it's relevant, but the entities must ride on one of 4 transporter between all servers. Can anyone help me solve this error? If I understand it correctly, somewhere along the way more resource capacity is being released than seized and I'm not sure why.
  24. Hello, In my model, there are multiple servers for which a secondary resource seize is required. Different pools of potential secondary resources are listed in Object Lists. I would like any given server to pick from a different list depending on the value of a Property, For example, if Property==A, then the Server should pick from the Object List "A", if Property==B, then from List "B". I tried changing the "Object List Name" expression to become a conditional one, but it did not work. Should I instead try to keep the List name the same, while changing the members of this list conditionally? Is it something that can be done through an Add-On Process? Thanks a lot for your time!
  25. Hello, I am working on a model that process jobs (dolls) on a single station. I have 3 types of job that could be processed by just 1 resource. Resources are flexible and may do the same job but each one has its own time to do the task. Jobs are processed based on their smallest processing time. So far, the attached model could select the smallest processing time and pick the right resource (based on the index on the table) but I could not find a way to physically seize the right resource. On the seize step, I just put the preferred one; which means, it will always seize Resource 1. Here, I am starting by deterministic processing times (known in advance) but targeting the stochastic ones later on (for example: Random.Uniform(1,4)), that is why the selection must be dynamic. For example, when I get the green doll, the model is able to process it in 4 min and pick the correspondent resource (resource 4 in this case as we can see on the attached status label) but physically, Resource 1 is doing the job. Any help folks. Thank you. MyModel_6_Version 3.spfx
×
×
  • Create New...