Praktikum Automasi 1 Modul 2 : Instruksi Lanjut Selain instruksi-instruksi dasar yang umumnya merupakan operasi bit atau biner, OMRON juga mempunyai instruksi-instruksi lanjut yang menggunakan sistem bilangan analog dalam heksadesimal ataupun BCD (Binary Coded Decimal). SISTEM BILANGAN Jika umumnya operasi pada PLC mengacu pada suatu bit tertentu yang diwakili 0 atau 1, maka pada instruksi lanjut ini kita akan mengacu pada suatu word atau channel tertentu. Setiap channel terdiri dari 16 digit bilangan biner yang biasanya dijabarkan dalam 4 digit bilangan heksadesimal. o Misal pada channel 000 berisi 16 bilangan biner berikut CH 000 Channel 000 Bit 00 to Bit 15 00000 1 00001 1 00002 0 00003 1 00004 1 00005 0 00006 0 00007 1 00008 1 00009 1 00010 1 00011 0 00012 0 00013 0 00014 0 00015 1 Least Significant Bit (LSB) 1 0 1 1 B (heksa) 1 0 0 1 9 (heksa) 8 7 9 B (heksa) 0 1 1 1 1 0 0 0 7 (heksa) 8 (heksa) Most Significant Bit (MSB) maka pada channel tersebut berisi : 8 7 9 B (heksa) Selain bilangan heksadesimal, bilangan dalam BCD (Binary Coded Decimal) juga digunakan. Pada BCD, nilai maksimal dari 4 digit bilangan biner ialah 9 (1001) karena bilangan desimal hanya terdiri dari bilangan 0 sampai 9. CONTOH – CONTOH INSTRUKSI LANJUT Data Movement Instructions Move – MOV (21) o Instruksi MOV mentransfer data sumber (baik data dalam channel tertentu atau konstanta heksadesimal 4 digit) ke channel tujuan. Karena itu, MOV memerlukan dua parameter yang harus ditentukan : channel sumber atau konstanta dan channel tujuan. o Simbol pada ladder Area data S: Source Channel IR, SR, AR, DM, HR, TC, LR, # MOV (21) S D: Destination Channel D IR, AR, DM, HR, LR o Diagram berikut menggambarkan operasi MOV SOURCE INPUT CH 000 Channel 000 Bit 00 to Bit 15 DESTINATION OUTPUT CH 200 00000 1 20000 1 00001 1 20001 1 00002 0 20002 0 00003 1 20003 1 00004 1 20004 1 00005 0 20005 0 00006 0 20006 0 00007 1 20007 1 00008 1 20008 1 00009 1 20009 1 00010 1 20010 1 00011 0 20011 0 00012 0 20012 0 00013 0 20013 0 00014 0 20014 0 00015 1 20015 1 Status Status Channel 200 Bit 00 to Bit 15 Dalam kasus di atas, data pada Input Channel 000 dipindah ke Output Channel 200. Data Comparison Instruction Compare – CMP (20) o Compare (CMP) digunakan untuk membandingkan data pada channel tertentu, dengan data pada channel lain, atau data berupa konstanta heksadesimal yang terdiri dari 4 digit. Karena itu dua data harus ditentukan jenisnya setelah instruksi CMP (20). o Simbol pada ladder Area data Cp 1 : First Compare Word CMP (20) IR, SR, AR, DM, HR, TC, LR, # Cp 2 : Second compare word Cp 1 Cp 2 IR, SR, AR, DM, HR, TC, LR, # o Diagram berikut menggambarkan operasi CMP # 0 0 0 0 0 0 0 1 F 0 0 1 1 1 1 1 0 0 0 0 DATA Konstanta dibandingkan dengan Channel ..15 ..14 ..13 ..12 ..11 ..10 ..09 ..08 ..07 ..06 ..05 ..04 ..03 ..02 ..01 ..00 0 0 0 0 0 # 0 0 1 1 1 0 1 F 0 1 1 0 0 0 0 CH 000 DATA Jika nilai konstanta (#01F0) sama dengan data di Channel 000, Special Relay (SR) 25506 akan ON. Jika nilai konstanta lebih besar dari data di Channel 000 SR 25505 akan ON Jika nilai konstanta lebih kecil dari data di Channel 000 SR 25507 akan ON Pada satu waktu, hanya salah satu hasil saja yang benar, maka relay 25505 (>) atau 25506 (=) atau 25507 (>) akan ON. o Berikut ini flag-flag yang sering digunakan pada instruksi compare : SR 25313 (Normally ON Flag) SR 25505 (Greater than Flag), SR 25506 (Equal flag), SR 25507 (Less than Flag). Calculation Instruction Add – ADD (30) o Simbol pada ladder Area data Au : Augend word (BCD) IR, SR, AR, DM, HR, TC, LR, # Ad : Addend word (BCD) ADD(30) Au IR, SR, AR, DM, HR, TC, LR, # R : Result word Ad R IR, AR, DM, HR, LR o ADD menjumlahkan data dari dua channel yang berbeda, atau satu channel dan satu konstanta yang akan memberikan output pada channel yang ke tiga. Karena itu, tiga parameter data harus ditentukan : augend (penjumlah), addend (yang dijumlahkan), dan result (hasil). o Operasi yang terjadi pada instruksi ADD ialah sebagai berikut : Au + Ad + CY CY R dimana CY ialah carry flag o Contoh ladder 00000 CLC (41) ADD (30) HR040 #1234 200 Dari program di atas, ketika input 00000 dinyalakan, data pada internal relay HR040 dijumlahkan dengan konstanta 1234. Hasilnya ditampilkan ke CH 200. Jika carry dihasilkan akibat penjumlahan, carry flag (SR 25504) akan ON. Catatan : supaya carry flag bisa dibaca secara urut dengan hasil (R), berikan nilai 1 pada alamat R+1, jika alamat carry flag aktif. Dalam contoh di atas, sebelum mengeksekusi ADD, carry flag/CY (special relay 25504) akan dimatikan oleh Clear Carry (CLC). Augend and addend harus dalam bentuk BCD (0 sampai 9999), jika tidak special relay 25503 (error flag) akan ON dan instruksi ADD tidak akan dieksekusi. Subtract – SUB (31) o Simbol pada ladder Area data Mi: Minuend Word (BCD) SUB(31) IR, SR, AR, DM, HR, TC, LR, # Su : Subtrahend Word (BCD) Mi Su IR, SR, AR, DM, HR, TC, LR, # R : Result Word R IR, AR, DM, HR, LR o SUB mengurangkan data di Mi dengan data di Su dan CY (carry flag - 25504), dan meletakkan hasilnya di R. o Jika hasilnya negatif, CY akan aktif (ON) dan nilai 10’s complement dari hasil sebenarnya akan diletakkan di R. Untuk mendapatkan hasil sebenarnya, kurangkan 0 dengan hasil awal yang ada di R. o Operasi yang terjadi pada instruksi SUB ialah sebagai berikut : Mi - Su - CY CY R dimana CY ialah carry flag o Contoh ladder 00000 CLC (41) SUB (31) 010 DM 0100 HR 20 Dari program di atas, ketika input 00000 dinyalakan, data pada IR 010 dikurangkan dengan data pada DM 0100. Hasilnya ditampilkan ke HR 20. Dalam contoh di atas, sebelum mengeksekusi SUB, carry flag/CY (special relay 25504) akan dimatikan oleh Clear Carry (CLC). Minuend dan subtrahend harus dalam bentuk BCD (0 sampai 9999), jika tidak special relay 25503 (error flag) akan ON dan instruksi SUB tidak akan dieksekusi. Multiply – MUL (32) o Simbol pada ladder Area data Md: Multiplicand (BCD) MUL(32) IR, SR, AR, DM, HR, TC, LR, # Mr: Multiplier (BCD) Md Mr IR, SR, AR, DM, HR, TC, LR, # R : First Result Word R IR, AR, DM, HR, LR o MUL mengalikan data di Md dengan data di Mr, dan meletakkan hasilnya di R dan R+1 (R dan R+1 harus berada di area data yang sama). o Operasi yang terjadi pada instruksi MUL ialah sebagai berikut : Md Mr R+1 R o Contoh ladder 00000 MUL (32) 010 DM 0100 HR 20 Dari program di atas, ketika input 00000 dinyalakan, data di IR 010 dikalikan dengan data di DM 0100. Hasilnya ditampilkan ke HR 20 dan HR 21. Multiplicand dan multiplier harus dalam bentuk BCD (0 sampai 9999), jika tidak special relay 25503 (error flag) akan ON dan instruksi MUL tidak akan dieksekusi. Divide – DIV (33) o Simbol pada ladder Area data Dd: Dividend Word (BCD) MUL(32) IR, SR, AR, DM, HR, TC, LR, # Dr: Divisor Word (BCD) Dd Dr IR, SR, AR, DM, HR, TC, LR, # R : First Result Word (BCD) R IR, AR, DM, HR, LR o DIV membagi data di Dd dengan data di Dr, dan meletakkan hasilnya di R dan R+1 (R dan R+1 harus berada di area data yang sama). R berisi hasil pembagian, sedangkan R+1 berisi sisa bilangan yang tidak habis dibagi. o Operasi yang terjadi pada instruksi DIV ialah sebagai berikut : Sisa Hasil R+1 R Dr Dd o Contoh ladder 00000 DIV(33) 010 DM 0100 HR 20 Dari program di atas, ketika 00000 dinyalakan, data di IR 010 dibagi dengan data di DM 0100. Hasilnya ditampilkan di HR 20 dan sisanya di HR 21. Dividend dan divisor harus dalam bentuk BCD (0 sampai 9999), jika tidak special relay 25503 (error flag) akan ON dan instruksi DIV tidak akan dieksekusi. Logic Instructions Logical And – ANDW (34) o Simbol pada ladder Area Data I1 : Input 1 ANDW (34) IR, SR, AR, DM, HR, TC, LR, # I2 : Input 2 I1 I2 IR, SR, AR, DM, HR, TC, LR, # R : Result Word R IR, AR, DM, HR, LR o ANDW mengerjakan operasi logika AND antara masing – masing bit dalam I1 dan I2, lalu hasilnya diletakkan di R. o Operasi yang terjadi pada instruksi ANDW ialah sebagai berikut : 15 I1 1 00 0 0 1 1 0 0 1 1 0 0 1 1 0 0 15 I2 0 00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 15 R 0 1 1 00 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 Logical Or – ORW (35) o Simbol pada ladder Area Data I1 : Input 1 ORW (35) I1 I2 R IR, SR, AR, DM, HR, TC, LR, # I2 : Input 2 IR, SR, AR, DM, HR, TC, LR, # R : Result Word IR, AR, DM, HR, LR o ORW mengerjakan operasi logika OR antara masing – masing bit dalam I1 dan I2, lalu hasilnya diletakkan di R. Operasi yang terjadi pada instruksi ORW sama persis dengan yang terjadi pada operasi ANDW, kecuali perbedaaan operasi logika saja. Shift Instructions Shift Register – SFT(10) o Simbol pada ladder I Area Data St : Starting word SFT(10) P IR, SR, AR, HR, LR E: End word St R E IR, SR, AR, HR, LR I = Data Input P = Pulse R = Reset o Operasi SFT dikendalikan oleh kondisi dari I, P, dan R. Jika SFT dieksekusi, inputan pada P berupa pulsa, dan kondisi R off, maka status/kondisi I dimasukkan ke bit LSB dari starting word. Lalu semua bit dalam register akan bergeser, dan bit MSB dari end word (bit terakhir) akan hilang. Misal : jika I = ON, maka nilai 1 akan masuk ke dalam register. Sebaliknya, jika I = OFF, maka nilai 0 akan masuk ke dalam register. Starting word + 1 Starting word Status I 00 01 02 15 00 01 02 End Word 15 00 01 02 15 Data hilang