question

Peter W8 avatar image
0 Likes"
Peter W8 asked Peter W8 commented

Make the AGV wait for process to finish and two other questions

AssemblyLine_VK.fsm

I have a couple of issues with a model I'm trying to create.

1. Is there a simple solution for making the AGV unload at a processor. Wait at the processor until the processor is finished and then load the same flow item before continuing to the next processor? Right now I'm using the "Use max Wait Timer" under "Is There an Item to Load Here?" in process flow but this is not optimal. Please help me find a better solution.deadlock.png

2. See the attached image, after running the model for about 4900s it comes to a deadlock. It seems to be caused by the processor "HL005" input ports being closed. The processor says it's "idle" which means it should be ready to recieve flow items? Why is this happening and how do I solve it?

3. In the source I create a label (Type) according to a percentage. In addition to this I would also like to ad restrictions that apply to the flow items when they are created in the source, for instance:

AMT_RET(label): Is applied to 21% of the flow items but should not be created more often than every fourth flow item.

This means that flow items labeled with "AMT_RET" make up 21% of all flow items created but the restriction controlls so that they can not be created two or three or more in a row.

I've attached the model if anyone want's to take a peek.


Thanks!

FlexSim 22.1.2
labeldeadlockagv deadlockrestrictionagv wait for processor
deadlock.png (141.0 KiB)
assemblyline-vk.fsm (23.5 MiB)
· 1
5 |100000

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

Jeanette F avatar image Jeanette F ♦♦ commented ·

Hi @Peter W8, was Jason Lightfoot's answer helpful? If so, please click the "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always unaccept and comment back to reopen your question.

0 Likes 0 ·

1 Answer

Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered Peter W8 commented

1. There is a simpler solution that doesn't use the AGV template. The AGV template is built around the idea that it will travel a circuit looking for work. Your model has the AGV follow an item's process so the process flow should reflect that. Or don't use process flow at all and just reference the task executer as a label on the item in the fixed resource's 'Transport Dispatcher'. I attach an example of this approach.

2. HL005 is pulling its next item from the Queue_others, but since no AGVs are available it just gets stuck there. In the attached model I added a process flow to the first pickup position to assign the AGVs from a list and set the queue SendToPort to "Do not release". The process flow detects the item entry and tries to pull an AGV. It only releases the item when an AGV is available - this will prevent the HL005 deadlock.

3. 21% with the rules you say is basically every 4th or 5th flowitem - so I would keep a count to decide if I'm over or under 21% and label the 4th or 5th accordingly.

assemblyline-vk_jl.fsm



· 11
5 |100000

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

Peter W8 avatar image Peter W8 commented ·

Hi Jason,

Thank you for your reply.

1. I did not know that about the built in AGV template. Could you elaborate more on "Or don't use process flow at all and just reference the task executer as a label on the item in the fixed resource's 'Transport Dispatcher'". I don't quite follow you here. I've checked your exampel but you use an object process flow to solve it or am I missing something?

Also, when I run your model, your solution works but only for I while, after a couple of runs in the system the AGVs get stuck in the VAXXX stations after HL020. The stations say that they are waiting for transport but the AGVs are Idle and unresponsive. Why is that?

2. Nice, it works!

3. Ok, will try that. I'll get back to you if I don't solve it.



0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Peter W8 commented ·
I meant "don't use a process flow to manage the transport jobs" - in the model the transport is the standard flexSim port-based send to, with the transporter reference being given by item.agv.

Yes I use a process flow instead of managing several triggers for task agv unload and queue entry, and to assign the transporter to the item - but not to manage the transport jobs.

0 Likes 0 ·
Peter W8 avatar image Peter W8 Jason Lightfoot ♦♦ commented ·
Ok, I understand. Sorry, english is not my first language. Sometimes I missunderstand things.

But why do the AGVs get stuck in your model? I don't understand why some AGVs work as expected but som get stuck and never leave the VA stations?

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Peter W8 commented ·

As for the stop - it looks like VA013 still had "push to list" as the transport method - my mistake.

After that it locks at 22807 when a transport from VA032 tries to get to QG010 - but it thinks it's blocked by another AGV parked at DUAL since that is the shortest path. In the attached model I change the route so the shortest path bypasses DUAL.

assemblyline-vk_jl2.fsm

A layout change might not be possible - so I've added another option in the next model which is to use a waypoint to bypass DUAL if that's not the current destination.

assemblyline-vk_jl3.fsm

This final model also locks since an AGV parked at QG010 blocks one that is coming from VA034 to go to AVL10. Since the part in QG010 needs to also go to AVL10 it locks.


0 Likes 0 ·
Peter W8 avatar image Peter W8 commented ·

Ok, great. Wright now I'm away on a buisnesstrip. I will try your solutions when I get back at the end of next week and get back to you.

0 Likes 0 ·
Jeanette F avatar image Jeanette F ♦♦ Peter W8 commented ·
Hello @Peter W8,

Have you had an opportunity to go over the solution? Can we assist your further?

0 Likes 0 ·
Peter W8 avatar image Peter W8 Jeanette F ♦♦ commented ·

Hi,

Sorry for not replying. I've been away for a long time and didn't have the time to check Jasons suggestions until today. His solution did work (assemblyline-vk_jl3.fsm) with a couple of minor changes. Thank you Jason!

However, when I add more AGVs to the model it continues to lock up. It works with 12 but not with 13 AGVs (ultimatly I need to run the model with 17-25AGVs). I believe the reason is with how he created the "Queue_ReleaseProcess" Process flow but I don't know how to fix it. I've uploaded the most recent model to Flexsim Cloud. It's named "AssemblyLine_VK_220818".

Thanks

/Peter

0 Likes 0 ·
Show more comments