Productivity 3000 PAC Programming Example Tutorial · Productivity 3000 PAC Programming Example...

48

Transcript of Productivity 3000 PAC Programming Example Tutorial · Productivity 3000 PAC Programming Example...

Productivity 3000 PAC Programming Example TutorialThe following information and companion LEARN video have been created to show the ease forwhich the Productivity 3000 PAC can be programmed. We have chosen to use the PID LoopInstruction as our focus because in most other programmable controllers, it is one of the moredifficult functions to understand, program, setup and put into operation. We will spend time inthis tutorial getting the viewer up to speed in understanding where and how a PID loop control istypically used, and why it is used.

As a starting point, we cover the operation of the commonly found home heating system thatalthough not commonly controlled by a PID loop controller, makes use of the same basicelements that would be found in a PID application. Next we briefly explain the termsProportional, Integral and Derivative that are key to how the calculations in our PID loopproduce the end results we require. From there we explain our working application example indetail including the components used, how the example is arranged, schematics showing thewiring, using the Productivity 3000’s hardware configuration, scaling in engineering units,programming with the built-in PID Loop Instruction, use of a C-more Touch Panel to aid in setupand monitoring, and auto-tuning our PID loop. Finally we demonstrate our working example inoperation.

To understand where, how and why a PID loop wouldbe used, think about the typical home forced airheating system that is controlled by a thermostat. Thissystem does not make use of a PID loop controller,but does include many of the same elements, andgenerally would be considered a basic on/off controltype application.

It can be said the home heating system is Closed Loopbecause it is able to measure the present temperatureand base its operation on this value.

The ability to dial in a desired temperature is our SetPoint. Measuring the current temperature becomesour Process Variable. And controlling the heat sourcebecomes our Output.

Older style thermostats include an Anticipator thatprevents the room temperature from overshooting.Using an Anticipator is much the same reason wewould use a PID loop controller, that is, to keep theend result constant.

Follow the operational sequence on the next slide!

Home Forced Air Heating System Controlled by a Thermostat

Thermostat

Home Forced Air Heating System Operational Sequence

Room temperature falls below thermostat setpoint and the gas burner is ignited.

Temperature rises in the plenum and thefan/limit switch turns on the blower when itsupper limit is reached.

Hot air is circulated into the house with thewarm air rising.

Anticipator in the thermostat causes thethermostat to reach the set point before theactual temperature has been reached andturns off the gas burner.

The blower continues to run until thefan/limit switch falls below the lower limit andthe blower is turned off.

If all conditions are set correctly, actual roomtemperature should be within a degree or twoof set point and the occupant should feelcomfortable.

Now take a look at the same heating system, but replace the gasburner with an electrical heating element with the ability to varythe amount of wattage (BTUs) that can be produced. As with agas burner, the heating element is our controlled Output. We stilluse a Set Point value to let the system know our desiredtemperature, and we retain the ability to measure the actualtemperature, which we call our Process Variable.

Now replace the thermostat with a PID loop control such as thefunctionality built into the Productivity 3000. What will this dofor us? First, using a PID will allow for more accurate control ofthe room temperature, and second, because we are able tocontrol the amount of heat needed to maintain the Set Point,based on the PID calculations, we likely will use less energy.

In the next series of slides we will briefly cover the functions ofthe Proportional, Integral & Derivative terms and formula used inour PID loop controller example.

Home Forced Air Heating System Controlled by a PID Loop

ProgrammableThermostat

Typical HomeHeating/Cooling System

Automobile Cruise Control – PID Loop ControlledObtain your desired speed, press ON to enable the

cruise control, and press SET to lock in the currentspeed of the vehicle. (Set Point)

Sensor measures current speed and continuouslyupdates. (Process Variable)

A small computer in the vehicle runs a PID program tocalculate and make corrections.

Any difference between the desired speed and sensedspeed becomes an Error which causes the computer toeither increase or decrease the vehicle’s throttle.

If a hill is encountered, the throttle is smoothlyincreased, and a with a downgrade, the throttle isbacked off.

Press ACCEL (+) or DECEL (-) to increase or decreasespeed in 1 MPH increments.

Press OFF or Hit the Brake to disengage the cruisecontrol.

