not to count setup time if the item type is the same

not to count setup time if the item type is the same

ahmed_mohamed_l
Not applicable
10 Views
2 Replies
Message 1 of 3

not to count setup time if the item type is the same

ahmed_mohamed_l
Not applicable

[ FlexSim 22.2.1 ]

i have a model of a job shop with 5 machines and 3 products, i want to add setup time for each machine per product so that if the next job on the same machine has the same type there shouldn't be a setup time.

and if possible to set a parameter that allow change gears only after k jobs of the same type.

1667961467881.png

jjss flow process--.fsm

0 Likes
Accepted solutions (1)
11 Views
2 Replies
Replies (2)
Message 2 of 3

moehlmann_fe
Observer
Observer
Accepted solution

The option "If Item Label Value Changes" for the setup time is made for this.

1667985687592.png

The minimum batch size of same-type items requires a bit of custom code though. To restrict which type is processed, youi can use the "Pull" behaviour. A label on the processor that contains the allowed type can be used in the "Pull Requirement" to only pull items of the matching type. At the start of the model and inbetween changeovers, all types should be allowed, so the code is set up to allow all types if the label's value is 0.

1667985877300.png

1667985900839.png

/**Custom Code*/
Object current = ownerobject(c);
Object item = param(1);
int port =  param(2);

// If no type is specified, pull anything
if(current.PullType == 0)
{
    return 1;
}

// Otherwise, only pull if type matches
return current.PullType == item.Type;


The second label "PullCount" is used to determine at what point the "PullType" should be reset. This is done in the On Entry trigger. (Note that, because there are two drilling machines, "current.name" can't be used for them, since their names are numbered. The row identifier has to be specified as "Drilling". The explicit naming of the row can of course also be done for the other processors, but using their own name makes copying the code faster.)

// Set type and reset count labels when a new type is pulled
if(item.Type != current.PullType)
{
    current.PullType = item.Type;
    current.PullCount = 0;
}

// Increment count
current.PullCount += 1;

// Check against table value
if(current.PullCount >= Table("change gear")[current.name][current.PullType])
{
    // Reset type label
    current.PullType = 0;
}

I noticed that the drilling time for type3 is set to 0. Is this correct?

jjss-flow-process-fm.fsm

0 Likes
Message 3 of 3

Jeanette_Fullmer
Community Manager
Community Manager

Hi @Ahmed_mohamed L, was Felix Möhlmann'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 unaccept and comment back to reopen your question.

0 Likes