KP @ P.T. Indoserako Sejahtera Part VII : Closing Words

By : Giovanni Sutanto NIM 132 05 038

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, karena atas berkat dan rahmat-Nya, penulis akhirnya dapat menyelesaikan penyusunan kumpulan blog KP @ P.T. Indoserako ini.

Penulis juga mengucapkan terima kasih atas perhatian para pembaca dan permohonan maaf, karena banyak kekurangan di sana-sini dalam blog ini. Penulis berharap supaya blog ini dapat berguna bagi para pembaca, untuk menambah pengetahuan, untuk memberikan gambaran tentang P.T. Indoserako, dan lain sebagainya. Tak lupa penulis mohon saran dan kritik demi perbaikan blog ini.

Berhubung penulis akan pergi ke Jepang untuk mengikuti program pertukaran pelajar, penulis juga mohon doa supaya bisa tetap membawa nama baik ITB dan Indonesia selama menjalani program ini.

Untuk teman-teman 2005, semoga sukses untuk yang akan segera lulus dalam jangka waktu setahun ke depan ini. Tetaplah berkarya di dunia elektroteknik yang kita cintai ini dan ukirlah nama kalian setinggi-tingginya di Bumi ini. Sampai jumpa tahun depan.

Untuk teman-teman 2006, salam kenal, karena mungkin tahun depan kita akan berkuliah bersama.

Untuk teman-teman dari angkatan 2006, 2007, dan seterusnya, semoga blog-blog dari kami angkatan 2005 ini bisa membantu kalian dalam memilih tempat Kerja Praktek yang tepat.

Regards,



Giovanni Sutanto
NIM 132 05 038

KP @ P.T. Indoserako Sejahtera Part VI : Organisasi Perusahaan

By : Giovanni Sutanto NIM 132 05 038

Postingan kali ini tidak terlalu bersifat teknik. Namun cukup penting untuk diperhatikan jika ingin menjadi wirausahawan di bidang elektroteknik.

P.T. Indoserako terdiri dari beberapa divisi. Divisi-divisi tersebut di antaranya adalah Sales & Marketing, Engineer & Teknisi, Finance & Accounting, Purchasing/Pembelian, dan Gudang.

Tugas dari divisi-divisi tersebut dapat dijelaskan secara singkat sebagai berikut. Divisi Sales & Marketing bertugas untuk menjaga hubungan dengan pelanggan-pelanggan lama, dan mencari pelanggan-pelanggan baru yang potensial. Divisi Engineer & Teknisi bertugas menyelesaikan proyek-proyek dari pelanggan. Divisi Finance & Accounting bertugas membuat pembukuan, mengurusi perpajakan, dan lain sebagainya. Divisi Purchasing bertugas melakukan pembelian komponen-komponen yang diperlukan untuk penyelesaian proyek, baik dari dalam maupun luar negeri. Divisi Gudang bertugas melakukan penyimpanan komponen-komponen yang telah dibeli secara sistematis di gudang dan melakukan pencatatan stok gudang.

Setiap divisi tersebut mempunyai peranan yang penting dan harus bekerja sama satu sama lain supaya tujuan perusahaan bisa tercapai. Bayangkan jika Divisi Sales & Marketing tidak berhasil memperoleh proyek untuk dikerjakan; sekalipun perusahaan memiliki engineer-engineer terbaik, tentu tidak akan ada gunanya. Atau jika staf Gudang tidak bekerja dengan baik sehingga penyimpanan komponen-komponen asal-asalan dan tidak sistematis, tentunya akan sangat merepotkan dan menghambat engineer dalam instalasi. Oleh karena itu, perlu ada kerjasama dan koordinasi yang baik dari setiap divisi tersebut.

KP di P.T. Indoserako sungguh menggugah hati penulis untuk menjadi wirausahawan di bidang elektroteknik.

Regards,

Giovanni Sutanto
NIM 132 05 038

KP @ P.T. Indoserako Sejahtera Part V : SCADA

By : Giovanni Sutanto NIM 132 05 038

SCADA (Supervisory Control And Data Acquisition) adalah interface antara manusia (user) dengan controller (biasanya PLC), yang memungkinkan user untuk melakukan monitoring proses (pengawasan pada nilai variabel-variabel proses yang dibaca oleh sensor dan dikumpulkan oleh controller) dan memberikan perintah pengendalian pada controller (controller kemudian mengendalikan aktuator) dari suatu tempat yang terpusat (ruang kendali/control room).

SCADA telah mengalami perkembangan, dari yang dulunya berupa papan dengan indikator-indikator lampu dan tombol-tombol, menjadi tampilan grafis yang interaktif di layar komputer dengan bantuan beberapa software. Selama kerja praktek, penulis sempat mempelajari dua buah software yang jika dikombinasikan dapat berfungsi sebagai SCADA, yaitu KEPServerEx dan In Touch Wonderware.

KEPServerEx merupakan salah satu contoh software OPC (OLE (Object-Linking and Embedding) for Process Control) Server, yang berfungsi sebagai server (penyedia data) dalam komunikasi data secara serial dua arah antara komputer dengan Master dari sistem PLC melalui salah satu protokol fieldbus. Komunikasi data ini antara lain adalah melakukan scanning terhadap nilai variabel yang ingin diamati oleh user (pengambilan data) dan mengubah nilai suatu variabel sesuai keinginan user (pengiriman data). Protokol fieldbus sendiri ada beberapa macam, di antaranya Modbus TCP dan Ethernet/IP. Untuk lebih jelasnya mengenai protokol-protokol ini, mungkin bisa ditanyakan kepada teman-teman angkatan 2005 yang mendalami SCADA selama Kerja Prakteknya, contohnya Saudara Khrisna (KP di Total E & P), Saudara Pradipta (KP di Schneider), dan Saudara Mahathir Firman (KP di Schneider).

