List

ACE PROGRAMI – V+ DİLİ ve ROBOT PROGRAMLAMA 2

V+ Dilinde kullanılan komutlar nelerdir ? ACE programı nasıl kullanılır ? Robot hangi komutlarla hareket ettirilir ? Komutlar arasındaki farklar nelerdir ? Bu ve benzeri sorulara cevap aradığımız ACE Programı – V+ Dili ve Robot Programlama adlı yazı dizisinin ikinci yazısını sizlerle paylaşıyoruz.

V+ DİLİ İLE ROBOT PROGRAMLAMA DERSLERİ 2

MOVE /MOVES Komutları :

Move : Bu komut ile robot , direk olarak değil , açılı , daha rahat ve salınım yaparak istenilen noktaya gider.

Moves : Direk , 90 derece olarak istenilen noktaya gider.

Break : İlgili hareket tamamlandığında , çalışmayı durdurması ve döngüyü kırması için kullanılır.

CPOFF : Sıradaki hareket komutunun robot tarafından tamamlanmasını durdurur.

Eğer always parametresi tanımlandıysa yalnızca sıradaki robot etkilenecektir.Break komutunun aksine ileri hareket çalışmasını durdurmaz.

CPOFF ALWAYS* :

Sıralı robot hareket komutlarını sürekli olarak inaktif eder ancak ileri hareket çalışmasını durdurmaz.

Sürekli Yol OFF :

CPOFF ALWAYS

MOVE pstart

MOVE p1

SIGNAL 97

MOVE p2

SIGNAL -97

MOVE p3

MOVE pstart

Not : CPON ve CPON ALWAYS*’te sürekli yol işlemini başlatırlar.

CLOSEI : Mevcut sürekli yol hareketinde BREAK işleminne sebep olur.Ve hareket bitiminde kapanma yönüne gider.

OPENI : Mevcut sürekli yol hareketinde BREAK işlemlerine sebep olur ve hareket bitiminde açılma yönüne gider.

DELAY : Bu komutla verilen süre kadar bu komut geldiğinde robot bekler.

Robotu duraklatmak için kullanılabilecek diğer komutlar ise ; DETACH , HALT , PAUSE , RELAX , TOOL’dur.

BREAK İle ilgili örnek ;

MOVE p1

BREAK (p1 hedefe gidene kadar ileri hareketi durdur)

SIGNAL 2001 (p1’e gelince 2001 sinyali TRUE olur)

MOVE p2 (sonra p2’ye git)

  1. yol

MOVE p1

SIGNAL 2001 (Hareket başlar başlamaz 2001 sinyali TRUE olur)

MOVE p2

CPOFF ;

CPOFF ALWAYS

MOVE p1

SIGNAL 2001

MOVE p2

İkiside (move p1 , signal 2001) aynı anda çalışır fakat p1’e varana kadar p2 başlamaz.

Grafiksel işlemler ve gösterim adına ;

CPOFF ALWAYS

Trace.start = TRUE

MOVES pos2b

Trace.sig1 = TRUE

MOVES pos3b

Trace.sig2 = TRUE

BREAK

Trace.start = FALSE

Kol Konfigürasyonları : Dirsekler ya sağ kol gibi ya da sol kol gibi hareket ederler.

CONFIG (select) : Robotun geometrik konfigürasyonuna geri dönmesini sağlar.

CONFIG (….)

0 ise ; Anlık pozisyonundan robot konfigürasyonuna geri dön

1 ise ; Anlık hareketin sonunda robot konfigürasyonuna geri dön

2 ise ; Sıradaki hareketin sonunda robot konfigürasyonuna geri dön

APPRO Komutu : APPRO location , distance ;

Robotu Z ekseni kadar yukarıda , direk olmayacak şekilde , rahat ve salınımlı şekilde sabit hızda hareket ettirir.

APPROS Komutu ise ; Robotu Z ekseni kadar yukarıda , direk olarak , rahat ve salınımlı şekilde sabit hızda hareket ettirir.

DEPART distance ; Robot Z eksenindeki d kadar mesafeyi bozmayacak şekilde ilgili mesafe kadar direk olmayacak şekilde hareket eder.

