Jump to content
Simio Forum


  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral


About CWatson

  • Rank
    Senior Application Engineer


Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. CWatson

    Batching based on the time

    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).
  2. CWatson

    Variable path speed

    First of all, speed is typically designated on the entity/worker/vehicle and then, combined with the length of a path, the time delay to move along that path is calculated. Alternatively, if the path is a conveyor, the speed can be adjusted. Thus, if you are using the regular Simio paths, you would need to hourly re-assign the entity/vehicle/worker speeds. This would be done by assigning (Assign step) ModelEntity.DesiredSpeed or WorkerName.DesiredSpeed, etc. Or, if using a conveyor(s), change those speeds (same, ConveyorName.DesiredSpeed). The Assign step can be used to make those assignments on an hourly basis. Consider setting up a table with the speed as a column, whereby every hour, you would increase the index into the table. Thus, start with a state variable, let's call it Index, set at 1. In the OnRunInitialized process (Processes window, Select Process) you could Assign ModelEntity.DesiredSpeed = TableName[index].SpeedColumnName. Then delay for 24 hours, then have another Assign step with a Math.If that will either assign the Index to Index+1 (to move to next hour) or back to 1 (if at end of day).
  3. CWatson

    create 3 entities simultaneously

    You could create multiple entity types through a single Source by using data tables and product mix- see the SimBit titled EntityFollowsSequenceWithTable.spfx. This would create entities based on the product mix specified in the JobTable data table. To create multiple of a specific type (man/woman) entering at a single time in a source, you could just simply create one type (man) and then use add-on process logic and a Create step to create the other type (woman) and have them continue processing.
  4. CWatson

    Entire Model Schedule

    Work Schedules can also be applied to other Fixed objects, such as Server, Combiner, Separator, as well as stationary resources. I suppose the question would be - how do you generate your entities (arrival table, time varying arrivals, interarrival rates, etc.) and what would you like to happen to entities when the 'model' is off shift -- do you stop creating entities/orders - what happens to in progress materials (do they clear out like a bank at end of day or stay in system like a mfg plant.
  5. Both great ideas - I've added those to our list of Simio potential product enhancements - Thanks!!
  6. If the check-in lane is simply a Server, you could have your symbol for busy/starved include the worker, while your symbol for the offshift would be just the lane/desk without the worker. If your check-in lane is a Server that includes a secondary resource (worker object) for processing, you could have the worker instance go to a home location when idle so they don't appear at the check-in lane server location (if you are moving them there when they are requested to work).
  7. Currently we don't have the options to fast forward or reset through processes. You could try to add your own step (see user defined steps in help) using our API. I'll add this to our list of user suggestions as well. Thanks for the feedback!
  8. CWatson

    Help with vehicles route

    In the example that I showed above, I didn't have the vehicle picking up the entity from the Source for movement to the Servers, thus, I didn't include the Output@Source1 in the sequence tables for the vehicle. That is why your entities don't get picked up at the source. To fix this, include the entire route that the vehicle will move when taking product/picking up from Server1 within a data table. Include the entire route that the vehicle should move when taking product/picking up from Server2 within a different data table. To change between the tables, you need to decide WHEN to make the change. In the example above, it was when the vehicle was requested to take an entity from server to sink, thus at the Output node of the server - Entered add on process. You may then decide to do this also at the output node of the source - and will need to check the destination location of the entity (server1, server2) to determine how to change the vehicle path table.
  9. CWatson

    Help with vehicles route

    The vehicle Routing Type would be 'Fixed Route' and the Route Sequence to 'SequenceTable1'. Set the initial value for the VehiclePath state variable to '1'. Also, within BOTH of the transfer nodes exiting the servers, within the Entered add-on process, add a similar process to the above (Decide/SetRow/Assign) to look at the output queue size, the current setting for the VehiclePath, to SetRow to the appropriate sequence table, and then Assign the VehiclePath to the current sequence table used. Let me know if you have any additional problems.
  10. CWatson

    Help with vehicles route

    First of all, given you have a model (similar to what you have) as shown below - you would have 2 sequence tables for the vehicle. Also, add a state variable to the model (initialized at value 1) that will be assigned and indicate which sequence the vehicle is following (i.e., named VehiclePath in this case). Within the output node of the entity requesting the vehicle, you can use the SetRow step to assign the alternate sequence under certain conditions (in this example, only if the queue is larger and the sequence hasn't already been set) - the key here is that the SetRow be set for Object Type of 'SpecificObjectorElement' (under Advanced Options) where the Object or Element is 'Vehicle1'. Once set, change the VehiclePath to the appropriate sequence (1 or 2).
  11. Try using a Function within the Definitions window to define the Filter Expression - it seems to take 'Candidate' (table expressions don't) - this function should be able to be referenced within the Filter Expression and the SearchStep.
  12. CWatson

    Data incorporation

    One option would be to have an arrival table, instead of fitting the data to a distribution - the arrival table would include the time that the arrival occurs (based on your table above) and then you would reference the arrival table from the Source using Arrival Mode == 'Arrival Table'. With an arrival table, you could also include an Arrival Time Deviation (Source - under Other Arrival Stream Options) property as a distribution, which would add some randomness to the arrival time. Another option is to use the Arrival Mode == 'Time Varying Arrival Rate' where you would specify a Rate Table (Data tab) that would include varying rates for different times of day. The interval size and number of intervals can be easily changed. The Rate (events per time period) would include the mean of an exponential distribution and would allow the rates to change hourly or every x hours. You may wish to review a few of the Sample SimBit Solutions (Support ribbon) under the Arrival Logic category of SimBits for more options.
  13. We have a SimBit named 'AddAndRemoveServerCapacity' that includes 6 servers and decision logic to turn on/off the server capacity based on the number of entities in the various lines for the 'open' servers. Monitor Elements within the Definitions window are used to evaluate the lines and a common process is used to turn on capacity. Also, for updating the processing time based on the number of workers, see this user forum link for more information - http://www.simio.com/forums/viewtopic.php?f=6&t=2196&p=7147&hilit=change+processing+time+based+on+workers#p7147.
  14. You could use a Search step with matching condition criteria specified perhaps? Not sure exactly what you are doing within model, but the Search step can search entities in queues for various criteria as well.
  15. CWatson

    Moving multiple workers at the same time

    Please see the discussion and attached example in the topic https://www.simio.com/forums/viewtopic.php?f=36&t=2334. This shows a custom vehicle that has been enhanced to allow a worker specification for 'driving' or moving along with the vehicle - and it includes two models that use the custom vehicle - one in manufacturing application and one in healthcare application.