Senin, 30 Januari 2012

Dasar - Dasar Pemrograman PLC (Bagian 4)

Lanjutan dari bagian 3.............

F. Oscillator

Pada contoh sebelumnya, sedikit tidak didiskusikan bagaimana cara membuat operasi scan atau pewaktu (timing). Kita selalu mengasumsikan bahwa setiap menjumpai kondisi coil yang ter-energize (mendapat power) berarti sistem telah bekerja. Padahal kita harus mengetahui prosedur yang digunakan oleh controller dalam menyelesaikan ladder logic diagram. Sebagai contoh untuk mengetahui proses scanning dapat memberi manfaat ke kita sebagai programmer, mari kita kembangkan pembuatan oscilator. Dalam program PLC, oscilator adalah coil yang dapat di nyalakan dan dimatikan ( ON – OFF ) secara bergantian pada setiap periode scan. Oscilator dapat digunakan untuk mengendalikan sesuatu seperti fungsi mathematic, fungsi manipulasi data, yang dikontrol dengan transitional contact. Transitional contact adalah perpindahan contact dari close ke open atau dari open ke close. Sebagai contoh fungsi mathematic pada beberapa controller yang hanya melakukan proses yang ditugaskan padanya pada sekali scan ketika control logic di switch dari open ke close. Sepanjang control logic hanya close atau open saja, maka fungsi tidak akan dijalankan. Untuk meng-enable fungsi supaya terjadi dan berkelanjutan maka transitional contact ini harus diletakkan dalam control logic. Hal ini akan megakibatkan fungsi akan bekerja pada setiap scan karena transitional contact dari oscilator akan selalu switch dari open ke close pada setiap siklus scan.

Perhatikan gambar dibawah, program ini menggunakan internal relay yang hanya dapat di buat oleh programmer dan dapat diberi sembarang nama (dalam hal ini adalah CR1) dan tidak dapat diakses oleh terminal luar PLC. Jumlah internal relay dibatasi oleh design PLC tertentu yang digunakan. Programmer mungkin hanya menggunakan sebuah coil untuk setiap internal relay, tetapi boleh menggunakan sebanyak mungkin N/O atau N/C contact untuk setiap relay yang di pasang. Sangat penting untuk diingat bahwa relay ini pada kenyataanya secara fisik tidak ada, dan merupakan bit digital yang disimpan dalam PLC.
Contact dan coil mempunyai nama yang sama, oleh karena itu jika coil ter-energize maka contact akan open dan sebaliknya jika coil de-energize maka contact akan close. Begitulah fungsi dari konfigurasi ini sebagai penyedia transitional contact.

Sesuatu yang pertama kali dilaksankan oleh controller dalam beroperasi adalah Update I/O, dalam hal ini pada ladder diagram Update I/O tidak ada karena tidak ada contact maupun coil yang dapat diakses dari luar PLC (tidak ada untuk input maupun output). Setelah Update I/O controller berpindah ke control logic pada rung pertama, dalam kasus ini adalah N/C contact CR1. Control Logic akan diselesaikan jika coil yang berhubungan dengan rung tersebut ter-energize atau de-energize. Jika controller mulai beroperasi semua coil dalam kondisi de-energize. Hal ini mengakibatkan N/C contact CR1 menjadi closed, selama N/C contact CR1 dalam keadaan closed, coil CR1 akan ter-energize. Karena dalam ladder hanya terdapat sebuah rung saja, maka setelah rung ini selesai dikerjakan selanjutnya controller akan berpindah untuk melaksanakan Update I/O yang lain. Setelah selesai Update, controller akan berpindah lagi ke rung yang pertama (hanya ada satu rung saja) dan kemudian menyelesaikannya. Lagi, disini ada N/C contact CR1, bagaimanapun, sekarang coil CR1 ter-energize akibat scan sebelumnya sehingga akan mengakibatkan N/C contact CR1 akan open. Hal ini akan mengakibatkan controller melakukan de-energize terhadap coil CR1. Setelah penyelesaian ladder diagram ini selesai dikerjakan, controller akan melaksanakan Update I/O yang lain. Setelah Update I/O ini akan kembali lagi untuk menyelesaikan lagi ladder logic pada rung yang pertama dan hasilnya akan mengindikasikan bahwa N/C contact CR1 dalam scan ini akan close karena coil CR1 terjadi de-energized pada scan sebelumnya. Selama N/C contact keadannya close akan mengaikibatkan coil CR1 ter-energized. Hal ini akan terus terjadi bergantian …ON-OFF-ON-OFF-ON… berurutan selamanya selama controller beroperasi. Coil akan ON untuk satu scan dan kemudian akan OFF untuk scan berikutnya. Tak peduli berapa banyak jumlah rung dalam ladder, untuk setiap scan coil CR1 secara berurutan ON dalam satu scan, OFF dalam satu scan, ON dalam satu scan dan seterusnya. Fungsi ini hanya akan terjadi pada saat perpindahan contact (contact transition) OFF-to-ON. Transisi berikutnya akan terjadi pada setiap scan yang lain. Ini adalah salah satu contoh metoda untuk membuat transitional contact.

