Wiki source code of 16 Circular interpolation instruction
Last modified by Wecon on 2025/09/03 21:03
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | = **6.16.1 G90G01 instruction** = |
| 2 | |||
| 3 | **Instruction description** | ||
| 4 | |||
| 5 | (% class="table-bordered" %) | ||
| 6 | |**Name**|**Function**|**Bits(bits)**|**Pulse type**|**Instruction format**|**Step** | ||
| 7 | |G90G01|Absolute position line interpolation|16|No|G90G01 S,,1,, S,,2,, D,,1,, D,,2,,|21 | ||
| 8 | |||
| 9 | * S,,1,,: Target position, will occupy 6 continue address. The range is -2147483648 ~~ 2417482647. Target position could be specified by a absolute address; S,,1,,: Target position of X axis, S,,1,,+2: Target position of Y axis, S,,1,, +4:Target position of Z axis. | ||
| 10 | * S,,2,,: The output frequency of the synthesis; | ||
| 11 | * D,,1,,: High speed pulse output port, only Y0 could be specified, occupy 3 continue address (Y0, Y1, and Y2); | ||
| 12 | * D,,2,,: The operating direction output port, occupy 3 continue address; | ||
| 13 | |||
| 14 | (% class="table-bordered" %) | ||
| 15 | |(% rowspan="2" %)**Operand**|(% colspan="4" %)**Bit device**|(% colspan="12" %)**Word device** | ||
| 16 | |X|Y|M|S|K|H|E|KnX|KnY|KnM|KnS|T|C|D|V|Z | ||
| 17 | |S,,1,,| | | | | | | | | | | | | |√| | | ||
| 18 | |S,,2,,| | | | |√|√| | | | | | | |√| | | ||
| 19 | |D,,1,,| |√| | | | | | | | | | | | | | | ||
| 20 | |D,,2,,| |√|√| | | | | | | | | | | | | | ||
| 21 | |||
| 22 | **Program example** | ||
| 23 | |||
| 24 | The system variables when execution of instruction: | ||
| 25 | |||
| 26 | (% class="table-bordered" %) | ||
| 27 | |**Instruction**|(% colspan="3" %)G90G01 | ||
| 28 | |**Function**|(% colspan="3" %)Absolute position line interpolation | ||
| 29 | |**Axis**|(% colspan="3" %)3 | ||
| 30 | |**Output port**|Y0|Y1|Y2 | ||
| 31 | |**Present position (double byte)**|D8140|D8142|D8150 | ||
| 32 | |(% rowspan="2" %)**Time of ACC/DEC (byte)**|(% colspan="3" %)D8148 | ||
| 33 | |D8104|D8105|D8106 | ||
| 34 | |**Basic velocity (double)**|(% colspan="3" %)D8145 | ||
| 35 | |**Maximum velocity (double byte)**|(% colspan="3" %)D8146 | ||
| 36 | |**Pulse output interrupt**|M8145|M8146|M8152 | ||
| 37 | |**BUSY/ READY**|M8147|M8148|M8149 | ||
| 38 | |**ACC/ DEC**|(% colspan="3" %)Trapezium AC/DE | ||
| 39 | |||
| 40 | (% style="text-align:center" %) | ||
| 41 | [[image:7-15 Circular interpolation instruction_html_cb14fc071f12cd06.jpg||class="img-thumbnail" height="552" width="700"]] | ||
| 42 | |||
| 43 | **Note for use** | ||
| 44 | |||
| 45 | * When using the interpolation instruction, parameter settings (such as celebration/deceleration time and so on) are subject to the X axis (Y0); | ||
| 46 | * Only support trapezoidal acceleration and deceleration; | ||
| 47 | * The actuality output synthesized frequency (lowest frequency),the computation formula is as follows: | ||
| 48 | * ((( | ||
| 49 | (% style="text-align:center" %) | ||
| 50 | [[image:7-15 Circular interpolation instruction_html_be886ee3c8a68fd0.jpg||class="img-thumbnail" height="51" width="400"]] | ||
| 51 | ))) | ||
| 52 | * The output frequency range of interpolation (not synthesized frequency):10~~100 KHz; | ||
| 53 | * Frequency calculation: | ||
| 54 | |||
| 55 | (% style="text-align:center" %) | ||
| 56 | [[image:7-15 Circular interpolation instruction_html_4cc6fc48991f18fd.jpg||class="img-thumbnail" height="337" width="800"]] | ||
| 57 | |||
| 58 | = **6.16.2 G91G01 instruction** = | ||
| 59 | |||
| 60 | **Instruction description** | ||
| 61 | |||
| 62 | (% class="table-bordered" %) | ||
| 63 | |**Name**|**Function**|**Bits(bits)**|**Pulse type**|**Instruction format**|**Step** | ||
| 64 | |G91G01|Relative position line interpolation|16|No|G91G01 S,,1,, S,,2,, D,,1,, D,,2,,|21 | ||
| 65 | |||
| 66 | * S,,1,,: Target position, will occupy 6 continue address. The range is -2147483648 ~~ 2417482647. Target position could be specified by a relative address; S,,1,,: Target position of X axis, S,,1,,+2: Target position of Y axis, S,,1,, +4: Target position of Z axis. | ||
| 67 | * S,,2,,: The output frequency of the synthesis; | ||
| 68 | * D,,1,,: High speed pulse output port, only Y0 could be specified, occupy 3 continue address (Y0, Y1, and Y2); | ||
| 69 | * D,,2,,: The operating direction output port, occupy 3 continue address; | ||
| 70 | |||
| 71 | (% class="table-bordered" %) | ||
| 72 | |(% rowspan="2" %)**Operand**|(% colspan="4" %)**Bit device**|(% colspan="12" %)**Word device** | ||
| 73 | |X|Y|M|S|K|H|E|KnX|KnY|KnM|KnS|T|C|D|V|Z | ||
| 74 | |S,,1,,| | | | | | | | | | | | | |√| | | ||
| 75 | |S,,2,,| | | | |√|√| | | | | | | |√| | | ||
| 76 | |D,,1,,| |√| | | | | | | | | | | | | | | ||
| 77 | |D,,2,,| |√|√| | | | | | | | | | | | | | ||
| 78 | |||
| 79 | **Program example** | ||
| 80 | |||
| 81 | The system variables when execution of instruction: | ||
| 82 | |||
| 83 | (% class="table-bordered" %) | ||
| 84 | |**Instruction**|(% colspan="3" %)G91G01 | ||
| 85 | |**Function**|(% colspan="3" %)Relative position line interpolation | ||
| 86 | |**Axis**|(% colspan="3" %)3 | ||
| 87 | |**Output port**|Y0|Y1|Y2 | ||
| 88 | |**Present position (double byte)**|D8140|D8142|D8150 | ||
| 89 | |(% rowspan="2" %)**Time of ACC/DEC (byte)**|(% colspan="3" %)D8148 | ||
| 90 | |D8104|D8105|D8106 | ||
| 91 | |**Basic velocity (double)**|(% colspan="3" %)D8145 | ||
| 92 | |**Maximum velocity (double byte)**|(% colspan="3" %)D8146 | ||
| 93 | |**Pulse output interrupt**|M8145|M8146|M8152 | ||
| 94 | |**BUSY/ READY**|M8147|M8148|M8149 | ||
| 95 | |**ACC/ DEC**|(% colspan="3" %)Trapezium AC/DE | ||
| 96 | |||
| 97 | (% style="text-align:center" %) | ||
| 98 | [[image:7-15 Circular interpolation instruction_html_b76fcfc0da67f07e.jpg||class="img-thumbnail" height="548" width="700"]] | ||
| 99 | |||
| 100 | **Note for use** | ||
| 101 | |||
| 102 | * When using the interpolation instruction, parameter settings (such as celebration/deceleration time and so on) are subject to the X axis (Y0); | ||
| 103 | * Only support trapezoidal acceleration and deceleration; | ||
| 104 | * The actuality output synthesized frequency (lowest frequency),the computation formula is as follows: | ||
| 105 | * ((( | ||
| 106 | (% style="text-align:center" %) | ||
| 107 | [[image:7-15 Circular interpolation instruction_html_be886ee3c8a68fd0.jpg||class="img-thumbnail" height="51" width="400"]] | ||
| 108 | ))) | ||
| 109 | * The output frequency range of interpolation (not synthesized frequency):10~~100 KHz; | ||
| 110 | * Frequency calculation: | ||
| 111 | |||
| 112 | (% style="text-align:center" %) | ||
| 113 | [[image:7-15 Circular interpolation instruction_html_47c39c4dafe6d9e.jpg||class="img-thumbnail" height="338" width="800"]] | ||
| 114 | |||
| 115 | = **6.16.3 G90G02 instruction** = | ||
| 116 | |||
| 117 | **Instruction description** | ||
| 118 | |||
| 119 | (% class="table-bordered" %) | ||
| 120 | |**Name**|**Function**|**Bits (bits)**|**Pulse type**|**Instruction format**|**Step** | ||
| 121 | |G90G02|Absolute position clockwise circular interpolation|16|No|G91G02 S,,1,, S,,2,, S,,3,, D,,1,, D,,2,,|21 | ||
| 122 | |||
| 123 | * S,,1,,: Target position, will occupy 6 continue address. The range is -2147483648 ~~ 2417482647. Target position could be specified by a absolution address; S,,1,,: Target position of X axis, S,,1,,+2: Target position of Y axis. | ||
| 124 | * S,,2,,: Radius/r, occupy 4 bit variable in the continue address .The radius will always treated as relative address; S,,2,,+0:The pulse output D-value between center coordinate and present position ,or the pulse amount of radius “R"; S,,2,,+2:The pulse output D-value between center coordinate and present position .When we use radius mode ,the value must be 0x7FFFFFFF.The range is -2,147,483,648 ~ 2,147,483,647. | ||
| 125 | * S,,3,,: The output frequency of the synthesis; | ||
| 126 | * D,,1,,: High speed pulse output port, only Y0 could be specified, occupy 3 continue address (Y0, Y1, and Y2); | ||
| 127 | * D,,2,,: The operating direction output port, occupy 2 continue address; | ||
| 128 | |||
| 129 | (% class="table-bordered" %) | ||
| 130 | |(% rowspan="2" %)**Operand**|(% colspan="4" %)**Bit device**|(% colspan="12" %)**Word device** | ||
| 131 | |X|Y|M|S|K|H|E|KnX|KnY|KnM|KnS|T|C|D|V|Z | ||
| 132 | |S,,1,,| | | | | | | | | | | | | |√| | | ||
| 133 | |S,,2,,| | | | | | | | | | | | | |√| | | ||
| 134 | |S,,3,,| | | | |√|√| | | | | | | |√| | | ||
| 135 | |D,,1,,| |√| | | | | | | | | | | | | | | ||
| 136 | |D,,2,,| |√|√| | | | | | | | | | | | | | ||
| 137 | |||
| 138 | **Program example** | ||
| 139 | |||
| 140 | The system variables when execution of instruction: | ||
| 141 | |||
| 142 | (% class="table-bordered" %) | ||
| 143 | |**Instruction**|(% colspan="2" %)G91G02 | ||
| 144 | |**Function**|(% colspan="2" %)Absolute position clockwise circular interpolation | ||
| 145 | |**Axis**|(% colspan="2" %)2 | ||
| 146 | |**Output port**|Y0|Y1 | ||
| 147 | |**Present position (double byte)**|D8140|D8142 | ||
| 148 | |(% rowspan="2" %)**Time of ACC/DEC (byte)**|(% colspan="2" %)D8148 | ||
| 149 | |D8104|D8105 | ||
| 150 | |**Basic velocity (double)**|(% colspan="2" %)D8145 | ||
| 151 | |**Maximum velocity (double byte)**|(% colspan="2" %)D8146 | ||
| 152 | |**Pulse output interrupt**|M8145|M8146 | ||
| 153 | |**BUSY/ READY**|M8147|M8148 | ||
| 154 | |**ACC/ DEC**|(% colspan="2" %)Trapezium AC/DE | ||
| 155 | |||
| 156 | (% style="text-align:center" %) | ||
| 157 | [[image:7-15 Circular interpolation instruction_html_5a9a285b99194686.jpg||height="736" width="700" class="img-thumbnail"]] | ||
| 158 | |||
| 159 | **Note for use** | ||
| 160 | |||
| 161 | * The arc should be more than 20 pulses in circular interpolation, otherwise there will be error; | ||
| 162 | * The maximum radius of circular interpolation support is 8000000 pulse; | ||
| 163 | * The selection of S,,2,, have two modes: IJ mode (center coordinates) and R mode (radius mode). When set the value of S,,2,,+2 as 0x7FFFFFFF,it is R mode (radius mode), otherwise it is IJ mode (center coordinates) mode . | ||
| 164 | * IJ mode: S,,1,, only express the relative position between present position and center coordinates regardless absolute or relative interpolation mode. It should be calculated with pulse deviation value. | ||
| 165 | * R mode (radius mode), when the value of R is positive, it is express a circular arc less than 180 degrees; inversely, it is express a circular arc greater than 180 degrees .In R mode , you couldn’t generate the full circle ,because it has infinitely solution. | ||
| 166 | * When S,,1,, express the relative address of target position, the target position should be logical to insure create a correct path of target of arc. When both S,,1,,+0 and S,,1,,+2 equal 0, it will generate a full circle. | ||
| 167 | * When using the interpolation instruction, parameter settings (such as celebration/deceleration time and so on) are subject to the X axis (Y0); | ||
| 168 | * The actuality output synthesized frequency (lowest frequency), the computation formula is as follows: | ||
| 169 | * ((( | ||
| 170 | (% style="text-align:center" %) | ||
| 171 | [[image:7-15 Circular interpolation instruction_html_be886ee3c8a68fd0.jpg||height="51" width="400" class="img-thumbnail"]] | ||
| 172 | ))) | ||
| 173 | * The output frequency range of interpolation (not synthesized frequency):10~~100 KHz; | ||
| 174 | * Frequency calculation: | ||
| 175 | |||
| 176 | (% style="text-align:center" %) | ||
| 177 | [[image:7-15 Circular interpolation instruction_html_f3da1facc6d4a79e.jpg||height="337" width="800" class="img-thumbnail"]] | ||
| 178 | |||
| 179 | = **6.16.4 G91G02 instruction** = | ||
| 180 | |||
| 181 | **Instruction description** | ||
| 182 | |||
| 183 | (% class="table-bordered" %) | ||
| 184 | |**Name**|**Function**|**Bits(bits)**|**Pulse type**|**Instruction format**|**Step** | ||
| 185 | |G91G02|Relative position clockwise circular interpolation|16|No|G91G02 S,,1,, S,,2,, S,,3,, D,,1,, D,,2,,|21 | ||
| 186 | |||
| 187 | * S,,1,,: Target position, will occupy 6 continue address. The range is -2147483648 ~~ 2417482647. Target position could be specified by a absolution address; S,,1,,: Target position of X axis, S,,1,,+2: Target position of Y axis. | ||
| 188 | * S,,2,,: Radius/r, occupy 4-bit variable in the continue address. The radius will always treated as relative address; S,,2,,+0: The pulse output D-value between center coordinate and present position ,or the pulse amount of radius “R"; S,,2,,+2:The pulse output D-value between center coordinate and present position .When we use radius mode ,the value must be 0x7FFFFFFF.The range is -2,147,483,648 ~~ 2,147,483,647. | ||
| 189 | * S,,3,,: The output frequency of the synthesis; | ||
| 190 | * D,,1,,: High speed pulse output port, only Y0 could be specified, occupy 3 continue address (Y0, Y1, and Y2); | ||
| 191 | * D,,2,,: The operating direction output port, occupy 2 continue address; | ||
| 192 | |||
| 193 | (% class="table-bordered" %) | ||
| 194 | |(% rowspan="2" %)**Operand**|(% colspan="4" %)**Bit device**|(% colspan="12" %)**Word device** | ||
| 195 | |X|Y|M|S|K|H|E|KnX|KnY|KnM|KnS|T|C|D|V|Z | ||
| 196 | |S,,1,,| | | | | | | | | | | | | |√| | | ||
| 197 | |S,,2,,| | | | | | | | | | | | | |√| | | ||
| 198 | |S,,3,,| | | | |√|√| | | | | | | |√| | | ||
| 199 | |D,,1,,| |√| | | | | | | | | | | | | | | ||
| 200 | |D,,2,,| |√|√| | | | | | | | | | | | | | ||
| 201 | |||
| 202 | **Program example** | ||
| 203 | |||
| 204 | The system variables when execution of instruction: | ||
| 205 | |||
| 206 | (% class="table-bordered" %) | ||
| 207 | |**Instruction**|(% colspan="2" %)G91G02 | ||
| 208 | |**Function**|(% colspan="2" %)Absolute position clockwise circular interpolation | ||
| 209 | |**Axis**|(% colspan="2" %)2 | ||
| 210 | |**Output port**|Y0|Y1 | ||
| 211 | |**Present position (double byte)**|D8140|D8142 | ||
| 212 | |(% rowspan="2" %)**Time of ACC/DEC (byte)**|(% colspan="2" %)D8148 | ||
| 213 | |D8104|D8105 | ||
| 214 | |**Basic velocity (double)**|(% colspan="2" %)D8145 | ||
| 215 | |**Maximum velocity (double byte)**|(% colspan="2" %)D8146 | ||
| 216 | |**Pulse output interrupt**|M8145|M8146 | ||
| 217 | |**BUSY/ READY**|M8147|M8148 | ||
| 218 | |**ACC/ DEC**|(% colspan="2" %)Trapezium AC/DE | ||
| 219 | |||
| 220 | (% style="text-align:center" %) | ||
| 221 | [[image:7-15 Circular interpolation instruction_html_993c8883284b79d8.jpg||class="img-thumbnail" height="698" width="700"]] | ||
| 222 | |||
| 223 | **Note for use** | ||
| 224 | |||
| 225 | * The arc should be more than 20 pulses in circular interpolation, otherwise there will be error; | ||
| 226 | * The maximum radius of circular interpolation support is 8000000 pulse; | ||
| 227 | * The selection of S,,2,, have two modes: IJ mode (center coordinates) and R mode (radius mode). When set the value of S,,2,,+2 as 0x7FFFFFFF, it is R mode (radius mode), otherwise it is IJ mode (center coordinates) mode. | ||
| 228 | * IJ mode: S,,1,, only express the relative position between present position and center coordinates regardless absolute or relative interpolation mode. It should be calculated with pulse deviation value. | ||
| 229 | * R mode (radius mode), when the value of R is positive, it is express a circular arc less than 180 degrees; inversely, it is express a circular arc greater than 180 degrees. In R mode , you couldn’t generate the full circle ,because it has infinitely solution. | ||
| 230 | * When S,,1,, express the relative address of target position, the target position should be logical to insure create a correct path of target of arc. When both S,,1,,+0 and S,,1,,+2 equal 0, it will generate a full circle. | ||
| 231 | * When using the interpolation instruction, parameter settings (such as celebration/deceleration time and so on) are subject to the X axis (Y0); | ||
| 232 | * The actuality output synthesized frequency (lowest frequency), the computation formula is as follows: | ||
| 233 | * ((( | ||
| 234 | (% style="text-align:center" %) | ||
| 235 | [[image:7-15 Circular interpolation instruction_html_be886ee3c8a68fd0.jpg||class="img-thumbnail" height="51" width="400"]] | ||
| 236 | ))) | ||
| 237 | * The output frequency range of interpolation (not synthesized frequency):10~~100 KHz; | ||
| 238 | * Frequency calculation: | ||
| 239 | |||
| 240 | (% style="text-align:center" %) | ||
| 241 | [[image:7-15 Circular interpolation instruction_html_d5f8cae2769d33f5.jpg||class="img-thumbnail" height="337" width="800"]] | ||
| 242 | |||
| 243 | = **6.16.5 G90G03 instruction** = | ||
| 244 | |||
| 245 | **Instruction description** | ||
| 246 | |||
| 247 | (% class="table-bordered" %) | ||
| 248 | |**Name**|**Function**|**Bits (bits)**|**Pulse type**|**Instruction format**|**Step** | ||
| 249 | |G90G03|Absolute position anticlockwise circular interpolation|16|No|G90G03 S,,1,, S,,2,, S,,3,, D,,1,, D,,2,,|21 | ||
| 250 | |||
| 251 | * S,,1,,: Target position, will occupy 6 continue address. The range is -2147483648 ~~ 2417482647. Target position could be specified by a absolution address; S,,1,,: Target position of X axis, S,,1,,+2: Target position of Y axis. | ||
| 252 | * S,,2,,: Radius/r, occupy 4 bit variable in the continue address .The radius will always treated as relative address; S,,2,,+0:The pulse output D-value between center coordinate and present position ,or the pulse amount of radius “R"; S,,2,,+2:The pulse output D-value between center coordinate and present position .When we use radius mode ,the value must be 0x7FFFFFFF.The range is -2,147,483,648 ~ 2,147,483,647. | ||
| 253 | * S,,3,,: The output frequency of the synthesis; | ||
| 254 | * D,,1,,: High speed pulse output port, only Y0 could be specified, occupy 3 continue address (Y0, Y1, and Y2); | ||
| 255 | * D,,2,,: The operating direction output port, occupy 2 continue address; | ||
| 256 | |||
| 257 | (% class="table-bordered" %) | ||
| 258 | |(% rowspan="2" %)**Operand**|(% colspan="4" %)**Bit device**|(% colspan="12" %)**Word device** | ||
| 259 | |X|Y|M|S|K|H|E|KnX|KnY|KnM|KnS|T|C|D|V|Z | ||
| 260 | |S,,1,,| | | | | | | | | | | | | |√| | | ||
| 261 | |S,,2,,| | | | | | | | | | | | | |√| | | ||
| 262 | |S,,3,,| | | | |√|√| | | | | | | |√| | | ||
| 263 | |D,,1,,| |√| | | | | | | | | | | | | | | ||
| 264 | |D,,2,,| |√|√| | | | | | | | | | | | | | ||
| 265 | |||
| 266 | **Program example** | ||
| 267 | |||
| 268 | The system variables when execution of instruction: | ||
| 269 | |||
| 270 | (% class="table-bordered" %) | ||
| 271 | |**Instruction**|(% colspan="2" %)G90G03 | ||
| 272 | |**Function**|(% colspan="2" %)Absolute position anticlockwise circular interpolation | ||
| 273 | |**Axis**|(% colspan="2" %)2 | ||
| 274 | |**Output port**|Y0|Y1 | ||
| 275 | |**Present position (double byte)**|D8140|D8142 | ||
| 276 | |(% rowspan="2" %)**Time of ACC/DEC (byte)**|(% colspan="2" %)D8148 | ||
| 277 | |D8104|D8105 | ||
| 278 | |**Basic velocity (double)**|(% colspan="2" %)D8145 | ||
| 279 | |**Maximum velocity (double byte)**|(% colspan="2" %)D8146 | ||
| 280 | |**Pulse output interrupt**|M8145|M8146 | ||
| 281 | |**BUSY/ READY**|M8147|M8148 | ||
| 282 | |**ACC/ DEC**|(% colspan="2" %)Trapezium AC/DE | ||
| 283 | |||
| 284 | (% style="text-align:center" %) | ||
| 285 | [[image:7-15 Circular interpolation instruction_html_739d6295cd8cb362.jpg||height="702" width="700" class="img-thumbnail"]] | ||
| 286 | |||
| 287 | **Note for use** | ||
| 288 | |||
| 289 | * The arc should be more than 20 pulses in circular interpolation, otherwise there will be error; | ||
| 290 | * The maximum radius of circular interpolation support is 8000000 pulse; | ||
| 291 | * The selection of S,,2,, have two modes: IJ mode (center coordinates) and R mode (radius mode). When set the value of S,,2,,+2 as 0x7FFFFFFF, it is R mode (radius mode), otherwise it is IJ mode (center coordinates) mode . | ||
| 292 | * IJ mode: S,,1,, only express the relative position between present position and center coordinates regardless absolute or relative interpolation mode. It should be calculated with pulse deviation value. | ||
| 293 | * R mode (radius mode), when the value of R is positive, it is express a circular arc less than 180 degrees; inversely, it is express a circular arc greater than 180 degrees .In R mode , you couldn’t generate the full circle ,because it has infinitely solution. | ||
| 294 | * When S,,1,, express the relative address of target position, the target position should be logical to insure create a correct path of target of arc. When both S,,1,,+0 and S,,1,,+2 equal 0, it will generate a full circle. | ||
| 295 | * When using the interpolation instruction, parameter settings (such as celebration/deceleration time and so on) are subject to the X axis (Y0); | ||
| 296 | * The actuality output synthesized frequency (lowest frequency), the computation formula is as follows: | ||
| 297 | * ((( | ||
| 298 | (% style="text-align:center" %) | ||
| 299 | [[image:7-15 Circular interpolation instruction_html_be886ee3c8a68fd0.jpg||height="51" width="400" class="img-thumbnail"]] | ||
| 300 | ))) | ||
| 301 | * The output frequency range of interpolation (not synthesized frequency):10~~100 KHz; | ||
| 302 | * Frequency calculation: | ||
| 303 | |||
| 304 | (% style="text-align:center" %) | ||
| 305 | [[image:7-15 Circular interpolation instruction_html_9d9e5e58c23611d3.jpg||height="338" width="800" class="img-thumbnail"]] | ||
| 306 | |||
| 307 | = **6.16.6 G91G03 instruction** = | ||
| 308 | |||
| 309 | **Instruction description** | ||
| 310 | |||
| 311 | (% class="table-bordered" %) | ||
| 312 | |**Name**|**Function**|**Bits (bits)**|**Pulse type**|**Instruction format**|**Step** | ||
| 313 | |G91G03|Relative position anticlockwise circular interpolation|16|No|G91G03 S,,1,, S,,2,, S,,3,, D,,1,, D,,2,,|21 | ||
| 314 | |||
| 315 | * S,,1,,: Target position, will occupy 6 continue address. The range is -2147483648 ~~ 2417482647. Target position could be specified by a absolution address; S,,1,,: Target position of X axis, S,,1,,+2: Target position of Y axis. | ||
| 316 | * S,,2,,: Radius/r, occupy 4 bit variable in the continue address .The radius will always treated as relative address; S,,2,,+0:The pulse output D-value between center coordinate and present position ,or the pulse amount of radius “R"; S,,2,,+2:The pulse output D-value between center coordinate and present position .When we use radius mode ,the value must be 0x7FFFFFFF.The range is -2,147,483,648 ~ 2,147,483,647. | ||
| 317 | * S,,3,,: The output frequency of the synthesis; | ||
| 318 | * D,,1,,: High speed pulse output port, only Y0 could be specified, occupy 3 continue address (Y0, Y1, and Y2); | ||
| 319 | * D,,2,,: The operating direction output port, occupy 2 continue address; | ||
| 320 | |||
| 321 | (% class="table-bordered" %) | ||
| 322 | |(% rowspan="2" %)**Operand**|(% colspan="4" %)**Bit device**|(% colspan="12" %)**Word device** | ||
| 323 | |X|Y|M|S|K|H|E|KnX|KnY|KnM|KnS|T|C|D|V|Z | ||
| 324 | |S,,1,,| | | | | | | | | | | | | |√| | | ||
| 325 | |S,,2,,| | | | | | | | | | | | | |√| | | ||
| 326 | |S,,3,,| | | | |√|√| | | | | | | |√| | | ||
| 327 | |D,,1,,| |√| | | | | | | | | | | | | | | ||
| 328 | |D,,2,,| |√|√| | | | | | | | | | | | | | ||
| 329 | |||
| 330 | **Program example** | ||
| 331 | |||
| 332 | The system variables when execution of instruction: | ||
| 333 | |||
| 334 | (% class="table-bordered" %) | ||
| 335 | |**Instruction**|(% colspan="2" %)G91G03 | ||
| 336 | |**Function**|(% colspan="2" %)Absolute position clockwise circular interpolation | ||
| 337 | |**Axis**|(% colspan="2" %)2 | ||
| 338 | |**Output port**|Y0|Y1 | ||
| 339 | |**Present position (double byte)**|D8140|D8142 | ||
| 340 | |(% rowspan="2" %)**Time of ACC/DEC (byte)**|(% colspan="2" %)D8148 | ||
| 341 | |D8104|D8105 | ||
| 342 | |**Basic velocity (double)**|(% colspan="2" %)D8145 | ||
| 343 | |**Maximum velocity (double byte)**|(% colspan="2" %)D8146 | ||
| 344 | |**Pulse output interrupt**|M8145|M8146 | ||
| 345 | |**BUSY/ READY**|M8147|M8148 | ||
| 346 | |**ACC/ DEC**|(% colspan="2" %)Trapezium AC/DE | ||
| 347 | |||
| 348 | (% style="text-align:center" %) | ||
| 349 | [[image:7-15 Circular interpolation instruction_html_ae5c0fbd4932001c.jpg||class="img-thumbnail" height="702" width="700"]] | ||
| 350 | |||
| 351 | **Note for use** | ||
| 352 | |||
| 353 | * The arc should be more than 20 pulses in circular interpolation, otherwise there will be error; | ||
| 354 | * The maximum radius of circular interpolation support is 8000000 pulse; | ||
| 355 | * The selection of S,,2,, have two modes: IJ mode (center coordinates) and R mode (radius mode). When set the value of S,,2,,+2 as 0x7FFFFFFF, it is R mode (radius mode), otherwise it is IJ mode (center coordinates) mode. | ||
| 356 | * IJ mode: S,,1,, only express the relative position between present position and center coordinates regardless absolute or relative interpolation mode. It should be calculated with pulse deviation value. | ||
| 357 | * R mode (radius mode), when the value of R is positive, it is express a circular arc less than 180 degrees; inversely, it is express a circular arc greater than 180 degrees. In R mode, you couldn’t generate the full circle, because it has infinitely solution. | ||
| 358 | * When S,,1,, express the relative address of target position, the target position should be logical to insure create a correct path of target of arc. When both S,,1,,+0 and S,,1,,+2 equal 0, it will generate a full circle. | ||
| 359 | * When using the interpolation instruction, parameter settings (such as celebration/deceleration time and so on) are subject to the X axis (Y0); | ||
| 360 | * The actuality output synthesized frequency (lowest frequency), the computation formula is as follows: | ||
| 361 | * ((( | ||
| 362 | (% style="text-align:center" %) | ||
| 363 | [[image:7-15 Circular interpolation instruction_html_be886ee3c8a68fd0.jpg||class="img-thumbnail" height="51" width="400"]] | ||
| 364 | ))) | ||
| 365 | * The output frequency range of interpolation (not synthesized frequency):10~~100 KHz; | ||
| 366 | * Frequency calculation:((( | ||
| 367 | (% style="text-align:center" %) | ||
| 368 | [[image:7-15 Circular interpolation instruction_html_5728a3044584d2ee.jpg||class="img-thumbnail" height="338" width="800"]] | ||
| 369 | ))) |