Page 29 - Fister jr., Iztok, and Andrej Brodnik (eds.). StuCoSReC. Proceedings of the 2018 5th Student Computer Science Research Conference. Koper: University of Primorska Press, 2018
P. 29
eriˇcni strojni jezik [4]. V naˇsem primer smo to izvedli manj specifiˇcne nastavitve, kot sta, na primer, natanˇcnost
z implementacijo poprocesorja, ki pretvori G-kodo oz. pro- robota in nastavitev natanˇcnosti ˇstevil s plavajoˇco vejico,
gram NC v toˇcke za uˇcenje robota ACMA in z obsojeˇcim kjer nastavimo ˇstevilo decimalnih mest koordinat. Z GUI
programom pretvori pridobljene toˇcke v numeriˇcni strojni smo z aplikacijskimi vmesniki (angl. Application Program-
jezik ACMA. Proces pretvorbe prikazuje Slika 2. ming Interface, krajˇse API) izvajali pretvorbo, pridobivali
vhodno G-kodo in shranjevali pridobljen programa ACMA
za uˇcenje toˇck in razˇclenjeno G-kodo s klikom na gumb.
Za razvoj vmesnika smo uporabili programsko okolje Visual
studio 2017 in izdelali GUI s pomoˇcjo programskega paketa
Windows Forms C++/CLI, ki ga ponuja uporabljeno ra-
zvojno okolje. C++/CLI je jezikovna specifikacija, ki jo
je razvil Microsoft je namenjena nadomeˇsˇcanju upravljalnih
(angl. Managed ) razˇsiritev za C++ [7, 9], katere namen je
poenostaviti starejˇso upravljalno sintakso C++, ki je zdaj
opuˇsˇcena. C++/CLI je standardizirana v standard ECMA-
372. Trenutno je na voljo, kot programski paket za Visual
Studio 2005 - 2017, vkljuˇcno z izdajami Express.
Slika 2: Prikaz pretok podatkov 3.2 Pretvorba G-kode v program robota ACMA
Zaradi enostavnosti uporabljamo programsko opremo CA- Pretvorba G-kode v program 3/5 osnega robota ACMA te-
D/CAM, ki ˇze pripravi G-kodo oz. program NC glede na melji na uporabi standardnih knjiˇznic, ki nam olajˇsajo delo s
uporabljeno orodje. Za pretvorbo G-kode v jezik za uˇce- pisanjem funkcij. To je zbirka razredov in funkcij napisanih
nje robota ACMA moramo vhodno kodo razˇcleniti in po v baznem jeziku C++. Osnovo pretvorbe predstavlja razred
potrebi s pomoˇcjo interpolacije izraˇcunati dodatne toˇcke gi- Pridobitev Koordinat, ki je opremiljen z javnimi metodami
bov. Izhodno kodo, ki predstavlja program za uˇcenje toˇck za arhiviranje, upravljanje s spremenljivkami pridobljenih iz
robota, mora biti tudi primerno strukturirana. Po obdelavi, vhodne G-kode oz. programa NC in podatkov iz GUI. Vse-
program za uˇcenje toˇck ponovno pretvori kodo v numeriˇcno buje tudi zasebne metode za pridobivanje vrednosti iz vho-
robotsko kodo ACMA. dnih podatkov, zasebne metode za preraˇcunavanje kroˇznih
gibov v ustrezne interpolacije. Delovanje glavnega aplikacij-
3. RAZVOJ POPROCESORJA skega vmesnika ”Pretvori vhodno G-kodo” je predstavljeno
s Psevdokodom 1. Kjer spremenljivke z velikimi tiskanimi
Razvoj poprocesorja za pretvorbo G-kode v robotski jezik ˇcrkami predstavljajo sistemski nizi pridobljen iz vmesnika
3/5 osnega robota ACMA je sestavljen iz treh faz: GUI. Psevdokod 1 vsebuje tudi klice javnih metod, katerih
ime je loˇcen s podˇcrtaji.
• kreiranje uporabniˇskega vmesnika,
• pretvorbe G-kode v program robota ACMA Algoritem 1 Aplikacijski vmesnik za pretvorbo G-kode
• evaluacija. 1: String∧ AcmaIzpis, GkodaIzpis;
2: Pridobitev Koordinat Koord;
V nadaljevanju opisujemo omenjene faze podrobneje. 3: Koord.Vhodni Podatki(VHGKODA, NATANC, RELX,
3.1 Uporabniški vmesnik RELY, RELZ, RELA, RELB, RELC, STDEC, V, A,
RAMA, KOMOLEC, ZAPESTJE);
Teˇzave v modernem svetu so vidne pri kompleksnost naprav 4: OUTACMA->Clear();
in programov, saj jih praviloma uporabljajo manj izobraˇzeni 5: OUTGKODA->Clear();
kadri. Zato se za pohitritev in zmanjˇsevanje napak pri krmi- 6: AcmaIzpis = Koord.Izpis Glave Prog ACMA();
ljenju strojev CNC in robotov ACMA uporablja namenski 7: OUTAACMA->AppendText(AcmaIzpis);
uporabniˇski vmesnik, v naˇsem primeru predstavljeni kot gra- 8: Koord.Clear Data();
fiˇcni uporabniˇski vmesnik, ki natanˇcno opredeli nastavljanje 9: while Koord.Zakljucni Znak() is not ture do
parametrov stroja in s tem olajˇsa njegovo uporabo. 10: Koord.Pridobitev Vrstice();
11: if Koord.P razna V rstica() is not true then
V naˇsem primeru smo razvili GUI, preko katerega lahko 12: AcmaIzpis = Koord.Izpis Koord Prog ACMA();
nastavimo poloˇzaj polizdelka, konfiguracijo robota in druge 13: GkodaIzpis = Koord.Izpis Vrstice Gkode();
14: Koord.Prepis Podatkov();
15: OUTGKODA->AppendText(GkodaIzpis);
16: OUTAMCA->AppendText(AcmaIzpis);
17: Koord.Clear Data();
18: end if
19: end while
20: AcmaIzpis = Koord.Izpis Noge Prog ACMA();
21: OUTACMA->AppendText(AcmaIzpis);
22: Koord.Clear Data();
StuCoSReC Proceedings of the 2018 5th Student Computer Science Research Conference 29
Ljubljana, Slovenia, 9 October
z implementacijo poprocesorja, ki pretvori G-kodo oz. pro- robota in nastavitev natanˇcnosti ˇstevil s plavajoˇco vejico,
gram NC v toˇcke za uˇcenje robota ACMA in z obsojeˇcim kjer nastavimo ˇstevilo decimalnih mest koordinat. Z GUI
programom pretvori pridobljene toˇcke v numeriˇcni strojni smo z aplikacijskimi vmesniki (angl. Application Program-
jezik ACMA. Proces pretvorbe prikazuje Slika 2. ming Interface, krajˇse API) izvajali pretvorbo, pridobivali
vhodno G-kodo in shranjevali pridobljen programa ACMA
za uˇcenje toˇck in razˇclenjeno G-kodo s klikom na gumb.
Za razvoj vmesnika smo uporabili programsko okolje Visual
studio 2017 in izdelali GUI s pomoˇcjo programskega paketa
Windows Forms C++/CLI, ki ga ponuja uporabljeno ra-
zvojno okolje. C++/CLI je jezikovna specifikacija, ki jo
je razvil Microsoft je namenjena nadomeˇsˇcanju upravljalnih
(angl. Managed ) razˇsiritev za C++ [7, 9], katere namen je
poenostaviti starejˇso upravljalno sintakso C++, ki je zdaj
opuˇsˇcena. C++/CLI je standardizirana v standard ECMA-
372. Trenutno je na voljo, kot programski paket za Visual
Studio 2005 - 2017, vkljuˇcno z izdajami Express.
Slika 2: Prikaz pretok podatkov 3.2 Pretvorba G-kode v program robota ACMA
Zaradi enostavnosti uporabljamo programsko opremo CA- Pretvorba G-kode v program 3/5 osnega robota ACMA te-
D/CAM, ki ˇze pripravi G-kodo oz. program NC glede na melji na uporabi standardnih knjiˇznic, ki nam olajˇsajo delo s
uporabljeno orodje. Za pretvorbo G-kode v jezik za uˇce- pisanjem funkcij. To je zbirka razredov in funkcij napisanih
nje robota ACMA moramo vhodno kodo razˇcleniti in po v baznem jeziku C++. Osnovo pretvorbe predstavlja razred
potrebi s pomoˇcjo interpolacije izraˇcunati dodatne toˇcke gi- Pridobitev Koordinat, ki je opremiljen z javnimi metodami
bov. Izhodno kodo, ki predstavlja program za uˇcenje toˇck za arhiviranje, upravljanje s spremenljivkami pridobljenih iz
robota, mora biti tudi primerno strukturirana. Po obdelavi, vhodne G-kode oz. programa NC in podatkov iz GUI. Vse-
program za uˇcenje toˇck ponovno pretvori kodo v numeriˇcno buje tudi zasebne metode za pridobivanje vrednosti iz vho-
robotsko kodo ACMA. dnih podatkov, zasebne metode za preraˇcunavanje kroˇznih
gibov v ustrezne interpolacije. Delovanje glavnega aplikacij-
3. RAZVOJ POPROCESORJA skega vmesnika ”Pretvori vhodno G-kodo” je predstavljeno
s Psevdokodom 1. Kjer spremenljivke z velikimi tiskanimi
Razvoj poprocesorja za pretvorbo G-kode v robotski jezik ˇcrkami predstavljajo sistemski nizi pridobljen iz vmesnika
3/5 osnega robota ACMA je sestavljen iz treh faz: GUI. Psevdokod 1 vsebuje tudi klice javnih metod, katerih
ime je loˇcen s podˇcrtaji.
• kreiranje uporabniˇskega vmesnika,
• pretvorbe G-kode v program robota ACMA Algoritem 1 Aplikacijski vmesnik za pretvorbo G-kode
• evaluacija. 1: String∧ AcmaIzpis, GkodaIzpis;
2: Pridobitev Koordinat Koord;
V nadaljevanju opisujemo omenjene faze podrobneje. 3: Koord.Vhodni Podatki(VHGKODA, NATANC, RELX,
3.1 Uporabniški vmesnik RELY, RELZ, RELA, RELB, RELC, STDEC, V, A,
RAMA, KOMOLEC, ZAPESTJE);
Teˇzave v modernem svetu so vidne pri kompleksnost naprav 4: OUTACMA->Clear();
in programov, saj jih praviloma uporabljajo manj izobraˇzeni 5: OUTGKODA->Clear();
kadri. Zato se za pohitritev in zmanjˇsevanje napak pri krmi- 6: AcmaIzpis = Koord.Izpis Glave Prog ACMA();
ljenju strojev CNC in robotov ACMA uporablja namenski 7: OUTAACMA->AppendText(AcmaIzpis);
uporabniˇski vmesnik, v naˇsem primeru predstavljeni kot gra- 8: Koord.Clear Data();
fiˇcni uporabniˇski vmesnik, ki natanˇcno opredeli nastavljanje 9: while Koord.Zakljucni Znak() is not ture do
parametrov stroja in s tem olajˇsa njegovo uporabo. 10: Koord.Pridobitev Vrstice();
11: if Koord.P razna V rstica() is not true then
V naˇsem primeru smo razvili GUI, preko katerega lahko 12: AcmaIzpis = Koord.Izpis Koord Prog ACMA();
nastavimo poloˇzaj polizdelka, konfiguracijo robota in druge 13: GkodaIzpis = Koord.Izpis Vrstice Gkode();
14: Koord.Prepis Podatkov();
15: OUTGKODA->AppendText(GkodaIzpis);
16: OUTAMCA->AppendText(AcmaIzpis);
17: Koord.Clear Data();
18: end if
19: end while
20: AcmaIzpis = Koord.Izpis Noge Prog ACMA();
21: OUTACMA->AppendText(AcmaIzpis);
22: Koord.Clear Data();
StuCoSReC Proceedings of the 2018 5th Student Computer Science Research Conference 29
Ljubljana, Slovenia, 9 October