บทนํา - WordPress.com · บล็อกบูลีน...

25
1 LabVIEW กับ Digital Signal Processing ตอนที 1 พีระพล ยุวภูษิตานนท์ ภาควิชาวิศวกรรมอิเล็กทรอนิกส์ มหาวิทยาลัยเทคโนโลยีมหานคร บทนํา การประมวลผลสัญญาณดิจิตอล หรือ Digital Signal Processing (DSP) นันนับเป็นเรื องที สามsารถ มองได้ทังในแง่วิชาการและทังในแง่ปฏิบัติ โดยในเชิงวิชาการนัน DSP จะพูดถึงการศึกษาหาความรู้ความ เข้าใจทางทฤษฎี และ โครงสร้างการทํางานของหลักการต่างๆ ซึ งโดยมากแล้วจะอยู ่บนพื นฐานทาง คณิตศาสตร์ เพื อให้มีความเข้าใจอย่างลึกซึ งและจะนําไปสู ่การสร้างอัลกอริธึมเพื อประยุกต์ใช้งานได้อย่างไม่มี ขีดจํากัด และถ้าจะพูดถึงซอฟท์แวร์สําหรับเรียนรู้ทฤษฎี DSP ที นิยมใช้มากที สุด ณ นาทีนี ก็คงจะต้องยกให้เป็น MATLAB และ Simulink อย่างแน่นอน โดยหากมองในเชิงความง่ายในการใช้งานแล้ว Simulink นัน จะได้เปรียบกว่า MATLAB อยู ่เล็กน้อย เพราะ ทุกๆ ฟ งก์ชันจะอยู ่ในรูป บล็อกไดอะแกรม (block diagram) รวมถึงการใช้บล็อกเป็นตัวแทนของเครื องมือแต่ละชนิด เช่น ฟ งก์ชันเจนเนอเรเตอร์ สโคป เป็น ต้น การลากสายเชื อมโยงระหว่างบล็อกแทนการเขียนโปรแกรมทําให้ Simulink มีความเหมาะสมมาก สําหรับการเรียนรู้ทฤษฎีทางวิศวกรรมแทบทุกสาขารวมถึงงานจําลองระบบจริงบนคอมพิวเตอร์ที เรียกว่ากัน ว่าการทํา Simulation ส่วนงาน DSP ในด้านปฏิบัติ อาจจะออกมาในรูปของการใช้ตัวประมวลผล ซึ งอาจจะเป็นคอมพิวเตอร์ PC ธรรมดาๆ ก็ได้ เพื องานเก็บข้อมูลจากการ์ด ( Data Acquisition), การวิเคราะห์สัญญาณทังทางเวลา และ ความถี หรือการดึงลักษณะสําคัญของข้อมูล (Feature Extraction), การเข้ารหัส (coding) และ ถอดรหัส (decoding), การลดขนาดข้อมูล (Compression) และ บางครัง ก็อาจจะเกี ยวข้องกับระบบ ควบคุม เช่น การส่งข้อมูลที ได้จากการประมวลผลไปสังงานมอเตอร์ หรือ หุ่นยนต์ ให้ทํางานตามที ต้องการ โดยอัตโนมัติ ดังนันหากเป าหมายคือการพัฒนาแอพพลิเคชันทางด้าน DSP ขึ นมาใช้งานจริงๆ แล้ว ซอฟท์แวร์ที จะใช้ พัฒนานันก็จะต้องมีอะไรมากไปกว่าความสามารถในการทํา Simulation เพียงอย่างเดียว เพราะเราคง ต้องการความสามารถในการแสดงหน้าจอที สวยงามให้เหมือนแอพพลิเคชันชันดี มีเมนูการตอบโต้กับผู้ใช้ที เรียกว่า Human Machine Interface หรือ HMI ที สะดวกและเข้าใจง่าย อีกทังมีฟ งก์ชันทาง DSP อยู ครบครัน ตัวซอฟท์แวร์ที จะใช้พัฒนานันก็จะต้องสามารถเชื อมต่อกับอุปกรณ์ที มีอยู ่หลากหลายมาตรฐานได้ อีกทังควรมีสภาพแวดล้อมในการพัฒนาที เหมาะสม เช่น ภาษาที ใช้ควรจะไม่ยุ่งยากจนต้องหลงพะวงไปกับ การแก้ไข syntax ที ซับซ้อน หรือ จะต้องอาศัยความชํานาญชันเลิศทางโปรแกรมมิง จนลืมว่าเป าประสงค์ที แท้จริงคือการพัฒนาแอพพลิเคชัน หากจะมีซอฟท์แวร์สักตัวหนึ งที ตอบโจทย์เหล่านี ได้ ซอฟท์แวร์ตัวนันก็น่าจะเป็น LabVIEW

