question

Rasmus N avatar image
1 Like"
Rasmus N asked Rasmus N commented

Task Dispatcher not assigning tasks to all available transporters

Hello

I am using the uploaded model as a template for a model I am building. However, there is something seemingly weird happening that I do not understand.

There are enough task executors or transporters to handle all the orders that are currently present in the global table orders. However, for some reason, it does not use all the available transporters, but instead chooses to use transporters for multiple trips instead. In the model I have uploaded, there are 13 orders and 13 transporters, but only 10 transporters are used. I have tried changing the pass strategy of the dispatcher to round robin, where all transporters then got used which seems to indicate that it is not impossible to pass the orders to the transporters, but when it is set to first available, it does not use all the transporters. I have also tried increasing the length and number of the orders, but this did not change anything, it was still only the 10 transporters that did all the orders.

The template that I am building my model from is from an older version of Flexsim and I do not know if this has anything to do with it. After having been working with the template model and my own for some time, I do have a lot of understanding of how it works but I do not know if its maybe just because my own understanding of task sequences and how they are passed that is lacking.

Any help is kindly appreciated.

warehouse-picking-demo-v50_1.fsm

FlexSim 19.2.4
transporterflexsim 19.2.4order pickingtaskexecutortask dispatcher
· 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.

tannerp avatar image tannerp commented ·

@rasmus.n,

It appears that you have more than 13 transporters in your model, and they are not all connected to the dispatcher.

If you connect them all and change the Queue's "Use Transport" function to "Object connected to a center port", it should function correctly. This passes the tasks into the dispatcher, which then passes the tasks to each transporter. Some of the older methods of creating and assigning task sequences in FlexSim have been replaced by pick list options, Process Flow, and other tools in newer versions of the software.

I've made these changes. The model doesn't quite run as it did before, though. Were you creating custom task sequences somehow? If so, you might consider developing this model in Process Flow.

warehouse-picking-demo-v50-1_1.fsm

0 Likes 0 ·
Rasmus N avatar image Rasmus N tannerp commented ·

@tanner.p

Hey Tanner

Thanks for the reply.

I have just changed the uploaded model and the transporters a little bit so it is easier to see what is going on and what the issue is.

I was creating custom task sequences in the InQueue in the use transport field based on two global lists. I do realize that the newer versions of flexsim offered the pick list options and the process flow tools but this template model offered the kind of functionality I was looking for even though it is based on older code. I am not exactly interested in the flow items per se, but more interested in what happens when the location of the items change and what happens with the throughput of the transporters. As in, I am not as much interested in the flow of items through the warehouse, but the flow of transporters through it.

The same issue is still there though. I have tried adding transporters 1 at a time, and everything worked perfectly until after number 11 was added. The same 10 transporters are used even though there are still more task sequences, or orders, to complete. Which means that even though there are transporters available to be used, the transporters that are already working are given the task.

Hope this clears my issue up a little bit.

warehouse-picking-demo-v50_1.fsm

0 Likes 0 ·

1 Answer

·
tannerp avatar image
0 Likes"
tannerp answered Rasmus N commented

@rasmus.n,

I think the way that you're building task sequences limits the number of trucks that are sent. I inserted a break point in the code of the input queue that stops the model each time the task sequence is built. If you watch, there are no tasks created after the 10th transporter is sent until time 700 or so. This model shows that: warehouse-picking-demo-v50-1 (1)_2.fsm

Because there aren't any task sequences created for Transporters 11-13, they just wait there. And by time 700 when the next tasks are created, the first group of transporters are available to take them rather than 11-13.

You can change the logic to Round Robin in the dispatcher if you want to use the Transporters at time 700. This model is updated to reflect that: warehouse-picking-demo-v50-1 (1)_1.fsm

I think there's a problem with how the task sequences are being created or how something, because there are only 10 task sequences created. I'd recommend using Process Flow. I modified your code a little bit and added it to the Process Flow Custom Code activity. The tokens are created when InQueue receives an item, then the tokens acquire a resource, which they then use to assign a task. Here's the Process Flow version -- let me know what you think: warehouse-picking-demo-v50-1 (1)_4.fsm


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

Rasmus N avatar image Rasmus N commented ·

@tanner.p

Now the process flow model is using all transporters for the task sequence, this approach does seem interesting and could be the answer I have been looking for.

However, when I ran the model, I encountered an error, as shown below:

When I looked into what task 24 was, it was the travel task to travel to the Outqueue object after finishing the order.

I have gotten some knowledge of working with code building this model, but I cant figure out what is wrong.

warehouse-picking-demo-v50-1-1-4.fsm

0 Likes 0 ·
tannerp avatar image tannerp Rasmus N commented ·

@rasmus.n,

A lot of the code that's used to build the task sequences is deprecated and may be causing the errors. I'm not sure if you wrote all of it or if it was borrowed from a previous version of FlexSim, but you might consider looking into Process Flow Task Sequences.

As a workaround, I removed the deprecated "outobject()" code where the "OutQueue" is being assigned as the travel destination. I hard coded the destination and the model runs a bit better.

warehouse-picking-demo-v50-1-1-4 (1)_1.fsm

0 Likes 0 ·
Rasmus N avatar image Rasmus N tannerp commented ·

@tanner.p

Hey

Now, everything seems to be in order and the model is functioning correctly.

Thank you very much for taking your time to help me with this

1 Like 1 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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