เมษายน 25, 2020

อุปกรณ์จำลอง NI-DAQmx

บทความนี้แนะนำพื้นฐานการใช้ไดร์เวอร์ NI-DAQmx หลากหลายรูปแบบ เช่น สร้างอุปกรณ์จำลอง NI-DAQmx การตรวจสอบการทำงานของอุปกรณ์บน MAX (Measurement & Automation Explorer) ไปจนถึงการเขียนโปรแกรม LabVIEW สำหรับอุปกรณ์ DAQ ทุกรูปแบบ

NI-DAQmx เป็นไดร์เวอร์ที่มีประสิทธิภาพสู ช่วยทำให้คอมพิวเตอร์สามารถมองเห็นอุปกรณ์ และทำให้ LabVIEW สามารถพัฒนาโปรแกรม เพื่อเชื่อมต่อกับอุปกรณ์ DAQ ได้ด้วย และความสามารถในการวัดล่าสุด ที่ถูกเพิ่ม ลงใน NI-DAQmx ก็คือ การสร้างอุปกรณ์จำลอง ซึ่งเป็นการใช้ Simulated Device Option ในเมนู Create New เพื่อสร้างแบบจำลองการทำงานของอุปกรณ์อื่น ๆ ได้โดยไม่ต้องมีอุปกรณ์จริง และสามารถทำงานได้เสมือนกับมีอุปกรณ์จริง ต่ออยู่กับ คอมพิวเตอร์นั้นๆ

บทความฉบับนี้ แนะนำ ข้อมูลพื้นฐานของอุปกรณ์ NI-DAQmx, การโปรแกรม, การใช้งาน และข้อควรพิจารณาในการใช้อุปกรณ์จำลอง โดยอ้างอิงจาก NI-DAQmx เวอร์ชั่น 19.6 และ LabVIEW 2019 โดยผู้ใช้สามารถใช้เวอร์ชั่นใหม่กว่านี้ได้ หากผู้ใช้ไม่มีโปรแกรม LabVIEW สามารถดาวน์โหลดโปรแกรมอื่น เช่น SignalExpress เพื่อฝึกทำตามบทความฉบับนี้ได้

วิธีการสร้างอุปกรณ์จำลอง NI-DAQmx

หากผู้ใช้ต้องการสร้างอุปกรณ์จำลอง NI-DAQmx ผู้ใช้จะต้องทำการติดตั้งไดร์เวอร์ NI-DAQmx ก่อน

  1. เปิดโปรแกรม MAX (Measurement & Automation Explorer) เพื่อสร้างอุปกรณ์จำลอง NI-DAQmx (หากทำการติดตั้ง NI-DAQMx ก็จะเป็นการติดตั้ง MAX ด้วย) นอกจากผู้ใช้จะไม่เลือก feature นี้ขณะติดตั้ง หากไม่ได้ติดตั้ง MAX ไว้ จะต้องทำการติดตั้ง NI-DAQmx อีกครั้ง
  2. คลิกขวาที่ My System>>Devices and Interfacesแล้วเลือก Create New…จากนั้นเลือก Simulated NI-DAQmx Device or Modular Instrument จากนั้นหน้าต่าง Create Simulated NI-DAQmx Device จะปรากฏขึ้นให้ผู้ใช้สามารถเลือกอุปกรณ์ที่ต้องการได้


    ภาพประกอบ 1. การสร้างอุปกรณ์จำลอง NI-DAQmx ใน MAX

  3. เลือกอุปกรณ์ที่ต้องการสร้างให้เป็นอุปกรณ์จำลอง NI-DAQmx ผู้ใช้สามารถสร้างอุปกรณ์จำลอง NI-DAQmx จากอุปกรณ์ที่สนับสนุน NI-DAQmx ได้ทุกชนิดยกเว้น SCXI-1600, USB-6008, USB-6009, USB-6501 และ อุปกรณ์ B Series
    หมายเหตุ: สำหรับการจำลองโมดูล C Series เช่น NI-9201 หรือ NI-9234 ผู้ใช้จำเป็นจะต้องสร้างอุปกรณ์จำลองของ cDAQ chassis ก่อนเพื่อใส่โมดูล C Series เข้าไปได้ จากนั้นจึงเลือกอุปกรณ์จำลอง cDAQ chassis ให้ตรงกับโมดูลที่จะใช้อีกที สำหรับข้อมูลเพิ่มเติมสามารถเข้าไปดูได้ที่ Using NI-DAQmx Simulated Devices to Develop without Hardware


    ภาพประกอบ 2. ตัวเลือกอุปกรณ์หลายร้อยชนิดที่สนับสนุน NI-DAQmx

  4. คลิก OK เพื่อปิดหน้าต่าง Create Simulated NI-DAQmx Device อุปกรณ์จำลอง NI-DAQmx จะปรากฎใน MAX สีไอคอนของอุปกรณ์จำลอง NI-DAQmx จะต่างกับตัวที่เป็นอุปกรณ์จริง อุปกรณ์จริงจะเป็นสีเขียว ส่วน chassis จริงจะเป็นสีเทา ในขณะที่อุปกรณ์ และ chassis จำลองจะเป็นสีเหลือง

    ภาพประกอบ 3. ไอคอนของอุปกรณ์จำลอง NI-DAQmx ใน MAX จะเป็นสีเหลือง

