Skip to main content

Omron Adept Robot Programı ve Programlama -2 | ACE ve V+ Dili Eğitimi

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.

Omron robot programlama dersleri

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.

Omron Adept Robot Programı ve Programlama | ACE ve V+ Dili Eğitimi

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

ACE programı nedir ? V+ dili nedir ? Omron Adept Robotlar nasıl programlanır ? Endüstriyel robotlar nasıl kullanılır ? Robot programlama teknikleri nedir ? Bu ve benzeri sorulara cevap arayacağımız ACE Programı – V+ Dili ve Robot Programlama ve bu yazı dizisinde Omron Adept Robotlar üzerinden birtakım bilgileri sizlere aktarmaya çalışacağız.

Endüstriyel Robotların hızla hayatımızda yer almasıyla beraber onları anlamakta bizler açısından önemli bir hale geldi.Gelin bu seride kafamızda nasıl programlandıklarını ve çalıştıklarına beraber bakalım.

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

Pozisyon ve yön belirleme adına 6 adet koordinata ihtiyacımız bulunmaktadır.

DOF : Bu ifade pozisyon ve yön belirleme için kaç tane işlem yapacağımızı ve robotta kullanacağımızı belirler.

Articulated (Eklemeli) Robotlar : 6 adet DOF sağlar bize.5 – 7 arası eksen konfigürasyonu vardır.Diğer robot tipleri ile bağlantılıdır.Hızı orta seviyededir ve tekrarlanabilirlik özelliği düşüktür.

Scara Robotlar : 4 eksenlidir ve diğer robot tipleri ile uyumludur.Hızı yüksek seviyededir ve tekrarlanabilirlik özelliği ortadır.

Paralel Robotlar : 3-4  eksenli olup üstten takmalıdırlar.Diğer robot tipleri ile uyumludur ve hızı çok yüksek seviyededir.Tekrarlanabilirlik özelliği düşüktür.

Kartezyen Robotlar : Çok eksenli robotlara eklenebilir tek eksen birimlidirler.Diğer robotlarla uyumlu olarak çalışırlar.Hızı orta seviyededir ve tekrarlanabilirliği yüksektir.

Robotlarla ilgili en düzgün ve doğru çalışma sistemi ; Yüksek doğruluk ve yüksek tekrarlanabilirlik ile ilgilidir.

Omron scara robot programlama dersleri

Referans olarak ; 10 – 30 arası değerde doğruluk  x tekrarlanabilirlik olarak düşünebiliriz.

Repeatibility ; Farklı koşullar altında tekrarlı çalışma sonucu aynı sonuçları alma oranıdır.Daha önce öğretilen pozisyon/konfigürasyona aynı şekilde dönme ile alakalıdır.

Tek Yönlü Tekrarlanabilirlik : Aynı yönden gelmede çok kez öğretilmiş noktaya sistemin geri gelebilme yeteneğidir.Boşlukları ve histeresiz hatalarını elimine eder.

Çok Yönlü Tekrarlanabilirlik ; Farklı yönlerden gelmede öğretilen pozisyona çok kez geri dönebilme yeteneğidir.

Doğruluk ; Anlık gerçek değer niteliğine  ölçüm olarak ne kadar yakın olup olmadığımızla ilgilidir.

Kararlılık ; Hareket komutu geldiğinde hareket sisteminde meydana gelen en küçük artık , ilerlemedir.

Minimum Artımlı Hareket (MIM) : Cihazın sürekli ve düzgün olarak en küçük hareket artım yeteneğidir.

SCARA Robotlar 2 konfigürasyona sahiptir.(Sağ ve Sol)

6 Eksen robotlar 8 konfigürasyona sahiptir.Sağ , sol , yukarı , aşağı , çevirmeli , çevirmesiz = 2 ^ 3 = 8

Tolerans : Son ürünlerde çoklu tolerans etkisidir.Her bir ürünün kümülatif etkisinden dolayı mekaniksel sistem üzerinde oluşan küçük değişimlerdir.

Yük : Paketlenen ürünler ve Gripper’dır.Burada üzerinde düşünülmesi gereken iki faktör ;

Kütle (ağırlık) ve Durağanlık

Bunlar sisteme nasıl etki ederler ?

F = ma , Eğer m(kütle) yükselirse a(ivme) düşer

T = Ia , Eğer I yükselirse , a düşer

Yük harekette hızlanma , yavaşlama gibi durumları etkiler.

Yüksek performans alabilmek adına ayarları yapmalıyız.

Yalnızca gripper ya da gripper + ürün gibi seçimleri iyi belirlemeliyiz.

Yükün dönen kısımlarında uygulanabilir maksimum tork ise ;

J4 platformlarında -> 1.0 kg önerilen , 3.0 kg maksimum

Sabit Platformlarda -> 1.0 kg önerilen , 8.0 kg maksimum’dur.

T = F.r (En uzak noktadan uygulanacak kuvvet  , en büyük tork’u açığa çıkarır)

Cycle(Saykıl) Süresi :

Adept tarafından 1980 yılında Adept Cycle standartı oluşturulmuştur ve robotun hızı gerçek dünya uygulamaları ile yakınlaştırılmıştır.

Not : Gerçek uygulama yapılıyorken ; ‘End Effector’ gecikmesi de hesaba katılmalıdır.

Joint (Os , Oe) : İleri Kinematik -> Kartezyen (X,Y)

Kartezyen (X,Y) : Geri kinematik -> Joint (Os, Oe)

Not : IP20 , IP40 , IP54 vb. koruma ile alakalıdır.

ePLC :

Plc’den direk kontrolüdür.Plc üzerinden robotları direk programlama ve kodlama imkanı tanır.

