Postprocesiranje i Razvoj Postprocesora u Solidcam-u

May 10, 2017 | Author: Djurica Daniel | Category: N/A
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF