question

Fatimah EA avatar image
0 Likes"
Fatimah EA asked Joerg Vogel commented

How can I prevent the processor from starting until the max. count is reached?

Hello,

for my model of a central sterilization unit I need to keep the processing Item (which represents my cleaning and disinfection device(CDD)) from processing until all items have entered.

I though that batch processing might be the solution but it still starts as soon as one item enters. This is very important for the outcome. The problem is also that the processor sometimes needs to start with only one or two items depending on the time or the current number of items in the WaitingEmptying area.

The CDD the processor is supposed to represent fits three cats at once and needs 20 minutes for all the of them, this process needs to be done before any new item can enter. As long as there are enough carts waiting the CDD won't start until thoses 3 carts are in. If there is only one cart left at the end of the day it still needs to be cleaned though so the CDD gets activated even though there is only one cart inside. I hope I could explain the problem in a way that is understandable. If not, please feel free to ask I'll try my best to explain further.

Does anybody know how to achieve this or how to find a work around?

processor.fsm

FlexSim HC 5.3.4
processortask executerbatch processingitem flow
processor.fsm (144.1 KiB)
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Cliff King avatar image
1 Like"
Cliff King answered Fatimah EA commented

Here's another example model where I stop/resume the output of the queue and the input of the processor with commands based on the number of upstream items in the flow. This model has three queue/processor combinations in series, with only the middle queue/processor batching items. I added another queue/processor combination to the previous sample model in order to have an "upstream" flow to query the content of. My logic in this model may not work for all situations (such as an extreme item flow rate), but it will give you an idea on how to control flow with the stop/resume commands.

batching-example2.fsm


· 5
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Fatimah EA avatar image Fatimah EA commented ·

Hello @Cliff King,

thank you very much. Based on your example I could find a workaround. It's not perfect and I have to change something that I didn't want to change but it works 90% of the time like I wanted it to.

Just for learning purpose, is it not possible to write a code that sends out information like "Don't start processor (or typical object behavior) unless current content is 3, close input if content is less then 3 but not 0, resume input if current content is 0" but with an exception that has the information "if queue 1 is empty start processor even if content is 1"? I'm sorry I don't know code and I'm still in the learning process. Since Staff is involved and the time for their actions is not constant the best answer would be one that tells the processor to do just that, is it not possible at all?

0 Likes 0 ·
Cliff King avatar image Cliff King Fatimah EA commented ·

No, there isn't really a way to suspend a processor's typical behavior until certain conditions are met, so that is why in my approach I control the flow of items out of the upstream queue instead. I don't see why you wouldn't be able to achieve the overall behavior you want by controlling the flow of items from the upstream queue (or queues) into the processor.

0 Likes 0 ·
Fatimah EA avatar image Fatimah EA Cliff King commented ·

I don't know why it's not working 100% like it probably should but it's working fine enough for the moment. The one thing that's bothering me most is that the carts get stacked in a place where in the real system there will be absolutely no place to stack them, directly in front of the processor (even if something is inside). But if I placed the Que someplace else the carts will have to be moved by the staff again and that would cause the processor to start as soon as the first one enters instead of starting the processing with three items in. So I guess I'll just have to accept this solution right now. Thank you for your help :)

0 Likes 0 ·
Show more comments
Show more comments
Cliff King avatar image
0 Likes"
Cliff King answered

If you put a queue in front of the processor to first batch the items before sending them to the processor, it may be an easy solution. The batching parameters on a queue allow you to specify a target batch size and a maximum amount of time to wait for the target batch size before releasing whatever the current batch size is to the processor. If you need more control, you will need to do as Mr. Vogel suggested. I've attached a sample model showing how to use the batching parameters of an Item Queue.

batching-example1.fsm

Let me know if this simplified approach won't work for your requirements and I'll see if I can help you with implementing Mr. Vogel's suggestions, because I do not think he has the FlexSim HC software package.

Note: If the process time definition on the processor is not constant (as it is in my example model), but is a distribution, then you will need to use the pick list option called "Batch Processing" for the Process Time of the processor so that it will use one sampling of the distribution for the entire batch.


5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Joerg Vogel commented

You can use 3 processors instead of one. On Entry of an item you call stopobject on this processor. If the content of the three processors meets your criterias, you call resumeobject on all of these processors from an object that controls the processors. Then you are able to start the precessing even if there is only one processor containing an item.

· 2
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Fatimah EA avatar image Fatimah EA commented ·

I have tried resume and stop object triggers but I might be setting them wrong. I'm still new to FlexSim.

Could you maybe show me how you would do it with an example?

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel Fatimah EA commented ·

I'm sorry. The stopobject command does not behave as I have expected. Even if I call stopobject on a processor the object resumes the process time. It does not suspend the events in the object until the resumeobject command is called. The Processor has been behaving like that since Version 5.1.2. I thought it was different.

1 Like 1 ·