Jump to content

Worker Actions and Transfer Errors


LizMB

Recommended Posts

I'm having some trouble with worker actions and transfer steps. Below is a picture of my current model. I have also attached the simio file itself. 

ModelQuestionV.2.png.13fa1af4d394e2501e79f5bd7d69f9d0.png

 

What I want to happen:

Worker1 carries both entities to their respective nodes and leaves them in their respective stations after worker(A/B) "checks them" (I used a delay to simulate this check) and then Worker1 moves on. 

The worker(A/B) only picks up the entity if needed. So if the worker was with another entity in process (like Srv(A/B)), he would go check the new entity so that worker1 can move on, but would return to finish out the first entity to the end. 

 

My problem:

Worker1 doesn't wait for the other workers to check and move on, just puts in station and moves on. 

I can suspend and resume the processes and get the worker to the (A/B)PICK nodes, but the worker picks the new entity up and starts that. The entity they were working on before just vanishes or something. Then everything becomes a standstill. 

ModelQuestionV.3.png.58442c486ed74b4bd5fa7791e1547ffa.png

 

 

Lastly, I run into this transfer error so much, and can never figure out exactly what causes it. 

HelpSimio.png.2cb0bdcfa2e077e1660f0939739fdec7.png

 

ModelForQuestionCOPY2.spfx

Link to comment
Share on other sites

Hi LizMB,

I have a few specific recommendations for you below, but generally I suggest looking into the SimBit models provided on Simio's Support Ribbon. A PDF opens with each model that contains a detailed description, so they are a great tool for learning specific approaches and techniques. A few that I believe are related to your particular problem are "Moveable Operator", "Interruptible Operator","Keeping Worker Reserved", and "Entity Follows Sequence".

Worker1 carries both entities to their respective nodes and leaves them in their respective stations after worker(A/B) "checks them" (I used a delay to simulate this check) and then Worker1 moves on. 

  • For this objective, I suggest setting up your drop off stations A and B as a Servers. Use the Processing Time property to represent the "check" while seizing both workers needed (see the Operator related SimBit for more information). 
  • Make sure all entities are assigned a sequence, so Worker 1 knows where to drop them off.

The worker(A/B) only picks up the entity if needed. So if the worker was with another entity in process (like Srv(A/B)), he would go check the new entity so that worker1 can move on, but would return to finish out the first entity to the end. 

  • Assign entities that enter the pick up stations a higher priority, and interrupt the Workers at SrvA and Srvb if a pick up task arrives (See Interruptible Operator for more information).
  • Ensure that the Workers have the needed paths to travel to all of the destinations required in all directions. Currently, WorkerA and WorkerB cannot travel to the Outputs of the Servers.

Other suggestions:

  • Look into using a Timer Element that could trigger the entity creations at SrcA and SrcB. That should remove the need for Source1 and Sink1.
  • If the Worker's travel doesn't need to be defined by a path, I suggest setting the Initial Travel Mode to 'Free Space Only'.

The error message you are receiving is related to the Add-on Processes on the A and B nodes. Whenever Worker 1 enters either of those nodes the process is triggered and tries to complete the process with relation to the Worker. Restructuring the model with Servers in this area should help you get around this issue.

Thanks,

Ryan

 

Link to comment
Share on other sites

Hi LizMB,

 

Without evaluating your model in detail, that error is due to a transfer not being completed (transfer request while entity is still being transferred previously). It is typically when you make use of a transfer step and either not end the transfer (using and "End Transfer" step), before transferring it again or when Simio attempts to transfer the entity (due to inherent worker/node/vehicle logic) before the end transfer is completed. It could also be if you interrupt something before a transfer action has completed. What also happens is when you have processes executing e.g. On-Entered and the same entity executes one or more such processes at the same time, resulting in a inherent transfer request before the previous has completed.

It could be a matter of timing or the sequence of events, or a problem in your logic. When you are using a transfer step in your logic it is useful to have a process with an End Transfer step that is either subscribed to certain events or executed on an event triggered e.g. StationName.Entered. If you were to interrupt a process/action, you can either fire the trigger event or just use logic to test whether the entity has transferred. With an add-on process it is best to understand the sequence of events happening in the Simio logic and ensure certain logic gets completed first or that you don't have parallel requests at the same time.

As you can see there are multiple ways to address something like this and your approach depends on your logic and the system being modeled.

Good Luck.

H

Link to comment
Share on other sites

×
×
  • Create New...