ABB RAPID'e Giriş
RAPID (Robot Application Programming Interactive Design), ABB IRC5 denetleyicisinin programlama dilidir. KUKA KRL ile kıyaslandığında RAPID çok daha yapılandırılmıştır ve özyinelemeli fonksiyonlar, yapılandırılmış veri türleri ve istisna işleme gibi gerçek yüksek düzey dil yapıları sunar. RAPID'i bir kez öğrenenler, bakımı yapılabilir, yeniden kullanılabilir ve ölçeklenebilir karmaşık robot programları geliştirebilir.
Temel Yapı: Modüller, Prosedürler ve Fonksiyonlar
Bir RAPID programı bir veya daha fazla modülden oluşur. Her modül veri bildirimleri ve rutinler içerir.
MODULE MainModule
! Global değişkenler
PERS tooldata MyTool := [TRUE, [[0,0,100],[1,0,0,0]], [2,[0,0,50],[1,0,0,0],0,0,0]];
PERS wobjdata MyWobj := [FALSE, TRUE, "", [[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
PROC main()
! Ana program
InitRobot;
RunPickPlace;
ENDPROC
PROC InitRobot()
AccSet 80, 80;
VelSet 80, 1000;
ENDPROC
ENDMODULE
RAPID'de üç tür rutin bulunur:
- PROC: Prosedür, dönüş değeri yok (alt rutin gibi)
- FUNC: Dönüş değeri olan fonksiyon
- TRAP: Harici olaylarla tetiklenen kesme rutini
Temel Veri Türleri
robtarget – Hedef Konumu
RAPID'deki en önemli veri türü. Bir robtarget, TCP konumunu ve yönünü, eksen yapılandırmasını ve harici eksenleri tanımlar:
CONST robtarget pHome := [[500,0,600],[0.707,0,0.707,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
Dört alan: [öteleme vektörü], [kuaterniyon yönü], [eksen yapılandırması], [harici eksenler]. 9E9, mevcut olmayan harici eksenler için "tanımsız" anlamına gelir.
jointtarget – Eksen Konumu
Tanımlı eksen konumlarına (örn. ev konumu) yapılan hareketler için:
CONST jointtarget jHome := [[0,-30,30,0,90,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
tooldata – Takım Verisi
Dinamik hesaplama için Takım Merkez Noktasını (TCP) ve takım kütlesini tanımlar:
PERS tooldata tGripper := [TRUE,[[0,0,150],[1,0,0,0]],[3,[0,0,75],[1,0,0,0],0,0,0]];
wobjdata – İş Nesnesi
İş parçasının koordinat sistemini tanımlar. Bir iş parçasına göre programlandığında, programlar tablo konumu değiştiğinde wobjdata güncellenerek kolayca ayarlanabilir.
Hareket Komutları
MoveL – Doğrusal Hareket
MoveL pTarget, v500, z10, tGripper WObj:=MyWobj;
Parametreler: hedef nokta, hız (v500 = 500 mm/s), bölge (z10 = 10 mm köşe yuvarlama yarıçapı), takım, isteğe bağlı: iş nesnesi.
MoveJ – Eklem Enterpolasyonlu Hareket
MoveJ pHome, v1000, z50, tGripper;
En hızlı hareket türü. Tüm eksenler eş zamanlı hareket eder ve hedefe aynı anda ulaşır. Hassas yol kontrolü için uygun değildir.
MoveC – Dairesel Hareket
MoveC pVia, pEnd, v300, z5, tGripper;
Üç nokta yayı tanımlar: başlangıç noktası (mevcut konum), geçiş noktası, bitiş noktası. Not: TCP, üç noktanın tümüne aynı takım koordinat sisteminde yaklaşmalıdır.
MoveAbsJ – Mutlak Eksen Hareketi
MoveAbsJ jHome, v500, fine, tGripper;
Robotu tanımlı bir eksen konumuna taşır. TCP ve takım verilerinden bağımsız; ev konumları ve kalibrasyon hareketleri için idealdir.
Hız ve Bölge Verileri
RAPID'de önceden tanımlanmış hız verileri:
v5'tenv7000'e: mm/s cinsinden hızvmax: maksimum robot hızıv500: yaygın kullanılan orta hız (500 mm/s)
Bölge verileri, zincirleme hareketlerde köşe yuvarlama yarıçapını belirler:
fine: hedef noktada tam duruş (köşe yuvarlama yok)z0'danz200'e: mm cinsinden köşe yuvarlama yarıçapız10: zincirleme al-yerleştir hareketleri için tipik bölge
ERROR İşleyiciyle Hata Yönetimi
RAPID, ERROR işleyicileriyle zarif istisna yönetimi sağlar:
PROC SafeMove(robtarget pTarget)
MoveL pTarget, v500, fine, tGripper;
ERROR
IF ERRNO = ERR_PATH_STOP THEN
! Hareket kesildi, güvenli park et
MoveAbsJ jHome, v200, fine, tGripper;
TPWrite "Hareket hatası oluştu, eve gidildi";
RAISE; ! Hatayı ilet
ENDIF
ENDPROC
Yaygın hata sabitleri: ERR_PATH_STOP, ERR_MAXSPEED, ERR_OUTOFREACH, ERR_ROBLIMIT.
Kesmeler ve TRAP Rutinleri
Harici sinyallere zaman açısından kritik tepkiler için:
VAR intnum iStopSignal;
PROC main()
CONNECT iStopSignal WITH TrapStop;
ISignalDI di_EmergencyInput, 1, iStopSignal;
! ... ana program
ENDPROC
TRAP TrapStop
StopMove;
TPWrite "Acil stop etkinleştirildi!";
ENDTRAP
FlexPendant ve RobotStudio
FlexPendant (öğretme kollu cihaz), jog modunda konumları öğretmeye olanak tanır. En iyi uygulama: FlexPendant'ı yalnızca konumları ölçmek için kullanın. Gerçek program mantığı RobotStudio'da geliştirilmelidir. RobotStudio sözdizimi denetimi, hata ayıklama, simülasyon ve uygun bir geliştirme ortamı sağlar. Değiştirilen modüller RAPID dosya paylaşımı üzerinden denetleyiciye aktarılabilir.
En İyi Uygulamalar
- Konum adlandırma: Tutarlı adlandırma:
pPickReady,pPickApproach,pPickGrab - Modül yapısı: İşlev başına bir modül (tutucu, kamera, taşıma)
- PERS ve CONST: Öğretilen konumlar PERS olarak (FlexPendant üzerinden değiştirilebilir), sabit parametreler CONST olarak
- AccSet ve VelSet: Her zaman program başlangıcında tanımlayın, döngülerin içinde değil
- fine ve bölge: fine'ı yalnızca gerçekten gerekli olduğunda kullanın; tam duruş nedeniyle zaman maliyeti vardır
Sonuç
RAPID, endüstriyel robot programlama için olgun, iyi tasarlanmış bir dildir. Temel kavramları (modüller, veri türleri, hareket komutları, hata yönetimi) öğrenenler karmaşık uygulamaları bile yapılandırılmış biçimde geliştirebilir. Geliştirme ve simülasyon aracı olarak RobotStudio, en başından iş akışına entegre edilmelidir.