สิงหาคม 25, 2025

การใช้งาน Hardware Abstraction Layer (HAL) ร่วมกับ PicoScope ด้วย LabVIEW และ TestStand

สำหรับ Oscilloscope รุ่นพื้นฐานของ PicoScope นั้นจะมีอยู่ด้วยกันทั้งหมด 5 ซีรี่ส์ที่มีฟังก์ชั่นการทำงานคล้ายคลึงกันและสามารถใช้งานร่วมกับ PicoScope 7 ได้เหมือนกัน ได้แก่ ซีรี่ส์ 2000, 3000, 4000, 5000 และ 6000 ทว่าทั้ง 5 ซีรี่ส์นี้ใช้ไลบรารี่ในการเขียนโปรแกรมคนละไลบรารี่กันทำให้โปรแกรมที่เขียนขึ้นไม่สามารถใช้งานข้ามซีรี่ส์ได้ เราสามารถเขียนโปรแกรมในรูปแบบของ Hardware Abstraction Layer (HAL) ซึ่งรองรับใน LabVIEW เพื่อที่จะก้าวข้ามปัญหานี้ ทั้งนี้เราต้องทำการดาวน์โหลดและติดตั้งซอฟต์แวร์ที่จำเป็นก่อน โดยจะมีทั้งหมด 5 ซอฟต์แวร์ ได้แก่

  1. PicoSDK: ประกอบไปด้วยไลบรารี่ที่จำเป็นสำหรับการควบคุม PicoScope โดยเราสามารถดาวน์โหลดได้จาก https://www.picotech.com/downloads เลือกรุ่นของ PicoScope ที่เราต้องการใช้งานแล้วทำการดาวน์โหลดซอฟต์แวร์ PicoSDK รุ่น Stable 32 หรือ 64 บิท สำหรับระบบปฏิบัติการวินโดว์ส เมื่อดาวน์โหลดเสร็จแล้วให้ดับเบิ้ลคลิ๊กไฟล์ที่ดาวน์โหลดแล้วเลือก Install เพื่อทำการติดตั้งลงบนคอมพิวเตอร์ของเรา
  2. PicoSDK driver wrapper dll: เป็นไลบรารี่สำหรับเรียกใช้งานไดรเวอร์ PicoSDK สามารถดาวน์โหลดได้จาก https://github.com/picotech/picosdk-c-wrappers-binaries/archive/refs/heads/master.zip สำหรับวินโดว์ส 32 บิทให้นำไฟล์ในโฟลเดอร์ Windows 32-bit ไปไว้ที่ C:\Program Files (x86)\Pico Technology\SDK\lib และสำหรับวินโดว์ส 64 บิทให้นำไฟล์ในโฟลเดอร์ Windows 64-bit ไปไว้ที่ C:\Program Files\Pico Technology\SDK\lib
  3. ตัวอย่างการใช้งาน PicoScope กับ LabVIEW: สามารถดาวน์โหลดได้จาก https://github.com/picotech/picosdk-ni-labview-examples
  4. Example Dependencies: เป็น VI ที่เรียกใช้งานโดยไฟล์ตัวอย่างของ LabVIEW สามารถดาวน์โหลดได้จาก https://github.com/picotech/picosdk-ni-labview-shared เสร็จแล้วให้นำไฟล์ไปไว้ที่โฟลเดอร์ shared ในตัวอย่างของ LabVIEW ที่ดาวน์โหลดมาในข้อ 3
  5. เอกสารอ้างอิงในการเขียนโปรแกรมเพื่อควบคุม PicoScope รุ่นต่าง ๆ: สามารถดาวน์โหลดได้จาก https://www.picotech.com/library/documentation โดยทำการเลือกดาวน์โหลด ไฟล์ pdf สำหรับ PicoScope รุ่นที่เราต้องการใช้งาน

ทั้งนี้ HAL นั้นมีพื้นฐานอยู่บนการเขียนโปรแกรมแบบเชิงวัตถุ โดยเราจะทำการสร้างคลาสซึ่งกำหนดคุณสมบัติและเมธอดซึ่งสามารถ override โดยคลาสลูก ซึ่งในที่นี้เราจะสร้างคลาส PicoScope ขึ้นมาเป็นคลาสแม่และคลาสลูกทั้งหมด 5 คลาส ได้แก่ คลาส 2000, 3000, 4000, 5000 และ 6000 ดังแสดงในภาพด้านล่าง

หลังจากนั้นเราจะทำการสร้างเมธอดต่าง ๆ (เมธอดก็คือ VI ที่อยู่ภายใต้คลาส) ขึ้นมาในคลาส PicoScope โดยเมธอดแรกที่เราทำการสร้างคือ เมธอด open ซึ่งจะทำการติดต่อกับ PicoScope โดยใช้ฟังก์ชั่นของซีรี่ส์ต่าง ๆ เมื่อพบว่า PicoScope ซีรี่ส์ใดต่ออยู่กับเครื่องคอมพิวเตอร์ ก็จะสร้างวัตถุของซีรี่ส์นั้น ๆ แล้วส่งไปยังอินดิเคเตอร์ นอกจากนี้ยังทำการเก็บค่า Resource, Max Adc value และ Device Info ซึ่งจำเป็นสำหรับการเขียนโปรแกรมเพื่อควบคุม PicoScope เก็บไว้ในคุณสมบัติของวัตถุซึ่งสามารถดึงไปใช้ในคลาสลูกได้ดังแสดงในภาพด้านล่าง

