Integrasi Python dengan PLC Omron menggunakan Protokol FINS

  1. Pendahuluan

Dalam tutorial ini, kita akan belajar cara mengintegrasikan Python dengan PLC Omron menggunakan protokol FINS (Factory Interface Network Service). FINS adalah protokol komunikasi yang digunakan untuk menghubungkan PLC Omron dengan perangkat lain (seperti komputer atau sistem SCADA) untuk membaca dan menulis data. Python digunakan untuk membuat antarmuka yang dapat mengirim dan menerima data dari PLC Omron.

  1. Tujuan

Tujuan dari jobsheet ini adalah untuk menghubungkan PLC Omron dengan komputer menggunakan Python dan membaca serta menulis data menggunakan protokol FINS. Komputer akan mengirimkan instruksi ke PLC untuk mengambil atau mengubah data yang tersimpan dalam memori PLC.

  1. Persyaratan

Sebelum memulai, pastikan Anda memiliki perangkat dan perangkat lunak berikut:

Ads Jadwal Training bisaioti Offline
NoMateriTanggalWaktuHargaLokasiViewAction
1IOT PLC SCADA Siemens7-8 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
2IOT PLC SCADA Omron14 - 15 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
3IOT PLC SCADA Schneider21-22 Juni 202508.00 -16.002000000SurabayaSilabusDaftar Sekarang
4IOT PLC SCADA Allen Bradley28-29 Juni 202508.00-16.002000000SurabayaSilabusDaftar Sekarang
  1. PLC Omron dengan dukungan untuk protokol FINS.
  2. Python terinstal di komputer Anda (disarankan versi 3.6 atau lebih tinggi).
  3. library Socket lainnya untuk komunikasi dengan PLC Omron.
  4. Jaringan yang terhubung antara komputer dan PLC (misalnya, kabel Ethernet jika menggunakan FINS over TCP/IP).
  5. Akses ke perangkat PLC dan konfigurasi FINS pada PLC Omron (misalnya, alamat IP PLC, nomor port, dll).
  1. Instalasi Socket

Untuk berkomunikasi dengan PLC Omron menggunakan Python, kita memerlukan pustaka Socket. Pustaka ini memungkinkan kita untuk menggunakan protokol FINS di Python.

  1. Konfigurasi PLC Omron

Sebelum menghubungkan Python dengan PLC Omron, pastikan bahwa PLC telah dikonfigurasi untuk mendukung komunikasi FINS.

  1. Atur alamat IP PLC: Pastikan bahwa PLC Omron dapat diakses melalui jaringan lokal (LAN). Anda perlu mengetahui alamat IP PLC untuk menghubungkannya melalui FINS.
  2. Aktifkan mode FINS: Pada beberapa model PLC Omron, Anda perlu mengaktifkan komunikasi FINS melalui pengaturan perangkat lunak (misalnya, CX-Programmer atau Sysmac Studio).
  3. Catat alamat dan nomor port: Tentukan alamat IP dan nomor port komunikasi yang akan digunakan untuk menghubungkan PLC dengan komputer. Biasanya, port default untuk FINS adalah port 9600 atau port lainnya yang sesuai dengan konfigurasi PLC Anda.
  1. Kode Python untuk Komunikasi FINS

Berikut adalah contoh kode Python yang menggunakan pustaka pyfins untuk berkomunikasi dengan PLC Omron melalui protokol FINS. Kode ini dapat digunakan untuk membaca dan menulis data ke dalam memori PLC.

    1. Membaca dan Menulis Data dari PLC
import socket

import time




# Alamat IP dan port PLC Omron

PLC_IP = '192.168.1.100'  # Ganti dengan alamat IP PLC Anda

PLC_PORT = 9600  # Port komunikasi FINS (default 9600)




# Membuat socket untuk komunikasi TCP/IP

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)




