Hi DeltaV Experts
I am operating phases through DeltaV Batch. I have a condition(Rupture Disc) where I have to abort the ×Phase through logic. For this requirement I added a condition block to the failure monitor composite & a parameter Fl_01 to monitor this condition from a particular step in the run phase.
I wrote in calc block to move abort into ×Xcommand parameter. But the phase would not move to ×Abort Phase as I found that when operating phases through ×Batch executive, the owner of the phase would be DeltaV Batch & Xcommand can be written only when the ×Owner is external.
Can any one guide me on how to move to aborting phase from the running phase through logic. I am using PCSD here.
Please ignore the attachment . I attached as it was not allowing me to post without attachment
Regards,
Manzoor
When the executive is the owner you must use Request codes to tell the batch exec what you want.
From the following article, you can issue a 8100 command thorugh REQUEST, but be warned that this with abort the entire batch, not just the phase.
www3.emersonprocess.com/.../r_phaserequestcodes.html
I would not advise this however. When we need to implement such logic, we drive the batch in to a 'dead-end' phase where there is no regular execution option but to abort manually. This way, an active step change can be used by automation support to decide whether aborting the batch is legitimate, but operations cannot simply proceed with the batch.
If you want to abort just one phase in a running batch, I would evaluate why.
In reply to Youssef.El-Bahtimy:
Thanks youssef for your response.
I went trough the request codes in the books online. What I understand is if I abort using the request codes it will abort all the other phases which were running as part of this batch. But at this moment I am not using operations, unit procedure & procedures.
The reason for aborting a particular phase is that if there is a failure of any kind which is threatening the equipment itself or the personnel, then it would require to stop running this particular phase.
Looking forward to your suggestion.
We used logic similar to this many years back. That requirement was a DO concentration adjustment phase that ran until a main phase indicated it was to be stopped. What we found during testing was that the operation transition could be coded with PHASEXXX/BSTATUS = Complete or COND_YYY= True.
When COND_YYY is true the phase automatically runs the STOP logic and the operation moves on. Other phases are not affected in this way.
This is STOP logic not ABORT logic but it may suit your requirements.
Not sure if current version behavior is the same (I would suspect it is) but you should be able to test easily.
Steve Linehan
In reply to gamella:
Gamella
No there was no phase failure to the best of by recollection. It just runs STOP logic and the operation moves on. This was 10+ years ago so you would need to test before relying on this answer.
In reply to Steve Linehan:
@Steve. This is still how the (new) batch engine works. We actively use STOP logic in this way in the plant were I'm working. There are only 2 ways for a phase (or operation) to go to STOP. Either by the batch server because of an transition condition OR by a manual command from an operator. We disabled the latter option because operators would accidentally press STOP instead of ABORT.
In reply to Robert Rijnders:
@Manzoor. If I understand correctly, you run separate phases from the manual phase control screen in batch operate?
Why not run them in 'external' mode with the command faceplate in regular deltav operate? (When using phase classes, first load them on the unit-module faceplate.) Only reasons to run them in 'batch server' mode would be to use operator calls or batch reporting parameters.
For some customers without DV Batch, we've build batch layers using PLM's instead. In the code we always used XCMD to control the lower layers.
If you insist using the batch server mode, you could try using the BCOMMAND parameter in the CALC-block. Writing value 10 will abort the phase. Not sure at the moment how the batch server handles this kind of 'manual' control. The phase will probably fail, but that's no issue when running abort-logic.
Alternatively like Steve suggests, you could create a simple operation running just 1 phase. And in the transition following it, monitor the condition you're currently using in the CALC-block.
I would be careful about writing to the BCOMMAND parameter. See the following warning in the Common phase logic parameters Books on Line article::
http://www3.emersonprocess.com/systems/support/bol1231/r_common_phase_logic_params.html
Caution Do not write to this parameter directly as it can cause the Batch Executive to lose control of the phase.
Agreed with Youssef. Be careful using BCMD. Use XCMD whenever possible. It's called eXternal for a reason. BCOMMAND is a parameter customized to be used by the batch system, XCMD on steroids.
I did a quick test running a phase with manual phase control and aborting by writiing 10 to BCMD and it does work fine. Batch server didn't mind the remote command and keeps track of the phase state.
Thanks for your replies @Youssef, @Robert, @Steve, @Gamella
@ Steve. I did not understand the solution proposed by you. At the moment we are not using operations. I would request a snapshot if possible from you.
@Robert you guessed it right, We are just testing phases right now, where we are testing each phase individually from the BOI. I did implement & test writing in the Bcommand parameter, It did abort that particular phase. But I would be worried in future with this method. In future we may be developing operations & while operating through them , if I abort 1 phase part of a batch in operations, then how the other phases of the operations should behave, what would be the impact on the batch & process. I was thinking of the scenario where suppose I have 3 Phases in parallel transition running together a batch & I aborted one of them, then what would be the impact on the batch or the process. I was thinking that before aborting you may need to take into account what your other phases would do in such a situation where you abort a phase using the Bcommand parameter.
@ youssef . I did see that yesterday & I will highly consider that before doing my configurations.
In reply to Manzoor:
@Manzoor. Thanks for the explanation. The picture became much clearer now. Indeed, you don't want to abort 1 phase in a running operation. Using the standard batch logic I don't even see how this can be done properly. What Steve suggests is to use stop-logic instead of abort-logic and this IS a good and proper solution for what you want to do. (We use stop-logic a lot.)
And like I suggested previously, you can build a simple operation with 1 phase to test the stop-logic. In the transition after the phase use a condition like "Rupture disk = broken", don't use "PHASE/BSTATUS = complete". In this way, when the transition becomes TRUE, the batch server issues a stop command to that phase only. In future operations all other phases running in parallel branches will keep running. Read BOL on this topic first if it's not clear.