Wiki source code of 11 PID Control Instruction

Last modified by Iris on 2025/09/17 20:56

Hide last authors
Iris 2.2 1 == **PID/PID calculation** ==
2
3 **PID**
4
5 This instruction is used to perform PID control that changes the output value according to the amount of input change.
6
7 -[PID (s1)(s2)(s3)(d)]
8
9 **Content, range and data type**
10
11 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
Iris 2.3 12 |(s1)|Device number for storing the target value (SV)|-32767 to 32767|Signed BIN 16 bit|ANY16
13 |(s2)|Device number for storing the measured value (PV)|-32767 to 32767|Signed BIN 16 bit|ANY16
14 |(s3)|Device number for storing parameters|1 to 32767|Signed BIN 16 bit|ANY16
15 |(d)|Device number for storing output value (MV)|-32767 to 32767|Signed BIN 16 bit|ANY16
Iris 2.2 16
17 **Device used**
18
Iris 2.3 19 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="3" %)**Devices**|(((
20 **Offset modification**
Iris 2.1 21 )))|(((
Iris 2.3 22 **Pulse extension**
Iris 2.1 23 )))
Iris 2.3 24 |**D**|**R**|**SD**|**[D]**|**XXP**
25 |(% rowspan="4" %)PID|Parameter 1|●|●|●| |
26 |Parameter 2|●|●|●| |
27 |Parameter 3|●|●|●| |
28 |Parameter 4|●|●|●| |
Iris 2.1 29
Iris 2.2 30 **Features**
31
32 This instruction is to complete the PID operation and is used to control the parameters of the closed-loop control system. PID control has a wide range of applications in mechanical equipment, pneumatic equipment, constant pressure water supply and electronic equipment, etc. among them:
33
Iris 2.4 34 [[image:11_html_1c6bb88c06ac24cf.png]] is the target value of PID control;
Iris 2.2 35
Iris 2.4 36 [[image:11_html_fb5122fb6e3a43d5.png]] is the measured feedback value;
Iris 2.2 37
Iris 2.4 38 [[image:11_html_6c3fad4a32a3db43.png]] The starting address of the buffer area for setting parameters required for PID operation and saving intermediate results, occupies a total of 26 variable units in the subsequent addresses, the value range is D0 to D7974, it is best to specify the power failure retention area, which will remain after the power is OFF Set the value, otherwise the buffer area needs to be assigned value before starting the operation for the first time. The function and parameter description of each unit are described in this section;
Iris 2.2 39
Iris 2.4 40 [[image:11_html_b126b1b2673dc1f4.png]] is the storage unit of the PID calculation result. Please designate [[image:11_html_d47cd1f59b766ed3.png]] as a non-battery holding area, otherwise it needs to be initialized and cleared before starting the calculation for the first time.
Iris 2.2 41
42 **Programming example**
43
Iris 2.3 44 [[image:1758108900843-990.png]]
Iris 2.2 45
Iris 2.3 46 The parameter description is as follows:
Iris 2.2 47
48 What is stored in D9 is the target value of PID adjustment, and D10 is the closed-loop feedback value. Note that D9 and D10 must be of the same dimension, such as both 0.01MPa units, or 1℃ units, etc.;
49
Iris 2.3 50 A total of 26 units of D200 to D225 are used to store the set value and process value of PID operation. These values must be set item by item before the first PID calculation;
Iris 2.2 51
52 The D130 unit is used to store the calculated control output value to control the execution of the action.
53
Iris 2.4 54 The function and setting method of the parameter value of each unit about starting of [[image:11_html_6c3fad4a32a3db43.png]] are described in the following table:
Iris 2.2 55
Iris 2.3 56 |**Unit**|**Features**|**Setting instructions**
Iris 2.4 57 |[[image:11_html_6c3fad4a32a3db43.png]]|Sampling time (TS)|The setting range is 1 to 32767 (ms), but it needs to be greater than the PLC program scan period
58 |[[image:11_html_6c3fad4a32a3db43.png]] +1|Action direction (ACT)|(((
Iris 2.2 59 bit0: 0 = positive action; 1 = reverse action bit3: 0 = unidirectional; 1 = bidirectional
60
61 bit4: 0 = auto-tuning does not work; 1 = auto-tuning is executed, others cannot be used.
62 )))
Iris 2.4 63 |[[image:11_html_6c3fad4a32a3db43.png]] +2|Maximum ascent rate (DeltaT)|Setting range 0 to 32000 is the threshold of integral increment
64 |[[image:11_html_6c3fad4a32a3db43.png]] +3|Proportional gain (Kp)|Setting range 0 to 32767, note that this value is enlarged by 256 times, the actual value is Kp/256
65 |[[image:11_html_6c3fad4a32a3db43.png]] +4|Integral gain (Ki)|Setting range 0 to 32767, Ki=16384Ts/Ti, Ti is the integral time
66 |[[image:11_html_6c3fad4a32a3db43.png]] +5|Differential gain (Kd)|Setting range 0 to 32767, Kd≈Td/Ts, Td is the derivative time
67 |[[image:11_html_6c3fad4a32a3db43.png]] +6|Filtering (C0)|Setting range 0 to 1023, integral part filtering
68 |[[image:11_html_6c3fad4a32a3db43.png]] +7|Output lower limit|(((
Iris 2.3 69 Recommended setting range -2000 to 2000
Iris 2.2 70
Iris 2.3 71 {{id name="OLE_LINK630"/}}When bit3 of S3+1=0, set to 0; When bit3 of S3+1=1, set to -2000;
Iris 2.2 72 )))
Iris 2.4 73 |[[image:11_html_6c3fad4a32a3db43.png]] +8|Output upper limit|Recommended setting value 2000
74 |[[image:11_html_6c3fad4a32a3db43.png]] +9|Reserved|Reserved
Iris 2.3 75 |︙|︙|︙
Iris 2.4 76 |[[image:11_html_6c3fad4a32a3db43.png]] +25|Reserved|Reserved
Iris 2.2 77
78 **Auto tuning example**
79
Iris 2.3 80 (% style="text-align:center" %)
81 [[image:11_html_c64303b9c6a47ae9.png||class="img-thumbnail"]]
Iris 2.2 82
83 **✎Note:**
84
Iris 2.3 85 ● When multiple instructions are used, the device number of (d) cannot be repeated.
Iris 2.2 86
Iris 2.3 87 ● During the execution of auto-tuning, the (s3) parameter space cannot be modified.
Iris 2.2 88
Iris 2.3 89 ● The instruction occupies 26 point devices from the device specified in (s3).
Iris 2.2 90
Iris 2.3 91 ● PID instruction can be used multiple times in the program and can be executed at the same time, but the variable area used in each PID instruction should not overlap; it can also be used in step instructions, jump instructions, timing interrupts, and subroutines, in this case When executing the PID instruction, the (s3)+9 cache unit must be cleared in advance.
Iris 2.2 92
Iris 2.3 93 ● The maximum error of the sampling time Ts is -(1 operation cycle +1ms) +(1 operation cycle). If the sampling time Ts ≤ 1 operation cycle of the programmable controller, the following PID operation error (4D86H) will occur, and the PID operation will be executed with TS = operation cycle. In this case, it is recommended to use constant scan mode or use PID instruction in timer interrupt.
Iris 2.2 94
95 **Error code**
96
97 |**Error code**|**Content**
98 |4085H|When the device specified in the read application instructions (s1), (s2), (s3), (d) exceeds the range of the corresponding device.
99 |4086H|When the device specified in the write application instruction (s3) and (d) exceeds the range of the corresponding device.
Iris 2.3 100 |4D80H|The sampling time is out of range.​(T,,S,,≤0)
101 |4D81H|Input filter constant (,, ,,α ) is out of range (α​<0 or α>1023)
102 |4D82H|The maximum ascent rate (△T) is out of range.(△T​<0 or △T​>1023)
103 |4D83H|The proportional gain (K//p//) is out of range.​​​​(K//p//<0)
104 |4D84H|The integral gain (K//i//) is out of range.(K//i​//<0)
105 |4D85H|The differential gain (K//d//) is out of range.​​​​(K//d//<0)
106 |4D86H|The sampling time (T//s//) is less than the operation cycle.​​​​(T//s//<Scan cycle)
Iris 2.2 107
Iris 2.3 108 **Example**
Iris 2.2 109
Iris 2.8 110 == **CCPID/CCPID calculation** ==
Iris 2.2 111
Iris 2.3 112 **CCPID**
113
Iris 2.2 114 This instruction is used to perform PID control that changes the output value according to the amount of input change.
115
Iris 2.3 116 -[CCPID (s1) (s2) (s3) (d)]
Iris 2.2 117
118 **Content, range and data type**
119
120 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
Iris 2.3 121 |(s1)|Device number for storing the target value (SV)|-32767 to 32767|Signed BIN 16 bit|ANY16
122 |(s2)|Device number for storing the measured value (PV)|-32767 to 32767|Signed BIN 16 bit|ANY16
123 |(s3)|Device number for storing parameters|1 to 32767|Signed BIN 16 bit|ANY16
124 |(d)|Device number for storing output value (MV)|-32767 to 32767|Signed BIN 16 bit|ANY16
Iris 2.2 125
126 **Device used**
127
Iris 2.3 128 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="3" %)**Devices**|(((
129 **Offset modification**
Iris 2.2 130 )))|(((
Iris 2.3 131 **Pulse extension**
Iris 2.2 132 )))
Iris 2.3 133 |**D**|**R**|**SD**|**[D]**|**XXP**
134 |(% rowspan="4" %)CCPID|Parameter 1|●|●|●| |
135 |Parameter 2|●|●|●| |
136 |Parameter 3|●|●|●| |
137 |Parameter 4|●|●|●| |
Iris 2.2 138
139 **Features**
140
Iris 2.3 141 After setting target value (s1), measured value (s2), parameter (s3) to (s3) +12 and executing the program, the calculation result (MV) will be stored to the output according to the first sampling time (s3) in the parameter Value (d). For details, please refer to the user manual of "Wecon CC Series ccpid Function Description v1.4".
Iris 2.2 142
143 **✎Note:**
144
145 It can be executed multiple times at the same time (there is no limit to the number of loops), but please note that the device numbers (s3) and (d) used in the calculation cannot be repeated.
146
147 The instruction occupies 52 points of devices starting from the device specified in (s3).
148
149 During the execution of auto-tuning, the (s3) parameter space cannot be modified.
150
151 **Error code**
152
Iris 2.8 153
Iris 2.2 154 |**Error code**|**Content**
155 |4085H|When the device specified in the read application instructions (s1), (s2), (s3), (d) exceeds the range of the corresponding device.
156 |4086H|When the device specified in the write application instruction (s3) and (d) exceeds the range of the corresponding device.
Iris 2.3 157 |4D80H|The sampling time is out of range.​(T,,S,,≤0)
Iris 2.8 158 |4D81H|Input filter constant (α) is out of range (α​<0 or α>1023)
Iris 4.1 159 |4D82H|The maximum ascent rate (△//T//) is out of range.(△//T//​<0 or △//T//​>1023)
Iris 4.2 160 |4D86H|The sampling time (Ts) is less than the operation cycle.​​​​(T//s//<Scanning cycle)
Iris 4.3 161 |4D87H|The proportional gain (K//p//) is out of range.​​​​(K//p//<1 or K//p//>32000)
Iris 2.8 162 |4D88H|The integral time constant (Ti) is out of range.(K//i​//<0 or K//i//>3600)
163 |4D89H|The differential time constant (T//d//) is out of range.(K//d//<0 or K//d//>1000)
164 |4D90H|The upper limit of CCPID output is less than the lower limit.
Iris 2.2 165
Iris 2.8 166 **Example**
Iris 2.2 167
Iris 2.8 168 See "CCPID Instruction Manual".
169
170 == **FPID/FPID calculation** ==
171
Iris 2.3 172 **FPID**
Iris 2.2 173
174 The function of this instruction is to adjust PID control parameters by fuzzy algorithm.
175
176 -[FPID (s) (d1) (d2) (d3)]
177
178 **Content, range and data type**
179
180 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
181 |(s)|Store the start number of the device of the fuzzy parameter table (no input required)|-|Signed BIN 16 bit|ANY16
182 |(d1)|Start number of the device storing the initialization parameters|-|Signed BIN 16 bit|ANY16
183 |(d2)|Store the start number of the device of the input PID parameter|-|Signed BIN 16 bit|ANY16
184 |(d3)|The start number of the device that stores the adjusted PID parameters|-|Signed BIN 16 bit|ANY16
185
186 **Device used**
187
Iris 2.3 188 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="4" %)**Soft component**|**Offset modification**|(((
189 **Pulse extension**
Iris 2.2 190 )))
Iris 2.3 191 |**D**|**R**|**SD**|**LC**|**[D]**|**XXP**
192 |(% rowspan="4" %)FPID|Parameter 1|●|●|●|●| |
193 |Parameter 2|●|●|●|●| |
194 |Parameter 3|●|●|●|●| |
195 |Parameter 4|●|●|●|●| |
Iris 2.2 196
197 **Features**
198
199 This instruction needs to be used in conjunction with the PID instruction. It completes the fuzzy calculation of the adjustments of the three parameters of PID, Kp, Ki, and Kd. By passing in the three parameters of the PID, the new three parameters are calculated and substituted into the PID for output control.
200
201 **Parameter Description:**
202
203 |(% colspan="6" %)**S parameter setting**
204 |**Parameter**|**Offset address**|**Name**|**Format**|**Instruction**|**Range**
205 |Parameter 1|S|-|-|-|-
206
207 |(% colspan="6" %)**d1 parameter setting**
208 |**Parameter**|**Offset address**|**Name**|**Format**|**Instruction**|**Range**
209 |(% rowspan="2" %)Parameter 1|d1|(% rowspan="2" %)em domain|(% rowspan="2" %)Floating point|(% rowspan="2" %)Temperature difference|(% rowspan="2" %)>0
210 |d1+1
211 |(% rowspan="2" %)Parameter 2|d1+2|(% rowspan="2" %)ecm domain|(% rowspan="2" %)Floating point|(% rowspan="2" %)Temperature difference|(% rowspan="2" %)>0
212 |d1+3
213 |(% rowspan="2" %)Parameter 3|d1+4|(% rowspan="2" %)kpm coefficient|(% rowspan="2" %)Floating point|(% rowspan="2" %)0.5 (fixed) (not set)|(% rowspan="2" %)-
214 |d1+5
215 |(% rowspan="2" %)Parameter 4|d1+6|(% rowspan="2" %)kim coefficient|(% rowspan="2" %)Floating point|(% rowspan="2" %)1 (fixed) (not set)|(% rowspan="2" %)-
216 |d1+7
217 |(% rowspan="2" %)Parameter 5|d1+8|(% rowspan="2" %)kdm coefficient|(% rowspan="2" %)Floating point|(% rowspan="2" %)1 (fixed) (not set)|(% rowspan="2" %)-
218 |d1+9
219 |(% rowspan="2" %)Parameter 6|d1+10|(% rowspan="2" %)EM|(% rowspan="2" %)32-bit integer|(% rowspan="2" %)6 (fixed) (not set)|(% rowspan="2" %)-
220 |d1+11
221 |(% rowspan="2" %)Parameter 7|d1+12|(% rowspan="2" %)ECM|(% rowspan="2" %)32-bit integer|(% rowspan="2" %)6 (fixed) (not set)|(% rowspan="2" %)-
222 |d1+13
223 |(% rowspan="2" %)Parameter 8|d1+14|(% rowspan="2" %)UM|(% rowspan="2" %)32-bit integer|(% rowspan="2" %)6 (fixed) (not set)|(% rowspan="2" %)-
224 |d1+15
225 |(% rowspan="2" %)Parameter 9|d1+16|(% rowspan="2" %)Size_x|(% rowspan="2" %)32-bit integer|(% rowspan="2" %)13 (fixed) (not set)|(% rowspan="2" %)-
226 |d1+17
227 |(% rowspan="2" %)Parameter 10|d1+18|(% rowspan="2" %)Size_y|(% rowspan="2" %)32-bit integer|(% rowspan="2" %)13 (fixed) (not set)|(% rowspan="2" %)-
228 |d1+19
229 |Parameter 11|d1+20|Kpm reserved for internal use|Reserved|Reserved|-
230 |Parameter 12|d1+21|Kim reserved for internal use|Reserved|Reserved|-
231 |Parameter 13|d1+22|Kdm reserved for internal use|Reserved|Reserved|-
232 |Parameter 14|d1+23|Kukp reserved for internal use|Reserved|Reserved|-
233 |Parameter 15|d1+24|Kuki reserved for internal use|Reserved|Reserved|-
234 |Parameter 16|d1+25|Kukd reserved for internal use|Reserved|Reserved|-
235 |︙|︙|︙|︙|Reserved|-
236 |Parameter 20|d1+37|Reserved for internal use|Reserved|Reserved|-
237
238 |(% colspan="6" %)**d2 parameter setting**
239 |**Parameter**|**Offset address**|**Name**|**Format**|**Instruction**|**Range**
240 |Parameter 1|d2|Current Temperature|16-bit integer|Current test temperature|-
241 |Parameter 2|d2+1|set temperature|16-bit integer|Set temperature|-
242 |Parameter 3|d2+2|Calculation period|16-bit integer|Take an integer multiple of the pid sampling time, usually the same|-
243 |Parameter 4|d2+3|Kp|16-bit integer|PID initial Kp value|-
244 |Parameter 5|d2+4|KI|16-bit integer|PID initial Ki value|-
245 |Parameter 6|d2+5|KD|16-bit integer|PID initial Kd value|-
246 |Parameter 7|d2+6|Sampling cycle|16-bit integer|No need to enter|-
247 |Parameter 8|d2+7|Initialization flag|16-bit integer|Reserved for internal use|-
248 |(% rowspan="2" %)Parameter 9|d2+8|(% rowspan="2" %)Last calculation time|(% rowspan="2" %)32-bit integer|(% rowspan="2" %)View usage (not operable)|(% rowspan="2" %)-
249 |d2+9
250 |Parameter 10|d2+10|Last temperature|16-bit integer|View usage (not operable)|-
251 |Parameter 11|d2+11|Reserved|16-bit integer|Reserved|
252 |(% colspan="6" %)**d3 parameter setting**
253 |**Parameter**|**Offset address**|**Name**|**format**|**Instruction**|**Range**
254 |Parameter 1|d3|Current Temperature|16-bit integer|Current test temperature|-
255 |Parameter 2|d3+1|set temperature|16-bit integer|Set temperature|-
256 |Parameter 3|d3+2|Calculation period|16-bit integer|Take an integer multiple of the pid sampling time, usually the same|-
257 |Parameter 4|d3+3|Kp|16-bit integer|Kp value of PID after adjustment|-
258 |Parameter 5|d3+4|KI|16-bit integer|Ki value of PID after adjustment|-
259 |Parameter 6|d3+5|KD|16-bit integer|Kd value of PID after adjustment|-
260 |Parameter 7|d3+6|Sampling cycle|16-bit integer|No need to enter|-
261 |Parameter 8|d3+7|Reserved|16-bit integer|Reserved|-
262
263 **✎Note:**
264
265 The instruction starts from the device specified in (d1) and occupies 38 points of the device, and initializes the parameters. Normally, it only needs to be initialized once before calling (some parameters are fixed) (occupies 38 words space).
266
267 The instruction starts with the device specified in (d2) and occupies 12 points of the device, input parameters, and input the first 6 parameters, where Kp, Ki, Kd are the initial values of the PID control parameters (occupies 12 words space) .
268
269 The instruction starts from the device specified in (d3) and occupies 8 points of soft elements and output parameters, among which Kp, Ki, Kd are the parameter values after fuzzy adaptive calculation, which can be input to the designated position of PID (occupy 8 words space).
270
271 The FPID instruction occupies 58 words. The address of each operand must have a specified interval interval, which cannot be occupied by other instructions.
272
273 **Error code**
274
275 |**Error code**|**Content**
276 |4085H|When the device specified in the read application instructions (d1), (d2), (d3) exceeds the range of the corresponding device.
277 |4086H|When the device specified in the write application instructions (d1), (d2), (d3) exceeds the range of the corresponding device.
278 |4D91H|FPID calculation cycle is less than or equal to 0
279 |4D92H|FPID parameter range error
280 |4D93H|FPID initial flag error
281
282 **Example**
283
284 ~1. Parameter d1
285
Iris 2.3 286 (% style="text-align:center" %)
287 [[image:11_html_93e9f66475d6eb0c.png||class="img-thumbnail"]]
Iris 2.2 288
289 2. Parameter d2
290
Iris 2.3 291 (% style="text-align:center" %)
292 [[image:11_html_548b859bc5568099.png||class="img-thumbnail"]]
Iris 2.2 293
294 3. Invoke FPID
295
Iris 2.3 296 (% style="text-align:center" %)
297 [[image:11_html_599ccfa817c379fd.png||class="img-thumbnail"]]
Iris 2.2 298
Iris 2.3 299 == **CCPID instruction introduction manual** ==
Iris 2.2 300
Iris 2.3 301 **Background and purpose**
Iris 2.2 302
Iris 2.3 303 (1) Background:
Iris 2.2 304
305 PID (proportion, integral, derivative) controller has been the earliest practical controller for nearly a hundred years, and it is still the most widely used industrial controller. The PID controller is simple and easy to understand, and does not require precise system models and other prerequisites in use, making it the most widely used controller.
306
Iris 2.3 307 (2) Purpose:
Iris 2.2 308
Iris 2.3 309 You might not be familiar with the parameter settings in the new series of CCPID for the first time, this manual could let you quickly understand the meaning of each parameter in the CCPID and the influence on the control effect, so that you can quickly learn the CCPID.
Iris 2.2 310
Iris 2.3 311 **Description of the host CCPID instruction**
Iris 2.2 312
313 **Instruction description**
314
315 **Content, range and data type**
316
317 |**Name**|**Features**|**Bits (bits)**|**Whether pulse type**|**Instruction format**|**Step count**
Iris 2.3 318 |CCPID|PID Operation|16|No|CCPID [[image:11_html_253eb1176b58e989.png]] [[image:11_html_80fccb1046bf8776.png]] [[image:11_html_8760537828f7beaf.png]] [[image:11_html_8b4fbd61f8ea9808.png]]|9
Iris 2.2 319
Iris 2.3 320 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="3" %)**Devices**|**Offset modification**|**Pulse extension**
321 |**D**|**R**|**SD**|**[D]**|**XXP**
322 |(% rowspan="4" %)CCPID|Parameter 1|●|●|●| |
323 |Parameter 2|●|●|●| |
324 |Parameter 3|●|●|●| |
325 |Parameter 4|●|●|●| |
Iris 2.2 326
327 **Device used**
328
Iris 2.4 329 [[image:11_html_954290ac172c672b.jpg]] is the target value (SV) of PID control;
Iris 2.2 330
Iris 2.4 331 [[image:11_html_31f47ac5eec30067.jpg]] is the measured feedback value (PV);
Iris 2.2 332
Iris 2.4 333 [[image:11_html_6dcdd8fc88703a47.jpg]] is the start address of the buffer area for setting parameters required for PID operation and saving intermediate results, occupying a total of 52 variable units of subsequent addresses (recommended to reserve 100 continuous spaces).The value range is D0 to D7,948, it is better to specify power failure retention, and the setting value remains after power supply is off. Otherwise,the buffer needs to be assigned value before starting the calculation for the first time. The function and parameter description of each unit are described in this section;
Iris 2.2 334
Iris 2.4 335 [[image:11_html_7e06d96423d5de52.jpg]] is the storage unit (MV) of the PID calculation result. Please specify it as a non-battery retentive area, otherwise it needs to be initialized and cleared before the first start of calculation.
Iris 2.2 336
Iris 2.3 337 (% style="text-align:center" %)
338 [[image:11_html_8eeef07485b91193.jpg||class="img-thumbnail"]]
Iris 2.2 339
Iris 2.3 340 **Programming example**
Iris 2.2 341
342 The parameter description is as follows:
343
Iris 2.3 344 In D9, the target value of PID adjustment is stored, and D10 is the closed-loop feedback value. Note that D9 and D10 must be of the same dimension, such as both 0.01MPa units, or 1℃ units, etc.;
Iris 2.2 345
Iris 2.3 346 A total of 52 units of D200 to D251 are used to store the set value and process value of PID operation. These values must be set item by item before the first PID calculation;
Iris 2.2 347
348 D130 unit is used to store the calculated control output value to control the execution of the action.
349
Iris 2.4 350 The functions and setting methods of the parameter values of each unit used by [[image:11_html_6dcdd8fc88703a47.jpg]] are described in the following table:
Iris 2.2 351
Iris 2.4 352 [[image:11_html_6dcdd8fc88703a47.jpg]] to [[image:11_html_6dcdd8fc88703a47.jpg]] +14 is the parameter range that can be set (parameters set when CCPID is executed).
Iris 2.2 353
Iris 2.4 354 [[image:11_html_6dcdd8fc88703a47.jpg]] +15 to [[image:11_html_6dcdd8fc88703a47.jpg]] +21 is the space used internally by CCPID control.
Iris 2.2 355
Iris 2.4 356 [[image:11_html_6dcdd8fc88703a47.jpg]] +22 to [[image:11_html_6dcdd8fc88703a47.jpg]] +51 is the parameter space used in the auto-tuning process.
Iris 2.2 357
358 |**Unit**|**Features**|**Setting instructions**|**Supplement**
Iris 3.1 359 |[[image:11_html_6dcdd8fc88703a47.jpg]]|Sample time (TS)|The set range is 1 to 32,767 (ms), but greater than PLC program scan cycle.|It is how often the instruction calculates and updates the output value (MV). When TS is less than one scan time, PID instruction is executed with one scan time and alarm 4D86H. When TS ≤ 0, alarm 4D80H and no execution.
Iris 4.2 360 |[[image:11_html_6dcdd8fc88703a47.jpg]]+1|Action direction (ACT)|(((
Iris 2.3 361 bit0: 0=positive action; 1=reverse action bit2: auto-tuning transition zone switch. 0=not open;1=open
Iris 2.2 362
363 bit3: 0=unidirection; 1=bidirection
364
Iris 2.3 365 Bit4: 0=auto-tuning does not execute; 1=execute auto-tuning
Iris 2.2 366
Iris 2.3 367 [Bit6:0=Two-stage auto-tuning does not execute. 1=Execute two-stage auto-tuning (bit4 must be set to 1).
Iris 2.2 368
Iris 2.3 369 bit7: 0=Three-stage auto-tuning does not execute. 1=Execute three-stage auto-tuning (bit4 must be set to 1 )]
Iris 2.2 370
371 The Others cannot be used.
372 )))|(((
Iris 2.3 373 bit0: Positive action: similar heating system, when the temperature is lower than the set value, increases the output ; Reverse action: similar cooling system, when the temperature is greater than the set value, increases the output.
Iris 2.2 374
Iris 2.3 375 bit2: Self-tuning transition zone switch. There is a transition zone size of 1.5℃ when opened.
Iris 2.2 376
Iris 2.3 377 bit3: Bidirection indicates that outputs the positive and negative values to the heating system or the cooling system to control two external systems by one PID.
Iris 2.2 378
Iris 2.3 379 bit4: **✎**When bit4=1 and bit6 and bit7 are not 1, auto-tuning is not executed. **✎**When bit4=0 and one of bit6 and bit7 is 1, auto-tuning is not executed. **✎**When bit4=1 and bit6 and bit7 are both 1, auto-tuning is executed
Iris 2.2 380 )))
Iris 4.2 381 |[[image:11_html_6dcdd8fc88703a47.jpg]]+2|Filter coefficient|The first-order inertia filter of feedback amount (0 to 100%) has a range of 0 to100|When the value is greater than or equal to 100, it will be executed as 0, that is, no filtering will be executed;
382 |[[image:11_html_6dcdd8fc88703a47.jpg]]+3|Proportional gain(Kp)|Set range: 0 to 30,000[%]|Overrun error 4D87H
383 |[[image:11_html_6dcdd8fc88703a47.jpg]]+4|Integration time (Ti)|Ti is integration time, and the range is 0 to 3,600 (s)|Overrun error 4D88H
384 |[[image:11_html_6dcdd8fc88703a47.jpg]]+5|Differential time (Td)|Td is derivative time, and the range is 0 to 1,000 (s)|Overrun error 4D89H
385 |[[image:11_html_6dcdd8fc88703a47.jpg]]+6|Working interval|Operating temperature setting enabled by PID (0 indicates no effect) The range is 0 to 1,000|It is recommended to be greater than 5°C, that is, 50 (precision 0.1°C). If it exceeds the range, the boundary value will be taken.
386 |[[image:11_html_6dcdd8fc88703a47.jpg]]+7|Output low limit|(((
Iris 2.3 387 Range: -10,000 to 10,000.
Iris 2.2 388
Iris 2.3 389 Recommended setting range: -2,000 or 0 (when S3+1 bit3=0, the lower limit = 0;
Iris 2.2 390
Iris 2.3 391 when bit3=1, the lower limit = -2,000)
Iris 2.2 392 )))|(((
393 ~1. Self-tuning initialization:
394
Iris 2.3 395 ① Unidirection control: the lower limit is 0;
Iris 2.2 396
Iris 2.3 397 ② Bidirection control: If the lower limit is greater than 0, adjust the lower limit to 0; if the upper limit and the lower limit are equal to 0, the default lower limit is -2,000. **✎**Note: If set to -2,000, and the output value (MV) is less than -2,000, it will output -2,000.
Iris 2.2 398
Iris 2.3 399 2. During the control process, the lower limit is dynamically adjustable. If the lower limit is greater than or equal to the upper limit, error 4D90H will be reported.
Iris 2.2 400 )))
Iris 4.2 401 |[[image:11_html_6dcdd8fc88703a47.jpg]]+8|Output upper limit|(((
Iris 2.3 402 Value range: -10,000 to 10,000.
Iris 2.2 403
404 Recommended setting value is 2,000
405 )))|(((
406 ~1. Self-tuning initialization:
407
Iris 2.3 408 ① Unidirection control: If the upper limit is less than 0, the default upper limit is 2,000;
Iris 2.2 409
Iris 2.3 410 ② Bidirection control: If the upper limit is less than 0, adjust the upper limit to 0; if the upper limit and the lower limit are equal to 0, the default upper limit is -2,000. **✎**Note: If set to -2,000 and the output value (MV) is greater than -2,000, it will output 2,000.
Iris 2.2 411
Iris 2.3 412 2. During the control process, the upper limit is dynamically adjustable. If the lower limit is greater than or equal to the upper limit, error 4D90H will be reported.
Iris 2.2 413 )))
Iris 4.2 414 |[[image:11_html_6dcdd8fc88703a47.jpg]]+9|Mode setting|(((
Iris 2.3 415 0: Overshoot allowed
Iris 2.2 416
Iris 2.3 417 1: Slight overshoot or no overshoot
Iris 2.2 418
419 2: Dynamic setting
420 )))|(((
Iris 2.3 421 0:Overshoot allowed (ukd = 100)
Iris 2.2 422
Iris 2.3 423 1: Slight overshoot or no overshoot mode (ukd = 300)
Iris 2.2 424 )))
Iris 4.2 425 |[[image:11_html_6dcdd8fc88703a47.jpg]]+10|(((
Iris 2.2 426 Scale factor
427
428 (ukp)
Iris 2.3 429 )))|Typically sets value to 100 (default 100) [enabled when S3+9 is set to 2].The range is 1 to 500.|When the value is less than or equal to 0, or greater than 500, the boundary value will be taken.
Iris 4.2 430 |[[image:11_html_6dcdd8fc88703a47.jpg]]+11|Integral coefficient (uki)|Typically sets value to 50 (default 50) [enabled when S3+9 is set to 2]. The range is 1 to 300.|When the value is less than or equal to 0, or greater than 300, the boundary value will be taken.
431 |[[image:11_html_6dcdd8fc88703a47.jpg]]+12|Differential coefficient (ukd)|Typically sets value to 50 (default 100. 300 to 400 can be set when slight overshoot is required) [Enable when S3+9 is set to 2]. The range is 1 to 500.|When the value is less than or equal to 0, or greater than 500, the boundary value will be taken.
432 |[[image:11_html_6dcdd8fc88703a47.jpg]]+13|Maximum ascent rate (DeltaT)|The range is 0 to 32,000, which is the threshold of integral increment|Overrun error 4D82H
433 |[[image:11_html_6dcdd8fc88703a47.jpg]]+14|Filtering (C0)|The range is 0 to 1,023, integral part filtering|Overrun error 4D81H
434 |[[image:11_html_6dcdd8fc88703a47.jpg]]+15|(% rowspan="3" %)reserved for internal control|(% rowspan="3" %)Internal control space occupation|(% rowspan="3" %)
Iris 2.2 435 |┆
Iris 4.2 436 |[[image:11_html_6dcdd8fc88703a47.jpg]]+21
437 |[[image:11_html_6dcdd8fc88703a47.jpg]]+22|(% rowspan="3" %)used space for self-tuning|(% rowspan="3" %)New self-tuning space for internal use|(% rowspan="3" %)
Iris 2.2 438 |┆
Iris 4.2 439 |[[image:11_html_6dcdd8fc88703a47.jpg]]+51
Iris 2.2 440
Iris 2.3 441 1) The auto-tuning process occupies the space of S3+22 to S3+51. When the auto-tuning is successful, the adjusted parameters will be written into the space of S3+2 to S3+21.
Iris 2.2 442
Iris 4.2 443 2)[[image:11_html_6dcdd8fc88703a47.jpg]] +2 filter coefficient α: Processing in first-order inertial filter
Iris 2.2 444
445 Formula: **T,,now,,=(100-α)×T,,α,,+α×T,,old,,**
446
Iris 2.3 447 T,,α ,,is the currently measured temperature. T,,old ,,is the temperature that participated in the PID calculation last time. T,,now ,,is the temperature used for the current PID calculation. α is the filter coefficient (when α=0, no filtering is performed, and the range of α is 0 to 100.(If there is a temperature with a small overshoot but a long stabilization time, the parameter can be set to 80, and analyze the specific problems in detail)
Iris 2.2 448
Iris 4.2 449 3)[[image:11_html_6dcdd8fc88703a47.jpg]] +6 work range: Twork(example: 170 represents 17℃)
Iris 2.2 450
Iris 2.3 451 (% style="text-align:center" %)
Iris 2.8 452 [[image:企业微信截图_17581105436817.png||height="197" width="652"]]
Iris 2.2 453
Iris 4.2 454 4) [[image:11_html_6dcdd8fc88703a47.jpg]]+9 working mode:
Iris 2.2 455
456 0: Working mode that allows overshoot
457
Iris 2.3 458 1: Slight overshoot or no overshoot working mode
Iris 2.2 459
Iris 2.8 460 2: Custom settings; to achieve by setting [[image:1758111151287-920.png||height="15" width="28"]]+10, [[image:1758111151287-920.png||height="15" width="28"]]+11, [[image:1758111151287-920.png||height="15" width="28"]]+12 three coefficients.
Iris 2.2 461
Iris 4.2 462 5)[[image:11_html_6dcdd8fc88703a47.jpg]] +1 bit2 self-tuning transition zone switch: (upper limit 1℃, low limit 0.5℃)
Iris 2.2 463
Iris 2.3 464 The transition zone description in forward control:
Iris 2.2 465
Iris 2.3 466 (% style="text-align:center" %)
467 [[image:11_html_d90c24627566bf2f.gif||class="img-thumbnail"]]
Iris 2.2 468
Iris 2.3 469 In the heating process, when PV≤SV+1℃, 100% power output; when PV>SV+1℃, no output.
Iris 2.2 470
Iris 2.3 471 In the cooling process, when PV<SV-0.5℃, 100% power output; When PV≥SV-0.5℃, no output.
Iris 2.2 472
Iris 2.3 473 The transition zone description in reverse control:
Iris 2.2 474
Iris 2.3 475 (% style="text-align:center" %)
476 [[image:11_html_d3c25044a54c62ce.gif||class="img-thumbnail"]]
Iris 2.2 477
Iris 2.3 478 In the cooling process, when PV≥SV-1℃, 100% power output; when PV<SV-1℃, no output.
Iris 2.2 479
Iris 2.3 480 In the heating process, when PV>SV+0.5℃, 100% power output; When PV≤SV+0.5℃, no output.
Iris 2.2 481
Iris 2.3 482 The transition zone description in bidirectional control:
Iris 2.2 483
Iris 2.3 484 (% style="text-align:center" %)
485 [[image:11_html_9eb35607c95b1580.gif||class="img-thumbnail"]]
Iris 2.2 486
487 In the heating process, when PV≤SV+1℃, 100% power heating output; when PV>SV+1℃, 100% power cooling output.
488
489 In the cooling process, when PV<SV-0.5℃, 100% power heating output. When PV≥SV-0.5℃, 100% power cooling output
490
Iris 2.3 491 **Programming case**
Iris 2.2 492
493 **CCPID application configuration**
494
Iris 2.3 495 (1) Parameter setting
Iris 2.2 496
Iris 2.3 497 (% style="text-align:center" %)
498 [[image:11_html_36a152ee534a7f24.png||class="img-thumbnail"]]
Iris 2.2 499
Iris 2.3 500 (2) CCPID control process setting
Iris 2.2 501
Iris 2.3 502 (% style="text-align:center" %)
503 [[image:11_html_51d50fa8b154baca.png||class="img-thumbnail"]]
Iris 2.2 504
Iris 2.3 505 (% style="text-align:center" %)
506 [[image:11_html_66c8a636f6176c1f.png||class="img-thumbnail"]]
Iris 2.2 507
Iris 2.3 508 (3) Bidirection control
Iris 2.2 509
Iris 2.3 510 (% style="text-align:center" %)
511 [[image:11_html_234093eac2fe184d.png||class="img-thumbnail"]]
Iris 2.2 512
513 **✎Note:**
514
Iris 2.3 515 ~1. CCPID is a special instruction for operation control. CCPID operation will be executed only after the sample time is reached.
Iris 2.2 516
517 2. There is no limit to the number of times the CCPID instruction can be used, but+51 cannot be repeated.
518
519 3. Before CCPID instruction is executed, CCPID parameters need to be set.
520
521 **Case analysis**
522
Iris 2.3 523 **(1) Control requirements**
Iris 2.2 524
525 The control environment of this example is a kettle. The configuration is controlled by PLC-5V2416 host with 4PT module, and PI8070 screen is used for data storage and process curve viewing.
526
Iris 2.3 527 **(2) Sample program**
Iris 2.2 528
Iris 2.3 529 (% style="text-align:center" %)
530 [[image:11_html_f0a22955a8da7129.png||class="img-thumbnail"]]
Iris 2.2 531
Iris 2.3 532 (% style="text-align:center" %)
533 [[image:11_html_ad08c65bd672c66e.png||class="img-thumbnail"]]
Iris 2.2 534
Iris 2.3 535 **(3) Parameter description**
Iris 2.2 536
537 |**PLC device**|**Control instructions**
538 |M0|Set auto tuning
539 |M1|CCPID instruction calculation start
540 |M2|CCPID operating status
541 |Y0|Pulse output with adjustable pulse width
542 |D0|Temperature measured value
Iris 2.3 543 |D1|Temperature setting value
544 |D100|sample time
Iris 2.2 545 |D101|Control detail settings
546 |D102|First-order inertial filter coefficient
547 |D106|Working interval
Iris 2.8 548 |D109|Working mode
Iris 2.2 549
Iris 2.3 550 **(4) Parameter control effect description**
Iris 2.2 551
Iris 2.3 552 1) Boiling water experiment
Iris 2.2 553
Iris 2.3 554 ① Auto-tuning process and control process (no transition zone setting), take two-stage auto-tuning as an example
Iris 2.2 555
Iris 2.3 556 (% style="text-align:center" %)
557 [[image:11_html_9149b1e837158a17.gif||class="img-thumbnail"]]
Iris 2.2 558
559 Figure 1 Auto-tuning process curve without transition zone
560
561 When the control system is a single temperature control system or a system where environmental interference does not cause large fluctuations. Generally the automatic tuning without transition zone is selected, so that the self-tuning process can be completed more quickly than the method with transition zone.
562
Iris 2.3 563 ②Self-tuning process and control process (transition zone setting)
Iris 2.2 564
Iris 2.3 565 (% style="text-align:center" %)
566 [[image:11_html_a1e8ad7a31bb04af.gif||class="img-thumbnail"]]
Iris 2.2 567
568 Figure 2 Self-tuning process curve with transition zone
569
Iris 2.3 570 It is more suitable in a two-way control system with transition zone self-tuning process. The transition zone has a range of 1.5°C. The upper limit is 1°C, and the lower limit is 0.5°C.
Iris 2.2 571
Iris 2.3 572 2) Difference in working interval setting
Iris 2.2 573
Iris 2.3 574 (% style="text-align:center" %)
575 [[image:11_html_4140432ce11883ad.gif||class="img-thumbnail"]]
Iris 2.2 576
577 Figure 3 Process curve under different working interval parameters
578
Iris 2.3 579 (% style="text-align:center" %)
580 [[image:11_html_f742d80c8cc95f35.gif||class="img-thumbnail"]]
Iris 2.2 581
582 Figure 4 Process curve without different working interval parameters (heating process diagram)
583
584 It can be seen from the partially enlarged graph that the parameters of the working interval have a certain influence on the overshoot and the stable time. In the case of allowing overshoot, setting the working interval parameters can make the overshoot smaller. This is because the deviation E of PID starting to work is relatively small, and the integration accumulation will not quickly saturate.
585
Iris 2.3 586 3) Result of filter coefficient setting
Iris 2.2 587
Iris 2.3 588 (% style="text-align:center" %)
589 [[image:11_html_815ec6c129ae3891.gif||class="img-thumbnail"]]
Iris 2.2 590
591 Figure 5 Process curve under different filtering parameters
592
Iris 2.3 593 The figure above is the experimental result under the small overshoot coefficient, the sample time is 1s. The coefficients of the first-order inertial filtering are (20, 50, 70, 80, 90). After adding the inertia coefficient, the stability time of system control is greatly accelerated, and it is increased by about 6 minutes for the boiling water experiment. The overshoot is about 1.2°C to 1.7°C.
Iris 2.2 594
Iris 2.3 595 Therefore, the introduction of first-order inertial filtering could greatly improve the PID environment where the temperature fluctuates to a certain extent and increase stabilization time.
Iris 2.2 596
Iris 2.3 597 **✎Note: **This parameter of filter coefficient is helpful for systems with not very large hysteresis or the control effect of the phenomenon that the control amount fluctuates back and forth has been greatly improved.
Iris 2.2 598
Iris 2.3 599 4) The difference in mode selection
Iris 2.2 600
601 0: Overshoot allowed(ukd = 100)
602
603 1: Small overshoot or no overshoot (ukd = 300)
604
Iris 2.3 605 (% style="text-align:center" %)
606 [[image:11_html_3a7b42c8f4672ce4.gif||class="img-thumbnail"]]
Iris 2.2 607
608 Figure 6 Process curves in different working modes
609
Iris 2.3 610 When selecting mode 1 (small overshoot or no overshoot), the stable temperature may be slightly higher than the set temperature (fluctuates above the set temperature).
Iris 2.2 611
Iris 2.3 612 5) The function of the coefficient
Iris 2.2 613
Iris 2.3 614 (% style="text-align:center" %)
615 [[image:11_html_74a7527eace55103.gif||class="img-thumbnail"]]
Iris 2.2 616
Iris 4.4 617 == ** CCPIN_SHT operation** ==
Iris 2.2 618
Iris 4.4 619 **CCPIN_SHT**
Iris 4.3 620
621 This instruction is used to perform PID control that changes the output value according to the variation of the input.
622
623 -[CCPID_SHT (s1) (s2)  (s3) (d)]
624
625 **Content, range and data type**
626
627 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
628 |(s1)|The device number that stores the target value (SV)|-32767 to 32767|Signed BIN 16 bit|ANY16
629 |(s2)|The device number that stores the measured value (SV)|-32767 to 32767|Signed BIN 16 bit|ANY16
630 |(s3)|The device number that stores parameters|1 to 32767|Signed BIN 16 bit|ANY16
631 |(d)|The device number that stores the output value (SV)|-32767 to 32767|Signed BIN 16 bit|ANY16
632
633 **Device used**
634
Iris 4.4 635 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="3" %)**Devices**|(((
Iris 4.3 636 **Offset**
637
638 **modification**
639 )))|(((
640 **Pulse**
641
642 **extension**
643 )))
Iris 4.4 644 |**D**|**R**|**SD**|**[D]**|**XXP**
645 |(% rowspan="4" %)CCPID_SHT|Parameter 1|●|●|●| |
646 |Parameter 2|●|●|●| |
647 |Parameter 3|●|●|●| |
648 |Parameter 4|●|●|●| |
Iris 4.3 649
650 **Features**
651
652 This instruction is to complete the temperature control operation, used to control the parameters of the closed-loop control system.
653
Iris 4.4 654 [[image:1758113204827-229.png]] is the target value of CCPID SHT control (SV).
Iris 4.3 655
Iris 4.4 656 [[image:1758113217569-229.png]] is the measured feedback value (PV).
Iris 4.3 657
Iris 4.4 658 [[image:1758113227549-844.png]] is the start address of the cache where the parameters required by CCPID_SHT operation and intermediate results are saved,
Iris 4.3 659
660 occupying a total of 36 variable units of subsequent addresses. The value range is from D0 to D7946 or from R0 to R29964. It is better to specify power failure retention, and the setting value remains after power supply is off. Otherwise, the cache needs to be assigned value before starting the calculation for the first time. The function and parameter description of each unit are described in this section.
661
Iris 4.4 662 [[image:1758113243743-809.png]] is the storage unit of the CCPID_SHT calculation result. Please specify it as a non-battery retentive area, otherwise it needs to be initialized and cleared before the first start of calculation.
Iris 4.3 663
664 **Programming example**
665
Iris 4.4 666 [[image:1758113269397-376.png]]
Iris 4.3 667
Iris 4.4 668
Iris 4.3 669 The parameter description is as follows:
670
671 The target value of CCPID_SHT adjustment is stored in D1, and D0 is the closed-loop feedback value. Note that D0 and D9 must be of the same dimension, such as both 0.01MPa units, or 1℃ units, etc..
672
673 A total of 36 units of D1000 to D1035 are used to store the set value and process value of CCPID_SHT operation. These values must be set item by item before the first CCPID_SHT calculation.
674
675 D100 unit is used to store the calculated control output value to control the execution of the action.
676
Iris 4.4 677 [[image:1758113227549-844.png]]The functions and setting methods of the parameter values of each unit at the beginning are described in the table below:
Iris 4.3 678
Iris 4.4 679 [[image:1758113227549-844.png]]to[[image:1758113227549-844.png]] +15 is the parameter range that can be set (parameters set when CCPID_SHT is executed).
Iris 4.3 680
Iris 4.4 681 [[image:1758113227549-844.png]]+2 to [[image:1758113227549-844.png]]+31 is the parameter space used in the self-tuning process. (This space is multiplexed with the parameter space during control)
Iris 4.3 682
683
Iris 4.4 684 The functions and setting methods of the parameter values of each unit started by are described in the following table:
Iris 4.3 685
Iris 4.4 686 |(% style="width:106px" %)**Unit**|(% style="width:146px" %)**Function**|**Description**
687 |(% style="width:106px" %)[[image:1758113227549-844.png]]|(% style="width:146px" %)Sampling time (TS)|Range: 1 to 32767 (ms). It must be longer than PLC program scan cycle.
688 |(% style="width:106px" %)[[image:1758113227549-844.png]]+1|(% style="width:146px" %)Control flag bit|(((
Iris 4.3 689 bit0: 0=Forward action; 1=Reverse action
690
691 bit3: 0=one-way; 1=two-way
692
693 bit4: 0=Self-tuning does not act; 1=Perform self-tuning and the others are not available.
694
695 bit6: 0=Two-segment self-tuning does not act; 1=Perform two-segment self-tuning (bit4 must set to 1)
696
697 bit7: 0=Three-segment self-tuning does not act; 1=Perform three-segment self-tuning (bit4 must set to 1)
698
699 Bit15: The instruction initialization flag bit. When initialization is complete, it is set to 1.
700 )))
Iris 4.4 701 |(% style="width:106px" %)[[image:1758113227549-844.png]]+2|(% style="width:146px" %)Maximum rate of increase (DeltaT)|Range: 0 to 32000. Threshold of integral increment
702 |(% style="width:106px" %)[[image:1758113227549-844.png]]+3|(% style="width:146px" %)Proportional gain (Kp)|Range: 0 to 32767. This value is magnified 256 times and the actual value is Kp/256.
703 |(% style="width:106px" %)[[image:1758113227549-844.png]]+4|(% style="width:146px" %)Integral gain (Ki)|Range: 0 to 32767, Ki=16384Ts/Ti,Ti is integral time
704 |(% style="width:106px" %)[[image:1758113227549-844.png]]+5|(% style="width:146px" %)Differential gain (Kd)|Range: 0 to 32767, Kd≈Td/Ts, Td is differential time
705 |(% style="width:106px" %)[[image:1758113227549-844.png]]+6|(% style="width:146px" %)Filter constant (Co)|Range: 0 to 1023, Integral partial filtering.
706 |(% style="width:106px" %)[[image:1758113227549-844.png]]+7|(% style="width:146px" %)Output lower limit|Recommended setting range: -2000 to 2000
707 |(% style="width:106px" %)[[image:1758113227549-844.png]]+8|(% style="width:146px" %)Output upper limit|Recommended setting value: 2000. When the upper and lower limits are both 0, the upper limit becomes 2000 and the lower limit becomes 0.
708 |(% style="width:106px" %)[[image:1758113227549-844.png]]+9|(% style="width:146px" %)Reserved|Reserved for internal use
709 |(% style="width:106px" %)┇|(% style="width:146px" %)┇|┇
710 |(% style="width:106px" %)[[image:1758113227549-844.png]]+35|(% style="width:146px" %)Reserved|Reserved for internal use
Iris 4.3 711
712 Parameter space corresponding to the self-tuning time
713
Iris 4.4 714 |(% style="width:106px" %)**Unit**|(% style="width:141px" %)**Function**|**Description**
715 |(% style="width:106px" %)[[image:1758113227549-844.png]]|(% style="width:141px" %)Sampling time (TS)|Range: 1 to 32767 (ms). It must be longer than PLC program scan cycle.
716 |(% style="width:106px" %)[[image:1758113227549-844.png]]+1|(% style="width:141px" %)Control flag bit|(((
Iris 4.3 717 bit0: 0=Forward action; 1=Reverse action
718
719 bit3: 0=one-way; 1=two-way
720
721 bit4: 0=Self-tuning does not act; 1=Perform self-tuning and the others are not available.
722
723 bit6: 0=Two-segment self-tuning does not act; 1=Perform two-segment self-tuning (bit4 must set to 1)
724
725 bit7: 0=Three-segment self-tuning does not act; 1=Perform three-segment self-tuning (bit4 must set to 1)
726
727 Bit15: This instruction initializes the flag bit. When initialization is complete, the position is set to 1.
728 )))
Iris 4.4 729 |(% style="width:106px" %)[[image:1758113227549-844.png]]+2|(% style="width:141px" %)Sampling time of PID running after self-tuning|Setting range: 1 to 32767 ms(). When Ts≦0, Ts=3000
730 |(% style="width:106px" %)[[image:1758113227549-844.png]]+3|(% style="width:141px" %)Coefficient ukp for PID parameter calculation|Setting range: 0 to 500. When ukp≦0, ukp=100; When ukp≧500, ukp=500.
731 |(% style="width:106px" %)[[image:1758113227549-844.png]]+4|(% style="width:141px" %)Coefficient uki for PID parameter calculation|Setting range: 0 to 32767. When uki≦0, uki=50.
732 |(% style="width:106px" %)[[image:1758113227549-844.png]]+5|(% style="width:141px" %)Coefficient ukd for PID parameter calculation|Setting range: 0 to 32767. When ukd≦0, ukd=50.
733 |(% style="width:106px" %)[[image:1758113227549-844.png]]+6|(% style="width:141px" %)Reserved|Reserved
734 |(% style="width:106px" %)[[image:1758113227549-844.png]]+7|(% style="width:141px" %)Output lower limit|Recommended setting range: -2000 to 2000
735 |(% style="width:106px" %)[[image:1758113227549-844.png]]+8|(% style="width:141px" %)Output upper limit|Recommended setting value: 2000. When the upper and lower limits are both 0, the upper limit becomes 2000 and the lower limit becomes 0.
736 |(% style="width:106px" %)[[image:1758113227549-844.png]]+9|(% style="width:141px" %)Reserved|Reserved for internal use
737 |(% style="width:106px" %)┇|(% style="width:141px" %)┇|┇
738 |(% style="width:106px" %)[[image:1758113227549-844.png]]+35|(% style="width:141px" %)Reserved|Reserved for internal use
Iris 4.3 739
740 **Error code**
741
742 |**Error code**|**Content**
743 |4085H|Read application instruction (S1), (S2), (S3) and (d) output results exceed the range of device.
744 |4086H|The devices specified in write application instruction (S3) and (d) exceed the range of the corresponding device.
745 |4DB0H|Sampling time (Ts) exceeds the range the object (Ts≦0)
746 |4DB1H|Output filter constant (Co) exceeds the range the object (Co<0 or Co>1023)
747 |4DB2H|Maximum rate of increase (DeltaT) exceeds the range the object (deltaT<0 or deltaT>32000)
748 |4DB3H|Proportional gain (Kp) exceeds the range the object (Kp≦0)
749 |4DB4H|Integral gain (Ki) exceeds the range the object (Ki≦0)
750 |4DB5H|Differential gain (Kd) exceeds the range the object (Kd≦0)
751 |4DB6H|Sampling time (Ts) < operation cycle
752
753 **Example**
754
755
756
Iris 4.4 757 (% style="text-align:center" %)
758 [[image:企业微信截图_17581134583885.png]]
Iris 4.3 759
Iris 4.4 760 (% style="text-align:center" %)
761 [[image:企业微信截图_17581134696804.png]]
762
Iris 2.8 763 == **LAGCDL Large time-delay temperature control instruction** ==
Iris 2.2 764
Iris 2.8 765 **LAGCDL**
Iris 2.2 766
767 This instruction is used to perform large time-delay system temperature control that changes the output value according to changes in the input.
768
769 -[LAGCDL (s1) (s2)  (s3) (d)]
770
771 **Content, range and data type**
772
773 |**Parameter**|**Content**|**Range**|**Data type**|**Data type (label)**
774 |(s1)|The device number that stores the target value (SV)|-32767 to 32767|Signed BIN 16 bit|ANY16
775 |(s2)|The device number that stores the measured value (SV)|-32767 to 32767|Signed BIN 16 bit|ANY16
776 |(s3)|The device number that stores parameters|1 to 32767|Signed BIN 16 bit|ANY16
777 |(d)|The device number that stores the output value (SV)|-32767 to 32767|Signed BIN 16 bit|ANY16
778
779 **Device used**
780
Iris 2.8 781 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="8" %)**Devices**|(((
Iris 2.2 782 **Offset**
783
784 **modification**
785 )))|(((
786 **Pulse**
787
788 **extension**
789 )))
Iris 2.8 790 |**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
791 |(% rowspan="4" %)LAGCDL|Parameter 1|●|●|●| | | | | | |
792 |Parameter 2|●|●|●| | | | | | |
793 |Parameter 3|●|●|●| | | | | | |
794 |Parameter 4|●|●|●| | | | | | |
Iris 2.2 795
796 **Features**
797
798 This instruction is to complete large time-delay system control operation, and used to control the parameters of the closed-loop control system.
799
Iris 2.8 800 [[image:1758111592778-873.png]]is the target value of CCPID SHT control (SV).
Iris 2.2 801
Iris 2.8 802 [[image:1758111614838-309.png]]is the measured feedback value (PV).
Iris 2.2 803
Iris 2.8 804 ​​​​[[image:1758111642557-547.png]]is the start address of the cache where the parameters required by LAGCDL operation and intermediate results are saved,
Iris 2.2 805
806 occupying a total of 634 variable units of subsequent addresses. The value range is from D0 to D7974 or from R0 to R35000. It is better to specify power failure retention, and the setting value remains after power supply is off. Otherwise, the cache needs to be assigned value before starting the calculation for the first time. The function and parameter description of each unit are described in this section.
807
Iris 2.8 808 [[image:1758111693192-390.png]] is the storage unit of the LAGCDL calculation result. Please specify it as a non-battery retentive area, otherwise it needs to be initialized and cleared before the first start of calculation.
Iris 2.2 809
810 **Programming example**
811
Iris 2.8 812 [[image:1758111738993-165.png||height="64" width="430"]]
Iris 2.2 813
814 The parameter description is as follows:
815
816 The target value of LAGCDL adjustment is stored in D1, and D0 is the closed-loop feedback value. Note that D0 and D9 must be of the same dimension, such as both 0.01MPa units, or 1℃ units, etc..
817
818 A total of 634 units of D1000 to D1633 are used to store the set value and process value of LAGCDL operation. These values must be set item by item before the first LAGCDL calculation.
819
820 D100 unit is used to store the calculated control output value to control the execution of the action.
821
Iris 2.8 822 [[image:1758111862269-781.png]] to [[image:1758111862269-781.png]]+15 is the parameter range that can be set (parameters set when LAGCDL is executed). [[image:1758111862269-781.png]]+28 to [[image:1758111862269-781.png]]+631 is the historical data space for LAGCDL control internal use. [[image:1758111862269-781.png]]+4 to [[image:1758111862269-781.png]]+27 is the parameter space used in the self-tuning process. (This space is multiplexed with the parameter space during control)
Iris 2.2 823
Iris 2.8 824 The functions and setting methods of the parameter values of each unit started by [[image:1758111862269-781.png]] are described in the following table:
Iris 2.2 825
826
827
Iris 2.8 828 |(% style="width:108px" %)**Unit**|(% style="width:230px" %)**Function**|**Description**
829 |(% style="width:108px" %)[[image:1758111862269-781.png]]|(% style="width:230px" %)Sampling time (TS)|Range: 1 to 32767 (ms). It must be longer than PLC program scan cycle.
830 |(% style="width:108px" %)[[image:1758111862269-781.png]]+1|(% style="width:230px" %)Control flag bit|(((
Iris 2.2 831 bit0: 0=Forward action; 1=Reverse action
832
833 bit1: Overshoot power limit output enable bit. 0=no limit; 1=limited
834
835 Bit2: Reset historical data. 0=reset; 1=no reset. This bit must be 0 before each execution.
836
837 bit4: 0=Self-tuning does not act; 1=Perform self-tuning and the others are not available.
838
839 Bit14:Historical data initialization flag bit. When initialization is complete, it is set to 1.
840
841 Bit15: The instruction initializes the flag bit. When initialization is complete, it is set to 1.
842 )))
Iris 2.8 843 |(% style="width:108px" %)[[image:1758111862269-781.png]]+2|(% style="width:230px" %)Output lower limit|Range: -32000 to 32000. Recommended setting range: -2000 or 0.
844 |(% style="width:108px" %)[[image:1758111862269-781.png]]+3|(% style="width:230px" %)Output upper limit|Range: 0 to 32000. Recommended setting value is 2000. When the upper and lower limits are both 0, the upper limit becomes 2000 and the lower limit becomes 0.
845 |(% style="width:108px" %)[[image:1758111862269-781.png]]+4|(% style="width:230px" %)Full power output boundary|The suggested value can be obtained by self-tuning, and can also be adjusted according to the actual situation.
846 |(% style="width:108px" %)[[image:1758111862269-781.png]]+5|(% style="width:230px" %)Half-power output boundary|The suggested value can be obtained by self-tuning, and can also be adjusted according to the actual situation.
847 |(% style="width:108px" %)[[image:1758111862269-781.png]]+6|(% style="width:230px" %)Stop output boundary|The suggested value can be obtained by self-tuning, and can also be adjusted according to the actual situation.
848 |(% style="width:108px" %)[[image:1758111862269-781.png]]+7|(% style="width:230px" %)The maximum rate of increase of the controlled system|Given by self-tuning
849 |(% style="width:108px" %)[[image:1758111862269-781.png]]+8|(% style="width:230px" %)The lagged time of the controlled system|Given by self-tuning. Unit: s
850 |(% style="width:108px" %)[[image:1758111862269-781.png]]+9|(% style="width:230px" %)The time constant of the controlled system|Given by self-tuning. Unit: s
851 |(% style="width:108px" %)[[image:1758111862269-781.png]]+10|(% style="width:230px" %)Ideal closed-loop time constant|Given by self-tuning. Unit: s
852 |(% style="width:108px" %)[[image:1758111862269-781.png]]+11|(% style="width:230px" %)Ideal closed-loop sampling time|Given by self-tuning. This parameter can be adjusted during the control process. Unit: s
853 |(% style="width:108px" %)[[image:1758111862269-781.png]]+12|(% style="width:230px" %)Maximum temperature difference during setting|Given by self-tuning. (for your reference)
854 |(% style="width:108px" %)[[image:1758111862269-781.png]]+13|(% style="width:230px" %)The temperature difference between the residual heat and temperature rise|Given by self-tuning. (for your reference)
855 |(% style="width:108px" %)[[image:1758111862269-781.png]]+14|(% style="width:230px" %)Heating time|Given by self-tuning. (for your reference)
856 |(% style="width:108px" %)[[image:1758111862269-781.png]]+15|(% style="width:230px" %)Setting time|Given by self-tuning. (for your reference)
857 |(% style="width:108px" %)[[image:1758111862269-781.png]]+16|(% rowspan="3" style="width:230px" %)Self-tuning use space|(% rowspan="3" %)Reserved for internal use
858 |(% style="width:108px" %)┇
859 |(% style="width:108px" %)[[image:1758111862269-781.png]]+27
860 |(% style="width:108px" %)[[image:1758111862269-781.png]]+28|(% style="width:230px" %)Current temperature difference|Used during control
861 |(% style="width:108px" %)[[image:1758111862269-781.png]]+29|(% style="width:230px" %)Previous temperature difference|Used during control
862 |(% style="width:108px" %)[[image:1758111862269-781.png]]+30|(% style="width:230px" %)The 1st operation flag bit|Used during control
863 |(% style="width:108px" %)[[image:1758111862269-781.png]]+31|(% style="width:230px" %)Number of valid history outputs|Used during control
864 |(% style="width:108px" %)[[image:1758111862269-781.png]]+32|(% rowspan="3" style="width:230px" %)Historical output data|(% rowspan="3" %)Used during control
865 |(% style="width:108px" %)┇
866 |(% style="width:108px" %)[[image:1758111862269-781.png]]+631
867 |(% style="width:108px" %)[[image:1758111862269-781.png]]+632|(% rowspan="2" style="width:230px" %)Previous sampling time stamp|(% rowspan="2" %)Reserved for internal use
868 |(% style="width:108px" %)[[image:1758111862269-781.png]]+633
Iris 2.2 869
870 **Error code**
871
872 |**Error code**|**Content**
873 |4085H|Read application instruction (S1), (S2), (S3) and (d) output results exceed the range of device.
874 |4086H|The devices specified in write application instruction (S3) and (d) exceed the range of the corresponding device.
875 |4D86H|Sampling time (Ts) < operation cycle
876 |4DA1H|Power limit boundary (s3+4), (s3+5) and (s3+6) exceed the range.
877 |4DA2H|System parameters (s3+7), (s3+8) and (s3+9) exceed the range.
878 |4DA3H|Control parameters (s3+10) and (s3+11) exceed the range.
879 |4DA4H|The output upper limit is smaller than the lower limit
880
881 **Example**
882
883
Iris 3.1 884 (% style="text-align:center" %)
885 [[image:企业微信截图_17581120459254.png]]
Iris 2.2 886
Wecon 1.1 887 == **PRUN/Octal digit transmission (16-bit data)** ==
888
889 ----
890
891 PRUN(P)
892
893 After processing the device numbers of (s) and (d) with specified digits as octal numbers, transfer the data.
894
895 -[PRUN (s) (d)]
896
897 Content, range and data type
898
899 |=**Parameter**|=**Content**|=**Range**|=**Data type**|=**Data type (label)**|=**Custom variable type**
900 |(s)|Digit specification*1|-|BIN16 bit|ANY16|~-~-
901 |(d)|Transfer target device number*1|-|BIN16 bit|ANY16|~-~-
902
903 Device used
904
Iris 1.2 905 |=(% style="width: 64px;" %)**Instruction**|=(% style="width: 128px;" %)**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
906 |(% style="width:64px" %) |(% style="width:128px" %) |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|(% style="width:32px" %)**HSC(bit)**|(% style="width:94px" %)**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|(% style="width:41px" %)**SD**|(% style="width:42px" %)**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
907 |(% colspan="1" rowspan="2" style="width:64px" %)PRUN|(% style="width:128px" %)Parameter 1| | | | | | | | |(% style="width:32px" %) |(% style="width:94px" %) |●| |●| | | | | |(% style="width:41px" %) |(% style="width:42px" %) | | | | |●|●
908 |(% style="width:128px" %)Parameter 2| | | | | | | | |(% style="width:32px" %) |(% style="width:94px" %) | |●|●| | | | | |(% style="width:41px" %) |(% style="width:42px" %) | | | | |●|●
Wecon 1.1 909
910 Function
911
912 • Octal digit device→ decimal digit device
913
914 (% style="text-align:center" %)
915 [[image:1709790843788-781.png]]
916
917 • Decimal digit device → octal digit device
918
919 (% style="text-align:center" %)
920 [[image:1709790863850-104.png]]
921
922 Error code
923
924 |=**Error code**|=**Content**
925 |4085H|When the specified device range for reading exceeds the range of the corresponding device
926 |4086H|When the specified device range for writing exceeds the range of the corresponding device
927
928 Example
929
930 (% style="text-align:center" %)
931 [[image:1709790902188-165.png]]
932
933 As shown in the above ladder diagram: X0~~X17 takes the value of octal digits and pass it to the devices corresponding to M.
934
935 (% style="text-align:center" %)
936 [[image:1709790924438-346.png]]
937
938
939 == **TRH/Wet and dry bulb temperature and humidity conversion** ==
940
941 ----
942
943 [[image:file:///C:\Users\ADMINI~~1\AppData\Local\Temp\ksohtml13328\wps3.png]]TRH
944
945 This command completes the conversion of dry bulb temperature, wet bulb temperature and corresponding humidity.
946
947 -[TRH (d1) (s) (d2) (n)]
948
949 Content, range and data type
950
951 |=**Parameter**|=**Content**|=**Range**|=**Data type**|=**Data type (label)**|=**Custom variable type**
952 |(d1)|Humidity|0~~100|Single-precision floating point|ANYREAL_32|REAL
953 |(s)|Dry bulb temperature|-|Single-precision floating point|ANYREAL_32|REAL
954 |(d2)|Wet bulb temperature|-|Single-precision floating point|ANYREAL_32|REAL
955 |(n)|Mode|0 to 1|Signed BIN 32 bit|ANY32|DINT
956
957 Device used
958
959 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
960 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
961 |(% colspan="1" rowspan="4" %)TRH|Parameter 1| | | | | | | | | | | | | | |●|●|●|●|●| | | | | |●|
962 |Parameter 2| | | | | | | | | | | | | | |●|●|●|●|●| | | | | |●|
963 |Parameter 3| | | | | | | | | | | | | | |●|●|●|●|●| | | | | |●|
964 |Parameter 4| | | | | | | | | | |●|●|●|●|●|●|●|●|●| | |●|●| |●|
965
966 Function
967
968 There are two modes to choose from (n):
969
970 Mode 0: Calculate the corresponding humidity by wet bulb temperature and dry bulb temperature.
971
972 Mode 1: Calculate the corresponding wet bulb temperature by dry bulb temperature and humidity.
973
974 The conversion process formula is as follows:
975
976 Assuming that the wet bulb temperature is A, the dry bulb temperature is B, and the corresponding current humidity is C, which meet the following conditions:
977
978 (% style="text-align:center" %)
979 [[image:1709791199711-348.png||height="101" width="342"]]
980
981
982 Precautions
983
984 ·The wet bulb temperature is not greater than the dry bulb temperature. When they are the same, the humidity reaches the maximum value 100%.
985
986 ·The unit of dry and wet bulb temperature is (^^o^^C).
987
988 ·The general value range of dry bulb is between 0~~100^^o^^C, and the command does not judge its range, so pay special attention when using this command.
989
990 Error code
991
992 |=**Error code**|=**Content**
993 |(% rowspan="4" %)4084H|When the value specified in (n) exceeds the following range. 0 to 1
994 |The value specified in (d1) exceeds the following range. 0 to 100
995 |A negative value is specified in (s).
996 |A negative value is specified in (d2).
997 |4085H|The output result of (d1)(s)(d2)(n) in the read application command exceeds the device range.
998 |4086H|The output result of the write application command (d1) and (d2) exceeds the device range.
999
1000 Example
1001
1002 (% style="text-align:center" %)
1003 [[image:1709791591456-917.png]]
1004
1005 Dry and wet bulb temperature/humidity conversion table
1006
1007 (% style="text-align:center" %)
1008 [[image:1709791607332-438.png]]