Kita sekarang menambahkan kontak tambahan pada rung oscilator dengan sebuah contact gate untuk oscilator seperti gambar dibawah. Kontak tambahan didalam rung adalah N/O IN1 contact. Jika IN1 adalah OFF pada saat Update I/O, untuk scan ini N/O IN1 akan open dan begitu pula sebaliknya. Ini menyajikan ke kita tentang metode mengendalikan operasi coil CR1. jika kita menginginkan CR1 untuk menyediakan transitional (oscilating) contact, kita harus mengaktifkan IN1 ( 1 ), dan bila kita menginginkan CR1 tidak aktif maka IN1 harus di OFF kan ( 0 ).


G. Holding ( Sealed / Latched ) Contact

Ada suatu kejadian manakala coil harus tetap ter-energize untuk proses scan berikutnya setelah terjadi contact logic. Typical aplikasi dari holding contact adalah control ON / OFF dengan menggunakan dua switch yang berbeda, satu untuk menyalakan equipment dan yang lainnya untuk mematikan equipment. Dalam hal ini coil dikontrol oleh switch ON dan akan ter-energize ketika switch ON ditekan dan coil tetap masih ter-energize sampai akhirnya switch OFF ditekan. Fungsi ini terpenuhi dengan membuat rung yang terdiri sebuah holding contact yang akan menahan coil dalam keadaan ter-energize sampai selesai.

Contact Logic pada gambar diatas terdiri dari tiga contact, dua N/O dan satu N/C. N/O contact IN1 didefinisikan sebagai ON switch untuk rangkaian ini dan N/C contact IN2 digunakan sebagai OFF switch. Ketika IN1 di aktifkan maka N/O contact IN1 akan close dan IN2 masih belum aktif sehingga N/C contact IN2 masih close sehingga coil CR1 akan ter-energize. Setelah CR1 ter-energize, jika IN1 dimatikan (N/O contact IN1 adalah open) coil CR1 akan tetap ter-energize untuk scan berikutnya karena N/O contact CR1 akan close. Coil CR1 akan tetap ter-energize sampai akhirnya N/C contact IN2 open dengan cara mengaktifkan IN2 ON. Jika IN2 ON maka CR1 akan de-energize karena N/C contact IN2 open. Jika kemudian IN2 OFF lagi coil CR1 akan tetap de-energize karena solusi untuk contact logic ini akan “False” selama N/O contact IN1 dan N/O contact CR1 keduanya open. N/O contact CR1 disini disebut sebagai holding contact. Oleh karena itu operasi dari rung logic ini adalah sebagai berikut : jika switch ON (IN1) ditekan sebentar, coil CR1 akan ter-energize dan tetap akan ter-energize sampai switch OFF (IN2) ditekan sebentar.

H. Always – ON and Always – OFF Contact

Ketika program dikembangkan, ada kalanya suatu kontak diinginkan untuk selalu ON. Pada PLC keluaran terbaru pada umumnya suatu coil bisa diset untuk keperluan ini. Bagaimanapun pada beberapa kejadian programmer harus menggunakan contact ini didalam ladder diagram. Untuk kejadian, seperti contact akan digunakan untuk level-triggered operasi aritmatik yang akan dilaksanakan pada setiap scan. Kebanyakan PLC membutuhkan minimal satu contact pada setiap rung. Untuk memenuhi kebutuhan ini dan harus selalu mempunyai logika benar, suatu contact harus diletakkan dalam suatu rung yang selalu berlogika berlogika benar. Ada dua cara untuk membuat contact ini:

Membuat coil yang selalu de-energized dan menggunakan N/C contact dari coil tersebut.

Membuat coil yang selalu ter-energized dan menggunakan N/O contact dari coil tersebut.

Meletakkan rung ini di bagian atas program akan mengijinkan programmmer untuk menggunakan N/C contact untuk kesuluruhan ladder kapan saja sepanjang contact diinginkan untuk selalu ON. Coil CR1 akan selalu de-energized karena N/O contact CR1 AND N/C contact CR1 tidak akan pernah bernilai benar (false).
Penyelesaian logika untuk rung ini adalah akan selalu bernilai benar karena N/C contact CR1 OR N/O contact CR1 selalu bernilai benar. Hal ini akan menyebabkan coil CR1 selalu ter-energize. Rung ini harus selalu diletakkan pada setiap awal ladder untuk menyediakan coil yang selalu ter-energize pada scan pertama.

Dasar - Dasar Pemrograman PLC (Bagian 3)

