Essentiële informatie die u moet weten voordat u CNC programmeren begrijpt of leert

Gepubliceerd op:
6 juni 2023
Laatst gewijzigd:
15 juli 2026
Expert in het maken van mallen en precisieproductie
Gespecialiseerd in spuitgieten, CNC-verspaning, geavanceerde prototypes en integratie van materiaalwetenschappen.
CNC-programmering in de besturing
Inhoudsopgave

Voordat we CNC programmeren begrijpen of leren, moeten we eerst duidelijk maken welke kennis we moeten beheersen.

Welke vaardigheden of kennis moet je hebben voordat je CNC programmeren begrijpt of leert?

1. Een gedegen mechanische basiskennis en kennis van de geometrie van onderdelen en het ontwerp van opspanningsvoorzieningen kunnen van pas komen, omdat dit leidt tot een beter begrip van bewerkingsprocessen en de onderdelen die worden geprogrammeerd.

2. CNC-programmering omvat zowel handmatige programmering als automatische programmering. Bij handmatige programmering wordt vaak rechtstreeks code geschreven, wat een basiskennis van wiskunde en een duidelijk begrip van het Cartesische coördinatensysteem en de asrichtingen (X, Y, Z en hun negatieve tegenhangers) vereist. Deze kennis is cruciaal voor nauwkeurig programmeren.

3. Tijdens het leren van snel tekenen in 2D en CAD-modellering (3D-ontwerp) kan helpen om de visuele aspecten van CNC-programmering te begrijpen, maar het is niet per se een vereiste.

4. Een passie voor machines en interesse in de prestaties en werking van specifieke machinemerken (zoals Mitsubishi, FANUC, Siemens en Haas) kunnen de motivatie en betrokkenheid vergroten. Het daadwerkelijk bedienen van machines is echter niet strikt noodzakelijk om te beginnen met het leren van de syntaxis van CNC-programmering.

5. Het observeren van de werkelijke werking van CNC machines op locatie, met inbegrip van aspecten zoals gereedschapssnelheid, voedingssnelheid en snedediepte, kan waardevolle inzichten en praktische kennis opleveren die de CNC programmeervaardigheden kunnen verbeteren.

6. Toewijdig leren, kritisch denken, grondige aantekeningen maken en leren van fouten zijn essentieel voor het effectief leren en beheersen van CNC programmeren of welke vaardigheid dan ook.

Welke softwaretools worden gebruikt bij CNC-programmering?

Software CategorieSoftware Naam
Computerondersteund ontwerp (CAD)AutoCAD, SolidWorks, Fusion 360, CATIA, Siemens NX
Computerondersteunde productie (CAM)Mastercam, CAMWorks, PowerMill, GibbsCAM, Edgecam
G-code-editorsKladblok++, Visual Studio Code, Gedit, Sublime Tekst
Simulatie en verificatieVericut, NCSIMUL, CAMotics, MachineWorks
Machinebesturing en communicatieFanuc CNC-geleider, Siemens Sinumerik Operate, Haas-besturingssimulator, Mach3

Handmatig programmeren en automatisch programmeren bij CNC-programmering

Zoals hierboven vermeld, zijn er bij CNC-programmering twee hoofdbenaderingen voor het maken van programma's: handmatig en automatisch.

Handmatig programmeren:

Bij handmatige programmering wordt de CNC-programmacode rechtstreeks geschreven met behulp van een teksteditor of gespecialiseerde software. De programmeur moet inzicht hebben in de mogelijkheden van de CNC-machine en de G-codetaal (gestandaardiseerd volgens het RS-274-formaat [1]), en de specifieke syntaxis die de machinebesturing vereist.

Het handmatige programmeerproces bestaat meestal uit:

Individuele regels G-code-instructies schrijven om gereedschapsbewegingen, spindelsnelheden, aanzetten en andere parameters te definiëren.

Exacte coördinaten berekenen voor gereedschapspaden op basis van de productgeometrie met behulp van wiskundige berekeningen en goniometrie.