def connect_plc():

    """Membuat koneksi ke PLC"""

    try:

        sock.connect((PLC_IP, PLC_PORT))

        print(f"Terhubung ke PLC di {PLC_IP}:{PLC_PORT}")

    except Exception as e:

        print(f"Gagal terhubung ke PLC: {e}")

        sock.close()




def send_fins_request(request):

    """Mengirimkan permintaan FINS ke PLC"""

    try:

        sock.send(request)

        print(f"Permintaan FINS terkirim: {request.hex()}")

        time.sleep(1)  # Memberikan waktu untuk menerima respons dari PLC

        response = sock.recv(1024)  # Menerima respons dari PLC

        print(f"Respons diterima: {response.hex()}")

        return response

    except Exception as e:

        print(f"Terjadi kesalahan saat mengirim permintaan: {e}")

        return None




def read_data_from_plc():

    """Membaca data dari PLC"""

    # Membuat paket FINS untuk membaca data dari DM1 (Data Memory Address 1)

    fins_read_request = bytearray([

        0x46, 0x49, 0x4E, 0x53,  # Header FINS

        0x00, 0x00, 0x00, 0x00,  # Alamat asal (Host)

        0x00, 0x00, 0x00, 0x00,  # Alamat tujuan (PLC)

        0x01, 0x01, 0x00, 0x01,  # Perintah (Read/Write)

        0x00, 0x01, 0x00, 0x01,  # Data yang akan dibaca (contoh DM1)

    ])




    response = send_fins_request(fins_read_request)

    if response:

        # Proses respons dari PLC (contoh: membaca data dari DM1)

        data = response[22:]  # Mengambil bagian respons yang relevan

        print(f"Data yang dibaca dari PLC: {data.hex()}")




def write_data_to_plc():

    """Menulis data ke PLC"""

    # Membuat paket FINS untuk menulis data ke DM1 (Data Memory Address 1)

    fins_write_request = bytearray([

        0x46, 0x49, 0x4E, 0x53,  # Header FINS

        0x00, 0x00, 0x00, 0x00,  # Alamat asal (Host)

        0x00, 0x00, 0x00, 0x00,  # Alamat tujuan (PLC)

        0x01, 0x02, 0x00, 0x01,  # Perintah (Write)

        0x00, 0x01, 0x00, 0x01,  # Data yang akan ditulis (contoh DM1)

        0x12, 0x34,  # Data yang akan ditulis (nilai 1234)

    ])




    response = send_fins_request(fins_write_request)

    if response:

        print("Data berhasil ditulis ke PLC.")




# Langkah-langkah komunikasi dengan PLC

connect_plc()  # Koneksi ke PLC

read_data_from_plc()  # Membaca data dari PLC

write_data_to_plc()  # Menulis data ke PLC




# Menutup koneksi setelah selesai

sock.close()
    • Penjelasan Program
      • socket(socket.AF_INET, socket.SOCK_STREAM): Membuat objek socket untuk koneksi TCP/IP. Kita menggunakan AF_INET untuk alamat IPv4 dan SOCK_STREAM untuk TCP.
      • connect_plc(): Fungsi untuk menghubungkan ke PLC Omron dengan alamat IP dan port yang telah ditentukan. Jika koneksi berhasil, akan dicetak pesan “Terhubung ke PLC”.
      • send_fins_request(request): Fungsi ini mengirimkan permintaan FINS ke PLC dan menunggu respons. Permintaan dikirim dalam bentuk bytearray, yang merupakan format yang digunakan untuk protokol FINS. Fungsi ini akan menerima respons dari PLC dalam bentuk byte dan mengembalikannya setelah diproses.
      • read_data_from_plc(): Fungsi ini digunakan untuk membaca data dari PLC menggunakan protokol FINS. Dalam hal ini, permintaan FINS dikirim untuk membaca data dari alamat DM1 (Data Memory Address 1). Respons dari PLC kemudian diproses dan ditampilkan.
      • write_data_to_plc(): Fungsi ini digunakan untuk menulis data ke PLC. Dalam contoh ini, kita menulis nilai 1234 ke alamat DM1. Setelah menulis data, sistem menunggu respons dari PLC untuk memastikan data berhasil ditulis.
      • close(): Menutup koneksi setelah selesai untuk membebaskan sumber daya.
    • Penjelasan Struktur Fins

