Skip to main content

ACE Programı & V+ Dili & Robot Programlama 4

ACE PROGRAMI & V+ DİLİ & ROBOT PROGRAMLAMA 4

V+ Dilinde kullanılan komutlar nelerdir ? ACE programı nasıl kullanılır ? Robot ile motion kontroller nasıl yapılır ? Robotlar nasıl programlanır ? Bu ve benzeri sorulara cevap aradığımız ACE programı & V+ dili & Robot programlama yazı dizisinin 4. yazısı ile karşınızdayız.

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

SCALE Komutu :

SCALE (transformation BY scale_factor)

Bu işlemden sonra transformation değerleri skale edilmiş değerlere eşit olur.

Ör. SET pos1 = TRANS (250 , -120, 300 , 0, 180 , 270)

SET pos2 = SCALE (pos1 by 0.5)

Pos2 sonuç : (125 , -60 ,150 , 0 , 180 , 270)

Yapısal Transformasyonlar :

Palet(Tepsi ya da mekanik parça) yapısı üzerinde öğretilmiş 3 ve ya 4 pozisyon bulunmaktadır.

Ör. SET pal = FRAME (pal.origin , pal.x , pal.y , pal.origin)

Pal.origin = Palet yapısının orjin noktasıdır. (Not : Orjin koordinat eksenlerinin kesim ya da başlangıç noktası olarak ifade edilir.)

Pal.x = Palet üzerinde x yönündeki konumdur ve genel olarak x eksenindeki paletin son parçasıdır.

Pal.y = Paletin xy düzlemindeki konumudur ve genel olarak y ekseninin son parçasıdır.

3 nokta tanımlama ;

SET pal = FRAME (pal.origin , pal.x , pal.y , pal.origin)

4 nokta tanımlama ;

SET pal = FRAME (pal.origin1 , pal.x , pal.y , pal.origin2)

Offset Hesaplamaları & Distance() Komutu :

nbr.parts.x = 4

nbr.parts.y=5

offset.x = DISTANCE (pal.origin, pal.x)(nbr.parts.x-1)

offset.y=DISTANCE (pal.origin , pal.y)(nbr.parts.y-1)

Hedef Konum Ayarları :

SET pal.pick = pal: TRANS (i * offset.x , j*offset.y)

Dönüştürülmüş (pal) ve (pal.origin) aynı noktalardır.

Pal.origin = Öğretilen noktadır.

Pal = Hesaplanmış yapı tutumudur.

Pal.dif = pal.origin – pal

V+ dilinde SET pal.dif = INVERSE (pal) : pal.origin // Bu transformasyon  pallet(pal)’in (pal.origin) parçasına göre tanımlamalar yapar.

Doğru konumlandırma ile hedef konum ; SET pal.pick = pal : TRANS(i *offset.x , j*offset.y):pal.dif

Not : Büyük paket yapılar için bu yapıları 4 çerçeveye ayırıp tanımlamalar yapabilirsiniz.

ACE Program Sihirbazı Kullanmak :

V+ Kullanıcı Modülleri ; İlk programı açtığımızda ve yeni bir uygulama çalıştırdığımızda otomatik olarak birtakım modül ve programlar karşımıza çıkacaktır.

Çıkacak olan modüllere kısaca göz atalım ;

a.error : Hataların yönetimi için gerekli programların set edildiği modül.

a.robot : Robot uygulaması için önemli , spesifik programları set eder.

Rob.main () : Programların organize edildiği modüldür.

Rob.pick () : Parçaları toplayan , düzelten robot programıdır.

Rob.place () : Toplanan , düzenlenen parçaları yerleştiren robot programlarıdır.

Place.loc : Alınan parçanın yerleştirileceği konumdur.

Pick.loc : Parçanın alınacağı konumdur.

Err.reacte () : Maksimum öncelikli interrupt programıdır ve hata meydana gelir gelmez çağrılır.

Err.reacti () : Hata durumundan sonra çağrılan interrupt programıdır.

Err.report (code , $text) : err.reacti() tarafından çağırılan rutin prosedürdür.

Err.reacte () : Maksimum önceliğe sahip interrupt programıdır ve sistem hata seviyesine göre err.reacti() interruptını tetikler.

Err.report () : Hata meydana geldiğinde ilgili bilgilendirme işlemlerini yapan kısım burasıdır.

Err.reacti () : err.reacte() tarafından tetiklenir ve hata meydana geldiğinde bu hataları göstermeye izin verir.Çoğu hata mesajı “……….. this error we have not yet treated” şeklinde karşımıza gelir.Burada ‘-935’   kodu ile yeni hata kodları eklemek mümkündür.err.report(code , $text)’i herhangi bir durumda çağırarak hatanın tanımını monitör ekranından görebilirsiniz.

Ör.

CASE code OF

VALUE -908 , -909 (E-stop ya da ön panel acil stop butonu)

CALL err.report (code, $text)

