1. YLEISTÄ

Baps-kääntäjä generoi seuraavat tiedostot lähdetiedoston (qll) koodista:

ird-tiedosto:
Tiedosto sisältää ohjelmakoodin, jonka rho3-ohjain suorittaa. Lisäksi muistia on varattu ohjelmassa käytetyille muuttujille. Tiedosto generoituu vain, kun ohjelma on käännetty ilman virheitä!

pkt-tiedosto:
Muisti varattu piste-muuttujille.

sym-tiedosto:
Tiedosto sisältää informaatiota ohjelmassa käytetyistä muuttujanimistä ja vaaditaan aina Babs2 ohjelman testauksessa.

err-tiedosto:
Sisältää virhelistan ohjelmaa käännettäessä.

2. OHJELMAN RAKENNE

2.1 Pääohjelma

Jokainen pääohjelma sisältää
- alustuksen
- ohjelmalistauksen
- aliohjelmien esittelyn

2.1.1 Ohjelman alustus

- ohjelman nimi (oltava sama kuin tiedostojen)
- ulkoisten pääohjelmien esittely
- tulo- ja lähtökanavien esittely
- muuttujien nimeäminen

Esim:
PROGRAM esimerkki ;ohjelman nimi
EXTERNAL: apuohjelma ; toisen ohjelman esittely
INPUT: 1=voima ;I/O-kanavien alustus
OUTPUT: 2= imu
REAL: paino, pituus ;tyyppien esittely
POINT: p1,p2

2.1.2 Ohjelmalistaus

- liikekäskyt
- laskurit
- pää- ja aliohjelmien kutsuminen
- ....

Liikkeiden ohjaus tapahtuu lähinnä MOVE- käskyllä, jota tarkentamalla saadaan liike halutun muotoiseksi.

Erilaisia MOVE-käskyjä:

- suunnilleen pisteiden p1 ja p2 kautta pisteeseen p3
MOVE VIA p1,p2,p3

- tarkasti pisteiden p1 ja p2 kautta pisteeseen p3
MOVE TO p1,p2,p3

- suunnilleen pisteen p1 kautta tarkasti pisteeseen p2 ja suoraan pisteeseen p3
MOVE VIA p1 TO p2,p3
- siirto suhteellisesti koordinaattien mukaan

Esim.
POINT: p1, p2 ;pisteiden esittely
MOVE TO p1 ;liiku pisteeseen p1
WAIT 2 ; odota 2 s.
MOVE TO p2
WAIT 3

Esim.
kohde=(10,10) ;pisteen määrittely x-y -koordinaatein
MOVE kohde ; liiku pisteeseen kohde

Esim.
Kohde=(10,10)
MOVE_REL kohde

Ohjelma alkaa Begin-käskyllä ja päättyy Program_end-komentoon.

Esim.
PROGRAM esimerkki
EXTERNAL: apu1, apu2
.
BEGIN
.
apu1 ;ohjelman apu1 kutsu
.
apu2 ;ohjelman apu2 kutsu
.
.PROGRAM_END

Aliohjelmat esitellään pääohjelman, HALT taiPROGRAM_END -käskyjen jälkeen. Ja sitä kutsutaan pääohjelmassa ulkoisten pääohjelmien tapaan.

Esim.
.
.
HALT
PROGRAM_END
SUBROUTINE aliohjelma
BEGIN ;aliohjelman aloitus
.
.
RETURN ;paluu pääohjelmaan
SUB_END ;aliohjelman loppu

Laskuria voidaan käyttää esim. tietyn käskylistauksen toistamiseen halutun määrän verran. Käskynä käytetään RPT x TIMES funktiota.

Esim.
RPT 2 TIMES
.
.
RPT 3 TIMES
.
RPT_END
.
.
RPT_END

3. INTERPOLAATIO

Ohjaimen on aina tiedettävä, mitä polkua robotin on saavutettava seuraava asema. Tämän polun määrittämiseksi on käytössä kolme muotoa:

