Showing posts with label Instrument. Show all posts
Showing posts with label Instrument. Show all posts

Thursday, October 28, 2021

Pengecekan Transmitter yang Rusak | INSTRUMENT PART 17

Pada bagian ini, saya ingin sharing pengalaman saya yang tidak seberapa ini. Tujuan saya murni hanya untuk sharing dan diskusi, karena saya pun sampai sekarang masih belajar dan belajar. Oke langsung saja ke topiknya....

Sebenarnya transmitter yang rusak itu apa sih? Menurut saya makna "rusak" itu bisa diindikasikan dengan sinyal transmitter yang tidak terbaca oleh kontroller / PLC. Ini beda kasusnya dengan "transmitter error". Transmitter error menurut saya ketika ada salah satu fungsi/fitur transmitter yang tidak berjalan dengan semestinya.

Contoh transmitter eror dan penyebabnya :

1. Nilai pembacaan flowmeter yang fluktuatif dan hunting, disebabkan oleh pipa media non metal, sehingga titik referensi bias.

2. Nilai pembacaan ultrasonic level sensor fluktuatif dan hunting, disebabkan oleh koneksi ground sensor ke transmitter tidak terhubung.

Ultrasonic noise source


3. Power pada flowmeter terbaca tidak memenuhi (error), karena kabel sensor yang digunakan bukan merupakan standar factory.

4. Sensorprom pada flowmeter tidak terinstal, sehingga data kalibrasi factory tidak terinput ke transmitter. Membuat transmitter tidak bisa menampilkan hasil pengukuran.

Error on magnetic flowmeter


Dan banyak lagi peristiwa erornya transmitter. Sebenarnya solusi untuk semua device instrumen selalu sama : BACA MANUAL INSTRUMEN TERSEBUT dan CARI TAHU INDIKASI ERRORNYA KARENA APA.

Untuk mencari tahu indikasi dan penyebab eror sebenarnya gampang-gampang susah. 

1. Apakah display instrumen menampilkan suatu lambang terntentu / keterangan eror.

error sign on display

 

2. Cek semua koneksi kabel apakah sudah terhubung secara baik atau belum.

dont forget to wire shield/ground cable to terminal

Kalau misalnya 2 cara di atas belum bisa, kita harus menggunakan try and error diagnose lah wkwk. Kalau yang ini sih udah dalam ranah pengalaman, tidak bisa secara teoritis wkwk.

Okei back to the topic. Untuk transmitter yang rusak, sebenarnya saya punya 1 jurus jitu untuk mengetahuinya. 

Looping Transmitter dengan Menggunakan Remote Display.

Seperti yang kita ketahui, wiring pada transmitter ada beberapa jenis. 

1. Looping 2 wire : merupakan wiring yang paling umum digunakan pada transmitter. 2 wire disini menjelaskan bahwa dalam dalam 1 kabel, berfungsi sebagai daya sekaligus output.

2 wire looping diagram

2. Looping 4 wire : Biasanya 2 kabel digunakan sebagai power, dan 2 kabel lagi digunakan sebagai output.

4 wire transmitter

Langkah Looping Transmitter yang rusak :

1. Cabut kabel transmitter yang berasal dari PLC.

2. Koneksikan transmitter ke RD 300 Siemens.

RD 300 looping to transmitter


3. Pada menu RD 300, lakukan scaling :

lower scale    :     4 mA   -->    4

upper scale    :    20mA   -->    20   

Scaling di atas dilakukan dengan tujuan untuk mengetahui arus looping yang mengalir pada transmitter. Ada 2 kondisi yang dapat kita gunakan sebagai dasar bahwa transmitter rusak. Arus yang terbaca adalah sebesar < 4mA ATAU >20mA. Intinya out of range dari current operation yang seharusnya lah.

Terkait dengan fenomena current yang out of range ini, sebenarnya saya sedikit bingung terkait penjelasannya.

Untuk transmitter yang nilai looping currentnya < 4 mA, saya tidak begitu paham penyebab dan diagnosa kerusakannya. Untuk transmitter yang nilai looping currentnya > 20 mA, bahkan dalam satu kasus mendekati infinite (999.9 mA).

Di bawah ini adalah transmitter rusak yang pernah saya tes :

1. Pressure Transmitter P320

below normal current looping

Dapat dilihat bahwa transmitter mati total. Kemudian wiring dari PLC dilepaskan dari transmitter. Transmitter di looping dengan RD 300 Siemens yang sudah kita scaling. Kemudian RD 300 kita powered on, dan dapat dilihat hasilnya. Transmitter tetap mati, dan arus loopingnya 3,39 mA. Ini jelas out of range dari batas bawah arus looping. Kemudian Siemens Indonesia memutuskan berdasarkan hasil diagnosa bahwa kerusakan ada pada display. Setelah display baru datang dari factory dan dicoba ke transmitter rusak, transmitter tetap tidak menyala. Kemungkingan kerusakannya ada pada mainboard elektriknya. Untuk penyebabnya saya belum tahu pasti, tapi some of possibility akan coba saya tuliskan di bawah.

2. Level Transmitter Probe LU

high humidity on transmitter's terminal. This caused by wrong installation

