Writing a Start Command to a DC1 Block?

I received an email with this question about which I'm hoping y'all can share some wisdom:

I am trying to start a fan when a compressor is started, but leave it in the operators control. I used an input parameter to trigger a positive edge trigger to a Calc block. My expression is as follows:

IF IN1 = I THEN;
'^/DC1/MODE.TARGET' := AUTO;
'^/DC1/SP_D.CV' := START;
ENDIF

All it does is turn my motor off if it is running, does not start it if it not running. I know this will work, but is there a better approach? And want is the proper SP parameter to manipulate from an expression to start the motor?

24 Replies

  • In reply to manik:

    Manik,

    It's difficult to help not knowing what the inputs and outputs are to your calc block.

    Can you provide picture to provide clarity or list how the INs and OUTs are wired?

    Regards,

    Matt

  • In reply to Matt Stoner:

    It sounds like you want all drive output control to go through the CAS of the AO block, so that even when the DC is in auto, the AO should be written via the CAS_IN.

    You can remove AUTO as a permitted mode from the AO block.  Then the only output to the drive is via the CAS_IN of the AO.  

    It looks like you are already  zeroing the drive output when the motor is not running.  Do you also need the cascaded setpoint to track to zero when the motor is stopped?  This doesn't look like it is currently being done, but as Matt said, a diagram of the ins and outs would help.

  • In reply to Youssef.El-Bahtimy:

    Matt/Youssef,

    Thanks for your response..

    Herewith I have attached  snapshot plese find it and the logic is as written below

    IF '^/PV_D.CV' != '_MTR2_PV:RUNNING' THEN

     'OUT1.CV' := 0;

     'OUT2.CV' := 0;

     'OUT1.ST' := 128;

     'OUT2.ST' := 128;

    ELSE

     'OUT1' := 'IN1';

     'OUT2' := 'IN2';

    END_IF;

     

    Thanks,

    Mani

  • In reply to manik:

    Mani,

    Here is some logic and comments hopefully explaining my changes/suggestions to what I think you are trying to do.

    Something to think about is that when the motor Starts and if the AO mode is Auto, the output will stay 0 until an operator manually enters a SP. In this case you may want to have some non-zero number so that some low value will be sent to the motor that the operator could change later. The VFDs may already have this configured but I have seen people do it in both cases in case someone removes one or a device didn't support that.

    If you want that you could use a TPxx value for minimum speed start SP and instead of writting 0, write this value.

    Regards,

    Matt

  • In reply to Matt Stoner:

    Matt,

    Thank you very much for your Valuable time and input.  I already discussed with Customer regarding the TPXX and the reply is VFD itself has that functionality.

    Customer have following concern on the faceplate display of MVS and CMT modules.

    Scenario is as below.

    Speed control Master module :  CMT type and the PV is  740 RPM (tag number HC- VS09) 

    Slave is VFD : MVS type HS-09

    If it is in CAS MVS module will get the Speed set point from master modules HC-VS09.

     If operator wants to set the Speed manually, then he can set the value from MVS faceplate by clicking the Speed Popup. 

    By considering this I have set the ranges as below 

    CMT Module : 

    PID/PV - 0 -740 RPM

    SP_HI_LIM : 740

    OUT_SCALE : 0- 740 RPM

     In MVS  module

    AO1/SP_HI_LIM : 740

    AO1/PV_SCALE : 0-740 RPM.

     But when MVS (HS-09) is controlled by CMT HC-VS09 in CAS mode. Seeing different speed values in different places leads a bit confusion. 

    Could you please guide me , is this ranges setting are proper? 

    Please find the attachment from having the same configuration from Simulation system. 

    Your guidance and your time is much helpful  here..

    Thanks,

    Manik

  • In reply to manik:

    HI,

    having hard time understanding the idea behind everything.. but that´s normal for me Yes

    Why do you have to change manipulate the anaalog output directly?

    Normally the control schemes I have seen you do not have to do that, you just simply change the PID control to manual and change the value from there...?

    You could add a control to the pump, when it starts the PID goes into CAS, Auto or what ever and you set somekind of setpoint (if you want to) to the controller.

    You can do the same the other way around, when the pump stops you put the PID in Man mode and setpoint or tracking value and so on to 0.

    Regrading the ranges, you have to check the VFD settings, it will run something at 100% speed-input...

    Niklas Flykt 

    Klinkmann Oy

    Key Account Manager safety products

    nikfly@gmail.com

  • In reply to Niklas Flykt:

    Typically we configure this as Niklas suggested with just a normal speed control PID loop that sends the output directly to the VFD.

    Then we configure a tracking condition in the Speed loop that will track the output to 0 if the motor is not running.

    As far as the differences in the values, it is usually a function of the scaling of the output being sent or the ranges don't match with what is configured in the device.

    Regards,

    Matt

  • As you said, “This logic works fine when both the DC block and AO block are in CAS mode”.

    So, if you force AO mode to CAS and CAS_IN=0 when motor is stopped and motor is also in AUTO mode I think it’s done. Remember, when mode is CAS the AO function blocks copies CAS_IN value into SP on every scan cycle. So switching back to AUTO will provide a Initial SP having the value of last CAS_IN received.

    Because you are using PCSD MVS (or similar) class there is some code managing AO mode so adding writes to AO1/MODE.TARGET from added CALC block induces concurrency and may break existing PCSD logic:

    ·        TRACK_MODE parameter (true/false). It TRUE, AO logic mode is forced match DC mode. If not, AO and DC modes are decoupled.

    ·        MODELOCK composite generates MODELOCKED parameter value.

    ·        ACT1 action block has the code to manage AO block mode depending on TRACK_MODE and MODELOCK value.

    Then to implement suggested force to CAS solution, ACT1 block must be modified.

    Although I prefer a small SFC, it is possible to provide a initial value to SP when motor is started or is starting (using a TPxx parameter for this initial value).

    Module layout (related to AO):

    Code for TRACK_SP CALC block (TP01 used for initial speed value):

    Code for ACT1 block (added code highlighted yellow):

    Did not fully tested so maybe this solution has some side-effects on existing PCSD functionality.

    One last comment, there is one operational issue with any solution forcing AO1/SP value because this module behavior may be different to other modules. On other modules operator knows that if mode is AUTO he can enter the setpoint so if this module is forcing AO1/SP he may get confused.

    Solution forcing CAS for AO makes not possible to enter a value on SP but confusion still may be a problem because faceplate has a single MODE indication so operator may think he can provide the setpoint if module mode is AUTO. If TRACK_MODE is set to false, a SPEED button appears on FP that brings a small function block faceplate for AO1 block, showing AO mode and setpoints making things a bit more clear.

    Regards

     

     
     
    Gustavo Solano | +34916596701
     
    De: manik [mailto:bounce-manik@community.emerson.com]
    Enviado el: jueves, 11 de septiembre de 2014 23:50
    Para: DeltaV@community.emerson.com
    Asunto: RE: [EE365 DeltaV Track] Writing a Start Command to a DC1 Block?
     

    Dear Experts,

    My query is related to the topic in discussion

    Have PCSD class MVS_21_IL_52

    Have a written a following logic in a TRACK_SP CALC block please see the attached snapshot.

    IF '^/PV_D.CV' != '_MTR2_PV:RUNNING' THEN

     'OUT1.CV' := 0;

     'OUT2.CV' := 0;

     'OUT1.ST' := 128;

     'OUT2.ST' := 128;

    ELSE

     'OUT1' := 'IN1';

     'OUT2' := 'IN2';

    END_IF;

    This logic woks fine when both the DC block and AO block are in CAS mode.

    Requirement is it should not allow to set the AO SP (VSD setpoint)  in AUTO mode if the motor is not running and the motor also in AUTO mode..

    COuld you please help in this regards?

     

    Thanks,

    Manik

     

     

     

  • I think you scaling configuration is OK.
     
    What happens is that MVS faceplate Auto SP item has the speed Setpoint for both AUTO and CAS mode on AO.
     
    Regards
     
    Gustavo Solano | +34916596701
     
    De: manik [mailto:bounce-manik@community.emerson.com]
    Enviado el: sábado, 13 de septiembre de 2014 1:22
    Para: DeltaV@community.emerson.com
    Asunto: RE: [EE365 DeltaV Track] Writing a Start Command to a DC1 Block?
     

    Matt,

    Thank you very much for your Valuable time and input.  I already discussed with Customer regarding the TPXX and the reply is VFD itself has that functionality.

    Customer have following concern on the faceplate display of MVS and CMT modules.

    Scenario is as below.

    Speed control Master module :  CMT type and the PV is  740 RPM (tag number HC- VS09) 

    Slave is VFD : MVS type HS-09

    If it is in CAS MVS module will get the Speed set point from master modules HC-VS09.

     If operator wants to set the Speed manually, then he can set the value from MVS faceplate by clicking the Speed Popup. 

    By considering this I have set the ranges as below 

    CMT Module : 

    PID/PV - 0 -740 RPM

    SP_HI_LIM : 740

    OUT_SCALE : 0- 740 RPM

     In MVS  module

    AO1/SP_HI_LIM : 740

    AO1/PV_SCALE : 0-740 RPM.

     But when MVS (HS-09) is controlled by CMT HC-VS09 in CAS mode. Seeing different speed values in different places leads a bit confusion. 

    Could you please guide me , is this ranges setting are proper? 

    Please find the attachment from having the same configuration from Simulation system. 

    Your guidance and your time is much helpful  here..

    Thanks,

    Manik