Transcript of บทนํา - WordPress.com · บล็อกบูลีน...

1

LabVIEW กบ Digital Signal Processing ตอนท 1

พระพล ยวภษตานนท

ภาควชาวศวกรรมอเลกทรอนกส มหาวทยาลยเทคโนโลยมหานคร

บทนา การประมวลผลสญญาณดจตอล หรอ Digital Signal Processing (DSP) น )นนบเปนเร+องท+สามsารถมองไดท )งในแงวชาการและท )งในแงปฏบต โดยในเชงวชาการน )น DSP จะพดถงการศกษาหาความรความเขาใจทางทฤษฎ และ โครงสรางการทางานของหลกการตางๆ ซ+งโดยมากแลวจะอยบนพ)นฐานทางคณตศาสตร เพ+อใหมความเขาใจอยางลกซ)งและจะนาไปสการสรางอลกอรธมเพ+อประยกตใชงานไดอยางไมมขดจากด และถาจะพดถงซอฟทแวรสาหรบเรยนรทฤษฎ DSP ท+นยมใชมากท+สด ณ นาทน) กคงจะตองยกใหเปน MATLAB และ Simulink อยางแนนอน โดยหากมองในเชงความงายในการใชงานแลว Simulink น )นจะไดเปรยบกวา MATLAB อยเลกนอย เพราะ ทกๆ ฟงกชนจะอยในรป บลอกไดอะแกรม (block

diagram) รวมถงการใชบลอกเปนตวแทนของเคร+องมอแตละชนด เชน ฟงกชนเจนเนอเรเตอร สโคป เปนตน การลากสายเช+อมโยงระหวางบลอกแทนการเขยนโปรแกรมทาให Simulink มความเหมาะสมมากสาหรบการเรยนรทฤษฎทางวศวกรรมแทบทกสาขารวมถงงานจาลองระบบจรงบนคอมพวเตอรท+เรยกวากนวาการทา Simulation สวนงาน DSP ในดานปฏบต อาจจะออกมาในรปของการใชตวประมวลผล ซ+งอาจจะเปนคอมพวเตอร PC

ธรรมดาๆ กได เพ+องานเกบขอมลจากการด ( Data Acquisition), การวเคราะหสญญาณท )งทางเวลา และ ความถ+ หรอการดงลกษณะสาคญของขอมล (Feature Extraction), การเขารหส (coding) และ ถอดรหส (decoding), การลดขนาดขอมล (Compression) และ บางคร )ง กอาจจะเก+ยวของกบระบบควบคม เชน การสงขอมลท+ไดจากการประมวลผลไปส +งงานมอเตอร หรอ หนยนต ใหทางานตามท+ตองการโดยอตโนมต ดงน )นหากเปาหมายคอการพฒนาแอพพลเคชนทางดาน DSP ข)นมาใชงานจรงๆ แลว ซอฟทแวรท+จะใชพฒนาน )นกจะตองมอะไรมากไปกวาความสามารถในการทา Simulation เพยงอยางเดยว เพราะเราคงตองการความสามารถในการแสดงหนาจอท+สวยงามใหเหมอนแอพพลเคชนช )นด มเมนการตอบโตกบผใชท+เรยกวา Human Machine Interface หรอ HMI ท+สะดวกและเขาใจงาย อกท )งมฟงกชนทาง DSP อยครบครน ตวซอฟทแวรท+จะใชพฒนาน )นกจะตองสามารถเช+อมตอกบอปกรณท+มอยหลากหลายมาตรฐานไดอกท )งควรมสภาพแวดลอมในการพฒนาท+เหมาะสม เชน ภาษาท+ใชควรจะไมยงยากจนตองหลงพะวงไปกบการแกไข syntax ท+ซบซอน หรอ จะตองอาศยความชานาญช )นเลศทางโปรแกรมม+ง จนลมวาเปาประสงคท+แทจรงคอการพฒนาแอพพลเคชน หากจะมซอฟทแวรสกตวหน+งท+ตอบโจทยเหลาน)ได ซอฟทแวรตวน )นกนาจะเปน LabVIEW

