Sunteți pe pagina 1din 14

Lucrare de laborator - Interpretorul

Modul de lucru al interpretorului şi funcţiile utilizate în programarea


maşinii unelte

Nucleul NC este componenta cheie a unui sistem CNC si constã intr-o gama
de module ce sunt executate consecutiv intr-un program sincronizat.
Prezentul capitol va descrie codul de interpretare. Acesta este responsabil de
convertirea programului piesei si a instructiunilor maşinii in comenzi
interne pentru NC. Pentru a intelege codul de interpretare trebuie sa
intelegem, in primul rand, programul piesei, mai exact, informatia care
trebuie interpretata. Apoi, structura si functiile codului de interpretare vor fi
descrise in detaliu.

2.1. Introducere

Codul de interpretare este un modul software, care traduce programul


piesei in comenzi interne in vederea deplasarii sculelor si executarii
functiilor auxiliare dintr-un sistem CNC.

Fig. 2.1 descrie regimul intern al sistemului CNC si aratã functiile MMC
(ManMachineController), ale nucleului comenzii numerice NCK si
acţionãrii (DRV(driver)). Programul piesei pe care un programator îl
dezvoltã in baza formei piesei, a condiţiilor de aşchiere si a sculelor este
introdus in sistemul CNC prin MMC, iar nucleul NC genereaza ulterior
comenzile de control din programul piesei pentru drivere. urmând mai
multe etape:
Printre aceste etape, dispozitivul de interpretare poate fi considerat ca
având o sarcina simplã pentru convertirea codurilor G/M in structurile
interne de date ce pot fi înţelese de CNC. Cu toate acestea, proiectarea si
punerea in aplicare a interpretorului este o sarcina amplã si cuprinzatoare,
deoarece, in momentul dezvoltarii acestuia, este necesar sa fie luate in
considerare normele de programare si gramatica descrise intr-un manual de
programare, precum si conceptul de operare continut de manualul de
operare. Prin urmare, interpretorul este indicatorul reprezentativ al
conceptului de proiectare si al aspectului functional al unui sistem CNC
si reprezinta o mare parte din CNC, tinând cont de faptul cã pentru
crearea lui, este nevoie de mai mult de 50% din timpul total de
dezvoltare.
Figura 2.1 Comportamentul intern al sistemului de CNC (MMC, NCK,
funcții DRV)

In acesta prezentare, vor fi abordate pe scurt formatul si functia programelor


componente ale CNC, precum si arhitectura, cum ar fi structura unui
interpretor , procedura de executare si structura memoriei. Totusi, deoarece
functia detaliata a sistemului CNC si programul component difera
uşor(puţin) pentru fiecare producator CNC, este necesar ca manualul
programului sã conţinã informatii valabile pentru functiile detaliate ale
oricarui sistem CNC.

2.2. Programul piesei


Desi exista un standard pentru dezvoltarea programelor pieselor pe CNC,
care listeaza secvential comenzile pentru dezvoltarea sistemului, fiecare
producator CNC detine, in practica, propriul sistem de coduri, incluzând
propriile comenzi. In aceasta sectiune, conceptul general va fi descris in baza
codului standard.
2.2.1 Structura programului

Un program de piesã contine comenzile pentru prelucrarea unei piese,


denumite blocuri, si fiecare bloc poate fi alcãtuit folosind urmatoarele
comenzi:

 Comenzi NC, cum ar fi Funcţiile G, M, S, T, H, D, F si adresele care


le corespund
 Apel de subprogram si afisarea mesajului
 Setarea variabilelor si apelarea programelor condiţionale

Intr-un program de piesã sunt folosite literele alfabetului englez, cifrele


arabe si simboluri, iar Fig. 2.2. ilustreaza formatul si elementele unui
program.

Fig 2.2 Formatul programului si elementele de constructie