วิธีการใช้อุปกรณ์จำลอง NI-DAQmx

อุปกรณ์จำลอง NI-DAQmx ทำงานเสมือนอุปกรณ์จริง ผู้ใช้สามารถใช้อุปกรณ์จำลอง NI-DAQmx เพื่อสร้าง NI-DAQmx tasks ผ่าน DAQ Assistant หรือ API โดยไม่จำเป็นต้องใช้อุปกรณ์จริง ผู้ใช้สามารถใช้งานอุปกรณ์จำลอง NI-DAQmx ได้ดังนี้:

  • เริ่มต้นการพัฒนาโปรแกรมได้ โดยไม่ต้องมีอุปกรณ์จริง
  • สามารถทดสอบความถูกต้องของโปรแกรมได้ ก่อนที่จะนำไปใช้กับเครื่องจักรจริง
  • ทดลองเขียนโปรแกรมกับอุปกรณ์ DAQ ของ NI โดยไม่ต้องมีอุปกรณ์จริง

บทความส่วนนี้จะกล่าวถึงการสร้าง NI-DAQmx task โดยใช้ DAQ Assistant ก่อนใช้ taskในการรับข้อมูลการจำลองบน LabVIEW หรือ LabVIEW SignalExpress

  1. สร้างอุปกรณ์จำลอง NI-DAQmx ใน MAX ตามขั้นตอนที่กล่าวไปเเล้ว
  2. สร้าง NI-DAQmx Task จาก DAQ Aaaiatantก. คลิกขวาที่ My System>>Data Neighborhood>>NI-DAQmx Tasks เลือก Create New NI-DAQmx Task แล้วเลือกประเภทการวัดที่ต้องการ


    ภาพประกอบ 4. การเลือกประเภทการวัดใน DAQ Assistant

    ข. สำหรับ task นี้ ให้เลือก Acquire Signals»Analog Input»Voltage  จากนั้นจึงเลือกช่องสัญญาณที่ต้องการ

    ค. เลือกแชลแนลที่ต้องการจากอุปกรณ์จำลอง NI-DAQmx (สามารถเลือกได้มากกว่า 1 แชนแนล) ผู้ใช้สามารถสร้าง NI-DAQmx task ได้โดยไม่ต้องคำนึงถึงความแตกต่างระหว่างอุปกรณ์จริง และอุปกรณ์จำลอง ใน DAQ Assistant สามารถจำแนกอุปกรณ์จริง และอุปกรณ์จำลองบน MAX ได้จากสีไอคอนของอุปกรณ์ตามที่กล่าวไปแล้วข้างต้น ผู้ใช้สามารถกด Ctrl ค้างเพื่อเลือกเพิ่มทีละแชนแนล หรือ กด Shift เพื่อเลือกเพิ่มหลายแชนแนล ได้


    ภาพประกอบ 5. การเลือกช่องสัญญาณใน DAQ Assistant

    ง. คลิก Next แล้วทำการตั้งชื่อ task ที่ต้องการ


    ภาพประกอบ 6. การตั้งชื่อ task

    จ. คลิก Finish เพื่อทำการปิดหน้าต่างนี้ โดยผ็ใช้สามารถกำหนด timing and synchronization, สร้าง custom scaling, เพิ่มหรือลบ virtual channel, เรียกดู connection diagram ฯลฯ หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ DAQ Assistant สามารถเข้าไปดูได้ที่ DAQ Assistant Help

    ฉ. ตั้งค่า task ตามภาพประกอบด้านล่าง


    ภาพประกอบ 7. การตั้งค่าของ task ใน DAQ Assistant

    ช. คลิก Run ตรงแถบ toolbar ด้านบนสุด สามารถใช้ DAQ Assistant ทดสอบได้ทั้งอุปกรณ์จริงและอุปกรณ์จำลอง จะสังเกตเห็นสัญญาณ Sine Wave เป็นข้อมูลจำลองที่ได้จากช่องสัญญาณที่กำหนดไว้ใน DAQ task


    ภาพประกอบ 8. การทดสอบ NI-DAQmx tasks เพื่อหา errors และดูข้อมูลจำลองจากอุปกรณ์จำลอง NI-DAQmx

    หมายเหตุ: อุปกรณ์จำลอง NI-DAQmx มีการสร้างสัญญาณ Sine Wave แบบที่มีสัญญาณรบกวน สำหรับ analog input ทุกแชนแนล โดยผู้ใช้ไม่สามารถตั้งค่าข้อมูลจำลองอื่น ๆ ในระหว่างนี้ได้

    หมายเหตุ: NI-DAQmx tasks สำหรับอุปกรณ์จำลอง สามารถตรวจสอบได้เหมือนการใช้อุปกรณ์จริง หากผู้ใช้กำหนดค่า property ไม่ถูกต้อง ข้อมูล error ที่ส่งกลับมาจากอุปกรณ์จำลอง NI-DAQmx จะเหมือนกันกับข้อมูลที่มาจากอุปกรณ์จริง และ resource ที่จำเป็นสำหรับ task ทั้งหมดเช่น RTSI lines, PXI Trigger lines, DMA channels, counters ฯลฯ ก็จำถูกจำลองเพื่อให้สามารถทดสอบได้เสมือนมีอุปกรณ์จริงต่ออยู่นั่นเอง

    ซ. บันทึก NI-DAQmx Task

  3. ผู้ใช้สามารถสร้างโปรแกรมบันทึกข้อมูลได้ด้วยการใช้ NI-DAQmx Task ใน LabVIEW SignalExpressก. เปิดโปรแกรม SignalExpressข.เลือก Tools»Import NI-DAQmx Task from MAXค. รายการ tasks ใน MAX จะปรากฎขึ้น ให้ผู้ใช้เลือก task ที่ได้สร้างไว้ก่อนหน้านี้ (Task อุปกรณ์จำลอง)

    ง. การตั้งค่า task ควรกำหนดค่าเดียวกับใน MAX คลิก Run ในแถบเครื่องมือด้านบน


    ภาพประกอบ 9. รายการของ task จาก MAX

    การบันทึกข้อมูลเริ่มขึ้น ข้อมูลจากอุปกรณ์จำลอง NI-DAQmx จะแสดงผลบน Real Time Data viewer

    ฉ. คลิก Stop task


    ภาพประกอบ 10. การบันทึกข้อมูล SignalExpress LE โดยใช้อุปกรณ์จำลอง NI-DAQmx

  4. ใช้อุปกรณ์จำลอง NI-DAQmx ในโปรแกรม LabVIEW ในขั้นตอนนี้จะไม่มีการใช้ NI-DAQmx task ที่สร้างไว้ก่อนหน้า แต่จะใช้ reference จากอุปกรณ์และแชนแนลแทนก. เปิดโปรแกรม LabVIEWข. เปิด Example Finder โดยคลิก Help»Find Examplesค.ไปที่ Hardware Input and Output»DAQmx»Analog Measurements»Voltage  เลือก Cont Acq&Graph Voltage-Int Clk VI

    ง. ใช้ MAX ในการกำหนดหมายเลขอุปกรณ์สำหรับอุปกรณ์จำลองที่ผู้ใช้สร้างขึ้น โดยหมายเลขอุปกรณ์จะอยู่ในเครื่องหมายฟันหนู (“-“) ต่อจากรายการอุปกรณ์จำลอง NI-DAQmx ใน Device and Interfaces

    ภาพประกอบ 11. หมายเลขอุปกรณ์จะอยู่ข้างๆชื่ออุปกรณ์

    จ. เปลี่ยนค่าใน Physical Channel control เป็น Devx/ai0:4 โดย x คือหมายเลขอุปกรณ์จากขั้นตอนที่แล้ว แม้จะเป็นการใช้ Physical Channel control สำหรับตัวอย่างนี้ การแก้ไขเล็กน้อยจะทำให้ผู้ใช่สามารถใช้ task ที่สร้างไว้ก่อนหน้านี้ได้


    ภาพประกอบ 12. การอัพเดท Physical Channel control โดยใช้หมายเลขอุปกรณ์จำลอง NI-DAQmx

    ฉ. รัน VI


    ภาพประกอบ 13. การรับข้อมูลจากอุปกรณ์จำลอง NI-DAQmx ในโปรแกรม LabVIEW


