เพิ่ม Modbus TCP Client Block: ใน TIA Portal ให้ไปที่ Instructions > Communication > Other > Modbus TCP. ลาก Block MB_CLIENT ไปวางใน Organization Block (OB1) หรือ Cyclic Interrupt OB
ตั้งค่าพารามิเตอร์ของ MB_CLIENT Block:
เรียกใช้งาน MB_CLIENT: ตรวจสอบให้แน่ใจว่า Block ถูกเรียกใช้งานอย่างต่อเนื่องใน OB1 หรือ OB อื่นๆ ที่เหมาะสม
text
PLC IP Address: 192.168.0.10
Subnet Mask: 255.255.255.0
text
REQ: Boolean (Pulse trigger to send request)
CONNECT_ID: TCON_IP_V4 (Data type for connection parameters)
IP_ADR: DWord (IP Address of Modbus Server, e.g., 16#C0A80064 for 192.168.0.100)
PORT: Word (Modbus TCP Port, default 502)
MODE: Word (0 = Read, 1 = Write Single Register, 2 = Write Multiple Registers, etc.)
DATA_ADDR: DWord (Modbus Address to read/write, e.g., 40001 for Holding Register 1)
DATA_LEN: Word (Number of registers/coils to read/write)
DATA_PTR: Variant (Pointer to DB where data will be stored/read from)
DONE: Boolean (Request completed successfully)
BUSY: Boolean (Block is busy processing request)
ERROR: Boolean (Error occurred)
STATUS: Word (Error code if ERROR is true)
Pro-Tip: การสร้าง CONNECT_ID
คุณต้องสร้าง Data Block (DB) สำหรับ CONNECT_ID โดยใช้ Data Type 'TCON_IP_V4' และตั้งค่าพารามิเตอร์ภายใน เช่น Interface ID, Local IP Address, Remote IP Address และ Port
การตั้งค่า Modbus TCP/IP Server ใน PLC Siemens S7-1500
เพิ่ม Modbus TCP Server Block: ใน TIA Portal ให้ไปที่ Instructions > Communication > Other > Modbus TCP. ลาก Block MB_SERVER ไปวางใน Organization Block (OB1) หรือ Cyclic Interrupt OB
ตั้งค่าพารามิเตอร์ของ MB_SERVER Block:
กำหนดพื้นที่ข้อมูล (Data Area): สร้าง Data Block (DB) ที่มีโครงสร้างข้อมูลที่คุณต้องการให้ Modbus Client อ่านหรือเขียน โดยใช้ Data Type ที่เหมาะสม เช่น Word, DWord, Real. กำหนด DB นี้ให้กับพารามิเตอร์ MB_DATA_PTR
EN_RECV: Boolean (Enable reception of Modbus requests, usually always TRUE)
CONNECT_ID: TCON_IP_V4 (Data type for connection parameters)
PORT: Word (Modbus TCP Port, default 502)
MB_DATA_PTR: Variant (Pointer to DB where Modbus data is stored/read from)
NDR: Boolean (New data received)
ERROR: Boolean (Error occurred)
STATUS: Word (Error code if ERROR is true)
MB_CLIENT/MB_SERVER STATUS Codes:
- 16#7000: No connection setup (check IP/Port)
- 16#7001: Connection being established
- 16#80C1: Invalid connection ID
- 16#80C8: Modbus address out of range (check DATA_ADDR/DATA_LEN)
- 16#80CC: Invalid data length (check DATA_LEN)
การแยกเครือข่าย: ควรแยกเครือข่าย OT (Operational Technology) ออกจากเครือข่าย IT (Information Technology) เพื่อความปลอดภัยและลดความเสี่ยงจากการโจมตีทางไซเบอร์
การทำเอกสาร: จัดทำเอกสารการแมป Modbus Address และ Data Type อย่างละเอียด เพื่อให้ง่ายต่อการบำรุงรักษาและแก้ไขปัญหาในอนาคต