Rekening houden met gereedschapswissels, werkstukinstelling, gereedschapsafstanden en andere factoren om nauwkeurige en efficiënte bewerkingen te garanderen.

Handmatig programmeren biedt nauwkeurige controle over het bewerkingsproces en maakt aanpassing en fijnafstelling van de code mogelijk. Het wordt vaak gebruikt voor complexe of unieke bewerkingstoepassingen waarbij automatisch programmeren niet geschikt of efficiënt is.

Automatisch programmeren:

Bij automatische programmering, algemeen bekend als Computer-Aided Manufacturing (CAM), wordt gebruikgemaakt van gespecialiseerde software om automatisch CNC-programma’s te genereren. De software genereert de programmacode op basis van invoergegevens zoals de geometrie van het werkstuk, informatie over het gereedschap, bewerkingshandelingen en andere parameters.

Het automatische programmeerproces omvat meestal het volgende:

Een 3D-model of CAD-bestand van het te bewerken onderdeel importeren of maken.

De bewerkingen, gereedschappen en bewerkingsparameters definiëren in de CAM-software.

De software genereert automatisch de CNC-programmacode, inclusief gereedschapspaden, snelheden, voedingen en andere instructies.

Automatisch programmeren biedt verschillende voordelen, zoals hogere productiviteit, kortere programmeertijd en de mogelijkheid om gereedschapsbanen te simuleren en te optimaliseren voor de bewerking. Het wordt vaak gebruikt in industrieën met grote productievolumes of repetitieve bewerkingstaken.

Zowel handmatig programmeren als automatisch programmeren heeft zijn eigen voordelen. Ze worden gebruikt op basis van de specifieke eisen van het project, de complexiteit van het onderdeel, de expertise van de programmeur en andere factoren. Veel CNC programmeurs gebruiken handmatige en automatische programmeertechnieken om de beste resultaten te behalen.

Stappen van CNC programmeren

Workflow van handmatige programmering

1. Analyse van de producttekening en procesplanning: Dit omvat het analyseren van de onderdeeltekening, het begrijpen van de afmetingen en technische vereisten, het bepalen van het bewerkingsplan en het opeenvolgen van de bewerkingen, armaturen ontwerpen indien nodig, het selecteren van geschikt gereedschap en het plannen van het gereedschapspad en de snijparameters.

2. Wiskundige verwerking: Er wordt een coördinatensysteem voor het werkstuk vastgesteld op basis van de geometrische kenmerken van het onderdeel. Het gereedschapstraject wordt binnen dit coördinatensysteem berekend, waarbij rekening wordt gehouden met de begin- en eindpunten van geometrische elementen, middelpunten van cirkelbogen en snij- of raakpunten tussen geometrische elementen. Voor standaard 2D-profielen wordt elementaire trigonometrie toegepast om snijpunten te bepalen. (Opmerking: het handmatig berekenen van afzonderlijke punten voor complexe 3D-oppervlakken is tegenwoordig praktisch achterhaald en wordt uitsluitend door CAM-software afgehandeld).

3. De onderdeelprogrammalijst schrijven: De vastgestelde bewerkingsroute en procesparameters worden vertaald naar de opdrachtcode en het formaat van het programmasegment van het CNC-systeem. Het bewerkingsprogramma wordt regel voor regel geschreven volgens de opgegeven programmeersyntaxis en -conventies.

4. Programma-invoer: Terwijl oudere generaties gebruik maakten van geperforeerde papieren banden, worden programma’s bij moderne CNC-machines voornamelijk geladen via USB-sticks, ethernetnetwerken, wifi of Direct Numerical Control (DNC)-verbindingen, waarbij het MDI-toetsenbord van de machine alleen nog wordt gebruikt voor kleine aanpassingen.

