question

John Ceird avatar image
0 Likes"
John Ceird asked John Ceird commented

Model not properly working - operator picking up many boxes instead of one

Hi,

I am working on a simulation for some parts assembly - and I am trying to get to unload the pallets one box at a time per assembly for Queue 11, 12 and 13. Instead, currently, the operator [Operator 4] goes and picks up one box, places it on Combiner 13, then goes back again to pick up more, when the input port for the combiner he puts these boxes in specifies only one per queue.

Due to this, I cannot modify the process or set up times on Combiner 13, as the whole model crashes. And Operator 4 is working 100% of the time without any breaks.

How could the queue trigger code be modified to allow for the operator to take a break, and stop after one box is removed per queue? I have tried to close the output port for the queue, but this has not worked. How can I ensure that a process/set up time can be used for the combiner, without crashing the model?

Any help would be much appreciated, please find attached the FlexSim model.

- John C.

Edit: I've tried increasing the capacity as mentioned @Joerg Vogel , but it has not changed the model.

JC_Flexsim_Operator_issue_2.fsm

FlexSim 24.2.2
combineroperatorpalletassembly lineflexsim24
· 2
5 |100000

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

Joerg Vogel avatar image Joerg Vogel commented ·

Currently an operator is carring a box or a conainer. A container can contain more items, but itself it is still only a single item. You work with standard 3D logic. If you setup an operator to have a higher capacity for transport, you can see situations where an item is carried and an available transport task gets into execution, because there is transport capacity available on this operator. But This is here not the case. You see only the transport of combined items and the operator carries the container item.

Edit:

@John Ceird, I assume the onMessage code has been made by someone else than you. So as long as you do not understand what this code does, and you do not understand the internal mechanisms of dispatching, receiving, preempting and queueing of tasksequences it will not help you to let someone else write a source code. You better start to build an own logic structure that fits better to your current knowledge. And you should try to do it in or by Process Flow.

Perhaps you request support on a level that leads to a progress of your own knowledge.
The current logic structure is a strict sequence of self fulfilling code.

  • On Entry of an item (pallet) in a queue send a message to the queue itself.
  • OnMessage creates and dispatches a Tasksequence to transport an item.
  • last task of this Tasksequence sends a Message to the queue. This message contains a reference to the pallet and value to distinguish which case should be switched to.
  • If there is nothing more to transport on Message there is not any other action to do,

You want more items to be transported. By which mechanism do you want to do it?

  • Operator queues more tasksequences in his Tasksequencequeue treenode.
  • Created Tasksequence consists of more tasks for loading more items.
  • Operator pulls tasksequences of a global list, when he gets available or he has got transport capacity left.

I hope you understand that you need to know how your code works to change it to your needs. Currently the model source code supports with minimal impact only a variant, which loads and unloads more items in a single Tasksequence.
A break within such executed Tasksequence will preempt the operator and will let resume him where his action has been interrupted by a preempting Tasksequence with a higher priority.
He is not involved in any setup so far.

1 Like 1 ·
John Ceird avatar image John Ceird Joerg Vogel commented ·
Hi Joerg,

Thank you for that - and yes, I do not understand the code, and as I much as I have tried, it doesn't make sense to me, but it works, so I left it in. I found myself not having enough time to learn how to code, so I chose to remain ignorant.

I want to correct the model, so I will attempt to either change the code or use a Process Flow.

Thank you for explaining how it works on a basic level, and possible changes I can make; I'll make changes, and ask if I have more questions.

Thank you again

Kind regards,

John

0 Likes 0 ·

0 Answers