CompactRIO คืออะไร มีข้อดีอย่างไร
- CompactRIO คือ Controller ที่เหมาะสำหรับงาน Close Loop Control ของระบบ ที่ต้องมีการประมวลผลสมการทางคณิตศาสตร์หรือ Algorithm ที่ยากๆได้แบบ Real-Time และต้องการ Loop Rate ที่เร็วมากๆ งานลักษณะนี้ บ่อยครั้งที่ไม่สามารถใช้ PLC หรือ Microcontroller มาทำงานเป็น Controller ได้ เนื่องจากความสามารถไม่เพียงพอที่จะทำได้
- โครงสร้างภายในของ CompactRIO ประกอบไปด้วยตัวประมวลผล 2 ชนิดทำงานขนานกัน คือ FPGA และ Real-Time Controller สามารถทำงานในลักษณะ Paralell Processing ที่มีความเร็วในการประมวลผลสูงมากๆได้
- ประมวลผลได้เร็วที่สุด ในเวลา 25ns
- ผู้ใช้งานสามารถสร้าง Specific Digital Circuit / Function ได้เอง ด้วย FPGA
- CompactRIO สามารถเชื่อมต่อกับอุปกรณ์ภายนอกได้หลากหลาย ด้วย Port การสื่อสารที่มีในตัว (USB, Ethetnet, EtherCAT) เช่น Digital Camera, EtherCAT Servo Drive, PLC, Remote IO เป็นต้น
- มี IO Module ให้เลือกใช้มากมายหลายแบบ เช่น Digital & Analog IO, Voltage, Current, Sounnd & Vibration, Strain Gauge เป็นต้น โดยมีความแม่นยำระดับเดียวกับเครื่องมือวัด
- พัฒนา Application Software ได้ง่ายและรวดเร็ว ด้วย LabVIEW
รายละเอียด ข้อมูลเพิ่มเติมของ CompactRIO >>Click<<
FPGA Overview : เทคโนโลยีการประมวลผลความเร็วสูงด้วย Hardware
** สามารถ Click ที่รูป เพื่อดูภาพขยายใหญ่ได้
เพื่อให้เข้าใจหลักการทำงานของ FPGA ได้ง่ายๆ เราสามารถเปรียบ วิธีการประมวลผล ระหว่าง CPU กับ FPGA ได้ดังนี้
วิธีการประมวลผลของ CPU (Decision Making in Software)
- ในการทำงานของ Controller ทั่วๆไป ที่ใช้การประมวลผลชุดคำสั่งด้วย CPU ขั้นตอนการประมวลผลคือ สัญญาณที่ได้จาก IO Module จะต้องผ่านการดำเนินการหลายขั้นตอน ตั้งแต่ Controller OS, Hardware Driver ไปจนถึงการประมวลผลชุดคำสั่งทีละบรรทัด จึงจะได้ผลลัพธ์ออกมา
- เนื่องจากกระบวนการมีหลายขั้นตอน ทำให้การประมวลผลทำได้ไม่เร็วเท่าไหร่นัก
- สำหรับ Apllication บางอย่าง ที่ต้องการการประมวลผลที่เร็วมากๆ โครงสร้างการประมวลผลแบบนี้ อาจจะเร็วไม่พอ
วิธีการประมวลผลของ FPGA (Decision Making in Hardware)
- การประมวลผลด้วย FPGA จะเป็นการประมวลผลด้วย Hardware โดยการสังเคราะห์วงจรการต่อ Logic Blocks ย่อยๆ(Cicuit Synthesis) ที่มีอยู่ภายในตัว FPGA เพื่อให้วงจรทำงานได้ตามที่ผู้ออกแบบกำหนด โดยใช้ภาษา VHDL สำหรับออกแบบ FPGA
- สำหรับ CompactRIO ผู้ใช้ไม่จำเป็นต้องเข้าใจภาษา VHDL ที่ค่อนข้างซับซ้อน โดยในการพัฒนา จะใช้การเขียน Code ด้วย LabVIEW ซึ่งเมื่อเขียน Code เสร็จแล้ว จะใช้ Compiler ในการแปลง Code ของ LabVIEW ให้กลายเป็น VHDL และ Bit File ซึ่งเป็น File ที่กำหนดการรูปแบบต่อ Logic Blocks เพื่อให้ FPGA ทำงานตามที่เราต้องการ
- ผลที่ได้ คือ Code ของเรา จะได้รับการประมวลผลด้วย Hardware ใน FPGA โดยตรง ทำให้ประมวลผลได้เร็วกว่า CPU และมีเสถียรภาพสูงในการทำงาน ในลักษณะเดียวกับการสร้าง Chip ASIC สำหรับการประมวลผลงานเฉพาะด้าน
FPGA True Parallel Execution : โครงสร้างที่ออกแบบมา สำหรับประมวลแบบขนานด้วย Hardware
ด้วยหลักการประมวลผลด้วย Logic Blocks ภายใน FPGA ทำให้การประมวลผล เป็นแบบ True Parallel คือประมวลผล Code แต่ละส่วนแยกอิสระจากกันโดยแท้จริง และสามารถประมวลผลได้พร้อมๆกัน ในเวลาเดียวกันด้วย
ยกตัวอย่างเช่น การประมวลผลสมการ 2 สมการ คือ F = (A+B)*C และ Z = X+Y+M ในรูปด้านซ้ายมือ
- ใน FPGA จะแยกพิ้นที่ของ Logic Blocks สำหรับประมวลผล 2 สมการนี้ ออกเป็น 2 พื้นที อิสระจากกัน
- เวลาประมวลผล วงจรของ Logic Blocks ของแต่ละสมการ จะทำงานพร้อมกัน โดยไม่ต้องรอให้สมการที่ 1 เสร็จก่อน แล้วจึงมาทำสมการที่ 2 ในลำดับต่อไป
- ด้วยหลักการนี้ ทำให้การประมวลผลด้วย FPGA เร็วกว่าการประมวลผลด้วย CPU มาก เพราะ CPU จะต้องประมวลผลตามชุดคำสั่ง ทีละบรรทัด
- ในกรณีที่มีการเพิ่มสมการลักษณะนี้ จาก 2 สมการ เป็น 20 สมการ สำหรับ FPGA เวลาในการประมวลผล แทบจะไม่แตกต่างจากเดิม ด้วยคุณสมบัติ True Parallel Hardware Execution แต่ถ้าเป็น CPU เวลาที่ใช้ในการประมวลผล จะเพิ่มขึ้น 10 เท่า
FPGA ทำหน้าที่ Signal Pre-Processing : ช่วยลดภาระการคำนวณของ Real-Time Processor(CPU)
- ยกตัวอย่างเช่น สัญญาณที่ Processor ใน Real-Time ต้องการนำไปใช้งานจริงๆ คือสัญญาณ F และ Z เมื่อเราใช้ FPGA มาช่วยคำนวณค่าของ F และ Z ตามสมการเรียบร้อยแล้ว ตัว Real-Time Processor ก็นำค่า F และ Z ไปใช้ได้เลย ไม่ต้องเสียเวลาคำนวณ
- อีกตัวอย่างหนึ่งที่ใช้บ่อยๆ คือ การอ่านค่าสัญญาณ Pulse จาก Incremental Encoder(Pulse A, B, Z) เพื่อคำนวณหาค่า Speed และ Angle ในกรณีนี้ ตัว Real-Time Processor อาจจะไม่เร็วพอที่จะทำงานนี้ได้ ดังนั้น เราจะใช้ FPGA ที่มีความเร็วสูง ในการช่วยคำนวณหาค่า Speed และ Angle เพื่อส่งให้ Real-Time Processor นำไปใช้งานได้เลย
- ดังนั้น เราอาจมอง FPGA เป็นเสมือน Customable Hardware ที่เราสามารถสร้างเองได้ ตามความต้องการ

