Showing posts with label LadderDiagram. Show all posts
Showing posts with label LadderDiagram. Show all posts

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.....


Friday, April 9, 2021

MASTER-SLAVE READ DATA USING S7-1200 MODBUS RTU | INSTRUMENT PART 9

Read Data using MODBUS Remote Terminal Unit Communication

Pada bagian ini, saya mencoba sharing pemahaman saya terkait dengan MODBUS. MODBUS sendiri merupakan komunikasi serial yang banyak digunakan pada otomasi industri. Beberapa jenis komunikasi yang banyak digunakan diantaranya HART, Modbus/Profibus (Siemens), dan Ethernet/Profinet (Siemens). 

Industrial topology network

Sebelum saya menjelaskan tentang modul komunikasi, izinkan saya menjelaskan konfigurasi PLC yang saya gunakan.

Modbus Module (kiri),PLC S7-1200 CPU 1212C DC/DC/RLY (tengah), dan ET 200S (kanan) 

Sesuai dengan foto di atas, disebelah kiri PLC merupakan modul komunikasi Modbus, yang mana menggunakan komunikasi serial RS-485 (kabel ungu). Di sebelah kanan PLC, merupakan remote I/O modul, ET 200 SP. Oiya remote I/O dibuat dengan 2 tujuan, pertama karena keterbatasan slot modul I/O yang dapat melekat pada induk PLC. Misalnya pada seri S7-1200 ini, hanya dapat menampung 1 slot modul Digital Input (DI), dan 1 slot modul digital output (DO). Jadi untuk modul Analog Input, Analog Output, dan modul DI/DO tambahan harus ditempelkan pada modul Remote I/O. Kedua, tujuan remote I/O adalah untuk meminimalisir penggunaan kabel yang tentunya memakan banyak anggaran biaya. Jadi untuk hubungan PLC----Remote I/O cukup menggunakan satu kabel ethernet ataupun dengan switch hub ketika terdapat PLC Redundant didalam sistem.

Saya disini menggunakan PLC S7-1200C DC/DC/RLY. Artinya : 

DC : PLC menggunakan tegangan supply DC

DC : PLC memberikan power looping DC ke instrumen slave

RLY : Output PLC memiliki fitur relay. 

Beberapa jenis PLC yang lain di antaranya :

AC/DC/DC

AC/DC/RLY

DC/DC/DC

DC/DC/RLY

PLC S7-1200 CPU 1212C DC/DC/RLY pin terminal

AC-DC Converter (kiri), SCALANCE Switch Hub (kanan)
        
        Karena PLC ini menggunakan supply power DC, maka dibutuhkan adaptor 220 VAC phase ke 24 VDC. Disebelah kanan adaptor merupakan Switch Hub SCALANCE. Fungsi dari SCALANCE ini seperti terminal yang menghubungkan semua device di dalam sistem. Mengapa? Jawabannya karena port pada masing-masing terbatas jumahnya. Komponen yang dapat dihubungkan biasanya seperti HMI (Human Machine Interface), Kontroler (PLC), Remote I/O, Personal Computer dengan koneksi ETHERNET kabel RJ-45 , dan lainnya. Oiya untuk kabel hijau merupakan kabel ethernet, dan kabel ungu merupakan kabel modbus/profibus.

