Modelling a Flexible Manufacturing System

All topics specific to modeling questions in Enterprise Dynamics
Post Reply
liyp93
Posts: 10
Joined: Tuesday 10 October, 2017 - 13:17

Modelling a Flexible Manufacturing System

Post by liyp93 »

Hey
I am in the process of modelling a flexible manufacturing system, and I am experiencing some difficulties which I hope you can help me with.

The production set-up which I am trying to model is based on 2 production machines (CNC1 & CNC2), and 1 measuring machine (CMM). There are approximately 80 different products produced at the CNC1 and 50 products produced at the CNC2. All of these products have different arrival times, and different routings between the CNC machines and the CMM machine. The routing of a product is back and forth between CNC1 and CMM or back and forth between CNC2 and CMM. Further there are different cycle times at the servers dependent on the specific product and operation. To handle the different routings and cycle times I have created a table for each.

I have attached a simple version of my model which only contains four of the products.

I am currently having difficulties with modeling three aspects:

1-Interarrival time - Is there a way to define the distributions of the interarrival times for the 150 different products and assigning a label to each product without creating 150 source atoms?

2-Server schedule - How do I define the schedule for when the servers are open? The current schedule for the 3 servers is:
  • Monday to Friday – open 24/7
    Saturday – closed
    Sunday – open from 18:00-24:00
3-Conveyors
In the production set-up there are also supposed to be conveyors, though I have troubles figuring out how to model this. The situation is:

In the production set-up there are five conveyors between the CNC1 and the CMM, and 3 conveyors between CNC2 and the CMM.
After a product is mounted on the conveyor, the product stays on the conveyor until it has been through all the operations, as defined by the routings table. This entails that the conveyor must be seized when the product enters the system and first released for use when that specific product exists the system. This entails that WIP for CNC1 is 5 and WIP for CNC2 is 3. Further there can only be 1 product on a conveyor.

I hope you can help me with this and thank you in advance.
Attachments
FMS_Simulation.mod
(63.54 KiB) Downloaded 183 times
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Modelling a Flexible Manufacturing System

Post by HarryBunnik »

Ha liyp93,

I'm going to give you some key words so you can directly continue:

1. Arrival list (Library under TIME)
2. Availability (Library under AVAILABILITY)
3. Lock and Unlock (Library under FLOW CONTROL)

I think these are the components you're looking for. Also note that there are in the directory "..\Documents\Enterprise Dynamics\10.1\Models\Examples\.." a large set of examples which can help you understanding how to use the objects (besides the Help).

Cheers,

Harry
liyp93
Posts: 10
Joined: Tuesday 10 October, 2017 - 13:17

Re: Modelling a Flexible Manufacturing System

Post by liyp93 »

Hello Harry

Thanks for the quick response it really helped me a lot. I was able to figure out a solution for the 3 issues I had.

Though there still is 1 thing in the model I can’t seem to get working. In the queue atom “queue_routing”, I need a way to send the products either back to the queue “Routing” or forward to Queue 27, and the code I have written just doesn’t work.

This decision is connected with if there are any steps left which the product must go through as defined in the routing table. If there are still steps left I need the products to go back to the queue “routing”, but if there are no steps left the product should leave the system by entering “queue 27".

Hope you can help me with this.
Attachments
FMS_Simulation_2.mod
(56.01 KiB) Downloaded 181 times
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Modelling a Flexible Manufacturing System

Post by HarryBunnik »

Hello liyp93,

I'm happy that you got some ideas from my last post :-)

I looked into your current model and see the following decision code:

if(
routing(label([step],first(c)), label([product],first(c))) = 0,
label([product],first(c)),
2
)


So when the value found in the table "routing" is not 0, the product is send through exit channel nr. 2, otherwise it is send through exit channel nr. label([product],first(c)).
Shouldn't this be 1? Because if I see the call for the cell value in the table, I would expect this label to return either a value 3 or 4 and you don't have that many exit channels.

Additionally I saw that you are using ExecString in the servers to calculate the time from the table CycleTime. This is of course correct code, however ExecString is relatively slow (the code has to recompile every time). You could consider to place the number of minutes in the table and do the conversion outside the table, on the server itself. So you would end up with code like:

