Jump to content

Worker to "empty" queue before moving to next server.


jopendle
 Share

Recommended Posts

I've hunted through the forums and online and cannot seem to find a fix for my simple application. 

I have 1 worker operating multiple work centers (Simio server). He should finish all work at one "server" before moving on to the next server. Otherwise, his utilization goes down substantially due to him bouncing back and forth between the servers and walking all day.
I.e. 
Server A: Parts in Que: 1,2,3,4,5,6 
Server B: Parts in Que 1,2,3,4,5,6 

Worker is doing A1, B1, A2, B2, A3, B3, A4, B4, A5, B5, A6, B6 with a walking time inbetween each part.
I want worker to do A1, A2, A3, A4, A5, A6, walk, B1, B2, B3, B4, B5, B6

I would prefer not to use constraint logic due to the complexity. I've read that somehow the solution seems to lie in setting the Secondary Resources "Repeat Group" status to false and attempting to use the "keep reservation" function, however I have not had any luck. I set the "keep reservation if" function to "ServerA.InputBuffer.Contents.NumberWaiting > 0" which in theory should fix the problem, however my worker continues running back and forth.

Any help would be appreciated.

Thanks,
Jon

Link to comment
Share on other sites

  • 2 years later...

This helped in some applications, especially use cases where multiple servers are in series and I need the operator to focus on the start or end of the process. Thanks!

However, when servers are in parallel the operator tends to run back and forth between them. If I were to assign a higher priority to one line, the worker would focus on that line only. i.e. if he empties the que of parts in the input buffer of Server 1, he goes down to work on only 1 part at Server2 before going right back to Server1. Rather, I'd like for the operator to clear all parts in the que at Server1 before walking down to Server2 and vice-versa.

I've tried doing this through process logic however I get stuck trying to evaluate which server the worker is supporting.

Edited by jopendle
Link to comment
Share on other sites

Hi,

One way to do this is put a Dynamic Selection Rule: Smallest Value First on the Worker, with the value expression of: Candidate.Entity.DirectDistanceTo.Object(Worker). This could work.

Edited by ViniciusF
Link to comment
Share on other sites

×
×
  • Create New...