หลังจากนั้นเราจะทำการสร้างเมธอดเพื่อควบคุมการทำงานของ PicoScope ในคลาส PicoScope ได้แก่ เมธอด close, fgen_config, fgen_stop, fgen_update, scope_config และ scope_read ซึ่งเมธอดเหล่านี้จะไม่มีการเขียนโปรแกรมในบล๊อคไดอะแกรมของคลาส PicoScope เนื่องจากเราต้องทำการ override เมธอดเหล่าในคลาสลูกเพื่อให้เรียกใช้ไลบรารี่ได้ถูกต้อง ซึ่งข้อดีของการ override เมธอดในคลาสลูกก็คือ เมื่อวัตถุถูกผ่านไปยังเมธอดในคลาสแม่จะมีการเรียกใช้งานเมธอดในคลาสลูกที่ override คลาสแม่ โดยคลาสที่เลือกใช้จะเปลี่ยนไปตามวัตถุที่ส่งมาโดยอัตโนมัติทำให้เราสามารถเขียนโปรแกรมโดยใช้เพียงเมธอดของคลาสแม่โดยไม่จำเป็นต้องสนใจว่าวัตถุที่สร้างขึ้นจะเป็นของตลาสลูกตัวไหนดังแสดงในภาพด้านล่าง

ซึ่งผลลัพธ์ที่ได้ทำให้เราสามารถเขียนโปรแกรมเพียงครั้งเดียวแต่สามารถใช้งานได้กับ PicoScope ทุกซีรี่ส์โดยไม่ต้องทำการแก้ไขโปรแกรม นอกจากนี้เรายังทำการสร้างเมธอดเพื่อให้คลาสลูกสามารถนำไปใช้งานได้โดยตั้งค่าให้เป็นเมธอดแบบ Protected (รูปกุญแจสีเหลือง) หรือตั้งค่าเมธอดเป็น Private (รูปกุญแจสีแดง) เพื่อใช้งานภายในคลาสเท่านั้นดังแสดงในภาพด้านล่าง

สำหรับการใช้งานใน TestStand นั้น HAL ที่เราเขียนด้วย LabVIEW สามารถนำมาใช้งานใน TestStand ได้เช่นเดียวกัน โดยเราต้องเริ่มต้นจากการใช้ Action Step เพื่อติดต่อกับ PicoScope เสียก่อน ทำการตั้งค่า Call Type: Class Member Call ตั้งค่า Class Path: ไปยังไฟล์ของคลาสแม่ แล้วตั้งค่า Member Name: open.vi โดยคลาสย่อยที่ถูกเลือกออกมาจาก open.vi จะขึ้นอยู่กับซีรี่ส์ของ PicoScope ที่ต่อกับคอมพิวเตอร์ หลังจากนั้นให้เก็บวัตถุที่ได้มาไปยังตัวแปรชนิด object reference ใน TestStand ดังแสดงในภาพด้านล่างซึ่งเก็บไว้ในตัวแปร FileGlobals.picoscope

หลังจากนั้นในขั้นตอนต่อ ๆ ไป ให้ทำการตั้ง Call Type: Class Member Call และ Class Path: ไปยังไฟล์ของคลาสแม่เช่นเดิม แล้วตั้งค่า Member Name: เป็นเมธอดที่ต้องการใช้งานโดยทำการผ่านค่า object reference ที่เก็บไว้ในตัวแปรไปยังอินพุตรับค่าวัตถุ (ในกรณีนี้คือ PicoScope in) หากเมธอดนี้ถูก override ในคลาสลูก เมธอดในคลาสลูกจะถูกเลือกตามวัตถุที่ถูกส่งเข้าไปยังเมธอดโดยอัตโนมัติดังแสดงในภาพด้านล่าง

ซึ่งผลลัพธ์ที่ได้ทำให้เราลำดับการทดสอบใน TestStand เพียงครั้งเดียวแต่สามารถใช้งานได้กับ PicoScope ทั้ง 5 ซีรี่ส์โดยไม่ต้องทำการแก้ไข

หวังว่าบทความข้างต้นจะช่วยให้ท่านสามารถใช้งาน PicoScope หลากหลายรุ่นโดยการเขียนโปรแกรมเพียงครั้งเดียวด้วย Hardware Abstraction Layer (HAL) ใน LabVIEW และ TestStand ท่านสามารถติดต่อทีมงาน เทคสแควร์ เพื่อติดต่อสอบถามข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน PicoScope หรือผลิตภัณฑ์จาก Pico Technology ร่วมกับ LabVIEW หรือภาษาโปรแกรมมิ่งอื่น ๆ

พิเศษ!!! สำหรับลูกค้าที่ซื้อ PicoScope จาก TechSquare ท่านสามารถติดต่อขอรับตัวอย่างการใช้งาน Hardware Abstraction Layer ใน LabVIEW ร่วมกับ Oscilloscope ได้ฟรีทันที

 

บทความที่เกี่ยวข้อง

การควบคุม PicoScope ด้วย LabVIEW

การปรับปรุงประสิทธิภาพการทำงานของ TestStand ด้วย LabVIEW Run-Time Engine

การเลือกใช้งาน API ร่วมกับ PicoScope

error: Content is protected...