รูปปกบทความ I/O Allocation: การจองแอดเดรสให้ฮาร์ดแวร์

1. 🎯 ตอนที่ 8: I/O Allocation: การจองแอดเดรสให้ฮาร์ดแวร์

2. 📖 เปิดฉาก (The Hook)

สวัสดีครับพี่น้องสายออโตเมชั่น! มาจิบกาแฟกางแบบแปลนกันต่อครับ วันก่อนมีรุ่นน้องโทรมาหาผมด้วยน้ำเสียงร้อนรน “พี่ครับ! ผมซื้อ Expansion I/O Unit มาต่อเพิ่มกะจะติดเซ็นเซอร์อีก 3 ตัว ผมต่อสายเสร็จหมดแล้ว แต่ทำไมใน Ladder Logic มันอ่านค่า Input ไม่เข้าเลยครับ พี่ช่วยรีโมทมาดูให้หน่อย!”

พอผมเปิด CX-Programmer ดูเท่านั้นแหละ ถึงบางอ้อเลยครับ… น้องแกเล่นเดาเลข Address เอาเองแบบมั่วๆ! เรื่องการจองพื้นที่หน่วยความจำ หรือที่เราเรียกกันเท่ๆ ว่า “I/O Allocation” ถือเป็นด่านปราบเซียนด่านแรกๆ ของคนทำระบบ Automation เลยครับ เพราะถ้าเราไม่เข้าใจว่า “สมอง” ของ PLC OMRON มันมีตรรกะในการเรียงเลข Address ให้ฮาร์ดแวร์แต่ละตัวยังไง ต่อให้ไวริ่งสายไฟสวยแค่ไหน เครื่องก็ไม่ทำงานครับ! วันนี้ผมจะมาสอนวิธีคำนวณ Address ของ CIO Area เวลาต่อ Expansion Unit แบบสไตล์วิศวกรคุยกัน รับรองว่าเข้าใจทะลุปรุโปร่งแน่นอน!

3. 🧠 แก่นวิชาออโตเมชั่น (Core Concepts & Specs)

สำหรับตระกูล CP-Series (CP1E, CP1L, CP1H, CP2E) ทาง OMRON ได้ออกแบบสถาปัตยกรรมการจอง Address ให้สืบทอดมาจากรุ่นเก๋าอย่าง CPM1A/CPM2A ครับ คือการใช้ “พื้นที่คงที่” (Fixed Areas) สำหรับแบ่งแยกโซนของ Input และ Output อย่างชัดเจนใน CIO Area

หลักการจำง่ายๆ มีแค่นี้ครับ:

  • จุดเริ่มต้นของ Input (เริ่มต้นที่ CIO 0): ระบบจะจอง Word ที่ CIO 0 เป็นต้นไปให้กับช่องเสียบสัญญาณ Input เสมอ
  • จุดเริ่มต้นของ Output (เริ่มต้นที่ CIO 100): ระบบจะจอง Word ที่ CIO 100 เป็นต้นไปให้กับช่องเสียบสัญญาณ Output เสมอ

เมื่อเรานำ Expansion I/O Unit มาต่อขยาย (System Expansion): ความฉลาดของ PLC OMRON คือ ทุกครั้งที่เราจ่ายไฟเข้าเครื่อง (Power ON) ตัว CPU Unit จะทำการเช็กว่ามี Expansion Unit ตัวไหนมาต่อพ่วงบ้าง และจะทำการจอง Address ให้แบบอัตโนมัติ (Automatic Allocation) โดยเรียงลำดับจากตัวที่อยู่ซ้ายมือสุด (ติดกับ CPU) ไปทางขวามือเสมอ

คู่มือของ OMRON จะใช้สัญลักษณ์เพื่ออธิบายการรันเลขต่อไปนี้ครับ:

  • CIO m: คือ Word ของ Input ลำดับถัดไปที่ยังว่างอยู่
  • CIO n: คือ Word ของ Output ลำดับถัดไปที่ยังว่างอยู่
แผนผังการเรียงลำดับ I/O Allocation ของ PLC OMRON

4. 💻 ร่ายมนต์โค้ดและวงจร (Logic & Wiring)

เพื่อไม่ให้งง เรามาดูตัวอย่างการรัน Address ของจริงกันครับ สมมติว่าหน้างานเรามี CPU Unit ขนาด 40 I/O Points แล้วเราต้องการต่อขยายด้วย Expansion I/O Unit แบบ 20 Points (12 In / 8 Out) เพิ่มอีก 1 ตัว

// ------------------------------------------------------------
// [ตัวอย่างการคำนวณ I/O Allocation หน้างานจริง]
// ------------------------------------------------------------

// 1. ฝั่ง CPU Unit (40 I/O Points = 24 Input / 16 Output)
   - Input ถูกจองไป 2 Words คือ CIO 0 และ CIO 1 (ใช้งาน CIO 0.00-0.11 และ CIO 1.00-1.11)
   - Output ถูกจองไป 2 Words คือ CIO 100 และ CIO 101 (ใช้งาน CIO 100.00-100.07 และ CIO 101.00-101.07)
   