infinite current looping. Display keep flashing

Saat melihat setup instalasi, saya sudah menduga bahwa transmitter yang satu ini rusak karena kemasukan air. Okeii saya coba cek dulu kondisinya. Seperti biasa setelah transmitter dilepaskan dari kabel plc, maka kita looping dengan RD 300. Transmitter yang tadinya mati, tiba-tiba menyala. Namun kondisi menyala bukan berarti bahwa transmitter baik-baik saja. Tiba-tiba layar menampilkan simbol aneh yang tidak dapat mengerti. Hanya menampilkan seven segment yang tidak jelas bentuknya. Oiya semua display transmitter pasti menampilan seven segment. Yang paling bikin saya kaget adalah, pada RD300 ditampilkan angka 999,9 mA. Yang mana artinya bahwa looping current tersebut jauh melebihi 20 mA. Disini saya begitu kaget karena selama saya melakukan pengujian looping current dengan RD300, maksimal yang selalu saya dapat adalah arus sebesar 20 mA. Flashing pada display RD300 semakin membuat saya curiga, bahwa transmitter ini sudah dalam kondisi rusak. Dan setelah saya cek pada manual RD300, ternyata memang benar :

error on datasheet

RD300 memang didesain untuk looping 4-20 mA. Jadi ketika suatu arus looping ada diluar batas tersebut, maka device ini akan menampilkan angka secara flashing. Ini sudah jelas saya pikir berada pada kondisi infinite current. Sesuai persamaan hukum listrik, arus akan mendekati tak terhingga ketika resistansi ~ 0 ohm. Yang membuat resistansi ~0 tentunya adalah peristiwa short circuit, dimana potensial positif langsung berhubungan dengan potensial negatif tanpa melewati hambatan (board transmitter).


Kesimpulan

Sebenarnya untuk pengecekan apakah sebuah transmitter sudah rusak atau belum ada banyak caranya. Yang paling umum digunakan adalah menggunakan HART Communicator. Karena fitur pada HART Communicator ini sangat banyak (tidak hanya mengecek looping current), tapi juga bisa mengecek dan mengimput rentang kerja transmitter.

Saya sudah menanyakan masalah ini dibeberapa forum khusus automation and instrument, dan orang yang expert di bidang instrumen mengatakan bahwa produsen tidak tertarik untuk memproduksi part instrument. Artinya ketika alat instrumen kita rusak (selama ini bukan karena human error), pilihannya hanya ada 2 : claim warranty selama masih ada masa garansinya, atau beli yang baru. Hal ini juga yang menurut saya menjadi alasan kenapa diagnosa penyebab kerusakan instrumen tidak secara detail diteliti. Misalnya TV kita mati dan kita panggil teknisi. Pasti teknisi tersebut menyarankan kita membeli komponen A, B, C. Instrumen tidak seperti itu, terkadang masalahnya sulit dideteksi.

Terkait penyebabnya, dibawah saya akan berikan penjelasan dari orang yang expert :

link : Siemens Forum 

There are general service conditions that cause failures, like:

- heat kills electronic components and seals.  Over heating any electronic device shortens its life considerably.
- over pressuring pressure components either kills the sensor or distorts so badly that the readings are meaningless.
- water or liquid intrusion into electronic compartments causes damage
- near lightning strikes damage electronics
- excessive common mode voltage can burn out electronics
- corrosion causes electrical connection problems which causes faults.
- Applying 24Vdc across the input resistor of 4-20mA input channel will burn out the little 1/8W resistor (when someone puts a jumper across the (+) and (-) terminals of a powered, 2 wire transmitter)
- dirt and grit in the flow stream of a turbine meter
- customers will connect 120Vac across the terminals 24Vdc device and burn it up.

Sebenarnya kerusakan transmitter lebih banyak disebabkan human error ketimbang defect from factory. Jadi sebaiknya pahami spesifikasi trasnmitter, pahami prosedur dan instalasi terlebih dahulu, dan jangan lupa baca manual alatnya sebelum dioperasikan. 

Tengkyuuuuu...

Tuesday, October 5, 2021

Siemens Remote Display RD 300, RD500 dan SENTRON PAC 3100 | INSTRUMENT PART 16

Berbicara mengenai Remote Display untuk instrumen, Siemens memiliki beberapa series produk. Ada RD 200 dan RD 300 sebagai display biasa, dan ada RD 500 yang lebih ke arah device manager yang memiliki fitur mumpuni seperti sebagai data logger.

RD 300

Untuk seri RD 300, device ini memiliki fungsi untuk menampilkan nilai sinyal yang diterima. Fitur lainnya seperti fitur relay (lengan kontak) yang dapat di setting untuk memberikan sinyal kepada device additional lain seperti pilot lamp maupun indikator lainnya. Device yang satu ini biasanya digunakan untuk troubleshoot/pengecekan pada instrumen yang bermasalah.

Wiring

Untuk wiringnya begitu sederhana. Seperti looping 4/20 mA, beban yang biasanya diisi oleh peran Kontroler seperti PLC , disini digantikan oleh RD 300.

RD 300 wiring to slave


