วันพฤหัสบดีที่ 15 พฤษภาคม พ.ศ. 2557

การเขียน Labview ในส่วนของ Array ทดสอบทำไฟ Array วิ่งไปมา


การเขียน Labview ในส่วนของ Array ทดสอบทำไฟ Array วิ่งไปมา

Step1 การสร้าง Array สามารถสร้างโดยการเลือก Tool มาใช้ได้เลย   หรือว่าใช้  Initialize Array ก็ได้เหมือนกัน โดย Initialize Array จะต้องกำหนด Dimension ที่ต้องการใช้งาน ว่ามีจำนวนเท่าไร และชนิดอะไร


Step 2 โจทย์ ในส่วนนี้ให้ทำ Array ชนิด Boolean และกำหนดให้เป็นชนิดหลอด LED ซึ่งจะให้ Boolean = True ไฟก็จะติด และเขียนโปรแกรมให้ไฟวิ่ง เป็นรูปตัว S
จากโจทย์ เราจะสรุปได้ว่า








รอบที่ 0 , 2 ไฟจะวิ่งจากซ้ายไปขวา แต่ 1,3 ไฟจะวิ่งขวาไปซ้าย
ซึ่งกำหนดได้ว่าจะ Process ได้สองส่วน
ส่วนที่ 1 คือไฟวิ่งจากทางซ้ายไปทางขวา
            ส่วนที่ 2 คือไฟวิ่งจากทางด้านขวาไปทางด้านซ้าย
โดยจะใช้วิธีการ นำ Row หารด้วย 2 ถ้าหารลงตัว ไม่มีเศษหมายถึง จะวิ่งจากทางซ้ายไปทางขวา

ใช้ For สำหรับ ปรับให้ไฟวิ่ง  แต่ใน Labview ไม่มี Function For Down จึงใช้ วิธี กำหนด ให้ N – I = ตัวเลขย้อนกลับหลัง

ซึ่งการเขียนโปรแกรมจะได้ดังนี้



และ





การเขียน Labview รับ Event ต่างๆ


การเขียน Labview รับ Event ต่างๆ


Setp 1.




ปกติ การ ใช้งาน While Loop โดยไม่มี การ Delay จำทำให้ Performance สูงมาก จากการทำลอง ท่าทำการ LOOP โดยไม่มีการ Delay อาจจะทำให้ CPU ทำงานมากกว่า 50 %  แต่เมื่อใส่ Delay แค่ 1ms จะทำให้ CPU Usage ทำงานเหลือเพียง 1 % เท่านั้นเอง

Step 2



ปกติ การทำงานต้องมีการ ดักจับ Event ต่างๆ ใน Labview ก็มีเหมือนกัน โดยสามารถเรียกใช้ Event ได้จาก


Step 3 เมื่อมีการเรียกใช้งาน ต้องระบุด้วยว่า จะมีการตรวจสอบ Event ที่กำหนด ทุกเวลาเท่าไร โดยกำหนดได้จาก




หากกำหนด เป็น -1 จำทำให้ไม่มีกำหนดช่วงเวลา ทำให้ คอมพิวเตอร์ทำการตรวจสอบ Evnet ทำงานงานหนัก

Step 4 ในการเพิ่อม Event ในการทำงาน
สามารถทำได้โดยการ คลิกขวา จากนั้นกดปุ่ม Add Event Case

โดยเลือก จะทำการตรวจสอบ จาก Control อะไร แล้ว Event อะไร เช่น เมาส์ คลิก หรือ  Mouse Enter คือ เมาส์อยู่บน Control ที่เรากำหนด Mouse Leave คือ เอาเมาส์ออกจาก ที่กำหนด



การเขียน Labview รับข้อมูลจาก Mouse หรือ Key Board

การเขียน Labview รับข้อมูลจาก Mouse หรือ Key Board

Step 01

การรับข้อมูลจาก  Key Board เพื่อตรวจสอบว่ามี Event การกด Key Board หรือ การ กด Mouse หรือไม่

Step 02



ต้องกำหนดก่อนว่าจะมีการ รับข้อมูล จาก Key หรือ Mouse โดยประกาศไว้นอก While Loop

โดยสำหรับ การตรวจสอบที่ Key Board ใน While Loop

สำหรับ Key Board ค่าทีได้ จะอยู่ในรุปแบบ ของ Table ซึ่งต้องถอดข้อมูลออกมาก่อน เป็น Array 1 ตำแหน่ง จากนั้นค่อยมาตรวจสอบว่ามีการ กด Space หรือไม่

สำหรับ Mouse จะเป็นการรับข้อมูลจาก Mouse ซึ่ง ผลลัพธ์ที่ได้ จะเป็น Bundle ซึ่งเปลี่ยนหมือน กล่อง 1 ใบ ที่จะบรรจุอะไร ก็ได้



