Parametrisk programmering (CNC)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 12. august 2021; verifikation kræver 1 redigering .

Parametrisk programmering ( engelsk  parametrisk programmering , også makroprogrammering ) i behandling af numeriske kontrolsystemer (CNC) til teknologisk udstyr er en tilgang til at øge programmeringsniveauet , implementeret ved at skabe specialiserede sprog eller udvidelser til eksisterende programmeringsværktøjer.

Historisk set er det første programmeringssprog for CNC-værktøjsmaskiner, G-code , i sagens natur et sprog til beskrivelse af cyklogrammer over bevægelsen af ​​et bearbejdningsværktøj, tænd/sluk for spindlen, tilførsel af skærevæsker (kølevæske) og andre handlinger og har ikke midler til strømkontrol af bearbejdningsprocessens tilstand. For eksempel, hvis et bearbejdningsværktøj går i stykker, eller der ikke er nogen kølevæske, vil cyklogrammet beskrevet af G-koden fortsætte ubrugeligt eller udføres farligt for udstyret, indtil operatøren griber ind, eller G-koden slutter. For at eliminere denne betydelige ulempe ved G-koden blev der udviklet parametriske programmeringssprog.

Disse sprog har meget til fælles med konventionelle programmeringssprog på højt niveau som Fortran , C. Den største fordel i forhold til G-kode er tilgængeligheden af ​​betingede greninstruktioner /operatører . Denne udvidelse giver dig mulighed for at ændre bearbejdningsforløbet, når procestilstanden ændres, for eksempel stoppe bearbejdningen med en alarm, når en slidsensor eller værktøjsbrud udløses.

En yderligere fordel ved parametrisk programmering for CNC-maskiner er evnen til at organisere komplekse beregninger af værktøjets koordinater og dets bevægelser til behandling af buede overflader specificeret matematisk i form af 3D splines eller Bezier overflader .

Funktioner ved parametrisk programmering

Styresystemproducenter bruger parametrisk programmering som en udvidelse af G-kode . Det kan sammenlignes med computerprogrammeringssprog som Basic, men det kan tilgås på niveau med G-funktioner (koder). I modsætning til CNC-programmering udvider parametrisk programmering de muligheder, der kan sammenlignes med objektorienteret programmering. Ved hjælp af dets CNC-styringssystemer bliver det muligt at beregne varians, bruge logiske operatorer, arbejde med værktøjspassager, manipulatorbevægelser, evnen til at organisere cyklusser, vælge efter betingelse, springe, arbejde med subrutiner, elementer, der udøver fuld kontrol over CNC'en. tilføjet - adgang til systemvariabler og celler i det elektroautomatiske program, evnen til at oprette dine egne G-koder og funktioner, der mest fuldt implementerer styringen af ​​alle maskinkomponenter. Det er muligt at få adgang til CNC-parametre, der gemmer information om værktøjet, position af arbejdslegemer, manipulatorer, koordinatsystem, G-kodeværdier for styreprogrammet og fejl. Ved hjælp af parametrisk programmering er det muligt at udvikle interaktive styreprogrammer. Ligesom computerprogrammeringssprog er der flere versioner af dem i parametrisk programmering: Custom Macro, User Task (Okuma), Q Routine (Sodick), Advanced Programming Language (APL G&L). For eksempel gør FMS-3000 makroprogrammeringssproget fra en delmængde af Basic-sproget det muligt at organisere yderligere informationsvinduer, et parametersporingssystem, kontroltilstande og logning af behandlingsprocesser. Sådanne programmer kører i baggrunden og i deres fritid fra alle andre opgaver, med en tung belastning, kan de midlertidigt suspendere deres arbejde. Ved at bruge sådanne muligheder har du en af ​​de mest effektive måder at styre en værktøjsmaskine, en robot, et CNC-system på.

Programstruktur

Et program skrevet ved hjælp af et makroprogrammeringssprog har en lignende G-kodestruktur for et kontrolsystem. Den strukturelle enhed er rammen. En ramme er en sekvens af tegn i et programmeringssprog. Rammeelementet er et ord, der består af en adresse og en numerisk værdi eller en variabel, en global variabel.

Programeksempel

Som et eksempel på et makroprogram kan du skrive en G200-funktionsunderrutine til FMS-3000-kontrolsystemet og bruge denne G-funktion som et værktøjs-rebound og overgang mellem overløb, som i tilfælde af en boremaskine, der bevæger sig fra en koordinat til en anden.
Funktionsegenskaber:
1. Startbetingelser.
2. Spring til W (i tilfælde af et simpelt spring) eller gå ud til værktøjsskiftepunktet, og følg videre.
3. Valg af værktøj, der tager længdekorrektoren.
4. Vælg G54 G55 G56 G57 G58 G59.
5. Bestem rotationsvinklen for del A
6. Vælg M3 M13 M4 M14.
7. Vælg antallet af omdrejninger S.
8. Flyt værktøjet til positionen i XY (med forskydning H).