DEPARTS distance ; Robot Z eksenindeki d kadar mesafeyi bozmayacak şekilde ilgili mesafe kadar direk olacak şekilde hareket eder.

Pick : Nesnelerin alındığı konum

Place : Alınan nesnelerin bırakıldığı konum

D = Çarpışma veya diğer kazaların olmaması adına güvenli mesafedir.

Not : APPRO robotu kesin pozisyona götürür.

DEPARTS robotu kesin noktaya göre bağıl bir mesafe kadar uzağa taşır.

Örnek :

APPRO pick , d

MOVES pick

BREAK (closeı kısmı başlangıç)

CALL closeGripper

WAIT.EVENT , hand.time

DEPARTS d (closeı bitiş)

APPRO place , d

MOVES place

BREAK (openı başlangıç)

CALL openGripper

WAIT.EVENT , hand.time

DEPARTS d (openı bitiş)

DRIVE joint , value , speed ; Sabit hızda ve belirli bir açı değeri ile robotu yalnızca spesifik Joint noktasına götür.

JMOVE joint1, joint2 , joint3 , joint4 , joint5 , joint6 ; Sabit hızda ve belirli bir spesifik açı değeri ile her bir ekseni hareket ettirir.Eğer spesifik olarak bir joint istemiyorsanız , joint yerlerine boşluk bırakın.Eğer 0 yazarsanız 0 derecesine(noktasına) gidecektir.

MOVEC (angle , turn)* Location1 , Location2 ;

Ör . MOVEC (angle , turn)* Center ;

Angle : Arc açısının derecesidir.(-360 / 360)

Turn : Null ya da 0’ın anlamı sabit pozisyon , 1’in anlamı ise Arc ile dönüştür.

ACE programından bir program eklemek için “V+ User Modules” kısmına sağ tıklayarak “Add New V+ Program” diyerek ilerleyiniz ve isim veriniz.Sonra karşınıza yorum şeklinde açıklamalar olan , girişler ve çıkışların olduğu bir sayfa gelecektir.Böylece programı eklemiş olursunuz.

Not :Yorum eklemek ya da yorum kullanmak için ‘;’ noktalı virgül kullanmalıyız.

Not : Sürükle bırak yöntemi ile çalıştırmak istediğimiz programı task’ların içerisine atmalıyız.

Not : Programı debug etmek için programa sağ tıklayıp “debug on task” denilerek kırılma noktasına programı götürebilirsiniz.(Eğer varsa)Gittiği yerde kırmızı renkle işaretlenecektir.

Eğer programda bir hata meydana gelirse program üzerinde kırmızı çizgi olarak orası gösterilir.Gidip hatayı burada görebilir ya da nerde kaldığını anlayabilirsiniz.

V+ Değişken Tipleri :

Reals (-3.4 x 10^38 / +3.4 x 10 ^ 38)

Doubles (-1.8 x 10^307 / +1.8 x 10^307)

Integer ifadeleri real olarak tanımlayabiliriz.

eV+ özel lojik data tiplerine sahip değildir.eV+ 0’ı false olarak kabul eder.Diğer tüm değerleri ise TRUE olarak kabul eder.

Örnek :

Real_var =1365

Start_program = TRUE

Stop_program = FALSE

Program çalıştıktan sonra eV+ bu değerleri değiştirir ve start program = -1 , stop_program =0 olarak kabul eder.

Prefix = yok = -193 = decimal

Prefix = ^B = ^B1001 = Binary

Prefix = ^ = ^346 = Octal

Prefix = ^H = ^H23FF = Hexadecimal

Prefix = ^D =^D20000000= double-precision

Nümerik Değer Fonksiyonları :

ABS = Mutlak değeri bul

ATAN2 = Value_1/Value_2’ye eşit olan trigonometrik tanjant açısını bul

BCD = Gerçek değeri Binary Coded Decimal’e çevir

COS = Verilen açının trigonometrik olarak cosinüsünü bul

DCB = BCD digitlerini integer değer dönüştür.

FRACT = ilgili değerleri kesirli parçalara ayır

