question

shanice.c avatar image
0 Likes"
shanice.c asked Felix Möhlmann commented

Stop and resume problem

Hello, I'm using Stop and Resume in process flow. It shows the ResumeID should match the StopID.

I deliberately wrote 8 in Resume ID field, but the StopID I used earlier is 1. It seems token is still released even if the Stop and resume ID is not the same.

1645083504209.png

Another problem is that is it permitted to use 2 Stop activities and use identical StopID? In my model I use 2 Stop activities with identical StopID==1, I would like to know if there's possibilty that tokenA been resumed by another token, because they use same resumeID?

STOP AND RESUME.fsm

FlexSim 21.2.0
stopstop and resume
1645083504209.png (155.6 KiB)
stop-and-resume.fsm (47.5 KiB)
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

Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered Felix Möhlmann commented

This looks like a bug, however, since the ID is optional and is used for matching the states when multiple resumptions need resolving to states - it's doing what is expected. If you need to match ids strictly then you'd probably be better creating a process flow to handle the stops.

Note - instead of stop and resume you could give the TE a delay task to do the same thing.

No, the resume method only applied to the object you're resuming - the id can be the same across multiple objects (if it was working correctly).

(I assume you mean the operators are released incorrectly - in the question you refer to the 'token').

· 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 ·

Hi @Jason Lightfoot Because I'd like to use stop and resume to prevent more than 1 AGV come into an area that only allowed one agv, the other one should wait somewhere outside the area until been resumed, so in this case the delay activity maybe is not that suitable.

Previously I have tried using an object process flow to control a CP object, whenever agv onArrival this CP, AGV should stop and do some Decide activities. But AGVs in model also was controlled by another "Object process flow"( in this flow, the instance is AGVs).

In this model, I failed to stop AGV at the CP (I want AGV stop), it seems that AGV mainly is controlled by it's Object process flow first, so AGVs are is going through processes like "Travel" activity, even if AGV has somewhere should stop before arrive at it's destination.

Maybe it's because these 2 process flows has no connection? I understand AGV could only listen to a navigator, but I think above case also listen to a navigator. But CP process flow would need higher priority to do what I want.

Do you have any suggestion? I always have problem with "traffic control" problem while defining custom AGV process flow logic, rather than use FlexSim internal AGV process flow template.

Or are there examples which is more complicated in agv process flow that I could refer to? I really like to know more methods that could build flexible and customized AGV logic in Flexsim. Thank you!

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann shanice.c commented ·

Have you tried to use the AGV "Control Area" to have AGVs stop at occupied zones? They act like an extended control point that can encompass sections of multiple paths instead of just a single section of one path.

ControlArea.fsm

0 Likes 0 ·
controlarea.fsm (32.6 KiB)
shanice.c avatar image shanice.c Felix Möhlmann commented ·

Hello @Felix Möhlmann Yes, I have tried to use ControlArea in my previous model, because that model was made private, I build the attached model to show my problem. The path is bidirectional and the rack is more than 1 layer. There are deadlock problem when both agv go to same bay(Queue1 and Queue2 in a bay; Queue3 and Queue4 in a bay), and also when both agv are acquiring in the red circle area from different direction.

1645251915938.png


The second picture is from my previous private problem in this forum, the solution then was put a lot more Control Areas, this did work for the layout in that model. But I feel like putting many ControlAreas sometimes could still deadlock, for example, if the area only allow one is big(let's call this ControlArea "CA"), the other agvs still may have very high possibility to acquire CA from another side of this CA. In this kind of situation, deadlock also happens.

1645252838236.png

Previously I have tried to trigger agv stop (to do some check)and resume on Arrival the control point circled in above picture, I feel it's a kind of hard to write conditions to resume agv in waypoints( Especially when an AGV checks other AGVs status, location, tasks...). I also tried to create an object process flow(the instance is that red circled controlpoint outside control area), but this seems not work, because i want to stop agv, but agv listen to it's own navigator.

TrafficProblemExample.fsm

0 Likes 0 ·
1645251915938.png (52.0 KiB)
Show more comments