No announcement yet.

PID Time Proportionaing Control Analogue Output to SSR

  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    PID Loop Tuning Help.

    Here is where I am at. I have what seems to be a partially functioning PID program using Time Proportion Control but I cant seem to control the Set Point and the PID viewer shows the PID mode constantly switching between cascade, auto and manual.

    Here is the setup I am using:

    PLC DL05 Model: D0-05DD-D

    ADSSR6M 12-DC-200D Dc solid State Relay.

    Controlling the heating element through the Y0 discrete output to turn the SSR on and off.

    The heating element is a simple copper wire embedded in a few layers of fiberglass epoxy composite.

    I am using a K-Type thermocouple to read the temperature.

    I have attached some screen shots of the Ladder Logic Program and the PID viewer. I have the PID setup to start at V2000 memory address. I identified the memory address for the process variable as the thermocouple input and have tried various setpoints values.

    The program appears to run and switches the SSR on an off but the setpoint that is shown in the PID view and memory adress keep changing as well as the mode is switching between manual, auto, and cascade.

    What should I try next to get this program working and tuned? Any help is greatly appreciated.
    Click image for larger version

Name:	PID Rungs 3-6.JPG
Views:	29
Size:	49.7 KB
ID:	120171Click image for larger version

Name:	PID Rungs 1-2.JPG
Views:	29
Size:	44.3 KB
ID:	120172Click image for larger version

Name:	PID Rungs 7-10.JPG
Views:	28
Size:	22.4 KB
ID:	120173Click image for larger version

Name:	PID View.JPG
Views:	29
Size:	153.8 KB
ID:	120174
    Attached Files


    • #17
      I think you are writing your analog inputs straight into PID configuration memory. You need to move the analog locations to outside of the range used by your PID setup V2000-V2077 and then LD OUT to move the SP, PV and CV in and out. Or something like that anyway.

      Also, Rung 5 is probably producing undesirable results without using double word instructions.


      • #18
        The time-proportion works this way: it takes the output from the pid and divides it to the max possible value of the pid. The resulted value is ranged 0-100%.
        this represents the multiplier of the duty cycle of the heater.

        Every heater has a heat transfer capacity. Since the heating element reaches temperatures far superior to the area being heated, it means that the transfer is limited to a specific duration and continuous heating in that duration. If say the heater has a heating cycle of 100ms with a duty cycle of 60%, it means that the heating element can’t not be on for more than 60ms at a time, neither before 40ms of natural cool down.
        If the duty cycle is 60%, does it mean that the heating element can be turned on for 60 hours uninterrupted, before cooling down for 40 hours? Obviously not. This is why the duration of heating cycle is essential.

        What you need:
        1. Max continuous heating, or duty cycle of heating process
        2. Heating cycle period

        ‘What you need to do:
        1. Read the temperature
        2. Calculate the pid output as a percentage
        3. Adjust the max heating duty with the percentage calculated prior. This will insure that the heating duty does not exceed the burn duty, over a heating cycle.
        4. Do a complete heating cycle

        you may be able to read the temperature many times during one heating cycle. However, only the last read is relevant and contributes to pid calculation. Your pid will update once per each heating cycle.

        hope this helps.