Siemens S7-1500 PLC การตั้งค่า Modbus TCP/IP (คู่มือ) | SP AutomationBack to Knowledge Baseทำความเข้าใจ Modbus TCP/IP และ Siemens S7-1500 PLC
ในโลกของอุตสาหกรรมอัตโนมัติ การสื่อสารระหว่างอุปกรณ์ต่าง ๆ เป็นหัวใจสำคัญที่ขับเคลื่อนประสิทธิภาพและประสิทธิผล Modbus TCP/IP เป็นหนึ่งในโปรโตคอลการสื่อสารที่ได้รับความนิยมและแพร่หลายมากที่สุด ด้วยความเรียบง่ายและเสถียร ทำให้เป็นตัวเลือกหลักในการเชื่อมต่อ PLC, HMI, SCADA และอุปกรณ์อื่น ๆ ผ่านเครือข่าย Ethernet สำหรับ Siemens S7-1500 PLC ซึ่งเป็นระบบควบคุมอัตโนมัติประสิทธิภาพสูง การตั้งค่า Modbus TCP/IP อย่างถูกต้องจะช่วยให้คุณสามารถผนวกรวมระบบเข้ากับโครงสร้างพื้นฐานที่มีอยู่ได้อย่างไร้รอยต่อ
สิ่งที่ต้องเตรียมก่อนเริ่มต้นการตั้งค่า
- Siemens S7-1500 PLC พร้อม CPU ที่รองรับพอร์ต Ethernet (เช่น CPU 1511, 1513, 1515, 1516, 1517, 1518)
- ซอฟต์แวร์ TIA Portal (ตั้งแต่ V13 SP1 ขึ้นไป แนะนำ V15.1 หรือใหม่กว่า)
- สาย Ethernet สำหรับเชื่อมต่อ PLC กับเครือข่ายหรืออุปกรณ์ Modbus อื่น ๆ
- ความรู้พื้นฐานเกี่ยวกับการทำงานของเครือข่าย TCP/IP (IP Address, Subnet Mask, Gateway)
- ข้อมูล Modbus Register Address และ Function Codes ของอุปกรณ์ที่จะสื่อสารด้วย (กรณี S7-1500 เป็น Client)
ขั้นตอนที่ 1: การกำหนดค่าฮาร์ดแวร์ใน TIA Portal
- สร้างโปรเจกต์ใหม่ใน TIA Portal และเพิ่ม S7-1500 CPU ลงใน Device Configuration
- ในหน้า Device Configuration เลือกพอร์ต PROFINET/Ethernet ของ CPU
- ตั้งค่า IP Address และ Subnet Mask สำหรับพอร์ต Ethernet ตรวจสอบให้แน่ใจว่าอยู่ในเครือข่ายเดียวกับอุปกรณ์ Modbus อื่น ๆ และไม่ซ้ำกับอุปกรณ์ใด ๆ
ตัวอย่างการตั้งค่า IP Address:
IP Address: 192.168.0.100
Subnet Mask: 255.255.255.0
Gateway: 192.168.0.1
ข้อแนะนำ
ควรจดบันทึก IP Address ที่ตั้งค่าไว้เพื่อใช้อ้างอิงในการเชื่อมต่อกับอุปกรณ์ Modbus อื่น ๆ และหลีกเลี่ยงการใช้ IP Address ที่อาจถูกกำหนดโดย DHCP เพื่อป้องกันความขัดแย้ง
ขั้นตอนที่ 2: การตั้งค่า Modbus TCP/IP Server (S7-1500 เป็น Slave)
เมื่อ S7-1500 ทำหน้าที่เป็น Modbus Server (Slave) จะรอรับคำสั่งจาก Modbus Client (Master) เพื่ออ่านหรือเขียนข้อมูลใน Data Blocks ที่กำหนดไว้
- สร้าง Global Data Block (DB) ใหม่ เพื่อใช้เป็นพื้นที่สำหรับเก็บข้อมูล Modbus (Holding Registers, Input Registers, Coils, Discrete Inputs) โดยตั้งค่า Optimized block access เป็น Off เพื่อให้สามารถระบุ Offset Address ได้ง่าย
- ในโปรแกรม PLC (เช่นใน OB1) ลากฟังก์ชันบล็อก 'MB_SERVER' จาก Libraries > Communication > Other > MODBUS TCP เข้ามาใช้งาน
- สร้าง Instance DB สำหรับ 'MB_SERVER' และกำหนดพารามิเตอร์ดังนี้:
- CONNECT: สร้าง Data Block ชนิด 'TCON_IP_v4' เพื่อกำหนดค่าการเชื่อมต่อ (Port 502, IP Interface)
- REQ: กำหนด Logic (เช่น Always TRUE) เพื่อให้ MB_SERVER ทำงานตลอดเวลา หรือตามเงื่อนไขที่ต้องการ
- MB_DB: กำหนดหมายเลขของ Data Block ที่สร้างไว้ในข้อ 1 (เช่น DB100)
ขั้นตอนที่ 3: การตั้งค่า Modbus TCP/IP Client (S7-1500 เป็น Master)
เมื่อ S7-1500 ทำหน้าที่เป็น Modbus Client (Master) จะเป็นผู้เริ่มต้นการสื่อสารเพื่ออ่านหรือเขียนข้อมูลจาก Modbus Server (Slave) อื่น ๆ
- ในโปรแกรม PLC (เช่นใน OB1) ลากฟังก์ชันบล็อก 'MB_CLIENT' จาก Libraries > Communication > Other > MODBUS TCP เข้ามาใช้งาน
- สร้าง Instance DB สำหรับ 'MB_CLIENT' และกำหนดพารามิเตอร์ดังนี้:
- CONNECT: สร้าง Data Block ชนิด 'TCON_IP_v4' เพื่อกำหนดค่าการเชื่อมต่อกับ Modbus Server ปลายทาง (เช่น IP Address ของ Server, Port 502)
- REQ: ใช้สัญญาณขอบขาขึ้น (Rising Edge) หรือ Pulse เพื่อสั่งให้ Client ทำงาน (เช่น M0.0 หรือสัญญาณจาก HMI)
- MODE: กำหนดโหมดการทำงาน (เช่น 0 = Read Holding Registers, 1 = Write Multiple Registers)
- DATA_ADDR: กำหนด Modbus Register Address ที่ต้องการอ่านหรือเขียน (เช่น 40001 สำหรับ Holding Register Address 1)
- DATA_LEN: กำหนดจำนวน Registers ที่ต้องการอ่านหรือเขียน
- MB_DATA_PTR: กำหนด Pointer ไปยัง Data Block หรือ Memory Area ของ S7-1500 ที่จะใช้เก็บข้อมูลที่อ่านได้หรือส่งข้อมูลที่จะเขียน
text
ตัวอย่างพารามิเตอร์ MB_CLIENT:
MODE: 0 (Read Holding Registers)
DATA_ADDR: 40001 (Modbus Holding Register Address 1)
DATA_LEN: 10 (อ่าน 10 Registers)
MB_DATA_PTR: P#DB_Client_Data.Holding_Registers[0] (Pointer ไปยัง Array ใน DB)
ข้อควรระวัง
การกำหนดค่า 'MODE', 'DATA_ADDR', และ 'DATA_LEN' ต้องตรงกับเอกสารคู่มือของ Modbus Server ที่คุณกำลังสื่อสารด้วย หากไม่ตรงกันจะทำให้เกิดข้อผิดพลาดในการสื่อสาร
การสร้าง Data Block สำหรับ Modbus Data
Data Block (DB) เป็นส่วนสำคัญในการจัดเก็บและจัดการข้อมูลที่จะใช้ในการสื่อสาร Modbus
- สำหรับ MB_SERVER: สร้าง DB โดยมีตัวแปรประเภท WORD, BOOL หรือ ARRAY ของ WORD/BOOL เพื่อแมปกับ Holding Registers, Input Registers, Coils และ Discrete Inputs ตามลำดับ Modbus Address
- สำหรับ MB_CLIENT: สร้าง DB เพื่อใช้เป็นบัฟเฟอร์สำหรับเก็บข้อมูลที่อ่านได้จาก Server หรือข้อมูลที่จะส่งไปเขียนที่ Server
- ตั้งชื่อตัวแปรให้สื่อความหมาย เช่น `Holding_Register_Motor_Speed` (WORD), `Coil_Pump_Status` (BOOL)
การทดสอบและการแก้ไขปัญหาเบื้องต้น
- ใช้โปรแกรม Modbus Test Tool (เช่น Modbus Poll หรือ Modscan) เพื่อทดสอบการเชื่อมต่อและอ่าน/เขียนข้อมูลกับ S7-1500 (เมื่อเป็น Server) หรือจำลอง Modbus Server (เมื่อ S7-1500 เป็น Client)
- ตรวจสอบสถานะของฟังก์ชันบล็อก MB_SERVER/MB_CLIENT ใน TIA Portal Online Mode (DONE, BUSY, ERROR, STATUS) เพื่อดูว่าการสื่อสารสำเร็จหรือไม่ หรือมีข้อผิดพลาดใด ๆ
- ตรวจสอบ LED แสดงสถานะบน S7-1500 CPU โดยเฉพาะ LED ของพอร์ต Ethernet หากมีการกะพริบแสดงว่ามีการรับส่งข้อมูล
- ตรวจสอบการตั้งค่า IP Address, Subnet Mask และ Gateway อีกครั้งว่าถูกต้องและอยู่ในช่วงที่อุปกรณ์อื่น ๆ สามารถเข้าถึงได้
- ตรวจสอบ Firewall บน PC หรืออุปกรณ์เครือข่ายที่อาจบล็อกพอร์ต 502
ข้อควรระวังด้านความปลอดภัย
การตั้งค่าเครือข่ายที่ไม่ถูกต้อง เช่น การกำหนด IP Address ที่ซ้ำกัน อาจทำให้เกิดปัญหาเครือข่ายล่ม หรือการสื่อสารหยุดชะงักได้ ควรดำเนินการด้วยความระมัดระวัง
การตั้งค่า Modbus TCP/IP บน Siemens S7-1500 PLC อาจดูซับซ้อนในตอนแรก แต่ด้วยคู่มือนี้และประสบการณ์ ทีมงานของคุณจะสามารถทำให้ระบบสื่อสารกันได้อย่างมีประสิทธิภาพ หากคุณต้องการความช่วยเหลือเพิ่มเติมหรือมีโครงการที่ต้องการผู้เชี่ยวชาญด้านระบบอัตโนมัติ ทีมวิศวกรของเราพร้อมให้บริการ
ทีมวิศวกรของเรามีความเชี่ยวชาญอย่างสูงในระบบควบคุมอัตโนมัติ โดยเฉพาะอย่างยิ่งในระบบของ Mitsubishi และมีความสามารถยอดเยี่ยมใน Fanuc รวมถึงประสบการณ์ในการทำงานกับ Siemens S7-1500 เราพร้อมให้คำปรึกษาและบริการซ่อมบำรุงระบบของคุณ