WHILE (STATE(4) BAND ^B100 == 4 ) DO

WAIT

TYPE “Please release all emergency Stop circuits” , /u1

END

VALUE  -604 , -906 , -908 , -909 , -910 , -911 , -912 , -921 , -922 , -929 : (farklı kaynak acil stoplar)

CALL err.report (code, $text)

WAIT.EVENT, 0.25

VALUE -616 :

Move.to.dest = FALSE

VALUE -935 :

$text = “it is not possible …..”

CALL err.report (code , $text)

WAIT.EVENT , 0.25

ANY

CALL err.report (code, $text)

TYPE “………. This error we have not yet treated”

CALL err.log (“general fault” , FALSE)

CALL err.log (“(so far there is no ….)”, FALSE)

HALT

END

Tool(Araç) Transformasyonları :

Ör. SET gripper.1 = TRANS (120 , 0 , 50 , 0, 0,0)

TOOL gripper.1

Bu ifade tool için koordinat sisteminde ; x ekseninde 120mm’ye , z ekseninde 50 mm’ye set edilir.

Ör.SET save.tool = TOOL (Son tool değer işlemini kaydeder.)

Ör.2 Tool arasındaki pick sırası değişimi

.PROGRAM toolchange()

SET tool.tip.1 = TRANS (-35 , 70 , 120)

SET tool.tip.2 = TRANS (35,70,120)

TOOL tool.tip.1

APPROS pick,50

MOVES pick

BREAK

DEPARTS 50

TOOL tool.tip.2

APPROS pick , 50

MOVES pick

BREAK

DEPART 50

.END

Not : Program içerisinden konumunu öğretebiliriz.Ardından “Tip Offset” içerisindeki ifadelere göre

SET my.tool = TRANS (-18.584 , 33.438, 114.11 , 0 , 0 ,0)

TOOL my.tool

XY Offset Hesaplama :Delta ve Scara robotlar için kullanılır.XY offsetleri hesaplanır , Z offseti ise manual olarak tanımlanır.

XYZ Offset Hesaplama: Yalnızca 6 eksenli robotlara uygulanabilirdir.XY  ve Z offsetleri hesaplanır.

Dijital Çıkışlar :

1-12 : Smartcontroller için lokal sinyallerdir.Konnektör XDIO’dur.

33-992 : XIO konnektör robot, 12 Giriş /8 Çıkış ve opsiyonel modülleri barındırır.

Dijital Girişler :

1001-1012 = Smartcontroller için lokal sinyallerdir.XDIO konnektör kullanılır.

1033 – 1992 = XIO konnektör robot ,12 Giriş/8 Çıkış ve opsiyonel modülleri barındırır.

Opsiyonel Modüller :1-8 arasındadır ve maksimum 8 blok opsiyonel modül eklenebilir.

SDIO opsiyonel modüllerin 32 Giriş/32 Çıkışı vardır.

Soft Sinyaller : 2001-2992 = Dahili task haberleşmeleri ve interruptions için kullanılan tipik sinyallerdir.

Robot Sinyalleri : 3001-3004 =Bu dijital çıkışlar yalnızca kobra robotlarına bağlı araçlar için kullanılır.

Bağlantılar  :

XIO Konnektör : 1218

12 Giriş Sinyali : 1097 – 1105

8 Çıkış Sinyali : 0097 – 0104

Opsiyonel SDIO#1 :

32 giriş sinyali = 1033 – 1064

32 çıkış sinyali = 0033 – 0064

Opsiyonel SmartController EX :

XDIO Konnektör ;

12 Giriş sinyali = 1001 – 1012

8 Çıkış sinyali = 0001 – 0008

IO Blok #1

8 Giriş sinyali = 1113 – 1120

8 Çıkış sinyali = 0105 – 0112

Sinyalleri Yazmak İçin Kullanılan Komutlar :

Tek Sinyal için ;

SIGNAL signal_number

signal_number çıkış sinyali aralığında bir değerdir ve pozitif bir komutsa eğer ON ; negatif ise OFF yapar.Yani bu sinyal göndermek içindir.Birden fazla sinyal tanımlamak için aynı anda “, ” virgül ile ayırmalıyız.

Ör.

SIGNAL -33 , 34 ,35

output  33 OFF

output 34 ON

output 35 ON

Grup Sinyali Olarak ;

BITS start_signal , number of signals = value (in binary code)

Not : Başlangıç sinyalinin en düşükten başladığına dikkat ediniz.

Ör.

BITS 33 , 13 = 7355

^B7355 = 1110010111011 (En sağdaki ‘1’ sinyal 33’tür.En sağdaki ise sinyal 45)

RESET :

Dijital çıkışlar ve robot sinyalleri için ; tüm dijital çıkışları(1-992) ve robot sinyallerini(3001-3004) kapar.

Sinyalleri Okuma Komutları :

SIG (signal_number)

Eğer signal_number durumu ON ise TRUE , off ise FALSE’tur.

