วันพฤหัสบดีที่ 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