2

LabVIEW เปนซอฟทแวรจากบรษท National Instruments ท+แรกเร+มน )น วางตวเปนซอฟทแวรสาหรบการพฒนาโปรแกรมควบคมเคร+องไมเคร+องมอและอปกรณทดลองในหองปฏบตการหรอในโรงงานอตสาหกรรม โดยจดเดนของ LabVIEW กคอ การเปนภาษาโปรแกรมม+งแบบกราฟฟก (Graphic

programming language) ท+สมบรณแบบ คอ ทกๆ ฟงกชนทดแทนดวยกราฟฟกท )งหมด ไมเหมอนกบชดพฒนาแอพพลเคชนอ+นๆท+ตองมภาษาโปรแกรมม+งแบบ text มารองรบ เชน Visual Studio จะเปน BASIC, C++ หรอ Delphi ท+เปน Pascal แตในปจจบนดวยความสามารถท+มากข)น LabVIEW จงถกมองวาไมใชเปนเพยงแคภาษาโปรแกรมม+งแบบกราฟฟกท+โดดเดนสาหรบเคร+องมอตางๆ เทาน )น แตกลบเปน “ชดพฒนาแอพพลเคชน” หรอ Application Tool ท+ชวยทาใหการพฒนางานซอฟทแวรสาหรบการใชงานจรงเปนไปไดอยางสะดวกรวดเรว โดยขอดของ LabVIEW ท+เดนๆ สาหรบงานปฏบตการ DSP

สามารถแยกแยะไดดงน) 1. มหนาจอ User Interface ท+งายตอการพฒนาโปรแกรม LabVIEW น )น จะมหนาจอท+ทาหนาท+ส+อสารกบผใชงานโดยเฉพาะ หนาจอน)เรยกวา Front panel โดยมกลมอปกรณท+เรยกวา “Control ” ใหเลอกใชมากมาย ซ+งจะชวยใหงานออกมาดเปนซอฟทแวรมาตรฐาน เชน ปมกดหลากหลายประเภท กราฟและชารต Ring text ท+สาคญกคอ การเลอก Control ในหนาจอ Front panel จะปรากฏบลอก Function ใน หนาจอ Block Diagram เพ�อการเขยนโปรแกรมในทนท! 2. การเขยนโปรแกรมเปนกราฟฟกสมบรณแบบและดบกงาย การเขยนโปรแกรมใน LabVIEW จะเปนแบบกราฟฟก ทาใหเขาใจงายโดยเฉพาะผท+คนเคยกบงานทางวศวกรรมท+จะอธบายระบบตางๆ ในรปของบลอกไดอะแกรมและสญลกษณอยเสมอ ขอดท+สาคญกคอ LabVIEW จะม ฟงกชนบลอกเฉพาะอยางท+ชวยรนระยะเวลาการพฒนางานลงไปไดมาก โดยฟงกชนบลอกจะทางานบนหนาจอ Block Diagram ซ+งหนาจอน)จะทางานรวมกบหนาจอ Front panel อยตลอดเวลา การทางานของโปรแกรมใน LabVIEW น )นใชหลกการท+เรยกวา การไหลของขอมลหรอ “Data Flow Programming” ทาใหการดบกโปรแกรมทาไดงายเพราะแตละข )นตอนการทางานจะแสดงเปนเสนทางเดนของลกบอลสแดงว+งไปตามเสนทางเช+อมตอระหวางบลอกเพ+อแสดง การไหลของขอมลในขณะน )น 3. การเช+อมตอกบอปกรณไดหลากหลาย LabVIEW สามารถ “ คย” กบอปกรณหลายชนดหลากย+หอไดอยางมากมาย ซ+งนบเปนจดดท+สาคญอกจดหน+งของ LabVIEW ฟงกชนบลอกท+ใหเลอกใชงานกบโปรโตคอลและมาตรฐานตางๆ มอยมากมาย เชน Serial, Parallel, GPIB, TCP/IP และ VISA กบ VXI รวมถงการใชสภาพแวดลอมท+เปน .NET,

