วิธีตั้งค่า JSON Custom Format รายงานข้อมูลจาก MT200 Hi-Flying ขึ้น TCP Server
งานเชื่อม I/O หน้างานเข้าระบบ SCADA หรือ Cloud มักติดปัญหาเดียวกัน คือฝั่งเซิร์ฟเวอร์ต้องการ payload ในรูปแบบของตัวเอง แต่เกตเวย์ส่งได้แค่ฟอร์แมตมาตรฐาน บทความนี้สรุปขั้นตอนตั้งค่า MT200 ของ Hi-Flying ให้รายงานข้อมูล I/O เป็น JSON ทั้งแบบ Default และแบบ Custom ขึ้น TCP Server โดยอ้างอิงจากเอกสาร MT200 Series Protocol Communication Case ฉบับ 20250807 ที่ VR Automation ใช้งานจริง
1. รู้จักรุ่นก่อนเริ่ม: MT200-T กับ MT200-W ต่างกันตรงไหน
ก่อนวางระบบต้องเลือกรุ่นให้ตรงกับช่องทางสื่อสารหน้างานก่อน เพราะทั้งสองรุ่นใช้ซอฟต์แวร์ IOTMaster ตัวเดียวกัน แต่รองรับเครือข่ายไร้สายคนละแบบ
| รุ่น | WiFi networking | 4G connectivity | เหมาะกับ |
|---|---|---|---|
| MT200-T | ไม่รองรับ | รองรับ | จุดติดตั้งไกล ไม่มีเครือข่ายภายใน ต้องใช้ซิม |
| MT200-W | รองรับ | ไม่รองรับ | ในโรงงานที่มี WiFi/LAN ครอบคลุมอยู่แล้ว |
ที่มา: ตาราง Table 1 MT200 Series — MT200 Series Protocol Communication Case 20250807
2. อุปกรณ์ที่ต้องเตรียมและการต่อสาย
เอกสารต้นทางระบุรายการอุปกรณ์สำหรับเคสทดสอบไว้ชัดเจน แนะนำให้เตรียมให้ครบก่อนลงมือ จะได้ไม่ติดกลางทาง
- MT200 จำนวน 1 ตัว
- บอร์ดขยาย (expansion board) รุ่น 4FD4RK จำนวน 1 ชุด
- อะแดปเตอร์จ่ายไฟ 24V จำนวน 1 ตัว
- เราเตอร์ 1 ตัว และคอมพิวเตอร์โน้ตบุ๊ก 1 เครื่อง
ขั้นตอนต่อสาย: จ่ายไฟ 24V เข้าที่เทอร์มินอลของ MT200 โดยระวังอย่าสลับขั้วบวก-ลบ จากนั้นต่อสาย LAN จากพอร์ต WAN ของ MT200 เข้าพอร์ต LAN ของเราเตอร์ แล้วจึงจ่ายไฟเปิดเครื่อง ขั้นสุดท้ายให้ตรวจ IP ที่เราเตอร์แจกให้คอมพิวเตอร์ (ในเอกสารตัวอย่างคือ 10.0.222.101) เพราะเราจะใช้ IP นี้เป็นที่อยู่ของ TCP Server
3. ตั้งค่าพารามิเตอร์ฝั่ง MT200
เปิดซอฟต์แวร์ IOTMaster แล้วเข้าหน้า Communication Settings ตั้งค่าตามตารางด้านล่าง ค่าทั้งหมดนี้อ้างอิงจากเคสตัวอย่างในเอกสารต้นฉบับโดยตรง
| พารามิเตอร์ | ค่าที่ตั้ง | หมายเหตุ |
|---|---|---|
| Communication protocol | TCP client | MT200 เป็นฝั่งที่วิ่งไปหาเซิร์ฟเวอร์ |
| Server address | 10.0.222.101 | IP ที่เราเตอร์แจกให้เครื่องคอมที่ทำหน้าที่เซิร์ฟเวอร์ |
| Local port | 8899 | พอร์ตฝั่งเกตเวย์ |
| Server port | 4444 | ต้องตรงกับพอร์ตที่เปิดฟังไว้ที่ TCP Server |
| Connected to | MTIO | ผูกช่องสื่อสารเข้ากับโมดูล I/O |
| Baud rate เริ่มต้น (ฝั่ง serial) | 115200 bps | ค่าเริ่มต้นจากโรงงาน |
ที่มา: หัวข้อ 3.2 MT200 product parameter setting — MT200 Series Protocol Communication Case 20250807
จุดที่คนพลาดบ่อยที่สุด: เอกสารระบุไว้ว่าหลังแก้ไข device configuration แล้ว ต้องรีสตาร์ต device configuration ก่อนค่าจึงจะมีผล หลายครั้งที่ช่างตั้งค่าถูกทุกช่องแต่ข้อมูลไม่ขึ้น สาเหตุคือข้ามขั้นตอนนี้ไป
4. เลือกโหมดรายงาน: Active หรือ Passive
ในหน้า MTIO communication settings ของ IOTMaster จะมีการรายงานสองแบบให้เลือก
- Active reporting (Enable) — เกตเวย์ส่งข้อมูลขึ้นเซิร์ฟเวอร์เอง เลือกได้อีกว่าจะเป็น periodic reporting (ส่งตามรอบเวลา) หรือ change reporting (ส่งเมื่อค่าเปลี่ยน)
- Passive receiving (Disable) — เกตเวย์รอให้เซิร์ฟเวอร์สั่งอ่านเท่านั้น
สำหรับงานเฝ้าระวังสถานะเครื่องจักรที่ค่าไม่ค่อยเปลี่ยน การใช้ change reporting จะช่วยลดปริมาณข้อมูลบนเครือข่ายได้มาก ส่วนงานที่ต้องการเทรนด์ต่อเนื่องควรใช้ periodic reporting
5. โครงสร้าง JSON แบบ Default
เมื่อเปิด active reporting ด้วยฟอร์แมตมาตรฐาน เกตเวย์จะส่ง payload หน้าตาแบบนี้ (ตัวอย่างจริงจากเอกสาร)
{"ver":"1","msgId":4,"ts":"2025-06-16 15:47:09.570","mac":"402A8F1BE20C",
"rp":[{"pid":"DO0_1","val":0,"err":0},{"pid":"DI0_1","val":0,"err":0}]}
ความหมายของแต่ละฟิลด์ตามที่เอกสารกำหนดไว้:
| ฟิลด์ | ความหมาย |
|---|---|
| ver | เวอร์ชันของโปรโตคอล |
| msgId | รหัสข้อความที่ผู้ส่งสร้างขึ้น และคงค่าเดิมตอนตอบกลับ |
| ts | เวลาที่ส่ง/รับข้อมูล |
| mac | MAC address ของเกตเวย์ |
| rp / rd / wr | ส่วนรายงานค่า / ส่วนอ่านค่า / ส่วนสั่งเขียนค่า |
| pid | ตำแหน่งจุดสัญญาณ รูปแบบ [จุด]_[สล็อต] เช่น DO0_1 |
| tid | ชื่อตัวแปรใน ladder diagram เช่น M0 หรือ 1#X0 |
| val / err (ec) | ค่าปัจจุบันของจุดนั้น / รหัสข้อผิดพลาด (0 = ปกติ, 1 = ผิดพลาด) |
ที่มา: หัวข้อ 3.3.3 JSON default format communication case
6. สร้าง JSON Custom Format ให้ตรงกับเซิร์ฟเวอร์ของคุณ
หัวใจของบทความนี้อยู่ตรงนี้ — IOTMaster ให้เรานิยาม key/type/value เองได้ 3 ชนิด
- STRING — ช่อง Key ใส่ตัวแปรระบบ เช่น
<MAC><TIME>แล้วกำหนดค่าเป็นสตริงตามต้องการ - BOOL — ตั้งชื่อ key เช่น
DO0_1แล้วผูกค่าเข้ากับจุดสัญญาณด้วยรูปแบบ<P_DO0_1.V> - NUMBER — ตั้งชื่อ key เช่น
DO1_1ผูกค่าด้วย<P_DO1_1.V>สำหรับค่าที่เป็นตัวเลข
ผลลัพธ์ที่เกตเวย์ส่งออกมาจะกระชับลงมาก เหลือเฉพาะฟิลด์ที่เซิร์ฟเวอร์ต้องใช้จริง:
{"<MAC>": "402A8F1BE226", "<TIME>": "16:50:57", "DO0_1": false, "DO1_1": 0}
ฝั่งสั่งงานกลับก็ใช้หลักเดียวกัน เอกสารยกตัวอย่างการส่งคำสั่งพร้อมการตอบกลับที่เพิ่มฟิลด์ <DATE> และ <VERSION> (ตัวอย่างเฟิร์มแวร์ 3.0.4q) เข้าไปด้วย ทำให้ฝั่งเซิร์ฟเวอร์ตรวจสอบเวอร์ชันอุปกรณ์ได้จาก payload โดยตรง
7. ตรวจสอบและแก้ปัญหาที่พบบ่อย
- เชื่อมต่อไม่ติด — ตรวจว่า Server port ฝั่ง MT200 (4444) ตรงกับพอร์ตที่เครื่องเซิร์ฟเวอร์เปิดฟังจริง และไฟร์วอลล์ของ Windows ไม่ได้บล็อกพอร์ตนั้น
- ตั้งค่าแล้วไม่มีผล — ยังไม่ได้รีสตาร์ต device configuration
- ค่าขึ้นแต่ err ไม่เท่ากับ 0 — ตามนิยามในเอกสาร err = 1 หมายถึงอุปกรณ์ภายนอกตอบกลับผิดพลาด ให้ย้อนไปตรวจพารามิเตอร์พอร์ตอนุกรมและหมายเลขสเตชัน
- ข้อมูลถี่เกินไป — เปลี่ยนจาก periodic reporting เป็น change reporting
หากคุณกำลังมองหาอุปกรณ์เกตเวย์และตัวแปลงสัญญาณสำหรับงานลักษณะนี้ ดูรุ่นที่มีจำหน่ายได้ที่หมวด อุปกรณ์เครือข่ายอุตสาหกรรม ของ VR Automation

