Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Bumpless Transfer - How to implement in a PLC

  • 09-01-2009 5:18pm
    #1
    Closed Accounts Posts: 1,113 ✭✭✭


    I am an engineering student learning about PID control at present.

    I know what bumpless transfer is and why you would want it. I dont know how to implement it in a PLC. Can anyone help?? Thanks


Comments

  • Registered Users, Registered Users 2 Posts: 5,401 ✭✭✭DublinDilbert


    Are you going to use a PID block in the PLC or do you have to implement the PID function from first principals?

    Lets assume you have a PID block ( either written by you or from PLC libraries) which takes the set point (SP) & measured value (MV) and returns the output value for the process.

    From memory when you put the process in manual mode, the actual out from the process (MV) is till feed into the PID block as the MV, but you also input the MV as the SP. Hence when in manual mode the error will be zero in the PID loop.

    You'll need to add some logic to switch the process between taking its output form the PID block and say an analogue input, based on a digital input ( auto manual switch).


    This Might Explain it a bit better (Auto / Manual can be toggled with a digital input):-

    In Auto Mode
    SP read from ADC input in PLC
    MV read from ADC input in PLC
    Run PID (based on data from MV & SP)
    Output PID output to DAC output in PLC

    In Manual Mode
    SP read from ADC input in PLC
    Output raw value SP to DAC output in PLC
    MV read from ADC input in PLC
    Run PID (based on data from MV & MV)


  • Closed Accounts Posts: 1,113 ✭✭✭fishdog


    Thanks for the reply.

    Am I correct in saying that the problem is caused by integrator wind up??? If so how exactly do I get around this? To I set the integrator to zero?
    Run PID (based on data from MV & MV)
    What do you mean by this?

    Thanks


  • Registered Users, Registered Users 2 Posts: 5,401 ✭✭✭DublinDilbert


    fishdog wrote: »
    Thanks for the reply.

    Am I correct in saying that the problem is caused by integrator wind up??? If so how exactly do I get around this? To I set the integrator to zero?


    What do you mean by this?

    Thanks

    Yep that's my understanding is that its due to the integrator winding up, due to the error signal while running in manual mode... Another way of doing it would be to set the integrator to zero, but this may not be easy depending on the structure of the PID loop. Also i don't think zero-ing the intergrator will do the complete job.


    By this:-
    Run PID (based on data from MV & MV)

    I mean that input the MV as normal, but instead of also inputting the SP (as you normally would) input the again MV instead of the SP. As the front end of the PID will subtract the 2 inputs (error = SP-MV), this means the error in the system will go to zero MV-MV=0! The effect of the error going to zero means that intergrater will not wind up or down, its effectively "on hold"....


  • Closed Accounts Posts: 1,113 ✭✭✭fishdog


    but instead of also inputting the SP (as you normally would) input the again MV instead of the SP

    Yes I see what you mean. The SP is simply made equal to the MV value.
    The effect of the error going to zero means that intergrater will not wind up or down, its effectively "on hold"....

    But because the integrator is constantly adding to itself will it not just add zero to itself (because the error is now zero) and retain its last value??



    Thanks again.


  • Registered Users, Registered Users 2 Posts: 5,401 ✭✭✭DublinDilbert


    fishdog wrote: »
    But because the integrator is constantly adding to itself will it not just add zero to itself (because the error is now zero) and retain its last value??

    Yep that's pretty much what happens... It means that the integrator doesn't wind up or wind down, it stays the same...

    How did you get on with the implementation? Are you doing it in ladder logic?


  • Advertisement
  • Closed Accounts Posts: 1,113 ✭✭✭fishdog


    How did you get on with the implementation? Are you doing it in ladder logic?
    Yes. I hope to have it done today. I will post it here.

    Thanks for the help.


  • Closed Accounts Posts: 1,113 ✭✭✭fishdog


    To be sure I got it right I had to ask a lecturer. This is what I was told, I hope it makes some sort of sense.

    Data Registers:
    D1 = Proportional gain
    D2 = Error
    D20 = auto data register (P+I+D)
    D100 = manual data register
    D10 = controller output
    _________________________________
    When switching from manual to auto:

    Calculate what the P term should be. P(n) = D1 * D2

    Calculate what the I term should be. I(n) = D100 - P(n)

    Move this value into the data register for the I term and move 0 into the data register for the D term. This will mean that the integrator is starting from the right place. The P term will be OK because it is simply the error times the gain. The controller output should just start looking for the set point as per normal with no bumps.

    When in auto mode:

    Ensure that the manual data register “tracks” the output from the PID controller by value in D10 to D100. This ensures that the output will stay where the auto mode left it unless the operator decides otherwise.


Advertisement