5. Programmacontrole en de eerste proefsnede: Het geschreven programma moet vóór de bewerking worden gecontroleerd en getest. De controle omvat het verifiëren van het bewegingstraject van de machine door het programma uit te voeren zonder het werkstuk te snijden, een standaard validatieproces dat algemeen bekend staat als een “dry run” (luchtsnijden). Als de CNC-machine over grafische weergavemogelijkheden beschikt, kan simulatie worden gebruikt om het snijproces van het gereedschap te visualiseren. De eerste proefsnede op het daadwerkelijke werkstuk is echter cruciaal om de nauwkeurigheid van de bewerkte onderdelen te beoordelen en de nodige aanpassingen aan de snijparameters en gereedschapspaden door te voeren.

Workflow van automatisch programmeren

1. CAD-model importeren of maken

De eerste stap is het importeren van een 3D-model van het te bewerken onderdeel in de CAM-software. Het 3D-model kan worden geïmporteerd vanuit CAD-software of direct worden aangemaakt in de CAM-software.

2. Bewerkingsbewerkingen definiëren

Vervolgens definieert de programmeur de bewerkingen die op het werkstuk moeten worden uitgevoerd. Hierbij wordt onder meer het volgende gespecificeerd: CNC frezen bewerkingen zoals voorbewerken, nabewerken, boren, contourfrezen en zakfrezen. Elke bewerking heeft specifieke parameters, zoals gereedschapskeuze, snijsnelheden en voedingssnelheden, snijdieptes, stapafstanden en overmaat.

3. Genereren van gereedschapsbanen

Op basis van de gedefinieerde bewerkingen genereert de CAM-software een gereedschapspad dat de beweging van het gereedschap en de bewerkingsstrategie op de oppervlakken van het werkstuk weergeeft. Bij de berekening van de gereedschapspaden wordt rekening gehouden met factoren zoals de geometrie van het gereedschap, de oriëntatie van het gereedschap, het voorkomen van botsingen en geavanceerde algoritmen voor kinematische optimalisatie. [2].

4. Simulatie en verificatie

Zodra de freesbanen gegenereerd zijn, kan de programmeur het bewerkingsproces simuleren in de CAM-software. Met deze simulatie kan de beweging van het gereedschap worden gevisualiseerd, kunnen eventuele botsingen of fouten worden opgespoord en kan ervoor worden gezorgd dat de freesbaan geoptimaliseerd is en geschikt voor het onderdeel.

5. Nabewerking

Nadat de freesbaan is afgerond en geverifieerd, voert de CAM-software de nabewerking uit. Hierbij wordt de freesbaan omgezet in machinespecifieke G-code instructies die de CNC machine kan begrijpen. De post-processor past de uitvoer van de G-code aan aan de specifieke syntaxis en opmaakvereisten van de doelbesturing van de CNC-machine.

6. Overbrengen naar CNC-machine

Het gegenereerde G-code programma wordt overgebracht naar de CNC machine via een directe verbinding of externe opslagmedia zoals USB-sticks of netwerkoverdracht. Het programma wordt geladen in de controller van de machine, klaar voor uitvoering.

7. Machine instellen en uitvoeren

Voordat het CNC-programma wordt uitgevoerd, wordt de machine ingesteld met de juiste werkopspanningen, snijgereedschappen en werkstukuitlijning. Als alles klaar is, wordt het CNC-programma uitgevoerd en voert de machine de geprogrammeerde bewerkingen uit op het werkstuk.

verschillende code in de CNC-programmering

G-codes (voorbereidende codes)

G-codes worden gebruikt om diverse voorbereidende functies en bewerkingen te definiëren. Deze codes specificeren de beweging van het gereedschap, bewerkingsmodi, coördinatensystemen en andere parameters. Enkele veelgebruikte G-codes zijn onder meer G00 (snelle positionering), G01 (lineaire interpolatie), G02/G03 (circulaire interpolatie), G17/G18/G19 (vlakkeuze) en G90/G91 (absolute/incrementele positionering).

M-codes (diverse codes)