Typical PID Loop OperationTo better understand how a process is controlled with the use of a PID loop controller such as thefunction that is available in the Productivity 3000, take a look at the key elements shown in thediagram below. The Set Point (SP) value, our desired result, is ‘summed’ with the Process Variable,our feedback. PV lets the control know where the result is in real time. The difference between SPand PV becomes the Error Term. Within the loop calculations, the magnitude of the Error Termvalue is used with the Proportional gain value to produce a number that will be used to determinehow much correction we need from the Output to get the PV closer to the SP. The Proportional gainacts on the present error. The Output correction is further modified by the Integral rate value, whichis calculated from the accumulation of past errors. The Derivative rate, when used, is included in thefinal Output correction based on a prediction of future errors, determined by the current rate ofchange.

The description and diagram in the next slide represents the PID control scenario for the workingexample used in this tutorial. In short, the example PID loop control maintains a liquid volume in atank by measuring the level, converts this value to a volume, and replenishes loss fluid with a variablerate pump.

Proportional, Integral & Derivative

To simplify an explanation on how the PID loop control works,start by looking at just the Proportional calculation. It’s resultis the error difference between the Set Point value and theProcess Variable value multiplied by the value assigned to theProportional term, also called the Gain. Diagram 1 shows whathappens when the Set Point is changed and the Gain value is settoo low. The PV will take a long time to get up to the SP.Diagram 2 is an example of having the Gain too high, with thePV overshooting the SP, and the PV going into oscillating.Diagram 3 reflects the ideal result, with the Gain set to have thefastest response time without a large overshoot. Depending onthe application and system response, Integral & Derivativevalues are adjusted to achieve minimum oscillations.

The next slide shows a typical PID formula used for calculatingthe output based on the three main terms, Proportional,Integral & Derivative, that are summed together for the finaloutput correction at any given instance. A more detailedexplanation of a PID loop operation can be found at thereferences listed in the note.

Diagram 1

Diagram 2

Diagram 3

The PID Algorithm variables and related variables are:Ts = Sample Rate

Kc = Proportional Gain

Ki = Kc * (Ts/Ti) Coefficient of Integral Term

Kr = Kc * (Td/Ts) Coefficient of Derivative Term

Ti = Reset Time (Integral Time)

Td = Rate Time (Derivative Time)

SPn = Set Point for Sampling Time “n” (SP value)

PVn = Process Variable for Sampling Time “n” (PV)

en = SPn – PVn = Error Term for Sampling Time “n”

M0 = Control Output for Sampling Time “0”

Mn = Control Output for Sampling Time “n”

PID Algorithm Example to Calculate the Control Output *

* Note: Additional information about PIDAlgorithms can be found in theProductivity 3000 online help feature, inmany of the DirectLOGIC user manualsthat are available as a download from theAutomationDirect website, and also doingan online web search on ‘PID algorithm’.

PID Loop Operation of Working Application Example

Set Point (SP) – used to set thedesired volume in gallons of waterrequired in the water tank.

PID Loop Calculation – an Errorbased on the difference betweenthe Set Point and feedback fromthe Process Variable is used todetermine an output correctioncalculated by the Proportional,Integral and Derivative values.

Output – this is the calculatedresult from the loop calculationthat determines the water pumprate at any given instance.

Process Variable (PV) – feedbackused to determine how much theactual volume is off from thedesired (SP) value.

P, I & D Terms Explanation:Proportional (P) depends on the present error,Integral (I) on the accumulation of past errors, andDerivative (D) is a prediction of future errors, basedon current rate of change.

For the PID loop application used in thistutorial, we will control the volume of a liquidin a water storage tank. Refer to theapplication diagram shown on the next slideas the process is explained.

A ten (10) gallon cylindrical water tank isused as our main process focus. A sixteen(16) gallon rectangular tank is used as areservoir. A variable output diaphragm pumpis used to fill the process tank from thereservoir. The rate of the pump is 0 to 1gallon per minute and is controlled by a DCmotor controller that will accept a 0-10 VDCanalog signal to produce the output pumpingrate. The liquid in the process tank drainsback to the reservoir tank by means of asiphon tube, and the rate at which it drains iscontrolled by a manually adjustable ball valve.There is a flow indicator to visibly show theliquid draining.