สรุป
การรายงานข้อมูลด้วย JSON custom format บน MT200 ไม่ได้ซับซ้อนอย่างที่คิด สาระสำคัญคือเลือกรุ่นให้ตรงกับเครือข่ายหน้างาน (MT200-T สำหรับ 4G, MT200-W สำหรับ WiFi) ตั้งค่า TCP client ให้ IP/พอร์ตตรงกันทั้งสองฝั่ง เลือกโหมดรายงานให้เหมาะกับลักษณะข้อมูล แล้วจึงประกอบ key แบบ STRING/BOOL/NUMBER ให้ตรงกับสคีมาของเซิร์ฟเวอร์ ที่เหลือคืออย่าลืมรีสตาร์ตคอนฟิกทุกครั้งหลังแก้ไข
คำถามที่พบบ่อย (FAQ)
MT200 รองรับ TCP Server ด้วยหรือไม่ หรือทำได้แค่ TCP Client?
ในเคสตัวอย่างของเอกสารกำหนดให้ MT200 ทำหน้าที่เป็น TCP Client วิ่งไปหาเซิร์ฟเวอร์ที่ 10.0.222.101 พอร์ต 4444 ซึ่งเป็นรูปแบบที่ใช้กันมากที่สุดสำหรับการรายงานข้อมูลขึ้นระบบส่วนกลาง
ค่า err ใน payload มีไว้ทำอะไร?
เป็นรหัสสถานะของแต่ละจุดสัญญาณ เอกสารระบุว่า err = 0 คืออุปกรณ์ภายนอกตอบกลับปกติ ส่วนค่า 1 บ่งชี้ว่ามีข้อผิดพลาด จึงควรนำฟิลด์นี้ไปใช้เป็นเงื่อนไขแจ้งเตือนในระบบ SCADA
ต่างจากการส่งแบบ default format อย่างไรในแง่ปริมาณข้อมูล?
ฟอร์แมต default จะพ่วงฟิลด์ ver, msgId, ts, mac และอาร์เรย์ rp มาครบทุกครั้ง ขณะที่ custom format เลือกส่งเฉพาะ key ที่ต้องใช้ ทำให้ payload สั้นลงมาก เหมาะกับงานที่ส่งผ่าน 4G ซึ่งคิดค่าบริการตามปริมาณข้อมูล

สนใจสั่งซื้อ MT200-T / MT200-W Hi-Flying?
VR Automation จำหน่ายและให้บริการติดตั้ง พร้อมทีมช่างผู้เชี่ยวชาญ
โทรสอบถามราคา: 083-848-8314
อีเมล: [email protected]
Line: @vrautomation
สต๊อกกรุณาสอบถาม | รับประกันสินค้า | บริการหลังการขาย | ออกใบกำกับภาษีได้
แหล่งข้อมูลและมาตรฐานอ้างอิง
- Catalog: MT200 Series Protocol Communication Case 20250807 และ Mortise and tenon series product software functions_20250312 — VR Automation (เอกสารเทคนิคจากผู้ผลิต Shanghai High-Flying Electronics)
- Hi-Flying — MT200-T Edge Gateway — หน้าข้อมูลผลิตภัณฑ์จากผู้ผลิต อ้างอิงความสามารถด้าน edge acquisition และ active reporting
- Hi-Flying — MT200-W — อ้างอิงรุ่นที่รองรับ WiFi networking
- ThingsBoard IoT Gateway — MQTT/JSON converter configuration — อ้างอิงแนวคิดการ mapping ฟิลด์ JSON เข้ากับ tag ของแพลตฟอร์ม IoT