สิ่งที่ควรพิจารณาในการใช้อุปกรณ์จำลอง NI-DAQmx

การอ่านข้อมูล

  • อุปกรณ์จำลองทั้งหมดจะแสดงค่าในรูปแบบของ Sine Wave ที่มีสัญญาณรบกวน 3%
  • หาก task ใช้หลายแชนแนล ข้อมูลของแต่ละแชนเนลจะถูก offset เล็กน้อย
  • Digital data จะแสดงเหมือนกันพอร์ท 8-bit ที่มีการ count up
  • Counter data จะมีค่าเป็น 0 เสมอ
  • อุปกรณ์จำลองจะไม่จำลอง timing ทำให้ผู้ใช้สามารถอ่านข้อมูลได้ตลอดเวลา

การเขียนข้อมูล

  • นอกเหนือจากข้อจำกัดในการตรวจสอบข้อมูล การเขียนข้อมูลลงอุปกรณ์จำลอง NI-DAQmx ไม่มีข้อจำกัดอื่น

Timing และ Triggering

  • อุปกรณ์จำลองที่สร้างขึ้นใน NI-DAQmx 7.4 – 8.1 จะไม่มีการจำลอง timing ดังนั้น task เขียนลงไปจะแสดงผลทันที
  • อุปกรณ์จำลองที่สร้างขึ้นด้วย NI-DAQmx 8.3 หรือใหม่กว่า จะมีการจำลอง timing task ทั้งเขียนและอ่าน จะทำการจำลองตามเวลาที่ใช้เสมือนกับมีอุปกรณ์จริงอยู่
  • อุปกรณ์จำลอง (ไดรฟ์เวอร์ทุกเวอร์ชั่น) จะไม่สามารถจำลอง trigger ได้โดยสัญญาณ trigger จะถูกแสดงผลกลับมาทันที
  • อุปกรณ์จำลอง NI-DAQmx จะไม่สามารถสร้าง software event หรือ สั่งให้ timed loop ทำงานได้
  • ไม่สามารถใช้งาน Watchdog กับอุปกรณ์จำลองได้

