question

browna15 avatar image
0 Likes"
browna15 asked Julie Weller commented

Area Restriction Max on Conveyor and Source Generation of Specific FlowItem

First off I know I should update to the latest version but currently limited to this version of flexsim for now. I would like to be able to have a max of 8 units on a conveyor and when 8 units of a given type enter that conveyor, the source freezes creating that specific type of unit until the maximum number of units on that conveyor falls under the maximum of 8. Additionally, with my current set up the area restriction on my decision points causes the conveyors to clog when the area restriction maximum of 8 is reached, when ideally they keep moving on down the conveyor (However I think if there is a way to make the source stop creating a specific type of unit once its respective conveyor reaches 8 theoretically this shouldn't happen but would still be great to know how to implement this). I have attached my model. Thank you for the consideration!

1690205039745.png


RestrictedAreaConveyor.fsm


FlexSim 17.1.6
conveyorarea restriction
· 1
5 |100000

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

Julie Weller avatar image Julie Weller commented ·

Hi @browna15, was Natalie White'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 comment back to reopen your question.

0 Likes 0 ·

1 Answer

Natalie White avatar image
0 Likes"
Natalie White answered Natalie White edited

Hi @browna15,

You can consider using a different source for each of your 5 products. They can even be stacked on top of each other, so they appear to be 1 source in your 3D model. Using different sources will make solving your issue much simpler:

Instead of using a restricted area, you can simply use your process flow to check the content on a conveyor upon the content change. This would require an event-triggered source that creates a token upon content change of the conveyor and a decide activity where the condition is based on the subnodes length of the conveyor. If the content is 8 or greater, you can close the output port of the associated queue with a custom code activity, and if it's less than 8, you can open the output port.1690212012381.png

This is an example of the process flow described above, which you'd make for each conveyor you want to restrict.

A weakness of this solution is that you can't have 2 items of the same type created immediately after one another, because if you already had 7 items on your conveyor, you can still produce 2 (or more) additional items before the custom code activity stops the source production, and you'll exceed the limit of 8. You can work around this issue by having a constant inter-arrival time (this will be a very easy solution) or by checking the sum of the content of all conveyors for the specific type of item rather than simply checking the content of one conveyor.


1690212012381.png (43.0 KiB)
· 2
5 |100000

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

browna15 avatar image browna15 commented ·
Hi Natalie,

Thanks for the response. I follow your logic on breaking up the source in order to control the types individually, however I can not obtain data for the interarrival times for a specific type. For example in the actual system I am trying to model, if Type 2 is released by the source, the next unit released can be of any type, however the time until the next Type 2 that is released is not easily measurable. Also, wouldn't that require extra control of the sources where it would randomly generate one of the five types but then have to pick the specific source for that specific type to prevent the other sources from being generated? Also it has to be that specific conveyor that has to be checked for a max of 8.


Would it be possible to use my model to make the changes you suggested? I am pretty knew the FlexSim and haven't gotten that far into the tutorials (not sure if the tutorials would really help me since its a niche situation) so being able to have a copy to learn off of would help me immensely. =)

0 Likes 0 ·
Natalie White avatar image Natalie White browna15 commented ·

The tutorials will be worth your time, particularly the process flow tutorials. You should at least work through those.

For clarity, my original idea was to have 5 sources which each created only 1 type of object. This would be simple.

If you want to use only 1 source, another option is using 5 queues between the source and the conveyor system. Under the source's properties, you'll opt to send to output port by case (the case is your product type). Then, you can close and open the output port of the queues rather than that of your source.

This solution is also fairly simple, and the attached example has implemented this on the first (leftmost) conveyor.

restrictedareaconveyor_example.fsm

There is still the issue I described earlier, where your conveyor content does not reach 8 until too many objects are already in the conveyor system, en route to the conveyor.

If you run the model I have attached, you’ll see this issue cause a blockage at runtime 885.

A possible solution is to release only 1 item at a time from a queue by including a delay in process flow. In the process flow section “Release only 1 item at a time from Queue1,” attach the source activity to the custom code activity, and this solution will be implemented.

0 Likes 0 ·