Priority to the network node path

Priority to the network node path

Ashish3
Not applicable
86 Views
25 Replies
Message 1 of 26

Priority to the network node path

Ashish3
Not applicable

[ FlexSim 24.1.0 ]

Hi Team,

In the model attached I want to give the priority for the path1. So if there is any AGV moving on path one, the other truck on path2, path3 and path4 should wait.

I tried this with the help of traffic controller using Untimed Traffic Modes. But was not able to control the movement. I tried using multiple traffic controllers but still was not able to give the priority to path1.NetworkNode_MutipleTC_1.fsm

So please help me with this or suggest some alternate option to give priority to the path.

Thank you

NetworkNode_Nonpassing_1.fsm

@Jason Lightfoot @Felix Möhlmann



0 Likes
Accepted solutions (1)
87 Views
25 Replies
Replies (25)
Message 2 of 26

moehlmann_fe
Observer
Observer

Can the trucks on the horizontal paths move across the intersection in parallel or are those paths also limited to only allow one vehicle in the intersection at a time (like the traffic modes are currently set up)?

0 Likes
Message 3 of 26

Ashish3
Not applicable

Hi @Felix Möhlmann

Trucks can move in parallel in the intersection.
0 Likes
Message 4 of 26

moehlmann_fe
Observer
Observer
Accepted solution

If the trucks can move in parallel then it's essentially a question of enforcing a FIFO rule for entering the intersection, so any trucks wait after the AGV has arrived at the intersection.

My idea would be to enforce this through a zone in Process Flow. The zone has a subset called "Limit". It has a calculation called "TotalWeight" that sums up the "Weight" labels of all tokens in the subset. A subset constraints limits this sum to 1. A token belonging to the AGV has a value of 3, those belonging to trucks of 1. This means that while up to 3 trucks can enter in parallel, the AGV token must be alone in the zone in order to be allowed to enter.

Using the "Enforce Queue Order" option of the zone, whenever an AGV token wants to enter the zone, any subsequent tokens will wait for it.

Note that in order to allow the easy of the Event-Triggered Source and the Wait for Event activity, I switched some connection ranks of the paths, so driving into the intersection is always the first path from a node ("To Edge" = 1 in those activities).

networknode-nonpassing-1_1.fsm

0 Likes
Message 5 of 26

Ashish3
Not applicable

Thank you for the solution.

Is it possible to vary/change the speed of truck or Agv inside the intersection.

0 Likes
Message 6 of 26

moehlmann_fe
Observer
Observer

You can use the traffic control object to limit the speed depending on the number of travelers within the area.

1719209545755.png

You can also set the maximum speed as part of the Process Flow (token.traveler.setProperty("MaxSpeed", value)), but that will only take effect if the traveler is stopped, then the speed is changed and then the traveler is resumed.

0 Likes
Message 7 of 26

Ashish3
Not applicable
Can the connection type of node be changed to either Passing/Non passing/No connection using code (In process flow).
0 Likes
Message 8 of 26

moehlmann_fe
Observer
Observer

Yes, that is possible. The connection type is stored as a node value in the Network Nodes attributes. (1 - No connection, 2 - passing, 3 - non-passing)

1719306682731.png

Changing between passing/non-passing seems to work right away (the next traveler that enters the path will behave accordingly). If you switch from No connection to one of the other nodes, you have to run the command "optimizenetwork()" so the routing table is recalculated.

pathtype-swap.fsm

0 Likes
Message 9 of 26

Ashish3
Not applicable
This is exactly what I needed. Thank you @Felix Möhlmann


0 Likes
Message 10 of 26

Jeanette_Fullmer
Community Manager
Community Manager

Hi @Ashish,

Thank you for contributing to our community! We couldn't identify a maintained license or subscription linked to your account.

You may need to update your profile information to identify yourself as a license owner or their associate. Check out our article for how to ensure you receive timely support. If you update your profile comment back to let us know - we'll adjust the priority of your post accordingly.

If your current license is expired, please contact your local distributor to renew.

0 Likes
Message 11 of 26

Ashish3
Not applicable

What if while swapping the path, task executers are in between the intersection or gets stuck in no connection path

Pathswap_Trucks.fsm.

As you can see in the model attached.122233er.png

0 Likes
Message 12 of 26

moehlmann_fe
Observer
Observer

I guess a simple workaround would be to just not close the connections out of paths section. So any traveler already in the section can still leave but no new ones will enter.

capture1.png

pathswap-trucks(1).fsm

0 Likes
Message 13 of 26

Ashish3
Not applicable

Hi @Felix Möhlmann

In the model attached even after using Non passing connection type, the AGV's are colliding with each other.

Is it a bug or do I need to make changes in the logic.Nonpassing_Collision.fsm

1720086695906.png

0 Likes
Message 14 of 26

moehlmann_fe
Observer
Observer

AGVs on a network node are by default not counted for the passing rule. You have to set them to "...block space on networks" to make following travelers stop.

1720088279773.png

0 Likes
Message 15 of 26

Ashish3
Not applicable

It is working fine.

Thank you.

0 Likes
Message 16 of 26

Ashish3
Not applicable

Hi @Felix Möhlmann

I tried to implement the same logic into the model I've attached, but it didn't work.

As I can see that the event is not getting trigger when Truck moves from Point A to Point B.

Would you please help me with it. And please let me know where I'm making mistake.

Thank you

NN_Avoid_Collision_At_Intersection.fsm

0 Likes
Message 17 of 26

moehlmann_fe
Observer
Observer

The logic needs to know whether the traveler is moving towards the intersection of away from it when arriving at the network nodes.

In the original model I adjusted the paths so that the first edge is always the one moving into the intersection. As such the source could be set to only trigger if the "toEdge" parameter is equal to 1.

This doesn't work anymore since there are sometimes two paths that lead into the intersection. So you will need to assign the "toEdge" to a label and use if-conditions to decide whether the token needs to continue down and possibly stop the traveler or if it can be discarded.

nn-avoid-collision-at-intersection_1.fsm

0 Likes
Message 18 of 26

Ashish3
Not applicable

I have made the required changes in my code, but at 145sec two of the tokens are getting stuck at "Wait for Event activity". And I'm not able to figure it out the reason behind it.

nn-avoid-collision-at-intersection-1.fsm

0 Likes
Message 19 of 26

moehlmann_fe
Observer
Observer

It's the same issue. The token currently waits until a traveler passes one of the intersection nodes with a "toEdge" of 2. Now the toEdge would be dependent on which node they will exit the intersection through.

If you know which NN the traveler will arrive at, you don't need the toEdge. You'd assign that NN to a label and only listen for arrival events where the traveler matches for that NN.

0 Likes
Message 20 of 26

Ashish3
Not applicable

So don't we have to use the wait for event activity?

0 Likes