การใช้งานอุปกรณ์จำลองในส่วนอื่น ๆ ที่ไม่ใช่ Task

  • การทำ self-test, calibration และ reset จะสำเร็จเสมอ
  • ข้อมูลที่ปกติแล้วถูกเก็บในตัวอุปกรณ์จริง (physical device) เช่น serial number จะแสดงค่ากลับมาเป็น 0 เสมอ

อุปกรณ์เป็นคุณสมบัติจำลอง

หากต้องการดูว่าอุปกรณ์ที่ถูกเรียกใช้ในโปรแกรม เป็นอุปกรณ์จริง หรืออุปกรณ์จำลอง ให้ใช้  DeviceIsSimulated property ใน NI-DAQmx Device property node โดยการเลือก All Functions»NI Measurements»DAQmx»DAQmx Advanced»DAQmx System Setup แล้วหา property node หากเป็นอุปกรณ์จำลอง property นี้จะมีค่าเป็น true

ภาพประกอบ 14. การใช้ DeviceIsSimulated property เพื่อตรวจสอบว่า เป็นอุปกรณ์จำลองหรือไม่

การอิมพอร์ต Configuration ของอุปกรณ์จำลอง NI-DAQmx ไปที่ Physical Device

หากต้องการอิมพอร์ต Configuration ของอุปกรณ์จำลอง NI-DAQmx ไปที่ Physical Device ให้ผู้ใช้เข้าไปที่ Import and Export functions ใน MAX โดยการเลือก File»Export  และทำตามขั้นตอนเพื่อเอ็กซ์พอร์ตอุปกรณ์จำลอง NI-DAXmx ในรูปแบบไฟล์ .nce เพื่อบันทึกลงคอมพิวเตอร์ จากนั้นเลือก File»Import และทำตามขั้นตอนเพื่ออิมพอร์ตไฟล์ .nce ที่สร้างไว้ โดยการ อิมพอร์ต ข้อมูลนั้นจะทำได้ ก็ต่อเมื่อ อุปกรณ์จำลอง และอุปกรณ์จริง เป็นชนิดเดียวกัน เท่านั้น