PID Loop Application Example ExplanationThe ball valve can be adjusted to speed up orslow down the drainage rate.

The volume is calculated by determining thelevel in the storage tank using an ultrasonicprobe that produces a 0-10 VDC analogsignal in relationship to a 100 to 600 mmdistance between the top of the process tankand the current water level.

A hand operated primer bulb, as might befound on an outboard motor boat engine gastank, is used to initially start the drainageflow, with a siphon tube used to prevent lossof flow once the system is primed.

A fill tube is used in the process tank toreduce ripple effect of the entering liquidthat can cause the ultrasonic probe’s outputto fluctuate.

PID Application DiagramProcess water volume tank.

Reservoir water tank.

Pump speed controlled with0-10 VDC analog output signalfrom Productivity 3000.

Ultrasonic distance sensor with0-10 VDC analog output signalto P3K used to determine watervolume based on level.

Primer bulb to start return flow.

Manual ball valve used to alterreturn flow rate.

Tubes used to eliminate bottomor side penetrations.

Float switch used as emergencyshut down.

PID Loop Application Equipment from ADCThe AutomationDirect equipment used for the PID loopexample application consists of the following:

Productivity 3000 PAC (Base, Power Supply, CPU,DC Input, DC Output, Analog Input, and AnalogOutput Modules)

C-more 6” Touch Panel, TFT, LED Backlight

ZipLink Pre-wired Modules and PLC Cables

Ultrasonic Sensor, 18 MM, 0-10 VDC Analog Output

Rhino 24 VDC Power Supplies, DIN Rail Mount

Relays and Octal Sockets, 75 Series

Eaton CH Stack Light Tower and Audible Alarm

Eaton CH 30 MM Pushbuttons

Single Pole Supplementary Circuit Protectors

Stride Unmanaged Ethernet Switches

Ethernet Cat5e Patch Cables

UltrasonicSensor

FloatSwitch

Productivity3000

StackLight

C-moreTouchPanel

PID Loop Application Equipment from Other Sources

Other equipment used for the PID loop applicationconsists of the following:

19” Relay Rack with Casters

12 VDC diaphragm pump/motor

Dart DC motor controller with analog speed input

GEMS Float switch for overflow safety shutdown

Primer bulb to start drainage flow from siphon tube

Flow indicator with paddle wheel to show drainageflow

Polyethylene tanks, 10 gallon cylindrical for processand 16 gallon rectangular used as reservoir

Manual ball valve to control drainage flow rate

Vinyl tubing and fittings 16 gal.Reservoir

Tank

DiaphragmPump/Motor

Equipment ArrangementThe entire PID loop example application was designed to fiton a standard 19” relay rack with casters to allow portability.

On the front side, as seen in the layout on the next slide, arethe Productivity 3000, C-more Touch Panel, Power/E-stoppush buttons, process tank with ultrasonic level sensor &overflow flow switch, and Stack Light tower.

On the rear are found the ZipLink modules, power supplies,Stride Ethernet switches, relays, circuit protection, DCmotor controller, reservoir tank and diaphragm pump with12 VDC motor.

The rear side also includes terminal blocks and wire duct tofacilitate wiring. The use of the ZipLink modules and cablesmake for a quick job and wiring neatness. Notice theZipLink modules are placed in the same left to right order asthe actual Productivity 3000 I/O modules on the front ofthe assembly. An I/O module layout order of DC input, DCoutput, analog input & analog output was chosen, and withthe ability to cross the ZipLink cables over, the same moduleorder was kept on the rear of the assembly eliminatingwiring and troubleshooting confusion.

Productivity3000

C-moreTouchPanel

10 gal.Process Tank

16 gal.Reservoir

Tank

Relay Rack

Stack LightTower

Ball Valve

P3K PID Demo Layout

The next series of four slides cover the schematics usedfor the PID loop application wiring. The Productivity3000 Programmable Automation Controller is theheart of the control system by providing the PIDfunctionality required.

Care was taken to use protective devices for the variouscircuits, and it should be noted that two different 24VDC power supplies were used to help isolate theanalog circuitry from the general DC device circuitry.Also the use of a separate 12 VDC power supplyprovides power to the Dart DC motor controller thatoperates the diaphragm pump motor.

