question

Halil Ibrahim Sahin avatar image
0 Likes"
Halil Ibrahim Sahin asked Halil Ibrahim Sahin commented

The problem of transporting AGV

AGVs don't take the boxes and empty them completely. They move several turns unnecessarily, without emptying the boxes. Also, they sometimes don't use the alternative ways that I do so that they don't wait for each other. Could you please help?

AA.fsm

FlexSim 21.2.4
agvtransportingalternative way
aa.fsm (88.0 KiB)
· 2
5 |100000

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

Matthew Gillespie avatar image Matthew Gillespie ♦♦ commented ·

Hi @Halil Ibrahim Sahin,

It looks like this question may be part of a homework assignment or academic project. The professors who assign simulation modeling exercises using FlexSim expect that the academic integrity of their assignments will be maintained. In addition, we are supportive of Honor Codes or Pledges that regulate the behavior surrounding academic assignments.

I recommend reading our best practices page on the subject, which includes some resources that you should find helpful as you use FlexSim for academic purposes. I also highly recommend Dr. Allen Greenwood’s FlexSim Primer, which was written specifically for students and professors.

0 Likes 0 ·
Halil Ibrahim Sahin avatar image Halil Ibrahim Sahin Matthew Gillespie ♦♦ commented ·

Hi first of all, thank you for your suggestion. I have developed this model myself and I am in the process of learning Flexsim. I encountered a problem while developing my model. Our professor said that I can solve this problem on this platform. I also used this platform to see the answer and be found out.

0 Likes 0 ·

1 Answer

Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Halil Ibrahim Sahin commented

An AGV loads items until maximum capacity is reached. After partial unloading there is capacity available and an AGV loads item again. You can prevent this partially by increasing the priority of currently active tasksequence after loading items.
Please look into source code editor of On Load Trigger and FlexScript class reference api to set a different priority for an active tasksequence.
There exists an undocumented problem and you understand it only by strongly observation. A last transport tasksequence is fulfilled fully if there is no more transport capacity left. But if this tasksequence doesn’t have the first unloading destination on route, then an AGV will travel around twice to unload items. If you want to interrupt an ongoing tasksequence and allow ALL incomplete transport tasksequences to be sorted by their priorities, you have to preempt the currently active tasksequence. Such a preempting tasksequence does not do much. It can be a very small delay or be a travel to a control point on route. But if this preempting tasksequence gets finished, an AGV looks for a next available tasksequence in its Tasksequencequeue. And it will choose a tasksequence by highest priority first. This is a default mechanism. There are other strategies, but they involve additional creation of logic structures.
You will need to create an own preempting tasksequence, which you dispatch into a fully loaded AGV while it is traveling over control point of your path system before it gets to its first destination on route. This is only an suggestion, if you find another solution, then this is good as any other way.

I am bound by academic integrity, so I won’t implement this approach in a model. But if you do some research you will be able to realize this described approach on your own. There are two links to FlexScript API you can start with. You find there also mechanisms to create preempting tasksequences, adding tasks and dispatching them.

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

Halil Ibrahim Sahin avatar image Halil Ibrahim Sahin commented ·

Thank you very much for the valuable information you have shared.


0 Likes 0 ·