Lanjutan dari Bagian 2


B. Example Problem – Lighting Control

Akan dibuat suatu sistem lighting control dengan 4 buah switch, SWITCH1, SWITCH2, SWITCH3, SWITCH4. Switch ini akan mengontrol lampu dalam ruangan berdasarkan ketentuan sebagai berikut:

Tiga switch ( SWITCH1, SWITCH2, SWITCH3) jika dinyalakan ( = ON = 1 ) salah satu dapat menyalakan lampu, switch tersebut juga bisa digunakan untuk mematikan lampu dengan mematikan ( = OFF = 1 ) salah satu switch tersebut.

Switch ke 4 SWITCH4 adalah master control switch. Jika switch ini pada posisi ON lampu akan mati, dan ketiga switch lainnya tidak akan bisa memberikan efek kontrol ke lampu.

Permasalahan :
  • Tentukan wiring diagram koneksi dengan kontroller ( PLC Wiring Diagram )
  • Tentukan input dan output
  • Tentukan ladder diagram yang memenuhi ketentuan diatas.

Penyelesaian :

Tugas pertama yaitu menggambar PLC Wiring Diagram, untuk mengerjakan ini hubungkan semua switch ke input dan lighting ke output, nomer input dan output berhubungan dengan nomer koneksi terminal

Keempat switch ditunjukkan dengan normally open selector switch, dan output dihubungkan dengan relay coil CR1. digunakan relay CR1 untuk mengoperasikan lampu karena pada umumnya arus yang digunakan untuk menyalakan lampu ruangan lebih besar ketimbang arus keluaran PLC. Mencoba berusaha mengoperasikan lampu ruangan secara langsung dengan output PLC hampir bisa dipastikan akan merusak PLC.

Untuk konfigurasi ini, masing – masing input dan output didefinisikan sebagai berikut

INPUT IN1 = SWITCH1

INPUT IN2 = SWITCH2

INPUT IN3 = SWITCH3

INPUT IN4 = SWITCH4 (Master Control Relay)

OUTPUT OUT1 = Light control relay coil CR1

Program ini mensyaratkan jika SWITC4 ON, Lampu harus mati ( = OFF ), untuk melakukan ini dibutuhkan N/C SWITC4, dan jika salah satu SWITCH1 atau SWITCH2 atau SWITCH3 adalah ON maka lampu akan nyala ( = ON = 1 )

Sebagai catatan Normally Close Contact untuk IN4 merepresentasikan sebagai pembalik dari keadaan yang sebenarnya. SWITCH4 didefinisikan sebagai IN4, ingat SWITCH4 harus dalam kondisi OFF agar ketiga Switch yang lain dapat melakukan kontrol terhadap lampu.

C. Internal Relay

Internal Relay adalah general purpose relay yang ada didalam PLC yang tidak dapat diakses secara langsung untuk digunakan sebagai input maupun output. Seperti yang terdapat pada program component, internal relay adalah relay semu, yang merupakan bit digital yang disimpan pada internal image register. Dari sudut pandang pemrograman, semua internal relay mempunyai satu coil, dan mempunyai sebanyak N/O atau N/C contact sesuai yang diinginkan programmer. Semua PLC mempunyai internal relay, akan tetapi skema penomeran dan jumlah maksimum yang diperbolehkan untuk internal relay tergantung dari merk dan model. Oleh karena itu programmer harus mengacu pada technical manual untuk masing – masing PLC untuk menentukan bagaimana internal relay mereferensi dalam suatu program dan jumlah maksimum yang tersedia. Internal Relay adalah tool pemrograman yang sangat berharga, internal relay memberi keleluasaan pada programmer untuk melaksanakan operasi internal lebih rumit tanpa memerlukan penggunaan biaya mahal untuk beberapa output relay. Dalam contoh pemrograman internal relay dinyatakan dengan “CR” yang diikuti dengan nomor urut (e.g., CR1, CR2, etc).

D. Disagreement Circuit

Adakalanya suatu program diperlukan untuk menghasilkan output ketika dua signal “disagree” (sebuah signal berlogika 1 dan yang lain berlogika 0). Sebagai contoh, asumsikan kita mempunyai dua signal A dan B, kita menginginkan sinyal ketiga C sebagai hasil untuk kondisi A = 0, B = 1, atau A = 1, B = 0. Hal ini sangat familiar sekali kita kenal dalam logika digital sebagai gerbang exclusive OR dengan formulasi  . Hal ini dapat juga diimplementasikan dalam ladder logic, asumsikan kita mempunyai dua signal input IN1 dan IN2, dan hasilnya adl OUT1.

Untuk program ini OUT1 akan OFF (berlogika 0) ketika IN1 dan IN2 mempunyai nilai yang sama, dan OUT1 akan ON (berlogikan 1) jika IN1 dan IN2 mempunyai nilai yang berbeda.