การอิมพอร์ต Physical Device ให้กลายเป็นอุปกรณ์จำลอง NI-DAQmx

หากต้องการอิมพอร์ต Configuration ของอุปกรณ์จริงไปใส่ในอุปกรณ์จำลอง NI-DAQmx ให้ผู้ใช้เข้าไปที่ Import and Export functions ใน MAX โดยการเลือก File»Export  และทำตามขั้นตอนเพื่อเอ็กซ์พอร์ตอุปกรณ์จริงออกมาในรูปแบบไฟล์ .nce จากนั้นเลือก File»Import และทำตามขั้นตอนเพื่ออิมพอร์ตไฟล์ .nce ที่สร้างไว้ ผู้ใช้ควรตรวจสอบว่าได้กำหนดค่าของอุปกรณ์จริงให้เหมือนกับอุปกรณ์จำลองแล้ว

ทางเลือกเพิ่มเติมสำหรับการแปลงอุปกรณ์จริง และอุปกรณ์จำลองNI-DAQmx

สมมุติให้อุปกรณ์หมายเลข “Dev x”เป็นของอุปกรณ์จำลอง NI-DAQmx ส่วน “Dev y” เป็นอุปกรณ์จริง และทั้งสองเป็น DAQ ฮาร์ดแวร์โมเดลเดียวกัน  หลังจากทำการพัฒนา code ด้วย “Dev x,” ถ้าผู้ใช้มีความต้องการที่จะใช้อุปกรณ์จริง ให้เปลี่ยนชื่อของอุปกรณ์จริงเป็น “Dev x” และเปลี่ยนชื่อของอุปกรณ์จำลองเป็น“Dev y (หรือ z)”  application code จะคงไว้เหมือนเดิมไม่มีการเปลี่ยนแปลง แต่จะเป็นการใช้อุปกรณ์จริงแทนอุปกรณ์จำลอง

ข้อมูลเพิ่มเติมเกี่ยวกับ NI-DAQmx

นอกจาก NI-DAQmx ในบทความนี้แล้ว ยังมี ซอฟต์แวร์ และคุณสมบัติอื่น ๆ อีกหลายประเภท หากมีความสนใจ ผู้ใช้สามารถเข้าไปดูได้ที่ลิงค์ด้านล่างนี้

error: Content is protected...