question

Tony Nikolov avatar image
2 Likes"
Tony Nikolov asked Adrian Haws answered

Operator Task Sequences

So I have a fairly large simulation that involves several different sets of operators operating a set of machines. Items arrive into the system in a batch Friday at 12 AM and are then sorted into various queues automatically before a set of operators (there are 3 shifts of operators) grabs those items and places them on one of the Circle Breakup Machines, which then splits up the item according to a label value and places all of the generated items automatically into its respective Placeholder Queue (all of this is done instantaneously). An operator should then take the item and put it onto the processor and start the set up. Once set up is completed, the processor will process the item on its own. The worker then goes to grab another item from its respective queue to start this process at the next available Circle Breakup Machine. The problem I am having is getting a worker to do all of these steps chronologically without being interrupted. The operator flow I want is: Pick up item from Queue -> Send to Circle Break Up -> Pick up from Placeholder Queue -> Send to Processor -> Set up Processor -> DONE -> Pick up item from Queue -> and so on... The way that it is working right now is that after taking an item to the Placeholder Queue, the operator goes back to the main queue and picks up a new item to place onto the next Circle Breakup machine before fully completing the task of the previous item flow. I've attached my simulation file for your consideration. Thanks.

FlexSim 16.1.0
operatorsdispatcherssequences
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Brandon Peterson avatar image
4 Likes"
Brandon Peterson answered

Tony,

Here is an example model that uses a custom task sequence to do what you want. I created a new sample so that it would make it easier to find the changes that I made. There are two methods to choose from.

In the first method (Top Objects):

To do what you wanted I modified the Use Transport trigger on the queue and the Pick Operator trigger on the processor.

In the Use Transport trigger I selected the "Task Sequence Example 1" and then added Delay, StopRequestFinish, and Utilize tasks. The delay task has a time of zero and is there to create a small break in the code to allow the flowitem to fully enter the processor before the operator moved on to the next task (This may not be needed but I like to be safe). The StopRequestFinish task informs the processor that the operator has arrived and is ready to do the setup. The Utilize task sets the operator's state to Utilized until it is released by the processor.

In the Pick Operator trigger I selected the "Task Sequence Example" and then deleted the code that creates the task sequence (22-31). This task sequence is not needed because it was already handled by the queue.

In the second method (Bottom Objects):

To do what you wanted I modified the Use Transport trigger on the queue and set the priority on the processor to a value higher than the queue.

In the Use Transport trigger I selected the "Task Sequence Example 1" and then added Delay task. The delay task has a time of zero and is there to create a small break in the code to allow the flowitem to fully enter the processor and create the setup Task Sequence before the operator moves on to the next task.

On the processor I increased the priority to 1 and used the default Pick Operator trigger.

Conclusion:

The second method is easier but I wanted to include the first as an alternative example.

***In your model you may need to set a label on the item (in the load or unload trigger of the operator) that references the operator that moved the flowitem. Then on the processor you will need to use this reference instead of the center port object as the operator to use for setup.

I hope this helps,

Brandon


5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Adrian Haws avatar image
1 Like"
Adrian Haws answered

@Tony Nikolov @erik.gerritse

As @Matthew Gillespie suggested, using Process Flow is a good way to go for these task sequences, as it makes it easy to modify the logic in a highly visual way. There is a lot of versatility as to how you set that up, but I've created a sample model of one way to handle the task sequences you've described.

In this example there are two sets of machines (blue and green) that handle separate item types. One group of operators can work on the blue set of machines while the other group of operators can work on both sets. In the Process Flow I simply treated the operators and the machines as "resources" that can be "acquired" or "released" at different times as needed. Here's how it looks:

These concepts can be transferred to a larger model. The user manual can be helpful in better understanding how to set up a Process Flow within your model. Feel free to ask questions if anything is unclear. The sample model is attached below.


5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

erik.g avatar image
0 Likes"
erik.g answered erik.g commented

Hi Tony, I can't get your model to run on my PC. However, from reading your description and looking at the model I would guess the following:

When operators are assigned to pick up an item, they receive a Task Sequence (TS) from one of the dispatchers. By default, these Task Sequences contain a 'break' task. this means the current TS can be interrupted at that point. Removing the break task might fix your problem. I have attached a very crude demo model to show you what I mean - tasksequence-example.fsm .

Below is a screenshot of this model and another screenshot containing the TS that is created when you use the standard 'use transporter' option in the queue. Note the 'break' task at position 3.


ts-2.png (33.6 KiB)
ts-1.png (9.1 KiB)
· 5
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Tony Nikolov avatar image Tony Nikolov commented ·

Hi Erik,

Were you unable to open the program at all or just unable to get the items to appear in the system? If its the former, it might be because of the version of Flexsim I'm running (I have the latest update) If it's the latter then you need to wait until 12 AM on Friday morning for flowitems to appear.

0 Likes 0 ·
erik.g avatar image erik.g Tony Nikolov commented ·

What @Matthew Gillespie says is probably true - I've not yet mastered the Process Flow module so I wouldn't know.

If you want to do it by hand the Task Sequence code can be found by clicking the scroll icon next to the 'Use Transport' checkbox and select 'Task sequence example 1' for an example which you can modify to suit your needs. Note that this is only useful if you have some working knowledge of FlexScript - otherwise I'd suggest learning to use Process Flow instead.

1 Like 1 ·
ts-4.png (179.8 KiB)
erik.g avatar image erik.g Tony Nikolov commented ·

Hi Tony, you were right, I had to wait until Friday.

As you can see from the screenshot above, the TS contains only load, travel and unload tasks. After these have been completed, the Operator will become available again and try to complete other TSes sent by connected dispatcher(s). To prevent this, the operator should receive a task sequence containing all the tasks you want it to complete.

0 Likes 0 ·
ts-3.png (10.6 KiB)
Tony Nikolov avatar image Tony Nikolov erik.g commented ·

Erik,

Where would I create these task sequences? I've been doing them in each individual object that the item goes through but it seems that you can do a centralized task sequence for each operator. Where do I find that?

0 Likes 0 ·
Show more comments