E. Majority Circuit

Majority Circuit adalah keadaan dimana PLC harus membuat keputusan yang berdasar pada hasil mayoritas masukan. Sebagai contoh, asumsikan PLC memonitor 5 tanki berisi cairan, dan PLC harus memberikan warning kepada operator ketika 3 diantara tanki tersebut kosong. Dengan menggunakan koefisien binomial ada sepuluh kombinasi kemungkinan dari tiga tanki yang kosong. Kemungkinan yang lain juga bisa terjadi untuk kombinasi empat tanki yang kosong dan lima tanki yang kosong, tetapi kita akan melihat kasus ini yang secara otomatis dari empat tanki dan lima tanki kosong akan dimasukkan ketika kita mendesain sistem tiga tanki kosong.

Adalah sangat penting dalam mendesain majority circuit untuk mendesain sistem voting terbanyak mayoritas yang akan diterima. Sebagai contoh asumsikan lima tanki mempunyai label A, B, C, D dan E, dan ketika input dari tanki adalah ON ini mengindikasikan bahwa tanki adalah kosong. Sebuah kombinasi tiga tanki kosong adalah tanki A, B, C, sedangkan D, E tidak kosong. Jika diekspresikan dalam fungsi boolean akan menjadi  . Bagaimanapun fungsi ini tidak akan bernilai benar jika A, B, C, dan D bernilai ON ( = 1 ), maupun juga semua input bernilai ON. Oleh karena itu akan diringkas kedalam ekspresi ABC yang tetap bisa mengcover kondisi  . Hal ini bisa mengcover semua kondisi dari tiga tanki yang kosong. Dan setiap ekspresi yang ditulis hanya menggunakan tiga input yang bisa mengcover lima kombinasi dari empat tanki yang kosong dan satu kombinasi untuk lima tanki yang kosong.

Untuk mencari kemungkinan kombinasi tiga tanki yang kosong dari lima tanki, akan dimulai dengan menyusun tabel bilangan biner dari kemungkinan 5 bit nomer. Dimulai dengan 00000 dan diakhiri dengan 11111. ditambahkan lagi satu kolom disebelah kanan yang merupakan kolom yang menunjukkan jumlah tanki yang kosong (1)

Dengan mereferensi ke tabel, temukan setiap baris yang mempunyai jumlah tanki kosong sebanyak tiga, untuk setiap baris ini kita temukan sebanyak sepuluh kombinasi dari tiga tanki yang kosong, yaitu : CDE, BDE, BCE, BCD, ADE, ACE, ACD, ABE, ABD, dan ABC.

Ketika menulis program untuk masalah ini kita dapat menghemat jumlah relay contact yang akan digunakan, karena kita tahu bahwa penyederhanaan dari struktur relay yang kompleks ini akan disimpan dalam memory PLC. Tetapai bagaimanapun juga bila penyederhanaan ini menjadikan program sulit untuk dibaca dan dimengerti oleh programmer lain, maka program ini boleh untuk tidak disederhanakan. Kita akan menyederhanakan dengan beberapa faktor sehingga program ladder diagram ini menjadi mudah untuk dimengerti dan dibaca

Dasar - Dasar Pemrograman PLC (Bagian 2)

Lanjutan dari Bagian1....

Untuk operasi yang sederhana ini, kita dapat menambah program kita, dan kita akan bisa mulai melihat bagaimana PLC dapat menghemat tidak hanya pada pengawatan (wiring) tetapi pada kompleksitas dan biaya untuk komponen luar.

Kemudian kita akan menambah lampu lain yang akan bisa nyala jika salah satu SWITCH1 ( = IN1 ) atau SWITCH2 ( = IN 2 ) nyala ( = 1 ) seperti pada gambar dibawah, jika kita menambah rangkaian ini ke rangkaian yang sudah ada, kita perlu menambahkan terlebih dahulu switch PB1 dan PB2, Sungguh memerlukan tambahan biaya untuk switch PB1 dan PB2. Akan tetapi manakla ini kita kerjakan dengan PLC akan sangat mudah dan perlu sedikit biaya.

Selama signal switch1 dan switch2 sudah tersedia di terminal input IN1 dan IN2, tidak perlu lagi membawa switch1 dan switch2 ke input PLC yang lain. Hal ini karena keunikan dan ke-ekonomisan fitur dari pemrograman PLC. Sekali signal input dibawa ke input PLC untuk digunakan oleh program, diperbolehkan untuk menggunakan beberapa kontak untuk input tersebut sesuai yang diinginkan baik untuk kontak N/O atau N/C. Hal ini akan mengurangi biaya, sungguhpun program kita memerlukan lebih dari satu kontak N/O dan N/C tetapi pada kenyataannya switch tersebut hanya diperoleh dari PB1 dan PB2 yang hanya membutuhkan single N/O contact.

