jopendle Posted June 25, 2021 Share Posted June 25, 2021 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 More sharing options...
Unmesh.Chandak Posted June 29, 2021 Share Posted June 29, 2021 Hi Jon, let me know if this helps. I added priorities to entities and changed the dynamic selection. Unmesh Model_worker.spfx Link to comment Share on other sites More sharing options...
jopendle Posted July 20, 2023 Author Share Posted July 20, 2023 (edited) 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 July 20, 2023 by jopendle Link to comment Share on other sites More sharing options...
jopendle Posted July 20, 2023 Author Share Posted July 20, 2023 Here's an example file. WorkerBehaviorTest.spfx Link to comment Share on other sites More sharing options...
ViniciusF Posted July 21, 2023 Share Posted July 21, 2023 (edited) 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 July 21, 2023 by ViniciusF Link to comment Share on other sites More sharing options...
jopendle Posted July 26, 2023 Author Share Posted July 26, 2023 That did it! Thank you so much, I have many applications for that logic and have been scratching my head for a while! Link to comment Share on other sites More sharing options...
Recommended Posts