Sedangkan software In Touch Wonderware berfungsi untuk memberikan tampilan grafis di layar komputer untuk user seperti lampu-lampu indikator, display angka, ilustrasi ketinggian cairan dalam tangki, dan lain sebagainya, yang terkait dengan variabel-variabel proses yang di-scan oleh KEPServerEx dan tombol-tombol atau nilai masukan dari user yang terkait dengan variabel-variabel yang akan dikendalikan melalui komunikasi data oleh KEPServerEx. Tampilan pada In Touch Wonderware diprogram oleh programmer sedemikian sehingga dapat memudahkan user dalam pengawasan dan pengendalian proses (user-friendly). Contoh tampilan SCADA pada software In Touch Wonderware adalah sebagai berikut :

Pada SCADA di atas, tinggi fluida di dalam “Reactor Batch” senantiasa di-update dengan hasil pembacaan sensor ketinggian fluida dalam tangki (Reactor Batch) pada sistem PLC. Update dilakukan melalui komunikasi data antara PLC dan komputer.

Selain itu, jika tombol “Output” di-click, maka valve yang terkait akan berubah posisi (dikendalikan oleh aktuator pada sistem PLC).

Pada post selanjutnya, yaitu “KP @ P.T. Indoserako Sejahtera Part VI : Organisasi Perusahaan”, penulis akan membahas pentingnya tiap bagian dalam struktur organisasi P.T. Indoserako.

Best Regards,

Giovanni Sutanto
NIM 132 05 038

KP @ P.T. Indoserako Sejahtera Part IV : Inverter

By : Giovanni Sutanto NIM 132 05 038

Inverter adalah sebuah perangkat elektronik yang mengubah tegangan AC tiga fasa dari jala-jala (berfrekuensi 50 Hz atau 60 Hz) menjadi tegangan DC, kemudian mengubahnya kembali menjadi tegangan AC tiga fasa dengan frekuensi yang bisa diatur-atur sesuai keinginan pengguna/user. Untuk penjelasan yang lebih teknis mengenai cara kerjanya, dapat dilihat pada buku Chapman (ingat MME!!! ingat praktikum yang paling berkesan karena Tes Awalnya!!! Hahaha) halaman 162 sampai dengan halaman 178 (thanks buat Saudara Junot atas infonya).

Salah satu aplikasi Inverter dalam dunia keelektroteknikan adalah untuk mengendalikan kecepatan putaran motor AC. Contohnya pada sistem ban berjalan (conveyor belt), sebagai berikut :

Seperti yang kita ketahui bahwa kecepatan putaran motor AC dapat dikendalikan dengan mengatur frekuensi dari tegangan AC yang menjadi sumbernya. Pada gambar di atas, dapat dilihat bahwa PLC mengendalikan Inverter dalam menghasilkan tegangan AC dengan frekuensi yang dinginkan.

Biasanya frekuensi tegangan AC output Inverter komersial dapat dikendalikan dengan menggunakan sinyal tegangan atau sinyal arus eksternal. Oleh karena itu, Slave Output Analog PLC yang dapat menghasilkan sinyal arus, dapat digunakan untuk mengendalikan Inverter dalam menghasilkan tegangan AC dengan frekuensi yang diinginkan.

Pada post selanjutnya, penulis akan memberi gambaran singkat mengenai SCADA sebagai elemen kontrol, yaitu pada post “KP @ P.T. Indoserako Sejahtera Part V : SCADA”.

Warm Regards,

Giovanni Sutanto
NIM 132 05 038

KP @ P.T. Indoserako Sejahtera Part III : PLC Part VI : Desain

By : Giovanni Sutanto NIM 132 05 038

Dalam ruang lingkup engineering, selalu ada aspek desain. Di P.T. Indoserako, selain memprogram dan melakukan setting pada PLC, engineer juga bertugas mendesain instalasi PLC, mulai dari desain wiring/perkabelan, desain layout dalam dan layout luar panel, dan desain pemasangan panel-panel di lokasi pabrik. Software yang digunakan pada tahap desain ini adalah AutoCAD.

Jika proses desain ini telah selesai, maka desain ini diserahkan kepada para teknisi untuk direalisasikan, dengan pengawasan engineer. Oleh karena itu, desain harus sedetail dan sejelas mungkin, supaya mudah dimengerti oleh para teknisi. Selain itu, baik engineer maupun teknisi bertanggungjawab atas kerapian instalasi project.

Berikut ini contoh desain wiring/perkabelan PLC :


Realisasinya sebagai berikut :

Jika diperhatikan pada gambar di atas, setiap kabel diberi nama. Hal ini bertujuan untuk mempermudah troubleshooting.

Berikut ini contoh desain layout luar panel :

Realisasinya sebagai berikut :

Berikut ini adalah contoh desain layout dalam panel :

Berikut ini adalah realisasinya :

Inilah post terakhir dari kumpulan post tentang PLC ini. Pada post selanjutnya, penulis akan memberikan gambaran singkat tentang Inverter dalam post “KP @ P.T. Indoserako Sejahtera Part IV : Inverter”.

Best Regards,



Giovanni Sutanto
NIM 132 05 038

KP @ P.T. Indoserako Sejahtera Part III : PLC Part V : Addressing

By : Giovanni Sutanto NIM 132 05 038

Selama ini penulis menjelaskan program Ladder Diagram dengan menggunakan simulasi CoDeSys. Untuk melihat bagaimana program ini berjalan pada PLC, maka program ini harus di-upload ke PLC. Sebelum meng-upload program ke PLC, kita perlu melakukan Addressing/pengalamatan, yang perlu dilakukan baik pada program Ladder yang kita buat (software) maupun pada hardware.

