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 .
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å.
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.
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 |