question

kkkk avatar image
0 Likes"
kkkk asked Jason Lightfoot commented

AGV pick up finished item when pass by processor

Hi~ this is my current model: test.fsm

I set the random to select processor in the list:

1692282957884.png

Therefore, the AGV will sent item to processors in a random order.

Currently from my process flow settings, after my AGV sent the item to a random processor it will check if there is already a finished item, if there is a finished item the AGV will take the item to the sink immediately.

I will like to change the logic to every time the AGV pass by a processor it will check if the processor have a finished item, and take the item if the AGV's current loading item is less than 5. Hope to get some suggestions to revise my process flow to implement these settings, thanks!!!

FlexSim 23.1.0
agvprocessorspickup
1692282957884.png (21.6 KiB)
test.fsm (63.5 KiB)
· 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.

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·
I think this is a repost of the previous model where you had left exceptions in your model and then cleaned them up afterwards. Your GroupN list expression needs to account for groupName not existing when you push the item to the list by adding '?' to value.groupName.


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

Hi @kkkk, was our 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 comment back to reopen your question.

0 Likes 0 ·

1 Answer

Jason Lightfoot avatar image
1 Like"
Jason Lightfoot answered Jason Lightfoot edited

What you're describing is similar to the way the AGV templates function, where the AGV travels between LookForWork control points at which it checks for items to load if it has capacity (using an item list partitioned by control points)

However you seem to be wanting to just look for work, not based on a fixed route but just when you're passing any control point. You could detect the pre-arrival at a control point the AGV is about to pass and preempt the current travel task with a travel/load task as needed. It would probably still be a good idea to push a list of items partitioned by control points rather than scan the connected stations for every prearrival event.

· 12
5 |100000

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

kkkk avatar image kkkk commented ·

my new model: test_v2.fsm

Thank you so much~ I fixed my process flow in order to achieve my settings I mentioned above, and my logic is below.


on the left side of split: let the AGV move to the random processor and it will drop off the item which was picked up from source.

on the right side of split: let the AGV move to every processor and check if there are items to take to sink.


The AGV currently is not moving correctly, it will

  1. move to processor1 to check if there is item to take to sink go to processor3 to drop item
  2. go to processor3 to drop item

  3. move to processor2 to check if there is item to take to sink

  4. move to processor3 to check if there is item to take to sink



    The order should be step1, 3, 4, 2 to make more sense. I wonder how to revise my process flow settings to let two sides of split work the way I mentioned, thanks!!!







0 Likes 0 ·
test-v2.fsm (83.5 KiB)
Jason Lightfoot avatar image Jason Lightfoot ♦♦ kkkk commented ·

I think you need to do some tutorials to understand how process flows, task executers and AGVs work. Use your academic institution's course notes or the online tutorials.

You have two travel tasks after the split which will both issue a job to the AGV at the same time. The sequence by which it undertakes them is probably based on the connection rank which is not ideal - with the other task getting queued until the parallel task is complete. Step through the model and look at the tokens and consider if what you have is correct.

Also you still have exceptions at the decision point 'if AGV has item'.

We strongly encourage students to research, experiment and test, and are happy to offer guidance when they get stuck.

0 Likes 0 ·
kkkk avatar image kkkk Jason Lightfoot ♦♦ commented ·

Hi~ I already fixed my model: test_v3.fsm

For now, I used these variables to represent different status (for example if p1 == 1 it means AGV has went to processor1 to take finished item back)

1692280190711.png

it will run according to my settings as I mentioned above except when AGV sent the item to a random processor and the same processor also have item to take to sink. I have no idea why the AGV will pick up the item at source (the item which should be taken from the processor's unloading port will just disappear) instead of pick up at the processor's unloading port (this situation only happens when the processor the AGV sent item from source also has item to pick up and sent to sink) .

Hope to get some suggestions, thanks in advance!

0 Likes 0 ·
1692280190711.png (23.1 KiB)
test-v3.fsm (72.0 KiB)
Show more comments