Conveyor Capacity not behaving as expected

Dear All,

I am trying to model a particular Warehouse and I stumble on a behaviour that I can not solve.
In reality there are multiple orders, but for this example I used two only.

  • Red and Blue pallets flow from the 2F to the 1F to be shipped (sink)
  • On the 2F the pallets are prepared evenly.
  • On the 1F floor the pallets are processed in a batch. (in this example 9 are “pack” together)

There is a Buffer on each floor and they are optional so that the goods can be transported directly to the batch process.

I am having trouble on limiting the number of pallets that the conveyor/transport node holds.
If I change the capacity to 1, the simulation gives me the following error.
“Conveyor transport controller: no capacity on the target container.” and the products are lost in the limbo.
If I let the conveyor “accumulate” with 9999 capacity as default, the pallets arrive to the conveyor regardless if a pallet is already occupying a space.
I want the pallets to stop moving from node to node if the node already have a pallet waiting.

Pallet Picking operation.vcmx (2.6 MB)

The short answer is that in practice you almost always need to use the “To Conveyor” and “From Conveyor” processes with conveyors. This allows using the conveyors as buffers with capacity, but you can’t use the product need and feed system over such conveyance.


Thank you for your quick answer, really appreciated.
I understood the reason that the feed system can not be used with the “To/From Conveyor”.

I was thinking if there is a way to use the Feed System in a simple way and tried to use “Transport Nodes” however they do not seem to have any restrictions regarding capacity.(refer to the model/screenshot)
Is there a way to implement capacity so that the pallet flow will stop if the next node is occupied?
Pallet Picking operation(Transport Node Only).vcmx (2.5 MB)


The issue with using transport nodes with the transport controllers is that the current transport controllers are not implemented to respect the capacity of the transport node’s containers and wait for capacity before placing more products there.

It would not be easy, but you could modify the Python scripts of the transport controllers to include such logic. The transport controller and associated resource would need to decide how to manage the capacity, like does it wait for capacity at the target node before even picking up the product, or does it take the product and wait for the target to have free capacity next to it. A robust system would also need to somehow reserve capacity so it doesn’t get stolen by another resource / product. Conveyors are also inherently sequential, so the order in which products are placed there might matter to avoid deadlocks further on.

If your flows are relatively simple, it could be much easier probably make a specific solution for your application by sending and waiting for signals between processes to control sending out products only when you know that your conveying system with limited capacity has free capacity for the product. Your processes can also read properties directly from other components and wait for conditions based on those using the GetProperty and WaitPropertyCondition statements.

Thanks for the detailed reply.

I wish I could be proficient enough with Python to modify the transport controllers as necessary.
I really like the idea that each Product has already its destination before departing from the upper floors.

I will try to use Get/Wait Property condition statements.