fanuc, PDFy
[ Pobierz całość w formacie PDF ]
PROGRAM gr411d //identyfikator programu (gr411d – nazwa programu)
var //deklaracja zmiennych
pkt0,ptk1,pkt2,pkt3,pkt4,pkt5 :position
//zmienne typu pozycja
x,y,z,w,p,r :real
//zmienne rzeczywiste
conf :string[12]
//zmienne typu string (ciąg 12 znaków)
wektor2 :vector
//zmienna typu wektor
begin
//rozpoczęcie programu
$UTOOL=$NILP
//zerowanie układu odniesienia narzędzia
$UFRAME=$NILP
//zerowanie układu odniesienia globalnego
$TERMTYPE=FINE
//określa nam sposób ruchu (fine – robot dotrze do
węzła i zatrzyma się przed wykonaniem następnego ruchu)
$MOTYPE=linear
//określenie rodzaju ruchu (linear – porusza się po
prostej między pozycjami)
UNPOS(pkt0,x,y,z,w,p,r,conf)
//rozbija zmienna pozycji i wartość każdego parametru
tej zmiennej przypisuje do takiej jaka mu podasz
pkt1=POS(x,y,z+10,w,p,r,conf)
//definiowanie pozycji
pkt1=POS(x,y+80,z,w,p,r,conf)
pkt2=POS(x+80,y+80,z,w,p,r,conf)
wektor=VEC(40,-40,0)
//definiowanie wektorów
wektor2=VEC(40,40,0)
pkt3=POS(x+200,y+40,z,w,p,r,conf)
//definiowanie punktów
pkt4=POS(x+160,y,z,w,p,r,conf)
WITH $MOTYPE=join $speed 70 MOVE TO pkt5 //ruch do pozycji 5 z chwilowym typem
join, czyli optymalnym torem, oraz chwilową prędkością 70
MOVE TO PKT0
//ruch do pozycji 0 z prędkością jak zdefiniowaliśmy
globalnie czyli 50 itp
MOVE TO pkt1
MOVE TO pkt2
MOVE RELATIVE wektor
MOVE RELATIVE wektor2
WITH $MOTYPE=circular MOVE TO pkt4 VIA pkt3
MOVE TO pkt0
MOVE TO pkt5
end gr411d
//zakończenie programu
wektor :vector
$SPEED=50
//ustalenie prędkości 50 m/s
DELAY 100
// opóźnienie chyba w ms
open hand 1
// włączenie (otwarcie) chwytaka
close hand 1
//wyłaczenie (zamknięcie) chwytaka
$deceltol
//tolerancję zwolnienia dla segmentu z zakresu 1-99
ble=0
skok::
move to p1
move to p2
move to p3
//pętla programu, wszystkie move będą wykonywane
move to p5
//”if” musi być zakończony „end if”
move to p6
ble=ble+1
if ble<3 then go to skok
end if
PROGRAM SCIEZKAJ
//nazwa programu
VAR
//deklaracja zmiennych
i, czas, x, y, z, w, p, r :INTEGER
czas_str :STRING[20]
CONF :STRING[12]
pstart :POSITION
sciezka :PATH
//zmienna typu path (ścieżkę)
BEGIN
$UTOOL=$NILP
$UFRAME=$NILP
$MOTYPE=joint
$TERMTYPE=FINE
$SPEED=500
pstart=CURPOS //przypisanie aktualnej pozycji jako startowej
OPEN FILE F1('AP,UF','log24a1.txt') //otwarcie pliku log24a1, w którym znajdują się czasy
(AP – zapis do końca pliku, uf - string)
UNPOS(pstart,x,y,z,w,p,r,CONF)
WRITE('Pozycja wyjsciowa x:',x,' y:',y,' z:',z,' w:',w,' p:',p,' r:',r,CR)
GETTIME(czas)
//pobiera aktyalny czas z pliku F1 i przypisuje do
zmiennej 'czas w pętli”
TIME2STR(czas,czas_str)
//konwertuje czas na string
move to p4
// jeżeli tylko zmienna „ble” będzie mniejsza do 3
WRITE F1 ('czas: ',czas_str,CR) //zapisuje czas przekonwenterowany w pliku .txt
WRITE F1 ('pozycja wyjsciowa: ',pstart,CR)
//zapisuje pozycje wyjściowe
FOR i=1 TO PATHLEN(sciezka) DO
MOVE TO sciezka[i],
WHEN TIME 1000 BEFORE NODE[2] DO DOUT[30]=true
WHEN TIME 1000 AFTER NODE[5] DO DOUT[30]=false
ENDMOVE
FOR I=1 TO PATHLEN(SCIEZKA) DO
MOVE TO SCIEZKA[I]
GETTIME (CZAS_W_PETLI)
TIME2STR (CZAS_W_PETLI,CZAS_STR)
WRITE F1('CZAS W PUNKCIE',I,'CZAS_STR,CR)
//wyświeltenie na ekranie
ENDFOR
ENDFOR
CLOSE FILE F1
END SCIEZKAJ
Opis pętli :
od i =1 do i = dlugosc sciezki (ilosc punktow sciezki)
pobierz czas
zrób z czasu stringa
zapisz do pliku
wyświetl na ekrenie
koniec pętli
WRITE ('CZAS W PUNKCIE',I,'CZAS_STR,CR)
//zapis do pliku
[ Pobierz całość w formacie PDF ]