MT200 โหมด Master: อ่านค่า Modbus RTU จากอุปกรณ์ภายนอกด้วย Register Map
เกตเวย์ที่ดีต้องทำได้มากกว่าส่งผ่านข้อมูลดิบ MT200 ของ Hi-Flying ทำหน้าที่เป็น Modbus master เดินสำรวจอ่านค่าจากมิเตอร์ เซนเซอร์ หรือ PLC หน้างานได้เอง แล้วแปลงเป็น JSON ส่งขึ้นเซิร์ฟเวอร์ บทความนี้อธิบายการตั้งค่า register map ทีละขั้น พร้อมเคสกลับด้านที่เกตเวย์เป็นฝั่ง slave ให้ SCADA มาอ่าน อ้างอิงจากเอกสาร MT200 Series Protocol Communication Case 20250807
1. หลักการทำงานของโหมด Master
เอกสารต้นทางอธิบายไว้ชัดเจนว่า เมื่อทำงานในโหมด master เกตเวย์จะเป็นฝ่ายเริ่มการสื่อสารเอง โดยใช้กลไกสองแบบคือ scheduled polling (เดินสำรวจตามรอบเวลา) หรือ event-triggered (สำรวจเมื่อมีเหตุการณ์) เพื่อเก็บข้อมูลจากอุปกรณ์ภายนอกแบบเรียลไทม์ จากนั้นข้อมูลที่ได้จะถูกแปลงโปรโตคอลและห่อเป็น JSON มาตรฐาน แล้วส่งขึ้นเซิร์ฟเวอร์แม่ผ่าน TCP/IP
ข้อดีของสถาปัตยกรรมแบบนี้คือ ระบบส่วนกลางไม่ต้องรู้จัก Modbus เลย เห็นแต่ JSON ที่อ่านง่าย ขณะที่ภาระการ polling ซึ่งกินเวลาและอ่อนไหวต่อ timeout ถูกย้ายลงไปอยู่ที่ขอบเครือข่ายแทน
2. เลือกอินเทอร์เฟซให้ถูกต้อง
ก่อนสร้าง register map ต้องเข้าใจก่อนว่าจะต่ออุปกรณ์ภายนอกผ่านช่องไหน เอกสารระบุว่าซับการ์ดที่เหมาะกับการเพิ่มอุปกรณ์ภายนอกคือ 2S232M และ 6S485P พร้อมกติกาการตั้งชื่อช่องดังนี้
| ชื่ออินเทอร์เฟซ | ความหมาย |
|---|---|
| RS485 | พอร์ตอนุกรมที่ติดมากับตัวเกตเวย์ (built-in) |
| LAN | อุปกรณ์ Ethernet ที่เสียบเข้าพอร์ต LAN ของ MT200 ต้องระบุ IP + พอร์ต |
| RS0-2 ถึง RS5-2 | ซับการ์ด 6S485P — เลข 0-5 คือลำดับช่อง ส่วน -2 คือซับการ์ดตัวที่สอง |
| RS0-3 ถึง RS1-3 | ซับการ์ด 2S232M — เลข 0-1 คือลำดับช่อง ส่วน -3 คือซับการ์ดตัวที่สาม |
ที่มา: หัวข้อ 4.3 Introduction to adding the type of external device
3. ขั้นตอนตั้งค่า Register Map
เอกสารใช้ซอฟต์แวร์ Modbus Slave จำลองอุปกรณ์รีจิสเตอร์ผ่านตัวแปลง serial-to-USB ต่อเข้าพอร์ต 485 ของ MT200 ลำดับงานเป็นดังนี้
- ตั้งพารามิเตอร์ฝั่งอุปกรณ์จำลอง — slave address = 2, function code = 01, register start address = 1, จำนวนรีจิสเตอร์ = 2
- เปิด IOTMaster ไปที่เมนู MODBUS register map แล้วกด + Create
- เลือกชนิดอินเทอร์เฟซของอุปกรณ์ภายนอก (ในเคสนี้คือ RS485)
- ตั้งพารามิเตอร์พอร์ตอนุกรมของอุปกรณ์ภายนอก ได้แก่ baud rate, data bit, stop bit และ parity bit ให้ตรงกัน
- กำหนด mapping address ปลายทางเป็น 0X1000
- เข้าหน้า IOT communication settings เพื่อเลือกรีจิสเตอร์ที่ต้องการรายงานขึ้นเซิร์ฟเวอร์
| พารามิเตอร์ | ค่าในเคสตัวอย่าง |
|---|---|
| Slave address | 2 |
| Function code | 01 |
| Register start address | 1 |
| จำนวนรีจิสเตอร์ | 2 |
| Mapping address | 0X1000 |
| Server / Client | เซิร์ฟเวอร์ 10.0.222.101:4444, เกตเวย์ 10.0.222.114:8899 |
ที่มา: หัวข้อ 4.1-4.7 A case where the gateway reads from external devices at the master station
เมื่อตั้งค่าครบและเปลี่ยนสถานะรีจิสเตอร์ตัวที่สองในซอฟต์แวร์จำลองเป็น 1 เกตเวย์จะรายงานขึ้นเซิร์ฟเวอร์ทันทีด้วย payload หน้าตาแบบนี้
{"ver": "1", "msgId": 210, "ts": "2025-06-16 16:54:05.690", "mac": "402A8F1BE20C",
"rp": [{"pid": "DO4096", "val": 0, "err": 0}, {"pid": "DO4097", "val": 1, "err": 0}]}
สังเกตว่า pid กลายเป็น DO4096 และ DO4097 ซึ่งมาจาก mapping address 0X1000 (เท่ากับ 4096 ในระบบฐานสิบ) นี่คือจุดเชื่อมระหว่างโลก Modbus กับโลก JSON
4. เคสกลับด้าน: เกตเวย์เป็น Slave ให้ SCADA มาอ่าน
เอกสารยังครอบคลุมกรณีที่คอมพิวเตอร์แม่ข่ายเป็น master แล้ววิ่งมาอ่านค่าจาก MT200 ในฐานะ slave ซึ่งเหมาะกับระบบที่มี SCADA เดิมอยู่แล้วและไม่อยากเปลี่ยนสถาปัตยกรรม
- เปลี่ยน serial port protocol ของเกตเวย์เป็น ModbusSlave protocol ในหน้า serial port settings
- ฝั่ง Modbus Slave จำลอง: slave address = 2, function code = 04, register start address = 1, จำนวนรีจิสเตอร์ = 1
- ฝั่ง Modbus Poll ที่ทำหน้าที่ master: station address = 1, function code = 04, register start address = 0X1000 (16) = 4096 (10), จำนวนรีจิสเตอร์ = 1
โครงสร้างนี้ทำให้ MT200 ทำหน้าที่เป็นตัวรวมข้อมูล (data concentrator) อุปกรณ์อนุกรมหลายตัวถูกยุบมาอยู่ในแมปรีจิสเตอร์เดียว ฝั่ง SCADA จึงอ่านทุกอย่างได้ในคำสั่งเดียว ลดจำนวน transaction บนบัส RS485 ลงอย่างมีนัยสำคัญ
5. ข้อควรพิจารณาด้านประสิทธิภาพ
Modbus RTU เป็นโปรโตคอลแบบ master-slave บนสาย RS485 ที่อนุญาตให้มี master ได้เพียงตัวเดียวต่อหนึ่งเครือข่าย การวางเกตเวย์เป็น master จึงต้องมั่นใจว่าไม่มีอุปกรณ์อื่นทำหน้าที่เดียวกันอยู่บนบัสเดียวกัน มิฉะนั้นจะเกิดการชนกันของสัญญาณ (bus collision) นอกจากนี้ควรจัดกลุ่มรีจิสเตอร์ที่อยู่ติดกันให้อ่านในธุรกรรมเดียว แทนที่จะอ่านทีละจุด จะช่วยลดเวลารอบการสำรวจได้หลายเท่าตัว
ต้องการอุปกรณ์เกตเวย์ ตัวแปลงโปรโตคอล หรือโมดูล I/O สำหรับต่อขยาย ดูสินค้าทั้งหมดได้ที่หมวด อุปกรณ์เครือข่ายอุตสาหกรรม

