Jump to content
Simio Forum

Welcome to the Simio Forum

Welcome to the Simio Forum! Experience the full experience of the forum by becoming a Simio Insider! You must be an Insider to post on any forum!


New Software Release

Our latest release, Simio 11, is here!

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Discussions
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI Help Getting Started
    • SI General Discussions
    • SI Downloads
    • SI Shared Items
    • SI New Feature and Enhancements Submission and Voting
    • SI Ideas & Suggestions
    • SI Bugs and Issues
    • SI Performance Tips
    • SI Challenge Applications
    • SI Non-US Cultures
    • SI User Interface
    • SI Material Handling
    • SI Student Competition
    • SI Educational
    • SI Objects
    • SI Animation and Visualization
    • SI Reporting and Analysis
    • SI Agent Based Modeling
    • SI Scheduling
    • SI Emulation
    • SI Optimization
    • SI API


  • Simio Calendar


  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



About Me












Found 484 results

  1. you could use a Combiner object to represent the assy station. and on the combiner's After Processing Add-on trigger , you create a processes like below..
  2. The Server Initial Capacity property sets the capacity of the processing station within the Server. Regardless of the Initial Capacity value, each Server Object is regarded as a single Resource in terms of the Results provided by the simulation. This is a long way of saying that, if you want to analyze each firm separately, you will need a separate Server for each one or a pool of Secondary Resources like you had mentioned. Happy modeling!
  3. I am working on a simulation of a number of firms processing raw products. If I represent the firms as resources in a server -so that the server capacity represents the number of firms, how could I identify which resource/firm processed a certain batch of products? Can this be done with a server having a capacity of its own, or should I use a pool of (secondary) resources with id labels so I can use that id to label the product batch?
  4. Hello, If I have created a list state variable (The list just contains each day of the week. ie: "Sunday", "Monday", "Tuesday", etc...) and I want to assign a new value in a state assignment of the facility to a particular day within the list state variable how can I do this? It seems like I can only reference the List State Variable as a whole but I don't know how to assign values to the contents of the variable.... Thanks!
  5. It is possible. There's several ways to solve this. It is just a matter of model designing. Some tips: 1. You can use expressions like TimeNow or ModelEntity.TimeInSystem to check how much time processing time has passed. 2. Interrupt step might help you remove the entity from the process. 3. A State inside the ModelEntity will help your entities to take the right path or take the right decisions. Open you entity model, create a boolean state named Failed (or whatever the name you like), set ModelEntity.Failed to True or False, and use this same expression to steer you entity to the right direction. 4. Be creative. Your solution heavily depends on your problem.
  6. Hi everybody! I want to know if it is possible that an entity can change from one server to another if the another server is available and the entity isn't still processing. It means if it is possible that an entity can exit from the input buffer of the first server. Thanks for your help. Best, Albert.
  7. You can use task sequences. Set process type property of a server as "Task Sequence". While populating processing tasks property of a server object (when you click on the three dots, that are seen at the right hand of processing tasks property, a repeating property editor will pop-up) you should use the same sequence number for all tasks you considered. Under Resource Requirements section of Processing Tasks-repeating property editor you have to input your resources (nurse, PA, doctor etc.). Examining some simbits related to task sequences will help you.
  8. Within a Server, Combiner or Separator object, you can specify the Process Type as 'Task Sequence' allowing you then to define any number of Processing Tasks for that Server, Combiner or Separator. The processing tasks can be serial or parallel tasks. By using parallel tasks, for example, with a different worker (nurse, PA, Doctor) required for each parallel task, the tasks are done independently, but can be done at the same time. Parallel tasks can be specified using the same Sequence Number (see Task Sequence and Task Sequence - Processing Tasks sections of Simio help). So, for example, you can have the processing tasks within a Server all have a sequence number of 10 (meaning parallel). One of them requires a Nurse for X time units, another requires a PA for Y time units and the other a Doctor for Z time units). The patient doesn't leave the Server until all 3 tasks are completed. However, if the Nurse is available to do his/her task, they will start. Likewise for the others. And the workers can move on to other tasks at other Servers (patient areas) as well when they are done.
  9. Well, I seem to have made some progress. I realized I was trying to sort the contents of the station incorrectly. When I started using the "Contents Ranking Rule" the entities in the storage queue lined up correctly. I then found that I could assign a string Element Reference Element state variable "ElRef" to TestStation.Contents.ItemAtIndex(CycleCounter ) where TestStation is the name of my station with a storage queue. This returns a reference to the entity at wherever the cycle counter is at for example, it might find "entity.27" for the current reference. This is where I get a bit confused. I was able to then search the storage queue for TestStation.Contents.ItemAtIndex( CycleCounter)==ElRef. This is the only way I could figure out how to access the existing state values of the entity with reference "entity.27" or whatever as it would be guaranteed to exit the found branch. From that point I believe I can test the states of the found entity to see if it is a good fit to enter the system. If not I can increment the CycleCounter if there are more to check in the prioritized storage queue. My sense is this "should work". But it does not seem as efficient as one might like. I am curious if there might be a more direct way to access the entity's attributes without the search step. Thanks, Jim
  10. Hi All, I am attempting to model a triage logic where I want to periodically, sequentially search the contents of a storage queue associated with a station and test the availability of resources to handle processing it. If the resources are not available in the system, I would like to move to the next entity in the queue and test it until all the current queue has been examined. The goal is to sequentially walk the queue organized by priority using the lowest value first of a state variable on the entities. Is there a suggested "best" way to approach this sort of problem? Essentially I want to do a loop to examine entities in a storage queue and transfer the best one with a match to available resources. I tried using a search based on index but ran into an error getting the state values of the entity and also seem to have challenges sorting the storage queue correctly. I would be grateful if someone has a basic example of such a sequential search. Thanks Very Much, Jim
  11. Hi All, I have a query. Is there a way to implement logic that allows the model to vary the processing time of a server as a function of the available man power? In my model I have various servers and all need a specific number of workers in order to begin processing. I have one large pool of workers to be shared between all stations. This means that there are times when all the workers are in use and times when some are spare. Ideally I would like to model that when there are men spare they would come and help other stations and get the job done quicker or when only some of the required quota of workers are seized they can start the work all be it at slower pace until the full quota has been seized. I hope this makes sense Thanks
  12. Try using ModelEntity.BatchMembers in your processing time expression. I believe it'll work.
  13. New to Simio and learning as I go. The attached model includes a CombinerNode1 that batches entities in groups of 2 & 5 (random.discrete). I would like Server1 to use different processing times for the different batch sizes. For example, a batch of 2 entities should be processed in 5 seconds; Batches of 5 entities in 7 seconds, etc.. Eventually I will create batches of up to 6 entities. I have tried using Server1.Processing.Contents for Processing Time, but seems to return the value of 1 all times. Any help is appreciated! Thanks! Processing time based on BatchSize.spfx
  14. Just curious if there's an easier way to go about doing this... Long story short if I am representing multiple physical positions within capacity of a server and I create my own Gantt outside Simio, it's important for me to know WHICH resource (in this case which one of the servers) is utilized by each entity. I was trying to utilize Entity.Location.Parent.Server.Processing.Contents.IndexOfItem( Entity ) and assigning it to a state on the entity and then ultimately writing to an output table. However, this doesn't seem to be working accurately. It may be a timing issue on when this step is called, but is there a default function I'm just not aware of that could be of assistance?
  15. Does anyone know how to utilize the memberinput@"combiner" in a process? I tried a process "UnitIdentity" with a decision step "MemberInput@PalletLoad==H1BUnit" to set a real state "UnitTypeID" and a ModelEntity.Picture so I can utilize the link weights further downstream. I placed this in the Processing Add-On for the combiner. I have attached the file. It feels so close to a resolution and any help would be appreciated! Best regards, Alex APS Design 2.spfx
  16. Hello! I am working to simulate a simple parallel job shop with 4 machines and 10 jobs and different processing times and due dates (everything is deterministic). After I run the model, under results tab, all machines are being utilized and scheduled. However, when I create a plan using the "planning" tab, all jobs are scheduled on a single machine, which is confirmed from the detailed results section within same tab. I have tried backtracking and rebuilding model from scratch but I cannot seem to find why there is this inconsistency with the results for same model, in same run (and across runs too since all the data is deterministic). I will be happy to share more information on the model but is this normal simio behavior or I have missed something somewhere? Appreciate your response in advance! Thank you Regards Beginner Simulator
  17. As an update to this, I think I have (at least so far) found something which provides the desired behaviour and will detail below for others. I used the SimBit 'SelectServerWithShortestLine' as a reference. I created a Node list with the inputs nodes at each Sink listed. I created an integer Property to hold the variable which represents the maximum number entities that can go to a sink (e.g. MaxContainerCapacity). On the feeding TransferNode I changed the 'Entity Destination Type' to 'Select from List' and selected the list created in Step 1. Change 'Selection Goal' to 'Smallest Value' and set the 'Selection Expression' to Candidate.Node.AssociatedStationLoad, which accounts for everything en route, in the queue and processing at a node. Therefore, the select goal is to minimise this station load. I set the selection condition to (Candidate.Node.AssociatedStationLoad + Candidate.Sink.InputBuffer.NumberExited) < MaxContainerCapacity. Which is saying only select the Node found in Step 4 if the sum of the station load and the number of entities that have 'exited' the Sink are less than the MaxContainerCapacity.
  18. Hi Tom, thanks for your help! I've found a solution on my own in the meantime (probably not as sophisticated as yours but it works well). I additionally modelled a small version of the lift itself and created a wait process. The triggering event is "vehicle exits Node X". I used the process for my servers ("after processing"). So whenever a chair exits the node, the gates will open. This is actually quite close to reality where the gate opening interval is not fixed but depends on the speed of the lift and the point in time when an empty chair arrives. All the best, Nico
  19. 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.
  20. 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?
  21. Because we assign the speed of path 3 and 5 to PathXXX.Contents.NumberWaiting at assign3 step of process 1 which is triggered whenever an entity enters node A. As I said in my previous post this expression may not serve your purposes. This is only for illustrative purposes. Here the message is you can increase all existing entities' speed (but all of them at the same time) on path 3 and path 5 whenever the process1 is triggered. Also, you can trigger process 1 by using monitor elements (which seems more suitable for your purposes). For example, using a monitor element you can track the number of entities on each path seperately and whenever this value crosses some treshold value (got congested) you can trigger process1 using monitor element. Note that in your attached model status labels shows how many enitities exist on each path. At the end, change the assignment expression of assign3 step of process1 accordingly.
  22. Simio offers user-defined work schedules in the Data tab. The SimBit ServerFollowsCapacitySchedule or others related to work schedules could be helpful. You can define a Pattern Based Work Schedule, to account for the shifts you described, and modify Server Properties like OffShiftRule (under Secondary Resources) to 'Finish Work Already Started' or 'Suspend Processing' depending on what makes sense for your Model. Adam 
  23. As far as I know you can not accelerate the speed of an entity on any link? you should use tricky solutions to overcome this difficulty. One of the trick is setting the speed of entities to infinity right after entering node a. then changing the desired speed of path 3 and path 5 to some meaningful values. In the attached model this trick is applied. Note that the assigned values (i.e., Path3.Contents.NumberWaiting) should be replaced by any reasonable values. This assignment is only for illustrative puposes. Note that by this way we made the speed of modelentities limitless but at the same time we limit their speed with the speed of paths. you can do any other tricks as well... One of them maybe changing the type of the modelentities right after entering path 3 and path 5 (say path3_modelentities and path5_modelentities) by creating a copy of the associatedobject. Be sure to destroy the original one. And then whenever you need to increase their speed you should search their population by a search step and then assign appropriate speeds to them individually. These are the ones that come to my mind at the moment, but you can find some better methods by pondering. EntitySpeed4_me.spfx
  24. Check my attached model. The entities have random movement speed and paths Allow Passing property are set to False. So slower entities will naturally create a traffic congestion. You could also try to solve this in a more algebraic manner, by setting ModelEntity.DesiredSpeed or Path.DesiredSpeed based on the Path.Contents state. Traffic.spfx
  25. Hello All, I am new to Simio and trying out a simulation of an aircraft component assembly shop. I am using Sequence table for my jobs routing and processing scenarios which is - Source -> Set A (4 servers) -> Set B (7 servers) -> Set C (5 servers) -> Set D (2 servers) -> Sink Here each Set denotes similar workbenches to any of which a job can be routed based on utilization and availability at that point of time. So for routing job based on above criteria from Source, I created sequence table with 'Node list property' (which is list of input nodes on 4 servers of Set A) instead of 'SequenceDestination Property' as required by Sequence table. I want to replicate the sequencing from Source -> Set A -> Set B and so on. But want simio to pick the server of these sets based on my criterion. Unfortunately it is not working as I assume Sequence table need to have specific node as SequenceDestination. I am not sure if I am doing it right or what is correct and way to do it. I will highly appreciate any suggestions to make this happen in Simio. Thank you. -Mohmed
  • Create New...