question

shanice.c avatar image
0 Likes"
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.png

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.

1628505073982.png

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
agvprocess flowtokensflexsim 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.

Ryan Clark avatar image Ryan Clark commented ·

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
0 Likes"
Parker S answered Parker S commented

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

1628536459294.png

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:

1628536593184.png

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.

shanice.c avatar image shanice.c commented ·

@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.

p1.png



0810_agv write to table.fsm

0 Likes 0 ·
p1.png (189.2 KiB)
Parker S avatar image Parker S ♦ shanice.c commented ·
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 ·
shanice.c avatar image shanice.c Parker S ♦ commented ·

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

p2.png


0 Likes 0 ·
p2.png (189.6 KiB)
Show more comments