INT = Değeri integer olarak döndür.

MAX  =Liste içerisindeki değerlerden maksimum olanını bul

MIN = Liste içerisindeki değerlerden minimum olanını bul

OUTSIDE = Belirli alan dışında olup olmadığının kontrol edilmesinde kullanılır.

PI = Pi değerini döndürür.

RANDOM = Rastgele numara döndürür.

SIN = Açının sinüsünü alır.

SQR = Parametrenin karesini döndürür.

SQRT = Parametrenin karekökünü döndür.

Matematiksel Operatörler :

Toplama (+) , Çıkarma (-) , Çarpma (*), Bölme (/) , Mod (mod alma)

Konumlar iki yolla belirlenebilir.

Transformations (dönüşümler) ve Precision Point (Kesin Nokta)

Transformasyonlar 6 komponent için özel tanımlı Kartezyen konumu ve ayarlamasıdır.

Precision Point ; her bir joint için kesin nokta belirlenmesidir.

Transformasyon noktaları Locations kısmı altındadır.Precision Point kısmıda precision points klasörü altındadır.

Örnek :

SET location.pos = TRANS (x,y,z , yaw , pitch , roll)

SET #precision.point = #PPOINT (j1_value , j2_value,j3_value , j4_value , j5_value , j6_value)

SET pos.1 = TRANS (250 , -300 , 175 , 0 , 180 , -70)

SET #start.pos = #PPOINT (0,-90 , 180 , 0 , 90 , 0)

Not : Lokasyonlar set komutu ile tanımlanır ve precision pointler ‘#’ işareti ile başlar.

Tanımlanan lokasyonlar ‘Here’ komutu ile kaydedilebilir.

HERE current.pos (şimdiki transformasyon konumunu current.pos’a kaydet)

HERE #current.p.point (şimdiki eksen değerlerini #current.p.point’e kaydet)

Fonksiyonlar :

HERE : Transformasyon içindeki o anki pozisyona dön.

DEST : Interruptlarda çokça kullanılır ve robotu belirsiz(rastgele) bir yere götürür.

#PHERE : Her bir joint için şimdiki pozisyona dön

#PDEST : Her bir joint için hareketin sonunda igili pozisyona dön.

1 ) DECOMPOSE varname[index] = Location -> Decompose edilmiş değeri index’ten index+5’e kadar Real Array olarak yaz.

Örnek : DECOMPOSE val [0] = pos_1

Sonuç : Val [0] = 250 , Val [1] = -300 , Val [2] = 175 , Val [3] = 0 , Val [4] = 180 , Val [5] = -70

2) DECOMPOSE varname [index] = #precisionpoint -> Burada da precision(kesin) değerleri decomposed edilmiş şekilde yazar.

Örnek : DECOMPOSE Val[1] = #start.pos

Val [1] = 0 , Val [2] = -90 , Val [3] = 180 , Val [4] = 0 , Val [5] = 90 , Val [6]=0

DX = Kullanılan koordinat sistemindeki lokasyondan X’i alır.

DY = Kullanılan koordinat sistemindeki lokasyondan Y’yi alır.

DZ = Kullanılan koordinat sistemindeki lokasyondan Z’yi alır.

Örnek :

Curr.pos.x = DX (Here)

Curr.pos.y = DY (Here)

Curr.pos.z = DZ (Here)

DISTANCE (loc1 , loc2) = milimetre olarak konum1 ile konum2 arasındaki mesafeyi belirler.

Örnek : traj.distance = DISTANCE (HERE , DEST)

Stringler ;

Dolar işareti ($) ile kullanılırlar.Maksimum 128 karakter içerir.

$string.var = “128 karakter maksimum”

ACE PROGRAMI – V+ DİLİ VE ROBOT PROGRAMLAMA 2 SONUÇ :

Bugünki yazımızda ACE Programı – V+ Dili ve Robot Programlama 2 adlı yazımızı sizlerle paylaştık.Omron ADEPT robotlara dair ve hatta robotik mantığını kavramak adına komutları ve işleyişi sizlerle paylaşmaya devam ediyoruz.

İyi Çalışmalar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.