Pada hardware, kita perlu mengalamati setiap Slave I/O. Setiap Slave I/O harus memiliki alamat yang spesifik dan berbeda satu sama lain. Untuk PLC ifm, pada Master terdapat display dan tombol-tombol yang memungkinkan pengguna untuk melakukan pengaturan alamat Slave-Slave I/O, contohnya sebagai berikut :

Pada PLC ifm sekarang terdapat 62 alamat yang dapat di-assign untuk Slave-Slave I/O, yaitu 1A, 2A, …, 31A, 1B, 2B, …, 31B. Slave I/O sendiri dibedakan menjadi dua berdasarkan sifatnya, yaitu Analog dan Digital. Slave-Slave I/O seri lama (baik Analog maupun Digital) dan Slave I/O Analog seri baru membutuhkan sepasang alamat (A dan B), misalnya alamat 1, 2, atau yang lainnya. Sedangkan Slave I/O Digital seri baru hanya membutuhkan sebuah alamat (A saja atau B saja), misalnya alamat 1A, 2B, atau yang lainnya.

Pada software, pengalamatan dilakukan pada bagian typecasting (pendefinisian tipe variabel). Contohnya seperti berikut :

Contoh di atas diambil dari program untuk mengaplikasikan fungsi multivibrator kotak yang telah disebutkan pada post “KP @ P.T. Indoserako Sejahtera Part III : PLC Part III : Function Block”.

Pada gambar di atas, terdapat tulisan “ON AT %IX1.7.2: BOOL;”, ini artinya bahwa variabel ON merupakan input satu bit/BOOL (ditunjukkan oleh subkata IX; jika IW berarti input satu WORD (16 bit)) yang di-assign pada Master 1, Slave I/O beralamat 7A, pada bit ke-2 (ditunjukkan oleh subkata 1.7.2; jika alamatnya 7B maka subkata yang digunakan adalah 1.7.6). Dengan demikian, tulisan “OFF AT %IX1.7.1: BOOL;” berarti variabel OFF merupakan input satu bit (ditunjukkan oleh subkata IX) yang di-assign pada Master 1, Slave I/O beralamat 7A, pada bit ke-1 (ditunjukkan oleh subkata 1.7.1; jika alamatnya 7B maka subkata yang digunakan adalah 1.7.5). Sedangkan tulisan “Lampu AT %QX1.5.3: BOOL;” berarti variabel Lampu merupakan output satu bit (ditunjukkan oleh subkata QX) yang di-assign pada Master 1, Slave I/O beralamat 5A, pada bit ke-3 (ditunjukkan oleh subkata 1.5.3; jika alamatnya 5B maka subkata yang digunakan adalah 1.5.7). Perhatikan bahwa biasanya sebuah Slave I/O Digital mempunyai empat bit yang bisa di-assign, yaitu I1 sampai dengan I4 untuk Slave Input (I1 untuk input bit ke-0, I2 untuk input bit ke-1, I3 untuk input bit ke-2, dan I4 untuk input bit ke-3), dan O1 sampai dengan O4 untuk Slave Output (O1 untuk output bit ke-0, O2 untuk output bit ke-1, O3 untuk output bit ke-2, dan O4 untuk output bit ke-3).

Oleh karena itu, sebuah push button NO dihubungkan ke pin I3 pada Slave Input yang beralamat 7A untuk berfungsi sebagai tombol “ON”, sebuah push button NO dihubungkan ke pin I2 pada Slave Input yang beralamat 7A untuk berfungsi sebagai tombol “OFF”, dan sebuah Pilot Lamp 24 V DC dihubungkan ke pin O4 pada Slave Output yang beralamat 5A untuk berfungsi sebagai “Lampu”.

Sebagai tambahan, untuk Slave I/O Analog (contohnya sensor tekanan), biasanya data yang dikirim atau diterima berupa WORD, sehingga penulisan subkata pada addressing-nya adalah IW (untuk input) atau QW (untuk output).

Selain itu, pada PLC ifm memungkinkan penggunaan dua buah Master, yaitu sebuah Controller dan dua buah Power Supply AS-i. Jika hanya ada 1 Master, maka Slave I/O hanya dapat berjarak maksimum sekian ratus meter (penulis lupa berapa pastinya) ke satu arah, sedangkan jika ada 2 Master, maka Slave I/O dapat berjarak maksimum sekian ratus meter pada dua arah. Sehingga jika ditotal, kemampuan penempatan Slave I/O pada sistem PLC dengan 2 Master adalah dua kali lipat daripada sistem PLC dengan 1 Master saja. Masalah jarak maksimum ini terkait dengan masalah Noise dan losses pada kabel.

Pada post selanjutnya, yaitu “KP @ P.T. Indoserako Sejahtera Part III : PLC Part VI : Desain”, penulis akan menceritakan mengenai salah satu peran engineer di P.T. Indoserako, yaitu desain.

Warm Regards,

Giovanni Sutanto
NIM 132 05 038

KP @ P.T. Indoserako Sejahtera Part III : PLC Part IV : Box with EN

By : Giovanni Sutanto NIM 132 05 038

Box with EN adalah semacam function block yang sudah terdefinisi pada software compiler Ladder Diagram, yang memiliki komponen variabel EN (enable) untuk memungkinkan pengaktifan kerja box ini secara bersyarat. Box with EN sangat bervariasi sesuai dengan nama spesifik yang dimilikinya. Namun secara garis besar, Box with EN dapat dikelompokkan menjadi tiga, yaitu box yang berfungsi sebagai kondisional bersyarat, box yang berfungsi sebagai pengkonversi tipe variabel input, dan box perintah kondisional.

