รูปปกบทความ

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 หรือส่วนหัวจดหมายที่เยิ่นเย้อ การส่งข้อมูลจึงเร็วและดุดันมาก!

รูปประกอบเปรียบเทียบ Explicit และ Implicit Messaging

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 ระบบครับ:

  1. อย่าใช้ Explicit Messaging ไปควบคุมเครื่องจักรกลที่เคลื่อนที่เร็ว! บางคนเขียน Script บน PC หรือใช้ Message Instruction (MSG) ใน PLC เพื่อยิงสั่งงานมอเตอร์โดยตรง (ผ่าน Explicit TCP) นี่เป็นเรื่องที่อันตรายมากครับ เพราะ TCP มันไม่การันตีเวลา (Non-deterministic) ถ้าเครือข่ายหน่วง มอเตอร์คุณอาจจะหยุดไม่ทันจนชนเครื่องจักรพังได้ งานควบคุม “ต้อง” ใช้ Implicit Messaging เสมอ
  2. ระวังพายุ Multicast (UDP Flooding) ให้ดี: เนื่องจาก Implicit I/O ขาที่เป็น Target ส่งกลับมาหา Originator มักจะเป็น Multicast UDP ถ้าคุณใช้สวิตช์บ้านๆ ราคาถูก (Unmanaged Switch) สวิตช์มันจะกระจายแพ็กเก็ต I/O ทะลักออกไปทุกพอร์ตในโรงงาน! คุณต้องใช้ Managed Switch ที่รองรับฟีเจอร์ IGMP Snooping เพื่อตีกรอบให้ข้อมูล Multicast วิ่งไปหาเฉพาะอุปกรณ์ที่ต้องการรับข้อมูลเท่านั้น
  3. ตั้งค่า 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