Production Sequencing

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

Production Sequencing

Post by liyp93 »

Hey
I am currently modelling a flexible manufacturing system. The input of the system is based on tact-times, and the products are in the beginning of the model divided into two separate queues (FOG-Queue and TFM-Queue). This division is based on which machine (FOG or TFM) the products are to be produced at.

Each product has been assigned a cluster label in the table “production overview” table, these clusters are created based on machine process time (5 clusters for the TFM products and 3 for the FOG products). The label is assigned in the Arrival_tact atom in trigger on creation.

The goal is to test different sequences of how the products enters the system. If possible, I want to create this input sequence in the TFM_Queue and FOG_queue. So, for example in the TFM_queue the sequence could be 1-2-2-3-5-4 and for the FOG it could be 3-3-1-2.
Though I can’t figure out how to create the code in the queue discipline option? I hope you can help me with this.

Best regards
Line
Attachments
Production_Sequence.mod
(788.81 KiB) Downloaded 193 times
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Production Sequencing

Post by HarryBunnik »

Hello Line,

Not to long ago I wrote an answer to a similar problem, so I post the link here. I hope it helps you to understand the functioning of the Queue and gives you an indication how to do something like this.

https://community.incontrolsim.com/view ... =879#p3063

If this is not enough, then let me know. Then we can look how to create a specific solution for your problem.

Regards,

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

Re: Production Sequencing

Post by liyp93 »

Hey Harry

Thanks for the quick answer. I looked through the other question.

Though I think the part where the two problems differ is that I don’t want to prioritise the products with a specific label, so that they are placed at the same location in the queue. This factor I think I got covered by using the “sort label by ascending” in the queue discipline, since I only apply one label. (correct me if I am wrong)

My problem is creating a sequence and not a priority. So, when my sequence based on the cluster label is fx. 1-3-2, it entails that first product 1 must go through, then product 3 and then product 2. When these 3 products have gone through the queue, the sequence starts over with product 1. Though if a product 1 enters the queue in the middle of the sequence, it does not get a higher priority than product 3 or 2, if there already exist a product 1. So the queue should be arranged 1-3-2-1-3-2..Further if not all the products in the sequence is located in the queue, the product should be skipped and the sequence should continue.

It might very well be that I can use some of the code from the other problem, though I still have an issues with figuring out how exactly to create the sequence and then getting the sequence to restart when completed. I hope you can help me further with this?

Best regards
Line
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Production Sequencing

Post by HarryBunnik »

Ha Line,

That is indeed a different problem. I'm only not entirely sure I understand it.

This sound as if you could use an Arrival List to create the products and their sequence and after it a Queue with a FIFO as queue discipline. And this, I think, is a bit too simple, so I guess I'm missing something?

So do you have 3 production lines arriving at the Queue and then the Queue has to allow the object in the correct sequence? Because that would be more the Input Strategy that needs tweaking then.

Can you give me a small example model so I can understand it a bit better?

Regards,

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

Re: Production Sequencing

Post by liyp93 »

Hey Harry

I have tried to create a simpler model which represents the situation.
The system is a flexible manufacturing system, so I have various products with different process times arriving at a single queue (out-of-system queue). This queue is connected to the in-system-queue. There are two queues in a row because in the real case the products can re-enter the in-system-queue again after having gone through the server.

To make it simple let’s say there are three kinds of products 1,2,3, and let’s say the sequence I want is also 1-2-3. So, In the simple model, I have created three sources to represent this, but in my full model this is managed by one source atom. if the queue consists of three of each product, the products must go through the system as 1-2-3-1-2-3-1-2-3.

The system is locked so that the out-of-system-queue only can send 5 products into the production system (for each product that enters the sink, one more product can be sent into the system from the queue).

Since each product have different process times, the size of the out-of-system-queue can vary from 0 products to 100 products in queue.

In the example product 1 is generated much more than the other two, due to the tact-time. So, for example if the out-of-system-queue consists of 5 number 1 products (there has not arrived any 2 or 3), and these are still in queue because there are already 5 products in the system. In this case the products will go into the in-system-queue in the order 1-1-1-1-1. Though if there arrives a product 2 and 3 while these 5 products are still in out-of-system-queue, I need the order of the products to be 1-2-3-1-1-1-1.

So, when there arrives a product into the out-of-system-queue it must be inserted in the queue according to the predefined sequence 1-2-3.

I hope this explains the situation a little bit more.

Best regards
Line
Attachments
simple.mod
(30.13 KiB) Downloaded 201 times
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Production Sequencing

Post by HarryBunnik »

Ha Line,

When I read this, it still looks to me like a queue strategy problem. But a more complex one I found out... ;-)

I created some code and I think it is doing what you want it to do. I placed it all in a function, so I can place comments with it (these unfortunately disappear in a SmartEdit field, which the InputStrategy field in the GUI is.)

And I created a table in which I can change the sequence. This is currently working, as long as each product only appears once in each sequence. If that is needed, you'll have to loop differently over the sequence table, not using TableFindValue (which returns the first found), but a smarted search. But that I leave for now. ;-)
simple_v02.mod
(52.73 KiB) Downloaded 236 times
I hope it helps you further.

Regards,

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

Re: Production Sequencing

Post by liyp93 »

Hey Harry

I inserted the code and adjusted it to my full model, and it works like a charm. So thanks a lot :)

Though I would like for it to be possible for a product to appear more than once in a sequence, since I am trying to test which sequence of products would result in the best throughput. I don’t quite know how to create a smarted search as you are talking about, so is this something you can help with? :)

Best regards
Line
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Production Sequencing

Post by HarryBunnik »

Ha Line,

I'm a bit short on time, so I can only tell you what I had in mind. I think that you have to expand the table containing the sequence with another column. In this column you keep track where in the sequence you currently are (all are 0, except for the lost product type that exited). Then, instead of using TabelFindValue which only returns the first found value of a specific type, you have to loop over the table for finding the last exited product type. This is then the starting point for placing the newly entering product. I think the rest of the code remains relatively the same.

And every time a product leaves the Queue, you have to update the new column in the sequence table.

And make sure that you reset the complete new column to 0 when you reset the model (you can do this using an initialize atom). Otherwise it may start where it stopped the last time. I guess you have to set the last row in the sequence as a fictional last exited product type, so that the first product will be starting on row 1.

I hope this helps you a bit further, otherwise I can look later in the week how to write this into the code, but I didn't want you to wait for that.

Regards,

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

Re: Production Sequencing

Post by liyp93 »

Hey Harry

Thanks for the help. I really appreciate it.

Best regards
Line
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Production Sequencing

Post by HarryBunnik »

Ha Line,

I couldn't resist and found some time to expand the old model, like I described yesterday. I think it is now doing what you want.

- An extra function on the "Function Editor" that searches for the next position in the sequence.
- An Initialize atom to reset some labels and the table at the start if each run.
- Newer products are placed at the end of the in the queue. So older products will leave the queue, before younger products of the same type.
simple_v03.mod
(57.88 KiB) Downloaded 247 times
I hope it helps you further!

Regards,

Harry
Post Reply