A Power On/E-Stop push button and relay circuit wasincluded as a safety to stop all action in case of anemergency, or if the float switch is actuated due to anoverflow condition.

The Productivity 3000 and the C-more Touch Panel arenetworked together using Stride Ethernet switches.

PID Loop Application Equipment Wiring (Schematics)

Rear Side Wiring

Schematic Diagram – Power Wiring – Sheet 1 of 4

Schematic Diagram – CPU & HMI – Sheet 2 of 4

Schematic Diagram – Discrete I/O – Sheet 3 of 4

Schematic Diagram – Analog Inputs & Outputs – Sheet 4 of 4

Analog Input Module Jumper SettingsThe analog input module used for the PIDLoop application has the ability to beconfigured for different input current andvoltage ranges, such as 0-5 VDC, 0-10 VDC,4-20 mA, etc.

The Ultrasonic Sensor we are using has ananalog output of 0 to 10 VDC. The P3-04ADS Analog Input Module is setup so thatall channels will accept a 0-10 VDC signal.This will provide a 0-65,535 count range.

P3-04ADS

Hardware ConfigurationThe first step we need to accomplish withinthe Productivity 3000 programmingsoftware is to configure the PAC systemhardware. With the programming softwareinstalled on a personal computer, connectto the P3K system via USB or Ethernet.Open the Hardware Configuration dialogunder the Setup Application Tools tab.Click on the Read Configuration button asshown to the right. (The CPU needs to be inStop mode when reading the hardwareconfiguration.) After a few moments, all ofthe attached I/O modules, and any otherattached hardware, will be recognized.

View the LEARN video “Part 2 – How toConfigure the Productivity 3000Programmable Controller” for additiondetails on Hardware Configuration.

http://learn.automationdirect.com/PLCs.html

Hardware Configuration

Tagnames and Tagname DatabaseBefore we get into the actual programming, itwill be helpful to have an understanding ofTagnames and the Tagname Database. Theiruse will definitely make programming,program structure, and later troubleshootingeasier.

The Productivity 3000 is a “Tagname Based”Programmable Automation Controller. Itallows the end user to create descriptivenames (Tagnames) for all of the variables andI/O points which makes programming goquicker. Tagnames have the freedom to bedefined as any data type instead of usingarbitrary blocks of wasted memory for datatypes not required.

Physical I/O points can have descriptivenames (Tagnames) instead of numericalbase/rack/module/point references that arethe normal default.

And to save time, the Tagnames can beexported from the Productivity 3000software and then imported into the C-moreprogramming software to both save time andprevent typos.

Tagname Database

PID Analog Input Calculating & Scaling Tank Volume – 1 of 4Using a PID loop is always easier if you areable to use the Process Variable values infamiliar engineering units. The Productivity3000 programming software includes variousscaling and math instructions that make thistask simple.

In our application we need to control thewater volume in a 10 gallon tank. We areusing an ultrasonic sensor that can read adistance of 100 to 600 mm from the frontface of the sensor with an analog output of 0to 10 VDC. Converting metric to inches, thewater level when closest to the sensor wouldbe 3.94 inches and furthest would be 23.62inches. Keep in mind the volume relationshipto sensor distance is inverted, with the mostvolume being at the closest distance.

Reference: One (1) gallon = 231 cubic inches.

The inside diameter of the 10 gallon tankmeasures 12.5 inches.

“Water_Height_per_Gallon” equals:231 / (Pi * (radius squared)) =231 / (3.14159 * (6.25 sq.)) = 1.88 inches

(cont’d)

Math Instruction

PID Analog Input Calculating & Scaling Tank Volume – 2 of 4“Maximum_Volume” equals:

Total tank height of 18.75 inches, minussensor face at 2 inches into tank, minusminimum sensor distance at 3.94 inches =12.8 inches divided by 1.88 inches height pergallon = 6.80 gallons.