และ ระบบฐานขอมล (Database) ดวย 4. มเคร+องมอชวยดาน DSP ใน LabVIEW ม Toolset เก+ยวของกบ DSP อยางครบครนไมวาจะเปน บลอกการสรางสญญาณ บลอกการทา Convolution, FFT, Digital Filter Design, Linear Algebra, Wavelet

3

Analysis, Joint Time-Frequency Analysis ทาใหงานท+เก+ยวกบการวเคราะหสญญาณน )นเปนไปไดอยางสะดวกรวดเรวมาก ดวยคณสมบตทกๆ ขอขางตนทาให เราสามารถใช LabVIEW มาพฒนางาน DSP ท+ใชไดจรง เชน ดงในตวอยางในรปท+ 1 ซ+งเปนตวอยางงานทาง DSP ท+ทาการสรางและวเคราะหสญญาณท+มหนาจอ HMI ท+สมบรณและสวยงาม

รปท� 1 ตวอยางของงาน DSP ท�พฒนาดวย LabVIEW

เรมตนใชงาน LabVIEW ในตอนน)จะขอแนะนาการใชงาน LabVIEW และ หนาจอตางๆ อยางพอสงเขปกอน เพ+อจะไดเขาใจพ)นฐานสาหรบผท+สนใจในรายละเอยดกคงจะตองศกษาเพ+มเตมจากเอกสารอางองทายบทความ เม+อเร+มตนใชงาน LabVIEW 8.2 เราจะพบหนาจอดงในรปท+ 2 ซ+งเม+อเสรจการ initialization แลว จะปรากฏหนาจอ Getting started ดงในรปท+ 3

4

รปท� 2 หนาจอของ LabVIEW 8.2

5

รปท� 3 หนาจอ Getting Started

ใน LabVIEW ต )งแต เวอรชน 8.0 เปนตนมา จะสามารถคอนฟกใหสภาพแวดลอมในการทางานเปนแบบ Project ซ+งเหมาะกบการทางานพฒนางานแอพพลเคชนขนาดใหญท+มไฟลท+เก+ยวของจานวนมาก ซ+งเปนรปแบบสภาพแวดลอมแบบเดยวกบ Visual Basic, Visual C++ หรอ บรรดา Visual ท )งหลาย แตสาหรบตอนน) เราเลอกการทางานบนรปแบบของ LabVIEW ไฟลท+อยในรปของ “ เคร�องมอเสมอน”

หรอ “Virtual Instrument ” หรอ VI โดยจากหนาจอ Getting Started เม+อเลอก New >>

Blank VI จะปรากฏหนา จอ Front Panel และ Block Diagram ของ VI ดงแสดงในรปท+ 4 Front panel น )นเปนเสมอนหนาตางท+ตอบโตกบผใชงานผานทางชดอปกรณท+มใหเลอกหลากหลาย เชนอปกรณคอนโทรล (Controls) เชน ลกบด, สวทซ, สไลเดอร, เรดโอบทตอน เปนตวรบคาจากผใช หรอ อปกรณแสดงคา (Indicators) เชน หลอดไฟ, มเตอร, เกจ, text box, กราฟ, ชารท และ อ+นๆ หนาจอท+ปรากฏข)นมาดวยกคอ หนาจอ Block Diagram ดงแสดงในรปท+ 5 น )นเปนหนาจอท+เราจะใชเขยนโปรแกรมโดยอาศยบลอกการทางานตางๆ ท+เรยกวาฟงกชน ซ+งถกแบงออกเปนกลมๆ ตามลกษณะของการทางาน เชน กลมโปรแกรมม+ง ท+มกลมยอยเชน บลอกคณตศาสตร เชน บวก,ลบ,คณ,หาร กลมบลอกบลน กลมบลอกเปรยบเทยบ และกลมบลอกโครงสรางโปรแกรม เชนการ For loop, While loop หรอ กลมบลอก Signal Processing ท+ เก+ยวของกบงาน DSP การเลอกดอปกรณท )ง คอนโทรล, อนดเคเตอร หรอ ฟงกชนบลอก วามอะไรบางน )น ทาไดงายๆ เพยงคลกเมาสป มขวา เทาน )น และเม+อพบอปกรณท+ตองการแลว กเพยงแคทาลากมาวางไวในหนาจอท+ตองการเทาน )นกสามารถใชงานไดทนท

