question

joey avatar image
0 Likes"
joey asked joey edited

One Transporter use two diffe Load times

Hi All !

I have 3 Transporters are connected with a Dispatcher ,then dispatcher is connected with two Queues .Transporters travel to get the box from each Queue where Load times of Transporters that pick the boxes from each Queue is different.Example likes Transporters use Load time 3 minutes in picking the boxes from Queue 1 ,and 4 minutes in picking the boxes from Queue 2.How can I set this ?

Thanks,

FlexSim 19.0.0
transporter loading time
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

Joerg Vogel avatar image
1 Like"
Joerg Vogel answered joey edited

As long as you have a reference to the loadstation you compare this reference with a table value in a column by a Table.query, or a member of a Group, or an element of an array.

A table query can return a static number value or a string that you execute to get a dynamic value.

You get from a group or an array the index of a matching member. You use this discrete value to choose a static time or a time value from a statistical distribution of the LoadTime function picklist option Values of Case.

Table.query

The Table:

If you want assign pointer data or references to row, then you set the data type to the column by the right mouse button context menu.

If you activate a cell to write data, you get some tools beside the cell. One is the sampler, which you use to choose the object in the model directly to get the pointer data.

In the Properties window of a transporter you can add a source code that queries the table for the right time. You need the reference to the load station. This is a variable in the source code header named station. It is always available for the code you write into the Load Time function wether in the field or the source code.

Source code:

double loadTime = Table.query("SELECT times FROM tbLoadTimes WHERE queue = $1", station)[1][1];

Indes of array or group

You can create a group in the toolbox. You add members to the group. The order of its members defines the index number you get back if you you are looking for the index.

In the Load Time function you choose from the picklist option Values by Case .

The Case Function must return a discrete number. For each number you can set a different static time value like above in the picture or you can choose a statistical distribution from the options.

Source code directly entered:

Group("loadStations").indexOf(station)

The variable station is still declared in the header of the Load Time function source code editor.

---

An index of an array works the same. But you must assign the objects to an Array. In an licensed version of FlexSim you can use global variable. Otherwise you can use a label at the transporter. I set the elements of the array by a reset trigger code snippet source code:

The Load Time function Case Function looks like this source code of Values by Case:

current.labelLoadStation.indexOf(station)

You can adapt these approaches to Process Flow as well. The station variable will probably be a label at a token.

My favorite is the group approach.

load-times-by-station-list.fsm


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

joey avatar image joey commented ·

Thank you very much for your help. @Jörg Vogel

But the process is too complicated for me, resulting in me not being able to understand as much as I should.

I think your advice is very useful. I will try to understand more.

Thank you for your help.

0 Likes 0 ·