The closest distance the Ultrasonic Sensorcan measure is 3.94 inches (100 MM) fromthe face of the sensor, and the sensor ismounted through the process tank’s lid adistance of 2 inches. This is a total of 5.94inches, subtracted from the tank’s totalheight of 18.75 inches would be at 12.81inches from the bottom of the tank. Becauseeach 1.88 inches of height in the tankrepresents 1 gallon of water, the highest levelthat can be read by the sensor will be 12.81divided by 1.88 inches height per gallon =6.80 gallons. (cont’d)

Math Instruction

Process Tank

PID Analog Input Calculating & Scaling Tank Volume – 3 of 4“Minimum_Volume” equals:

This calculation takes a little more thought inwhat is going on here. The Ultrasonic sensorcan measure out to a distance of 23.62inches. Since the process tank has a height of18.75 inches, the sensor could actually seepast the bottom of the process tank if therewere no obstructions, but we want to keepthe final volume valve at zero when the tank isempty, and still use the total 0 to 65,535count range of the analog input module tomaintain our resolution.

Total tank height of 18.75 inches, minussensor face at 2 inches into tank, minusmaximum sensor distance at 23.64 inches =“negative” 6.94 inches divided by 1.88inches height per gallon = “negative” 3.65gallons.

(cont’d)

Math Instruction

Process Tank

PID Analog Input Calculating & Scaling Tank Volume – 4 of 4The final task for the Analog Input from theUltrasonic Sensor is to use the Scale (Linear)Instruction to provide our tank volume inengineering units of gallons of water.

Use the Hardware Configuration to assign theTagname “Ultrasonic_600” to the first channelinput (AIS32-0.1.3.1) on the P3-04ADS analoginput module.

“Tank_Volume” equals:

Input Min from “Ultrasonic_600mm” = 0TOInput Max from “Ultrasonic_600mm”= 65,535

PRODUCING:

Output Min from “Maximum_Volume” (6.80 gal.)TOOutput Max from “Minimum_Volume” (-3.65 gal.)

Again, maximum volume is seen when the water levelis closest to the face of the Ultrasonic Sensor.

Scale (Linear) Instruction

PID Analog OutputThe 12 VDC diaphragm motor/pump iscapable of producing a rate up to 1 gallonper minute of liquid transfer.

With the use of the Dart DC motor controller,we can vary the pump rate from 0 to 1 GPMby providing a 0 to 10 VDC analog signal tothe DC motor controller.

0 to 10 VDC is represented by a count valueof 0 to 65,535.

As will be seen in the PID Loop Instructionthat follows, we can use the PID’s ProcessOutput directly to control the pump rate toproduce the maximum resolution without theneed to scale. The tagname for the processoutput is labeled “Pump_Speed”.

But, it would be nice to have the C-moreTouch Panel display the actual pump rate inGPM.

Scale (Linear)Instruction

We use a Scale (Linear) Instruction to takethe “Pump_Speed”, scale it to a 0 to 1,000value, and give it a tagname called“Cmore_PID_Output”.

Within the C-more, 3 decimal places to theleft are used to display 0 to 1.000 GPM.

PID Loop Instruction – 1 of 3Create the PID loop by dragging anddropping the PID Loop instruction in theoutput portion of the ladder rung. Fill in theLoop Name and Tag Names.

• Loop Name = “Water Volume Control”

• Set Point = “Tank_Volume_SP”

• Process Variable = “Tank_Volume”

• Input Range Max = “Maximum_Volume”

• Input Range Min = “Minimum_Volume”

• Process Output = “Pump_Speed”

• Output Range Max = 65,535

• Output Range Min = 0

• Output Upper Limit = 65,535

• Output Lower Limit = 0

• Proportional (Gain): “Proportional”

• Integral (Reset) Time: “Integral” (Sec.)

• Derivative (Rate) Time: “Derivative” (Sec.)

PID Loop Instruction

(cont’d)

PID Loop Instruction – 2 of 3

DATA TYPES:

Looking at the Tag Database, Floating Pointand 32-bit Integer Data Types wereassigned to the various tagnames used inthe PID Loop Instruction.

Floating Point data types were chosen forthe Process Tank’s volume, Set Point andminimum/maximum volume range to allowfor measurements read to the hundredth ofa gallon.

A 32-bit Integer data type was chosen forthe Proportional, Integral and Derivativeterms. The 32-bit Integer has plenty ofresolution for the values that are typicallyused for final tuning of the PID loop.

