Jump to content

Search the Community

Showing results for 'change resource'.

  • 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. 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.
  2. Hi all! I am simulating a facility with nearly 40 servers, each one starting with some entities in the input node at initialization and having a different capacity. Each server has a 0 input buffer capacity. My entity creation is currently set to having an interarrival time to be 4.33 weeks (1 month) with a random number of entities created. Currently, it runs 24/7 and does not care about the time, but I want to incorporate that. How can I make it so that the entities arrive once a month, let's say the first Monday, at 8am? How can I make it so the servers are only processing between 8am and 4pm Monday - Friday? The work schedule doesn't seem to work for me, but I could be doing it wrong, since I have a 0 input buffer, which I can't change as it's part of my routing logic for overflow. I would be happy with using timers or a process logic if someone can explain it to me. Ideally, the entities only arrive when it's during the working time, and the entities remaining after 4pm are just put on hold until 8am the next day. Thanks in advance!
  3. You want to make the servers have a Capacity Type of Schedule and follow the default Standard Week. If you don't want to give them a lunch break, just change the definition of the Standard Day. Leave the default Off Shift Rule of Suspend Processing. The easiest approach for arrivals is to have a Source with an Interarrival time of 4.33 weeks (or 4 weeks) and an integer random distribution for the Entities Per Arrival. Doing a "first Monday" is possible, but a bit complicated because Simio time does not have the concept of Month because months are of varying size. You could probably specify the initial Time Offset to be early in a month, then maybe make the interarrival time be something like DateTime.DaysInMonth(DateTime.Month(Timenow),DateTime.Year(TimeNow)) which would make the next arrival be exactly one month later (same day of the month). When you say you have no buffers, what do you mean? If an entity arrives when all servers are busy, should it be balked (possibly disposed) or should it wait somewhere like on the server input node, on a path or in the Source output node? If the above arrival approach isn't exact enough, you can put exact arrivals in a data table. The arrival time could be specified at any exact datetime you desire and still have the Entities Per Arrival be a distribution.
  4. Hello, I am trying to use git to track changes when working on Simio projects collaboratively. For this I am saving the project as *.simproj and the resulting file and folder structure looks good. But there are too many time stamp changes that make it difficult to track the "important" changes. For example, I only changed the location of the DefaultEntity in the model and hit save. The resulting changes are shown in the attached screenshot, with 20 files shown as changed. The main changes are related to the time stamp. Is there a way to configure Simio such that fewer files will be affected by each change? Thank you. Annika
  5. 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!
  6. Hi, there is a simple approach you can use. Use Connectors between the queue server and the desks. At Buffer Logic of the Desks, change the Input Buffer Capacity to 0. Create a List with the Input nodes of the seven Desks. On the Output of the queue server change Entity Destination Type to Select From List and the goal to Smallest Value. Keep the default expression. It should work fine.
  7. Description of Runtime Capability Runtime is the ability for people to execute a Simio model without investing in that design-time version of Simio. Simio imposes no limits to the number of models you can distribute or the number of people you distribute to. And you are free to distribute outside of your organization if you choose. There is no charge for any such distribution. Two runtime modes are available: Interactive Runtime Uses Simio Evaluation Version which is available free to anyone and may be used without activation. It provides the ability to load a model, run it interactively to view the animation, and even change the model at will. Model changes cannot be saved nor is the capability provided to run experiments or execute custom user-written steps and elements. Only Simio Team Edition is capable of creating models that will run in Interactive Runtime. Full Runtime Uses Simio Express Edition. In addition to the substantial modeling features built into Express, it provides the ability to load and run models, save model changes, run experiments, and execute custom user-written steps and elements. Design and Team Editions can create models for use with Full Runtime.
  8. Hi everyone! In the project I'm developing I need something similar to what was done on the Simbit "EntityFollowsSequence". The difference is that I need to be able to change the destinations (update the contents of the sequence table) over time (the number of rows of the table can be fixed, although it would be ideal if they could be dynamically created). Could someone please explain how it would be possible to do this? My edition is NOT Enterprise. Thanks.
  9. Hello Vinicius, thank you for you help but I still having problems with the model. I can understand the logic behind of the SimBit "CombineMultipleEntityTypeOntoPallets" but I have some doubts. I change the model adding a combiner, I creted a intergrer model entity state to identify the quantity of containers, and I have a real state to identify the container but I dont know how change the batch logic of the container to each product. In the definitios tab you can see the batch logics. I hope you can help me Best regards. OptimoContenedores3.spfx
  10. Hello, I wouldn't use process for this one. There is a simple approach that you can use by modifying the SimBit "CombineMultipleEntityTypeOntoPallets". You'll need 3 ModelEntity Integer States to identify the quantity required of each Bin according to the Product. Let's say ModelEntity.Big, ModelEntity.Small and ModelEntity.Med. You can modify "Ops_Exited" step to assign those quantities. For the Producto1 for example, you'll have ModelEntity.Big == 1, ModelEntity.Med == 1 and ModelEntity.Small == 0. A little tip: you can use "Is.Producto1" (or "Is.Producto2", etc) on a decide step to identify which Producto is it. Now on the Combiner Object, follow the Simbit and change the BatchQuantity, to ModelEntity.Big, ModelEntity.Med and ModelEntity.Small. This should work.
  11. 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.
  12. 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
  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. 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.
  15. 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.
  16. I used the "DashboardForScheduling" simbit as an example for this case. For the order that is using "FinishedGoodA" material, I want to change the sequence after the welding process is complete if both shape stations are not available. So, I created an alternative sequence table and referenced in the process logic I created. Whenever this happens, I get same type of error message. Do you think this is happening because the normal routing table is referenced at the source object?
  17. 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
  18. 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
  19. Hello, I'm having strugles trying to configure the setup for the next process: some entities have a diferent processing time and setup time, before to enter to be processed in the workcenters, the workcenter have to be cleaned. I looked the simbit, "ServerWithSequenceDependenrSetup" but I'm confused with the configuration of the processing task. I dont know why we have two lines and o why only one have associeted the change-over matrix.
  20. 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
  21. 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

  22. Hello River, I downloaded your files. The Gate512 was missing. I removed the information in the "30 Departure.xlxs" file that I can run the model ;-). Generally I understood how it works. Answer to your first question: I think you mean these two ways, right? From the left and from the right. In this case I saw that you used the "Routing Logic" in like all Transfernodes. The Outbound Link Rule is "Shortest Path" and you set the "Node Name" to "Input@Takeoff" Simio is using everytime the shortest link path now. Like in the screenshot below: In my opinion it would be better to set the destination once after the Entity got created in the Source for example :-). There are different ways to do that. In your model I removed all Routing Logic in the Transfernodes and used the Routing Logic only in the Output-TransferNodes of the Sources. In Simio you need only to use one time a SetNode-Step or a Routing-Logic to set the destination of an Entitiy and Simio will follow the paths or travel in the FreeSpace. You can use for example a NodeList with 2 different destinations and this Routing-Logic: With the "Selection Goal" Random Simio will randomly choose the destination from the NodeList. I uploaded you your model with the changes as an example: Problem on the taxiway version 17A.zip What did I changed? 1) I removed the Routing Logic in all TransferNodes. 2) I added new Routing Logic to the TransferNodes of the Output-Node of the Sources. 3) I added a NodeList with 2 new Nodes. 4) In the two new Nodes I used a Nodes-Entered-Process and a Transfer-Step to transfer the Entity to the Input of the Sink. Answer to your second question: You can change the destination of an Entity any time. In the Path (Link) you have a function called "NumberTravelors" for example to get the number of travelors currently on this path. So you can use a Expression like "Path123.NumberTravelors < 2". This can be used to decide if a way is full allready that the other way get selected. Or you can use a Integer-State and count up and down. I would use a Node-Entered-Process in the last possible node with a Decide-Step and two SetNode-Step in this case :-). I hope my answer will help you. When you have any other question, you are welcome! Best regards Pascal
  23. 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!
  24. First of all, your column of gates should be of the type Object Property, not String. After you change its type, you need to set Auto-Set Table Row Reference to True. It should work now.
  25. Thank you, In our simulation, the plane is used simio "apply symbol" function, so the plant was not draw by us..... so we hardly control what we want What if we change the path to Conveyors? How can we make it?
×
×
  • Create New...