สรุป
การใช้ MT200 ในโหมด master คือการย้ายภาระ polling ลงไปไว้ที่ขอบเครือข่าย แล้วส่งเฉพาะผลลัพธ์ที่แปลงเป็น JSON แล้วขึ้นไปข้างบน สิ่งที่ต้องทำให้ถูกมีสามอย่าง คือเลือกอินเทอร์เฟซและสล็อตซับการ์ดให้ตรงกับการเดินสายจริง ตั้งพารามิเตอร์อนุกรมและ slave address/function code ให้ตรงกับอุปกรณ์ปลายทาง และเข้าใจการแปลง mapping address ระหว่างฐานสิบหกกับฐานสิบ
คำถามที่พบบ่อย (FAQ)
ซับการ์ดแบบไหนที่ใช้ต่ออุปกรณ์ภายนอกได้?
เอกสารระบุว่าซับการ์ดที่เหมาะสำหรับเพิ่มอุปกรณ์ภายนอกคือ 2S232M (RS232 สองช่อง) และ 6S485P (RS485 หกช่อง) นอกเหนือจากพอร์ต RS485 ที่ติดมากับตัวเกตเวย์ และช่อง LAN สำหรับอุปกรณ์ Ethernet
ทำไม pid ใน JSON ถึงเป็น DO4096 ทั้งที่ตั้ง mapping address เป็น 0X1000?
เพราะ 0X1000 เป็นเลขฐานสิบหก เมื่อแปลงเป็นฐานสิบจะได้ 4096 ระบบจึงตั้งชื่อจุดสัญญาณตามเลขฐานสิบ ส่วนรีจิสเตอร์ตัวถัดไปก็จะเป็น DO4097 ไล่ต่อกันไป
ใช้เกตเวย์เป็นทั้ง master และ slave พร้อมกันได้ไหม?
ในทางปฏิบัติควรแยกบทบาทให้ชัดเจนต่อหนึ่งพอร์ตอนุกรม เพราะ Modbus RTU บนสาย RS485 อนุญาตให้มี master ตัวเดียวต่อเครือข่าย หากต้องการทั้งสองบทบาทควรใช้คนละพอร์ต เช่น เป็น master บนพอร์ต 485 ที่ต่อมิเตอร์ และเป็น slave บนพอร์ตที่ต่อกับ SCADA