(cont’d)

Tagname Database

Tagname Database

PID Loop Instruction – 3 of 3The PID Loop instructionrequires two rungs of control.The first is for enabling thePID execution, and thesecond for setting the PID toautomatic mode or manualmode.

Discrete bits, controlled frompush buttons on the C-moreTouch Panel, are used to“Enable” the PID loop andalso for placing the loop in“Auto” mode.

When the PID loop is not in“Auto” mode, it is in“Manual” mode. We will seehow “Manual” mode is usedfor initial startup, and Auto-tuning the PID loop.

Productivity 3000 PAC Ladder Logic

Miscellaneous Logic – 1 of 2The process tank includes a floatswitch mounted through thetank’s lid and is used to “kill” thepower via the Power On/E-Stopcircuit to prevent water overflow.Included in the ladder logic is arung shown here to sound theaudible alarm if the float switch isactuated.

A three color Stack Light tower isalso used to indicate if thedesired volume is OK, belowdesired volume, or above desiredvolume. Here are a couple ofMath Instructions that are beingused to create a .02 gallon upperand lower alarm point value usedto compare between actual andset point. (cont’d)

Productivity 3000 PAC Ladder Logic

Miscellaneous Logic – 2 of 2The logic to control the threevarious colored Stack Lightsconsists of three simple contactand coil rungs, and the use of theCompare Contact Instruction.

The Red indicator is lit when theactual tank volume is “greaterthan” the “High_Indicator”calculated value.

The Amber indicator is lit whenthe actual tank volume is “lessthan” the “Low_Indicator”calculated value.

And finally, the Green indicator islit when the volume is withinrange based on the actual volumenot being above or below thecalculated high & low indicators.

Productivity 3000 PAC Ladder Logic

C-more PID Faceplate & Parameters Screens – 1 of 2As a finishing touch to our PID Loopapplication, we used a C-more Touch Panel.The C-more application software has withinits library a PID Faceplate Bar Meter thatworks perfectly with our PID application. Theuse of the faceplate makes PID setup, control,monitoring and tuning a breeze.

The PID Faceplate incorporates bar graphs forthe Set Point, Process Variable and ProcessOutput. It also displays status of operationmode (auto/manual) and alarm monitoring.

Along with the PID faceplate, we have usedthe C-more to add push buttons to enablethe PID loop and selecting the auto ormanual mode. A Numeric Entry object fromthe C-more object list is used to enter the SetPoint for the process tank’s desired volume.

A Screen Change push button is used to getus to the PID Parameters screen. (cont’d)

C-more Touch Panel

C-more PID Faceplate & Parameters Screens – 2 of 2A second C-more screen is available to allowmanually adjusting the Proportional, Integraland Derivative term values as required.

This screen also includes status indicators(Indicator Lights) for the main control power,overflow float switch condition, and thehealth of the Productivity 3000 optionalbattery used to retain the Time and Date, andretentive tagname values.

The Stack Light tower indicators used to showthe process tank’s volume condition areduplicated on this screen. This is ideal ifremote access to the C-more were done overthe internet.

Finally a Screen Change push button isavailable on this screen to get us back to themain PID Loop monitoring screen.

C-more Touch Panel

PID Loop Tuning – Manual – 1 of 4Once we have all of the equipment in place,wired, and checked out, we can next start theprocess, monitor it with the built-in PIDTuning feature, and step through manualtuning to test functionality and checkresponse.

Start with applying power to the equipmentand press the Power On push button. Via theC-more touch Panel, enter a value for P, I & Das described on the next slide, enter a volumesuch as 3.00 gallons, enable the PID, andenable Auto mode. The pump should run atmaximum output filling the process tank fromthe reservoir tank.

Our purpose at this point is to get enoughwater into the process tank so that the level isabove the bottom of the siphon tube locatedtoward the bottom of the process tank.

(cont’d)

PID Loop Tuning – Manual – 2 of 4Under safe conditions, and being ready to hitthe Emergency Stop push button, it is usuallya good idea to start with a Proportional valueof ‘10’, disable the Integral reset by enteringthe maximum value of ‘65,535’, and alsodisable the Derivative term by entering ‘0’.

