AES/DES3, TCP Keepalive และ Routing บนเกตเวย์ Hi-Flying | VR Automation

AES/DES3, TCP Keepalive และ Routing บนเกตเวย์ Hi-Flying ฟีเจอร์ที่วิศวกรควรรู้

ความรู้เทคนิค (Knowledge) | เกตเวย์อุตสาหกรรม | VR Automation

เกตเวย์ที่ส่งข้อมูลได้ยังไม่พอ ระบบที่เดินยาว 24 ชั่วโมงต้องการมากกว่านั้น คือกู้คืนการเชื่อมต่อเองเมื่อสายหลุด ป้องกันข้อมูลถูกดักอ่าน และแยกกรอบข้อมูลอนุกรมได้ถูกต้อง บทความนี้รวบรวมฟีเจอร์เชิงความเสถียรและความปลอดภัยของผลิตภัณฑ์ตระกูล Mortise and Tenon จาก Hi-Flying ที่วิศวกรมักไม่ได้เปิดใช้ ทั้งที่มีมาให้ในตัวอยู่แล้ว

1. AES/DES3 Data Encryption — เข้ารหัสก่อนออกสู่เครือข่าย

ผลิตภัณฑ์สามารถเข้ารหัสข้อมูลที่รับจากพอร์ตอนุกรมก่อนส่งออกสู่เครือข่าย เพื่อป้องกันไม่ให้ข้อมูลถูกถอดรหัสและนำไปใช้โดยมิชอบ ข้อกำหนดทางเทคนิคที่ระบุในเอกสารมีดังนี้

รายการ ข้อกำหนด
อัลกอริทึม AES และ DES3
โหมดของ AES CBC (Cipher Block Chaining)
รหัสผ่านและเวกเตอร์ของ AES ใช้ค่าเดียวกัน ความยาวคงที่ 16 อักขระ
ความยาวรหัสผ่าน DES3 24 อักขระ

ที่มา: หัวข้อ 1.4 AES/DES3 Data Encryption — Mortise and tenon series product software functions_20250312

ในทางปฏิบัติ AES-CBC เป็นโหมดที่ใช้กันแพร่หลายในระบบฝังตัวมายาวนาน จุดเด่นคือแต่ละบล็อกข้อมูลผูกกับบล็อกก่อนหน้า และมีการใช้ Initialization Vector ทำให้ข้อความเดียวกันที่เข้ารหัสด้วยกุญแจเดียวกันได้ผลลัพธ์ต่างกัน

⚠️ ข้อควรระวัง: ควรเข้าใจข้อจำกัดเชิงหลักการด้วยว่า AES-CBC ให้เพียงความลับของข้อมูล (confidentiality) แต่ไม่ได้ให้การพิสูจน์ความถูกต้อง (integrity) ในตัวเอง หากระบบของคุณต้องการรับประกันว่าข้อมูลไม่ถูกแก้ไขระหว่างทาง ควรออกแบบให้มีการตรวจสอบความถูกต้องเพิ่มที่ชั้นแอปพลิเคชัน หรือใช้ช่องทางที่มี TLS ครอบอีกชั้น

2. TCP Keepalive — ตรวจจับและเชื่อมต่อใหม่อัตโนมัติ

เมื่อการเชื่อมต่อ TCP ระหว่างอุปกรณ์กับเซิร์ฟเวอร์ผิดปกติ อุปกรณ์จะตรวจพบสถานะผิดปกตินั้นและเชื่อมต่อกลับไปยังเซิร์ฟเวอร์ใหม่ (กรณีทำงานในโหมด TCP Client) ส่วนเมื่อทำงานในโหมด TCP Server อุปกรณ์จะปลดปล่อยทรัพยากร TCP เพื่อรองรับการเชื่อมต่อครั้งถัดไป

ฟีเจอร์นี้สำคัญมากกับงานที่ส่งผ่าน 4G หรือเครือข่ายที่มี NAT เพราะการเชื่อมต่อที่เงียบนาน ๆ มักถูกอุปกรณ์กลางตัดทิ้งโดยที่ปลายทั้งสองข้างยังเข้าใจว่าเชื่อมต่ออยู่

3. Timeout — กลไกกู้คืนที่ควรตั้งให้เหมาะ

เมื่ออุปกรณ์เชื่อมต่อเป็น TCP client แล้วไม่ได้รับข้อมูลจากเซิร์ฟเวอร์ อุปกรณ์จะเริ่มจับเวลาภายใน หากเกินค่าที่ตั้งไว้ก็จะตัดการเชื่อมต่อและเชื่อมใหม่ทันที ค่าเริ่มต้นคือ 300 วินาที และแก้ไขได้ จุดที่ต้องระวังคือ ข้อมูลที่ไคลเอนต์ส่งออกไปเองจะไม่รีเซ็ตตัวจับเวลานี้ หากทำงานในโหมด TCP Server อุปกรณ์จะตัดการเชื่อมต่อของไคลเอนต์แทน และถ้าตั้งค่าเป็น 0 จะเป็นการปิดฟังก์ชันนี้