Sekarang kita mempunyai LAMP2 yang telah terhubung dan kita dapat untuk menyelesaikan pembuatan program untuk permasalahan diatas. Dengan sederhana sekali kita hanya menambahkan rung yang diperlukan untuk melaksanakan kerja operasi

Yang berikutnya, kita akan menambah rangkaian fungsi AND-OR dan OR-AND, untuk ini kita membutuhkan tambahan dua switch yaitu SWITCH3 dan SWITCH4 dan tambahan dua lampu yaitu LAMP3 dan LAMP4

Setelah diketahui skema koneksi untuk semua komponen, akan dapat dibuat tambahan programnya untuk mengimplementasikan rangkaian AND-OR dan OR-AND

Dasar - Dasar Pemrograman PLC (Bagian 1)

Untuk membuat program PLC harus anda harus mempunyai latar belakang dalam pembuatan ladder diagram kontrol mesin. Alasanya adalah pada level dasar pemrogrman ladder untuk PLC adalah sama dengan ladder diagram electrical. Seorang engineer yang mengembangkan bahasa pemrograman PLC harus peka dengan kenyataan bahwa kebanyakan engineer, tehnisi, dan tukang listrik yang bekerja dengan mesin mesin listrik akan terbiasa dengan metode ini untuk merepresentasikan control logic. Ini mengharuskan seseorang pendatang baru di PLC untuk terbiasa dengan control diagram agar bisa dapat dengan cepat beradaptasi dengan bahasa pemrograman. Bahasa pemrograman PLC adalah salah satu bahasa pemrograman yang mudah untuk dipelajari. A. Physical Component Vs Program Component

Ketika belajar PLC programming salah satu konsep yang sulit adalah memahami perbedaan antara physical components dan program components. Kita akan menghubungkan (connecting) physical component (switches, lights, relays, etc) ke terminal luar pada PLC. Kemudian, pada program PLC, semua komponen yang terhubung dengan PLC akan direpresentasikan pada program sebagai Program Components. Program Component tidak sama dengan physical component tetapi hanya nama-nya saja yang boleh sama. Sebagai contoh switch pushbutton N/O S1 diberi nama START, jika kita connect switch ini ke input 001 PLC, maka ketika kita program PLC, switch START akan menjadi N/O relay contact dengan reference designator IN001 dengan nama START. Contoh lain jika kita connect RUN lamp L1 ke output 003 pada PLC, maka pada penulisan program, lamp akan direpresentasikan dengan relay coil dengan reference designator OUT003 dengan nama RUN.

Sebagai contoh pemrograman PLC adalah sebagai berikut, diberikan contoh rangkaian AND ladder diagram yang terdiri dua momentary push button yang terhubung secara seri dengan lampu.

Perbedaan yang mencolok terlihat adalah dua switch tidak lagi dihubungkan secara seri, malahan dua switch tersebut sebagai komponen terpisah pada input PLC, dengan model seperti ini kita mendapatkan fleksibilitas yang lebar. Dengan kata lain kita dapat mem-wire rangkaian kedalam software sesuai yang diinginkan. Dua buah sumber 120 V pada kenyataanya adalah sama, tetapi pada gambar ditunjukkan terpisah agar mudah untuk dilihat bagaiamana input dan output tersebut terkoneksi ke PLC dan bagaimana setiap bagian tersebut mendapatkan power.

Setelah kita tau komponen – komponen eksternal yang terhubung dengan PLC kita dapat menulis programnya. Switch1 yang terhubung dengan IN1 disebut sebagai IN1 pada program, dan Switch2 yang terhubung dengan IN2 disebut sebagai IN2 pada program. Juga untuk Lamp1 yang terhubung dengan OUT1 disebut sebagai OUT1 pada program. Program diatas adalah untuk mengontrol Lamp1

Penampilan dari program PLC terlihat seperti penggunaan operasi bit. Hal ini karena rung ladder yang digambar dengan komputer menggunakan kode ASCII untuk membentuk karakter graphic. Rails digambar sebagai garis vertikal, konduktor di tunjukkan sebagai garis horisontal, dan coil OUT1 ditunjukkan seperti sepasang tanda kurung, dan rails di sebelah kanan tidak digambar, beberapa program (software) yang digunakan untuk menulis dan memprogram PLC tidak menyertakan rails disebelah kanan tetapi hanya rails disebelah kiri yang digambar dengan nomer rung selanjutnya untuk masing - masing rung.

