Komunikasi S7 PLC via Ethernet ( PUT and GET )

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 ๐Ÿ™‚

73 thoughts on “Komunikasi S7 PLC via Ethernet ( PUT and GET )”

  1. thx, atas petuntuknya dah aq coba & ok. cuman yg rada kurang paham ini mas “pilih unspecified station, karena biasanya dalam satu project saya hanya menggunakan single CPU” -> hanya ada pilihan itu bukannya krn mas Toni ini konfigurasi hanya untuk 1 PLC dlm satu project(or dpt diartikan partner masih belum didefinisikan di konfigurasi)? yg kedua “pilih juga S7 connection, karena yang kita komunikasikan adalah antar CPU bukan CP” -> S7 Connection itu setau saya dipilih krn kita make protokol S7, seandainya pake protokol laen misal Modbus/TCP dgn konfigurasi yg tetap sama maka yg harus dipilih adalah TCP Connection, jadi ngk ada hubungannya antara CPU & bukan CPU … mohon pencerahan

  2. iya bener mas ๐Ÿ™‚ berarti konsep saya masih salah nie ๐Ÿ™‚

    – yang pertama : biasanya selain menggunakan lebih dari 1 CPU, cukup add object other station juga bisa

    – yang kedua : dalam pengalaman ku selama ini digunakannya untuk komunikasi ethernet, dimana komunikasi ethernet pada S7 bisa integrated di CPU atau tersendiri menggunakan CP-Ethernet ๐Ÿ™‚

    terimakasih atas koreksinya mas ๐Ÿ™‚

  3. Salam kenal mas.., banyak ilmu dari blog ini…
    Saya termasuk masih baru belajar plc,..
    Boleh tanya dikit ya mas..
    Gini mas di tempat saya bekerja ada mesin baru, konveyor.
    Sama bos.. saya disuruh ngidupin, tapi saya nggak bisa akses accessible node nya.
    PLCnya pakai CPU 315-2 pn/dp, port MPI/DP udah dikonek dg 4 buah inverter dan 1 OP, yang kosong port PN nya. Udah saya coba pake kabel cross saat langsung konek ke PLC dan kabel stight dg pake hub. Tapi keduanya gagal. Kira-kira gimana mas cara saya agar bisa konek dg PLC dan upload programnya?
    mohon pencerahannya…

  4. Thx, atas petunjuknya..
    Sdh tak coba pake usb-pc adapter, pada pg/pc interface sdh tak coba pake mpi dg berbagai macam baudrate, udah tak coba juga pakai adapter profibus dg berbagai macam baudrate, akan tetapi accessible node nya tetep gak mau nampak,…???
    Mohon pencerahannya..kenapa ni PLC kok ngambek?
    Mesin konvey ini dari Taiwan.

  5. bos..ada masalah nih..s7-200 cpu216 komunikasi dengan s7-300 cpu 314-2dp. konfigurasinya adalah s7-300 ke op1, op2dan terakhir ke s7-200. pada program menggunakan perintah put dan getdi s7-300.permaslahannya dari s7-300 ke op1 dan op2 datanya bisa muncul (nilai ada pada OP)tetapi nilai put pada s7300 tidak terbaca di s7-200 (pada saat online)
    dari s7-200 ke op1 dan op2 datanya muncul tetapi nilai pada s7-200 yang di-get s7-300 tidak update. permasalahan pada apa ya?
    secara hardware komunikasi menggunakan profibus, dan sudah saya ganti profibus connectornya….ada usulan mas?

  6. Salam KnaL Mas Fathoni,

    Saat ni saya lagi da project pake plc & hmi made Yokogawa !!
    PLC digunakan untuk read data dari FlowComputer FloBoss S600 & control beberapa device di field !
    Saya belum familiar dengan Yokogawa, soalna project2 sbelumnya saya biasa pake Siemens atau Mitsubishi []

    Mungkin Mas atau rekan2 ada yg jago pake Yokogawa, tlong saya diberi masukan/informasi

  7. @inov barusan ada project menggunakan put dan get juga, hmm smoga ada sedikit pencerahan, itu perintah put dan get nya apakah sdh diset secara benar?? baik untuk address profibusnya(setau saya itu koneksi MPI), setelah address sudah okey pada port masing2 , samakan juga baudratenya..selain hal dasar itu juga ada data block yang digunakan, setau saya yang di put dan di get data blocknya tidak boleh sama.
    hal ini memang mendasar sih tapi sangat penting untuk diperhatikan

  8. salam kenal mas,,,
    mo tanya mas,,berhubung saya masih baru dalam dunia ini,,hehehe
    Saya sedang ada project yang mengharuskan utk integrasi antara 2 buah s7 300,,jarak antara keduanya sekitar 400meter,,apakah saya bisa menggunakan ethernet? (sbg tambahan saya jg gunakan FO). Atau mas punya saran lain?
    Terimakasih untuk bantuan dan jwabannya,,
    ๐Ÿ™‚

  9. @inov : mas, setahu saya untuk S7200 hanya bisa sebagai slave profibus dp, kalo saya liat konfigurasi mas disitu s7200 juga sebagai master, jadi untuk nampilin data dari s7 200 ke OP sebaiknya dikirim dulu datanya ke s7300

    @agus : kalo ethernet dengan kabel tembaga biasa, hanya bisa sampe 100 m (tanpa hub/switch), kalo pake FO, bisa sampe km ๐Ÿ™‚ jadi sebaiknya pake FO aja dengan tambahan pake ethernet FO converter dikedua sisi, cuma harus hati hati dalam pemilihan converternya sesuai dengan kabel FO yang digunakan apakah multimode atau single mode.

  10. mas, mau tanya, saya ingin menghubungkan plc TWDLCAE40DRF dengan sebuah PC untuk membangun sebuah program di Linux. Koneksi dengan kabel Ethernet dan dengan protokol Modbus. Saya bingung, sebenarnya saya ingin membaca variabel2 dari PLC itu agar dapat digunakan di PC. Bagaimana data2 variabel tersebut dapat terbaca lewat Ethernet dan Modbus ya mas? Tips-tips apa yang harus saya pelajari dulu selain Modbus? Saya masih bingung cara menggunakan Modbus via Ethernet.

    Saya sudah mencoba dengan library dari “libmodbus.org” dan berhasil mensimulasi pengiriman data dari master dan ke client dengan alamat IP yang sama. Tapi saat saya coba ubah IP client ke alamat IP PLC, sementara IP master tetap mengacu ke PC saya, justru tidak berjalan.

  11. kalau begitu, bagaimana sebenarnya sistem pengiriman data via modbus ya mas? khususnya via ethernet? modbus kan ada bentuk data tersendiri, tapi bingungnya bagaimana cara modbus itu bisa mengambil data dari plc?
    makasi sebelumnya

  12. maaf mas ga bisa membantu lebih jauh, takut salah2 ntar ๐Ÿ™‚
    setahuku sih dasar basicnya sistemnya by request gitu
    jadi si master kirim paket data gitu ke client
    nah si client nanti ngirim responnya berupa paket data

    coba liat di modbus.org ๐Ÿ™‚

  13. mas saya minta sarannya dong, saya punya PLC s7-300 dengan komunikasi MPI, saya belum punya kabelnya mas. ada solusi ter murah ngga mas untuk kabel komunikasinya??

  14. Salam kenal mas, mas saya mau minta tolong nih. Saya ada program s7 untuk power gen driven by steam turbine,cuma isinya bahasa jerman bisa minta tolong kasih tahu gimana translate ke englishnya? programnya besar sekali(700MB setelah saya kompress bisa 200MB)

  15. Salam Kenal mas,

    Saya pemula di PLC S7 dan WinCC Flexible 2007, ada sedikit masalah, setelah saya install WinCC Flexible 2007 trus di run ternyata ada pesan “WinCC flexible Application has encountered a problem and needs to close. We are sorry for the inconvenience.” Mohon Informasinya

    Terima kasih

  16. mas saya mau tanya, saya ada mesin peracik warna di pabrik tekstil, menggunakan scda dan siemens s7300,bagaimana caranya saya mau mendownload dan cek komunikasi, setelah saya ikuti petunjuk , terdapat alarm protokol error, mohon penecerahannya, baru belajar PLC…menggunakan windows7 mas

  17. tipe plcnya apa yah ?
    kalo udah tau ip si PLC, tinggal diset aja ip PC/laptop yang mau dikonek kesitu, ipnya tapi ga boleh sama dengan si PLC atau apa aja device yg konek dalam satu network, kalo udah tinggal di set pg/pc interface sesuai network adapter yang digunakan, trus udah deh ๐Ÿ™‚

  18. eh salah mas pke kabel data , pas dilihat di set pg/pcnya …ga bisa di properties…klo bisa kirimin emailyah mas, cara settnya.:)

  19. sering main2 dengan modbus TCP gak pak?…saya lagi interface dan request data dari PAC3200 ke port ethernet CPU 315 2PN/DP tapi tidak memakai CP.jadi langsung dari integrated port ethernet.sudah pernah nyoba?mohon dibantu…terima kasih

  20. itu sudah saya coba semuanya…tapi block2 yang disertakan di demo itu terbatas…sering terjadi error pada saat CPU mode Run…di forum siemens juga sudah bnyak yang tanya serupa seperti saya….muncul error code yang apabila saya terjemahkan ujung-ujungnya minta license yang asli..:-)
    s7 open modbus itu memang butuh key…sedangkan saya mempunyai dana terbatas…saya seorang mahasiswa tingkat akhir yang mengerjakan skripsi SCADA System…

  21. kalau komunikasi 2 plc yang memakai ethernet port langsung tapi tidak menggunakan PUT,GET…maksud saya yang menggunakan TSEND,TRCV,TCON,TDISCON…sudah pernah nyoba pak?saya juga lagi mengerjakan itu…komunikasi 2 plc via ethernet tapi tidak menggunakan CP…mohon bantuannya…

  22. – kayaknya saya ada licensenya mudah2an ๐Ÿ™‚
    – untuk komunikasi 2 PLC saya biasanya menggunakan PUT GET dan BSEND BRECV, btw emang napa kalo pake PUT GET ?

  23. Mas seandainya PLC S7-300 dikoneksikan ke terminal IO dengan menggunakan ethernet apakah bisa?seandainya bisa, terminal IO tipe apakah yang cocok dan sesuai???

    Terima kasih

  24. apakah modul IM151-3PN dan ET200S mempunyai fungsi yang sama sebagai remote IO yg support profinet mas? kalau memamng keduanya support profinet lebih enak dan efisien mana mas?
    Terima kasih sebelumnya

  25. Contoh Komunikasi S7 PLC via Ethernet ( PUT and GET )ini bisa disimulasikan pake Net To PLCSIM pak???

    Hehe.. Nyoba2,msh gagal trs..

  26. Oiya pak,saya coba run WinLC kenapa langsung EXTF ya pak??
    saya cek di Station configuration STOP,lalu aq buka properties IF1 sampai IF4 kosong (padahal di HW saya kasih IF1 address IP PC)??

    Mohon pencerahanya pak.. Thx..

  27. salam kenal ya mas…sy mo menanyakan ttg modul ethernet di s7 300..ada alarm INTF dan mode RUN jadi STOP tapi komunikasi msh berjalan dengan baik…knapa mas ya..mohon bimbingannya trima kasih

  28. Tutorialnya mantap mas, saya baru belajar mas,saya mencoba mengkomunikasikan 2 PLC ( S7 CPU 315F-2PN/DP) dan S7 CPU314C-2DP) dimana CPU 315 dikoneksikan melalui ProfiNET ke komputer sedangkan yp CPU 314 melalui Adapter MPI…
    tujuan utamanya sih ingin membuat SCADA system WinCC __ terima kasih sebelumna

  29. Tutorialnya mantap mas, saya baru belajar mas,saya mencoba mengkomunikasikan 2 PLC ( S7 CPU 315F-2PN/DP) dan S7 CPU314C-2DP) dimana CPU 315 dikoneksikan melalui ProfiNET ke komputer sedangkan yp CPU 314 melalui Adapter MPIโ€ฆ

    gimana cara mengkoneksikan 2 PLC tersebut ?

    tujuan utamanya sih ingin membuat SCADA system WinCC __ terima kasih sebelumna

  30. salam kenal juga mas hidayat,

    keren juga yah, baru belajar udah pake CPU Fail Safe ๐Ÿ™‚

    ada banyak option mas :

    1. jika antar PLC tidak ada komunikasi data ; CPU315F ke PC via profinet , sedangkan CPU314C ke PC via MPI, hanya jeleknya harus menambah CP card di PC

    2. jika ada komunikasi data antara PLC ; CPU314C dihubungkan ke CPU 315F via Profibus DP (dengan catatan salah satu CPU harus menjadi slave DP), jadi alur datanya seperti ini : CPU314C < --> CPU315F < --> PC

  31. salam kenal jg mas Fathoni,terima kasih langkah no.1 berhasil.. 2 PLC itu udah bisa di monitoring di WinCC ๐Ÿ™‚
    mas saya sudah add facebooknya tolong di konfirm ya, terima kasih mas…

  32. salam kenal dan mohon bantuan dan pencerahan nya mas

    sejujurnya saya bukan programer plc tetapi tetapi haya seorang tukang listrik convensiaonal, tetapi saya di tuntuk harus melakukan editorial dan tambahan program mesin yang saya kerjakan…. pertanyaan saya sederhana menurut ukuran programer …… begini pak/mas…. di mesin saya pakai S7 300 dan HMi mp377… dan custumer minta data analog input, analog output,digital input digital output dan beberapa tag di mesin saya terus dikirim ke cpu plc tambahan… komukasi 2 cpu memakai kabel profibuss… caranya gimana pak/ mas … terimakasih…… (bisa minta alamat emainya pak ??? ) nanti saya kirim file mesin saya … terima kasih banyak bantuan nya…. saya lagi terjebak handle projek di vietnam … ( orang listrik konvensional di suruh jadi programer) tolong mass

  33. Ijin nimbrung pak fathoni, dengan menggunakan libarynya siemens SFC14 dan SFC15 apakah bisa kita simulasikan tanpa plc secara fisik , maksud saya dengan menggunakan PLCSIM.

  34. Mas Fathoni
    Maaf mau tanya mas kalau untuk PLC S7 yang tidak ada fasilitas ethernetnya itu bisa dan ada tidak tambahan device ethernet tambahan ?
    kalau ada itu apa nama hardware nya dan kira – kira harga berapa ?
    maaf banyak tanya mas

  35. Salam kenal mas fathoni, sangat salut blognya mas, saya pengen sekali mas mau belajar plc, soalnya dipabrik tempat saya pabrik sabun banyak pakai s7300, dan nggak da yg bisa utak atik, kalau boleh tahu software simatic v5.4 untuk XP bisa dilink dimana ya mas full crack, terimakasih nanti sy nanya lagi, boleh ya mas

  36. sore mas….,,
    mau tanya sedikit mas..
    saya punya PLC s7300 yg terpasang dilapangan, akan tetapi saya ingin menambah satu rack lagi sebagai remote I/O, dengan memanfaatkan jaringan ethernet pabrik sebagai penghubung. kira2 gmn caranya y mas?? mohon pencerahannya mas..
    Trimakasih.

  37. sore masโ€ฆ.,,
    mau tanya sedikit mas..
    saya punya PLC s7300 yg terpasang dilapangan, akan tetapi saya ingin menambah satu rack lagi sebagai remote I/O, dengan memanfaatkan jaringan ethernet pabrik sebagai penghubung. kira2 gmn caranya y mas??
    apakah bisa mas?? atau saya harus bangun jaringan LAN khusus untuk dia??
    mohon pencerahannya mas..
    Trimakasih.

  38. liat dulu firmware CP343nya, sepertinya belum support profinet IO sehingga gak bisa komunikasi ke slave profinet remote IO ET200.

    kalo itu ga bisa ya pake S7-1200 di remote IOnya terus buat komunikasi antar PLC.

  39. Tanya mas,sy hanya ingin upload program dari plc siemens s7 200 trus program sy simpan diPC. Klo ada yg error sy cukup program ulang dg backup an tadi. Apa punya skema utk bikin usb adapternya…tlg diemail,trmksh

Leave a Comment

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