Komunikasi

        Mungkin kita bertanya  kenapa modul komunikasi ini penting? Saya akan mencoba menjelaskan sedikit pemahaman saya. Analoginya adalah seperti ini : Ketika orang Indonesia yang tidak bisa berbahasa inggris jumpa dengan orang inggris yang tidak bisa berbahasa indonesia, maka tidak mungkin terjadi pertukaran informasi yang signifikan di antara mereka. Apa yang diperlukan agar orang indonesia memahami apa yang orang inggris sampaikan? Ya jawabannya seorang transalator. Apa kekurangan ketika ada dua orang yang menggunakan translator saling berkomunikasi? Ya jawabannya informasi/maksud/makna tersirat yang disampaikan oleh A, bisa jadi tidak diterjemahkan translator dengan baik ke B, dan sebaliknya. Artinya pertukaran informasi tidak terjadi secara utuh. Bagaimana solusinya? Ya tentunya salah satu pihak harus memahami bahasa lawan bicaranya agar pertukaran informasi terjadi secara utuh.

        Begitu juga dengan pertukaran informasi antara field instrument dengan kontroler (kebanyakan disebut hubungan Master (plc) - Slave (instrument device). Lah bukannya PLC bisa menerjemahkan sinyal yang dikirim instrument? Jawabannya tentu bisa, tapi tidak utuh. Kembali ke topik flowmeter yang pernah saya buat di Part 7, flowrate yang di kirimkan ke analog input (AI) PLC tentunya harus diterjemahkan dulu menggunakan Norm dan Scale diagram block, dan totalizer yang dikirimkan ke PLC melalui DI (Digital Input), angkanya kemungkinan besar tidak tepat seperti yang dibaca instrument di lapangan karena ada nilai liter/pulse. Ketidaktepatan maupun konversi ini digunakan ketika tidak ada modul komunikasi antara PLC dan instrumen di lapangan. Kalau misalnya ada modul komunikasi jadi gimana? Ya PLC tentunya tidak perlu menejermahkan bit flowrate dan pulse totalizer lagi, istilahnya PLC langsung menerima satu box informasi yang sudah mengandung semua informasi hasil pengukuran flowmeter di lapangan. Syaratnya? Ya tentunya PLC dan field instrument kalian harus sama-sama dilengkapi dengan modul komunikasi.

SIEMENS SENTRON PAC 31OO POWER METER

Oke kali ini saya akan coba sharing penarikan data (read) antara master PLC (S7-1200) dengan slave Siemens SENTRON PAC 3200 (power meter) menggunakan komunikasi serial modbus RTU. Protokol komunikasi yang digunakan adalah RS-485. Data-data yang akan ditarik tentunya berupa parameter arus 1 phase yang diberi beban (HP yang di charging) seperti Vp-p, Arus, Frekuensi, Rated Power, dll. Langkah-langkah yang dilakukan adalah seperti di bawah :

1. Wiring PAC 3200

Untuk wiringnya kita harus melihat datasheet pac 3100. 

PAC 3100 PIN TERMINAL

Sesuai dengan hukum pengukuran arus dan tegangan, wiring untuk pengukuran arus menggunakan rangkaian seri, dan wiring pengukuran tegangan menggunakan rangkaian paralel. 

Nomor terminal yang digunakan sesuai gambar di atas adalah : 
no 1&2 : arus
no 7&10 : tegangan
no 11&12 : Supply power

untuk wiring lengkapnya seperti gambar di bawah :

Power meter wiring


Power meter wiring to load

2. PLC programming Read Data from Slave

Untuk membuat program PLC for read data from slave, kita harus memahami diagram block untuk pembacaan data master-slave menggunakan MODBUS RTU. 

2.1 Diagram block Load dan Master
FB Comm_Load and Master

FB Comm_Load
Diagram block load digunakan untuk inisiasi awal. Parameter yang penting pada diagram load adalah : bit character, baudrate, parity, dan stop bit. Ini harus disamakan dengan  nilai parameter slave. Misalnya pada slave disetting nilai 8N1 dengan baudrate 9600 bit per second. Artinya bit character = 8, parity = none, dan stop bit = 1. Disini saya setting PAC 3100 dengan slave address = 2.
Slave setting



FB Master
Parameter yang harus dipahami pada bagian ini adalah address slave dan address data.  Address slave merupakan address instrumen, dan address data adalah variabel mana dari slave yang mau kita tarik. Misalnya kita punya 2 slave, yaitu berupa flow transmitter dan power meter. Flow transmitter kita setting dengan alamat slave = 1, dan power meter kita setting dengan alamat slave = 2. Sedangkan untuk data address, kita harus melihat datasheet produk yang bersangkutan.

Data address of slave

Misalnya pada data address Sentron PAC 3100 di atas, kita ingin mengambil data Tegangan Va-n, Va-b, arus A, dan frekuensi terukur pada stop kontak. Karena Sentron dan beberapa instrumen lain menggunakan nilai awal address data 40001, maka untuk mengambil address data di atas : 

nilai address data = 40001 + offset 

Maka diinput address data Va-n = 40002, Va-b = 40008,arus A = 40014, frekuensi = 40040. Pada diagram block di atas, data_len saya isi dengan nilai 100. Artinya, saya ingin mengambil nilai data dari offset 40002 hingga 40102 secara langsung. 

2.2 Diagram block step dan collection data

Diagram block step dibuat dengan tujuan agar PLC menginput data secara berulang hingga PLC selesai mengambil semua data address yang kita perintahkan. Penjelasannya seperti ini : PLC membutuhkan waktu untuk mengambil banyaknya data address yang kita perintahkan. Semakin banyak data address yang kita ambil, maka semakin lama waktu yang dibutuhkan PLC untuk mengambil data. Jadi algoritma PLC adalah : Ambil semua data (busy), selesai ambil data (done), ulang ambil data lagi begitu seterusnya. Jadi selama PLC belum selesai mengambil semua data, PLC tidak akan mengubah nilai parameter. Artinya perubahan nilai terbaca terjadi secara serentak.

Step and data collection function block


3. Wiring to PLC

Karena modbus RTU RS-485 menggunakan konektor DB-9, maka kita harus melihat pin mana yang digunakan pada komunikasi modbus RTU. 
DB 9 connector pin out

terminal positif  pin 3 (modul modbus PLC) dihubungkan dengan terminal positif pada Sentron PAC 3100. Pin 8 terminal negatif dihubungkan dengan terminal negatif pada Sentron PAC 3100. 

Slave terminal

Hasil Pembacaan Read Data from Slave Sentron PAC 3100

Data PAC 3100

Voltage measurement

Current measurement

PLC Read

Master read data from slave

Data ini berubah secara real time tergantung berapa lama PLC mengambil 100 data dari slave. Nilai 0 tersebut dikarenakan data address Sentron PAC memiliki jarak sebesar 2 address untuk setiap parameternya.

Jikalau kita ingin menambah slave, maka block master cukup ditambahkan sejumlah banyaknya slave yang datanya ingin kita tarik. 

Saturday, March 27, 2021

Using PLC for Electric Motor Controlling | INSTRUMENT PART 8

Motor 3 Phase

Izinkan saya di part ini membagikan sedikit pemahaman saya tentang penggunaan PLC pada aplikasi motor. Seperti yang kita tahu, motor listrik dibagi menjadi 2 , yaitu motor 1 phase dan motor 3 phase. Saya gak begitu paham sih sebenarnya konstruksi detail dalam device motor ini, yang saya paham motor listrik satu phase menggunakan tegangan 220 VAC, dan untuk 3 phase menggunakan tegangan 380 VAC. Motor 3 phase biasanya digunakan pada industri-industri besar yang membutuhkan penggerak bertorsi besar.

Star configuration 3 Phase Alternating Current

dimana 
Vphase-phase = 380 VAC
Vphase-netral = 220 V.AC

Rangkaian motor dibawah ini menggunakan motor 3 phase semua yak.

1. Rangkaian Forward Reverse Motor sederhana

Rangkaian forward reverse motor digunakan pada motor 3 phase untuk menggerakkan putaran motor secara berlawanan. Beberapa aplikasi forward reverse seperti pada mesin cuci, lift, penggerak gerbang/pintu untuk buka tutup, dan lainnya. Dulunya sebelum ada PLC, ya tentunya hanya menggunakan relay sebagai device logic nya. Oiya saya mau cerita sedikit pengetahuan saya mengenai relay dan kontaktor yang sebenarnya fungsinya sama. 



Relay dan kontaktor sama-sama menggunakan prinsip medan magnet untuk memutuskan dan mengalirkan arus. Bedanya, relay diaplikasikan untuk menghantarkan arus kecil sementara kontaktor digunakan untuk menghantarkan arus tinggi. Di dalam relay ataupun kontaktor, dikenal istilah pole dan throw. 

Beberapa jenis relay diantaranya :

1. SPST (Single Pole Single Throw)

2. SPDT ( Single Pole Double Throw)

3. DPST (Double Pole Single Throw)

4. DPDT ( Double Pole Double Throw)

Relay/contactor configuration

Karena kita ingin mengontrol motor 3 phase, dimana motor 3 phase menggunakan 3 terminal (R S T), maka kita harus menggunakan Three Pole Single Throw ( 3 jalur  dan 1 buangan). 

Prinsip Rangkaian Forward Motor 3 phase : 
Pada putaran Forward, kita tinggal menghubungkan RST phasa sumber dengan RST phasa motor sesuai dengan phasanya. Artinya R ke R, S ke S, dan T ke T. 

Prinsip Rangkaian Reverse Motor 3 phase : 
Sedangkan bila kita ingin membuat rangkaian Reversenya, kita tinggal mengubah hubungan phasanya. Misalnya R ke T, S tetap ke S, dan T ke R. Atau bisa juga R ke R, S ke T, dan T ke S. Artinya ada 2 phasa yang diubah hubungannya

Ketika dihubungkan dengan PLC maka rangkaiannya seperti gambar di bawah ini. Oiya ketika kita menggunakan PLC, selalu harus menggunakan relay atau kontaktor bertingkat. Fungsinya tentunya kalau terjadi lonjakan arus, maka komponan PLC tidak langsung kena. Istilahnya mendingan beli relay baru ketimbang PLC baru wkwkwk.

PLC, relay, dan Motor 3 phase electrical wiring


Untuk program Laddernya kita bikin dulu alur nya :

Flowchart Forward Reverse Motor



maka ladder diagram nya adalah 

Forward Reverse 3 phase motor Ladder Diagram


2. Rangkaian Star-Delta

Rangkaian star delta digunakan untuk mengantisipasi lonjakan arus yang tinggi ketika motor pertama kali dinyalakan. Rangkaian dimulai dengan konfigurasi star (bintang) kemudian setelah beberapa detik baru menuju delta. Konfigurasi star membutuhkan arus yang tidak besar namun kecepatan putaran yang dihasilkan kecil. Setelah arus konsumsi stabil, konfigurasi delta akan dihubungkan ke motor, dimana arus yang mengalir lebih tinggi dan kecepatan putar juga besar. Untuk rangkaian star, terminal R S T tinggal dihubungkan saja. Sementara untuk rangkaian delta, kaki terminal harus dibalik, misalnya  R ke T, T ke S, dan S ke R.

Electrical Wiring Star Delta

Disini digunakan 3 kontaktor, dimana K1 untuk menyuplai tegangan dari sumber, K2 untuk mengaktifkan rangkaian star, dan K3 untuk mengaktifkan rangkaian delta. Mula-mula K1 dan K2 akan Close dan program timer akan berjalan. Ketika timer logic =1, maka K2 akan open, dan K3 akan close. Oiya sistem star delta selalu menggunakan 2 buah DOL sebagai pengaman ketika terjadi lonjakan suhu. 

Sekarang tinggal dibuat rangkaian ladder PLC nya :
Star Delta 3 phase motor Ladder Diagram



PLC bisa dikatakan mikrokontroler yang powerful. Banyak fitur yang sudah ditanam didalamnya, seperti timer, mathematics operation, data logging dan sebagainya.


Sunday, March 14, 2021

Membuat PLC dan HMI program untuk flowmeter | INSTRUMENT PART 7

PLC and HMI Programming Using TIA PORTAL V16 SIEMENS

Dah lama nih gak nulis tentang instrumen lagi. Di bagian ini saya akan mencoba membuat program PLC dan HMI untuk pengukuran laju aliran menggunakan flow transmitter tentunya. Oiya saya mau cerita sedikit tentang instrumen khususnya PLC  wkwk. Dulu pas kuliah seperti yang pernah saya sampaikan, peminatan saya sebenarnya abu-abu wkwk. Abu-abu dalam artian saya selalu cari aman kalau ngambil mata kuliah. Berhubung PLC merupakan mata kuliah peminatan dan saya dari dulu merupakan orang yang benci segala sesuatu yang berbau "programming", akhirnya saat itu saya putuskan untuk tidak ambil matkul PLC wkwk. Nah baru setelah lulus, saya mengikuti pelatihan PLC di CITA (Center for Instrumentation and Automation) Institut Teknologi Bandung. Awalnya saya mengikuti dengan sedikit sulit (karna saya lemah di logika wkwk), namun tetap bisa mengikuti pelah-pelan lah wkwk.


ITB 2019


Berhubung Siemens tidak memiliki produk data logger, sementara banyak sekali permintaan transmitter yang juga mengikutsertakan data logger untuk penyimpanan data, mentor saya mencoba alternatif menggunakan PLC. Kenapa tidak pakai SCADA (Supervisory Control and Data Acquisition) ? Ya jawabannya karena konsumen tidak punya SCADA, tapi ingin punya data logger untuk transmitter khusus yang datanya dianggap perlu. Solusinya tentunya menggunakan Mikrokontroler yang mempunyai memori, walaupun memori PLC ya terbatas dan ada variannya. Oiya saya sampaikan kembali bahwa transmitter itu hanya bisa mengukur dan mengirim data, tapi tidak bisa menyimpan data real time.

Selama saya mengerjakan tugas kecil-kecilan ini, saya sangat antusias. Jujur tugas ini lebih sulit dari skripsi saya yang tak seberapa itu wkwk. Saya juga berterima kasih kepada mentor saya (Bang Hutagaol) yang begitu banyak mengajarkan saya ilmu instrumentasi. Oiya untuk software nya sendiri menggunakan TIA Portal V16 punyanya SIEMENS tentunya. Dulunya software PLC itu namanya SIMATIC S7, dan software SCADA nya namanya WinCC. Sekarang SIEMENS menggabungkan keduanya dalam satu software namanya TIA PORTAL. 

1). Pahami Alur Proses

