Streamline process flow

Streamline process flow

a9080109
Observer Observer
7 Views
24 Replies
Message 1 of 25

Streamline process flow

a9080109
Observer
Observer

[ FlexSim 23.0.1 ]

I want to reduce repetitive processes. I think it is not a good idea to duplicate the process every time a new machine is added.

1705476950685.png

The main thing is to solve the problem in this area

0 Likes
Accepted solutions (1)
8 Views
24 Replies
Replies (24)
Message 2 of 25

moehlmann_fe
Observer
Observer
Accepted solution

That is what Object Process Flows and/or Sub Flows are for.

https://docs.flexsim.com/en/23.0/ModelLogic/ProcessFlowBasics/TypesOfProcessFlows/TypesOfProcessFlow...

But you can do the same in a general Process Flow.

Find values that differ between the different machines and find a way to express them as a function of the machine. This could be labels on the machine or port-connections to refer to inputs and outputs.

Then rebuild your Process Flow to not contain any direct reference (at least not where those would change between machines) and instead use the expressions/labels/... to pass in those variables.

That way each token can follow the same flow of activities but do different things depending on the information on the token/machine.

0 Likes
Message 3 of 25

a9080109
Observer
Observer

This sounds very difficult. Do you have any examples?

0 Likes
Message 4 of 25

moehlmann_fe
Observer
Observer

You have applied the concept that an item label controls where an item is send after it finishes processing on a machine, no?

On a fundamental level it's the same. Every time an information is needed in the Process Flow, that information is available through the respective machine in some way. Again, be it as a label, a connected object with a certain port rank or other expressions.

You can also help tables as a tool to store that information and assign each machine a row where you can then look up the needed information.

Here's a simple example where an array label on the processors controls which type of items they are allowed to pull in the Process Flow.

pull-by-label-example-fm.fsm

0 Likes
Message 5 of 25

joerg_vogel_HsH
Mentor
Mentor
@mark zhen, there is a concept for this in FlexSim called Process Flow Instances
0 Likes
Message 6 of 25

a9080109
Observer
Observer

But what I want to optimize now is the process related to save token.

0 Likes
Message 7 of 25

a9080109
Observer
Observer

try.fsm

What I want to practice now is using object flow to complete optimization, but now I have a new problem.1705491754622.png

I hope he can put away one thing before moving the machine below.

0 Likes
Message 8 of 25

moehlmann_fe
Observer
Observer

The way you've set up the Process Flow doesn't really make sense. Every time an item enters either of the two queues, both processors will tell their operator to load that item.

You probably also don't want the Resource to be 'Local'. With that setting, every instance will create its own copy of the Resource/Operator which only that instance can access.

1705492570561.png

0 Likes
Message 9 of 25

a9080109
Observer
Observer

Okay I'm just trying to illustrate what I'm trying to do with a simple example. I thought this would simplify the problem.Because my current idea is to think of a set of boards. I only need to do the action of adding a new machine to make changes.

0 Likes
Message 10 of 25

moehlmann_fe
Observer
Observer
One tip that I can give you is to think about what a token is going to represent.

If you create a token whenever an item enters a queue, then this token will, in a way, be a representation of that item. As a result, the logic and actions you build in the Process Flow should be from the perspective of the item. For example, the item waits until a specific event happens and then the item acquires an operator to move it to its next destination.

By design, an Object Process Flow lends itself much more to be build from the perspective of that object, i.e. the processor. And since the processor is a persistent object, it makes sense that tokens in the Process Flow would also be persistent. So you'd create a single token at the start of the model run and that token now represents the processor and controls what it will do. It might acquire/pull an item, have it transported to the processor and then wait until the process is finished, for example.

You don't have to do it that way, but at least for me it helps to think in terms of the token's 'perspective'.

0 Likes
Message 11 of 25

a9080109
Observer
Observer

Okay, I'm just trying to figure out how to simplify it, and I believe this problem is very complex.

0 Likes
Message 12 of 25

jason_lightfootVL7B4
Autodesk
Autodesk
It's not - I'd recommend everyone do the related tutorials and become familiar with Object Process Flows.
0 Likes
Message 13 of 25

a9080109
Observer
Observer

pull-by-label-example-fm (1).fsm@Felix Möhlmann I have some simple ideas now but I am not short of how I should complete it. I think I must give labels to all machines and label all corresponding items (type should be able to solve it, but my current problem is I need to give a change to the status of the machine that is being processed, I am currently unable to solve this problem. Because it can only specify one machine for changes

0 Likes
Message 14 of 25

moehlmann_fe
Observer
Observer

As is described on this page of the documentation ("Referencing the Instance"), the instance object can be accessed through the keyword current. (Like the Event-Triggered Source is already doing in Object field.)

So just put that into the Object field and the activity will change the state if the processor that the item enter.

1705647933188.png

0 Likes
Message 15 of 25

a9080109
Observer
Observer

1705649785635.png

But the results of my test did not change smoothly

0 Likes
Message 16 of 25

moehlmann_fe
Observer
Observer

That's a timing issue. The state is currently changed immediately after an item enters. Then the setup and processing steps are started, each changing the state again.

Place two 0s delays between the Source and the Custom Code to delay the state change until the processor has run its internal logic and started processing (one to allow the setup to be started and a second one to then allow the processing to start).
(And yes, setting the processor to a different state while it is processing will stop the animation of the item)

If you want to collect statistics via states that differ from the default states the processor uses, it is often the best option to add a second state profile to the processor. The user has full control over this second profile as FlexSim will not change it automatically at any point.

This post describes how to add a second state profile to an object. (Since its an old version the GUI will have changed in some places but the general steps are still the same).

0 Likes
Message 17 of 25

a9080109
Observer
Observer

But I still have no idea how to simplify my process. My ideal situation is that I want to add a new machine, but I can complete the settings in the least time. Can you give me some advice? Or give me some advice? Let me learn from a case

0 Likes
Message 18 of 25

moehlmann_fe
Observer
Observer

I have already provided a general example for how to handle multiple processors in a single flow.

That you only ever mention that you want to simplify 'your process' without providing any details what this process even is also doesn't help.

In your original screenshot I see that you use preemption. Just like before, you can generalize the concept by storing the information which token is supposed to be preempted in a label. Since the token doesn't exist before the model starts, you can't do this yourself. But you can have the processor-token write itself onto a label just after it is created, for example.

In the attached model, the processors are stopped and the tokens preemted at the 50s mark (just after the set stop time).

pull-by-label-example-fm_1.fsm

0 Likes
Message 19 of 25

a9080109
Observer
Observer

Well, I think the question I asked is not clear enough. The core problem I want to solve is that as shown in the file I attached, every time I need to add a new machine, I need to copy and re-enter the details. Change, but I think this is very inconvenient. If I need to add a large number of machines, it will be very time-consuming.


1705657549959.png


For example, every time I add a new machine to the content in my picture, I have to copy it and change the labels in it. Of course, this is only part of the model.

0 Likes
Message 20 of 25

moehlmann_fe
Observer
Observer

I have linked you to the documentation of Process Flow instances which allow you to reuse the same Process Flow for any number of attached objects and provided examples of how the same can be achieved in a general Process Flow.

So unless you ask specific questions (which might as well be a completely new post) about necessary steps that you are unsure about or provide an example model yourself that showcases the specific problem you are facing, I don't know how I can help you further.

0 Likes