List

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

ACE Programı nasıl kullanılır ? V+ Dilinde kullanılan komutlar nelerdir ? Endüstriyel robotlar nasıl programlanır ? Komutlarla ilgili kullanım örnekleri nelerdir ? Bu ve benzeri sorulara cevap aradığımız ACE Programı & V+ Dili & Robot programlama adlı yazı dizisinin son yazısı ile beraberiz.

Bu yazı dizisinin ardından geniş bir inceleme ile bu alanda bir e-kitap oluşturma niyetindeyiz.

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

Monitor(İzleme) Komut İşlemleri  :

CALIBRATE : Robot pozisyon sistemini başlatır.

CD : Disk erişimleri için varsayılan yolu değiştir yada izle.

CYCLE.END : Program çalışması tamanlandığında program komutlarının çalışması / ilerlemesini durdurur.

DIRECTORY : Sistem hafızası içerisindeki bir kısmının ya da tümünün program isimlerini gösterir.

DO : Diğer adımda çalıştırılabilir program varmış gibi tek bir program işlemini çalıştırır.

ENABLE : Bir veya daha fazla sistem kontrol anahtarlarını çalıştır/aç.

ESTOP : Acil stop butonu sinyali geliyor gibi ekran üzerinden aynı şekilde robotu durdurur.

EXECUTE : Program çalıştır/başlat komutudur.

IO : Dijital giriş/çıkış sinyalleri ve/veya dahili-harici sinyallerin durumunu gösterir.

LOAD : Sistem hafızası içerisinde belirli disk alanına içerikleri yükler.

PARAMETER : Sistem parametrelerinin değerlerini göster/set et.

SPEED: Robot kontrol programı tarafından tüm robot hareket hızlarının belirlendiği alandır.

STATUS : Çalışan programlar ve sistem durum bilgisini göster.

SWITCH : Monitor ekranı üzerindeki sistem anahtarlarının ayarlarını gösterir.

WAIT.START : Bekleme durumuna , koşul TRUE oluncaya kadar monitör komut programını yerleştir.

ZERO = Sistem hafızası içerisindeki data ve tüm programları sil ve V+ sistemine yeniden yükle.

Parametreler :

PARAMETER parameter_name = value

NOT.CALIBRATED  = eV+ sistemi tarafından robotun kalibrasyon durumunu gösterir.

Varsayılan = 7

Parametre değeri = 0 ise -> Tüm robotlar kalibre edildi anlamındadır.

Parametre değeri = 1 ise -> Robot 1 kalibre edilmedi

Parametre değeri = 3 ise -> Robot 1 ve 2 kalibre edilmedi

Parametre değeri= 7 ise -> Robot 1 , 3. Robot sebebiyle kalibre edilmedi anlamındadır.

Basit Sistem Parametreleri :

BELT.MODE , HAND.TIME , NOT.CALIBRATED , MESSAGES , POWER , ROBOT , UPPER , AUTO.POWER.OFF , BELT , CP , DECEL.100 , DRY.RUN

Oto Çalıştırma İşlemini Monitor Ekranından doğrulamak için ; bu ekrandan ‘calibrate’ simgesine tıklamalısınız.Ardından ‘.com auto’ satırına program atlayarak gösterecektir bize.

Robot Başlatma ise ; Varsayılan program ‘rob.init()’dir.Bu program , E-STOP , Güç butonu , calibrasyon ve program çalıştırma durumlarını kontrol eder.

V+ Monitor Ekranı ;

Enable Power = Enerjiyi aktif eder.

Status = Program durumlarını , monitör hızını , robot modunu ve durumları gösterir.

Free = Boş kalan hafızayı yüzdesel olarak gösterir.

Where  = Robot tipinin konumunu gösterir.

Here myloc1 = Konum oluşturur.

LISTL myloc1 = Listelenen konumların değerlerini gösterir.

SRV.NET = Diğer ağ node konfigürasyonlarınıda gösterir.

