Ditulis oleh Ketut Kumajaya — 31 Oktober 2025

Konteks

Artikel ini mendokumentasikan konfigurasi Emerson Micro Motion™ Model 1700 untuk mengonversi unit pengukuran dari mass flow (kg/h) menjadi special measurement unit (m³/h). Konfigurasi meliputi penetapan base unit, scale factor, label, dan aktivasi unit khusus melalui register Modbus. Hasilnya sesuai kebutuhan kontrak maupun operasi lapangan.

Catatan: Scale factor ditetapkan sebagai inverse dari 0.8874378 m³/h per kg/h → 1 ÷ 0.8874378 ≈ 1.12695 sesuai definisi Micro Motion™.


Kerangka Implementasi: kg/h → m³/h

  • Base Mass Unit: kilograms

  • Base Time Unit: hours

  • Konversi: 1 kg/h = 0.8874378 m³/h → faktor konversi = 1.12695

  • Register Modbus (Node-RED 0-based):

    • Base Unit: 131–132
    • Scale Factor: 237–238
    • Flow Label: 52–55
    • Total Label: 56–59
    • Active Unit: 39

Penting: Semua register sudah disesuaikan untuk Node‑RED (0-based). Pastikan tidak salah tulis 1-based (Emerson manual).


Konfigurasi Register

Fungsi Emerson manual (1‑based) Node‑RED (0‑based) Write Value Catatan Kritikal
Base unit (mass flow) 132–133 131–132 [61,52] Pastikan sesuai Node‑RED, jangan terbalik.
Conversion factor (float32, WordSwap) 238–239 237–238 [16482,16272] Word Swap harus tepat: high/low word jangan tertukar.
Flow label (ASCII, 4 words) 53–56 52–55 [19763,12104,8224,8224]
Total label (ASCII, 4 words) 57–60 56–59 [19763,8224,8224,8224]
Active mass flow unit 40 39 253 Jangan salah register; aktifkan hanya satu.
Stop/start flowmeter (coil) 2 / 2 1 / 1 0 / 1 Kritikal: selalu stop (0) sebelum konfigurasi, start (1) setelah selesai.
Reset totalizer (coils, opsional) 3–4 2–3 [1,1] Lakukan hanya saat reset diperbolehkan.

Visualisasi Alur

flowchart LR subgraph CONF["Konfigurasi"] direction TB A["Inject: Configure"] --> B["Stop Flowmeter (Coil 1=0)"] B --> C["Set Base Unit → kg/h"] C --> D["Set Scale Factor → 1.12695"] D --> E["Set Flow Label → 'M3/H'"] E --> F["Set Total Label → 'M3'"] F --> G["Activate Special Unit (Reg 39=253)"] G --> H["Reset Totalizer (Coil 2–3=[1,1]) (opsional)"] H --> I["Start Flowmeter (Coil 1=1)"] end subgraph VERIF["Verifikasi"] direction TB V1["Read‑Back Base Unit → kg/h"] --> V2["Read‑Back Scale Factor → 1.12695"] V2 --> V3["Read‑Back Flow Label → 'M3/H'"] V3 --> V4["Read‑Back Total Label → 'M3'"] V4 --> V5["Read‑Back Active Unit (Reg 39=253)"] V5 --> V6["Debug: Verification Output (log semua nilai)"] end CONF --> VERIF
Alur konfigurasi dan verifikasi special measurement unit pada Emerson Micro Motion™ Model 1700 (Node-RED 0‑based).

Fungsi Bantu

Float32 Word Swap

function wordsToFloatWordSwap(words) {
  // Micro Motion float WordSwap: high/low word invert
  const buf = Buffer.alloc(4);
  buf.writeUInt16BE(words[1], 0);
  buf.writeUInt16BE(words[0], 2);
  return buf.readFloatBE(0);
}

function floatToWordsWordSwap(f) {
  const buf = Buffer.alloc(4);
  buf.writeFloatBE(f, 0);
  return [buf.readUInt16BE(2), buf.readUInt16BE(0)];
}

ASCII Unit String

function asciiToWords(str, wordsLen = 4) {
  // Convert string ke 4-word ASCII untuk register
  const s = str.padEnd(wordsLen * 2, ' ').slice(0, wordsLen * 2);
  const words = [];
  for (let i = 0; i < s.length; i += 2) {
    words.push((s.charCodeAt(i) << 8) | s.charCodeAt(i + 1));
  }
  return words;
}

function wordsToAscii(words) {
  return words.map(w =>
    String.fromCharCode((w >> 8) & 0xFF) + String.fromCharCode(w & 0xFF)
  ).join('').trimEnd();
}

// Contoh: asciiToWords("M3/H") → [19763,12104,8224,8224]

Read‑Back Log

Timestamp Register Read‑Back Decode
2025-10-31 18:45:02 131–132 [61,52] kg/h
2025-10-31 18:45:03 237–238 [16482,16272] 1.12695
2025-10-31 18:45:04 52–55 [19763,12104,8224,8224] M3/H
2025-10-31 18:45:05 56–59 [19763,8224,8224,8224] M3
2025-10-31 18:45:06 39 253 Special unit aktif

Kritikal: semua write dan read-back harus match. Word Swap diterapkan untuk scale factor float32.


Checklist Verifikasi

  • Base Unit: register 131–132 → kg/h

  • Scale Factor: register 237–238 → decode Word Swap ≈ 1.12695

  • Unit String:

    • Flow label 52–55 → “M3/H”
    • Total label 56–59 → “M3”
  • Active Unit: register 39 = 253 → special unit aktif

  • Status Operasi: Coil 1 = 0 saat konfigurasi, Coil 1 = 1 setelah start

  • Audit Logging: simpan log write/read (timestamp, address, values, hasil decode)

  • Safety Reminder: pastikan flowmeter berhenti sebelum menulis register / coil


Catatan Teknis

  • Komunikasi: Modbus RTU via TCP gateway, mapping register sesuai manual.
  • Endianness: gunakan Word Swap untuk float32.
  • Delay: sisipkan 100–200 ms antar operasi.
  • Persistensi: simpan konfigurasi ke EEPROM bila tersedia.
  • Keselamatan: lakukan perubahan saat flowmeter berhenti.
  • Addressing: perhatikan perbedaan 1‑based vs 0‑based, selalu verifikasi dengan read‑back.

Pengingat cepat: Manual Emerson menggunakan 1‑based addressing, sedangkan Node‑RED driver menggunakan 0‑based addressing. Aturan praktis: Address Node‑RED = Address Emerson - 1. Contoh: Register 132–133 (manual) = Register 131–132 (Node‑RED).


Penutup

Konfigurasi special measurement unit memungkinkan operator menampilkan data proses dalam satuan yang lebih relevan, meski tidak tersedia secara default.

  • Audit‑grade: semua langkah terdokumentasi.
  • Operator‑friendly: konfigurasi + verifikasi cukup sekali klik di Node-RED.
  • Fleksibel: dapat diterapkan untuk unit lain dengan menyesuaikan faktor konversi dan label.

Referensi