เมื่อได้ข้อมูลชนิด Bundle ออกมาต้องใช้คำส่ง UnBundle ในการ ดึงข้อมูล ออกมา ซึ่งข้อมูล จะ Auto ตาม ข้อมูลข้างใน Bundle อยู่แล้ว โดย Mouse สิ่งที่ได้จกมี Axis info คือตำแหน่งข้อเมาส์ ปัจจุบัน ซึ่งจะอาศัยตาม Resolotion ของ Desktop และ Buntton info จะเป็นไปตาม กด ปุ่ม บน Mouse

และโดย ปกติ เมื่อผลลัพท์ที่ได้จะมาทำการ And หรือ OR ซึ่ง ต้องดึงมาทีละ 1 ตัว ซึ่งมี Input แค่ 2 เท่านั้น จึงมี


เมื่อได้ข้อมูลมา จะต้องคลิกขวา เลือก Mode ว่าเป็น And Or … ต่าง ๆ ก่อน จากนั้นกดขยาย เพื่อกำหนด Input จะทำงานเหมือนมี Gate หลายๆ ตัว ต่อกัน

การเขียน Labview ติดต่อ กับ Hardware ผ่าน Parallel Port

การเขียน Labview ติดต่อ กับ Hardware ผ่าน Parallel Port

Step 1 การติดต่อ Hardware โดยใช้ Parallel Port

          
            โดยใช้ Tool >  Connectivity > Port I/O
                                โดยแบ่งออกเป็น 2 ประเภท คือ  ส่งออก และ รับเข้า


            ในการส่งข้อมูล ต้องส่งเป็นข้อมูลเลข  ควรกำหนดให้ตัวเลขที่ส่งเป็น ตัวเลข ฐาน 16




ชนิดของตัวเลข จะมีกำหนด
  1. เป็น I8 I16 คือ กำหนดชนิดของ ตัวเลขให้เป็น 2 ^ 8 และมีเครื่องหมาย คือ สามารถติดลบได้
  2. เป็น U8 U16 คือ กำหนดชนิดของ ตัวเลขให้เป็น 2 ^ 8 และไม่มีเครื่องหมาย จึงเป็นได้แค่ค่าติด บวก เท่านั้น

ตัวอย่างการส่งข้อมูล  และ การ รับ เข้า








การส่งข้อมูล


การรับข้อมูล

Address คือตำแหน่ง ของ Hardware หรือ Parallel นั้นเอง สามารถหาได้จาก Device Manager

จากรูปจะทำให้ทราบถึงตำแหน่ง การส่ง ข้อมูล คือ D150 และ รับข้อมูล จะให้ บวก 1 เข้าไป นั้นคือ รับข้อมูลที่ D151 นั้นเอง


โดยรุปแบบ ของ Parallel นั้นคือ

เมื่อส่งข้อมูลจาก Labview ข้อมูลจกส่ง ผ่าน D0 – D7
และการรับจาก Hardware จะรับข้อมูล S3 – S7
ส่วน C0 – C3 ตามปกติ จะเป็นการสั่ง Printer แต่เราสามารถใช้ ในการ ส่งข้อมูลได้เหมื่อนกัน
สังเกตุ ในตำแหน่ง ที่มี Bar ด้านบน ต้องส่ง เป็นค่า ตรงข้าม เช่น 0 เป็น 1 เพราะมี Not Gate อยู่
สีเขียว คือ Ground











วันพุธที่ 30 เมษายน พ.ศ. 2557

เขียนโปรแกรมให้ Labview ติดต่อ Webcam และสามารถ Capture ภาพ เป็น ภาพขาวดำ

ทดสอบเขียนโปรแกรม Labview ติดต่อกับ Webcam

ซึ่งจะประกอบด้วย 3 ส่วน 
ส่วนมาก Tool ที่ใช้ อยู่ที่ Vision and Motion

ส่วนที่ 1 เมื่อมีการ รันโปรแกรม จะทำการติดต่อกล้องเว็บแคมที่เลือกตาม Device และให้ทำการ วน Loop ตรงกลาง เพื่อให้แสดงภาพแบบต่อเนื่อง

ส่วนที่ 2 เมื่อมีการกดปุ่มจะทำการนำ Image ที่ได้ จาก ส่วนที่ 1 มาแสดง และให้ผ่านกระบวนการ เพื่อให้ภาพเป็นภาพขาวดำ 

ส่วนที่ 3 นำภาพขาวดำสุุดท้าย แสดงเป็นกราฟ Histogram Graph


ผลลัพท์ดังภาพตัวอย่าง

วันจันทร์ที่ 28 เมษายน พ.ศ. 2557

เขียนโปรแกรมเชื่อมระหว่าง LabVIEW และ C# (Function คำนวน Cos) โดยสร้างไฟล์ .dll

เครื่องมือ
Visual Studio 2013
Labview 2012

ส่วนแรก สร้างไฟล์ .dll ใน Visual Studio

- เริ่มต้น สร้างโปรเจ็ค เป็นชนิด Class ใน Visual Studio ให้ใช้เป็น .Net Framework 3.5
-
- เปิดไฟล์ AssemblyInfo.CS ขึ้นมา ทำการแก้ไข Assembly Version ให้ค้นหา Version Automatically

