I am trying to use a Parallellstation as a batchprocess, and I am using the option to wait until the station is full before the process starts.
The batch size will change depending on different products (different MU names). For example, one batchoption is 5 as batchsize and it could only be of Product A. Another batchoption is 10 as batchsize, and there can be any mix of Product B and Product C. The buffer before the parallelstation contains all of the different products.
During the simulation I am changing the parallellstations .YDim to change the capacity, and I am moving MUs with Simtalk into the parallellstation so I can control which MUs that are allowed in the batch.
But when there is one MU waiting in the parallellstation and I move another MU into it (with .Move(Parallellstation)) the station gets the orange LED (needs operator for processing), even when the capacity is set to 4! This is the issue.
The capacity of the parallellstation is set when the station is empty. Both of the MUs in this case have the same name (the Product A example above).
In the documentation it says that StartProcessingWhenFull will be canceled when a part of another type enters the station, but what is another type? All the products are derived from the same MU, they have only changed name. How do I make all the MUs of the same type? Is it something else that causes this?
But I have changed so "Setup depends on: Off" in the parallelstation. Does this not matter?
Is there any way to change so it is not dependant on the name?
I couldn't figure out a way to fix it, so I disabled StartProcessingWhenFull and did everything by SimTalk instead.
Thanks for the help!
I think in most cases it's a good idea, not to use the name of a MU as the product type identifier, but instead create a user defined attribute. You then can temporary change the name to whatever you need at the moment. In your case for example:
Before the batch process all to the same value
@.name := "X"
and after the batch process back to the original value
@.name := @.ProductType
You then could have used the StartProcessingWhenFull option.
That seems like a good workaround, I will keep that in mind if I need to code something like this again.