Un program piesã constă dintr-o secvență de blocuri NC, fiecare bloc este
format din mai multe cuvinte, și un cuvânt este compus dintr-o adresă și
număr. Numărul programului este un număr de identificare a
programului particular al piesei pe CNC, în care mai mult de un program
al piesei este executat și este scris utilizând o adresă corespunzatoare și un
număr, în capul(începutul) unui program. Adresa P este folosită, dar şi O sau
# sunt de asemenea, utilizate de către factorii de decizie în unele CNC
specifice.
Un bloc este format dintr-un număr de bloc, cel puțin un cuvânt, și EOB,
care are semnificația sfârșitului de bloc. Cuvântul este un set de caractere
într-o ordine specifică. Cuvântul este unitatea minimă de procesare
internã si dã o comandã mașinii-unelte pentru a obţinerea un anumit
comportament. Cuvântul este format dintr-o adresă și un număr ulterior,
ca mai jos:

Adresa este construită dintr- unul din caracterele alfabetice (A...Z), sau o
combinație de caractere alfabetice. Numărul ulterior prevede date, care
sunt necesare pentru a executa un comportament legat de adresa. Tabelul 2.1
rezumă adresele care au fost utilizate de obicei și funcția, care este legatã de
adresa.
Tab.2.1. Adresele și funcțiile tipice asociate
Funcţie Adresa înţeles (exemplu) Unitate
Număr program P Nr. identitate program
ex. P123456
Număr bloc N NC seq. nr. N100

Funcţie preparatorie G Comanda mod G01

Coordonata (comanda pt X.Y.Z/ Axa / dir. X100 W20 mm, inch


axe de translate) U,V,W
Coordonata (comanda pt A.B .C Axis A30 deg
axe de rotatie)
Avans F Avans pe minut F200 mm/min,
inch/min,
deg/min
Avans pe revoluţie FI mm/rev,
inch/rev,
deg/rev
Viteza arbore principal S S3000 rpm
Scula T Numărul sculei T12

Funcţie auxiliara M Comanda Maşina M06

Număr ce exprimã H,D Nr. registru


compensarea compensare H10
Număr de repetitii ale L Nr iteraţie L5
subprogramului
Raza cercului sau a R Raza arc, raza colt R3 mm, inch
arcului
Tesitura C Mãrime tesiturã C2 mm, inch

Poziţia de centru a I.J.K Coord. centrului mm, inch


cercului cercului

Printre adresele descrise în tabelul 2.1, adresa G, pentru functiile de


pregătire, precum și adresa M, pentru funcțiile auxiliare, sunt în mare
măsură legate de performanța sistemului de CNC. Adresele G indica
comenzi pentru mișcarea sculei prin deplasarea de-a lungul axelor de
translație sau în jurul axelor rotative pe traiectoria specificată. Adresele
M denotã comenzi pentru controlul funcțiilor on / off(de comutaţie) în
mașina-unealtã. Funcţiile G sunt clasificate în două tipuri: una este modalã,
iar celălalt este non-modalã. O funcţie de tip modal este eficace de-a lungul
următoarelor blocuri până ce comanda de anulare modală este utilizată. Pe
de altă parte, o funcţie de tip non-modalã este efectivã în cadrul blocului
comandat și anulatã în mod automat de către blocul următor. Funcţiile
de tip modal sunt clasificate în mai multe grupuri, numite grupuri
modale, în ceea ce privește similitudinea funcției. Într-un singur bloc, este
interzis să se utilizeze mai mult de o funcţie G, care este inclusã în
același grup modal.
Grupurile de adrese pe baza funcțiilor de sistem CNC sunt rezumate în
Tabelul 2.2. Ca standard, pentru editarea unui programului piesa bazat pe
aceste adrese, ISO 6983 a fost utilizat pe scară largă. Cu toate acestea,
fiecare producãtor CNC are propriul cod al sistemului G & M în care
producatorul a adăugat funcții specifice la ISO 6983. În consecință, sistemul
curent al funcţiilor G & M pentru generarea de programe depinde de
sistemul CNC. Dacă sistemul CNC este schimbat, este aproape imposibil de
a refolosi programul piesei existente. Prin urmare, în scopul de a crea un
program  piesã manual, este necesar să se consulte manualul de
programare al unui anumit producãtor particular CNC.
Potrivit nivelului de sistem CNC, numărul de adrese posibile variază de la
câteva zeci la câteva sute. Acest lucru înseamnă că este posibil ca un sistem
CNC cu mai multe adrese sã aibã cele mai avansate echipamente din
categoria cãruia sistemul CNC aparține. Suplimentar, în funcție de tipul
mașinii, adresele aplicabile sunt definite în diferite moduri. În cele ce
urmează, interpretorul este modulul care are funcția de a interpreta diverse
adrese,cuvinte, și gramatica.
Tab 2.2 Rezumatul grupurilor de adrese bazate pe functiile sistemului CNC
Funcţii Descriere
Funcţie Funcţiile folosite pentru controlarea axelor si sistemului
preparatorie CNC prepara execuţia funcţiei repective.
(G-code) (1) miscare: comanda mişcarea relativa dintre
scula si piesa de lucru
(2) setarea sistemului de coord local: specifica
originea si orientarea sistemului de coordonate local
incluzând si sistemul de coordonate ortogonal, sistemul de
coordonate polar, si sistemul de coordonate de rotatie.
(3) lnterpolare: comanda prelucrarea diferitelor
profile cum ar fi linie, arc, elicoidal, etc.
(4) Altele: comenzi pentru compensarea sculei, verif,
siguranţa, skip(salt).
Funcţie de Comanda viteza relativa dintre scula si piesa de lucru pentru
avans(F-code) comanda de interpolare.