As can be seen with the PID Tuning window,the volume has trouble reaching our SetPoint, mainly because a Proportional gain of‘10’, along with no Integral reset time, justisn’t enough for our particular application.

But once we have a couple of gallons in theprocess tank, we can open the ball valve anduse the primer squeeze bulb to start adrainage flow.

This will get us ready for the next step, whichis making manual changes to our P, I and Dterm values to have the pump increase thelevel to obtain the desired volume. (cont’d)

PID Tuning Monitoring

PID Loop Tuning – Manual – 3 of 4

Without changing our Proportional gain atthis time, we change the Integral reset time to‘1’ which allows for a faster correction of theaccumulation of ‘past’ errors, as we learnedearlier in this tutorial. As seen with the PIDTuning window, the pump is driven at fulloutput, bringing the volume up to our SetPoint value, with some overshoot. Afteroscillating around the Set Point for a periodof time, the volume settles down, but thetime it takes to do so is very slow.

Our next step in manually tuning the PIDLoop will be to increase the Proportional gainto obtain a faster response, enter a new SetPoint value, monitor the response using thePID Tuning window, and make adjustments tothe Integral reset time value to reduceoscillations, also called hunting. (cont’d)

PID Tuning Monitoring

PID Loop Tuning – Manual – 4 of 4

PID Tuning MonitoringThe manually tuning process takes some trialand error in making changes to the variousProportional and Integral term values,changing the Set Point, waiting for the resultswhile monitoring the response, and repeatingthese steps. Eventually you should seeimprovement with the PV getting to the SPwith little overshoot and no oscillations.

Our goal is to obtain optimal performance inthe PID Loop response, and seen here wewere able to obtain our best results with aProportional gain of ‘200’ and an Integralreset time value of ‘5’ seconds.

Because our process is a slow responding typeapplication, we do not require any Derivativetime. In fact, in our application, adding anyDerivative actually causes the PID loop tobecome unstable.

Next: The built-in Auto-Tuning feature.

PID Loop Tuning – Auto – 1 of 2To use the built-in Auto Tune feature, switchto Manual Mode and place the PID loop in asteady state by manually adjusting theProcess Output value. We used an Initial PVBump of 5% and leave the PV Deadband at‘0’. Again our process did not require aDerivative value, so only the PI radio buttonwas checked. Now click on the Auto Tune‘Start’ button in the PID Tuning window.

The current Process Variable will be copied tothe Set Point value, in our example thisbecame a volume of 3.0116088 gallons.

The Process Output will go to the upper limit(65,535) and drive the pump full on toincrease the volume in the tank.

Once the Process Variable reaches the InitialPV Bump, in our case 5%, or approximately3.15 gallons, the Process Output will go tothe lower limit (0). (cont’d)

PID Tuning Monitoring

PID Loop Tuning – Auto – 2 of 2When the Process Variable falls to the SetPoint, the Output is then driven to theOutput upper limit.

When the Process Variable rises to the SetPoint, the Output is driven to the Outputlower unit again.

The Output cycling pattern continues forthree full cycles, and when completed, theAuto Tune routine calculates the new valuesfor the P, I & D terms and writes them to theappropriate Tagnames.

Proportional Gain = 193

Integral Time = 4

Derivative Time = 0

These values are almost identical to thevalues that were determined by way of ourtrial and error manual tuning effort.

PID Tuning Monitoring

PID Loop Application Demonstration – 1 of 3 SUMMARY:

The PID Loop application example in this tutorial usesthe Productivity 3000 Programmable AutomationController to maintain a settable volume of liquid in acylindrical tank.

An ultrasonic sensor that outputs a 0-10 VDC analogsignal to an analog input module, plugged into thebase of our Productivity 3000 system, measures thelevel in the process tank, and with Math and Scalingprogramming instructions, a volume is calculated.

A diaphragm motor/pump, whose rate, via a DCmotor controller, is controlled by a 0-10 VDC analogoutput module, also plugged into the base of ourProductivity 3000 system, replenishes the liquid in theprocess tank as it is used.

The tank volume Set Point for our PID loop is enteredvia a C-more Touch Panel. A PID Faceplate Bar Graphfrom the C-more’s software object list is used tomonitor the Process Variable and Process Output.

