question

Remi A2 avatar image
0 Likes"
Remi A2 asked Helen commented

How can i create different sequences with processor ?

Hello, How can I make my processor 1 only do item A till being out of stock no matter what's his order of arrival and then processes product C,then B,then D.I also want processor 2 to do 3B then 2C and ends with 4D. How is this possible ? Thank you .

Test1.fsm

FlexSim 21.2.2
processortask sequence
test1.fsm (40.8 KiB)
5 |100000

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

Felix Möhlmann avatar image
1 Like"
Felix Möhlmann answered Remi A2 commented

A relatively easy way to do this, is to use a list.

Delete the connections from the floor storage to the processors. Create a new global list (of type ItemList - this only adds some default fields to the list as far as i know).

In the "Send to Port" option of the floor storage, select "Push to Itemlist" and choose the list you just created.

To make querying for the correct item in processor1 easier, I'd suggest to add a new label to the items that can be used to order them by priority. In the attached model I do this in the entry trigger of the floor storage by looking up the correct values in "GlobalTable1".

Also add a "Label" field with this name to the list in its properties.

1634207731287.png

Now, activate the "Pull" option in the input tab of processor1's properties. In the "Pull Strategy", select "Pull from ItemList" and add a query to order the items by the added priority label.

1634207695880.png

That's all for processor1.

Add two labels to processor2 - one array label and one number label. Enter the order in which you want to process the types in the array label ([2,2,2,3,3,4,4,4,4] <- 3B, 2C, 4D). The number label will serve as index to know which entry in the array defines the next item type. Set its value to 1. Activate the "Automatically Reset" option to reset the number label between runs.

1634207945987.png

Before setting up the "Pull Strategy" for processor2, add another field to the list - the pre-defined "meetsPullRequirement" (already done in screenshot above).

Now add the "Pull Strategy" as before and choose to filter by this field (delete the "< 10" bit, that gets added). This means, only items can fulfill the pull requirement can be pulled. (Normally, it is ignored when pulling from a list)

1634208911591.png

Set the pull requirement up, so that the "Label" label on the item has to match the array value.

1634208465844.png

("fmod" returns the remainder of the division "current.cnt/9", so the order will be reapeated when the count value rises above 9)

Finally, add an entry trigger to processor2 to increment the "cnt" label, each time an item enters the processor.

1634208626238.png

test1_fm.fsm


1634207695880.png (9.5 KiB)
1634207731287.png (23.5 KiB)
1634207945987.png (6.6 KiB)
1634208465844.png (7.1 KiB)
1634208626238.png (4.8 KiB)
1634208911591.png (9.9 KiB)
test1-fm.fsm (137.2 KiB)
· 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.

Helen avatar image
0 Likes"
Helen answered Helen commented

Hello @Felix Möhlmann ,


I've tried to follow the steps here and the processor is not picking up the parts. What I've done is the following:

1. I've created the item-list > meetsPullRequirement

2. In the processor I've created two labels; a) PullOrder, b) cnt (to see when to reset the order)

3. Then I've clicked pull in input and defined the pull strategy and pull requirements taking into account that my label name is "Type" instead of "Label" and that my sequences goes up to 4 parts instead of the 9 ones in the example

4. And created a trigger to incrementally count the label cnt.

I must be missing something, but I cannot see what. Can you help me with this?

Thank you.

· 6
5 |100000

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