Sebelum kita merancang dan membuat program, kita harus paham dulu alur proses di dalam transmitter (dalam hal ini flow transmitter). Karena di dalam flow transmitter ada 2 fitur, yaitu pengukuran flow (m3/jam) dan fitur akumulasi totalizer (m3), maka kita perlu membuat kedua alur tersebut.

Alur untuk fitur flow : Transmitter mengirimkan sinyal analog input ke PLC berupa 4-20 mA, PLC akan mengkonversi sinyal tersebut kedalam bit, kemudian di scaling kan menggunakan span, untuk didapatkan nilai laju aliran. Kalau belum paham alurnya seperti ini :

Banyak instrumen menggunakan 16 bit, yang berarti 2^(16-1) =  0 - 32768. Namun scaling span bit yang banyak digunakan orang di muka bumi ini adalah 0 - 27648. Di beberapa forum dijelaskan bahwa batas nilai efektifnya sebesar 85% dari nilai maksimal 32768.

Misalnya instumen (flow transmitter) memberikan sinyal 12 mA (50% span arus) ke PLC, maka nilai bit yang yang diterima PLC adalah 50% * 27648 = 13824. Nah untuk pembacaan aktual nilai flowrate sebenarnya, maka diperlukan span flow transmitter itu sendiri. Misalnya flow transmitter A memiliki Qmax (max flowrate) = 400 m3/jam, maka ketika transmitter mengeluarkan sinyal 12 mA, maka nilai flowrate saat itu adalah = 400 m3/jam * 50% = 200 m3/jam. Begitulah alur pengukuran flow ( menggunakan analog input berupa arus).

