shanice.c avatar image
shanice.c asked Ryan Clark commented

How to get item AGV is loaded in process flow?

I pull from list(to execute I/O to Processor, how can I push the unloadItem to a list for agv to know what item it is going to take? And then I will need to know what AGV has loaded to assign it to token.

There are 4 kinds of tasktype, I'd like to use process flow to control AGV now. I know my model is really far from complete. My process logic is like the picture, the descriptions are following:


1. AGV starts to look for work, as I only let AGV execute from I/O to EQ(Queue4 to Processor) now, so it will pull from list2. List2 is for all products going to leave from Queue4 to Processor. When pull out, AGV gets it's pickuppoint. Then AGV will need to determine it's dropoffpoint by pull form available list. I use a assign activity to tell AGV it's pickuppoint and dropoffpoint.


2. Then AGV travel to pickuppoint and do loading, after this AGV push what it just pickup to unloadItem list. I add this list because AGV fail to unload item.

3.AGV travel to dropoffpoint, and pull from unloadlist to assign the item name to "token.unloadItem", I would like to use this to tell AGV what item it is going to unload in unload activity.

I build my custom logic, and now I'm filling in the code and process flow(ProcessFlow_02 in my model) to ensure AGV could works as I expected. As I'm lack in experiences of using process flow, and need some help. Thank you!

agv write to table_1.fsm

FlexSim 21.1.5
process flowagvtokensflexsim 21.1.5
圖片1.png (968.7 KiB)
· 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.

Hi @fiona.c,

We haven't heard back from you. Were you able to solve your problem? If so, please add and accept an answer to let others know the solution. Or please respond to the previous comment so that we can continue to help you.

If we don't hear back in the next 3 business days, we'll assume you were able to solve your problem and we'll close this case in our tracker. You can always comment back at any time to reopen your question, or you can contact your local FlexSim distributor for phone or email help.

0 Likes 0 ·

1 Answer

Parker S avatar image
Parker S answered Parker S commented

Whatever is pulled from a list is stored on the token as a label designated under Assign To:


Is this case, the item is stored on token.pulled.

You can see what is stored by clicking on a token in the processFlow and looking at the properties:


There is no need to push the item to another list, because it is already stored on token.pulled and you can use that in the Load and Unload activities.

Let me know if this answers your question!

1628536459294.png (57.4 KiB)
1628536593184.png (13.0 KiB)
· 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.

@Parker S, thank you for your answer. But why is my I/O to OHB(that should only be push to itemlist2) but are also push to itemlist1? Also, I push Processor to I/O to itemlist3, but they are also pushed to itemlist1.

I only had each station item pushed to list at output Send to Port at 3D model. I cannot find why some values(Processor, Task Executer) also appear in the list they shouldn't be.


0810_agv write to table.fsm

0 Likes 0 ·
p1.png (189.2 KiB)
It looks like you have an On Entry Trigger on Queue4 that sends the item to ItemList1 and it is never pulled off of that list.
0 Likes 0 ·

Hi @Parker S, I have completed filling in the parameter of load and unload activity, and is now writing the conditional expressions in the beginning of token start. I query from the list and table firstly, then use if statement to determine which TaskType will AGV going to execute. I use token.agv.TaskType to record the task number agv gets. I assign the task agv is going to execute in Custom Code: Get Task activity. Now, my AGV only do I/O to EQ(Input port to Processor), since the material from Inputport has two possible destination(the last question I've asked before). I hope to push the material to 2 different lists in the custom code line39,40,53,54, but I fail to push material to list using code. I didn't use push to list activity to do this, because I don't have a token represent material, otherwise it would be better to simply use activity.

My script to query from list and table are at the left hand side custom code of the following picture, the conditional expression are written at the right hand side below the Source: AGV token.

I've asked the following error in other problem before, this exception was from Process Flow in the activity called "custom code: Update EQ Table". The problem seemed to be coming from line 56 where you try to have "n/a" assigned to a number field. But I cannot understand why String cannot be written into the table.

time: 582.000000 exception: FlexScript exception: MODEL:/Tools/ProcessFlow/ProcessFlow_02/Custom Code: Update EQ Table>variables/codeNode

Thank you!

0813_agv write to table.fsm


0 Likes 0 ·
p2.png (189.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.