อิติ สุคะโต, อะระหัง พุทโธ, นะโม พุทธายะ, ปะฐะวี คงคา พระภุมมะเทวา ขะมามิหัง|WE LOVE OUR KING
Loading...
01 สอน LabView DataFlow ประเภทของข้อมูล Data Type 2017-10-25T01:54:34+00:00

ประเภทของข้อมูล Data Type

LabView คือ เครื่องมือตัวหนึ่งสำหรับพัฒนา VI โดยเฉพาะ ซึ่งจุดเด่นของการพัฒนาด้วย LabVIEW จะแตกต่างกับซอฟต์แวร์ตัวอื่นตรงที่การใช้รูปภาพเขียนโค้ด 

labview

dataflow

Dataflow

หลักการทํางาน (execution) ของ LabVIEW ซึ่งเป็นภาษาแบบกราฟิกจะมีข้อแตกต่างจากภาษาที เป็นตัวหนังสือ อย่างเช่นภาษาซี ที่มีการ execute ที่ละบรรทัดจากบนลงล่าง แต่ LabVIEW จะมีการ ทํางานแบบ Dataflow ซึ่งก็คือจะทํางานเป็น Node ซึ่งเราอาจเปรียบเทียบได้ว่าหนึ่ง Node ใน VI เทียบเท่ากับโค้ดหนึ่งบรรทัดในภาษาซี 

“Node ใดๆ จะทำงานก็ต่อเมื่อ Node นั้นมีข้อมูล input ครบทุกตัว”

ให้ลองพิจารณาดูตัวอย่าง WI ในรูปนีว่ามีจํานวนกี่ Node และลําตับ Node ใตจะทํางานก่อน ?

node

จะเห็นได้ว่ามีอยู่สี่ Node การบวก, การคูณ, Random Number และการเปรียบเทียบ (เครื่องหมายมากกว่า) และถ้าพิจารณาจากหลักการ Dataflow ข้างต้น, Node ที่มีinput ครบและพร้อมที่จะทํางานได้เลยเมื่อรันโปรแกรมมีอยู่สอง Node คือ การบวก และ Random Number  ซึ่งสองตัวนี้จะทํางานพร้อมกัน แต่ว่า Node ที่จะทํางาน ก่อนไม่ได้เลยก็คือ การคูณและการเปรียบเทียบเพราะจําเป็นต้องรอผลลัพธ์จาก Node ก่อนหน้านั้น

ประเภทของข้อมูล (Data Type)

ในการเขียนโปรแกรมทั่วๆ ไปจะต้องมีการประกาศตัวแปร (declare) ก่อนที่จะใช้ตัวแปรนั้น สําหรับ LabVIEW เราใช้วิธีเลือกประเภทของข้อมูลมาวางบนโค้ด ประเภทของข้อมูลใน LabVIEW มีหลายอย่างที่ใช้เหมือนกับในภาษาอื่นๆ ในที่นีขอยกตัวอย่างประเภทข้อมูลในเบี้องต้น คือ

1. Numeric คือข้อมูลประเภทต้วเลข เมื่อเราสร้าง Numeric Control/Indicator/Constant VI ขึ้นมา ค่า เรื่มด้นเดิม (default) ของม้นจะเป็นศูนย์ข้อมูลแบบ Numeric มีทั้งประเภทจำนวนเต็มซึ่งไอคอนและ สายใน Block Diagram จะเห็นเป็นสืนํ้าเงิน และประเภทจำนวนที่มีทศนิยมซึ่งจะแสดงเป็นสีส้ม ว่าการเปลี่ยนประเภทของตัวเลข ให้คลิกขวาที่ Numeric Control/Indicator/Constant (บน Front Panel หรือ Block Diagram ก็ได้) แล้วเลือก Representation และเลือกประเภทตัวเลข ได้เลย

labiview data type

ซึ่งแถวบนจะเป็นตัวเลขประเภททศนิยม (จำนวนจริง) แถวสองคือเลขจำนวนเต็ม (integer) แถวสาม คือจำนวนเต็มแบบไม่มีเครื่องหมาย (unsigned integer) และแถวล่างสุดคือจำนวนเชิงช้อน (complex number)

