ตอนที่ 9: Explicit Messaging vs. Implicit Messaging สองขั้วการสื่อสารแห่งโลก CIP

1. 🎯 ตอนที่ 9: Explicit vs. Implicit Messaging สองขั้วการสื่อสารที่ขับเคลื่อนโลกของ CIP
2. 📖 เปิดฉาก (The Hook)
สวัสดีครับน้องๆ สาย Automation และผู้อ่านทุกท่าน! ชงกาแฟเข้มๆ แล้วมากางแผนผัง Network Topology คุยกันต่อในซีรีส์ เจาะลึก Industrial Network & SCADA จาก 101 สู่ Advanced ครับ
เวลาที่พวกเราโปรแกรม PLC หรือทำระบบ SCADA น้องๆ หลายคนอาจจะเคยสงสัยว่า “เอ๊ะ ข้อมูลที่เราส่งผ่านสาย LAN ไปสั่งมอเตอร์ กับข้อมูลที่เราดาวน์โหลดโปรแกรมลง PLC มันวิ่งไปบนสายสัญญาณด้วยวิธีการเดียวกันหรือเปล่า?” คำตอบคือ ไม่เหมือนกันเลยครับ!
ในโลกของระบบเครือข่ายอุตสาหกรรม โดยเฉพาะเทคโนโลยีตระกูล Common Industrial Protocol (CIP) อย่าง EtherNet/IP, DeviceNet หรือ ControlNet ระบบจะแบ่งแยกหน้าที่การส่งข้อมูลออกเป็น 2 กระบวนท่าหลักอย่างชัดเจน นั่นคือ Explicit Messaging และ Implicit Messaging ครับ วันนี้พี่จะพามาเจาะลึกวิชามารทั้ง 2 รูปแบบนี้ พร้อมเปรียบเทียบให้เห็นภาพชัดๆ ว่าทำไม CIP ถึงต้องออกแบบมาให้มีความซับซ้อนขนาดนี้!
3. 🧠 แก่นวิชาโครงข่าย (Core Concepts)
เพื่อให้เข้าใจง่ายที่สุด พี่ขอเปรียบเทียบรูปแบบการสื่อสาร 2 ชนิดหลักของ CIP ดังนี้ครับ:
Explicit Messaging (สายบุ๋น - เน้นความชัวร์ ไม่เน้นรีบ)
- เปรียบเทียบ: เหมือนการ “ส่งอีเมลถาม-ตอบ (Q&A)” ครับ สมมติพี่อยากรู้พารามิเตอร์ของ Inverter พี่ก็ส่งอีเมล (Request) ไปถาม มันก็ต้องตอบกลับมา (Response) โดยในอีเมลจะระบุหัวข้อชัดเจนเลยว่า ถามใคร เรื่องอะไร (มี Service, Class, Instance, Attribute แปะไปในข้อความครบถ้วน)
- รูปแบบการสื่อสาร: ทำงานแบบ Point-to-Point (Client/Server)
- เหมาะกับข้อมูลประเภทใด: ข้อมูลที่ไม่ใช่ระดับเรียลไทม์ (Non time-critical) เช่น การตั้งค่า Configuration, การอ่านค่า Diagnostics เวลามี Fault, หรือการอัปโหลด/ดาวน์โหลดโปรแกรม
Implicit Messaging / I/O Messaging (สายบู๊ - เน้นความเร็ว พลาดไม่ได้)
- เปรียบเทียบ: เหมือนการ “รถบรรทุกส่งของตามรอบเวลาที่กำหนด” (Cyclic Delivery) ครับ ถ้ารถมาถึงโรงงานปุ๊บ โยนของลงปั๊บ คนรับรู้ทันทีว่ากล่องนี้คืออะไรโดยไม่ต้องมีจดหมายแปะหน้ากล่องอธิบายยาวๆ เพราะตกลงกันไว้ล่วงหน้าแล้ว!
- รูปแบบการสื่อสาร: ทำงานแบบ Producer/Consumer (รองรับ Multicast และ Broadcast)
- เหมาะกับข้อมูลประเภทใด: ข้อมูลควบคุม I/O แบบเรียลไทม์ (Time-critical control data) เช่น สั่งมอเตอร์หมุน, อ่านค่าสถานะเซนเซอร์
เหตุผลที่มันถูกเรียกว่า “Implicit” (บอกเป็นนัย) ก็เพราะ “ความหมายของข้อมูล” มันถูกกำหนดไว้แล้วด้วยตัว Connection ID (CID) ครับ เมื่อสร้างการเชื่อมต่อสำเร็จ แพ็กเก็ตที่วิ่งบนสายจะมีแค่ตัวเลข CID นำหน้า ตามด้วยข้อมูลเพียวๆ (Raw Data) ทำให้ไม่มี Overhead หรือส่วนหัวจดหมายที่เยิ่นเย้อ การส่งข้อมูลจึงเร็วและดุดันมาก!

