Process Flow Global Table Lookup

Process Flow Global Table Lookup

howy3508
Not applicable
2,653 Views
5 Replies
Message 1 of 6

Process Flow Global Table Lookup

howy3508
Not applicable

[ FlexSim 24.0.2 ]

There are a few things that I want to accomplish.

  1. Move box item from one queue to another based on the global table destination.
  2. Processor looks up setup and process time from the global table values.
  3. The number of boxes by product types in the sources can be updated to different quantities.
  4. The number of processors connected to the queue can be different quantities.

1712590677798.png


There are some issues that I encountered:

1.The token is not reading the destination from global table correctly. How to enable a "drop sample icon" so I can pick the queue that I want?

1712590579956.png

1712590657975.png

2. The operator1 is picking up the box item while processor is running and not completed yet.

3. Queue 1 send 2 box items to Processor 1 and Processor 2 but only one box is move to the next destination.

1712591090035.png


globaltabledemo


20240408.fsm

0 Likes
Accepted solutions (1)
2,654 Views
5 Replies
Replies (5)
Message 2 of 6

kavika_faleumu
Autodesk
Autodesk
Accepted solution

Hey @Howard, firstly, if you want the setup and process time of your processors to be determined by a variable value, you can't use "token.SetupTime" since the Processor doesn't know what "token" is. An alternative is to do a Global Table Lookup based on the item's type (if they have different types) or the "If Item Label Value Changes" option for when the label value changes -- then you can setup different processing times.

Concerning your Global Table, if you want a pointer cell value, you need to assign that cell to have that type of data.

1712596691730.png

If you right-click on the cell, you can assign it that type of data. You can highlight all the cells you want and mass-edit them like this. Then you'll get the dropper to select the object you want.

Another way is to do "Model.find(token.Destination)" to do a lookup on the string you have saved in the table. This will return a pointer to that object that you can store on another label.

0 Likes
Message 3 of 6

howy3508
Not applicable

@Kavika F

globaltabledemo


20240408.fsm

Hi Kavika,

I was able to fix the Destination by setting the cell type to pointer. If I want to use the alternate method, where do I put the "Model.find(token.Destination)" ?

I am trying to route the box to the right destination first so I remove the process time lookup for now.

It is showing error when I tried to run now. How do I troubleshoot it? The error happened when the operator1 unload the first box onto the Queue1.


Image.png


0 Likes
Message 4 of 6

howy3508
Not applicable

@Jeanette F

globaltabledemo


[GlobalList] 20240409 V0.fsm

Hi Jeanette,

I have included a list to pull the box instead of just pull the box directly from the queueIn but it's not pulling the token properly it looks like. (see attached)


0 Likes
Message 5 of 6

kavika_faleumu
Autodesk
Autodesk

@Howard, I would suggest refactoring your model to not use the GlobalTable as a sequence of events because they may not happen in the order you're expecting. For example, don't have scheduled events for the Operator to move finished objects off the Processor to "QueueOut". Instead, just have output connections from Processors to QueueOut and have the Operator as the guy in charge of moving them there through 3D logic -- that way you don't have to worry about it not happening in that order in the sequence.

1712869373092.png

The "Output" section of a Processor's quick properties:

1712869398873.png

Now let's look at the Process Flow. I don't suggest going through the Global Table row by row when you are also waiting for (and expected) boxes to appear before a specific time. Instead, you can make an Event-Triggered Source to make a token when an item enters QueueIn. You can then assign that entering item the label "token.Item" instead of trying to find it every time.

1712869557559.png

You can still use the "row" label, but instead we can keep it on the ProcessFlow itself and increment it when each item becomes available. That way we don't have possible overlaps.

1712869667973.png

In doing so, we can also get the Setup and Process times off the Global Table and put them on the item in the 3D space. That way the Processor can actually read the item's setup and process time.

1712869718752.png

And the Processor's quick properties:

1712869735244.png

Hope this helps.

globaltabledemohr-20240408_2.fsm

0 Likes
Message 6 of 6

Jeanette_Fullmer
Community Manager
Community Manager

Hi @Howard, was one of Howard's or Kavika F's answers helpful? If so, please click the "Accept" button at the bottom of the one that best answers your question. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always comment back to reopen your question.

0 Likes