OMRON PCM1A
Programmable Logic Controller (PLC)
Oleh : Rohendi, M.I.Kom
Instruksi MOVE – MOV(21)
Teknik Elektro STT DR. KHEZ. Mu5aqien Purwakarta
Instruksi MOVE -‐ MOV(21) digunakan untuk meng-‐copy nilai dari Source ke DesLnaLon.
Source dapat berupa konstanta (#), ataupun data yang ada di alamat tertentu dalam register IR, SR, AR, DM, HR, TC, dan LR. Sedangkan DesJnaJon adalah alamat register IR, SR, AR, DM, HR, LR. Jika kondisi eksekusi MOV(21) ON, maka data di Source (Sumber) akan di-‐copy ke DesLnaLon (Tujuan).
PerhaLan!
Instruksi MOV(21) Jdak dapat digunakan untuk mengubah nilai PV (Process Value) pada Timer/Counter.
Instruksi MOV(21) Jdak dapat digunakan untuk mengubah nilai DM6144 sampai DM6655.
Ketika kondisi Input 000.00 ON, maka konstanta #0100 akan di-copy ke DM0000, dan selanjutnya nilai dalam DM0000 akan di-copy ke HR05. Ketika kondisi Input 000.00 ON, maka konstanta #0100 akan di-copy ke DM0000, dan selanjutnya nilai dalam DM0000 akan di-copy ke HR05.
Instruksi INCREMENT – INC(38)
Instruksi ini berfungsi untuk menambah satu nilai pada operand berJpe word. Operand
dalam hal ini bisa salah satu dari register IR, SR, AR, DM, HR, dan LR.
Jika kondisi eksekusi instruksi INC(38) terpenuhi, maka nilai operand akan ditambah satu tanpa mempengaruhi bit flag Carry (CY).
Instruksi DECREMENT – DEC(39)
Teknik Elektro STT DR. KHEZ. Mu5aqien Purwakarta
Instruksi ini berfungsi untuk mengurangi satu nilai pada operand berJpe word. Operand
dalam hal ini bisa salah satu dari register IR, SR, AR, DM, HR, dan LR.
Instruksi COMPARE – CMP(20)
Instruksi
CMP(20)
berfungsi membandingkan dua buah operand berJpe word.
KeJka kondisi eksekusi instruksi ini terpenuhi, maka CMP(20) akan
membandingkan nilai
operand1
dengan nilai
operand2
. Hasil perbandingan
tersebut disimpan dalam bit flag
EQ
(EQuals),
LE
(LEss-‐than), dan
GR
(GReater-‐
than) yang menyatakan
operand1 = operand2
,
operand1 < operand2
, dan
operand1 > operand2
.
Perlu diperhaLkan !
Jika membandingkan nilai PV (Process Value) pada Timer atau Counter, maka
perlu diingat bahwa nilai PV pada Timer dan Counter adalah bilangan BCD. Jadi
nilai pembandingnya sebaiknya juga BCD agar Jdak bingung.
Instruksi Compare
v Rung 1. KeJka pertama kali dihidupkan, nilai DM0100 akan direset menjadi 0000
dengan menggunakan instruksi MOV(21) yang dieksekusi oleh bit flag First_Scan (SR253.15).
v Rung 2. Jika Input 000.00 ON, maka instruksi @INC(38) akan menaikkan nilai
DM0100 sebesar 1. Adanya tambahan karakter ‘@’ di depan menunjukkan bahwa instruksi ini didiferensiasi.
Instruksi BINARY-‐TO-‐BCD – BCD(24)
Instruksi BCD(24) berfungsi untuk
m e n g k o n v e r s i b i l a n g a n b i n a r y
( h e x a d e c i m a l ) m e n j a d i B C D
ekuivalennya. Nilai bilangan yang
dikonversi Jdak boleh melebihi 270F
hexa karena hasil konversinya akan
melebihi angka 9999. Jika hal ini terjadi
maka instruksi BCD(24) tersebut Jdak
akan dieksekusi.
Instruksi SET dan RSET
Instruksi SET dan RESET mirip sekali dengan instruksi OUTPUT dan OUTPUT NOT. Instruksi SET dan RESET mengubah kondisi bit operand-‐nya keJka kondisi e k s e k u s i n y a O N . K e J k a k o n d i s i eksekusinya OFF, kondisi bit operand-‐nya Jdak akan terpengaruh.
Instruksi JMP
Instruksi Jump – JMP(04) selalu berpasangan dengan instruksi Jump End –
JME(05). JMP digunakan untuk melewaJ bagian program tertentu dalam
program, yakni bagian program yang terletak di antara instruksi JMP(04) dan
JME(05). Kita sebut saja bagian program tersebut sebagai
jump secLon
.
Jika kondisi eksekusi JMP(04) ON, maka program akan berjalan ‘lurus’ seperJ jika
Jdak ada instruksi JMP(04). Dengan kata lain, instruksi-‐instruksi dalam jump
secJon akan dieksekusi. Tapi jika kondisi eksekusi JMP(04) OFF, maka eksekusi
program akan melompat menuju instruksi tepat di bawah instruksi JME(05),
tanpa mengubah
nilai status apapun yang ada di dalam
jump secLon
.
Animasi disamping ini merupakan
aplikasi instruksi MC (Master
Instruksi
DifferenLate Up
– DIFU(13) dan
DifferenLate Down
– DIFD(14)
digunakan untuk mengubah kondisi bit operand menjadi ON
selama 1 siklus
saja.
KeJka dieksekusi, DIFU(13) akan membandingkan kondisi eksekusi sekarang
dengan kondisi eksekusi sebelumnya. Jika kondisi eksekusi sebelumnya adalah
OFF dan kondisi eksekusi sekarang adalah ON, maka DIFU(13) akan mengakJlan
bit operand menjadi ON selama 1 siklus saja.
Kebalikan dari instruksi DIFU(13) yang mengakJlan bit operand selama 1 siklus
keJka kondisi eksekusi berubah dari OFF ke ON, maka instruksi DIFD(14) akan
mengakJlan bit operand selama 1 siklus keJka kondisi eksekusi berubah dari ON
ke OFF. Contoh berikut akan menjelaskan prinsip kerja dari DIFU(13) dan
DIFD(14).
Instruksi DIFU dan DIFD
Instruksi KEEP
I n s t r u k s i i n i d i g u n a k a n u n t u k mempertahankan kondisi bit operand berdasarkan dua kondisi eksekusi, yakni Set dan Reset. Oleh sebab itu, instruksi KEEP ini terhubung ke dua baris instruksi pengkondisi eksekusi. Jika kondisi eksekusi instruksi pada baris pertama ON (Set), maka kondisi bit operand instruksi KEEP akan ON. Dan jika kondisi eksekusi instruksi pada baris kedua ON (Reset), maka kondisi bit operand instruksi KEEP akan OFF. Jadi instruksi KEEP ini seperJ instruksi SET dan RSET yang dijadikan satu paket.
Kondisi bit operand yang digunakan instruksi K E E P J d a k d i r e s e t d a l a m i n s t r u k s i
Instruksi END dan NOP
Instruksi ini umumnya digunakan sebagai penutup program. Instruksi-‐instruksi
yang terletak di bawah instruksi END(01) Jdak akan dieksekusi oleh PLC.
Instruksi END(01) dapat diletakkan dimana saja di dalam program. Karenanya,
instruksi ini dapat digunakan untuk men-‐
debug
program. Dengan menyelipkan
instruksi END(01) pada baris tertentu di dalam program, maka berarJ kita
membatasi eksekusi program sampai baris tersebut. Setelah yakin bahwa
program berjalan benar hingga baris tersebut, kita dapat menghapus instruksi
END(01) tersebut dan memindahkannya ke bagian lain.
Jika dalam sebuah program PLC belum terdapat instruksi END(01), maka
program Jdak akan dieksekusi dan pesan kesalahan akan ditampilkan. Instruksi
END(01) mereset
flag ER
,
CY
,
GR
,
EQ
dan
LE
.
Instruksi NOP(00)