9. Bölüm KRL ile Robot Programlama
|
|
|
- Ayla Hanım
- 9 yıl önce
- İzleme sayısı:
Transkript
1 9. Bölüm KRL ile Robot Programlama
2
3 9. Bölüm: KRL ile Robot Programlama 9.1. KRL ile Robot Programlamaya Giriş KRL (KUKA Robot Language) derleyici prensibiyle çalışan Pascal ve Basic dillerine benzer yapısal bir programlama dilidir. Robot Programı, robota ve çevre birimlerine birtakım hareket ve kontrol işlemlerini yapması amacıyla yazılan komutlar dizisi olarak tanımlanmaktadır. Endüstriyel Robot Sistemleri ile Otomasyon İhtiyacının karşılanmasına yönelik programlama stratejisi genel anlamda Problem Tanımı, Tasarım, Test ve Uygulama aşamalarından oluşmaktadır. Bu doğrultuda Endüstriyel Robotların programlanmasına yönelik olarak Şekil 9.1 de verilen akış şemasına uygun olarak hareket edilmesi hem sistem insan güvenliği açısından büyük önem taşımaktadır. PROBLEM Endüstriyel Robot Sistemleri ile Otomasyon İhtiyacı TASARIM Analiz, Algoritma, Kodlama TEST T1 T2 Çalışma Modları Başarısız Başarılı UYGULAMA AUT ve EXT AUT Çalışma Modları Şekil 9.1. Endüstriyel Robot Programlama Stratejisi Otomasyon sisteminde Endüstriyel Robot kullanılmasının gerekliliğinin belirlenebilmesi amacıyla, problemin doğru anlaşılması, ihtiyaçların belirlenmesi ve çözüme yönelik analizin iyi bir şekilde yapılması gerekmektedir. Gerekli araştırma ve analiz yapıldıktan sonra, yapılması istenen işin kotarılması veya çözülmesi istenen problemin çözümüne yönelik olarak ayrıntılı algoritmalar hazırlanmalıdır. Algoritma Analizi yapılarak, çözüme cevap veren algoritma için KRL dilinde kodlama yapılmalıdır. Programlama stratejisinin en önemli kısmı Test aşamasından oluşmaktadır. KUKA Endüstriyel Robotlar için test işlemi güvenliğin ön planda tutulduğu T1 ve T2 çalışma modlarında gerçekleştirilmektedir. Test aşamasında başarısız olunarak istenen sonuca ulaşılamadığı durumlarda tasarım aşamasının yeniden gözden geçirilmesi ve programlamanın yeniden yapılması gerekmektedir. Test aşamasında Başarılı olunması durumunda Uygulama aşamasına geçilerek, AUT ve EXT AUT çalışma modlarında geliştirilen programın çalıştırılması söz konusu olabilmektedir. Genel olarak programlama dilleri, Program Yazım Kurallarına ilave olarak aşağıdaki temel konuları içermektedir: Veri Tipleri ve Değişkenler Karar ve Çevrim Kontrol Komutları Operatörler Altprogramlar 213
4 ERPE-METEG 9.2. Veri Tipleri ve Değişkenler Değişkenler, program içerisinde değerleri değişebilen veri yapılarıdır. Değişkenler tanımlanma durumuna göre bellekte belirli bir yer adreslerler. Değişkenlerin ne şekilde bir veriyi bellekte tutacağı ve sahip olacağı bellek büyüklüğü tanımlandığı veri tipine bağlı olarak değişebilmektedir. KRL dilinde değişkenlerin tanımlanması ve kullanımında dikkat edilmesi gereken durumlar şunlardır: Bir değişken kullanılmadan önce mutlaka uygun bir veri tipi ile tanımlanmalıdır. Değişkenler tanımlanma yeri ve şekline göre Lokal ve Global olarak tanımlanabilmektedir. Lokal değişkenler sadece tanımlandıkları program veya altprogram içerisinde geçerlidirler. Global değişkenler, config.dat, machine.dat vb. sistem dosyalarında tanımlanırlar. Ayrıca Global değişkenler, Global anahtar sözcüğü eklenerek lokal bir dosya içerisinde de tanımlanabilirler. SRC kaynak kod dosyasında tanımlanan değişkenler, ilgili program veya altprogram sonlandığında varlıklarını yitirirler ve kendilerine ayrılmış bellek yerini iade ederler. DAT veri dosyasında tanımlanan değişkenlerin güncel değerleri kalıcıdır. KRL dilinde değişken ve diğer yapılara isim verilirken dikkat edilmesi gereken birtakım kurallar mevcuttur: İsimlendirmede İngilizce (A-Z) küçük-büyük harfler, 0..9 arası rakamlar, "_" ve "$" özel karakterler kullanılabilmektedir. Bir isim en fazla 24 karakter uzunluğunda olabilmektedir. İsimlendirmede bazı programlama dillerinde olduğu gibi Büyük Küçük harf ayrımı yoktur. İsimlendirmede FOR, WHILE OUT vb. özel bir kullanımı olan KUKA Rezerv kelimeleri kullanılmamalıdır. İsimlendirme ilk karakter hiçbir zaman rakam olmamalıdır KRL Veri Tipleri KRL de basit veri tipleri Tablo 9.1 de görülmektedir. Tablo 9.1. KRL basit veri tipleri Basit Veri Tipleri Anahtar Kelime Değer Aralığı Örnek Tamsayı INT 4 Byte , 0, 500 Kesirli Sayı REAL 1.1x x , 0.123, 9.17 Mantık BOOL TRUE / FALSE TRUE Karakter CHAR ASCII Karakterleri H, İ, T, İ, T 214
5 9. Bölüm: KRL ile Robot Programlama Değişkenlerin Tanımlanması, Geçerlilik Alanları ve Süreleri Değişkenler tanımlandıkları bellek yeri ve şekline göre; Lokal Global olmak üzere iki farklı sınıfa ayrılmaktadırlar ve buna bağlı olarak da geçerlilik alan ve süreleri de değişmektedir. Tablo 9.2 de lokal ve global değişkenlere ait özellikler verilmektedir. Tablo 9.2. Lokal ve Global Değişken Özellikleri Değişken Türü Geçerlilik Alanı Tanımlanma Yeri Geçerlilik Süresi Global Tüm Programlar Sistem Dosyaları (config.dat, machine.dat) Lokal ortamda Global olarak tanımlama Her Zaman Lokal Sadece Tanımlanan Robot Programı Program Dosyası (*.src) Data Dosyası (*.dat) (Çalışma Zamanı/Run-Time) Program Seçili olduğu sürece Her Zaman Global Değişkenler, programcı tarafından tanımlanabilen ve tüm programlarda geçerli olmakla birlikte değerlerini her zaman koruyan değişkenlerdir. Şekil 9.2 de Global değişken tanımlama örnek programları görülmektedir. Global değişkenler config.dat, machine.dat vb. bir sistem dosyasında veya lokal veri listesinde Global değişken olarak tanımlanabilmektedir. DEFDAT $CONFIG ;=========================== ; Userdefined Types ;=========================== ;=========================== ; Userdefined Externals ;=========================== ;=========================== ; Userdefined Variables ;=========================== DECL INT Sayac = 100 DECL REAL Sicaklik DECL BOOL Durum DECL CHAR Sembol DAT DEFDAT MY_PROG PUBLIC EXTERNAL DECLARATIONS DECL GLOBAL INT Sayac DECL GLOBAL REAL Sicaklik DECL GLOBAL BOOL Durum DECL GLOBAL CHAR Sembol DAT Config.Dat sistem dosyasında Global değişken tanımlama DAT dosyasında Global değişken tanımlama Şekil 9.2. Global Değişken Tanımlama 215
6 ERPE-METEG Lokal Değişkenler, sadece tanımlandığı endüstriyel robot uygulama programı içerisinde geçerli olan değişkenlerdir. Lokal değişkenler SRC veya DAT dosyalarında tanımlanabilmektedirler. Şekil 9.3 te Lokal değişken tanımlama örnek programları görülmektedir. DEF MY_PROG ( ) DECL INT Sayac DECL REAL Sicaklik DECL BOOL Durum DECL CHAR Sembol INI Sayac = 5 Sicaklik = 10.5 Durum = FALSE Sembol = "A" DEFDAT MY_PROG EXTERNAL DECLARATIONS DECL INT Sayac = 5 DECL REAL Sicaklik DECL BOOL Durum DECL CHAR Sembol DAT SRC dosyasında Lokal değişken tanımlama DAT dosyasında Lokal değişken tanımlama Şekil 9.3. Lokal Değişken Tanımlama SRC dosyası içerisinde tanımlanan Lokal Değişkenler, Çalışma Zamanı (Run-Time) değişkenler olarak ifade edilebilmektedir. Yani bir değişken SRC dosyası içerisinde tanımlanmışsa; ilgili programın seçim (Select) özelliği devam ettiği sürece değişkenin de varlığı devam eder. Aksi takdirde ilgili programın seçim (Select) özelliği kalktığında değişkenin de varlığı sona erer. DAT dosyası içerisinde tanımlanan Lokal Değişkenler, sadece tanımlandığı program dosyasında geçerlidir. Ancak bu şekilde tanımlanan değişkenler, ilgili programın seçim (Select) özelliği kalksa bile varlıklarını devam ettirirler ve değerlerini korurlar. 216
7 9. Bölüm: KRL ile Robot Programlama Diziler (Arrays) Dizi (Array) aynı tipte verilerin bir arada saklandığı veri yapısıdır. Dizi elemanına erişimde dizi adı ve indis kullanılır. KRL dilinde dizilerin en fazla 3 boyutlu olarak tanımlanmasına izin verilmektedir: Tek Boyutlu Dizler (Dizi) İki Boyutlu Diziler (Matris) Üç Boyutlu Diziler (Prizma) Tek Boyutlu Diziler Tek boyutlu diziler, n elemanlı gözden oluşan ve Dizi halinde ifade edilen veri yapılarıdır. Şekil 9.4 te Tek Boyutlu Dizi yapısı, tanımı ve kullanımı görülmektedir. Dizi Tek Boyut Dizi [5] Dizi DECL INT Dizi[5] DECL INT i Dizi[1] = 15 FOR i = 2 TO 5 Dizi[i] = i * 10 FOR Dizi Tanımlamada kullanılan indis değeri n ise; dizinin ilk elemanına 1, son elemanı da n değeri ile erişilir. Şekil 9.4. Tek Boyutlu Dizi yapısı, tanımı ve kullanımı 217
8 ERPE-METEG İki Boyutlu Diziler İki boyutlu diziler, satır ve sütunlardan oluşan ve matris (Tablo) halinde ifade edilen veri yapılarıdır. Şekil 9.5 te İki Boyutlu Dizi yapısı, tanımı ve kullanımı görülmektedir. Matris 2. Boyut 1. Boyut Matris [1, 2] Matris 1 2 DECL INT Matris [2,2] DECL INT i,j Matris [1,2] = FOR i = 1 TO 2 FOR j = 1 TO 2 Matris [i,j] = i*j*10 FOR FOR Matris Şekil 9.5. İki Boyutlu Dizi yapısı, tanımı ve kullanımı 218
9 9. Bölüm: KRL ile Robot Programlama Üç Boyutlu Diziler Üç boyutlu diziler, X Y Z boyutlarından oluşan ve prizma halinde ifade edilen veri yapılarıdır. Şekil 9.6 da Üç Boyutlu Dizi yapısı, tanımı ve kullanımı görülmektedir. Prizma 2. Boyut Prizma [1, 4, 2] 1. Boyut 3. Boyut Prizma [2, 3, 1] DECL INT Prizma [3,4,2] DECL INT i,j,k Prizma [1,2,1] = 25 FOR i = 1 TO 3 FOR j = 1 TO 4 FOR j = 1 TO 2 Prizma[i,j,k] = i+j+k FOR FOR FOR Şekil 9.6. Üç Boyutlu Dizi yapısı, tanımı ve kullanımı 219
10 ERPE-METEG Sistem Değişkenleri KRL dilinde kullanılmak üzere endüstriyel robot sistemine yönelik olarak çalışan birçok Sistem Değişkeni bulunmaktadır. Tablo 9.3 te başlıca Sistem Değişkenleri verilmiştir. KRL dilinde kullanılan sistem değişkenlerinin başlıca ortak özellikleri şunlardır: Sistem değişkenleri her zaman geçerlidir ve değerini korur. Sistem değişkenleri her zaman sorgulanabilir. Sistem değişkenleri her zaman $ karakteri ile başlar. Tablo 9.3. Başlıca Sistem Değişkenleri Sistem Değişkeni Açıklamalar Örnek Kullanımlar $ACT_TOOL $ACT_BASE Ön Çalışmadaki Aktif TOOL numarası (1..16) Ön Çalışmadaki Aktif BASE numarası (1..32) $ACT_TOOL = 3 Alet_No = $ACT_TOOL $ACT_BASE = 5 Base_No = $ACT_BASE $POS_ACT Güncel Kartezyen Robot Pozisyonu (E6POS) (Read Only) $POS_ACT BASE koordinat sistemine göre TCP pozisyonunu E6POS tipinde tanımlar: X, Y, Z (mm) A, B, C () X = $POS_ACT.X $AXIS_ACT Güncel Aksa-Özgü Robot Pozisyonu (E6AXIS) $AXIS_ACT Aks açı veya pozisyonlarını E6AXIS tipinde verir: A1..A6 (mm veya ) E1..E6 (mm veya ) $AXIS_ACT = {A1 0.0, A , A , A4 0.0, A5 90.0, A6 0.0, E1 0.0, E2 0.0, E3 0.0, E4 0.0, E5 0.0, E6 0.0} xa1 = $AXIS_ACT.A1 $POS_INT $AXIS_INT Interrupt Durumunda Kartezyen Robot Pozisyonu $POS_INT Interrupt durumunda BASE koordinat sistemine göre TCP pozisyonunu E6POS tipinde verir: X, Y, Z (mm) A, B, C () Not: Base 0 ise World Koordinat Sistemi geçerlidir. Interrupt Durumunda Aksa-Özgü Robot Pozisyonu (E6AXIS) $AXIS_ACT Interrupt durumunda Aks açı veya pozisyonlarını E6AXIS tipinde verir: A1..A6 (mm veya ) E1..E6 (mm veya ) X = $POS_INT.X xa1 = $AXIS_INT.A1 220
11 9. Bölüm: KRL ile Robot Programlama $VEL_ACT Velocity Güncel Yol (Path) Hızı $VEL_ACT = Velocity m/sn $VEL_MA.CP IF $VEL_ACT>1.0 THEN IF $VEL_AXIS Ön Çalışmada Robot Aks Hızları $VEL_AXIS[n] = Velocity n Aks Numarası (1..6) Velocity % (1..100) R1\Mada\$machine.dat dosyasında tanımlı olan $VEL_AXIS_MA maksimum aks hızının % si olarak programlanmış aks hızını içerir. IF $VEL_ AXIS [1]>50 THEN IF $OV_PRO Program Override, program çalışması süresince robot hızıdır. Program Override, programlanmış hızın yüzdesi olarak belirlenir. Robot Güncel Hızı (Program Override) $OV_PRO = Override Override % (0..100) (Default:100) Not: T1 modunda her zaman için hız 250 mm/sn dir. $OV_PRO = 20 $OV_PRO = 75 Po_hiz = $OV_PRO $OV_ROB Robot Güncel Hızı (Robot Override) (Read Only) $OV_ROB = Override Override % (0..100) Robot Override, program çalışmasında güncel robot hızıdır. Robot Override, $OV_PRO program Override ın azaltılmış bir fonksiyonu olarak belirlenir. ro_hiz = $OV_ROB $NUM_IN $IN sistem değişkeninde mevcut dijital Input sayısı N = $NUM_IN $NUM_OUT $OUT sistem değişkeninde mevcut dijital Output sayısı N = $NUM_OUT $IN Dijital Giriş $IN[n] n Input Numarası (KSS 8.1) (KSS 8.2 ve üzeri) Geri Dönüş Değeri TRUE/FALSE Durum = $IN[1] $OUT n State Dijital Çıkış $OUT[n] = State Output Numarası (KSS 8.1) (KSS 8.2 ve üzeri) TRUE/FALSE $OUT[1] = FALSE $OUT[2] = TRUE $ANIN Analog Giriş (Read Only) $ANIN[n] n Geri Dönüş Değeri veri = $ANIN[1] 221
12 ERPE-METEG $ANOUT $ADVANCE $MODE_OP Analog Çıkış $ANOUT[n] = Value n Value Ön Çalışmadaki maksimum hareket komutu sayısı $ADVANCE = Value Value 0..5 (Default:3) Not: $ADVANCE değişkeninin değeri 0 olması durumunda Ön Çalışma mümkün değildir. Endüstriyel Robot Çalışma Modu $MODE_OP = Operating mode Operating #T1, #T2, #AUT, #EX, #INVALID mode $ANOUT[1] = 0.5 $ADVANCE = 3 IF $MODE_OP == #T1 THEN $MOT_TEMP Aks Mevcut Motor Sıcaklığı $MOT_TEMP[axis_number] axis_number 1..6 (A1..A6) (E1..E6) Geri Dönüş Değeri (Kelvin, 12Kelvin toleransta) Konfigüre edilmeyen akslar için değer 0 dır. T = $MOT_TEMP[1] $TIMER Timer Çevrim Süresi Ölçme $TIMER[n] = Time n Timer Numarası (1..32) Time Süre (ms) Default : 0 T = $TIMER[1] $TIMER_STOP Timer Başlatma ve Durdurma $TIMER_STOP[n] = State n Timer Numarası (1..32) State TRUE: Timer Durdurma FALSE: Timer Başlatma $TIMER_STOP[1] = TRUE Tip Interpreter (Yorumlayıcı) Seçimi $ INTERPRETER = Tip 0 veya 1 (Default:1) $INTERPRETER 0: Submit Interpreter Editörde Seçili SUB program görüntülenir. 1: Robot Interpreter Editörde Seçili hareket programı görüntülenir. $INTERPRETER = 1 222
13 9. Bölüm: KRL ile Robot Programlama 9.3. Operatörler Operatörler, ifade içerisindeki değişken ve diğer ifadelere uygulandığında yeni değerlerin elde edilmesini sağlayan ve kendilerine özel sembolik gösterimleri olan sözdizimleridir. Operatörler genel olarak 4 farklı sınıfta yer almaktadırlar (Tablo 9.4): Aritmetik Operatörler Karşılaştırma Operatörleri Mantıksal Operatörler Bitsel Operatörler Tablo 9.4. Operatörler Operatör Sınıfı Operatör Açıklama Örnek Kullanım Aritmetiksel Karşılaştırma Mantıksal Bitsel (Bitwise) + Toplama c = a + b - Çıkarma c = a - b * Çarpma c = a * b / Bölme c = a / b == Eşit a == b <> Farklı a <> b > Büyük a > b >= Büyük Eşit a >= b < Küçük a < b <= Küçük Eşit a <= b NOT DEĞİL Not (a==5) AND VE (a>5) AND (b<5) OR VEYA (a==5) OR (b<5) EXOR ÖZEL-VEYA (a==5) EX-OR (b<5) B_NOT Bitsel DEĞİL HF0 B_NOT ( H0F ) B_AND Bitsel VE H02 ( H12 B_AND H0F ) B_OR Bitsel VEYA H1F ( H12 B_OR H0F ) B_EXOR Bitsel ÖZEL-VEYA H1D ( H12 B_EXOR H0F ) Aritmetik Operatörlere yönelik olarak işlem sonuçlarının alacağı veri tipleri Tablo 9.5 te görülmektedir. Tablo 9.5. Aritmetik İşlem Sonuç Veri Tipleri Operatör INT REAL INT INT REAL REAL REAL REAL 223
14 ERPE-METEG Şekil 9.7 de verilen örnekte operandların veri tipine bağlı olarak işlem sonucunun aldığı veri tipleri örneklenmiştir. DEF Aritmetik_Operatorler() DECL INT A,B,C,D,E DECL REAL K,L,M INI A = 2 B = 9.8 C = 9.50 D = 9.48 E = 7/4 K = 3.5 L = 1.0 M = 3 ;A=2 ;B=10 ;C=10 ;D=9 ;E=1 ;K=3.5 ;L=1.0 ;M=3.0 A = A * E B = B - HB E = E + K K = K * 10 L = 10/4 L = 10/4.0 L = 10/4. L = 10./4 E = 10./4. M = (10/3) * M ;A=2 ;B=-1 ;E=5 ;K=35.0 ;L=2.0 ;L=2.5 ;L=2.5 ;L=2.5 ;E=3 ;M=9.0 Şekil 9.7. Aritmetik İşlem Sonuçlarının Alacağı Veri Tipleri Mantıksal Operatörlere yönelik Doğruluk Tablosu Tablo 9.6 da görülmektedir. Tablo 9.6. Mantıksal Operatör Doğruluk Tablosu A B NOT A NOT B A AND B A OR B A EXOR B False False True True False False False False True True False False True True True False False True False True True True True False False True True False 224
15 9. Bölüm: KRL ile Robot Programlama Operatör işlem önceliği Tablo 9.7 de görülmektedir. Bir ifade içerisindeki aynı önceliğe sahip operatörler için Soldan-Sağa doğru işlem önceliği söz konusudur. Tablo 9.7. Operatörler Önceliği Öncelik Sırası Operatör 1 NOT B_NOT 2 * / AND B_AND 5 EXOR B_EXOR 6 OR B_OR 7 == <> > >= < <= Şekil 9.8 de karşılaştırma ve mantıksal operatörlerin ifade içerisinde çoklu kullanımları örneklenmiştir. DECL BOOL A, B, C, D A = 10 > 20 B = 5/2 == 2 C = ((A == B) <> (1 <= 1.001)) == FALSE D = "A" < "Z" ; A=FALSE ; B=TRUE ; C=FALSE ; D=TRUE DECL BOOL A, B, C, D A = FALSE B = NOT A C = (A AND B) OR (A EXOR B) D = NOT NOT C ;A = FALSE ;B = TRUE ;C = TRUE ;D = TRUE Şekil 9.8. Çoklu Karşılaştırma ve Mantıksal Operatör kullanımı 225
16 ERPE-METEG Şekil 9.9 da Bitsel (Bitwise) operatörlerin kullanımı örneklenmiştir. DECL INT A A = B_NOT 5 ; A = -6 A = B_NOT 'H05' ; A = -6 A = B_NOT 'B ' ; A = -6 A = B_NOT "A" ; A = 66 A = 12 B_AND 6 ; A = 4 A = 12 B_OR 6 ; A = 14 A = 12 B_EXOR 6 ; A = 10 Şekil 9.9. Bitsel Operatör kullanımı 226
17 9. Bölüm: KRL ile Robot Programlama 9.4. Standart Fonksiyonlar Fonksiyonlar, parametrik olarak aldıkları verileri işleyerek elde ettiği sonucu geri döndüren yapılardır. Fonksiyonların bir adı ve parametrik olarak aldıkları bağımsız değişkenleri mevcuttur. Fonksiyonların yapısı gereği bir veya daha fazla sayıda giriş parametresi alırken geriye döndürdüğü tek bir değer mevcuttur. Programlama ihtiyacına göre hem programcı tarafından kodlanan fonksiyonlardan hem de hazır Standart Fonksiyonlardan yararlanmak mümkündür. KRL dilinde kullanılan bazı Standart Matematiksel Fonksiyonlar Tablo 9.8 de verilmiştir. Tablo 9.8. KUKA Matematiksel Standart Fonksiyonlar Fonksiyon Açıklama Örnek Kullanım ABS(x) Mutlak Değer 5 ABS (-5) SQRT(x) Kök Alma 3 SQRT (9) SIN(x) Sinüs 0.5 SIN (30) COS(x) Kosinüs 0.5 COS (60) TAN(x) Tanjant 1 TAN (45) ACOS(x) Ark Kosinüs 60 ACOS (0.5) ATAN2(y, x) Ark Tanjant 45 ATAN2 (0.5, 0.5) Şekil 9.10 da Sin(X) ve Cos(X) fonksiyonun kullanımına yönelik KRL kod örneği görülmektedir. DEF s_sin_cos() ; Lokal Değişken Tanımları DECL A6POS PB INI ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT ; Başlangıç Noktasına Git PTP PA Vel= 50 % DEFAULT ; Hedef Noktası Hesapla PB.X = PA.X PB.Y = PA.Y + Cos (30) * 200 PB.Z = PA.Z + Sin (30) * 200 ; Hedef Noktasına Doğrusal Git - LIN PB ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT +Z - X -Y P B a P A 30. b P C +Y +X -Z Sin = a c Cos = b c Şekil KRL dilinde Sin(X) ve Cos(X) fonksiyonu kullanımı 227
18 ERPE-METEG 9.5. Karar ve Çevrim Kontrol Komutları Diğer programlama dillerinde olduğu gibi, KRL dilinde de program akışının kontrol edilmesi amacıyla kullanılan çeşitli özelliklerde karar ve çevrim kontrol komutları Tablo 9.9 da sınıflandırılmıştır. Tablo 9.9. Karar ve Çevrim Kontrol Komutları Karar Kontrol Komutları Şartlı Dallanmalar (IF) Çoklu Dallanmalar (SWITCH) (IF THEN ELSE IF ) Çevrim Kontrol Komutları Sonsuz Çevrimler (LOOP) Sayaç Çevrimleri (FOR) Dışlayıcı Çevrimler (WHILE) Dışlayıcı Olmayan Çevrimler (REPEAT / UNTIL) Karar Kontrol Komutları Karar kontrol komutları, program akışının yönlendirilmesi amacıyla kullanılmaktadır. Karar verme işlemlerinde başta Karşılaştırma ve Mantık Operatörleri olmak üzere çeşitli operatörlerden yararlanılmaktadır. Şartlı Dallanmalar (IF) IF komutu; belirtilen şarta göre program akışını yönlendirerek, ilgili program satırı ya da bloğunun çalıştırılmasını sağlayan kontrol komutudur. IF komutları iç-içe kullanılabilmektedir. IF komutunun kullanılmasına yönelik akış şeması ve program kodları Şekil 9.11 de görülmektedir. (a) örneğinde IN 1 girişi TRUE olması durumunda robot tarafından P3 noktasına PTP hareketi gerçekleştirilmektedir, aksi takdirde bir alt satırdan program çalıştırılmaya devam edecektir. (b) örneğinde ise; IN 30 girişi TRUE olması durumunda robot tarafından P3 noktasına, FALSE olması durumunda ise P4 noktasına PTP hareketi gerçekleştirilmektedir. 228
19 9. Bölüm: KRL ile Robot Programlama IF FALSE IF FALSE TRUE TRUE THEN THEN ELSE IF IF IF $IN[1]==TRUE THEN PTP P3 IF IF $IN[1]==TRUE THEN PTP P3 ELSE PTP P4 IF (a) (b) Şekil IF Şartlı Dallanma komutu 229
20 ERPE-METEG Çoklu Dallanma (IF / ELSE IF / ELSE / IF ) IF dallanma komutlarının iç içe kullanılması ile çoklu dallanma yapmak da mümkündür. IF komutu ile çoklu dallanma yapılmasına yönelik program kodları Şekil 9.12 de görülmektedir. Örnekte Konum değişkenin değerine göre koşulun sağlandığı program bölümü çalıştırılmaktadır. Konum değeri 1 ise robot tarafından P5 noktasına, 2 ise P6 noktasına PTP hareketi gerçekleştirilmektedir. Eğer Konum değerine eşit bir seçenek bulunamazsa ELSE satırındaki ERROR_MSG() adlı altprogram çalıştırılmaktadır. DECL INT Konum IF (Konum==1) THEN PTP P3 ELSE IF (Konum==2) THEN PTP P4 ELSE IF (Konum==3) THEN PTP P5 ELSE ERROR_MSG() IF Şekil IF/ELSE IF/ELSE komutu 230
21 9. Bölüm: KRL ile Robot Programlama Çoklu Dallanma (SWITCH ) Switch çoklu dallanma komutu, program akışının çoklu yönlendirilmesi amacıyla kullanılan bir karar kontrol komutudur. SWITCH komutunun kullanılmasına yönelik program kodları Şekil 9.13 te görülmektedir. Örnekte Konum değişkenin değerine göre CASE durum seçeneklerinden eşlenen program bölümü çalıştırılır. Konum değeri 1 ise robot tarafından P5 noktasına, 2 ise P6 noktasına PTP hareketi gerçekleştirilmektedir. Eğer Konum değerine eşit bir CASE bulunamazsa DEFAULT satırındaki ERROR_MSG() adlı altprogram çalıştırılmaktadır. SWITCH 1 2 n Diğer CASE 1 CASE 2 CASE n DEFAULT SWITCH DECL INT Konum SWITCH Konum CASE 1 PTP P5 CASE 2 PTP P6 DEFAULT ERROR_MSG() SWITCH Şekil SWITCH çoklu dallanma komutu 231
22 ERPE-METEG Çevrim Kontrol Komutları Sonsuz Çevrim (LOOP) Sonsuz çevrim, bir program bloğunun herhangi bir şart aranmaksızın sonsuz kez tekrarlanmasını sağlamaktadır. Sonsuz çevrimden istenirse; EXIT fonksiyonu kullanılarak çıkmak mümkün olabilmektedir. LOOP komutunun kullanılmasına yönelik program kodları Şekil 9.14 te görülmektedir. EXIT komutu kullanılmayan (a) örneğinde, P1 ve P2 noktalarına yapılan PTP hareketi sürekli tekrar edilmektedir. EXIT komutu kullanılan (b) örneğinde ise; Input 7 girişi TRUE olarak anahtarlanıncaya kadar P1 ve P2 noktalarına yapılan PTP hareketi sürekli tekrar edilmektedir. LOOP Çevrim Bloğu LOOP LOOP PTP P1 Vel=50% PDAT1 PTP P2 Vel=50% PDAT2 LOOP (a) LOOP PTP P1 Vel=50% PDAT1 PTP P2 Vel=50% PDAT2 IF $IN[7]==TRUE THEN EXIT IF LOOP (b) Şekil LOOP sonsuz çevrim kontrol komutu 232
23 9. Bölüm: KRL ile Robot Programlama Sayaç Çevrimi (FOR) FOR Sayaç Çevrimi sayesinde, bir program bloğu tanımlanan sayı kadar tekrarlanabilmektedir. FOR çevriminde komutların tekrar edilme sayısı bir sayaç değişkeni (iteratör) yardımıyla kontrol edilmektedir. Şekil 9.15 te FOR sayaç çevrim komutu kullanımı anlatılmaktadır. Burada i iteratör değeri 1 başlayıp n değerini alana kadar her i değeri için ilgili program bloğu çalıştırılmaktadır. FOR i = 1 TO n Çevrim Bloğu FOR DECL INT i FOR i=1 TO 5 $OUT[i] = TRUE FOR DECL INT i FOR i=10 TO 4 STEP -2 $OUT[i] = TRUE FOR (a) (b) Şekil FOR sayaç çevrim kontrol komutu FOR komutunun kullanılmasına yönelik program kodları incelendiğinde; (a) örneğinde verilen FOR çevriminde, i değişkeninin 1 den 5 e kadar alacağı 1, 2, 3, 4, 5 değerleri için çalıştırılacaktır. Çevrimin her turunda i ile temsil edilen çıkış TRUE değerine anahtarlanmaktadır. (b) örneğinde verilen FOR çevriminde, STEP -2 kullanımı sayesinde i değişkeninin 10 dan 4 e kadar alacağı 10, 8, 6, 4 değerleri için çalıştırılacaktır. Çevrimin her turunda i ile temsil edilen çıkış TRUE değerine anahtarlanmaktadır. 233
24 ERPE-METEG Dışlayıcı Çevrim (WHILE) WHILE dışlayıcı (önceden kontrollü) çevrimler, şart ifadesi TRUE sonuç verdiği sürece program bloğunun çalıştırıldığı çevrimlerdir. WHILE çevrimlerinde şart kontrolü çevrim başında yapılmaktadır. Dolayısıyla şart sağlanmıyorsa çevrim içerisindeki komutlar hiç çalıştırılmayabilir. WHILE komutunun kullanılmasına yönelik program kodları Şekil 9.16 da görülmektedir. Burada IN 22 girişi TRUE olduğu sürece, ilgili program bloğundaki komutlar çalıştırılmaktadır. FALSE WHILE TRUE Çevrim Bloğu WHILE WHILE $IN[22]==TRUE $OUT[17]=TRUE $OUT[18]=FALSE PTP HOME WHILE Şekil WHILE dışlayıcı çevrim kontrol komutu 234
25 9. Bölüm: KRL ile Robot Programlama Dışlayıcı Olmayan Çevrimler (REPEAT / UNTIL) REPEAT / UNTIL dışlayıcı olmayan (sonradan kontrollü) çevrimlerde şart kontrolü çevrim sonunda yapılmaktadır. Bundan dolayı bu çevrimlerde, program bloğu bir kez çalıştırıldıktan sonra şart kontrolü yapılmaktadır. Dolayısıyla REPEAT / UNTIL dışlayıcı olmayan (sonradan kontrollü) çevrimler şart ne olursa olsun en az bir kez çalıştırılmaktadır. Çevrim sonundaki şart ifadesi TRUE sonuç verene kadar program bloğu yeniden çalıştırılır. REPEAT / UNTIL komutunun kullanılmasına yönelik program kodları Şekil 9.17 de görülmektedir. Burada IN 22 girişi TRUE olana kadar, ilgili program bloğundaki komutlar çalıştırılmaktadır. REPEAT Çevrim Bloğu UNTIL TRUE FALSE REPEAT $OUT[17]= TRUE $OUT[18]= FALSE PTP HOME UNTIL $IN[22]== TRUE Şekil REPEAT/UNTIL dışlayıcı olmayan çevrim kontrol komutu 235
26 ERPE-METEG 9.6. Altprogramlar Altprogram, yapısal programlama dillerinde, konu ile ilgili program satırlarının bir arada bir blok içerisinde yazılmasıdır. Tüm komutların tek program içerisinde yazılması yerine belirli süreçlerin, hesapların veya işlemlerin ayrı ayrı altprogramlar halinde yazılması, geliştirilen programın daha basit ve kullanılışlı olmasını ile anlaşılırlığının artırılmasını sağlamaktadır. Yapısal programlama gereği Altprogram kullanımları program geliştirmede çeşitli avantajlar sağlamaktadır: Ana programın kısalması ile birlikte anlaşılırlık artmaktadır. Altprogramların program içerinde birden fazla kullanılması ile birlikte genel program boyu kısalmaktadır. Programlama işi kolaylaşmaktadır. Altprogramlar iki tipte tanımlanabilmektedir: Lokal (Local) Altprogramlar Genel (Global) Altprogramlar Lokal Altprogramlar Lokal Altprogramlar, bir program içerisinde tanımlanmış program bölümleridir. Şekil 9.18 de Ana_Prg() içerisinde Alt_Prg1() ve Alt_Prg2() olmak üzere 2 tane altprogram tanımı görülmektedir. DEF Ana_Prg( ) DEF Alt_Prg1( ) DEF Alt_Prg2( ) Şekil Lokal Alt Program Tanımlama Lokal Altprogram kullanılmasına ilişkin temel kurallar şunlardır: Bir program modülündeki SRC dosyası en fazla 255 Lokal Altprogramdan oluşabilmektedir. En çok 20 Lokal Altprogram iç içe tanımlanabilmektedir. Lokal Altprogramlar defalarca çağrılabilmektedir. Lokal Altprogram adı sonrasında ( ) parantezleri kullanılmalıdır. Lokal Altprogram yürütüldükten sonra, çağrıldığı satırdan sonraki satıra bir geri dönüş gerçekleşir. Lokal Altprogramın kendisine ait SRC ve DAT dosyası mevcut değildir. Bu nedenle Lokal Altprogram içerisinde tanımlanan Nokta koordinatları, Ana Programa ait DAT dosyasında kaydedilmektedir. 236
27 9. Bölüm: KRL ile Robot Programlama Global Altprogramlar Mevcut SRC ve DAT dosyası olan tüm bağımsız robot programları gerçekte birer Global Altprogramdır. Bu doğrultuda bağımsız bir robot programı, başka bağımsız bir robot programı içerisinde Global Altprogram olarak kullanılabilmektedir. Şekil 9.19 da Rob_Prg3() robot programı içerisinde Rob_Prg1() ve Rob_Prg2() olmak üzere 2 tane robot programı altprogram olarak kullanılmaktadır. DEF Rob_Prg1( ) DEF Rob_Prg2( ) DEF Rob_Prg3( ) Rob_Prg1() Rob_Prg2() Şekil Global Alt Program Tanımlama Global Altprogram kullanılmasına ilişkin temel kurallar şunlardır: Global Altprogramların kendilerine ait SRC ve DAT dosyaları mevcuttur. Global Altprogramlar birkaç kez çağrılabilmektedir. En fazla 20 Global Altprogram iç içe tanımlanabilmektedir. Her bir programın Nokta koordinatları kendilerine ait DAT dosyasında kaydedilmektedir ve sadece ilgili programda kullanılabilmektedir. Global Altprogram adı sonrasında ( ) parantezleri kullanılmalıdır. Global Altprogram yürütüldükten sonra, çağrıldığı Ana Programın ilgili satırından sonraki satıra bir geri dönüş gerçekleşir Altprogramların Sonlandırılması RETURN komutu kullanılmak suretiyle bir altprogram sonlandırılabilmektedir. Bu durumda program akışı altprogramı çağırmış olan program parçasına geri döner. Şekil 9.20 de RETURN komutu kullanılarak belirlenen şarta bağlı olarak altprogramın sonlandırılması görülmektedir. DEF Ana_Prg( ) ; Bu ana programdır Lokal_Prg( ) DEF Lokal_Prg( ) IF $IN[12]==FALSE THEN RETURN IF ; Ana programa geri dönüş Şekil Return ile Altprogram sonlandırma 237
28 ERPE-METEG Altprogramlarda Parametre Kullanımı Robot programları geliştirilirken Altprogramlara parametrik değer gönderimi mümkündür. Tablo 9.10 da görüldüğü gibi Parametre aktarımında IN ve OUT olmak üzere 2 farklı tanım kullanılarak, Değer veya Referans olarak kullanım mümkün olmaktadır. Parametre sayısının birden fazla olması durumunda ise, tanım sırasına dikkat edilmesi gerekmektedir. Tablo Altprogram Parametre Aktarma Türleri Parametre Aktarma Türü IN Açıklama Call by Value Değişken değeri sadece Ana Programdan Alt Programa aktarılır. OUT Call by Reference Değişken değeri önce Ana Programdan Alt Programa aktarılır. Alt Program sonlandığında değişken değeri Ana Programa geri aktarılır. Şekil 9.21 de altprogramlarda parametre aktarımına yönelik kodlama formatı görülmektedir. DEF Ana_Prg() Hesapla(x, y) DEF Hesapla(a:IN, b:out) Şekil Altprogramda Parametre Aktarımı 238
29 9. Bölüm: KRL ile Robot Programlama Altprogramların Fonksiyon Olarak Kullanılması Altprogramların geriye değer döndürmesi istenildiğinde, Fonksiyon olarak kullanılmaları da mümkündür. Fonksiyonlar, ana program ya da başka bir altprogram tarafından çağrılabilen, RETURN ile geriye tek bir değer döndüren ve ayrıca bir veri tipine sahip olan altprogramlardır. Ancak tanımlanmasına bağlı olarak geriye değer döndürüp döndürmeyeceği belirlenebilmektedir. Fonksiyondan geri dönen değer, fonksiyonun çağrıldığı ve adının geçtiği yere getirilir. Bu nedenle fonksiyon adının bir ifade içerisinde kullanılması gereklidir. Şekil 9.22 de bir fonksiyon tanımı ve çağrılmasına yönelik kodlar verilmiştir. DEF Ana_Prg() DECL REAL Konum, Veri Konum = Hesap(Veri) DEFFCT REAL Hesap(Veri:IN) DECL REAL Konum, Veri RETURN(Konum) Şekil Altprogramların Fonksiyon olarak kullanılması 239
30 ERPE-METEG 9.7. Uygulamalar No U 9-1 Konu KRL Dilinde Hareket Komutları Uygulaması (PTP, LIN ve CIRC) Endüstriyel Robot kolunun PA noktasından PB noktasına gitmesini PTP, LIN ve CIRC hareket komutlarını kullanarak programlayınız. Uyarılar: 1. Hareket komutlarını manuel olarak kodlamak için Kullanıcı Grubu Expert (Uzman) olmalıdır. 2. Endüstriyel Robotu T1 çalışma moduna alınız. Açılamalar: 1. PTP, LIN ve CIRC komutlarını kullanarak ilgili programı yazınız. PTP hareket komutu için %50, LIN ve CIRC komutları için 0.5m/sn hız verilerini kullanınız. 2. Programı T1 modunda Test ediniz. 3. Gerekli güvenlik tedbirlerini aldıktan sonra programı AUT çalışma modunda deneyiniz. 4. CIRC komutunda kullanılan CA(Circle Angle) değeri ve işaretine göre hareket miktarı ve yönünün değiştiğini gözlemleyiniz. 240
31 9. Bölüm: KRL ile Robot Programlama Uygulama Programı DEF s_motion_krl( ) DECL E6POS PA, Paux, PB INI ; HOME Pozisyonuna Git PTP HOME Vel= 100 % DEFAULT ; PA Baslagic Noktasi (ORIGIN) PA.x = 400 PA.y = -100 PA.z = 700 ; Paux Yardimci Nokta (AUXILIARY) Paux.x = 400 Paux.y = 0 Paux.z = 800 ; PB Son Nokta () PB.x = 400 PB.y = 100 PB.z = 700 ; Uygulama - A PTP PA LIN PB ;Origine Git (PTP Aksa Özgü Hareket Komutu) ;LIN Rota Hareket Komutu ; Uygulama - B PTP PA ;Origine Git CIRC Paux, PB, CA 90 ;CIRC Rota Hareket Komutu (CA:Circle Angle) ; Uygulama - C PTP Po ;Origine Git CIRC Paux, PB, CA -90 ;CIRC Rota Hareket Komutu (CA:Circle Angle) ; Uygulama - D PTP Po ;Origine Git CIRC Paux, PB, CA 360 ;CIRC Rota Hareket Komutu (CA:Circle Angle) ; HOME Pozisyonuna Git PTP HOME Vel= 100 % DEFAULT 241
32 ERPE-METEG No U 9-2 Konu Endüstriyel Robot Programında Malzeme Ayrıştırma Uygulaması (Sensör/Gripper) Yukarıda görüldüğü gibi; Robotun P1 noktasından aldığı malzemeyi, Siyah/Siyah Değil olma durumuna göre P2 (Kirli-Siyah) ve P3(Temiz-Siyah Değil) farklı noktalara götürüp bırakması ve sonra PHOME konumuna gitmesi sağlanacaktır. Kırmızı (Temiz) Kapak için Uygulama Uygulama Görüntüleri Siyah (Kirli) Kapak için Uygulama 242
33 9. Bölüm: KRL ile Robot Programlama Akış Şeması Başla P1 - Noktasına Git Malzeme Rengini Öğren Malzemeyi Al (Gripper Kapat) Malzeme Siyah (Kirli) mı? Hayır Evet P2 (Kirli) - Noktasına Git P3 (Temiz) - Noktasına Git Malzemeyi Bırak (Gripper Aç) P4 (HOME) - Noktasına Git Bitir 243
34 ERPE-METEG Uygulama Programı DEF s_kapak_ayristir( ) ; Lokal Değişken Tanımları DECL BOOL KONTROL ; Renk Kontrolü DECL E6POS P ; Koordinat INI ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT ;Referans Noktasına Git P.X = 277 P.Y = 327 P.Z = 474 P.A = -130 P.B = 0 P.C = 179 PTP P ; Sensörle Kapağa Yaklaş P.X = P.X + 30 LIN P ; Renk Bilgisini Öğren KONTROL=$IN[1] ; Kapaktan Uzaklaş P.X = P.X 30 LIN P ; Kapak üstü mesafeye çık P.Z = P.Z + 30 LIN P ; Kapak alma üst pozisyonuna git P.X = P.X P.Y = P.Y + 30 LIN P ;Gripper AÇ SET GRP 1 State=OPN GDAT3 ; Kapak alma alt pozisyonuna git P.Z = P.Z - 26 LIN P ;Gripper KAPAT SET GRP 1 State=CLO GDAT4 ; Yeniden Kapak alma üst pozisyonuna git P.Z = P.Z + 26 LIN P ; Renk Durumuna Göre Lokal Altprogram Seç IF KONTROL THEN ; Temiz Bırak PTP Ptemiz Vel=50 % PDAT1 Tool[0] Base[0] SET GRP 1 State=OPN GDAT1 ELSE ; Kirli Bırak PTP Pkirli Vel=50 % PDAT2 Tool[0] Base[0] SET GRP 1 State=OPN GDAT2 IF ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT 244
35 9. Bölüm: KRL ile Robot Programlama No U 9-3 Konu Karar ve Çevrim Kontrol Komutlarının Robot Programlarında Kullanılması (Çevrimsel Kapak Ayrıştırma) Robotun Platform üzerinde P1, P2, P3 ve P4 noktalarında bulunan 4 adet Kırmızı ve Siyah renkli Kapağa Koordinat Öteleme İşlemi yaparak sırasıyla erişip renklerini ayrıştırarak aldığı kapağı, Siyah/Siyah Değil olma durumuna göre Pkirli (Kirli-Siyah) ve Ptemiz (Temiz-Siyah Değil) farklı noktalara götürüp bırakması ve sonra PHOME konumuna gitmesi sağlanacaktır. Açıklamalar: 1. Bu uygulama için FOR çevrimi ve Koordinat Öteleme İşlemi kullanılacaktır. 2. Uygulama programına göre kapaklar arasında 87 mm mesafe vardır. 3. Renk Belirleme Sensörü, Gripper üzerinde olup, 1 numaralı INPUT a bağlıdır. Siyah ve Diğer Renk olarak ayırabilmektedir. Siyah Renk ise FALSE $IN[1] Değilse ise TRUE $IN[1] 245
36 ERPE-METEG Uygulama Görüntüleri 246
37 9. Bölüm: KRL ile Robot Programlama Uygulama Programı DEF s_cevrimsel_kapak_ayristir( ) ; Lokal Değişken Tanımları DECL INT TUR ; Çevrim Iteratörü DECL BOOL KONTROL ; Renk Kontrolü DECL E6POS P INI ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT FOR TUR=1 TO 4 P.X = 277 ;Referans Noktasına Git P.Y = (TUR - 1) * 87 ; Kapaklararası Mesafe:87 mm P.Z = 474 P.A = -130 P.B = 0 P.C = 179 PTP P P.X = P.X + 30 LIN P KONTROL=$IN[1] P.X = P.X 30 LIN P P.Z = P.Z + 30 LIN P P.X = P.X P.Y = P.Y + 30 LIN P ; Sensörle Kapağa Yaklaş ; Renk Bilgisini Öğren ; Kapaktan Uzaklaş ; Kapak üstü mesafeye çık ; Kapak alma üst pozisyonuna git ;Gripper AÇ SET GRP 1 State=OPN GDAT3 P.Z = P.Z - 26 LIN P ; Kapak alma alt pozisyonuna git ;Gripper KAPAT SET GRP 1 State=CLO GDAT4 P.Z = P.Z + 26 LIN P ; Yeniden Kapak alma üst pozisyonuna git IF KONTROL THEN ; Renk Durumuna Göre Lokal Altprogram Seç TEMIZ_BIRAK() ELSE KIRLI_BIRAK() IF ; FOR ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT DEF TEMIZ_BIRAK() PTP Ptemiz Vel=50 % PDAT1 Tool[0] Base[0] SET GRP 1 State=OPN GDAT1 PTP HOME Vel=100 % DEFAULT DEF KIRLI_BIRAK() PTP Pkirli Vel=50 % PDAT2 Tool[0] Base[0] SET GRP 1 State=OPN GDAT2 PTP HOME Vel=100 % DEFAULT 247
38 ERPE-METEG No U 9-4 Konu Çevrim Kontrol Komutlarının Robot Programlarında Kullanılması (Sarmal Labirent Çizimi) Yukarıda görüldüğü gibi; Robotun kağıt seviyesine inerek Sarmal Labirent çizmesi ve sonrasında PHOME konumuna gitmesi sağlanacaktır. Akış Şeması Başla Yazma Noktasına Git Kalemi Aşağı İndir (Yazma AKTİF) P.Z = P.Z - 10 Sarmal Labirent Çiz FOR X = 1 TO 10 P.X = P.X + TUR * 10-5 LIN NOKTA FOR P.Y = P.Y + TUR * 10-5 LIN NOKTA P.X = P.X + TUR * (-10) LIN NOKTA P.Y = P.Y + TUR * (-10) LIN NOKTA Kalemi Yukarı Kaldır (Yazma PASİF) P.Z = P.Z + 10 P HOME - Noktasına Git Bitir 248
39 9. Bölüm: KRL ile Robot Programlama Uygulama Programı DEF s_labirent( ) ; Lokal Değişken Tanımları DECL INT X, Y, XO, YO, ZO DECL E6POS P INI ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT ; Orijin Noktası Belirle XO = 400 YO = 200 ZO = 364 ; Yazma Temas Değeri ; Orijin Noktasına Git P.X = XO P.Y = YO P.Z = ZO + 10 PTP P ; Kalemi Aşağı İndir (YAZMA AKTİF) P.Z = P.Z - 10 LIN P ; Sarmal Labirent Çizilir FOR X=1 TO 10 P.X = P.X + TUR * 10-5 LIN NOKTA P.Y = P.Y + TUR * 10-5 LIN NOKTA P.X = P.X + TUR * (-10) LIN NOKTA P.Y = P.Y + TUR * (-10) LIN NOKTA FOR ; Kalemi Yukarı Kaldır (YAZMA PASİF) P.Z = P.Z + 10 LIN P ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT 249
40 ERPE-METEG No U 9-5 Konu Standart Fonksiyonlarla Trigonometrik Eğrilerin Çizilmesi (Sinüs Eğrisi) Yukarıda görüldüğü gibi; Robotun kağıt seviyesine inerek Sinüs Eğrisini çizmesi ve sonrasında PHOME konumuna gitmesi sağlanacaktır. Akış Şeması Başla Yazma Noktasına Git Kalemi Aşağı İndir (Yazma AKTİF) P.Z = P.Z - 10 Sinüs Eğrisi Çiz FOR X=1 TO 360 Y = SIN(X)* 100 P.X = XO + X P.Y = YO + Y LIN P C_DIS FOR Kalemi Yukarı Kaldır (Yazma PASİF) P.Z = P.Z + 10 P HOME - Noktasına Git Bitir 250
41 9. Bölüm: KRL ile Robot Programlama Uygulama Programı DEF s_sinus_egrisi() ; Lokal Değişken Tanımları DECL INT X, Y, XO, YO, ZO DECL E6POS P INI ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT ; Orijin Noktası Belirle XO = 250 YO = 200 ZO = 700 ; Orijin Noktasına Git P.X = XO P.Y = YO P.Z = ZO PTP P ; Kalemi Aşağı İndir (YAZMA AKTİF) P.Z = P.Z LIN P ; Sinus Eğirisi Çizilir FOR X=1 TO 360 Y = SIN(X)* 100 ; Y = COS(X)* 100 P.X = XO + X P.Y = YO + Y LIN P C_DIS FOR ; Kalemi Yukarı Kaldır (YAZMA PASİF) P.Z = P.Z LIN P ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT 251
42 ERPE-METEG No U 9-6 Konu Altprogramların Robot Programlarında Kullanılması Yukarıda görüldüğü gibi; Robotun P1 noktasından aldığı malzemeyi, P2 noktasına götürüp bırakması ve sonra P HOME konumuna gitmesi sağlanacaktır. Not: Kapak Taşıma uygulamasını Global ve Lokal Altprogram tanımlarından yararlanarak ayrı ayrı gerçekleştiriniz. Uygulama Programı (1. Çözüm Yöntemi: Global Altprogram Tanımları ile Programlama) DEF Kapak_Tasi( ) INI ; HOME Pozisyonuna Git PTP HOME Vel=50 % DEFAULT ; Sonsuz Cevrim LOOP Kapak_Al() ; Global Altprogram Kapak_Birak() ; Global Altprogram ; Cevrim Cikis Kontrolu IF $IN[7] THEN EXIT IF ; LOOP ; HOME Pozisyonuna Git PTP HOME Vel=50 % DEFAULT 252
43 9. Bölüm: KRL ile Robot Programlama DEF Kapak_Al( ) INI ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT PTP P1a Vel=50 % PDAT1 Tool[0] Base[0] ; Gripper AÇ (Garanti) SET GRP 1 State = OPN GDAT1 ; Input 1 i Bekle WAIT FOR ( IN 1 '' ) LIN P1b Vel=0.5 m/s CPDAT1 Tool[0] Base[0] ; Gripper KAPAT SET GRP 1 State = CLO GDAT2 LIN P1c Vel=0.5 m/s CPDAT2 Tool[0] Base[0] ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT DEF Kapak_Birak( ) INI ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT PTP P2 Vel=50 % PDAT1 Tool[0] Base[0] ; Gripper AÇ SET GRP 1 State = OPN GDAT1 ; HOME Pozisyonuna Git PTP HOME Vel= 50 % DEFAULT 253
44 ERPE-METEG Uygulama Programı (2. Çözüm Yöntemi: Lokal Altprogram Tanımları ile Programlama) DEF Kapak_Tasi( ) INI ; HOME Pozisyonuna Git PTP HOME Vel=50 % DEFAULT ; Sonsuz Cevrim LOOP Kapak_Al() ; Lokal Altprogram Kapak_Birak() ; LOkal Altprogram ; Cevrim Cikis Kontrolu IF $IN[7] THEN EXIT IF ; LOOP ; ; HOME Pozisyonuna Git PTP HOME Vel=50 % DEFAULT DEF Kapak_Al( ) ; ; Kapak Alma Lokal Altprogramı buraya yazılır. ; DEF Kapak_Bırak( ) ; ; Kapak Bırakma Lokal Altprogramı buraya yazılır. ; 254
45 9. Bölüm: KRL ile Robot Programlama 9.8. Bölüm Çalışma Soruları Soru 1. Aşağıdakilerden hangisi KRL dilinde değişken tanımlama işleminde kullanılan Basit Veri Tiplerinden biri değildir? a) INT b) FLOAT c) BOOL d) NOT Soru 2. Aşağıdakilerden hangisi KRL dilinde ÇEVRİM-DÖNGÜ oluşturmada kullanılan komutlardan biri değildir? a) LOOP/LOOP b) IF/IF c) FOR/FOR d) WHILE/WHILE Soru 3. Aşağıdakilerden hangisinde KRL dilinde kullanılan KARAR-KONTROL komutları doğru olarak verilmiştir? a) IF ve LOOP b) LOOP ve FOR c) IF ve SWITCH d) IF ve AND Soru 4. Aşağıda KRL dilinde yazılmış programa göre hangi dijital çıkışlar için TRUE değeri verilmiş olur? FOR i=10 TO 5 STEP -2 $OUT[i] = TRUE FOR a) 10, 9, 8, 7, 6, 5 b) 10, 8, 6 c) 10, 5 d) Hiçbiri Soru 5. Aşağıda verilen KRL programı için aşağıdaki ifadelerden hangisi yanlıştır? DEF ABC() DEF XXX() DEF YYY() a) ABC( ) ana programdır b) Program *.SRC (Source) uzantılı dosya içerisinde tutulmaktadır c) XXX( ) Global altprogramdır d) Programın adı ABC dir 255
46 ERPE-METEG Soru 6. Aşağıda verilen KRL programına göre, 1 numaralı Input (Giriş) değeri FALSE iken IF/IF komutu nasıl çalışır? IF $IN[1]==FALSE THEN PTP P1 ELSE LIN P1 IF a) P1 noktasına Doğrusal Rota hareketi ile gidilir b) P1 noktasına Noktadan Noktaya Aksa özgü hareket ile gidilir. c) P1 noktasına Dairesel Rota hareketi ile gidilir d) P1 noktasına gidilmez. Soru 7. Aşağıdaki KRL kodlarından hangisi Endüstriyel Robot Flanş pozisyonunu mevcut durumuna göre X ekseni etrafında 30 döndürür? a) b) c) d) P.X = P.C + 30 PTP P P.C = 30 PTP P P.C = P.C + 30 PTP P P.X = P.X+ 30 PTP P Soru 8. Programcı tarafından tanımlanabilen, tüm programlarda geçerli olan ve değerini her zaman koruyan değişkenlere ne ada verilmektedir? a) Lokal Değişkenler b) Global Değişkenler c) Sistem Değişkenleri c) Mutlak Değişkenler Soru 9. Aşağıdakilerden hangisi Sistem Değişkenlerinin özelliklerinden değildir? a) Sistem değişkenleri her zaman $ karakteri ile başlar. b) Sistem değişkenleri her zaman sorgulanabilir. c) Sistem değişkenleri her zaman geçerlidir ve değerini korur. c) Sistem değişkenleri programcı tarafından tanımlanabilir. Soru 10. Aşağıdakilerden hangisi KRL dilinde çevrimden çıkmak için kullanılan komuttur? a) RETURN b) HALT c) EXIT c) GO 256
7. Bölüm Robot Programlamada Mantıksal Fonksiyonlar
7. Bölüm Robot Programlamada Mantıksal Fonksiyonlar 7. Bölüm: Mantıksal Fonksiyonlar 7.1. Mantıksal Programlamanın Temelleri Endüstriyel Robot sisteminde çevre birimlerle olan iletişimin sağlanmasında
Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları
Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları C Programlama Dr. Serkan DİŞLİTAŞ 5.1. Atlama Komutları Program akışının yönlendirilmesinde
8. Bölüm Gripper Kontrolü
8. Bölüm Gripper Kontrolü 8. Bölüm: Gripper Kontrolü 8.1. Tutucular (Grippers) Endüstriyel robot uygulamalarında genellikle taşıma (handling) işlemlerinde yoğun bir şekilde tutucular (gripper) kullanılmaktadır.
ENDÜSTRİYEL ROBOT PROGRAMLAMA KURS BİLGİLERİ
ENDÜSTRİYEL ROBOT PROGRAMLAMA KURS BİLGİLERİ III. Grup (İlgili Alan Mezunları ve Teknik Personeller) Uzman Eğitmenler Kurs Yeri Öğr. Gör. Hüsnü YALDUZ Hitit Üniversitesi Teknik Bilimler Meslek Yüksekokulu
Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler
Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler C Programlama Dr. Serkan DİŞLİTAŞ 3.1. Sabitler Sabitler, tanımlanmasıyla birlikte program içerisinde
6. Bölüm Hareket Programlama Yöntemleri
6. Bölüm Hareket Programlama Yöntemleri 6. Bölüm: Hareket Programlama Yöntemleri 6.1. Robot Hareket Komutları Robot uygulamalarının temeli hareket uygulamalarına yöneliktir. Şekil 6.1 de Robot elindeki
HSancak Nesne Tabanlı Programlama I Ders Notları
DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar
Özyineleme (Recursion)
C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,
PASCAL PROGRAMLAMA DİLİ YAPISI
BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama
Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while
Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne
BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları
BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu
Uzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;
Endüstriyel Robot Programlama
Endüstriyel Robot Programlama (1. Baskı) Dr. Serkan DİŞLİTAŞ Endüstriyel Robot Sistemleri Endüstriyel Robot Kullanımı Endüstriyel Robot Programlama Endüstriyel Robot Uygulamaları 2015 Çorum - Türkiye Bu
Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say
İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input
Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf
İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...
idea rsbasic KOMUTLARI
idea KOMUTLARI İÇİNDEKİLER 2.1 Etiketler (Labels)... 4 2.2 Yorumlar (Comments)... 5 2.3 Semboller (Symbols)... 6 2.4 backward (geri)... 7 2.5 debug (hata ayıkla/izle)... 8 2.6 dec (azalt)... 9 2.7 do..
3. Bölüm Algoritmalar
3. Bölüm Algoritmalar Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 3.1. Veri ve Bilgi Şekil 3.1 de bilgisayar sistemin temelini oluşturan veri işlem modeli görülmektedir. Hesaplama, saklama gibi
Diziler İndisli Değişkenler
Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın
Fonksiyonlar (Altprogram)
Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.
PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.
PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011
BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.
BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir. TC programı çalıştırıldığında C++ çalışma ortamı açılır. C++ çalışma ortamında istenirse yeni bir
Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi
Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini
Matematiksel Operatörler
Matematiksel Operatörler Genel olarak matematiksel işlemlerde kullanılan operatörlerdir. Operatör Anlamı Açıklama ^ Üs Alma C^3 Matematikdeki üs operatörüdür. Verilen ilk sayının ikinci sayı kadar kuvvetini
YZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 2 C# Programlama Dili Elemanları Bu bölümde;
mikroc Dili ile Mikrodenetleyici Programlama Ders Notları
4. Operatörler İfade içerisindeki değişken ve diğer ifadelere uygulandığında yeni değerlerin elde edilmesini sağlayan ve kendilerine özel sembolik gösterimleri olan sözdizimleridir. mikroc derleyicisi
10. Bölüm Harici Çevre Birimleri Programlama
10. Bölüm Harici Çevre Birimleri Programlama 10. Bölüm: Harici Çevre Birimleri Programlama 10.1. Harici Çevre Birimleri Programlama Endüstriyel Robotlar tek başlarına çalışabildikleri gibi bir otomasyon
Bölüm 9. Altprogramlar ISBN
Bölüm 9 Altprogramlar ISBN 0-321-49362-1 Giriş Bu bölümde, programlarda sıkça kullanılan işlemlerin bir araya gruplanması ile oluşturulan altprogramlar incelenecektir. Altprogramlar sayesinde bir programda
PROGRAMLAMAYA GİRİŞ DERS 2
PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı
Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1
Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)
Algoritma ve Akış Diyagramları
Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları
OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I BÜTÜNLEME SINAVI
OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I BÜTÜNLEME SINAVI 23.01.2016 1. (6 puan) İnternetten, kod.txt isimli bir dosyayı Linux kurulu bir
BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,
BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.
Pascal Programlama Dili (2. hafta)
Pascal Programlama Dili (2. hafta) Öğr. Gör. Özgür ZEYDAN Z.K.Ü. Çevre Müh. Bölümü Đşlem Sırası Öncelik 1 2 3 4 Đşlem Not *, /, Div, Mod, And +, -, Or Eğer aynı işlemciden birden fazla
Bilgisayar Programlama MATLAB
What is a computer??? Bilgisayar Programlama MATLAB Prof. Dr. İrfan KAYMAZ What Konular is a computer??? MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi
Telefon Rehberi Uygulaması
Sayfa1 Telefon Rehberi Uygulaması Uygulama, temel düzeyde, telefon rehberi üzerinedir. Kullanıcı, telefon rehberine eklediği her bir kayıt içi ad, soyad, ev telefonu ve üç adet cep telefonu bilgisi girebilmektedir.
C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ
C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı
Yazılım Kodlama ve İ simlendirme Standartları v1.0
Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.
BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA
BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA [email protected] http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı
3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler
Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.
Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1
Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit
1 PROGRAMLAMAYA GİRİŞ
İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)
T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MEKATRONİK LABORATUVARI 2 ROBOT PROGRAMLAMA 2 / KUKA
T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MEKATRONİK LABORATUVARI 2 ROBOT PROGRAMLAMA 2 / KUKA DENEY SORUMLUSU Arş.Gör. Sertaç SAVAŞ Mayıs 2013 KAYSERİ 1. GİRİŞ Deneyde
Hafta 13 Fonksiyonlar
BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.
2 ALGORİTMA VE AKIŞ DİYAGRAMLARI
İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ
Programlama Dilleri 1. Ders 4: Diziler
Programlama Dilleri 1 Ders 4: Diziler Genel Bakış Tanım Dizilerin tanımlanması Dizilere ilk değer verilmesi Yerel ve Global diziler Dizilerin birbirine atanması Diziler ile ilgili örnekler Çalışma soruları
Göstericiler (Pointers)
C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi
Pascal Programlama Dili
Pascal Programlama Dili Öğr. Gör. Özgür ZEYDAN Z.K.Ü. Çevre Müh. Bölümü Pascal Programlarının Yapısı Program program_adı; Uses unitler type Özel veri tipleri Const Sabitler Label etiketler var değişken
BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1
BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı
ALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Yapılar ve Birlikler enum Deyimi
ALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi
Internet Programming II
Internet Programming II Elbistan Meslek Yüksek Okulu 2016 2017 Bahar Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU Kontrol deyimleri programlamanın olmazsa olmaz koşullarındandır. Şartlara (karşılaştırma) bağlı
-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı
KOCAELİ ÜNİVERSİTESİ 14.10.2016 MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı Öğretim Üyesi: Prof. Dr. Hasan OCAK Sınav Süresi: 80 dakika. Her
Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA
İçindekiler Önsöz... 5 Bölüm 1 PROGRAMLAMAYA GİRİŞ I. GİRİŞ... 17 II. PROGRAMLAMA DİLLERİ... 19 III. İŞLEMLER... 20 A. Matematiksel İşlemler... 21 B. Karşılaştırma İşlemleri... 26 C. Mantıksal İşlemler...
ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8
ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 6. BÖLÜM 2 Çok Boyutlu Diziler Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde
Dr. Fatih AY Tel: 0 388 225 22 55 [email protected] www.fatihay.net
Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 [email protected] www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)
Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım
Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı
ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA
PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar
Yrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,
Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0
Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden
ALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Karakter Dizileri Karakter Dizilerini Okumak ve Yazmak Karakter Dizilerinin Uzunluğunu
ALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon
Algoritmalar ve Karmaşıklık
Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün
C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI
C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1 PROGRAM - ALGORİTMA AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Algoritma bir sorunun
Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI
BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 5 Veri Tipleri (Devam) Yrd. Doç. Dr. Melike Şah Direkoğlu Konular Dizi Tipleri Kayıt Tipleri Birleşik Tipler Küme Tipleri İşaretçi ve Referans Tipleri Alındığı
Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN
Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince
program uc_hata implicit none integer : x(5),i
OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I FİNAL SINAVI 11.01.2016 1. (6 puan) İnternetten, kod.txt isimli bir dosyayı Linux kurulu bir bilgisayardaki
Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.
I. GİRİŞ Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır. İnsanların elle yaptığı ve yapmakta olduğu bir çok
Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...
Array (Diziler) Array Aynı tipten çok sayıda değişken topluluğudur. Birden fazla aynı tipteki değerle işlem yapmayı kolaylaştırır. X Y Score1 Score2 40 56 Grade 40 56 80 (0) (1) (2)... (13) Array tanımlama:
Algoritmalar ve Programlama. Algoritma
Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü
BİLGİSAYAR PROGRAMLAMA MATLAB
BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? 1. Matlab ve Programlama Ortamı 2. Matlab Komut Penceresi 3. Matlab de değişken tanımlama 4.
C Programlama Dilininin Basit Yapıları
Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade
C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié
Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama
C Dersleri Bölüm 3 : Program akışı
İzmir Ekonomi Üniversitesi Bilgisayar Topluluğu www.ieubt.org C Dersleri Bölüm 3 : Program akışı Sorularınız için : [email protected] Hazırlayan : Görkem PAÇACI ([email protected]) C Program
Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU
Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip
Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n
KONTROL DEYİMLERİ Kontrol deyimleri bir programın normal akıģını değiģtirmek için kullanılır. Aksi söylenmedikçe programın komut satırları birbiri ardına çalıģtırılır. Program içindeki yapılan sorgulamalara
Fonksiyonlar -Genel Test- A
1 Fonksiyonlar -Genel Test- A 1. C dilinde fonksiyon bildirimi için hangisi gereklidir? (a) Fonksiyonun döndüreceği veri tipi (b) Fonksionun adı (c) Fonksiyon parantezi ( ) (d) Hepsi 2. C dilinde fonksion
HSancak Nesne Tabanlı Programlama I Ders Notları
SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama
Matris İşlemleri Uygulaması
Matris İşlemleri Uygulaması Uygulama Konusu Uygulama 3x3 boyutlu matrislerle toplama, çıkarma ve çarpma işlemleri üzerinedir. Toplama İşlemi AA = aa iiii mmmmmm ve BB = bb iiii mmmmmm aynı tipte iki matris
[email protected] http://web.hitit.edu.tr/mustafacosar
Algoritma ve Programlamaya Giriş [email protected] http://web.hitit.edu.tr/mustafacosar İçerik Algoritma Akış Diyagramları Programlamada İşlemler o o o Matematiksel Karşılaştırma Mantıksal Programlama
BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2
PROGRAMLAMA Bir problemin çözümü için belirli kurallar ve adımlar çerçevesinde bilgisayar ortamında hazırlanan komutlar dizisine programlama denir. Programlama Dili: Bir programın yazılabilmesi için kendine
TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma
TEMEL BİLGİSAYAR BİLİMLERİ Programcılık, problem çözme ve algoritma oluşturma Programcılık, program çözme ve algoritma Program: Bilgisayara bir işlemi yaptırmak için yazılan komutlar dizisinin bütünü veya
T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI. 2011-12 Bahar Yarıyılı
T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI 2011-12 Bahar Yarıyılı ALGORİTMA VE PROGRAMLAMA BİL 133 5 AKTS Kredisi 1. yıl 1. yarıyıl Lisans Zorunlu 4 saat/hafta
BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)
BLGM108 1. BÖLÜM Problem Çözme Kavramları (Algoritma ve Akış Şemaları) 1 Yazılım Geliştirme Adımları 1. Gereksinimlerin belirlenmesi Problemin ne olduğunu anlama: sorunu çözmek için ne gereklidir, çözüm
Nesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya
/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.
Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve
R ile Programlamaya Giriş ve Uygulamalar
R ile Programlamaya Giriş ve Uygulamalar İçerik R ye genel bakış R dili R nedir, ne değildir? Neden R? Arayüz Çalışma alanı Yardım R ile çalışmak Paketler Veri okuma/yazma İşleme Grafik oluşturma Uygulamalar
Temel Bilgisayar Programlama Final Sınavı Çalışma Notları
Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak
YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta
YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin
Yrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni
Uzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri
BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9
BTP 207 İNTERNET PROGRAMCILIĞI I Ders 9 Dizi Değişkenler (Array) 2 Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1, eleman2,, elemann)
Veri Yapıları ve Algoritmalar
1 Ders Not Sistemi Vize : % 40 Final : % 60 Kaynaklar Kitap : Veri Yapıları ve Algoritma Temelleri Yazar: Dr. Sefer KURNAZ Internet Konularla ilgili web siteleri 2 Algoritma : «Belirli bir problemin çözümünde
D İ Z İ L E R A R R A Y S
D İ Z İ L E R A R R A Y S 1 Örneğin 120 adet öğrencinin adını klavyeden girip, daha sonra bunları ekrandan yazdıralım. Bunun için, her öğrenci için ayrı bir değişken tanımlanmalıdır. String ad1; String
Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir
DİZİLER (ARRAYS) Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir değişken tanımlamak gereklidir. string gun1,
ALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Karakter Dizileri Karakter Dizilerini
Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları
1 Anadolu Üniversitesi Endüstri Mühendisliği Bölümü Değişkenler ve Veri tipleri Visual Basic 6.0 Ders Notları Kaynak: İhsan Karagülle, Zeydin Pala, Visual Basic 6.0, Türkmen Kitabevi, 1999, Beyazıt İstanbul,
Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar
Bölüm 5 Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar İçindekiler 5.1 Formatlı Yazdırma............................ 34 5.2 Döngü Deyimleri............................. 34 5.2.1
Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar
elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.
Ön bilgi: Dizi tanımlayabilmeli. foreach deyimi bilinmeli. Rastgele sayılar (Random) bilinmeli. 1. Aşağıda tamsayı tipinde iki boyutlu bir dizinin nasıl tanımlandığı, bir fonksiyona parametre olarak nasıl