M-codes worden gebruikt om diverse machinefuncties aan te sturen, zoals de werking van de spindel, koelvloeistof aan/uit, wisselen van gereedschap en machinestops. Ze variëren afhankelijk van het merk en model van de machine. Voorbeelden van M-codes zijn M03/M04 (spil rechtsom/linksom), M05 (spilstop), M06 (gereedschapswissel) en M08/M09 (koelmiddel aan/uit).

T-codes (gereedschapsselectie)

T-codes worden gebruikt om het gereedschapsnummer of de gereedschapsoffset op te geven die voor de bewerking moet worden gebruikt. Deze codes geven aan welk gereedschap in het gereedschapsmagazijn of in de gereedschapshouder moet worden gebruikt voor een bepaalde bewerking. Met T01 wordt bijvoorbeeld gereedschapsnummer 1 gekozen, met T03 wordt gereedschapsnummer 3 gekozen, enzovoort.

S-code (spindelsnelheid)

S-code wordt gebruikt om het gewenste spiltoerental voor de bewerking te definiëren. De waarde na de S-code geeft het spiltoerental in RPM (omwentelingen per minuut) aan. Bijvoorbeeld, S1000 stelt het spiltoerental in op 1000 omw/min.

F-code (voedingssnelheid)

Met de F-code wordt de aanzet opgegeven waarmee het gereedschap zich langs de geprogrammeerde baan verplaatst. De waarde na de F-code geeft de aanzet in eenheden per minuut weer. Bijvoorbeeld: F200 stelt de aanzet in op 200 eenheden per minuut.

X-, Y-, Z- en andere ascodes

Deze codes geven de coördinaten en posities van het gereedschap langs verschillende assen aan. De X-code staat voor de positie langs de X-as, de Y-code voor de positie langs de Y-as en de Z-code voor de positie langs de Z-as. Aanvullende ascodes kunnen worden gebruikt voor machines met meer assen, zoals A, B, C, enzovoort.

Dwell-codes

Wachtcodes zorgen ervoor dat de machine op een bepaalde positie of gedurende een bepaalde tijd stilstaat. De wachttijd wordt opgegeven met de P-code, die de wachttijd in seconden aangeeft. Bijvoorbeeld: G04 X2,0 (of G04 P2000, aangezien het P-adres in standaard Fanuc-besturingen doorgaans milliseconden gebruikt) zorgt ervoor dat de machine 2 seconden stil blijft staan.

Van de verschillende codes die bij CNC-programmering worden gebruikt, is de G-code de meest gangbare. G-codes vormen de basis van CNC-programmering, aangezien ze de bewegingen van de machine bepalen (volgens de ISO 6983-normen) en diverse aspecten van het bewerkingsproces aansturen.

Slotwoord

Bij CNC programmeren komen veel cruciale overwegingen kijken die zorgvuldige aandacht verdienen. Als ik de kans krijg, ben ik van plan om in de toekomst een artikel te wijden aan een uitgebreide bespreking van de belangrijkste aspecten die aandacht vereisen bij CNC programmeren.

Referentie

[1] Kramer, T. R., Proctor, F. M., & Messina, E. R. (2000). De NIST RS274NGC-interpreter – Versie 3. Nationaal Instituut voor Standaarden en Technologie (NIST). https://doi.org/10.6028/NIST.IR.6556

[2] Altintas, Y. (2012). Productieautomatisering: verspaningstechniek, trillingen van bewerkingsmachines en CNC-ontwerp (2e druk). Cambridge University Press. https://doi.org/10.1017/CBO9780511843723

James Li is een productie-expert met meer dan 15 jaar ervaring in het maken van matrijzen en spuitgieten. Bij First Mold leidt hij complexe NPI- en DFM-projecten en helpt hij honderden wereldwijde producten van idee tot massaproductie. Hij zet moeilijke technische problemen om in betaalbare oplossingen en deelt zijn knowhow om inkopers het inkopen in China gemakkelijker te maken.
Deel dit artikel:
Tags
Reacties

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

nl_NLNL