Program Control PLC: SET, RST, JMP, LBL untuk Latching dan Alur Program

Apa Itu Instruksi Program Control PLC?

Instruksi program control PLC adalah kelompok instruksi yang tidak memproses nilai data, melainkan mengatur status output dan alur eksekusi program itu sendiri. Dua pasangan instruksi yang paling sering dipakai adalah SET/RST (mengaktifkan dan menonaktifkan output secara “terkunci”, disebut juga latching) dan JMP/LBL (melompati sebagian program berdasarkan kondisi tertentu).

Keduanya menjawab kebutuhan yang tidak bisa dipenuhi coil biasa (OUT). Coil biasa hanya aktif selama kondisi input-nya TRUE — begitu kondisi berubah FALSE, output langsung mati. Padahal banyak proses industri butuh output yang tetap menyala meski kondisi pemicunya hanya sekejap (misalnya tombol START yang ditekan sesaat), sampai ada perintah eksplisit untuk mematikannya. Di sinilah SET dan RST dipakai: SET mengunci output ke ON, RST mengunci output ke OFF, dan keduanya bertahan sampai instruksi yang berlawanan dieksekusi.

SET dan RST: Instruksi Latching yang Wajib Dipahami

InstruksiFungsiSifat
SETMengaktifkan (ON) sebuah bit/output dan menguncinya di kondisi ONOutput tetap ON meski kondisi input SET sudah kembali FALSE
RST/RESETMenonaktifkan (OFF) sebuah bit/output dan menguncinya di kondisi OFFOutput tetap OFF meski kondisi input RST sudah kembali FALSE

Satu aturan yang wajib dipahami di semua merek: bila SET dan RST untuk bit yang sama sama-sama aktif dalam satu scan, network yang dieksekusi terakhir yang menang. Karena itu, urutan penempatan network SET dan RST dalam program sangat menentukan perilaku sistem saat kondisi start dan stop terjadi bersamaan — biasanya RST/safety diletakkan setelah SET agar kondisi berhenti selalu diprioritaskan.

Studi Kasus Program Control PLC: Start-Up Pompa Transfer Minyak dengan Interlock Keselamatan

Studi kasus yang dipakai konsisten di kelima merek adalah sistem kontrol pompa transfer minyak (P-101) di industri Oil & Gas, memindahkan fluida dari tangki penyimpanan (T-101) ke proses berikutnya. Pompa hanya boleh menyala bila seluruh syarat keselamatan (permissive) terpenuhi:

  • Level tangki tinggi (LSH-101) tidak aktif — bukan kondisi high level
  • Level tangki rendah (LSL-101) tidak aktif — mencegah pompa berjalan kering (dry-run)
  • Tekanan discharge (PT-101 High-High) normal, tidak over-pressure
  • Valve discharge (XV-101) dalam posisi terbuka
  • Emergency Stop dalam kondisi aman (kontak NC, fail-safe — kabel putus dibaca sebagai STOP)

Kelima kondisi ini digabung jadi satu bit PERMISSIVE_OK lewat logika AND berantai. Urutan kerja program:

  1. Operator memilih mode operasi — Auto atau Manual, lewat selector switch.
  2. Program mengevaluasi PERMISSIVE_OK dari kelima kondisi keselamatan di atas, setiap scan.
  3. Mode Auto: begitu PERMISSIVE_OK aktif, RUN_LATCH langsung di-SET secara otomatis tanpa perlu tombol START.
  4. Mode Manual: RUN_LATCH baru di-SET ketika tombol START ditekan dan PERMISSIVE_OK aktif.
  5. RUN_LATCH di-RST ketika tombol STOP ditekan, atau ketika PERMISSIVE_OK menjadi tidak aktif (trip).
  6. Output pompa (RUN_P_101) tidak dikendalikan oleh RUN_LATCH saja, melainkan oleh RUN_LATCH AND PERMISSIVE_OK — sehingga pompa langsung berhenti secara real-time begitu satu saja syarat keselamatan gagal, tanpa menunggu instruksi RST latch dieksekusi.
  7. Alarm trip diaktifkan bila pompa sedang berjalan (RUN_P_101 ON) tapi PERMISSIVE_OK tiba-tiba tidak aktif — menandakan pompa berhenti karena kondisi tidak normal, bukan karena STOP manual.