สนใจสั่งซื้อ MT200 Hi-Flying?
VR Automation จำหน่ายและให้บริการติดตั้ง พร้อมทีมช่างผู้เชี่ยวชาญ
โทรสอบถามราคา: 083-848-8314
อีเมล: [email protected]
Line: @vrautomation
สต๊อกกรุณาสอบถาม | รับประกันสินค้า | บริการหลังการขาย | ออกใบกำกับภาษีได้
แหล่งข้อมูลและมาตรฐานอ้างอิง
- Catalog: MT200 Series Protocol Communication Case 20250807 — VR Automation (เอกสารเทคนิคจากผู้ผลิต Shanghai High-Flying Electronics)
- Hi-Flying — MT200-T Edge Gateway — หน้าข้อมูลผู้ผลิต อ้างอิงคุณสมบัติ data edge acquisition และ linkage control
- Control Solutions — Modbus 101 Tutorial — อ้างอิงหลักการ master/slave และการกำหนดหมายเลขรีจิสเตอร์ของโปรโตคอล Modbus
- Configuring Gateway as a Modbus RTU Master — อ้างอิงแนวปฏิบัติการตั้งค่าเกตเวย์ให้ทำหน้าที่ master และการจัดกลุ่มรีจิสเตอร์เพื่อลดเวลารอบ polling

