Manufacturing Process Sequence Modeling

279 views
Skip to first unread message

chooth.p...@gmail.com

unread,
Sep 21, 2016, 4:56:30 AM9/21/16
to Jaamsim Users Discussion Group
Hello,

I am new to Jaamsim. I couldn't find a discussion topic similar to this so I post it here.

To estimate the production lead time, I need to model my factory production.

1. Suppose my production consist of 5 departments A,B,C,D,E. Each department has 2 stations (e.g. A1, A2, B1, B2 and so on) with the different processing time (1 and 2 minutes repectively for each station), input and output capacity (1 and 2 respectively for each station).

2. I need to make a product with component comp1, comp2, comp3, and comp4

3. comp1 uses department sequence A, B, C, E (department D skipped)

4. comp2 uses department sequence A, B, D, C, E (department C and D reversed)

5. comp3 uses department sequence A, B, C, B, D, E (comp3 use department B twice, think it as repeating step B, not to confused with doubling the resource in department B)

6. comp4 uses department sequence A, B, C, D, E, however due to quality issue detected at department D (estimate 10% rework), rework is needed from department B onward (ie sequence would be A, B, C, D, B, C, D, E)

7. Finally all these component are assembled to the finished product.

Is it possible to model this with Jaamsim?

Thanks
ChooTH

Harry King

unread,
Sep 21, 2016, 1:46:21 PM9/21/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com
ChooTH,

One way to model your system would be to make each department a Resource with two units (one for each station). The processing of each component would be modelled as a sequence of Seize and Release objects. The finished components would then be combined using an Assemble object.

Your description seems to say that the two stations within each department take different times to perform the same task, e.g. A1 takes 1 minute while A2 takes 2 minutes. Am I interpreting this correctly? It seems a bit strange to me. If this behaviour is correct, then the two stations are not interchangeable and therefore you can't model them with a Resource.

Harry

chooth.p...@gmail.com

unread,
Sep 21, 2016, 8:47:13 PM9/21/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com
Dear Harry,

Yes, this is exactly what I mean. In my case, there are resources with same function that I group them into one department e.g. different CNC machine which do the same drilling function, but their cycle times vary. So do I model them separately each?

How should I model the different process sequence of each entity using Seize and Release? Can you provide the modeling instruction please?

Thanks
ChooTH

Mark

unread,
Sep 21, 2016, 10:28:11 PM9/21/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com
You can still model it as a resource, you just need a little bit more. Think of the resource as representing a space on one of the two machines. If you put a seize prior to the station and a release after the station, and the resource capacity is set to 2, then you guarantee that the station capacity isn't exceeded. That's the first part of the problem. The second part of the problem is deciding which machine to send it to. I didn't see you mention any preference, but presumably you'd prefer to send it to the machine that takes the shorter amount of time if it's available. You should be able to do this with boolean logic, just write your expression to send to the faster machine if the number of items it is currently processing is 0, and the slower machine otherwise. Substitute more advanced logic as you see fit. This assumes that no simulated time passes between the seize of the resource and the processing, and similarly between the end of processing and the release. Your station queue goes before the seize object.

The problem of routing things between stations has a pattern in some simulation packages that cuts down on duplication. Once the Jaamsim API is fully extended with array attributes in expressions, a similar pattern will be possible. All you really do is put similar objects in arrays and then look them all up by the index of the station which is stored on the entity as an attribute and gets updated by a route object. It just makes the interface a lot cleaner. If you have 50 stations, it prevents the need to model them as 50 individual sections. Instead, you model one section and reference the correct objects (queues, resources, seizes, releases, distributions) by index of the station. This takes away some of the pain of having to manually modify all 50 objects.

It's late when I answered this, so let me know if I misunderstood your modelling request.
Message has been deleted

Choo Hong

unread,
Sep 22, 2016, 4:20:29 AM9/22/16
to Jaamsim Users Discussion Group
Hi Mark,

I absolutely agree that an array feature will help to model my case. I would see that it can be use with EntityGenerator to supply the component in sequence order (i.e. comp1,comp2,comp3,comp4 in my case) and with SimEntity to determine the processing sequence order. Then I will make a Next_Station attribute in the SimEntity to work together with the Branch object to determine what is the next station to go. After the processing is done in one of the department, the Assign object will be used to assign the Next_Station attribute according to the array sequence.

Duplication of resource doesn't take into account that resource is scarce. You see, I only have so much of resource to process so much of component within limited time period. Using duplication in my model would be equivalent to buying more resource in the real world. It defeat my objective to estimate the total production time.

For the second problem you mentioned about boolean logic, I use '[EntityConveyor1].NumberInProgress != 0 ? 1 : 2' as the Choice for Branch object to deliver to the faster station when as soon as it is available, but the result is the entity stuck in the queue and not behave as expected, did I do wrong? (attached cfg)

Thanks
ChooTH
MultipleStationDepartment.cfg

chooth.p...@gmail.com

unread,
Sep 22, 2016, 4:23:23 AM9/22/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com
Hi Mark,

I absolutely agree that an array feature will help to model my case. I would see that it can be use with EntityGenerator to supply the component in sequence order (i.e. comp1,comp2,comp3,comp4 in my case) and with SimEntity to determine the processing sequence order. Then I will make a Next_Station attribute in the SimEntity to work together with the Branch object to determine what is the next station to go. After the processing is done in one of the department, the Assign object will be used to assign the Next_Station attribute according to the array sequence.

Duplication of resource doesn't take into account that resource is scarce. You see, I only have so much of resource to process so much of component within limited time period. Using duplication in my model would be equivalent to buying more resource in the real world. It defeat my objective to estimate the total production time.

For the second problem you mentioned about boolean logic, I use '[EntityConveyor1].NumberInProgress != 0 ? 1 : 2' as the Choice for Branch object to deliver to the faster station when as soon as it is available, but the result is the entity stuck in the queue and not behave as expected, did I do wrong? (attached cfg sent to your personal email)

Thanks
ChooTH

Mark

unread,
Sep 22, 2016, 10:33:12 AM9/22/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com
You need to put the seize object before the branch object (you only need one seize and corresponding queue). I have updated your model to work correctly, but I'm not currently in a place where I can attach it. Have your branch object point directly to your conveyors.

Harry King

unread,
Sep 22, 2016, 12:57:40 PM9/22/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com, slash...@gmail.com
Mark,

Thank you for fielding this question. You know more about modelling manufacturing systems that I do.

Regarding array-valued attributes, this feature will be available sometime in October. We are working on it now.

Harry

Mark

unread,
Sep 22, 2016, 10:41:03 PM9/22/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com
Here is the updated model.
MultipleStationDepartment.cfg

chooth.p...@gmail.com

unread,
Sep 22, 2016, 11:15:07 PM9/22/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com, slash...@gmail.com
On Friday, September 23, 2016 at 10:41:03 AM UTC+8, Mark wrote:
> Here is the updated model.

Hi Mark,

Its working great! Thanks for sharing.

Regards
ChooTH

chooth.p...@gmail.com

unread,
Sep 22, 2016, 11:16:57 PM9/22/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com, slash...@gmail.com
Hi Harry,

I am excited about this new array feature.

Regards
ChooTH

Harry King

unread,
Sep 23, 2016, 9:51:27 PM9/23/16
to Jaamsim Users Discussion Group, chooth.p...@gmail.com, slash...@gmail.com
Mark,

That is a very clever way to handle the problem of unequal resource units. Thank you for sharing it. I'm sure I'll use it myself in a future project.

One minor improvement I can suggest is to use a single Release object instead of having two separate ones.

Harry
Reply all
Reply to author
Forward
0 new messages