Pola “output = latch AND permissive real-time” ini adalah desain interlock standar di industri proses: latch menyimpan niat untuk berjalan (operator sudah menekan START), sementara pengecekan permissive setiap scan memastikan niat itu hanya terealisasi selama kondisi benar-benar aman.

Implementasi pada Lima Merek PLC

Logika program control PLC (interlock) di atas identik di semua merek — yang berbeda adalah nama instruksi latching, cara pengalamatan I/O, dan bagaimana ia diwakili dalam ladder diagram.

Allen-Bradley Micro820 (Connected Components Workbench)

Studi kasus instruksi program control SET RST latching pada PLC Allen-Bradley Micro820 CCW

Micro820 memakai istilah OTL (Output Latch — setara SET) dan OTU (Output Unlatch — setara RST). Network 2 meng-OTL RUN_LATCH saat mode Auto dan permissive OK; Network 2b meng-OTU RUN_LATCH saat tombol STOP ditekan atau permissive tidak OK. Output pompa (Network 3) tetap dijaga lewat kombinasi RUN_LATCH AND PERMISSIVE_OK, bukan hanya RUN_LATCH — mempertahankan proteksi real-time yang sama seperti merek lain.

Siemens S7-1200/1500 (TIA Portal)

Studi kasus instruksi program control SET RESET latching pada PLC Siemens S7-1200 TIA Portal

Di TIA Portal, coil ditulis dengan simbol S (Set) dan R (Reset) langsung di ujung rung, dengan alamat memori berformat %M (misalnya %M0.1 untuk RUN_LATCH). Studi kasus ini menekankan bahwa program harus konsisten sinkron antara LAD dan SCL bila kedua bahasa dipakai berdampingan dalam satu proyek — logika interlock yang sama harus menghasilkan perilaku identik terlepas dari bahasa pemrograman yang dipakai untuk menuliskannya.

Omron CP Series (CX-Programmer)

Studi kasus instruksi program control SET RSET latching pada PLC Omron CP Series CX-Programmer

Omron memakai instruksi SET dan RSET, dengan pengalamatan I/O klasik format word.bit (misalnya kontak input di alamat 0.00–1.00, dan internal relay di area W seperti W0.00/W0.01). Strukturnya sama persis dengan Siemens dan Micro820: interlock digabung di Network 1, RUN_LATCH di-SET/RSET di Network 2, output pompa dijaga permissive real-time di Network 3.

Schneider Modicon TM221CE (EcoStruxure Machine Expert – Basic)

Studi kasus instruksi program control Set Reset latching pada PLC Schneider Modicon TM221CE

TM221CE memakai coil S (Set) dan R (Reset) dengan seluruh alamat berprefix % (%I untuk input, %M untuk internal, %Q untuk output) — konsisten dengan pola pengalamatan Schneider yang sudah dibahas pada instruksi matematika dan data handling di artikel sebelumnya.

Mitsubishi FX Series (GX Works2)

Studi kasus instruksi program control SET RST latching pada PLC Mitsubishi FX Series GX Works2

FX Series memakai instruksi SET dan RST dengan device klasik: input sebagai X (X0–X10), internal relay sebagai M (M0–M2), dan output sebagai Y (Y0–Y1). Pola network-nya identik dengan keempat merek lain — hanya penamaan device yang membedakan.

Tabel Perbandingan Instruksi Program Control PLC Antar Merek

OperasiSiemens S7-1200Omron CP SeriesMitsubishi FXSchneider TM221CEAllen-Bradley Micro820
Set/Latch (aktifkan & kunci ON)Coil S (Set)SETSETCoil S (Set)OTL (Output Latch)
Reset/Unlatch (matikan & kunci OFF)Coil R (Reset)RSETRSTCoil R (Reset)OTU (Output Unlatch)
Format alamat internal (contoh)%M0.1W0.01 (word.bit)M0 (device M)%M0.1Tag simbolik (mis. RUN_LATCH)

JMP dan LBL: Mengatur Alur Program Control PLC

Selain latching, kelompok program control PLC juga mencakup instruksi JMP (Jump) dan LBL/LABEL (Label), yang fungsinya berbeda sama sekali: bukan mengunci status output, melainkan melompati sebagian program berdasarkan suatu kondisi. Saat JMP aktif, PLC melewatkan seluruh network/rung di antara JMP dan label tujuannya tanpa mengeksekusinya sama sekali pada scan tersebut — output di dalam blok yang dilewati umumnya mempertahankan status terakhirnya, tapi perilaku detail ini bisa berbeda antar merek sehingga wajib dicek di manual masing-masing sebelum dipakai pada logika yang berkaitan dengan keselamatan.