Setting
Untuk setting RD 300, kita dapat memilih jenis loopingnya. Apakah yang digunakan looping arus, atau looping tegangan (tergantung koneksi pin pada terminal). Parameter utama yang perlu disetting sih lebih ke arah scalling. Scalling disini harus disesuaikan dengan span transmitter yang kita gunakan. Misalnya kita menggunakan Sitrans P320 dengan span 0-1600 mbar. Di scalling RD 300 kita input lower scale 0 dan upper scale 1.6 (bar). Sedangkan bila kita menggunakan Radar Level Transmitter, kita setting scalling sesuai span radar. Jikalau radar diinput dengan Low Calibration 5 meter, maka kita setting scaling RD300 0 hingga 5 meter. Jikalau kita menggunakan mode distance, maka kita setting 4 mA = 5 m dan 20 mA = 0 m. Jadi intinya disesuaikan dengan span transmitter dan tipe pengukuran transmitter yang berbeda.

Jika kita ingin menggunakan mode relay, maka yang perlu disetting adalah variabel set-reset. Misalnya kita menggunakan Lampu indikator untuk hidup pada level state >3m. Maka kita input variabel set dengan nilai 3, dan jikalau ingin lampu mati ketika <3, kita dapat input variabel reset sebesar 2.9. 
**** set = kondisi dimana Common terhubung dengan NO 
**** reset = kondisi dimana Common terhubung dengan NC

RD 300 wiring using transmitter and relay

Untuk satu RD300, hanya dapat digunakan untuk 2 transmitter dan 4 lengan kontak (relay).

RD 500

RD 500 sendiri lebih lengkap bila dibandingkan RD 300. Device seri ini dapat dikatakan memiliki fungi sebagai device manager. Keunggulan utamanya adalah sebagai data logger yang dapat dihubungkan dengan PC. Untuk koneksi antara RD500 dengan slave hanya bisa menggunakan MODBUS, tidak bisa 2 wire atau 4 wire. Jadi untuk slavenya harus kompatibel menggunakan MODBUS.

Langkah Konfigurasi RD 500 dan Slave

1.  Pastikan koneksi kabel MODBUS sudah benar. Koneksi antar slave dan RD 500 menggunakan kabel komunikasi RJ45. Kabel RJ 45 merupakan kabel Ethernet, namun kepala kabel Ethernet dilepas. Koneksi Modbus dari Slave 1 ke Slave -n dapat dijumper seperti biasa (secara paralel). Kemudian dari slave yang paling dekat, hubungkan ke pin komunikasi RD 500. Untuk kabel RJ 45 ke pin RD 500, kepala kabel RJ 45 nya tidak boleh dilepas.

2. Setting slave address secara berbeda. Misalnya untuk slave 1 kita menggunakan MultiRanger (Level Transmitter),  slave 2 kita menggunakan PAC 3100 (Power Meter), dan slave 3 menggunakan FM MAG 6000. Setting address number masing-masing slave dengan nilai yang berbeda. Slave address ini yang nantinya akan dimasukkan ke nilai drop number saat konfigurasi RD 500. 

3. Konfigurasi RD 500

Hubungkan pin power RD 500 ke sumber 24 VDC. Hubungkan Kabel Ethernet dari RD 500 ke laptop atau PC. Pastikan laptop memiliki port Ethernet.  Dalam kasus ini, gunakan kabel RJ45 yang kedua ujungnya masih memiliki kepala.

3.1 Ubah IP address port Ethernet

Buka network and sharing center, kemudian klik properties, dan klik IP/TCP. Ubah IP sesuai dengan IP yang ada di RD 500. Meskipun IP ini dirubah, kita masih tetap dapat terhubung ke Internet. Karna dalam kasus ini, IP yang diubah merupakan IP kabel Ethernet bukan IP Wifi. Nah setelah IP di laptop disamakan dengan IP RD 500, buka web browser. Nah seketika akan muncul tampilan user dan password yang harus diisi.

Username : admin
Password : rd500

Di atas merupakan user dan pass default siemens.

3.2 Masukkan address slave

Pilih configure --> I/O --> MODBUS. Ikuti langkah di bawah :

*) Atur baudrate, parity, data bits, dan stop bits. Ini harus sama dengan setingan komunikasi pada slave.

*) Pada bagian device, ada tertera node. Node tersebut sama dengan address slave. Jadi misalnya kita menggunakan 3 slave seperti contoh di atas, maka pada device 1 kita isi MultiRanger dengan nilai node sesuai dengan setingan address di MultiRanger.

slave address configurating

*) Pilih configure pada setiap device

*) Variable Address merupakan alamat variabel yang ingin kita read. 

Note : nilai address pada masing-masing slave harus dilihat pada manual/datasheet device yang bersangkutan. Misal kita ingin membaca nilai pembacaan multiranger, maka dapat dilihat address pada manual multiranger. Untuk multiranger ternyata address yang dimasukkan adalah sebesar 401010 seperti gambar dibawah.

 Variable address configurating

*)Untuk sign, before DP, dan after DP nya disesuaikan dengan kemauan kita.

 Variable address configurating

*)Lakukan langkah di atas pada setiap slave device (ulangi konfigurasi untuk slave 2 dan slave 3 dan tetap cari variabel address slave pada manual device bersangkutan)

