question

Kenny Macleod avatar image
0 Likes"
Kenny Macleod asked Kenny Macleod commented

Passing paramaters and lables through Mass Conveyor

I'm trying to get to know Mass Conveyors and am struggling with two concepts.

Passing labels through the conveyor - As the "items" on the conveyor are just visual, how do you pass the labels through and set the output values.

Dynamically changing the Units Per Package value in the exit. - My batches are all different sizes, so I need to know when to part-pack the last package.

How is this done?

Thanks

FlexSim 21.2.1
massflowconveyor
· 4
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 ·

I just did some experimentation. The only way to keep/pass labels is to store them in some other location (I used an array label on a BasicFR) and reassign them to the recreated items in the exit transfer.

The units per package value is only evaluated at the start and end of a flow batch. Changing it during a continuous flow has no effect. So for a given batch you'd have to pre-calculate what the value should be to create the correct amount of items out of it.

By saving the total quantity to the array as well and decrementing it each time an item is created, I was able to assign partial quantities to the last created items for each batch.

So the short answer seems to be: The mass flow conveyor is not meant to do these things.
And the long answer: Up to a certain degree, workarounds can be created.

I hope this is at least somewhat helpful.

MassFlowLabelTest.fsm

0 Likes 0 ·
Kenny Macleod avatar image Kenny Macleod Felix Möhlmann commented ·
Thanks Felix! I'm working through this and it definitely helps.

Appreciated.

0 Likes 0 ·
Kenny Macleod avatar image Kenny Macleod Kenny Macleod commented ·
I agree that, although helpful, your answer is workaround. Hopefully someone from the dev team will advise on the official way to use this massflow conveyor with data retained for downstream.
0 Likes 0 ·
Show more comments

1 Answer

anthony.johnson avatar image
0 Likes"
anthony.johnson answered Kenny Macleod commented

This isn't possible right now. Felix's option is the best. I'll add an item to our dev list to think about solutions, although I'm somewhat doubtful that this will change any time soon. One option is that we could allow users to store labels on the "rate change points" of a conveyor. Rate change points are the leading points that travel down the conveyor, behind which a certain rate of flow units are moving. The problem is that the rate change points are created and destroyed dynamically as needed by an individual conveyor, and they don't transfer from one conveyor to another. Consider the situation where two conveyors merge into a single conveyor. Each upstream conveyor has a rate change point at its leading edge. If there were a label storage feature, you could possibly store different label values on each of the upstream conveyors' rate change points. The merging downstream conveyor has a rate change point that defines the cumulative rate it's receiving from upstream. How would you "merge" the label values of the upstream points into the labels of the downstream rate change point?

This is the same issue you would have with any fluid library like FloWorks or FlexSim's fluid objects. As far as I know, neither of those libraries provide label storage capability on fluid flowing through the system, and that's probably for good reason.

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

Kenny Macleod avatar image Kenny Macleod commented ·

Thanks @anthony.johnson , I trust you are well.

Please give me a real-life example where the massflow conveyor can be used without having to do a workaround to retain data for downstream. I.e what is the massflow conveyor designed to do.

The MFC is a nice thing to have in the library, for times when there are too many items for normal conveyor, but every conveyor that I have come across feeds into some other process that needs to know what the product is.

Happy to be corrected.

0 Likes 0 ·
anthony.johnson avatar image anthony.johnson ♦♦ Kenny Macleod commented ·

A perfect real life example is a simple bottling line. In a real life scenario of a bottling line, how is data passed from upstream to downstream? Do you put data onto the individual bottles and then individually scan them when they reach downstream? Is there some real-life physically distinct "batch" of bottles that you can attach data to? No, there is some system process that is recognizing that, right now, we are doing these types of bottles. You likely use photo eye/sensor states to assess where bottles are in a system, e.g. when the system has emptied out and when you can start a new batch, and you use some global transition states to change between batches. But you would likely never actually attach data to "batches" of bottles, because you can't. That data is neither maintained on the individual bottles nor on some "batch" of bottles. It's a separate process that's communicated. It's not unreasonable to say that's also the way you have to do it in a simulation, and all of those mechanisms are possible in FlexSim? That's not a workaround; it's simulating the way it works in real life. While it might be nice to allow for a "data on batches" abstraction in simulation, such a feature would indeed be an abstraction that actually strays from how it would work in real life.

0 Likes 0 ·
Kenny Macleod avatar image Kenny Macleod anthony.johnson ♦♦ commented ·
Thanks Anthony - I'll accept this "answer" but I disagree to the solution.
I didn't ask for labels to go on each non-item in the MFC, just a way to know what was coming downstream so the items could be populated with some data.

Yes, in the real world some form of control system would be in place. But we're in the business of faking it enough to get a decent replication - so we often don't have time or budget to build additional stuff to make your objects work.

So there should be a simple routine attached to control, or at least pass data downstream, within the MFC object. eg. transfer item labels and values to Current, when they are converted to mass flow, so we can pick them up when objects are regenerated at the other end.

Edit: I deleted the 1st version of this because I managed to put it into some code format.
0 Likes 0 ·