Missions with Buffers

Hello,
I try to use the AGV to collect available boxes from the two stacks and to deliver them to the single stack. The AGV shall function according to this logic:

  1. AGV can carry 4 boxes and collect as many boxes as available from stack A (not waiting at stack A to collect and transport all 4 boxes).
  2. AGV goes next to collect as many boxes as available from stack B (not waiting at stack B to collect and transport all 4 boxes).
  3. AGV transports as many boxes as was available in stacks A/B and delivers all collected boxes to stack C (can be 2 or 3 pcs).
  4. AGV goes to idle/charge location only if battery is low and box is not available in stacks A/B.

I have an issue to adapt a such mission logic and I would appreciate you very much if you can refer me with the attached file.


With Missions (Buffers).vcmx (1.2 MB)

VC community, experts, enthusiast.
Any ideas on behalf missions application with buffers?
The topic is of high interest if VC tool can be applied to the real life milk run operations.

  • In both of your Collect Steps in your Mission, you can activate the “OptionalStep” property, so that the Mobile Robot only drives there if there is a product to get.
  • In the Deliver Step, you need to activate “DeliverAll”, so that the Mobile Robot can collect many products and deliver them all at the same time here.
  • As you have 2 optional Collect steps, if there are no products to collect, you will get this output: “Mission “Mission #1” was cancelled due its execution not spending time.” → To solve this, you can either add a Wait step of 1s at the end of the Mission for example (that’s the “easy” method), or you could create a Trigger to detect when at least one product is in the warehouse A or B, and trigger the Mission when it’s the case.

I have almost identical use case.

Instead of racks, I have process nodes (with Buffer statements), and instead of single AMR with a few places - two carts.

The rest of settings and flow is identical. Tilma comment also taken into account.

Can someone tell me, why my milkrun can’t take two parts at once, even if there is a free space for that??!

I get 2 parts for each process node at 10th second, the mission is triggered at 30th second, so case where there are no parts waiting when mission starts can be excluded.

The capacity is set to 2. Collect all/deliver all checked…

VC 4.10

basic.milkrun.vcmx (895.9 KB)

After several attempts, I’ve managed to figure out, what was wrong: the ParallelInputLimit & ParallelOutputLimit MUST be the same in the Buffer that sends as in the Buffer that receives.

Second lessons learned: if the limit is the same, but higher than milkurn capacity (e.g. limit 4, capacity 2), you will end up loading more parts on milkurn, than it’s capacity…

I’m clueless…

In the end of the day, what I wrote above regarding ParallelLimit, it doesn’t make any difference… The system does what it wants.

basic.milkrun.3.vcmx (1.1 MB)

in the first run, the milkrun behaves properly - takes only so many parts, as needed, but in the second one, when there are more parts on the racks, everything is blown away.

I can’t understand why is that.

Playing with slots brings no progress (No slots available in “DEFAULT” - General Questions - Visual Components - The Simulation Community)

Why there is “capacity” parameter on AMR, if the system doesn’t care?

Is there anybody, who managed to create milkrun use-case, with multiple stations, product mix and many-to-many delivery logic?