G-code - G-code
| Paradigma | Procedureel , Dwingend |
|---|---|
| Ontworpen door | Massachusetts Institute of Technology |
| Verscheen voor het eerst | jaren 1950 (eerste editie) |
| Bestandsnaamextensies | .gcode, .mpt, .mpf, .nc en verschillende andere |
| Grote implementaties | |
| veel, voornamelijk Siemens Sinumerik, FANUC , Haas , Heidenhain , Mazak . Over het algemeen is er één internationale norm: ISO 6983. | |
Gcode (ook RS-274 ) is de meest gebruikte computer numerieke besturing (CNC) programmeertaal . Het wordt voornamelijk gebruikt in computerondersteunde productie om geautomatiseerde werktuigmachines te besturen en heeft vele varianten.
G-code-instructies worden geleverd aan een machinecontroller (industriële computer) die de motoren vertelt waar ze moeten bewegen, hoe snel ze moeten bewegen en welk pad ze moeten volgen. De twee meest voorkomende situaties zijn dat, binnen een werktuigmachine zoals een draaibank of frees , een snijgereedschap wordt verplaatst volgens deze instructies via een gereedschapsbaan waarbij materiaal wordt weggesneden zodat alleen het voltooide werkstuk overblijft en/of een onafgewerkt werkstuk precies wordt gepositioneerd in elk van maximaal negen assen rond de drie dimensies ten opzichte van een gereedschapspad en een of beide kunnen relatief ten opzichte van elkaar bewegen. Hetzelfde concept strekt zich ook uit tot niet-snijgereedschappen zoals vorm- of polijstgereedschappen , fotoplotten , additieve methoden zoals 3D-printen en meetinstrumenten.
Implementaties
De eerste implementatie van een programmeertaal voor numerieke besturing werd eind jaren vijftig ontwikkeld in het MIT Servomechanisms Laboratory. In de decennia daarna zijn er vele implementaties ontwikkeld door vele (commerciële en niet-commerciële) organisaties. G-code is vaak gebruikt in deze implementaties. De belangrijkste gestandaardiseerde versie die in de Verenigde Staten werd gebruikt, werd begin jaren zestig geregeld door de Electronic Industries Alliance . Een laatste herziening werd in februari 1980 goedgekeurd als RS-274-D . In andere landen wordt vaak de norm ISO 6983 gebruikt, maar veel Europese landen hanteren andere normen. In Duitsland wordt bijvoorbeeld DIN 66025 gebruikt en in Polen werden vroeger PN-73M-55256 en PN-93/M-55251 gebruikt.
Uitbreidingen en variaties zijn onafhankelijk toegevoegd door fabrikanten van besturingselementen en fabrikanten van werktuigmachines, en operators van een specifieke controller moeten op de hoogte zijn van de verschillen van het product van elke fabrikant.
Een gestandaardiseerde versie van G-code, bekend als BCL (Binary Cutter Language), wordt slechts op zeer weinig machines gebruikt. BCL is ontwikkeld aan het MIT en is ontwikkeld om CNC-machines te besturen in termen van rechte lijnen en bogen.
Tijdens de jaren 70 tot 90 probeerden veel fabrikanten van CNC-bewerkingsmachines om compatibiliteitsproblemen te overwinnen door te standaardiseren op machinebesturingen die door Fanuc zijn gebouwd . Siemens was een andere marktdominant in CNC-besturingen, vooral in Europa. In de jaren 2010 zijn de verschillen en incompatibiliteit van controllers niet zo lastig, omdat machinale bewerkingen meestal worden ontwikkeld met CAD/CAM-toepassingen die de juiste G-code voor een specifieke machine kunnen uitvoeren via een softwaretool die een postprocessor wordt genoemd (soms afgekort tot slechts een "na").
Sommige CNC-machines gebruiken "conversatie" programmering, dat is een tovenaar -achtige programmeren modus die ofwel huiden G-code of volledig omzeilt het gebruik van G-code. Enkele populaire voorbeelden zijn Okuma's Advanced One Touch (AOT), Southwestern Industries' ProtoTRAK, Mazak's Mazatrol, Hurco's Ultimax en Winmax, Haas' Intuitive Programming System (IPS) en Mori Seiki's CAPS-gesprekssoftware.
G-code begon als een beperkte taal zonder constructies zoals lussen, voorwaardelijke operators en door de programmeur gedeclareerde variabelen met natuurlijke -woord-inclusief namen (of de uitdrukkingen waarin ze moeten worden gebruikt). Het was niet in staat om logica te coderen, maar was gewoon een manier om "de punten met elkaar te verbinden", waarbij de programmeur veel van de locaties van de punten uit de hand had ontdekt. De nieuwste implementaties van G-code bevatten macrotaalmogelijkheden die iets dichter bij een programmeertaal op hoog niveau liggen . Bovendien bieden alle primaire fabrikanten (bijv. Fanuc, Siemens, Heidenhain) toegang tot PLC- gegevens, zoals aspositioneringsgegevens en gereedschapsgegevens, via variabelen die worden gebruikt door NC-programma's. Deze constructies maken het eenvoudiger om automatiseringstoepassingen te ontwikkelen.
Specifieke codes
G-codes, ook wel voorbereidende codes genoemd, zijn elk woord in een CNC-programma dat begint met de letter G . Over het algemeen is het een code die de machine vertelt welk type actie moet worden uitgevoerd, zoals:
- Snelle beweging (transporteer het gereedschap zo snel mogelijk tussen de zaagsneden door)
- Gecontroleerde voeding in een rechte lijn of boog
- Reeks gecontroleerde aanvoerbewegingen die ertoe zouden leiden dat een gat wordt geboord, een werkstuk wordt gesneden (gefreesd) naar een specifieke afmeting of een profielvorm (contourvorm) wordt toegevoegd aan de rand van een werkstuk
- Gereedschapsinformatie instellen, zoals offset
- Wissel coördinatensystemen
Er zijn andere codes; de typecodes kunnen worden gezien als registers in een computer.
In de loop der jaren is erop gewezen dat de term "G-code" onnauwkeurig is omdat "G" slechts een van de vele letteradressen in de volledige taal is. Het komt uit de letterlijke betekenis van de term, verwijzend naar één letteradres en naar de specifieke codes die ermee kunnen worden gevormd (bijvoorbeeld G00, G01, G28), maar elke letter van het Engelse alfabet wordt ergens in de taal gebruikt . Niettemin is "G-code" metonymisch vastgesteld als de algemene naam van de taal.
Briefadressen
Sommige letteradressen worden alleen bij het frezen of alleen bij het draaien gebruikt; de meeste worden in beide gebruikt. Vetgedrukt hieronder zijn de letters die het meest voorkomen in een programma.
Bronnen: Smid 2008; Midden 2010; Groen et al. 1996.
| Variabele | Beschrijving | Gevolginformatie |
|---|---|---|
| EEN | Absolute of incrementele positie van A-as (rotatie-as rond X-as) | Positieve rotatie wordt gedefinieerd als een rotatie tegen de klok in kijkend van X positief naar X negatief. |
| B | Absolute of incrementele positie van B-as (rotatie-as rond Y-as) | |
| C | Absolute of incrementele positie van de C-as (rotatie-as rond de Z-as) | |
| NS | Definieert de diameter of radiale offset die wordt gebruikt voor freescompensatie. D wordt gebruikt voor de snedediepte op draaibanken. Het wordt gebruikt voor diafragmaselectie en opdrachten op fotoplotters. | G41 : compensatie voor linker mes, G42 : compensatie voor rechter mes |
| E | Precisievoeding voor draadsnijden op draaibanken | |
| F | Definieert invoersnelheid | Gangbare eenheden zijn afstand per tijd voor molens (inch per minuut, IPM of millimeter per minuut, mm/min) en afstand per omwenteling voor draaibanken (inch per omwenteling, IPR of millimeter per omwenteling, mm/omw) |
| G | Adres voor voorbereidende opdrachten | G-commando's vertellen de besturing vaak wat voor soort beweging gewenst is (bijv. snelle positionering, lineaire voeding, circulaire voeding, vaste cyclus) of welke offsetwaarde moet worden gebruikt. |
| H | Definieert de gereedschapslengte-offset; Incrementele as die overeenkomt met de C-as (bijv. op een draaifrees) |
G43 : Negatieve gereedschapslengtecompensatie, G44 : Positieve gereedschapslengtecompensatie |
| l | Definieert het boogcentrum in de X-as voor G02- of G03- boogcommando's. Ook gebruikt als parameter binnen enkele vaste cycli. |
Het boogcentrum is de relatieve afstand van de huidige positie tot het boogcentrum, niet de absolute afstand van het werkcoördinatensysteem (WCS). |
| J | Definieert het boogcentrum in de Y-as voor G02- of G03- boogcommando's. Ook gebruikt als parameter binnen enkele vaste cycli. |
Zelfde uitvloeisel info als ik hierboven. |
| K | Definieert het boogcentrum in de Z-as voor G02- of G03- boogcommando's. Ook gebruikt als parameter binnen enkele vaste cycli, gelijk aan L- adres. |
Zelfde uitvloeisel info als ik hierboven. |
| L | Vast aantal cycluslussen; Specificatie van welk register moet worden bewerkt met G10 |
Vast aantal cycluslussen : definieert het aantal herhalingen ("lussen") van een vaste cyclus op elke positie. Aangenomen dat het 1 is, tenzij geprogrammeerd met een ander geheel getal. Soms wordt het K- adres gebruikt in plaats van L. Met incrementele positionering ( G91 ) kan een reeks gaten op gelijke afstanden worden geprogrammeerd als een lus in plaats van als individuele posities. G10- gebruik: Specificatie van welk register moet worden bewerkt (werkstukoffsets, gereedschapsradiusoffsets, gereedschapslengte-offsets, etc.). |
| m | Diverse functie | Actiecode, hulpcommando; beschrijvingen variëren. Veel M-codes vragen om machinefuncties, daarom zeggen mensen vaak dat de "M" staat voor "machine", hoewel dat niet de bedoeling was. |
| N | Regel (blok)nummer in programma; Nummer van systeemparameter om te wijzigen met G10 |
Regel(blok)nummers: Optioneel, zo vaak weggelaten. Noodzakelijk voor bepaalde taken, zoals M99 P- adres (om de besturing te vertellen naar welk blok van het programma terug te keren als dit niet de standaard is) of GoTo- instructies (als de besturing deze ondersteunt). N- nummering hoeft niet met 1 te worden verhoogd (het kan bijvoorbeeld met 10, 20 of 1000 worden verhoogd) en kan op elk blok worden gebruikt of alleen op bepaalde plaatsen in een programma. Systeemparameternummer: Met G10 kunnen systeemparameters onder programmabesturing worden gewijzigd. |
| O | Programma naam | Bijvoorbeeld O4501. Gedurende vele jaren was het gebruikelijk voor CNC-besturingsdisplays om gestreepte nulglyphs te gebruiken om een moeiteloos onderscheid te maken tussen de letter "O" en het cijfer "0". De GUI-besturingselementen van tegenwoordig hebben vaak een keuze aan lettertypen, zoals een pc dat doet. |
| P | Dient als parameteradres voor verschillende G- en M-codes |
|
| Q | Peck-toename in ingeblikte cycli | Bijvoorbeeld G73 , G83 (pikboorcycli) |
| R | Definieert de grootte van de boogradius of definieert de terugtrekhoogte in voorgeprogrammeerde freescycli | Voor radii ondersteunen niet alle besturingselementen het R-adres voor G02 en G03 , in welk geval IJK-vectoren worden gebruikt. Voor intrekhoogte wordt het "R-niveau", zoals het wordt genoemd, teruggebracht naar als G99 is geprogrammeerd. |
| S | Definieert de snelheid , ofwel de spilsnelheid of de oppervlaktesnelheid, afhankelijk van de modus | Gegevenstype = geheel getal. In de G97- modus (wat meestal de standaardinstelling is), wordt een geheel getal na S geïnterpreteerd als een aantal omw/min (rpm). In de G96- modus (constante oppervlaktesnelheid of CSS) wordt een geheel getal na S geïnterpreteerd als oppervlaktesnelheid —sfm ( G20 ) of m/min ( G21 ). Zie ook Snelheden en feeds . Op multifunctionele machines (draai-frees of frees-draai) wordt welke spil de invoer krijgt (hoofdspil of subspil) bepaald door andere M-codes. |
| t | Gereedschap selectie | Om te begrijpen hoe het T-adres werkt en hoe het samenwerkt (of niet) met M06 , moet men de verschillende methoden bestuderen, zoals het programmeren van draaibanken, ATC (Automatic Tool Change, ingesteld door M06 ) vaste gereedschapsselectie, ATC willekeurig geheugen gereedschapsselectie , het concept van "volgende tool wachtend", en lege tools. Programmeren op een bepaalde werktuigmachine vereist weten welke methode die machine gebruikt. |
| u | Incrementele as die overeenkomt met de X-as (meestal alleen besturingselementen van draaibankgroep A) Definieert ook de verblijftijd op sommige machines (in plaats van " P " of " X "). |
In deze controles ondervangen X en U respectievelijk G90 en G91 . Op deze draaibanken is G90 in plaats daarvan een vast cyclusadres voor voorbewerken . |
| V | Incrementele as die overeenkomt met de Y-as | Tot de jaren 2000 werd het V-adres zeer zelden gebruikt omdat de meeste draaibanken die U en W gebruikten geen Y-as hadden, dus gebruikten ze geen V. (Green et al. 1996 vermeldden V zelfs niet in hun tabel van adressen.) Dat is nog steeds vaak het geval, hoewel de toename van live-draaibankgereedschappen en draaifreesbewerkingen het gebruik van V-adressen minder zeldzaam heeft gemaakt dan vroeger (Smid 2008 toont een voorbeeld). Zie ook G18 . |
| W | Incrementele as die overeenkomt met de Z-as (meestal alleen besturingselementen voor draaibankgroep A) | In deze controles ondervangen Z en W respectievelijk G90 en G91 . Op deze draaibanken is G90 in plaats daarvan een vast cyclusadres voor voorbewerken . |
| x | Absolute of incrementele positie van de X-as. Definieert ook de verblijfstijd op sommige machines (in plaats van " P " of " U "). |
|
| Y | Absolute of incrementele positie van de Y-as | |
| Z | Absolute of incrementele positie van de Z-as | De rotatieas van de hoofdspil bepaalt vaak welke as van een werktuigmachine wordt aangeduid als Z. |
Lijst met G-codes die vaak worden aangetroffen op FANUC en soortgelijke ontworpen bedieningselementen voor frezen en draaien
Bronnen: Smid 2008; Midden 2010; Groen et al. 1996.
- Opmerking : Modaal betekent dat een code van kracht blijft totdat deze wordt vervangen of geannuleerd door een andere toegestane code. Niet-modaal betekent dat het maar één keer wordt uitgevoerd. Zie bijvoorbeeld codes G09, G61 & G64 hieronder.
| Code | Beschrijving | Frezen ( M ) |
Draaien (T) |
Gevolginformatie |
|---|---|---|---|---|
| G00 | Snelle positionering | m | t | Bij 2- of 3-assige bewegingen beweegt G00 (in tegenstelling tot G01 ) traditioneel niet noodzakelijkerwijs in een enkele rechte lijn tussen startpunt en eindpunt. Het beweegt elke as met zijn maximale snelheid totdat zijn vectorhoeveelheid is bereikt. Een kortere vector eindigt meestal als eerste (bij vergelijkbare assnelheden). Dit is van belang omdat het een dog-leg of hockeystick-beweging kan opleveren, waarmee de programmeur rekening moet houden, afhankelijk van de obstakels in de buurt, om een crash te voorkomen. Sommige machines bieden geïnterpoleerde stroomversnellingen als een functie voor gemakkelijke programmering (veilig om een rechte lijn aan te nemen). |
| G01 | Lineaire interpolatie | m | t | De meest voorkomende werkpaardcode voor het voeren tijdens een snede. Het programma specificeert de start- en eindpunten, en de besturing berekent ( interpoleert ) automatisch de tussenliggende punten die moeten passeren en die een rechte lijn opleveren (vandaar " lineair "). De besturing berekent vervolgens de hoeksnelheden waarmee de asspindels moeten worden gedraaid via hun servomotoren of stappenmotoren. De computer voert duizenden berekeningen per seconde uit en de motoren reageren snel op elke invoer. Het eigenlijke gereedschapspad van de bewerking vindt dus plaats met de gegeven voedingssnelheid op een pad dat nauwkeurig lineair is tot binnen zeer kleine grenzen. |
| G02 | Circulaire interpolatie, met de klok mee | m | t | Zeer vergelijkbaar in concept met G01. Nogmaals, de besturing interpoleert tussenliggende punten en geeft de servo- of stappenmotoren opdracht om de hoeveelheid te roteren die nodig is voor de spindel om de beweging te vertalen naar de juiste tooltip-positionering. Dit proces dat duizenden keren per minuut wordt herhaald, genereert het gewenste gereedschapspad. In het geval van G02 genereert de interpolatie een cirkel in plaats van een lijn. Net als bij G01 vindt het eigenlijke gereedschapspad van de bewerking plaats met de gegeven voedingssnelheid op een pad dat nauwkeurig overeenkomt met het ideale (in het geval van G02 een cirkel) tot binnen zeer kleine grenzen. In feite is de interpolatie zo nauwkeurig (als alle omstandigheden correct zijn) dat het frezen van een geïnterpoleerde cirkel bewerkingen zoals boren kan voorkomen en vaak zelfs saai kan vinden. Adressen voor straal of middelpunt van de boog: G02 en G03 hebben ofwel een R- adres (voor de gewenste straal op het onderdeel) of IJK- adressen (voor de componentvectoren die de vector definiëren van het beginpunt van de boog tot het middelpunt van de boog). Cutter comp: Op de meeste bedieningselementen kunt u G41 of G42 niet starten in de G02- of G03- modus. U moet al gecompenseerd hebben in een eerder G01- blok. Vaak wordt een korte lineaire inloopbeweging geprogrammeerd, alleen om freescompensatie mogelijk te maken voordat de hoofdactie, het cirkelsnijden, begint. Volledige cirkels: wanneer het beginpunt van de boog en het eindpunt van de boog identiek zijn, snijdt het gereedschap een boog van 360° (een volledige cirkel). (Sommige oudere besturingselementen ondersteunen dit niet omdat bogen niet kunnen kruisen tussen kwadranten van het cartesiaanse systeem. In plaats daarvan hebben ze vier kwartcirkelbogen nodig die achter elkaar worden geprogrammeerd.) |
| G03 | Circulaire interpolatie, tegen de klok in | m | t | Zelfde uitvloeisel info als voor G02. |
| G04 | Uitweiden | m | t | Neemt een adres voor verblijfsperiode (kan X , U of P zijn ). De verblijfsperiode wordt gespecificeerd door een controleparameter, meestal ingesteld op milliseconden . Sommige machines kunnen X1.0 ( s ) of P1000 ( ms ) accepteren , die equivalent zijn.De verblijfsduur kiezen : Vaak hoeft de verblijfsduur slechts één of twee volledige spindelrotaties te duren. Dit is meestal veel minder dan een seconde. Houd er bij het kiezen van een duurwaarde rekening mee dat een lange verblijftijd een verspilling van cyclustijd is. In sommige situaties maakt het niet uit, maar voor repetitieve productie met een hoog volume (over duizenden cycli), is het de moeite waard om te berekenen dat je misschien maar 100msnodig hebt, en je kunt het 200 noemen om veilig te zijn, maar 1000 is gewoon zonde (te lang). |
| G05 P10000 | Zeer nauwkeurige contourcontrole (HPCC) | m | Gebruikt een diepe vooruitziende buffer en simulatieverwerking voor een betere versnelling en vertraging van de asbeweging tijdens het frezen van contouren | |
| G05.1 Q1. | AI Geavanceerd voorbeeldbeheer | m | Gebruikt een diepe vooruitziende buffer en simulatieverwerking voor een betere versnelling en vertraging van de asbeweging tijdens het frezen van contouren | |
| G06.1 | Niet-uniforme rationale B-spline (NURBS) bewerking | m | Activeert niet-uniforme rationale B-spline voor complexe bewerking van curven en golfvormen (deze code wordt bevestigd in Mazatrol 640M ISO-programmering) | |
| G07 | Denkbeeldige asaanduiding | m | ||
| G09 | Exacte stopcontrole, niet-modaal | m | t | De modale versie is G61 . |
| G10 | Programmeerbare gegevensinvoer | m | t | Wijzigt de waarde van werkstukcoördinaat en gereedschapsverschuivingen |
| G11 | Gegevens schrijven annuleren | m | t | |
| G17 | XY-vlak selectie | m | ||
| G18 | ZX vliegtuig selectie | m | t | |
| G19 | YZ vliegtuig selectie | m | ||
| G20 | Programmeren in inches | m | t | Enigszins ongebruikelijk, behalve in de VS en (in mindere mate) Canada en het VK. Op de wereldmarkt bestaat er echter altijd een kans dat competentie met zowel de G20 als de G21 op elk moment noodzakelijk is. De gebruikelijke minimale toename in G20 is één tienduizendste inch (0,0001"), wat een grotere afstand is dan de gebruikelijke minimale toename in G21 (een duizendste van een millimeter, .001 mm, dat wil zeggen één micrometer ). fysiek verschil is soms gunstig voor G21-programmering. |
| G21 | Programmeren in millimeters (mm) | m | t | Wereldwijd gangbaar. Op de wereldmarkt bestaat er echter altijd een kans dat competentie met zowel de G20 als de G21 op elk moment noodzakelijk is. |
| G28 | Terug naar uitgangspositie (machinenulpunt, ook wel machinereferentiepunt genoemd) | m | t | Neemt XYZ-adressen die het tussenpunt definiëren waar de gereedschapspunt doorheen gaat op weg naar huis naar machinenulpunt. Ze zijn in termen van deel nul (ook bekend als programma nul), NIET machine nul. |
| G30 | Keer terug naar de secundaire uitgangspositie (machinenulpunt, ook wel machinereferentiepunt genoemd) | m | t | Neemt een P-adres dat aangeeft welk machinenulpunt moet worden gebruikt als de machine meerdere secundaire punten heeft (P1 tot P4). Neemt XYZ-adressen die het tussenpunt definiëren waar de tooltip doorheen gaat op weg naar huis naar machinenulpunt. Deze worden uitgedrukt in termen van deel nul (ook wel programma nul genoemd), NIET machine nul. |
| G31 | Voer tot overslaan-functie | m | Gebruikt voor tasters en meetsystemen voor gereedschapslengte. | |
| G32 | Eenpuntsdraad inrijgen, met de hand (indien geen cyclus gebruikt, bijv. G76 ) | t | Vergelijkbaar met G01 lineaire interpolatie, behalve met automatische spilsynchronisatie voor enkelpunts draadsnijden . | |
| G33 | Met constante steek threading | m | ||
| G33 | Eenpuntsdraad inrijgen, met de hand (indien geen cyclus gebruikt, bijv. G76 ) | t | Sommige draaibankbesturingen wijzen deze modus toe aan G33 in plaats van G32. | |
| G34 | Inrijgen met variabele spoed | m | ||
| G40 | Gereedschapsradiuscompensatie uit | m | t | Schakel freesradiuscompensatie (CRC) uit . Annuleert G41 of G42. |
| G41 | Gereedschapsradiuscompensatie links | m | t | Schakel freesradiuscompensatie (CRC) , links, in voor meelopend frezen. Frezen: Gegeven de frees met rechtse spiraal en de M03- spilrichting, komt G41 overeen met meelopend frezen (naar beneden frezen) . Neemt een adres ( D of H ) dat een offset registerwaarde voor radius aanroept. Draaien: heeft vaak geen D- of H-adres nodig op draaibanken, want welk gereedschap dan ook actief is, roept automatisch de geometrieoffsets op. (Elk revolverstation is gebonden aan zijn geometrie-offsetregister.) G41 en G42 voor frezen zijn gedeeltelijk geautomatiseerd en overbodig (hoewel niet volledig) sinds CAM- programmering gebruikelijker is geworden. Met CAM-systemen kan de gebruiker programmeren alsof hij een frees met een diameter van nul gebruikt. Het fundamentele concept van freesradiuscompensatie is nog steeds in het spel (dwz dat het geproduceerde oppervlak een afstand R van het freescentrum zal zijn), maar de programmeermentaliteit is anders. De mens choreografeert het gereedschapspad niet met bewuste, nauwgezette aandacht voor G41, G42 en G40, omdat de CAM-software daarvoor zorgt. De software heeft verschillende CRC-modusselecties, zoals computer, besturing, slijtage, omgekeerde slijtage, uit , waarvan sommige helemaal geen gebruik maken van G41/G42 (goed voor voorbewerken of brede afwerkingstoleranties), en andere die het zo gebruiken dat de slijtage-offset kan nog op de machine worden aangepast (beter voor nauwe afwerkingstoleranties). |
| G42 | Gereedschapsradiuscompensatie rechts | m | t | Schakel freesradiuscompensatie (CRC) rechts in voor conventioneel frezen. Gelijkaardige uitvloeisel info als voor G41 . Gegeven de rechtse spiraalfrees en de M03-spilrichting, komt G42 overeen met conventioneel frezen (omhoog frezen) . |
| G43 | Gereedschapshoogte offset compensatie negatief | m | Neemt een adres, meestal H, om de registerwaarde van de gereedschapslengte-offset aan te roepen. De waarde is negatief omdat deze wordt toegevoegd aan de positie van de meterlijn. G43 is de veelgebruikte versie (vs G44). | |
| G44 | Gereedschapshoogte offset compensatie positief | m | Neemt een adres, meestal H, om de registerwaarde van de gereedschapslengte-offset aan te roepen. De waarde is positief omdat deze wordt afgetrokken van de positie van de meterlijn. G44 is de zelden gebruikte versie (vs G43). | |
| G45 | As offset enkele verhoging | m | ||
| G46 | As offset enkele afname | m | ||
| G47 | As offset dubbele verhoging | m | ||
| G48 | As offset dubbele afname | m | ||
| G49 | Gereedschapslengte offset compensatie annuleren | m | Annuleert G43 of G44 . | |
| G50 | Definieer de maximale spilsnelheid | t | Neemt een geheel getal van het S- adres, dat wordt geïnterpreteerd als rpm. Zonder deze functie zou de G96- modus (CSS) de spil naar "wijd open gas" draaien wanneer de rotatie-as dicht nadert. | |
| G50 | Schaalfunctie annuleren | m | ||
| G50 | Positieregister (programmering van vector van deel nul tot tooltip) | t | Positieregister is een van de originele methoden om het coördinatensysteem van het onderdeel (programma) te relateren aan de gereedschapspositie, wat het indirect relateert aan het machinecoördinatensysteem , de enige positie die de besturing echt "kent". Niet vaak meer geprogrammeerd omdat G54 tot G59 (WCS's) een betere, nieuwere methode zijn. Via G50 gebeld voor draaien, G92 voor frezen. Die G-adressen hebben ook alternatieve betekenissen ( zie ). Positieregister kan nog steeds nuttig zijn voor het programmeren van nulpuntverschuivingen. De "handmatige absolute" schakelaar, die zeer weinig nuttige toepassingen heeft in WCS-contexten, was nuttiger in positieregistercontexten omdat het de operator in staat stelde het gereedschap op een bepaalde afstand van het onderdeel te verplaatsen (bijvoorbeeld door een 2.0000" aan te raken gage) en verklaar dan aan de controle wat de resterende afstand zal zijn (2.0000). | |
| G52 | Lokaal coördinatensysteem (LCS) | m | Verschuift tijdelijk programma nul naar een nieuwe locatie. Het is gewoon "een offset van een offset", dat wil zeggen een extra offset toegevoegd aan de WCS- offset. Dit vereenvoudigt het programmeren in sommige gevallen. Het typische voorbeeld is het verplaatsen van onderdeel naar onderdeel in een meerdelige opstelling. Met G54 actief, verschuift G52 X140.0 Y170.0 programma nul 140 mm over in X en 170 mm over in Y. Wanneer het deel "daar" is voltooid, zet G52 X0 Y0 programma nul terug naar normaal G54 (door de G52-offset te verminderen naar niets). Hetzelfde resultaat kan ook worden bereikt (1) met behulp van meerdere WCS-oorsprongen, G54/G55/G56/G57/G58/G59; (2) op nieuwere bedieningselementen, G54.1 P1/P2/P3/etc. (helemaal tot P48); of (3) G10 gebruiken voor programmeerbare gegevensinvoer, waarin het programma nieuwe offsetwaarden naar de offsetregisters kan schrijven. De te gebruiken methode hangt af van de winkelspecifieke toepassing. | |
| G53 | Machine coördinatensysteem | m | t | Neemt absolute coördinaten (X,Y,Z,A,B,C) met betrekking tot machinenulpunt in plaats van programmanulpunt. Kan handig zijn voor gereedschapswisselingen. Alleen niet-modaal en absoluut. Volgende blokken worden geïnterpreteerd als "terug naar G54 ", zelfs als dit niet expliciet is geprogrammeerd. |
| G54 tot G59 | Werkcoördinatenstelsels (WCS's) | m | t | Positie register grotendeels vervangen ( G50 en G92 ). Elk tupel van asoffsets relateert het programmanulpunt direct aan het machinenulpunt. Standaard zijn 6 tupels (G54 tot G59), met optionele uitbreidbaarheid tot 48 meer via G54.1 P1 tot P48. |
| G54.1 P1 tot P48 | Uitgebreide werkcoördinatensystemen | m | t | Tot 48 extra WCS's naast de 6 standaard geleverd door G54 tot G59. Let op drijvende-komma-uitbreiding van het gegevenstype G-code (voorheen alle gehele getallen). Andere voorbeelden zijn ook geëvolueerd (bijv. G84.2 ). Moderne bedieningselementen hebben de hardware om het aan te kunnen. |
| G61 | Exacte stopcontrole, modaal | m | t | Kan worden geannuleerd met G64 . De niet-modale versie is G09 . |
| G62 | Automatische hoekoverschrijving | m | t | |
| G64 | Standaard snijmodus (exacte stop check-modus annuleren) | m | t | Annuleert G61 . |
| G68 | Coördinatensysteem roteren | m | Roteert het coördinatensysteem in het huidige vlak gegeven met G17 , G18 of G19 . Het rotatiecentrum wordt gegeven met twee parameters, die variëren met de implementatie van elke leverancier. Roteren met hoek gegeven met argument R. Dit kan bijvoorbeeld worden gebruikt om het coördinatensysteem uit te lijnen met een verkeerd uitgelijnd onderdeel. Het kan ook worden gebruikt om bewegingsreeksen rond een centrum te herhalen. Niet alle leveranciers ondersteunen rotatie van het coördinatensysteem. | |
| G69 | Rotatie van het coördinatensysteem uitschakelen | m | Annuleert G68 . | |
| G70 | Vaste cyclus, meerdere herhalingscycli, voor afwerking (inclusief contouren) | t | ||
| G71 | Vaste cyclus, meerdere repetitieve cycli, voor voorbewerken (nadruk op Z-as) | t | ||
| G72 | Vaste cyclus, meerdere repetitieve cycli, voor voorbewerken (nadruk op de X-as) | t | ||
| G73 | Vaste cyclus, meervoudige repetitieve cyclus, voor voorbewerken, met patroonherhaling | t | ||
| G73 | Peck-boorcyclus voor frezen - hoge snelheid (GEEN volledige terugtrekking van pecks) | m | Trekt slechts zover in als een afstandstoename (systeemparameter). Want wanneer spaanbreken de belangrijkste zorg is, maar spaanverstopping van spaangroeven niet. Vergelijk G83 . | |
| G74 | Peck-boorcyclus voor draaien | t | ||
| G74 | Tapcyclus voor frezen, linkse draad , M04 spindelrichting | m | Zie opmerkingen bij G84 . | |
| G75 | Peck-groefsteekcyclus voor draaien | t | ||
| G76 | Fijne kottercyclus voor frezen | m | Inclusief OSS en shift (georiënteerde spindelstop en shift-tool buiten de middellijn voor terugtrekken) | |
| G76 | Inrijgcyclus voor draaien, meerdere herhaalde cyclus | t | ||
| G80 | Voorgeprogrammeerde cyclus annuleren | m | t |
Frezen: Annuleert alle cycli zoals G73 , G81 , G83 , enz. De Z-as keert terug naar het Z-initiële niveau of het R-niveau, zoals geprogrammeerd (respectievelijk G98 of G99 ). Draaien: Meestal niet nodig op draaibanken, omdat een nieuw groep-1 G-adres ( G00 tot G03 ) elke actieve cyclus annuleert. |
| G81 | Eenvoudige boorcyclus | m | Geen woning ingebouwd | |
| G82 | Boorcyclus met stilstand | m | Blijft op de bodem van het gat (Z-diepte) gedurende het aantal milliseconden dat wordt gespecificeerd door het P- adres. Goed voor wanneer de afwerking van de gaten er toe doet. Goed voor puntboren omdat de divot zeker gelijkmatig wordt schoongemaakt. Denk aan de opmerking "het kiezen van de verblijfsduur " bij G04 . | |
| G83 | Peck-boorcyclus (volledige terugtrekking van pikken) | m | Keert terug naar R-niveau na elke pik. Goed voor het verwijderen van spaanders . Vergelijk G73 . | |
| G84 | Tapcyclus , rechtse schroefdraad , M03 spindelrichting | m | G74 en G84 zijn het rechts- en linkshandige "paar" voor ouderwets tappen met een niet-stijve gereedschapshouder ("tapkop" -stijl). Vergelijk de stijve tikken "paar", G84.2 en G84.3 . | |
| G84.2 | Tapcyclus, rechtse schroefdraad , M03 spindelrichting, starre gereedschapshouder | m | Zie opmerkingen bij G84 . Stijf tikken synchroniseert snelheid en voedingen volgens de gewenste schroefdraadspiraal. Dat wil zeggen, het synchroniseert graden van spindelrotatie met microns axiale verplaatsing. Daarom kan het een stijve gereedschapshouder gebruiken om de kraan vast te houden. Deze functie is niet beschikbaar op oude machines of nieuwere low-end machines, die "tapkop" -beweging moeten gebruiken ( G74 / G84 ). | |
| G84.3 | Tapcyclus, linkse schroefdraad , M04 spindelrichting, starre gereedschapshouder | m | Zie opmerkingen bij G84 en G84.2 . | |
| G85 | kottercyclus, feed in/feed out | m |
|
|
| G86 | kottercyclus, invoer/spilstop/snel uit | m | Kottergereedschap laat een lichte streep achter op de terugweg. Passende cyclus voor sommige toepassingen; voor anderen kan in plaats daarvan G76 (OSS/shift) worden gebruikt. | |
| G87 | saaie cyclus, backboring | m | Voor backboring . Keert alleen terug naar het beginniveau ( G98 ); deze cyclus kan G99 niet gebruiken omdat het R-niveau zich aan de andere kant van het onderdeel bevindt, weg van de spilkop. | |
| G88 | kottercyclus, invoer/spilstop/handbediening | m | ||
| G89 | kottercyclus, feed in/dwell/feed out | m | G89 is als G85 maar met verblijf toegevoegd aan de onderkant van het gat. | |
| G90 | Absoluut programmeren | m | T (B) | Positionering gedefinieerd met verwijzing naar onderdeel nul. Frezen: Altijd zoals hierboven. Draaien: Soms zoals hierboven (Fanuc-groep type B en soortgelijk ontworpen), maar op de meeste draaibanken (Fanuc-groep type A en soortgelijk ontworpen), worden G90/G91 niet gebruikt voor absolute/incrementele modi. In plaats daarvan zijn U en W de incrementele adressen en zijn X en Z de absolute adressen. Op deze draaibanken is G90 in plaats daarvan een vast cyclusadres voor voorbewerken. |
| G90 | Vaste cyclus, eenvoudige cyclus, voor voorbewerken (Z-as nadruk) | T (A) | Bij niet serveren voor absolute programmering (hierboven) | |
| G90.1 | Absolute boogprogrammering | m | I, J, K positionering gedefinieerd met verwijzing naar deel nul. | |
| G91 | Incrementele programmering | m | T (B) | Positionering gedefinieerd met verwijzing naar de vorige positie. Frezen: Altijd zoals hierboven. Draaien: Soms zoals hierboven (Fanuc-groep type B en soortgelijk ontworpen), maar op de meeste draaibanken (Fanuc-groep type A en soortgelijk ontworpen), worden G90/G91 niet gebruikt voor absolute/incrementele modi. In plaats daarvan zijn U en W de incrementele adressen en zijn X en Z de absolute adressen. Op deze draaibanken is G90 een vast cyclusadres voor voorbewerken. |
| G91.1 | Incrementele boogprogrammering | m | I, J, K-positionering gedefinieerd met verwijzing naar de vorige positie. | |
| G92 | Positieregister (programmering van vector van onderdeel nul tot gereedschapspunt) | m | T (B) | Zelfde uitvloeisel info als bij G50 positie register . Frezen: Altijd zoals hierboven. Draaien: Soms zoals hierboven (Fanuc-groep type B en soortgelijk ontworpen), maar op de meeste draaibanken (Fanuc-groep type A en soortgelijk ontworpen), is het positieregister G50 . |
| G92 | Inrijgcyclus, eenvoudige cyclus | T (A) | ||
| G94 | Toevoer per minuut | m | T (B) | Op draaibanken van het type A is de voeding per minuut G98 . |
| G94 | Vaste cyclus, eenvoudige cyclus, voor voorbewerken ( nadruk X- as) | T (A) | Bij niet serveren voor voedingssnelheid per minuut (hierboven) | |
| G95 | Voeding per omwenteling | m | T (B) | Op draaibanken van het type A is de voeding per omwenteling G99 . |
| G96 | Constante oppervlaktesnelheid (CSS) | t | Varieert automatisch de spilsnelheid om een constante oppervlaktesnelheid te bereiken. Zie snelheden en feeds . Neemt een S- adresgeheel getal, dat wordt geïnterpreteerd als sfm in de G20- modus of als m/min in de G21- modus. | |
| G97 | Constante spilsnelheid | m | t | Neemt een geheel getal van het S-adres, dat wordt geïnterpreteerd als omw/min (rpm). De standaard snelheidsmodus per systeemparameter als er geen modus is geprogrammeerd. |
| G98 | Keer terug naar het initiële Z-niveau in de voorgeprogrammeerde cyclus | m | ||
| G98 | Voeding per minuut (groepstype A) | T (A) | Voeding per minuut is G94 op groepstype B. | |
| G99 | Keer terug naar R-niveau in voorgeprogrammeerde cyclus | m | ||
| G99 | Voeding per omwenteling (groepstype A) | T (A) | Voeding per omwenteling is G95 op groeptype B. | |
| G100 | Gereedschapslengtemeting | m |
Lijst met M-codes die vaak worden aangetroffen op FANUC en soortgelijke ontworpen bedieningselementen voor frezen en draaien
Bronnen: Smid 2008; Midden 2010; Groen et al. 1996.
Sommige oudere besturingselementen vereisen dat M-codes in afzonderlijke blokken staan (dat wil zeggen, niet op dezelfde regel).
| Code | Beschrijving | Frezen ( M ) |
Draaien (T) |
Gevolginformatie |
|---|---|---|---|---|
| M00 | Verplichte stop | m | t | Niet-optioneel: machine stopt altijd bij het bereiken van M00 in de uitvoering van het programma. |
| M01 | Optionele stop | m | t | Machine stopt alleen bij M01 als de machinist op de optionele stopknop drukt. |
| M02 | Einde programma | m | t | Programma eindigt; uitvoering kan al dan niet terugkeren naar programmatop (afhankelijk van de besturing); kan wel of niet registerwaarden resetten. M02 was de oorspronkelijke programma-end-code, die nu als verouderd wordt beschouwd, maar nog steeds wordt ondersteund voor achterwaartse compatibiliteit. Veel moderne controles behandelen M02 als gelijkwaardig aan M30 . Zie M30 voor aanvullende bespreking van de besturingsstatus bij het uitvoeren van M02 of M30. |
| M03 | Spindel aan (draaien met de klok mee) | m | t | De snelheid van de spil wordt bepaald door het adres S , in ofwel omwentelingen per minuut ( G97- modus; standaard) of oppervlaktevoeten per minuut of [oppervlakte] meter per minuut ( G96- modus [CSS] onder ofwel G20 of G21 ). De rechterhandregel kan worden gebruikt om te bepalen welke richting met de klok mee is en welke richting tegen de klok in is.
Rechter-spiraalschroeven die in de aandraairichting bewegen (en rechts-spiraalgroeven die in de snijrichting draaien) worden gedefinieerd als bewegend in de M03-richting en worden volgens afspraak "met de klok mee" aangeduid. De M03-richting is altijd M03, ongeacht het lokale uitkijkpunt en het lokale CW/CCW-onderscheid. |
| M04 | Spindel aan (tegen de klok in draaien) | m | t | Zie opmerking hierboven bij M03. |
| M05 | Spindelstop | m | t | |
| M06 | Automatische gereedschapswissel (ATC) | m | T (soms) | Veel draaibanken gebruiken M06 niet omdat het T- adres zelf de revolver indexeert. Programmeren op een bepaalde werktuigmachine vereist weten welke methode die machine gebruikt. Om te begrijpen hoe het T-adres werkt en hoe het samenwerkt (of niet) met M06, moet men de verschillende methoden bestuderen, zoals draaibankrevolverprogrammering, ATC-selectie van vast gereedschap, ATC-selectie van willekeurig geheugengereedschap, het concept van "volgende gereedschap wachtend" en leeg gereedschap. |
| M07 | Koelvloeistof aan (nevel) | m | t | |
| M08 | Koelvloeistof aan (overstroming) | m | t | |
| M09 | Koelvloeistof uit | m | t | |
| M10 | Palletklem aan | m | Voor bewerkingscentra met palletwisselaars | |
| M11 | Palletklem af | m | Voor bewerkingscentra met palletwisselaars | |
| M13 | Spindel aan (rechtsom draaien) en koelvloeistof aan (overstroming) | m | Deze ene M-code doet het werk van zowel M03 als M08 . Het is niet ongebruikelijk dat bepaalde machinemodellen dergelijke gecombineerde commando's hebben, die kortere, sneller geschreven programma's opleveren. | |
| M19 | Spindel oriëntatie | m | t | Spindeloriëntatie wordt vaker binnen cycli (automatisch) of tijdens het instellen (handmatig) genoemd, maar is ook beschikbaar onder programmabesturing via M19 . De afkorting OSS (georiënteerde spilstop) kan worden gezien als verwijzing naar een georiënteerde stop binnen cycli.
De relevantie van spiloriëntatie is toegenomen naarmate de technologie vorderde. Hoewel de 4- en 5-assige contour frezen en CNC single-pointing hebben afgehangen van spilpositie encoders voor tientallen jaren, vóór de komst van wijdverbreide aangedreven gereedschappen en molen-turn / turn-mill-systemen, het was niet zo vaak relevant in "gewone" (niet-"speciale") bewerking voor de operator (in tegenstelling tot de machine) om de hoekoriëntatie van een spil te kennen zoals deze nu is, behalve in bepaalde contexten (zoals gereedschapswissel of G76-fijnkottercycli met gechoreografeerde gereedschapsterugtrekking ). Het meeste frezen van kenmerken die rond een gedraaid werkstuk zijn geïndexeerd, werd bereikt met afzonderlijke bewerkingen op de instellingen van de indexeerkop ; in zekere zin werden indexeerkoppen oorspronkelijk uitgevonden als afzonderlijke apparaten, om te worden gebruikt in afzonderlijke bewerkingen, die een nauwkeurige spiloriëntatie konden bieden in een wereld waar het anders meestal niet bestond (en ook niet nodig was). Maar aangezien CAD/CAM en meerassige CNC-bewerking met meerdere roterende snijassen de norm worden, zelfs voor "gewone" (niet-"speciale") toepassingen, vinden machinisten het tegenwoordig vaak belangrijk om zowat elke spil met precisie door zijn 360° te stappen . |
| M21 | Spiegel, X- as | m | ||
| M21 | losse kop naar voren | t | ||
| M22 | Spiegel, Y- as | m | ||
| M22 | losse kop achteruit | t | ||
| M23 | Spiegel UIT | m | ||
| M23 | Draad geleidelijk uittrekken AAN | t | ||
| M24 | Draad geleidelijk uittrekken UIT | t | ||
| M30 | Einde programma, met terug naar boven programma | m | t | Tegenwoordig wordt M30 beschouwd als de standaard programma-eindcode en keert de uitvoering terug naar de top van het programma. De meeste besturingen ondersteunen ook nog steeds de oorspronkelijke programma- eindcode , M02 , meestal door deze te behandelen als equivalent aan M30. Extra info: Vergelijk M02 met M30. Ten eerste werd M02 gemaakt, in de tijd dat de geperforeerde tape naar verwachting kort genoeg was om in een doorlopende lus te splitsen (daarom veroorzaakte M02 bij oude bedieningselementen geen terugspoelen van de tape). De andere programma-eindcode, M30, werd later toegevoegd om plaats te bieden aan langere ponsbanden, die op een spoel waren gewikkeld en dus moesten worden teruggespoeld voordat een nieuwe cyclus kon beginnen. Op veel nieuwere bedieningselementen is er geen verschil meer in hoe de codes worden uitgevoerd - beide werken als M30. |
| M41 | Versnellingskeuze – versnelling 1 | t | ||
| M42 | Versnellingskeuze – versnelling 2 | t | ||
| M43 | Versnellingskeuze – versnelling 3 | t | ||
| M44 | Versnellingskeuze – versnelling 4 | t | ||
| M48 | Feedrate overschrijven toegestaan | m | t | MFO (handmatige invoer override) |
| M49 | Feedrate overschrijven NIET toegestaan | m | t | Voorkom MFO (handmatige voeding override). Deze regel wordt meestal ook (automatisch) genoemd binnen tapcycli of enkelpunts schroefdraadcycli, waarbij voeding precies gecorreleerd is aan snelheid. Hetzelfde met SSO (spindle speed override) en feed hold-knop. Sommige bedieningselementen kunnen SSO en MFO leveren tijdens het threaden . |
| M52 | Laatste gereedschap uit de spil halen | m | t | Ook lege spindel. |
| M60 | Automatische palletwisseling (APC) | m | Voor bewerkingscentra met palletwisselaars | |
| M98 | Subprogramma-oproep | m | t | Neemt een adres P om aan te geven welk subprogramma moet worden aangeroepen, bijvoorbeeld "M98 P8979" roept subprogramma O8979 aan. |
| M99 | Subprogramma einde | m | t | Meestal geplaatst aan het einde van het subprogramma, waar het de uitvoeringscontrole teruggeeft aan het hoofdprogramma. De standaard is dat de besturing terugkeert naar het blok na de M98-oproep in het hoofdprogramma. Terugkeer naar een ander bloknummer kan worden gespecificeerd door een P-adres. M99 kan ook worden gebruikt in het hoofdprogramma met blokoverslaan voor een eindeloze lus van het hoofdprogramma op staafwerk op draaibanken (totdat de operator het overslaan van blokkering inschakelt). |
| M100 | Schoon mondstuk | Sommige 3D-printers hebben een vooraf gedefinieerde routine voor het afvegen van het extrudermondstuk in de X- en Y-richting, vaak tegen een flexibele schraper die op het stortgebied is gemonteerd. |
Voorbeeld programma
Dit is een generiek programma dat het gebruik van G-code demonstreert om een onderdeel te draaien met een diameter van 1" bij 1" lang. Neem aan dat er een staaf materiaal in de machine zit en dat de staaf iets te groot is in lengte en diameter en dat de staaf meer dan 2,5 cm uit het oppervlak van de boorkop steekt. (Let op: dit is algemeen, het werkt mogelijk niet op elke echte machine! Besteed speciale aandacht aan punt 5 hieronder.)
| Blokkeren / coderen | Beschrijving |
|---|---|
% |
Signaleert start van gegevens tijdens bestandsoverdracht. Oorspronkelijk gebruikt om het terugspoelen van de band te stoppen, niet noodzakelijk om het programma te starten. Voor sommige besturingen (FANUC) is de eerste LF (EOB) de start van het programma. ISO gebruikt %, EIA gebruikt ER (0x0B). |
O4968 (OPTIONAL PROGRAM DESCRIPTION OR COMMENT) |
Voorbeeld gezicht en draai programma. Opmerkingen staan tussen haakjes. |
N01 M216 |
Schakel belastingsmonitor in |
N02 G20 G90 G54 D200 G40 |
Inch-eenheden. Absolute modus. Werkstukverschuiving activeren. Gereedschapsverschuiving activeren. Beitelneusradiuscompensatie deactiveren. Betekenis: Dit blok wordt vaak het veilige blok of veiligheidsblok genoemd. De commando's kunnen variëren, maar zijn meestal vergelijkbaar met de hier getoonde. Het idee is dat een veiligheidsblok altijd bovenaan elk programma moet staan, als een algemene standaard, tenzij er een zeer specifieke/concrete reden bestaat om het weg te laten. Het veiligheidsblok is als een sanity check of een preflight-checklist : het zorgt expliciet voor voorwaarden die anders impliciet zouden zijn, alleen aan veronderstellingen overgelaten. Het veiligheidsblok vermindert het risico op crashes en het kan ook nuttig zijn om het denken van de mensen die het programma schrijven of lezen onder gehaaste omstandigheden te heroriënteren. |
N03 G50 S2000 |
Stel het maximale spiltoerental in omw/min — Deze instelling heeft invloed op de modus Constant Surface Speed |
N04 T0300 |
Indexrevolver naar gereedschap 3. Duidelijke slijtage-offset (00). |
N05 G96 S854 M03 |
Constante oppervlaktesnelheid [varieert automatisch de spilsnelheid], 854 sfm , start spil CW-rotatie |
N06 G41 G00 X1.1 Z1.1 T0303 M08 |
Schakel freesradiuscompensatiemodus in, snelle positie tot 0,55" boven axiale middellijn (1,1" in diameter) en 1,1 inch positief vanaf de werkstukoffset in Z, activeer overstromingskoelmiddel |
N07 G01 Z1.0 F.05 |
Voer horizontaal in met een snelheid van 0,050" per omwenteling van de spil totdat het gereedschap 1" positief van de nulpuntverschuiving is gepositioneerd |
N08 X-0.016 |
Voer het gereedschap iets voorbij het midden - het gereedschap moet ten minste zijn neusradius voorbij het midden van het onderdeel bewegen om te voorkomen dat er een restant uitschulping van materiaal achterblijft. |
N09 G00 Z1.1 |
Snelle positionering; terugtrekken naar startpositie |
N10 X1.0 |
Snelle positionering; volgende pas |
N11 G01 Z0.0 F.05 |
Feed-in horizontaal snijden van de staaf tot 1 "diameter helemaal tot aan het referentiepunt, 0.05in/rev |
N12 G00 X1.1 M05 M09 |
Maak het onderdeel vrij, stop de spil, schakel de koelvloeistof uit! |
N13 G91 G28 X0 |
Home X-as — retourneer de startpositie van de machine voor de X-as |
N14 G91 G28 Z0 |
Home Z-as — terugkeren naar de startpositie van de machine voor de Z-as |
N15 G90 |
Keer terug naar de absolute modus. Schakel belastingsmonitor uit |
N16 M30 |
Programma stoppen, terugspoelen naar het begin van het programma, wachten op cyclusstart |
% |
Signaal einde van gegevens tijdens bestandsoverdracht. Oorspronkelijk gebruikt om het einde van de band te markeren, niet noodzakelijk het einde van het programma. ISO gebruikt %, EIA gebruikt ER (0x0B). |
Enkele aandachtspunten:
- Er is ruimte voor enige programmeerstijl, zelfs in dit korte programma. De groepering van codes in regel N06 had op meerdere regels kunnen staan. Hierdoor is het wellicht gemakkelijker geworden om de uitvoering van het programma te volgen.
- Veel codes zijn modaal , wat betekent dat ze van kracht blijven totdat ze worden geannuleerd of vervangen door een tegenstrijdige code. Als bijvoorbeeld snijden met variabele snelheid (CSS) is geselecteerd (G96), blijft het van kracht tot het einde van het programma. Tijdens bedrijf neemt de spilsnelheid toe naarmate het gereedschap zich in de buurt van het midden van het werkstuk bevindt om een constante oppervlaktesnelheid te behouden. Evenzo, zodra snelle voeding is geselecteerd (G00), zijn alle gereedschapsbewegingen snel totdat een voedingssnelheidscode (G01, G02, G03) wordt geselecteerd.
- Het is gebruikelijk om een belastingsmonitor te gebruiken bij CNC-machines. De belastingsmonitor stopt de machine als de spil- of voedingsbelasting een vooraf ingestelde waarde overschrijdt die is ingesteld tijdens het instellen. De taken van de belastingsmonitor zijn divers:
- Voorkom machineschade bij gereedschapsbreuk of een programmeerfout.
- Dit is vooral belangrijk omdat het veilige "lights-out-bewerking" mogelijk maakt, waarbij de operators het werk opzetten en overdag starten, dan naar huis gaan voor de nacht, de machines laten draaien en 's nachts onderdelen snijden. Omdat er geen mens in de buurt is om een probleem, zoals een kapot gereedschap, te horen, zien of ruiken, heeft de belastingsmonitor een belangrijke schildwachttaak. Wanneer het een overbelastingstoestand detecteert, wat semantisch een bot of gebroken gereedschap suggereert, beveelt het de bewerking te stoppen. Tegenwoordig is er technologie beschikbaar om desgewenst iemand op afstand een waarschuwing te sturen (bijvoorbeeld de slapende eigenaar, operator of eigenaar-operator), waardoor ze kunnen komen bemiddelen en de productie weer op gang kunnen brengen en vervolgens weer kunnen vertrekken. Dit kan bij sommige klussen het verschil zijn tussen winstgevendheid of verlies, omdat het verspanen met licht het aantal arbeidsuren per onderdeel vermindert.
- Waarschuw voor gereedschap dat bot wordt en moet worden vervangen of geslepen. Dus een operator die meerdere machines bedient, wordt door een machine verteld, in wezen: "Pauzeer wat je daar aan het doen bent en kom hier iets doen."
- Voorkom machineschade bij gereedschapsbreuk of een programmeerfout.
- Het is gebruikelijk om het gereedschap snel naar een "veilig" punt in de buurt van het onderdeel te brengen - in dit geval op 0,1" afstand - en dan het gereedschap in te voeren. Hoe dicht die "veilige" afstand is, hangt af van de voorkeur van de programmeur en/of operator en de maximale materiaalconditie voor de ruwe voorraad.
- Als het programma verkeerd is, is de kans groot dat de machine crasht of het gereedschap met hoog vermogen in het onderdeel, de bankschroef of de machine ramt. Dit kan kostbaar zijn, vooral in nieuwere bewerkingscentra. Het is mogelijk om het programma af te wisselen met optionele stops (M01-code) die het programma stukje bij beetje laten draaien voor testdoeleinden. De optionele stops blijven in het programma, maar worden tijdens normaal bedrijf overgeslagen. Gelukkig worden de meeste CAD/CAM-software geleverd met CNC-simulators die de beweging van het gereedschap weergeven terwijl het programma wordt uitgevoerd. Tegenwoordig zijn de omringende objecten (klem, klemmen, armatuur, losse kop en meer) opgenomen in de 3D-modellen , en de simulatie lijkt veel op een hele videogame of virtual reality-omgeving, waardoor onverwachte crashes veel minder waarschijnlijk zijn. Veel moderne CNC-machines stellen programmeurs ook in staat het programma in een simulatiemodus uit te voeren en de bedrijfsparameters van de machine op een bepaald uitvoeringspunt te observeren. Hierdoor kunnen programmeurs semantische fouten ontdekken (in tegenstelling tot syntaxisfouten) voordat ze materiaal of tools verliezen aan een onjuist programma. Afhankelijk van de grootte van het onderdeel kunnen ook wasblokken worden gebruikt voor testdoeleinden. Bovendien ondersteunen veel machines overschrijvingen door de machinist voor zowel de snelle als de voedingssnelheid die kan worden gebruikt om de snelheid van de machine te verlagen, zodat machinisten de uitvoering van het programma kunnen stoppen voordat er een crash optreedt.
- Voor educatieve doeleinden zijn regelnummers in bovenstaand programma opgenomen. Ze zijn meestal niet nodig voor de werking van een machine en vergroten de bestandsgrootte, dus worden ze zelden gebruikt in de industrie. Als er echter vertakkings- of looping-instructies in de code worden gebruikt, kunnen regelnummers worden opgenomen als het doel van die instructies (bijv. GOTO N99).
- Sommige machines staan niet meerdere M-codes op dezelfde regel toe.
Programmeeromgevingen
De programmeeromgevingen van G-code zijn parallel geëvolueerd met die van algemeen programmeren - van de vroegste omgevingen (bijv. een programma schrijven met een potlood, typen in een tape puncher) tot de nieuwste omgevingen die CAD ( computer-aided design ) combineren , CAM ( computer-aided manufacturing ) en uitgebreide G-code-editors. (G-code-editors zijn analoog aan XML-editors , ze gebruiken semantisch kleuren en inspringingen [plus andere functies] om de gebruiker te helpen op manieren die gewone teksteditors niet kunnen. CAM-pakketten zijn analoog aan IDE's bij algemene programmering.)
Twee paradigmaverschuivingen op hoog niveau zijn (1) het verlaten van "handmatig programmeren" (met niets anders dan een potlood of teksteditor en een menselijke geest) voor CAM-softwaresystemen die G-code automatisch genereren via postprocessors (analoog aan de ontwikkeling van visuele technieken in algemene programmering), en (2) het opgeven van hardgecodeerde constructies voor parametrische constructies (analoog aan het verschil in algemene programmering tussen het hardcoderen van een constante in een vergelijking versus het tot een variabele declareren en er naar believen nieuwe waarden aan toewijzen; en aan de objectgeoriënteerde aanpak in het algemeen). Macro (parametrische) CNC-programmering maakt gebruik van mensvriendelijke namen van variabelen, relationele operators en lusstructuren, net zoals bij algemene programmering, om informatie en logica vast te leggen met machineleesbare semantiek. Terwijl oudere handmatige CNC-programmering alleen bepaalde exemplaren van onderdelen in numerieke vorm kon beschrijven, beschrijft macroprogrammering abstracties die gemakkelijk in een groot aantal verschillende gevallen kunnen worden toegepast. Het verschil heeft veel analogieën, zowel van vóór het computertijdperk als van na de komst ervan, zoals (1) het creëren van tekst als bitmaps versus het gebruik van tekencodering met glyphs ; (2) het abstractieniveau van getabelleerde technische tekeningen , met veel onderdeelstreepnummers parametrisch gedefinieerd door dezelfde tekening en een parametertabel; of (3) de manier waarop HTML een fase heeft doorlopen van het gebruik van inhoudsopmaak voor presentatiedoeleinden, en vervolgens is uitgegroeid tot het CSS- model. In al deze gevallen introduceerde een hogere abstractielaag wat semantisch ontbrak.
STEP-NC weerspiegelt hetzelfde thema, dat kan worden gezien als weer een nieuwe stap op een pad dat begon met de ontwikkeling van werktuigmachines, mallen en opspanningen en numerieke besturing, die allemaal probeerden "de vaardigheid in het gereedschap in te bouwen". Recente ontwikkelingen van G-code en STEP-NC hebben tot doel de informatie en semantiek in de tool in te bouwen. Dit idee is niet nieuw; vanaf het begin van numerieke besturing was het concept van een end-to-end CAD/CAM-omgeving het doel van vroege technologieën als DAC-1 en APT . Die inspanningen waren prima voor grote bedrijven zoals GM en Boeing. Echter, kleine en middelgrote ondernemingen ging door een tijdperk van eenvoudiger implementaties van NC, met een relatief primitieve "connect the dots" G-code en de handmatige programmering tot CAD / CAM verbeterd en verspreid over de hele industrie.
Elke werktuigmachine met een groot aantal assen, spindels en gereedschapsstations is moeilijk handmatig goed te programmeren. Het is door de jaren heen gedaan, maar niet gemakkelijk. Deze uitdaging bestaat al tientallen jaren bij het programmeren van CNC-schroefmachines en roterende transfers, en doet zich nu ook voor bij de nieuwere bewerkingscentra van vandaag, genaamd "draai-frees", "frees-draait", "multitasking-machines" en "multifunctionele machines". Nu CAD/CAM- systemen op grote schaal worden gebruikt, vereist CNC-programmering (zoals met G-code) dat CAD/CAM (in tegenstelling tot handmatige programmering) praktisch en concurrerend is in de marktsegmenten die deze klassen van machines bedienen. Zoals Smid zegt: "Combineer al deze assen met wat extra functies, en de hoeveelheid kennis die nodig is om te slagen is op zijn zachtst gezegd behoorlijk overweldigend." Tegelijkertijd moeten programmeurs echter nog steeds de principes van handmatig programmeren grondig begrijpen en kritisch nadenken en twijfelen aan sommige aspecten van de beslissingen van de software.
Sinds ongeveer het midden van de jaren 2000 lijkt het erop dat "de dood van handmatig programmeren" (dat wil zeggen, van het schrijven van regels G-code zonder CAD/CAM-hulp) nadert. Het is echter momenteel slechts in sommige contexten dat handmatige programmering achterhaald is. Tegenwoordig vindt er veel CAM-programmering plaats onder mensen die roestig zijn in, of niet in staat zijn tot handmatig programmeren, maar het is niet waar dat alle CNC-programmering kan worden gedaan, of even goed of even efficiënt , zonder G-code te kennen. Het afstemmen en verfijnen van het CNC-programma op de machine is een praktijkgebied waar het eenvoudiger of efficiënter kan zijn om de G-code rechtstreeks te bewerken in plaats van de CAM-toolpaths te bewerken en het programma opnieuw te bewerken.
De kost verdienen met het snijden van onderdelen op computergestuurde machines is zowel gemakkelijker als moeilijker gemaakt door CAD/CAM-software. Efficiënt geschreven G-code kan een uitdaging zijn voor CAM-software. Idealiter zou een CNC-machinist zowel handmatige als CAM-programmering goed moeten kennen, zodat de voordelen van zowel brute-force CAM als elegante handmatige programmering kunnen worden gebruikt waar nodig. Veel oudere machines werden gebouwd met een beperkt computergeheugen in een tijd dat geheugen erg duur was; 32K werd beschouwd als voldoende ruimte voor handmatige programma's, terwijl moderne CAM-software gigabytes aan code kan posten. CAM blinkt uit in het snel uitbrengen van een programma dat meer machinegeheugen in beslag kan nemen en langer kan duren. Dit maakt het vaak heel waardevol om een kleine hoeveelheid onderdelen te bewerken. Maar er moet een evenwicht worden gevonden tussen de tijd die nodig is om een programma te maken en de tijd die het programma nodig heeft om uit elkaar te gaan. Het is gemakkelijker en sneller geworden om slechts een paar onderdelen te maken op de nieuwere machines met veel geheugen. Dit heeft zijn tol geëist van zowel handprogrammeurs als handmatige machinisten. Gezien de natuurlijke overgang naar pensionering, is het niet realistisch om te verwachten dat er een grote pool van operators zal blijven bestaan die zeer bedreven zijn in handmatig programmeren, wanneer hun commerciële omgeving meestal niet langer de talloze uren aan diepgaande ervaring kan bieden die nodig zijn om die vaardigheid op te bouwen; en toch kan het verlies van deze ervaringsbasis worden gewaardeerd, en er zijn momenten dat zo'n pool erg wordt gemist omdat sommige CNC-runs nog steeds niet kunnen worden geoptimaliseerd zonder dergelijke vaardigheid.
Afkortingen die worden gebruikt door programmeurs en operators
Deze lijst is slechts een selectie en vermijdt, op enkele sleuteltermen na, meestal het dupliceren van de vele afkortingen die worden vermeld bij de afkortingen en symbolen van technische tekeningen .
| Afkorting | Uitbreiding | Gevolginformatie |
|---|---|---|
| APC | automatische palletwisselaar | Zie M60 . |
| ATC | automatische gereedschapswisselaar | Zie M06 . |
| CAD/CAM | computerondersteund ontwerp en computerondersteunde fabricage | |
| CCW | tegen de klok in | Zie M04 . |
| CNC | geautomatiseerde numerieke besturing | |
| CRC | freesradiuscompensatie | Zie ook G40 , G41 en G42 . |
| CS | snijsnelheid | Verwijzend naar snijsnelheid (oppervlaktesnelheid) in oppervlaktevoeten per minuut (sfm, sfpm) of meters per minuut (m/min). |
| CSS | constante oppervlaktesnelheid | Zie G96 voor uitleg. |
| CW | met de klok mee | Zie M03 . |
| DNC | directe numerieke besturing of gedistribueerde numerieke besturing | Soms aangeduid als "Drip Feeding" of "Drip Numerical Control" vanwege het feit dat een bestand regel voor regel via een serieel protocol zoals RS232 naar een machine kan worden gevoerd. Met DNC kunnen machines met een beperkte hoeveelheid geheugen grotere bestanden uitvoeren. |
| DOC | diepte van de snede | Verwijst naar hoe diep (in de Z-richting) een bepaalde snede zal zijn |
| EOB | einde van blok | Het G-code synoniem van end of line (EOL) . Een controleteken dat gelijk is aan newline . In veel implementaties van G-code (zoals ook, meer in het algemeen, in veel programmeertalen ), is een puntkomma (;) synoniem met EOB. In sommige besturingselementen (vooral oudere) moet het expliciet worden getypt en weergegeven. Andere software behandelt het als een niet-afdrukbaar/niet-weergevend teken, net zoals tekstverwerkingsapps de pilcrow (¶) behandelen. |
| Noodstop | noodstop | |
| EXT | extern | Op het bedieningspaneel is een van de standen van de modusschakelaar "extern", soms afgekort als "EXT", verwijzend naar een externe gegevensbron, zoals tape of DNC, in tegenstelling tot het computergeheugen dat in de CNC zelf. |
| FIM | volledige indicator beweging | |
| FPM | voet per minuut | Zie SFM . |
| HBM | horizontale boormolen | Een type werktuigmachine dat gespecialiseerd is in het boren van, meestal grote gaten in grote werkstukken. |
| HMC | horizontaal bewerkingscentrum | |
| HSM | machinale bewerking op hoge snelheid | Verwijst naar machinale bewerking met snelheden die volgens traditionele normen als hoog worden beschouwd. Gewoonlijk bereikt met speciaal afgestemde spindelbevestigingen of met de nieuwste hoogtoerige spindels. Op moderne machines verwijst HSM naar een snijstrategie met een lichte, constante spaanbelasting en een hoge voeding, meestal op of nabij de volledige snedediepte. |
| HSS | hogesnelheidsstaal | Een type gereedschapsstaal dat wordt gebruikt om snijplotters te maken. Vandaag de dag nog steeds veel gebruikt (veelzijdig, betaalbaar, capabel), hoewel carbide en anderen hun aandeel in commerciële toepassingen blijven uithollen vanwege hun hogere mate van materiaalverwijdering. |
| in | inch (es) | |
| IPF | inch per fluit | Ook wel chipload of IPT genoemd . Zie F-adres en voedingssnelheid . |
| IPM | inch per minuut | Zie F-adres en voedingssnelheid . |
| IPR | inch per omwenteling | Zie F-adres en voedingssnelheid . |
| IPT | inches per tand | Ook wel chipload of IPF genoemd . Zie F-adres en voedingssnelheid . |
| MDI | handmatige gegevensinvoer | Een werkingsmodus waarin de operator regels programma (codeblokken) kan typen en deze vervolgens kan uitvoeren door op cyclusstart te drukken. |
| MEM | geheugen | Op het bedieningspaneel is een van de posities van de modusschakelaar "geheugen", soms afgekort als "MEM", verwijzend naar het computergeheugen dat in de CNC zelf is ingebouwd, in tegenstelling tot externe gegevensbronnen, zoals tape of DNC. |
| MFO | handmatige invoersnelheid overschrijven | Met de MFO-draaiknop of -knoppen kan de CNC-operator of machinist de geprogrammeerde voedingswaarde vermenigvuldigen met elk percentage, meestal tussen 10% en 200%. Dit is om te fine-tuning toe te staan van snelheden en feeds te minimaliseren chatter , het verbeteren van oppervlakte-afwerking , verlengen standtijd, en ga zo maar door. De SSO- en MFO-functies kunnen om verschillende redenen worden geblokkeerd, zoals voor synchronisatie van snelheid en feed-in-threading, of zelfs om "soldaten" / "dogging" door operators te voorkomen. Bij sommige nieuwere bedieningselementen is de synchronisatie van snelheid en invoer bij het draadsnijden zo geavanceerd dat SSO en MFO beschikbaar kunnen zijn tijdens het draadsnijden, wat helpt bij het fijnafstellen van snelheden en invoer om chatter op de draden te verminderen of bij reparatiewerkzaamheden waarbij bestaande draadjes. |
| mm | millimeter (s) | |
| MPG | handmatige pulsgenerator | Verwijzend naar het handvat (handwiel) (elke klik van het handvat genereert een puls van servo-invoer) |
| NC | numerieke besturing | |
| OSS | georiënteerde spindelstop | Zie opmerkingen bij M19 . |
| SFM | oppervlakte voeten per minuut | Zie ook snelheden en voedingen en G96 . |
| SFPM | oppervlakte voeten per minuut | Zie ook snelheden en voedingen en G96 . |
| SPT | draadsnijden op één punt | |
| SSO | spilsnelheid opheffen: | Met de SSO-draaiknop of -knoppen kan de CNC-operator of machinist de geprogrammeerde snelheidswaarde vermenigvuldigen met een percentage, meestal tussen 10% en 200%. Dit is om te fine-tuning toe te staan van snelheden en feeds te minimaliseren chatter , het verbeteren van oppervlakte-afwerking , verlengen standtijd, en ga zo maar door. De SSO- en MFO- functies kunnen om verschillende redenen worden geblokkeerd, zoals voor synchronisatie van snelheid en feed-in-threading, of zelfs om " soldaten"/"dogging" door operators te voorkomen. Bij sommige nieuwere bedieningselementen is de synchronisatie van snelheid en invoer bij het draadsnijden zo geavanceerd dat SSO en MFO beschikbaar kunnen zijn tijdens het draadsnijden, wat helpt bij het fijnafstellen van snelheden en invoer om chatter op de draden te verminderen of bij reparatiewerkzaamheden waarbij bestaande draadjes. |
| TC of T/C | gereedschapswissel, gereedschapswisselaar | Zie M06 . |
| TIR | totale indicatorlezing | |
| TPI | draden per inch | |
| USB | Universal Serial Bus | Eén type verbinding voor gegevensoverdracht |
| VMC | verticaal bewerkingscentrum | |
| VTL | verticale revolverdraaibank | Een type werktuigmachine dat in wezen een draaibank is met zijn Z-as verticaal gedraaid, waardoor de voorplaat als een grote draaitafel kan zitten. Het VTL-concept overlapt met het verticale kotterconcept. |
Zie ook
- 3d printen
- ingeblikte cyclus
- LinuxCNC - een gratis CNC-software met veel bronnen voor G- codedocumentatie
- Drill-bestand
- HP-GL
Uitgebreide ontwikkelingen
Vergelijkbare concepten
Bezorgdheid tijdens de aanvraag
- Meslocatie , freescompensatie, offsetparameters
- Coördinatie systemen
Referenties
Bibliografie
- Oberg, Erik; Jones, Franklin D.; Horton, Holbrook L.; Ryffel, Henry H. (1996), Green, Robert E.; McCauley, Christopher J. (eds.), Machinery's Handbook (25e ed.), New York: Industrial Press , ISBN 978-0-8311-2575-2, OCLC 473691581 .
- Smid, Peter (2008), CNC-programmeerhandboek (3e ed.), New York: Industrial Press, ISBN 9780831133474, LCCN 2007045901 .
- Smid, Peter (2010), CNC Control Setup voor frezen en draaien , New York: Industrial Press, ISBN 978-0831133504, LCCN 2010007023 .
- Smid, Peter (2004), Fanuc CNC aangepaste macro's , industriële pers, ISBN 978-0831131579.
Externe links
- CNC G-Code en M-Code Programmering
- Tutorial voor G-code
- Kramer, TR; Proctor, FM; Messina, ER (1 aug 2000), "The NIST RS274NGC Interpreter – Version 3" , NIST , NISTIR 6556
- http://museum.mit.edu/150/86 Heeft verschillende links (inclusief geschiedenis van MIT Servo Lab)
- Volledige lijst met G-codes die door de meeste 3D-printers worden gebruikt
- Fanuc en Haas G-code referentie
- Fanuc en Haas G-code zelfstudie
- Haas Freeshandleiding
- G-code voor draaibank en frezen:
- M-code voor draaibank en frezen