Ero sivun ”G-koodi” versioiden välillä
(28 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 2: | Rivi 2: | ||
|- | |- | ||
| width="500" | | | width="500" | | ||
− | + | __TOC__ | |
| width="500" | | | width="500" | | ||
− | + | G-Code | |
| | | | ||
Rivi 16: | Rivi 16: | ||
A CNC program that follows G-code syntax consists of low-level functions called blocks. Sentences, in turn, are built from words (code). The words are either "preparatory" G-codes or "Miscellaneous" M-codes. <br /> | A CNC program that follows G-code syntax consists of low-level functions called blocks. Sentences, in turn, are built from words (code). The words are either "preparatory" G-codes or "Miscellaneous" M-codes. <br /> | ||
The G-code syntax is almost unstructured because no program control controls are included in the language. A subroutine call using M codewords exists but little else. <br /> | The G-code syntax is almost unstructured because no program control controls are included in the language. A subroutine call using M codewords exists but little else. <br /> | ||
− | G-code is interpreted code in the sense that the code interpreter always parses one whole sentence at a time and optimizes the execution of the content before it is launched. | + | G-code is interpreted code in the sense that the code interpreter always parses one whole sentence at a time and optimizes the execution of the content before it is launched. Lotta's Fanuc controller works in such a way that the last of the conflicting command words in a sentence remains valid and executed. <br /> |
In particular, it should be noted that almost all G codewords are "modal", meaning that they remain in effect until another code belonging to the same modal group replaces them. Similarly, an argument that is missing from a sentence gets the value it last had in an earlier sentence. Therefore, the unchanged argument does not need to be repeated sentence by sentence. <br /> | In particular, it should be noted that almost all G codewords are "modal", meaning that they remain in effect until another code belonging to the same modal group replaces them. Similarly, an argument that is missing from a sentence gets the value it last had in an earlier sentence. Therefore, the unchanged argument does not need to be repeated sentence by sentence. <br /> | ||
|- | |- | ||
Rivi 31: | Rivi 31: | ||
| | | | ||
Example of a simple NC block: <br /> | Example of a simple NC block: <br /> | ||
− | '' 'N001 G01 X500.000 Y60.000 Z0.000 M03' '' <br /> | + | '''N001 G01 X500.000 Y60.000 Z0.000 M03''' <br /> |
Line number 001; coordinated movement at machining speed to XYZ coordinates while starting the spindle to rotate clockwise <br /> | Line number 001; coordinated movement at machining speed to XYZ coordinates while starting the spindle to rotate clockwise <br /> | ||
<br /> | <br /> | ||
Example of a modal NC block: <br /> | Example of a modal NC block: <br /> | ||
− | '' 'G01 X500. Y60. Z0. M03 '' '<br /> | + | '''G01 X500. Y60. Z0. M03 '''<br /> |
− | '' 'X510.' '' <br /> | + | '''X510.''' <br /> |
− | '' 'X520.' '' <br /> | + | '''X520.''' <br /> |
− | Coordinated movement at machining speed to coordinates 500/60/0, then 510/60/0 and 520/60/0 because G01 is modal. <br /> | + | Coordinated movement at machining speed to coordinates 500/60/0, then 510/60/0 and 520/60/0 because G01 is modal.<br /> |
|- | |- | ||
| | | | ||
Rivi 79: | Rivi 79: | ||
| N|| ---|| Lauseen rivinumero (ei pakollinen) | | N|| ---|| Lauseen rivinumero (ei pakollinen) | ||
|} | |} | ||
+ | | | ||
+ | =G-code words recognized by Lotta= | ||
+ | Most G-code statements consist of a preparatory G-code, and one or more arguments associated with it. The sentences also use "Miscellaneous" M-code words to control the machine functions on and off. <br /> | ||
+ | Since most G codewords are modal, it is often sufficient to simply mention the arguments in the statement statement, in which case the valid modal statement is repeated with those arguments. A simple example of this above. | ||
+ | |||
+ | == G codeword arguments== | ||
+ | {| class = "wikitable" | ||
+ | |- | ||
+ | ! Argument !! Control codes !! Function | ||
+ | |- | ||
+ | | '''P_''' || --- || Abbreviated position coordinate format. Same as X_ Y_ Z_ where _ is the numeric value of the coordinate. Also alternative coordinates such as IJK, UVW, etc. | ||
+ | |- | ||
+ | | '''X, Y, Z''' || Modal 01 codes || Position coordinates for motion | ||
+ | |- | ||
+ | | A, B, C || Modal 01 codes || Angular coordinates for rotation about the X, Y, Z axes (4th axis) | ||
+ | |- | ||
+ | | '''I, J, K''' || G02, G03 || Relative position coordinates to position the center of the arc | ||
+ | |- | ||
+ | | U, V, W || Modal 01 codes || Relative position coordinates along the X, Y, Z axes for motion | ||
+ | |- | ||
+ | | '''S''' || M03, M04 || Spindle speed setpoint | ||
+ | |- | ||
+ | | '''F''' || Modal 01 codes || Feed speed mm / min | ||
+ | |- | ||
+ | | '''H''' || Modal 01 codes || Tool length and radius compensation | ||
+ | |- | ||
+ | | '''T''' || --- || Tool selection | ||
+ | |- | ||
+ | | '''R''' || modal 09 codes <br /> | ||
+ | G02, G03 <br /> | ||
+ | || The return level of the movement in break drilling and the like <br /> | ||
+ | Radius definition in circular interpolation | ||
+ | |- | ||
+ | | Q || Modal 09 codes || Drilling step depth in break drilling, etc. | ||
+ | |- | ||
+ | | P || G04 || Pause time ms | ||
+ | |- | ||
+ | | N || --- || Sentence line number (optional) | ||
+ | |} | ||
+ | |- | ||
+ | | | ||
==Varsinaiset G-koodisanat== | ==Varsinaiset G-koodisanat== | ||
Rivi 219: | Rivi 260: | ||
| '''[[G90]]''' || 03 || Absoluuttikoordinaattien valinta | | '''[[G90]]''' || 03 || Absoluuttikoordinaattien valinta | ||
|- | |- | ||
− | | '''[G90|G91]]''' || 03 || Suhteellisten koordinaattien valinta | + | | '''[[G90|G91]]''' || 03 || Suhteellisten koordinaattien valinta |
|- | |- | ||
| G92 || 00 || Absoluuttikoordinaatiston origon asetus | | G92 || 00 || Absoluuttikoordinaatiston origon asetus | ||
Rivi 234: | Rivi 275: | ||
|- | |- | ||
| [[G98|G99]] || 10 || Työkierrossa välipaluu R-koordinaatin tasalle | | [[G98|G99]] || 10 || Työkierrossa välipaluu R-koordinaatin tasalle | ||
+ | |} | ||
+ | | | ||
+ | ==Actual G codewords== | ||
+ | {| class = "wikitable" | ||
+ | |- | ||
+ | ! G code !! Modal group !! Function | ||
+ | |- | ||
+ | | '''[[G00_Engl|G00]]''' || 01 || Fast motion to the given coordinates | ||
+ | |- | ||
+ | | '''[[G01_Engl|G01]]''' || 01 || Coordinated motion at the machining speed to the given coordinates | ||
+ | |- | ||
+ | | '''[[G02_Engl|G02]]''' || 01 || [[G02 | Circular interpolation]] clockwise | ||
+ | |- | ||
+ | | '''[[G02_Engl|G03]]''' || 01 || [[G02 | Circular interpolation]] counterclockwise | ||
+ | |- | ||
+ | | [[G04_Engl|G04]] || 00 || Break | ||
+ | |- | ||
+ | | G05_Engl|G05 || 00 || Machining with high speed cycle | ||
+ | |- | ||
+ | | G09_Engl|G09 || 00 || Accurate positioning | ||
+ | |- | ||
+ | | G15_Engl|G15 || 17 || Canceling the polar coordinate mode | ||
+ | |- | ||
+ | | G02_Engl|G16 || 17 || Polar coordinate mode setting | ||
+ | |- | ||
+ | | '''[[G02_Engl| G17]]''' || 02 || XY plane setting for circular interpolation | ||
+ | |- | ||
+ | | [[G02_Engl|G18]] || 02 || ZX plane setting for circular interpolation | ||
+ | |- | ||
+ | | [[G02_Engl|G19]] || 02 || YZ level setting for circular interpolation | ||
+ | |- | ||
+ | | [[G06_Engl|G20]] || 06 || Units of measurement in inches | ||
+ | |- | ||
+ | | '''[[G06_Engl | G21]]''' || 06 || Units of measurement in millis | ||
+ | |- | ||
+ | | G22_Engl|G22 || 00 || Example | ||
+ | |- | ||
+ | | G23_Engl|G23 || 00 || Example | ||
+ | |- | ||
+ | | G27_Engl|G27 || 00 || Home drive check | ||
+ | |- | ||
+ | | '''[[G28]]''' || 00 || Driving to your home station | ||
+ | |- | ||
+ | | [[G29]] || 00 || Return from home station | ||
+ | |- | ||
+ | | G30_Engl|G30 || 00 || Return to 2nd home station | ||
+ | |- | ||
+ | | G31_Engl|G31 || 00 || Bypass function | ||
+ | |- | ||
+ | | G33_Engl|G33 || 01 || Threading | ||
+ | |- | ||
+ | | G39_Engl|G39 || 00 || Angle rotation by circular interpolation | ||
+ | |- | ||
+ | | [[G40]] || 07 || Cancel tool radius compensation | ||
+ | |- | ||
+ | | [[G41]] || 07 || Tool radius compensation to the left | ||
+ | |- | ||
+ | | [[G41 | G42]] || 07 || Tool radius compensation to the right | ||
+ | |- | ||
+ | | '''[[G43]]''' || 08 || Tool length compensation by summing (+ direction) | ||
+ | |- | ||
+ | | G44_Engl|G44 || 08 || Tool length compensation decreasing (- direction) | ||
+ | |- | ||
+ | | G45_Engl|G45 || 00 || Tool offset breeding | ||
+ | |- | ||
+ | | G46_Engl|G46 || 00 || Tool offset reduction | ||
+ | |- | ||
+ | | G47_Engl|G47 || 00 || 2x increase in tool offset | ||
+ | |- | ||
+ | | G48_Engl|G48 || 00 || 2x reduction of tool offset | ||
+ | |- | ||
+ | | [[G49]] || 08 || Cancel tool length compensation | ||
+ | |- | ||
+ | | G50_Engl|G50 || 11 || Cancel scaling | ||
+ | |- | ||
+ | | G51_Engl|G51 || 11 || Scaling setting | ||
+ | |- | ||
+ | | G52_Engl|G52 || 00 || Transfer of work coordinate system | ||
+ | |- | ||
+ | | G53_Engl|G53 || 00 || Reference of motion to machine coordinates | ||
+ | |- | ||
+ | | '''[[G54]]''' || 14 || Selection of work coordinate system 1 | ||
+ | |- | ||
+ | | '''[[G54 | G55]]''' || 14 || Selection of work coordinate system 2 | ||
+ | |- | ||
+ | | '''[[G54 | G56]]''' || 14 || Selection of work coordinate system 3 | ||
+ | |- | ||
+ | | '''[[G54 | G57]]''' || 14 || Selection of work coordinate system 4 | ||
+ | |- | ||
+ | | '''[[G54 | G58]] ''' || 14 || Selection of work coordinate system 5 | ||
+ | |- | ||
+ | | '''[[G54 | G59]]''' || 14 || Selection of work coordinate system 6 | ||
+ | |- | ||
+ | | [[G60]] || 00 || One-way parking | ||
+ | |- | ||
+ | | G61_Engl|G61 || 15 || Exact stop mode | ||
+ | |- | ||
+ | | G62_Engl|G62 || 15 || Automatic corner bypass mode | ||
+ | |- | ||
+ | | G63_Engl|G63 || 15 || Threading mode | ||
+ | |- | ||
+ | | G64_Engl|G64 || 15 || Cutting machine mode | ||
+ | |- | ||
+ | | G65_Engl|G65 || 12 || Macro instruction, macro call | ||
+ | |- | ||
+ | | G66_Engl|G66 || 12 || Modal call to the custom macro | ||
+ | |- | ||
+ | | G67_Engl|G67 || 12 || Cancel a modal call to a custom macro | ||
+ | |- | ||
+ | | G68_Engl|G68 || 16 || Coordinate system rotation | ||
+ | |- | ||
+ | | G69_Engl|G69 || 16 || Canceling the coordinate system rotation | ||
+ | |- | ||
+ | | [[G73]] || 09 || Intermittent drilling cycle 1 | ||
+ | |- | ||
+ | | G74 || 09 || Counter-threading cycle | ||
+ | |- | ||
+ | | G76 || 09 || Precision armature | ||
+ | |- | ||
+ | | [[G80]] || 09 || Cycle cancellation | ||
+ | |- | ||
+ | | G81_Engl|G81 || 09 || Spot drilling cycle | ||
+ | |- | ||
+ | | G82_Engl|G82 || 09 || Counter-drilling cycle | ||
+ | |- | ||
+ | | G83_Engl|G83 || 09 || Intermittent drilling cycle 2 | ||
+ | |- | ||
+ | | G84_Engl|G84 || 09 || Threading cycle | ||
+ | |- | ||
+ | | G85_Engl|G85 || 09 || Boring cycle | ||
+ | |- | ||
+ | | G86_Engl|G86 || 09 || Boring cycle | ||
+ | |- | ||
+ | | G87_Engl|G87 || 09 || Counter-reaming cycle | ||
+ | |- | ||
+ | | G88_Engl|G88 || 09 || Boring cycle | ||
+ | |- | ||
+ | | G89_Engl|G89 || 09 || Boring cycle | ||
+ | |- | ||
+ | | '''[[G90]]''' || 03 || Selection of absolute coordinates | ||
+ | |- | ||
+ | | '''[[G90 | G91]]''' || 03 || Selection of relative coordinates | ||
+ | |- | ||
+ | | G92_Engl|G92 || 00 || Setting the origin of the absolute coordinate system | ||
+ | |- | ||
+ | | G94_Engl|G94 || 05 || Input one / minute | ||
+ | |- | ||
+ | | G95_Engl|G95 || 05 || Feed one / spindle revolution | ||
+ | |- | ||
+ | | G96_Engl|G96 || 13 || Constant surface speed control on | ||
+ | |- | ||
+ | | G97_Engl|G97 || 13 || Constant surface speed control off | ||
+ | |- | ||
+ | | [[G98]] || 10 || In the cycle, a snippet returns to the starting point | ||
+ | |- | ||
+ | | [[G98 | G99]] || 10 || In the cycle, return to the R coordinate | ||
|} | |} | ||
+ | |- | ||
+ | | | ||
==Lotan tunnistamat M-koodisanat== | ==Lotan tunnistamat M-koodisanat== | ||
Rivi 280: | Rivi 479: | ||
| M99 || Aliohjelmasta paluu | | M99 || Aliohjelmasta paluu | ||
|} | |} | ||
− | + | | | |
+ | ==M-code words recognized by Lotta== | ||
+ | {| class = "wikitable" | ||
+ | |- | ||
+ | ! M code !! Function | ||
+ | |- | ||
+ | | M00_Engl|M00 || Mandatory break. The program stops here until the user presses [CYCLE START] at which point the program continues | ||
+ | |- | ||
+ | | M01_Engl|M01 || Conditional break. Same as above, but only if panel [OPT STOP] is pressed active | ||
+ | |- | ||
+ | | M02_Engl|M02 || End of the program. Execution ends and the program is acknowledged as run. | ||
+ | |- | ||
+ | | '''M03''' || Spindle moved clockwise. The spindle starts rotating at the speed previously set by argument S. | ||
+ | |- | ||
+ | | '''M04''' || Spindle moved counterclockwise. | ||
+ | |- | ||
+ | | '''M05''' || Kara stand. | ||
+ | |- | ||
+ | | '''M06''' || Tool change - execution command. The pre-selection using the command word T is performed with this function. | ||
+ | |- | ||
+ | | '''M08''' || Cutting fluid on. Requires (COOLANT) [CLNT AUTO] to be selected as active on the panel | ||
+ | |- | ||
+ | | '''M09''' || Cutting fluid off | ||
+ | |- | ||
+ | | M19_Engl|M19 || Spindle orientation. Rotates the spindle to the position where the tool is changed. The same position is used e.g. counter-reaming, etc. | ||
+ | |- | ||
+ | | M29_Engl|M29 || Rigid threading mode on | ||
+ | |- | ||
+ | | '''M30''' || Ending the program and returning to the beginning | ||
+ | |- | ||
+ | | M40_Engl|M40 || 4th axle lock | ||
+ | |- | ||
+ | | M41_Engl|M41 || 4th shaft release | ||
+ | |- | ||
+ | | M94_Engl|M94 || Axis mirroring cancellation | ||
+ | |- | ||
+ | | M95_Engl|M95 || X-axis mirroring | ||
+ | |- | ||
+ | | M96_Engl|M96 || Y-axis mirroring | ||
+ | |- | ||
+ | | M98_Engl|M98 || Subroutine call | ||
+ | |- | ||
+ | | M99_Engl|M99 || Return from the subroutine | ||
+ | |} | ||
+ | |} | ||
<br clear=all> | <br clear=all> | ||
---- | ---- |
Nykyinen versio 12. helmikuuta 2021 kello 21.21
G-Code |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
G-koodisyntaksia noudattava CNC-ohjelma koostuu matalan tason toiminnoista joita kutsutaan lauseiksi (block). Lauseet puolestaan rakentuvat sanoista (code). Sanat ovat joko "valmistelevia" G-koodeja tai "sekalaisia" M-koodeja. |
A CNC program that follows G-code syntax consists of low-level functions called blocks. Sentences, in turn, are built from words (code). The words are either "preparatory" G-codes or "Miscellaneous" M-codes. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Esimerkki yksinkertaisesta NC-lauseesta: |
Example of a simple NC block: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lotan tunnistamat G-koodisanatUseimmat G-koodilauseet muodostuvat valmistelevasta G-koodista, sekä siihen liittyvistä yhdestä tai useammasta argumentista. Lauseissa käytetään myös "sekalaisia" M-koodisanoja ohjaamaan koneen toimintoja päälle ja pois. G-koodisanojen argumentit
|
G-code words recognized by LottaMost G-code statements consist of a preparatory G-code, and one or more arguments associated with it. The sentences also use "Miscellaneous" M-code words to control the machine functions on and off. G codeword arguments
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Varsinaiset G-koodisanat
|
Actual G codewords
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lotan tunnistamat M-koodisanat
|
M-code words recognized by Lotta
|