6

รปท� 4 หนาจอ Front Panel และชด Controls

7

รปท� 5 หนาจอ Block Diagram และชด Functions

ในแงการทางาน DSP น )น LabVIEW ไดตระเตรยมเคร+องมอการทางานดาน DSP ไวอยางครบครนในรปของเคร+องมอชวยหรอ Tools ซ+งอยในบลอกฟงกชน Signal Processing ซ+งรวบรวมฟงกชนท+จาเปนท )งในดานโดเมนเวลา เชน Waveform generation ต )งแต สญญาณมาตรฐานซายน จนกระท +งสญญาณท+เปนมลตโทน (multitone), Waveform Measure เชน การวดคาเฉล+ย คาทรานเช)ยนต ของรปคล+น และ ฟงกชนในโดเมนความถ+ เชน การ หาเพาเวอรสเปคตรม, การแปลงฟรเยร การทาตวกรองดจตอลสารพดแบบ ตวอยางแสดงดงในรปท+ 6

8

รปท� 6 แสดงฟงกชนบลอก Signal Processing

แตในบทความตอนน) เรามาลองดการใชงาน LabVIEW เพ+องานทางดาน DSP ดวยตวอยางการทางานแบบงายๆ กนกอน คอการทางาน arithmetic ของตวเลขสองจานวน

การสราง VI เบ �องตน ในตวอยางงายๆ เบ)องตน สาหรบการใชงาน LabVIEW กคอตองการ VI ท+ทาหนาท+บวกเลขสองจานวนคอ A, B พรอมท )งแสดงผลลพท C ออกทางหนาจอดวย ดงน )นส+งท+เราตองการกคอ VI ท+ทาสมการ A+B =C การรบคาตวเลขจากหนาจอจะตองใช Control ท+เปน Numeric สวนการ แสดงผลจะตองใช อนดเคเตอรท+

เปน numeric เชนกน โดยเราเลอกตวคอนโทรลแบบ numeric คอ จาก Numeric >>

Numeric Control แสดงรปท+ 7

9

และเม+อวาง ลงใน Front panel แลวจะปรากฏฟงกชนบลอก ในหนาจอบลอกไดอะแกรม ดงรปท+ 8

รปท� 7 Numeric Control จาก Controls

10

รปท� 8 Front panel เม�อวาง Numeric Control และ ฟงกชนบลอกในหนาจอ Block Diagram

จากน )นทาซ)าอกคร )งสาหรบ numeric control อกหน+งตวสาหรบตวแปร B แตสาหรบผลลพท C น )นเรา

จะใช อนดเคเตอร โดยเลอกเปนบลอก หลงจากน )นกทาการเปล+ยน label ของท )ง numeric

control และ indicator ใหเปนตวอกษรท+มความหมายเชน A, B และ C เพ+อท+โปรแกรมจะทางานใหเปนตามสมการ A+B=C ซ+งทาไดโดยการคลกท+ label แลวเปล+ยนเปนตวอกษรท+ตองการ

ตอไปกเลอกฟงกชนการบวก ไดจาก Functions>> Numeric >> Add

11

รปท� 9 Numeric Control และ Indicator

รปท� 10 ฟงกชน Add จาก Programming

จากน )นนาฟงกชน ไปวางไว ในหนาจอบลอกไดอะแกรม ซ+งจะเปนสวนของการเขยนโปรแกรมของเรา จากน )นทาการลากสายเช+อมตอระหวางบลอกท )งหมด ใหดสวยงามเปนระเบยบดงในรปท+ 11

12

รปท� 11 หนาจอ Block Diagram เม�อเช�อมตอสายระหวางบลอกเรยบรอย

เทาน) เราจะได VI ท+เสรจสมบรณแลว! โดย VI ท+ไดน)คอโปรแกรมท+ทาหนาท+บวก A และ B เพ+อจะไดคา

