OUTSEAL
TEKNOLOGI OTOMASI KARYA ANAK BANGSA
PANDUAN DASAR
OUTSEAL PLC
29-Mei- 2020
2
Pengantar
Assalamu’alaikum. Outseal adalah nama perusahaan dan juga merek dagang dari
pengembang teknologi otomasi asal Indonesia. Outseal bergerak di bidang pengembangan
teknologi instrumentasi dan otomasi. Teknologi yang telah dikembangkan oleh Outseal
diantaranya adalah PLC (Programmable Logic Controller) dan HMI (Human Machine Interface).
Motivasi outseal dalam pemgembangan teknologi ini adalah terciptanya sebuah teknologi
otomasi yang murah, mudah dan tangguh. Untuk menekan harga serta kemudahan untuk
mendapatkan hardware, outseal PLC dibuat dengan kompatibilitas arduino. Untuk
kemudahan, pemrograman yang dipakai pada outseal PLC ini menggunakan visual
programing menggunakan diagram tangga dan berbahasa Indonesia. Untuk alasan
ketangguhan, hardware outseal PLC ini dibuat dengan mempertimbangkan standar Industri.
Perlu diketahui juga bahwa skema elektronik dari outseal PLC ini dibuka untuk umum
sehingga siapapun bisa melihat, mempelajari, memodifikasi dan membuat sendiri. Begitu
pula dengan software pemrograman yang diberikan secara gratis sehingga tujuan
penciptaan teknologi otomasi yang murah, mudah dan tangguh diharapkan akan tercapai.
Buku ini menyajikan panduan dasar instalasi hardware dan pemrograman outseal PLC
menggunakan outseal studio.
Harapan
Dengan membaca buku ini pembaca dapat melakukan sendiri instalasi hardware,
mengoperasikan outseal studio dan membuat project sederhana menggunakan outseal PLC.
3
Daftar Isi
Pengantar 2
Harapan 2
Daftar Isi 3
Pengenalan 6
Perangkat Keras 7
Catu daya (power supply) 12
Pengkabelan (wiring) 13
Catu daya 13
Digital input 16
Digital Output 22
Analog 26
Modul 27
Diagram Tangga 29
4
5
OSC 104
Kelompok Instruksi MODBUS 106
MF1 111
MF2 118
MF3 121
MF4 124
MF5 126
MF6 128
Kelompok Instruksi Control 131
Kelompok Instruksi Array 136
BSL 136
BSR 138
Lampiran 230
6
Pengenalan
Programmable Logic Controller (PLC) pada dasarnya adalah sebuah perangkat elektronik yang
berfungsi sebagai pengatur logic state (status ON atau OFF) perangkat lain yang tersambung
dengan PLC tersebut dan skema pengaturan tersebut dapat diubah-ubah (diprogram).
Umumnya pemrograman PLC dilakukan oleh sebuah perangkat lunak yang berjalan di
komputer (PC). Contoh aplikasi PLC adalah untuk pengaturan lampu lalu lintas, pengaturan
kerja mesin-mesin pabrik dan lain-lain.
Terdapat tiga bagian utama dari sebuah PLC yakni input, controller dan output seperti
terlihat pada gambar 1. Bagian input digunakan untuk membaca perangkat dari luar baik
sinyal digital seperti switch atau sinyal analog seperti sensor temperature dan lain-lain.
Bagian output umumnya berupa transistor open collector, triac, SSR atau mechanical relay
untuk mengontrol perangkat luar. Umumnya sebuah PLC sudah dilengkapi dengan
perangkat komunikasi untuk berhubungan dengan perangkat luar seperti PC, HMI layar
sentuh dan lain-lain. Outseal PLC sudah mempunyai semua fasilitas hardware dasar yang
dipunyai oleh PLC secara umum dan sudah layak digunakan di industri.
Outseal PLC diprogram menggunakan perangkat lunak yang bernama outseal studio yang
juga merupakan produk dari outseal. Outseal studio dijalankan di PC dalam bentuk visual
7
Perangkat Keras
Sampai saat tulisan ini dibuat, outseal PLC terdiri dari dua varian yakni nano dan mega.
Outseal PLC Nano sudah dikembangkan hingga 5 kali perubahan dari versi 1 hingga versi 5.
Outseal PLC Nano versi 4 dan 5 menggunakan IC atmega328p yang sudah tertanam dalam
board plc, sedangkan versi 1 hingga 3 masih berupa shield (perangkat tambahan) untuk
arduino nano/UNO board.
8
9
10
11
PLC nano V.5 adalah pengembangan PLC nano V.4 dengan perubahan pin yang digunakan
untuk penambahan fasilitas high-speed counter (HSC). Skema elektronik dari outseal PLC
dapat dilihat di website resmi outseal yakni www.outseal.com.
12
Untuk PLC shield versi 2 dan 3, besarnya catu daya dari shiled ini tergantung dari arduino
yang digunakan. Umumnya arduino nano clone (buatan Tiongkok) menggunakan IC
regulator dengan seri AMS1117 5.0. Regulator ini berjenis linear regulator yang berfungsi
menurunkan tegangan input menjadi 5V. Semakin besar penurunan tegangannya maka
panas yang ditimbulkan juga akan semakin besar sehingga disarankan agar tegangan input
menuju regulator ini hanya berselisih sedikit dengan 5V. Umumnya tangan listrik input yang
digunakan adalah 6 hingga 9 Volt. Walaupun pada datasheet linear regulatornya mampu
diberikan input hingga 12 Volt, namun untuk pemakaian jangka panjang disarankan agar
tegangan input yang diberikan antara 6 sampai 9 Volt saja untuk menghindari panas yang
ditimbulkan oleh regulator tersebut.
13
Outseal PLC Nano V.4 , V.5 dan Outseal PLC Mega V.1 sudah menggunakan switching buck
converter sebagai pengganti linear regulator dimana panas yang ditimbulkan lebih kecil
daripada linear regulator sehingga dapat menerima tegangan listrik catu daya hingga 24V.
Perlu diketahui juga bahwa outseal PLC dapat berjalan walau hanya mendapatkan tenaga
dari kabel USB saja. Ini artinya bahwa saat outseal PLC tertancap pada komputer melalui
kabel USB maka PLC ini sudah bisa berjalan tanpa memerlukan catu daya luar. Di dalam
outseal PLC sudah terdapat sebuah schottky dioda yang berfungsi sebagai pemilih catu daya
otomatis sehingga apabila kabel USB dan catu daya luar tertancap bersama pada PLC, maka
PLC akan otomatis memilih sumber daya dari catu daya eksternal.
Pengkabelan (wiring)
Catu daya
Pengkabelan catu daya pada outseal PLC nano V.4 dan V.5 dapat dilakukan melalui barrel
jack (dilabelkan dengan huruf A) atau terminal blok (dilabelkan dengan huruf B) seperti
terlihat pada gambar 8. Di dalam papan rangkaian elektronik outseal PLC tersebut A dan B
tersambung secara langsung sehingga tidak ada perbedaan antara memberi catu daya
melalui jalur A dan jalur B. Justru dengan pemberian daya listrik melalui jalur A maka
konektor pada jalur B dapat dimanfaatkan sebagai pin sumber daya listrik untuk keperluan
yang lain. Sedangkan pengkabelan catu daya pada outseal PLC mega V.1 hanya dapat
dilakukan melalui terminal block (dilabelkan dengan huruf B).
14
Rentang voltase yang diperbolehkan untuk outseal PLC sesuai dengan tabel 1 sedangkan
arus listrik minimum adalah sebesar 2A. Data tersebut dapat dijadikan acuan dalam
membeli adaptor atau SMPS (switched-mode power supply).
Sebuah adaptor/power supply dengan daya 300 mA seharusnya sudah dapat digunakan
untuk memberi tenaga pada PLC, namun terdapat kemungkinan digunakannya sumber
listrik tersebut untuk keperluan lain seperti untuk relay ataupun untuk signal input
sehingga catu daya 300 mA dinilai masih belum mencukupi untuk digunakan pada outseal
PLC. Selain itu, berdasarkan hasil pengujian aktual yang dilakukan oleh teknisi outseal
terhadap adaptor-adaptor yang beredar di pasar Indonesia terungkap bahwa nilai arus
maksimum yang tertera pada sebuah adaptor atau SMPS rata-rata tidak sesuai dengan hasil
pengujian nilai aktual terutama produk-produk yang dibuat di Tiongkok. Sebuah adaptor
dengan tegangan listrik keluaran sebesar 12V dan tertulis mempunyai arus maximum
sebesar 2A dalam kemasannya setelah diuji oleh teknisi outseal ternyata hanya memiliki
arus listrik maksimal sebesar 0.7A. Oleh sebab itu outseal menyatakan nilai minimum untuk
catu daya yang digunakan adalah sebesar 2A dengan merujuk pada perhitungan
Sebuah mikrokontroler ATmega328P dengan clock 16 Mhz dan bekerja pada tegangan 5V
membutuhkan tenaga (Pm) sebesar 100 mW atau 0.1W sedangkan relay MY2N
membutuhkan daya listrik (Pr) sebesar 900 mW. Dengan perkiraan 8 relay dalam kondisi
semua aktif secara bersama maka daya yang dibutuhkan PLC adalah 7,2W. Sehingga
minimum daya aktual yang harus dipunyai oleh catu daya untuk outseal PLC adalah sebagai
berikut:
15
Untuk perkiraan 16 relay dalam kondisi semua aktif secara bersama maka daya yang
dibutuhkan PLC adalah 14,4W. Sehingga minimum daya aktual yang harus dipunyai oleh
catu daya untuk outseal PLC adalah sebagai berikut:
Dengan alasan tersebut maka outseal merekomendasikan agar adaptor atau SMPS yang
digunakan mempunyai voltase atau arus minimal yang tertera pada kemasan sesuai dengan
tabel rekomendasi power supply berikut.
16
Digital input
Input pada outseal PLC berjenis “sinking” yang artinya perangkat input ini bertindak sebagai
sebuah saluran pembuangan arus listrik (penyedia negatif) atau dapat juga diasumsikan
sebagai perangkat yang lebih negatif daripada perangkat lain sehingga akan mendeteksi
tegangan positif yang masuk melalui pin-pin inputnya. Perbedaan input jenis sinking dan
sourcing dapat dilihat pada gambar 9. Apabila tegangan listrik yang masuk melalui pin input
lebih dari 5V maka logika PLC menyatakan true dengan ditandai lampu led indikator yang
menyala.
Input jenis sinking ini sangat cocok menerima sinyal dari sensor/switch jenis PNP
sedangkan input jenis sourcing cocok menerima sinyal dari sensor/switch NPN. Switch PNP
dapat diasumsikan sebagai switch yang bermuatan positif dan membutuhkan perangkat
negatif untuk membacanya sedangkan switch NPN adalah kebalikan dari PNP. Gambar 10
menjelaskan perbedaan cara kerja kedua jenis switch ini disertai dengan ilustrasinya.
17
Dalam penyambungan switch jenis NPN dan PNP ke outseal PLC, buku ini mengambil
contoh proximity switch. Proximity switch sama halnya dengan sebuah switch biasa namun
yang membedakannya adalah faktor pemicunya. Switch biasa dipicu oleh mekanik sentuhan
tangan, sehingga apabila switch digeser atau disentuh maka saklar akan tersambung
sedangkan proximity switch dipicu oleh keberadaan benda di ujung sensor tersebut
(pendeteksi keberadaan benda). Jika terdapat benda di dekat ujung switch tersebut maka
sensing circuit akan aktif dan switch internal akan tersambung (lihat gambar 10). Proximity
switch banyak digunakan sebagai limit switch dan aplikasi counter jumlah barang.
Gambar 10 menjelaskan perbedaan cara kerja proximity switch jenis PNP dan NPN.
Perbedaan utama saklar NPN dan PNP terdapat pada jalur yang dilewati saklar. Sensor NPN
memutus atau menyambung jalur negatif sedangkan saklar PNP menyambung atau
memutus jalur positif. Oleh sebab itulah sensor PNP sangat cocok disambungkan dengan
input sinking yang mendeteksi tegangan positif seperti pada jenis input yang terdapat pada
outseal PLC.
18
Gambar 11 menjelaskan bahwa saklar PNP dapat langsung disambungkan dengan input
outseal PLC karena input outseal PLC berjenis sinking dimana input ini mendeteksi
keberadaan tegangan positif. Berbeda dengan saklar NPN yang memutus atau menyambung
jalur negatif, input outseal tidak bisa mendeteksi adanya perubahan tegangan apabila
switch internal dari proximity mendeteksi keberadaan benda seperti terlihat pada gambar 12
bagian atas.
19
Input jenis sinking pun dapat menerima sinyal dari sensor NPN namun dibutuhkan
modifikasi berupa tambahan sebuah resistor seperti gambar 12. Modifikasi tersebut juga
akan menyebabkan logika yang dihasilkan menjadi terbalik. Resistor yang dipasang pada
jalur output terhadap tegangan positif mengakibatkan input S.1 pada outseal PLC akan
selalu teraliri listrik (berlogika true) apabila switch dalam kondisi terbuka. Saat proximity
mendeteksi benda maka internal switch akan tersambung sehingga tersedia jalur negatif
yang terhubung langsung dengan S.1 dan menyebabkan logika S.1 berubah menjadi false.
Dengan begitu logika yang diterima oleh outseal PLC adalah kebalikan dari logika asli dari
proximity switch sehingga perlu dimodifikasi pula program dalam PLCnya.
Gambar 13 dan gambar 14 adalah contoh pemasangan proximity switch pada outseal PLC.
Catu daya untuk proximity switch dapat berasal dari catu daya eksternal atau dapat juga
berasal dari catu daya untuk sistem (VIN).
20
Gambar 15 menjelaskan pengkabelan input outseal PLC menggunakan catu daya luar. Pada
outseal PLC nano V.1, V.3 dan V.4, ground untuk input terpisah dengan ground untuk sistem
karena terdapat optoisolator sehingga dibuatkan jumper jumper (jumper 15) pada board
outseal PLC yang berfungsi untuk menyambung atau memutus hubungan antara ground
sistem dengan ground input. Outseal PLC nano V.2 dan V.5 tidak terdapat optoisolator
sehingga tidak terdapat jumper ini. Ground input memang sengaja dipisah dengan ground
sistem untuk mengisolasi noise (gangguan) yang mungkin dibawa melalui jalur ground input
tersebut. Optocoupler internal pada papan elektronik outseal PLC juga digunakan untuk
mengisolasi sinyal input dari luar sistem agar tidak secara langsung terhubung dengan
mikrokontroler. Oleh sebab itu apabila jumper ini dibiarkan terbuka yang artinya ground
input terpisah dengan ground sistem, maka catu daya untuk input PLC terpisah dengan catu
daya untuk sistem (multiple power supply).
Apabila jumper 15 diatur tersambung, maka ground input akan tersambung dengan ground
sistem, sehingga catu daya yang digunakan untuk sistem bisa juga digunakan secara
bersama sebagai catu daya untuk input (single power supply) seperti terlihat pada gambar 16.
Outseal PLC nano V.5 dan Mega V.1 tidak menggunakan isolasi optik sehingga ground input
terhubung dengan ground system.
21
22
Digital Output
Output pada outseal PLC terhubung dengan IC transistor array ULN2803 sebagai driver
output yang artinya output outseal PLC berjenis transistor NPN dengan open kolektor
seperti terlihat pada gambar 17. Gambar 18 menjelaskan bahwa output dari outseal PLC
memutus dan menyambung jalur negatif atau jalur menuju ground. Apabila logika yang
akan diteruskan PLC adalah true, maka internal switch pada transistor akan terhubung
sehingga listrik dapat mengalir melalui beban (coil relay) akibat terdapatnya jalur menuju
ground. Output jenis ini sangat cocok untuk dihubungkan dengan perangkat yang logikanya
active low seperti sebuah relay board module atau langsung terhubung dengan relay coil.
ULN2803 juga sudah dilengkapi dengan dioda flyback yang melindungi rangkaian listrik
terhadap gangguan akibat beban induktif seperti coil relay.
23
Output outseal PLC berjenis transistor NPN open kolektor, oleh sebab itu tegangan listrik
kolektor dapat disambungkan dengan sumber tegangan listrik dengan nilai yang bebas.
Pilihan nilai tegangan listrik untuk kolektor dapat dilakukan melalui jumper di dalam board
PLC (J7).
24
Apabila output outseal PLC terhubung langsung dengan coil relay, maka jumper pemilihan
tegangan relay (J7) harus mengarah ke VIN serta besarnya VIN yang dipakai harus sesuai
dengan tegangan relay yang dipasang. Apabila relay yang digunakan terdapat led indikator
di dalamnya, perlu diperhatikan sambungannya dengan pin output PLC karena jika terbalik
maka relay masih bisa berjalan tetapi led indikator pada relay tidak menyala (lihat gambar
17, 18).
Apabila output outseal PLC dihubungkan dengan sebuah relay board module, maka jumper J7
harus mengarah ke 5V dan relay board module tersebut harus menggunakan power supply
eksternal. Pengkabelannya dapat dilihat pada gambar 20 berikut.
Karena jenis output dari outseal PLC berjenis Low Side Switch maka pengukuran tegangan
harus dilakukan antara pin output dan pin positif. Gambar 21 dan 22 adalah contoh
pengukuran voltase keluaran yang benar dan yang salah.
25
Gambar 21: Pengukuran voltase keluaran yang benar
Gambar 22: Pengukuran voltase keluaran yang salah
26
Analog
Jalur analog input pada outseal PLC berjumlah dua jalur. Jalur ini bisa diatur agar bisa
membaca voltase 0-5V atau arus listrik 0-20 mA melalui jumper pemilih mode analog. J6
adalah jumper untuk jalur analog 1 dan J8 untuk jalur analog 2. Untuk mengatur jalur
pembacaan analog agar membaca voltase dapat dilakukan dengan melepas jumper pemilih
mode seperti dijelaskan dalam gambar 23.
Pembacaan arus listrik 0-20 mA dilakukan outseal PLC dengan cara menambahkan shunt
resistor untuk mengubah arus listrik menjadi tegangan listrik. Besarnya shunt resistor ini
harus sesuai dengan batas pembacaan voltase yang dapat dilakukan oleh mikrokontroler
yakni 0-5V sehingga shunt resistor ini harus di seting tepat 250 ohm melalui variable resistor
yang berwarna biru. Outseal sudah mengatur nilai shunt resistor ini sebesar 250 ohm pada
hardware yang dijual sehingga jika terdapat ketidak sengajaan yang menyebabkan nilai
shunt resistor ini berubah, maka shunt resistor ini dapat diatur kembali melalui pemutaran
variable resistor.
Langkah yang dilakukan adalah sesuai dengan gambar 24. Mode pembacaan analog harus
diatur pada pembacaan arus listrik melalui pemasangan jumper pengatur mode, kemudian
multimeter disiapkan untuk membaca besarnya resistansi antara pin input analog terhadap
ground dan terakhir adalah memutar variable resistor agar pembacaan multimeter tepat
pada 250 ohm.
27
Modul
Modul adalah perangkat tambahan yang dapat bekerja dengan outseal PLC melalui jalur
komunikasi TWI (two wire interface). Modul tersebut bisa berupa RTC (Real Time Clock) atau
Outseal PLC lain yang akan difungsikan sebagai penambah jumlah I/O dan lain lain. Pin
untuk menghubungkan modul mempunyai keterangan SDA dan SCL. Terdapat dua buah
jalur TWI pada outseal PLC yang sebenarnya terhubung langsung secara paralel pada papan
elektronik sesuai dengan gambar 25. Tidak ada perbedaan antara menghubungkan modul
pada titik A atau titik B.
Apabila modul yang terpasang lebih dari satu maka modul tersebut bisa dipasang secara
paralel maupun secara seri sesuai dengan gambar 26 dan 27. Setiap modul outseal
membutuhkan catu daya 5V yang bisa diambilkan dari board outseal PLC itu sendiri atau
bisa dari catu daya luar.
28
29
Diagram Tangga
Listrik yang diberikan ke garis vertikal bisa berupa AC atau DC, tetapi karena untuk
menyelaraskan dengan diagram tangga pada software PLC maka bahasan pada buku ini
dibatasi hanya pada penggunaan listrik DC sehingga terdapat polaritas positif dan negatif
serta listrik mengalir satu arah dari sumbu positif ke sumbu negatif. Contoh diagram tangga
sederhana untuk menyalakan lampu menggunakan switch yang disusun secara seri dapat
dilihat pada gambar 29. Terilihat lampu 1 menyala saat switch 1 tersambung. Namun nyala
lampu 2 baru akan menyala apabila switch 2 dan 3 keduanya tersambung.
30
Outseal menyediakan sebuah perangkat lunak untuk membuat diagram tangga yang
digunakan sebagai dokumentasi sistem kontrol untuk outseal PLC. Nama perangkat lunak
tersebut adalah “outseal studio”.
Perangkat Lunak
Outseal studio adalah sebuah perangkat lunak (software) yang dijalankan di komputer (PC)
berfungsi untuk memprogram hardware outseal PLC menggunakan diagram tangga.
Perangkat lunak ini dapat di download secara gratis di situs internet resmi outseal
www.outseal.com. Tampilan dari outseal studio 2.0 dapat dilihat pada gambar 30.
Jendela Pengaturan
Pada saat program outseal studio dijalankan maka otomatis outseal akan membuka project
baru dengan settingan standar. Untuk mengganti setting dapat dilakukan dengan masuk ke
jendela pengaturan dengan cara klik icon setting. Maka akan didapatkan tampilan jendela
pengaturan seperti pada gambar 32.
31
1. Hardware
2. Tangga
3. Modul
4. Perangkat
5. Filter
32
a. Hardware
b. Tangga
Untuk menambah sub diagram dapat dilakukan dengan klik kanan daftar sub diagram
tangga seperti pada gambar berikut
33
c. Modul
Kolom modul berisikan daftar modul yang bisa disambungkan ke outseal PLC. Apabila
diinginkan suatu modul terhubung dengan outseal PLC maka pilihan modul yang sesuai
yang ada pada kolom ini harus diaktifkan. Untuk melepas semua modul yang tersambung
dengan PLC dapat dilakukan dengan menekan tombol lepas.
d. Perangkat
Pengaturan paling atas adalah tombol untuk mengubah waktu yang ada modul RTC yang
tertancap pada outseal PLC dengan waktu pada PC. Pengaturan kedua dan ketiga adalah
pengaturan penggunaan timer 16 bit pada mikrokontroler. Timer tersebut dapat difungsikan
untuk high speed counter satu fasa, pulse train generator dan pwm. Outseal PLC nano
mempunyai 1 timer sedangkan versi mega mempunyai 2 jumlah timer.
1. Besaran duty cycle konstan, besaran frekuensi dapat diubah (pulse train)
2. Besaran frekuensi ditentukan, besaran duty cycle dapat diubah (pwm)
34
Untuk mengaktifkan kedua pilihan pembangkit pulsa ini, pin R.7 (R.7 dan R.8 pada outseal
PLC mega) pada outseal studio dialih fungsikan dari pin umum input atau output (I/O)
menjadi pin keluaran pulsa. Untuk aplikasi pulse train dibutuhkan 1 data untuk pengaturan
frekuensi saja sedangkan PWM membutuhkan dua data yang diikat untuk pengaturan
pilihan frekuensi dan pengaturan duty cycle. Tabel pilihan frekuensi dapat dilihat pada
tabel frekuensi berikut.
35
0 0
1 7.63
2 30.53
3 122.1
4 977
5 7.81k
Nilai I.2 adalah representasi dari duty cycle (perbandingan antara lamanya pulsa ON dan
OFF) dengan resolusi data 10 bit (0 sampai 1024) dimana apabila I.2 bernilai 512 (setengah
dari 1024) maka pulsa yang ditimbulkan pada pin R.7 akan mempunyai lama ON dan OFF
yang sama (duty cycle 50%)
Alih fungsi pin R.7 untuk aplikasi pembangkitan pulse train hanya membutuhkan satu data
yang diikat yakni I.1 sebagai representasi dari frekuensi dengan resolusi data 15 bit (0
sampai 32.767 Hz).
36
e. Filter
Input filter digunakan untuk kompensasi kesalahan data akibat bouncing. Contoh
penggunaan fasilitas ini dapat dilihat pada contoh yang ada di pembahasan instruksi waktu
pada buku ini.
Jendela Simulasi
Jendela simulasi digunakan untuk melihat hasil operasi logika diagram tangga yang dibuat
tanpa menggunakan hardware. Jendela simulasi ini dapat bekerja secara interaktif dengan
diagram tangga. Lingkaran-lingkaran pada jendela simulasi ini merupakan representasi dari
switch untuk input PLC dan merupakan status bit bagi output PLC. Layaknya sebuah switch,
lingkaran-lingkaran tersebut dapat diklik untuk mengganti status digitalnya. Namun bagi
output, lingkaran ini hanya sebuah indikator yang tidak bisa diubah nilainya oleh user (read
only).
37
38
39
Panel live data adalah tabel monitoring data secara real time pada saat hardware dalam
mode online seperti terlihat pada gambar 37.
Jendela HMI
Panel HMI berisi sebuah jendela untuk memprogram HMI outseal. Jendela ini juga dapat
digunakan untuk memonitor dan mengontrol data di dalam outseal PLC secara real time.
40
Pengoperasian
Instalasi driver
Outseal PLC nano V.4 menggunakan kabel USB untuk berkomunikasi dengan komputer.
Mikrokontroler yang digunakan sebagai otak dari PLC sebenarnya tidak mempunyai
perangkat komunikasi native USB, oleh sebab itu digunakan jalur serial untuk komunikasi
dengan komputer melalui sebuah perangkat pengubah USB menjadi serial. Perangkat
tersebut berupa sebuah IC dengan seri CH340G sehingga komputer yang ingin
berkomunikasi dengan outseal PLC memerlukan driver CH340G agar bisa berkomunikasi.
Apabila komputer tersebut sudah mempunyai driver CH340G, maka proses instalasi driver
tidak diperlukan lagi. Untuk mengetahui apakah komputer tersebut sudah mempunyai
driver CH340G apa tidak, diperlukan pengamatan pada device manager di komputer tersebut.
Berikut cara yang dapat dilakukan:
1. Klik kanan “my computer” dan pilih “properties” (lihat gambar 38) hingga muncul
jendela “system”
2. Pilih “Device manager” pada jendela “system”( lihat gambar 39)
3. Pada jendela device manager arahkan kursor menuju “Ports (COM & LPT)”
4. Cabut kabel usb, amati, tancapkan kembali dan amati kembali
Apabila pada kolom “Ports (COM & LPT)” terdapat item USB-Serial CH340 (COM X), ini
berarti driver sudah terinstal. Notasi X menunjukkan jalur COM yang nilainya mungkin
tidak sama setiap kali kabel USB dipindahkan. Apabila driver CH340 belum terinstal maka
driver ini bisa di download di website outseal.
41
42
43
Menulis program
Penulisan diagram tangga dilakukan dengan meletakkan instruksi dan mengatur properti
pada instruksi tersebut. Peletakan instruksi dapat dilakukan dengan 3 cara yakni:
1. Drag instruksi dari tab instruksi dibagian atas program (gambar 43)
2. Klik kanan tangga dan pilih instruksi (gambar 44)
3. Drag dari jendela instruksi (gambar 45)
44
45
klik kanan seperti terlihat pada gambar 46, ada yang bisa dilakukan dengan cara drag dari
papan pungut data seperti pada gambar 47 atau klik dua kali seperti pada gambar 48.
Gambar 48: Ubah parameter melalui dua kali klik pada TON
46
Pengubahan parameter pada instruksi bit dapat dilakukan dengan dua kali klik dan akan
keluar kolom pengisian(gambar 49). Dengan hanya mengisi initial variabel dan nomor data
nya tanpa tanda titik maka otomatis program akan mencari variabel yang tepat. Misalnya
dengan mengetik “S2” dan menekan tombol enter maka “S.2” akan dipilih.
Menjalankan program
Setelah program dibuat, maka program dapat disimulasikan dengan cara klik tombol
simulasi seperti pada gambar 51. Simulasi adalah metode test program tanpa menggunakan
hardware. Sebagai gantinya hardware, tombol pada papan simulasi dapat di klik untuk
mengganti dan memonitor status seperti pada gambar 52. Setelah program hasil simulasi
sudah sesuai maka program dapat diupload ke hardware dengan cara klik tombol upload.
47
48
Instruksi PLC
Agar lebih efektif dalam mempelajari buku ini, istilah-istilah penting yang akan digunakan
dalam buku ini disebutkan terlebih dahulu dalam daftar istilah.
Istilah
Sebuah diagram tangga terdiri dari beberapa tangga. Suatu tangga terdiri dari beberapa
cabang dan instruksi. Setiap tangga mempunyai nomor yang unik (tidak sama) dan
berurutan dari atas ke bawah.
Gambar 53: Istilah dalam diagram tangga
49
secara berurutan dari kiri ke kanan (satu arah) melalui kabel seperti pada rangkaian listrik
(lihat gambar 54). Diagram tangga merupakan sebuah simulasi untuk arus listrik yang
melewati kabel. Energi listrik mengalir melalui kabel dari kiri menuju kanan, jika instruksi
tersebut bersifat menghantarkan listrik/energi maka energi listrik pada jalur masuk
instruksi tersebut akan menghantarkan energi menuju jalur keluar instruksi tersebut.
Gambar 54: Istilah dalam tangga
50
Notasi Variable
Notasi atau penulisan simbol untuk sebuah variabel dalam outseal studio dapat dilihat pada
tabel notasi variabel berikut
Tabel 4: Tabel notasi variabel
Nomor urut diletakkan setelah notasi variabel dan dipisahkan dengan tanda titik. Apabila
notasi variabel tersebut mempunyai status atau sub-variabel, maka status diletakkan
setelahnya dan juga dipisahkan menggunakan titik. Struktur penulisan notasi untuk sebuah
variabel yang tidak mempunyai sub variabel adalah sebagai berikut:
Contoh:
S.1, artinya adalah switch urutan 1 (merujuk pada konektor input pin urutan 1 pada
hardware )
51
R.3, artinya adalah relay urutan 3 (merujuk pada konektor output pin urutan 3 pada
hardware)
Sedangkan struktur penulisan notasi untuk sebuah variabel yang mempunyai sub-variabel
adalah sebagai berikut:
Contoh:
T.1.EN, cara membacanya adalah “Variabel EN pada timer nomor 1”. “EN” adalah
kependekan dari “Enable”, sebuah status yang menandakan bahwa timer tersebut sedang
aktif atau tidak.
C.5.ACC, cara membacanya adalah “Variabel ACC pada counter nomor 5”. “ACC” adalah
kependekan dari “Accumulation”, sebuah variabel nilai yang menunjukkan nilai perhitungan
counter.
52
Struktur operasi
Struktur operasi outseal PLC mungkin sedikit berbeda dengan PLC lain. Outseal PLC
mempunyai sebuah diagram tangga yang dijalankan hanya satu kali saja sebelum program
utama dijalankan namanya adalah diagram initial (persiapan). Diagram ini sangat
membantu sekali untuk sebuah sistem yang tidak dilengkapi eksternal memori seperti
arduino. Diagram alir untuk operasi outseal PLC terlihat pada gambar 55 berikut.
Gambar 55: Struktur operasi
Saat hardware mulai dijalankan (power ON atau reset), maka proses yang pertama kali
dijalankan adalah diagram tangga initial. Dalam pemrograman arduino, diagram tangga
initial ini sama dengan fungsi “setup”. Setelah diagram tangga initial selesai dijalankan,
proses selanjutnya adalah menjalankan diagram tangga utama mulai dari tangga pertama
sampai tangga terakhir. Setelah tanga terakhir selesai dijalankan, proses akan kembali pada
tangga pertama lagi yang tetap dalam diagram tangga utama tersebut dan begitu seterusnya
tanpa henti. Dalam pemrograman arduino, diagram tangga main ini sama dengan fungsi
“Loop”
53
Proses eksekusi sebuah tangga dimulai dari instruksi paling kiri menuju instruksi paling
kanan. Apabila terdapat percabangan, maka cabang atas akan dijalankan terlebih dahulu
sesuai dengan gambar berikut ini.
Gambar 56: Struktur operasi
Jalannya program dijelaskan dengan analogi ujung tangga paling kiri diberi energi sehingga
jalur masuk instruksi NO dengan sumber bit S.1 berenergi. Apabila nilai S.1 adalah true
maka energi tersebut diteruskan ke jalur masuk NO dengan sumber bit S.2. Saat melewati
percabangan, S.3 akan dijalankan terlebih dahulu dilanjutkan dengan S.4. Setelah semua
instruksi pada cabang atas dan cabang bawah sudah selesai diproses, logika cabang atas
kemudian dioperasikan terhadap cabang bawah dengan bitwise operator “OR”. Apabila
salah satu dari cabang atas atau cabang bawah ada yang berenergi maka energi tersebut
akan diteruskan ke masuk ke R.1 seperti pada contoh gambar 57 dan 58 berikut.
Gambar 57: Struktur operasi cabang false
Gambar 58: Struktur operasi cabang true
54
Proses yang terjadi pada diagram tangga utama terdiri dari tiga tahap berurutan sesuai
dengan gambar yakni:
Gambar 59: Proses update data
Dari urutan proses tersebut dapat diketahui bahwa apabila dalam suatu diagram tangga
terdapat dua atau lebih instruksi digital output (R dan B) dengan sumber bit yang sama
maka instruksi digital output terakhir lah yang merupakan data valid. Seperti nilai R.2
dalam contoh gambar 60. Nilai R.2 hanya tergantung dari tangga nomor 2 walaupun logika
55
pada S.1, S.2 dan S.3 adalah false maka R.2 akan tetap true sebab pada tangga terakhir
(tangga nomor 2) nilai R.2 adalah true.
Gambar 60: Contoh diagram tangga dengan dua output bersumber sama (a)
Begitu pula dengan nilai R.1 pada gambar 61 berikut. Walaupun S.1, S.2 dan S.3 berlogika
true yang seharusnya membuat nilai R.1 bernilai true tetapi pada tangga terakhir untuk R.1
(tangga nomor 1) bernilai false sehingga nilai R.1 di hardware adalah false.
Gambar 61: Contoh diagram tangga dengan dua output bersumber sama (b)
Waktu yang dibutuhkan untuk satu kali putaran (looping) pada suatu diagram tangga disebut
dengan scan-time dan scan-time pada outseal PLC merujuk pada scan-time pada diagram
tangga utama.
56
Kelompok instruksi “Bit” ini adalah kelompok instruksi yang memproses data binary atau
bit. Bit adalah kata lain dari digital atau “binary number” dimana nilainya hanya ada dua
kemungkinan yakni “true” atau “false”. Instruksi dalam kelompok bit mempunyai sumber
data yang berada di atas simbol dan sebuah keterangan di bawah simbol. Gambar 62 adalah
contoh tampilan instruksi “Normally Open - Switch”. Pengecualian untuk instruksi OSR dan
OSF dimana sumber data memakai memori internal.
Gambar 62: Instruksi kelompok bit
57
Tabel 5: NO
Simbol Bit sumber Jalur masuk Logika Bit Sumber jalur keluar
Pada gambar 63 berikut, energi terhenti di instruksi NO dengan bit sumber S.2 karena S.2
berlogika false.
Gambar 63: Contoh pertama NO
Pada 64, energi terhenti di instruksi NO dengan bit sumber S.1 karena S.1 berlogika false.
Walaupun S.2 berlogika true namun tidak ada energi yang mengalir melalui instruksi ini
sehingga tidak ada energi yang dihantarkan untuk menyalakan R.1.
Gambar 64: Contoh kedua NO
Pada gambar 65, S.1 dan S.2 berlogika true sehingga energi dapat dihantarkan untuk
menyalakan R.1.
58
Gambar 65: Contoh ketiga NO
Sumber untuk instruksi NO dapat berasal dari switch, relay, timer dan lain-lain asalkan jenis
datanya berupa data digital (bit).
● S.1
● R.4
● T.1.DN
● C.5.CU
59
Gambar 66: Contoh pertama NC
Gambar 67: Contoh kedua NC
Instruksi NC ini sangat berguna sekali saat PLC terhubung dengan saklar jenis NPN (misal
NPN proximity switch) karena saklar tersebut mempunyai logika active low yang logikanya
berkebalikan dengan status deteksi bendanya.
c. Output
Output lebih tepat disebut dengan digital output atau output normal. Tugas dari instruksi
ini adalah menuliskan (write) suatu nilai logika (true/false) pada sumber data yang
merupakan bit tujuan. Bit tujuan harus berupa variabel dengan notasi R dan B. Nilai yang
dituliskan ke bit tujuan sesuai dengan kondisi jalur masuk (berenergi/tidak). Apabila jalur
masuk berenergi, maka logika true akan dituliskan kepada bit tujuan tersebut begitu pula
sebaliknya. Perlu diketahui bahwa kondisi jalur keluar selalu mengikuti kondisi jalur masuk
bukan mengikuti logika bit tujuan.
60
Tabel 7: Output
Simbol Bit tujuan jalur masuk jalur keluar Logika ditulis ke
bit tujuan
Relay dan
Berenergi Berenergi true
Binary saja
Misal:
Tidak berenergi Tidak berenergi false
● B.1
● R.4
Kondisi jalur output hanya dipengaruhi oleh kondisi tangga dan tidak dipengaruhi oleh
logika tujuan bit mengakibatkan pemasangan digital output bisa dilakukan secara seri tanpa
harus tergantung dengan logika komponen sebelumnya seperti terlihat pada contoh di
gambar 68. Pemasangan instruksi secara seri pada output ini tidak sesuai dengan aturan
umum penulisan diagram tangga tetapi cara ini dirasa dapat mempersingkat kerja sehingga
cara ini diperbolehkan digunakan di dalam program outseal studio.
Gambar 68: Pemasangan digital output secara parallel
61
d. Output-Not
Simbol Bit tujuan Jalur masuk Jalur keluar Logika ditulis ke bit
tujuan
Relay dan
Berenergi Berenergi false
Binary saja
Misal:
Tidak berenergi Tidak berenergi true
● B.1
● R.4
e. Output - Latch
Output-Latch adalah jenis output digital yang melakukan kerja hanya saat jalur masuk
instruksi ini berenergi. Saat kondisi jalur masuk berenergi, logika true dituliskan di bit
tujuan sedangkan saat tidak berenergi, instruksi ini tidak melakukan apa-apa atau bisa
dikatakan tidak bekerja.
Tabel 9: Output-Latch
Simbol Bit tujuan Jalur masuk Jalur keluar Logika ditulis ke bit
tujuan
Relay dan
Berenergi Berenergi true
Binary saja
Misal:
Tidak berenergi Tidak berenergi Tidak berubah
● B.1
● R.4
62
f. Output - UnLatch
Output-UnLatch adalah jenis output digital yang melakukan kerja hanya saat jalur masuk
instruksi ini berenergi sama halnya dengan Output-Latch, Namun logika yang dituliskan ke
bit tujuan adalah false tidak seperti pada Output-Latch yang menuliskan true saat kondisi
jalur masuk berenergi.
Tabel 10: Output-UnLatch
Simbol Bit tujuan Jika jalur masuk Maka jalur keluar Logika ditulis ke bit
tujuan
Relay dan
berenergi berenergi false
Binary saja
Misal:
tidak berenergi tidak berenergi tidak berubah
● B.1
● R.4
Flip on rising adalah sebuah instruksi berjenis digital output. Logika bit tujuan akan
berubah hanya saat perubahan (transisi) kondisi jalur masuk dari berenergi menuju tidak
berenergi.
Tabel 11: FOR
63
Flip on falling adalah sebuah instruksi berjenis digital output sama halnya dengan FOR
hanya waktu perubahan datanya berbeda saja yang berbeda. Bit tujuan pada instruksi ini
akan berubah hanya saat kondisi jalur masuk berubah dari tidak berenergi menuju
berenergi.
Tabel 12: FOF
Pada gambar 69, instruksi “ADD” hanya akan diproses saat peralihan logika pada S.1 dari
false menuju true (kondisi saat tombol ditekan). Instruksi “ADD” pada contoh ini akan
diproses sebanyak tiga kali apabila tombol S.1 ditekan tiga kali.
64
Gambar 69: OSR
One shot falling pada dasarnya sama dengan OSR yakni sebuah instruksi yang
menghantarkan energi hanya satu scan-time saja. Berbeda dengan OSR, komponen OSF ini
dipicu oleh perubahan kondisi jalur masuk dari berenergi menuju tidak berenergi.
Tabel 14: OSF
berenergi ke tidak berenergi berenergi
65
Kelompok instruksi waktu ini adalah kelompok instruksi yang pengoperasinya melibatkan
waktu dan pencacahnya. Untuk timer dan counter, struktur simbol instruksinya sesuai
dengan gambar 70 dibawah ini.
Gambar 70: Struktur komponen timer dan counter
TON adalah sebuah instruksi yang digunakan untuk memperlambat (delay) perubahan
logika dari true menjadi false dengan durasi keterlambatan dapat diatur. Gambar berikut
menjelaskan fungsi dari TON dimana pada gambar 71(b) terlihat terlambat 5 detik dari
gambar 71(a) saat perubahan status dari false menuju true.
Gambar 71: Penjelasan TON
66
Durasi keterlambatan dapat diatur melalui pilihan interval dan kolom preset. Interval
adalah besarnya acuan waktu (time base) dan preset adalah jumlah cacahan waktu yang
diinginkan. Misal: dinginkan keterlambatan selama 5 detik, maka interval 1 detik dapat
dipilih dan nilai preset diisi dengan nilai 5 yang berarti durasi keterlambatan yang diperoleh
sebesar satu detik sebanyak 5 kali. Untuk mendapatkan keterlambatan 5 detik juga dapat
dilakukan dengan pengaturan yang lain yakni dipilih interval 10 ms dengan nilai preset 500
yang berarti 10ms sebanyak 500 kali.
Gambar 72: Timing diagram TON
Saat kondisi jalur masuk berenergi, TON dalam kondisi aktif ditandai dengan dengan logika
EN (enable) berubah menjadi true. Bersamaan dengan itu pula timer mulai bekerja
menghitung sesuai dengan time base nya ditandai dengan status TT (timing) berlogika true.
Selama TON masih dalam proses menghitung maka status TT akan terus true dan nilai ACC
akan bertambah terus hingga tercapainya target durasi. Berdasarkan contoh kasus interval
=1 detik, preset = 5, maka selama nilai ACC belum mencapai 5 detik dan selama status EN
masih dalam kondisi true, status TT akan selalu true. Apabila sudah mencapai 5 detik, maka
kerja timer telah selesai sehingga status TT menjadi false dan status DN (done) berubah
menjadi true (lihat gambar 72).
67
Perlu diketahui bahwa kondisi jalur keluar dari instruksi ini akan selalu sama dengan
kondisi jalur masuk. Banyak kesalahan yang dialami pengguna instruksi ini yang mengira
bahwa jalur keluar akan berenergi jika status DN sudah tercapai padahal tidak seperti yang
diperkirakan. Pada contoh gambar 73, TON akan aktif menghitung waktu selama S.1 bernilai
true. Dan R.1 akan bernilai true jika penghitungan waktu sudah mencapai 10 detik.
Gambar 73: Contoh TON
Data yang digunakan pada TON sesuai dengan tabel berikut
Tabel 15: Data dan status pada TON
Penggunaan status bit pada TON sesuai dengan tabel berikut
68
Status True apabila ? Menandakan apa ? Tetap true sampai keadaan ini terjadi
.TT Jalur masuk Timer dalam proses ● Jalur masuk tidak berenergi
berenergi menghitung ● .DN = true (.ACC = .PRE)
● Ada komponen RST me-reset timer
ini
.DN Nilai .ACC sama Target penghitungan ● Jalur masuk tidak berenergi
dengan nilai .PRE waktu sudah ● Ada komponen RST me-reset timer
tercapai ini
Gambar berikut adalah timing diagram dari instruksi TON
Perlu diketahui bahwa pada instruksi TON, TOF dan SPWM terdapat kemungkinan
terlambat atau terlalu cepat dalam memulai perhitungan sebesar maksimal satu interval.
Misalkan untuk mendapatkan delay sebesar 400 detik, interval pada TON diatur 1 detik dan
preset diatur 400. Pada pengaturan ini, terdapat kemungkinan keterlambatan/terlalu cepat
memulai perhitungan maksimal 1 detik atau mungkin juga tepat sehingga kemungkinan
kesalahan maksimal perhitungan pada awal dan akhir perhitungan adalah sekitar 2/400 =
0.5%. Sebagai perbandingan, dengan interval yang sama (1 detik) apabila diinginkan delay
sebesar 10 detik maka nilai presetnya harus diisi dengan nilai 10 sehingga kesalahan
maksimal yang akan didapatkan menjadi semakin besar, yakni 2/10 = 20%.
Tingkat kesalahan 20% yang dilakukan dengan interval 1 detik tersebut dapat diperkecil
apabila dilakukan dengan interval 10 ms. Dengan interval 10 ms, nilai preset yang harus
diisi adalah 1000 sehingga didapatkan delay yang sama yakni 10 detik tetapi maximum error
yang dihasilkan lebih rendah yakni 2/1000 = 0.2%. Sehingga perlu diingat bahwa
penggunaan interval 10 ms akan menghasilkan tingkat kesalahan lebih kecil dibanding
dengan menggunakan interval 1 detik.
69
Perlu diketahui juga bahwa dalam satu diagram tangga tidak boleh terdapat lebih dari satu
instruksi TON atau TOF dengan sumber timer yang sama. Apabila terdapat lebih dari satu
sumber timer yang sama maka akan terdapat pesan kesalahan saat proses upload.
TOF adalah sebuah instruksi yang digunakan untuk memperlambat perubahan logika dari
false menjadi true yang mana durasi keterlambatannya dapat diatur. Gambar 74 terlihat
signal (b) terlihat terlambat 5 detik dari gambar sinyal (a) saat perubahan status dari true
menjadi false.
Gambar 74: instruksi TOF
Data yang digunakan pada TOF sesuai dengan tabel berikut
Tabel 17: Data dan status pada TOF
70
Saat kondisi jalur masuk berenergi, logika EN berubah menjadi true tetapi pada saat ini
timer belum bekerja menghitung sehingga status TT masih berlogika false tetapi justru DN
sudah dalam kondisi true. Saat kondisi jalur masuk berubah menjadi tidak berenergi maka
proses perhitungan dimulai yang ditandai dengan status TT berubah menjadi true dan nilai
.ACC mulai bertambah menuju target. Perubahan status DN dari true menjadi false pada
instruksi TOF menandakan proses penghitungan telah selesai dilakukan. Selama belum
mencapai target perhitungan, status TT dan DN akan tetap true. Saat target tercapai (preset
= accumulation ), maka kerja timer telah selesai sehingga status DN berubah menjadi false
dan karena proses perhitungan juga sudah selesai maka status TT juga otomatis berubah
menjadi false (lihat gambar 75).
Gambar 75: Timing diagram TOF
71
Status True bila? Menandakan apa? Tetap true sampai keadaan ini
terjadi
.TT Jalur masuk tidak Timer dalam ● Jalur masuk tidak berenergi
berenergi proses ● .DN = true (.ACC = .PRE)
Dan nilai menghitung ● Ada komponen RST me-reset
.ACC < .PRE timer ini
Dalam satu diagram tangga tidak boleh terdapat lebih dari satu instruksi TON atau TOF
dengan sumber timer yang sama. Apabila terdapat lebih dari satu sumber timer yang sama,
maka akan terdapat pesan kesalahan saat proses upload.
72
Instruksi ini biasa digunakan untuk menghitung akumulasi waktu bekerjanya suatu
peralatan. Cara bekerja instruksi ini mirip dengan instruksi TON yang membedakan adalah
nilai akumulasi waktunya tidak mengalami reset walau jalur masuk instruksi ini tidak
mendapatkan energi. Selama instruksi ini mendapatkan energi, instruksi ini akan terus
melakukan penambahan nilai sesuai dengan interval waktunya. Besarnya nilai akumulasi
waktu tersebut akan dipertahankan dan tidak akan kembali ke nol (reset) walaupun
instruksi ini kehilangan energi. Nilai akumulasi tersebut akan kembali lagi ke nol jika ada
instruksi RST mereset timer ini.
Gambar 76: Instruksi RTO
SPWM adalah sebuah instruksi yang digunakan untuk membuat pulsa dengan duty-cycle
yang diatur oleh software. Duty-cycle adalah perbandingan panjang ON dan OFF pada pulsa
gelombang kotak. Berbeda dengan hardware PWM yang bisa membuat pulsa sangat cepat
(dari 1 Hz hingga beberapa kHz), instruksi SPWM justru dapat membuat pulsa dari medium
hingga sangat lambat sekali (100 Hz hingga 0,000003 Hz) dimana kemampuan ini tidak
dipunyai oleh hardware PWM. Data yang digunakan pada SPWM sesuai dengan tabel 19.
73
Penggunaan status bit pada TON sesuai dengan tabel berikut
Tabel 20: Status pada TOF
Status True bila? Menandakan apa? Tetap true sampai keadaan ini terjadi
.ST .ACC < ON Logika pulsa (pada ● Jalur masuk tidak berenergi
posisi ON atau OFF) ● .ACC > ON
● Ada komponen RST me-reset timer ini
Gambar 77: Timing diagram SPWM
74
Timing diagram untuk SPWM dijelaskan pada gambar 77. Perlu diketahui juga bahwa dalam
satu diagram tangga tidak boleh terdapat lebih dari satu instruksi SPWM dengan sumber
timer yang sama.
e. Counter Up (CTU)
CTU adalah sebuah instruksi yang digunakan untuk menghitung maju jumlah pulsa. Pulsa
yang dimaksud disini adalah perubahan kondisi jalur masuk instruksi, dimana perubahan
kondisi dari tidak berenergi menjadi berenergi disebut 1 pulsa.
Kondisi jalur keluar pada instruksi ini selalu mengikuti kondisi jalur masuk, sama halnya
dengan komponen TON dan TOF. Status dan data yang digunakan pada CTU sesuai dengan
tabel berikut. Perubahan kondisi dari tidak berenergi menjadi berenergi pada jalur masuk
instruksi ini menyebabkan nilai akumulasi counter bertambah satu.
Tabel 21: Status dan data pada CTU
75
Status True bila? Menandakan apa? Tetap true sampai keadaan ini terjadi
.DN .ACC >= .PRE Counter ● .ACC < .PRE akibat komponen CTD
memenuhi target menggunakan counter ini juga dan
mengubah nilai .ACC
● Ada komponen RST me-reset
counter ini
.OV Nilai .ACC melebihi Nilai counter ● CTD menurunkan nilai .ACC
+32,767 melebihi batas ● Ada komponen RST me-reset
counter ini
Apabila sebuah tombol atau saklar fisik terhubung dengan input plc dan di gunakan diagram
tangga seperti pada gambar 78, maka setiap kali S.1 berubah dari false menuju true, nilai
C.1.ACC akan bertambah satu. Apabila dalam prakteknya pin S.1 pada PLC dihubungkan
dengan saklar optik, maka hasil perhitungan dari CTU ini akan normal, namun terdapat
suatu masalah apabila saklar S.1 yang digunakan berupa saklar mekanik dan masalah
tersebut bernama contact bouncing (memantul). Contact Bouncing atau biasa disebut
Bouncing saja adalah suatu keadaan dimana kontak logam yang terdapat didalam saklar
tidak tersambung secara sempurna yang mungkin terjadi karena terdapat karat atau
kurangnya tenaga untuk mendorong saklar tersebut. Bouncing dapat dibayangkan sebagai
kontak logam di dalam tombol yang tersambung dan terputus beberapa kali dalam waktu
yang cepat saat suatu tombol ditekan atau dilepas. Oleh karena itu bouncing ini dapat
menyebabkan perhitungan CTU menjadi tidak valid.
76
Gambar 78: Contoh penggunaan CTU
Gambar 78 berikut adalah gambar rekaman aktual sinyal yang dihasilkan saat suatu tombol
ditekan dan gambar 79 adalah gambar saat tombol dilepas. Terlihat bahwa saat tombol
ditekan terjadi bouncing sekitar 0.7 ms dengan jumlah transisi pulsa dari false menuju true
sekitar 12 kali dan saat dilepas terjadi transisi pulsa dari false menuju true sekitar 16 kali.
Transisi ini menyebabkan nilai akumulasi pada CTU bertambah sekitar 28 kali walau tombol
hanya ditekan sekali, sedangkan hasil penambahan yang diharapkan sebenarnya adalah satu
kali penambahan dalam sekali tombol ditekan.
77
Gambar 81: Input filter
Penyelesaian dari masalah ini ada dua yakni secara hardware dan secara software. Secara
hardware dapat dilakukan dengan menambahkan low pass filter pada input PLC sesuai
dengan gambar 81. Besarnya waktu kompensasi untuk bouncing (debouncing time) sesuai
dengan persamaan berikut
D = R×C
dengan:
D = Debouncing time(detik)
R = Resistansi (Ohm)
C = Kapasitansi (F)
Untuk antisipasi terhadap bouncing yang diperkirakan terjadi selama 20 ms maka pilihan
resistor dan kapasitor yang bisa digunakan adalah 20k dan 1uF atau 2k dan 10uF.
20 ms = 20kΩ × 1μF
20 ms = 2kΩ × 10μF
Umumnya debouncing time untuk sebuah tombol adalah 20 ms sampai 60 ms. Umumnya
pilihan debouncing time yang lebih lama digunakan untuk antisipasi terhadap penurunan
kualitas logam akibat usia pemakaian dan tingkat korosi.
Secara software, penyelesaian masalah bouncing dapat dilakukan dengan 2 cara yakni
dengan memanfaatkan timer atau dengan menerapkan input filter. Timer dapat digunakan
untuk menyaring pulsa yang disebabkan oleh bouncing dan pulsa sesungguhnya yang
diharapkan. Gambar 82 adalah diagram tangga contoh penggunaan instruksi TON untuk
menghilangkan efek bouncing (debouncing).
78
79
Input filter merupakan cara mudah untuk penyelesaian masalah masalah bouncing ini.
Hanya dengan mengatur durasi filter pada jendela setting seperti pada gambar 78 maka
pulsa bouncing dengan durasi lebih pendek dari nilai setting akan terbuang.
Gambar 78: Input filter
80
CTD adalah sebuah instruksi yang digunakan untuk menghitung mundur jumlah pulsa.
Pulsa yang dimaksud disini adalah perubahan kondisi jalur masuk instruksi dari tidak
berenergi menjadi berenergi disebut 1 pulsa.
Kondisi jalur keluar pada instruksi ini selalu mengikuti kondisi jalur input, sama halnya
dengan komponen TON, TOF dan CTU. Status dan data yang digunakan pada CTD sesuai
dengan tabel berikut. Instruksi ini sama halnya dengan CTU namun perubahan logika dari
false menjadi true pada jalur masuk instruksi ini menyebabkan nilai akumulasi counter
berkurang satu. Data yang digunakan pada CTD sesuai dengan tabel 23 dan Penggunaan
status bit pada CTD sesuai dengan tabel 24.
Tabel 23: Data dan status pada CTD
81
Status True bila? Menandakan apa? Tetap true sampai keadaan ini terjadi
g. Reset
Reset adalah komponen yang membuat nilai .ACC counter atau timer menjadi nol
dan mereset semua status nya menjadi false.
Tabel 25: Reset
Timer .ACC
.EN
.TT
.DN
Counter .ACC
.CU atau .CD
.OV atau .UN
.DN
SPWM .EN
.ST
.ACC
82
Pada contoh berikut nilai counter akan bertambah saat nilai S.1 berubah dari false menuju
true tetapi data .ACC dan semua status nya akan di reset jika S.2 bernilai true.
Gambar 83: Contoh reset
h. RHSC
RHSC adalah komponen yang membuat nilai akumulasi sebuah timer pada High
Speed Counter (HSC) internal menjadi nol.
83
Lebih besar atau sama dengan ≥ GEQ Greater than or equal to
a. EQU
EQU adalah sebuah instruksi yang digunakan untuk menguji dua nilai apakah sama atau
tidak. Instruksi ini mempunyai dua masukan nilai untuk dibandingkan yakni A dan B.
Keduanya dapat diisi variabel atau konstanta. Pada gambar 84 dicontohkan A diisi dengan
variabel dan B diisi dengan konstanta. Apabila kondisi jalur masuk instruksi ini dalam
kondisi berenergi dan nilai A sama dengan B maka energi tersebut akan dihantarkan ke jalur
keluaran instruksi. Fungsi dari instruksi ini mirip dengan switch namun sumbernya berasal
dari hasil perbandingan.
84
Gambar 84: EQU
b. GEQ
85
Gambar 85: Contoh GEQ
c. GRT
86
d. LEQ
LEQ adalah sebuah instruksi yang digunakan untuk menguji dua nilai apakah nilai pertama
lebih kecil atau sama dengan. Instruksi ini mempunyai dua masukan nilai untuk
dibandingkan yakni A dan B. Keduanya dapat diisi variabel atau konstanta. Apabila jalur
masuk instruksi ini dalam kondisi berenergi dan nilai A lebih kecil atau sama dengan B,
maka energi tersebut akan dihantarkan ke jalur keluaran.
Tabel 30: LEQ
e. LES
LES adalah sebuah instruksi yang digunakan untuk menguji dua nilai apakah nilai pertama
lebih kecil atau tidak. Instruksi ini mempunyai dua masukan nilai untuk dibandingkan yakni
A dan B. Keduanya dapat diisi variabel atau konstanta. Apabila jalur masuk instruksi ini
dalam kondisi berenergi dan nilai A lebih kecil daripada B, maka energi tersebut akan
dihantarkan ke jalur keluaran.
87
f. LIM
LIM adalah sebuah Instruksi yang digunakan untuk menguji apakah suatu nilai berada
diantara dua nilai yang lain. Instruksi ini mempunyai tiga masukan nilai untuk
dibandingkan yakni A , B dan C. A adalah batas atas, B adalah nilai yang di uji dan C adalah
batas bawah. Ketiga-tiganya dapat diisi variabel atau konstanta. Apabila kondisi jalur masuk
instruksi ini dalam kondisi berenergi dan nilai B berada diantara A dan C maka energi
tersebut akan dihantarkan ke jalur keluaran. Gambar 86 dan tabel 32 berikut menjelaskan
kerja instruksi LIM. Contoh penggunaan instruksi LIM dapat dilihat dalam gambar 87.
Gambar 86: LIM
88
Gambar 87: Contoh LIM
89
g. NEQ
NEQ adalah sebuah instruksi yang digunakan untuk menguji dua nilai apakah tidak sama.
Instruksi ini mempunyai dua masukan nilai untuk dibandingkan yakni A dan B. Keduanya
dapat diisi variabel atau konstanta. Fungsi dari instruksi ini mirip dengan switch namun
sumbernya berasal dari hasil perbandingan A dan B.
Tabel 33: NEQ
h. TMATCH
Gambar 88: Pengaturan modul RTC
90
Gambar 89: Contoh program TMATCH
Pada contoh tersebut dapat dilihat bahwa R.1 akan berlogika true apabila detik ,menit dan
jam dalam instruksi tersebut sesuai dengan nilai aktual waktu pada modul RTC.
i. DMATCH
DMATCH adalah sebuah instruksi yang digunakan untuk menguji antara daftar hari pada
instruksi ini terhadap hari (day) aktual yang ada pada modul RTC. Instruksi ini akan valid
apabila modul RTC diaktifkan dan penggunaan instruksi DMATCH dapat dilihat pada
gambar 90. Pada contoh ini R.1 akan berlogika true apabila hari pada RTC adalah senin atau
selasa, selain itu maka R.1 akan false.
Gambar 90: Contoh DMATCH
91
a. ADD
ADD adalah sebuah instruksi yang digunakan untuk menambahkan dua nilai dan
hasilnya diletakkan pada sebuah variabel. Instruksi ini mempunyai 2 masukan nilai untuk
diproses yakni A dan B dan satu keluaran untuk menampung hasil. Keduanya masukannya
dapat diisi variabel atau konstanta. Kondisi jalur keluar dari instruksi ini selalu mengikuti
kondisi jalur masuknya. Apabila hasil penjumlahan melebihi nilai batas signed 16 bit maka
hasilnya akan ditahan di titik atas yakni 32.767 begitu pula apabila hasil penghitungan lebih
rendah dari batas bawah, hasilnya akan ditahan di batas bawah tersebut yakni -32.768.
Contoh penggunaan instruksi ini dapat dilihat pada gambar 91.
92
Gambar 91: ADD
b. SUB
SUB adalah sebuah instruksi yang digunakan untuk proses pengurangan dan hasilnya
diletakkan pada sebuah variabel. Instruksi ini mempunyai 2 masukan nilai untuk diproses
yakni A dan B dan satu keluaran untuk menampung hasil. Keduanya masukannya dapat di
isi variabel atau konstanta. Apabila hasil pengurangan melebihi nilai batas signed 16 bit
maka hasilnya akan ditahan di titik atas yakni 32.767 begitu pula apabila hasil
penghitungan lebih rendah dari batas bawah, hasilnya akan ditahan di batas bawah tersebut
yakni -32.768 Kondisi jalur keluar dari instruksi ini selalu mengikuti kondisi jalur masuknya.
Contoh penggunaan instruksi ini dapat dilihat pada gambar 92.
93
Gambar 92: SUB
c. MUL
MUL adalah sebuah instruksi yang digunakan untuk proses perkalian dan hasilnya
diletakkan pada sebuah variabel. Instruksi ini mempunyai 2 masukan nilai untuk diproses
yakni A dan B dan satu keluaran untuk menampung hasil. Keduanya masukannya dapat diisi
variabel atau konstanta. Apabila hasil perkalian melebihi nilai batas signed 16 bit maka
hasilnya akan ditahan di titik atas yakni 32.767 begitu pula apabila hasil penghitungan lebih
rendah dari batas bawah, hasilnya akan ditahan di batas bawah tersebut yakni -32.768.
Kondisi jalur keluar dari instruksi ini selalu mengikuti kondisi jalur masuknya. Contoh
penggunaan instruksi ini dapat dilihat pada gambar 93
Gambar 93: MUL
94
d. DIV
DIV adalah sebuah instruksi yang digunakan untuk proses pembagian dan hasilnya
diletakkan pada sebuah variabel. Instruksi ini mempunyai 2 masukan nilai untuk diproses
yakni A dan B dan satu keluaran untuk menampung hasil. Keduanya masukannya dapat diisi
variabel atau konstanta. Karena variabel I berjenis integer atau bilangan bulat maka hasil
pembagiannya pun dibulatkan. Kondisi jalur keluar dari instruksi ini selalu mengikuti
kondisi jalur masuknya. Contoh penggunaan instruksi ini dapat dilihat pada gambar 94.
Gambar 94: DIV
e. NEG
NEG adalah sebuah instruksi yang digunakan untuk proses inverse (membalik) dari
positif ke negatif atau sebaliknya dan hasilnya diletakkan pada sebuah variabel. Instruksi ini
mempunyai 1 masukan nilai untuk diproses dan satu keluaran untuk menampung hasil.
Masukannya dapat diisi variabel atau konstanta. Kondisi jalur keluar dari instruksi ini selalu
mengikuti kondisi jalur masuknya. Contoh penggunaan instruksi ini dapat dilihat pada
gambar 95.
95
Gambar 95: NEG
96
f. SCALE
SCALE adalah sebuah instruksi yang digunakan untuk memetakan secara linear suatu nilai
pada kisaran tertentu. Ilustrasi instruksi ini dapat dilihat pada gambar 96 dan contoh
penggunaan instruksi ini dapat dilihat pada gambar 97.
Gambar 96: Scale
H = mx + b
Dimana:
H = nilai output
m = kecuraman (scaled max. -scaled min.)/(input max. -input min.)
x = nilai input
b = offset (nilai pergeseran)
Gambar 97: contoh instruksi scale
97
g. CLR
CLR adalah sebuah instruksi yang digunakan untuk mengubah nilai suatu variabel agar
bernilai 0. Instruksi ini hanya membutuhkan satu variabel sebagai inputan dan sekaligus
sebagai keluaran. Pada gambar 87 berikut jika S.1 bernilai true maka nilai I.1 akan menjadi
0. Kondisi jalur keluar dari instruksi ini selalu mengikuti kondisi jalur masuknya.
Gambar 98: CLR
98
Instruksi-instruksi yang digunakan untuk melakukan proses-proses logika (logic bitwise)
ditabelkan sebagai berikut
Tabel 35: Kelompok instruksi logika
NOT ~ NOT
OR | OR
XOR ^ XOR
a. AND
AND adalah sebuah instruksi yang digunakan untuk proses bitwise AND antara dua nilai
dan hasilnya diletakkan pada sebuah variabel. Instruksi ini mempunyai 2 masukan nilai
untuk diproses yakni A dan B dan satu keluaran untuk menampung hasil. Keduanya
masukannya dapat diisi variabel atau konstanta. Kondisi jalur keluar dari instruksi ini selalu
mengikuti kondisi jalur masuknya. Contoh penggunaan instruksi ini dapat dilihat pada
gambar 99.
99
Gambar 99: AND
b. NOT
NOT adalah sebuah Instruksi yang digunakan untuk membalikkan logika true menjadi false
pada suatu nilai dan hasilnya diletakkan pada sebuah variabel keluaran. Instruksi ini
mempunyai 1 masukan nilai untuk diproses dan satu keluaran untuk menampung hasil.
Kondisi jalur keluar dari instruksi ini selalu mengikuti kondisi jalur masuknya.
c. OR
100
Gambar 100: OR
d. XOR
XOR adalah sebuah instruksi yang digunakan untuk proses logical bitwise XOR antara dua
nilai dan hasilnya diletakkan pada sebuah variabel. Instruksi ini mempunyai 2 masukan
nilai untuk diproses yakni A dan B dan satu keluaran untuk menampung hasil. Keduanya
masukannya dapat diisi variabel atau konstanta. Contoh penggunaan instruksi ini dapat
dilihat pada gambar 101.
Gambar 101: XOR
101
Instruksi-instruksi yang digunakan untuk melakukan proses manipulasi data ditabelkan
sebagai berikut
Tabel 36: Komponen instruksi data
Proses kegunaan
a. SET
SET adalah sebuah komponen yang digunakan untuk mengatur nilai suatu variabel.
Komponen ini mempunyai 1 masukan nilai berupa konstanta dan satu keluaran untuk
menampung hasil.
b. COPY
COPY adalah sebuah komponen yang digunakan untuk menyalin nilai suatu variabel.
Komponen ini mempunyai 1 masukan nilai yang tidak boleh dalam bentuk konstanta
melainkan dari suatu variabel dan mempunyai satu keluaran untuk menampung hasil.
Contoh penggunaan instruksi SET dan COPY dapat dilihat pada gambar 102.
102
Gambar 102: SET dan copy
c. STH
STH (Saturate High) adalah sebuah instruksi yang membatasi nilai pada batas atas. Contoh
program dapat dilihat pada gambar 103.
Gambar 103: Contoh STH
103
d. STB
STH (Saturate Band) adalah sebuah instruksi yang membatasi nilai pada kisaran tertentu
sehingga terdapat batas atas dan batas bawah. Contoh program dapat dilihat pada gambar
104.
Gambar 104: contoh STB
104
e. STL
Gambar 105:
f. OSC
OSC adalah kependekan dari One Shot Change. Instruksi ini bekerja mirip dengan
OSR atau OSF yang mana instruksi ini akan menghantarkan energi hanya sekali setiap
terdapat perubahan data. Instruksi ini membutuhkan 1 buah variabel sebagai backup dan
variabel backup tersebut tidak boleh digunakan oleh instruksi lain. Contoh penggunaan
instruksi ini dapat dilihat pada gambar 106 dan 107. Instruksi ini disarankan untuk
digunakan bersama dengan instruksi MF6. Dengan adanya instruksi ini maka master akan
mengirim data kepada slave hanya saat terdapat perubahan data saja sehingga tidak
membebani kerja slave dan outseal PLC itu sendiri.
105
Gambar 106: Contoh penggunaan OSC
Gambar 107: Contoh penggunaan OSC untuk instruksi MF6
106
Modbus adalah protokol komunikasi yang umum digunakan pada PLC dan digunakan oleh
outseal PLC. Bahasan khusus tentang modbus dapat dibaca di bab protokol komunikasi pada
buku ini.
Data pada setiap perangkat modbus slave selalu disimpan dalam empat tabel yang berbeda
berdasarkan golongan data. Setiap tabel berjumlah 9999 baris, tabel-tabel itu adalah:
1. Tabel Discrete Output Coils
2. Tabel Discrete Input Contacts
3. Tabel Analog Input Registers
4. Tabel Holding Registers
Untuk memudahkan penomoran data-data tersebut, keempat tabel-tabel tersebut dijadikan
satu dan diurutkan dari tabel pertama sampai keempat seperti terlihat pada tabel 37.
Walaupun nomor data tersebut digabung tapi baris akses data nya (Alamat akses datanya)
terpisah. Manfaat dari penomoran tersebut adalah jenis data dapat dikenali dengan mudah
melalui digit pertama dari nomor data tersebut. Sebagai contoh terdapat sebuah
termometer yang bisa dibaca menggunakan modbus. Datasheet termometer tersebut
menyebutkan bahwa alamat modbus untuk hasil pembacaan temperatur adalah 30004. Ini
berarti perusahaan pembuat termometer tersebut meletakkan data temperatur alat tersebut
di nomor 30004 pada tabel peta modbus. Digit pertama dari nomor tersebut adalah 3 yang
artinya perusahaan tersebut meletakkan data temperatur pada tabel Analog Input Registers
dengan alamat akses 4 (data dengan nomor baris 4 dari tabel Analog Input Registers).
Tabel 37: Peta alamat modbus
107
Setiap perusahaan yang memproduksi perangkat modbus slave, bebas menempatkan lokasi
datanya pada tabel data modbus. Sebagai contoh misalkan sebuah perusahaan memproduksi
sebuah alat pengendali temperatur dan kelembaban. Data-data yang bisa di akses oleh
pengguna alat tersebut misalkan:
1. Temperatur
2. Kelembaban
3. Alarm/indikator yang menunjukkan keadaan kritis.
4. Nilai setting temperatur yang diinginkan
5. Nilai setting kelembaban yang diinginkan
perusahaan tersebut bebas menempatkan data pembacaan temperatur, kelembaban, data
pengaturan dan lain-lain kedalam tabel akses modbus dengan urutannya pun terserah
perusahaan tersebut. Data yang berjenis register (angka) 16 bit dan hanya bisa dibaca saja
oleh pengguna seperti data temperatur dan kelembaban umumnya ditempatkan di tabel
“Analog Input Registers” atau tabel dengan nomor 3XXXX (yang artinya tabel dengan
nomor antara 30001 sampai 39999) . Data yang berjenis digital dan hanya bisa dibaca saja
oleh pengguna misalkan data alarm sebaiknya ditempatkan di tabel tabel “Discrete Input
Contacts” atau tabel dengan nomor 1XXXX, sedangkan data yang berjenis angka 16 bit
tetapi nilainya dapat diubah-ubah oleh user seperti data setting temperatur dan
kelembaban seharusnya ditempatkan di tabel “Holding Registers” atau tabel dengan nomor
4XXXX.
Setiap tabel mempunyai 9999 jumlah baris dan semua baris tersebut boleh digunakan. Oleh
sebab itu data temperatur dan kelembaban pada contoh tersebut sebenarnya boleh atau
bebas ditempatkan di tabel 3XXXX dari baris pertama hingga baris terakhir. Bisa saja data
kelembaban dan temperatur tersebut ditempatkan di depan, tengah-tengah atau akhir baris
oleh perusahan pembuat alat tersebut. Begitu pula data setting dan data alarm. Oleh sebab
itu, agar pihak modbus master dapat mengakses data pada perangkat modbus slave
tersebut, mutlak diperlukan peta data modbus dari pembuat alat tersebut untuk mengetahui
lokasi penempatan data.
Outseal PLC baik nano atau mega secara otomatis terprogram sebagai modbus slave setelah
upload program dari outseal studio. Alamat modbus slave dapat diatur pada program
108
outseal studio melalui jendela pengaturan. Outseal PLC akan berubah menjadi master saat
instruksi MF1 hingga MF6 digunakan. Peta data modbus untuk outseal PLC yang bertindak
sebagai slave dapat dilihat pada tabel 38.
Tabel 38: Peta alamat modbus outseal PLC sebagai slave
128 hingga 255 Baca dan tulis Binary (B.1 hingga B.128)
40001-49999 0 s/d 99 Baca dan tulis Integer (I.1 hingga I.99)
Apabila jalur serial (pin RX dan TX) outseal PLC terhubung dengan RS485 converter, maka
outseal PLC tersebut dapat digunakan dalam jaringan multidrop yang mana terdapat satu
perangkat bertindak sebagai master dan perangkat yang lain bertindak sebagai slave seperti
terlihat pada gambar 108. Kelebihan lain dari penggunaan RS485 ini adalah kemampuannya
dalam komunikasi data menggunakan kabel panjang hingga satu kilometer. Apabila
diperlukan komunikasi antar PLC dengan jarak panjang maka RS485 dapat dijadikan pilihan.
109
Instruksi kegunaan
MF6 Fungsi Modbus nomor 061, Set/tulis single data holding register
110
Apabila peta alamat modbus outseal PLC sebagai slave digabungkan dengan tabel instruksi
modbus master maka didapatkan tabel 40. Untuk alamat memori secara detail dapat dilihat
pada tabel 41.
Tabel 40: Peta alamat modbus
Outseal tidak memberikan izin untuk set/menulis data pada memori untuk Relay (R.1 ~
R.128) sehingga peta alamat modbus untuk outseal PLC slave secara detail dituliskan
kembali pada tabel 41.
Tabel 41: Peta alamat modbus
111
a. MF1
MF1 adalah kependekan dari Modbus Function 01, fungsi ini dipakai apabila outseal PLC
digunakan sebagai master dan bermaksud untuk membaca data discrete/bit/digital coil dari
modbus slave. Tabel parameter untuk instruksi MF1 dapat dilihat pada tabel 42
Tabel 42: Instruksi MF1
Pengaturan keterangan
Gambar 109: Contoh MF1, point-to-point TTL
112
Gambar 110: Contoh MF1, point-to-point RS-485
Contoh program untuk outseal PLC bagian slave pada bahasan ini adalah sebuah program
lampu berkedip yang dapat dilihat pada gambar 111 dengan pengaturan parameter seperti
pada gambar 112 yakni alamat slave 25 dan baudrate 9600.
Gambar 111: Contoh MF1-slave-1
113
114
Program pada master tersebut menunjukkan bahwa master secara terus menerus meminta
data discrete output dari slave sebanyak 1 bit data dan hasil pembacaan tersebut disimpan
dalam B.1. Pada nomor tangga ke 1, data B.1 diteruskan ke output R.1. Apabila tidak ada
masalah, maka kedip dari R.1 pada master akan mengikuti kedip R.1 pada slave. Apabila
terdapat kegagalan komunikasi hingga 2 mili detik (time out) maka program internal pada
outseal PLC akan melanjutkan eksekusi instruksi selanjutnya. Apabila komunikasi sukses
sebelum time out maka PLC tidak menunggu hingga timeout untuk melanjutkan eksekusi
instruksi selanjutnya pada diagram tangga.
Gambar 114 dan gambar 115 secara berurut adalah program untuk slave dan master.
Program pada slave ini berbeda dengan contoh sebelumnya yakni R.5 yang berkedip dan
program pada master mencoba membaca kedip R.5 milik slave untuk diikuti oleh kedip R.1
milik master. Program contoh ini sama dengan contoh sebelumnya hanya alamat awal baca
pada instruksi MF1 saja yang berbeda.
Gambar 114: Contoh MF1-slave-2
Gambar 115: Contoh MF1-master-2
115
Untuk contoh komunikasi outseal pada jaringan multi drop dapat dilihat pada gambar 116.
Sebuah outseal PLC bertindak sebagai master dan 3 outseal PLC yang lain terhubung
melalui RS485 sebagai slave dengan alamat yang berbeda-beda yakni 8,13 dan 5. Ketiga
salve tersebut diprogram dengan diagram tangga yang sama seperti terlihat pada gambar
117. Namun pengaturan alamat slave masing-masing berbeda sesuai gambar 118.
Gambar 116: Contoh komunikasi multi drop untuk MF1
Gambar 117: Contoh program salve pada contoh MF1
116
Pemrograman untuk outseal PLC yang bertindak sebagai master dapat dilihat pada gambar
119 dan gambar 120. Gambar 120 adalah lanjutan diagram tangga dari gambar 119. Pada
tangga ke 0 hingga tangga ke 2 outseal PLC mencoba mengambil data dari 3 salve dengan
alamat 8,13 dan 5. Data yang diambil sebanyak 2 data dan hasil pembacaan data tersebut
diletakkan pada alamat awal B.1 untuk slave dengan alamat 8 sehingga data kedua dari
pembacaan akan diletakkan pada B.2. Begitu pula untuk alamat slave 13, Data akan
disimpan pada B.5 dan B.6.
117
118
Gambar 120 memperlihatkan data hasil pembacaan dari seluruh salve yang ada dipetakan
pada R.1 hingga R.8, sehingga dengan mengaktifkan S.1 pada salve dengan alamat 8 maka
R.1 pada master juga akan aktif.
119
b. MF2
MF2 adalah kependekan dari Modbus Function 02, fungsi ini dipakai apabila outseal PLC
digunakan sebagai master dan bermaksud untuk membaca data discrete/bit/digital contact
dari modbus slave. Tabel parameter untuk instruksi MF1 dapat dilihat pada tabel 43
Tabel 43: Instruksi MF2
Pengaturan keterangan
Gambar 121: Perbandingan instruksi MF1 dan MF2
120
Sebagai contoh, sebuah outseal PLC difungsikan sebagai master dan terhubung dengan
sebuah outseal PLC lain yang digunakan sebagai slave. Pengkabelan dapat dilakukan
menggunakan jaringan point-to-point dengan dihubungkan secara langsung (TTL) seperti
pada gambar 122.
Gambar 122: Contoh MF2, point-to-point TTL
Outseal PLC akan otomatis bertindak sebagai slave apabila hardware tersebut telah di
program menggunakan outseal studio. Oleh karena itu sebagai contoh program untuk salve
pada bahasan ini dapat digunakan program kosong (tanpa diagram tangga sama sekali)
namun perlu dilakukan pengaturan pada alamat slave dan baudrate. Pada contoh ini
digunakan baud rate 57600 bps dan alamat slave 1 seperti terlihat pada gambar 123. Apabila
upload program kosong tersebut sukses maka outseal PLC sudah dapat berkomunikasi
sebagai modbus slave.
Gambar 123: Pengaturan slave untuk contoh MF2
Program yang digunakan pada bagian master dapat dilihat pada gambar 124. Program pada
master tersebut menunjukkan bahwa master secara terus menerus meminta data discrete
contact dari slave sebanyak 8 bit data melalui instruksi MF2 dan hasil pembacaan tersebut
disimpan dalam 8 bit memori yang dimulai dari B.1. 8 bit data hasil pembacaan diteruskan
121
Gambar 124: Program master untuk contoh instruksi MF2
122
c. MF3
MF3 adalah kependekan dari Modbus Function 03, instruksi ini dipakai apabila
outseal PLC digunakan sebagai master dan bermaksud untuk membaca data register (signed
16 bit number) pada tabel holding register dari modbus slave. Tabel parameter untuk
instruksi MF3 dapat dilihat pada tabel 44
Tabel 44: Instruksi MF3
Pengaturan keterangan
Awal baca Urutan nomor register yang digunakan sebagai awal pembacaan
Gambar 125: Contoh MF3, point-to-point TTL
123
124
Pada contoh gambar 126 terlihat bahwa data akumulasi waktu dari SPWM disalin menuju
I.20 sehingga nilai I.20 akan selalu mengikuti data akumulasi tersebut. Karena nomor akses
tabel pada modbus RTU dimulai dari 0, maka angka 0 menunjukkan I.1, angka 1
menunjukkan I.2 dan seterusnya sehingga program untuk master digunakan angka 19 untuk
parameter awal baca. Nomor tangga 1,2,3 dan 4 adalah indikator untuk data yang diperoleh.
d. MF4
MF4 adalah kependekan dari Modbus Function 04, instruksi ini dipakai apabila outseal PLC
digunakan sebagai master dan bermaksud untuk membaca data register (signed 16 bit
number) dari tabel input register pada modbus slave. Tabel parameter untuk instruksi MF4
dapat dilihat pada tabel 45
Tabel 45: Instruksi MF4
Pengaturan keterangan
125
Gambar 128: Contoh MF4, point-to-point TTL
Gambar 129: Pengaktifan analog input
126
e. MF5
MF5 adalah kependekan dari Modbus Function 05, instruksi ini dipakai apabila outseal PLC
digunakan sebagai master dan bermaksud untuk menulis data status/bit di tabel discrete
coil pada modbus slave. Tabel parameter untuk instruksi MF5 dapat dilihat pada tabel 46
Tabel 46: Instruksi MF5
Pengaturan keterangan
Nomor coil Nomor coil pada slave yang dijadikan target penulisan
127
Sebagai contoh, sebuah outseal PLC difungsikan sebagai master dan terhubung dengan
sebuah outseal PLC lain yang digunakan sebagai slave dan master mendapat tugas membaca
register dari slave. Pengkabelan dapat dilakukan menggunakan jaringan point-to-point
dengan dihubungkan secara langsung (TTL) seperti pada gambar 131. Contoh program
untuk slave dapat dilihat pada gambar 132 dan contoh program untuk master dapat dilihat
pada gambar 133.
Gambar 131: Contoh MF5, point-to-point TTL
128
f. MF6
MF6 adalah kependekan dari Modbus Function 06, instruksi ini dipakai apabila outseal PLC
digunakan sebagai master dan bermaksud untuk menulis data register (signed 16 bit
number) di tabel holding register pada modbus slave. Tabel parameter untuk instruksi MF6
dapat dilihat pada tabel 47
129
Tabel 47: Instruksi MF6
Pengaturan keterangan
Gambar 134: Contoh MF6, point-to-point TTL
130
Instruksi OSC digunakan agar frekuensi pengiriman data menuju slave hanya dilakukan saat
terdapat perubahan data pada I.1 saja sehingga dapat mengurangi beban kerja PLC dan juga
beban kerja pihak slave.
131
Gambar 137: PID control diagram
Instruksi PID membutuhkan 10 ruang data yang diambil dari variabel integer untuk
melakukan proses perhitungan. Berikut urutan data pada PID
132
1 Input (PV) Proses variable, Nilai ini umumnya didapat dari sensor
2 Set point (SP) Nilai PV yang diinginkan, nilai ini diatur oleh pengguna
3 Output (CV) Nilai hasil perhitungan PID, digunakan sebagai CV, read only
133
Gambar 138: Instruksi PID
Mengacu pada contoh instruksi PID dengan sumber data memori adalah I.21 seperti pada
gambar 138, maka pemetaan 10 data yang dimulai dari I.21 akan sesuai dengan tabel
berikut.
Tabel 49: pemetaan data PID
4 Kp I.24
5 Ki I.25
6 Kd I.26
7 Interval I.27
134
Gambar 139: Contoh instruksi PID
Jenis data untuk PV dan CV dalam PID adalah 16 bit dimana mempunyai rentang data
±32,768. Untuk memetakan rentang data sesuai dengan rentang data yang di inginkan dapat
digunakan instruksi SCALE. Contoh aplikasi instruksi PID dapat dilihat pada gambar 140
dan 141.
135
Gambar 140: Contoh wiring aplikasi PID
Gambar 141: Contoh PID control diagram
136
a. BSL
BSL adalah kependekan dari Bit Shift Left. Instruksi ini berfungsi mengambil suatu
kumpulan bit (bit array) kemudian menggeser kumpulan bit tersebut ke arah kiri (ke urutan
yang lebih besar) kemudian mengembalikan kembali ke lokasi pengambilan data. Parameter
dari instruksi ini dapat dilihat pada tabel berikut.
Tabel 50: Parameter instruksi BSL
Parameter Keterangan
Gambar 142: Contoh program BSL
137
Gambar 143: Contoh 1 untuk BSL
138
Gambar 144: Contoh 2 untuk BSL
139
b. BSR
BSR adalah kependekan dari Bit Shift Right. Instruksi ini berfungsi mengambil suatu
kumpulan bit (bit array) kemudian menggeser kumpulan bit tersebut ke arah kanan (ke
urutan yang lebih kecil) kemudian mengembalikan kembali ke lokasi pengambilan data.
Parameter dari instruksi ini dapat dilihat pada tabel berikut.
Tabel 51: Parameter instruksi BSR
Parameter Keterangan
140
Gambar 146: Contoh 1 untuk BSR
141
Gambar 147: Contoh 1 untuk BSR
142
Memulai pengoperasian
Hal-hal penting yang harus ditentukan saat memulai pengoperasian outseal studio adalah:
Target dari project ini adalah sebuah lampu dapat berkedip dengan waktu yang telah
ditentukan. Langkah pertama yang harus dilakukan adalah dengan membuka outseal studio.
Tampilan dari outseal studio akan seperti dalam gambar 148.
Jendela pengaturan dibuka dengan klik tombol setting dan dapat dilihat pada gambar 149.
Nama project dapat diubah pada jendela ini melalui kolom nama. Hardware yang digunakan
dipilih sesuai dengan jenis hardware yang digunakan. Dalam contoh ini digunakan hardware
outseal PLC mega v.1. Kolom port harus diisi dengan COM port yang sesuai dengan
hardware atau bisa di cek pada jendela device manager seperti pada gambar 150.
143
144
Gambar 150: Device manager untuk pengamatan COM port yang digunakan
145
146
Penambahan anak tangga dapat dilakukan dengan menekan tombol plus pada sisi kiri
diagram seperti terlihat pada gambar 155. Kemudian dilanjutkan dengan penambahan
instruksi seperti pada gambar 156.
147
Pemberian parameter dapat dilakukan dengan klik kanan instruksi dan pilih variabel yang
dikehendaki seperti pada gambar 157. Atau dengan drag dari papan pungut data seperti pada
gambar 158. Hasil dari pengisian parameter source pada instruksi PWM dapat dilihat pada
gambar 159.
148
149
Pengisian parameter untuk instruksi NO dapat dilakukan dengan beberapa pilihan cara
yakni drag dari status pada instruksi PWM seperti pada gambar 160, drag dari papan pungut
data seperti pada gambar 161 atau dengan klik kanan seperti pada gambar 162.
150
Gambar 163 memperlihatkan keseluruhan program untuk project lampu berkedip namun
tersisa parameter untuk instruksi SPWM yang belum lengkap. Pengisian parameter untuk
SPWM dilakukan dengan klik dua kali seperti terlihat pada gambar 164 dan hasil akhir dari
program dapat dilihat pada gambar 165.
151
Test program dilakukan dengan menekan tombol test seprti terlihat pada gambar 166 dan
apabila tidak ada kesalahan maka akan terdapat pesan seperti terlihat pada gambar 167.
152
Sebelum program dikirim ke hardware, program dapat disimulasikan terlebih dahulu dengan
menekan tombol simulasi seperti terlihat pada gambar 168. Apabila program sudah berjalan
sesuai dengan harapan maka langkah selanjutnya adalah menekan tombol upload untuk
mengirim program tersebut menuju hardware dan di simpan dalam flash memory hardware.
Apabila proses upload telah berhasil, maka pesan keberhasilan akan terlihat seperti pada
gambar 169.
153
Untuk monitoring kerja hardware secara realtime dapat dilakukan dengan menekan tombol
online seperti terlihat pada gambar 170.
Pengkabelan output dari hardware untuk program contoh lampu berkedip ini dapat
dilakukan dengan menggunakan relay coil secara langsung seperti pada gambar 171 atau
dapat menggunakan relay module seperti pada gambar 172.
154
155
Program untuk lampu berjalan dapat dilakukan dengan berbagai cara. Cara yang paling
mudah untuk dicontohkan adalah dengan cara perbandingan seperti pada gambar 173
berikut. Program ini dilakukan dengan membangkitkan penambahan nilai secara akumulatif
menggunakan instruksi SPWM dengan interval 1 detik dan membandingkan nilainya dengan
nilai yang diinginkan. Pengkabelan untuk output lebih dari satu dicontohkan menggunakan
relay module seperti pada gambar 174.
156
157
Sebagai contoh project yang menggunakan switch, project quiz 3 regu dipakai sebagai
contoh dan dapat dilihat pada gambar 175 dan pengkabelan untuk project quiz 3 regu ini
dapat dilihat pada gambar 177.
158
159
1. Multi-drop
2. Multi-point
3. Point-to-point
Jaringan multi-drop adalah sebuah jaringan yang memiliki satu pihak pengirim
(master/transceiver) saja dan memiliki banyak penerima (slave/receiver). EIA-422/485
interface [RS422/RS485] adalah contoh dari jenis jaringan ini dimana terdapat satu master
yang berkomunikasi dengan banyak salve dan semuanya terhubung dalam interface (kabel)
yang sama. Jaringan multi-point berbeda dengan multi-drop dimana setiap perangkat dapat
menjadi pihak master atau pihak slave yang artinya terdapat lebih dari satu master.
Sedangkan point-to-point adalah jaringan dengan dua peserta saja.
Outseal menggunakan protokol komunikasi standar yang umum digunakan pada PLC yakni
protokol komunikasi dengan nama “MODBUS”. Dengan protokol modbus, outseal dapat
berkomunikasi pada jaringan multi-drop atau pada point-to-point. Arti kata “protokol”
adalah “aturan” sehingga yang dimaksud dari suatu protokol komunikasi adalah suatu
aturan pada proses komunikasi agar berjalan sesuai dengan harapan. Salah satu contoh
160
aturan berkomunikasi antar manusia adalah aturan komunikasi pada komunitas radio
amatir (handy talkie) yang mengharuskan berbicara secara bergantian. Contoh yang lain
adalah pemakaian sandi dalam berkomunikasi antar agen rahasia dan masih banyak contoh
lain. Apabila aturan-aturan tersebut tidak dijalankan, maka proses komunikasi tidak akan
berjalan sesuai harapan. Begitu pula dengan komunikasi antar perangkat elektronik,
terdapat juga aturan-aturan yang dibuat demi kelancaran berkomunikasi. Suatu aturan
tersebut bisa menyangkut tata cara berkomunikasi atau bahkan kelengkapan hardware
untuk komunikasi. Aturan-aturan komunikasi itu disebut sebagai protokol komunikasi.
Protokol Modbus
Modbus adalah sebuah protokol komunikasi yang dikembangkan oleh Modicon pada tahun
1979 digunakan untuk mengatur komunikasi dengan PLC. Protokol ini telah bersifat royalty
free sehingga seseorang tidak perlu membayar royalti kepada pihak Modicon jika orang
tersebut menerapkan protokol ini pada produknya. Oleh sebab itulah protokol ini menjadi
terkenal dan banyak dipakai hingga sekarang.
Apabila sebuah perangkat luar ingin berkomunikasi dengan PLC, maka perangkat luar
tersebut harus mengikuti aturan komunikasi yang digunakan PLC tersebut. Jika PLC
tersebut menggunakan protokol komunikasi modbus, maka perangkat luar tersebut juga
harus mengikuti aturan modbus tersebut. Karena outseal PLC menggunakan protokol
modbus dalam berkomunikasi, maka apabila seseorang ingin perangkatnya berkomunikasi
dengan outseal PLC, maka orang tersebut harus mengerti terlebih dahulu dasar dari
protokol modbus ini.
Karena media komunikasi dan jenis data yang bermacam-macam maka protokol MODBUS
ini pun menjadi bermacam-macam, tetapi inti dari format komunikasi datanya adalah sama.
Berikut beberapa jenis protokol modbus
1. Modbus RTU
2. Modbus ASCII
3. Modbus TCP
4. Modbus over UDP
5. Dan lain-lain
161
Outseal memilih menggunakan modbus RTU (Remote Terminal Unit) sebagai protokol
komunikasi. Berikut ini adalah daftar aturan yang telah disederhanakan untuk membantu
memahami protokol modbus.
1. Ada yang bertindak sebagai master dan ada yang bertindak sebagai slave. Master adalah
promotor komunikasi dan bertindak sebagai pengontrol komunikasi sedangkan slave
adalah pihak yang di kontrol oleh master.
2. Dalam sebuah sistem komunikasi, hanya terdapat satu master saja dan jumlah slave
bisa mencapai 255
3. Setiap slave harus mempunyai alamat yang berbeda dari slave yang lain
4. Jika komunikasi yang dilakukan menggunakan interface RS232 atau TTL maka jumlah
slave dibatasi hanya satu saja (point-to-point). Berbeda apabila menggunakan
RS485/RS422, dimana jumlah slave dapat dipasang banyak (multi-drop). Begitu pula
dengan panjang kabel, teknologi RS485 memungkinkan pemakaian kabel yang panjang
hingga kurang lebih 1 km, sedangkan jika menggunakan RS232 maka kabel yang
digunakan tidak boleh lebih dari 15 meter dan jika menggunakan TTL, maka kabel yang
digunakan tidak boleh lebih dari 2 meter.
5. Komunikasi diawali dengan master mengirim data request ke semua slave, data
tersebut berbentuk frame (kumpulan data disusun seri) mengandung:
a. Alamat slave
b. Kode fungsi
c. Data
d. CRC
Gambar 179: Frame data request dikirim oleh master
Frame data terlihat seperti pada gambar 179. Setelah master mengirim frame data
request, maka semua perangkat slave akan menerima data request tersebut dan
apabila terdapat kesesuaian antara alamat slave pada frame data request dengan
alamat slave yang dimiliki salah satu perangkat slave, maka slave dengan alamat
yang sesuai tersebut tersebut akan memprosesnya. Perangkat slave dengan alamat
162
yang tidak sesuai dengan frame request akan mengabaikannya. Oleh sebab itulah
alamat setiap slave harus berbeda.
6. Setelah menerima data request dari master, maka slave akan merespon dengan cara
mengirim kembali sebuah data respon menuju master. Data tersebut menunjukkan
jawaban dari slave yang merupakan informasi bahwa data yang diterima tersebut sudah
lengkap, gagal atau sudah diproses dengan benar oleh slave. Data respon yang dikirim
kembali oleh slave juga merupakan frame data sesuai dengan gambar 180 berikut
Gambar 180: Frame data dikirim oleh slave
7. Proses pengiriman data dilakukan dengan bergantian, dimana slave dan master tidak
boleh mengirim data secara bersamaan dan masterlah yang mengontrol pengiriman
data. Master mengirim data request terlebih dahulu kemudian dilanjutkan dengan
pengiriman respon jawaban oleh slave yang mempunyai alamat slave yang sesuai
dengan frame data request. Apabila perangkat slave yang ingin diajak berkomunikasi
tidak ada (contoh: master mengirim data request dengan alamat slave = 7, tetapi tidak
ada perangkat slave dengan alamat 7 dalam jaringan), maka master tidak akan
memperoleh jawaban hingga batas waktunya (time out). Hal ini dapat diartikan bahwa
komunikasi dengan slave dengan alamat no 7 dinyatakan gagal karena waktu habis.
Master boleh mengirim data request lagi setelah time out atau setelah data respon dari
slave sukses diterima.
Sebagai contoh, terdapat satu outseal PLC terhubung ke jaringan multi-drop menggunakan
media RS485 dengan 3 outseal PLC yang lain sebagai slave dengan alamat 8,13 dan 5 seperti
dengan gambar 181.
163
Gambar 181: Komunikasi outseal PLC pada jaringan multi-drop
Apabila master ingin mengirim atau membaca data dari perangkat slave dengan alamat 8
dan 5, maka proses komunikasi harus dilakukan bergantian. Master boleh memilih dengan
slave nomor berapa saja untuk berkomunikasi terlebih dahulu tidak harus berurutan. Sesuai
dengan contoh pada gambar 182, master berkomunikasi terlebih dahulu dengan salve 8
kemudian dilanjutkan dengan berkomunikasi dengan slave 5. Komunikasi dengan salve 8,
diawali dengan master mengirim paket data request dengan alamat slave = 8, kemudian
dilanjutkan dengan master menunggu data respon dari salve hingga timeout yang
ditentukan oleh master sendiri. Jika proses menunggu data dari slave sudah habis (timeout)
maka proses komunikasi dikatakan gagal. jika mendapat balasan dari slave 8 sebelum
timeout maka master bisa memproses data balasan tersebut sebagai jawaban dari slave.
Kemudian proses tersebut diulang untuk slave dengan alamat yang lain. Setelah alamat
slave terakhir memberi respon, maka master mengulang berkomunikasi dengan perangkat
slave pertama lagi (slave 8). Walaupun terdapat banyak jumlah slave yang terhubung pada
jaringan, master tidak diharuskan berkomunikasi dengan semua perangkat slave yang ada.
164
Gambar 182: Timeline komunikasi modbus
165
Gambar 183: Frame data request
a. Alamat Slave
Alamat slave berjumlah 1 byte, dan 1 byte adalah 8 bit atau angka 255 dalam desimal, oleh
sebab itulah slave dibatasi jumlahnya hanya 255 karena jumlah byte untuk alamat slave
yang disediakan hanya 1 byte. Dan umumnya alamat 0 digunakan untuk
broadcast/announcement sehingga jumlah slave dibatasi 254 saja.
b. Kode Fungsi
Kode fungsi menyatakan keinginan master terhadap slave (membaca atau mengubah data).
Kode fungsi modbus RTU terangkum dalam tabel berikut:
166
05 Menulis data bit pada tabel Mengendalikan B.1 hingga B.128
discrete coil
06 Menulis data register pada Mengubah nilai I.1 hingga I.100
tabel holding register
Umumnya data ditulis dalam bilangan hexadesimal untuk memudahkan penulisan. Software
kalkulator pada PC dapat digunakan untuk mengubah data hexadesimal ke desimal atau ke
biner agar lebih cepat. Dari gambar di bawah terlihat bahwa angka 11 hexadesimal = 17
desimal = 0001-0001 biner.
167
Gambar 184: Software kalkulator pada PC
c. Data
Bingkai data mempunyai jumlah data yang tergantung dari kode fungsi. Berikut contoh
frame data request untuk mengakses outseal PLC dengan kode Fungsi 1 ( membaca coil).
168
Gambar 185: Contoh komunikasi data
Berdasarkan gambar 185, master mengirim data request 1101001300250E84 dan kemudian
slave merespon dengan 110105CD6BB20E1B45E6. Keterangan tentang data request yang
dikirim oleh master dapat dilihat pada tabel berikut
Tabel 53: Contoh data request
Apabila kode fungsi pada data request adalah 01, ini berarti master ingin membaca data
status coil dari slave. Dilanjutkan dengan 4 byte data (00 13 00 25). 2 byte pertama (0013)
adalah alamat mulainya pembacaan dan 2 byte selanjutnya (0025) adalah jumlah coil yang
akan dibaca.
Tabel data di atas menunjukkan bahwa awal pembacaan data adalah 19 dan jumlah bit yang
dibaca adalah 37. Karena pembacaan modbus dimulai dari angka 0 maka alamat pembacaan
169
Gambar 186: visualisasi pembacaan data
Apabila pihak master ingin membaca status R.1 sampai R.128 pada outseal PLC yang
bertindak sebagai slave, maka master harus mengirim paket (frame) data request menuju
outseal PLC dengan alamat slave yang sesuai dan menggunakan kode fungsi 01 (membaca
coil). Setelah itu slave (outseal PLC) akan memberi balasan dengan alamat dan kode fungsi
yang sama disertai dengan data yang ada. Tabel 44 menunjukkan respon dari slave dan dari
tabel tersebut didapatkan data 05CD6BB20E1B dari salve. Arti dari data tersebut dibahas
dalam bab selanjutnya.
Tabel 54: Contoh data respon
d. CRC
Cyclic redundancy check (CRC) adalah sebuah metode untuk pengecekan kesalahan sebuah
data yang dikirim. CRC adalah sebuah nilai/konstanta yang dihitung dari pemrosesan
170
data-data yang masuk. Apabila data yang masuk lebih dari satu maka CRC akan dihitung
bergantian secara seri, sehingga berapapun jumlah data yang masuk hasil akhirnya adalah
sebuah konstanta. Cara mudah untuk menghitung CRC adalah menggunakan online
calculator. Berikut adalah beberapa calculator modbus RTU online:
1. https://www.lammertbies.nl/comm/info/crc-calculation.html
2. https://www.scadacore.com/tools/programming-calculators/online-checksum-calcul
ator/
Pada contoh diatas master mengirim data request “1101001300250E84”, ini berarti data
yang dikirim sebenarnya hanya 110100130025 sedangkan 0E84 adalah data hasil
perhitungan CRC yang dilakukan oleh master. Perlu diketahui dan diingat bahwa 0E84
adalah sebuah konstanta hasil perhitungan CRC yang dilakukan oleh master terhadap data
110100130025. Setelah slave menerima data 1101001300250E84 dari master, slave juga akan
memilah data ini menjadi 2 bagian yakni 110100130025 dan 0E84. Kemudian slave akan
menghitung CRC sendiri dari data bagian pertama yang diterimanya yakni 110100130025
seperti apa yang dilakukan master.
Karena rumus perhitungan CRC antara master dan slave adalah sama, maka CRC hasil
perhitungan slave juga seharusnya sama dengan data bagian kedua dari master yakni 0E84.
Jika ternyata sama, berarti data yang dikirim master adalah sama dengan data yang
diterima slave. Namun gangguan komunikasi bisa saja terjadi yang menyebabkan data yang
dikirim oleh master tidak sama dengan data yang diterima oleh slave misal akibat EMI
noise, ripple voltage noise dsb. Dengan adanya perhitungan CRC maka, kesalahan ini dapat
terlihat dari perbedaan CRC hasil perhitungan master dan CRC hasil perhitungan slave.
Sehingga fungsi dari CRC ini adalah mengetahui apakah data yang dikirim oleh master
adalah sama dengan yang diterima oleh slave.
171
Contoh Komunikasi
Berikut adalah format data request dan respon pada kode fungsi modbus
172
173
174
Contoh komunikasi
Outseal PLC dapat berkomunikasi dengan perangkat luar menggunakan protokol
komunikasi modbus RTU. Untuk memudahkan belajar komunikasi dengan outseal PLC,
contoh-contoh akan diberikan dengan menggunakan berbagai contoh aplikasi dan interface.
QmodMaster
QmoMaster dipilih sebagai contoh dalam bahasan ini karena QmodMaster berjalan di PC,
menggunakan USB sebagai media komunikasi dan program itu dinilai sudah cukup baik,
mudah dan sederhana. Sebelum mencoba program ini outseal PLC disiapkan dengan
diprogram seperti gambar 187. Status R.1 tergantung dari status S.1, Status R.2 berkedip
setiap 5 detik sekali, nilai I.1 dan I.2 berubah mengikuti akumulasi waktu dari SPWM dan
R.3 bernilai true apabila I.3 bernilai 7. Pengaturan untuk slave dilakukan seperti pada
gambar 188 yakni alamat slave 1 dan baud rate 57600 bps.
175
Gambar 187: Program slave untuk contoh QmodMaster
176
Gambar 188: Pengaturan untuk contoh slave komunikasi dengan QmodMaster
Pengaturan jalur komunikasi pada QmodMaster dilakukan dengan cara klik “Options->
Modbus RTU” seperti pada gambar 189 dan dilanjutkan dengan pengisian parameter
pengaturan seperti pada gambar 190.
Gambar 189: Tool pengaturan komunikasi QmodMaster
177
Gambar 190: Pengaturan komunikasi QmodMaster
Kolom serial port harus diisi dengan port yang sesuai. Untuk melihat nomor COM port yang
digunakan dalam berkomunikasi dapat dibuka jendela device manager pada windows. Pada
gambar 191 terlihat outseal PLC disambungkan melalui kabel USB pada COM port 3 oleh
sebab itu kolom serial port pada jendela pengaturan di QmodMaster juga harus diisi dengan
nomor port yang sama.
178
Gambar 191: Pengamatan COM port pada device manager untuk QmodMaster
Kolom baudrate harus diisi dengan baudrate yang sama dengan saat memprogram plc di
outseal studio. Pada contoh ini digunakan baud rate 57600. Data untuk parameter data bits,
stop bits, parity, dan RTS pada outseal secara berurutan dibuat tetap (fix) yakni 8,1,none
dan disable.
Pengisian parameter pada jendela utama Qmodmaster dapat dilihat pada gambar 192,
“Slave Address” harus sama dengan pengaturan di outseal studio, dalam contoh ini
digunakan slave address 1 dengan modbus mode adalah RTU.
179
Gambar 192: Fungsi tombol pada QmodMaster
Fungsi tombol-tombol pada program QmodMaster sebagai berikut:
Tombol A berfungsi untuk menghubungkan port komunikasi
Tombol B berfungsi untuk mengirim modbus frame data satu kali saja tepat saat tombol
ditekan.
Tombol C berfungsi untuk mengirim modbus frame data secara periodik dengan selang
waktu sesuai dengan nilai pada kolom “Scan Rate”
Tombol D berfungsi untuk memonitor frame data selama komunikasi
Langkah selanjutnya adalah menekan tombol A “connect”
180
Untuk mengetahui status R.1 pada outseal PLC, maka yang harus dilakukan adalah mengisi
data seperti pada gambar berikut ini
Gambar 193: Pembacaan status R.1 pada QmodMaster
Function Code = 1, yang artinya master membaca status suatu bit dari tabel discrete coil
milik salve
Start Address = 0, yang artinya pembacaan data dimulai dari baris pertama tabel discrete
coil yang mengarah pada R.1 Apabila start address di isi dengan 1, ini berarti pembacaan
data dimulai dari R.2 karena dalam komunikasi data menggunakan modbus alamat data
dimulai dari 0 bukan 1.
Number of Coil = 1, ini artinya jumlah data bit yang ingin dibaca oleh master hanya satu
data saja, yakni hanya R.1 saja
Paket data yang dikirim oleh software QmodMaster kepada Outseal PLC dapat dilihat pada
“bus monitor” dengan menekan tombol “D” (lihat gambar192)
181
Tx = PC mengirim paket data menuju PLC
Rx = PC menerima data balasan yang berasal dari PLC
Gambar 194: Rekam komunikasi data
Gambar 195: Rekam komunikasi data TX
Gambar 196: Rekam komunikasi data RX
Rekam komunikasi data untuk TX dan RX dapat dilihat pada bus monitor seperti terlihat
pada gambar 194, 195 dan 196.
Pembacaan data dapat dilakukan dengan dua jumlah data sekaligus. Dua data ini dimulai
dari R.1 yang berarti pembacaan keseluruhan data adalah membaca nilai R.1 sampai dengan
R.2. Hasilnya dapat dilihat pada gambar 197.
182
Gambar 197: Pembacaan dua bit data pada QmodMaster
Pembacaan dua nilai register dimulai dari I.1 pada outseal PLC dapat dilihat pada gambar
198.
Gambar 198: Pembacaan dua data register pada QmodMaster
Outseal membatasi jumlah pembacaan data register maksimal 20 data, dapat dimulai dari
mana saja. Jika pembacaan data di mulai dari I.1 maka maka pembacaan data sekaligus
hanya sampai I.20. Jika jumlah data yang di baca melebihi 20 dalam satu kali baca maka
hendaknya dilakukan dua kali.
183
Gambar 199: penulisan data register pada QmodMaster
Penulisan data register dapat dilakukan sesuai gambar 199. Penggantian nilai yang akan
dituliskan dilakukan dengan mengganti langsung pada kolom nilai. Pada contoh ini nilai 7
dituliskan ke register I.3 yang akan mengaktifkan R.3 sesuai gambar 187.