*)Setelah konfigurasi variabel address, kita buat log.

Logging Configuration

Misalnya seperti gambar di atas, kita buat file csv dengan nama datalog. Interval selama 1 menit, maka dalam 1 hari akan terdapat = 60 data/jam x 24 jam/hari = 1440 data/hari. Kemudian log dengan nama datalog ini kita input ke variable address yang kita buat sebelumnya :

Insert Logging on variable address

Setelah semua kita buat, kita harus check apakah address variable dan konfigurasinya sudah benbar atau belum. Pilih overview, dan check apakah statusnya OK atau masih ada eror. Jikalau masih ada eror maka kita harus cek kembali apakah address dan sign nya sudah benar atau masih salah. Jikalau sudah benar semua, kita dapat cek log nya dan salah satu contoh log yang pernah saya lihat seperti di bawah :

Data Logger on csv format

Di atas merupakan contoh RD 500 dengan slave Powermeter PAC 3100 yang dipasang pada gedung sebuah gereja. Data-data di atas menggunakan interval 1 menit dan menampilan beban konsumsi energi dan data fisis kualitas listrik. Jikalau koneksi antara RD 500 dengan slave sudah benar, maka lampu indikator akan kedap kedip secara bergantian.


Tengkyu

Monday, August 16, 2021

Open Channel Flowmeter dan Level menggunakan Pressure | INSTRUMENT PART 15

TIADA AKAR ROTANPUN JADI

Mungkin ini merupakan sifat alami manusia yang hadir dari hasil kekreativitasan manusia wkwk. Manusia selalu berpikir memanfaatkan alat/barang di sekitarnya untuk menggantikan fungsi alat/barang yang tidak dia punya, namun sedang dibutuhkan.




Mungkin fenomena substitusi barang seperti gambar diatas bagi kita tidak masalah dan tidak menimbulkan kerugian yang berarti. Lantas bagaimana jika dibawa ke industrial case?
Nah didunia sensor juga banyak terjadi fenomena seperti ini. Biasanya fungsi substitusi itu mencul karena adanya hubungan kedua fenomena variabel itu berdasarkan hukum fisika atau hanya sebatas korelasi linearitas (kesebandingan). Di bagian ini saya akan menjelaskan fenomena "tiada rotan akarpun jadi" versi sensor.

1. Open Channel Flowmeter
Saya baru memahami kasus ini ketika ada customer yang meminta flowmeter untuk saluran terbuka. Bagi kalian yang belum tahu apa itu open channel flowmeter, kalian bisa lihat melalui link di bawah :
Untuk sensornya menggunakan ultrasonic continuous level sensor dan LUT400 transmitter.

design of open channel cannal

Prinsip Kerja : Kita input data-data kanal kita ke transmitter. Nah transmitter nantinya akan mengkonversi ketinggian ke laju aliran. Ini menggunakan prinsip linearitas. Misalnya ketika tinggi air pada h reference (0%) = 5 m3/jam dan saat tinggi air maksimum =  10 m3/jam. Maka saat tinggi air 50% dari h maks, maka itu setara laju aliran 7,5 m3/jam. 

Sebenarnya variabel utama yang mau diketahui adalah variabel flow (laju aliran). Namun sistem substitusi itu digantikan dengan sensor ketinggian dengan prinsip persamaan matematis maupun korelasi linearitas.

kanal terbuka tampak depan


Intinya open channel itu biasanya menggunakan sistem bendungan untuk memastikan air tetap mengalir. 

Apa yang sebenarnya menjadi masalah?
Kebanyakan orang berpikir bahwa ini sensor flow. Padahal kita tetap harus berpikir bahwa ini level sensor. Kesalahan berpikir ini menyebabkan orang membeli sensor level ini untuk mengukur laju aliran fluida dengan desain open channel yang asal-asalan. Intinya banyak orang yang menganggap bahwa semua parit/kanal itu dapat disebut open channel, padahal banyak sekali syarat untuk menetapkan suatu kanal open channel atau tidak.

Dibawah ini adalah kasus kesalahan berpikir manusia :

the fault of open channel understanding


Dari gambar desain di atas, dapat kita lihat bahwa kanal tersebut merupakan kanal terbuka tapi tidak memenuhi syarat open channel. Kenapa? karena syarat utama open channel merupakan kanal dimana fluida mengalir secara satu arah dan tidak ada feedback flow.

Lantas apa yang terjadi jikalau kita menggunakan level sensor untuk mengukur flow open channel seperti kasus di atas? Jawabannya ya sensor akan tetap mengukur laju aliran fluida berdasarkan level. Padahal kenyataannya tidak ada air yang mengalir, karena air hanya menggenang. Inilah kesalahan yang terjadi ketika kita menggunakan suatu sensor yang tidak pada hakikatnya. Banyak pertimbangan yang benar-benar harus dipahami. 

Hal pertama yang benar-benar harus dipahami untuk kasus ini, apakah kanal yang kita punya sudah memenuhi syarat open channel atau belum.

Apa yang terjadi jikalau kita membawa kasus di atas ke ranah sensor flow yang sebenarnya seperti kasus di bawah?

close pipe and no flowing fluid


