question

Antonio R8 avatar image
0 Likes"
Antonio R8 asked Antonio R8 answered

How to constrain a Processor to start and finish within the shift

I have 3 processors working 7h per day. However one of them can only start the process if it has enough time to finish its process within the same shift.

Is there any way to set up a constraint so if there is not enough time it will start on the following day?

Choose One
shift
· 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.

Aaron C avatar image
1 Like"
Aaron C answered Benjamin W2 commented

pretimingjobs.fsm
This should give you what you're looking for. I had to make a lot of edits to get it to happen. One of the biggest edits is that I assigned all the job's processing times up front on the jobs themselves. I also added three pseudo-physical queues allow the handling of logic for allowing or disallowing jobs based on remaining time.

Key objects to look at:

Additions to the Process Flow, Source OnExit trigger, Processor's process times, and the Decision Queue OnEntry trigger.

Hopefully this helps!


pretimingjobs.fsm (216.3 KiB)
· 11
5 |100000

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

Antonio R8 avatar image
0 Likes"
Antonio R8 answered

That's perfect. I can open it now. Thank you so much!!!!!

5 |100000

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

Benjamin W2 avatar image
0 Likes"
Benjamin W2 answered Benjamin W2 commented

Hi @Antonio R8,

I apologize that this took so long, but I think I finally figured out how to get the behavior you are looking for. Since there were quite a few changes, I will only give you a high level overview. Let me know if you have any questions.

  1. I switched the logic for calculating if there was enough time to process flow instead of the "Enough time to concrete?" Queue. This way I could make sure to push the items to their final destination before evaluating the next item.
  2. I added a Queue called "ReadyToProcess" in front of the processor. This way, I could move items using code and the proper processor events would fire on the "Concreting Crane".
  3. I added a block of process flow that analyzed if there was enough time in the shift to process an item in the event of a breakdown. If there isn't enough time, the item gets moved to the "No" Queue for reprocessing.
  4. I added an "OnProcessFinish" trigger to the Concreting crane that would re-evaluate and check if there is enough time for the items in the "Yes" queue. If there isn't, then it moves them all to the "No" queue.

Here is the model. Let me know if you have any questions!

concretedecisiontree.fsm

· 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.