Page 31 - 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. 31
.2 Razcˇlenjevanje podatkov in preverjanje zapol- Algoritem 5 Preverjanje zapolnjenost vrstice
1: if StP raznihP olj is 10 or (V pisanP odatek[0] is true
njenost vrstice
and StP raznihP olj is 9) then
Za dodajanje novega izdelka v industriji operater brez pred- 2: PraznaVrstica = true;
znanja teˇzko uporablja G-kodo razliˇcnih struktur. V ta na- 3: else
men smo strukturirali metodo za branje kljuˇcnih podatkov 4: PraznaVrstica = false;
s poljubnih G-kod. 5: for i ∈ 0, · · · , 6 do
6: if V pisanP odatek[i] is f alse then
Za razˇclenjevanje podatkov niza smo napisali javno metodo 7: Vrstica[i] = PredhodnaVrstica[i];
Pridobitev Vrstice, ki preverja znake vrstice do ukaza G, 8: end if
nato se preverjanje nadaljuje do parametrov X, Y , Z, A, 9: end for
B, C, I, J in K kar je prikazano v Algoritmu 3. Za vsak 10: end if
parameter se z zasebno metodo Pridobi Vrednost zapisu-
jejo znaki v medpomnilnik, dokler so enaki ˇstevilom, piki ali 3.2.3 Pretvorba krožnih izsekov G2 in G3
minusom. Metoda vrne medpomnilnik, ki se pretvori v tip
(long double), s pomoˇcjo funkcije stof (angl. string to float), Kot je bilo ˇze omenjeno, v GUI dodajamo program NC za
prikazano v Algoritmu 4. 3/5 osnega robota. Program za 5 osnega robota preprosto
vrednosti polja Vrstica priˇsteje nastavitev robota in struk-
Algoritem 3 Razˇclenjevanje vhodne G-kode turira izhodni program ACMA za dodajanje linearnih toˇck
z doloˇcenimi rotacijami. Doloˇcanje koordinat gibov v pro-
1: while T renutniZnak is not \n do gramu NC za 3 osnega robota je zahtevnejˇse, saj je potrebno
2: if T renutniZnak is G za ukaza G2 oz. G3, ki predstavljata kroˇzni izsek, doloˇciti
ustrezne interpolacije oz. odseke in jih definiranti glede na
and (N aslednjiZnak is Stevilo 0 − 3) then natanˇcnost robotovih gibov. V ta namen smo napisali za-
3: Nastavi na naslednji znak; sebni metodi G2 Algebra in G3 Algebra za izraˇcun giba G2
4: Vrstica[0] = Trenutna vrednost; ter G3.
5: UkazInicializiran = true;
6: UkazVpisan[0] = true; Za izbiranje izpisa se je uporabila izjava (switch case), ki
7: Zmanjˇsaj StPraznihPolj; glede na vhodno celo ˇstevilo G ukaza (0, 1, 2, 3) izvede do-
8: end if loˇcen primer. G0 in G1 izpiˇseta vhodne podatke v izhoden
9: if T renutniZnak is X niz z ustrezno strukturo in ukaza G2 in G3 se pred izpisom
pretvorita v ustrezne translacijske gibe.
and N aslednjiznak is Stevilo
and U kazV pisan[0] is true Za laˇzjo predstavo smo pretvorbo G2 in G3 kroˇznega giba
and U kazInicializiran is true then predstavili z realnim primerom, prikazanim na Sliki 8 in
10: Nastavi na naslednji znak; Sliko 9.
11: Vrstica[1] = Pridobi Vrednost();
12: UkazVpisan[1] = true; N0 G1 X0 Y0
13: Zmanjˇsaj StPraznihPolj; N1 G2 X5 Y5 I0 J5
14: end if N2 G3 X10 Y10 I5 J0
15: //Ponovitev za parametre Y, Z, A, B, C, I, J, K
16: Nastavi na naslednji znak; Slika 8: Primer NC programa
17: end while
Algoritem 4 Pridobivanje vrednosti parametrov
1: string Medpomnilnik;
2: while T renutniZnak is Stevilo do
3: Medpomnilnik += TrenutniZnak;
4: Nastavi na naslednji znak;
5: end while
6: Nastavi na prejˇsnji znak;
7: return stof(Medpomnilnik);
Za doloˇcanje prazne vrstice preverimo polje binarnih vredno- Slika 9: Primer G-koDE oz. NC programa kroˇznega
izseka G2 in G3
sti UkazVpisan in StPraznihPolj pridobljenih v Algoritmu 3.
Cˇ e pogoji, ki so predstavljeni v Algoritmu 5 veljajo, vrstico Izraˇcun interpolacij oz. odsekov bomo izvedli z linearno
algebro in trigonometriˇcnimi funkcijami iz ˇstudijske litera-
preskoˇcimo oz. je ne izpiˇsemo. To je prikazano v Algoritmu 1
z javno metodo Prazna Vrstica, ki vrne dvojiˇsko vrednost.
StuCoSReC Proceedings of the 2018 5th Student Computer Science Research Conference 31
Ljubljana, Slovenia, 9 October
1: if StP raznihP olj is 10 or (V pisanP odatek[0] is true
njenost vrstice
and StP raznihP olj is 9) then
Za dodajanje novega izdelka v industriji operater brez pred- 2: PraznaVrstica = true;
znanja teˇzko uporablja G-kodo razliˇcnih struktur. V ta na- 3: else
men smo strukturirali metodo za branje kljuˇcnih podatkov 4: PraznaVrstica = false;
s poljubnih G-kod. 5: for i ∈ 0, · · · , 6 do
6: if V pisanP odatek[i] is f alse then
Za razˇclenjevanje podatkov niza smo napisali javno metodo 7: Vrstica[i] = PredhodnaVrstica[i];
Pridobitev Vrstice, ki preverja znake vrstice do ukaza G, 8: end if
nato se preverjanje nadaljuje do parametrov X, Y , Z, A, 9: end for
B, C, I, J in K kar je prikazano v Algoritmu 3. Za vsak 10: end if
parameter se z zasebno metodo Pridobi Vrednost zapisu-
jejo znaki v medpomnilnik, dokler so enaki ˇstevilom, piki ali 3.2.3 Pretvorba krožnih izsekov G2 in G3
minusom. Metoda vrne medpomnilnik, ki se pretvori v tip
(long double), s pomoˇcjo funkcije stof (angl. string to float), Kot je bilo ˇze omenjeno, v GUI dodajamo program NC za
prikazano v Algoritmu 4. 3/5 osnega robota. Program za 5 osnega robota preprosto
vrednosti polja Vrstica priˇsteje nastavitev robota in struk-
Algoritem 3 Razˇclenjevanje vhodne G-kode turira izhodni program ACMA za dodajanje linearnih toˇck
z doloˇcenimi rotacijami. Doloˇcanje koordinat gibov v pro-
1: while T renutniZnak is not \n do gramu NC za 3 osnega robota je zahtevnejˇse, saj je potrebno
2: if T renutniZnak is G za ukaza G2 oz. G3, ki predstavljata kroˇzni izsek, doloˇciti
ustrezne interpolacije oz. odseke in jih definiranti glede na
and (N aslednjiZnak is Stevilo 0 − 3) then natanˇcnost robotovih gibov. V ta namen smo napisali za-
3: Nastavi na naslednji znak; sebni metodi G2 Algebra in G3 Algebra za izraˇcun giba G2
4: Vrstica[0] = Trenutna vrednost; ter G3.
5: UkazInicializiran = true;
6: UkazVpisan[0] = true; Za izbiranje izpisa se je uporabila izjava (switch case), ki
7: Zmanjˇsaj StPraznihPolj; glede na vhodno celo ˇstevilo G ukaza (0, 1, 2, 3) izvede do-
8: end if loˇcen primer. G0 in G1 izpiˇseta vhodne podatke v izhoden
9: if T renutniZnak is X niz z ustrezno strukturo in ukaza G2 in G3 se pred izpisom
pretvorita v ustrezne translacijske gibe.
and N aslednjiznak is Stevilo
and U kazV pisan[0] is true Za laˇzjo predstavo smo pretvorbo G2 in G3 kroˇznega giba
and U kazInicializiran is true then predstavili z realnim primerom, prikazanim na Sliki 8 in
10: Nastavi na naslednji znak; Sliko 9.
11: Vrstica[1] = Pridobi Vrednost();
12: UkazVpisan[1] = true; N0 G1 X0 Y0
13: Zmanjˇsaj StPraznihPolj; N1 G2 X5 Y5 I0 J5
14: end if N2 G3 X10 Y10 I5 J0
15: //Ponovitev za parametre Y, Z, A, B, C, I, J, K
16: Nastavi na naslednji znak; Slika 8: Primer NC programa
17: end while
Algoritem 4 Pridobivanje vrednosti parametrov
1: string Medpomnilnik;
2: while T renutniZnak is Stevilo do
3: Medpomnilnik += TrenutniZnak;
4: Nastavi na naslednji znak;
5: end while
6: Nastavi na prejˇsnji znak;
7: return stof(Medpomnilnik);
Za doloˇcanje prazne vrstice preverimo polje binarnih vredno- Slika 9: Primer G-koDE oz. NC programa kroˇznega
izseka G2 in G3
sti UkazVpisan in StPraznihPolj pridobljenih v Algoritmu 3.
Cˇ e pogoji, ki so predstavljeni v Algoritmu 5 veljajo, vrstico Izraˇcun interpolacij oz. odsekov bomo izvedli z linearno
algebro in trigonometriˇcnimi funkcijami iz ˇstudijske litera-
preskoˇcimo oz. je ne izpiˇsemo. To je prikazano v Algoritmu 1
z javno metodo Prazna Vrstica, ki vrne dvojiˇsko vrednost.
StuCoSReC Proceedings of the 2018 5th Student Computer Science Research Conference 31
Ljubljana, Slovenia, 9 October