Komunikasi PLC Modicon M221 – Siemens S7 1200 via Modbus TCP

Jika pada tutorial sebelumnya saya membahas komunikasi antara 2 PLC Modicon M221 (via Modbus RTU dan Modbus TCP), maka pada posting kali ini saya akan membahas komunikasi antara PLC Modicon M221 dengan PLC Siemens S7 1200 via Modbus TCP. CPU dari PLC Siemens S7 1200 adalah sebuah Modbus TCP Server, sehingga komunikasi ini dimungkinkan menggunakan instruksi \”MB_SERVER\” dan \”MB_CLIENT\” [1].

Persiapan

Peralatan yang dibutuhkan:

  • 1 buah PLC M221 yang memiliki port ethernet
  • 1 buah PLC S7 1200 yang memiliki port ethernet
  • 3 buah kabel RJ 45
  • 1 buah hub

PLC M221 dan PLC S7 1200 (serta laptop) masing – masing dihubungkan ke hub dengan kabel RJ 45. Perhatikan gambar berikut.

Program “Modbus_TCP_Write” di PLC Modicon M221

Supaya PLC 1 dan PLC 2 dapat bertukar data dengan protokol Modbus, digunakan instruksi WRITE_VAR dan READ_VAR. PLC 1 akan menuliskan nilai di alamat tertentu dengan instruksi WRITE_VAR, sedang PLC 2 akan membaca nilai di alamat yang sama dengan instruksi READ_VAR. Pada tutorial ini PLC 1 (Modicon) akan menggunakan WRITE_VAR saja.

Mulanya kita perlu melakukan konfigurasi hardware. Pada bagian “Configuration”, pilih ETH1, dan masukkan IP address dan kelengkapannya. Pada PLC 1, IP address yang digunakan:

192.168.0.10

Kemudian kita pilih bagian “Modbus TCP” dan kita masukkan IP address dari peralatan yang akan kita akses: 192.168.0.1. Setelah itu tekan tombol “Add” sehingga alat tersebut masuk ke dalam daftar. Lihat gambar berikut.

Kemudian kita membuat program seperti gambar di bawah. %S6 akan memberikan pulsa setiap 1 detik, dan nilai %MW0 akan bertambah satu setiap detiknya (dengan instruksi INC). Pulsa dari %S6 juga digunakan untuk mengaktikan instruksi WRITE_VAR, dikarenakan instruksi akan dieksekusi setiap pin EXECUTE mendapat sinyal yang berubah dari 0 ke 1 (rising edge).

\"\"

Pada instruksi WRITE_VAR, diisikan pengaturan berikut:

  • Link: 3 – ETH1 (diisikan port Ethernet)
  • Id: 1 (Id dari Modbus slave yang kita miliki)
  • ObjType (semacam function code)
  • FirstObj: alamat data pertama yang akan dituliskan
  • Quantity: jumlah data yang akan ditulis
  • IndexDat: lokasi alamat data baru
\"\"

Berikut ini tampilan program jika dieksekusi:

\"\"

Program “MB_Client” di PLC S7 1200

Pada PLC S7 1200, digunakan instruksi MB_CLIENT untuk menangani komunikasi Modbus TCP. Sebelum kita melakukan konfigurasi instruksi tersebut, buatlah dua buah Data Block baru: MB_Connect_Coba (untuk parameter koneksi) dan MB_Data_Coba (untuk data yang akan digunakan secara simulasi).

\"\"

Klik dua kali pada MB_Connect_Coba, buatlah nama baru (misal: Connect_Coba) dan tuliskan data type: TCON_IP_v4, maka parameter – parameter koneksi akan muncul otomatis. Berikut ini parameter – parameter yang kita gunakan (penjelasan dapat dilihat di Help TIA Portal):

  • InterfaceId: 64
  • ID: 1
  • ConnectionType: 11
  • ActiveEstablished: true
  • RemoteAddress: IP_V4
    • ADDR: 192.168.0.10
  • Remote Port: 502
\"\"

Sedangkan untuk Data_Coba beriisi 10 aray data Unsigned Integer: Array [0..9] of UInt.

\"\"

Untuk  instruksi MB_CLIENT dapat diambil dari “Communication” > “Others” > MODBUS TCP.

\"\"

Berikut ini konfigurasi MB_CLIENT yang digunakan:

  • EN: selalu diberi nilai 1
  • REQ: 1
  • DISCONNECT: false
  • MB_MODE: 0 (instruksi berada dalam mode Read )
  • MB_DATA_ADDR: 40001 (alamat pertama register Modbus yang dibaca, di PLC Modicon sama dengan %MW0)
  • MB_DATA_LEN: 10 (jumlah register yang akan dibaca)
  • MB_DATA_PTR: letakkan Data_Coba yang sudah dibuat sebelumnya
  • CONNECT: letakkan Connect_Coba yang sudah dibuat sebelumnya
\"\"

Setelah pembuatan program selesai, maka program harus di-download ke PLC, lalu PLC dirubah ke mode Run. Perubahan nilai %MW0 di PLC M221 (alamat 40001) akan tampak dengan mengaktifkan fitur “monitoring” di TIA Portal (icon bergambar kaca mata), baik di halaman pemrograman, maupun halaman data block Data_Coba.

Catatan penting: jika setelah melakukan perubahan konfigurasi atau program terjadi masalah, coba ubah mode PLC ke “Stop” kemudian dikembalikan ke “Run” lagi

Sumber:

[1] Siemens Industry Online Support, “Modbus/TCP with instructions MB_CLIENT and MB_SERVER ” [link]

Leave a Comment

× Ada pertanyaan?