Ero sivun ”G-koodi” versioiden välillä
(30 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
+ | {| style="color:black" | ||
+ | |- | ||
+ | | width="500" | | ||
+ | __TOC__ | ||
+ | | width="500" | | ||
+ | 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.<br /> | 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.<br /> | ||
G-koodisyntaksi on lähes rakenteeton sillä mitään ohjelmakontrollin ohjausrakenteita kieleen ei kuulu. Aliohjelmakutsu käyttäen M-koodisanoja on olemassa mutta ei juuri muuta.<br /> | G-koodisyntaksi on lähes rakenteeton sillä mitään ohjelmakontrollin ohjausrakenteita kieleen ei kuulu. Aliohjelmakutsu käyttäen M-koodisanoja on olemassa mutta ei juuri muuta.<br /> | ||
G-koodi on tulkattua koodia siinä mielessä, että kooditulkki jäsentää aina yhden kokonaisen lauseen kerrallaan ja optimoi sisällön suorituksen ennen sen käynnistämistä. Lotan Fanuc-ohjain toimii siten, että lauseessa mahdollisesti olevista ristiriitaisista käskysanoista viimeksi kirjoitettu jää voimaan ja toteutetaan.<br /> | G-koodi on tulkattua koodia siinä mielessä, että kooditulkki jäsentää aina yhden kokonaisen lauseen kerrallaan ja optimoi sisällön suorituksen ennen sen käynnistämistä. Lotan Fanuc-ohjain toimii siten, että lauseessa mahdollisesti olevista ristiriitaisista käskysanoista viimeksi kirjoitettu jää voimaan ja toteutetaan.<br /> | ||
On erityisesti syytä tiedostaa, lähes kaikki G-koodisanat ovat ''modaalisia'' eli ne jäävät voimaan kunnes samaan modaaliryhmään kuuluva toinen koodi astuu niiden tilalle. Samoin lauseesta puuttuva argumentti saa sen arvon joka sillä on viimeksi ollut jossain aikaisemmassa lauseessa. Näin ollen muuttumatonta argumenttia ei tarvitse toistaa lause lauseelta.<br /> | On erityisesti syytä tiedostaa, lähes kaikki G-koodisanat ovat ''modaalisia'' eli ne jäävät voimaan kunnes samaan modaaliryhmään kuuluva toinen koodi astuu niiden tilalle. Samoin lauseesta puuttuva argumentti saa sen arvon joka sillä on viimeksi ollut jossain aikaisemmassa lauseessa. Näin ollen muuttumatonta argumenttia ei tarvitse toistaa lause lauseelta.<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 /> | ||
+ | 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 /> | ||
+ | |- | ||
+ | | | ||
Esimerkki yksinkertaisesta NC-lauseesta:<br /> | Esimerkki yksinkertaisesta NC-lauseesta:<br /> | ||
'''N001 G01 X500.000 Y60.000 Z0.000 M03'''<br /> | '''N001 G01 X500.000 Y60.000 Z0.000 M03'''<br /> | ||
Rivi 14: | Rivi 29: | ||
'''X520.'''<br /> | '''X520.'''<br /> | ||
Koordinoitu liike työstönopeudella koordinaatteihin 500/60/0, sen jälkeen 510/60/0 ja 520/60/0 koska G01 on modaalinen.<br /> | Koordinoitu liike työstönopeudella koordinaatteihin 500/60/0, sen jälkeen 510/60/0 ja 520/60/0 koska G01 on modaalinen.<br /> | ||
− | + | | | |
− | + | Example of a simple NC block: <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 /> | ||
+ | <br /> | ||
+ | Example of a modal NC block: <br /> | ||
+ | '''G01 X500. Y60. Z0. M03 '''<br /> | ||
+ | '''X510.''' <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 /> | ||
+ | |- | ||
+ | | | ||
=Lotan tunnistamat G-koodisanat= | =Lotan tunnistamat G-koodisanat= | ||
Useimmat 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.<br /> | Useimmat 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.<br /> | ||
Rivi 54: | 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 194: | 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 209: | 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 255: | 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
|