Not : Daha karmaşık bir program çalıştırmak yerine robotu konumuna daha kolay hareket ettirmek için ;  DO komutu kullanılır.

DO SIGNAL 1 ya da DO SIGNAL -1

DO MOVE myloc01

DO READY  kullanılabilir.

Lojik Birimler :

Her bir aygıt robot kontroller’a logic birimler ile bağlanır.(robot , seri port , TCP port..)

Prosedür ise ;

  1. ATTACH (lun , mode) $device; (çalışan task’a aygıt bağlı)
  2. Her bir birim tipine göre spesifik komutlar vardır ; Robot için = MOVE, DELAY , APPRO ; TCP , Serial içinse READ , WRITE , GETC..
  3. Lojik birimden ayrılma içinse ; DETACH(lun)

ATTACH (lun,mode) $device :

I/O aygıtları kullanılmadan önce program tasklarına zorunlu olarak bağlı olmak durumundadır.ATTACH komutu aygıtları program taskları adına uygun hale getirir ve lojik birim numaraları(lun) ile ilişkilendirir.

Bir aygıt lojik birim numarası ile bir task’a eklendiğinde , bu numara diğer bir taskta kullanılamaz.

İki şekilde aygıtlar lojik birim numaraları ile ilişkilendirilebilir ;

Varsayılan aygıtlar ve Eklenebilir($device) Aygıtlar

Not : Robot #1 daima otomatik olarak Task 0’a eklenir.

Robot Seçimi : Herhangi bir task herhangi bir robota eklenebilir.Burada SELECT komutu çalıştırılmalıdır.

Örnek :

SELECT ROBOT = 2

ATTACH ()

Lojik Birim Numarası Parametreleri ;

Mode – bit 3 = 0

Bu mod aygıtlarla lojik birimlere varsayılan ayarları yükler.

Eğer bu bit 0 ise , lun parametresi isteğe bağlı olacaktır ve varsayılan lun parametresi 0’dır.

Eğer 0’dan farklı bir değer olursa, $device parametresi lojik birimler adına varsayılan aygıtla üst üste binebilir.

Mode – bit 3 = 1

Eğer bu bit set edilirse ,  lun parametresi gerçek değişken’e ihtiyaç duyar.Bu komut çalıştırıldığında , sistem  $device  parametresi ile tanımlanan aygıtı ekler ve lun parametrelerini otomatik olarak atar.Eğer tüm lojik birimler kullanımdaysa , parametreler -1’e set olacaktır.

Parametreler ;

0 = Robot

1= Teach Pendant

2-4 = Sistem Terminali

5-8 = Disk

9 = Varsayılan cihaz yok

10-15 = Kontroller Seri Portları

16 = Varsayılan cihaz yok

17-19 = Disk

20-24 = Grafik penceresi

25-31 = Varsayılan cihaz yok

Yani ;

ATTACH () = robotun kontrolünü al

ATTACH(1) = Teach pendant ekle gibi gibi kullanılır.

$device Parametreleri :

DISK : Adept Kontroller için fiziksel sürücü

DEVICENET : DeviceNet’e bağlı erişilebilir aygıtlar

MONITOR : Operatör terminali ya da anlık monitör ekranı

SERIAL:n =

SERİAL:0 ise RS232/TERM

SERİAL:1 ise RS232-1

SERİAL:2 ise RS232-2

SERİAL-3 ise RS422-485

SYSTEM : Aygıt diskidir .CD ya da DEFAULT komutu ile set edilir.

TCP : TCP Protokol aygıt sürücüsüdür.

TFTP : Dosyaları okuma için TFTP servere erişim

UDP : UDP protokol aygıt sürücüsüdür.

Örnek :

ATTACH (tcp.lun , ^B100) “TCP” ya da

ATTACH (tcp.lun , 4) “TCP”

WRITE(tcp.lun) “Hello World”

Seri hatta eklemek için örnek ;

ATTACH (my.serial.lun , 4) “serial : 1”

ATTACH için Parametre Modları :