Funcţii ale Comanda viteza arborelui (RPM)


arborelui (S
code)
Funcţia Comanda schimbarea sculei si specifica compensarea ei
sculei
(T-code)
Funcţie Comenzi de funcţii pentru controlul simplu al unei scule a
Auxiliara unei maşini incluzând buton/releu de on/off precum si
(M-code) control de axa
(1) Sistem de răcire: comanda sistemul de răcire
on/off.
(2) Start/Stop a unui program principal si a unui
subprogram: precizeaza inceputul si sfarsitul unui program
piesa.
(3) Arbore: comanda un arbore sa se roteasca
in direcţia CCW sau CW si specifica viteza arborelui, viteza
limita si schimbarea vitezelor arborelui.
(4) Altele: comanda schimbarea sculei, piesa de lucru,
paleta si rotatia mesei/incarcatorului.
Funcţii (1)Subprogram: Pentru a simplifica programul principal,
Utilitare programul auxiliar
(2)MACRO inregistreaza o serie de comenzi ca o comanda
particulara si executa diferite funcţii utilizând o comanda
inregistrata.
(3) Ciclu fix
(i)Ciclu de strunjire
Defineşte o serie de comenzi pentru a executa operaţiile
de strunjire ca o singura comanda. Ciclurile de filetare,
strunjire exterioara, filetare, canelare sunt definite.
(ii) Ciclu de gaurire
Defineşte o serie de comenzi pentru gaurire, filetare,
alezare a gãurilor si gaurire cu percuţie, ca ciclu de
gaurire.
(iii)Ciclul de frezare
Frezare canale, Frezare buzunar. Defineşte o serie de
comenzi pentru profilele maşinii care sunt frecvent
prelucrate in timpul frezarii de buzunare si canelarii ca
cicluri de frezare.
(ii)Ciclul de palpare
Aceasta comanda activeaza modificarea unui program
prin inspecţia maşinii inainte sau dupã prelucrare.
Astfel fiind posibila compensarea sau finisarea prin
inspecţia acuratetii prelucrării.

Este posibil să editați descrierea prin cuvinte prin inserarea în paranteze în


cadrul unui bloc, după cum este prezentat mai jos.

Descrierea comentariu nu are nici o influență asupra executarii unui