💡 Pro Tip: ในระบบที่รายงานข้อมูลแบบ change reporting ซึ่งอาจเงียบได้นานหลายชั่วโมงเมื่อเครื่องจักรหยุด ควรเปิด heartbeat จากฝั่งเซิร์ฟเวอร์ให้ส่งข้อมูลกลับมาเป็นระยะ มิฉะนั้นตัวจับเวลา timeout จะสั่งตัดและเชื่อมใหม่ซ้ำ ๆ ทั้งที่ระบบยังปกติดี

4. Routing Settings — เปลี่ยนเส้นทางข้อมูลระหว่าง Socket

ผลิตภัณฑ์อนุญาตให้กำหนดว่าข้อมูลที่รับเข้ามาทางช่อง Socket หนึ่ง จะถูกส่งออกไปยังช่องทางใด ค่าเริ่มต้นคือออกที่พอร์ตอนุกรม แต่สามารถตั้งให้ออกที่ Socket อื่นที่สร้างไว้ หรือใช้ Socket นั้นเป็นช่องพิมพ์ log ก็ได้

เอกสารยกตัวอย่างการตั้ง route ของช่อง netp (ช่องเริ่มต้น) ไปยัง Socket2 ที่คอนฟิกเป็นโหมด TCP Server จากนั้นตั้ง route ของ Socket2 กลับมาที่พอร์ตอนุกรม ผลคือข้อมูลไหลวนผ่านสองช่องก่อนออกที่พอร์ตอนุกรมในที่สุด เทคนิคนี้มีประโยชน์เมื่อต้องการให้ระบบหนึ่งเฝ้าดูข้อมูลของอีกระบบหนึ่งโดยไม่แทรกแซงเส้นทางหลัก

5. UART Automatic Framing — หัวใจของความถูกต้องของข้อมูล

ฟีเจอร์นี้อาจเป็นสิ่งที่กระทบคุณภาพข้อมูลมากที่สุดในบรรดาทั้งหมด เพราะเป็นตัวกำหนดว่า “หนึ่งเฟรม” ของข้อมูลอนุกรมสิ้นสุดที่ตรงไหน

โหมด หลักการ ค่าที่กำหนดได้
Free Framing ตรวจช่วงเวลาระหว่างไบต์ที่อยู่ติดกัน ถ้าห่างเกินค่าที่ตั้งถือว่าจบเฟรม ค่าเริ่มต้น 50 ms ปรับต่ำสุดได้ถึง 10 ms, บัฟเฟอร์เริ่มต้น 8192 ไบต์
Automatic Framing จัดเฟรมตามความยาวที่กำหนด หรือตามเวลาทริกเกอร์ เหมาะกับข้อมูลความยาวคงที่ ตั้งได้ทั้ง trigger time และ trigger frame length
Tag Function ส่งเฉพาะข้อมูลที่อยู่ระหว่าง tag หัวถึง tag ท้าย กรองส่วนที่เหลือทิ้ง กำหนด tag หัวและ tag ท้ายเอง

ที่มา: หัวข้อ 1.8 UART Automatic Framing Function

⚠️ ข้อควรระวัง: เอกสารเตือนไว้ตรง ๆ ว่า ถ้าตั้งช่วงเวลาแยกเฟรมไว้ต่ำถึง 10 ms แล้วไมโครคอนโทรลเลอร์ฝั่งลูกค้าไม่สามารถรับประกันได้ว่าจะส่งไบต์ถัดไปภายใน 10 ms ข้อมูลอนุกรมอาจถูกตัดกลางคัน การไล่ค่านี้ลงเพื่อเพิ่มความเร็วจึงต้องแลกกับความเสี่ยงที่เฟรมจะขาด ควรทดสอบกับอุปกรณ์จริงก่อนใช้งานจริงเสมอ