4. 💻 ร่ายมนต์สถาปัตยกรรม (Architecture & Implementation)
เมื่อเรานำคอนเซปต์ของ CIP ทั้ง 2 แบบนี้มาวิ่งบนโครงข่ายยุคใหม่อย่าง EtherNet/IP สถาปัตยกรรมเบื้องลึกจะยิ่งน่าทึ่งครับ เพราะมันดึงเอาจุดแข็งของ Internet Protocol มาใช้อย่างชาญฉลาด:
- Explicit Messaging บน EtherNet/IP วิ่งผ่าน TCP/IP: เพราะ Explicit ต้องการความน่าเชื่อถือสูง ข้อมูลต้องไม่หาย จึงใช้ TCP (Transmission Control Protocol) ผ่านพอร์ต 44818/tcp เมื่อส่งแล้วถ้าปลายทางไม่ได้รับ จะมีการร้องขอให้ส่งใหม่เสมอ (Retries)
- Implicit Messaging บน EtherNet/IP วิ่งผ่าน UDP/IP: เพราะ Implicit หรือ I/O Data ต้องการความเร็วและความหน่วงต่ำ (Low latency) มันจึงใช้ UDP (User Datagram Protocol) ผ่านพอร์ต 2222/udp ซึ่งตัดกลไกการรอตอบรับทิ้งไป แลกมาด้วยความเร็วที่เพิ่มขึ้นอย่างมหาศาล และที่สำคัญ UDP รองรับการทำ IP Multicast ทำให้ Controller (Producer) ตัวเดียว สามารถส่งค่า I/O กระจายไปให้หน้าจอ HMI หรือ Drive (Consumers) หลายๆ ตัวได้พร้อมกันด้วยการส่งแพ็กเก็ตเพียงครั้งเดียว!
ก่อนที่ Implicit Messaging จะเริ่มคุยกันได้ ระบบจะต้องส่ง Explicit Message ที่เรียกว่า Forward_Open service ไปทักทายเพื่อ “จองทรัพยากร” และตกลงกันก่อนว่า “เราจะส่งข้อมูลหากันด้วยรอบเวลาเท่าไหร่ (RPI - Requested Packet Interval) และใช้ Connection ID หมายเลขอะไร” หลังจากนั้นถึงจะเปิดท่อให้ UDP I/O Data วิ่งสาดใส่กันครับ
5. 🛡️ เคล็ดลับจากห้องคอนโทรล (Under the Hood / Pro-Tips)
ในฐานะ Network Architect พี่มีเคล็ดลับวิชาจากหน้างานจริงมาเตือนน้องๆ เวลาต้องออกแบบหรือ Config ระบบครับ:
- อย่าใช้ Explicit Messaging ไปควบคุมเครื่องจักรกลที่เคลื่อนที่เร็ว! บางคนเขียน Script บน PC หรือใช้ Message Instruction (MSG) ใน PLC เพื่อยิงสั่งงานมอเตอร์โดยตรง (ผ่าน Explicit TCP) นี่เป็นเรื่องที่อันตรายมากครับ เพราะ TCP มันไม่การันตีเวลา (Non-deterministic) ถ้าเครือข่ายหน่วง มอเตอร์คุณอาจจะหยุดไม่ทันจนชนเครื่องจักรพังได้ งานควบคุม “ต้อง” ใช้ Implicit Messaging เสมอ
- ระวังพายุ Multicast (UDP Flooding) ให้ดี: เนื่องจาก Implicit I/O ขาที่เป็น Target ส่งกลับมาหา Originator มักจะเป็น Multicast UDP ถ้าคุณใช้สวิตช์บ้านๆ ราคาถูก (Unmanaged Switch) สวิตช์มันจะกระจายแพ็กเก็ต I/O ทะลักออกไปทุกพอร์ตในโรงงาน! คุณต้องใช้ Managed Switch ที่รองรับฟีเจอร์ IGMP Snooping เพื่อตีกรอบให้ข้อมูล Multicast วิ่งไปหาเฉพาะอุปกรณ์ที่ต้องการรับข้อมูลเท่านั้น
- ตั้งค่า RPI ให้เหมาะสมกับหน้างาน: RPI (Requested Packet Interval) ของ Implicit Messaging กำหนดความถี่ในการส่งข้อมูล บางคนตั้งค่าไว้เร็วสุดๆ (เช่น 1 ms) ให้กับเซนเซอร์วัดอุณหภูมิที่ค่าเปลี่ยนแปลงช้ามาก ผลคือ PLC โดนขยะข้อมูลสูบ CPU ทิ้งไปฟรีๆ จงตั้งค่ารอบเวลาให้สอดคล้องกับ Dynamics ของระบบเครื่องจักรนั้นๆ ครับ
6. 🏁 บทสรุป (To be continued…)
สรุปสั้นๆ ให้เห็นภาพครับ Explicit Messaging คือ “สายบริหาร” ที่คอยจัดการตั้งค่า ซ่อมบำรุง และส่งข้อมูลแบบถาม-ตอบที่มีความชัวร์สูง ส่วน Implicit Messaging คือ “สายปฏิบัติการ” ที่ทำหน้าที่เป็นชีพจรส่งข้อมูล I/O ควบคุมเครื่องจักรด้วยความเร็วแสง ทั้งสองรูปแบบนี้ทำงานสอดประสานกันอย่างสมบูรณ์แบบภายใต้โครงสร้างของ Common Industrial Protocol (CIP) ทำให้มันเป็นมาตรฐานที่แข็งแกร่งที่สุดตัวหนึ่งในวงการ
สำหรับตอนหน้า เมื่อเรามีระบบ I/O ที่เร็วมากๆ แล้ว ถ้าเราต้องการสั่งให้แขนกล 5 แกนเคลื่อนที่พร้อมกันแบบซิงโครไนซ์เป๊ะๆ ระดับนาโนวินาที เราจะทำได้อย่างไร? เตรียมพบกับภาคขยายระดับเทพอย่าง CIP Sync และ CIP Motion ครับ รอติดตามอ่านกันได้เลย!
ต้องการที่ปรึกษาด้านการออกแบบสถาปัตยกรรมโครงข่ายอุตสาหกรรม (Industrial Networks) หรือระบบ SCADA สำหรับโรงงานของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและติดตั้งระบบแบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p