{"id":3607,"date":"2024-11-22T13:13:07","date_gmt":"2024-11-22T06:13:07","guid":{"rendered":"https:\/\/www.akademiautomasi.com\/?p=3607"},"modified":"2025-03-23T10:36:53","modified_gmt":"2025-03-23T10:36:53","slug":"tutorial-komunikasi-plc-modicon-m221-dan-plc-siemens-s7-1200-via-modbus-tcp-2","status":"publish","type":"post","link":"https:\/\/www.akademiautomasi.com\/?p=3607","title":{"rendered":"Komunikasi PLC Modicon M221 &#8211; Siemens S7 1200 via Modbus TCP"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">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 \\&#8221;MB_SERVER\\&#8221; dan \\&#8221;MB_CLIENT\\&#8221; [1].<\/p>\n\n\n\n<h2 class=\"wp-block-heading \\&quot;wp-block-heading\\&quot;\"><strong>Persiapan<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Peralatan yang dibutuhkan:<\/p>\n\n\n\n<ul class=\"wp-block-list \\&quot;wp-block-list\\&quot;\">\n<li>1 buah PLC M221 yang memiliki port ethernet<\/li>\n\n\n\n<li>1 buah PLC S7 1200 yang memiliki port ethernet<\/li>\n\n\n\n<li>3 buah kabel RJ 45<\/li>\n\n\n\n<li>1 buah hub<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">PLC M221 dan PLC S7 1200 (serta laptop) masing \u2013 masing dihubungkan ke hub dengan kabel RJ 45. Perhatikan gambar berikut.<\/p>\n\n\n<div class=\"wp-block-image \\&quot;wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"297\" src=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-22.png\" alt=\"\" class=\"wp-image-1933\" style=\"width:591px;height:auto\" srcset=\"https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-22.png 605w, https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-22-300x147.png 300w, https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-22-600x295.png 600w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading \\&quot;wp-block-heading\\&quot;\"><strong>Program \u201cModbus_TCP_Write\u201d di PLC Modicon M221<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Mulanya kita perlu melakukan konfigurasi hardware. Pada bagian \u201cConfiguration\u201d, pilih ETH1, dan masukkan IP address dan kelengkapannya. Pada PLC 1, IP address yang digunakan:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">192.168.0.10<\/p>\n\n\n\n<figure class=\"wp-block-image size-full \\&quot;wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"406\" src=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-23.png\" alt=\"\" class=\"wp-image-1934\" srcset=\"https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-23.png 940w, https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-23-300x130.png 300w, https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-23-768x332.png 768w, https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-23-600x259.png 600w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Kemudian kita pilih bagian \u201cModbus TCP\u201d dan kita masukkan IP address dari peralatan yang akan kita akses: 192.168.0.1. Setelah itu tekan tombol \u201cAdd\u201d sehingga alat tersebut masuk ke dalam daftar. Lihat gambar berikut.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"410\" src=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-25.png\" alt=\"\" class=\"wp-image-1937\" srcset=\"https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-25.png 940w, https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-25-300x131.png 300w, https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-25-768x335.png 768w, https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-25-600x262.png 600w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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).<\/p>\n\n\n<div class=\"wp-block-image \\&quot;wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-27.png\"><img decoding=\"async\" src=\"https:\/\/learnautomation.wordpress.com\/wp-content\/uploads\/2024\/11\/image-27.png\" alt=\"\\&quot;\\&quot;\" style=\"width:797px;height:auto\"\/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Pada instruksi WRITE_VAR, diisikan pengaturan berikut:<\/p>\n\n\n\n<ul class=\"wp-block-list \\&quot;wp-block-list\\&quot;\">\n<li>Link: 3 \u2013 ETH1 (diisikan port Ethernet)<\/li>\n\n\n\n<li>Id: 1 (Id dari Modbus slave yang kita miliki)<\/li>\n\n\n\n<li>ObjType (semacam <em>function code<\/em>)<\/li>\n\n\n\n<li>FirstObj: alamat data pertama yang akan dituliskan<\/li>\n\n\n\n<li>Quantity: jumlah data yang akan ditulis<\/li>\n\n\n\n<li>IndexDat: lokasi alamat data baru<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image \\&quot;wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-29.png\"><img decoding=\"async\" src=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-29.png?w=940\" alt=\"\\&quot;\\&quot;\"\/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Berikut ini tampilan program jika dieksekusi:<\/p>\n\n\n<div class=\"wp-block-image \\&quot;wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"\\&quot;http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-31.png\\&quot;\"><img decoding=\"async\" src=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-31.png?w=940\" alt=\"\\&quot;\\&quot;\"\/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading \\&quot;wp-block-heading\\&quot;\"><strong>Program \u201cMB_Client\u201d di PLC S7 1200<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">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).<\/p>\n\n\n<div class=\"wp-block-image \\&quot;wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"\\&quot;http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-32.png\\&quot;\"><img decoding=\"async\" src=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-32.png?w=410\" alt=\"\\&quot;\\&quot;\" style=\"width:353px;height:auto\"\/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Klik dua kali pada MB_Connect_Coba, buatlah nama baru (misal: Connect_Coba) dan tuliskan <em>data type<\/em>: TCON_IP_v4, maka parameter \u2013 parameter koneksi akan muncul otomatis. Berikut ini parameter \u2013 parameter yang kita gunakan (penjelasan dapat dilihat di Help TIA Portal):<\/p>\n\n\n\n<ul class=\"wp-block-list \\&quot;wp-block-list\\&quot;\">\n<li>InterfaceId: 64<\/li>\n\n\n\n<li>ID: 1<\/li>\n\n\n\n<li>ConnectionType: 11<\/li>\n\n\n\n<li>ActiveEstablished: true<\/li>\n\n\n\n<li>RemoteAddress: IP_V4\n<ul class=\"wp-block-list \\&quot;wp-block-list\\&quot;\">\n<li>ADDR: 192.168.0.10<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Remote Port: 502<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image \\&quot;wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"\\&quot;http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-33.png\\&quot;\"><img decoding=\"async\" src=\"https:\/\/akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-33-1.png\" alt=\"\\&quot;\\&quot;\"\/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Sedangkan untuk Data_Coba beriisi 10 aray data Unsigned Integer: Array [0..9] of UInt.<\/p>\n\n\n<div class=\"wp-block-image \\&quot;wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"\\&quot;http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-35.png\\&quot;\"><img decoding=\"async\" src=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-35.png?w=940\" alt=\"\\&quot;\\&quot;\"\/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Untuk &nbsp;instruksi MB_CLIENT dapat diambil dari \u201cCommunication\u201d &gt; \u201cOthers\u201d &gt; MODBUS TCP.<\/p>\n\n\n<div class=\"wp-block-image \\&quot;wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"\\&quot;http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-37.png\\&quot;\"><img decoding=\"async\" src=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-37.png?w=861\" alt=\"\\&quot;\\&quot;\"\/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Berikut ini konfigurasi MB_CLIENT yang digunakan:<\/p>\n\n\n\n<ul class=\"wp-block-list \\&quot;wp-block-list\\&quot;\">\n<li>EN: selalu diberi nilai 1<\/li>\n\n\n\n<li>REQ: 1<\/li>\n\n\n\n<li>DISCONNECT: false<\/li>\n\n\n\n<li>MB_MODE: 0 (instruksi berada dalam mode Read )<\/li>\n\n\n\n<li>MB_DATA_ADDR: 40001 (alamat pertama register Modbus yang dibaca, di PLC Modicon sama dengan %MW0)<\/li>\n\n\n\n<li>MB_DATA_LEN: 10 (jumlah register yang akan dibaca)<\/li>\n\n\n\n<li>MB_DATA_PTR: letakkan Data_Coba yang sudah dibuat sebelumnya<\/li>\n\n\n\n<li>CONNECT: letakkan Connect_Coba yang sudah dibuat sebelumnya<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image \\&quot;wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"\\&quot;http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-38.png\\&quot;\"><img decoding=\"async\" src=\"http:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-38.png?w=846\" alt=\"\\&quot;\\&quot;\" style=\"width:650px;height:auto\"\/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">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 \u201cmonitoring\u201d di TIA Portal (<em>icon<\/em> bergambar kaca mata), baik di halaman pemrograman, maupun halaman data block Data_Coba.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Catatan penting: jika setelah melakukan perubahan konfigurasi atau program terjadi masalah, coba ubah mode PLC ke \u201cStop\u201d kemudian dikembalikan ke \u201cRun\u201d lagi<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sumber:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[1] Siemens Industry Online Support, \u201cModbus\/TCP with instructions MB_CLIENT and MB_SERVER \u201d [<a href=\"\\&quot;https:\/\/cache.industry.siemens.com\/dl\/files\/340\/102020340\/att_118119\/v6\/net_modbus_tcp_s7-1500_s7-1200_en.pdf\\&quot;\">link<\/a>]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Posting ini membahas komunikasi antara PLC Modicon M221 dan PLC Siemens S7 1200 menggunakan Modbus TCP. Diperlukan perlengkapan tertentu dan langkah-langkah konfigurasi, termasuk penyesuaian IP address dan pembuatan program menggunakan instruksi WRITE_VAR di M221 dan MB_CLIENT di S7 1200 untuk pertukaran data.<\/p>\n","protected":false},"author":1,"featured_media":1933,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[38],"tags":[],"class_list":["post-3607","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plc-tutorial"],"jetpack_featured_media_url":"https:\/\/www.akademiautomasi.com\/wp-content\/uploads\/2024\/11\/image-22.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=\/wp\/v2\/posts\/3607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3607"}],"version-history":[{"count":1,"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=\/wp\/v2\/posts\/3607\/revisions"}],"predecessor-version":[{"id":3634,"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=\/wp\/v2\/posts\/3607\/revisions\/3634"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=\/wp\/v2\/media\/1933"}],"wp:attachment":[{"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.akademiautomasi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}