SIG (sign1 , sign2 , sign3) => Bu durumda eğer sig1 , sig2 , sig3 On ise TRUE döndürür.

Ör.

SIG (-1001 ,1002 ,1003)

input 1001 = off

input 1002 = on

input 1003 = on ise ; Bu ifade TRUE döndürür.(-1001’e dikkat edin o sebeple off)

BITS (start_signal , number_of_signals)

Binary kodla değer döndürür.Başlangıç sinyalinin en düşük bit olduğuna dikkat ediniz.

BITS (1001,5)

^B29 = 11101 (En sağdaki 1 sinyal 1001 ,en soldaki 1 ise sinyal 1005’tir.)

input 1005 = on

input 1004 = on

input 1003 = on

input 1002 = off

input 1001 = on ise ^B(11101) = 29 döndürür.

Ör.

vac.on = 97  // Vakum start on

vac.off = -97 // vakum reset

int.seq = 2001 // soft sinyal kesme

V+ Interrupts :

REACT signal , program , priority

İlgili dijital  sinyalin sürekli izlenmesini sağlar.Otomatik olarak sinyal geçişi tamamen tamamlandığında robotun hareketini durdurur.

Signal = izleme sinyalidir.(1001-1012 ya da 2001-2008 arası.)

Program = Flank (düzgün sinyal geçişi) sonrasında çalışacak program

Priority = Opsiyonel değer(1-127).Varsayılan değer 1’dir.

REACTI signal , program , priority

İlgili dijital sinyalin izlenmesini sağlar.Eğer sinyal geçişleri düzenli olarak gerçekleşirse ve subroutine tetiklendiğinde otomatik olarak robot hareketini durdurur.

Signal = izleme sinyalidir.(1001 – 1012 ya da 2001 – 2008)

Program = Flank sinyalinden sonra çalışacak programdır.

Priority  =opsiyonel değerdir (1-127).Varsayılan değer 1’dir.

Ör.REACTI 2001 , interrupt , 1

IGNORE signal :

Sinyal etkilerini dikkate alma komutudur.

LOCK priority :

Şimdiki programın önceliğini değiştir.Genelde 0 olarak kullanılır.

V+ Dili Hata Yönetimi :

REACTE program_name

Çalıştırma hatası ardından maksimum öncelikli olarak 254 ve program_name çağrılır.Genelde isim olarak hep err.reacte kullanılır.

Interrupt programlar için (REACTI)’yi  Error.reacte içerisinde farklı hatalar içinde kullanabiliriz.

ERROR (Source , select )

REACTE reaksiyonuna sebep olan ya da program çalışmasını durduran son hatanın numarasını döndürür.

err.code = ERROR (-1 , 0)  -> Son hatanın hata numarası

err.variable = ERROR (-1,1) -> Hata mesajının değişken kısmı

err.robot  = ERROR (-1,3) -> Robot numarasıdır.

$ERROR (err.code) = Verilen hata kodu ile ilgili hata mesajını döndürür.

STATE (select) = Robot sistem durumu hakkında değer üretir.

E-STOP : E-stop butonuna basılıp basılmadığını kontrol eden komuttur.

ENABLE switch1 , ….. , switchn  : Bir ya da daha fazla sistem kontrol anahtarını aktif et.

ATTACH (lun , mode) $device -> uygulama programı için aygıt kullanımını uygun hale getirir.

Lun = Ekli aygıt için lojik birim numarasıdır.

Mode = 3 bits binary rakamlardır.000’dan itibaren 111’e

$device  =Eklenecek olan aygıta eşit olan sabit , değişken ya da ifade stringidir.

IOSTAT (lun,mode) = Lojik birimler ile ilgili aygıtlar için son giriş/çıkış işlemleri adına durum bilgisini döndürür.

Lun = Ekli aygıt ile ilişkili mantıksal birim numarasıdır.

Mode = ilgili mantıksal birimler için giriş/çıkış durumlarını ifade eder.

Otostart : Smartcontroller ekranından -> save configuration denilerek ve Archive Workspace seçili olacak şekilde ilerlenmelidir.Configure kısmından ‘Enable Auto-start’ seçilip finish denilerek ayarlar başarılı bir şekilde kaydedilir.

File -> Save dediğimizde ‘V+ User Modules’ altında auto() adında bir dosyanın oluştuğunu göreceksiniz.

ACE Programı & V+ Dili & Robot Programlama 4 Sonuç :

Bugünki yazımızda ACE Programı & V+ Dili ve Robot Programlama 4 adlı yazıyı sizlerle paylaştık.Bu yazı dizisinin ardından genel bir toparlama ile Omron Adept Türkçe e-kitabı çıkarmak niyetindeyim.Bu seri bizlere başlangıç anlamında çok şey katacaktır.

İyi çalışmalar

 

 

 

 

2 thoughts to “ACE Programı & V+ Dili & Robot Programlama 4”

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.