Kegunaan paling umum JMP/LBL adalah menonaktifkan sekelompok logika yang tidak relevan untuk mode operasi tertentu — misalnya melewati blok “Mode Manual” saat sistem berjalan di Mode Auto — tanpa perlu menghapus atau memodifikasi programnya, sekaligus mempersingkat waktu scan karena network yang dilompati tidak dievaluasi. Beberapa implementasi yang umum ditemui: Mitsubishi FX Series menyediakan CJ (Conditional Jump) yang melompat ke pointer label (P0, P1, dst.) dan ditutup dengan instruksi FEND di akhir program utama; Omron menyediakan pasangan JMP(004) dan JME(005) dengan nomor lompatan yang harus dipasangkan; Siemens TIA Portal menyediakan instruksi Jump dan Label tersendiri di kategori Program Control pada LAD/FBD.

Satu catatan penting dari sisi praktik: instruksi JMP yang dipakai berlebihan cenderung membuat program sulit dibaca dan didebug, karena alur eksekusi jadi tidak berurutan secara visual (sering disebut spaghetti logic). Banyak panduan pemrograman industri modern menyarankan membatasi pemakaian JMP hanya untuk kasus yang benar-benar perlu (misalnya switching mode operasi besar), dan lebih memilih struktur terorganisir seperti function block atau subroutine untuk kebutuhan modularitas program.

Kesalahan Umum saat Memakai Instruksi Program Control PLC

1. Tidak memperhatikan urutan network SET dan RST

Ketika kondisi SET dan RST untuk bit yang sama bisa aktif bersamaan, network yang dieksekusi belakangan yang menentukan hasil akhir. Menempatkan network RST/safety sebelum SET (bukan sesudahnya) bisa membuat kondisi stop kalah prioritas dari kondisi start pada scan yang sama.

2. Hanya mengandalkan latch tanpa proteksi permissive real-time

Kesalahan desain yang cukup berbahaya: mengendalikan output langsung dari bit latch saja (RUN_LATCH → output), tanpa terus meng-AND-kan dengan kondisi permissive setiap scan. Bila desainnya seperti itu, output akan tetap ON meski satu syarat keselamatan sudah tidak terpenuhi, sampai instruksi RST eksplisit dijalankan — yang seharusnya sudah terlambat.

3. Emergency Stop tidak diwired sebagai kontak NC

E-Stop harus selalu memakai kontak Normally Closed (NC) sehingga kabel putus atau longgar otomatis terbaca sebagai kondisi stop (fail-safe). Memakai kontak NO untuk E-Stop membalik logika keselamatan: kegagalan wiring justru membuat sistem terbaca “aman”.

4. Lupa kondisi awal (first scan) saat PLC baru menyala

Bit latch yang tidak diinisialisasi eksplisit saat cold start bisa membawa nilai sisa dari sebelum PLC dimatikan (tergantung area memori retentive atau tidak). Untuk logika yang berkaitan dengan start-up peralatan berbahaya, pastikan status awal RUN_LATCH terdefinisi jelas, misalnya di-RST paksa pada first scan.

5. Memakai JMP secara berlebihan tanpa dokumentasi jelas

Program dengan banyak lompatan JMP yang saling bertumpuk menjadi sangat sulit ditelusuri saat troubleshooting, terutama oleh orang lain yang tidak menulis program aslinya. Batasi pemakaian JMP untuk kasus yang benar-benar dibutuhkan, dan beri komentar jelas di setiap titik lompatan.

Kesimpulan dan Tips Praktis

Instruksi program control PLC — SET/RST dan JMP/LBL — mengatur “perilaku” program — kapan output dikunci menyala atau mati, dan bagian mana dari program yang dieksekusi. Studi kasus interlock pompa transfer minyak di atas menunjukkan pola desain yang berlaku universal: pisahkan logika permissive (kondisi aman untuk berjalan), logika latch (niat operator untuk start/stop), dan logika output (kombinasi keduanya secara real-time) sebagai tiga lapis terpisah, bukan digabung jadi satu rung besar yang sulit ditelusuri. Beberapa tips praktis:

  • Pisahkan permissive, latch, dan output menjadi network terpisah agar mudah ditelusuri dan diuji satu per satu.
  • Jaga output dengan permissive real-time, jangan hanya mengandalkan bit latch.
  • Urutkan network RST/safety setelah SET agar kondisi stop selalu menang saat terjadi konflik dalam satu scan.
  • Selalu pakai kontak NC untuk E-Stop dan interlock keselamatan kritis lainnya.
  • Definisikan kondisi awal latch secara eksplisit untuk menghindari perilaku tak terduga saat PLC baru menyala.
  • Batasi pemakaian JMP dan beri dokumentasi jelas di setiap titik lompatan program.

