Hopp til innhold

Fagstoff

Programmering med variabler

Bruk av variabler ved programmering av en CNC-maskin kan spare deg for mye arbeid. Du kan da endre mange ulike parametre i programmet ved å endre kun på ett sted i programmet.
Mann med vernebriller opererer en CNC-fresemaskin. Foto.
Åpne bilde i et nytt vindu

Hva er variabel programmering?

Hvis vi programmerer med variabler, kan vi i stedet for å angi alle tall og benevnelser gjentatte ganger i et program, gi disse et navn vi kan bruke.

Du kan programmere variabler i selve maskinen som maskinvariabler eller velge programvariabler som kun fungerer i det programmet du har utviklet.

Variabler blir ofte benyttet der man skal lage et program som instruerer en maskin til å gjenta flere arbeidsoperasjoner flere ganger i løpet av arbeidsprosessen, eller der man ønsker en enkel måte å justere dimensjoner og mål på ved gjentatte operasjoner eller utvikling av prototyper.

Variabler kan også benyttes sammen med matematiske regnearter som addisjon, subtraksjon, divisjon og multiplikasjon. Dette gjør at man enkelt kan benytte variabelen som et grunntall og bruke regneartene til å kalkulere nye dimensjoner eller koordinater.

Programmering av variabler

De fleste maskiner utstyrt med CNC bruker et standardsystem for variabler. Det betyr at alle variablene har et "navn" som begynner med # (hashtag/emneknagg). Noen vil også referere til dette tegnet som "grid" eller "square".

De fleste CNC-styringer følger det samme prinsippet, bare med forskjellige "fornavn" på variablene. For eksempel kaller OSP (Okuma) disse enten VC eller V, Sinumeric bruker gjerne R, og Heidenhain bruker Q.

Det er viktig at du setter deg godt inn i hvilket format den maskinen du skal programmere for, bruker for å benevne variablene sine.

Lokale maskinvariabler

Hvis du legger variablene inn i selve maskinens minne, må du være oppmerksom på hvor og hvordan disse lagres.

Variablene deles opp i ulike grupper, alt etter hvor de lagres i minnet til maskinen. Dette kan påvirke hva som skjer for eksempel hvis maskinen blir strømtom.

I tabellen under ser du standardisert måte å lagre variabler på.

Lagring av maskinvariabler
VariabelindeksType variabelKommentar
#0NullvariabelDenne variabelen er alltid null.
#1–#33Lokale variablerDisse kan bare holde verdier inntil maskinen får reset-signal eller ved strømbrudd.
#100–#149Common-variabler 1

Disse beholder verdien selv om maskinen får reset-signal. Ved strømbrudd vil disse få verdi = null.

#500–#531Common-variabler 2

Disse beholder verdien selv etter strømbrudd.

#1000–System-variablerDisse brukes til å lese eller endre data i systemet, f.eks. verktøylengde fra tabell.

Eksempler på bruk av variabler i G-kode

CNC-fresing

Et eksempel på bruk av variabler kan være at du på et arbeidsemne skal frese ti hull som skal ha diameter 10,5 millimeter. I stedet for å skrive 10,5 millimeter kan du da programmere en variabel som du kan gi benevnelsen Hull1=10,5.

I programlinjene angir du da diameteren for hullet som Hull1 i stedet for tallet 10,5.

Hvis du i etterkant finner ut at hullet skulle vært 0,2 millimeter større, trenger du ikke å lete gjennom programmet for å endre alle programlinjene. I stedet kan du bare gå til starten av programmet og endre variabelen Hull1 til Hull1=10,7, så vil alle hulla bli 10,7 millimeter.

CNC-dreiing

Det samme kan være tilfelle hvis du skal dreie en gjenstand og kan angi en diameter som en standardverdi, en variabel.

Hvis du for eksempel har fått i oppgave å lage en serie av presshylser i ulike dimensjoner for bruk under demontering og montering av lager, kan du benytte variabelprogrammering.

Hylsene du skal lage, skal ha ulik ytre diameter, og den minste diameteren skal alltid være 20 mm mindre enn den ytre diameteren.

3D-tegning og teknisk tegning av sirkulær pyramide med to trinn med diameter 100 mm og 80 mm. Pyramiden er 20 mm høy og har et hull på 45 mm i senter. Teknisk tegning er målsatt. Illustrasjon.

Hvis den største diameteren skal være 100 mm og vi vet at neste overflate alltid skal ha en diameter som er 20 mm mindre, kan du lage en variabel for den største diameteren, eksempel Dia1=100. Når du da programmerer, kan du angi at den minste diameteren er Dia1–20.

For å lage samme del med største diameter på 120 mm, går du bare inn i starten av programmet og endrer variabelen Dia1 til Dia1=120, så regner maskinen ut at den minste diameteren skal bli 120 – 20 = 100 mm.

Eksempel på bruk av variabler

Du har fått i oppdrag å programmere en G-kode for å utvikle en prototype i en CNC-maskin. Du har fått tegninga til prototypen fra en kunde.

Kunden har sagt at han er litt usikker på måla, spesielt størrelsen på hulla og radiusen på hjørnene.

Plata er 200 mm lang og 100 mm bred, med avrundede hjørner med radius 20 mm. Plata er 20 mm tykk. Tre hull med diameter 40 mm er plassert symmetrisk på plata med 60 mm avstand mellom senter i hvert hull. Illustrasjon.
Åpne bilde i et nytt vindu

I dette tilfellet kan det være hensiktsmessig å benytte variabler for størrelsen på hulla og radiusen på hjørnene.

Du kan da benytte variablene:

  • #DiaHull = 40

  • #RadHjørne = 20

Når kunden mottar prototypen og ser for eksempel at hulla er litt for store, eller radius på hjørnene er litt for liten, kan du endre variablene i starten av programmet i stedet for å endre verdiene mange ganger nedover i programmet.

Tenk over

Er det noen andre mål på denne tegninga der det kunne vært hensiktsmessig å benytte variabler?

Drøftingsoppgaver

Du har fått i oppdrag å lage to prototyper til en kunde. Kunden er usikker på dimensjonene og ønsker at du på en enkel måte skal kunne tilpasse G-koden for dreiebenken hvis det blir nødvendig å endre noen mål.

Drøftingsoppgave 1

På hvilke av dimensjonene på tegninga under ville det vært hensiktsmessig å benytte variabler hvis du vet du kanskje må gjøre noen endringer på tegninga for å tilpasse produktet?

Utvendig diameter er 100 mm, og stikkspor har diameter 40 mm. De tre første stikkspora fra venstre har en bredde på 10 mm, mens det fjerde sporet har en bredde på 30 mm. Avstand mellom stikkspora er 20 mm. Illustrasjon.
Åpne bilde i et nytt vindu

Drøftingsoppgave 2

På hvilke av dimensjonene på tegninga under ville det vært hensiktsmessig å benytte variabler hvis du vet du kanskje må gjøre noen endringer på tegninga for å tilpasse produktet?

3D-tegning og teknisk tegning av en sirkulær pyramide med fem nivåer. Pyramidens tekniske tegning er målsatt, der diameter varierer fra 20 til 100 millimeter med 20 millimeters intervall. Høyden på hvert nivå er 10 millimeter. Illustrasjon.
Åpne bilde i et nytt vindu
CC BY-SASkrevet av Roger Rosmo.
Sist faglig oppdatert 28.04.2023

Læringsressurser

CNC