สำหรับผู้ที่ไม่เคยเขียนโปรแกรมมาก่อน เบื้องต้นแนะนำว่าถ้าต้องการใช้ตัวเลขแบบมีทศนิยมให้เลือก DBL (Double Precision) และถ้าต้องการจำนวนเต็มให้เลือก I32 (Long) ไปก่อน ส่วนการกำหนดค่า ต่าง ๆ ของ Numeric Control/lndicator อย่างละเอียด เช่น การแสดงจำนวนจุดทศนิยม ค่าสูงสุด ตํ่าสุด ฯลฯ ให้เลือกที่เมมู Properties ซึ่งจะมีหน้าต่างสำหรับให้ปรับแต่งรายละเอยดของ object นั้น

2. Boolean คือข้อมูลประเภทที่มีสองค่า คือ TRUE และ FALSE ค่า default เดิมของมันคือ FALSE. สำหรับบน Block Diagram จะแสดงสีของไอคอนและสายของข้อมูลประเภทนี้ด้วยสีเขียว และสำหรับ บน Front Panel ตัว Boolean Control จะมืคุณสมบัติสวิตซ์ (Mechanical Action) ซึ่งก็มีหลาย ประเภท วิธีเปลี่ยนโหมดของสวิตซ์ให้คลิกขวาที่ Boolean Control บน Front Panel แล้วเลือก Mechanical Action ชึ่งจะมีอยู่ 6 รูปแบบ

mechanical action

Switch When Pressed คือสวิตซ์แบบกดติด-กดดับ

Switch When Released คือกดติด-กดดับเหมือนกัน แต่จะมืผลเมื่อปล่อยมือแล้ว

Switch Until Released คือกดติด-ปล่อยดับ

Latch When Pressed สวิตซ์จะเปลี่ยนค่าทันทีเมื่อคลิก แล้วจะเด้งกล้บเป็นค่าเดิมเองเมื่อ โปรแกรมรับรู้ ถืงแม้ว่าจะย้งไม่ปล่อยมือก็ดาม

Latch When Released หลังจากกดแล้วสวิตซ์ จะเปลี่ยนค่าก็ต่อเมื่อปล่อยมือ แล้วเด้งกลับ เป็นค่าเดิม

Latch When Released หลังจากกดแล้วสวิตช์จะเปลี่ยนค่าก็ต่อเมื่อปล่อยมือ แล้วเด้งกลับ เป็นค่าเดิมอีกทีเมื่อโปรแกรมรับรู้

Latch Until Released คล้ายกับกดติด-ปล่อยดับ แต่จะมีการรอให้โปรแกรมอ่านค่าตอน ปล่อยมือก่อน แล้วเปลี่ยนกล้บเป็นค่าเดิม

ทดลองเล่นแต่ละแบบดูได้โดยคลิกขวาที่ Boolean Control แล้วเลือก Properties แล้วเลือกแท็บ Operation และทดลองกับปุ่มตัวอย่างบนส่วน Preview Selected Behavior

mechanical mode

TIP: ปุ่มต่าง ๆ ที่ใช้บน Windows อย่างปุม OK, Cancel และ Help พวกนี้มี Mechanical Action เป็นแบบ Latch when released ทั้งสิ้น ซึ่ง Mechanical Action แบบนี้จะถูกใช้ใน dialog ต่าง ๆ บ่อยมาก

3. String คือข้อมูลที่เป็นตัวอักษร ค่า default คือ ว่างเปล่า (empty string) ไอคอนและสายของ String จะเป็นสืขมพู สำหร้บการแสดงผลของ String บน Front Panel หรือบน Block Diagram (กรณี ที่เป็น String Constant) จะมีอยู่สี่รูปแบบ

  • Normal Display คือการแสดงผลแบบปกติ
  •  ‘V Codes Display คือการแสตงผลแบบ \ โตัด มีประโยชน์สำหรับปัอนตัวอักษรบางตัวที่เรา พิมพ์โดยตรงไม่ไตั หรือแสดงตัวอักษรที่เรามองไม่เห็น เช่น การเข้นวรรค (\s) แทีบ (\t) หรือตัว ขึ้นบรรทัดใหม่ (\n) เป็นตัน
  • Password Display จะแทนตัวอักษรตัวย เครื่องหมายดอกจัน
  • Hex Display แลดงผลเป็นรหัส ASCII ตัวยเลขฐานสิบหก