Box yang berfungsi sebagai kondisional bersyarat, contohnya antara lain adalah box LT, LE,  EQ, GT, dan GE. Box LT (Less Than) adalah box, yang ketika EN-nya sedang aktif, akan membandingkan kedua inputnya, dan mengaktifkan output box tersebut jika dan hanya jika input pertamanya lebih kecil nilainya daripada input kedua (i1 < i2). Dan tentu saja kedua input dari box tersebut harus mempunyai tipe variabel yang sama, sebab jika tidak maka compiler akan menampilkan error ketika di-compile. Box LE (Less or Equal), EQ (EQual), GT (Greater Than), dan GE (Greater or Equal) sejenis dengan box LT, dengan perbedaan sifat kondisional. LE untuk mengecek kondisi lebih kecil atau sama dengan (i1 <= i2). EQ untuk mengecek kesamaan nilai (i1 == i2). GT untuk mengecek kondisi lebih besar (i1 > i2). GE untuk mengecek kondisi lebih besar atau sama dengan (i1 >= i2). Berikut ini adalah contoh aplikasi box GE :

Box yang berfungsi sebagai pengkonversi tipe variabel input, contohnya antara lain adalah WORD_TO_REAL, INT_TO_REAL, REAL_TO_INT, dan lain sebagainya. Box WORD_TO_REAL berfungsi mengkonversi variabel bertipe WORD menjadi bertipe REAL dengan nilai yang tetap sama. Box INT_TO_REAL berfungsi mengkonversi variabel bertipe INT menjadi bertipe REAL dengan nilai yang tetap sama, contohnya dari 5 (INT) menjadi 5.0 (REAL). Box REAL_TO_INT berfungsi mengkonversi variabel bertipe REAL menjadi bertipe INT dengan nilai yang tetap sama atau dengan pembulatan, contohnya dari 5.3 (REAL) menjadi 5 (INT), 5.9 (REAL) menjadi 6 (INT), dan lain sebagainya. Berikut ini adalah contoh aplikasi box REAL_TO_INT :

Box perintah kondisional, contohnya adalah MOVE. Pada box MOVE, nilai variabel input disalin ke variabel output jika dan hanya jika variabel pada EN-nya sedang aktif/on. Dan tentu saja untuk itu, variabel input dan variabel output harus memiliki tipe variabel yang sama. Berikut ini contoh aplikasinya :

Ada satu hal yang perlu diperhatikan pada penggunaan Box with EN. Jika EN mengalami transisi dari aktif/on menjadi nonaktif/off (falling-edge), maka nilai output dari box tersebut akan menggantung pada nilai terakhirnya sesaat sebelum EN menjadi nonaktif/off. Oleh karena itu kita perlu mengatasi state yang tidak kita inginkan ini dengan membuat baris program tambahan, yang memberikan default nilai output box ketika EN-nya sedang nonaktif, yaitu dengan menggunakan box MOVE.

Pada post selanjutnya, yaitu “KP @ P.T. Indoserako Sejahtera Part III : PLC Part V : Addressing“, penulis akan membahas salah satu langkah yang penting pada saat “menyuntikkan” program Ladder Diagram ke PLC, yaitu addressing/pengalamatan.

Best Regards,

Giovanni Sutanto
NIM 132 05 038
-Teknik Elektro ITB Jalur Pilihan Teknik Kendali Angkatan 2005-

KP @ P.T. Indoserako Sejahtera Part III : PLC Part III : Function Block

By : Giovanni Sutanto NIM 132 05 038

Function block adalah block yang mempunyai fungsi yang spesifik, baik yang sudah terdefinisikan oleh software compiler Ladder Diagram (contohnya CoDeSys), maupun yang didefinisikan oleh programmer (user-defined function block).

Function block yang sudah terdefinisikan oleh software compiler Ladder Diagram contohnya antara lain adalah timer, counter, trigger.

Timer ada beberapa macam, antara lain TON, TOF, TP.

Berikut ini adalah contoh sebaris Ladder Diagram yang menggunakan function block TON :

Jika contact Input (NO) menjadi aktif/on, maka coil Output tidak langsung aktif, melainkan menunggu function block TON Timer1 selesai menghitung waktu selama 1 detik, setelah itu baru coil Output on. Waktu yang kita inginkan dituliskan pada PT, seperti contoh di atas, penulisannya adalah t#1s. Jika kita ingin waktu yang dihitung oleh Timer1 sebesar 0,5 detik, maka penulisan pada PT adalah t#500ms atau t#0.5s. ET digunakan jika kita ingin melihat sudah berapa lama Timer1 menghitung waktu. Untuk keperluan itu kita perlu memberi nama variabel ET, dan tipe variabelnya haruslah TIME. Pada contoh di atas, ET pada Timer1 diberi nama variabel t1 bertipe TIME.

Berikut ini adalah contoh sebaris Ladder Diagram yang menggunakan function block TOF :

Misalkan keadaan awalnya contact Input (NC)  dan coil Output keduanya sedang aktif/on. Pada saat contact Input dinonaktifkan, maka coil Output tidak langsung nonaktif/off, melainkan menunggu function block TOF Timer2 selesai menghitung waktu selama 1 detik, setelah itu baru coil Output off. Untuk PT dan ET sama dengan pada function block TON.

Berikut ini adalah contoh sebaris Ladder Diagram yang menggunakan function block TP :

Function block TP menghasilkan pulsa selebar nilai waktu pada PT-nya pada saat IN-nya diaktifkan. Pada contoh di atas, jika contact Input (NO) diaktifkan, maka coil Output akan aktif selama 2 detik (nilai PT Timer3) kemudian nonaktif kembali. Hal ini disebabkan karena adanya pulsa selebar 2 detik yang dihasilkan oleh Timer3.

Berikut ini adalah sebuah program Ladder Diagram yang dibuat penulis sebagai contoh aplikasi function block Timer :