ผลลพทเปน C การรนโปรแกรมกเพยงแตคลกปม Run หรอ ระบบกจะทาการบวกให โดยผใชสามารถเปล+ยนแปลงคาของ A และ B ได จากคอนโทรล A และ B ซ+งสามารถใสคาลงในชองไดโดยตรงหรอ การกดเล+อนคาจากปมลกศรจากตวคอนโทรล จากน )น save โดยใชช+อโปรแกรมวา “simple.vi” โดยในหนาจอ Front panel น )นเราสามารถตกแตงเพ+มเตม เพ+อใหเกดความสวยงามแตท+สาคญกคอควรตกแตงเพ+อใหเกดความงายแกการใชงาน หรอ ใหผใชงานเขาใจไดทนทวาโปรแกรมมหนาท+อะไร ตวอยาง เชน การใส “+” และ “=” ทาใหดแลวเขาใจทนทวาโปรแกรมทาหนาท+บวกเลขสองจานวน

13

รปท� 12 หนาจอ “simple.vi” ท�ตกแตงเพ�อใหสวยงามและเขาใจไดงาย

การรนโปรแกรมสามารถทาไดโดยกดปมไอคอน หรอ กด ctrl+R โดยเราสามารถทดลองรน “simple.vi”ไดทนท พรอมกบทดลองเปล+ยนคา ของ A และ B เพ+อดผลลพท C

ขณะโปรแกรมกาลงรนอย ไอคอน จะเปล+ยนรปรางเปน และหากตองการใหหยดการรน กจะตองคลกท+ปม STOP ( ) แตตอนน)การรนโปรแกรม จะเกดข)นเพยงคร )งเดยว หรอ รอบเดยว หากตองการ

ใหโปรแกรมสามารถรนไดตอเน+อง กจะตองเลอก โปรแกรมจะรนตอเน+องไดหากม การเขยนตวควบคมการรน เชนการใส While loop ดงแสดงในหวขอถดไป

เพม While loop

หากเราตองการใหโปรแกรมสามารถรนไดอยางตอเน+อง น )นเราใชบลอกท+ทาหนาท+คอนโทรลการรน โดยสวนมากเราใช While loop ซ+งมความหมายวาเปนการ “รนโปรแกรมไปจนกวาจะพบเง�อนไขการหยดท�ถกตอง” การเง+อนไขการหยดท+วาอาจจะเกดจากการทางานของโปรแกรมเอง หรอจากการรบคาส +งจากผใชงาน เชนการกดปมยกเลกการทางาน

บลอก While loop ใน LabVIEW จะใชไอคอนเปน จาก Programming >>

Structures>> While Loop ในโปรแกรมท+เปน Text ท )งหลายจะใช “While” และ “end” ครอบสวนของโปรแกรมท+ตองการ หรอ While [เง+อนไข] [โปรแกรม] end วธการใช While loop ใน

14

LabVIEW กคอการใชบลอก ครอบลงไป ในสวนบลอกท+เราตองการเชนเดยวในการเขยน

โปรแกรมแบบ Text น +นเอง ดวธการใส ใน VI ไดจากรปท+ 14

รปท� 13 การเลอก While loop

15

รปท� 14 การใส While loop

แตในรปท+ 14 สงเกตวา หากเราไมใสเง+อนไขการหยดทางาน ใหกบ While loop แลวละก จะเกด ความ

ผดพลาด หรอ Error ข)นท+แสดงดวยไอคอน ซ+งหากเราคลกเขาไปด LabVIEW จะแสดงเหตผลของ Error ท+เกดข)น โดย Error ในตอนน)กเพราะเน+องจากตวแสดงเง+อนไข Loop condition ท+แสดง

ดวย น )น ยงไมไดรบการกาหนดเง+อนไข หนาจอแสดง Error จะอยในรปท+ 15 การแกไข error น) กเพยงแคใส Control เพ+อแสดงเง+อนไขการทา While loop ซ+งเราเลอกเปนปมกดตด

ปลอยดบช+อ Stop ท+ไดมาจาก Control >> Boolean >> Stop Button ดงใน รปท+ 16