Mode  – bit 1 (mask value : ^B001) :

Bağlanma isteğine karşı aygıtın nasıl cevap verdiğini kontrol eder ve IOSTAT fonksiyonunu bağlanmanın başarılı olup olmadığını kontrol etmesi için kullanır.

“0” : Eğer aygıt başka bir program taskına bağlı ise aygıt müsait oluncaya kadar bekler.

“1” : Eğer aygıt başka bir program taskına bağlı ise ,bağlanma isteği hatası olarak geri döner.

Mode – bit 2 (mask value : ^B010) :

Aygıttan programın cevap bekleyip beklemediğini kontrol eder.

“0” : Bağlanıncaya kadar aygıta , sürekli dener.(sonsuz döngü)

“1” : Burada ATTACH komutu çalışır ve program çalışmasına bir sonraki satırdan devam eder.Başarılı olup olmadığı ya da herhangi bir hatanın olup olmadığı durumu IOSTAT komutu kontrol eder.

Mode –bit 3 (mask value : ^B100):

lun parametresinin nasıl yorumlanacağını kontrol eder.

Örnek :

DO

ATTACH (0 ,^B001)

UNTIL  IOSTAT (0,0) ==1

TIMER(1) = 0

DO

ATTACH (0 , ^B001)

UNTIL  IOSTAT (0,0) ==1 OR (TIMER (1) > 3)

IF IOSTAT (0,0) < THEN

