Jump to content

gocken

Members
  • Posts

    369
  • Joined

  • Last visited

  • Days Won

    32

Everything posted by gocken

  1. You should install the latest version of simio.
  2. Your logic is fully right. But, you have to send an entity (or any token) to the processevent to fire your event. Examine the sample model I attached. OnRunInitialized process I created an entity and by using this entity I activated the process1 to fire the event. You should apply this type of logic. sample model.spfx
  3. For the link weight to the serverA use Math.If(((Math.Remainder(TimeNow, 24 )>6)&&(Math.Remainder(TimeNow, 24 )<=10)), (1-p1), 0 ) as the selection weight expression and then use p1 as the selection weight to the sink object (representing rejected entities). For the link weight to the serverB use Math.If(((Math.Remainder(TimeNow, 24 )>10)&&(Math.Remainder(TimeNow, 24 )<=18)), (1-p2), 0) as the selection weight expression and then use p2 as the selection weight to the sink object (representing rejected entities). For the first link weight to the serverC use Math.If(((Math.Remainder(TimeNow, 24 )>18)&&(Math.Remainder(TimeNow, 24 )<=22)), (1-p3), 0 ) as the selection weight expression and then use p3 as the selection weight to the sink object (representing rejected entities).
  4. you can also monitor the queue lenght by using a monitor element. If there exist one or more customer in the queue you can trigger a process (you should define a new process) where you use a seize step to seize the worker. For more about the monitor element you should refer to simbits...
  5. Before entering servers u can assign min(math.min(exponential(10),exponential(20)) to a state variable called "CommonProcessingTime". Then use this state variable for both processing time entries as expressions (set both processing time properties as simply "CommonProcessingTime"). Actually, Simio assigns these values in this manner when it comes to evaluate processing time property (draws a random variable from exponential distribution when the ModelEntity enters the server and is about to start processing) . By this way you assign these values previously, manually. Nothing will change but you can get your job done. Preferably it is more accurate to define "CommonProcessingTime" state variable on ModelEntity.
  6. Set arrival mode of source on event then define your events to be either server is processing or there are three entities waiting in input buffer of the server. You should define a triggering event which is triggered by two seperate monitors each monitors the conditions you mentioned.
  7. I am using the academic version 9.147.14191. In fact I have made a very minor change that is seen in the attached file. The exact location of the change--> server1_BeforeProcessing-->at seize step. Hope it works for you.
  8. now it behaves the way you want. MyModel_6_Version 3.spfx
  9. via the method I suggested it is not possible to achieve what you expected. But, there are many ways to accomplish what you want. For example, you can first store your entities (i.e., 4 entities) in a storage element then search for the least processing time among them, then transfer that one to the server. You should repeat this search operation 4 times or until no entities left in the storage element. You should look for something like this.
  10. The only change that you should made is shown in the figure.
  11. you should use dynamic selection rule for what you are trying to do. I made required changes on your model. note that, still does not work as you intended (first job 1 is processed). The reason for this inconvenience is the modelentity created and released to seize server1 is job 1 by chance (randomrow). But, the other three entities ranked accordingly. You should use extra logic for all entities to be ranked accordingly. MyNewModel.spfx
  12. dynamic selection rule of server object would work for you. Setting this property largest or smallest will enable you to enter your complex rule. And, setting standart dispatching rule will allow you to be able to choose one of the well known dipatching rules. If you do not want to use server object then you should define a station element. Station element does not support dynamic evaluation of its contents but you can search its contents and remove if any satisfies your search condition.
  13. you should use timer element.
  14. I am using 8.145.14052. Then if you upgrade simio to the latest one that is placed under "downloads" topic of forum you can open the model I uploaded. Still I attached a blueprint of the model. I replaced the figures with the right ones. Contents_simple_sample_redo.docx
  15. I think with commercial license you can not open a model which is developed by an academic edition. I took snapshots of all inclusions and pasted them in the word file atached as a whole. You can easily track the inclusions from these snapshots. The trick is the definition of a table (i.e., table1 in the model). When the search is performed stRowList returns the rank of object in the object list (i.e., LstServers). I can not manage to compare whether returned server name equals to the server name specified with "whichserver" property in the search step alone (Note that, as far as I remember I changed the type of this model propery as "object" instead of "objectlist", otherwise it does not work). Then I defined a data table which replicates the object list then used a decide step for performing this comparison (i.e., whether returned server name equals to the server name specified with "whichserver" property). Note that, string type state variable definition is irrelevant. It is defined for only verification purposes. Contents_simple_sample_redo.docx
  16. a very good expression --> Worker1.RideStation.Contents.FirstItem.ModelEntity.Priority > 5. and It would be better if the user was allowed to search entire contents for the condition expressed. For example: Worker1.RideStation.Contents.ItemAtIndex( index ).ModelEntity.Priority > 5 expression should return true or false after the contents of the ridestation is checked for the experssion in one go. Worker1.RideStation.Contents.ItemAtIndex( . ).ModelEntity.Priority > 5 --> "." instead of "index" means all of the contents should be considered for the expression to be true or false. Once the expression is justified it returns true else false.
  17. I think the edition of the Simio you use does not allow changes to be saved. I made a fair copy of your model. simple_sample_redo.spfx
  18. You should use search step. In search step set the Collection Type to "queueState" and Queue State Name to "Worker.RideStation.Contents". Then you should enter matching criteria (what you are looking for, any state of the entities on ridestation). If the search is succesful then you should change the speed of the worker by an assign step otherwise nothing more to do.
  19. I managed to do what u want. It is a quick solution. You can find better solutions by the similar approach. simple_example.spfx
  20. u can search the contents of ridestation by using search step...
  21. would u upload your recent model with a brief summary pls?
  22. Does it work for u? model_tractors.spfx
  23. I tried to solve your problem but interestingly I am not allowed to use any modelentity based definitions (i.e., statevariables) in your model. I did not understand what the problem is. I should be able to define such variables and use them within the processes and/or objects. This should be a routine assignment. Is it due to my licence based problem? As far as I know I am using academic version and always just the updated ones. I am complicated. If I can manage to define required modelentity based state variables I will be able to solve your problem. Still I have uploaded my draft model you can trace my solution method. Try the attached model and pls feed me back whether u can define modelentity based definitions. Project.spfx
  24. In the model I attached if you set "Maximum Arrivals" property of source object to 1 and "Interarrival Time" property of source object to "0" you can get the same logic. It is unnecessary to include ten source objects in the model. I did not understand what u wnat to do? resource objects has no processing time properties? What do you mean with resource? resource object? Could u state your problem clearly pls?
  25. Here is a sample model. I set Interarrival Time property to 2 to set the arrivals apart from each other. Note that you can set required number of entities to create by assigning the appropriate value to "TotalNumOfEntitiesToCreate" property. In this sample model I intentionally assigned 10 then a total of 11 entities will be created. In your case you should set the value of "TotalNumOfEntitiesToCreate" to 9 to get a total of 10 entities each time at once. Hope it works for you... Project.spfx
×
×
  • Create New...