question

Michael O'Connell avatar image
0 Likes"
Michael O'Connell asked Sam Stubbs edited

Can I maintain coordinated TE movement through sideways travel?

I have an AGV system that will need multiple AGVs to move a single tool. That movement will be both inline and sideways/crabbing.

I have used coordinated task sequence in flow logic of the queue in the attached model and the 2 AGVs pickup item as expected. However, as they travel to the combiner, they need to travel sideways. When they do, the AGVs travel sideways on the path separately.

How can I have them coordinate their sideways moves? Should I move the second AGV into the first? Ideas?

Thanks.

multiple-agvs-generic.fsm

FlexSim 16.1.0
agv coordinated movement
5 |100000

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

1 Answer

Sam Stubbs avatar image
0 Likes"
Sam Stubbs answered Sam Stubbs edited

If the two task executers are always going to be moving in unison together, then yes, visually it might be simpler to just place the one task executer inside of the first and have them move and be treated as one object.


taskexecuter.gif (659.5 KiB)
· 3
5 |100000

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

Joerg Vogel avatar image Joerg Vogel commented ·

What Sam did is an operation in the coordinated tasksequence - moving objects into one another. It becomes a bit tricky to split them again at a single network node because they will be placed at the same point and not in a line. Maybe it is an activity of several tasks to achieve this when the leading taskexecuter travels over a network node and he loose the joint taskexecuters then. The problem is that Flexsim is time based and not location based. You have to compute distances into events of time. When everything works well in processes that approach is fine. But if a breakdown event occurs then the method of splitting up has to cope with this breakdown situation, too. That is the tricky part.

1 Like 1 ·
Michael O'Connell avatar image Michael O'Connell commented ·

They will only be moving in unison when picking up a tool that requires multiple agvs. Some tools need 2 agvs, others 1, and still others 3.

Can I create the kind of movement you're showing only after all arrive for tool pickup and then disassociate after tool unload? So, maybe, coordinated task sequence to get the number required; then moving one into the other; then travel and unload; and then move the one back out?

0 Likes 0 ·
Sam Stubbs avatar image Sam Stubbs ♦ Michael O'Connell commented ·

Okay, so I've created an example model doing what I think you're talking about. I actually ended up using Process Flow combined with a little bit of custom code. Essentially the Process Flow Gives you a little more direct control over the Task Executers so that you can isolate their specific tasks more simply I feel.

It acquires the Task Executers as a resource (I combined the two task exectuers into a group called "AGVs" and connected that to a resource within the process flow.) Then I made the model produce two types of items to illustrate what you described: where Item Type 1 (red) only requires one AGV, and Item Type 2 (green) requires both AGVs.

The Process Flow will create an item and then decide based on its Item Type whether it will acquire 1 or both AGVs. When both are required. I have them both go to the pick up location, then I place the second AGV within the first, for the visual of moving together. (In order to avoid the issue that Jorg Vogel is talking about, we had to write a custom code that calls the reassignnetnode() command, so that the second AGV won't return to the point he was removed. And instead reassign him to the netnode at the destination.) After dropping off the item carried, AGV 2 is moved back into the model and set at the location of AGV 1.

I've attached the model below, feel free to pick it apart and use what you need.

taskexecuterexample.fsm

0 Likes 0 ·