Maka jawabannya laju aliran akan terbaca 0 m3/ jam. Karena meskipun ada air, tapi air tersebut tidak mengalir. Inilah keuntungan ketika kita menggunakan alat/barang yang sesuai pada hakikatnya. Pertama kita tidak perlu ragu lagi akan faktor-faktor eksternal (minim pertimbangan lah). Kedua hasil pembacaan sensor tentunya lebih akurat dibanding hasil pembacaan yang sudah melewati proses konversi seperti pada kasus konversi dari level ke flow.


2. Sensor Tekanan untuk aplikasi level.

Banyak orang sudah tahu aplikasi dp sensor (differential pressure) untuk mengukur level. Ya prinsip sederhananya tentunya menggunakan tekanan hidrostatis.

formula of hydrostatic pressure

Sebenarnya ada satu hal yang menjadi concern ketika kita menggunakan prinsip pengukuran level menggunakan tekanan. Pada awal sebelum beroperasi, kita harus menginput nilai density/massa jenis fluida di dalam tangki. Jikalau ada perbedaan temperature antara T fluida input dengan T fluida di dalam tangki, ini lah yang menyebabkan eror dalam kalkulasi ketinggian fluida. Jikalau ada perubahan suhu di dalam tangki, maka dapat dipastikan hasil pembacaan level fluida salah. Untuk lebih paham persamaan matematis antara perubahan massa jenis dengan suhu, dapat dilihat dari link dibawah dan foto di bawah :

https://www.engineeringtoolbox.com/fluid-density-temperature-pressure-d_309.html 

graph of liquid's density based on presure and temperature 

Nah apa yang menjadi problem?
Bayangkan kalau misalnya komoditi fluida yang diukur adalah minyak bumi/crude oil. Misalnya pengukuran level hanya menggunakan single sensor (sensor tekanan) , maka dapat dipastikan eror untuk konversi ke level akan sangat berpengaruh.

Lalu solusinya bagaimana?
Menurut saya pengolahan nilai ketinggian dapat dilakukan di PLC (kontroler), jangan diolah di transmitter. Untuk sensornya perlu ditambahkan sensor density yang juga dihubungkan ke PLC. Nah PLC ini yang nantinya akan mengkonversi input dari sensor tekanan dan sensor density untuk mendapatkan nilai ketinggian yang sebenarnya.

Mengapa sensor substitusi seperti ini begitu banyak digunakan?
Alasannya tentunya adalah soal harga. Bayangkan misalnya untuk sensor laju aliran harganya dikisaran 50-100 juta (electromagnetic flowmeter). Sedangkan sensor level (ultrasonik) untuk konversi ke laju aliran harganya dikisaran 20-30 juta. Selain itu misalnya untuk pengukuran level menggunakan sensor level (radar) harganya dikisaran 50 juta, sedangkan ketika menggunakan sensor dp (tekanan) hanya dikisaran 10 juta. Intinya kalau menurut saya jika harga komoditi fluida yang mau diukur mahal, lebih baik menggunakan sensor yang sesuai hakikatnya. Sebaliknya jikalau komoditi/fluida hanya berupa air misalnya pada plant water treatment plant, hal tersebut menurut saya tidak begitu riskan efeknya.

Kesimpulannya jikalau kita menggunakan sensor fungsi substitusi seperti ini, banyak hal yang harus dipertimbangkan secara matang.


Saturday, May 29, 2021

WIRING PLC SEDERHANA MENGGUNAKAN LEVEL TRANSMITTER LR 250 sebagai ANALOG INPUT dan PUSH BUTTON | INSTRUMENT PART 14

Mungkin saya akan sharing sedikit terkait dengan wiring PLC sederhana menggunakan transmitter. 

        Sebelum saya menjelaskan konfigurasi, saya akan menjelaskan setup percobaan. Pada bagian terdahulu (PART 7 Instrumen) , saya pernah membuat program PLC untuk flowmeter (flowrate dan totalizer). Karena pada saat itu saya masih menggunakan PLC Simulator, pada bagian ini saya akan menggunakan LR 250 sebagai analog input (nialai analog level dianggap mewakilkan analog flowrate), dan dua buah digital input berupa tombol untuk medemonstrasikan nilai digital pulse tottalizer dan tombol reset totalizer. Untuk digital output nya menggunakan lampu sebagai indikator apabila nilai flowrate analog melebihi batas yang ditetapkan.

1. PLC S7-1200 CPU 1212C DC/DC/RLY

PLC pin terminal

penjelasan pin CPU ada pada datasheet/manual di bawah :
penjelasan pin PLC

2. Analog Input 4xU/I 2 Wire connected to SIMATIC ET 200 SP
Penjelasan pin AI module seperti gambar di bawah ;
analog input pin terminal module

3. Terminal Block
Terminal block digunakan hanya untuk meminimalisir banyaknya kabel dalam satu pin. satu terminal block memiliki 4 pin (lubang) dari atas ke bawah. Pin 1 dari atas terhubung ke pin 4 (paling bawah). Untuk pin 2 terhubung ke pin 3.

terminal block