Ketika program seperti gambar diatas dijalankan, pertama PLC akan meng-update input image register dengan menyimpan nilai dari input pada terminal IN1 dan IN2 ( akan menyimpan 1 jika input ON dan 0 jika OFF ), kemudian akan menyelesaikan ladder diagram (solves the ladder) sesuai dengan yang terdapat pada diagram dengan berdasar pada isi dari input image register. Untuk program seperti digambar jika kedua input IN1 = 1 dan IN2 = 1 akan mengakibatkan nilai OUT1 = 1 pada output image register ( ini belum membuat terminal out = 1 ), kemudian ketika selesai menyelesaikan semua program, PLC akan melaksanakan update yang lain. Update ini akan mentransfer isi dari output image register (sebagai hasil dari penyelesaian ladder program) kedalam terminal output. Ini akan membuat terminal OUT1 = 1 yang akan menyalakan lampu LAMP1.

Sejarah Pemrograman Komputer

Pada tahun 1822, Charles Babbage seorang mahasiswa di Universitas Cambridge Inggris mengembangkan sebuah mesin untuk mengelola data-data agar mudah digunakan, mesin tersebut diberi nama ‘Difference Enggine’.

Setelah bekerja selama 10 tahun pada mesinnya, Charles Babbage menyadari bahwa mesin yang dia ciptakan ini merupakan sebuah mesin yang bersifat single-purpose machine artinya hanya bisa menghasilkan satu jenis keluaran (output). Selanjutnya ia mengembangkan mesin lain yang bersifat multi-purpose. Mesin ini diberi nama ‘Analytical Engine’. Pekerjaan untuk membuat ‘Analytical Engine’ ini ia lakukan sampai dengan tahun 1842.

Pada tahun 1847, Charles Babbage kembali menyempurnakan ‘Difference Engine’ hingga pada tahun 1849 ia berhasil membuat versi keduanya. Pekerjaan menyempurnakan hasil-hasil karyanya terus ia lakukan, bahkan dilanjutkan oleh anaknya, Henry Prevost. Charles Babbage sendiri meninggal pada tahun 1871. Untuk melindungi karya-karya ayahnya, Henry Prevost membuat beberapa kopian unit perhitungan aritmatika sederhana dari mesin yang dihasilkan ayahnya dan mengirimkannya ke beberapa institusi di dunia, termasuk ke Universitas Harvard.

Perkembangan dunia komputasi berlanjut pada tahun 1854, ketika seseorang bernama Charles Boole berhasil menciptakan sebuah sistem logika simbolik yang diberinama Logika Boole. Sistem ini mencakup pula logika untuk menyatakan hubungan lebih besar, lebih kecil, sama dengan dan tidak sama dengan. Sistem logika ini masih digunakan sampai dengan saat ini.

Pada tahun 1890, Amerika Serikat ingin melakukan sensus penduduk. Namun kendala yang muncul adalah keterbatasan alat yang ada pada waktu itu, mengingat jumlah penduduk yang semakin meningkat setiap tahunnya, maka diadakanlah sebuah kompetisi komputasi untuk mencari solusinya. Kompetisi ini dimenangkan oleh Herman Hollerith, yang akhirnya ia mendirikan sebuah perusahaan Hollerith Tabulating, Co. yang akhirnya berubah nama menjadi CTR (Calculating Tabulating Recording Company) setelah 3 perusahan lain ikut bergabung. Sepuluh tahun berikutnya perusahaan ini berganti nama lagi menjadi IBM (International Business Machine) hingga saat ini.

Selanjutnya perkembangan komputasi digital mulai berjalan pelan dan jarang digunakan dalam dunia bisnis sampai dengan pertengahan tahun 1920-an. Hingga pada tahun 1925, MIT (Massachusette Institute of Technology) mengembangkan sebuah mesin yang mampu menganalisis perhitungan differensiasi dan integrasi. Mesin yang didanai oleh Yayasan Rockefeller ini dapat dikatakan sebagai komputer terbesar di dunia pada tahun 1930.

Pada tahun 1935, seorang ilmuan Jerman bernama Konrad Zuse mengembangkan komputer Z-1, komputer inilah yang menjadi awal mula diterapkannya sistem biner dalam kinerjanya. Selain itu, Zuse juga berjasa dalam komputasi komputer digital ketika ia menciptakan bahasa pemrograman komputer pertama ‘Plankalkul’.

Pada tahun 1945, terjadi pula peristiwa penting dalam sejarah perkembangan komputasi komputer digital yaitu ketika terjadi kerusakan pada mesin Mark II yang ada di Universitas Harvard. Seseorang yang bernama Grace Murray Hopper yang mengetahui hal ini langsung menyelidiki sebab kerusakannya. Akhirnya dia menemukan seekor ngengat yang terjebak dalam mesin tersebut. Dalam catatan hariannya, Hopper menuliskan: “First actual case of bug being found”. Dia menyebut ngengat ini sebagai sebuah kutu busuk (bug), selanjutnya kata ‘bug’ ini sering digunakan untuk menunjukkan adanya ketidakberesan dalam program. Dari kata ‘bug’ ini muncul pula istilah ‘debugging’ yang artinya proses pembetulan kesalahan program.