Program Ladder di atas merupakan program untuk mengaplikasikan fungsi multivibrator kotak dengan duty cycle 50% dan tH = tL = 1 detik. Program ini dapat dijelaskan secara singkat sebagai berikut. (1) Ketika push button ON (NO) ditekan, maka akan mengaktifkan coil hidupkan pada rangkaian Interlock pada baris 0001. (2) Karena coil hidupkan sedang on/aktif, maka contact hidupkan (NO) pada baris 0002 juga on/aktif. (3) Contact Lampu (NO) pada keadan awalnya adalah off/nonaktif, sehingga contact Lampu (NC) pada baris 0002 on/aktif. (4) Karena (2) dan (3), maka Timer TON t1 menjadi bekerja (menghitung waktu hingga 1 detik). (5) Setelah Timer TON t1 selesai menghitung waktu hingga 1 detik, maka coil Lampu pada baris 0002 menjadi on/aktif, dan mengakibatkan contact Lampu (NC) pada baris 0002 off/nonaktif. (6) Nonaktifnya contact Lampu (NC) menyebabkan Timer TON t1 tidak memperoleh suplai tegangan P24 pada IN-nya, sehingga t1 menjadi off. (7) Off-nya t1 menyebabkan coil Lampu pada baris 0002 juga di-off-kan, namun terhalang oleh keberadaan Timer TOF t2 pada baris 0003. (8) t2 menjadi bekerja menghitung waktu selama 1 detik karena contact Lampu (NO) pada baris 0003 hendak mengalami perubahan falling-edge (dari on menjadi off). (9) Setelah Timer TOF t2 selesai menghitung waktu hingga 1 detik, maka barulah coil Lampu pada baris 0002 dan 0003 menjadi off/nonaktif. (10) Off-nya coil Lampu menyebabkan contact Lampu (NC) pada baris 0002 menjadi on/aktif, keadaan ini sama dengan pada keadaan (3). (11) Demikian berulang seterusnya, kecuali push button OFF (NO, bukan NC, karena pada baris 0001 contact OFF sudah NC) ditekan.

Jika pembaca ingin berlatih menggunakan function block, mungkin pembaca bisa mencoba membuat program Ladder untuk mengaplikasikan kerja nyala lampu lalu lintas, seperti latihan yang diberikan oleh pembimbing KP (engineer Donni) kepada penulis pada saat KP. Spesifikasinya adalah sebagai berikut. Terdapat push button ON (NO) dan OFF (NO), yang masing-masing berfungsi untuk menjalankan dan mematikan lampu lalu lintas. Begitu push button ON ditekan, lampu lalu lintas berjalan, dimulai dari lampu merah. Lampu merah, kuning, dan hijau masing-masing menyala selama 3 detik. Begitu push button OFF ditekan, semua lampu mati.

Selanjutnya penulis akan membahas mengenai Counter dan Trigger.

Counter ada tiga macam, yaitu CTU, CTD, dan CTUD.

Berikut ini adalah contoh sebaris Ladder Diagram yang menggunakan function block CTU :

CTU adalah counter yang menghitung maju event berubahnya state variabel bertipe BOOL pada CU-nya dari off menjadi on (rising-edge), dan jika nilai penghitungan event sudah mencapai nilai pada PV-nya, maka variabel bertipe BOOL pada Q-nya akan diaktifkan. Pada contoh di atas, jika contact Input (NO) mengalami rising-edge, maka nilai i1 (variabel bertipe INT pada CV dari function block CTU Counter1) akan ditambah 1 (+1) (nilai inisialisasi variabel i1 adalah 0). Jika nilai i1 sudah sama dengan 5 (nilai PV), maka coil Output akan diaktifkan. Pada contoh ini, RESET diisi FALSE, ini artinya bahwa penghitungan Counter ini tidak dapat di-reset. RESET ini bisa diisi dengan variabel bertipe BOOL. Jika demikian, maka pada saat variabel bertipe BOOL pada RESET ini aktif/on, maka nilai pada CV akan diisi dengan nilai 0 lagi (nilai inisialisasinya).

Berikut ini adalah contoh sebaris Ladder Diagram yang menggunakan function block CTD :

CTD adalah counter yang menghitung mundur event berubahnya state variabel bertipe BOOL pada CD-nya dari off menjadi on (rising-edge), dan jika nilai penghitungan event sudah mencapai nilai 0, maka variabel bertipe BOOL pada Q-nya akan diaktifkan. Pada keadaan awal setelah program Ladder Diagram ini di-compile, nilai variabel i2 (pada CV dari function block CTD Counter2) adalah 0 (nilai inisialisasi variabel i2), sehingga coil Output langsung aktif. Untuk itu, variabel Set (pada LOAD dari function block CTD Counter2, berfungsi untuk menyalin nilai PV ke variabel pada CV pada saat Set sedang aktif/on) perlu diberi pulsa, supaya nilai 3 (pada PV) disalin ke variabel i2, dengan demikian coil Output akan dinonaktifkan dan CTD dapat menghitung mundur. Perhatikan bahwa varibel Set harus dinonaktifkan jika CTD akan menghitung, sebab jika tidak, maka variabel i2 akan terus diisi dengan nilai 3 tiap kali siklus mesin dari PLC. Jika i2 sudah bernilai 3 dan variabel Set sudah off, maka saat contact Input (NO) mengalami rising-edge maka nilai i2 akan dikurangi 1 (-1). Saat nilai i2 mencapai 0, maka coil Output akan diaktifkan.

CTUD adalah gabungan dari CTU dan CTD. Berikut ini gambarnya sebelum didefinisikan :

