Programare parametrica (CNC)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 12 august 2021; verificarea necesită 1 editare .

Programarea parametrică ( în engleză  programare parametrică , de asemenea macroprogramare ) în sistemele de control numeric de prelucrare (CNC) pentru echipamente tehnologice este o abordare de creștere a nivelului de programare, implementată prin crearea de limbaje specializate sau extensii la instrumentele de programare existente.

Din punct de vedere istoric, primul limbaj de programare pentru mașini-unelte CNC, codul G , este în mod inerent un limbaj pentru descrierea ciclogramelor mișcării unei scule de prelucrare, pornirea/oprirea axului, furnizarea fluidelor de tăiere (lichid de răcire) și alte acțiuni și nu are mijloace de verificare curentă a stării procesului de prelucrare. De exemplu, dacă o unealtă de prelucrare se defectează sau nu există lichid de răcire, ciclograma descrisă de codul G va continua inutil sau va fi executată în mod periculos pentru echipament până când intervine operatorul sau se încheie codul G. Pentru a elimina acest dezavantaj semnificativ al codului G, au fost dezvoltate limbaje de programare parametrică.

Aceste limbaje au multe în comun cu limbaje convenționale de programare de nivel înalt, cum ar fi Fortran , C. Principalul avantaj față de codul G este disponibilitatea instrucțiunilor/operatorilor de ramuri condiționate . Această extensie vă permite să modificați progresul prelucrarii atunci când starea procesului se schimbă, de exemplu, opriți procesarea cu o alarmă atunci când este declanșată un senzor de uzură sau ruperea sculei.

Un avantaj suplimentar al programării parametrice pentru mașinile CNC este capacitatea de a organiza calcule complexe ale coordonatelor sculei și mișcărilor sale pentru prelucrarea suprafețelor curbe specificate matematic sub formă de spline 3D sau suprafețe Bezier .

Caracteristici ale programării parametrice

Producătorii de sisteme de control folosesc programarea parametrică ca o extensie a codului G. Poate fi comparat cu limbaje de programare pentru computer precum Basic, dar poate fi accesat la nivelul funcțiilor G (coduri). Spre deosebire de programarea CNC, programarea parametrică extinde posibilitățile comparabile cu programarea orientată pe obiecte. Folosind sistemele sale de control CNC, devine posibilă calcularea varianței, utilizarea operatorilor logici, lucrul cu treceri de scule, mișcările manipulatorului, capacitatea de a organiza cicluri, selectarea după condiție, săritura, lucrul cu subrutine, elementele care exercită controlul deplin asupra CNC-ului sunt adăugat - acces la variabilele de sistem și celulele programului electroautomat, capacitatea de a crea propriile coduri G și funcții care implementează cel mai complet controlul tuturor componentelor mașinii. Este posibil să accesați parametrii CNC care stochează informații despre unealtă, poziția corpurilor de lucru, manipulatoare, sistemul de coordonate, valorile G-code ale programului de control și erori. Cu ajutorul programării parametrice, este posibilă dezvoltarea programelor de control interactiv. La fel ca limbajele de programare pentru computere, există mai multe versiuni ale acestora în programarea parametrică: Macro personalizată, Sarcină utilizator (Okuma), Rutina Q (Sodick), Limbaj de programare avansat (APL G&L). De exemplu, limbajul de programare macro FMS-3000 dintr-un subset al limbajului Basic face posibilă organizarea de ferestre de informații suplimentare, un sistem de urmărire a parametrilor, moduri de control și înregistrarea proceselor de procesare. Astfel de programe rulează în fundal și în timpul lor liber de la toate celelalte sarcini, cu o sarcină mare, își pot suspenda temporar munca. Folosind astfel de oportunități, aveți una dintre cele mai eficiente modalități de a controla o mașină-uneltă, un robot, un sistem CNC.

Structura programului

Un program scris folosind un limbaj de programare macro are o structură de cod G similară pentru un sistem de control. Unitatea structurală este cadrul. Un cadru este o secvență de caractere într-un limbaj de programare. Elementul cadru este un cuvânt care constă dintr-o adresă și o valoare numerică sau o variabilă, o variabilă globală.

Exemplu de program

Ca exemplu de program macro, puteți scrie o subrutină a funcției G200 pentru sistemul de control FMS-3000 și puteți utiliza această funcție G ca rebound și tranziție a sculei între treceri, ca în cazul unui burghiu care se deplasează de la o coordonată la alta.
Proprietățile funcției:
1. Condiții inițiale.
2. Săriți la W (în cazul unei sărituri simple) sau ieșiți la punctul de schimbare a sculei și continuați.
3. Alegerea instrumentului care ia corectorul de lungime.
4. Selectați G54 G55 G56 G57 G58 G59.
5. Determinați unghiul de rotație al piesei A
6. Selectați M3 M13 M4 M14.
7. Selectați numărul de rotații S.
8. Mutați scula în poziția în XY (cu offset H).