6. ฟีเจอร์เสริมที่ควรรู้

  • Modbus Protocol — ตั้ง baud rate เริ่มต้นเป็น 115200 แล้วเปลี่ยน serial port protocol เป็น ModbusSlave เพื่อให้อ่านค่ารีจิสเตอร์ผ่านพอร์ต 485 ด้วยข้อความ Modbus RTU ได้
  • Cli Command — ตั้งค่าพารามิเตอร์ผ่านพอร์ตอนุกรมหรือ Telnet โดยส่ง “+++” ต่อเนื่องเข้าพอร์ตอนุกรมเพื่อเข้าโหมดคำสั่ง หากไม่มีการใช้งานเกิน 300 วินาทีต้องล็อกอินใหม่ ทั้งนี้ตั้งให้อุปกรณ์อยู่ในโหมดคำสั่งตลอดเวลา หรือปิดการใช้งาน Cli อย่างถาวรก็ได้
  • Flow Control และ RS485 — รองรับทั้ง hardware และ software flow control เมื่อตั้งเป็นครึ่งดูเพล็กซ์จะเปิดใช้ฟังก์ชันควบคุม RS485 half-duplex ซึ่งเปิดใช้งานเป็นค่าเริ่มต้นอยู่แล้ว โดยในโหมดครึ่งดูเพล็กซ์ยังใช้พอร์ต RS232 ได้ แต่อัตราและแบนด์วิดท์จะลดลง
  • Firmware Upgrade — อัปเกรดเฟิร์มแวร์ออนไลน์ผ่านซอฟต์แวร์ IOTMaster ได้โดยตรง
  • Ethernet — มีพอร์ต Ethernet สองช่อง เป็น LAN หนึ่งช่อง และอีกช่องสลับระหว่าง WAN/LAN ได้ โดยต้องรีสตาร์ตจึงจะมีผล

เลือกดูเกตเวย์และอุปกรณ์แปลงสัญญาณอุตสาหกรรมได้ที่หมวด อุปกรณ์เครือข่ายอุตสาหกรรม

ข้อกำหนดการเข้ารหัสและ Timeout MT200 / Elfin Series Hi-Flying

สรุป

ฟีเจอร์ทั้งหมดนี้มีมาในตัวอุปกรณ์อยู่แล้ว แต่ส่วนใหญ่ถูกปิดไว้เป็นค่าเริ่มต้น การเปิดใช้ AES/DES3 ช่วยปิดความเสี่ยงข้อมูลถูกดักอ่าน การตั้ง Keepalive และ Timeout ให้เหมาะกับลักษณะการส่งข้อมูลช่วยให้ระบบกู้คืนเองได้โดยไม่ต้องมีคนไปกดรีเซ็ต และการเลือกโหมดแยกเฟรม UART ให้ถูกคือรากฐานของความถูกต้องของข้อมูลทั้งระบบ แนะนำให้ไล่ตรวจทั้งห้าข้อนี้ทุกครั้งก่อนส่งมอบงาน

คำถามที่พบบ่อย (FAQ)

รหัสผ่าน AES ของอุปกรณ์ต้องยาวเท่าไร?

เอกสารระบุว่า AES ใช้โหมด CBC โดยรหัสผ่านและเวกเตอร์ใช้ค่าเดียวกัน ความยาวคงที่ 16 อักขระ ส่วน DES3 ใช้รหัสผ่านความยาว 24 อักขระ

ค่า Timeout เริ่มต้นคือเท่าไร และปิดได้ไหม?

ค่าเริ่มต้นคือ 300 วินาที และแก้ไขได้ หากตั้งเป็น 0 จะเป็นการปิดฟังก์ชันนี้ ทั้งนี้ข้อมูลที่อุปกรณ์ส่งออกไปเองจะไม่รีเซ็ตตัวจับเวลา

โหมดแยกเฟรมแบบ Free Framing ตั้งค่าต่ำสุดได้เท่าไร?

ค่าเริ่มต้นของช่วงเวลาระหว่างสองไบต์คือ 50 ms และปรับลงได้ต่ำสุดถึง 10 ms ผ่านคำสั่ง แต่ต้องมั่นใจว่าอุปกรณ์ต้นทางส่งไบต์ถัดไปได้ทันภายในเวลานั้น มิฉะนั้นข้อมูลจะถูกตัดกลางเฟรม

สั่งซื้อ MT200 / Elfin Series Hi-Flying VR Automation

สนใจสั่งซื้อ MT200 / Elfin Series Hi-Flying?

VR Automation จำหน่ายและให้บริการติดตั้ง พร้อมทีมช่างผู้เชี่ยวชาญ

โทรสอบถามราคา: 083-848-8314

อีเมล: [email protected]

Line: @vrautomation

vrautomation.co.th

สต๊อกกรุณาสอบถาม | รับประกันสินค้า | บริการหลังการขาย | ออกใบกำกับภาษีได้

แหล่งข้อมูลและมาตรฐานอ้างอิง

  1. Catalog: Mortise and tenon series product software functions_20250312 — VR Automation (เอกสารเทคนิคจากผู้ผลิต Shanghai High-Flying Electronics)
  2. AES in embedded systems — understanding the most important AES modes — อ้างอิงหลักการโหมด CBC, บทบาทของ Initialization Vector และข้อจำกัดด้าน integrity ของ AES-CBC
  3. Lantronix — Application Note: Advanced Encryption Standard (AES_TCP) — อ้างอิงแนวทางการใช้ AES เข้ารหัสข้อมูลบนช่องสื่อสาร TCP ของอุปกรณ์อนุกรม
  4. Hi-Flying — IoT Network Device — หน้ารวมผลิตภัณฑ์เกตเวย์อุตสาหกรรมจากผู้ผลิต

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *