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!

Click_Here_button.png

GFleurquin

Server/Workstation & batch operation

Recommended Posts

Hello,


The model that I want to do is to treat N entities at a time. I am looking for a simple solution because:

- The workstation allows a batch operation but an entering entity is considered as X elements.

- Servers can have a capacity higher than 1 but the process is begun as soon as one entity enters the server (and so it is not N entities at the same time).


The solutions I can see are:

- Making a virtual batch parent for my N entities before entering my server or workstation (visually heavy, harder to extract useful indicators, but it is working!).

- Making a process that allows entities to be processed in a server with capacity "N" only when N entities are in its input buffer. Until now, as I am new to Simio, I have not been able to implement this solution as I could not well link the size of the queue of the input buffer with the processing action of the server/workstation. But it seems a good alternative.


Are there other simpler solutions that I have not seen (an option of servers or workstations, a simple process...)?


Thanks (I hope I have been clear enough!)


G. Fleurquin

Share this post


Link to post
Share on other sites

When you say "Making a virtual batch parent ", perhaps you have already done something like this,

but I just created a very simple object that merged a Combiner and a Separator. I exposed just a few properties and rerouted some "members" to become "parents" so you don't have to worry about the distinction.

One input node, one output node, one processing time.


Enjoy, if it helps you.


Attached model created in Sprint 68.

SimpleBatchServer.spfx

Share this post


Link to post
Share on other sites

Another different and jolly approach might be creating a BinaryGate that accumulates the incoming entities up to the required level. Once this level reached, the BG opens and all of the entities are released at the same time, what makes the server processing them simultaneously.

A simplest file attached when Server has fixed capacity.

Regards

ServerSimultane.spfx

ServerSimultane.spfx

Share this post


Link to post
Share on other sites

Clever approach Joaquim. This is a good solution.


In case you are looking for the 3 Gate steps and the Gate element that he uses, they are actually supplied as examples of user-created steps and elements. You can find them for use by looking under the User Defined steps and User Defined Elements.


If you want to see how these custom steps were created you can find the source code for them in your Simio Examples folder under the sub folder UserExtensions\BinaryGate:

UserExtensions.png.1e9a2078f7cedcc8ff596251f02c4ccb.png

 

While Joaquim's solution works quite well, being an IE I always keep an eye for efficiency. In this case every entity that passes through the gate resets the gate and closes it but this only needs to be done once. To make just the entity that opens the gate also close it use:

ProcessExample.png.357b1bee3732eabab2b283ad078bf5e8.png In a model this small you would never notice any difference, but in large models such changes can add up to something noticeable.


:idea: It is not necessary in this particular example, but if you ever need to make one entity pause while others process there is a feature for that. If you use the Delay step to delay by the time Math.Epsilon, it actually does not delay the entity by any time at all, but instead just reschedules that entity as a "late event" that will continue processing at the end of the current time, after all other entities at that time have processed. Just a tidbit to file away for future use.

UserExtensions.png.4d6af63f20858097231586ae6723849e.png

ProcessExample.png.719f24241a633967a7fad72d29bdb091.png

Share this post


Link to post
Share on other sites

Hi Joaquim and everyone, I am trying to build a model where I am comparing batch processing and single piece flow. Looks like Joaquim's binary gate idea will help me. I have two questions for you.

1. Where have you defined the value 5 for the counter in your binary gate??

2. In your model, the all the 5 entities are released as one, but for my model I want them to get released separately. All I need is stop them from proceeding unless certain number of entities arrive. So that if I set the batch size as 5, gate waits until 5 entities arrive and if I set it to 1, it becomes a single piece flow. Please suggest me something.


Regards,

Santosh

Share this post


Link to post
Share on other sites

I'm not sure what exactly you mean by

In your model, all the 5 entities are released as one, but for my model I want them to get released separately
Are you saying that you want a fixed delay time between them? or possibly that subsequent entities must wait until the preceding entity reaches a certain point in processing?


Depending on the exact behavior desired, you might use a delay with an expression that depends on which entity it is, another gate, a constraining resource, or Wait on an event.

Share this post


Link to post
Share on other sites

×
×
  • Create New...