TYPE $ERROR (IOSTAT(0,0)

IOSTAT (lun , mode) :

Bağlı aygıtların mantıksal birimleri için son giriş/çıkış durum bilgilerini döndürür.

Mode 0 : Son tamamlanan giriş/çıkış işlem durumlarını gösterir.

Mode 1 : Önokuma istek bekliyor durumudur.

Mode 2 : Okunan son dosya byte boyutu

Mode 3 : Herhangi bir tamamlanmamış yazma istek durumu

EOF üzerinde dönen IOSTAT Değerleri :

1 = Normal başarılı çalışma.3 nolu mod için bu değer herhangi bir tamamlanmamış yazma istediği değeri taşımaz.

2 = İşlem henüz tamamlanmadı.

<0 = Standart eV+ hata numarasıdır.Hata numaralarına göre kontrollerinizi sağlayınız.

Örnek :

ATTACH (dlun,4) “DISK”

FOPENR(dlun) “RECORD.DAT”

IF IOSTAT(dlun) < 0 THEN

TYPE “Error opening file”

HALT

END

file.size = IOSTAT (dlun,2)

DETACH (logical_unit) :

Uygulama programındaki kontrollerden ilgili aygıtı ayırır.

logical_unit , gerçek değer , değişken ya da ifade olabilir.

eV+ Program Taskları :

Kullanılabilir 28 uygun task vardır.Tüm tasklar aynı öncelik seviyesine sahiptir.EXECUTE komutu ile normal olarak tasklar çalıştırılabilir.TASK#0 çalıştığında , Robot#1 otomatik olarak seçilir ve eklenir.

Her bir eV+ sistem saykılı 16’ya bölünmüştür ve her biri 1ms süresindedir.

PROGRAM KOMUTLARI :

EXECUTE tasknr program_name , cycles : Kontrol programın çalıştırmasını sağlar.

tasknr : 0 – 27 arasındadır.Task 0 Robot#1’e otomatik olarak eklenir.

program_name : Çalıştırılacak program ismidir.

cycles : Çalışacak programın kaç kez çalışacağı.

“omitted” : Bir kez çalıştır

“-1” : Sonsuz döngü , tekrarla

Örnek : EXECUTE 0 assembly , -1

STATUS (program_name) :

Uygulanacak program için durum bilgisini döndürür

-1 : Çalışmıyor

-2 : Tanımlanmadı

-3 : Yazma dolayısıyla kilitlendi

-4 : Çalıştırılamaz

-5 : Okuma dolayısıyla kilitlendi

TASK (select , tasknr) :

Program çalıştırma taskı hakkında bilgidir.

Select = 0 -> Fonksiyonun çalıştırıldığı yerde dönen task numarasıdır.

Örnek : TYPE TASK (0) -> task5’te çalışır ve 5 döndürür.

SELECT = 1

-1: geçersiz task numarası

0 : Boş , task içerisinde program yok

1 : Task tamamlandı.

2 : Program çalıştırma hatası dolayısıyla durdu

3 : Estop , Abort , Robot hatası sebebiyle durdu

4 : Çalışıyor

5 : Pause yada breakpoint dolayısıyla durdu

7 : Tek-adım çalışma dolayısıyla durdu

SELECT = 2

Fonksiyon 2 bitlik bir bayrak döndürür ve tasknr parametresi ile ilgili task hakkında bilgiyi döndürür.

Bit = 1 ; Mask Value = ^B01 ; Debugger task’a erişiyor

Bit = 2 ; Mask Value = ^B10 ; Task robota bağlandı.

Örnek :

IF TASK (1,2) <>  4THEN

IF STATUS (“pc.job.3”) == -1 THEN

EXECUTE 2 pc.job.2()

ELSE

TYPE /B , “Can’t start task #2”

END

END

Örnek : Haberleşmeyi Eplc Hazır olana kadar durdur

WHILE (TASK(1,12) <> 4 ) DO

WAIT

END

Not : Sonsuz döngüler kolayca aşırı yüke sebebiyet verir.Bu sebeple sonsuz döngülerden kaçınmalıyız.

Mümkün olduğunca RELEASE komutu kullanımından kaçınmalıyız.Yerine WAIT ya da WAIT.EVENT kullanmak task çalışmasını rahatlatıcaktır.

Örnekler :

.PROGRAM loop_1 ()

WHILE TRUE DO

A = 123456

B = 4.358E+12

C = a * b

END

.END    (Burası sürekli döngüdür.)

Eğer iki END’in üzerine RELEASE yazarsanız , bu döngüyü kırar.

Eğer iki END’in üzerine WAIT(16ms) yazarsanız bu her seferinde 16ms bekletir.

Eğer iki END’in üzerine WAIT.EVENT , 0.1 yazarsanız bu da 100 ms bekletir.

Eğer iki END’in üzerine WAIT.EVENT , 1 yazarsanız bu da 1 s bekletir sistemi.

Örnek : Robot Programlarını Çalıştırma ;

Robot 3 ‘ü Task#5 ‘e ve Robot 2’i Task#2’ye ekle

.PROGRAM start_up()

EXECUTE 5 robot_3()

EXECUTE 3 robot_2()

.END

TASK#5 için ;

.PROGRAM robot_3()

SELECT ROBOT = 3

ATTACH ()

.END

TASK#3 için ;

.PROGRAM robot_2()

SELECT ROBOT = 2

ATTACH ()

.END

C# Dilini Kullanarak Bir Kullanıcı Arayüzü Oluşturma ;

Workspace explorer – New – Program – User Interface Form denilerek bir kullanıcı arayüzü sisteme eklenebilir.

Buraya 4 etiket eklenebilir.Başlık , Programlar , Program numarası , Durumlar

Toolbox ; UI Formda kullanıcı arayüzü oluşturmak için kütüphane araçlarını  sağlar.

Properties Editor ; UI form üzerindeki itemlerin haraketlerini kontrol etmek ve özelliklerini düzenlemek adına kategorileri sağlar.

Designer ise ; bize kullanıcı arayüzünü oluşturmamız adına bir dizayn sayfası sağlar.

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

Bugünki yazımızda ACE Programı & V+ Dili ve Robot programlama 5 adlı serinin son yazısını sizlerle paylaştık.Bu son yazının ardından geniş bir inceleme daha yaparak bir e-kitap hazırlama niyetindeyim.Fakat bu yazılar aradığımız sorulara geniş ölçekte cevap verecektir.

İ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.