PID Action Change

How can I change the PID block in the control options within the control strategy itself. I showed the control options parameter but there has to be a number that will check mark or uncheck the direct action, also I see that you have to put the PID block out of service to do this is that correct?

16 Replies

  • What application do you have where the process would allow this?  And yes, you would have to take the PID block out of service.
     
     
    From: Big_Daddy_O [mailto:bounce-Big_Daddy_O@community.emerson.com]
    Sent: Tuesday, October 23, 2012 1:20 PM
    To: DeltaV@community.emerson.com
    Subject: [EE365 DeltaV Track] PID Action Change
     

    How can I change the PID block in the control options within the control strategy itself. I showed the control options parameter but there has to be a number that will check mark or uncheck the direct action, also I see that you have to put the PID block out of service to do this is that correct?

  • Control Options is actually a 16-bit word where each bit represents one of the options.  To see which options are checked at runtime (and what the integer value of the bitstring is), configure an Internal Read parameter in the module as an Internal Reference (pointed at the PIDs Control Options parameter), and wire it to the input of a BFO block.  You will see the various bits on or off on the output side of the BFO, as well as the integer value that each combination represents.
     
    We have one site where the customer has configured some logic to allow them to switch the controller action on the fly (don’t remember why this was necessary).  They used some ACT blocks with delays to do the following things in order, one at a time:

    1.)    Put the PID block in OOS mode

    2.)    Write the correct integer value for the desired option bitstring to the PID’s Control Options parameter

    3.)    Put the PID block back in MAN mode.

     
    It seemed to work fine.  Hope this helps.
     
    Spartan_Logo_New
     
    Steve Elves | Control Systems Tech.
     
    From: Big_Daddy_O [mailto:bounce-Big_Daddy_O@community.emerson.com]
    Sent: Tuesday, October 23, 2012 12:20 PM
    To: DeltaV@community.emerson.com
    Subject: [EE365 DeltaV Track] PID Action Change
     

    How can I change the PID block in the control options within the control strategy itself. I showed the control options parameter but there has to be a number that will check mark or uncheck the direct action, also I see that you have to put the PID block out of service to do this is that correct?

  • Isn’t Watchit easier to use than creating a module with reference parameters? With Watchit, one can type the parameter path of PID Control options and see the integer value.
     
    Adrian
     
    Sent: Tuesday, October 23, 2012 11:27 PM
    Subject: RE: [EE365 DeltaV Track] PID Action Change
     
    Control Options is actually a 16-bit word where each bit represents one of the options.  To see which options are checked at runtime (and what the integer value of the bitstring is), configure an Internal Read parameter in the module as an Internal Reference (pointed at the PIDs Control Options parameter), and wire it to the input of a BFO block.  You will see the various bits on or off on the output side of the BFO, as well as the integer value that each combination represents.
     
    We have one site where the customer has configured some logic to allow them to switch the controller action on the fly (don’t remember why this was necessary).  They used some ACT blocks with delays to do the following things in order, one at a time:

    1.)    Put the PID block in OOS mode

    2.)    Write the correct integer value for the desired option bitstring to the PID’s Control Options parameter

    3.)    Put the PID block back in MAN mode.

     
    It seemed to work fine.  Hope this helps.
     
    Spartan_Logo_New
     
    Steve Elves | Control Systems Tech.
     
    From: Big_Daddy_O [mailto:bounce-Big_Daddy_O@community.emerson.com]
    Sent: Tuesday, October 23, 2012 12:20 PM
    To: DeltaV@community.emerson.com
    Subject: [EE365 DeltaV Track] PID Action Change
     

    How can I change the PID block in the control options within the control strategy itself. I showed the control options parameter but there has to be a number that will check mark or uncheck the direct action, also I see that you have to put the PID block out of service to do this is that correct?

  • In reply to AdrianOffield:

    yep those are both valid methods for deciphering and even writing to the control options word but I really want to know the same thing that Deb is asking.  Where in your process do you want a controller to be able to change from reverse to direct acting on the fly?   Just wondering what process control problem we're actually trying to solve here. Sounds interesting.

    dewey

  • I have a process where I can run a tank flooded using a flow controller to one destination.  Otherwise, I am running this as a level to flow cascade to another destination, change of controller action necessary.  I do this in two modules.  More dynamics are needed that just the controller action.  Therefore, when I am in level flow cascade, I show that dynamo to the operators and “hide” the flow controller dynamo.  When the operator selects to run flooded, the graphics change to show a level indication and a flow controller.  Since the flow controller was tracking, the transition is smooth and  the transfer is bumpless and the operator then takes control.   No confusion.
     
     
    From: Dewey Kuchle [mailto:bounce-Dewey_Kuchle@community.emerson.com]
    Sent: Tuesday, October 23, 2012 3:42 PM
    To: DeltaV@community.emerson.com
    Subject: RE: [EE365 DeltaV Track] PID Action Change
     

    yep those are both valid methods for deciphering and even writing to the control options word but I really want to know the same thing that Deb is asking.  Where in your process do you want a controller to be able to change from reverse to direct acting on the fly?   Just wondering what process control problem we're actually trying to solve here. Sounds interesting.

    dewey

  • Adrian:
     
    You are right if all you want to do is look at the value – but my understanding is that the person asking the question wanted to use logic in the module to CHANGE the value of Control Options.  Watchit unfortunately is of no help there.
     
    Steve
     
    Spartan_Logo_New
     
    Steve Elves | Control Systems Tech.
     
    From: AdrianOffield [mailto:bounce-AdrianOffield@community.emerson.com]
    Sent: Tuesday, October 23, 2012 1:58 PM
    To: DeltaV@community.emerson.com
    Subject: Re: [EE365 DeltaV Track] PID Action Change
     
    Isn’t Watchit easier to use than creating a module with reference parameters? With Watchit, one can type the parameter path of PID Control options and see the integer value.
     
    Adrian
     
    Sent: Tuesday, October 23, 2012 11:27 PM
    Subject: RE: [EE365 DeltaV Track] PID Action Change
     
    Control Options is actually a 16-bit word where each bit represents one of the options.  To see which options are checked at runtime (and what the integer value of the bitstring is), configure an Internal Read parameter in the module as an Internal Reference (pointed at the PIDs Control Options parameter), and wire it to the input of a BFO block.  You will see the various bits on or off on the output side of the BFO, as well as the integer value that each combination represents.
     
    We have one site where the customer has configured some logic to allow them to switch the controller action on the fly (don’t remember why this was necessary).  They used some ACT blocks with delays to do the following things in order, one at a time:

    1.)    Put the PID block in OOS mode

    2.)    Write the correct integer value for the desired option bitstring to the PID’s Control Options parameter

    3.)    Put the PID block back in MAN mode.

     
    It seemed to work fine.  Hope this helps.
     
    Spartan_Logo_New
     
    Steve Elves | Control Systems Tech.
     
    From: Big_Daddy_O [mailto:bounce-Big_Daddy_O@community.emerson.com]
    Sent: Tuesday, October 23, 2012 12:20 PM
    To: DeltaV@community.emerson.com
    Subject: [EE365 DeltaV Track] PID Action Change
     

    How can I change the PID block in the control options within the control strategy itself. I showed the control options parameter but there has to be a number that will check mark or uncheck the direct action, also I see that you have to put the PID block out of service to do this is that correct?

  • In reply to Deb Colclazier:

    Let me see if I can paint a picture here! We may have a project where we have 2 tanks, tank 1 has a sg of lets say 65 and tank 2 has a sg of 40. So what the objective is is to side stream blend the two together  to get a sg of say 50. This is how the control system is layed out. Tank 1 will feed a pump and the then goto a main meter where we will measure the target sg, tank 2 will feed a pump and then a meter where we will measure tank 2's sg and then T into the piping from tank 1 before the main meter but after the pump. So my thinking was to monitor tank 2's sg and if it was greater then the main meters sg I knew I would have to be in reverse acting for a loop to work to have the main sg to come out right. Now the tricky part if for some reason they swap tanks and have it the other way I could still monitor tank 2's but I was thinking to automatically have the control stragey switch it to direct acting. Oh and by the way we are going to use a VFD on the pump for tank 2. Hope that helps, maybe there is a better way this is just what I came up with so far. Still working on the Auto/man for the loop.

  • By the way great site there are tons of people on here who have great info. I am still learning alot about this DeltaV stuff.

  • In reply to Bill Sayers:

    I don't like writing just an integer value to the CONTROL_OPTS because people will change options at some later point which will be lost if writing just an integer value from logic.

    I like to use logic like this to turn Direct Acting on:

    '//LOOP/PID1/CONTROL_OPTS.CV' := STBT('//LOOP/PID1/CONTROL_OPTS.CV',1,10);

    And this to turn Direct Acting off:

    '//LOOP/PID1/CONTROL_OPTS.CV' := STBT('//LOOP/PID1/CONTROL_OPTS.CV',0,10);

    This logic allows any changes to be done to CONTROL_OPTS at a later time and won't be lost because the logic is only setting/clearing the appropriate bit for Direct Acting.

    Regards,

    Matt

  • In reply to Matt Stoner:

    Nice Matt!  Is there an equivalent read function?  For example if you wanted to evaluate one of the bits in a PID BAD_ACTIVE, or CONTROL_OPTS.

    Thanks,

    Travis

  • In reply to Travis Neale:

    Travis,

    It isn't as easy as a RDBT command (which doesn't exist) but it can be done.

    IF

      ( '//LOOP/PID1/CONTROL_OPTS.CV' & EXPT(2,10))

    THEN

       rem Direct Acting Logic

    ELSE

       rem Reverse Acting Logic

    ENDIF;

    I used the EXPT(2,10) command because it would be easy to take the BitstringTranslantion.txt file under the DeltaV\bin directory and use the number shown (CONTROL_OPTS.OPTION10 = CONTROL_OPTS.DirectActing) for the option needed but you could also use what the integer number is which in this case is 1024.

    Regards,

    Matt

  • In reply to Matt Stoner:

    Thanks Matt.  It took me a little bit to see what you were getting at.  

  • Did that make sense?

    It is doing a bitwise AND with a number that only has the bit that you are looking for so if that bit is false you get zero. If it is set the you get a non-zero number.
  • In reply to Matt Stoner:

    Yes.  It wasn't obvious to me at first so I had to make a little test module and play with it.  Clever.  I still want an RDBT command though.

    Thanks again!

    -Travis

  • In reply to Matt Stoner:

    Hi Matt,

    Do I entry and link the statement via the DeltaV Entry Expert?