// ดังนั้น ตอนนี้ m (Input ถัดไปที่ว่าง) = CIO 2
// และ n (Output ถัดไปที่ว่าง) = CIO 102

// 2. ฝั่ง Expansion I/O Unit (20 Points = 12 Input / 8 Output)
   - Unit นี้ต้องการ Input 1 Word -> ระบบจะหยิบ CIO m มาใช้ นั่นคือ CIO 2 (ใช้งาน CIO 2.00-2.11)
   - Unit นี้ต้องการ Output 1 Word -> ระบบจะหยิบ CIO n มาใช้ นั่นคือ CIO 102 (ใช้งาน CIO 102.00-102.07)

/* 
   Comment สไตล์วิศวกร: 
   เห็นไหมครับ! ถ้าเราจะเขียน Ladder ไปอ่านค่าเซ็นเซอร์ตัวแรกที่ต่อเข้ากับ Expansion Unit
   เราต้องเขียนว่า "LD 2.00" ไม่ใช่ "LD 1.12" นะครับ! เพราะระบบมันปัดขึ้น Word ใหม่ให้เลย!
*/

5. 🛡️ เคล็ดลับคนหน้างาน (Factory Floor Pro-Tips)

ข้อควรระวังหน้างานจากสเปกชีทของ OMRON ที่ทำให้ช่างปวดหัวมานักต่อนัก มีดังนี้ครับ:

  1. ห้ามสลับตำแหน่ง Expansion Unit เด็ดขาด!: อย่างที่บอกไปครับว่า PLC จะรัน Address ตาม “ลำดับการเชื่อมต่อ” (Order of connection) หากคุณถอดตู้ทำความสะอาดแล้วเผลอสลับเอาโมดูล Output ไปเสียบก่อนโมดูล Input Address ของฮาร์ดแวร์จะเปลี่ยนใหม่ทั้งหมดทันที และลอจิกในโปรแกรมของคุณจะรวนเละเทะ! หากมีความจำเป็นต้องเปลี่ยนลำดับ ต้องกลับไปแก้ Address ใน Ladder Program ทุกครั้งครับ
  2. ความลับของ “บิตที่เหลือทิ้ง”: ใน 1 Word จะมี 16 บิต (00-15) แต่ฮาร์ดแวร์บางรุ่นมี Input แค่ 12 จุด (ใช้บิต 00-11) คำถามคือ บิต 12-15 เอาไปทำอะไรได้ไหม?
    • สำหรับ Input Word: บิตที่ไม่ได้ใช้ (เช่น 12-15) “ห้าม” นำมาใช้เป็น Work bits ในการเขียนโปรแกรมเด็ดขาด! เพราะระบบสงวนไว้ (Do not use)
    • สำหรับ Output Word: บิตที่ไม่ได้ต่อออกโหลดจริง (เช่น ช่อง Output มีแค่ 8 จุด ใช้บิต 00-07) บิต 08-15 ที่เหลือสามารถนำมาใช้เป็น Internal Work Bits ในการทดเลขลอจิกชั่วคราวได้ครับ ใจดีสุดๆ!
  3. ระวังตัวหลอก (Expansion Unit ที่มีแต่อินพุต หรือ มีแต่เอาต์พุต): ถ้าเราต่อ Unit ที่มีแต่ Input (เช่น อนาล็อกอินพุต) ระบบก็จะรันกินโควต้าเฉพาะค่า m (ฝั่ง Input) ส่วนค่า n (ฝั่ง Output) จะไม่ถูกใช้งานและถูกยกยอดไปรอให้ Unit ถัดไปที่ต้องการ Output แทนครับ

6. 🏁 บทสรุป (To be continued…)

การทำความเข้าใจเรื่อง I/O Allocation ถือเป็นรากฐานที่สำคัญที่สุดก่อนเริ่มเขียนโปรแกรมครับ เพราะมันคือแผนที่นำทางให้สมองของ PLC สั่งการฮาร์ดแวร์ได้อย่างแม่นยำ เมื่อคุณรู้แล้วว่า Inputs เริ่มต้นที่ CIO 0 และ Outputs เริ่มที่ CIO 100 รวมถึงหลักการรัน CIO m และ CIO n คราวนี้จะต่อ Expansion Unit เพิ่มกี่ตัวก็ไม่ต้องกลัวพลาดแล้วครับ!

ในตอนหน้า เราจะขยับเข้าสู่เรื่องของ “การตั้งค่าพารามิเตอร์เริ่มต้น (PLC Setup)” กันบ้าง ว่าทำไมบางทีไฟดับแล้วค่า Counter ถึงหาย หรือจะตั้งค่าพอร์ตสื่อสารยังไงให้คุยกับจอ HMI รู้เรื่อง ฝากติดตามด้วยนะครับ!


ต้องการที่ปรึกษาด้านการออกแบบตู้คอนโทรล, เขียนโปรแกรม PLC OMRON หรือปรับปรุงเครื่องจักรในโรงงานของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและติดตั้งระบบ Automation แบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p