Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by devdatta

  1. Hi, I think the model is using the table to generate entities and assign processing times. In the data table there are couple of rows with PO_Sequence value of 0 and associated processing times with these rows is also 0. So the model is creating all those entities on initialization and all of those entities have an associated processing time of 0. If you increase the maximum number of entities then you can observe that entities are being created and processed based on the table. Thanks,
  2. Hi, Here is an example model to reserve a vehicle with multiple capacity for future use by entities. It is a simple model with a source, server and a sink. Entities are carried by vehicles from source to server and the same vehicle is used to transport processed entities from the server to sink. The 'ProcessToReserveVehicle' is used to reserve same vehicle for transporting from server to sink. Search step is used to search for the entities riding on the vehicle ( in the ride station). Then the 'AssignTranporterToEntity' is used to assign the current vehicle to the 'Current_Transporter' defined over the Model Entity. Ride On Transporter property of the server's output node is set to true and Transporter Name is set to ModelEntity.Current_Transporter. Dwell property of the vehicle is set to Dwell Until Full. With Reserve step, the vehicle waits at the output node of the server until all the entities carried by the vehicle are not processed by the server and transport them to sinkReserveVehicleWithMuliCapacity.spfx. Thanks,
  3. Hi, If you look at the model trace, you will notice that the said process is associated with a model entity and not a transporter. Within the 'PickUp' step's advanced options, you have to specify transporter type and currently it is set to 'Associated Object' which in this case is a model entity. Since the Pick Up step is looking for a transporter you are getting this error. One solution is to define a 'transporter reference state' and then using an 'Assign' step at the beginning of the process assign 'vehicle', to it, this will assign the current vehicle to the 'transporter reference state'. Then change the 'Transporter Type' property of the 'Pick Up' step to 'Specific' and 'Transporter Name' to the 'Transporter Reference State' that you created. Thanks,
  4. Hi, I have attached a small example model to show a way to stop creating entities over weekend. I have Sub classed the source object and overridden the 'OnStopEventOccured' process. Within the process, i have added a 'Wait' step to disable entity creation over weekend and an 'Assign' step to enable the process again. Place the sub classed source object within the model and add two events, 'StopEvent' and 'ResetEvent' to the model. 'StopEntityCreationOnWeekend' process within the model checks which day of the week it is and accordingly fires an event which either stops creating new objects from the sub classed source object or starts creating new objects. Change the sub classed source objects 'Stop Event Name' property to 'StopEvent' which will disable the source object if it is a weekend. Similarly,change the event name for the wait step in the sub classed source object to 'ResetEvent' which will enable the source object again. ThanksStopEntityCreationOnWeekend.spfx
  5. Hi, You can create a state variable and assign a processing time to it by sampling from a distribution. Then use the same state variable for assigning both the processing time at the server and travel time for the time path. You can assign a value to the state variable when it enters the input node of the server and since there is no waiting at the server, one entity would immediately enter processing station and the other entity would enter the TimePath and both would take the same time to reach the output node of the server. Thanks
  6. Hi, For selecting a available resource from a list of resource you can use a selection expression like 'Candidate.Resource.Capacity.Remaining' and and set the Selection goal to 'Largest Value'. What this will do is, it will give priority to a Resource with highest available capacity ( in this case 1) indicating that a resource is available for seize and seize the available resource. You can use a state variable to track the number of entities that enter the server. Whenever an entity enters the 'Input Buffer' of the server, assign the number of entities present in the buffer and the processing station to a state variable ( Using Server.InputBuffer.Contents+Server.Processing.Contents) and when the entity is leaving the server, decrement the value of the variable by 1. Use a state statistic element to keep time persistent statistic on the state variable. Use Statestatistic in the experiment response to report maximum and average number of entities. If you share this same state and statestatistic across multiple servers, then you will see statistics about ALL the servers.
  7. This is a simple model with hard coded values to show how the processing time can be changed based on the operator availability. Model contains two servers with Part A being processed at Server A and Part B at Server B. There are two operators, Worker A and WorkerA_B. Worker A is assigned only to Server A while WorkerA_B once released from Sever B is seized by Sever A and the processing time for server A is then recalculated as half of the remaining processing time at Server A. The model is designed in such a way that if there are any entities waiting to seize Worker A_B at Server B then the Worker A_B is released from Server A once the processing at Server A is finished and moves to Server B, finishes processing all the entities at Server B and then moves back to Server A, if needed. Worker A_B will keep moving between Server A and Server B. The model can be easily modified so as to release Worker A_B from server A when there is an entity waiting to be processed at Server B. The key here is to interrupt the process at A when another worker is available and assign a new processing time to Server A. This is done by process 1, triggered by an event input@Server A. Server before processing and after processing processes are used to seize and release needed secondary resources. Worker 1 add on process is used to decide if there are any entities currently being processed at server A and if there are, then transfer the operator to Server A, if there are no entities waiting to be processed at Server B. ChangeProcessTimeBasedOnAvailableOperators.spfx
  • Create New...