Setelah memahami instruksi program control, langkah berikutnya yang berkaitan erat adalah mempelajari instruksi perbandingan (Equal, Greater Than, Less Than) yang sering dipakai bersamaan dengan SET/RST untuk membangun kondisi alarm dan setpoint.

Baca Juga:
Instruksi Bit Logic PLC: LD, AND, OR, OUT dan Cara Membaca Ladder Diagram
Instruksi Matematika PLC: ADD, SUB, MUL, DIV untuk Scaling dan Totalizer
Data Handling PLC: MOV, COP, FILL, SWAP untuk Mengelola Register
Training PLC Lengkap: Pelatihan Online & Offline Bersertifikat

FAQ Instruksi Program Control PLC

Apa perbedaan SET/RST dengan coil biasa (OUT)?
Coil biasa hanya aktif selama kondisi input-nya TRUE dan langsung mati begitu kondisi berubah FALSE. SET mengunci output tetap ON meski kondisinya sudah tidak aktif, dan RST mengunci output tetap OFF, sampai instruksi yang berlawanan dijalankan.

Apa yang terjadi bila SET dan RST untuk bit yang sama aktif bersamaan?
Network yang dieksekusi terakhir dalam urutan scan yang menentukan hasil akhir. Karena itu urutan penempatan network SET dan RST dalam program sangat berpengaruh — untuk logika keselamatan, network RST/stop sebaiknya diletakkan setelah SET.

Kenapa output pompa pada studi kasus tidak langsung dikendalikan oleh RUN_LATCH saja?
Karena bit latch hanya menyimpan “niat” untuk berjalan, bukan kondisi aman saat ini. Menggabungkan RUN_LATCH dengan permissive real-time (AND) memastikan pompa langsung berhenti begitu satu syarat keselamatan gagal, tanpa menunggu instruksi RST dijalankan.

Apa fungsi instruksi JMP dan LBL pada PLC?
JMP melompati sekelompok network/rung tanpa mengeksekusinya, menuju titik yang ditandai LBL/LABEL. Biasanya dipakai untuk menonaktifkan blok logika yang tidak relevan pada mode operasi tertentu, atau mempersingkat waktu scan dengan melewati bagian program yang tidak perlu dievaluasi.

Apakah semua PLC memiliki instruksi JMP dan LBL yang sama persis?
Tidak. Nama dan format instruksinya berbeda antar merek — misalnya CJ/pointer P pada Mitsubishi FX, atau JMP(004)/JME(005) berpasangan pada Omron — dan perilaku output di dalam blok yang dilompati bisa berbeda antar merek, sehingga perlu dicek di manual instruksi resmi sebelum dipakai pada logika kritis.

Kenapa Emergency Stop harus memakai kontak NC, bukan NO?
Supaya sistem bersifat fail-safe: bila kabel E-Stop putus atau longgar, PLC otomatis membaca kondisi tersebut sebagai sinyal stop. Bila memakai kontak NO, kegagalan wiring yang sama justru akan terbaca sebagai kondisi aman, yang berbahaya bagi operasi.

Apakah bit yang di-SET akan tetap ON setelah PLC dimatikan dan dinyalakan kembali?
Tergantung area memori tempat bit tersebut disimpan. Bila disimpan di area retentive, nilainya bertahan setelah power hilang; bila di area non-retentive, nilainya kembali ke default (biasanya OFF) saat PLC restart. Untuk logika start-up peralatan berbahaya, sebaiknya status awal didefinisikan eksplisit di luar mengandalkan perilaku retentive semata.

Related Articles

Chat Langsung dengan Kami
Staff bisaioti 1 — +62 823-3306-4821 E-Course, Offline Course, Hardware & Teknis IoT/OT Staff bisaioti 2 — +62 823-3306-4821 Training Korporat & Toko Hardware