จากน )นเรากจะลากบลอก ซ+งเปน Boolean น )น ลงมาในสวนของ Front panel แลวลากสายให

เช+อมตอกบเง+อนไขยกเลกการทา While loop

Error

16

รปท� 15 หนาจอแสดงรายการ Error

Error เพราะเง+อนไขไมไดถกลากสาย

รายละเอยดของ Error

17

รปท� 16 Stop button

18

รปท� 17 simple.vi ท�ม while loop ท�มเง�อนไขการหยด

เทาน)เรากจะไดโปรแกรมการบวกท+สามารถรน เรยบรอยแลว เม+อกดปม กจะปรากฏการรนตอเน+อง

ข)น จนกวาจะยกเลกดวยการกดปมยกเลก หรอ stop บนเมน สงเกตวา ในรปท+ 17 น )น จะปรากฏวามบลอกการต )งเวลาการทางานใน while loop ดวย โดยมสญลกษณ

ของฟงกชนบลอกเปน บลอกน)ไดมาจาก Functions>> programming>> Timing

>>Wait until next ms multiple สาเหตท+ตองใชบลอกต )งเวลากคอวา ใน While loop น )นจะทางานตอเน+องจาก loop เกา ไป loop ถดไปโดยไมมชวงหยดพก ซ+งจะทาใหโปรแกรมน)จองเวลาของ

19

CPU เตมท+จนไมมเวลาไปทางานอ+นๆ ไดเลย ดงน )นจงควรจะมสวนของการต )งคาหนวงเวลาของการวนแตละ loop ดวย โดยการต )งเวลาทาไดจาก การใสอนพทเปนคาคงท+ซ+งมบลอกเปน โดยมหนวย มลลวนาท

ซ+งเขยนเปนชดบลอกท+จะเปนมาตรฐาน เชน น )นหมายความวา เราต )งคาใหมการรอเปนเวลา 200 มลลวนาท กอนท+ loop ถดไปจะเร+มทางาน

เพมตวเลอกดวย Case structure ตอนน)เราจะทาใหโปรแกรม LabVIEW ท+ช+อวา simple.vi น)สามารถทา operation ทางคณตศาสตร ไดมากกวาเพยงแคการบวกกคอใหมการลบ (subtract) และ การคณ (multiply) ดวย โดยผใชงาน หรอ user สามารถปรบเปล+ยน operation ท+ตองการ ระหวางการบวก การลบ การคณ ไดจากหนาจอโดยตรง การท+เรากาหนดใหผใชงานเปนผท+เลอกวาจะใช operation ใดน )น กคอการท+ตองมกรณการเลอกไวดวย ซ+งในท+น)เราใชการเลอก “กรณการทางาน” หรอ case structure ซ+งเปนตวเลอก วธการ operation

ระหวาง A และ B ใน LabVIEW จะใช ตว case structure เปนตวเลอกการทางาน โดยเลอกจาก Programming

>>Structures>> Case Structure การเลอกใช กทาเชนเดยวกบการทา While loop โดยเลอก ให case structure น) ครอบโปรแกรมสวนท+ตองการ ซ+งในท+น)กคอเฉพาะสวนฟงกชนการบวก

ซ+งเม+อเพ+ม case structure แลวเราจะได VI ท+มลกษณะดงรปท+ 18 สงเกตวา case structure น )น

มการรบคาเง+อนไขผานทางจดเขาของ Case structue ซ+งแสดงดวยเคร+องหมาย คาถาม โดยคาดฟอลตจะเปน Boolean ซ+งหมายถงคา True -False แตสามารถเปล+ยนให case structure น)รบเง+อนไขเปนแบบหมายเลข เชน 0, 1 ,2 … ได ข)นกบชนดของ Control

20

รปท� 18 การเพ�ม Case structure

เน+องจากโครงสรางของ Control ท+เราใชเปนการเลอก การบวก คณ และลบ เรา จะใชตวเลอกท+เรยกวา

Text ring box ซ+งใหการตอบสนองตอการเลอก ring เปน numeric จะไดจาก Control >> Moderns >> Ring & Enum >> Text Ring

เง+อนไขของ case

21

รปท� 19 หนาจอเม�อใส Text ring แสดง operation

