Komunikasi S7 PLC via Ethernet ( PUT and GET )

S7-300, S7-400, Simatic Step7 Add comments

Dalam pengaplikasiannya, terkadang dalam suatu plant kita mendapatkan lebih dari satu PLC.
Disini saya mencoba sedikit berbagi, tentang bagaimana membangun komunikasi antar 2 CPU S7-300. Mengapa saya tulis sebagai komunikasi antar 2 CPU, karena untuk bahasan ini CPU yang digunakan adalah jenis CPU yang terlah memiliki fasilitas ethernet connection, atau biasanya sering disebut tipe PN (Profinet). Ethernet adalah media umum yang paling sering digunakan untuk komunikasi baik itu antar PLC maupun dari PLC ke SCADA, dsb.

Komunikasi antar PLC S7 yang akan saya jelaskan disini menggunakan fasilitas library / function bawaannya software Simatic Manager. Banyak function maupun function block yang bisa digunakan untuk membangun komunikasi antar 2 PLC. Untuk saya sendiri, biasanya sering menggunakan function block untuk PUT dan GET, dimana dengan cara ini kita cukup membuat logika pemrograman komunikasi di satu sisi PLC, sedangkan disisi yang lain hanya cukup menyiapkan data block atau memory yang akan ditulis atau dibaca.

Berikut langkah – langkahnya :

– Buka NetPro untuk konfigurasi network


– Tampilan dari NetPro

– Klik kanan di table –> Insert New Connection

pilih unspecified station, karena biasanya dalam satu project saya hanya menggunakan single CPU, selain itu pilih juga S7 connection, karena yang kita komunikasikan adalah antar CPU bukan CP.

– Konfigurasi untuk Active Connection (PUT)

dalam contoh kali ini IP untuk CPU S7 yang kita tuju adalah 172.17.5.12

jangan lupa juga dipastikan rack 0 dan slot 2 untuk partner CPU

– Konfigurasi untuk non Active Connection (GET)

Perhatikan di bagian establish an active connection, untuk PUT di centang, sedangkan untuk konfigurasi GET tidak di centang. Kemudian Local ID nya berbeda diantara 2 konfigurasi tersebut, Local ID ini nantinya akan digunakan di FB PUT dan FB GET.

– Hasil dari dua konfigurasi tersebut

– Prepare untuk FC dan DB send dan receive data

– Scripting

Penjelasan untuk masing masing FB (PUT and GET), bisa dilihat dengan menekan F1 pada FB yang bersangkutan. Disini saya jelaskan sedikit dari elemen elemen FB tersebut :

REQ : adalah trigger kapan fungsi PUT (mengirimkan data) dan fungsi GET (mengambil data) dieksekusi
ID : Local ID saat kita menkonfigurasi di NetPro
DONE & NDR : adalah bit yang aktif begitu semua proses untuk PUT dan GET sukses
ERROR : bit yang akan aktif apabila ada kegagalan dalam proses pengiriman dan pengambilan data, hal ini yang bisa dimanfaatkan sebagai interlock dalam suatu proses yang berhubungan antar dua atau lebih CPU.
STATUS : nilai word yang berfungsi untuk diagnostic (bisa dilihat di help dengan menekan F1 di FB yang bersangkutan)
SD_1 : data yang akan di dikirim / diletakkan ke partner CPU (pointer)
ADDR_1 : adalah data di partner CPU yang akan menerima data kita (untuk fungsi PUT), atau data yang akan kita ambil (untuk fungsi GET), dan juga menggunakan tipe pointer
RD_1 : data di local CPU sebagai tempat penampungan dari data yang telah kita ambil di partner CPU

Jadi intinya dengan cara seperti ini kita hanya membuat logika di satu sisi CPU aja, sedangkan sisi yang lain hanya menyiapkan data yang akan diambil dan data yang akan diterima, tidak logika komunikasi dikedua sisi seperti cara komunikasi yang lain misalnya menggunakan AG_SEND AG_RECV, BSEND BRECV, TSEND TRECV, dsb.

Tapi kemudian masalah yang timbul adalah bagaimana partner CPU bisa mengetahui bahwa komunikasi yang dibangun error ? 🙁 Untuk mengatasi hal ini, Local CPU harus mengirimkan suatu nilai heartbeat (data yang selalu berubah ubah) , dan disisi partner kita harus membuat sedikit logika untuk mendeteksi heartbeat tersebut. Apabila tidak ada perubahan dalam beberapa saat, maka bisa dikategorikan bahwa komunikasi antar CPU tersebut gagal 🙂

Copyright © 2008 toekangscada.com, Powered by Wordpress, WP Theme redesign from Glossyblue
Entries RSS Comments RSS Log in