Pada tahun 1954, IBM mulai mengembangkan bahasa pemrograman FORTRAN (FORmula TRANslator). Bahasa FORTRAN merupakan bahasa pemrograman level tinggi pertama yang dikomersialkan. Pemrograman level tinggi maksudnya adalah perintah atau kodenya mudah dibaca dan dipahami oleh manusia.

Pada tahun 1958, FORTRAN II dan ALGOL dipublikasikan bersamaan dengan diluncurkannya LISP. Sedangkan pada tahun 1959, bahasa pemrograman COBOL juga diluncurkan. Sejak saat itu perkembangan bahasa pemrograman berkembang sangat cepat.

Pada tahun 1970, bahasa PASCAL mulai dipublikasikan dan hingga saat ini masih banyak digunakan untuk keperluan pendidikan. Selain itu muncul pula dua bahasa pemrograman yang dianggap sangat penting yaitu SMALLTALK dan B-Languange. SMALLTALK penting karena merupakan bahasa pemrograman berbasis obyek yang pertama. Sedangkan B-Languange dikatakan penting karena merupakan cikal bakal munculnya bahasa C. Dengan bahasa C, pemrograman akan lebih mudah, efisien, dan fleksibel.

Pada tahun 1975, Dr. Wong merilis bahasa pemrograman hasil ciptaannya bernama TinyBASIC. TinyBASIC merupakan bahasa pemrograman pertama yang bersifat free alias tidak membayar dalam penggunaannya. Pada tahun yang sama, Bill Gates dan Paul Allen juga membuat bahasa pemrograman yang diberi nama BASIC. BASIC ini selanjutnya mereka jual ke MIT.

Bahasa pemrograman terus berkembang demikian pesat hingga saat ini. Hal ini ditandai dengan semakin banyaknya bahasa pemrograman yang bermunculan.

Setiap bahasa pemrograman memiliki kelebihan dan kekurangan, tetapi semua bahasa pemrograman berjalan atas dasar logika dan algoritma sehingga kedua hal inilah yang harus diasah lebih dulu jika ingin mempelajari bahasa pemrograman. Sebaiknya fokuslah kepada sebuah bahasa pemrograman hingga dapat menguasainya dengan baik, kemudian lanjutkan dengan mempelajari bahasa pemrograman yang lain untuk menambah wawasan.




Sekilas Sejarah PLC

Sebelum PLC diciptakan, sistem kontrol yang digunakan untuk membantu kegiatan produksi di industri-industri pada masa itu masih berbasis relay logic. Sistem berbasis relay logic menggunakan relay untuk melakukan kegiatan pengendalian system. Namun, sayangnya penggunaan relay ini tidak terlalu memuaskan karena kurang fleksibel terhadap perubahan dalam sistem. Apabila suatu pabrik ingin meningkatkan kapasitas produksinya, maka sistem kontrol yang mengendalikan kegiatan produksi di pabrik tersebut juga harus dirubah. Dalam sistem kendali berbasis relay logic, perubahan tersebut membutuhkan biaya yang besar dan sangat melelahkan. Selain itu sistem berbasis relay logic juga menyita ruang yang banyak dan biaya pemeliharaannya juga sangat besar.

The Hydramatic Division pada General Motors Corporation lah yang pertama kali menspesifikasikan kriteria-kriteria untuk Programmable Logic Controller (PLC) yang pertama pada tahun 1968. Tujuan mereka saat itu adalah untuk menggantikan sistem kontrol berbasis relay yang mereka gunakan karena tidak fleksibel dan memakan biaya yang sangat besar. Untuk itu, mereka mengumumkan untuk menerima proposal yang sanggup untuk menggantikan sistem kontrol relay mereka dengan suatu perangkat elektronik yang handal dengan spesifikasi – spesifikasi sebagai berikut:

1. Sistem kontrol yang baru tersebut harus mempunyai harga yang bersaing dengan sistem kontrol berbasis relay yang digunakan saat itu.

2. Sistem tersebut harus tahan terhadap kondisi lingkungan indusri yang berat.

3. Antarmuka input dan output harus mudah untuk diganti-diganti.

4. Controller harus didesain dalam bentuk modul-modul sehingga bagian-bagian tertentu dapat dilepas sewaktu-waktu untuk penggantian atau perbaikan.

5. Sistem kontrol mempunyai kemampuan untuk mengumpulkan data dan mengirimkannya ke central system.

6. Sistem kontrol tersebut harus dapat digunakan lagi untuk kondisi yang berbeda.

7. Metode untuk memprogram controller harus sederhana sehingga mudah dipahami oleh karyawan pabrik.