program. Deoarece descrierea se poate afisa pe ecranul sistemului CNC,
împreună cu blocul în timpul editarii sau executarii a unui program al piesei,
este foarte util pentru gestionarea programelor piesei.
Sfârșitul programului piesei este semnalizat de comanda M02 sau M30. Prin
introducerea M02 sau M30, la sfârșitul programului piesei, toate valorile
modale sunt inițializate și resetate.
Deoarece comenzile M02, M30 și sunt executate ultimele, acestea pot fi
localizate oriunde în cadrul ultimul bloc.
2.4 Interpretorul funcţiilor G & M
După cum s-a menționat în secțiunea anterioară, interpretorul sistemului de
CNC este software-ul modulului unitãţii NCK care interpretează programul
piesei constând din funcţiile G & M și adresele aferente, cum ar fi S, T, și F.
Interpretorul constă dintr-un parser(analizor), un executor, un generator de
traiectorie, un executor macro, și un detector de erori. Parserul constă dintr-
un analizor lexical, un calculator, și un interpretorul de propoziție
(YACC).
În ceea ce privește modulele software legate de interpretor, există programul
modulul de acces, care citește un fișier de program, și modulul interpolator,
care generează punctele de traiectoria programată pe baza datelor
interpretate interpolate.
Figura 2.27 prezintă aceste module în formă grafică.
Fig.2.27 Modulele interpretorului

Funcționalitatea fiecărui modul este prezentată mai jos.


1. Analizorul lexical: Acest modul interpretează bloc cu bloc programul
piesei. Interpretorul lexical a acestui modul citeşte caracter cu caracter
blocul și extrage cuvintele cu sens din caractere. Calculatorul efectuează
operațiunile numerice în programul piesei. Interpretorul de propoziții preia
comanda și leagã datele, cum ar fi G-cod, M-cod, S-cod, T-cod, ramificarea
condiționalã și repetarea buclei pe baza cuvintelor din interpretorul lexical.
2. Executorul: Acest modul executa funcțiile legate de propoziții
interpretate și stochează rezultatul execuției în memoria internă. In plus,
acest modul generează datele necesare pentru executarea codului modal.
3. Generatorul de traiectorii: Acest modul generează datele poziției pe
baza coordonatelor programate. În acest modul, pe baza punctelor de la piesa
de lucru se calculeazã coordonatele maşinii, compensarea sculei, şi limitele
axelor sunt verificate.
4. Executorul macro: acest modul interpretează și execută comenzile macro
incluse într-un program piesa NC. Macro este codul definit de utilizator, cu
ajutorul cãruia acesta poate face funcții specifice care nu sunt prevăzute de
către producãtorul CNC, prin utilizarea unui limbaj macro, care este similar
cu limbajul BASIC.
5. Detectorul de erori: dacă există o eroare într-un program al piesei,
eroarea ar trebui să fie remarcatã și utilizatorul notificat. Acest modul este
responsabil pentru aceasta.
Fluxul de lucru care trebuie să fie executat de interpretor cu diverse module
S / W de interpretare a programului piesei pentru a genera poziția sculei este
prezentat în fig. 2.28.

Fig.2.28 Schema logica pentru functionarea interpretorului