Alur untuk totalizer : Alur totalizer adalah menggunakan prinsip pulse. Pulse disini dimaknakan seperti input clock (digital) ke PLC. Itulah sebabnya untuk pengukuran totalizer menggunakan pulse.

Prinsipnya seperti ini : Pada flow transmitter, tertera nilai volume per pulse, misalnya transmitter A menggunakan 10 liter per pulse. Artinya setiap 10 liter aliran yang telah melewati transmitter, maka transmitter akan mengirimkan logic 1 ke PLC. Misalnya nilai totalizer di transmitter adalah sebesar 34567 liter dengan settingan 10 liter/pulse. Ini berarti PLC telah menerima sebanyak 3456 pulse dari transmitter. Namun saat itu PLC hanya bisa membaca sebesar 34560 liter. Kenapa bukan 34567? Karena kelipatan minimum pulse nya adalah sebesar 10 liter, sehingga 7 liter itu tidak terbaca PLC. Kenapa tidak dibikin 1 liter/pulse? Ya jawabannya karena otak PLC juga terbatas menerima pulse dalam satu satuan waktu.

2. Buat diagram Ladder

Setelah memahami alur proses, kita bisa membuat diagram dengan lebih tenang wkwk. Untuk pengukuran flow karena menggunakan analog input, kita bisa membuat diagram Norm X dan Scale X. Nah yang ribet ini untuk pengukuran totalizer. Saya juga dibantu oleh mentor ketika membuat program ini, karena pengetahuan saya yang terbatas terkait fitur-fitur block PLC wkwk.

