Rumus Scaling 4-20mA ke Engineering Unit (Suhu, Tekanan, Flow)

Sensor 4-20mA mengeluarkan sinyal dalam satuan arus (mA), tapi yang dibutuhkan operator dan sistem monitoring adalah nilai dalam satuan yang bermakna secara fisik — bar, °C, liter/menit, meter, dan sebagainya. Proses mengubah nilai mA mentah menjadi satuan engineering ini disebut scaling, dan ini salah satu perhitungan paling sering dipakai teknisi instrumentasi, baik saat konfigurasi PLC, HMI, maupun software seperti Node-RED. Artikel ini membahas rumus scaling 4-20mA yang bisa langsung kamu pakai, lengkap dengan contoh perhitungan untuk tiga jenis pengukuran paling umum: tekanan, suhu, dan flow.
📌 Artikel ini adalah bagian 3 dari 7 seri 4-20mA Current Loop: Panduan Lengkap untuk Engineer & Teknisi Industri Indonesia. Sudah kalibrasi sensornya? Baca dulu cara kalibrasi sensor 4-20mA dengan benar.
Rumus Scaling 4-20mA: Dasar Perhitungan Linear
Karena sinyal 4-20mA bersifat linear terhadap rentang pengukuran, rumus scaling-nya juga linear:
Nilai_Engineering = ((Nilai_mA − 4) / (20 − 4)) × (Max_Range − Min_Range) + Min_Range
Penjelasan tiap bagian:
- Nilai_mA — pembacaan arus aktual dari sensor (antara 4 dan 20)
- Min_Range / Max_Range — batas bawah dan atas pengukuran sesuai spesifikasi sensor (misalnya 0-10 bar, atau -20°C sampai 100°C)
- (20 − 4) — selalu 16, ini rentang tetap sinyal 4-20mA dalam mA
Rumus ini berlaku untuk semua jenis sensor 4-20mA linear (mayoritas sensor tekanan, level, dan suhu tipe RTD/PT100 dengan transmitter). Untuk sensor flow tertentu (misalnya differential pressure flow meter), ada faktor tambahan yang dibahas terpisah di bagian bawah.
Contoh 1: Scaling Sensor Tekanan
Spesifikasi sensor: range 0-16 bar, output 4-20mA. Pembacaan arus saat ini: 12mA
Tekanan = ((12 − 4) / 16) × (16 − 0) + 0
Tekanan = (8 / 16) × 16
Tekanan = 0.5 × 16
Tekanan = 8 bar
Jadi pembacaan 12mA setara dengan tekanan 8 bar.

Contoh 2: Scaling Sensor Suhu dengan Range Negatif
Spesifikasi sensor: range -20°C sampai 100°C, output 4-20mA. Pembacaan arus saat ini: 8mA
Suhu = ((8 − 4) / 16) × (100 − (−20)) + (−20)
Suhu = (4 / 16) × 120 − 20
Suhu = 0.25 × 120 − 20
Suhu = 30 − 20
Suhu = 10°C
Perhatikan poin penting di sini: kalau range sensor punya nilai minimum negatif (umum untuk sensor suhu), jangan lupa memasukkan tanda minus ke dalam rumus, baik di bagian span (Max – Min) maupun offset akhir (+Min_Range).
Contoh 3: Scaling Sensor Flow
Spesifikasi sensor: range 0-500 liter/menit, output 4-20mA. Pembacaan arus saat ini: 16mA
Flow = ((16 − 4) / 16) × (500 − 0) + 0
Flow = (12 / 16) × 500
Flow = 0.75 × 500
Flow = 375 liter/menit

Catatan khusus flow meter tipe differential pressure (orifice plate, venturi): pada sensor jenis ini, hubungan antara sinyal dan flow rate sebenarnya tidak linear, melainkan mengikuti hubungan akar kuadrat (square root), karena flow rate berbanding lurus dengan akar dari differential pressure yang terukur.

Kalau transmitter sudah punya fungsi square root extraction internal (banyak transmitter modern punya ini), output 4-20mA sudah linear terhadap flow dan rumus dasar di atas tetap berlaku. Tapi kalau extraction dilakukan di sisi PLC/software, kamu perlu menambahkan langkah akar kuadrat setelah scaling linear. Selalu cek datasheet transmitter untuk memastikan di mana proses ini terjadi.
Implementasi Rumus Scaling di Berbagai Platform
Di PLC (Ladder/Structured Text)
Kebanyakan PLC modern sudah punya instruksi built-in untuk scaling (misalnya instruksi SCALE di Allen Bradley atau NORM_X/SCALE_X di Siemens TIA Portal), tapi kalau perlu manual, logikanya tetap mengikuti rumus dasar di atas — cukup ganti nilai mA dengan raw value dari analog input card (biasanya dalam bentuk counts, misalnya 0-27648 untuk beberapa modul Siemens, bukan mA langsung).
Di Node-RED (Function Node)
let mA = msg.payload;
let minRange = 0;
let maxRange = 16;
let engValue = ((mA - 4) / 16) * (maxRange - minRange) + minRange;
msg.payload = engValue;
return msg;
Di ESP32/Arduino (Setelah Baca Register Modbus)
Nilai yang dibaca dari register Modbus lewat ESP32 biasanya sudah dalam bentuk raw mA (atau dikali faktor tertentu tergantung konfigurasi modul — cek datasheet modul converter yang dipakai). Setelah dapat nilai mA, terapkan rumus yang sama untuk mendapatkan nilai engineering unit sebelum ditampilkan atau dikirim ke dashboard.
Kesalahan Umum Saat Scaling
- Salah asumsi range sensor — banyak kesalahan terjadi karena teknisi memakai range default (misalnya 0-100%) padahal sensor yang terpasang punya range custom sesuai spesifikasi order (misalnya 0-16 bar). Selalu cek datasheet atau nameplate sensor, jangan asumsi.
- Lupa faktor square root untuk flow meter DP-type — seperti dijelaskan di atas, ini penyebab flow reading yang terlihat “aneh” di rentang rendah-menengah.
- Tertukar arah mapping saat range negatif — kesalahan tanda plus/minus paling sering terjadi di sensor dengan range yang melibatkan nilai negatif.
- Scaling dobel — kadang modul converter Modbus sudah melakukan scaling sendiri di levelnya (sudah mengeluarkan nilai dalam engineering unit, bukan mA mentah), lalu di software/PLC discaling lagi. Ini menghasilkan nilai yang salah total. Selalu cek dulu format output dari perangkat sebelum di-layer perhitungan tambahan.
Kesimpulan
Rumus scaling 4-20mA sebenarnya sederhana — hanya soal pemetaan linear dari rentang 4-20mA ke rentang fisik sensor. Yang sering jadi sumber error bukan rumusnya, tapi kesalahan asumsi range, tanda negatif, atau layer scaling yang dobel. Pastikan kamu selalu mengecek datasheet sensor dan konfigurasi modul converter sebelum menerapkan rumus ini di sistem.
🔧 Butuh modul yang sudah bisa baca nilai mA langsung ke Modbus untuk kamu scaling? Cek modul 4-20mA to Modbus RTU di Tokopedia: tokopedia.com/bisaioti — setiap pembelian dapat akses bonus ke kelas praktik “Batch Pendiri” di bisaioti.com/lab.
🎓 Mau dipandu langkah demi langkah dari konsep sampai baca data ke dashboard? Gabung kelas “Dari Sensor Industri ke Dashboard: Baca Data 4-20mA via Modbus RTU” di bisaioti.com/lab.