În primul rând, o dată ce butonul Start Ciclu de pe panoul MMI a fost apãsat,
interpretorul începe sarcinile de pre-procesare, cum ar fi citirea programului
piesei din interiorul memoriei sistemului CNC de bloc, interpretarea
blocului, și stocarea datele interpretate în memoria internă. În timpul
sarcinile de pre-procesare, o funcţie ciclu este convertitã în blocuri care
constau din G01, G02 și. G03 Aceste blocuri convertite înlocuiesc codul de
ciclu și interpretorul citește și interpretează blocurile convertite.
Memoria bloc internă poate fi definită ca în tabelul 2.6. Memoria bloc
prezentatã în Tabelul 2.6 prezintă conținutul memoriei atunci când blocul a
cărui linie index este N300 a fost cititã și în cazul în care se specifică blocul
salt și interpretare în subprogramul P9000. Interpretorul citește adresele și
numerele menționate în bloc și înmagazineazã prin N300 valorile
interpretate în memoria internã. În plus, variabila SLASH care arată dacă o
comandă bloc salt este sau nu este setat ca true.
Apoi, interpretorul citește și efectuează datele din  memoria internă a
blocului. Dacă Funcţiile M02 sau M30 sunt executate, programul piesei este
"derulat". În cazul în care interpretorul execută M98, interpretorul apeleazã
subprogramul al cărui număr este valoarea ce însoţeşte adresa P. Dacă M98
este comandată împreună cu adresa L, interpretorul execută subprogramul în
mod repetat de multe ori,atât cât indicã numărul ce însoţeşte adresa L.
În continuare, un apel macro este monitorizat și, în cazul în care este apelat,
programul macro specificat este transferat. Pentru a efectua rapid o comandã
macro de executie, este mult mai eficient de a pre-interpreta programul
apelat de către macro, stoca programul într-un cod intermediar, și a-l executa
pe acesta. Deoarece această metodă este una dintre soluțiile de interpretare
de mare viteză, definiția este necesarã codului intermediar virtual și un
modul suplimentar de execuție este necesar. Modul de apelare a unui
program macro este similar cu modul în care se apeleazã un subprogram.
Într-un apel programul macro, deși, este posibil să fie specificate argumente
și sã se utilizeze variabile globale în contrast cu realizarea unui subprogram.
Următorul pas este de a executa codul G. Dacă blocul curent este primul
bloc,interpretorul initializeaza variabilele locale și controlează blocul
comandă. saltul opțional se efectuează, de asemenea, prelucrarea G-cod,
cum ar fi setarea de tip G-cod, Gcod grup, datele modale, și date non-
modale.
Interpretorul efectuează procesarea F-cod în cazul în care interpretorul
citește codul F din datele din memoria bloc internă și specifică variabilele
aferente. În timpul prelucrãrii F-cod, metoda de definire a avansului precum
avans pe minut (mm / min, inch / min) sau avans-per-revoluție și unitatea de
depãşire a avansului și durata temporizãrii sunt stabilite.
După finalizarea etapelor de mai sus, poziția finală a unui bloc este calculată
ca ultimul pas al interpretării. În general, după cum s-a menționat mai
devreme, diverse sisteme de coordonate sunt folosite pentru a face editarea
ușoarã a programul piesei pentru masina unealta cu CNC.
Există trei tipuri de sistem de coordonate utilizate pentru mașini-unelte; un
sistem de coordonate mașină care este sistemul de coordonate de referință al
mașinii unelte în sine și este definit cu zero de întoarcere, un sistem de
coordonate al piesei, care este utilizat pentru editarea unui program al piesei,
și un sistem de coordonate local, care este folosit ca referință pentru
prelucrare și se specifică în funcție de sistemul de coordonate al piesei.
Sistemul de coordonate al mașinii este specificat de către G53, un sistem de
coordonate al piesei este specificat de către G54 pãnã la G59, precum și un
sistem de coordonate local este specificat de către G52.
În consecință, pe baza sistemului de coordonate de mai sus, pentru calculul
ieşirii poziției, în primul rând, dacă este necesar, valorile în țoli sunt
convertite în valori în milimetri. Valorile incrementale sunt convertite în
valori absolute coordonate. Dacă o rotație a sistemului de coordonate este
comandată, coordonatele programate sunt rotite.
Dacă este specificatã o funcţie oglindă a sistemului de coordonate, apoi
funcția oglinda este executatã. Dacă este specificat scalarea sistemului de
coordonate, apoi funcția de scalare este efectuatã.
Următoarea etapă este etapa de modificare a traiectoriei în care compensarea
lungimii sculei și compensarea razei sculei sunt executate. În cele din urmă,
datele utilizate pentru valoarea limită de selectare, cum ar fi viteza, software-
ul utilizat şi zona de lucru sunt transmise în interpolator. Tabelul 2.7 prezintă
un exemplu de implementare a memoriei bloc de înregistrare. Blocul de
înregistrare de memorie  inmagazineaza nu numai datele interpretate într-un
bloc specific dar, de asemenea, datele specificate în sistemul CNC. Dacă se
folosește funcția de anticipare, avansul blocului este recalculat utilizând
funcția de anticipare și avansul modificat este stocat într-o memorie
suplimentară pentru funcția de anticipare.
Tab.2.6 Harta memoriei pentru interpretor
Valoare
Camp Tip Valoare Stare Tip
A double SLASH unsigne 1
d
B double PERCENT unsigne
d
C double NUMBER unsigne
d
D double ID unsigne
d
E double CHANGE[M_ADD] unsigne
d
F double 1000 GFLAG[MAX-G] unsigne
d
G double 01 MFLAG[MAX-G] unsigne
d
H double G_MODAL int
I double
J double
K double
L double
M double
N double 300
0 double
P double
Q double
R double
S double 5000
T double
U double
V double
W double
X double 150
Y double 20
Z double 30
P9000
N100 G92 G96;
N200 G00 X100;
N300 M03;
/N300 G01 X150 Y20 Z30 F1000 S5000;
N400 G1 Z120;