4. Transmitter 
Wiring untuk 2 wire transmitter yang paling umum dikenal adalah sinking dan sourcing. Perbedaannya seperti gambar di bawah :
sinking vs sourcing

5. Push Button
Disini saya menggunakan 2 push button, yang berfungsi sebagai tombol pulse totalizer (digital input) dan reset totalizer (digital input).

6. Lampu
Lampu disini sebagai digital output, dimana lampu akan logic 1 ketika nilai flow (analog input) sudah melebihi batas nilai diberikan transmitter.

7. Relay
Disini saya menggunakan relay berjenis SPST. Relay merupakan komponen umum yang digunakan sebagai safety apabila nilai arus terlalu besar yang dapat merusak perangkat CPU PLC.

8. Wiring

wiring


Dari wiring di atas, dapat dijelaskan :
* Wiring menggunakan mode sourcing trasnmitter
* common yang digunakan merupakan common ground (setiap pin digital input CPU merupakan ground)
* kabel merah = merupakan kabel fasa, kabel biru = merupakan kabel netral.
* kabel hijau = kabel profinet
* pada looping 2 wire transmitter, seharusnya ada 2 kabel yang terhubung ke modul PLC (AI Remote I/O). Dapat dilihat pada modul AI Remote I/O. Namun pada kebanyakan kasus, PLC sudah di grounding melalui CPU. Dapat dilihat pada modul AI Remote I/O, seharusnya pin UV0 dan I0+ terhubung ke Power supply dan transmitter. Namun hanya IO+ (terminal positif yang terhubung), karena grounding UV0 sudah melalui CPU PLC.

setup simulasi


Hasil percobaan saya seperti gambar di bawah :




Tengkyuuuuu.....

Saturday, May 22, 2021

MODBUS MEMANG GILAAAA!!!!! | INSTRUMENT PART 13

Protokol komunikasi apa yang paling gila dalam trilogi protokol komunikasi? 

Saya akan menjawab MODBUS.

Ini didasarkan pada sisi pemrograman PLC MODBUS yang membutuhkan lebih banyak waktu dipelajari, dipahami, dan diresapi wkwkwk. Pada bagian ini, saya akan menjelaskan percobaan yang telah saya coba bersama mentor saya (walau yang lebih banyak berpikir sebenarnya bukan saya sih wkwkwkwkwkwk).

The most insane Protocol

Dulu saya berpikir bahwa ilmu dan seni PLC itu sederhana wkwkwk, ya paling intinya buat program berdasarkan kasus lah wkwk. Setelah saya diajari lebih dalam oleh mentor saya, saya mulai sadar bahwa PLC itu bukan soal pemrograman melulu. Saya diajari cara konfigurasi PLC (power supply yang dibutuhkan berapa ampere, modul komunikasi yang dibutuhkan seri apa, modul analog digital Input/outputnya seri apa) juga diajari cara pengkabelan PLC (PLC nya sebagai sinking atau sourcing ke transmitter, wiring relay dari PLC seperti apa) dan inti dari segala inti adalah terkait pemrograman (cara pemrograman analog input/digital input/digital output/analog output gimana, pemrograman menggunakan trilogi protokol komunikasi gimana) wkwkwk. Intinya PLC itu rumit lah wkwkwkwk.


Master and Slave Analogy


Salah satu analogi yang paling sering digunakan adalah istilah master-slave. Master disini tentunya merupakan PLC (karena seperti yang kita tahu otaknya ya PLC). Satu master (PLC) bisa punya banyak slave, ataupun 2 master/lebih bisa punya banyak slave (redundant system). Slave hanya akan menuruti semua perintah mastrer hanya jika komunikasi diantara master dan slave terjadi secara benar.

Kali ini saya akan sharing pengetahuan mengenai komunikasi menggunakan protokol  MODBUS. Jika sebelumnya pada protokol HART lebih difokuskan pada variabel apa yang ingin ditarik, pada MODBUS lebih difokuskan pada slave address and parameter address apa yang ingin kita tarik. Pada percobaan kali ini saya menggunakan 2 buah slave (instrument) yang support untuk komunikasi MODBUS. Disini saya memilih Level Transmitter MultiRanger dengan sensornya Probe LU untuk slave 1, dan powermeter SENTRON PAC 3100 untuk slave 2. Jikalau pada part sebelumnya saya sudah mencoba menggunakan SENTRON PAC dan berhasil untuk membaca data MODBUS, maka disini saya menambah parameter berupa :

1. penambahan slave menjadi 2 slave

2. tidak hanya bisa membaca data dari slave (read), tapi saya akan mencoba memberikan perintah ke slave (write)

Oke langsung saja masuk ke intinya.....

1. Wiring

wiring modul profibus, slave 1, slave 2

Dalam kabel MODBUS seperti yang pernah saya bilang, walaupun portnya menggunakan konektor DB9, namun jumlah kabel data nya hanya 2. Perlu selalu diingat, bahwa dalam komunikasi MODBUS, wiring slave dikoneksikan secara serial. Jadi urutannya PLC --> slave x --> slave y --> slave z. Tidak bisa slave x --> plc ; slave y --> plc ; slave z --> plc (tidak bisa paralel). Lebih jelasnya seperti gambar di bawah