ซ+งเม+อเราคลกขวาท+ Text Ring และเลอก Edit Items เพ+อใสคาแทนความหมายของ Ring โดยการกาหนดคาตวเลข (value) เปน 0, 1 และ 2 สาหรบ Add, Multiply และ Subtract ตามลาดบ เพ+อนาไปเปนเง+อนไขการทางานของ case structure การกาหนดพารามเตอรแสดงในรปท+ 20

เม+อกาหนดพารามเตอรให Ring แลวการลากสายจากบลอก ท+ใหเอาทพทเปน numeric เขา

ท+ case structure ณ จด จะเปล+ยนเง+อนไขการรบคาของ case structure จาก boolean

เปน numeric โดยอตโนมตดงแสดงในรปท+ 21

22

รปท� 20 การกาหนดพารามเตอรของ Text Ring

23

รปท� 21 การเช�อมสายของ Text ring เขากบ Case structure

สงเกตวาตอนน) Add เปน case “1” ซ+งเราสามารถจดโครงสราง case น) ใหเปน case “0” หรอ “default” ไดโดยการคลกขวาท+ case น) แลวใชเมน Make this case 0, default ตอนน)เรามการรบ operation เพยงแคกรณ operation การ Add เทาน )น เรายงตองทาการเขยนโปรแกรมเพ+มในสวนท+เปนกรณของการคณและ การลบดวย แตเน+องจากวาในขณะน) Case structure มอยเพยง 2 กรณสาหรบคาอนพทท+เปน 0 (add) และ 1 (multiply) เทาน )น เรายงตองการเพ+มอก 1 case

สาหรบการรบคา 2 (subtract) อกดวย การเพ+มจานวน case น )นกไมไดยากเยนอะไร เราจะใชการคลกขวาท+ case แลวเลอก เมน Add Case

After เทาน)กจะได case เพ+มข)นเพ+อรองรบกรณของการ subtract แลว แตเม+อคลกดใน case ท+ 1 และ 2 น )น จะพบวายงไมมการสราง operation ใดๆ เลย แตเรากสามารถสราง operation รองรบในท )งสอง

case น)ไดงายๆ โดยการเพ+มบลอก และ สาหรบ case 1 และ case 2 ตามลาดบ จากน )นทาการ

เช+อมโยงสายอนพทและเอาทพทเชนเดยวกบท+ทากบบลอก ในกรณ case 0 ดงในรปท+ 22 เพยงเทาน)โปรแกรม simple.vi กสามารถรบคาการเลอกจากผใชงานไดแลว จากน )นเราอาจจะทาการตกแตงหนาตาของโปรแกรมใหดสวยงาม โดยอาศยเคร+องมอในชด Controls>> Decorations ไดตามใจชอบ และเม+อเสรจแลวกจะได simple.vi ท+เสรจสมบรณและหลงจากรนโปรแกรม กจะเปนดงในรปท+ 23

24

(a) (b)

รปท� 22 (a) case 1 สาหรบการ multiply (b) case 2 สาหรบ การ subtract

รปท� 23 โปรแกรม “simple.vi” ท�เสรจสมบรณ

25

สรป ในบทความน) เราพบวา LabVIEW น )นเปนชดพฒนาแอพพลเคชน ท+มความสามารถในการแสดงหนาจอท+สวยงาม มเมนการตอบโตกบผใช HMI ท+สะดวกและเขาใจงาย อกท )งมฟงกชนทาง DSP อยครบครน สวนตวอยางในบทความน)เราใช LabVIEW สรางโปรแกรมพ)นฐานอยางงายๆ เพ+อใหเหนวธการใชงานเพ+อเปนพ)นฐานสาหรบการใช LabVIEW ในการทางาน DSP ท+ซบซอนมากข)นในตอนตอๆไป ผอานทานใดสนใจไฟล VI โปรแกรม LabVIEW ท+ใชในบทความน)หรอมคาถามและขอแนะนาใดๆ สามารถตดตอผเขยนไดท+ [email protected]

เอกสารอางอง 1. เอกสาร “Getting Started with LabVIEW” สามารถดาวนโหลดไดจาก http://www.ni.com/pdf/manuals/373427a.pdf