question

mark zhen avatar image
0 Likes"
mark zhen asked Andrew O commented

Processing order, I would like to know how to dispatch the processing order.

I have several orders now, but his processing order is random, say 1-3-5-2-sink

Or maybe 1-2-5-sink will also have 1-5-4-3-2-sink and so on, how can I model something like that. and I need to collect his processing order

ChangeoverTimesRL.fsm

FlexSim 22.0.0
orderssimultaneous
changeovertimesrl.fsm (308.0 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.

Felix Möhlmann avatar image Felix Möhlmann commented ·

It would be good if you provide some further information.

Is the order pre-determined for each item? Or should each item only have the information which processors it needs to pass and the order will depend on the availability in the model?

Your model is build on the foundation of the Reinforcement Learning Tutorial model. Is this order logic supposed to interact with the RL system and if so in what way?

In general, a good approach would probably be to use a list the processors can pull from. The items should always return to a (collective) queue after being processed. Otherwise you might run into a deadlock situation where two processors need to pull each others item.

0 Likes 0 ·
mark zhen avatar image mark zhen Felix Möhlmann commented ·

我的訂單只會有訂單編號 跟處理器的順序 目前還沒有完整的訂單所以可以用假設的訂單來代替 那關於強化學習的作用 我期待的是他可以提供一個好的順序來方便我做訂單的安排

0 Likes 0 ·
Andrew O avatar image Andrew O commented ·

Hi @mark zhen , was Felix Möhlmann's answer helpful? If so, please click the "Accept" button at the bottom of their answer. 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 unaccept and comment back to reopen your question.

0 Likes 0 ·

1 Answer

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered Felix Möhlmann commented

In the attached model each item is assigned between 1-5 production steps on the different processors in the "On Creation" trigger of the source. Each processor is assigned a number through the "Num" label.

The items are pushed onto a list by the queue. The list has two custom expression fields.

1664283776729.png

The first one "needsProcessor" handles the pulling of items by the processor. It checks whether the number of the processor is present in the steps that the item still has to go through. If so, the field value is set to 1. This allows the processors to only pull items that need to be worked on by the respective machine.

1664283801754.png

In their "On Process Finish" trigger, the number is removed from the step array and instead added onto another array label that keeps track of the order in which the item was pulled by the processors.

The second field value evaluates to 1 if the step array is empty, so the item can then get pulled by the sink. In its entry trigger the needed steps and the order in which they were done is written to a global table.

1664283822991.png

randomProductionOrders.fsm


· 12
5 |100000

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

mark zhen avatar image mark zhen commented ·

I sorted out the ideas and determined the ideas are as follows. I have a total of five production processes as shown in the figure, 0 means skip, then I now have an order of 5,000 sheets (there are already related orders in my file), So now the situation is that when I have a type 4 order I have to start with the third machine and process it sequentially. What I want to do is probably like this

1664301477479.png

0 Likes 0 ·
1664301477479.png (1.7 KiB)
Felix Möhlmann avatar image Felix Möhlmann mark zhen commented ·

This can be done with two small changes to the model I attached in my answer.

1) Instead of generating a completely random order, a random column from a global table containing the processes is chosen and the steps copied to the array label.

1664346894880.png

2) The "needsProcessor" expression of the list is changed to only compare the first value in the array to the processor number to enforce the given order of the steps.

1664346958911.png

randomproductionorders_1.fsm

0 Likes 0 ·
mark zhen avatar image mark zhen Felix Möhlmann commented ·

但我的源是照者行程表生產的

1664445333730.png

0 Likes 0 ·
1664445333730.png (77.9 KiB)
Show more comments