Permintaan FINS untuk membaca atau menulis data memiliki struktur tertentu yang terdiri dari beberapa bagian. Berikut adalah beberapa bagian penting dari permintaan FINS yang digunakan dalam contoh:

      • Header FINS: Biasanya terdiri dari 4 byte pertama (misalnya, 0x46 0x49 0x4E 0x53 untuk “FINS”).
      • Alamat asal dan tujuan: Alamat yang menunjukkan perangkat pengirim dan penerima.
      • Perintah: Menentukan apakah operasi yang dilakukan adalah pembacaan (0x01) atau penulisan (0x02).
      • Alamat Data: Alamat memori yang akan dibaca atau ditulis (misalnya, DM1).
      • Data yang dikirimkan: Untuk operasi penulisan, data yang ingin ditulis (misalnya, 0x12 0x34 untuk nilai 1234).

 

  1. Menangani Error dan Debugging

Dalam komunikasi FINS, Anda mungkin menghadapi beberapa masalah, seperti kegagalan koneksi atau kesalahan komunikasi. Berikut adalah beberapa tips untuk menangani masalah umum:

  1. Pastikan alamat IP PLC benar: Periksa kembali alamat IP PLC dan pastikan perangkat Anda terhubung ke jaringan yang sama.
  2. Port yang benar: Pastikan port yang digunakan pada PLC sesuai dengan port yang ditetapkan dalam kode Python.
  3. Cek konfigurasi PLC: Pastikan PLC telah dikonfigurasi dengan benar untuk mendukung komunikasi FINS.
  4. Tunggu timeout yang cukup: Jika tidak ada respons dari PLC, Anda mungkin perlu meningkatkan batas waktu koneksi (timeout).
  5. Log kesalahan: Gunakan logging untuk melacak kesalahan komunikasi dan memudahkan debugging.
  1. Penerapan dan Pengujian

Setelah Anda menulis dan mengonfigurasi kode Python, lakukan pengujian untuk memastikan bahwa sistem berfungsi dengan baik. Berikut adalah langkah-langkah untuk menguji sistem:

  1. Koneksi ke PLC: Jalankan kode Python untuk menghubungkan komputer ke PLC menggunakan alamat IP dan port yang telah dikonfigurasi.
  2. Pengujian membaca dan menulis data: Uji kode untuk membaca dan menulis data dari memori PLC, misalnya DM, atau memori lainnya.
  3. Verifikasi hasil: Periksa apakah data yang dibaca atau ditulis sesuai dengan yang diharapkan. Anda dapat memverifikasi nilai melalui perangkat lunak PLC (seperti CX-Programmer).
  1. Kesimpulan

Integrasi Python dengan PLC Omron menggunakan protokol FINS memungkinkan Anda untuk mengontrol dan memantau perangkat PLC secara otomatis. Dengan menggunakan pustaka seperti pyfins, Anda dapat dengan mudah membaca dan menulis data ke dalam PLC, serta mengembangkan aplikasi berbasis Python untuk otomasi industri. Penggunaan protokol FINS membuat komunikasi antar perangkat menjadi lebih efisien dan terstandarisasi, membuka peluang untuk pengembangan lebih lanjut dalam aplikasi industri 4.0 dan IoT.

Dengan tutorial ini, Anda diharapkan dapat memahami cara mengintegrasikan Python dengan PLC Omron melalui protokol FINS, serta mengimplementasikan aplikasi otomasi industri yang dapat meningkatkan efisiensi dan produktivitas.

 

Related Articles

Leave a Reply

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

Daftar Sekarang