Proposal yang menang dan memenuhi spesifikasi yang diinginkan oleh Hydramatic Division adalah proposal yang dimenangkan oleh Bedford Associates. Dick Morley salah satu anggota tim dari Bedford Associates yang memenangkan proposal tersebut dianggap sebagai “bapak” dari PLC. PLC pertama yang diciptakan oleh Bedford Associates tersebut memenuhi semua kriteria yang diinginkan oleh Hydramatic Division.

Dalam waktu singkat penggunaan PLC mulai menyebar ke industri-industri lain. Pada tahun 1971, PLC mulai digunakan untuk menggantikan relay pada industri-industri seperti: industri makanan dan minuman, industri pengolahan metal, industri manufaktur, dan industri pulp dan kertas.

Kesuksesan PLC ini dikarenakan kemampuannya yang merupakan sebuah peningkatan signifikan dari sistem kontrol berbasis relay karena lebih mudah digunakan, membutuhkan ruang dan energi yang lebih sedikit, mempunyai indicator-indicator untuk mendiagnosis sehingga lebih memudahkan troubleshooting apabila terjadi masalah, dan dapat digunakan lagi untuk proyek yang lain apabila proyek yang sedang berjalan dihentikan.

Kemampuan PLC terus dikembangkan hingga sekarang. PLC saat ini mempunyai scan times yang lebih cepat karena menggunakan teknologi mikroprosesor yang lebih maju. Kemampuan input-output nya juga meningkat menjadi lebih hemat ruang dan berbiaya lebih rendah. Walaupun kemampuan PLC terus meningkat sehingga mempunyai scan times yang lebih cepat, tipe-tipe antarmuka yang lebih bervariasi, kemampuan memproses data yang lebih canggih, namun spesifikasi PLC tetap mempertahankan tujuan awal penciptanya, yaitu mudah untuk digunakan dan dipelihara.


Komponen Tambahan PLC

Selain komponen dasar yang telah dibahas pada topik sebelumnya, PLC juga memiliki komponen tambahan yang dapat membuat fungsi maupun kinerjanya menjadi semakin optimal. Hal tersebut karena sebuah PLC tersusun dari ratusan bahkan ribuan relay, counter, timer dan juga memori.

Gambar komponen relay secara umum

Gambar komponen relay secara umum

Berikut komponen-komponen tambahan pada PLC:

1. Input relay atau kontaktor

Komponen ini dihubungkan ke dunia luar (antarmuka) PLC, dan secara fisik komponen ini ada serta menerima sinyal dari source, sensor dan lain sebagainya.

2. Internal, utility relay

Internal Relay tidak dapat diakses secara langsung untuk digunakan sebagai input maupun output. Komponen ini merupakan relay semu yang merupakan bit digital (0/1) yang disimpan pada internal image register. Dilihat dari sudut pandang pemrograman, semua internal relay mempunyai satu coil dan mempunyai sebanyak contact sesuai yang diinginkan oleh programer. Semua Iternal relay dimiliki oleh semua jenis maupun merk PLC, namun cara penomeran dan jumlah maksimum yang diperbolehkan masing-masing berbeda. Bagi kebanyakan programer, Internal Relay memberikan kebebasan untuk melaksanakan operasi internal yang lebih rumit tanpa memerlukan penggunaan biaya mahal untuk beberapa output relay. Dalam contoh pemrograman Internal Relay dapat disimbolkan dengan IR.

3. Counters

Counter sama dengan input relay yang secara fisik tidak ada. Komponen ini merupakan simulasi counter dan dapat diprogram untuk menghitung banyak pulsa, dapat menghitung naik atau turun atau keduanya naik dan turun. Selama waktu simulasi dapat dibatasi kecepatan hitungnya. Beberapa perusahaan membuat counter berkecepatan tinggi dengan bantuan tambahan hardware.

4. Timers

Timer juga merupakan komponen maya yang secara fisik tidak dapat ditemui. Komponen ini dibuat dengan banyak ragam dan yang paling umum adalah tipe tunda saat ON (on delay) dan tunda saat OFF (off delay) dan dua tipe yang dapat menyimpan data atau tidak dapat menyimpan data (retentive dan nen-retentive type), variasi jenaikan 1 ms sampai dengan 1s.

5. Output relays (Kumparan)

Output relay merupakan komponen tambahan yang dihubungkan dengan dunia luar, memiliki bentuk fisik dan melaksanakan tugas mengirimkan sinyal ON/OFF ke solenoid, lampu dan komponen keluaran lain. Wujud dari output relay ini dapat berupa transistor, relay atau triac tergantung pada model yang dipilih pengguna.

6. Data storage

Gambar data storage memory PLC

Gambar data storage memory PLC

Data storage merupakan suatu register untuk menyederhanakan penyimpanan. Biasanya difungsikan sebagai alat penyimpanan data.