(cont’d)

UltrasonicSensor

FloatSwitch

Productivity3000

StackLight

C-moreTouchPanel

PID Loop Application Demonstration – 2 of 3 SUMMARY (cont’d):

A ball valve is located in the drain linethat allows the rate at which the liquiddrains back to the 16 gallon reservoir tobe adjusted. There is also a flowindicator to show a visualization of howfast the 10 gallon process tank isdraining.

A primer squeeze bulb is used to startthe drainage from a siphon tube locatedin the process tank.

A Stack Light with three differentcolored indicators display if the actualtank volume is above, below or OK ascompared to the desired volume.

See the accompanying LEARN video tosee the PID Loop application in action!

(cont’d)

Productivity3000

C-moreTouchPanel

10 gal.Process Tank

16 gal.Reservoir

Tank

Relay Rack

Stack LightTower

Ball Valve

PID Loop Application Demonstration – 3 of 3 SUMMARY (cont’d):

As seen here, a paddle wheel type flowindicator was located in the drain line to givea visual indication of the drainage rate.

You may ask where an application to controlthe volume in a tank may be used?

Picture a situation where we are mixing asolution, and we need to maintain acontinuous concentration, but the mixedsolution is being used at an ongoing randomrate. Therefore we would need to maintainthe overall volume while measuring how muchsolution is used at any given instant, andadjust how much additive needs to bereplaced accordingly. This would be anothergood task for the Math Instruction availablein the Productivity 3000 ProgrammableAutomation Controller!

Flow Indicator

That’s it for now! I don’t haveanything else to say about PIDloops, but hopefully what wascovered in this presentation andthe accompanying LEARN videowill get you on your way the nexttime you are up against the wallon an application requiring a PIDloop, and you have the wisdom touse the Productivity 3000 tomake the challenge much easier toaccomplish!

Title VID Number

Part 1 of 11 – What is a PID Loop and what does it do? L-PC-P3K-005-1

Part 2 of 11 – How does a PID Loop work? L-PC-P3K-005-2

Part 3 of 11 – Application Example and Hardware Explained. L-PC-P3K-005-3

Part 4 of 11 – Programming – Hardware Configuration,Tagnames, and Calculations.

L-PC-P3K-005-4

Part 5 of 11 – Programming – More Math Calculations. L-PC-P3K-005-5

Part 6 of 11 – Programming – Scaling. L-PC-P3K-005-6

Part 7 of 11 – Programming – PID Loop. L-PC-P3K-005-7

Part 8 of 11 – Programming – Miscellaneous Logic. L-PC-P3K-005-8

Part 9 of 11 – Programming – C-more Touch Panel. L-PC-P3K-005-9

Part 10 of 11 – PID Tuning. L-PC-P3K-005-10

Part 11 of 11 – PID Loop Application Demonstration. L-PC-P3K-005-11

Available videos in the Productivity 3000 –Be More Productive – Programming (PID Loop) series:

Copyright 2011, AutomationDirect.com Incorporated/All Rights Reserved Worldwide.

Please note.

Learn.AutomationDirect.com is an online streaming tutorial site offering training and information on a wide range of practical automation products.

THE LEARN.AUTOMATIONDIRECT.COM WEBSITE, AND THE TRAINING AND INFORMATION PROVIDED IN CONNECTION THEREWITH, IS SUPPLIED "AS IS". These video presentations and other documents are provided by our associates to assist others in learning the products we sell and service. We make no representation, warranty or guaranty, whether expressed, implied or statutory, regarding the LEARN.AUTOMATIONDIRECT.COM website on the training, information and the content, including without limitation, the implied warranties of merchantability or fitness for a particular purpose, and any representation, warranty or guaranty that the foregoing will be accurate, complete, uninterrupted error free or non-infringing, is suitable for your particular application, nor do we assume any responsibility for the use of this information in your application.

User suggestions, corrections and feedback are not only welcomed, but are essential to the maintenance of current content and the creation of new content. If there is a training idea, or correction to an existing presentation you would like us to consider, please complete and submit the suggestion form that is shown as a “Suggestions” link at the bottom of every page.

Thank you!