a=(_a+getparameter(65)) vi definerer parameteren A (drejningsvinkel) som summen af ​​en global variabel (givet permanent, rotationsvinkel) og en lokal variabel (returneret fra funktionen, rotationsvinkel)
g=getparameter(71) definere parameter (vælg punkt G54 G55 G56 G57 G58 G59) G som en variabel (returneret fra funktion)
m=getparameter(77) definere parameter (yderligere funktioner) M som variabel (returneret fra funktion)
s=getparameter(83) definer parameteren (antal omdrejninger) S som en variabel (returneret fra funktionen)
t=getparameter(84) definer parameteren (værktøjsnummer) T som en variabel (returneret fra funktionen)
x=getparameter(88) definer parameteren (koordinat) X som en variabel (returneret fra funktionen)
y=getparameter(89) definer parameteren (koordinat) Y som en variabel (returneret fra funktionen)
w=getparameter(87) definer parameteren (bounce værdi) W som en variabel (returneret fra funktionen)
tt=getdatacadr(134) variabel tt returnerer værdien af ​​det forrige (tidligere værktøjsnummer)

I modsætning til Custom Macro (Fanuc kontrolsystem) skal funktionsparametrene i FMS-3000 defineres i begyndelsen af ​​subrutinen.

_t=t for at organisere arbejdet med efterfølgende funktioner, det nuværende værktøj T, definerer vi det som en global variabel
hh=t+100 indstille offset-tallet for værktøjslængden

Udtrykket hh=t+100 er en tabel over forskydninger fra 1 til 200. Vi delte alle forskydninger i to dele fra 1..100 offset for værktøjsdiameter, fra 101..201 for værktøjslængde. Værktøj T1 har et diameterforskydningstal på 1 og et længdeforskydningstal på 101. Værktøj T2 har et tal på 2 og et tal på 102 osv.

hvis paramactive(71)=0 så g=_g hvis G54 G55 G56 G57 G58 G59 ikke er angivet i funktionen, vil punktvalget blive bestemt ud fra den globale variabel

Hvis G200-parameteren ikke er angivet i G200-funktionen, tages punktet som standard fra den globale variabel i G201-funktionen.

G37X0Y0A0 annullere den tidligere indstillede rotationsvinkel
hvis paramactive(87)=0 så gå til 500 hvis parameteren W (rebound) ikke er indstillet, skal du gå til værktøjsskiftepunktet, gå til etiket 500
N100G1F2000G17G40G80G91Zw hvis parameteren W (rebound) ikke er indstillet, skal du gå til værktøjsskiftepunktet, gå til etiket 500
G32M1 teknologisk stop
G90GgG37X0Y0Aa indstille rotationsvinklen
op til 600 hvis funktionen er indstillet til simpel rebound (ingen værktøjsændring), spring til markering 600.

Rebound til værktøjsskiftepunktet.

N500M9 af afkøling
G53G1F2000G90G40G49G80Z0 udgang til værktøjsskiftepunkt
M5 af drejninger

Værktøjsskiftefunktionerne på hver maskine har deres egne karakteristika afhængigt af antallet af værktøjer i magasinet. For eksempel, når der er mange værktøjer, bruges nogle gange algoritmer, der arrangerer værktøjet i en tilfældig rækkefølge for ikke at binde værktøjet til bestemte celler og reducere udskiftningstiden. Af stor betydning er designet af værktøjsskiftemekanikken, forskellige typer manipulatorer, skydere mv.

rem S100 skift hastighedsområdet for manuelt værktøjsskift
N502G32M0 teknologisk stop
hh1=getsystemdata(1000+hh) aflæs værdien af ​​længdekorrektoren
G1G91G43HhhZ-hh1F2000 arbejder på korrektor
G90GgG37X0Y0Aa korrektoren er taget, vi beregner rotationsvinklen
hvis paramactive(83)=0 så gå til 600 hvis parameteren S (omdrejninger) ikke er indstillet, spring billeder over og gå til etiket 600
hvis paramactive(77)><0 så m= standard hjælpefunktion M vil være M3
N520MmSs definere yderligere funktioner M og S
Tt vælg værktøjsnummer
N600if paramactive(88)=0, så gå til 9999 hvis mindst en af ​​XY-koordinaterne for positionen ikke er indstillet, går vi ikke til positionen, springer rammer over og går til 9999
hvis paramactive(89)=0, så gå til 9999 hvis mindst en af ​​XY-koordinaterne for positionen ikke er indstillet, går vi ikke til positionen, springer rammer over og går til 9999
G1F2000G1X(x+1)Y(y+1) vi indtaster præpositionen, vi giver en interferenspasning langs XY 1mm
F100G9XxYy nøjagtig udgang til XY-position med check
N9999G1F2000 indstille startbetingelserne for konturen
G32 vi bremser beregningen af ​​programmet
M99 afslutning af funktion, vend tilbage til programmet

Se også