string

การเปลี่ยนรูปแบบการแสดงผลของ String Control/lndicator ให้คลิกขวาที่ String บน Front Panel แล้วเลือกเปลี่ยนเป็นแบบที่ตัองการจากเมมูไตัทันที สำหรับ String Constant ให้คลิกขวาบน Block Diagram

ในการเขียน่โค้ด เราอาจพิจารณาใส่สัญลักษณ์ radix กำกับไว้บน String Constant เที่อระบุวิธีการ แสดงผลและป๋องกันการสับสนเวลาอ่านโค้ดวิธีการคือให้คลิกขวาที่ String แล้วเลือก Visible Items » Display Style

string

4. Enum คือข้อมูลประเภทที่แสดงให้ผู้ใช้เห็นเป็นดัวหนังสือ แด่ค่าจริงของมันคือดัวเลขจำนวนเต็ม ดังนั้นบน Block Diagram เราจึงมองเห็น Terminal และสายของข้อมูลประเภทนี้เป็นสีนั้าเงินซึ่ง เหมือนกับจำนวนเต็ม วิธีการสร้าง Enum Control คือให้เลือกมาจาก Controls Palette: Modem » Ring&Enun » Enum แล้ววางลงไปบน Front Panel แล้วคลิกขวาและเลือก Edit Items… จากนั้นที่ หน้าด่าง Enum Properties ก็ให้พิมพ์ดัวหน้งลือตรงคอล้มน์ช้าย (Items) ซึ่งจะไปจับคู่ก้บตัวเลขทาง คอลัมน์ขวา (Digital Display)

enum

ซึ่งแต่ละไอเทมชื่อต้องไม่ชํ้ากันและถ้ามีใอเทมใดถูกเว้นว่างไว้กีให้ลบทิ้งให้เรียบร้อย เมื่อสร้างเสร็จก็ สามารถใช้งานได้ทันทัโดยใช้เม้าสํเลือก

enum

Enum มีประโยชน์สำหรับการสร้าง Control ที่ต้องการจำกัด input ไม่ให้ผู้ใช้ใส่ข้อมูลอย่างอื่นนอกจากที่กำหนด

TIP: ในกรณีที่ต้องการสร้าง Control ให้มีเมนูให้เลือกแบบ Enum แต่ยังอนุญาตให้ผู้ใช้พิมพ์ ข้อความอย่างอึ่นเเข้าไปเองด้วย ให้พิจารณาใช้ Combo Box ซึ่งเป็นข้อมูลแบบ String แทน (เลือกจาก Controls Palette: Modern » Siring & Path » Combo Box)

5. Dynamic (DDT) เป็นข้อมูลที่อยู่ในรูปฃองสัญญาณเวฟฟอร์ม สายบน Block Diagram ถูกแสดง ด้วยสีนี้าเงินเข้ม เส์นใหญ่ ซึ่งภายในประกอบด้วยข้อมูลหลายอย่าง เซ่น Array ของเวฟฟอร์ม, Time Stamp ของสัญญาณ ฯลฯ ข้อมูลประเภท DDT นี้ส่วนใหญ่ใช้ใน Express VI สำหรับการอ่าน, กำเนิด และวิเคราะห์สัญญาณ เป็นด้น

DDT

สายข้อมูลแบบ DDT สามารถส่งข้อมูลหลาย ๆ ชาแนลได้ในเส์นเดียวโดยการ merge สัญญาณหลาย ช่องเช้าด้วยกัน เครี่องมือต่าง ๆ สำหรับการจัดการดัดแปลงแกํไขข้อมูลแบบ DDT จะอยู่ใน Functions Palette: Express » Signal Manipulation ดังนี

DDT

