BAB V PEMROGRAMAN PLC PENDAHULUAN Setelah mempelajari bagian-bagian dan prinsip kerja PLC maka selanjutnya akan dibahas tentang pemrograman PLC. Karena PLC bersifat softwire, di mana fungsi kontrol dapat secara mudah diubah dengan mengganti programnya menggunakan suatu software, sehingga pemrograman merupakan hal yang sangat penting dalam pembahasan tentang PLC. Bahasa pemrograman PLC mudah dipahami sebab sebagian besar berkaitan dengan operasi-operasi logika dan penyambungan. Pada bagian ini akan dibahas model pemrograman PLC (difokuskan pada ladder diagram dan kode mnemonik) dan contoh-contoh sederhana pada beberapa jenis PLC. Setelah mengikuti perkuliahan ini, mahasiswa diharapkan dapat membuat programprogram sederhana dalam bentuk ladder diagram dan kode mnemonik dengan fungsifungsi dasar dan menengah pada beberapa jenis PLC.
5.1 MODEL PEMROGRAMAN Menurut Setiawan (2006:9), berkaitan dengan pemrograman PLC, ada lima model atau metode yang distandarnisasi penggunaannya oleh IEC (International Electrical Commission) 61131-3, yaitu: 1. Instruction List (Daftar Instruksi) – Pemrograman dengan menggunakan instruksiinstruksi bahasa level rendah (mnemonic), seperti LD/STR, NOT, AND, dan sebagainya. 2. Ladder Digram (Diagram Tangga) - Pemrograman berbasis logika relai, cocok digunakan untuk persolan-persoalan kontrol diskrit yang kondisi input outputnya hanya memiliki dua kondisi yaitu ON dan OFF, seperti pada sistem kontrol konveyor, lift, dan motor-motor industri. 3. Function Block Diagram (Diagram Blok Fungsional) – Pemrograman berbasis aliran data secara grafis. Banyak digunakan untuk tujuan kontrol proses yang melibatkan perhitungan-perhitungan kompleks dan akuisisi data analog. 4. Sequential Function Charts (Diagram Fungsi Sekuensial) – Metode grafis untuk pemrograman terstruktur yang banyak melibatkan langkah-langkah rumit, seperti pada bidang robotika, perakitan kendaraan, batch control, dan sebagainya.
72
5. Structured Text (Teks Terstruktur) – Pemrograman ini menggunakan statemenstatemen yang umum dijumpai pada bahasa level tinggi (high level programming) seperti If/Then, Do/While, Case, For/Next, dan sebagainya. Dalam aplikasinya, model ini cocok digunakan untuk perhitungan-perhitungan matematis yang kompleks, pemrosesan tabel dan data, serta fungsi-fungsi kontrol yang memerlukan algoritma khusus. Walaupun hampir semua vendor PLC telah mendukung kelima model pemrograman tersebut, tetapi secara de facto sampai saat ini yang sangat luas penggunaannya terutama di industri adalah Ladder Diagram. Alasan utamanya adalah karena diagram ini mirip dengan diagram kontrol elektromekanis yang sebelumnya sudah banyak digunakan di industri. Dalam pembahasan selanjutnya akan dijelaskan metode pemrograman diagram tangga (ladder diagram programming) dan metode daftar instruksi.
Metode
pemrograman tangga menyediakan suatu cara untuk menuliskan program, yang kemudian dapat dikonversikan menjadi kode mesin oleh suatu software, sehingga dapat digunakan oleh mikroprosesor PLC. Dengan metode daftar instruksi, kode-kode mnemonik dipergunakan, di mana tiap-tiap kode diasosiasikan dengan sebuah elemen diagram tangga. Diagram tangga adalah suatu diagram mirip anak tangga yang menggambarkan urutan kerja dari sistem kontrol. Ladder diagram menggunakan simbol standar untuk merepresentasikan elemen rangkaian dan fungsi dalam sistem kontrol. Ladder diagram terdiri dari dua garis vertikal. Antara kedua garis vertikal tersebut terdapat simbol-simbol switch contact normally open (NO), switch contact normally closed (NC), timer, counter, fungsi, dan output (coil). Menurut Bolton (2004: 63), dalam menggambarkan diagram tangga, diterapkan konvensi-konvensi tertentu: -
Garis-garis vertikal diagram merepresentasikan rel-rel daya, di mana di antara keduanya komponen-komponen rangkaian tersambung.
-
Tiap-tiap anak tangga mendefenisikan sebuah operasi di dalam proses kontrol.
-
Sebuah diagram tangga dibaca dari kiri ke kanan, dan dari atas ke bawah.
-
Tiap-tiap anak tangga harus dimulai dengan sebuah input atau sejumlah input, dan harus berakhir dengan setidaknya sebuah output.
-
Perangkat-perangkat listrik ditampilkan dalam kondisi normalnya.
73
-
Sebuah perangkat tertentu dapat digambarkan pada lebih dari satu anak tangga. Sebagai contoh, sebuah relai dapat menyalakan satu atau lebih perangkat listrik.
-
Seluruh input dan ouput diidentifikasikan melalui alamat-alamatnya, notasi yang digunakan
bergantung
pada
pabrik
PLC
yang
bersangkutan.
Alamat
ini
mengindikasikan lokasi input atau output di dalam memori PLC. Sebagai contoh: Mitsubishi mengawali alamat untuk input dengan sebuah huruf X dan untuk output dengan huruf Y, misalnya alamat input X400, dan alamat output Y430. Toshiba juga menggunakan sebuah huruf X dan huruf Y, misalnya alamat input X000, dan alamat output Y000. Siemens mengawali alamat-alamat input dengan huruf I dan output dengan huruf Q, misalnya: I0.1, dan Q2.0. Sprecher+Schuh mengawali alamat-alamat input dengan huruf X dan output dengan huruf Y, misalnya: X001, dan Y001. Allen Bradley menggunakan huruf I dan O, misalnya: I:21/01, dan O:22/01. Telemechanique menggunakan huruf I dan O, misalnya: I0.0, dan O0.0. OMRON mengawali alamat input dengan 000. dan output dengan 010. Misalnya: input 000.00, dan output 010.00. Dalam PLC-PLC yang berukuran lebih besar, yang memiliki sejumlah rak untuk kanal-kanal input dan output, rak-rak tersebut diberi nomor. Misalnya Allen Bradley PLC5, rak yang memuat prosesor diberi nomor 0 dan alamat rak-rak lainnya diberi nomor 1, 2, 3, dan seterusnya sesuai dengan posisi yang ditetapkan untuk saklar-saklar yang bersangkutan. Masing-masing rak dapat dapat memuat beberapa buah modul dan tiap-tiap modul menangani sejumlah input dan atau output. Sistem pengalamatan Allen Bradley PLC-5 diperlihatkan pada Gambar 5.1. I = input O = output
Nomor modul
x: x x x / x x Nomor rak
Nomor terminal
Gambar 5.1. Sistem pengalamatan Allen Bradley PLC-5 Dengan Siemens SIMATIC S5, input-input dan output-output ditata dengan kelompokkelompok yang terdiri dari 8 unit. Tiap-tiap kelompok disebut sebagai byte dan tiap-tiap terminal input atau output di dalam sebuah kelompok disebut sebagai bit. Dengan
74
demikian, masing-masing input atau output memiliki alamat yang disusun dalam konteks nomor byte dan nomor bit, secara efektif mengindikasikan nomor sebuah modul yang diikuti oleh nomor sebuah terminal, dengan tanda titik (.) yang memisahkan antara kedua nomor tersebut. Sistem pengalamatan Siemens SIMATIC S5 diperlihatkan pada Gambar 5.2. I = input Q = output
x x x.x Nomor byte
Nomor bit
Gambar 5.2. Sistem pengalamatan Siemens SIMATIC S5 Selain menggunakan sistem pengalamatan untuk mengidentifikasikan input dan output, PLC-PLC juga menggunakannya untuk mengidentifikasikan piranti-piranti internal yang dibuat oleh software, seperti relay (saklar), timer (pewaktu), dan counter (pencacah).
5.2 FUNGSI-FUNGSI LOGIKA 5.2.1 Ladder Diagram Fungsi-fungsi Logika Banyak kontrol yang mengharuskan dilakukannya tindakan-tindakan pengontrolan ketika suatu kombinasi dari kondisi-kondisi tertentu terpenuhi. Hal tersebut dapat digambarkan dengan sebuah persamaan atau gerbang-gerbang logika. Gerbang-gerbang logika yang biasa digunakan, antara lain: 1. AND Gerbang AND pada sebuah diagram tangga diperlihatkan pada Gambar 5.3. Untuk menghasilkan Output ON (logika 1) maka Input A dan Input B harus dalam keadaan ON.
Gambar 5.3. Diagram tangga untuk sebuah sistem gerbang AND 2. OR Sistem gerbang OR pada sebuah diagram tangga diperlihatkan pada Gambar 5.4. Untuk menghasilkan Output ON (logika 1) maka Input A atau Input B (atau keduanya) dalam keadaan ON.
75
Gambar 5.4. Diagram tangga untuk sebuah sistem gerbang OR 3. NOT Sistem gerbang NOT pada sebuah diagram tangga diperlihatkan pada gambar 5.5.
Gambar 5.5. Diagram tangga untuk sebuah sistem gerbang NOT 4. NAND Gambar 5.6 memperlihatkan sebuah diagram tangga yang mengimplementasikan sebuah gerbang NAND. A A B
AND
NOT
atau
NOT
OR B
NOT
(a)
(b) Gambar 5.6. a. Gerbang NAND,
b. Diagram tangga untuk sebuah sistem gerbang NAND
76
5. NOR Gambar 5.7 memperlihatkan sebuah diagram tangga untuk sebuah sistem berbasis gerbang NOR.
(a)
(b) Gambar 5.7. a. Gerbang NOR, b. Diagram tangga untuk sebuah sistem gerbang NOR 6. XOR Sebuah gerbang OR menghasilkan output ketika salah satu atau kedua inputnya berada dalam kondisi 1. Akan tetapi, pada situasi-situasi tertentu, dibutuhkan sebuah gerbang yang dapat menghasilkan output ketika salah satu di antara kedua inputnya, tidak keduanya sekaligus, bernilai 1. Gerbang seperti ini disebut gerbang OR Eksklusif atau XOR. Salah satu cara untuk mendapatkan gerbang semacam ini adalah dengan menggabungkan gerbang-gerbang NOT, AND, dan OR seperti Gambar 5.8.
(a)
(b)
Gambar 5.8. a. Gerbang XOR. b. Diagram tangga untuk sebuah sistem gerbang XOR. 5.2.2 STL (Statement List) atau Kode Mnemonik Kode-kode yang digunakan berbeda-beda antara satu pabrik PLC dengan pabrik PLC lainnya, meskipun sebuah standar IEC 1131-3 telah diajukan (Bolton, 2004: 74). Walaupun kode mnemonik setiap pabrik PLC berbeda, tetapi diagram tangganya hampir
77
semua sama. Tabel 5.1 memperlihatkan mnemonik beberapa jenis PLC untuk berbagai kode instruksi. Tabel 5.1. Mnemonik untuk berbagai kode instruksi pada beberapa PLC OMRON
IEC 1131-3
Mitsubishi
Siemens
Telemecanique
Specher+Schuh
LD
LD
LD
A
L
STR
LD NOT
LDN
LDI
AN
LN
STR NOT
AND
AND
AND
A
A
AND
AND NOT
ANDN
ANI
AN
AN
AND NOT
OR
O
OR
O.
O
OR
OR NOT
ORN
ORI
ON
ON
OR NOT
OUT
ST
OUT
=
=
OUT
Contoh: 1. Diagram tangga untuk sebuah sistem gerbang AND seperti pada Gambar V-3, dapat dibuat kode mnemoniknya seperti pada Tabel 5.2 (dengan memperhatikan sistem pengalamatan setiap tipe PLC). Tabel 5.2. Kode mnemonik dari diagram tangga sistem gerbang AND pada Gambar 5.3. Instruksi Langkah
Mitsubishi
Siemens
Telemecanique
OMRON
0
LD
X400
A
I0.1
L
I0.1
LD
000.00
1
AND
X401
A
I0.2
A
I0.2
AND
000.01
2
OUT
Y430
=
Q2.0
=
Q0.0
OUT
010.00
2. Diagram tangga untuk sebuah sistem gerbang XOR seperti pada Gambar 5.8(b), dapat dibuatkan diagram tangganya dengan notasi Mitsubhisi, Siemens, dan OMRON seperti pada Gambar 5.9. Kode mnemoniknya seperti pada Tabel 5.3.
Gambar 5.9. Diagram tangga sistem gerbang XOR 78
Tabel 5.3. Kode mnemonik dari diagram tangga sistem gerbang XOR pada Gambar 5.9 Instruksi Langkah
Mitsubishi LD ANI LDI AND ORB OUT
0 1 2 3 4 5 6 7 8
X400 X401 X400 X401 Y430
Siemens A( A AN ) O( AN A ) =
I0.0 I0.1
I0.0 I0.1
OMRON LD AND NOT LD NOT AND OR LD OUT
000.00 000.01 000.00 000.01 010.00
Q2.0
3. Diagram tangga pada Gambar 5.10 dapat dipandang sebagai dua blok rangkaian yang di-AND-kan dengan menggunakan notasi Mitsubhisi, Siemens, dan OMRON. Daftar instruksi/kode mnemoniknya seperti pada Tabel 5.4.
Gambar 5.10. Diagram tangga dua blok yang di-AND-kan Tabel 5.4. Kode mnemonik untuk diagram tangga pada Gambar 5.12. Langkah 0 1 2 3 4 5 6 7 8
LD OR LD OR ANB OUT
Mitsubishi X400 X402 X401 X403 Y430
Instruksi Siemens A( A O. ) A( A O. ) =
I0.0 I0.2
I0.1 I0.3
OMRON 000.00 LD 000.02 OR 000.01 LD 010.03 OR AND LD 010.00 OUT
Q2.0
79
5.3 PENGUNCI (LATCHING) DAN RELAI INTERNAL 5.3.1 Pengunci (Latching) Seringkali terdapat situasi-situasi di mana output harus tetap berada dalam keadaan hidup meskipun input telah terputus. Istilah rangkaian latching (pengunci) dipergunakan untuk rangkaian-rangkaian yang mampu mempertahankan dirinya sendiri (self-maintaining),
dalam
artian
bahwa
setelah
dihidupkan,
rangkaian
akan
mempertahankan kondisi ini hingga input lainnya diterima. Contoh sebuah rangkaian latching diperlihatkan pada Gambar 5.11.
Gambar 5.11. Rangkaian latching. Ketika saklar input A menutup, dihasilkan sebuah output. Akan tetapi, ketika terdapat sebuah output, saklar lain yang diasosiasikan dengan output juga menutup.Saklar ini bersama dengan saklar input A membentuk suatu sistem gerbang logika OR. Sehingga, walaupun input A membuka, rangkaian akan tetap mempertahankan output dalam keadaan menyala. Satu-satunya cara untuk melepaskan kontak-kontak saklar output adalah dengan mengaktifkan kontak B yang normal-menutup. 5.3.2 Relai Internal Di dalam PLC terdapat elemen-elemen yang digunakan untuk menyimpan data, yaitu bit-bit, dan menjalankan fungsi-fungsi relai, yaitu dapat disambungkan dan diputuskan, dan dapat menyambungkan dan memuuskan perangkat-perangkat lain. Oleh karena itu, dipergunakanlah sebutan relai internal (internal relay/IR). Relai internal sebenarnya bukanlah sebuah perangkat relai dalam pengertian sebenarnya, namun hanya merupakan bit-bit di dalam memori penyimpanan data yang “berperilaku” sebagaimana layaknya sebuah relai. Di dalam pemrograman, relai-relai internal dapat diperlakukan sebagaimana layaknya relai-relai input dan output eksternal. Untuk membedakan output dari relai internal dengan output dari perangkat relai eksternal, pada kedua jenis output diberikan alamat yang berbeda. Sebagai contoh, Mitsubishi mempergunakan istilah relai sekunder (auxiliary relay) atau marker dengan notasi alamat M100, M101, dan 80
seterusnya. Siemens mempergunakan istilah flag dan notasi pengalamatan F0.0, F0.1, dan seterusnya. Sprecher+Schuh menggunakan istilah kumparan dan notasi C001, C002, dan seterusnya. Telemechanique menggunakan istilah bit dan notasi B0, B1, dan seterusnya. Toshiba menggunakan istilah relai internal dan notasi R000, R001, dan seterusnya. AllenBradley menggunakan istilah penyimpanan bit (bit storage) dan notasi pada produk PLC5-nya, B3/001, B3/002, dan seterusnya. OMRON menggunakan pengalamatan 20000, 20001, dan seterusnya. Contoh penggunaan relai internal dalam program dengan notasi Siemens dan OMRON, diperlihatkan pada Gambar 5.12.
Gambar 5.12.
Contoh penggunaan relai internal. a. Dengan notasi Siemens, b. Dengan notasi OMRON.
5.4 FUNGSI TIMER DAN COUNTER 5.4.1 Timer Di dalam banyak aplikasi kontrol, pengontrolan waktu adalah sesuatu yang sangat dibutuhkan. Sebagai contoh, sebuah motor atau pompa yang dikontrol untuk beropersi selama interval waktu tertentu, atau diaktifkan setelah beroperasi selama periode waktu tertentu. Contoh lain, adalah pengaturan waktu nyala/padam dari suatu lampu lalu-lintas. Itulah sebabnya PLC dilengkapi dengan timer untuk mendukung kebutuhan tersebut. Timer mengukur (atau menghiyung) waktu dengan menggunakan piranti clock internal CPU. Pendekatan paling umum bagi sebuah timer, dipandang sebagai sebuah relai yang ketika kumparannya dialiri arus akan mengaktifkan kontak-kontaknya setelah jangka waktu yang telah ditetapkan. Dengan demikian, timer berperan sebagai sebuah output untuk sebuah anak tangga program, mengontrol kontak-kontaknya yang terletak pada anak tangga yang lain (seperti digambarkan pada Gambar 5.13a). Ada juga yang 81
memperlakukan timer sebagai sebuah blok delay (fungsi tunda) yang ketika disisipkan ke sebuah anak tangga akan menunda sinyal-sinyal dari anak tangga tersebut untuk mencapai output (Gambar 5.13b).
Gambar 5.13. Penggunaan Timer pada program Terdapat beberapa bentuk timer yang dapat dijumpai pada PLC. Pada PLC-PLC berukuran kecil, biasanya hanya terdapat satu bentuk saja, yaitu timer on-delay. Timer semacam ini akan hidup/ON setelah satu periode waktu tunda yang telah ditetapkan (Gambar 5.14a). Timer off-delay berada dalam keadaan hidup selama periode waktu yang telah ditetapkan dan kemudian mati (Gambar 5.14b). Durasi waktu yang ditetapkan untuk sebuah timer biasa disebut waktu preset, dan besarnya adalah kelipatan dari satuan atau basis waktu yang digunakan. Beberapa basis waktu yang biasa digunakan adalah 10 ms, 100 ms, 1 s, 10 s dan 100 s. Misalnya pada PLC OMRON, basis waktunya adalah 100 ms (0,1 s), sehingga nilai preset sebesar 5 maka periode waktu tunda sama dengan 0,5 s.
Hidup/ON
Hidup/ON
Mati/OFF
Mati/OFF delay ON
Waktu (a)
delay OFF
Waktu (b)
Gambar 5.14. Sinyal Timer. (a). ON-delay, (b). OFF-delay Gambar 5.15 memperlihatkan contoh ladder diagram dan kode mnemonik suatu sistem yang menggunakan fungsi timer dari dua pabrikan PLC, yaitu PLC Mitsubishi dan Siemens. Gambar 5.15a (PLC Mitsubishi) memandang timer sebagai sebuah output yang
82
memberikan reaksi tertunda setelah kontak-kontak input diaktifkan. Pada Gambar 5.15b (PLC Siemens), timer dipandang sebagai sebagai komponen tunda pada sebuah anak tangga. Simbol di dalam kotak menandakan pada gambar mengindikasikan sebuah timer on-delay, dengan angka 0 yang muncul setelah huruf T mengindikasikan operasi penundaan pengaktifan (on-delay). Waktu tunda yang dipilih adalah 5 s.
Gambar 5.15. Program timer. (a). Dengan PLC Mitsubishi, (b). Dengan PLC Siemens Gambar 5.16 memperlihatkan diagram tangga untuk PLC Allen Bradley. Sinyal DN (done) adalah sinyal yang dihasilkan ketika timer telah menyelesaikan aktivitasnya, sinyal EN (enable) adalah sinyal yang merupakan replika dari sinyal input ke timer dan digunakan
untuk
mengaktifkan
kontak-kontak
selama
sekejap.
Gambar
5.17
memperlihatkan contoh program dengan PLC OMRON dengan waktu tunda 5 s (#0050 artinya 5 s, karena basis waktunya = 0,1 s).
Gambar 5.16. Diagram tangga timer pada PLC Allen Bradley 000.00
TIM 001 #0050 TIM001
N S
010.00
LD 000.00 TIM 001 #0050 LD TIM001 OUT 010.00
N : Timer number S : Set value
Gambar 5.17. Ladder diagram dan kode mnemonik program timer pada PLC OMRON 83
Sejumlah PLC, selain timer on-delay, juga dilengkapi dengan timer off-delay secara built-in. Sebagai contoh, Gambar 5.18 yang memperlihatkan diagram tangga dan kode mnemonik suatu program timer dengan menggunakan PLC Siemens. Pada simbol yang terdapat di dalam gambar kotak yang merepresentasikan timer, angka 0 diletakkan sebelum huruf T yang mengindikasikan bahwa timer yang bersangkutan adalah timer offdelay.
Gambar 5.17. Diagram tangga dan kode mnemonik timer off-delay dengan PLC Siemens Gambar 5.18 memperlihatkan program PLC Allen Bradley yang menggunakan sebuah timer off-delay. Basis waktu ditetapkan pada 1:0 (1 detik). Preset ditetapkan pada nilai 10 sehingga waktu preset timer = 10 det. Pada anak tangga pertama, output timer dihasilkan oleh kontak-kontak EN yang berarti tidak terdapat delay antara terjadinya input ke I:012/01 dan output dari EN. Akibatnya, kontak-kontak EN pada anak tangga ke-2 menutup seketika setelah input diberikan ke I:012/01, dan output O:013/01 akan ON. Kontak-kontak TT (timer timing) pada anak tangga ke-3 diaktifkan segera setelah timer berjalan. Karena timer ini adalah timer off-delay, timer dimulai dalam keadaan menyala selama 10 detik sebelum akhirnya mati/OFF. Akibatnya, output O:013/02 berada dalam keadaan aktif selama 10 detik.. Kontak-kontak DN, yang normal-tertutup (NC) membuka setelah ada sinyal input sehingga output O:013/03 aktif setelah 10 detik berlalu. Output O:013/04 adalah kebalikan dari output O:013/03.
Gambar 5.18. Penerapan sebuah timer off-delay pada PLC Allen Bradley 84
Jika pada suatu PLC tidak tersedia timer off-delay, timer on-delay dapat digunakan untuk membentuk sebuah timer off-delay. Misalnya dengan menggunakan PLC OMRON maka diperoleh ladder diagram seperti pada Gambar 5.19. 000.00
TIM001
010.00
Input: 000.00 Waktu
010.00
TIM 001 #0100
TIM001
10 detik
Output: 010.00
Waktu
Waktu
Gambar 5.19. Penerapan timer off-delay dengan menggunakan timer on-delay PLC OMRON 5.4.2 Counter Sebuah counter (piranti pencacah/penghitung) memungkinkan dilakukannya pencacahan/perhitungan terhadap sejumlah sinyal input. Hal ini dapat terjadi di dalam situasi di mana, misalnya, dari sekian banyak barang yang bergerak di atas sebuah ban berjalan, sejumlah tertentu di antaranya harus dibelokkan dan dimasukkan ke dalam sebuah kotak. Contoh lain, jumlah putaran suatu batang poros, atau jumlah orang yang melewati suatu pintu harus dihitung. Counter-counter yang digunakan di dalam penerapan semacam ini tersedia sebagai komponen yang built-in di dalam PLC. Sebuah counter ditetapkan untuk menghitung suatu nilai (atau jumlah) tertentu, dan ketika pulsa-pulsa dengan jumlah tersebut telah diterima, counter akan mengoperasikan kontak-kontaknya. Sehingga, jika yang digunakan adalah kontak normalterbuka (NO), kontak tersebut akan menutup, sedangkan jika kontak normal-tertutup (NC) maka kontak tersebut akan membuka. Ada dua tipe counter, yaitu up-counter (pencacah-maju), dan down-counter (pencacah-mundur). Down-counter melakukan perhitungan mundur dari suatu nilai yang ditetapkan hingga mencapai nol, dengan kata lain, setiap kejadian (event) akan mengurangi suatu nilai yang ditetapkan. Ketika counter mencapai nilai nol, keadaan kontak-kontaknya akan berubah. Sebagian besar PLC menyediakan fasilitas pencacahan mundur ini. Up-counter menghitung maju dari nol hingga mencapai suatu nilai yang ditetapkan, dengan kata lain, setiap kejadian akan menyebabkan nilai perhitungan bertambah satu. Ketika counter mencapai nilai yang ditetapkan, keadaan kontakkontaknya berubah. 85
Beberapa pabrik PLC mengimplementasikan operasi pencacahan mundur (CTD), atau maju (CTU), dan operasi kembali ke kondisi awal (reset) dan memperlakukan counter sebagaimana layaknya sebuah kumparan relay, yaitu sebagai output sebuah anak tangga program. Dengan cara ini, counter dapat dipandang terdiri dari dua elemen dasar, yaitu yang pertama kumparan relay untuk menghitung pulsa-pulsa input, dan yang kedua kumparan relay untuk mengembalikan counter ke posisi awalnya (reset), sedangkan kontak-kontak yang diasosiasikan dengan counter berada pada anak tangga lainnya. PLC Mitsubhisi merupakan salah satu pabrikan yang menerapkan hal ini, contoh programnya seperti pada Gambar 5.20a. Elemen reset dan dan elemen pencacah digabungkan dalam satu blok yang sama yang melingkupi dua anak tangga. Nilai perhitungan ditetapkan mealalui penggunaan sebuah instruksi program K. Pabrikan PLC yang lain memperlakukan counter sebagai blok antara pada anak tangga di mana sinyal berasal. PLC Siemens merupakan salah satu contoh PLC yang menerapkan pendekatan ini (contoh programnya dan daftar instruksi programnya, seperti pada Gambar 5.20b). Dengan program tangga ini, counter dianggap sebagai sebuah elemen delay pada jalur menuju output. Counter melakukan reset apabila sebuah input diterima oleh I0.1 dan melalukan pencacahan terhadap pulsa-pulsa input ke I0.0. Instruksi CU mengindikasikan bahwa counter ini adalah sebuah counter pencacah-maju (untuk mengindikasikan sebuah counter pencacah-mundur, digunakan instruksi CD). Nilai yang ditetapkan untuk counter diindikasikan oleh bilangan pada instruksi LKC. X400
RESET X401
C460 K10 OUT
C460
Y430
LD RST LD OUT K LD OUT
(a)
X400 C460 X401 C460 10 C460 Y430
I0.0
C0 CU
10
CV
I0.1
Q2.0 R
A CU LKC A R =
I0.0 C0 10 I0.1 C0 Q2.0
(b)
Gambar 5.20. Program counter. (a). Dengan PLC Mitsubishi, (b). Dengan PLC Siemens Gambar 5.21 memperlihatkan program yang sama pada Gambar 5.20, tapi dengan menggunakan PLC Allen Bradley [a], dan dengan PLC OMRON [b] (dilengkapi instruksi END supaya dapat disimulasikan).
86
I:012/01 DN
CTU C5:1 Preset 10
CTU: Hitung maju, (Catatan: CTD = hitung mundur) C5:1 adalah alamat counter Preset adalah nilai penghitungan counter yang telah ditetapkan
CU
C5: 1 DN
O:013/01
I:012/02
C5:1
CU: Output yang digunakan untuk melakukan penghitungan maju dan diberi nama count up enable (aktifkan pencacah maju). Output ini akan tetap menghasilkan sinyal untuk kontak-kontaknya hingga penghitungan telah mencapai nilai yang ditetapkan. DN: Output yang menghasilkan sinyal untuk kontak-kontaknya ketika penghitungan telah mencapai nilai yang ditetapkan.
(a)
000.00
CNT
LD LD CNT
000
000.01
#0010 CNT000
010.00
000.00 000.01 000 #0010 LD CNT000 OUT 010.00 END
END (b)
Gambar 5.21. Program counter.
(a). Dengan PLC Allen Bradley, (b). Dengan PLC OMRON
5.5 REGISTER GESER (SHIFT REGISTER) Register geser sering digunakan untuk piranti elektronik yang dapat memuat data. Register geser adalah sejumlah relai internal yang dikelompokkan bersama-sama, sehingga memungkinkan bit-bit yang tersimpan di dalamnya dapat dipindahkan atau digeser dari satu relai ke relai berikutnya. Sebuah register geser membutuhkan tiga input, satu untuk memuatkan data ke dalam lokasi pertama di dalam register, satu sebagai instruksi untuk menggeser data dari satu lokasi ke lokasi lainnya, dan satu untuk melakukan reset atau mengosongkan data yang berada di dalam register. Sebagai illustrasi, perhatikan Gambar 5.22. Input In 3 dipergunakan untuk melakukan reset terhadap register geser, yaitu menjadikan semua nilai relainya 0. Input In 1 87
digunakan sebagai input ke relai internal pertama di dalam register. Input In 2 digunakan untuk menggeser (shift) status relai-relai internal sejauh satu lokasi. Tiap-tiap relai internal di dalam register, yaitu IR 1, IR 2, IR 3, dan IR 4, disambungkan ke sebuah output, yaitu Out 1, Out 2, dan Out 4. Anggaplah bahwa kita mulai dengan memberikan input sesaat ke In 3, sehingga semua relai internal memiliki nilai awal 0, mengakibatkan status keempat relai internal IR 1, IR 2, IR 3, IR 4, adalah 0, 0, 0, 0. Ketika In 1 menutup sekejap, terdapat input 1 ke relai internal pertama, sehingga status relai-relai internal IR 1, IR 2, IR 3, IR 4, menjadi 1, 0, 0, 0. Kontak IR 1 menutup, sehingga Out 1 bernilai 1 (ON). Jika kita memberikan input sekejap ke In 2, bit 1 akan tergeser dari relai internal pertama ke relai internal kedua, sehingga status relai-relai internal IR 1, IR 2, IR 3, IR 4, menjadi 0, 1, 0, 0. Hal ini mengakibatkan IR 2 menutup, sehingga yang ON adalah Out 2. Demikian seterusnya, seperti diperlihatkan pada Gambar 5.22b.
Gambar 5.22. Register geser Pengelompokan relai-relai internal untuk membentuk sebuah register geser dilakukan secara otomatis oleh PLC ketika fungsi register geser diimplentasikan. Dengan menggunakan PLC Mitsubishi, dan OMRON, hal ini dapat dilakukan dengan menggunakan kode pemrograman SFT. 88
5.6 PENANGANAN DATA Timer, counter, dan relai internal adalah perangkat-perangkat yang menangani data dalam bentuk bit-bit tunggal, yaitu data yang berupa sebuah sinyal hidup/mati (ON/OFF). Register geser menagani sejumlah bit dengan menggunakan sekelompok relai internal yang disambungkan satu sama lain. Blok data yang ada dalam register dapat dimanipulasi.
Operasi-operasi
PLC
yang
melibatkan
blok-blok
data
yang
merepresentasikan berbagai nilai, di mana blok semacam ini disebut sebagai word. Penanganan data melibatkan aktivitas-aktivitas memindahkan informasi numerik yang tersimpan di dalam salah satu lokasi word memori ke lokasi word lainnya, membandingkan nilai-nilai data, dan melaksanakan operasi-operasi aritmetika sederhana. Instruksi untuk menangani data, umumnya terdiri atas beberapa komponen, yaitu instruksi penanganan data, alamat sumber (S: source) dari mana data akan diambil, dan alamat tujuan (D: destination) ke mana data akan dipindahkan. Pada bagian ini, akan dibahas dua instruksi penangan data yang sering digunakan dalam operasi PLC, yaitu pemindahan data, dan pembandingan data. 5.6.1 Pemindahan Data Instruksi yang umum digunakan untuk memindahkan data adalah MOV. Instruksi ini menyalin sebuah nilai dari suatu alamat ke alamat lainnya. Gambar 5.23 mengilustrasikan praktek yang umum dilakukan, yaitu menggunakan satu anak tangga program untuk tiap-tiap operasi pemindahan data, dengan menampilkan bentuk yang digunakan oleh Mitsubishi, Allen Bradley, dan OMRON. Pada gambar tersebut diperlihatkan bahwa ketika terdapat sebuah input ke In, perpindahan terjadi dari suatu tempat sumber yang telah ditetapkan ke suatu alamat tujuan yang telah ditetapkan.
Gambar 5.23. Pemindahan data: (a). Mitsubishi, (b). Allen Bradley (c). OMRON
89
5.6.2 Pembandingan Data Instruksi pembandingan data memerintahkan pada PLC untuk membandingkan dua buah nilai data. Jadi, PLC dapat diminta untuk membandingkan sebuah nilai digital yang dibaca dari suatu perangkat input dengan sebuah nilai lainnya yang berada dalam sebuah register. Sebagai contoh, kita mungkin menghendaki agar suatu aktivitas dimulai ketika input dari sebuah sensor suhu memberikan suatu nilai digital yang kurang daripada nilai yang telah ditetapkan, yang tersimpan di dalam sebuah register data PLC. PLC secara umum dapat melakukan perbandingan untuk bentuk-bentuk kurang dari, sama dengan, kurang dari atau sama dengan, lebih besar dari, lebih besar dari atau sama dengan, dan tidak sama dengan. Gambar 5.24a memperlihatkan format perbandingan lebih besar dari yang digunakan oleh Mitsubishi, di mana S mengindikasikan sumber dari nilai yang akan dibandingkan, dan D mengindikasikan tujuan atau nilai yang akan dijadikan pembanding. Jika nilai sumber lebih besar dari nilai tujuan, output yang diberikan adalah 1. Sedangkan Gambar 5.24b memperlihatkan format perbandingan lebih besar dari yang digunakan oleh Allen Bradley, di mana sumber yang dibandingkan adalah nilai dari timer 4.0 dan data pembandingnya adalah 400. Gambar 5.24c memperlihatkan format pembandingan data yang digunakan PLC OMRON, yang membandingkan Cp1 dan Cp2, dan hasilnya disimpan di flag GT (Great Than), EQ (Equal), dan LT (Less Than) pada area SR (special relay). Contoh program aplikasi, akan dijelaskan pada Bab VI (Program Aplikasi PLC). In
>
S
D
GRT T4.0.ACC 400
(a)
(b)
CMP(20) Cp1 Cp2 (c)
Gambar 5.24. Pembandingan data: (a). Mitsubishi, (b). Allen Bradley (c). OMRON
5.7 PENGONTROLAN KONTINYU Pengontrolan secara kontinyu terhadap suatu variabel, seperti pengontrolan suhu di dalam sebuah ruangan, dapat dilakukan dengan cara membandingkan nilai actual yang diterima untuk variabel tersebut dengan suatu nilai yang ditetapkan (set point), dan 90
kemudian menghasilkan sebuah output (misalnya mengaktifkan sebuah pemanas) untuk memperkecil selisih antara kedua nilai tersebut. Gambar 5.25 memperlihatkan diagram kotak pengontrolan kontinyu. Nilai aktual variabel dibandingkan dengan suatu nilai yang ditetapkan, dan dibangkitkan suatu sinyal yang merepresentasikan perbedaan kedua nilai ini atau yang mengindikasikan kesalahan (error). Pengontrol kemudian menerima sinyal tersebut dan menghasilkan output ke sebuah aktuator untuk menginisasikan suatu tindakan untuk memperkecil selisih ini. Sistem semacam ini disebut sebagai sistem kontrol loop-tertutup. r
+
e
Pengontrol
-
u
p
Aktuator
Proses
c
m Pengukuran
r = Nilai yang ditetapkan (set point/referensi) m = Nilai aktual (pengukuran) e = Sinyal yang merepresentasikan perbedaan nilai aktual dan nilai yang ditetapkan u = Sinyal ke aktuator untuk memperkecil perbedaan nilai aktual dan nilai ditetapkan p = Tanggapan yang diberikan aktuator untuk memeperkecil selisih variabel c = Variabel yang dikontrol di dalam proses.
Gambar 5.25. Pengontrolan kontinyu Gambar 5.26 memperlihatkan konfigurasi yang dapat digunakan dengan sebuah PLC untuk menerapkan kontrol loop-tertutup. Diasumsikan bahwa tanggapan aktuator dan nilai-nilai yang terukur merupakan sinyal-sinyal analog, dan oleh karena itu sistem ini harus menggunakan unit konversi analog ke digital (ADC) dan digital ke analog (DAC). Nilai yang ditetapkan
A D C
PLC
D A C
Variabel yang dikontrol Aktuator
Proses
Pengukuran Nilai aktual
Gambar 5.26. PLC untuk kontrol loop-tertutup Dengan kontrol proporsional, pengontrol memberikan sebuah output ke aktuator yang sebanding (proporsional) dengan selisih antara nilai aktual dan nilai yang ditetapkan dari variabel yang dikontrol. Bentuk kontrol semacam ini dapat dihasilkan oleh PLC yang memiliki fasilitas aritmetika dasar. Nilai yang ditetapkan dan nilai aktual biasanya 91
merupakan sinyal-sinyal analog, sehingga harus dikonversikan ke dalam bentuk digital. Kemudia kedua nilai tersebut diperkurangkan, dan selanjutnya dikalikan dengan sebuah konstanta proporsional KP sehingga menghasilkan sebuah output, yang setelah dikonversikan ke analog merupakan sinyal koreksi (perbaikan) yang diberikan ke aktuator: Output pengontrol = KP x eror Kontrol proporsional memiliki satu kelemahan akibat terdapatnya lag waktu di dalam sistem, sinyal koreksi yang diberikan ke aktuator cenderung mengakibatkan nilai aktual variabel selalu berubah-ubah (berosilasi) di sekitar nilai yang ditetapkan. Yang dibutuhkan adalah sebuah sinyal koreksi yang magnitudonya dapat dijadikan semakin kecil seiring dengan semakin dekatnya nilai aktual variabel terhadap nilai yang ditetapkan. Hal ini dapat dilakukan dengan menggunakan kontrol PID (proporsionalintegral-derivatif), di mana pengontrol memberikan sebuah sinyal koreksi yang dihitung dari sebuah sinyal proporsional (pengontrol P), sebuah elemen yang terkait dengan nilainilai sebelumnya dari variabel yang dikontrol (pengontrol I), dan sebuah elemen yang terkait dengan laju perubahan variabel yang bersangkutan (pengontrol D). Dengan kontrol integral, outpur pengontrol sebanding dengan nilai integral eror terhadap waktu. Output pengontrol = KI x integral eror terhadap waktu Dengan kontrol derivatif, output pengontrol sebanding dengan laju perubahan eror. Output pengontrol = KD x laju perubahan eror Istilah tuning merujuk kepada aktivitas menentukan nilai-nilai yang optimal untuk KP, KI, dan KD yang digunakan pada suatu sistem kontrol tertentu. Fasilitas kontrol PID biasanya ada pada PLC yang besar.
92
5.8 SOAL-SOAL LATIHAN 1. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Gambar L5-1 memperlihatkan sebuah anak tangga, yang: (i) Ketika hanya kontak input 1 diaktifkan, terdapat sebuah output. (ii) Ketika hanya kontak input 2 diaktifkan, terdapat sebuah output. A. (i) B, (ii) B B. (i) B, (ii) S C. (i) S, (ii) B D. (i) S, (ii) S 2. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Gambar L5-2 memperlihatkan sebuah anak tangga, yang menghasilkan sebuah output ketika:
(i). Input 1 dan input 2 keduanya diaktifkan. (ii). Salah satu di antara input 1 dan input 2 tidak diaktifkan. A. (i) B, (ii) B B. (i) B, (ii) S C. (i) S, (ii) B D. (i) S, (ii) S 3. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Gambar L5-3 memperlihatkan sebuah anak tangga, yang menghasilkan sebuah output ketika:
(i). Input 1 dan input 2 keduanya diaktifkan. (ii). Input 1 atau input 2 diaktifkan. A. B. C. D.
(i) B, (i) B, (i) S, (i) S,
(ii) B (ii) S (ii) B (ii) S 93
Pilihan jawaban untuk soal 4 sampai 7 diberikan oleh sistem-sistem gerbang logika: A. AND B. OR C. NOR D. NAND 4. Bentuk sistem gerbang logika manakah yang direpresentasikan oleh sebuah diagram tangga dengan dua saklar normal-terbuka (NO) yang tersambung secara paralel? 5. Bentuk sistem gerbang logika manakah yang direpresentasikan oleh sebuah diagram tangga dengan sebuah anak tangga yang memiliki dua saklar normal-tertutup (NC) yang tersambung secara paralel? 6. Bentuk sistem gerbang logika manakah yang direpresentasikan oleh sebuah diagram tangga dengan sebuah anak tangga yang memiliki dua saklar normal-tertutup (NC) yang tersambung secara seri? 7. Bentuk sistem gerbang logika manakah yang direpresentasikan oleh sebuah diagram tangga dengan sebuah anak tangga yang memiliki dua saklar normal-terbuka (NO) yang tersambung secara seri? Gambar L5-4 untuk soal No. 8 sampai 10. In 1
In 2
IR 1
In 3
In 4
IR 2
IR 1
IR 2
Out 1
Gambar L5-4
8. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Relai internal IR 1 diaktifkan ketika: (i). Terdapat sebuah input ke In 1. (ii). Terdapat sebuah input ke In 3. A. B. C. D.
(i) B, (i) B, (i) S, (i) S,
(ii) B (ii) S (ii) B (ii) S 94
9. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Relai internal IR 2 diaktifkan ketika: (i). Relai internal IR 1 telah diaktifkan. (ii). Input 4 diaktifkan. A. (i) B, (ii) B B. (i) B, (ii) S C. (i) S, (ii) B D. (i) S, (ii) S 10. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Terdapat sebuah output dari Out 1 ketika: (i). Hanya terdapat input ke In 1, In 2, dan In 4. (ii). Hanya terdapat input ke In 3, dan In 4. A. (i) B, (ii) B B. (i) B, (ii) S C. (i) S, (ii) B D. (i) S, (ii) S Soal No. 11 sampai 13 merujuk ke Gambar L5-5. Timer
In 1 In 1
Timer
Out 1
Out 1
Gambar L5-5
11. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Ketika terdapat sebuah input ke In 1 maka: (i). Timer menjadi aktif. (ii). Terdapat sebuah output dari Out 1. A. B. C. D.
(i) B, (i) B, (i) S, (i) S,
(ii) B (ii) S (ii) B (ii) S 95
12. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Timer mulai aktif ketika: (i). Terdapat sebuah aoutput dari Out 1. (ii). Input In 1 berhenti menyala. A. (i) B, (ii) B B. (i) B, (ii) S C. (i) S, (ii) B D. (i) S, (ii) S 13. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Ketika terdapat sebuah input ke In 1, output Out 1 menjadi: (i). Aktif selama waktu preset timer. (ii). Tidak aktif selama waktu preset timer. A. (i) B, (ii) B B. (i) B, (ii) S C. (i) S, (ii) B D. (i) S, (ii) S Soal No. 14 sampai 16 merujuk ke Gambar L5-6.
14. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Ketika counter ditetapkan pada nilai perhitungan 5, terdapat sebuah output dari Out 1 setiap kali: (i). In 1 telah menutup sebanyak 5 kali. (ii). In 2 telah menutup sebanyak 5 kali. A. B. C. D.
(i) B, (i) B, (i) S, (i) S,
(ii) B (ii) S (ii) B (ii) S 96
15. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). (i). Anak tangga pertama menghasilkan kondisi yang diperlukan agar counter dapat melakukan reset. (ii). Anak tangga kedua menghasilkan kondisi yang diperlukan untuk membangkitkan pulsa-pulsa yang akan dihitung. A. (i) B, (ii) B B (i) B, (ii) S C. (i) S, (ii) B D. (i) S, (ii) S 16. Tentukan apakah masing-masing pernyataan di bawah ini benar (B) atau salah (S). Ketika terdapat sebuah input ke In 1: (i). Kontak-kontak counter pada anak tangga ketiga menutup. (ii). Counter siap menghitung pulsa-pulsa dari In 2. A. (i) B, (ii) B B. (i) B, (ii) S C. (i) S, (ii) B D. (i) S, (ii) S Soal-soal No. 17 sampai 21 berkaitan dengan sebuah register geser 4-bit yang melibatkan relai-relai internal IR1, IR2, IR3, dan IR4, yang ditetapkan berada pada keadaan awal 0, 0, 0, 0. 17. Ketika terdapat sebuah pulsa input 1 ke output OUT register geser, relai-relai internal register geser memperlihatkan status: A. 0001 B. 0010 C. 0100 D. 1000 18. Segera setelah sebuah pulsa input 1 ke output OUT register geser, terdapat sebuah pulsa input ke SHIFT register geser. Relai-relai internal kemudian memperlihatkan status: A. B. C. D.
0001 0010 0100 1000 97
19. Dengan terdapatnya sebuah pulsa input 1 yang kontinyu ke OUT register geser, sebuah pulsa input diberikan ke SHIFT register. Relai-relai internal akan memperlihatkan status: A. 0011 C. 0110 C. 1100 D. 0010 20. Dengan terdapatnya sebuah pulsa input 1 yang kontinyu ke OUT register geser, dua pulsa input diberikan ke SHIFT register. Relai-relai internal akan memperlihatkan status: A. 0001 D. 0010 C. 1100 D. 1110 21. Dengan sebuah pulsa input 1 ke OUT register geser, terdapat sebuah pulsa input ke SHIFT, diikuti oleh sebuah pulsa input ke RESET. Relai-relai internal akan memperlihatkan status: A. 0000 E. 0010 C. 0100 D. 1000 22. Buatlah diagram tangga, dan kode mnemonik sistem di bawah ini, dengan cara yang digunakan pada PLC Mitsubishi, Siemens, Telemecanique, Allen Bradley dan Omron. a. Dua buah saklar normal-terbuka (NO) yang harus menutup dua-duanya agar sebuah motor dapat beroperasi. b. Dua buah saklar normal-terbuka (NO) yang salah satunya harus menutup agar sebuah kumparan/relai dapat dialiri listrik dan mengoperasikan sebuah aktuator. c. Sebuah motor yang dijalankan dengan menekan sebuah tombol mulai (Start) yang akan dikembalikan ke posisi awalnya oleh mekanisme pegas, dan motor akan tetap bekerja hingga sebuah tombol berhenti (Stop), yang juga didukung oleh mekanisme pegas, ditekan.
98
d. Sebuah lampu yang akan menyala apabila terdapat sebuah input dari sensor A atau sensor B. e. Sebuah lampu yang akan menyala apabila tidak terdapat input ke sensor. f. Sebuah katup solenoid yang akan diaktifkan apabila sensor A menrima sebuah input. 23. Buatlah diagram tangga, dan kode mnemonik (PLC Mitsubishi, Siemens, Allen Bradley dan Omron) untuk tiap-tiap sistem yang melaksanakan aktivitas-aktivitas: a. Mengaktifkan sebuah output 5 detik setelah diterimanya sebuah input dan mempertahankan output tetap menyala selama durasi input tersebut. b. Mengaktifkan
sebuah
output
selama
durasi
input
yang
diterima
dan
mempertahankan output tetap menyala selama 5 detik sesudahnya. c. Mengaktifkan sebuah output selama 5 detik setelah diterimanya sebuah sinyal input. 24. Buatlah diagram tangga, dan kode mnemonik (PLC Mitsubishi, Siemens, Allen Bradley dan Omron) untuk tiap-tiap sistem yang melaksanakan aktivitas-aktivitas: a. Menghasilkan sebuah output setelah sebuah sensor sel cahaya memberikan 10 pulsa input yang merepresentasikan 10 objek yang terdeteksi bergerak melewati sensor tersebut. b. Menghasilkan sebuah output ketika jumlah orang yang berada di dalam sebuah ruangan toko mencapai 100 orang, dan secara terus-menerus terdapat orang yang masuk dan meninggalkan ruang toko.
99