Selama saya menegerjakan tugas ini, banyak sekali hal baru yang saya dapat diluar dari pengetahuan pas pelatihan dulu. Misalnya terkait penggunaan diagram block dan function block yang ternyata mempunyai seni nya sendiri dalam PLC Programming.

Diagram Block

Function Block

Main Program


3. Buat program untuk screen HMI

Untuk HMI sebenarnya lebih ke arah kreativitas dan estetika tampilan aja sih. Disini yang saya tampilkan adalah : Nilai pembacaan transmitter, setup, dan grafik real time pengukuran. Setup merupakan salah satu fitur yang penting ya dalam HMI, karena di setup lah user administrator bisa merubah hal penting, seperti satuan.

Main screen

Setup Screen

Graph Screen on HMI


Oiya pada TIA PORTAL ini kita bisa mensimulasikan hasil program kita, untuk mengecek apakah program yang kita buat sudah benar atau belum. Nama softwarenya adalah PLC SIMULATOR yang juga include dengan TIA PORTAL V16. Jadi kita bisa langsung mensimulasikan program PLC dan HMI tanpa perlu dihubungkan ke fisik PLC. Sejauh ini saya masih hanya membuat program untuk pengukuran, untuk data loggernya mungkin saya share di lain waktu wkwk.

Saya sudah mencoba mensimulasikannya, dan hasilnya bisa dilihat di link :