Glenson G avatar image
Glenson G asked Glenson G commented

AGV to unload one flowitem, and then immediately load another flowitem

Hi @Felix Möhlmann ,

I have just added the schedule for the trolleys to be sent to the Waste queue (on the right). However, to simulate actual exchange of waste bins, I would like to ask if it is possible to allow AGVs that are picking the trolleys from the Waste queue (empty waste bins) to the wards and immediately exchange with another trolley at the wards queue (full waste bins).

Thank you!

I am currently using the 2022 version right now: liftusagev22-221115.fsm, but I've uploaded the 2018 version here just in case: liftusage-221115.fsm

FlexSim 22.2.3
· 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.

Felix Möhlmann avatar image Felix Möhlmann commented ·
I see that these are currently separate jobs. Is your goal that an AGV will only start the "Empty Waste" job if there is corresponding "Full Waste" job or should it always start the "Empty Waste" and generate a new return job at completion?
0 Likes 0 ·
Glenson G avatar image Glenson G Felix Möhlmann commented ·

Hi @Felix Möhlmann , apologies for the late reply.

Right now in my schedule, the "Full Waste"" and Empty Waste" has different time slots. But my goal is that as long as there is an "Empty Waste", there should be a corresponding "Full Waste" job waiting at the wards. So I feel that it is closer to the latter which is the "Empty Waste" would generate a new return job at completion (after unloading, a new "Full Waste" trolley will be generated and loaded)

Thank you!

0 Likes 0 ·

1 Answer

Felix Möhlmann avatar image
Felix Möhlmann answered Glenson G commented

After an AGV finishes a job, check whether it was an "Empty Waste" job. In the attached model I use the item's type for this (Type 9 -> Empty Waste).

Based on this the token is send to a different part of the process flow, where it creates a new job token. You could in theory also build out the entire return trip as its own flow, but creating a job token allows to use the preexisting logic.


The origin is assigned as the destination from the previous job and the destination is always the waste queue. The job token then goes on to create a trolley as usual.


But since it is already assigned to the 'AGV-token', it skips putting itself on the list of available jobs and directly goes to the "Work in Progress" list. The AGV-Token then rejoins the main flow at the point after it normally would have pulled a new job.


A stop time is set in the attached model at which AGVs start to do waste jobs, so you can check how the logic works.

· 4
5 |100000

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

Glenson G avatar image Glenson G commented ·

Hi @Felix Möhlmann , thank you very much for your clear explanation, I've understood well and your model's logic is what I was looking for. Thank you, much appreciated!

0 Likes 0 ·
Glenson G avatar image Glenson G Glenson G commented ·

Hi @Felix Möhlmann ,

My apologies, I was trying to port the waste return version back to the 18.2.3 version to get the data from the global table "DeliveryLog" using the experimenter for varying numbers of AGV. But I encountered the following error and I can't seem to find the mistake.

Would appreciate your help on this, thank you!

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Glenson G commented ·

You are missing a delay that was in the job process flow.


It prevents the token from being destroyed while the information on it is still needed to determine if it was a "waste-job" and which ward was involved.

Hence why you are receiving errors about not being able to read labels on a non-existing node (the token) at 396s.

0 Likes 0 ·
1669015072699.png (12.6 KiB)
Show more comments

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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