Postprocesiranje i Razvoj Postprocesora u Solidcam-u
May 10, 2017 | Author: Djurica Daniel | Category: N/A
Short Description
POSTPROCESIRANJE I RAZVOJ POSTPROCESORA U SOLIDCAM-U U tekstu takođe je prikazan primer definisanja GPP za Heiz 10...
Description
Master Rad Rad
Đurica Danijel
7. POSTPROCESIRANJE I RAZVOJ POSTPROCESORA U SOLIDCAM-U Prvi korak definisanja CAMPart-a CAMPart-a je izbor mašine alatke (upravljačke jedinice), jedinice), odnosno izbor postprocesora. Naziv „postprocesor“ se može definisati kao prevodilac programskog jezika SolidCAM-a SolidCAM-a u prepoznatljiv oblik koja upravljačka jedinica CNC mašine alatke razume. U SolidCAM-u SolidCAM-u postprocessor čine tri datoteke sa ekstenzijom:
GPP PRP VMID
Direktorijum gde su smešteni svi postprocessori koji dolaze sa instalacijom samog programskog sistema SolidCAM-a SolidCAM-a je lociran na sledećoj lokaciji: Za Windows 7: C:\Program C:\Program Files\SolidCAM2013\Gpptool Files\SolidCAM2013\Gpptool Za Windows 8: C:\Users\Public\Documents\SolidCAM\SolidC C:\Users\Public\Documents\SolidCAM\SolidCAM2013\Gpptoo AM2013\Gpptooll Zbog složenosti ove oblasti u narednim poglavljima biće opisani samo opšti pojmovi i definicije za svaku od datoteka kao celine jednog postprocesora ne ulazeći u detalje, postupke i problematike samog definisanja istog.
7.1
GPP datoteka, osnovni pojmovi i definicije
datoteka (eng. „General PostPost-Processor) definiše proceduralno kako će se parametri i GPP datoteka definisana putanja alata razviti u G-kod. G-kod. GPP datoteka čine nizovi procedura i parametara ispisanih po pravilima GPPL-a GPPL-a (eng. „General Post Processor Language“), internog progr amskog amskog jezika SolidCAM-a. SolidCAM-a. Ovu datoteku je moguće generisati pomoću običnog tekstualnog editora. Na slici 7.1 je prikazan primer definisane GPP datoteke datoteke za Fanuc upravljačke jedinice troosne glodalice.
Slika 7.1: Izgled GPP datoteke za Fanuc uptavljačku jedinicu uptavljačku jedinicu troosne glodalice Glavnu strukturu svake GPP datoteke sačinjena je od „procedura“ ili/odnosno „rutina“. Unutar GPPL-a postoje sistemske procedure i procedure definisane od strane korisnika. Svaka procedura definisana je imenom i počinje simbolom „@ „@“ a završava komandom „endp“. Između ova dva 97
Master Rad
Đurica Danijel
elementa nalazi se telo procedure koje određuje šta će se i pod kojim uslovima generisati u G -kodu. Na slici 7.2 su prikazane dve sistemske procedure za Fanuc upračke jedinic e troosne glodalice.
@ime procedure >>>
(telo procedure) >>>
endp (kraj procedure) >>>
Slika 7.2: Definisane sistemske procedure za Fanuc upračke jedinice troosne glodalice U cilju boljeg razumevanja šta zapravo predstavljaju procedure, na slici 7.3 je prikazana putanja alata spoljašnjeg glodanja podeljena u segmente na levoj slici, dok na desnoj slici su prikazani isti segmenti u procedurama koje će SolidCAM pozivati iz postprocesora za koji je definisan za CAMPart.
a)
b)
Slika 7.3: Segmenti putanje alata podeljene u procedure Telo procedure se uglavnom sastoji od „ IF“ i „ WHILE“ petlji, čije promenjive mogu biti sistemske ili definisane od strane korisnika.
7.2
PRP datoteka, osnovni pojmovi i definicije
PRP datoteka (eng. „Pre-Processor Parameters“) se sastoji od grupe parametara koji utiču na samu generacijiu putanje alata u SolidCAM-u. Vrednosti parametara u PRP datoteci mogu biti:
celi brojevi (-999999999, +999999999)
numerički (-1.E300, +1.E300)
logički - TRUE (1) ili FALSE (0)
slovni (sadrži bilo koji karakter ASCII-ja)
98
Master Rad
Đurica Danijel
PRP datoteku je moguće definisati pomoću običnog tekstualnog editora. Na slici 7.4 je prikazana PRP datoteka za Fanuc upravljačku jedinicu troosne glodalice.
Slika 7.4: Izgled PR P datoteke za Fanuc uptavljačku jedinicu troosne glodalice
7.3
VMID datoteka, osnovni pojmovi i definicije
VMID datoteka (eng. „Virtual Machine ID“) se defiše pomoću VMID editora koji je lociran u instalacijonom direktorijumu SolidCAM-a: C:\Program Files\SolidCAM2013\Solidcam\MachineIdEditor.exe
Unutar VMID datoteke se definišu svi kinematski parametri i elementi mašine. Na slici 7.5 se može videti izgled Dijalog prozora za definisanje VMID datoteke za Fanuc uptavljačku jedinicu troosne glodalice.
Slika 7.5: Izgled VMID datoteke za Fanuc uptavljačku jedinicu troosne glodalice
99
Master Rad
Đurica Danijel
VMID datoteka praktično ima dva cilja a to je da poveže kinematske karakteristika mašine sa definisanom mašinskom simulacijom i se kod složenijih mašina (četvoroosne i petoosne glodalice, obradni centri, itd) dobiju tačne vrednosti pozicija translatornih i rotacionih osa u G -kodu.
7.4
PRIMER DEFINISANJA POSTPROCESORA ZA - HEIZ HIGH-Z S-1000/T MAŠINU ALATKU
Za primer definisanja postprocesora izabrana je CNC troosna glodalica HEIZ HIGH-Z S-1000/T za koju je bila definisana mašinska obrada u prethodnim poglavljima. Definisane su tri datoteke:
High-Z_S-720T_WINPC_3X.gpp
High-Z_S-720T_WINPC_3X.prp
High-Z_S-720T_WINPC_3X.vmid
Zbog složenosti ove oblasti u narednom tekstu biće objašnjena samo GPP datoteka: ; --------------------------------------------------------------; CNC masina alatka
: HEIZ High-Z S-720 T
; Tip
: XYZ - ravan obrade XY
; Upravljacka jedinica : S-720 (WinPC-NC) ; SolidCAM
-
rečenice koje počinju sa simbolom „ ; „ su informacije ili komentari za samog korisnika/kreatora postprocesora
-
Promenljive, definisane od strane korisnika na nivou svih procedura/rutina.
: 2013 SP2 HF2
;--------------------------------------------------------------; Info : Z-osa je invetovana ;--------------------------------------------------------------@init_post
global string tool_diameter_f ud_r_file_name global numeric ud_save_spin ud_save_feed global logical ud_first_rapid_move ud_syntax_flag ud_m_feed_flag ud_coolant_on
100
Master Rad
Đurica Danijel
; Format GPPL promenljivih numeric_def_f = '5.3'
integer_def_f = '5.0(p)'
gcode_f
mcode_f
xpos_f
ypos_f
zpos_f
feed_f
= '2.0(p)
= '2.0(p)'
= '5.3'
= '5.3'
= '5.3(*-1)'
= '4.3(p)'
tool_diameter_f = '5.3/1'
blknum_f
= '5.0(p)'
-
komentar
-
format numeričkih promenljivih (5 mesta pre i 3 mesta posle decimalne tačke)
-
format promenljivih celih brojeva (5 mesta pre i 0 mesta posle decimalne tačke. Ukoliko je broj deljiv sa celim brojem i daje celi broj, promenljiva biće generisana bez decimalne tačke)
-
format gcode sistemske promenljive (2 mesta pre i 0 mesta posle decimalne tačke. Ukoliko je broj deljiv sa celim brojem i daje celi broj, promenljiva biće generisana bez decimalne tačke)
-
format mcode sistemske promenljive (2 mesta pre i 0 mesta posle decimalne tačke. Ukolik o je broj deljiv sa celim brojem i daje celi broj, promenljiva biće generisana bez decimalne tačke)
-
format xpos sistemske promenljive (5 mesta pre i 3 mesta posle decimalne tačke. Ova promenljiva generiše vrednost translatorne X – ose)
-
format ypos sistemske promenljive (5 mesta pre i 3 mesta posle decimalne tačke. Ova promenljiva generiše vrednost translatorne Y – ose)
-
format zpos sistemske promenljive (5 mesta pre i 3 mesta posle decimalne tačke. Ova promenljiva generiše vrednost pomnoženu sa -1 translatorne Y – ose)
-
format feed sistemske promenljive (4 mesta pre i 3 mesta posle decimalne tačke. Ukoliko je broj deljiv sa celim brojem i daje celi broj, promenljiva biće generisana bez decimalne tačke). Ova promenljiva generiše vrednost pomaka
-
format promenljive za prikaz vrednosti prečnika alata (5 mesta pre, najviše 3 mesta posle decimalne tačke. Ukoliko je broj deljiv sa celim brojem i daje celi broj, promenljiva biće generisana bez decimalne tačke). Ova promenljiva generiše vrednost pomaka
-
format za generisanje vrednosti blokova (5 mesta pre, najviše 0 mesta posle decimalne tačke) 101
Master Rad
Đurica Danijel
blknum_gen
= true
-
vrednost promeljive. Da li su blokovi rečenica podržani upravljačkom jedinicom? True (da), False (ne)
10
-
vrednost prvog bloka
-
vrednost razlike dva bloka
-
maksimalna vrednost generisanja blokova. Nakon ove vrednosti, generacija će početi od broja 10.
-
slovo za generisanje blokova i kraj @init_post procedure
-
@start_of_file procedura u kojoj se štampa broj programa, datum generisanja programa i tekst „(USED TOOLS)
-
@start_program procedura koja se sastoji od dve „IF“ petlje. Prva petlja ukazuje na to, da ako je u operaciji korišćena opcija rotacije putanje alata da se generiše „G69“ u novom bloku. Druga petlja ukazuje na to, da ako je u operaciji korišćena opcija preslikavanja putanje alata da se generiše „G50.1 X0 Y0“
-
Na kraju programa se poziva procedura @end_program koja će kao rezultat njenog pozivanja generisati „M30“ u gkodu
-
Ukoliko je potrebno generisati g-kod u relativnim koordinatama, time će SolidCAM pozivati @relative_mode proceduru i generisaće „G91“ u novom bloku g-koda
-
Ukoliko je potrebno generisati g-kod u apsolutnim koordinatama, time će SolidCAM pozivati @absolute_mode proceduru i generisaće „G90“ u novom bloku g-koda
= true
blknum_exist
blknum
-
vrednost promeljive. Da li korisnih želi generisati blokove rečenica? True (da), False (ne)
=
blknum_delta
blknum_max
=
10
= 32000000
blknum_letter = ‘N’ endp @start_of_file
{'%prog'program_number} {nl,'( -- 'DATE' -- )'} {nb,'(USED TOOLS)'} endp @start_program
if rotate_used then gcode = 69 {nb, 'G'gcode} endif if mirror_used then {nb, 'G50.1 X0 Y0'} endif ud_syntax_flag = true endp @end_program {nb, 'M30'} endp @relative_mode
if ud_syntax_flag eq true gcode = 91 {nb, 'G'gcode, ' '} skipline = FALSE endif endp @absolute_mode
if ud_syntax_flag eq true gcode = 90 {nb, 'G'gcode, ' '} skipline = FALSE endif endp
102
Master Rad
Đurica Danijel
@machine_plane
if ud_syntax_flag eq true if machine_plane eq XY gcode = 17 endif
-
U zavisnosti od mašinske radne ravni (XY, YZ, ZX) u @machine_plane proceduri biće generisani g-kodovi G17, G18 ili G19 i G94 nakon ove sistemske promenljive
-
Generisanje i pozivanje broja alata i njegovog prečnika (Primer: N040 T01 – D10)
-
Procedura @rapid_move se poziva od strane SolidCAM-a svaki put kad se kretanje alata vrši brzim hodom, s toga se u ovoj proceduri generiše u novom bloku G0 g-kod, X, Y i Z koordinate translatornih osa
-
@line procedura se poziva svaki put kad se kretanje alata vrši translatorno i brzinom radnog hoda, s toga se u ovoj proceduri generiše u novom bloku G1 gkod, X, Y i Z koordinate translatornih osa
-
@start_of_job je procedura koja se poziva na početku operacije i generiše komentar u g-kodu sa informacijama o imenu operacije
if machine_plane eq YZ gcode = 18 endif if machine_plane eq ZX gcode = 19 endif {nb, 'G'gcode' G94'} endif @def_tool
{nb,'(T'tool_number,' -D'(tool_offset*2):tool_diameter_f')'} endp @rapid_move
{nb} gcode = 0 if ud_first_rapid_move eq true change(xpos) = true change(ypos) = true change(zpos) = false endif {'G'gcode [' X'xpos], [' Y'ypos], [' Z'zpos:zpos_f]} if ud_first_rapid_move eq true change(xpos) = false change(ypos) = false change(zpos) = true ud_first_rapid_move = false call @rapid_move endif ud_save_feed=0 endp @line
{nb} gcode = 1 {'G'gcode} {[' X'xpos], [' Y'ypos], [' Z'zpos:zpos_f]} call @udr_print_feed endp @start_of_job
{nb,'(',upper(job_name)')'} if msg ne '' then {nb,'(',upper(msg)')'} endif ud_first_rapid_move = true endp
103
Master Rad
Đurica Danijel
@compensation
if side eq COMP_LEFT then gcode = 41 endif if side eq COMP_RIGHT then
-
@compensation procedura se poziva kad je u putanji alata definisana kompenzacija radijusa alata, pri čemu će u zavisnosti od sistemske promenjive generisati G40, G41, G42 kod
-
Pri generisanju g-koda kod operacije bušenja @drill_point je procedura koja se poziva pri promeni pozicije alata i generiše koordinatne tačke otvora/rupe ukoliko se ne radi o prvom otvoru/rupi
-
@end_mill je procedura koja se poziva kada je ciklus bušenja završen i generisaće G80 kod
-
@start_tool je procedura koja se poziva na početku operacije i u zavisnosti od smera obrtaja glavnog vretena (M3 za okretanje u smeru kazaljke na sata i M4 za suprotnosmerno okretanje kazaljke na satu) generisaće M-kod i S broj obrtaja glavnog vretena
gcode = 42 endif if side eq COMP_OFF then gcode = 40 endif {nb,'G'gcode,' '} skipline = FALSE endp @drill_point
if not first_drill then {nb, ' ', [' X'xpos], [' Y'ypos], [' Z'zpos:zpos_f]} endif endp @end_drill gcode = 80 {nb, 'G'gcode} endp @start_tool
if spin_direction eq CW then mcode = 3 else
; CCW
mcode = 4 endif {'S'spin:integer_def_f, ' M'mcode} ud_save_spin = spin endp
104
View more...
Comments