Mins(cycletime(label([step],first(c)),label([product],first(c))))


Where the value of cycletime(label([step],first(c)),label([product],first(c))) is for instance 2.

I hope this helps you further.

Regards,

Harry
liyp93
Posts: 10
Joined: Tuesday 10 October, 2017 - 13:17

Re: Modelling a Flexible Manufacturing System

Post by liyp93 »

Hello Harry

Both your suggestions work perfectly. Thank you so much for the help.
liyp93
Posts: 10
Joined: Tuesday 10 October, 2017 - 13:17

Re: Modelling a Flexible Manufacturing System

Post by liyp93 »

Hello

I have done some further work on my model of the FMS system, and I can’t seem to figure out how to model the arrival lists correctly.
I need to model two different kind of Arrival Lists:
  • 1. Arrival-tact - the arrivals is defined by a specific takt time(interarrival).
    So, if the takt time equals 2 for product 1 – the product should enter the model at time 2-4-6-8 etc.
  • 2. Arrival-deterministic - the arrivals for these products are the exact time in which the products have entered the system based on historic data - The products should therefore arrive into the model at the exact time as specified in the arrival2 table.

The problem I can’t figure out is how to code the repeat strategy, so the products keep entering the model at the right time. Currently I am using the “continues repeat” strategy, which does not function correctly for this purpose, since the list is repeated based on the last atoms arrival time.

So, I think what I need is a code where the list of arrivals is always repeated based on time 0?

I hope you can help me with this :) . Thanks in advance.

Best regards
Line
Attachments
FMS_Simulation - 3.mod
(70.59 KiB) Downloaded 171 times
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Modelling a Flexible Manufacturing System

Post by HarryBunnik »

Hello Line,

That is a nice one...

1. Arrival Tact:

For point 1 it is a bit complicated and it's not so easy to do this in an arrival table with a repeat (unless all inter arrival times have a simple common multitude, currently with times of 2 and 3, it would be 6).

What is the period of time that you want to simulate and about how many products are we talking? If the number is not too large, we could write a small piece of code that fills the arrival list automatically based on the inter arrival time. If there are 100.000+ products, we may have to consider a different approach since a table of 100.000+ rows is also not that nice.

In that case you could fall back to a normal source, a table in which you have your production data and an initialize atom. I've created an example model in which I've build what I'll try to explain below. Note that there are a few traces implemented for testing purposes.
  • In the table "ProductionOverview" I create for each product a row in which I place information (name, color, interval, the last release time and some labels (similar to the arrival list)).
  • On the "Time till first product"on the source, I loop over the table and select that product that has the shortest inter arrival time (first one to arrive). Note that I also update the cell of the last release time and I place a label on the source in which I store the row number, (CurrentProduct) so I can use this later.
  • On the "Trigger On Creation" I place the information on the product (name, color, labels etc.), for which I use the label with the row number (CurrentProduct).
  • On the "Inter arrival time" I loop again over the table and pick the first product that has the minimal: interarrival time + last release time. That way I ensure that I always get the correct row.
  • Finally I use the Initialize to reset the column in the table with the last release times to 0 again and to remove the label on the source (cleaning up).
SourceExample.mod
(22.29 KiB) Downloaded 183 times
2. Arrival deterministic:

And I would think that for point two you can't use a repeat. You'll simply have to use the list of arrival times and have that copied into the arrival list (if you select the arrival list atom in the 2D screen, open the interact (Shift + F6) and type EditTable(animatom), you can directly edit the table. This makes it easier to copy and paste a large set of data from e.g. Excel).

I hope this helps you further.

Regards,

Harry
Last edited by HarryBunnik on Thursday 02 November, 2017 - 10:29, edited 2 times in total.
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Modelling a Flexible Manufacturing System

Post by HarryBunnik »

Not the last save of the model, so here it is again.
SourceExample.mod
(25.35 KiB) Downloaded 210 times
liyp93
Posts: 10
Joined: Tuesday 10 October, 2017 - 13:17

Re: Modelling a Flexible Manufacturing System

Post by liyp93 »

Hey Harry

I have tried out both your suggestions, and it works perfectly. There are only 300 products in the system, so the size of the table is not a problem.
Thanks for the help, it is much appreciated.

Best Regards
Line
Post Reply