@Harry, I seem to have come across a bug. In the Thresholds_Error model I used an ExpressionThreshold to show the state of EntityProcessor2. This throws a Java error for some reason. While obviously a BooleanIndicator is a better construct to show the state of the EntityProcessor, it isn't obvious to me why the ExpressionThreshold throws an error.
I'm trying to model a "typical" production line with accumulating conveyors that act as a queue between stations. In other words there is a max queue length between stations and when the conveyor is full the upstream station is blocked. The obvious way to model this is with ExpressionThreshold.
The complication comes in where there is a Branch in the production line to account for a slower process, or to make a variant. I need to have the thresholds act as as AND when they behave as an OR. In other words the upstream station is blocked when ALL downstream queues are full.
I have modeled this using EntityProcessor (with a Queue), EntityGate (controlled by an ExpressionThreshold on the next Queue), and EntityConveyor (to model the physical/minimum movement time between stations)
The tricky bit is when there are 2 or more stations after the current station. The current station is only blocked if the Queue before the "next" station is full. If I list all of the ExpressionThresholds of the possible downstream Queues, the EntityProcessor is blocked if any 1 of the downstream Queues is full.
Any guidance would be helpful.
What I was really hoping for was the following flow, which I am struggling to model:
- Queue A
- Seize A
- Delay A
- Queue B
- Seize B
- Release A
- Delay B
This would mean A is blocked until B is available.