ยกตัวอย่างเครึ่องมือใน Signal Manipulation ที่ใช้บ่อยได้แก่

  • Merge Signals: ใช้ในการรวมสัญญาณหลายชาแนลเช้าไว้ในเสันเด้ยวกัน เช่นใช้ในการ พลอตหลายสัญญาณในกราฟเด้ยวกัน
  • Split Signals: ใช้ในการแยกสัญญาณ
  • Sample Compression: ใช้สำหรับลดปริมาณจำนวน sample ของสัญญาณเวฟฟอร์ม
  • From DDT: ใช้เปลี่ยน DDT ให้เป็นช้อมูลแบบปรกติ เช่น เปลี่ยนเปีน Numeric, Array. ฯลฯ ตามชนิดของข้อมูลนั้น ๆ เพี่อนำ’ไปใช้ในส่วนที่ไม่ใช่ Express VI
  • To DDT: ใช้แปลงข้อมูลแบบปรกติให้เป็น DDT เพี่อน่ากสับไปใช้ใน Express VI

Merge Signals

6. Time stamp เป็นช้อมูลที่ประกอบด้วยวันที่และเวลาที่มีความละเอียดถึงมิลลิวินาที  LabVIEW คำนวณ Time Stamp โดยนับเป็นจำนวนวินาทีที่เริ่มตั้งแต่เที่ยงคืนวันที่ 1 มกราคม ค.ศ 1904 ในเวลา มาตรฐาน หรือ UTC ( เวลาในประเทศไทยเร็วกว่า UTC เจ็ดชั่วโมง ) แล้วนำมาแปลงเป็นรูปแบบวันที่ และเวลา ยกตัวอย่างเช่น ถ้าแปลงตัวเลข 3.4 พันล้านด้วยฟังก์ชัน To Time stamp ตังในภาพ วิธีคิดให้เริ่มนับจากเที่ยงคืน UTC วันที่ 1 มกราคม 1904 ไป 3.4 พันล้านวนาที ผลล้พธจะได้เป็นวันที่ 28 กันยายน ค.ศ. 2011 เวลาในประเทศไทย 3:26:40 นาฟักา ตังนี้

time stamp

Time Stamp ยังสามารถนำมาแปลงให้เป็นวันที่และเวลาในรูปแบบ String ได้ด้วยฟังก์ชันใน Format Date/Time String ตังนี้

time string

7. Waveform เป็นข้อมูลที่ประกอบด้วยข้อมูลย่อยอีกสามรายการหลัก คือ

• Y: จุดของตัวเลขหลาย ๆ จุดประกอบเรียงกันเป็นเวฟฟอร์ม ซึ่งจะเรียกว่า Array
• dt: ข้อมูลที่ระบุว่าแต่ละจุดมีเวลาห่างกนโไวินาที
• t0 : ข้อมูลแบบ Time Stamp ที่ระบุว่าจุดแรกของซุดลัญญาณนี้ถูกสร้างขึ้นเมื่อวนเวลาใด

waveform

เราสามารถสร้าง Waveform ได้ด้วยบล๊อก Build Waveform ทีเรียกมาจาก Functions Palette: Programming » Waveform ดังนี้

waveform

MAHOSOT UNIVERSITY

MAHOSOT UNIVERSITY

MAHOSOT UNIVERSE
The Central Of Technology Training
100 Town in Town Rd. ,LadYaw
Jatujak , Bangkok 10900
PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZD9wYj0hMW0xOCExbTEyITFtMyExZDM4NzMuODY2ODc4MjE1NDAyMyEyZDEwMC41Njk2MTE0MTQ5MzQ4OCEzZDEzLjg0NzAyODI5MDI4NTg2MSEybTMhMWYwITJmMCEzZjAhM20yITFpMTAyNCEyaTc2OCE0ZjEzLjEhM20zITFtMiExczB4MzBlMjljZGUwNjAxMmI1NyUzQTB4ZjAxMDBiMzNkMGIzMTcwITJzS2FzZXRzYXJ0K1VuaXZlcnNpdHkhNWUwITNtMiExc2VuITJzdGghNHYxNTAwMzAxMTU1NTAyIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjowIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+
Thank You. We will contact you as soon as possible.
MAHOSOT UNIVERSITY
CONTACT US
The Central Of Technology Training
100 Town in Town Rd. ,LadYaw
Jatujak , Bangkok 10900
Thank You. We will contact you as soon as possible.