- ทำการแก้ไขข้อมูล ตามที่ต้องการ
- ทำการลบ ที่ Visual Studio สร้างขึ้นมา
- เพราะว่า เราต้องการ เชื่อมต่อระหว่าง Labview กับ C# เพราะฉะนั้น เราต้องทำการเปลี่ยนแปลง
ผลลัพท์ ให้ Output Type = Class Library เราก็จะได้ไฟล์ .DLL ตอน Run โปรแกรม และเพราะในปัจจุบัน .Net Framework 4 ยังไม่เข้ากันได้กับ Labview จึงต้องเปลี่ยนมาใช้ .Net  3.5 แทน จากนั้นทำการแก้ไขชื่อต่างๆให้เรียนร้อย แล้วบันทึก

- ทำการสร้าง Class ขึ้นมา โดยการกด Add > New Item
- ทำการเขียน Source Code ขึ้นมา สำหรับคำนวณ ค่า Cos  แต่เนื่องจาก Class และ Method นี้โดนเรียกจากภายนอก จึงกำหนดให้เป็นชนิด Public ไว้
- ทำการ  Build Project  เราจะได้ ไฟล์ .dll ขึ้นมา ซึ่งจะอยู่ที่  Project Name \bin\Debug พร้อมสำหรับโปรแกรม Labview เรียกใช้งาน 

ส่วนที่ 2 จะเป็นการสร้างไฟล์ Labview ติดต่อกับ C#

- สร้าง โปรเจ็ค Labview ขึ้นมา และ Add ไฟล์ .dll มาเก็บไว้ใน Project ของ Labview ก่อน
- ตอนนี้ให้สร้าง Blank VI ขึ้นมา โดยการคลิกขวาที่ My Computer แล้ว เลือก New > VI 
- ตอนนี้ให้เลือกหาไฟล์ DLL โดยการเปิดที่ Block Diagram และคลิกขวา และค้นหา Connectivity จากนั้นเลือก .Net แล้วเลือก Constructor Node ขึ้นมา
- เมื่อเพิ่ม Constructor Node ขึ้นมา โปรแกรมจะแสดงหน้า Select .Net Connector ขึ้นมา ให้ทำการ Browse ไฟล์ .dll ขึ้นมา และเลือก Class ที่ทำการสร้างไว้
- ถึงตอนนี้เราจะได้ Node ขึ้นมา 1 Node ที่เรียกหาไฟล์ .DLL เรียบร้อย ต่อไปเราต้องทำการ สร้าง Node เพื่อเรียกหา Method ที่เราสร้างไว้ก่อนหน้านี้ โดยการคลิกขวาที่ Node ที่สร้างขึ้นตรงช่องเชื่อมต่อ Wire  New Reference > Create > Method for ..... > เลือก Method ที่สร้างขึ้นมาก่อนหน้านี้

- ทำการเชื่อมต่อ Wire ให้เรียบร้อย จะได้ดังภาพ ซึ่งจะแสดง Method ที่เราสร้างขึ้นมา โดยรับ ค่า X และแสดงผลลัพท์เป็นค่า Cos ออกมา
- เมื่อเราได้ Node ที่มาจาก Method ที่เราสร้างขึ้นมาแล้ว ต่อไปเราจะทำการเรียกใช้งาน โดยผมจะให้รับค่าเป็น ลูกบิด และผลลัพเป็น Tank น้ำ ละกัน
- แต่สุดท้ายต้องเข้าใจก่อนว่า พวกเราได้ทำการเขียนโปรแกรมติดต่อกับ Class ต่าง ซึ่ง ต้องมีการ ปิดการอ้างถึงด้วย คือ Close Reference นั้นเอง โดยการ คลิกขวาที่ New Reference ของ Method Node จากนั้นเพิ่ม Close Reference ด้วย

- ทำการเชื่อมต่อ
- ทดสอบ Run Program โดยเลือก Input เป็น ประมาณ 6 จากนั้น ดูผลลัพท์ เทียบกับ เครื่องคิดเลข









Labview การใช้ Probe ตรวจค่าของข้อมูลที่เินทางผ่าน

การใช้ Probe

Probe เปรียบเหมือนกับเครื่องมือวัดข้อมูลที่ใช้จุ่มลงไปบนสายต่อเพื่อแสดงค่าข้อมูลที่กำหลังไหลผ่าน โดยปกติเราจะช้เพื่อตรวจสอบความถูกต้องในการประมวลผลใน VI ว่ามีค่าเป็นอย่างไร เมื่อเราวาง Probe ลงไปบนสายต่อจะทำให้เกิดหน้าต่างของ Probe นั้นขึ้นและเมื่อ VI อยู่ในโหมดทำงาน เมื่อข้อมูลเดินทางผ่านสายต่อที่ Probe ไว้ ค่าข้องข้อมูลลจะแสดงบนหน้าต่างแสดงผลของ Probe นั้นจะเปลี่ยนไปตามค่าของผู้มูลที่ผ่านสาย