a=(_a+getparameter(65)) definim parametrul A (unghiul de rotatie) ca suma unei variabile globale (data permanent, unghi de rotatie) si a unei variabile locale (intors din functie, unghi de rotatie)
g=getparameter(71) definiți parametrul (selectați punctul G54 G55 G56 G57 G58 G59) G ca variabilă (returnată de la funcție)
m=getparameter(77) definiți parametrul (funcții suplimentare) M ca variabilă (returnată de la funcție)
s=getparameter(83) definiți parametrul (numărul de rotații) S ca o variabilă (returnată din funcție)
t=getparameter(84) definiți parametrul (numărul sculei) T ca variabilă (returnată din funcție)
x=getparameter(88) definiți parametrul (coordonată) X ca o variabilă (returnată din funcție)
y=getparameter(89) definiți parametrul (coordonată) Y ca variabilă (returnată din funcție)
w=getparameter(87) definiți parametrul (valoarea de respingere) W ca variabilă (returnată din funcție)
tt=getdatacadr(134) variabila tt returnează valoarea precedentului (numărul instrumentului anterior)

Spre deosebire de Custom Macro (sistem de control Fanuc), parametrii funcției din FMS-3000 trebuie definiți la începutul subrutinei.

_t=t pentru a organiza munca funcțiilor ulterioare, instrumentul actual T, îl definim ca o variabilă globală
hh=t+100 setați numărul de decalaj pentru lungimea sculei

Expresia hh=t+100 este un tabel de decalaje de la 1 la 200. Am împărțit toate offset-urile în două părți de la 1..100 offset pentru diametrul sculei, de la 101..201 pentru lungimea sculei. Scula T1 are un număr de compensare a diametrului de 1 și un număr de compensare a lungimii de 101. Scula T2 are un număr de 2 și un număr de 102 etc.

dacă paramactive(71)=0 atunci g=_g dacă G54 G55 G56 G57 G58 G59 nu este specificat în funcție, selectarea punctului va fi determinată din variabila globală

Dacă parametrul G200 nu este specificat în funcția G200, punctul va fi preluat implicit din variabila globală din funcția G201.

G37X0Y0A0 anulați unghiul de rotație setat anterior
dacă paramactive(87)=0 atunci treci la 500 dacă parametrul W (rebound) nu este setat, mergeți la punctul de schimbare a sculei, mergeți la eticheta 500
N100G1F2000G17G40G80G91Zw dacă parametrul W (rebound) nu este setat, mergeți la punctul de schimbare a sculei, mergeți la eticheta 500
G32M1 oprire tehnologică
G90GgG37X0Y0Aa setați unghiul de rotație
a ajuns la 600 dacă funcția este setată la rebound simplu (fără schimbare a sculei), săriți la marcajul 600.

Rebound la punctul de schimbare a sculei.

N500M9 oprit răcire
G53G1F2000G90G40G49G80Z0 ieșire la punctul de schimbare a sculei
M5 oprit se întoarce

Funcțiile de schimbare a sculelor de pe fiecare mașină au propriile caracteristici în funcție de numărul de scule din magazie. De exemplu, atunci când există o mulțime de instrumente, uneori se folosesc algoritmi care aranjează instrumentul într-o ordine aleatorie, astfel încât să nu lege instrumentul de anumite celule și să reducă timpul de înlocuire. De mare importanță este proiectarea mecanicii de schimbare a sculei, diferite tipuri de manipulatoare, glisoare etc.

rem S100 comutați intervalul de viteză pentru schimbarea manuală a sculei
N502G32M0 oprire tehnologică
hh1=getsystemdata(1000+hh) citiți valoarea corectorului de lungime
G1G91G43HhhZ-hh1F2000 lucrează la corector
G90GgG37X0Y0Aa se ia corectorul, calculăm unghiul de rotație
dacă paramactive(83)=0 atunci treci la 600 dacă parametrul S (revoluții) nu este setat, săriți cadre și mergeți la eticheta 600
dacă paramactiv(77)><0 atunci m= funcția de ajutor implicită M va fi M3
N520MmSs definiți funcțiile suplimentare M și S
Tt selectați numărul sculei
N600if paramactive(88)=0, atunci treci la 9999 dacă cel puțin una dintre coordonatele XY ale poziției nu este setată, nu mergem la poziție, sărim cadre și mergem la 9999
dacă paramactive(89)=0 atunci mergeți la 9999 dacă cel puțin una dintre coordonatele XY ale poziției nu este setată, nu mergem la poziție, sărim cadre și mergem la 9999
G1F2000G1X(x+1)Y(y+1) intrăm în prepoziție, dăm o potrivire de interferență de-a lungul XY 1mm
F100G9XxYy ieșire exactă în poziția XY cu verificare
N9999G1F2000 stabiliți condițiile inițiale pentru contur
G32 încetinim calculul programului
M99 sfârșitul funcției, reveniți la program

Vezi și