LINEAR (suora viiva avaruudessa)
CIRCULAR(ympyrämäinen polku avaruudessa)
PTP (synkroninen* polku pisteestä pisteeseen)

*Synkroninen = kaikki akselit saavuttavat ohjelmoidun kohdepisteensä samaan aikaaan
Ohjain valitsee automaattisestiPTP-muodon, jos interpolaatiota ei ole määritelty.
Esimerkkejä:

- suoraan pisteeseen p1
MOVE LINEAR TO p1
- suoraan, suunnilleen pisteen p1 kautta tarkasti pisteeseen p2
MOVE_REL LINEAR APPROX p1 EXACT p2
- ympyrämäisesti pisteen p1 kautta pisteeseen p2
MOVE CIRCULAR TO (p1,p2)
- "omaa" reittiä pisteeseen p1
MOVE PTP TO p1

3.1 Globaalinen interpolaatio

Jos samaa interpolointimuotoa käytetään useammassa liikekäskyssä, voidaan se määritellä myös globaalisesti.

Esim.
;;INT=LINEAR
MOVE p1
MOVE_REL p2
MOVE CIRCULAR (p3,p4)

4. NOPEUS

Robotin liikkeiden nopeutta voidaan ohjata eri tavoin.

- prosentuaalinen osuus maksiminopeudesta.
V_PTP=80% tai V_PTP=0,8
- globaalinen nopeuden määrittely LINEAR jaCIRCULAR interpolaatioilla
V=750 ; nopeus [mm/s]

Esim.
V=700
MOVE LINEAR p1
MOVE CIRCULAR p2
V=300
MOVE LINEAR p3
- nopeus voidaan määritellä myös vain yhden liikekäskyn ajaksi
MOVE_REL LINEAR WITH V=500 EXACT p1

5. KIIHTYVYYS

- kiihtyvyyden määrittely vain LINEAR ja CIRCULARinterpolaatioilla
A=30, kiihtyvyys [mm/s2]

Esim.
A=30
V=100
MOVE LINEAR p1
MOVE CIRCULAR p2
A=15
MOVE LINEAR p3

6. NOPEUDEN/KIIHTYVYYDEN OHJAAMINEN

Jos useampi liikekäsky halutaan tehdä niin, että nopeus pysyy vakiona ilman kiihtyvyyttä, voidaan käskylistaan kirjoittaaPROGR_SLOPE ja kun halutaan palata rivi kerralla tapahtuvaan tilaan, kirjoitetaan BLOCK_SLOPE.

Esim.
PROGRAM ESIMERKKI
Begin
;;INT LINEAR
V=700, A=1000
;Koska PROGR_SLOPE ei vielä vaikuta, jokaisen rivin käskyt toteutetan erikseen ja nopeus ja kiihtyvyys vaihtelee
MOVE VIA alkup
MOVE VIA keskip
MOVE VIA loppup

;Kiihtyvyys pysyy samassa 1000 mm/s2 arvossa
PROGR_SLOPE
MOVE VIA alkup
MOVE VIA keskip
MOVE VIA loppup
MOVE VIA p1
MOVE VIA p2
MOVE VIA alkup
MOVE VIA keskip
MOVE VIA loppup
;käsky palauttaa kiihtyvyydet taas vaikuttamaan joka riviin erikseen
BLOCK_SLOPE
HALT
PROGRAM_END

7. AIKA

- Asettamalla ajalle T jokin arvo, voidaan esim. yksi liike määrätä kestämään
tietyn ajan (0,5...32 000s)

MOVE_REL LINEAR WITH T=8 EXACT p1

8. MUITA KOMENTOJA

WAIT X :odota x sekuntia
WAIT UNTIL ; ( =, <>, <=, =>, <, >)
PAUSE :keskeyttää ohjelman
HALT ;pysäyttää pääohjelman
IF...THEN...ELSE ;jos...niin...muuten
JUMP ;siirry määrättyyn kohtaan ohjelmassa

  • No labels
You must log in to comment.