Trigger adalah function block yang menghasilkan impuls (pulsa yang sangat sempit, selebar beberapa siklus mesin PLC) ketika variabel inputnya (bertipe BOOL) mengalami edge, baik rising-edge (transisi dari off ke on) maupun falling-edge (transisi dari on ke off). Trigger ada 2 macam, yaitu F_TRIG dan R_TRIG. F_TRIG menghasilkan impuls ketika mendeteksi falling-edge pada variabel inputnya. Sedangkan R_TRIG menghasilkan impuls ketika mendeteksi rising-edge pada variabel inputnya.

Berikut ini adalah gambar sebuah function block F_TRIG pada saat belum didefinisikan :

Berikut ini adalah gambar sebuah function block R_TRIG pada saat belum didefinisikan :

Mungkin pembaca masih ada yang bingung, apa gunanya impuls pada PLC? Impuls berguna untuk pengambilan data yang sangat cepat, karena pada aplikasi di pabrik/industri, penghematan waktu sangat berharga.

Function block yang didefinisikan oleh programmer berfungsi untuk mengurangi pendefinisian prosedur yang sama secara berulang-ulang. Selain itu, juga dapat membuat program lebih sistematis dan lebih mudah dipahami.

Berikut ini adalah contoh function block yang didefinisikan oleh penulis sebagai bagian dari project “Inflator” :

Function block di atas berfungsi untuk mengkonversi pembacaan sensor tekanan menjadi bersatuan bar dan psi, untuk keperluan pengolahan data yang selanjutnya.

Perhatikan bahwa setiap function block yang didefinisikan oleh programmer pada software CoDeSys harus selalu memiliki minimal sebuah contact dan sebuah coil (keduanya merupakan variabel bertipe BOOL). Variabel yang berasal dari contact merupakan variabel yang pada typecasting (pendefinisian tipe variabel) didefinisikan pertama kali pada kelompok variabel VAR_INPUT. Sedangkan variabel yang berasal dari coil merupakan variabel yang pada typecasting didefinisikan pertama kali pada kelompok variabel VAR_OUTPUT.

Jika function block ini dipanggil pada program main, maka sebelum didefinisikan function block ini akan memiliki tampilan seperti berikut :

Struktur program ini secara keseluruhan, dimulai dari program main dan function block-function block yang didefinisikan programmer (penulis), adalah sebagai berikut :

PLC_PRG (PRG) adalah program main, sedangkan proses_auto (FB) dan Scaling_Bacaan_Sensor (FB) adalah dua buah function block yang didefinisikan penulis, yang kemudian dipanggil pada program main (PLC_PRG (PRG)) sebagai instance-instance.

Perhatikan pada function block Scaling_Bacaan_Sensor di atas, terdapat box-box yang bernama WORD_TO_REAL, SUB, dan MUL. Box-box tersebut disebut sebagai Box with EN. Box with EN ini akan dibahas pada post selanjutnya, yaitu “KP @ P.T. Indoserako Sejahtera Part III : PLC Part IV : Box with EN”.

Warm Regards,
Giovanni Sutanto

NIM 132 05 038

-Teknik Elektro ITB Jalur Pilihan Teknik Kendali Angkatan 2005-

KP @ P.T. Indoserako Sejahtera Part III : PLC Part II : Rangkaian Interlock dengan menggunakan Ladder Diagram

By : Giovanni Sutanto NIM 132 05 038

Terdapat lima tipe bahasa pemrograman yang bisa dipakai untuk memprogram PLC, meski tidak semuanya di-support oleh suatu PLC, yaitu antara lain :
1. Bahasa pemrograman Ladder Diagram (LD)
2. Bahasa pemrograman Instruction List (IL)/Statement List (SL)
3. Bahasa pemrograman Sequential Function Chart (SFC)/Grafcet
4. Bahasa pemrograman Function Block Diagram (FBD)
5. Bahasa pemrograman tingkat tinggi (high-level), contohnya Visual Basic

Penulis akan membahas bahasa pemrograman PLC yang paling populer digunakan dan paling mudah dipahami, yaitu Ladder Diagram, dengan menggunakan contoh rangkaian Interlock. Ladder Diagram mudah dipahami karena menggunakan pendekatan grafis, yaitu menggunakan simbol-simbol komponen elektromagnetik-mekanik relay (coil dan contact), blok-blok fungsi (function block), seperti timer, counter, trigger, kondisional, serta blok fungsi yang didefinisikan sendiri oleh programmer. Selain itu, karena Ladder Diagram menggunakan pendekatan grafis, maka programmer menjadi lebih mudah untuk melakukan troubleshooting pada program yang akan dijalankan pada PLC.

Pada post “KP @ P.T. Indoserako Sejahtera Part II : Relay Part II : Rangkaian Interlock“, penulis sudah membahas bagaimana membangun sebuah rangkaian Interlock dengan menggunakan relay. Pada post kali ini, penulis akan membahas bagaimana membangun sebuah rangkaian Interlock dengan menggunakan PLC yang diprogram dengan bahasa Ladder Diagram.

Perhatikan gambar grafis bahasa pemrograman Ladder Diagram berikut :

Ladder Diagram di atas merupakan implementasi rangkaian Interlock dengan menggunakan software CoDeSys. Sebelum menjelaskan bagaimana program di atas bekerja, penulis akan menjelaskan terlebih dahulu bagian-bagian dari bahasa pemrograman Ladder Diagram di atas.

Seperti bahasa pemrograman pada umumnya, programmer harus mendefinisikan terlebih dahulu tipe-tipe variabel (atau disebut juga typecasting) yang digunakan dalam bahasa pemrograman Ladder Diagram, baik variabel input, variabel output, maupun variabel bantu proses pengolahan data dalam program. Tipe-tipe variabel yang sering digunakan dalam bahasa pemrograman Ladder Diagram antara lain adalah BOOL (bilangan biner, hanya bernilai benar/true/on atau salah/false/off), INT (bilangan bulat), REAL (bilangan riil), dan TIME (bilangan yang menandai lamanya waktu, digunakan untuk function block timer).

