Instruksi CMP(20) berfungsi membandingkan dua buah operand bertipe word. Ketika 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 diperhatikan!

  • 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 tidak bingung.
  • Sebaiknya langsung memproses hasil perbandingan instruksi CMP(20) sebelum instruksi lain dijalankan karena mungkin saja bit flag EQ, LE, dan GR mengalami perubahan nilai.

Contoh Program

cmp

Rung 1. Ketika pertama kali dihidupkan, nilai DM0100 akan direset menjadi 0000 dengan menggunakan instruksi MOV(21) yang dieksekusi oleh bit flag First_Scan (SR253.15).

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.

Rung 3. Secara kontinyu, program membandingkan nilai DM0100 dengan 5. Jika nilainya kurang dari 5, maka Output 010.01 akan ON. Jika nilainya samadengan 5, maka Output 010.00 akan ON. Dan jika nilainya lebih dari 5, maka Output 010.02 akan ON.

Selamat belajar!