Akses Data Block PLC Siemens S7-1500 Menggunakan Node.js 

🎯 Tujuan Pembelajaran

Setelah mengikuti praktikum ini, mahasiswa mampu:

  1. Mengonfigurasi Data Block pada PLC Siemens S7-1500 agar dapat dibaca Node.js.
  2. Menggunakan library nodes7 untuk membaca data WORD dari Data Block.
  3. Memahami struktur alamat seperti DB2,WORD0 dan DB2,WORD2.
  4. Membuat program Node.js untuk membaca data secara periodik (1 detik).

🧠 Dasar Teori

  1. Data Block (DB) di Siemens S7-1500

Dalam Siemens PLC, Data Block berisi variabel yang dapat diakses eksternal.
Untuk kompatibilitas dengan Node.js:

      • Optimized block access harus OFF
      • Tipe data harus memiliki offset yang fix
      • Contoh tipe: Bool, Byte, Word, Real, dll.
      • Node.js → membaca berdasarkan alamat absolut, bukan nama variabel
  1. Pembacaan WORD

WORD = 16-bit unsigned integer
Range: 0 – 65535

Format alamat:

      • DB2,WORD0 → DB2 offset 0 (WORD pertama)
      • DB2,WORD2 → DB2 offset 2 (WORD kedua)

🧰 Peralatan

Hardware
    • Siemens S7-1500 atau PLCSIM Advanced
    • Laptop/PC dengan Node.js
Software
    • TIA Portal
    • Node.js + library nodes7
    • VS Code (opsional)

🛠️ Langkah Praktikum

A.Konfigurasi Data Block di TIA Portal
  1. Buat Data Block Baru

membuat data block

  1. Matikan Optimized Block Access

    Properti data block

    • Pada jendela properti DB
    • Hilangkan centang Optimized block access
  1. Buat Struktur Variabel Manual (Tidak Optimized)

Isi variabel sebagai berikut:

Nama Variabel Tipe Offset
modbus_data[0] Uint 0
modbus_data[1] Uint 2

Download ke PLC.

B.Instalasi Program Node.js

  1. Buat folder project

mkdir plc-siemens-db2

cd plc-siemens-db2

npm init -y

  1. Install library nodes7

npm install nodes7

C.Program Node.js (Akses DB2 – WORD)

Buat file:

read_db2.js

Isi kode sesuai dengan script yang Anda berikan:

const S7 = require('nodes7');

const s7 = new S7();




const connectionParams = {

    host: "192.168.0.125",

    port: 102,

    rack: 0,

    slot: 1

};




// GUNAKAN WORD, BUKAN UINT

const tags = {

    md0: "DB2,WORD0",

    md1: "DB2,WORD2"

};




s7.initiateConnection(connectionParams, (err) => {

    if (err) {

        console.log("❌ Error:", err);

        return;

    }




    console.log("✅ Connected");




    s7.setTranslationCB(tag => tags[tag]);

    s7.addItems(Object.keys(tags));




    setInterval(() => {

        s7.readAllItems((err, values) => {

            if (err) console.log("❌ Read error:", err);

            else {

                console.log("----------------------------");

                console.log("modbus_data[0] =", values.md0);

                console.log("modbus_data[1] =", values.md1);

            }

        });

    }, 1000);

});

D.Menjalankan Program

Jalankan:

node read_db2.js

Jika koneksi sukses, tampilannya:

✅ Connected

----------------------------

modbus_data[0] = 123

modbus_data[1] = 456

----------------------------

modbus_data[0] = 123

modbus_data[1] = 456

Output diperbarui setiap 1 detik.

✔️ Hasil yang Diharapkan

Mahasiswa mampu:

  • Mengkonfigurasi DB non-optimized pada Siemens S7-1500
  • Mengakses WORD menggunakan Node.js
  • Memahami pemetaan alamat DB seperti DB2,WORD0
  • Membaca data secara periodik dengan setInterval

🎯 Tugas Akhir

  1. Tambahkan 1 variabel baru pada DB2:
    • md2 (Word) offset 4
  2. Ubah program Node.js untuk membaca md2.
  3. Buat tabel monitoring via console seperti:

 

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Check Also
Close