Seperti pada relay, pada struktur Ladder Diagram, biasanya selalu ada contact dan coil. Contact, yang biasa digunakan untuk merepresentasikan sebuah variabel input bertipe bool, dilambangkan dengan menggunakan plat paralel (seperti lambang kapasitor), yaitu —| |— untuk contact NO (Normally Open) dan —|/|— untuk contact NC (Normally Close), sedangkan coil, yang biasa digunakan untuk merepresentasikan sebuah variabel output bertipe bool, dilambangkan dengan —( )—. Garis vertikal di sisi paling kiri merupakan line tegangan 24 Volt DC (P24), sedangkan garis vertikal di sisi paling kanan merupakan line tegangan 0 Volt DC (N24).

Pada suatu baris Ladder Diagram, variabel-variabel input (contact atau input dari suatu function block) selalu digambarkan pada sisi kiri, sedangkan variabel-variabel output (coil atau output dari suatu function block) selalu digambarkan pada sisi kanan. Prinsipnya sederhana, yaitu coil hanya akan on jika ada arus listrik yang mengalir dari P24 ke N24. Mengalirnya arus dari P24 ke N24 hanya terjadi jika terdapat susunan contact-contact secara seri yang on. Definisi on dari contact adalah nilai logika 1 untuk contact NO dan nilai logika 0 untuk contact NC.

Coil dan contact NO yang diberi nama Lampu_DC merupakan pengganti coil dan contact NO pada relay. Dengan demikian, seperti cara kerja relay, jika coil Lampu_DC on, maka contact Lampu_DC (NO) juga menjadi on. Contact RUN (NO) merupakan variabel input yang seharusnya dihubungkan dengan sebuah push-button NO, contact STOP (NC) merupakan variabel input yang seharusnya dihubungkan dengan sebuah push-button NO, dan coil Lampu_DC merupakan variabel output yang seharusnya dihubungkan dengan sebuah lampu DC 24 Volt. Namun demikian, kali ini penulis belum menggunakan PLC untuk implementasi rangkaian interlock ini. Penulis hanya menggunakan simulasi dan visualisasi HMI dari software CoDeSys untuk mengimplementasikan rangkaian interlock ini.

Selanjutnya, sebagai HMI (Human-Machine Interface), penulis membuat visualisasi berikut :

HMI adalah semacam SCADA (Supervisory Control And Data Acquisition) sederhana, yaitu interface antara PLC (yang pada contoh ini disimulasikan oleh komputer) dengan manusia, melalui komputer.

Tombol RUN dan STOP pada HMI di atas masing-masing di-setting sebagai tombol push-button NO serta dikaitkan dengan variabel RUN dan STOP pada program Ladder Diagram. Sedangkan Lampu DC di-setting untuk dikaitkan dengan variabel Lampu_DC pada program Ladder Diagram dan memberikan tampilan warna putih untuk logika 0 (mati), tampilan warna merah untuk logika 1 (hidup). Jika disimulasikan, maka hasilnya adalah :

Pada gambar di atas terlihat bahwa contact STOP (NC) berwarna biru tua karena sedang on (sesuai dengan definisi sebelumnya bahwa contact NC on pada saat mempunyai nilai logika 0) dan contact-contact yang lainnya, yaitu contact RUN (NO) dan contact Lampu_DC (NO), tidak berwarna karena sedang off (logika 0 berarti off untuk contact NO). Karena tidak ada susunan contact-contact yang sedang on secara seri, maka tidak ada arus yang mengalir dari P24 ke N24, sehingga coil Lampu_DC off. Simulasi HMI rangkaian Interlock ini pada keadaan ini (sebelum ada tombol yang ditekan) adalah sebagai berikut :

Dapat diamati melalui perilaku contact NO dan NC, bahwa keduanya bekerja secara bertolak belakang. Dengan demikian dapat dikatakan bahwa jika terdapat dua buah contact dari variabel yang sama, yang satu bersifat NO dan yang lainnya bersifat NC, maka keduanya berhubungan secara negasi (jika yang NO on, maka yang NC akan off, dan sebaliknya).

Jika push button RUN ditekan dan ditahan, maka hasilnya adalah :

Penekanan push button RUN mengaktifkan contact RUN (NO), sehingga ada susunan contact yang sedang on secara seri, yaitu contact RUN (NO) dan contact STOP (NC). Dengan demikian coil Lampu_DC menjadi on, karena ada arus yang mengalir dari P24 ke N24. Karena coil Lampu_DC on, maka contact Lampu_DC (NO) juga ikut menjadi on. Jika penekanan push button RUN dihentikan, maka hasilnya adalah :

Penghentian penekanan push button RUN menyebabkan contact RUN (NO) menjadi off. Namun demikian, coil Lampu_DC masih aktif karena masih ada susunan contact yang sedang on secara seri, yaitu contact Lampu_DC (NO) dan contact STOP (NC), sehingga arus masih bisa mengalir dari P24 ke N24. Perhatikan bahwa kali ini arus yang mengalir ke coil Lampu_DC di-support oleh contact-nya sendiri.

Pada keadaan ini, tampilan HMI adalah sebagai berikut :

Coil Lampu_DC dapat dinonaktifkan dengan menekan push button STOP. Jika push button STOP ditekan maka :

Penekanan push button STOP mengakibatkan contact STOP (NC) menjadi off, sehingga arus listrik yang tadinya mengalir pada rangkaian Interlock ini menjadi terputus. Coil Lampu_DC tidak dialiri arus listrik, sehingga contact Lampu_DC (NO) kembali menjadi off. Walaupun push button STOP sudah tidak ditekan lagi (contact STOP (NC) kembali menjadi on), coil Lampu_DC tetap tidak akan menyala karena contact RUN (NO) dan contact Lampu_DC (NO) keduanya off, sehingga arus listrik tidak mengalir di rangkaian. Dengan demikian, rangkaian Interlock dalam pemrograman Ladder Diagram ini kembali ke keadaan semula.

