PID Ramp Soak Instruction
The purpose of a ramp soak instruction is to make gradual, controlled changes in temperature (Ramp), followed by a temperature hold (Soak) period.
We will be using our Proportional-Integral-Derivative PID Instruction that we looked at last time to apply the ramp/soak instruction.
Using the immersion heater in a cup of water to keep the temperature at a constant value, we will be adjusting the profile of the temperature as we increase the set point (Ramp) and hold that set point for a predetermined time. (Soak)
We will be modifying our existing program from our PID loop instruction. Let’s get started.
Previously in this Productivity 1000 series PLC, we have discussed:
System Hardware – Video
Installing the Software – Video
Establishing Communication – Video
First Program – Video
Documenting the Program – Video
Monitoring and Testing the Program – Video
Online Editing and Debug Mode – Video
Numbering Systems and Tag Database – Video
Contact and Coil Instructions – Video
Timer Instructions – Video
Counter Instructions – Video
Math Instructions – Video
Data Handling Instructions Part 1 – Video
Data Handling Instructions Part 2 – Video
Array Functions Part 1 – Video
Array Functions Part 2 – Video
Array Functions Part 3 – Video
Program Control – Video
Drum Sequencer Instructions – Video
Data Logger – Video
Web Server – Video
Modbus RTU Serial Communication – Video
Modbus TCP Ethernet Communication – Video
Firmware Update – Video
AdvancedHMI Modbus TCP Ethernet Communication – Video
Email and Text Communication – Video
PID Instruction – Video
As a review, the following links will explain the PID instruction.
The last time we used the PID loop instruction on our immersion heater and cup of water. The thermocouple input provided feedback to our loop.
Auto Tuning was used to adjusting the PID parameters in our loop. We had an initial bump and then three cycles above and below the set point were observed before the auto-tuning was complete.
Ladder Logic Program
During our PID loop operation, we observed the noise on the line for the thermocouple. We will now eliminate that noise by using the Average (AVG) instruction.
The input will be our thermocouple input point, AIF32-0.1.4.1
An output from this instruction will be placed in the ThermocoupleAvgOutput tag. The average time for the input to be calculated will be 2000 milliseconds. This is the same amount of time as our time proportional output.
The average instruction will execute every scan of the PLC.
The output of our average will now be the Process Variable in our PID instruction.
The thermocouple input point AIF32-0.1.4.1 for our Process Variable is replaced by the tag ThermocoupleAvgOutput.
Ramp / Soak (RPS) Instruction
We will use a structure for this instruction. The name will be Ramp_Soak, and we will have three steps.
Number of Steps – 3 – This will set up the profile table with three steps.
Time Unit of Table – sec – This sets the timing units for each of the steps that we program.
Set Point Value – This is the setting that we want to go to in the step.
Ramp Time – This is the time based on the time units select to reach the set point. The output will go from the current value to the new value in the ramp time selected.
Soak Time – This is the time based on the time units select to wait at the set point. After this time the next step is executed.
Note: In our case, we are immediately moving to the new setpoint value. (Ramp Time = 0)
Switch 3 will enable our ramp soak instruction. When Enable is ON, the instruction will operate every scan. When Enable is OFF, the instruction is not solved and its outputs are not updated.
Switch 4 will run/pause our instruction. This must be on to start the timing cycle. Off will pause the timing.
Switch 5 will skip a step in the cycle when activated. This is edge-driven. When Skip goes ON, the instruction immediately begins the next portion of the Ramp. If Skip is asserted while Ramping to Set Point, Output will move to the Set Point; Elapsed Time in Step will move to Ramp Time and the Soak Time will begin. If Skip is asserted while Soaking, the next Ramp Step Number will begin.
Switch 6 will reset the instruction. Level-driven. Resets the instruction to Initial Values. Asserting Reset affects these Tags: Output: No Affect; Current Step Number: Changes to 1; Elapsed Time in Step: Changes to 0; Complete: Changes to 0
Enable / Disable Ramp Instruction
When Switch 3 is on our ramp soak instruction is activated. We will copy the Ramp_Soak.Output to the PID1.SetPoint.
When Switch 3 is off we will copy the value of 70 into our PID1.SetPoint. This will ensure that our water temperature is set to 70 when we are not going through our cycle.
See the video below to watch our PID Ramp / Soak instruction in action with our Productivity 1000 PLC.
Download the PID Ramp Soak Instruction program here.
Productivity 1000 Series PLC form Automation Direct
Overview Link (Additional Information on the Unit)
Configuration (Configure and purchase a system – BOM)
User Manual and Inserts (Installation and Setup Guides)
Productivity Suite Programming Software (Free Download Link)
This software contains all of the instruction sets and help files for the Productivity Series.
This concludes our Productivity 1000 Series PLC. We will add to this series as additional information or applications are required. Thank you.
Watch on YouTube: Productivity 1000 Series PLC PID Ramp Soak Instruction
If you have any questions or need further information please contact me.
If you’re like most of my readers, you’re committed to learning about technology. Numbering systems used in PLC’s are not difficult to learn and understand. We will walk through the numbering systems used in PLCs. This includes Bits, Decimal, Hexadecimal, ASCII and Floating Point.
To get this free article, subscribe to my free email newsletter.
Use the information to inform other people how numbering systems work. Sign up now.
The ‘Robust Data Logging for Free’ eBook is also available as a free download. The link is included when you subscribe to ACC Automation.