Modbus wiring from master to N-Slave

2. Program PLC

2A. Blok diagram MAIN

main-1

main-2

main-3

2B. Blok Diagram Status

Blok diagram status

Diagram status digunakan sebagai blok fungsi dari blok main. Yang penting disini adalah melihat tipe data nya saja disesuaikan dengan aturan TIA Portal. Dapat dilihat pada menu HELP TIA PORTAL.

2C. Blok Diagram Receive Data

Blok Diagram Receive Data

Blok Diagram Receive Data merupakan blok dimana data-data yang akan di read ataupun di write akan disimpan. Data ini merupakan fungsi yang diarahkah ke data_ptr setiap blok diagram modbus_master pada main program. Data-data ini sejatinya mengandung data address dari masing-masing slaveHal terpenting disini juga adalah tipe datanya disesuaikan dengan datasheet. Misalnya pada datasheet powermeter ditulikan tipe data Real, maka kita harus membuat tipe data Real juga.

3 Penjelasan Program Ladder 

Flowchart Modbus dengan 2 slave

Flowchart untuk keseluruhan ladder diagram adalah seperti di atas. Intinya ada pada program CTU (counter up). Reset value CTU kita setting sebanyak slave yang mau kita kontrol. Karena disini saya punya 2 slave dan counter up memiliki initial value = 0, maka slave 1 = ctu (0), dan slave 2 = ctu(1). Sehingga ketika semua slave sudah selesai mengambil data, maka pengambilan data akan te-reset ke ctu = 0  (slave 1). 

Intinya :
PLC menyala --> tarik semua data slave 1 hingga selesai (CTU = 0)--> tarik semua data slave 2 hingga selesai (CTU=1) --> tarik kembali data slave 1 dst.....


3A. Program Main

Setiap kali kita ingin menggunakan MODBUS, kita ambil blok diagram MODBUS RTU pada blok komunikasi di sebelah kanan

Function Block Modbus RTU

Blok yang dibutuhkan adalah Modbus_Com_Load dan Modbus_Master. 

Penjelasan Ladder Diagram bagian 2.A MAIN  adalah sebagai berikut :

SLAVE 1 = POWERMETER SENTRON ,  SLAVE 2 = MULTI RANGER XPS LEVEL TRANS

# network_1 setup modbus (blok Modbus_Com_Load)

penjelasan blok modbus_com_load

req = merupakan request atau input apa yang bisa memproses blok tersebut. Disini saya menggunakan fisrt scan yang artinya ketika program dieksekusi PLC, maka program akan berjalan terus tanpa ada kondisi yang menghentikan

port =  diisi dengan port komunikasi RS-485

baudrate = diisi dengan 9600, baudrate ini harus diinput ke semua slave PLC dengan nilai yang sama agar komunikasi bisa terjadi

MB_DB, DONE, ERROR, STATUS diisi dengan variabel yang dibuat dari fumction blok lain.


# network_2 slave 2 data level

penjelasan blok modbus-com_master

Blok program ini untuk memanggil slave-2 (multiranger level transmitter)

en = 1, artinya blok program multiranger aktif setelah counter up bernilai 1 atau setelah PLC mengambil semua data power meter (slave-1)

mb_addr = 2, karena xps (level transmitter)  dalam percobaan ini merupakan slave-2.

mode = 1, mode 1 merupakan perintah write ke slave, sementara mode = 0 merupakan perintah read data dari slave

data addr = diisi dengan 41010 sesuai dengan datasheet Multiranger

Multiranger data address

data ptr = diisi dengan fungsi xps yang telah didefinisikan di blok receive data 2C. Tipe data diisi dengan integer.

Done, Busy, Error, Status diisi dengan fungsi yang telah didefinisikan di blok status 2B.


# network_3 slave 1 data kWh

Salah satu data utama dari power meter adalah data pengukuran kWh.

en = 0, artinya blok program POWERMETER aktif sesaat setelah PLC dinyalakan.

mb_addr = 1, karena power meter dalam percobaan ini merupakan slave-1

mode = 0, karena kita ingin read data dari slave power meter

data addr = diisi dengan 40802 sesuai dengan datasheet power meter (data addr = offset + initial value)

kebanyakan initial value bernilai 40000/40001, jadi 40001+802 = 40802

power meter kWh data address

data len = 4, karena jumlah register pada data kWh di atas tertulis 4

data ptr = diisi dengan fungsi kWh yang telah didefinisikan di blok receive data 2C. Tipe data diisi dengan LReal. Disini lah letak seni PLC, untuk menentukan tipe data saja kita harus mencoba berkali-kali. Karena beda tipe data, beda pula hasil yang akan ditampilkan.


# network_4 slave 1 data kvarh

network 4 sama dengan network 3, yang beda tentunya adalah data_addr = 40805 dan data_ptr disimpan pada fungsi yang berbeda


# network_5 slave 1 27 data

Disini saya akan mengambil langsung data power sebanyak 27 data sekaligus.

en = 0, artinya blok program POWERMETER aktif sesaat setelah PLC dinyalakan.

mb_addr = 1, karena power meter dalam percobaan ini merupakan slave-1

mode = 0, karena kita ingin read data dari slave power meter