Plc olarak allen bradley , Siemens ve omron nj serisi plc tarafından desteklenir.

Adept ACE programı ; 1 program ve içerisinde 3 tool sağlar.ACE , PackXpert ve Adept Sight

Adept ACE ; eV+ programlama , uygulama örnekleri sihirbazı , emülasyon methodu , 3d görüntüleme , kullanıcı arayüzü ve C# scriptleri sağlar.

Adept Sight : Vision (görüntü) işleme alanında kullanılır.

Smartvision MX ; görüntü işlemcisidir.PC tabanlıdır.Robotik sistemlere kolayca entegre olabilir.4 gige POE ve 4 usb 3.0 kameraları destekler.

Besleyiciler : Sx240 , Sx340 , SxM140 , SxM100 modelleridir.RS-232 kullanılır.

EX Controller :

Üzerindeki elemanlar; Smart servo fireware , RS232 girişleri , RS422/485 girişleri, DeviceNet ,Eth10/100/1000 , BELT , 24 VDC girişi , XDIO , XUSR , XSYS , XMCP girişleridir.

Led Durumları :

OK/SF : (Yeşil = Sistem tamam) : (Kırmızı = Sistem hatalı)

HPE/ES : (Yeşil = yüksek güç aktif ) : (Kırmızı = Estop açık)

FW/HD : (Yeşil = smartservo bağlantısı) : (Kırmızı = SD karttan okuma/yazma)

Led Gösterge 1,2,3 :

0 -0-0 = 1 = hata yok

R-0-0 = 1 = Sistem saati bozuk ya da çok hızlı.Saat interruptları alınamıyor.

0-R-0 = 2 = Donanım konfigürasyon hatası

0-0-R = 4 = Hafıza test hatasıdır.Boş alan hatası

0-R-R = 6 = Yazılımsal seri I/O konfigürasyon hatası

R-R-R = 7 = Yazılım hızlanmadan donanım tarafından göstergelerin gösterilmesi

G-0-0 = 9 = PCI konfigüre edildiğinde silik gösterge

0-0-G = C =Ayıraç başlatılmamış

G-0-G = D = Bus hatası

SW1 Dip Anahtarları :

Switch 1 =

Off ise ; SD karttan IP adres konfigürasyonlarını al ve kullan

On ise ; IP adres için fabrika ayarlarını kullan.

Switch 2 =

Off ise ; Ethernet üzerinden normal bağlantı

On ise ; RS232 Term Port üzerinden haberleşme

Switch 3-4 =

İlerde kullanım adına ayrılmıştır.Off pozisyonda bırakınız.Normal işlemde , tüm switchler  off olmalıdır.

Robot Durum Göstergesi :

Off = Gösterge yok = 24VDC yok

Off = OK = Yüksek güç inaktif

Koyu sarı/Katı Renk = ON = Yüksek güç aktif

Koyu sarı/Katı Renk = Hata Kodu = Hata , durum göstergesine bakınız.

Koyu sarı , Yavaş Flaş = OK = Konfigürasyon nodu seçildi.

Koyu sarı , Hızlı Flaş = Hata Kodu = Hata var , durum göstergesine bak

Hata Kodları Gösterge Durumları :  :

OK : Hata yok

ON : Yüksek Enerji var

MA : Manuel mod

24 : 24 VDC besleme hatası

A# : Amp hatası (joint#)

B# : IO Blok Hatası (Adres#)

BA : Yedek batarya düşük enerji

AC : AC Güç hatası

D# : Çalışma saykılı aşıldı.(Joint#)

E# : Enkoder hatası (Joint#)

ES : E-stop

F# : Harici sensör duruş

FM : Güncelleme eşleşmezliği

FW : IEEE 1394 Hatası

h# : h# yüksek temp amp (joint#)

H# : Yüksek voltaj bus hatası

hV : Yüksek voltaj bus hatası

I# : Başlatma adımı (step#)

M# : Motor durdu (joint#)

NV : Kalıcı hafıza hatası

P# : Güç sistemi hatası (code#)

PR : İşlemci aşırı yüklendi

RC : RSC Hatası

S# : Güvenlik sistem hatası(code#)

SE : E-stop gecikme hatası

SW : Watchdog zamanaşımı

T# : Güvenlik sistem hatası

TR : Öğretme sınır hatası

V# : Diyagram hatası(joint#)

Ön Panel Kutusu üzerinde : Manuel /Otomatik anahtar modu , Servo motorlar on/off butonu , Acil stop anahtarı

Kontrol Modları :

COMP : Bilgisayar  modu

Jog Modu ;

World -> Joint eksen butonları ile robot hareket eder ve dünya koordinat düzlemini kullanır.

Tool -> Eksen tool koordinat düzleminde hareket eder.

Joint -> Eksen yönlerinde hareket eder.

FREE = Yalnızca SCARA robotlar için geçerlidir.

Hareket Konseptleri :

İleriye dönük buffer

Karışık hareket

İleri Hareket

Örnek ;

Karışık hareket için :

MOVE pstart

MOVE P1

SIGNAL 97

MOVE p2

SIGNAL -97

MOVE p3

MOVE pstart

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

Bugünki yazımızda Ace Programı – V+ dili ve Robot Programlama hakkında serinin ilk yazısını sizlerle paylaşmış bulunmaktayız.Bu yazı dizisi ile Adept Robotları ve programlanması hakkında birtakım bilgilere ulaşıyor olacaksınız.Yine bunun üstüne Robotik üzerine bir sayfa açıp üzerine gitmeyi düşünmekteyim.Takipte kalın.

İyi çalışmalar