Aplikasi Software "Classic Ladder" untuk Pembelajaran Pemrograman Ladder PLC
Transcript of Aplikasi Software "Classic Ladder" untuk Pembelajaran Pemrograman Ladder PLC
TUGASAKHIR
HALAMAN JUDUL
APLIKASI SOFTWARE “CLASSIC LADDER” UNTUK
PEMBELAJARAN DASAR PEMROGRAMAN LADDER PLC
Disusun untuk Memenuhi Salah Satu Persyaratan Guna Memeroleh Gelar Sarjana
S-1 Program Studi Teknik Elektro
Universitas Muhammadiyah Yogyakarta
Disusun oleh:
AHMADAFIEFAMRULLAH
20100120017
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH YOGYAKARTA
2014
TUGASAKHIR
APLIKASI SOFTWARE “CLASSIC LADDER” UNTUK
PEMBELAJARAN DASAR PEMROGRAMAN LADDER PLC
Disusun untuk Memenuhi Salah Satu Persyaratan Guna Memeroleh Gelar Sarjana
S-1 Program Studi Teknik Elektro
Universitas Muhammadiyah Yogyakarta
Disusun oleh:
AHMADAFIEFAMRULLAH
20100120017
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH YOGYAKARTA
2014
vi
HALAMAN PERSEMBAHAN
Tiada daya dan upaya melainkan atas pertolongan Allah subhaanahu wata’aalaa.
Dialah satu-satunya dzat tempat kita manusia berharap dan meminta pertolongan.
Puji syukur kehadirat Allah subhaanahu wata’aalaa penulis panjatkan atas
rahmat-Nya, hidayah-Nya, serta pertolongan-Nya, sehingga atas izin-Nya penulis
dapat menyelesaikan tugas akhir ini.
Tugas akhir ini penulis persembahkan bagi:
Kedua orang tua penulis, Bapak Drs. Muhsin Hariyanto, M.Ag. dan Ibu Rowiyah,
S.Ag. yang senantiasa mendo’akan tanpa diminta, menanyakan kondisi penulis
tanpa basa-basi, menyeru untuk fokus dan mengejar cita-cita serta memotivasi di
saat penulis mengalami kemalasan dan kebimbangan. Do’a dan ridho dari mereka
merupakan energi ekstra yang memacu penulis untuk berjuang dalam setiap ujian
dan cobaan yang menghampiri penulis. Sejujurnya penulis ingin menangis
melihat keikhlasan mereka menerima, mengasuh, dan memberikan kasih sayang
kepada anak mereka yang seringkali menyusahkan dan membuat masalah.
Mungkin penulis bukanlah anak mereka yang terbaik, akan tetapi penulis akan
selalu berusaha untuk berbuat yang terbaik untuk membahagiakan mereka
berdua.
Untuk kedua saudara kandung penulis, Ahmad Arief Alfaruqi(kakak penulis) dan
Ahmad Aziez Alfauzi(adik penulis) yang selalu membuat penulis ingin menjadi
lebih baik dan lebih baik lagi sebagai saudara mereka.
Untuk adik perempuan penulis, Husna Ainun Ni’mah yang penulis cintai, sayangi,
dan banggakan. Engkau selalu membuat penulis ceria ketika berada di rumah.
Untuk simbah uti Sa’adah yang masih selalu ingat akan hari ulang tahun bahkan
hari di mana penulis di-aqiqahkan. Sungguh penulis ingin menangis walau tidak
bisa di depan beliau.
vii
Untuk segenap keluarga besar penulis yang penulis hormati.
Untuk sahabat setia penulis sejak tahun 2011, Afiq. Penulis tidak akan melupakan
masa-masa suka dan duka bersamamu. Engkau yang selalu ceria dan ikhlas
bersahabat dengan orang yang pelupa dan banyak kekurangan ini. Engkau yang
selalu membuat penulis merasa tidak sediri. Terimakasih untuk semuanya.
Semoga kita bisa bersahabat selamanya.
Untuk sahabat-sahabat penulis di UMY: Ririn, Mbak Tari, Mbak Ven, Mbak
Aniko, dan Andri. Juga untuk mbak-mbak dan mas-mas yang penulis hormati:
Mbak Ani, Mbak Nurul, Mas Fatih, dan yang lainnya. Semoga segala hal yang
penulis berikan ataupun yang kalian berikan dapat dibalas oleh Allah subhaanahu
wata’aalaa dengan balasan yang terbaik.
Untuk sahabat-sahabat penulis di Kelompok Studi Linux UMY. Wiwi, Adnan,
Zulfan, Habib, Aisyah, Joko, Mbak Liya, dan yang lainnya. Semoga penulis dapat
kembali dan terus berbagi lebih banyak pengetahuan yang bermanfaat untuk
kalian semua. Terimakasih juga khususnya kepada senior penulis, Mas Imannudin
atas bimbingan dan bantuan yang telah diberikan selama ini.
Untuk sahabat-sahabat penulis di UKM Kelompok Penelitian Mahasiswa. Janna,
Ikbal, Mbak Retno, dan yang lainnya. Terimakasih karena kalian semua selalu
menghargai penulis yang mungkin banyak mengecewakan dan kekurangan ini
saat bersama berjuang dengan kalian semua.
Untuk semua sahabat-sahabat P&P JAA yang penulis hormati dan banggakan:
Mbak Ana, Anna, Dilah, Aji, Fauzi, Arif, Oryza, Vivi, Nurul, Bagus, dan lain-lain.
Untuk sahabat-sahabat penulis di Lab. Teknik Elektro UMY. Fikri, Aji, Amru,
Ahdi, Mas Pul, Mas Septian, dan yang lainnya. Terimakasih karena kalian selalu
membuat penulis bahagia ketika nongkrong di Lab. Bersama. Semoga kita semua
dapat sukses di dunia dan akhirat. Ditunggu ya kabar terbaru kalian (termasuk:
kapan married, hehe).
viii
Untuk semua sahabat penulis di UNIRES. Sahabat-sahabat IT(Ibnu Taimiyah)
2011: Helmi, Eka, Wanyad, Ridho, Arfad, Singgih, Ical dan IT 2012: Dodi,
Hilman, Arisko, Mas Ded, Fadhal, Duo Semeton, Dimas, Dio, Abrar, Obi, Andi,
dan Ipin. Juga untuk sahabat-sahabat SR-ASR-Pembina (Ghufran, Aris, Yunus,
Mahfud, Ucup, Shodiq, Bang Imam, Imam, Syarif, dan yang lainnya) dan
resident-resident lainnya. Juga untuk kakak-kakak penulis: Mas Rama Rizana,
Duo Mas Lukman (Lukmanul Hakim dan Lukman Hakim). Sungguh pengalaman
bersama kalian semua memberi penulis banyak hal.
Untuk semua jajaran pejabat UNIRES UMY: Pak Ghoffar, Pak Iskandar, Bu Istho
dan staf-staf UNIRES UMY:Mas-mas dan Bapak-bapak Cleaning, Mas Rohmat,
Ustadz Nazieh, Pak Nodo, Teh Ai, Mbak Iin, Mas Imam dan yang lainnya.
Untuk mbak-mbak UNIRES yang penulis hormati: Mbak Syadah, Mbak
Khodijah, Mbak Sakinah, Mbak Olif, Mbak Idah, dan mbak-mbak mitra bisnis
pulsa (Mbak Rahma dan Mbak Tiatu). Semoga kita semua diberikan yang terbaik
oleh Allah subhaanahu wata’aalaa.
For Mr. Kasmil, Mr. Qomaruddin, the others from Philipines. All of you make me
motivated to continue my study abroad.
Untuk sahabat-sahabat penulis di GEMUIS (Generasi Muda Islam) Ngadisuryan.
Edo, Bagas, Satya, Pascal, Siddiq, dan yang lainnya. Mohon maaf atas
ketidakhadiran penulis serta terimakasih telah menghargai dan menerima penulis.
Untuk sahabat-sahabat penulis di Pengajian I’tikaf Ramadhan ke-32 di Pondok
Pesantren Budi Mulia.
Untuk semua personil grup nasyid Lensa Acapella: Akbar, Wildan, Alfian,
Aqwam, Fardhani, Ipul, dan Ardhi. Terimakasih atas perhatian, bantuan,
pengertian, serta pengorbanan kalian semua. Tanpa izin Allah untuk bertemu dan
mendapatkan pengalaman bersama kalian, penulis tidak akan menjadi seseorang
yang seperti saat ini. Terimakasih untuk semuanya.
ix
Untuk sahabat-sahabat penulis di SMA Islam Terpadu Abu Bakar Jogja: Mujahid,
Aziz, Muddien, Azzam, Izhar, Arif, Hamzah, Rezza, Kholid, dan yang lainnya.
Untuk sahabat-sahabat penulis di SMP ITAbu Bakar Jogja: Jevo, Umar, Inmas,
Bal P., Iqbal Azzaki(yang ketemu lagi di UMY), Aloft, dan yang lainnya.
Terimakasih karena kalian telah menerima seseorang yang lemah ini.
Untuk sahabat-sahabat penulis di SD IT Lukman Al-Hakim.
Untuk semua ustadz dan ustadzah yang pernah mengajar dan memberi
pengetahuan kepada penulis selama penulis menempuh masa lebih kurang 12
tahun pendidikan sebelum perguruan tinggi. Sungguh, tiada hal yang dapat
menggantikan pengorbanan dan keikhlasan kalian selama membimbing anak
yang bermasalah ini.
Terkhusus untuk ustadz Wasid, mohon maaf telah merepotkan di masa penulis SD.
Terimakasih, engkau telah bersedia membantu anak ini untuk menjadi lebih baik.
Terkhusus untuk ustadz Edy Sukarsa, terimakasih karena engkau telah membantu
membangun semangat penulis untuk menempuh pendidikan dengan rasa senang,
nikmat, syukur, dan kesungguhan.
Penulis hanya bisa berusaha untuk membanggakan kalian semua.
Untuk seseorang yang mungkin mencintai penulis dalam diam dan tidak dapat
penulis sebutkan namanya, walau berusaha sekuat apapun. Penulis sungguh tidak
menyangka, ternyata ada seseorang yang menyukai diri penulis yang tidak patut
untuk diidolakan dan dikagumi ini. Sungguh hal ini sangat berarti bagi penulis
dan dapat menjadi motivasi tersendiri.
Mohon maaf sebesar-besarnya kepada semua pihak yang belum disebutkan
satu-persatu, karena inilah keterbatasan penulis. Syukran ilaykum...
x
HALAMAN MOTTO
Sesungguhnya Allah bersama orang-orang yang sabar.
Barangsiapa bersabar maka baginya manfaat kesabarannya.
Be patient...
Cintailah seseorang sekedarnya karena mungkin suatu saat engkau akan
membencinya dan bencilah kepada seseorang sekedarnya karena mungkin suatu
saat engkau akan mencintainya...
Motto-motto di atas terinspirasi dari Al-Qur’an dan Hadits.
xi
KATA PENGANTAR
Alhamdulillah, puji syukur kehadirat Allah subhanahu wa ta’ala yang
telah memberikan rahmat dan hidayah-Nya, sehingga penulis dapat
menyelesaikan laporan tugas akhir ini. Shalawat dan salam kita curahkan kepada
uswatun hasanah kita Nabi Muhammad shallallahu ‘alayhi wa sallam.
Tiada ucapan yang pantas selain syukur dan terima kasih. Penyelesaian
laporan tugas akhir ini tidak terlepas dari bantuan banyak pihak baik secara
materil maupun moril. Karena hal tersebut, penulis mengucapkan terimakasih
kepada:
1. Bapak Ramadoni Syahputra, S.T., M.T., selaku Dosen Pembimbing I
2. Bapak Rahmat Adiprasetya Al Hasibi, S.T., M.Eng., selaku Dosen
Pembimbing II
3. Ibu Anna Nur Nazilah Chamim, S.T., M.Eng., selaku Dosen Penguji
4. Bapak Ir. Agus Jamal, M.Eng., selaku Ketua Jurusan Teknik Elektro UMY
5. dan pihak-pihak lainnya yang tidak dapat disebutkan satu-persatu.
Penulis menyadari bahwa di dalam laporan ini masih terdapat banyak
kekurangan, kesalahan, ataupun ketidaksesuaian. Oleh karena itu penyusun
mengharapkan kritik dan saran yang membangun agar dapat menunjang kualitas
atau kesempurnaan laporan ini. Semoga laporan ini dapat memberi manfaat baik
bagi orang lain maupun diri penulis sendiri.
Yogyakarta, 31 Desember 2014
Penulis
xii
DAFTAR ISI
HALAMAN JUDUL................................................................................................i
HALAMAN PENGESAHAN I............................................................................. iii
HALAMAN PENGESAHAN II............................................................................ iv
HALAMAN PERNYATAAN..................................................................................v
HALAMAN PERSEMBAHAN.............................................................................vi
HALAMAN MOTTO............................................................................................. x
KATA PENGANTAR.............................................................................................xi
DAFTAR ISI......................................................................................................... xii
DAFTAR LAMPIRAN........................................................................................ xvi
DAFTAR TABEL............................................................................................... xvii
DAFTAR GAMBAR......................................................................................... xviii
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah............................................................................1
1.2 Rumusan Masalah..................................................................................... 3
1.3 Batasan Masalah........................................................................................3
1.4 Tujuan Penelitian.......................................................................................3
1.5 Manfaat Penelitian.....................................................................................4
1.6 Luaran yang Dihasilkan............................................................................ 4
1.7 Sistematika Penulisan................................................................................4
BAB II STUDI PUSTAKADAN LANDASAN TEORI
2.1 Definisi PLC..............................................................................................6
2.2 Prinsip Kerja Dasar PLC...........................................................................9
xiii
2.2.1Memeriksa Status Masukan (Check Input Status)........................10
2.2.2Melakukan Eksekusi Program (Execute Program)...................... 11
2.2.3Memperbaharui Status Keluaran(Update Output Status).............11
2.3 Komponen-komponen/Bagian-bagian Penyusun PLC............................13
2.3.1 Perangkat Pemrograman (Programming Device)........................ 15
2.3.2 Hubungan Input/Output (I/O) dengan Perangkat Lunak..............17
2.4 Dasar Pemrograman Ladder Diagram Language/Bahasa Diagram
Tangga/Ladder Logic.................................................................................... 18
2.4.1 Sistem Aliran Daya.......................................................................19
2.4.2 Konvensi tentang Ladder Diagram..............................................20
2.4.3 Komponen-komponen Dasar Ladder Diagram............................25
2.5 Software Classic Ladder..........................................................................34
2.5.1 Profil.............................................................................................34
2.5.2 Konsep Ladder............................................................................. 35
2.5.3 Bahasa.......................................................................................... 36
2.5.4 File............................................................................................... 36
2.5.5 Tampilan / Antarmuka Grafis/ Graphical User Interface............ 38
2.5.6 Obyek Ladder dalam Classic Ladder...........................................52
2.5.7 Variabel-variabel dalam Classic Ladder.......................................62
BAB III METODOLOGI PELAKSANAAN
3.1 Studi Literatur......................................................................................... 66
3.2 Persiapan................................................................................................. 66
3.2.1 Pengunduhan/Download.............................................................. 66
xiv
3.2.2 Pemasangan..................................................................................68
3.3 Pengujian (Penulisan dan Simulasi Program Ladder Diagram)............. 83
3.3.1Menambahkan Ladder Logic....................................................... 83
3.3.2Melakukan Simulasi terhadap Program Ladder...........................87
3.1.1 Menyimpan File Proyek Classic Ladder......................................91
3.4 Analisis Hasil Pengujian..........................................................................93
3.5 Pembuatan Laporan.................................................................................93
BAB IV PEMBAHASAN
4.1 Program Input-Output Dasar...................................................................94
4.2 Program Latching....................................................................................94
4.3 Program SET - RESET.............................................................................96
4.4 Program Gerbang Logika Dasar..............................................................98
4.4.1 AND............................................................................................. 98
4.4.2 OR...............................................................................................100
4.4.3 NOT............................................................................................ 101
4.4.4 AND NOT................................................................................... 102
4.4.5 OR NOT......................................................................................104
4.4.6 EXOR.........................................................................................105
4.4.7 EXNOR...................................................................................... 107
4.5 Program Timer.......................................................................................109
4.5.1 TON............................................................................................110
4.5.2 TOF.............................................................................................111
4.5.3 TP............................................................................................... 113
xv
4.6 Program Counter................................................................................... 114
4.6.1 PRESET...................................................................................... 115
4.6.2 RESET........................................................................................ 116
4.6.3 UP COUNT................................................................................ 117
4.6.4 DOWN COUNT..........................................................................119
4.6.5 UP COUNT - OVERFLOW........................................................120
4.6.6 DOWN COUNT - UNDERFLOW.............................................. 122
BAB V PENUTUP
5.1 Kesimpulan............................................................................................124
5.2 Saran......................................................................................................125
DAFTAR PUSTAKA.......................................................................................... 127
LAMPIRAN........................................................................................................130
xvi
DAFTAR LAMPIRAN
Lampiran 1. Bahasa Pemrograman PLC.............................................................131
Lampiran 2. Program-program Ladder Dasar yang Digunakan......................... 134
Lampiran 3. Gerbang-gerbang Logika Dasar dan Tabel Kebenarannya............. 140
Lampiran 4. Variabel pada Pengaturan Classic Ladder.......................................141
Lampiran 5. Sejarah Pengembangan Software Classic Ladder...........................142
Lampiran 6. Rencana Pengembangan dan Update Software Classic Ladder dari
Developer............................................................................................................ 144
Lampiran 7. Perintah Instalasi Paket Pustaka/Library pada Berbagai Distro Linux
dengan Manajer Paket yang Bervariasi...............................................................147
Lampiran 8. Istilah-istilah Penting......................................................................148
Lampiran 9. Daftar Kompetisi PLC Programming untuk Mahasiswa................151
xvii
DAFTAR TABEL
Tabel 2.1. Tabel Hubungan Relay dengan PLC.......................................................8
Tabel 4.1. Tabel Kebenaran Program AND........................................................... 99
Tabel 4.2. Tabel Kebenaran Program Ladder OR............................................... 101
Tabel 4.3. Tabel Kebenaran Program Ladder NOT.............................................102
Tabel 4.4. Tabel Kebenaran Program Ladder NOT AND.................................... 103
Tabel 4.5. Tabel Kebenaran Program Ladder NOT OR.......................................105
Tabel 4.6. Tabel Kebenaran Program Ladder EXOR..........................................107
Tabel 4.7. Tabel Kebenaran Program Ladder EXNOR.......................................109
Tabel 1. Contoh List Instruksi............................................................................. 131
Tabel 2. Tabel Kebenaran Program Ladder AND................................................136
Tabel 3. Tabel Kebenaran Program Ladder OR.................................................. 136
Tabel 4. Tabel Kebenaran Program Ladder NOT................................................137
Tabel 5. Tabel Kebenaran Program Ladder EXOR.............................................137
Tabel 6. Tabel Kebenaran Program Ladder EXNOR..........................................138
Tabel 7. Tabel Kebenaran Program Ladder NOT OR..........................................138
Tabel 8. Tabel Kebenaran Program Ladder NOT AND....................................... 139
Tabel 9. Gerbang Logika Dasar...........................................................................140
Tabel 10. Variabel Default...................................................................................141
xviii
DAFTAR GAMBAR
Gambar 2.1. Gambaran Umum Sebuah PLC.......................................................... 6
Gambar 2.2. Diagram Konseptual Aplikasi PLC.................................................... 7
Gambar 2.3. Prinsip Kerja Dasar PLC.................................................................. 10
Gambar 2.4. Proses Scanning Program PLC.........................................................10
Gambar 2.5. Komponen-komponen Utama PLC..................................................13
Gambar 2.6. Interaksi Komponen-komponen Sistem PLC...................................14
Gambar 2.7. Elemen Dasar PLC dan Hubungan Bagian Utama dari PLC........... 15
Gambar 2.8. Miniprogrammer..............................................................................16
Gambar 2.9. Pemrograman PLC dengan Menggunakan Komputer......................17
Gambar 2.10. Hubungan antara I/O dengan Perangkat Lunak............................. 18
Gambar 2.11. Ladder Diagram (IEC, “IEC 61131-3, 3, 2nd Ed, 2003)............... 18
Gambar 2.12. Sistem Aliran Daya.........................................................................20
Gambar 2.13. Ladder Diagram dan Keterangannya.............................................21
Gambar 2.14. Penggunaan Internal Relay............................................................22
Gambar 2.15. Konvensi untuk Pemasangan Contact........................................... 22
Gambar 2.16. Konvensi untuk Pemasangan Coil (Asumsi: Kedua Coil Beralamat
Sama).....................................................................................................................23
Gambar 2.17. Self Holding................................................................................... 23
Gambar 2.18. Ladder Diagram dengan Special Coil (SET dan RESET)..............23
Gambar 2.19. Timing Diagram dengan Special Coil (SET dan RESET)............. 24
Gambar 2.20. Diagram Ladder dari Positive Transition Contact.........................24
Gambar 2.21. Timing Diagram dari Positive Transition Contact.........................24
xix
Gambar 2.22. Ladder Diagram dari Negative Transition Contact.......................24
Gambar 2.23. Timing Diagram dari Negative Transition Contact....................... 25
Gambar 2.24. Ladder Diagram Timer.................................................................. 28
Gambar 2.25. Timing Diagram dari Timer On Delay...........................................29
Gambar 2.26. Timing Diagram dari Timer OFF Delay........................................ 29
Gambar 2.27. Timing Diagram dari Timer Pulse..................................................30
Gambar 2.28. Ladder Diagram Counter.............................................................. 32
Gambar 2.29. Timing Diagram Counter - Up Count............................................33
Gambar 2.30. Timing Diagram dari Counter - Count Down................................33
Gambar 2.31. Jendela DefaultManajer Bagian(Section Manager)......................38
Gambar 2.32. Jendela Default Tampilan Bagian(Section Display)...................... 39
Gambar 2.33. Jendela Status Bit........................................................................... 41
Gambar 2.34. Jendela Pemantau (Watch Window)............................................... 42
Gambar 2.35. Jendela Nama Simbol.....................................................................43
Gambar 2.36. Jendela Editor................................................................................ 44
Gambar 2.37. Jendela Config................................................................................47
Gambar 2.38. Jendela Section Display Classic Ladder Versi Terbaru (0.9.014)...48
Gambar 2.39. Menu Utama Jendela Section Display Classic Ladder Versi Terbaru
(0.9.014)................................................................................................................ 48
Gambar 2.40. (a)Jendela EditorAktif dan (b)Jendela Editor Inaktif....................51
Gambar 2.41. Tool-tool Editor yang Berbeda di Versi Terbaru Classic Ladder
(0.9.014)................................................................................................................ 52
Gambar 2.42. Contoh Menetapkan(Assign) / Membandingkan(Compare).......... 59
xx
Gambar 3.1. Diagram Alir Metodologi Pelaksanaan............................................ 65
Gambar 3.2. Contoh Hasil Extract atau “unzip” dari FileArsip Classic Ladder..69
Gambar 3.3. Penyalinan Alamat Direktori Classic Ladder................................... 70
Gambar 3.4. Penyertaan Direktori Classic Ladder Tahap 1.................................. 70
Gambar 3.5. Penyertaan Direktori Classic Ladder Tahap 2.................................. 71
Gambar 3.6. Direktori Classic Ladder yang Telah Diakses dengan Shell
Interpreter............................................................................................................. 71
Gambar 3.7. Kompilasi Classic Ladder yang Mengalami Error.......................... 71
Gambar 3.8. Kompilasi Classic Ladder yang Berhasil......................................... 72
Gambar 3.9. Eksekusi Perintah Instalasi Classic Ladder......................................72
Gambar 3.10. Instalasi Classic Ladder yang Berhasil...........................................72
Gambar 3.11. GUI Classic Ladder Versi Lama (0.7.124) untuk Linux.................73
Gambar 3.12. GUI Classic Ladder Versi Terbaru (0.9.014) untuk Linux............. 73
Gambar 3.13. Direktori/FolderMasing-masing Versi Classic Ladder................. 75
Gambar 3.14. Folder Hasil Extract FileArsip Classic Ladder.............................76
Gambar 3.15. Konten Folder/Direktori Hasil Extract dari FileArsip Classic
Ladder....................................................................................................................76
Gambar 3.16. Direktori/Folder Classic Ladder untuk Linux dengan File
Executable classicladder....................................................................................... 77
Gambar 3.17. Tampilan Utama Classic Ladder Versi Lama untuk Linux.............77
Gambar 3.18. Tampilan Utama Classic Ladder Versi Terbaru (0.9.014) untuk
Linux..................................................................................................................... 78
Gambar 3.19. Folder Terpisah antar Versi Classic Ladder untuk Windows......... 79
xxi
Gambar 3.20. Folder Hasil Extract dari File “zip” Classic Ladder Versi Terbaru
(0.9.014) untuk Windows......................................................................................79
Gambar 3.21. Folder Hasil Extract dari File “zip” Classic Ladder Versi Lama
(0.7.123+)..............................................................................................................80
Gambar 3.22. Isi dari Folder Hasil Extract File “zip” Classic Ladder.................80
Gambar 3.23. Hasil Extract dari File “zip” pustaka dari GTK Runtime.............. 80
Gambar 3.24. Hasil Extract File “zip” Update untuk Pustaka zlib1.....................81
Gambar 3.25. Isi Folder Classic Ladder dengan Pustaka GTK runtime dan
Update Pustaka zlib1.............................................................................................81
Gambar 3.26. Memulai Classic Ladder.................................................................82
Gambar 3.27. Tampilan Awal Classic Ladder Versi Terbaru (0.9.014) untuk
Windows................................................................................................................82
Gambar 3.28. Tampilan Awal Classic Ladder Versi Lama (0.7.123+) untuk
Windows................................................................................................................83
Gambar 3.29. Section Display dengan Grid......................................................... 84
Gambar 3.30. Jendela Editor dengan Obyek Kontak Normal Terbuka Terpilih... 84
Gambar 3.31. Section Display dengan Input........................................................ 85
Gambar 3.32. Section Display dengan Rung........................................................ 86
Gambar 3.33. Tampilan Bagian(Section Display) yang Selesai............................86
Gambar 3.34. Section Display dengan Obyek Ladder Input dan Output............. 87
Gambar 3.35. Jendela Editor dengan Tombol “Ok” yang Hendak Ditekan..........88
Gambar 3.36. Section Display dengan Simulasi ON dan Editor OFF................. 89
Gambar 3.37. Pemantau Variabel Boolean dengan %I0 ON................................ 89
xxii
Gambar 3.38. Section Display dengan Input dan Output ON...............................90
Gambar 3.39. Toolbar Classic Ladder Versi Terbaru dengan Simulasi OFF....... 91
Gambar 3.40. Toolbar Classic Ladder Versi Terbaru dengan Simulasi ON..........91
Gambar 3.41. Tombol-tombol Menu Utama pada Classic Ladder Versi Lama
(0.7.124/0.7.123+).................................................................................................91
Gambar 3.42. Toolbar pada Section Display (Classic Ladder Versi 0.9.014).......92
Gambar 3.43. Dialog Save As............................................................................... 92
Gambar 3.44. Jendela Penyimpanan Proyek.........................................................93
Gambar 4.1. Kondisi Awal Program Input-Output Dasar..................................... 94
Gambar 4.2. Program Input-Output Dasar dengan %I0 yang Aktif......................94
Gambar 4.3. Kondisi Awal Program Latching......................................................94
Gambar 4.4. Program Latching dengan Tombol START yang Aktif..................... 95
Gambar 4.5. Nama-nama Simbol yang Digunakan...............................................95
Gambar 4.6. Program Latching dengan Tombol START Inaktif atau Bernilai 0...95
Gambar 4.7. Program Latching dengan Tombol STOPAktif atau Bernilai 1.......96
Gambar 4.8. Program Latching dengan Tombol STOP Inaktif atau Bernilai 0.... 96
Gambar 4.9. Kondisi Awal Program SET-RESET................................................ 96
Gambar 4.10. Kondisi Variabel Setelah %I0 Diaktifkan.......................................96
Gambar 4.11. Program SET-RESET dengan %I0 Aktif........................................ 97
Gambar 4.12. Kondisi Variabel Setelah %I0 Dinoaktifkan...................................97
Gambar 4.13. Kondisi Variabel Setelah %I1 Diaktifkan.......................................98
Gambar 4.14. Program SET-RESET dengan %I1 Aktif........................................ 98
Gambar 4.15. Kondisi Awal Program Ladder AND............................................. 98
xxiii
Gambar 4.16. Program Ladder AND dengan Input I0 Aktif................................. 99
Gambar 4.17. Program Ladder AND dengan Input I1 Aktif................................. 99
Gambar 4.18. Program Ladder AND dengan Kedua InputAktif..........................99
Gambar 4.19. Kondisi Awal Program Ladder OR.............................................. 100
Gambar 4.20. Program Ladder OR dengan Input %I0 Aktif.............................. 100
Gambar 4.21. Program Ladder OR dengan Input %I1 Aktif.............................. 100
Gambar 4.22. Program Ladder OR dengan Kedua InputAktif...........................101
Gambar 4.23. Program NOT dengan Input Bernilai 0.........................................101
Gambar 4.24. Program NOT dengan Input Bernilai 1.........................................102
Gambar 4.25. Kondisi Awal Program NOT AND............................................... 102
Gambar 4.26. Program NOT AND dengan Input %I0 Bernilai 1........................ 103
Gambar 4.27. Program NOT AND dengan Input %I1 Bernilai 1........................ 103
Gambar 4.28. Program NOT AND dengan Kedua Input Bernilai 1.................... 103
Gambar 4.29. Kondisi Awal Program NOT OR..................................................104
Gambar 4.30. Program NOT OR dengan Input %I0 Bernilai 1...........................104
Gambar 4.31. Program NOT OR dengan Input %I1 Bernilai 1...........................104
Gambar 4.32. Program NOT OR dengan Kedua Input Bernilai 0.......................104
Gambar 4.33. Kondisi Awal Program Ladder EXOR......................................... 105
Gambar 4.34. Program Ladder EXOR dengan Input %I0 Bernilai 1................. 106
Gambar 4.35. Program Ladder EXOR dengan Input %I1 Bernilai 1................. 106
Gambar 4.36. Program Ladder EXOR dengan Input %I0 dan %I1 Bernilai 1...106
Gambar 4.37. Kondisi Awal Program Ladder EXNOR...................................... 107
Gambar 4.38. Program EXNOR dengan Input %I0 Bernilai 1...........................107
xxiv
Gambar 4.39. Program XNOR dengan Input %I1 Bernilai 1............................. 108
Gambar 4.40. Program XNOR dengan Kedua Input (%I0 dan %I1) Bernilai 1.108
Gambar 4.41. Kondisi awal dari Timer-timer yang Digunakan.......................... 109
Gambar 4.42. Kondisi Awal dari TON................................................................ 110
Gambar 4.43. TON dengan Waktu yang Berjalan...............................................110
Gambar 4.44. TON dengan Waktu Mencapai Preset..........................................110
Gambar 4.45. TON Setelah Mengalami Reset.................................................... 111
Gambar 4.46. Timing Diagram Program TON....................................................111
Gambar 4.47. Kondisi Awal Program Ladder TOF.............................................111
Gambar 4.48. TOF dengan Input ON dan Output ON........................................ 112
Gambar 4.49. TOF dengan Input OFF dan Output ON...................................... 112
Gambar 4.50. TOF Setelah Waktu Selesai.......................................................... 112
Gambar 4.51. Timing Diagram Program TOF.................................................... 112
Gambar 4.52. Kondisi Awal TP...........................................................................113
Gambar 4.53. TP dengan InputAktif, Waktu Hitung Mundur............................ 113
Gambar 4.54. TP dengan InputAktif tetapi Output Tidak Aktif.........................113
Gambar 4.55. TP dengan Input Tidak Aktif dan Output Tidak Aktif.................. 114
Gambar 4.56. Timing Diagram Program TP....................................................... 114
Gambar 4.57. Rangkaian Ladder Program Counter (Kondisi Awal).................. 115
Gambar 4.58. Counter dengan Input P(Preset) Aktif yang Mengaktifkan Output
D dan Output Q1................................................................................................. 115
Gambar 4.59. Counter dengan Input P(Preset) Nonaktif Kembali, Output D dan
Output Q1 Tetap Aktif......................................................................................... 116
xxv
Gambar 4.60. Counter dengan Input R(Reset) Aktif...........................................116
Gambar 4.61. Counter dengan Input R(Reset) yang Dinonaktifkan Kembali.... 116
Gambar 4.62. Counter dengan Input U(Up Count) Aktif....................................117
Gambar 4.63. Counter dengan Input U(Up Count) Dinonaktifkan Kembali......117
Gambar 4.64. Counter dengan Input U(Up Count) Diaktifkan Kedua kalinya.. 118
Gambar 4.65. Counter Pasca Penghitungan Selesai dengan Input U................. 118
Gambar 4.66. Kondisi Counter Ketika Input U Diaktifkan Kembali................. 118
Gambar 4.67. Kondisi Awal Sebelum Input D(Down Count) Aktif....................119
Gambar 4.68. Counter dengan Input D(Down Count) Aktif...............................119
Gambar 4.69. Counter dengan Input D(Down Count) Dinonaktifkan Kembali. 119
Gambar 4.70. Kondisi Counter Setelah Input D Diaktifkan Kembali................ 120
Gambar 4.71. Counter dengan Nilai Aktual Maksimum.................................... 120
Gambar 4.72. Counter dengan Input U dan Output F Aktif................................121
Gambar 4.73. Counter dengan Input U(Up Count) Dinonaktifkan Kembali dan
Output F(Overflow) Tetap Aktif.......................................................................... 121
Gambar 4.74. Counter dengan Input UAktif dan Output F Tidak Aktif............ 121
Gambar 4.75. Counter dengan Input D(Down Count) Aktif dan Output
E(Underflow) Aktif............................................................................................. 122
Gambar 4.76. Counter dengan Input D(Down Count) Dinonaktifkan Kembali dan
Output E(Underflow) Tetap.................................................................................122
Gambar 4.77. Counter dengan Input DAktif dan Output E Tidak Aktif............ 123
Gambar 4.78. Timing Diagram Program Counter.............................................. 123
Gambar 1. Diagram Tangga................................................................................ 131
xxvi
Gambar 2. (a) Diagram Tangga (b) Diagram Blok Fungsional Ekivalennya......132
Gambar 3. Diagram Fungsi Sekuensial...............................................................132
Gambar 4. Teks Terstruktur.................................................................................133
Gambar 5. Input-Output dengan N.O. Contact...................................................134
Gambar 6. SET-RESET dengan Self Holding..................................................... 135
Gambar 7. SET-RESET dengan Coil Khusus......................................................135
Gambar 8. Program AND....................................................................................136
Gambar 9. Program OR...................................................................................... 136
Gambar 10. Program NOT..................................................................................137
Gambar 11. Program EXOR............................................................................... 137
Gambar 12. Program EXNOR............................................................................ 138
Gambar 13. Program NOT OR............................................................................138
Gambar 14. Program NOT AND......................................................................... 139
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Salah satu piranti yang digunakan secara luas untuk pelbagai keperluan
kendali proses adalah Programmable Logic Controller atau yang lebih populer
dikenal dengan sebutan PLC (Angga, 2011). PLC banyak digunakan pada
aplikasi-aplikasi industri, misalnya pada proses pengepakan, penanganan bahan,
perakitan, otomatis dan sebagainya. Dengan kata lain, hampir semua aplikasi
yang memerlukan kontrol listrik atau elektronik membutuhkan PLC (Juwana,
2006). Kemudahan transisi dari sistem kontrol sebelumnya (misalnya dari sistem
kontrol berbasis relay mekanis) dan kemudahan trouble-shooting dalam
konfigurasi sistem merupakan dua faktor utama yang mendorong populernya
PLC ini (Widyanahar, 1998).
Salah satu aspek penting dari PLC adalah pemrogramannya (Widyanahar,
1998). Secara de facto sampai saat ini pemrograman yang sangat luas
penggunaannya terutama di industri adalah diagram tangga. Alasan utamanya
adalah diagram ini sangat mudah untuk dipahami para teknisi, di pabrik
umumnya yang telah lebih dahulu familiar dengan jenis diagram tangga
elektromekanis, yaitu diagram tangga dengan menggunakan simbol-simbol
komponen elektromekanis dalam penggambaran logika kontrolnya (Sonjaya,
2011). Diagram tangga telah menjadi suatu alat bantu dalam menerangkan sistem
kerja berbagai rangkaian kendali, mulai dari rangkaian yang sederhana sampai
pada rangkaian yang cukup rumit (Angga, 2011).
2
PLC membutuhkan support software untuk bisa menuliskan program
yang dibutuhkan untuk suatu jenis aplikasi tertentu (Angga, 2011). Dalam
perkembangannya banyak pula support software PLC yang menyediakan fitur
simulasi. Dengan fitur tersebut perancangan dan pengujian suatu rangkaian
kendali berbasis diagram tangga logika menjadi lebih mudah (Angga, 2011).
Teknik elektro dapat dikatakan merupakan cabang ilmu teknik yang
cukup dominan dalam penggunaan PLC. Oleh karena itu, lulusan teknik elektro
hendaknya memiliki pengetahuan yang memadai mengenai PLC dan dasar
penggunaannya (Angga, 2011).
Untuk memelajari PLC dan dasar penggunaannya, cara termudah adalah
dengan memahami pemrograman ladder. Hal ini dikarenakan semua jenis PLC
saat ini telah memakai support software yang dijalankan melalui komputer dan
semua support software PLC mendukung pemrograman ladder. Dalam sebuah
pembelajaran, penguasaan dasar sangat penting untuk pengembangan dan
peningkatan keilmuan. Oleh karena itu pembelajaran dasar pemrograman ladder
menjadi penting.
Pembelajaran ladder saat ini dapat dilakukan tanpa memerlukan hardware
PLC yang sebenarnya. Hal ini dikarenakan terdapat software pemrograman
ladder yang sudah menyertakan fitur simulasi.
Namun, terdapat satu masalah yang cukup penting menurut penulis.
Semua software yang biasa digunakan merupakan software yang tidak
multiplatform. Dengan kata lain, software-software tersebut hanya dapat berjalan
pada satu sistem operasi saja, yaitu Windows. Sementara dalam kenyataan, tidak
3
semua orang menggunakan sistem operasi ini. Tentunya hal ini menimbulkan
masalah pada kompatibilitas software ladder programming tersebut.
Di sisi lain, penulis menemukan sebuah software bernama “Classic
Ladder” yang dikembangkan oleh Marc Le Douarain. Software ini ternyata telah
memenuhi kriteria multiplatform tersebut. Classic Ladder dapat dijalankan pada
dua sistem operasi, yaitu Linux dan Windows. Software ini belum banyak dikenal
terutama di Indonesia. Satu hal yang dapat membuktikannya adalah belum
terdapat dokumentasi resmi versi bahasa Indonesia dari software ini sampai saat
tulisan ini dibuat.
1.2 Rumusan Masalah
Untuk menjawab permasalahan tersebut, menurut hemat penulis, perlu
dibahas penggunaan software Classic Ladder ini untuk kebutuhan pembelajaran
Programming Ladder PLC dan sejauh mana software ini dapat berguna untuk hal
tersebut.
1.3 Batasan Masalah
Penelitian ini dibatasi pada pembahasan tentang penggunaan aplikasi
Classic Ladder sebagai software simulasi untuk pembelajaran dasar pemrograman
ladder PLC. Dengan demikian hal-hal yang terkait dengan hardware PLC tidak
dibahas dalam tugas akhir ini.
1.4 Tujuan Penelitian
Penelitian ini memiliki tujuan untuk menguji sejauh mana kemampuan
aplikasi Classic Ladder pada penulisan dan simulasi dasar ladder programming.
4
1.5 Manfaat Penelitian
Penelitian ini memiliki manfaat antara lain:
a. memberikan pengetahuan secara umum tentang software Classic Ladder,
b. memberikan pengetahuan seputar aplikasi Classic Ladder pada pemrograman
ladder PLC,
c. mempublikasikan software Classic Ladder kepada masyarakat akademik
Indonesia khususnya di lingkungan Program Studi Teknik Elektro, Fakultas
Teknik, Universitas Muhammadiyah Yogyakarta sebagai alternatif yang dapat
diandalkan.
d. mempromosikan serta memasifkan penggunaan FOSS (Free and Open Source
Software)
1.6 Luaran yang Dihasilkan
Luaran yang dihasilkan dari penelitian ini adalah sebuah modul atau
panduan lengkap tentang penggunaan aplikasi Classic Ladder sebagai media
pembelajaran dasar pemrograman ladder PLC.
1.7 Sistematika Penulisan
Penulisan tugas akhir ini terbagi atas lima bab sebagai berikut.
1. BAB I PENDAHULUAN
Bab ini berisi tentang latar belakang, rumusan masalah, batasan masalah, tujuan,
manfaat, luaran, serta sistematika penulisan laporan.
2. BAB II TINJAUAN PUSTAKADAN LANDASAN TEORI
Bab ini membahas seputar tinjauan pustaka, serta dasar teori yang digunakan
sebagai penunjang keilmiahan dan validitas dari penelitian ini.
5
3. BAB III METODOLOGI PELAKSANAAN
Bab ini membahas tentang metodologi yang digunakan untuk pengerjaan tugas
akhir dan penyusunan laporan.
4. BAB IV PEMBAHASAN
Bab ini berisi tentang pembahasan inti dari pengerjaan tugas akhir yang meliputi
tahap persiapan serta pengaplikasian dari sistem yang dipakai.
5. BAB V PENUTUP
Bab ini berisi kesimpulan dari BAB I sampai BAB IV dan saran terhadap tugas
akhir yang dapat dipergunakan oleh pihak ketiga untuk melakukan penelitian
lebih lanjut.
6
BAB II
STUDI PUSTAKA DAN LANDASAN TEORI
2.1 Definisi PLC
Programmable Logic Controller (PLC) merupakan suatu bentuk khusus
alat kendali berbasis mikroprosesor yang memanfaatkan memori yang dapat
diprogram untuk menyimpan instruksi-instruksi dan untuk mengimplementasikan
fungsi-fungsi seperti logika, sekuensial, pewaktuan, pencacahan dan aritmetika
guna mengendalikan mesin-mesin di dalam suatu sistem kendali proses (Angga,
2011).
Gambar 2.1. Gambaran Umum Sebuah PLC
PLC sebenarnya merupakan suatu piranti berbasis mikroprosesor yang
dikembangkan secara khusus untuk menjawab tantangan di dunia industri. Jika
dibandingkan dengan microcontroller, PLC jauh lebih mudah digunakan dan
sudah dikenal secara umum oleh pelbagai kalangan di dunia industri (Angga,
2011).
7
Adapun Juwana(2006) menjelaskan, PLC sesungguhnya merupakan
sistem mikrokontroler khusus untuk industri, artinya seperangkat perangkat lunak
dan keras yang diadaptasi untuk keperluan aplikasi dalam dunia industri.
Menurut Setiawan(2006) dan Endaryoko(2011), Programmable Logic
Controller (PLC) pada dasarnya adalah sebuah komputer yang khusus dirancang
untuk mengontrol suatu proses atau mesin. Proses yang dikontrol ini dapat berupa
regulasi variabel secara kontinyu seperti pada sistem-sistem servo atau hanya
melibatkan kontrol dua keadaan (On/Off) saja tetapi dilakukan secara
berulang-ulang seperti umumnya kita jumpai pada mesin pengeboran, sistem
konveyor, dan lain sebagainya. Gambar berikut memperlihatkan konsep
pengontrolan yang dilakukan oleh sebuah PLC.
Gambar 2.2. Diagram Konseptual Aplikasi PLC
Setiawan(2006) menambahkan, walaupun istilah PLC secara bahasa
berarti pengontrol logika yang dapat diprogram, akan tetapi pada kenyataannya
PLC secara fungsional tidak lagi terbatas pada fungsi-fungsi logika saja. Sebuah
PLC dewasa ini dapat melakukan perhitungan-perhitungan aritmatika yang relatif
8
kompleks, fungsi komunikasi, dokumentasi dan lain sebagainya ( Sehingga
dengan alasan ini dalam beberapa buku manual, istilah PLC sering hanya ditulis
sebagai PC - Programmable Controller).
Adapun Caniago(2008) menjelaskan bahwa secara definitif, menurut
NEMA (National Electrical Manufactures Association), PLC adalah suatu alat
elektronika digital yang berbasis mikrokontroller dan menggunakan memori yang
dapat diprogram untuk menyimpan dan mengaplikasikan instruksi – instruksi dari
suatu fungsi tertentu, seperti logika, sekuensial, pewaktuan (timing), pencacahan
(counting), dan aritmatika dalam rangka mengendalikan mesin-mesin ataupun
suatu proses.
Juwana(2006) menjelaskan, sebuah PLC (kepanjangan: Programmable
Logic Control) adalah sebuah alat yang digunakan untuk menggantikan rangkaian
sederetan relay yang dijumpai pada sistem kontrol proses konvensional.
Widjiantoro, dkk.(2012) memberikan keterangan bahwa dengan demikian
konsep yang digunakan pada rangkaian relay digunakan pula pada PLC.
Tabel 2.1. Tabel Hubungan Relay dengan PLC
Utomo(2013) dan Hutahaean(2010) memberikan pengertian bahwa PLC
yang awalnya berfungsi menggantikan peran relay, dapat diartikan sesuai kata
penyusunnya adalah sebagai berikut:
a. Programmable yaitu menunjukkan kemampuannya yang dapat dengan mudah
9
diubah-ubah sesuai program yang dibuat dan kemampuannya dalam hal
memori program yang telah dibuat.
b. Logic yaitu menunjukkan kemampuannya dalam memproses input secara
aritmatik (ALU) dengan melakukan proses membandingkan, menjumlahkan,
mengkalikan, membagi, dan mengurangi.
c. Controller yaitu menunjukkan kemampuannya dalam mengontrol dan
mengatur proses sehingga menghasilkan output yang diinginkan.
PLC merupakan elemen unit pengendali yang fungsi pengendaliannya
dapat diprogram sesuai dengan keperluan. Jadi, sebelum digunakan PLC
diprogram terlebih dahulu agar proses pengendalian yang terjadi sesuai dengan
yang diinginkan (Caniago, 2008).
Piranti ini juga dirancang agar dapat dioperasikan oleh para insinyur yang
memiliki kemampuan terbatas mengenai pemograman bahasa komputer. Oleh
sebab itu para perancang PLC sudah menempatkan sebuah program awal
(pre-program) yang memungkinkan program-program kontrol dapat dimasukkan
dengan menggunakan bahasa pemrograman yang sederhana dan mudah dipahami
(Caniago, 2008).
2.2 Prinsip Kerja Dasar PLC
Caniago(2008) menjelaskan, PLC menerima sinyal input dari peralatan
diskrit (on/off) atau analog (sensor). Modul input mengidentifikasi serta
mengubah sinyal tersebut ke dalam bentuk tegangan yang sesuai dengan modul
input dan mengirimkannya ke CPU (Central Processing Unit). Sinyal input
tersebut diolah, kemudian dikirim ke modul output berdasarkan program yang
10
telah disimpan di CPU. Bentuk sinyal output diubah menjadi tegangan yang
sesuai dan dipakai untuk menjalankan peralatan output (actuator).
Gambar 2.3. Prinsip Kerja Dasar PLC
Angga(2011) mengungkapkan, PLC bekerja dengan cara melakukan
program scanning. Secara umum satu siklus scanning meliputi 3 tahapan utama
yaitu: (i) memeriksa status masukan; (ii) melakukan eksekusi program; dan (iii)
memperbaharui status keluaran. Umumnya lebih dari 3, tetapi secara garis besar
ada 3 tahap tersebut, sebagaimana ditunjukkan pada gambar dibawah (Juwana,
2006).
Gambar 2.4. Proses Scanning Program PLC
2.2.1 Memeriksa Status Masukan (Check Input Status)
Pada tahapan ini, PLC akan memeriksa seluruh keadaan masukan yang
11
berasal dari piranti eksternal, seperti: saklar tekan, sensor, dsb. (Angga, 2011).
PLC membaca data masukan (input) melalui perangkat yang disebut modul input
(Caniago, 2008). PLC melihat keadaan setiap masukan yang ada untuk
menentukan kondisi setiap masukan tersebut apakah pada keadaan aktif atau
non-aktif (Rubiyanto, dkk., 2004). Hasil pemeriksaan status input ini kemudian
akan disimpan di dalam memori PLC (Angga, 2011).
2.2.2 Melakukan Eksekusi Program (Execute Program)
PLC akan mengeksekusi program kontrol yang telah dirancang dan
tersimpan pada memori PLC (Caniago, 2008). Pada prinsipnya eksekusi program
ditentukan oleh status masukan. Status masukan merupakan syarat wajib untuk
memastikan bahwa suatu bagian program perlu dieksekusi (Angga, 2011).
PLC akan mengerjakan atau mengeksekusi program (diagram tangga) per
instruksi (Juwana, 2006). Misalkan program menginginkan jika masukan pertama
aktif, maka program tersebut harus mengaktifkan keluaran pertama. Program
yang ada telah mengetahui masukan-masukan mana saja yang aktif/tidak aktif
dari langkah sebelumnya. Setelah itu, program akan menyimpan hasil eksekusi
tersebut dengan tujuan untuk dapat digunakan pada langkah selanjutnya
(Rubiyanto, dkk., 2004).
2.2.3 Memperbaharui Status Keluaran(Update Output Status)
Hasil dari eksekusi suatu program kemudian akan menentukan perubahan
status keluaran dari elemen yang terpasang pada rangkaian keluaran PLC (Angga,
2011). PLC akan memperbaharui data-data pada modul output PLC (Caniago,
2008).
Pembaharuan keluaran ini bergantung pada masukan mana yang ON
12
selama langkah 1 dan hasil dari eksekusi program di langkah 2 (Juwana, 2006).
Pada langkah terakhir ini, PLC memperbaharui kondisi keluaran berdasarkan
masukan mana yang aktif pada langkah pertama dan hasil eksekusi program yang
dimasukkan pada langkah kedua (Rubiyanto, dkk., 2004).
Setelah langkah 3, PLC akan mengulangi lagi scanning program-nya dari
langkah 1, demikian seterusnya. Waktu scan didefinisikan sebagai waktu yang
dibutuhkan untuk mengerjakan 3 langkah tersebut (Juwana, 2006).
Masing-masing langkah bisa memiliki waktu tanggap (response time) yang
berbeda-beda. Waktu total tanggap atau total response time adalah jumlah semua
waktu tanggap masing-masing langkah (Juwana, 2006):
waktu tanggap masukan + waktu eksekusi program + waktu tanggap keluaran =
waktu tanggap total
Adapun Endaryoko(2011) menjelaskan bahwa prinsip kerja sebuah PLC
adalah menerima sinyal masukan proses yang dikendalikan lalu melakukan
serangkaian instruksi logika terhadap sinyal masukan tersebut sesuai dengan
program yang tersimpan dalam memori lalu menghasilkan sinyal keluaran untuk
mengendalikan aktuator atau peralatan lainnya.
Endaryoko(2011) menambahkan, alat ini bekerja berdasarkan input-input
yang ada dan tergantung dari keadaan pada suatu waktu tertentu yang kemudian
akan meng-ON atau meng-OFF-kan output-output. 1 menunjukkan bahwa
keadaan yang diharapkan terpenuhi, sedangkan 0 berarti keadaan yang
diharapkan tidak terpenuhi (Endaryoko, 2011).
13
2.3 Komponen-komponen/Bagian-bagian Penyusun PLC
Secara umum, bagian utama suatu PLC adalah sebagai berikut: prosesor,
catu daya, memori, modul input dan output, serta perangkat pemrograman(Angga,
2011). Caniago(2008) menuliskan, PLC memiliki empat komponen utama, yaitu:
Power Supply (catu daya), Processor, Memori, dan Modul Input / Output.
Sedikit berbeda menurut Sonjaya(2011), komponen utama atau perangkat
keras penyusun PLC adalah (1) Catu Daya / Power Supply, (2) CPU (Central
Processing Unit) yang di dalamnya terdapat prosesor, dan memori, (3) Modul
Masukan (Input Modules), dan Modul Keluaran (Output Modules), dan (4)
Perangkat Pemrograman.
Gambar 2.5. Komponen-komponen Utama PLC
Adapun menurut Setiawan(2006), perangkat keras PLC pada dasarnya
tersusun dari empat komponen utama berikut: prosesor, power supply, memori
dan modul input/output. Secara fungsional interaksi antara ke-empat komponen
penyusun PLC ini dapat diilustrasikan pada gambar berikut.
14
Gambar 2.6. Interaksi Komponen-komponen Sistem PLC
Dalam hal ini prosesor akan mengontrol peralatan luar yang terkoneksi
dengan modul output berdasarkan kondisi perangkat input serta program ladder
yang tersimpan pada memori PLC tersebut (Setiawan, 2006).
Sementara Poha, Buko(2013) menjelaskan bahwa dalam sistem PLC
terdapat empat komponen bagian utama, yaitu:
1. Central Processing Unit (CPU), merupakan otak dari PLC yang terdiri dari 3
(tiga) bagian, yaitu:
a) Mikroprosesor, merupakan otak dari PLC yang difungsikan untuk
operasi matematika dan operasi logika.
b) Memori, merupakan daerah CPU yang digunakan untuk melakukan
proses penyimpanan dan pengiriman data pada PLC.
c) Catu daya, yang berfungsi untuk mengubah sumber masukan tegangan
bolak-balik menjadi tegangan searah.
2. Programmer/Monitor, adalah perangkat pemrograman yang digunakan untuk
pemrograman ini umumnya tidak tersambung secara permanen ke dalam
PLC. Jalannya program juga dapat diamati melalui perangkat ini.
15
3. Input/Output Modules, adalah antarmuka antara PLC dan perangkat eksternal
(peralatan input dan peralatan output) dimana prosesor menerima informasi
dari perangkat-perangkat eksternal tersebut dan mengkomunikasikan
informasi kontrol ke perangkat-perangkat eksternal tersebut.
4. Racks dan Chassis, adalah sebagai rumah untuk PLC dan sebagai dudukan
PLC agar posisinya stabil.
Elemen-elemen dasar sebuah PLC ditunjukkan pada gambar berikut
(Juwana, 2006). Adapun Poha, Buko(2013) memberikan keterangan bahwa
secara blok diagram, hubungan utama dari PLC dapat dilihat pada gambar
berikut.
Gambar 2.7. Elemen Dasar PLC dan Hubungan Bagian Utama dari PLC
2.3.1 Perangkat Pemrograman (Programming Device)
Sumbodo(2008) menyatakan Programming Device PLC sebagai device
masukan program yang berfungsi menjadi sarana untuk memasukkan atau
mengisikan program ke dalam prosesor PLC yang disebut dengan pengisi
16
program (program loader).
Sonjaya(2011) memberikan keterangan bahwa terdapat 2 perangkat
program yang biasa digunakan, yaitu Miniprogrammer atau Programming
Console dan Komputer.
2.3.1.1 Miniprogrammer atau Console
Miniprogrammer atau Programming Console (biasa disebut konsol)
adalah sebuah perangkat seukuran kalkulator saku yang berfungsi untuk
memasukkan instruksi-instruksi program ke dalam PLC (Sonjaya, 2011).
Umumnya, instruksi-instruksi program dimasukkan dengan mengetikkan
simbol-simbol diagram tangga dengan menggunakan kode mnemonik (Mnemonic
Code) (Sonjaya, 2011).
Selain digunakan untuk memasukkan program diagram ladder, beberapa
jenis miniprogrammer juga dilengkapi fasilitas untuk monitoring dan tugas-tugas
diagnostic (Sonjaya, 2011).
Gambar 2.8. Miniprogrammer
2.3.1.2 Komputer
Pemrograman PLC dengan menggunakan miniprogrammer ini akan
sangat melelahkan jika jumlah anak tangga pada diagram ladder yang akan
diprogram berukuran relatif besar. Umumnya, penggunaan konsol ini biasa
17
digunakan hanya untuk pengeditan program saja (Sonjaya, 2011).
Untuk memasukkan program secara keseluruhan pada PLC, dapat
digunakan Komputer. Vendor-vendor PLC umumnya menyertakan perangkat
lunak (Software atau Support Software) untuk mengimplementasikan pemasukan
program diagram tangga, pengeditan, dokumentasi dan monitoring ke dalam PLC
(Sonjaya, 2011).
Angga(2011) menambahkan bahwa pada komputer di dalamnya terdapat
support software PLC yang bersesuaian. Setelah program yang dibutuhkan
selesai dirancang, maka program tersebut dapat ditransfer ke PLC melalui kabel
koneksi ke saluran komunikasi PLC. Jenis port yang sering digunakan adalah
port serial dengan spesifikasi yang beragam (Angga, 2011).
Gambar 2.9. Pemrograman PLC dengan Menggunakan Komputer
2.3.2 Hubungan Input/Output (I/O) dengan Perangkat Lunak
Pada saat pemrogram (programmer) bekerja dengan bahasa ladder logic,
programmer harus mengerti hubungan I/O dengan perangkat lunak. Gambar di
bawah memperlihatkan bahwa apabila push button 1 ditekan maka unit input X1
menjadi ON. Sesuai dengan prinsip pemahaman bahwa titik masukan sebagai coil
relay yang mempunyai kontak di perangkat lunak, sehingga jika keadaan ON
maka sinyal mengalir menuju modul masukan (dengan anggapan pemahaman
18
bahwa terdapat coil) hal tersebut mengakibatkan kontak dari unit input di dalam
perangkat lunak akan bekerja (Sumbodo, 2008).
Gambar 2.10. Hubungan antara I/O dengan Perangkat Lunak
Penulis merujuk pada beberapa panduan praktikum, modul praktikum,
dan karya tulis ilmiah yang terkait untuk menjelaskan tentang dasar pemrograman
ladder PLC. Berikut penjelasan khusus tentang pemrograman ladder PLC.
2.4 Dasar Pemrograman Ladder Diagram Language/Bahasa Diagram
Tangga/Ladder Logic
Penggambaran ladder diagram sesungguhnya berdasar pada diagram
rangkaian. Tiga elemen penting yang biasa disajikan: kontak Normaly Open,
kontak Normaly Closed, dan hasil keluaran (Endaryoko, 2011).
Gambar 2.11. Ladder Diagram (IEC, “IEC 61131-3, 3, 2nd Ed, 2003)
Ladder diagram terdiri dari garis vertikal yang di sebut garis bar. Instruksi
yang dinyatakan dengan simbol digambarkan dan disusun sepanjang garis
horizontal dimulai dari kiri dan dari atas ke bawah (Utomo, 2013).
19
Ladder diagram digunakan untuk menggambarkan rangkaian listrik dan
dimaksudkan untuk menunjukkan urutan kejadian, bukan hubungan kabel antar
komponen. Pada ladder diagram memungkinkan elemen-elemen elektrik
dihubungkan sedemikian rupa sehingga keluaran (output) tidak hanya terbatas
pada ketergantungan terhadap masukan (input) tetapi juga terhadap logika
(Utomo, 2013).
Ladder language merupakan bahasa pemrograman yang menuliskan
instruksi kontrol secara grafis. Untuk menggambarkan ladder language/diagram
ada beberapa ketentuan yang perlu diperhatikan yaitu (Utomo, 2013):
a. Daya mengalir dari kiri ke kanan.
b. Output ditulis pada bagian yang paling kanan.
c. Tidak ada kontak yang diletakkan di sebelah kanan output.
d. Setiap output disisipkan satu kali dalam setiap program.
Ladder logic adalah bahasa pemrograman dengan bahasa grafik atau
bahasa yang digambar secara grafik. Diagram ini menyerupai diagram dasar yang
digunakan logika kendali sistem kontrol panel dimana ketentuan instruksi terdiri
dari coil-coil, N.O., N.C. dan dalam bentuk penyimbolan. Pemrograman tersebut
akan memudahkan programmer dalam mentransisikan logika pengendalian
khususnya bagi programmer yang memahami logika pengendalian sistem kontrol
panel. Simbol-simbol tersebut tidak dapat dipresentasikan sebagai komponen,
tetapi dalam pemrogramannya simbol-simbol tersebut dipresentasikan sebagai
fungsi komponen sebenarnya (Sumbodo, 2008).
2.4.1 SistemAliran Daya
Caniago(2008) menjelaskan bahwa sistem aliran daya merupakan prinsip
20
yang digunakan pada pemrograman PLC. Seperti arus yang mengalir pada
rangkaian listrik, garis vertikal pada posisi kiri dan kanan adalah rel daya yang
diasumsikan sebagai sumber daya untuk mengaktifkan fungsi-fungsi yang
terdapat di dalam program yang dibuat.
Fungsi-fungsi tersebut secara langsung berhubungan dengan rel daya.
Kemudian dieksekusi setiap satu kali scan operasi. Gambar berikut merupakan
sistem aliran daya yang menjelaskan fungsi-A aktif jika ada aliran daya
melewatinya. Sedangkan agar fungsi-C dapat aktif, maka fungsi-B harus aktif
terlebih dahulu untuk melewatkan daya ke fungsi-C (Caniago, 2008).
Gambar 2.12. SistemAliran Daya
Widjiantoro, dkk.(2012) memberikan keterangan bahwa saat menentukan
peralatan yang akan dipakai, yang harus dipikirkan adalah bagaimana hubungan
rangkaian yang satu dengan yang lainnya. Dalam PLC rangkaian pengaturan
tersebut digambarkan pada diagram tangga.
2.4.2 Konvensi tentang Ladder Diagram
Hal ini dijelaskan oleh Wicaksono(2008) dalam materi presentasinya
berjudul “Dasar-Dasar Pemrograman PLC”. Pada presentasi tersebut
21
Wicaksono(2008) menuliskan beberapa hal tentang konvensi atau kesepakatan
pada ladder diagram yang antara lain sebagai berikut.
1. Ladder diagram terdiri dari:
a) power rail dan neutral rail;
b) anak tangga (rung)
Gambar 2.13. Ladder Diagram dan Keterangannya
2. Dibaca dari kiri ke kanan, dari atas ke bawah.
3. Rung tidak boleh diakhiri dengan lebih dari satu output.
4. Input/output diidentifikasikan melalui alamatnya.
5. Penggunaan Internal Relay pada Ladder.
22
Gambar 2.14. Penggunaan Internal Relay
6. Contact dapat muncul berkali-kali.
Gambar 2.15. Konvensi untuk Pemasangan Contact
7. Coil hanya dapat muncul sekali.
23
Gambar 2.16. Konvensi untuk Pemasangan Coil (Asumsi: Kedua Coil
Beralamat Sama)
8. Self Holding – Sifat Khusus Coil di PLC (Ladder Diagram)
Gambar 2.17. Self Holding
9. Bentuk Lain Self Holding – Special Coil (Set – Reset)
Gambar 2.18. Ladder Diagram dengan Special Coil (SET dan RESET)
24
Gambar 2.19. Timing Diagram dengan Special Coil (SET dan RESET)
10. Special Contact - Positive & Negative Transition Contact
Gambar 2.20. Diagram Ladder dari Positive Transition Contact
Gambar 2.21. Timing Diagram dari Positive Transition Contact
Gambar 2.22. Ladder Diagram dari Negative Transition Contact
25
Gambar 2.23. Timing Diagram dari Negative Transition Contact
2.4.3 Komponen-komponen Dasar Ladder Diagram
Wicaksono(2008) menuliskan dalam presentasinya bahwa
komponen-komponen dasar dalam ladder diagram adalah sebagai berikut.
1. Contact / input
2. Coil / output
3. Timer
4. Counter
Berikut penjelasan tentang masing-masing komponen tersebut.
2.4.3.1 Contact
Utomo(2013) menjelaskan bahwa contact dapat berupa kontak input
(saklar, push button), kontak internal variable (relay otomatis) dan lain-lain, ada
4 macam tipe kontak yaitu:
a. Kontak N.O. (Normally Open) adalah kontak yang terdapat pada ladder
diagram di mana pada saat keadaan sistem belum bekerja kondisi kontak
dalam keadaan terbuka.
b. Kontak N.C. (Normally Close) adalah kontak yang terdapat pada ladder
diagram di mana pada saat keadaan sistem belum bekerja kondisi kontak
dalam keadaan tertutup.
26
c. Kontak rising edge adalah kontak yang terdapat pada ladder diagram di mana
pada saat pada saat keadaan sistem mulai bekerja kondisi kontak berubah dari
logika “0” menjadi logika “1”.
d. Kontak falling edge adalah kontak yang terdapat pada ladder diagram di mana
pada saat keadaan sistem mulai bekerja kondisi kontak berubah dari logika “1”
menjadi logika “0”.
Adapun Wicaksono(2008) menuliskan dalam presentasinya, klasifikasi
contact adalah sebagai berikut.
a) Normal Contact
i. Normally Open Contact
ii. Normally Close Contact
b) Transition Contact
i. Positive Transition Contact
ii. Negative Transition Contact
2.4.3.2 Coil
Utomo(2013) menjelaskan, coil secara umum menyatakan output,
terdapat 4 macam tipe coil yaitu:
a. Coil
b. Negative Coil
c. SET Coil
d. RESET Coil
Adapun Wicaksono(2008) mengklasifikasikan coil menjadi dua macam
sebagai berikut.
27
a) Normal Coil
b) Latching Coil
Dengan demikian penulis dapat mengambil kesimpulan bahwa pada
intinya input dan output diagram ladder PLC direpresentasikan oleh dua
komponen dasar, yaitu contact dan coil.
2.4.3.3 Timer
Wicaksono(2008) dalam presentasinya berjudul “Timer : Teori dan
Aplikasi” menjelaskan beberapa hal fundamental tentang timer pada ladder
diagram sebagai berikut.
1. Macam-macam sequence (urutan) sistem
a) Event driven sequence
- Urutan proses ditentukan oleh event (peristiwa).
- Event merupakan kejadian yang dialami oleh input device (switch,
sensor)
b) Time driven sequence.
- Urutan proses ditentukan oleh waktu.
- Waktu ditentukan oleh timer (preset value).
c) Gabungan Event-Time Driven Sequence
2. Instruksi Timer menggantikan ”time delay relay” di masa lalu.
3. Timer berfungsi untuk menunda terjadinya suatu aksi.
4. Lamanya penundaan ditentukan oleh preset value.
5. Cara Kerja Timer
a) Timer bekerja jika timer coil mendapat logika 1 dari input-nya.
b) Timer akan menghitung sampai preset value dan timer contact akan aktif.
28
c) Untuk jenis On Delay Timer (Default)
Timer akan mati (kembali ke nilai awal) jika input-nya dimatikan.
6. Beberapa Jenis Timer
a) On Delay Timer
b) Off Delay Timer
c) Pulse Timer
Pada gambar berikut dapat dilihat ladder diagram yang
merepresentasikan penggunaan timer. I1 merupakan input (biasanya saklar), T1
merupakan timer, dan O1 merupakan output (biasanya paling sederhana memakai
lampu LED). Ladder diagram ini penulis gunakan untuk menjelaskan 3 jenis
timer sekaligus, yaitu Timer Off Delay, Timer On Delay, dan Timer Pulse.
Gambar 2.24. Ladder Diagram Timer
1. Timer On Delay
Secara prinsip, timer jenis ini dapat dijelaskan dengan gambar berikut.
29
Gambar 2.25. Timing Diagram dari Timer On Delay
Pada gambar tersebut, posisi garis biru di atas menandakan kondisi aktif
dan posisi di bawah menandakan kondisi nonaktif. I1 memicu timer untuk
melakukan penghitungan waktu (asumsi: preset = 5 detik dan waktu mulai dari 0)
selama 5 detik. Ketika penghitungan selesai, maka output timer akan aktif atau
bernilai 1 dan menyebabkan output O1 aktif atau bernilai 1. Kemudian ketika
input I1 dinonaktifkan, timer akan mengalami reset, output timer bernilai 0, dan
output O1 akan nonaktif atau bernilai 0.
2. Timer Off Delay
Secara prinsip, timer jenis ini dapat dijelaskan dengan gambar berikut.
Gambar 2.26. Timing Diagram dari Timer OFF Delay
30
Pada gambar tersebut, posisi garis biru di atas menandakan kondisi aktif
dan posisi di bawah menandakan kondisi nonaktif. I1 memicu timer untuk
mengaktifkan output O1. Output akan selalu aktif selama input aktif. Input yang
dinonaktifkan memicu timer melakukan penghitungan waktu mundur (asumsi:
preset = 5 detik dan waktu mulai dari 5 ke 0) selama 5 detik. Ketika hitung
mundur selesai, maka output timer akan nonaktif atau bernilai 0 dan
menyebabkan output O1 tidak aktif atau bernilai 0. Setelah itu timer akan
mengalami reset.
3. Pulse Timer
Secara prinsip, timer jenis ini dapat dijelaskan dengan gambar berikut.
Gambar 2.27. Timing Diagram dari Timer Pulse
Pada gambar tersebut, posisi garis biru di atas menandakan kondisi aktif
dan posisi di bawah menandakan kondisi nonaktif. I1 memicu timer untuk
mengaktifkan output O1. Output akan selalu aktif selama penghitungan waktu
mundur (asumsi: preset = 5 detik dan waktu mulai dari 5 ke 0) selama 5 detik.
Input yang dibaca oleh timer pulse berupa pulsa atau detak. Ketika hitung
31
mundur selesai, maka output timer akan nonaktif atau bernilai 0 dan
menyebabkan output O1 tidak aktif atau bernilai 0. Setelah itu timer akan
mengalami reset.
2.4.3.4 Counter
Wicaksono(2008) dalam presentasinya berjudul “Counter : Teori dan
Aplikasi” menjelaskan beberapa hal fundamental terkait counter pada ladder
diagram.
1. Fungsi Counter
Menghitung banyaknya/jumlah kejadian tertentu, misal: menghitung
jumlah barang untuk penyortiran, pengepakan, dll.
2. Counter mempunyai 2 input, yaitu Pulse Input (harus berbentuk pulsa) dan
Reset Input.
3. Cara Kerja Counter
a) Counter coil akan aktif dan menghitung jika input pulsa berubah dari 0
ke 1 (rising edge).
b) Counter coil akan mati dan nilai kembali ke 0 jika input reset diaktifkan.
c) Besar nilai yang akan dihitung counter ditunjukkan preset value.
d) Ketika nilai counter mencapai preset value, counter contact akan aktif.
4. Jenis Counter
Tipe-tipe counter adalah sebagai berikut.
a) Count up > hitungan naik
b) Count down > hitungan turun
c) Count up - down > hitungan naik - turun
Pada gambar berikut dapat dilihat ladder diagram yang
32
merepresentasikan penggunaan counter. I1 merupakan input (biasanya
pushbutton), C1(pulse) merupakan bagian input pulsa dari counter, C1(reset)
merupakan bagian reset dari counter, dan O1 merupakan output (biasanya paling
sederhana memakai lampu LED). Ladder diagram ini penulis gunakan untuk
menjelaskan 2 jenis counter sekaligus, yaitu Up Count dan Down Count.
Gambar 2.28. Ladder Diagram Counter
33
1. Counter - Count Up
Secara prinsip, counter jenis ini dapat dijelaskan dengan gambar berikut.
Gambar 2.29. Timing Diagram Counter - Up Count
Pada gambar tersebut, posisi garis biru di atas menandakan kondisi aktif
dan posisi di bawah menandakan kondisi nonaktif. I1 berperan sebagai pulsa
input counter. Saat I1 diaktifkan minimal sejumlah 3 kali, nilai aktual counter
akan mencapai preset. Dengan demikian output counter akan bernilai 1 dan
mengaktifkan O1. Adapun saat I2 diaktifkan, nilai aktual counter akan
mengalami reset ke 0.
2. Counter - Count Down
Secara prinsip, gambar berikut dapat menjelaskan counter - count down.
Gambar 2.30. Timing Diagram dari Counter - Count Down
34
Pada gambar tersebut, posisi garis biru di atas menandakan kondisi aktif
dan posisi di bawah menandakan kondisi nonaktif. I1 berperan sebagai pulsa
input counter. Saat I1 diaktifkan minimal sejumlah 3 kali, nilai aktual counter
akan menurun mencapai angka 0. Dengan demikian output counter akan bernilai
1 dan mengaktifkan O1. Adapun saat I2 diaktifkan, nilai aktual counter akan
mengalami reset ke nilai preset-nya (dalam kasus di atas preset = 3).
2.5 Software Classic Ladder
2.5.1 Profil
Sumber: https://sites.google.com/site/classicladder/home
Sebuah proyek open source untuk memiliki ladder bebas dan
pemrograman perangkat lunak sekuensial (grafcet) yang dikodekan dalam bahasa
C (yang akan digunakan untuk pendidikan, pelatihan, di software PLC pada
komputer PC atau embedded platform, ...). Umumnya, ditemukan jenis bahasa
tersebut di PLC untuk membuat program-program proses otomasi. Hal ini
memungkinkan untuk mewujudkan program kecil atau yang lebih besar secara
elektrik dengan ladder. Proyek ini dirilis di bawah persyaratan lisensi LGPL.
Situs web asli yang lama berada pada alamat berikut.
http://membres.multimania.fr/mavati/classicladder/
Namun sekarang, situs web tersebut sudah tidak aktif. Update terbaru
terdapat pada situs baru Classic Ladder
(https://sites.google.com/site/classicladder/home). Perangkat lunak ini, untuk
download yang tersedia pada sourceforge.net, berada pada alamat web di bawah
ini.
http://sourceforge.net/projects/classicladder/
35
Sumber: http://www.linuxcnc.org/docs/2.4/html/ladder_classic_ladder.html
Classic Ladder telah diadaptasi untuk bekerja dengan HAL
EMC2/LinuxCNC, dan saat ini masih didistribusikan bersama dengan
EMC2/LinuxCNC. Jika terdapat masalah(issues/problems/bugs) dianjurkan untuk
melaporkannya kepada proyek Enhanched Machine Controller.
2.5.2 Konsep Ladder
Sumber: http://www.linuxcnc.org/docs/2.4/html/ladder_classic_ladder.html
Classic Ladder adalah jenis bahasa pemrograman awalnya
diimplementasikan pada industri PLC (itu disebut Ladder Programming). Hal ini
didasarkan pada konsep kontak relay dan coil, dan dapat digunakan untuk
membangun cek(checks) dan fungsi logika dengan cara yang familiar bagi
banyak integrator sistem. Penting untuk mengetahui bagaimana program tangga
dievaluasi ketika dijalankan.
Tampaknya wajar bahwa setiap baris akan dievaluasi dari kiri ke kanan
kemudian baris berikutnya turun dll., tetapi hal ini tidak bekerja seperti ini.
Semua input dibaca, semua logika diketahui, maka semua output ditetapkan. Ini
dapat menimbulkan sebuah masalah dalam situasi tertentu jika output dari satu
baris menyuplai masukan dari yang lain. Masalah lainnya dengan pemrograman
tangga adalah aturan "Last One Wins". Jika pengguna memiliki output yang sama
pada lokasi yang berbeda dari ladder-nya, keadaan dari satu yang terakhir akan
menjadi hal yang diatur pada output-nya. Classic Ladder versi 0.7.124 telah
diadaptasi untuk EMC 2.3. Dokumen ini menjelaskan versi tersebut.
36
2.5.3 Bahasa
Sumber: http://www.linuxcnc.org/docs/2.4/html/ladder_classic_ladder.html
Bahasa yang paling umum digunakan saat bekerja dengan Classic Ladder
adalah ‘ladder’. Classic Ladder juga mendukung Sequential Function Chart
(Grafcet).
2.5.4 File
Sumber: http://www.linuxcnc.org/docs/2.4/html/ladder_classic_ladder.html
Format file yang digunakan pada proyek Classic Ladder adalah “.clp”,
sedangkan untuk versi terbarunya (0.9.014) adalah “.clprj”. File Ladder (.clp)
tidak boleh mengandung spasi kosong dalam namanya.
Adapun berikut beberapa informasi lain tentang software Classic Ladder
ini yang penulis dapatkan dari beberapa sumber lainnya.
Sumber: e-Gizmo_PLC64_28I/O Programmable Logic Controller_Hardware
Manual Rev 1 r0_”Common hardware platform for use with Ladder Logic and
ClassicLadder open source PLC ladder programming software.”
Classic Ladder yang dikembangkan oleh Marc Le Douarain ini memiliki:
- website resmi:
https://sites.google.com/site/classicladder/
- alamat web untuk download:
https://sites.google.com/site/classicladder/home/downloads
Dokumentasi PDF juga tersedia dari link yang sama, sayangnya bagi
masyarakat pada umumnya (global), kebanyakan dari dokumentasi tersebut
ditulis dalam bahasa Prancis. Google Translate dapat membantu untuk
37
menyelesaikan permasalahan ini.
- pedoman singkat (bahasa Inggris):
http://users.teledisnet.be/web/rlo05343/umanual/umanual_for_classicladder.html
Versi Classic Ladder yang telah dikompilasi(compiled) dapat berjalan baik
pada OS Windows maupun Unix.
Sumber: http://leachy.homeip.net/olinuxino/classic_ladder.html
Pada Classic Ladder pengguna dapat membuat program dengan
menggunakan diagram ladder atau grafcet. Proyek ini terdiri atas 2 bagian:
bagian windows dan bagian linux.
Sumber: http://www.sharewareconnection.com/classicladder.htm
Classic Ladder merupakan sebuah software open source yang
memungkinkan pengguna untuk membuat program-program pada PLC secara
elektrik. Program-program tersebut dipisahkan dalam bagian-bagian/sections
(utama/main atau subrutin/sub-routines), di mana pengguna memilih
bahasa(ladder atau sequential).
Elemen-elemen berikut tersedia pada ladder tersebut.
a) Elemen-elemen Boolean(Boolean elements)
b) Rising / Falling Edges
c) Timers
d) Monostables
e) Counters
f) Membandingkan ekspresi aritmatika (Compare of arithmetic expressions)
g) Keluaran-keluaran Boolean (Boolean Outputs)
38
h) Coil Set / Reset
i) Lompatan (Jumps)
j) Pemanggilan ke bagian subrutin (Calls to sub-routines sections)
k) Mengoperasikan ekspresi aritmatika (Operate of arithmetic expressions)
URL info program: http://sourceforge.net/projects/classicladder
2.5.5 Tampilan / Antarmuka Grafis/ Graphical User Interface
Sumber: http://www.linuxcnc.org/docs/2.4/html/ladder_classic_ladder.html
Jika pengguna menjalankan Classic Ladder dengan GUI-nya, software ini
akan menampilkan dua jendela: tampilan bagian (section display), dan manajer
bagian (section manager).
2.5.5.1 Manajer Bagian(Sections Manager)
Ketika pengguna pertama kali memulai Classic Ladder, pengguna akan
mendapatkan jendela manajer bagian(sections manager window) yang kosong.
Gambar 2.31. Jendela DefaultManajer Bagian(Section Manager)
Jendela ini memungkinkan kita untuk menamai, membuat atau
menghapus bagian(section) dan memilih apa bahasa yang kita gunakan pada
bagian(section) tersebut. Jendela ini juga terkait tentang bagaimana kita menamai
subroutine untuk memanggil coil-coil.
2.5.5.2 Tampilan Bagian(Section Display)
Ketika kita pertama kali memulai Classic Ladder, kita mendapatkan
jendela tampilan bagian (Section Display) yang kosong.
39
Gambar 2.32. Jendela Default Tampilan Bagian(Section Display)
Sebagian besar tombol yang mudah untuk dijelaskan:
1. Tombol Vars adalah untuk melihat variabel, mengalihkan untuk
menampilkan satu, yang lain, keduanya, kemudian tidak satupun yang ada
pada jendela tersebut.
2. Tombol Config digunakan untuk modbus dan menunjukkan jumlah elemen
tangga maksimum yang penuh dengan modul real time.
3. Tombol Symbol akan menampilkan daftar simbol yang dapat di-edit untuk
variabel-variabel tersebut (petunjuk kita dapat menamai input, output, coil,
dll.).
4. Tombol Quit akan menutup program pengguna yang berarti Modbus dan
tampilannya - program ladder real time masih akan berjalan di background.
5. Kotak Centang(Check Box) di bagian kanan atas tampilan memungkinkan
kita untuk memilih antara nama variabel atau nama simbol yang ditampilkan.
Pengguna mungkin melihat bahwa terdapat garis bawah pada tampilan
40
program ladder yang bertuliskan "Project failed to load..." Itu adalah status bar
yang memberikan info tentang unsur-unsur program ladder yang pengguna klik
pada jendela tampilan. Status bar ini akan menampilkan nama sinyal HAL untuk
variabel %I, %Q dan %W pertama (dalam sebuah persamaan).
Pengguna mungkin melihat beberapa label unik, seperti (103) di dalam
anak tangga(rung). Hal ini ditampilkan (disengaja) karena suatu kesalahan lama
(old-bug) ketika menghapus elemen pada versi lama terkadang tidak menghapus
objek dengan kode yang benar. Pengguna mungkin telah memperhatikan bahwa
tombol koneksi horizontal panjang terkadang tidak bekerja dalam versi yang
lebih lama/tua. Hal ini dikarenakan pencarian kode ‘bebas’, tetapi ditemukan
sesuatu yang lain. Nomor yang berada dalam kurung adalah kode yang belum
diakui atau dikenali. Program ladder akan tetap bekerja dengan baik, untuk
memperbaikinya dibutuhkan penghapusan kode dengan editor dan penyimpanan
program.
2.5.5.3 Variable Window (Jendela Variabel)
Ini adalah dua jendela variabel: bool dan bilangan bulat yang
ditandai(signed integer). Dengan menggunakan tombol “Vars” di jendela
tampilan bagian(Section Display), pengguna dapat melakukan pengalihan tombol
‘Vars’ untuk menampilkan satu, yang lain, keduanya, bahkan tidak satupun
variabel yang ada pada jendela tersebut.
41
Gambar 2.33. Jendela Status Bit
Jendela Bool tersebut menampilkan beberapa dari semua data variabel
bool (on / off). Hal yang perlu diperhatikan yaitu semua awal variabel
menggunakan tanda %. Variabel %I merepresentasikan pin-pin bit masukan(input)
HAL. %Q merepresentasikan kumparan(coil) relay dan pin-pin bit output HAL.
%B merupakan kumparan(coil) relay internal atau hubungan(contact) internal.
Tiga tempat/area peng-edit-an pada bagian paling atas memungkinkan kita untuk
memilih 15 variabel yang akan ditampilkan di setiap kolom. Misalnya jika
terdapat 30 variabel %B dan kita masukkan 5 di bagian atas kolom, variabel %B5
sampai %B19 akan ditampilkan.
Kotak centang (Check Box) memungkinkan pengguna untuk mengatur
dan mengatur/menetapkan variabel %B secara manual selama program tangga
tidak menetapkannya sebagai output. Setiap bit yang ditetapkan sebagai output
oleh program ketika Classic Ladder berjalan tidak dapat diubah dan akan
ditampilkan sebagai tercentang(checked) jika on dan tidak tercentang jika off.
42
Gambar 2.34. Jendela Pemantau (Watch Window)
Watch Window menampilkan status variabel. Textbox di samping tersebut
adalah nomor yang tersimpan dalam variabel dan kotak drop-down di samping
tersebut yang memungkinkan pengguna untuk memilih nomor yang akan
ditampilkan dalam hex, desimal atau biner. Jika terdapat nama simbol yang
didefinisikan pada jendela simbol untuk variabel kata(Word) yang tampil dan
terdapat centang pada ‘Display Symbol’ yang memeriksa jendela tampilan
bagian (section display), nama simbol akan ditampilkan. Untuk mengubah
variabel yang ditampilkan, pengguna perlu mengetikkan nomor variabelnya,
misalkan %W2 (jika kotak centang ‘Display Symbol’ tidak dicentang) atau nama
simbol (jika ‘Display Symbol’ dicentang) pada nomor/nama variabel dan kita
menekan tombol “Enter”.
43
2.5.5.4 Jendela Simbol
Gambar 2.35. Jendela Nama Simbol
Ini adalah daftar nama ‘symbol’ yang gunakan, bukan nama variabel yang
akan ditampilkan di jendela bagian (Section Window) ketika kotak cek ‘Display
Symbol’ dicentang. Pengguna menambahkan nama variabel (ingat simbol '%' dan
huruf kapital) dan nama simbol. Jika variabel dapat memiliki sinyal HAL
terhubung (%I, %Q, dan %W - jika pengguna telah memuat pin S32 dengan
modul real time) maka bagian komentar(comment section) akan menampilkan
nama sinyal HAL saat itu atau kurang dari itu. Nama simbol harus tetap pendek
untuk tampilan yang lebih baik. Perlu diingat bahwa pengguna dapat
menampilkan lagi nama sinyal HAL %I, %Q dan variabel %W dengan
mengkliknya di jendela bagian (Section Window). Di antara dua hal tersebut
dihidupkan/diaktifkan, maka pengguna seharusnya dapat memantau dengan apa
program ladder tersebut terhubung.
44
2.5.5.5 Editor Window
Gambar 2.36. Jendela Editor
Berikut keterangan tentang tombol-tombol paling atas.
- Tombol “Add” berfungsi untuk menambahkan sebuah rung setelah rung yang
dipilih oleh pengguna.
- Tombol “Insert” berfungsi untuk menyisipkan sebuah rung sebelum rung yang
dipilih oleh pengguna.
- Tombol “Delete” berfungsi untuk menghapus rung yang dipilih.
- Tombol “Modify” berfungsi untuk membuka rung yang dipilih untuk
pengubahan/editing.
Mulai dari gambar kiri atas:
1. Object Selector, Eraser
2. N.O. Input, N.C. Input, Rising Edge Input, Falling Edge Input
3. Horizontal Connection, Vertical Connection, Long Horizontal Connection
45
4. IEC Timer Block, Counter Block, Compare Variable
5. Old Timer Block, Old Monostable Block (ini telah digantikan oleh IEC Timer)
6. Coil - N.O. Output, N.C. Output, Set Output, Reset Output
7. Jump Coil, Call Coil, Variable Assignment
Berikut deskripsi singkat dari masing-masing tombol.
1. Tombol ANAK PANAH PEMILIH (SELECTOR ARROW) memungkinkan
pengguna untuk memilih obyek yang tersedia dan memodifikasi informasinya.
2. PENGHAPUS(ERASER) dapat menghapus sebuah obyek. Namun
berdasarkan pengamatan penulis, penghapusan pada obyek
output/coil/kumparan harus dilakukan dengan tombol coil tersebut sendiri. Jika
penghapusan coil menggunakan Eraser, maka aplikasi Classic Ladder akan
tertutup seketika. Mungkin hal ini merupakan satu bug/error/masalah dari
Classic Ladder.
3. KONTAK N.O. tersebut adalah sebuah kontak normal terbuka(normally
open contact). Hal ini dapat berupa pin-HAL (%I) kontak input eksternal,
kontak internal-bit coil (%B) atau coil eksternal (%Q) kontak. Kontak input
pin-HAL tersebut ditutup ketika pin-HAL bernilai benar(True). Kontak-kontak
coil tersebut menutup ketika coil yang sesuai aktif (kontak %Q2 menutup
ketika coil %Q2 aktif).
4. KONTAK N.C. tersebut adalah sebuah kontak normal tertutup. Kontak ini
sama dengan kontak N.O. kecuali kontak ini terbuka ketika pin-HAL bernilai
True atau coil aktif.
5. KONTAK RISING-EDGE tersebut adalah kontak yang tertutup ketika
46
pin-HAL beralih dari False ke True, atau coil dari tidak aktif menjadi aktif.
6. KONTAK FALLING-EDGE tersebut adalah kontak yang tertutup ketika
pin-HAL beralih dari True ke False atau coil aktif menjadi tidak aktif.
7. KONEKSI HORIZONTAL tersebut menghubungkan ‘sinyal’ ke obyek
secara horizontal.
8. KONEKSI VERTIKAL tersebut menghubungkan 'sinyal' ke obyek secara
vertikal.
9. HORIZONTAL-RUNNING CONNECTION tersebut adalah cara cepat
untuk menghubungkan dengan bersambung(long-run) 'kawat sinyal(signal
wire)' secara horizontal.
10. TIMER IEC tersebut menggantikan TIMER dan MONOSTABLE.
11. TIMER adalah modul timer.
12. MONOSTABLE adalah modul monostable (one-shot).
13. COUNTER adalah modul counter.
14. COMPARE memungkinkan pengguna untuk membandingkan variabel
dengan nilai-nilai atau variabel-variabel lainnya. (misalnya %W1 <= 5 atau
%W1=%W2) Perbandingan tidak dapat ditempatkan di sisi paling kanan dari
tampilan bagian(Section Display).
15. VARIABLE ASSIGNMENT memungkinkan pengguna untuk memberikan
nilai-nilai pada variabel-variabel.(misalnya %W2 = 7 atau %W1 = %W2)
Fungsi-fungsi ASSIGNMENT hanya dapat ditempatkan pada sisi paling kanan
dari tampilan bagian(Section Display).
47
2.5.5.6 Jendela Config(Pengaturan)
Jendela config menunjukkan status proyek yang aktual dan memiliki
tab-tab pengaturan Modbus untuk komunikasi dengan hardware PLC.
Gambar 2.37. Jendela Config
Tampilan yang dibahas di atas berlaku untuk Classic Ladder versi lama
(0.7.124). Adapun untuk versi terbarunya (0.9.014) terdapat 2 jendela yang
memiliki perbedaan cukup signifikan. Keduanya adalah jendela Section Display
dan jendela Editor. Berikut penjelasan mengenai kedua jendela tersebut.
48
2.5.5.7 Jendela Section Display Versi Terbaru (0.9.014)
Gambar 2.38. Jendela Section Display Classic Ladder Versi Terbaru (0.9.014)
Pada jendela tersebut, bagian paling penting adalah sebagai berikut.
Gambar 2.39. Menu Utama Jendela Section Display Classic Ladder Versi
Terbaru (0.9.014)
1. Menu (mulai dari kiri)
a) File
i. New - Membuat dan memulai proyek baru.
ii. Load - Memuat proyek yang telah tersedia atau pernah dibuat
sebelumnya.
iii. Save - Menyimpan proyek aktual.
iv.Save As - Menyimpan proyek aktual dengan nama tertentu.
v. Export to - Ekspor proyek aktual ke format tententu.
49
╴ Svg: Ekspor proyek aktual ke sebuah file vektor dengan
format SVG.
╴ Png: Ekspor proyek aktual ke sebuah file gambar bitmap
dengan format PNG.
╴ Clipboard: Ekspor proyek aktual ke clipboard untuk
dimasukkan ke aplikasi yang mendukung gambar.(Ctrl+C)
vi. Preview - Melihat pratinjau pencetakan proyek.
vii. Print - Mencetak proyek.
viii.Quit - Keluar dari aplikasi Classic Ladder.
b) Search - Menu Pencarian
i. Find - Pencarian obyek ladder dengan kata kunci.
ii. Find Next - Mencari hasil pencarian selanjutnya.
iii. Find Previous - Mencari hasil pencarian sebelumnya.
iv.Go to First Rung - Menuju ke rung pertama atau paling atas.
v. Go to Last Rung - Menuju ke rung terakhir atau paling bawah.
vi. Go to Previous Section - Mengarahkan menuju section/bagian
sebelum(urutan) section/bagian aktual.
vii. Go to Next Section - Mengarahkan menuju section/bagian
sesudah/setelah(urutan) section/bagian aktual.
c) View - Menu Tampilan
i. Sections Window - Menampilkan atau menyembunyikan jendela
Section Manager.
ii. Editor Window - Menampilkan atau menyembunyikan jendela
50
Editor.
iii. Symbols Window - Menampilkan atau menyembunyikan
jendela Symbols Names.
iv.Bools Vars Window - Menampilkan atau menyembunyikan
jendela “Spy Bools Vars” (jendela pemantau variabel).
v. Free Vars Window - Menampilkan atau menyembunyikan
jendela “Spy Free Vars” (pemantau variabel bebas).
vi. Log Window - Menampilkan jendela “Events Log” (laporan
kejadian/peristiwa)
vii. Frames Log Windows - Menampilkan atau menyembunyikan
jendela-jendela laporan untuk hardware PLC yang terhubung.
d) PLC - Menu terkait simulasi logika, pengaturan, dan hubungan
hardware PLC.
i. Run Logic - Menjalankan simulasi rangkaian logika.
ii. Run Logic Only One Cycle - Menjalankan simulasi satu siklus.
iii. Reset Logic - Mengatur ulang logika-logika variabel yang
terlibat dalam simulasi.
iv.Configuration - Membuka jendela pengaturan Classic Ladder.
e) Help - Menu bantuan.
i. About - Menampilkan informasi terkait rilis Classic Ladder
aktual dan pengembangnya.
51
2. Tombol Icon (mulai dari kiri)
a) (New)
b) (Load)
c) (Save)
d) (Print)
e) (Run Logic)
f) (Reset Logic)
g) (Configuration)
h) (Section Manager)
i) (Editor Window)
j) (Symbols Names)
2.5.5.8 Jendela Editor Versi Terbaru (0.9.014)
Gambar 2.40. (a)Jendela EditorAktif dan (b)Jendela Editor Inaktif
52
Bagian yang berbeda pada jendela ini dari versi lamanya adalah sebagai
berikut.(dari kiri ke kanan)
Gambar 2.41. Tool-tool Editor yang Berbeda di Versi Terbaru Classic Ladder
(0.9.014)
1. Invert Logic of Object - Membalikkan Logika dari Obyek.
2. Select Rung Part (Drag and Release) - Memilih/Menyeleksi bagian dari rung.
3. Copy Rung Part - Menyalin bagian dari rung.
4. Move Rung Part - Memindahkan bagian dari rung.
2.5.6 Obyek Ladder dalam Classic Ladder
Sumber: http://www.linuxcnc.org/docs/2.4/html/ladder_classic_ladder.html dan
http://linuxcnc.org/docs/html/ladder/classic_ladder.html
2.5.6.1 KONTAK
Obyek ini mewakili switch atau kontak relay. Kontak-kontak tersebut
dikendalikan oleh huruf variabelnya dan nomor yang ditetapkan pada
kontak-kontak tersebut.
Huruf variabel tersebut dapat berupa B, I, atau Q dan angkanya dapat
mencapai tiga digit misalnya %I2, %Q3, atau %B123. Variabel I dikendalikan
oleh pin input HAL dengan angka yang sesuai. Variabel B adalah untuk kontak
internal, yang dikendalikan oleh coil B dengan angka yang sesuai. Variabel Q
dikendalikan oleh coil Q dengan angka yang sesuai. (seperti relay dengan
beberapa kontak). Misalnya. Jika pin-HAL classicladder.0.in-00 bernilai benar,
maka kontak N.O. %I0 akan menyala (tertutup, benar, apa pun sebutannya). Jika
53
coil %B7 diberi aliran listrik (energized) (menyala, benar, dll.) maka kontak N.O.
%B7 akan menyala. Jika coil %Q1 diberi aliran listrik(energized) maka kontak
N.O. %Q1 akan menyala (dan pin-HAL classicladder.0.out-01 akan bernilai
benar.)
1. KONTAK N.O. (Normally Open) ketika variabelnya bernilai
salah(false), saklarnya mati.
2. KONTAK N.C. (Normally Close) - Ketika variabelnya bernilai
salah(false), saklarnya menyala.
3. KONTAK RISING EDGE - Ketika perubahan variabel dari false ke
true, saklar berdetak menyala.
4. KONTAK FALLING EDGE - Ketika perubahan variabel dari true
menjadi false, saklar berdetak menyala.
2.5.6.2 TIMER IEC
Obyek ini mewakili timer hitung mundur yang baru. Timer IEC
menggantikan timer dan monostable. Timer IEC memiliki dua kontak sebagai
berikut.
1. I = input
2. Q = output
Terdapat tiga mode, yaitu TON, TOF, dan TP. Berikut penjelasannya.
1. TON: Bila masukan timer bernilai benar, hitung mundur dimulai dan
berlanjut selama masukan tetap bernilai benar. Setelah hitung mundur
dilakukan dan selama masukan timer masih bernilai benar, output akan bernilai
benar.
54
2. TOF: Bila masukan timer bernilai benar, output ditetapkan bernilai benar.
Ketika input bernilai salah(false), timer menghitung mundur kemudian
menetapkan keluaran menjadi bernilai salah(false).
3. TP: Bila masukan timer berdetak ke nilai benar atau memegang nilai benar,
timer menetapkan keluaran bernilai benar sampai timer menghitung
mundur.(one-shot)
Interval waktu dapat diatur dalam kelipatan 100ms(milisecond/milidetik),
detik, atau menit.
Adapun berikut variabel untuk timer IEC yang dapat dibaca atau ditulis
dalam blok-blok in compare atau operate.
1. %TMxxx.Q: waktu selesai (Boolean, baca tulis)
2. %TMxxx.P: waktu yang ditetapkan untuk timer xxx (baca tulis)
3. %TMxxx.V: nilai timer xxx (baca tulis)
Keterangan: baca tulis adalah read write dari sumber referensi.
2.5.6.3 TIMER
Obyek ini mewakili timer hitung mundur. Timer ini sudah ditinggalkan
dan digantikan oleh timer IEC.
Timer memiliki empat kontak sebagai berikut.
1. E = enable/aktifkan (input) - mulai waktu ketika bernilai benar, me-reset
ketika bernilai salah
2. C = control/kendalikan (input) - wajib pada timer untuk berjalan (biasanya
terhubung ke E)
3. D = done/selesai (output) - bernilai benar ketika waktu timer habis dan
55
selama E masih bernilai benar
4. R = running/sedang berjalan (output) - bernilai benar ketika waktu berjalan
Basis waktu dapat berupa kelipatan milidetik, detik, atau menit.
Adapun berikut variabel untuk timer yang dapat dibaca atau tertulis dalam
blok-blok in compare dan operate.
1. %Txx.R: Timer xx sedang berjalan (boolean, hanya baca)
2. %Txx.D: Timer xx selesai (boolean, hanya baca)
3. %Txx.V: nilai aktual Timer xx (integer, hanya baca)
4. %Txx.P: Timer xx ditetapkan (integer, baca atau tulis)
2.5.6.4 Monostable
Obyek ini mewakili one-shot timer. Monostable sudah ditinggalkan dan
digantikan oleh Timer IEC.
Monostable memiliki dua kontak, yaitu I dan R.
I merupakan kontak rising-edge yang sensitif memulai timer hanya ketika nilai
berubah dari false ke true (atau off ke on). Saat timer berjalan, kontak I dapat
berubah dengan tidak berpengaruh terhadap waktu yang sedang berjalan. R akan
bernilai benar dan tetap sama sampai timer tersebut selesai menghitung ke angka
nol.
Basis waktu dapat kelipatan milidetik, detik, atau menit.
Adapun berikut variabel untuk monostables yang dapat dibaca atau
tertulis dalam blok-blok in compare dan operate.
1. %Mxx.R: monostable xx berjalan(running) (boolean, hanya baca)
2. %Mxx.V: nilai aktual(current value) xx Monostable (integer, hanya baca)
56
3. %Mxx.P: ketetapan(preset)Monostable xx (integer, baca atau tulis)
2.5.6.5 COUNTER
Obyek ini merupakan counter naik/turun(up/down). Pada obyek ini,
terdapat tujuh kontak sebagai berikut.
1. R (input) - reset - akan mengatur kembali hitungan ke angka 0.
2. P (input) - preset - akan mengatur hitungan ke angka yang telah ditetapkan
dari menu edit.
3. U (input) - up count - akan menambahkan satu ke hitungan.
4. D (input) - down count - akan mengurangi satu dari hitungan.
5. E (output) - under flow - akan bernilai benar ketika hitungan berpindah(roll
over) dari angka 0 ke angka 9999.
6. D (output) - done - akan bernilai benar ketika hitungan sama dengan nilai
yang ditetapkan.
7. F (output) - overflow - akan bernilai benar ketika hitungan berpindah(roll
over) dari angka 9999 ke angka 0.
Kontak-kontak hitung naik dan turun tersebut sensitif tepi(edge sensitive)
yang berarti bahwa kontak-kontak tersebut hanya menghitung ketika terjadi
perubahan nilai kontak dari false ke true (atau off ke on dalam sebutan lain).
Rentangnya adalah dari 0 sampai 9999.
Adapun berikut variabel untuk counter yang dapat dibaca atau tertulis
dalam blok-blok in compare dan operate.
1. %Cxx.D : counter xx selesai(done) (boolean, hanya baca)
2. %Cxx.E: counter xx menyimpang kosong(empty overflow) (boolean, hanya
57
baca)
3. %Cxx.F: counter xx menyimpang penuh(full overflow) (boolean, hanya
baca)
4. %Cxx.V: nilai aktual(current value) counter xx (integer, baca atau tulis)
5. %Cxx.P: ketetapan(preset) counter xx (integer, baca atau tulis)
2.5.6.6 COMPARE
Obyek ini berfungsi untuk melakukan perbandingan aritmatika. Misalnya
apakah variabel %XXX=angka tertentu(atau angka yang dievaluasi)
Blok COMPARE akan bernilai benar ketika perbandingannya benar. Sebagian
besar simbol matematika dapat digunakan, seperti: +, -, *, /, =, <, >, <=, >=, (,),
^(eksponen), %(modulus), &(dan), |(atau), !(tidak).
Fungsi matematika juga dapat digunakan. Fungsi-fungsi tersebut adalah
ABS(mutlak), MOY(Bahasa Perancis, untuk rata-rata), AVG(rata-rata). Misalnya
ABS(%W2)=1, MOY(%W1,%W2)<3. Tidak terdapat spasi yang diperbolehkan
dalam persamaan perbandingan. Misalnya %C0.V>%C0.P adalah ekspresi
perbandingan yang valid/sah, sedangkan %C0.V>%CO.P bukan ekspresi yang
valid/sah.
Adapun daftar variabel pada halaman selanjutnya(bagian
Variabel-variabel ClassicLadder) yang dapat digunakan untuk membaca atau
menulis untuk obyek ladder. Ketika blok baru COMPARE dibuka, pengguna
harus memastikan dan menghapus simbol # ketika memasukkan/menuliskan
perbandingan. Untuk mengetahui jika variabel kata(word) #1 kurang dari 2 kali
nilai aktual counter #0, sintaks akan menjadi:
58
%W1<2*%C0.V
Untuk mengetahui jika bit 2 S32in sama dengan 10, sintaks akan menjadi:
%IW2=10
Catatan: COMPARE menggunakan sama dengan(equals) aritmatika “=”,
bukan sama dengan ganda(double equals) “==” yang biasa digunakan oleh para
programmer.
2.5.6.7 VARIABLE ASSIGNMENT
Untuk VARIABLE ASSIGNMENT, misalnya penetapan angka tertentu
(atau angka yang dievaluasi) untuk variabel %xxx. Terdapat dua fungsi
matematika MINI dan MAXI yang memeriksa variabel untuk nilai-nilai
maksimum(0x80000000) dan nilai-nilai minimum(0x07FFFFFFF) (dengan
berpikir tentang nilai yang ditandai(signed values)) dan menjaganya dari
penyimpangan.
Ketika blok baru VARIABLE ASSIGNMENT dibuka, pengguna harus
memastikan dan menghapus simbol # ketika memasukkan/menuliskan sebuah
penugasan(assignment).
Untuk menetapkan nilai 10 ke timer preset(nilai yang ditetapkan untuk
timer) Timer IEC 0, sintaks akan menjadi:
%TM0.P=10
Untuk menetapkan nilai 12 ke bit 3 S32out, sintaks akan menjadi:
%QW3=12
Gambar berikut menunjukkan penugasan(assignment) dan
perbandingan(comparison). %QW0 adalah bit S32out dan %IW0 adalah bit
S32in. Dalam hal ini pin-HAL classicladder.0.s32out-00 akan ditetapkan ke nilai
59
5 dan ketika pin-HAL classicladder.0.s32in-00 bernilai 0, pin-HAL
classicladder.0.out-00 akan ditetapkan ke nilai benar(True).
Gambar 2.42. Contoh Menetapkan(Assign) / Membandingkan(Compare)
2.5.6.8 COIL
Coil merupakan kumparan/coil relay. Coil-coil tersebut dikendalikan oleh
huruf variabelnya dan nomor yang ditugaskan. Huruf variabel dapat berupa B
atau Q dan nomor dapat mencapai tiga digit nomor, misalnya %Q3, atau %B123.
Coil Q mengendalikan pin-pin keluar HAL(HAL out pins). Misalnya jika &Q15
diberi energi(energized), maka pin-HAL classicladder.0.out-15 akan bernilai
benar. Coil B adalah kumparan/coil internal yang digunakan untuk mengontrol
aliran program.
1. COIL N.O. - (kumparan/coil relay)
Ketika kumparan tersebut diberi energi(energized), kontak N.O. akan
ditutup/tertutup (on, benar, dll.)
60
2. COIL N.C. - (kumparan/coil relay yang memiliki kontak invers.)
Ketika kumparan/coil tersebut diberi energi(energized), kontak N.O. akan
terbuka (off, salah, dll.)
3. COIL SET - (kumparan/coil relay dengan kontak pengunci(latching))
Ketika kumparan/coil tersebut diberi energi(energized), kontak N.O. akan
terkunci dan tertutup.
4. COIL RESET - (kumparan/coil relay dengan kontak pengunci/latching)
Ketika kumparan/coil tersebut diberi energi(energized), kontak N.O. akan
terkunci dan terbuka.
5. COIL JUMP - (sebuah coil "go to”) Saat kumparan/coil diberi
energi(energized), program tangga(ladder program) melompat ke anak
tangga(rung) (pada bagian yang digunakan saat itu(current section)) - titik
lompatan (jump point) ditunjukkan oleh label anak tangga(rung label).
(Penambahan label anak tangga(rung label) dapat dilakukan dari tampilan
bagian(section display), kotak label paling kiri dan paling atas(top left label
box)).
6. COIL CALL - (sebuah coil "go sub") Ketika kumparan/coil tersebut
diberi energi(energized), program melompat ke bagian subrutin(subroutine
section) yang ditunjukkan(designated) oleh nomor subroutine -
subroutine-subroutine ditunjukkan(designated) oleh SR0 sampai SR9
(menandai(designate) subroutine-subroutine tersebut pada manajer
bagian(section manager))
***PERINGATAN*** Jika digunakan kontak N.C. dengan coil N.C.,
61
logika akan bekerja (saat kumparan/coil diberi energi(energized), kontak akan
ditutup/tertutup), akan tetapi hal ini sangat sulit untuk diikuti.
2.5.6.9 COIL JUMP
Sebuah COIL JUMP digunakan untuk 'melompat' ke bagian-lain seperti
go to dalam bahasa pemrograman BASIC. Jika penggunan melihat bagian kiri atas
dari jendela tampilan bagian(section display window), akan terlihat kotak label
kecil dan kotak komentar yang lebih panjang di sampingnya. Jika pengguna
mengakses bagian Editor-->Modify kemudian kembali ke kotak kecil, pengguna
dapat mengetik nama. Jika pengguna meneruskan, pengguna dapat menambahkan
komentar di bagian komentar(comment section) tersebut. Nama label ini adalah
nama anak tangga(rung name) yang sedang dimodifikasi saja dan digunakan oleh
COIL JUMP untuk mengidentifikasi ke mana tujuannya. Ketika menempatkan
COIL JUMP, pengguna harus menambahkannya pada posisi yang paling tepat
dan mengubah label ke anak tangga(rung) yang menjadi tujuan lompatan.
2.5.6.10 COIL CALL
Sebuah COIL CALL digunakan untuk menuju ke bagian subroutine
kemudian kembali - seperti “go sub” dalam bahasa pemrograman BASIC. Jika
pengguna menuju ke jendela manajer bagian (section manager window),
pengguna dapat menekan tombol add. Pengguna dapat menamai bagian tersebut,
memilih bahasa yang akan digunakan (tangga/ladder atau sequential), dan
memilih jenis (utama/main) atau subrutin/subroutine).
Jika pengguna memilih nomor subroutine (SR0 misalnya), sebuah
bagian(section) yang kosong akan ditampilkan dan pengguna dapat
62
membangun/membuat subroutine-nya. Adapun jika pengguna telah melakukan
hal tersebut, pengguna dapat kembali ke manajer bagian(section manager) dan
mengklik pada bagian utama (nama bawaan/default name: prog1).
Dengan demikian, pengguna dapat menambahkan COIL CALL untuk
programnya. COIL CALL harus ditempatkan pada posisi yang paling tepat pada
anak tangga(rung).
Satu hal yang perlu diingat, yaitu mengubah label untuk nomor subroutine
yang dipilih sebelumnya.
2.5.7 Variabel-variabel dalam Classic Ladder
Variabel-variabel ini digunakan dalam MEMBANDINGKAN(COMPARE)
atau BEROPERASI(OPERATE) untuk mendapatkan informasi tentang atau
mengubah spesifikasi dari obyek-obyek ladder. Seperti mengubah preset counter
(nilai yang ditetapkan), atau melihat jika timer selesai berjalan. Berikut daftarnya:
1. %Bxxx: memori bit xxx (Boolean)
2. %Wxxx: memori kata(word) xxx (bilangan bulat 32 bit yang ditandai(32 bit
signed integer))
3. %IWxxx: memori kata(word) xxx (pin masuk S32)
4. %QWxxx: memori kata(word) xxx (pin keluar S32)
5. %IFxx: memori xx kata(word) (float in pin) (dikonversi ke S32 pada
ClassicLadder)
6. %QFxx: memori xx kata(word) (float out pin) (dikonversi ke S32 pada
ClassicLadder)
7. %Txx.R: timer xx berjalan(running) (Boolean, pengguna hanya dapat
63
membaca)
8. %Txx.D: timer xx selesai(done) (Boolean, pengguna hanya dapat membaca)
9. %Txx.V: nilai aktual(current value) timer xx (integer, pengguna hanya dapat
membaca)
10. %Txx.P: nilai yang ditetapkan untuk timer xx (bilangan bulat(integer))
11. %TMxxx.Q: timer xxx selesai(done) (Boolean, baca tulis)
12. %TMxxx.P: ketetapan(preset) timer xxx (bilangan bulat(integer), baca tulis)
13. %TMxxx.V: nilai aktual(current value) timer xxx (bilangan bulat(integer),
baca tulis)
14. %Mxx.R: monostable xx berjalan(running) (Boolean)
15. %Mxx.V: monostable nilai aktual(current value) xx (bilangan bulat(integer),
pengguna hanya dapat membaca)
16. %Mxx.P: ketetapan(preset) monostable xx (bilangan bulat(integer))
17. %Cxx.D: counter xx selesai(done) (Boolean, pengguna hanya dapat
membaca)
18. %Cxx.E: counter xx empty overflow (Boolean, pengguna hanya dapat
membaca)
19. %Cxx.F: Counter xx full overflow (Boolean, pengguna hanya dapat
membaca)
20. %Cxx.V: nilai aktual(current value) counter xx (bilangan bulat/integer)
21. %Cxx.P: ketetapan(preset) counter xx (bilangan bulat/integer)
22. %Ixxx: masukan fisik xxx (Boolean) - bit masukan HAL
23. %Qxxx: keluaran fisik xxx (Boolean) - bit keluaran HAL
64
24. %Xxxx: aktivitas langkah(activity of step) xxx (bahasa sekuensial)
25. %Xxxx.V: waktu aktivitas dalam detik dari langkah xxx (bahasa sekuensial)
26. %Exx: kesalahan(error) (Boolean, baca tulis (akan ditimpa))
27. Variabel yang Diindeks atau Divektorkan(Vectorized and Indexed
Variables)
Ini merupakan variabel yang diindeks oleh variabel lain. Beberapa
sumber mungkin menyebutnya sebagai variabel yang divektorkan. Contoh:
%W0[%W4] => jika %W4 sama dengan 23 , ini sesuai dengan %W23.
65
BAB III
METODOLOGI PELAKSANAAN
Pelaksanaan dari penelitian ini terbagi menjadi beberapa tahap sebagai berikut.
Gambar 3.1. Diagram Alir Metodologi Pelaksanaan
66
3.1 Studi Literatur
Pada tahap ini dilakukan pencarian sumber-sumber atau literatur terkait
laporan tugas akhir ini. Secara teknis hal ini dilakukan dengan browsing atau
penjelajahan internet dan pencarian menggunakan fasilitas search engine.
Literatur yang dipilih berasal baik dari website, dokumen tugas akhir, dokumen
panduan praktikum, jurnal, maupun dokumen lainnya.
3.2 Persiapan
Persiapan memiliki 2 tahap, yaitu pengunduhan dan pemasangan. Adapun
penulis mengklasifikasikan penjelasan pada tahap-tahap ini menjadi dua bagian
berdasarkan sistem operasi yang digunakan, yaitu bagian Linux dan bagian
Windows.
Distro linux yang penulis gunakan adalah distro derivatif dari Ubuntu.
Oleh karena itu bagian pemasangan atau instalasi hanya relevan pada distro linux
tersebut. Penjelasan lebih lanjut tentang hal ini terlampir.
3.2.1 Pengunduhan/Download
3.2.1.1 Bagian Linux
Sumber: http://leachy.homeip.net/olinuxino/classic_ladder.html
Berdasarkan tulisan yang terdapat di website tersebut, pengguna dapat
memulai dengan men-download beberapa file. Menuju ke direktori yang
diinginkan (misalkan "Downloads" atau “/home/nama_pengguna/Downloads”)
dan men-download paket untuk linux. Perlu diingat, ini adalah satu hal yang
berbeda daripada windows.
cd Downloads
wget alamat_file_classicladder
67
Berdasarkan observasi penulis, alamat untuk mendapatkan file
classicladder versi lama yang dipakai untuk dokumentasi LinuxCNC yaitu:
http://sourceforge.net/projects/classicladder/files/classicladder/classicladder-0.7.1
24/classicladder-0.7.124.zip/download
, sedangkan alamat untuk mendapatkan Classic Ladder versi terbaru yaitu:
http://sourceforge.net/projects/classicladder/files/latest/download?source=files
atau secara khusus (terbaru saat tulisan ini dibuat):
http://sourceforge.net/projects/classicladder/files/classicladder/classicladder-0.9.0
14.tar.gz/download
3.2.1.2 Bagian Windows
Sumber : http://leachy.homeip.net/olinuxino/classic_ladder.html
Dalam sebuah website, terdapat penjelasan singkat terkait pengunduhan
program classicladder untuk windows sebagai berikut.
1. Mengambil/men-download file "zip" Classic Ladder dari situsnya
(http://sourceforge.net/projects/classicladder/) dan melakukan unzip. Untuk
menjalankannya, pertama-tama pengguna perlu mengatur lingkungan gtk
runtime.
2. Men-download file "zip" GTK runtime (alamat:
http://sourceforge.net/projects/gtk-win/) dan mengekstraknya ke contoh
"c:\opt\" (seperti yang dilakukan pada file README). Penjelasan lebih lanjut
dapat dibaca pada file README. File tersebut menjelaskan cara mengatur
lingkungan gtk. Hal tersebut sangat penting untuk dipastikan telah diatur
dengan benar atau tidak ada hal di bawah ini yang akan bekerja.
Namun, penulis menemukan cara yang sedikit lebih mudah sebagai berikut.
68
1. Men-download file “zip” Classic Ladder untuk windows. Alamat untuk
Classic Ladder versi lama yang dipakai oleh dokumentasi web LinuxCNC:
http://sourceforge.net/projects/classicladder/files/classicladder-win32/classicladde
r-win-0.7.123%2B/classicladder-win-0.7.123%2B.zip/download
alamat web untuk Classic Ladder versi terbaru(saat tulisan ini dibuat):
http://sourceforge.net/projects/classicladder/files/classicladder-win32/classicladde
r-win-0.9.014%28gtk2.16.6%29.zip/download
2. Men-download file “zip” GTK runtime dan update dari pustaka zlib1.
Alamat web GTK runtime:
http://sourceforge.net/projects/classicladder/files/classicladder-win32-gtk-runtime
/gtk_dll_files_to_extract_in_classicladder_win32_directory.zip/download
Alamat web dari update pustaka zlib1:
http://sourceforge.net/projects/classicladder/files/classicladder-win32-gtk-runtime
/zlib1_dll_update_v1_2_7_0.zip/download
3.2.2 Pemasangan
3.2.2.1 Bagian Linux
Pada sistem operasi linux, terdapat dua metode instalasi, yaitu system
based / berbasis sistem dan external directory based / berbasis direktori eksternal.
Penulis memberi nama sendiri pada keduanya agar mempermudah pembahasan
ini.
1. System Based / Berbasis Sistem
Dikutip dari halaman website
http://leachy.homeip.net/olinuxino/classic_ladder.html, seperti yang dapat
diperhatikan, file yang di-download(bagian pengunduhan) merupakan file "zip",
69
tidak terlalu biasa untuk sebuah file linux. Oleh karena itu opsi ekstra harus
diberikan saat melakukan unzip untuk mencegah berakhir dengan file berformat
dos (yang tidak ramah dengan linux). Pertama kali, pengguna harus menginstal
"unzip" karena format tersebut tidak standar di linux, selanjutnya melakukan
uncompress terhadap file “zip” tersebut. Berikut ini perintah-perintah yang
diperlukan.
sudo apt-get -y install unzip
unzip -a classicladder-xxxx.zip
Adapun saat ini cara yang lebih mudah dapat dilakukan dengan
menggunakan aplikasi archive manager yang sudah teresedia pada hampir semua
distro linux standar, seperti Ubuntu. Pengguna dapat melakukannya dengan klik
kanan pada file arsip dan memiih “Extract Here”. Archive manager tersebut
biasanya akan secara langsung mebuat folder baru sebagai tempat dari hasil
extract file arsip.
Gambar 3.2. Contoh Hasil Extract atau “unzip” dari FileArsip Classic Ladder
Perintah yang juga diperlukan:
sudo apt-get -y install zlib1g-dev
Berdasarkan percobaan penulis, terdapat satu perintah lagi yang
70
diperlukan khusus untuk Classic Ladder versi lama (0.7.124). Perintah tersebut
adalah:
sudo apt-get -y install libgnomeprintui-2.2-dev
Kedua perintah tersebut diperlukan untuk memenuhi kebutuhan kompilasi Classic
Ladder agar dapat diinstal ke sistem.
Setelah itu pengguna harus menuju ke folder classicladder baru dengan perintah:
cd direktori_classicladder
Untuk mendapatkan direktori_classicladder yang disertakan ke perintah
“cd”, pengguna perlu menyalinnya dari file manager dengan menekan tombol
“Ctrl+L” pada keyboard dan menyalin alamat yang terdapat pada kotak alamat di
bagian atas file manager tersebut. (Catatan: Beberapa aplikasi file manager
pada linux seperti thunar tidak memerlukan tombol “Ctrl+L”).
Gambar 3.3. Penyalinan Alamat Direktori Classic Ladder
Gambar 3.4. Penyertaan Direktori Classic Ladder Tahap 1
71
Gambar 3.5. Penyertaan Direktori Classic Ladder Tahap 2, bersama Perintah
“cd”
Gambar 3.6. Direktori Classic Ladder yang Telah Diakses dengan Shell
Interpreter
Dengan demikian pengguna dapat mengkompilasi program menggunakan
perintah berikut.
make
Jika perintah kompilasi tersebut gagal atau mengalami error, maka
keluaran shell interpreter akan seperti berikut ini.
Gambar 3.7. Kompilasi Classic Ladder yang Mengalami Error
Gambar tersebut adalah contoh ketika libgnomeprintui-2.2-dev belum
terinstal atau tidak tersedia pada sistem. Hal yang serupa juga dapat terjadi ketika
zlib1-g-dev tidak tersedia pada sistem. Adapun jika kedua paket tersebut telah
tersedia pada sistem, maka shell interpreter akan menampilkan keluaran seperti
berikut ini.
72
Gambar 3.8. Kompilasi Classic Ladder yang Berhasil
Setelah proses kompilasi, pengguna dapat melakukan instalasi dengan
perintah:
sudo make install
Berikut cuplikan eksekusi dari perintah instalasi tersebut.
Gambar 3.9. Eksekusi Perintah Instalasi Classic Ladder
Proses instalasi Classic Ladder selesai dengan keluaran dari shell interpreter
seperti berikut ini.
Gambar 3.10. Instalasi Classic Ladder yang Berhasil
Untuk menjalankan Classic Ladder, pengguna dapat mengeksekusi perintah
73
berikut pada shell interpreter.
classicladder
Jika pengguna ingin membuat shortcut/pintasan pada desktop, dua perintah yang
diperlukan untuk dieksekusi pada shell interpreter adalah sebagai berikut.
cd
ln /usr/bin/classicladder Desktop/
Dengan demikian shortcut Classic Ladder akan tersedia pada desktop
pengguna. Untuk menjalankannya, pengguna hanya perlu melakukan klik dua
kali atau klik kanan - run. Ketika dieksekusi, Classic Ladder akan menampilkan
GUI sebagai berikut.
Gambar 3.11. GUI Classic Ladder Versi Lama (0.7.124) untuk Linux
Gambar 3.12. GUI Classic Ladder Versi Terbaru (0.9.014) untuk Linux
Catatan:
74
- Direktori_classicladder adalah folder hasil extract dari file “zip” atau “tar.gz”.
Misalkan /home/nama_pengguna/Downloads/ (merujuk pada bagian
pengunduhan)
- Kedua perintah di atas yang diawali dengan sudo apt-get memberikan
pemenuhan kebutuhan untuk melakukan kompilasi kode sumber Classic Ladder.
Kompilasi menjadi syarat untuk dapat memasang Classic Ladder pada sistem
linux.
- Semua perintah dijalankan melalui shell interpreter, seperti gnome-terminal dan
terminal-emulator.
- Jika dimintai password saat menjalankan perintah-perintah di atas, pengguna
dapat menuliskannya secara langsung (biasanya teks password yang dituliskan
tidak terlihat) dan menekan tombol ENTER.
2. External Directory Based
Metode ini hampir sama dengan metode yang dipakai untuk sistem
operasi windows. Pada hakekatnya, metode ini membutuhkan sebuah folder atau
direktori di luar sistem linux sebagai tempat program Classic Ladder. Hal ini
bukan berarti benar-benar di luar sistem, akan tetapi folder atau direktori tersebut
tidak berposisi di dalam direktori yang dimiiki oleh root atau superuser atau
pengguna dengan level tertinggi di sistem operasi linux.
Namun secara praktis folder atau direktori khusus tersebut penulis
tempatkan di bawah direktori home pengguna (“$HOME” atau
“/home/nama_pengguna”). Sebagai contoh, penulis membuat sebuah direktori
dengan alamat “/home/aseptilena/Downloads/linux/baru/classicladder” untuk
Classic Ladder versi baru (0.9.0014) dan
75
“/home/aseptilena/Downloads/linux/lama/classicladder” untuk Classic Ladder
versi lama (0.7.124). Masing-masing folder berisi file-file hasil extract dari file
arsip (format: .tar.gz atau .zip) Classic Ladder untuk masing-masing versi.
Gambar 3.13. Direktori/FolderMasing-masing Versi Classic Ladder
Berdasarkan obervasi penulis, terdapat pustaka atau library yang
dibutuhkan oleh sistem linux untuk dapat menjalankan Classic Ladder. Di dalam
dunia linux hal ini disebut sebagai dependensi atau ketergantungan. Classic
Ladder secara umum membutuhkan ketersediaan pustaka/library zlib1-g. Khusus
untuk versi lama yang digunakan (0.7.124), dibutuhkan juga pustaka/library
libgnomeprintui-2.2.
Pada distro linux yang penulis gunakan, zlib1-g dan libgnomeprintui-2.2
terdapat pada repository resminya dalam bentuk paket. Paket-paket tersebut dapat
dipasang pada sistem dengan perintah berikut (dieksekusi dengan menggunakan
shell interpreter).
sudo apt-get -y install zlib1-g
sudo apt-get -y install libgnomeprintui-2.2
Catatan: Jika dimintai password saat mengeksekusi perintah-perintah
tersebut, pengguna perlu menuliskannya(password) dan menekan tombol ENTER.
Dengan terinstalnya paket-paket tersebut, pengguna dapat secara langsung
menjalankan Classic Ladder dari direktori atau folder hasil extract file arsipnya
76
(baik “tar.gz” maupun “zip”).
Gambar 3.14. Folder Hasil Extract FileArsip Classic Ladder
Gambar 3.15. Konten Folder/Direktori Hasil Extract dari FileArsip Classic
Ladder
77
Gambar 3.16. Direktori/Folder Classic Ladder untuk Linux dengan File
Executable classicladder
Ketika file executable classicladder yang ditandai pada gambar di atas
dieksekusi/dijalankan, Classic Ladder akan memunculkan tampilan sebagai
berikut.
Gambar 3.17. Tampilan Utama Classic Ladder Versi Lama (0.7.124) untuk
Linux
78
Gambar 3.18. Tampilan Utama Classic Ladder Versi Terbaru (0.9.014) untuk
Linux
3.2.2.2 Bagian Windows
Agar dapat dijalankan, Classic Ladder untuk windows harus dilengkapi
terlebih dahulu. Kelengkapan ini termasuk pada lingkungan GTK yang terdapat
pada GTK runtime. Adapun akan lebih baik jika dilakukan update terhadap
pustaka zlib1 yang terdapat pada GTK runtime. Berikut ini beberapa langkah
yang dapat dilakukan untuk melengkapinya.
1. Meng-extract file “zip” bernama classicladder-win-0.9.014(gtk2.16.6).zip
(untuk versi terbaru saat tulisan ini dibuat) atau classicladder-win-0.7.123+.zip
(untuk versi lama yang dipakai pada dokumentasi LinuxCNC). Jika pengguna
menginginkan untuk meng-extract kedua file tersebut, maka direkomendasikan
untuk menempatkan keduanya pada tempat yang terpisah atau folder yang
berlainan. Sebagai contoh penulis membuat dua buah folder bernama “baru” dan
“lama”. Hal ini dilakukan agar kedua versi tidak berbenturan dan mempermudah
pekerjaan kedua versi tersebut.
79
Gambar 3.19. Folder Terpisah antar Versi Classic Ladder untuk Windows
Gambar 3.20. Folder Hasil Extract dari File “zip” Classic Ladder Versi Terbaru
(0.9.014) untuk Windows
80
Gambar 3.21. Folder Hasil Extract dari File “zip” Classic Ladder Versi Lama
(0.7.123+)
Gambar 3.22. Isi dari Folder Hasil Extract File “zip” Classic Ladder
2. Meng-extract file “zip” bernama
gtk_dll_files_to_extract_in_classicladder_win32_directory.zip
(direkomendasikan untuk memilih opsi extract here).
Gambar 3.23. Hasil Extract dari File “zip” pustaka dari GTK Runtime
81
3. Meng-extract file “zip” bernama zlib1_dll_update_v1_2_7_0.zip sehingga
pengguna mendapatkan sebuah file bernama zlib1.dll.
Gambar 3.24. Hasil Extract File “zip” Update untuk Pustaka zlib1
4. Meng-copy semua file hasil ektraksi(tidak termasuk folder-nya) ke folder
yang berisi software classicladder, sehingga hasilnya akan seperti di bawah ini.
Gambar 3.25. Isi Folder Classic Ladder dengan Pustaka GTK runtime dan
Update Pustaka zlib1
Normalnya ketika lingkungan GTK pengguna telah diatur (pustaka GTK
runtime atau instalasi GTK runtime), pengguna dapat menjalankan program
Classic Ladder. Ketika memulainya pengguna akan melihat:
82
Gambar 3.26. Memulai Classic Ladder
Atau seperti ini:
Gambar 3.27. Tampilan Awal Classic Ladder Versi Terbaru (0.9.014) untuk
Windows
Adapun untuk Classic Ladder versi lama (0.7.123+) yang digunakan,
tampilan awalnya akan seperti di bawah ini.
83
Gambar 3.28. Tampilan Awal Classic Ladder Versi Lama (0.7.123+) untuk
Windows
3.3 Pengujian (Penulisan dan Simulasi Program Ladder Diagram)
Pada tahap ini, dilakukan penulisan program PLC dengan bahasa ladder
pada software ClassicLadder. Setelah penulisan program tersebut, dilakukan
simulasi terhadap program yang ditulis. Untuk melakukan hal tersebut,
diperlukan beberapa langkah sebagai berikut.
Sumber: http://www.linuxcnc.org/docs/2.4/html/ladder_classic_ladder.html
Sumber: http://linuxcnc.org/docs/html/ladder/classic_ladder.html
3.3.1 Menambahkan Ladder Logic
Setelah membuka GUI Classic Ladder, pengguna akan melihat Tampilan
Bagian(Section Display) dan Jendela Manajer Bagian(Section Manager Window)
kosong. Pada Jendela Tampilan Bagian(Section Display Window) dapat dibuka
Editor. Pada jendela Editor, jika pengguna memilih Modify, maka jendela
Properties akan muncul dan Tampilan Bagian(Section Display) menunjukkan
grid. Grid adalah salah satu anak tangga(rung). Anak tangga dapat berisi cabang.
Sebuah tangga(ladder) sederhana memiliki satu input, garis konektor dan satu
output.
84
Gambar 3.29. Section Display dengan Grid
Untuk memasukkan input N.O., pengguna dapat mengkliknya dalam
Editor Window.
Gambar 3.30. Jendela Editor dengan Obyek Kontak Normal Terbuka Terpilih
Untuk menempatkan input N.O. ke dalam tangga(ladder), pengguna dapat
mengklik pada grid kiri atas.
85
Gambar 3.31. Section Display dengan Input
Dengan mengulangi langkah di atas, pengguna dapat menambahkan
Output N.O. ke grid kanan atas dan menggunakan Horizontal Connection untuk
menghubungkan keduanya(input dan output). Seharusnya hasilnya akan terlihat
seperti berikut ini. Jika tidak, pengguna dapat menggunakan Eraser untuk
menghapus bagian yang tidak diinginkan.
86
Gambar 3.32. Section Display dengan Rung
Jika penguna mengklik pada tombol OK di jendela Editor, Section
Display pengguna akan terlihat seperti ini.
Gambar 3.33. Tampilan Bagian(Section Display) yang Selesai
87
3.3.2 Melakukan Simulasi terhadap Program Ladder
Misalkan terdapat sebuah rangkaian ladder yang terdiri dari satu
input(N.O.) dan satu output(N.O.). Berikut gambar dari contoh ini.
Gambar 3.34. Section Display dengan Obyek Ladder Input dan Output
Untuk dapat memberlakukan simulasi terhadap satu rung/anak tangga
ladder tersebut, pengguna harus mengalihkan mode edit ke mode idle atau
dengan kata lain dari mode saat Editor aktif ke mode saat Editor tidak aktif.
Caranya adalah dengan melakukan klik terhadap tombol “Ok” yang terdapat pada
jendela Editor.
88
Gambar 3.35. Jendela Editor dengan Tombol “Ok” yang Hendak Ditekan
Setelah pengguna melakukan klik terhadap tombol “Ok” tersebut, jendela
Section Display akan menjadi seperti berikut ini. Adapun untuk
menyalakan/mengaktifkan simulasi, pengguna harus melakukan klik terhadap
tombol “Run” yang terdapat di bagian bawah dari jendela Section Display,
sehingga tombol tersebut akan berubah menjadi tombol “Stop”.
89
Gambar 3.36. Section Display dengan Simulasi ON dan Editor OFF
Dapat dilihat bahwa pada Section Display tersebut belum terjadi
perubahan, walaupun simulasi sudah aktif. Hal ini dikarenakan input %I0 belum
diaktifkan, dinyalakan atau diberi nilai 1. Untuk melakukannya, pengguna perlu
melakukan klik pada check box %I0.
Gambar 3.37. Pemantau Variabel Boolean dengan %I0 ON
Dengan demikian input %I0 diaktifkan. Karena %I0 aktif, maka output
%Q0 aktif atau bernilai 1. Jika dilihat melalui Section Display, rangkaian ladder
tersebut akan berubah warna menjadi ungu seperti yang ditunjukkan oleh gambar
berikut.
90
Gambar 3.38. Section Display dengan Input dan Output ON
Sebagai keterangan tambahan, untuk mengembalikan rangkaian tersebut
menjadi seperti kondisi awalnya (tidak aktif dan berwarna hitam), terdapat
langkah-langkah yang perlu dilakukan. Yang pertama adalah melakukan klik
kembali terhadap check box %I0. Kemudian, yang kedua adalah melakukan klik
terhadap tombol “Stop”.
Dalam penjelasan di atas, penulis menggunakan Classic Ladder versi lama
(0.7.124). Adapun untuk versi terbarunya (0.9.014), perbedaan simulasinya
terletak pada jendela Section Display. Untuk mengaktifkan simulasi, pengguna
dapat melakukan klik pada tombol yang bergambar seperti gerigi mesin (nama:
tombol Run Logic), sedangkan untuk menonaktifkannya pengguna dapat
melakukan klik pada tombol yang bergambar tanda stop. Kedua tombol tersebut
berada pada posisi yang sama di toolbar Section Display. Pada gambar berikut
dapat dilihat tampilan toolbar Classic Ladder versi terbaru tersebut.
91
Gambar 3.39. Toolbar Classic Ladder Versi Terbaru dengan Simulasi OFF
Gambar 3.40. Toolbar Classic Ladder Versi Terbaru dengan Simulasi ON
Prosedur yang sama dapat dilakukan untuk rangkaian dengan bentuk yang
lain. Adapun perbedaan yang cukup signifikan adalah pada pengembalian kondisi
input. Mungkin pengembalian kondisi tersebut dapat menjadi lebih merepotkan
atau memiliki kuantitas yang lebih.
3.1.1 Menyimpan File Proyek Classic Ladder
Gambar 3.41. Tombol-tombol Menu Utama pada Classic Ladder Versi Lama
(0.7.124/0.7.123+)
Menyimpan proyek Classic Ladder dapat dikatakan cukup mudah.
Pengguna cukup melakukan klik terhadap salah satu dari kedua tombol tersebut
(Save dan Save As). “Save” berfungsi untuk menyimpan proyek dengan file baru
jika belum pernah disimpan dan menyimpan proyek dengan file yang sebelumnya
menjadi tempat penyimpanan proyek. Adapun “Save As” berfungsi secara khusus
meminta pengguna untuk menentukan nama file yang akan dipakai. Ekstensi
92
format file proyek Classic Ladder .clp(versi lama) atau .clprj(versi terbaru) akan
ditambahkan secara
otomatis.(http://www.linuxcnc.org/docs/2.4/html/ladder_ladder_examples.html &
http://linuxcnc.org/docs/html/ladder/classic_ladder.html)
Pada versi terbaru Classic Ladder, terdapat sedikit perbedaan mengenai
cara menyimpan proyeknya. Berikut gambar dari Classic Ladder versi terbaru.
Gambar 3.42. Toolbar pada Section Display (Classic Ladder Versi 0.9.014)
Tombol yang ditandai di atas adalah “Save”, sedangkan “Save As” dapat
dilakukan dengan melakukan klik pada menu File - Save As. Dengan melakukan
langkah di atas, pengguna akan mendapatkan sebuah jendela baru yang
menentukan tempat penyimpanan file proyek Classic Ladder. Berikut
tampilannya. Pengguna juga dapat melakukan tindakan yang sama dengan “Save”
menggunakan tombol Ctrl+S pada keyboard.
Gambar 3.43. Dialog Save As
93
Gambar 3.44. Jendela Penyimpanan Proyek
Proses penyimpanan dapat diselesaikan dengan mengklik tombol “Save”
pada jendela tersebut.
3.4 Analisis Hasil Pengujian
Analisis yang dilakukan pada hasil pengujian meliputi kesesuaian
program yang disimulasikan pada software ClassicLadder dengan teori tentang
program ladder dasar.
3.5 Pembuatan Laporan
Pada tahap ini dibuat laporan lengkap tentang pengujian software
ClassicLadder yang disesuaikan dengan format tugas akhir yang ada.
94
BAB IV
PEMBAHASAN
4.1 Program Input-Output Dasar
Berikut program ladder input-output dasar yang disimulasikan pada
Classic Ladder.
Gambar 4.1. Kondisi Awal Program Input-Output Dasar
Pada kondisi awal, terlihat bahwa rangkaian tidak aktif. Kontak %I0
bernilai 0 atau tidak aktif, sehingga coil %Q0 bernilai 0 atau tidak aktif.
Gambar 4.2. Program Input-Output Dasar dengan %I0 yang Aktif
Gambar di atas menunjukkan bahwa ketika kontak %I0 diaktifkan atau
bernilai 1, coil %Q0 akan aktif atau bernilai 1. Dengan demikian rangkaian
tersebut menjadi aktif.
4.2 Program Latching
Berikut program ladder latching yang disimulasikan pada Classic Ladder.
Gambar 4.3. Kondisi Awal Program Latching
Pada kondisi awal, terlihat bahwa rangkaian tidak aktif. Tombol START
juga tidak aktif atau bernilai 0.
95
Gambar 4.4. Program Latching dengan Tombol START yang Aktif
Gambar di atas menunjukkan bahwa ketika tombol START aktif atau
bernilai 1, coil OUT akan aktif. Selain itu kontak OUT pengunci juga aktif atau
bernilai 1.
Pada program ini penulis menggunakan nama simbol berikut untuk
menggantikan nama variabel alamat kontak dan coil yang digunakan.
Gambar 4.5. Nama-nama Simbol yang Digunakan
Adapun saat tombol START dinonaktifkan kembali atau bernilai 0,
rangkaian akan tetap aktif. Hal ini dikarenakan kontak OUT pengunci tetap aktif
dan menjaga keaktifan coil OUT. Gambar berikut menunjukkan hal ini.
Gambar 4.6. Program Latching dengan Tombol START Inaktif atau Bernilai 0
Pada saat tombol STOP diaktifkan atau bernilai 1, rangkaian akan
nonaktif. Hal ini terjadi karena tombol STOP merupakan kontak normally close.
Gambar berikut menunjukkan hal ini.
96
Gambar 4.7. Program Latching dengan Tombol STOPAktif atau Bernilai 1
Pada gambar berikut, tombol STOP dikembalikan kondisinya menjadi
bernilai 1. Tidak terdapat perubahan pada rangkaian.
Gambar 4.8. Program Latching dengan Tombol STOP Inaktif atau Bernilai 0
Catatan: Tombol START dan tombol STOP dibuat untuk merepresentasikan
pushbutton START dan STOP.
4.3 Program SET - RESET
Berikut contoh simulasi dari program ladder dengan coil khusus, yaitu
SET dan RESET.
Gambar 4.9. Kondisi Awal Program SET-RESET
Pada kondisi awal, terlihat bahwa semua kontak tidak aktif dan semua coil
juga aktif. Gambar tersebut pun menunjukkan rangakaian yang tidak aktif.
Gambar 4.10. Kondisi Variabel Setelah %I0 Diaktifkan
97
Selanjutnya dilakukan pengaktifan atau pengubahan nilai ke 1 pada
kontak %I0. Hal ini menyebabkan coil SET %B0 aktif. Kondisi ini dapat dilihat
pada gambar berikut.
Gambar 4.11. Program SET-RESET dengan %I0 Aktif
Dengan aktifnya coil SET %B0, memori internal %B0 akan bernilai 1.
Nilai ini akan tetap, walaupun kontak %I0 dinonaktifkan. Hal ini ditunjukkan
oleh gambar berikut.
Gambar 4.12. Kondisi Variabel Setelah %I0 Dinoaktifkan
Setelah itu, dilakukan pengaktifan kontak %I1 yang tersambung dengan
coil RESET %B0. Dengan pengaktifan RESET tersebut, memori internal %B0
akan bernilai 0 kembali. Nilai 0 ini akan tetap, walaupun kontak %I1
dinonaktifkan kembali.
Gambar berikut menunjukkan status dari variabel %B0 saat kontak %I1
diaktifkan atau bernilai 1.
98
Gambar 4.13. Kondisi Variabel Setelah %I1 Diaktifkan
Sementara gambar berikut menunjukkan kondisi pengaktfan kontak
I=%I1 yang menyebabkan coil RESET %B0 aktif.
Gambar 4.14. Program SET-RESET dengan %I1 Aktif
Catatan: Kontak %I0 dan %I1 pada program tersebut biasa dianggap sebagai
pushbutton.
4.4 Program Gerbang Logika Dasar
4.4.1 AND
Program gerbang logika AND dibuat secara sederhana dengan melibatkan
dua buah kontak normally open dan sebuah coil. Kontak yang terlibat adalah %I0
dan %I1, sedangkan coil yang terlibat adalah %Q0. Gambar berikut
memperlihatkan kondisi awal dari rangkaian program ladder untuk gerbang
logika AND pada Classic Ladder.
Gambar 4.15. Kondisi Awal Program Ladder AND
Kondisi awal tersebut memperlihatkan %I0 dan %I1 yang tidak aktif.
99
Output dari rangkaian tersebut bernilai 0 atau salah.
Ketika hanya %I0 yang diaktifkan, output dari rangkaian bernilai 0 atau
salah. Hal ini dapat dilihat pada gambar berikut.
Gambar 4.16. Program Ladder AND dengan Input I0 Aktif
Saat %I1 saja yang diaktifkan, output dari rangkaian juga bernilai 0 atau
salah. Hal ini dapat terlihat pada gambar berikut.
Gambar 4.17. Program Ladder AND dengan Input I1 Aktif
Saat kedua input baik %I0 maupun %I1 diaktifkan, output rangkaian
bernilai 1 atau benar. Hal ini ditunjukkan oleh gambar berikut dimana output
%Q0 aktif.
Gambar 4.18. Program Ladder AND dengan Kedua InputAktif dan Output
Aktif
Oleh karena itu, dapat dibuat sebuah tabel kebenaran berikut yang
mewakili rangkaian tersebut.
Tabel 4.1. Tabel Kebenaran Program AND
%I0 %I1 %Q00 0 01 0 00 1 01 1 1
Tabel tersebut sesuai dengan tabel kebenaran dari gerbang logika AND.
100
4.4.2 OR
Program gerbang logika OR dibuat secara sederhana dengan melibatkan
dua buah kontak normally open dan sebuah coil. Kontak yang terlibat adalah %I0
dan %I1, sedangkan coil yang terlibat adalah %Q0. Gambar berikut
memperlihatkan kondisi awal dari rangkaian program ladder untuk gerbang
logika OR pada Classic Ladder.
Gambar 4.19. Kondisi Awal Program Ladder OR
Pada kondisi awal tersebut kontak %I0 dan kontak %I1 tidak aktif atau
bernilai 0. Output dari rangkaian juga bernilai 0. Hal ini ditunjukkan oleh tidak
aktifnya coil %Q0.
Saat kontak %I0 aktif, output rangkaian akan bernilai 1. Hal ini
ditunjukkan oleh aktifnya coil %Q0 sebagai berikut.
Gambar 4.20. Program Ladder OR dengan Input %I0 Aktif
Ketika kontak %I1 aktif, output rangkaian akan bernilai 1. Hal ini
ditunjukkan oleh aktifnya coil %Q0 sebagai berikut.
Gambar 4.21. Program Ladder OR dengan Input %I1 Aktif
101
Saat kedua kontak aktif (%I0 dan %I1), output rangkaian akan bernilai 1.
Hal ini ditunjukkan oleh aktifnya coil %Q0 sebagai berikut.
Gambar 4.22. Program Ladder OR dengan Kedua InputAktif
Dengan demikian dapat dibuat sebuah tabel kebenaran sebagai berikut.
Tabel 4.2. Tabel Kebenaran Program Ladder OR
%I0 %I1 %Q00 0 01 0 10 1 11 1 1
Tabel tersebut menunjukkan bahwa program ladder tersebut sesuai
dengan logika gerbang OR.
4.4.3 NOT
Program gerbang logika NOT melibatkan satu input dan satu output. Input
yang digunakan berupa kontak normally close yang beralamat %I0 sedangkan
output yang digunakan berupa coil yang beralamat %Q0. Gambar berikut
menunjukkan kondisi awal dari rangkaian program.
Gambar 4.23. Program NOT dengan Input Bernilai 0
Pada gambar tersebut, kontak %I0 bernilai 0. Namun dikarenakan kontak
tersebut normally close, jadi output akan aktif. Dapat terlihat bahwa coil %Q0
aktif.
Sementara gambar berikut menunjukkan kondisi saat kontak %I0 diberi
102
nilai 1. Output rangkaian akan bernilai 0 atau tidak aktif. Hal ini ditunjukkan oleh
tidak aktifnya coil %Q0.
Gambar 4.24. Program NOT dengan Input Bernilai 1
Oleh karena itu dapat dibuat sebuah tabel kebenaran dari program ladder
tersebut sebagai berikut.
Tabel 4.3. Tabel Kebenaran Program Ladder NOT
%I0 %Q00 11 0
Tabel tersebut menunjukkan bahwa program ladder tersebut relevan
dengan logika dari gerbang NOT.
4.4.4 AND NOT
Program gerbang logika AND NOT atau NOT AND melibatkan dua input
dan satu output. Input yang digunakan adalah kontak normally close yang
beralamat %I0 dan %I1, sedangkan output yang digunakan adalah coil beralamat
%Q0. Gambar-gambar berikut menunjukkan simulasi program tersebut yang
dilakukan pada Classic Ladder.
Gambar 4.25. Kondisi Awal Program NOT AND
Pada kondisi awal di mana kedua input(kontak %I0 dan %I1) memiliki
nilai 0, output rangkaian bernilai 1 atau aktif. Hal ini ditunjukkan oleh aktifnya
coil %Q0.
103
Saat kontak %I0 diberi nilai 1, output rangkaian akan bernilai 1 atau aktif.
Hal ini ditunjukkan oleh aktifnya coil %Q0.
Gambar 4.26. Program NOT AND dengan Input %I0 Bernilai 1
Saat kontak %I1 diberi nilai 1, output rangkaian akan bernilai 1 atau aktif.
Hal ini ditunjukkan oleh coil %Q0 yang aktif pada gambar berikut.
Gambar 4.27. Program NOT AND dengan Input %I1 Bernilai 1
Adapun saat kedua kontak bernilai 1, output rangkaian akan bernilai 0
atau tidak aktif. Hal ini ditunjukkan oleh coil %Q0 yang aktif pada gambar
berikut.
Gambar 4.28. Program NOT AND dengan Kedua Input(%I0 dan %I1) Bernilai 1
Oleh karena itu dapat dibuat sebuah tabel kebenaran dari program tersebut
sebagai berikut.
Tabel 4.4. Tabel Kebenaran Program Ladder NOT AND
%I0 %I1 %Q00 0 11 0 10 1 11 1 0
104
Tabel tersebut menunjukkan bahwa program tersebut relevan terhadap
logika gerbang NOT AND.
4.4.5 OR NOT
Program gerbang logika OR NOT atau NOT OR melibatkan dua input dan
satu output yang disusun seri. Input yang digunakan adalah kontak normally close
beralamat %I0 dan %I1. Output yang digunakan adalah coil beralamat %Q0.
Berikut gambar-gambar yang menunjukkan simulasi dari program ini.
Gambar 4.29. Kondisi Awal Program NOT OR
Pada kondisi awal di mana semua input (kontak %I0 dan %I1) bernilai 0,
output dari rangkaian bernilai 1. Hal ini terjadi dikarenakan kontak jenis normally
close. Aktifnya output ditandai dengan aktifnya coil %Q0.
Gambar 4.30. Program NOT OR dengan Input %I0 Bernilai 1
Pada gambar tersebut terlihat bahwa saat kontak %I0 bernilai 1, output
rangkaian akan bernilai 0. Hal ini ditunjukkan oleh tidak aktifnya coil%Q0.
Gambar 4.31. Program NOT OR dengan Input %I1 Bernilai 1
Pada gambar tersebut dapat dilihat bahwa saat kontak %I1 diberi nilai 1,
output rangkaian akan bernilai 0 atau tidak aktif. Hal ini ditunjukkan oleh tidak
aktifnya coil %Q0.
Gambar 4.32. Program NOT OR dengan Kedua Input (%I0 an %I1) Bernilai 0
105
Pada gambar tersebut terlihat bahwa saat kedua kontak (%I0 dan %I1)
bernilai 1, output rangkaian akan bernilai 0 atau tidak aktif. Hal ini ditunjukkan
oleh coil %Q0 yang tidak aktif.
Dengan demikian dapat dibuat sebuah tabel kebenaran dari program
tersebut sebagai berikut.
Tabel 4.5. Tabel Kebenaran Program Ladder NOT OR
%I0 %I1 %Q00 0 11 0 00 1 01 1 0
Tabel tersebut menunjukkan bahwa program tersebut relevan dengan
logika gerbang NOT OR.
4.4.6 EXOR
Program gerbang logika EXOR melibatkan 4 buah kontak sebagai input
dan 1 buah coil sebagai output. 2 buah kontak dihubungkan secara seri yang
terdiri dari 1 kontak normally close beralamat %I0 dan 1 kontak normally open
beralamat %I1. Sementara 2 buah kontak lainnya memiliki alamat yang sama
tetapi dengan jenis yang berkebalikan. 2 kontak pertama dan dua kontak ke-2
dihubungkan secara paralel ke coil output.
Gambar 4.33. Kondisi Awal Program Ladder EXOR
Pada kondisi awal tersebut, semua kontak input bernilai 1. Hal ini berarti
bahwa kontak-kontak tersebut masih berada pada kondisi normalnya. Adapun
106
terlihat bahwa output dari rangkaian tersebut bernilai 0 atau tidak aktif.
Gambar 4.34. Program Ladder EXOR dengan Input %I0 Bernilai 1
Pada gambar di atas terlihat bahwa output rangkaian bernilai 1 atau aktif.
Hal ini dikarenakan terdapat input dari kontak %I0 pada bagian bawah yang aktif.
Gambar 4.35. Program Ladder EXOR dengan Input %I1 Bernilai 1
Pada gambar di atas dapat dilihat bahwa output rangkaian bernilai 1 atau
aktif. Hal ini dikarenakan kontak %I1 yang bernilai 1 dan mengaktifkan input.
Gambar 4.36. Program Ladder EXOR dengan Input %I0 dan %I1 Bernilai 1
Pada gambar di atas terlihat bahwa output rangkaian bernilai 0. Hal ini
dikarenakan kedua kontak yang sama-sama bernilai 1 dan mengubah
kontak-kontak Normally Close menjadi terbuka, sehingga tidak terdapat input.
Dengan demikian dapat dibuat sebuah tabel kebenaran dari program
ladder tersebut sebagai berikut.
107
Tabel 4.6. Tabel Kebenaran Program Ladder EXOR
%I0 %I1 %Q00 0 01 0 10 1 11 1 0
Tabel tersebut menunjukkan bahwa program ladder tersebut relevan
dengan logika gerbang EXOR.
4.4.7 EXNOR
Program gerbang logika EXNOR melibatkan 4 buah kontak dan sebuah
coil. 2 kontak Normally Open dihubungkan seri pada satu baris dan 2 kontak
Normally Closed dihubungkan pada baris lainnya. Kedua baris tersebut
dihubungkan secara paralel ke output.
Gambar 4.37. Kondisi Awal Program Ladder EXNOR
Kondisi awal tersebut memperlihatkan output yang aktif pada saat semua
kontak bernilai 0. Kedua kontak normally close adalah yang berperan dalam hal
ini.
Pada gambar berikut terdapat sebuah alamat yang diubah nilainya menjadi
1. Alamat tersebut adalah %I0.
Gambar 4.38. Program EXNOR dengan Input %I0 Bernilai 1
108
Seperti yang terlihat pada gambar di atas, output rangkaian tersebut tidak
dapat aktif pada saat alamat %I0 diberi nilai 1. Hal ini disebabkan oleh kontak
Normally Close %I0 yang terbuka dan kontak Normally Open %I1 yang tertutup.
Gambar 4.39. Program XNOR dengan Input %I1 Bernilai 1
Saat alamat %I1 diberi nilai 1, rangkaian memiliki output bernilai 0 atau
tidak aktif. Hal ini disebabkan oleh kontak Normally Open %I0 yang terbuka dan
kontak Normally Close %I1 yang bernilai 1. Gambar di atas menunjukkan
fenomena tersebut.
Gambar 4.40. Program XNOR dengan Kedua Input (%I0 dan %I1) Bernilai 1
Pada gambar di atas dapat terlihat bahwa output rangkaian bernilai 1 atau
aktif, saat kedua alamat (%I0 dan %I1) bernilai 1. Hal ini disebabkan oleh
tertutupnya kedua kontak Normally Open.
Dengan demikian dapat dibuat tabel kebenaran berikut untuk program
ladder tersebut.
109
Tabel 4.7. Tabel Kebenaran Program Ladder EXNOR%I0 %I1 %Q00 0 11 0 00 1 01 1 1
Tabel tersebut menunjukkan bahwa program ladder tersebut relevan
dengan logika gerbang EXNOR.
4.5 Program Timer
Program timer ini mencakup semua jenis/mode timer yang terdapat pada
Classic Ladder. Timer pada Classic Ladder terdiri dari TON(Timer On Delay),
TOF(Timer Off Delay), dan TP(Timer Pulse). Adapun timer yang digunakan
adalah timer versi baru, yaitu timer IEC.
Timer-timer tersebut ditempatkan dalam satu rung yang sama.
Masing-masing timer diatur untuk memiliki preset 5 detik. Setiap timer memiliki
kontak input dan coil/kumparan output sendiri yang berbeda. Berikut adalah
gambar kondisi awal dari timer-timer tersebut.
Gambar 4.41. Kondisi awal dari Timer-timer yang Digunakan
Di bawah ini akan dibahas penggunaan setiap jenis timer pada Classic
Ladder. Simulasi juga dilakukan pada timer-timer ini.
110
4.5.1 TON
TON(Timer On Delay) merupakan timer yang outputnya tertunda selama
waktu tertentu. Pada gambar-gambar berikut terdapat simulasi dari program
ladder yang melibatkan TON.
Gambar 4.42. Kondisi Awal dari TON
Ketika kontak %I0 diaktifkan, TON akan memulai menghitung waktu dari
angka 0. Gambar berikut menunjukkan waktu TON yang berjalan.
Gambar 4.43. TON dengan Waktu yang Berjalan
Saat waktu dari TON tersebut mencapai nilai preset-nya, output dari TON
akan aktif. Dengan demikian, coil %Q0 akan aktif. Hal ini ditunjukkan oleh
gambar berikut.
Gambar 4.44. TON dengan Waktu Mencapai Preset
Ketika kontak %I0 dinonaktifkan, maka input TON juga menjadi tidak
aktif dan TON mengalami reset. Waktu aktual TON kembali kembali ke 0 dan
output TON menjadi tidak aktif, sehingga coil Q0 juga menjadi tidak aktif. Hal
ini menunjukkan bahwa input TON tidak termasuk dalam kategori one-shot.
Berikut gambar yang menunjukkan hal tersebut.
111
Gambar 4.45. TON yang Kembali ke Kondisi Awal, Setelah Mengalami Reset
Dengan demikian dapat dibuat sebuah timing diagram sebagai berikut
untuk program timer on delay tersebut.
Gambar 4.46. Timing Diagram Program TON
Timing diagram tersebut menunjukkan bahwa TON tersebut sesuai dengan teori
tentang timer on delay.
4.5.2 TOF
TOF(Timer Off Delay) merupakan timer yang menghitung waktu
penundaan penonaktifan dari sebuah output, setelah sebelumnya aktif.
Gambar-gambar berikut menunjukkan penggunaan TOF pada Classic Ladder.
Gambar 4.47. Kondisi Awal Program Ladder TOF
Pada gambar di atas, terlihat kondisi awal dari program yang melibatkan
TOF. Sementara gambar berikut menunjukkan TOF yang diberi input dari kontak
%I1.
112
Gambar 4.48. TOF dengan Input ON dan Output ON
Dapat dilihat pada gambar di atas bahwa saat input TOF aktif, output TOF
akan aktif secara langsung. Pada tahap selanjutnya, input TOF dinonaktifkan.
Berikut gambar yang dapat menunjukkan fenomena yang terjadi pada tahap
selanjutnya.
Gambar 4.49. TOF dengan Input OFF dan Output ON
Gambar di atas menunjukkan bahwa saat input TOF dinonaktifkan, output
TOF tetap aktif. Kemudian waktu akan berjalan mundur dari preset ke 0.
Ketika waktu aktual TOF mencapai angka 0, output TOF akan menjadi
tidak aktif. Hal ini ditunjukkan oleh gambar berikut.
Gambar 4.50. TOF dengan Input OFF dan Output OFF, Setelah Waktu Selesai
Dengan demikian dapat dibuat sebuah timing diagram untuk program
timer off delay tersebut sebagai berikut.
Gambar 4.51. Timing Diagram Program TOF
113
Timing diagram tersebut menunjukkan bahwa TOF tersebut sesuai dengan teori
tentang timer off delay.
4.5.3 TP
TP(Pulse Timer) merupakan timer yang bekerja dengan input yang sejenis
dengan counter, yaitu one shot. Timer ini berfungsi untuk mengaktifkan output
dalam rentang waktu tertentu. Ini berarti bahwa output timer ini akan aktif sejak
pulsa diterima sampai waktu habis. Gambar-gambar berikut menunjukkan
penggunaan timer tersebut.
Gambar 4.52. Kondisi Awal TP
Pada kondisi awal, TP memiliki nilai aktual 0 detik. Namun, saat input
diaktifkan dengan kontak %I2 sebagai pemicunya, nilai aktual TP menjadi 5 dan
TP memulai hitung mundur ke angka 0. Pada saat yang sama, output dari TP aktif
dan mengaktifkan coil %Q2. Berikut gambar yang dapat menunjukkan hal
tersebut.
Gambar 4.53. TP dengan InputAktif, Waktu Hitung Mundur, dan OutputAktif
Saat waktu mencapai angka 0 detik, output TP akan dinonaktifkan.
Gambar berikut menunjukkannya.
Gambar 4.54. TP dengan InputAktif tetapi Output Tidak Aktif (Pasca Time Out)
Sementara gambar berikut menunjukkan bahwa input yang dinonaktifkan
114
kembali, tidak berdampak apapun terhadap kondisi TP. Hal ini akan sama saja
walaupun input dinonaktifkan kembali saat waktu hitung mundur belum
mencapai nilai 0.
Gambar 4.55. TP dengan Input Tidak Aktif dan Output Tidak Aktif
Dengan demikian dapat dibuat sebuah timing diagram untuk program
timer pulse tersebut sebagai berikut.
Gambar 4.56. Timing Diagram Program TP
Timing diagram tersebut menunjukkan bahwa TP tersebut sesuai dengan teori
tentang timer pulse.
4.6 Program Counter
Program counter ini mencakup semua input dan output dari sebuah
counter pada Classic Ladder. Input yang dimaksudkan adalah R(Mengatur
Ulang/Reset), P(Preset), U(Hitung Maju/Up Count), D(Hitung Mundur/Down
Count). Output yang dimaksudkan adalah E(Underflow), D(Selesai/Done), dan
F(Overflow).
Counter yang penulis gunakan memiliki angka preset 2. Masing-masing
input sudah tersambung dengan kontak sebagai pemicunya, sedangkan
115
masing-masing output tersambung dengan coil/kumparan. Adapun gambar
berikut merupakan kondisi awal dari counter dalam software Classic Ladder
yang akan dibahas fungsi-fungsi input dan output-nya.
Gambar 4.57. Rangkaian Ladder Program Counter (Kondisi Awal)
4.6.1 PRESET
Preset merupakan nilai patokan dari sebuah counter di mana counter
tersebut menyelesaikan perhitungannya. Dalam artian lain, ketika nilai preset
tercapai, maka output D(Done) yang menandakan counter telah selesai
menghitung akan aktif. Saat input P(Preset) pada sebuah counter diberi masukan
atau diaktifkan, maka nilai aktual counter tersebut akan menjadi nilai preset-nya.
Hal ini terlepas dari nilai yang dimiliki oleh counter tersebut sebelumnya.
Simulasi pada software Classic Ladder berikut menunjukkan hal tersebut.
Gambar 4.58. Counter dengan Input P(Preset) Aktif yang Mengaktifkan Output
D dan Output Q1.
Walaupun setelah itu input pada P(Preset) dinonaktifkan kembali, nilai
aktual dari counter tersebut tetap akan sama dengan preset-nya. Jadi input ini
dapat dikategorikan sebagai input one shot.
116
Gambar 4.59. Counter dengan Input P(Preset) Nonaktif Kembali, Output D dan
Output Q1 Tetap Aktif
4.6.2 RESET
Reset merupakan tindakan atau operasi pengatural ulang dan
pengembalian ke kondisi awal counter. Pada gambar berikut dapat dilihat
simulasi pengaktifan input R(Reset) pada sebuah counter.
Gambar 4.60. Counter dengan Input R(Reset) Aktif
Pada gambar tersebut, terlihat bahwa saat input R(Reset) diaktifkan, nilai
aktual dari counter tersebut secara langsung kembali ke kondisi awalnya atau
nilai 0. Hal ini terlepas dari kondisi aktual nilai counter sebelumnya. Kontak I0
menjadi pemicu input R tersebut. Pada gambar berikut, dapat dilihat penonaktifan
input R setelah diaktifkan.
Gambar 4.61. Counter dengan Input R(Reset) yang Dinonaktifkan Kembali
Gambar tersebut memperlihatkan bahwa input R yang dinonaktifkan
117
kembali pasca pengaktifannya, tidak memberikan efek apapun terhadap kondisi
counter. Jadi dapat dikatakan bahwa input R(Reset) termasuk dalam kategori one
shot.
4.6.3 UP COUNT
Up count merupakan penghitungan normal, yaitu dari 0 ke angka yang
nilainya lebih besar. Sebuah counter dalam Classic Ladder memiliki input U(Up
Count). Input ini berfungsi untuk memberikan pulsa rising edge yang menambah
1 nilai ke nilai aktual counter setiap kali diaktifkan. Gambar berikut merupakan
simulasi dari penggunaan input U(Up Count) pada sebuah counter dalam Classic
Ladder.
Gambar 4.62. Counter dengan Input U(Up Count) Aktif
Pada gambar tersebut dapat dilihat bahwa ketika input U aktif, nilai aktual
dari counter tersebut mengalami kenaikan 1 angka. Langkah simulasi selanjutnya
terdapat pada gambar berikut.
Gambar 4.63. Counter dengan Input U(Up Count) Dinonaktifkan Kembali
Pada gambar tersebut terlihat bahwa setelah input U kembali
dinonaktifkan, tidak terjadi perubahan pada nilai aktual counter. Hal ini berarti
118
bahwa pada input tersebut berlaku one shot. Langkah selanjutnya penulis
mengaktifkan input tersebut untuk kali kedua.
Gambar 4.64. Counter dengan Input U(Up Count) Diaktifkan Kedua kalinya
Gambar tersebut memperlihatkan kondisi output D(Done) yang aktif
karena dipicu oleh aktivasi kedua dari input U. Alasan utama terjadinya hal ini
adalah nilai aktual counter tersebut yang naik ke angka 2. Hal ini berarti bahwa
nilai aktual counter sama dengan nilai preset-nya. Dengan kata lain penghitungan
counter tersebut telah dinyatakan memenuhi syarat selesai.
Adapun pada gambar berikut, terjadi hal yang sama dengan tahap
sebelumnya. Ketika input U dinonaktifkan kembali, kondisi counter tetap.
Gambar 4.65. Counter Pasca Penghitungan Selesai dengan Input U(Up Count)
Namun, ketika input U kembali diaktifkan dengan kontak %I2, output F
kembali tidak aktif.
Gambar 4.66. Kondisi Counter Ketika Input U Diaktifkan Kembali
119
4.6.4 DOWN COUNT
Down count merupakan penghitungan mundur ke nilai 0 dari nilai yang
lebih besar. Hal ini juga dapat dikatakan sebagai falling edge. Gambar-gambar
simulasi berikut menjelaskan tentang penggunaan input D(Down Count) pada
sebuah counter dalam Classic Ladder. Kondisi awal nilai aktual counter yang
penulis gunakan di sini adalah 3, sedangkan nilai preset tetap 2.
Gambar 4.67. Kondisi Awal Sebelum Input D(Down Count) Aktif
Pada tahap selanjutnya, input D(Down Count) diaktifkan. Berikut gambar
dari pengaktifan input D tersebut.
Gambar 4.68. Counter dengan Input D(Down Count) Aktif
Dapat dilihat bahwa ketika input D(Down Count) diaktifkan, nilai aktual
dari counter tersebut berkurang 1 angka menjadi 2. Adapun output D(Done) aktif
karena nilai aktual counter sama dengan nilai preset-nya.
Gambar 4.69. Counter dengan Input D(Down Count) Dinonaktifkan Kembali
120
Dari gambar tersebut dapat terlihat bahwa input D(Down Count) juga
termasuk input jenis one shot. Jika nilai counter diturunkan dengan mengaktifkan
input U kembali menggunakan kontak %I4, maka output D dan coil Q1 kembali
tidak aktif atau bernilai salah.
Gambar 4.70. Kondisi Counter Setelah Input D Diaktifkan Kembali
Dalam penggunaan counter terdapat dua fenomena khusus yang
dinamakan underflow dan overflow. Kedua hal tersebut secara teknis
diberlakukan pada simulasi berikut.
4.6.5 UP COUNT - OVERFLOW
Overflow merupakan kondisi di mana nilai aktual counter beralih/berubah
dari 9999 ke 0 atau dari nilai maksimum ke nilai minimum. Secara sederhana
fenomena ini dapat dikatakan sebagai “lubernya” nilai counter karena nilainya
naik melebihi angka maksimumnya. Gambar berikut menunjukkan kondisi awal
sebelum terjadinya overflow, di mana nilai aktual counter adalah 9999 atau
maksimum.
Gambar 4.71. Counter dengan Nilai Aktual Maksimum
121
Pada tahap selanjutnya dilakukan pengaktifan input U(Up Count) yang
dipicu oleh kontak %I2. Dengan demikian kondisi ladder menjadi sebagai
berikut.
Gambar 4.72. Counter dengan Input U(Up Count) dan Output F(Overflow)
Aktif
Pada gambar tersebut dapat dilihat bahwa input U(Up Count) yang aktif
menyebabkan nilai aktual counter berubah naik ke angka 0 dari 9999. Hal ini
menyebabkan output F(Overflow) pada counter tersebut aktif. Pada tahap
selanjutnya, input U(Up Count) kembali dinonaktifkan.
Gambar 4.73. Counter dengan Input U(Up Count) Dinonaktifkan Kembali dan
Output F(Overflow) Tetap Aktif
Setelah overflow tersebut, input U kembali diaktifkan dengan kontak %I2.
Akibatnya, output E dan coil %Q2 kembali bernilai salah atau tidak aktif.
Gambar 4.74. Counter dengan Input UAktif dan Output F Tidak Aktif
122
4.6.6 DOWN COUNT - UNDERFLOW
Underflow adalah kondisi di mana nilai aktual counter turun dari nilai
minimumnya. Secara teknis nilainya akan beralih dari nilai minimum ke nilai
maksimum atau dari 0 ke 9999. Gambar-gambar berikut menjelaskan tentang
simulasi fenomena underflow pada sebuah counter dalam Classic Ladder.
Gambar 4.75. Counter dengan Input D(Down Count) Aktif dan Output
E(Underflow) Aktif
Gambar tersebut menunjukkan konsidi saat input D(Down Count)
diaktifkan. Kondisi awal dari counter tersebut adalah bernilai aktual 0. Dengan
pengaktifan input D tersebut, nilai aktual counter tersebut beralih dari 0 ke 9999.
Oleh karena itu output E(Underflow) aktif.
Pada tahap selanjutnya, input D(Down Count) kembali dinonaktifkan.
Dapat dilihat pada gambar berikut bahwa kondisi yang output E(Underflow) akan
tetap pada kondisi terakhirnya.
Gambar 4.76. Counter dengan Input D(Down Count) Dinonaktifkan Kembali
dan Output E(Underflow) Tetap
Jika setelah itu input D kembali diaktifkan dengan kontak %I4, maka
output E dan coil %Q0 kembali bernilai salah atau tidak aktif.
123
Gambar 4.77. Counter dengan Input DAktif dan Output E Tidak Aktif
Dengan demikian program counter pada Classic Ladder dapat
digambarkan dengan timing diagram sebagai berikut.
Gambar 4.78. Timing Diagram Program Counter
Timing Diagram tersebut menunjukkan bahwa counter tersebut tidak cukup
relevan dengan teori tentang counter. Hal ini ditunjukkan oleh perbedaan bahwa
counter dalam teori terpisah antara counter count-up dan counter count-down,
sementara counter tersebut menggabungkan keduanya. Selain itu, bit D pada teori
akan terus bernilai 1 saat nilai aktual counter sama dengan preset atau lebih,
sedangkan pada counter tersebut hanya akan bernilai 1 jika nilai aktual counter
sama dengan preset.
124
BAB V
PENUTUP
5.1 Kesimpulan
Classic Ladder merupakan sebuah software pemrograman tangga PLC
yang multiplatform atau dapat berjalan pada lebih dari satu sistem operasi.
Software ini menyertakan fitur simulasi logika tangga/ladder logic yang dapat
membantu memahami pemrograman ladder/tangga. Bahasa tangga sendiri
merupakan bahasa yang terpopuler dan termudah dari pelbagai pemrograman
PLC.
Berdasarkan hasil pengujian, software Classic Ladder ini dapat digunakan
untuk membuat program ladder dasar untuk PLC beserta simulasi logika
tangganya.(penjelasan mengenai program ladder dasar PLC terlampir)
Program-program dasar tersebut meliputi:
1. program input-output dasar,
2. program latching,
3. program set-reset,
4. program gerbang logika dasar,
5. program timer, dan
6. program counter.
Oleh karena itu, software Classic Ladder cukup relevan untuk digunakan
sebagai media pembelajaran dasar ladder programming. Adapun perbedaan yang
cukup signifikan berada pada komponen counter, di mana hanya terdapat sebuah
counter dengan fitur count-down dan count-up serta status bit output-nya.
125
5.2 Saran
1. Karena bersifat open source, software ini masih dapat dikembangkan lebih
lanjut khususnya untuk pembelajaran dasar programming ladder PLC beserta
simulasinya. Mungkin dapat ditambahkan beberapa opsi tampilan nama
addressing atau pengalamatan input-output dan memori dari komponen ladder
yang spesifik pada PLC merek tententu yang populer. Misalnya Omron,
Schneider, Mitsubishi, Siemens, dan Yokogawa.
Penambahan tampilan tersebut dapat menjadikan software ini lebih
fungsional untuk membantu memahami pemrograman PLC pada berbagai merek.
Paling tidak, software ini akan dapat membantu memahami addressing
input-output dan memori dari berbagai merek PLC. Hal ini juga dapat membantu
untuk persiapan kompetisi PLC programming mahasiswa yang setiap tahun
diselenggarakan oleh beberapa universitas di Indonesia, mengingat akan
bervariasinya PLC yang digunakan pada kompetisi-kompetisi tersebut.(daftar dari
beberapa kompetisi PLC programming di Indonesia untuk mahasiswa terlampir)
2. Dalam penulisan program ladder-nya, Classic Ladder memiliki sebuah
kelemahan pada penghapusan obyek. Akurasi dari tool eraser pada jendela Editor
masih belum memadai. Hal ini dibuktikan dari sulitnya menghapus obyek seperti
penghubung obyek dan obyek-obyek dengan ukuran yang cukup kecil. Adapun
bug yang cukup fatal terjadi saat penghapusan obyek coil. Ketika coil dihapus,
software Classic Ladder akan tertutup atau berakhir dengan sendirinya.
Sementara ini, salah satu solusinya adalah dengan menghapus obyek
menggunakan tool obyek tersebut sendiri. Sebagai contoh, penghapusan coil
126
dengan tool obyek coil yang dipilih pada jendela Editor.
3. Pembahasan dari tugas akhir ini terhadap software Classic Ladder masih
sangat sederhana. Hal ini dikarenakan pembahasan yang masih berkenaan dengan
ladder programming dan simulasi logikanya. Menurut penulis, mungkin perlu
dilakukan pembahasan lebih lanjut terkait hardware PLC yang dapat digunakan
dan dihubungkan dengan software ini.
4. Pengembangan dan modifikasi lain dari software Classic Ladder ini masih
memungkinkan.
127
DAFTAR PUSTAKA
Angga, F. 2011. Pemanfaatan PLC Sebagai Peralatan Otomatisasi Industri
Berbasis Ladder Logic Diagram. Departemen Teknik Elektro Fakultas
Teknik Universitas Sumatera Utara : Medan.
Anonymous. 2009. Modul Praktikum PLC Fisika UNDIP. Semarang:Universitas
Diponegoro. Dari
fisika.blog.undip.ac.id/files/2009/11/modul-praktikum-plc.pdf, diakses
tanggal 7 November 2014.
Caniago, E.R. 2008. Sistem Pengontrolan Mesin Case Packer (Mesin Pengisi
Krat) dengan Menggunakan PLC Tipe SIEMENS S7 – 200 ( Aplikasi PT.
Coca-Cola Botlling Indonesia Unit Medan – Sumut). Medan:Universitas
Sumatera Utara.
e-Gizmo_PLC64_28I/O Programmable Logic Controller_Hardware Manual Rev
1 r0_"Common hardware platform for use with Ladder Logic and
ClassicLadder open source PLC ladder programming software."
Endaryoko, H. 2011. Pembuatan Program Pengatur Festo Sorting Station Dan
Analisa Dinamik Pada Modular Automation Production System (MAPS).
Surakarta:Jurusan Teknik Mesin, Fakultas Teknik, Universitas Sebelas
Maret.
http://www.plcs.net/chapters/latch14.htm. Diakses tanggal 15 Novermber 2014.
http://sourceforge.net/p/classicladder/wiki/Home/ (diakses tanggal 25 Oktober
2014)
http://www.linuxcnc.org/docs/2.4/html/ladder_classic_ladder.html(diakses
tanggal 6 Desember 2014)
http://www.linuxcnc.org/docs/2.4/html/ladder_ladder_examples.html(diakses
tanggal 6 Desember 2014)
http://users.teledisnet.be/web/rlo05343/umanual/umanual_for_classicladder.html(
diakses tanggal 6 Desember 2014)
128
http://linuxcnc.org/docs/html/ladder/ladder_intro.html(diakses tanggal 6
Desember 2014)
http://linuxcnc.org/docs/html/ladder/classic_ladder.html(diakses tanggal 6
Desember 2014)
http://leachy.homeip.net/olinuxino/classic_ladder.html(diakses tanggal 6
Desember 2014)
http://gnipsel.com/linuxcnc/ladder/counter.html(diakses tanggal 6 Desember
2014)
http://gnipsel.com/linuxcnc/ladder/basic.html(diakses tanggal 6 Desember 2014)
http://gnipsel.com/linuxcnc/ladder/latch.html(diakses tanggal 6 Desember 2014)
https://sites.google.com/site/classicladder/home (diakses tanggal 25 Oktober
2014)
Hutahaean, J. 2010. Pengendalian Pintu Gerbang Otomatis Berbasis
Programmable Logic Control (PLC). Medan:Universitas Sumatera Utara.
Juwana, M.U. 2006. Sistem Kontrol Proses dan PLC. Kelas-mikrokontrol.com.
Poha, K.R., dan Buko, M. 2013. Rancang Bangun Miniatur Lift Berbasis PLC
(Programmable Logic Controller) Sebagai Modul Praktikum Matakuliah
PLC dan Mekatronika. Gorontalo:Universitas Negeri Gorontalo.
Rubiyanto, Wijaya, S., dan Gunawan, T. 2004. Pemilihan Laci dan Pengambilan
Barang Menggunakan PLC. Jakarta:Universitas Bina Nusantara.
Setiawan, I. 2006. Programmable Logic Controller dan Teknik Perancangan
Sistem Kontrol. Yogyakarta : Andi.
Sonjaya, U. 2011. Rancang Bangun Sistem Kontrol Konveyor Penghitung Barang
Menggunakan PLC (Programmable Logic Controller) Omron Tipe
CPM1A 20 CDR. Jakarta:Fakultas Teknologi Industri, Jurusan Teknik
Mesin, Universitas Gunadarma. Dari
http://openstorage.gunadarma.ac.id/presentations/Skripsi/FTI-20406916%
20JURNAL.pdf, diakses tanggal 7 November 2014.
Sumbodo, W. 2008. Bahan Ajar : Pengendali PLC. Semarang:Jurusan Teknik
Mesin, Fakultas Teknik, Universitas Negeri Semarang.
129
Utomo, R.C. 2013. Pemrograman Ladder Diagram Pada Programmable Logic
Controller (PLC) Terintegrasi Dengan Scada Vijeo Citect Untuk
Simulator Sistem Parkir. Semarang:Fakultas Teknik, Jurusan Teknik
Mesin, Universitas Diponegoro.
Wicaksono, H. 2008. Dasar – Dasar Pemrograman PLC. Surabaya:Universitas
Kristen Petra.
Wicaksono, H. 2008. Timer : Teori dan Aplikasi. Surabaya:Universitas Kristen
Petra.
Wicaksono, H. 2008. Counter : Teori dan Aplikasi. Surabaya:Universitas Kristen
Petra.
Widjiantoro, B.L., Ya’umar, dan Iskandarianto, F.A. 2012. Modul Ajar : Sistem
Pengendalian Otomatis. Surabaya:Jurusan Teknik Fisika, Fakultas
Teknologi Industri, Institut Teknologi Sepuluh Nopember.
Widyanahar, N.A. 1998. Pemanfaatan Programmable Logic Controller dalam
Dunia Industri. Elektro Indonesia, Edisi Ke-sebelas, Januari. Dari
http://www.elektroindonesia.com/elektro/instrum11.html, diakses tanggal
3 November 2014.
Lampiran 1. Bahasa Pemrograman PLC
PLC tidak dapat bekerja sendiri tanpa adanya program yang mengatur
langkah kerja didalamnya. Program yang dibuat ditujukan untuk mengatur kerja
antara sensor dan aktuator. Program dirancang untuk memberikan perintah ke
aktuator berdasarkan keadaan sensor ataupun juga berdasarkan perhitungan
aritmatika (Endaryoko, 2011).
Berkaitan dengan pemrograman PLC, terdapat lima model atau metode
yang telah distandardisasi penggunaannya oleh IEC (International
Electrotechnical Commission) 1131-3 sebagai berikut (Sonjaya, 2011).
1. List Instruksi (Instruction List)
Pemrograman dengan menggunakan instruksi-instruksi bahasa level
rendah (Mnemonic), seperti LD, AND, OR dan lain sebagainya (Sonjaya, 2011).
Tabel 1.Contoh List Instruksi
2. Diagram Tangga (Ladder Diagram)
Pemrograman berbasis logika relay, cocok digunakan untuk
persoalan-persoalan Kontrol Diskret yang input/output hanya memiliki dua
kondisi on atau off seperti pada sistem kontrol konveyor, lift, dan motor-motor
industri (Sonjaya, 2011).
Gambar 1. Diagram Tangga
3. Diagram Blok Fungsi ( Function Block Diagram )
Pemrograman berbasis aliran data secara grafis. Banyak digunakan untuk
tujuan kontrol proses yang melibatkan perhitungan-perhitungan kompleks dan
akuisisi data analog (Sonjaya, 2011).
Gambar 2. (a) Diagram Tangga (b) Diagram Blok Fungsional Ekivalennya
4. Diagram Fungsi Sekuensial (Sequential Function/Flow Charts/Grafcet)
Metode grafis untuk pemrograman terstruktur yang banyak melibatkan
langkah-langkah rumit, seperti pada bidang robotika, perakitan kendaraan, Batch
Control, dan lain sebagainya (Sonjaya, 2011).
Gambar 3. Diagram Fungsi Sekuensial
5. Teks Terstruktur (Structured Text)
Tidak seperti keempat metode sebelumnya, permrograman ini
menggunakan statemen-statemen yang umum dijumpai pada bahasa level tinggi
(high level programming) seperti If/Then, Do/While, Case, For/Next, dan lain
sebagainya. Dalam aplikasinya, model ini cocok digunakan untuk
perhitungan-perhitungan matematis yang kompleks, pemrosesan tabel, serta
fungsi-fungsi kontrol yang memerlukan algoritma khusus (Sonjaya, 2011).
Gambar 4. Teks Terstruktur
Namun Sumbodo(2008) menyederhanakan pemrograman PLC menjadi
dua macam yaitu dengan diagram ladder dan bahasa mnemonic. Pemrograman
biasanya membuat diagram ladder terlebih dahulu dan kemudian baru
menerjemahkannya dalam bahasa mnemonic, atau bisa juga langsung
menggambar ladder diagram pada layar monitor (Sumbodo, 2008).
Lampiran 2. Program-program Ladder Dasar yang Digunakan
1. Program Input-Output
Ini merupakan program paling dasar dari diagram tangga PLC. Penulis menilai
terdapat beberapa program yang cukup fundamental untuk dibahas. Berikut
program-program tersebut.
a) Input-Output Dasar
Pada hakekatnya terdapat dua buah program input dan output yang paling
mendasar pada PLC. Dua program ini yaitu input-output dengan Normally Open Contact
dan input-output dengan Normally Close Contact. Keduanya dibedakan berdasarkan
jenis kontak yang digunakan.
i. Input-Output dengan N.O. Contact
Gambar 5. Input-Output dengan N.O. Contact
ii. Input-Output dengan N.C. Contact
Penjelasan program ini sama dengan “Program Gerbang Logika NOT”.
2. Latching/Set dan Unlatching/ResetDikutip dari http://www.plcs.net/chapters/latch14.htm, "The latch instruction is
often called a SET or OTL (output latch). The unlatch instruction is often called a RES
(reset), OUT (output unlatch) or RST (reset). The diagram below shows how to use them
in a program". Ini berarti SET = Output Latch dan RESET = Input Latch. Dengan kata
lain, program latch-unlatch sama dengan program SET-RESET.
Terdapat dua model dari program ini. Yang pertama adalah dengan menggunakan
salah satu konvensi yang berlaku pada coil PLC, yaitu self holding.
Gambar 6. SET-RESET dengan Self Holding
Yang kedua adalah dengan menggunakan coil tipe SET dan RESET.
Gambar 7. SET-RESET dengan Coil Khusus
Secara logika, kedua program ladder tersebut memiliki kesamaan. Ketika I1 aktif
atau bernilai 1, O1 akan diatur bernilai 1. O1 akan bernilai 1, walaupun I1 dinonaktifkan
atau bernilai 0. O1 hanya akan kembali bernilai 0 jika I2 diaktifkan.
3. Program Operasi LogikaPada sistem digital dikenal beberapa tipe dasar gerbang logika. Gerbang
merupakan suatu rangkaian dengan satu atau beberapa masukan yang akan menghasilkan
satu buah keluaran. Pada diagram ladder yang dipakai pada PLC gerbang-gerbang logika
tersebut dapat dianalogikan sebagai suatu saklar. Saklar tersebut mempunyai dua
keadaan yaitu ON(terhubung) atau OFF(terputus) (Anonymous, 2009). Berikut
penjelasan tentang beberapa program ladder gerbang logika dasar untuk PLC.
a) AND
Program AND merupakan program yang berbasis logika gerbang AND. Jadi
semua kondisi yang dihasilkan akan memenuhi logika AND. Berikut gambar dari dari
program ladder dengan logika AND.
Gambar 8. Program AND
Program ladder tersebut bekerja secara teknis memenuhi tabel kebenaran berikut.
Tabel 2.Tabel Kebenaran Program Ladder AND
I1 I2 O10 0 01 0 00 1 01 1 1
b) OR
Program OR merupakan program yang berbasis logika gerbang OR. Jadi semua
kondisi yang dihasilkan akan memenuhi logika OR. Berikut gambar dari dari program
ladder dengan logika OR.
Gambar 9. Program OR
Program ladder tersebut bekerja secara teknis memenuhi tabel kebenaran berikut.
Tabel 3.Tabel Kebenaran Program Ladder OR
I1 I2 O10 0 01 0 10 1 11 1 1
c) NOT
Program NOT merupakan program yang berbasis logika gerbang NOT. Jadi
semua kondisi yang dihasilkan akan memenuhi logika NOT. Berikut gambar dari dari
program ladder dengan logika NOT.
Gambar 10. Program NOT
Program ladder tersebut bekerja secara teknis memenuhi tabel kebenaran berikut.
Tabel 4.Tabel Kebenaran Program Ladder NOT
I1 O10 11 0
d) EXOR
Program EXOR merupakan program yang berbasis logika gerbang EXOR. Jadi
semua kondisi yang dihasilkan akan memenuhi logika EXOR. Berikut gambar dari dari
program ladder dengan logika EXOR.
Gambar 11. Program EXOR
Program ladder tersebut bekerja secara teknis memenuhi tabel kebenaran berikut.
Tabel 5.Tabel Kebenaran Program Ladder EXOR
I1 I2 O10 0 01 0 10 1 11 1 0
e) EXNOR
Program EXNOR merupakan program yang berbasis logika gerbang EXNOR.
Jadi semua kondisi yang dihasilkan akan memenuhi logika EXNOR. Berikut gambar dari
dari program ladder dengan logika EXNOR.
Gambar 12. Program EXNOR
Program ladder tersebut bekerja secara teknis memenuhi tabel kebenaran berikut.
Tabel 6.Tabel Kebenaran Program Ladder EXNOR
I1 I2 O10 0 11 0 00 1 01 1 1
f) NOT OR
Program NOT OR merupakan program yang berbasis logika gerbang NOT OR.
Jadi semua kondisi yang dihasilkan akan memenuhi logika NOT OR. Berikut gambar
dari dari program ladder dengan logika NOT OR.
Gambar 13. Program NOT OR
Program ladder tersebut bekerja secara teknis memenuhi tabel kebenaran berikut.
Tabel 7.Tabel Kebenaran Program Ladder NOT OR
I1 I2 O10 0 11 0 00 1 01 1 0
g) NOT AND
Program NOT AND merupakan program yang berbasis logika gerbang NOT AND.
Jadi semua kondisi yang dihasilkan akan memenuhi logika NOT AND. Berikut gambar
dari dari program ladder dengan logika NOT AND.
Gambar 14. Program NOT AND
Program ladder tersebut bekerja secara teknis memenuhi tabel kebenaran berikut.
Tabel 8.Tabel Kebenaran Program Ladder NOT AND
I1 I2 O10 0 11 0 10 1 11 1 0
4. Program Timer
Penjelasan merujuk pada komponen-komponen dasar ladder diagram bagian timer.
5. Program Counter
Penjelasan merujuk pada komponen-komponen dasar ladder diagram bagian timer.
Lampiran 3. Gerbang-gerbang Logika Dasar dan Tabel Kebenarannya
Dari
http://lecturer.eepis-its.edu/~prima/elektronika%20digital/elektronika_digital1/ba
han_ajar/Bab2_gerbang%20logika%20dasar.pdf:
Tabel 9.Gerbang Logika Dasar
NAMAGERBANGLOGIKA SIMBOL TABEL
KEBENARAN
AND
OR
NOT
NAND
NOR
XOR
XNOR
Lampiran 4. Variabel pada Pengaturan Classic LadderSumber : http://www.linuxcnc.org/docs/2.4/html/ladder_classic_ladder.html
Hal ini mungkinkan pengguna untuk melakukan konfigurasi/pengaturan jumlah
masing-masing jenis obyek tangga (ladder object). Jika pengguna tidak mengatur hal
tersebut, Classic Ladder akan menggunakan nilai bawaan(default).
Tabel 10. Variabel Default
Nama Obyek Nama Variabel Nilai Bawaan(Default)
Number of rungs (numRungs) 100Number of bits (numBits) 20Number of word
variables (numWords) 20
Number of timers (numTimers) 10Number of timers
IEC (numTimersIec) 10
Number ofmonostables (numMonostables) 10
Number of counters (numCounters) 10Number of HALinputs bit pins (numPhysInputs) 15
Number of HALoutputs bit pins (numPhysOutputs) 15
Number ofarithmeticsexpressions
(numArithmExpr) 50
Number of Sections (numSections) 10Number of Symbols (numSymbols) AutoNumber of S32 inputs (numS32in) 10
Number of S32outputs (numS32out) 10
Number of Floatinputs (numFloatIn) 10
Number of Floatoutputs (numFloatOut) 10
Obyek yang biasa digunakan adalah numPhysInputs, numPhysOutputs,
numS32in, dan numS32out. Mengubah angka-angka ini akan mengubah jumlah pin bit
HAL yang tersedia. numPhysInputs dan numPhysOutputs mengontrol berapa banyak pin
bit HAL (on/off) yang tersedia. numS32in dan numS32out mengontrol berapa banyak
HAL bilangan bulat yang ditandai/signed integer (+- rentang integer) pin yang tersedia.
Lampiran 5. Sejarah Pengembangan Software Classic LadderDiambil dari file HISTORY.txt yang tersedia pada website pengunduhan software Classic
Ladder:
CLASSIC LADDER PROJECT
Copyright (C) 2001-2014 Marc Le Douarain
marc . le - douarain /AT\ laposte \DOT/ net
http://www.sourceforge.net/projects/classicladder
http://sites.google.com/site/classicladder
----------
HISTORY...
----------
v0.1 (February 2001 - Not released)v0.2 (30 April 2001 - First public release)v0.2.8 (3 August 2001 - Featuring the Editor, but not totally completed)v0.3 (18 August 2001 - Editor completed)v0.4 (20 October 2001 - Arithmetic expressions evaluator)v0.5 (30 December 2001 - Real time support)v0.5.1 (4 January 2002 - Parallels ports interface)v0.5.2 (26 January 2002)v0.5.3 (11 May 2002)v0.5.4 (22 May 2002)v0.5.5 (18 August 2002)v0.6.0 (2 November 2002 - Birth of a new language)v0.6.1 (23 November 2002)v0.6.2 (23 March 2003)v0.6.3 (15 April 2003)v0.6.4 (19 July 2003)v0.6.5 (17 August 2003)v0.6.6 (10 November 2003)v0.7.0 (3 January 2004 - Sequential Editor added)v0.7.1 (13 March 2004)v0.7.2 (21 August 2004)v0.7.3 (28 December 2004)v0.7.4 (15 August 2005)v0.7.5 (13 May 2006)v0.7.60 (27 May 2006)v0.7.70 (11 June 2006)v0.7.71 (20 June 2006)v0.7.80 (18 July 2006)v0.7.90 (11 August 2006)v0.7.91 (17 August 2006)v0.7.92 (24 September 2006)v0.7.93 (21 October 2006)v0.7.92v0.7.100 (4 November 2006)
v0.7.101 (18 April 2007)v0.7.110 (8 May 2007)v0.7.120 (13 june 2007)v0.7.121 (8 July 2007)v0.7.122 (26 August 2007)v0.7.123 (4 November 2007)v0.7.124 (2 January 2008)v0.7.125 (18 February 2008)v0.7.126 (23 February 2008)v0.7.127 (22 April 2008)v0.8.0 (7 August 2008) [Big switch to Cairo & gtk-print]v0.8.1 (23 August 2008) [gtk-print also working under Windows... finally not so simple]v0.8.2 (7 September 2008) [configplc startup file removed]v0.8.3 (13 December 2008)v0.8.4 (26 April 2009) [Rung part Copy feature]v0.8.5 (5 July 2009)v0.8.6 (25 August 2009)v0.8.7 (6 April 2010)v0.8.8 (19 May 2010)v0.8.9 (27 November 2010)v0.8.10 (31 December 2010)v0.9.0 (23 April 2011) - New "monitor" protocol target added (IP UDP) & more elementsv0.9.1 (25 June 2011)v0.9.2 (21 August 2011)v0.9.3 (10 December 2011)v0.9.4 (10 March 2012)v0.9.5 (17 August 2012)v0.9.6 (3 november 2012)v0.9.7 (9 may 2013)v0.9.8 (22 june 2013)v0.9.9 (22 august 2013)v0.9.10 (31 october 2013)v0.9.11 (31 january 2014)v0.9.12 (10 May 2014)v0.9.013 (30 May 2014)v0.9.014 (27 September 2014)
Lampiran 6. Rencana Pengembangan dan Update Software Classic Ladder
dari DeveloperDiambil dari file TODO.txt yang tersedia pada arsip unduhan software Classic Ladder:
CLASSIC LADDER PROJECT
Copyright (C) 2001-2014 Marc Le Douarain
marc . le - douarain /AT\ laposte \DOT/ net
http://www.sourceforge.net/projects/classicladder
http://sites.google.com/site/classicladder
---------------------
FUTURE / TODO LIST...
---------------------
- Strange bad task name (per-default) under Xenomai for the "monitor" thread !?("classicladder" instead of function name as for others...)- Switch all monitor task creations to use common functions...- When loading a project, free and realloc new sizes objects of this project...? (not only atstartup when loading the first project)(if not running in a "old-school" rt kernel RTLinux/RTAI module! by the way, still working?)- Network config window, adding 'ip dynamic' checkbox+ raspbian config format possible in read/write...
- In sequential, display in status bar next action that should be done for and/or links...Complex case of multi steps activated/desactivated simultaneously (click on steps -or-
steps, then transition but not reverse elsebads things arriving... to see!)
- Comment field for project (multi lines possible).- Fixing library broken when compiled for that...- Shortcuts ctrl+"start"/"end" keys to go to first/last rung (instead of (shift)+ctrl+T) ? seenwhere in which software?- Easy possibility in eval block to be able to copy some bits list in a word...New function %Wx:=FUNCTION(First%By,QuantityZ) Parameters constants or vars.-Or- new characters after first %B with bits quantity %Bx{z} that return a word...??? (can
also be indexed!!! %Bx[y]{z}-Or- directly in contacts (extract a bit of a word) / coils (set a bit of a word) but how to
store this new n° bit parameter ???- Shift/Rotate functions for integer variables.- Do an easy Windows installer (NSIS ?) Seems too difficult for some users to manuallyextract an archive in a directory... :-(- To do a .deb package (for Debian/Ubuntu).- SMS received commands could optionnally be read (to set a var)- SMS read, can be used to confirm SMS alarm really received.- Have log history of the SMS alarms sended.- Error %Sxx(?) if failed to open serial modbus port + all %S10-%S19 slaves ?- New functions blocks "registers" to store/get back words values series (in FIFO or LIFOorder). + Data series could be downloaded?- Modbus master not really ending after loading project without modbus(close current opened serial port before in a CloseHardware() function before loading
another project).- Modbus master can (define?) use the 16550 realtime driver on Xenomai (do new file
serial_rt_xeno + functions SerialOpen_rt, Serial_Send_rt, ...).- Modbus slave (called server in IP) could also run in serial if a serial port string parametredin config_gtk (with RTS possible).- In Modbus slave/server can have offsets to get directly %I and %IW (for example if address> 20000...?!)- In new target infos tab (of free vars windows), add disk usage (#DEFINE device)- After set "config network" done, target should call script target "rc.inet1" ? (actually reboottarget to do manually required)- New systems vars time sunset/rise (integers) and perhaps directly boolean 'day' when weare between both (usefull to set light the night!)(without FPU instructions usage for SX CPU...)
( - Add second serial slave monitor thread )( - For modbus RS485 half-duplex (choice between rx/tx on the line), can use a x86 gpio withoutb instead of RTS signal(usefull with simple 3 wires serial port without RTS signal on it...)=> replace in Gtk Config "Use RTS signal to send oNo oYes" per "Drive signal to xmit
datas oNo oUseSerialRTS ox86OutPort" )- Persistance of vars possible (to select which before in a list), current values saved on risingedged of a %Sxx var?!- Have "default value" + "save context value" of vars lists. At start, each variables in the firstlist start with its default value.- Passwords. for monitor access? future SMS commands? differents levels?- Optimize CPU usage: no periodic refresh if not running (in edit, send "update signal"redraw whensomething done)
- vertical display optimization (nbr blocks no more fixed) depending of the elements presenton the rung (recent NbrLinesUsed in StrRung)(but during edit, always displaying current edit with nbr of lines maxi).
- 'Undo' available during edit...- Stats nbr frames average exchanged per second, for modbus/master (saving start time of thedialog, then (end-start)/nbrframes...)- In the new monitor protocol, get modbus/master slave stats (of the modbus master runningon embedded) => move its display on new futur modbus/mastermonitor window?
- Log of integer variables (with a period time and mini delta value) + graphical display (witha gtk component like gtkdatabox?)- Adding inputs mask filter value in ms unit (for all local physical inputs) in config inputwindow.- For remote alarms, add "UDP client text string" or others things (after existing SMS &emails) ?- Preview/Print, not only "current section" but also "all" possible (new sub-menus).- Svg/Png export, should call draw functions with a new option DRAW_FOR_EXPORT (usedwhen expr not drawed entirely on bottom instead of right margin!)- Review all variables names to be in conformity with IEC61131, especially %Bxxx =>%Mxxx %Wxxx => %MWxxx- a new window variables browser, used for help, listing all them, and to select one directly.- to add a button to display a readme file about the currently loaded ladder file. Thensomeone couldwrite a description of a ladder program in a text editor and name it 'my_program.clp.txt'
and thebutton would load it (Chris Morley suggestion).
- Mouse wheel for vertical lift usable, from everywhere.- For the library, defining 4 functions pointers for I/O access instead of some duplicated
code?- Modbus/UDP mode support for the server & distributed I/O.- Perhaps bug in project split if empty file(or line?) ?- Search/replace function on a variable, cross-referencing, ... things like that...?- Contextual popup menu when clicking on an element (Heli idea) for search and also spydirectly...- Modifs EMC 2010_08_20 on many things to look at...-> VarFloatArray
- Float variables support (%F, %IF, %QF) + in the evaluator...- Do not allow to set/reset state of (by clicking on) input/outputs/bits "used"... not easy toknow.- Extend the new monitor slave protocol to allow for "hot" rung/sequential modify?- A new script/text language available for a section (lua? basic?)(perhaps review ladder blocks that should also "live" outside this langage? idea: tags thosenot found on ladder,and exec thems!?)
- Multi-languages (internationalization).- Your ideas ( well in fact this list is already long! ;-) ), improvements, bugs reports or fixes(?!?!), etc...Do not hesitate to send me an email ! ;-)
Lampiran 7. Perintah Instalasi Paket Pustaka/Library pada Berbagai Distro
Linux dengan Manajer Paket yang Bervariasi
Sumber:
https://www.linode.com/docs/tools-reference/linux-package-management dan
http://how-to.linuxcareer.com/comparison-of-major-linux-package-management-
systems
1. Distro Linux Debian atau Ubuntu dan Turunannyaapt-get install [package-name]
atauaptitude install [package-name]
2. Distro Linux Fedora atau CentOS dan Turunannyayum install [package-name]
3. Distro Linux Slackware dan Turunannyaslackpkg install [package]
4. Distro Linux ArchLinuxpacman --sync [package]
ataupacman -S [package]
5. Distro Linux Gentoo Linuxemerge [package-name]
Catatan : [package-name] atau [package] adalah nama paket yang ingin
dipasang/diinstal oleh pengguna. Sebagai contoh:aptitude install libgnomeprintui-2.0
, akan tetapi kebanyakan distro linux mengharuskan pengguna menjadi root atau
pengguna khusus sistem agar dapat menambahkan paket ke sistem. Berikut dua
metode yang dapat pengguna lakukan.
1. Mengeksekusi perintah “sudo su” sebelum eksekusi perintah instalasi.
2. Menambahkan perintah “sudo” sebelum perintah instalasi.
Lampiran 8. Istilah-istilah Penting1. HAL (Hardware Abstraction Layer)
Hardware Abstraction Layer (HAL) merupakan salah satu lapisan pada sistem
operasi, seperti: windows dan linux. Lapisan ini memetakan perintah dan tanggapan
perangkat keras generik menjadi perintah dan tanggapan unik platform
tertentu.(http://brainly.co.id/tugas/1298332, diakses tanggal 20 Desember 2014)
2. Distro Linux
Distro linux merupakan sistem operasi linux yang terdistribusi dengan berbagai
macam kelengkapan software sesuai dengan komunitas atau perusahaan atau pihak
pembuatnya, misal: Debian, Ubuntu, dan Slackware. Adapun distro linux turunan
merupakan modifikasi dari distro linux yang sudah ada, misal: ZorinOS, Deepin Linux,
SundaraOS, dan LinuxLite.
3. Kompilasi Software
Kompilasi software adalah konversi dari kode sumber software menjadi software
yang dapat dieksekusi atau dijalankan. Proses ini biasa digunakan untuk pengembangan
software.
4. Graphical User Interface
Graphical User Interface (Bahasa Indonesia: Antarmuka Grafis) merupakan
perantara pengguna untuk berinteraksi dengan sebuah software dalam bentuk tampilan
atau secara grafis.
5. Pustaka/Library
Pustaka atau library dalam sebuah software berlaku sebagai dependensi atau
ketergantungan. Ketergantungan yang dimaksud adalah software bergantung pada
ketersediaan file-file tertentu pada lingkungan sistem. File-file inilah yang dinamakan
pustaka atau library. Pada sistem operasi windows, library biasanya berupa file “.dll”,
sedangkan pada sistem operasi linux, library biasanya berupa file “.so” dan “.a”.
6. FOSS (Free and Open Source Software)
FOSS merupakan software yang bebas dan memiliki kode sumber yang terbuka.
Bebas di sini berarti semua orang bebas memakai dan mendistribusikan, sedangkan kode
sumber terbuka mengindikasikan kebebasan mengembangkan/memodifikasi software
tersebut.
7. GNU FDL (Free Documentation License)
FDL merupakan salah satu lisensi dari yayasan software bebas/free software
foundation. Lisensi yang digunakan untuk dokumen ini, mengijinkan semua orang untuk
menyalin dan mendistribusikan ulang dokumen tersebut, baik tanpa ataupun dengan
modifikasi untuk keperluan komersial ataupun non-komersial. Berikut sebuah kutipan
penting dari lisensi ini.
“The purpose of this License is to make a manual, textbook, or other functional and
useful document "free" in the sense of freedom: to assure everyone the effective freedom
to copy and redistribute it, with or without modifying it, either commercially or
non-commercially.
Secondarily, this License preserves for the author and publisher a way to get credit for
their work, while not being considered responsible for modifications made by others”.
8. LGPL (Lesser General Public License)
Dari http://www.webopedia.com/TERM/L/LGPL.html: Lesser General Public
License digunakan untuk memberi lisensi software bebas, sehingga software tersebut
dapat digabungkan dalam software bebas dan software berbayar. Berbeda dengan GPL
yang dipakai untuk FOSS, lisensi ini meniadakan keharusan membuka kode sumber
software. Penggunaan terbanyak dari lisensi ini adalah sebagai referensi ke GNU LGPL.
LGPL juga disebut GNU libraries dan secara formal disebut sebagai Library/pustaka
GPL.
9. Enhanced Machine Controller / LinuxCNC
Dari http://www.linuxcnc.org/index.php/about:
LinuxCNC merupakan sebuah sistem software untuk kendali komputer terhadap
peralatan-peralatan mesin seperti mesin-mesin milling/penggilingan dan mesin-mesin
bubut.
LinuxCNC merupakan software bebas dengan kode sumber terbuka. Versi terbaru
dari sistem ini berlisensi GPL dan LGPL.
LinuxCNC menyediakan:
- beberapa antarmuka pengguna grafis termasuk satu untuk layar sentuh.
- sebuah interpreter untuk “G-code” (bahasa pemrograman peralatan mesin RS-274)
- sebuah sistem perencanaan gerak yang realtime dengan look-ahead
- operasi elektronik mesin tingkat-rendah, seperti sensor dan kendali motor(motor drives)
- sebuah lapisan “breadboard” yang mudah digunakan untuk secara cepat membuat
- sebuah - pengaturan unik terhadap mesin pengguna
- sebuah software PLC yang dapat diprogram dengan diagram tangga
- pemasangan/instalasi mudah dengan paket-paket “.deb” atau sebuah live-CD
Sistem ini tidak menyediakan fungsi penggambaran (CAD - Computer Aide
Design) atau pembuatan(generation) G-code dari gambar (CAM - Computer Automated
Manufacturing).
10. Boolean
Boolean merupakan sebuah sistem bilangan yang memiliki dua angka, yaitu 1
dan 0. Kedua angka tersebut merepresentasikan dua keadaan yang berbeda, yaitu 1 untuk
true/benar dan 0 untuk false/salah. Sistem bilangan biasa digunakan untuk menyatakan
logika dalam rangkaian elektronik, terutama yang mengandung unsur gerbang logika.
11. Variabel Signed Integer dan Unsigned Interger
Signed integer secara sederhana merupakan variabel yang terdiri dari bilangan
bulat dan termasuk bilangan positif dan negatif. Sementara unsigned integer tidak
termasuk bilangan negatif atau hanya menyediakan bilangan positif. Pada sistem yang
memiliki arsitektur 32-bit, nilai signed integer berkisar dari -2.147.483.647 sampai
2.147.483.647, sedangkan unsigned integer berkisar dari 0 sampai
4.294.967.295.(http://crasseux.com/books/ctutorial/Integer-variables.html)
12. Shell Interpreter
Shell interpreter secara sederhana merupakan software yang menyediakan
antarmuka pengguna dengan sistem pada sistem operasi linux untuk menjalankan
perintah-perintah yang dapat ditanggapi oleh sistem. Bahasa yang digunakan pada
interpreter ini adalah shell.
13. Timer IEC
Merupakan timer yang distandarkan oleh International Electrotechnical
Commission.(http://www.toolingu.com/class-430300-ladder-diagram-timers-and-counter
s-for-siemens-plcs-300.html)
Lampiran 9. Daftar Kompetisi PLC Programming untuk Mahasiswa
1. E-TIME - Lomba PLC (Programmable Logic Control) di PNJ (Politeknik
Negeri Jakarta)
2. Lomba Mahasiswa Tingkat Nasional - Pemrograman Ladder PLC
(Programmable Logic Controller) di ITB (Institut Teknologi Bandung)
3. ARC "Industrial Automation and Robotic Competition" - PLC Programming
di ITS (Institut Teknologi Sepuluh Nopember)
4. Applied Science Festival (Apsifest) - Programmable Logic Control di Telkom
University.
Sumber(diakses tanggal 28 Desember 2014):
http://ft.ugm.ac.id/wp-content/uploads/2014/03/PLC.pdf
http://www.info-lomba.com/2014/04/iarc-industrial-automation-and-robotic.html
http://lombaplc.tf.itb.ac.id/
http://infolombaku.blogspot.com/2009/12/lomba-plc-2010-mahasiswa-tingkat_14.
html
http://www.info-lomba.com/2014/01/applied-science-festival-2014.html
http://harianti.com/e-time-2014-kompetisi-dan-expo-tingkat-nasional-bagi-mahas
iswa-se-indonesia-dari-politeknik-negeri-jakarta/
http://www.fti.itb.ac.id/4148.xhtml