data addr = merupakan data address pertama yang diisi dengan 40002 sesuai dengan datasheet power meter (data addr = offset + initial value = 40001 + 1)

kebanyakan initial value bernilai 40000/40001, untuk powermeter bernilai 40001... jadi 40001+1 = 40002

power meter important data address

data len = 53, karena jumlah register (offset) pada data powermeter diatas sebanyak 53

data ptr = diisi dengan fungsi powermeter yang telah didefinisikan di blok receive data 2C. Tipe data diisi dengan Array. Array [0....53] memiliki arti bahwa pengambilan data dilakukan dari ofset 0 hingga 53 secara langsung. Karena data yang ditarik lumayan banyak, maka membutuhkan waktu yang sedikit lama. Selama PLC mengambil 26 data ini, maka fungsi status_comm_master_busy = 1 atau aktif. Jikalau sudah selesai, maka status _comm_master_done = 1.


# network_6 write to powermeter

Jika sebelumnya kita hanya membaca nilai dari slave, sekarang kita akan memberikan perintah ke slave (mode write). Karena kita tahu bahwa variabel kWh merupakan active energi total (total konsumsi energi listrik yang terpakai), maka kita akan mencoba mereset nilai kWh tersebut. Kebetulan pada SENTRON PAC 3100 memiliki mode reset yang bisa diberikan dari PLC. Dapat dilihat pada kolom paling kanan, mode W memiliki arti mode write dari PLC ke Powermeter.


power meter reset function data address

en = 0, artinya blok program POWERMETER aktif sesaat setelah PLC dinyalakan.

mb_addr = 1, karena power meter dalam percobaan ini merupakan slave-1

mode = 1, karena kita ingin write data dari master (plc) ke power meter

data addr = diisi dengan 460005 sesuai dengan datasheet power meter (data addr = offset + initial value)

Ada yang aneh disini, kenapa data addr bukan 60004, 60005 atau 100005 (40001 + 60004)?

Jawaban singkatnya sebenarnya hanya bisa try and error. Namun ketika sudah buntu seperti saya, kita bisa lihat penjelalasan pada TIA Portal. Sesuai dengan datasheet address di atas, tertulis function code 0 x 06. Maka dapat dilihat initial valuenya bisa berupa 40001 atau 400001. Setelah saya coba memasukkan address 100005, fungsi reset tidak berfungsi. Kemudian kita ganti dengan initial valu 400001, sehingga address nya menjadi 460005 dan boooommmmmm, fungsi resetnya berfungsi. Disinilah letak kegilaan MODBUS, banyak nilai-nilai yang susah untuk dijelaskan disini wkwkwk.

Penjelasan TIA Portal untuk offset data

data len = 1 karena register yang dibutuhkan hanya 1.

data_ptr = diisi dengan fungsi reset yang telah didefinisikan di blok receive data 2C.


# network_7 

network 7 merupakan blok move biasa, dimana ketika PLC dinyalakan, maka fungsi move akan bernilai 0.


 # network_8

Ketika step = 0, maka PLC akan mengeksekusi pengambilan semua data pada slave-1. Ketika Status_com_master_busy slave-1 = tidak, maka coil akan close, dan step kemudian akan bernilai 1. Ketika step bernilai 1, PLC akan mengeksekusi blok pengambilan data slave-2.


 # network_9

Ketika step bernilai 1, dan pengambilan data slave-2 (XPS) sudah done, maka akan mentriger output %M10.0. %M10.0 ini nanti akan mentrigger blok CTU Network 10.


 # network_10

Disetting nilai reset = 2 karena hanya ada 2 slave. Ketika PLC selesai mengambil data slave 1 (step = 0 ), kemudian gantian mengambil data slave 2 (step =1), maka step akan te-reset kembali menjadi 0 (kembali mengambil data slave 1), begitu seterusnya secara bergantian dan real time.


 # network_11 reset kWh powermeter

Ketika kita memberikan perintah reset ke powermeter melalui PLC, maka data address reset 460005 (pada data_ptr) akan mendapat nilai 0. Sesuai dengan datasheet, reset = 0 menanadakan bahwa semua data penggunaan energi akan ter-reset menjadi 0.


 # network_12 nonaktifkan reset kWh powermeter

Ketika perintah reset tidak diberikan PLC, maka data_ptr_reset akan mendapat nilai 7. Nilai ini sebenarnya bebas, asalkan diluar rentang nilai reset powermeter

reset value start from 0 - 4


Hasil

Saya kebetulan tidak sempat untuk mendokunmentasikan hasil percobaannya, namun kira-kira hasilnya persis seperti ini. Namun bedanya percobaan kali ini sudah digunakan untuk pembacaan data 2 slave dan sudah mampu memberikan perintah ke slave untuk me-reset nilai di bawah menjadi 0

Pembacaan data PowerMeter

Bisa saya simpulkan komunikasi dengan protokol MODBUS ini sedikit begitu rumit. Alasan saya ada 2 ;

1. Data address terkadang mengandung initial value yang nilainya sedikit abstrak wkwk

2. Tipe data juga harus di try and error, karena terkadang beda tipe data beda pula hasil pembacaan wkwk

Thankyouu.....