Mungkin untuk rangkaian dengan variabel-variabel proses (dalam hal ini RUN, STOP, dan Lampu_DC) yang sedikit seperti ini, PLC terlalu mahal untuk digunakan. Namun jika variabel-variabel prosesnya lebih banyak, penggunaan rangkaian relay secara hard-wired tidak reliable lagi, karena akan mempersulit pada saat troubleshoting dan maintenance. Oleh karena itu digunakanlah PLC, di mana rangkaian dibentuk melalui software.

Pada post selanjutnya, yaitu “KP @ P.T. Indoserako Sejahtera Part III : PLC Part III : Function Block“, penulis akan membahas mengenai penggunaan function block dalam Ladder Diagram. Mohon maaf jika post kali ini terlalu panjang dan agak membosankan, penulis hanya bermaksud untuk sharing pengetahuan. Semoga berguna.

Best Regards,



Giovanni Sutanto
NIM 132 05 038

KP @ P.T. Indoserako Sejahtera Part III : PLC Part I : Perkenalan

By : Giovanni Sutanto NIM 132 05 038

Halo, salam jumpa lagi buat para pembaca! Akhirnya saya memperoleh semangat untuk menulis lagi, dan lagipula tidak baik kan, meninggalkan sesuatu yang telah dimulai tanpa menyelesaikannya.

Pada bagian ini akan dibahas mengenai PLC (Programmable Logic Controller) sebagai perkenalan. PLC adalah suatu controller elektronik dengan fitur-fitur yang cukup lengkap, yang lazim digunakan untuk mengendalikan proses-proses dalam suatu industri. Mungkin kita bisa membandingkannya dengan controller lain yang sudah kita pelajari, yaitu microcontroller. Berikut ini tabel perbandingan PLC versus Microcontroller :

Selain Noise, hal yang juga perlu diperhatikan pada aplikasi jarak jauh (puluhan atau ratusan meter) adalah losses pada kabel. Oleh karena itu jugalah PLC menggunakan level tegangan yang relatif tinggi, yaitu tipikal 24 Volt, supaya persentase losses daya menjadi relatif lebih kecil pada transmisi sinyal jarak jauh.

Karena kemampuannya pada aplikasi untuk jarak jauh inilah, PLC cocok digunakan untuk mengendalikan proses-proses pada sebuah pabrik, di mana sensor dan aktuator bisa tersebar di sekitar bangunan pabrik yang berjarak ratusan meter dari Master Controller.

P.T. Indoserako telah menginstal berbagai merk PLC, seperti Siemens, Mitsubishi, ifm, dan lain sebagainya. Merk ifm (dari Jerman) merupakan spesialisasi P.T. Indoserako, karena P.T. Indoserako merupakan satu-satunya distributor PLC ifm di Indonesia. Selama menjalani Kerja Praktek pun, penulis secara spesifik mempelajari PLC ifm saja.

PLC ifm menggunakan standar AS-i (Actuator-Sensor interface). Pada standar AS-i, terdapat dua buah power supply, yaitu Power Supply 24 V DC dan Power Supply AS-i. Power Supply 24 V DC hanya berfungsi sebagai pensuplai daya sistem. Sedangkan Power Supply AS-i berfungsi untuk komunikasi data serial antara Master dan Slave-Slave. Power Supply AS-i menghasilkan level tegangan sebesar 24 V DC + Level Tegangan Sinyal Digital untuk Komunikasi Data Serial.

Mungkin masih ada di antara para pembaca yang belum mengetahui tentang komunikasi data serial. Komunikasi data serial dapat dijelaskan dengan gambar berikut :

Pada komunikasi data serial, Master mengirimkan sinyal digital berupa Byte (8 bit) atau Word (16 bit) kepada semua Slave I/O melalui jalur MOSI (Master Out Slave In). Setiap satuan sinyal digital ini (bisa Byte atau Word) terdiri dari antara lain Alamat/Address Slave I/O yang Dituju, Data Serial, dan bit sinkronisasi. Data Serial ini biasanya merupakan permohonan kepada Slave Input/Sensor untuk mengirimkan hasil pembacaan variabelnya kepada Master atau data yang harus di-output-kan oleh Slave Output/Aktuator. Semua Slave I/O menerima sinyal digital ini, tetapi hanya Slave I/O yang dituju saja yang akan menjawabnya. Slave I/O yang dituju menjawab dengan mengirimkan sinyal digital (Byte atau Word) kepada Master melalui jalur MISO (Master In Slave Out). Pada gambar di atas, jalur MOSI dan MISO digambarkan dalam satu garis.

Pada PLC ifm, yang dimaksud dengan Master adalah Controller + Power Supply AS-i. Antara Master dan Slave-Slave maksimum dihubungkan dengan 4 buah kabel, yaitu A+, A-, E+, dan E-. A+ dan A- berasal dari Power Supply AS-i, salah satu adalah MOSI dan yang lain adalah MISO (penulis belum sempat mencari tahu mana yang MOSI dan mana yang MISO). Sedangkan E+ (+24 V DC) dan E- (0 V/ Ground) berasal dari Power Supply 24 V DC.

Pada bagian berikutnya, penulis akan membahas mengenai pemrograman PLC dengan contohnya Rangkaian Interlock.

Warm Regards,

Giovanni Sutanto
NIM 132 05 038
-Bener Banget Kif, SEKALI ELEKTRO TETAP ELEKTRO-

Next Page »