2.5 Sumar

Interpretorul are rolul de a converti un program al piesei utilizator-editat, în


format de date înterne pentru execuție. În scopul de a înțelege structura și
comportamentul intern al interpretorului, este necesar să se înțeleagă
structura unui program al piesei și comenzile utilizate pentru acesta.
Într-un sistem CNC, diferite sisteme de coordonate, cum ar fi sistemul de
coordonatele al masinii , sistemul de coordonate al piesei, iar sistemul local
de coordonate, sunt acceptate pentru comoditatea editãrii a unui program al
piesei și instalarea mașinii. De asemenea, rotația, oglindirea, și scalarea unui
sistem de coordonate sunt furnizate și prin utilizarea a acestor funcții este
posibil să se editeze cu ușurință programul piesei.
Tab.2.7 Memorie registru bloc
Entitate Tip Comentarii
EncLpoint Real Block end point
Array[8]
Start_point Real Block start point
Array[8]
Prog_F_value Real Feedrate
Prog_S_value Real Spindle speed
F_limit Real Feedrate limit
S_limit Real Spindle speed limit
Scaling_factor Real Scale
G_code_group Integer G-code group
Array [20]
Exact_stop Integer Exact stop mark
Block_number Integer Block number
Sub_PG_index Integer Subprogram index
Act_Number_P Integer Number of
program
G_repeat repetitions
Gear.box Real Parameter for gear
box
Correction_active Integer Tool compensation
start
TooLcorrection Real Tool compensation
IPO_type Integer Interpolation type
G_Code Integer G-code in block
Array[8]
Thread_flag Integer Thread start
HandwheeLflag Integer Handwheel start
HandwheeLdirec Integer Handwheel
rotation direction
tion
Blocklength Real Block length
Block_pointer Pointer Block pointer
Array[4]

Pentru a controla mișcarea sculei de-a lungul unei linii, unui arc, unei elicii,
sau o traiectorie spline, funcțiile de interpolare, cum ar fi G01, G02, G03 cod
sau F-cod pentru specificarea avansul și S-cod pentru specificarea vitezei
arborelui principal sunt utilizate. Pentru a efectua programul piesei în cazul
în care nu sunt luate în considerare forma sculei și montajul, funcția
compensare-rază sculei și funcția de compensare a lungimii sculei sunt
furnizate. În plus,funcția macro, așa-numita " funcția ciclu " este prevăzutã
pentru facilitarea editarii unui program al piesei și de simplificare a
programului piesei. Recent, pentru a îndeplini cerințele pentru prelucrare de
mare viteză și de prelucrare de mare precizie, diverse funcții avansate , cum
ar fi funcția de anticipare, funcția de control cu avans anticipat, și funcția de
interpolare NURBS, au fost aplicate. În cele din urmă, interpretorul, care
îndeplinește funcțiile menționate mai sus, conţine un analizor, un executor,
un generator, un executor macro, și un modul de tratare a erorilor.
Interpretorul convertește datele blocului citit din textul memoriei în date
interne de structură. Pe baza datelor interpretate, poziția unui bloc este
calculatã prin executarea a diverse operații matematice, cum ar fi rotația
coordonatele și compensarea sculei și sunt stocate în memoria de înregistrare
bloc.