Chapter 22
Chapter 22
Chapter 22
22-1
22.2.1
Proportional Controller
The digitized mathematical expression as follows: Mn = (D4005/Pb) (En) + Bias Where, Mn Output at time n. D4005The gain constant, the default is 1000, it's range is 15000. Pb Proportional band - the expression stating the percent change in error required to change the output full scale. Range15000, unit in 0.1%Kc(gain)=D4005/Pb En The difference between the set point (SP) and the process variable (PV) at time "n"; En = SP - PVn Ts Solution interval between calculationsRange13000, unit in 0.01S Bias Offset to the outputRange016383 The algorithm of "Proportional Controller" is very simple and easy to implement, and it takes less time for loop calculation. Most of the general applications, this kind of controller is good enough, but it needs to adjust the offsetBias to the output to eliminate the steady state error due to the change of set point.
22.2.2
The digitized mathematical expression as follows: n 0 Where, Mn Pb En Ki Ts Output at time n. Proportional band Range15000unit in 0.1%Kc(gain)=D4005/Pb The difference between the set point (SP) and the process variable (PV) at time "n"; En = SP - PVn Integral tuning constantRange09999it means 0.0099.99 Repeats/Minute Solution interval between calculationsRange13000, unit in 0.01S D4005The gain constant, the default is 1000, it's range is 15000.
Mn =(D4005/Pb) (En) +
[(D4005/Pb)KiTsEn] + Bias
Bias Offset to the outputRange016383 The most benefit of the controller with integral item is to overcome the shortage of the "Proportional Controller" mentioned above; via the integral contribution, the steady state error may disappear, thus it is not necessary to adjust the offset manually while changing the set point. Almost, the offsetBiasto the output will be 0.
22-2
22.2.3
Mn = (D4005/Pb) (En) +
D4005The gain constant, the default is 1000, it's range is 15000. Pb En Ki Td PVn Ts Bias Proportional band Range15000unit in 0.1%Kc(gain)=D4005/Pb The difference between the set point (SP) and the process variable (PV) at time "n"; En = SP - PVn Integral tuning constantRange09999it means 0.0099.99 Repeats/Minute Derivative tuning constant Range09999it means 0.0099.99 Minute Process variable at time n Solution interval between calculationsRange13000, unit in 0.01S Offset to the outputRange016383
Derivative item of the controller may have the contribution to make the response of controlling process smoother and not too over shoot. But because it is very sensitive of the derivative contribution to the process reaction, most of applications, it is not necessary of this item and let the tuning constant (Td) be equal to 0.
22-3
FUN 30 PID
FUN 30 PID
Ladder symbol
Mode A/M
30.PID Ts : SR :
Bumpless
BUM
OR : PR : WR :
ROR DR
Direction
D/R
Range Operand Ts SR OR PR WR
HR
* * * *
The FBs-PLC software algorithm uses mathematical functions to simulate a three-mode (PID) analog controlling technique to provide direct digital control. The control technique responds to an error with an output signal. The output is proportional to the error, the error's integral and the rate of change of the process variable. Control algorithms include, P, PI, PD and PID which all include the features of auto/manual operation, bumpless/balanceless transfers, reset wind-up protection, and adaptive tuning of gain, integral, and derivative terms.
The digitized mathematical expression of FBs-PLC PID instruction as bellows: Mn = (D4005/Pb) (En) +
D4005 The gain constant, the default is 1000, which can be set between 15000. Pb Proportional band - the expression stating the percent change in error required to change the output full scale. Range15000unit in 0.1%Kc(gain)=D4005/Pb Ki Td PVn PVn-1 En Integral tuning constant Range09999it means 0.0099.99 Repeats/Minute Derivative tuning constant Range09999it means 0.0099.99 Minute Process variable at time n Process variable when loop was last solved The difference between the set point (SP) and the process variable (PV) at time "n"; En = SP - PVn Ts Bias Solution interval between calculationsRange13000, unit in 0.01S Offset to the outputRange016383
22-4
FUN30 PID
FUN30 PID
Instruction description
When control input "A/M"=0, it performs manual control and will not execute the PID calculation. Directly fill the output value into the output register (OR) to control the loop operation. When control input "A/M"=1, it defines the auto mode of loop control; the output of the loop operation is loaded by the PID instruction every time it is solved. It is equal to Mn (control loop output) in the digital approximation equation. When control input "BUM"=1, it defines bumpless transfer while the loop operation changing from manual into auto mode. When control input "A/M"=1, and direction input "D/R"=1, it defines the direct control for loop operation; it means the output increases as error increases When control input "A/M"=1, and direction input "D/R"=0, it defines the reverse control for loop operation; it means the output decreases as error increases When comes the error setting of loop setting points or loop parameters, the PID operation will not be performed and the output indication "ERR" will be ON While the engineering value of the controlling process is greater than or equal to the user set High Limit, the output indication "HAL" will be ON regardless of "A/M" state. While the engineering value of the controlling process is less than or equal to the user set Low Limit, the output indication "LAL" will be ON regardless of "A/M" state.
22-5
FUN30 PID
FUN30 PID
Description of operand Ts TsIt defines the solution interval between PID calculations, the unit is in 0.01 sec; this term may be constant or variable data.
Description of operand SR (Loop setting registers) SR+0 = Scaled Process VariableThis register is loaded by the PID instruction every time it gets solved. A linear scaling is done on SR+6 using the high and low engineering range found in SR+4 and SR+5. SR+1 = Setpoint (SP) The user must load this register with the desired setpoint the loop should control at. The setpoint is entered in engineering units, it must be the rangeLER SP HER SR+2 = High Alarm Limit (HAL) The user must load this register with the value at which the process variable should be alarmed as a high alarm (above the setpoint). This value is entered as the actual alarm point in engineering units and it must be the rangeLER LAL < HAL HER SR+3 = Low Alarm Limit (LAL) The user must load this register with the value at which the process variable should be alarmed as a low alarm (below the setpoint). This value is entered as the actual alarm point in engineering units and it must be the rangeLER LAL < HAL HER SR+4 = High Engineering Range (HER) The user must load this register with the highest value for which the measurement device is spanned. (For example a thermocouple might be spanned for 0 to 500 degrees centigrade, resulting in a 0 to 10V analog input to the FBs-PLC (0V=0, 10V=500); the high engineering range is 500, this is the value entered into SR+4.) The high engineering range must be9999 < HER 19999 SR+5 = Low Engineering Range (LER)The user must load this register with the lowest value for which the measurement device is spanned. The low engineering range must be9999 LER LAL < HAL HER SR+6 = Raw Analog Measurement (RAM)The user's program must load this register with the process variable (measurement). It is the value that the content of analog input registerR3840R3903 is added by the offset if necessary. It must be the range0 RAM 16380 if the analog input is 14-bit format but valid 12-bit resolution, and 0 RAM 16383 if the analog input is 14-bit format and valid 14-bit resolution. The resolution of analog input can be defined by register D4004, D4004=0, it means 14-bit format but valid 12-bit resolution ; D4004=1, it means 14-bit format and valid 14-bit resolution. SR+7 = Offset of Process Variable (OPV)The user must load this register with the value as described follows: OPV must be 0 if the raw analog signal and the measurement span of the analog input module are all 020mA, there is no loss of the measurement resolution; OPV must be 3276 if the raw analog signal is 420mA but the measurement span of the analog input module is 0 20mA, there will have few loss of the measurement resolution163834 / 20 = 3276. It must be the range 0 OPV < 16383 When the setting mentioned above comes error, it will not perform PID operation and the output indication "ERR" will be ON.
Description of operand OR OROutput register, this register is loaded directly by the user while the loop in manual operation mode. While the loop in auto operation mode, this register is loaded by the PID instruction every time it is solved. It is equal to Mn (control loop output) in the digital approximation equation. It must be the range0 OR 16383
22-6
FUN 30 PID
FUN 30 PID
Description of operand PR (Loop parameters) PR+0 = Proportional Band (Pb)The user must load this register with the desired proportional constant. The proportion constant is entered as a value between 1 and 5000 where the smaller the number, the larger the proportional contribution. (This is because the equation uses D4005 divided by Pb.) It must be the range1 Pb 5000, unit is in 0.1% Kc(gain)=D4005/ Pb; the default of D4005 is 1000, and it's range is 1 D4005 5000. PR+1 = Integral tuning Constant (Ki)The user may load this register to add integral action to the calculation. The value entered is "Repeats/Minute" and is entered as a number between 0 and 9999. (The actual range is 00.00 to 99.99 Repeats/Minute.) The larger the number, the larger the integral contribution to the output. It must be the range0 Ki 9999 (0.0099.99 Repeats/Minute) PR+2 = Rate Time Constant (Td)The user may load this register to add derivative action to the calculation. The value is entered as minutes and entered as a number between 0 and 9999. (The actual range is 0.00 to 99.99 minutes.) The larger the number, the larger the derivative contribution to the output. It must be the range0 Td 9999 (0.0099.99 Minutes) PR+3 = BiasThe user may load this register if a bias is desired to be added to the output when using PI or PID control. A bias must be used when running proportional only control. The bias is entered as a value between 0 and 16383 and is added directly to the calculated output. Bias is not required for most applications and may be left at 0. It must be the range0 Bias 16383 PR+4 = High Integral Wind_up Limit (HIWL)The user must load this register with the output value, (1 to 16383), at which the loop shoud go into "anti-reset wind-up" mode. Anti-reset wind-up consists of solving the digital approximation for the integral value. For most applications this should be set to 16383. It must be the range1 HIWL 16383 PR+5 = Low Integral Wind_up Limit (LIWL)The user must load this register with manner as PR+4. For most applications this should be set to 0. It must be the range0 LIWL 16383 PR+6 = PID Method =0 , Standard PID method; =1 , Minimum Overshoot Method; Method 0 is prefer because most applications using PI control (Td=0). The user may try method 1 when using PID control and the result is not stable. the output value, (0
to 16383), at which the loop shoud go into "anti-reset wind-up" mode. It functions in the same
When the setting mentioned above comes error, it will not perform PID operation and the output indication "ERR" will be ON.
22-7
FUN 30 PID
FUN 30 PID
Description of operand WR (Working registers) WR+0 = Loop status register Bit0 =0 , Manual operation mode =1 , Auto mode Bit1 : This bit will be a 1 during the scan the solution is being solved, and it is ON for a scan time. Bit2=1 , Bumpless transfer Bit4 : The status of "ERR" indication Bit5 : The status of "HAL" indication Bit6 : The status of "LAL" indication WR+1 = Loop timer registerThis register stores the cyclic timer reading from the system's 1ms cyclic timer each time the loop is solved. The elapsed time is calculated by calculating the difference between the current reading of the system's 1ms cyclic timer and the value stored in this register. This difference is compared to 10 the solution interval. If the difference is greater than or equal to the solution interval, the loop should be solved this scan. WR+2 = Low order integral summationThis register stores the low order 16 bits of the 32-bit sum created by the integral term. WR+3 = High order integral summationThis register stores the high order 16 bits of the 32-bit sum created by the integral term. WR+4 = Process variable - previous solutionThe raw analog input (Register SR+6) at the time the loop was last sovled. This is used for the derivative control mode.
Program example
Adding the content of analog input register with the offset R2000 and stores it into R1006 being as the raw analog input of PID instruction.
When the value of R3840 is -81928191, the value of R2000 must be 8192 ; the value of R3840 is 016383, then the value of R2000 must be 0.
: R1006
M0 A/M
X0=0Manual operation =1Auto operation
30.PID Ts : R999 SR : R1000 BUM D/R OR : R1010 Pr : R1020 WR : R1030 12.(-) EN Sa : R1010 Sb : R2001 U/S D : R3904 D=0 CY BR
R1010 is the output of PID instruction. Deducting the offset R2001 from the output value and stores it into the analog output register for analog output. If the output value of R3904 is 016383, the value of R2001 must be 0 ; If the value of R3904 is -81928191, the value of R2001 must be 8192.
22-8
FUN 30 PID
FUN 30 PID
R999 The setting of solution interval between calculations; for example the content of R999 is 200, it means it will perform this PID operation every 2 seconds. R1000 Scaled process variable, which is the engineering unit loaded by the PID instruction every time it gets solved. A linear scaling is done on R1006 using the high and low engineering range found in R1004 and R1005. R1001 Setpoint, it is the desired value the loop should control at; which is entered in engineering unit. For example the span of controlling process is 0C500C, the setting of R1001 is equal to 100, it means the desired result is at 100C. R1002 The setting of high alarm limit; which is entered in engineering unit. The example mentioned above, if the setting of R1002 is equal to 105, it means there will have the high alarm while the loop is greater than or equal to 105C. R1003 The setting of low alarm limit; which is entered in engineering unit. The example mentioned, if the setting of R1003 is equal to 95, it means there will have the low alarm while the loop is less than or equal to 95C. R1004 The setting of high engineering range. The
R1020 The setting of proportional band; for example the content of R1020 is 20, it means the proportional band is 2.0% and the gain is 50. R1021 The setting of integral tuning constant; for example the content of R1021 is 17, it means the reset time is 6 minutes (100/617). R1022 The setting of derivative tuning constant; for example the content of R1022 is 0, it means PI control. R1023 The setting of the bias to the output; most applications let it be 0. R1024 The setting of high integral wind-up; most applications let it be 16383. R1025 The setting of low integral wind-up; most applications let it be 0. R1026 The setting of PID method; most applications let it be 0.
R1030 = Loop status register Bit0 =0, Manual operation mode =1, Auto operation mode Bit1 : This bit will be a 1 during the scan the solution is being solved, and it is ON for a scan time. Bit2=1 , Bumpless transfer Bit4 : The status of "ERR" indication
example mentioned, if the setting of R1004 is equal to 500, it means the highest value of this loop is 500C. R1005 The setting of low engineering range. The
example mentioned, if the setting of R1005 is equal to 0, it means the lowest value of this loop is 0C. R1006 Raw analog measurement; it is the value that the content of analog input register (R3840R3903) is added by the offset of 2048. R1007 Offset of process variable; let it be 0 if the raw analog signal and the span of the analog input module are all 010V.
Bit5 : The status of "HAL" indication Bit6 : The status of "LAL" indication
R1031R1034: They are the working registers, please refer to the description of operand WR.
22-9