Phase Logic Module Restart Location

Hi all!

Is it possible to define a return point (other than the beginning or where last active via "restart type") when a PLM has been placed into a "hold" condition then "restarted"? Reviewing Book Online it does not appear to be possible and the work arounds that I can think of would be a bit "messy".

Background:

I am designing a phase logic module that works through a lengthy process (due to hold times, etc.). At any point in time, an interlock may activate due to a high temperature excursion. During the first three quarters of the process, if the interlock activates the process will be put into "hold" and restart is set to allow the PLM to return to last active point. During the last fourth of the process, if the temperature interlock activates, it has been requested that the process return to the start of the forth portion of steps, not necessarily where last active.

Thanks!

Jenny

7 Replies

  • We use Tasking Structure such that if we want to move forward or backwards we can just set a Task Pointer parameter in the Hold logic and then the logic uses this to branch and return to where it needs to go on Restart. This will always restart from beginning and then also has a step that will execute regardless of Task to do modes, setup, etc.

    Here is a Simple view to help show this

  • In reply to Matt Stoner:

    Thank you! I will ponder your solution. We have quite a few steps that I could see our Operators wanting to pause so it could create quite a few task pointers.
  • In reply to Jenny La Bounty:

    I have my RESTART_LOGIC deactivate the last step or steps running in RUN_LOGIC, then activate the step where I want to go when RUN_LOGIC restarts. I have these in separate steps.
    '^/RUN_LOGIC/S100/ACTIVE.CV' := FALSE
    '^/RUN_LOGIC/S50/ACTIVE.CV' := TRUE
    I wouldn't be surprised if the Emerson folks say I'm not doing it right, but that's what I do. It has always worked.
  • We do something similar to what Matt suggests with our sequences. The only issue with it is that it is not scalable. Once your sequence gets to a certain size you have those restart branches going everywhere and it's quite hard to follow and manage. Product improvement suggestion for Emerson: a function to allow you to start a phase at an arbitrary step instead of at the beginning...
  • In reply to chrisslattery:

    We have another option that we have used which has a "Pass Thru" step and all the tasks loop back to that helps clean this up but yes if you have large sequence with many restart branches it does become big and complex.

    Mark suggested a method to do what you are asking, our group didn't like this method as people could change the logic around and steps remain the same but then are doing different things and forget to go look/update at the restart logic. With this method it's all in front of the configuration personnel while they are making the changes.

  • In reply to Matt Stoner:

    Thanks for sharing! I ended up adding branches to circle back similar to what you shared. I added logic to the hold logic so that it places the system in a defined condition, etc.
  • Use of task pointer is what i've seen most times.

    You can explore if that lengthy process can be implemented in an operation instead of a single phase.
    This may allow to define beter re-entry points after failure.
    In your case, pehaps the first three quaters can be excuted in a phase step and the last quanter in another phase step. Sometimes this can be just lunching the same phase two times in the operation.