Jump to content

Search the Community

Showing results for 'Bulk resource occupation'.

  • 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. Perhaps I am missing something, but I don't recall Simio ever being able to work as you described. We generally recommend making the server capacity Infinite, so it becomes irrelevant, then relying on a secondary resource to be the constraint. I think this approach will work fine for the case you describe.
  2. I had once constructed a model where four servers shared a single resource pool. I had done that by setting their capacities to 0 and forcing them rely on the secondary resources seized from that pool. However, I am seeing that the current version of Simio does not allow that. If the server capacities are set to zero, they don't work at all. In other words, that shared pool can only be used as the source of their secondary resources. My question is, is there another method of forcing the servers seize their primary resources from a shared pool, like in the model of a fast-food establishment where just one employee accepts orders but also prepares fries and drinks and then the same employee delivers the completed orders?
  3. If you haven't already done so, I'd start by reviewing the SimBit ResourceSelectionConcepts. It contains several models that explain different types of resource selection. In particular, I'd suggest a combination of the following approaches: Create a table for each Worker (and/or each Server) where columns in the table represent the constraint or exclusions. For example, you might have a server table with columns for each day, and each column might contain a list of workers who can potentially be used on that day. Use resource lists to select from. possibly with exclusion conditions (maybe referring back to a table) of which resources cannot be used on that server and that day.
  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. 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.
  6. 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
  7. 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
  8. there are several easy ways to do this. 1) Subclass the Resource or Worker object with the only change is to add a property or state (ex PTime) to hold the processing time specific to that resource. 2) Put your process times in a table and reference the correct table row for the doctor that is working. The SimBit WorkerPoolWithEfficiency does something somewhat similar.
  9. Hi Nicolas, I would investigate the Server property called Initial Capacity. This sets how many units of capacity are going to be available for the Server. You could also change this during the run by Assigning the Server's CurrentCapacity State Variable. I suggest checking out the SimBit titled "Worker Uses Work Schedule". You can access the SimBits in the Support ribbon in Simio. In this SimBit, I recommend changing the Initial Capacity for the Servers. You could set them to '6' or any value. When you run, you will see that the entities only move into the Process Station when they have successfully Seized the Secondary Resource. So even though there is 6 units available only 1 will be use when the Worker is able to process the entity. You can also experiment with giving the Worker a different Initial Number In System value so there can be more Workers. You will still see the same behavior; the number of entities that move into the Server for processing will be the number of Workers that were available to be seized. Happy Modeling! Liz
  10. This is problematic in Simio because Simio considers only entity length (not width) and only when on a Path or Conveyor. I think the first thing to do is fix the nose to tail problem. If you happen to use Conveyors to model this, there are built-in features to manage spacing while stopped and different spacing while moving. But unfortunately Conveyors are limited to a single direction, so are perhaps not appropriate if this is a bi-directional taxiway. If you are using Paths, you can fix this by making each plane longer when you draw it. For example, if you are drawing a plane that is 50M long and you want it to stay at least 10M behind the plane in front of it, place a nearly invisible dot about 10M in front of the plane's nose, making the total plane length (including safety spacing) be 60M. Although Simio will still put the entities nose to tail, there will be a 10M safety spacing between the physical planes. The problem of conflict at merge points is a bit more tedious to fix. I'd recommend a resource-based approach, like illustrated in the SimBit in Merging Conveyors Controlled by Gate. You can use this approach even when using Paths.
  11. Hello Javiera, Based on how the model is set up, Guardian_1 and Guardian_2 follow Work Schedules with specific Day Patterns. Looking through the Trace lines, it appears that Pedido_PU.597 arrives and seizes Guardian_1 which, not much longer after it was seized, was scheduled to go off shift based on Work Schedules. The current Off Shift Rule is 'Suspend Processing' which causes the entity being processed to be suspended until the exact Resource is back on shift. To allow the entity to choose an alternative on shift resource, the Off Shift Rule property can be changed it to 'Switch Resources if Possible'. Best Regards, Khaled
  12. 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.
  13. 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!!
  14. 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
  15. I'm dealing with a similar situation with my model. I'm trying to tell my model to seize 1 resource object for every 3 entities. How can I go about this?
  16. Hi All,

    I have a server and I have to write out in a csv whenever the resource state of the server changes like from processing to blocked  or from blocked to processing and so on, I do not have a RPS version. any suggestions to this will be really helpful. Thanks

    Unmesh

    1. gocken

      gocken

      Hi Chandak, 
      from definitions tab add a monitor element (i.e., monitor1) in your model and set its state variable name property to i.e., Server1.ResourceState. Also, from definitions tab include an excelconnect element which is a user defined element. set its excel workbook property as i.e., resource_state.xlsx (create a resource_state.xlsx file in the same folder where your .spfx file will run). In processes tab create a new process i.e., Process 1 and in there place an assign step and an excel write step (from user defined steps). Define a state variable i.e., row_index. in assign step set state variable name property as row_index and set new value property as row_index+1. In excel write step set excelconnect property as ExcelConnect1, set worksheet as "sheet 1" (resource_state.xlsx excel file's sheet name), set row as row_index, leave starting column property as default, and add two items such as "ResourceState" and "Run.TimeNow". at last, select process1 and set triggering event name as Monitor1.Event. 
      also, in order to get different resource states in your excel file you can define a work schedule or a failure mechanism on your server object. Hope it works?  

    2. Unmesh.Chandak

      Unmesh.Chandak

      Dear Gocken,

      Thank you so much for your response. That is really helpful. Appreciate it.

      Regards,

      Unmesh

  17. Simulation Setting: Hospital Situation: In a hospital setting tasks are done in a preferred order on a patient, currently using processing tasks functionality to accomplish this. However if a certain task can not be done due to a resource constraint they should continue with the task profile but queue the task to be done when available. For example: if a patient needs to be intubated but no qualified person is available, the patient should continue with the task profile but should continue with trying to seize a qualified person, and when they can the task could continue as normal. Is there currently a way to do this? Thank you.
  18. Hello ttarken, A simplified approach might be use a Resource to constrain the system until the required operator is available. If the operator should move with the Crane, a good starting point might be to try seizing a Worker and requesting a move to the pickup Node. Then, you could try using a Move step to move the Worker from the pickup Node to the drop-off Node with the Crane. Please see below a link to a similar post discussing how to use two Cranes to move a single entity. The example model attached to the other post might provide guidance for your application.
  19. How can we add a secondary resource requirement to the Crane such as Operator?
  20. You are correct that it will keep the resource seized until after the delay. A work around would be to subclass the server and change the PerformProcessingTask. All you would need to do is move the execute task to after the release, then it should release the resource and then do the execute (Your Add-on process).
  21. 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?
  22. I was not able to open your model. Thus, can not say anything for sure. But, did you try other resource seizes/releases option under secondary resources of server object? It seems it suits your needs?
  23. I am building a model where I need to use relational data tables to create objects and elements due to the large size of the model. I found helpful resources to guide me when it comes to auto-creating objects and elements (Simio Help Guide, SimBits, and Examples). But for some reasons I couldn't find resources that address directly the topic of process logic design in data-driven models. There is one particular example that's very relevant to my case. This example is MultiEchelonSupplyChain that comes with Simio (in Simio: Support > Examples > MultiEchelonSupplyChain). This example is solved using two approaches. The second one (the data-driven approach) is the one I'm interested in. In the accompanying PDF file that explains the technical details of the example, it does not explain the differences in process logic design. For example, how do I define triggering events? Some of the processes in this example have no triggering events. If you know of a resource that explains designing processes for data-driven models, please share. Thanks.
  24. To keep things simple, let's just say I have two servers. At these two servers are 3 resources each: Server A has Resource 1, 2, and 3, and Server B has Resource 4, 5, and 6. I have a pre-determined list of Resources that needs to be selected. For example, the Entity would need to go to Server A to select Resource 2 and then Server B to select Resource 4 and then exit. I need help with the logic to help make this work. But then, once the order is finished, the resources to capture changes so the entity might have to go to Server B to get Resource 6 and then Server A to get Resource 1, then to the sink. In the big scheme of things, I'm going to have many Servers and each Server is going to have at least 4 Resources. I'm trying to figure out how to do this in the most efficient way whether it be through lists or built in properties. Thanks in advance!
  25. Hi all, I have a model with several servers, each with their own Changeover Matrix for cleaning between jobs. This is done by a Sequence Dependent Setup within the Servers Task Sequence steps. This is working fine when the Cleaning is either done 100% Automatic or 100% Manual with a Worker called as a Secondary resource. Some servers however require partial support from a Worker. For example a COMatrix of X mins needs to include 5 mins support from a Worker at the start and 10 mins support from a worker at the end of the Changeover period, with the middle X - 15 mins in the middle of the CO cleaning period (There are other more complex examples too where the operator will be required half way through the process too to empty the cleaning waste container). Is there a way of saving the COMatrix time, rather than running this delay, so that I can then build an add on process or add further task sequences to break the time into its Automated and Manual Components? Thanks in advance for any suggestions. J
×
×
  • Create New...