Wednesday, July 21, 2021
DVP-14SS2 Modbus ASCII On LABVIEW
Friday, July 31, 2015
Solved: error: 'TKD2' was not declared in this scope, LIFA_Base compile error
วันนี้ จะมาเล่าถึงปัญหาที่เจอในการเบิร์นโค๊ด LIFA_Base ที่เราใช้ในการทำให้ Arduino ของเราสามารถรับคำสั่งจาก LabVIEW ได้
ปัญหานี้ เริ่มเกิดขึ้นตอนที่ Arduino IDE เวอร์ชั่นใหม่ๆ ได้เพิ่ม Libraries ที่เกี่ยวกับ RobotIRremote แล้วไปประจวบเหมาะกับ LabVIEW interface for Arduino tool kit เข้าใจว่า น่าจะตั้งแต่เวอร์ชั่น 2.xx เป็นต้นไป จะมี libraries ที่เกี่ยวกับ IR ติดมาด้วย
ทีนี้ พอเราทำการ Compile LIFA_BASE ซึ่งมันได้ทำการเรียกหา IR libraries ที่อยู่ใน folder เดียวกับมันมา compile มันจะฟ้อง Error
“C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: 'TKD2' was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
^
Error compiling.”
ซึ่งเจ้า Arduino IDE นั้นไปเอา IR libraries ของมันมา compile แทน ซึ่งไม่น่าจะเป็นแบบนั้น มันก็เลย Error ขึ้นมา
วิธีทางแก้ไข ก็ไม่ยากครับ เราก็ทำการย้าย RobotIRremote libraries ของ Arduino ออกไปก่อน ไปไว้ที่ไหนก็ได้ อย่าให้ Arduino IDE มองเห็น จากนั้น ก็ทำการ compile LIFA_Base ใหม่ อีกครั้ง
คนที่เจอปัญหานี้ น่าจะเข้าใจ ผมขอไม่อธิบายละเอียด เอาเป็นว่า แก้ไขตามนี้ ก็คิดว่าจะโอเคหล่ะ
เอวังก็มีด้วยประการะฉะนี้
Saturday, January 4, 2014
Omron PLC Model CP1H-X40DT-D
วันนี้ ตั้งใจว่าจะเปิดหัวข้อที่เกี่ยวกับ PLC ไว้สักหน่อย เพราะว่ามีโอกาสได้จับงาน PLC ของ Omron รุ่น CJ2M-CPU33 มา ซึ่งต้องขอบอกว่า ตอนนั้น ความรู้ที่ร่ำเรียนมา มันมีเพื่อเอาไว้สอบเท่านั้น พอมาเจองานจริง งง จริงๆ ไม่รู้จะเขียนลอจิก อย่างไร เพราะเงื่อนไข (สำหรับผมในตอนนั้น) มันซับซ้อนมากๆ มีหลายเงื่อนไข ต้องเขียนดักกันไป ดักกันมา จนทำให้ไม่สามารถที่จะเอาหน้า contact มา lock กันเองได้ เพราะไม่งั้น ไล่กันหูตั้ง แน่ๆ
แต่งานนั้น ก็จบมาได้ ชนิดแบบว่า ไม่ได้หลับได้นอนกันเลยทีเดียว สู็กันจนวินาทีสุดท้ายที่ลูกค้ามาตรวจเครื่องเลยก็ว่าได้ มีแอบไปนอนหลับบนรถกันเลย เพราะคิดไม่ออกจริงๆ ตอนนั้น
ซึ่งเจ้า PLC CJ2M-CPU33 ตัวนั้นก็ได้ส่งลูกค้าไปแล้ว ครั้นจะซื้อมาเก็บไว้ศึกษา พอเห็นราคาแล้ว ก็ต้องหงายเงิบ แพงจริงๆ ไม่รู้ว่า มันแพงเพราะคุณสมบัติระดับเทพของมันหรือเปล่านะ
แต่ อย่างไรก็ดี ถ้ายังได้จับ PLC ของ Omron อีก ก็คงยังต้องใช้ CX-One Programmer ในการเขียน LADDER / Boolean อย่างแน่นอน อย่ากระนั้นเลย มาเขียนบันทึกสิ่งที่ได้ศึกษามาเก็บไว้บน Blog ดีกว่า จะได้เอาไว้เตือนความจำด้วย
ต้องขอย้อนกลับไป ตอนที่ทำโปรเจคกับเจ้า CJ2M-CPU33 ตอนนั้นสักหน่อย ต้องขอขอบคุณ thaiplc.com ที่มีเวบบอร์ด ไว้คอยตอบคำถามช่วยเหลือซึ่งกันและกัน เกี่ยวกับปัญหา และเกร็ดความรู้เกี่ยวกับ PLC ของไทย ซึ่งนับว่าเป็นแหล่งที่ใหญ่เชียวแหละ ที่มีคนเข้ามาอ่าน เพราะเท่าที่ดูแล้ว งานพวกนี้ คนที่ทำงานด้านนี้ คงไม่ค่อยได้เข้ามาตอบเท่าไหร่ เพราะ ดูแล้วแต่ละท่านคงจะยุ่งๆ แต่ ก็จะมีบางท่านที่แวะเวียนมาตอบคำถาม และคอยให้ความรู้อยู่อย่างสม่ำเสมอ ก็ต้องขอขอบคุณแหล่งความรู้ดีทีนี่ และแอดมิน ที่ดูแลระบบด้วยครับ
และก็เพราะ thaiplc.com นั่นแหละครับ ที่ทำให้ผมจะได้เริ่มต้นเปิดประเด็นหัวข้อ PLC ก็เพราะว่า มีพี่ท่านหนึ่งในเว็บบอร์ด thaiplc.com ได้ให้ผมยืม PLC Omron CP1H-X40DT-D มา 1 ตัว พร้อมด้วย RS232 และ Ethernet extension ที่ติดมากับ PLC ด้วย ผมก็ไม่นึกว่าจะมีคนใจดี ให้ผมยืม PLC ซึ่งราคาแต่ละตัว ก็ไม่ใช่ของที่จะให้ยืมกันได้ง่ายๆ ต้องขอขอบพระคุณความใจดีของพี่เขาจริงๆ ไว้ ณ ทีนี้ด้วย
ผมก็จะพยายามเขียนบันทึกไว้เรื่อยๆ ไว้ที่ blog นี่หล่ะกันครับ เดี๋ยวขอไปอ่าน manual มันก่อนหล่ะกันตอนนี้
Monday, March 25, 2013
รีวิวโปรแกรม In-sight กับ Smart Camera ของ Cognex
เมื่อวันที่ 22 มีนาคม 2556 ผมมีโอกาสได้ไปอบรมการใช้งานโปรแกรม In-Sight ซึ่งเป็นโปรแกรมประเภท Machine Vision คือสามารถเขียนโปรแกรมตรวจสอบงานในสายพานการผลิต (จริงๆ ก็แล้วแต่จะไปประยุกต์ใช้ แต่ ถ้านำมาใช้ในสายพานการผลิตจะเหมาะกว่า) เช่น การตรวจสอลสลาก การตรวจสอบหาจุดบกพร่องของงานที่ผลิตออกมา การนับจำนวนชิ้นงาน ซึ่งในอุตสาหกรรมการผลิตชิ้นส่วนต่างๆ แม้กระทั่งการผลิตยา และอาหาร ก็มีงานที่เกี่ยวกับ Machine Vision รวมอยู่ด้วย
ซึ่งเจ้าโปรแกรมนี้ หากใครเคยได้ใช้โปรแกรม VisionBuilder ของทางค่าย NI แล้วหล่ะก็ คงทำความคุ้นเคยกับมันได้ ไม่ยากนัก เพราะเค้าออกแบบมาแทบจะคล้ายกัน คือ เน้นให้สามารถเขียนโปรกรมผ่าน Graphic เลือกค่าต่างๆ ผ่านบล๊อกการทำงาน แต่ละขั้นตอน สุดท้ายก็ได้โปรแกรมตรวจสอบชิ้นงานอย่างที่ต้่องการ ในเวลาอันรวดเร็ว เพราะงานพวกนี้ จะว่าไปแล้ว ก็มีลักษณะที่ซ้ำกันไป ซ้ำกันมา ต่างกันตรง สภาพชิ้นงานและภาพที่ได้จากชิ้นงาน และตำแหน่งที่จะตรวจวัดชิ้น ซึ่งขึ้นอยู่กับว่า เรากำลังตรวจวัดอะไร เช่น ตรวจวัดระดับของเหลว การวัดว่ามี หรือไม่มีชิ้นส่วนชิ้นใดชิ้นหนึ่ง หรือวัดความถูกต้องของชิ้นงานเมื่อเทียบกับต้นแบบ
ดูภาพเปรียบเทียบหน้าตาของโปรแกรม
หน้าตาโปรแกรม In-Sight
หน้าตาโปรแกรม Vision Builder
แต่ วันนี้ผมไม่ได้มาพูดถึงโปรแกรม VisionBuilder ครับ ผมจะมาพูดถึงการทำงานคร่าวๆ ของโปรแกรม In-sight เจ้าโปรแกรม In-sight โดยหน้าที่แล้ว เป็นโปรแกรมที่ช่วยให้งาน Machine vision ง่าย และเสร็จในเวลาอันรวดเร็ว หน้าที่ของโปรแกรมเมอร์ ก็คือ ทำการนำภาพที่ได้จากกล้องมาทำการประมวลผล โดยผ่านขั้นตอน ที่ทางโปรแกรมได้วางเอาไว้ แต่ละขั้นตอน และทำการกำหนดค่าต่างๆ ตามที่ต้องการ ซึ่งในโปรแกรม จะมี อัลกอริธึมในการประมวลผลภาพ ไม่ว่าจะเป็นการทำ Threshold การหาขอบภาพ การนำภาพมาเปรียบเทียบกับภาพต้นแบบ ซึ่งอัลกอริธึมเหล่านี้ มีพร้อมอยู๋แล้วในโปรแกรม In-Sight หน้าที่ของเรา คือใช้มันให้เป็น จัดลำดับเงื่อนไขอย่างถูกต้อง เราก็จะได้โปรแกรม Machine Vision ที่สามารถนำไปใช้ได้อย่างรวดเร็ว
ความแตกต่างของโปรแกรมนี้ กับโปรแกรมอื่นๆ ทั่วไป คือ โปรแกรม In-sight นี้ ให้ดาวน์โหลดไปใช้ฟรีๆ แค่ นำ key ที่ได้จากโปรแกรม ไปลงทะเบียนผ่านหน้าเว็บ เราก็จะได้ key ที่ถูก gen ออกมา แล้วนำกลับมาลงทะเบียนที่โปรแกรม เพียงเท่านี้้ เราก็สามารถนำโปรแกรมไปใช้ได้เลย อะไร มันจะดีขนาดนี้ แต่ เดี๋ยวก่อน เจ้าโปรแกรม In-sight นี้ ใช้ได้แต่เฉพาะกับกล้อง Smart Camera ของ Cognex เท่านั้น ไม่สามารถนำไปใช้กับกล้อง Smart Camera ของบริษัทอื่นๆ ได้
ขอย้อนกลับไปเรื่องกล้องสักเล็กน้อย ในตลาดของงาน Machine Vision เราแบ่งกล้องได้เป็นสองประเภทใหญ่ๆ (ณ ตอนนี้) คือ
1. กล้อง Industrial ทั่วๆ ไป ซึ่งต้องมีคอมพิวเตอร์ 1 เครื่องในการรันโปรแกรม และรับภาพที่ได้จากกล้องพวกนี้มาประมวลผล
2. กล้อง Smart Camera ซึ่งกล้องพวกนี้ต่างจากล้องแบบแรก คือ มันสามารถทำงานได้ด้วยตัวของมันเอง พูดง่ายๆ ก็คือ ตัวมันเองมีคอมพิวเตอร์ขนาดเล็ก อยู่ภายใน จะบอกว่าเล็กมากๆ แต่ ก็สามารถทำงานได้ด้วยตัวของมันเอง
พวกกล้อง Smart Camera เกี่ยวข้องอย่างไรกับโปรแกรม In-sight ?
คือมันเป็นอย่างนี้ครับ คือหลังจากเราได้ดาวน์โหลดโปรแกรม In-Sight และได้ทำการติดตั้งเสร็จแล้ว จากนั้น เรานำภาพที่ได้จากกล้อง Smart Camera มาทำการประมวลผลตามลำดับขั้นตอนจนเป็นที่น่าพอใจแล้ว เราก็จะทำการอัพโหลดโค๊ดที่เราเขียนทั้งหมดนี้ กลับเข้าไปที่กล้อง Smart Camera ครับ เจ้าตัวกล้องนี้ ก็จะเข้าใจโค๊ดที่ถูกอัพโหลดมาใส่ที่ตัวมัน และทำงานตามลำดับที่ถูกกำหดนดไว้แล้วในโค๊ด จากนั้น ที่ตัวกล้องจะมีช่องสัญญาณเอาท์พุต เอาไว้ให้เรา ส่งค่ากลับออกมาจากโปรแกรม เช่น หากกล้องตรวจพบเจอสิ่งผิดปกติ ให้ส่งสัญญาณ มาหยุดที่สายพานลำเลียงชิ้นงาน หรือส่งออกมาแสดงค่าที่ไฟสถานะของเครื่องจักร นอกจากนี้ มันยังมีช่องอินพุต เพื่อรับสถานะ เช่น จากเซนเซอร์ต่างๆ ได้อีกด้วย ยิ่งถ้ากล้องมีราคาแพง จะยิ่งมีลูกเล่นพวกนี้เยอะตามไปด้วย ซึ่งในการทำงาน เราสามารถปล่อยให้กล้องทำงานได้ตามลำพัง โดยไม่ต้องต่อคอมพิวเตอร์กับกลัองอีกต่อไป ซึ่งเจ้าตัวกล้อง Smart Camera พวกนี้จะประมวลผลบนตัวของมันเองเลย หากจะถามเรื่องความเร็วในการประมวลผล เท่าที่ผมถามจากผู้รู้ เค้าก็บอกว่า ถ้างานที่ต้องการวัด หรือตรวจจับนั้น วิ่งผ่านกล้องด้วยความเร็วไม่เกิน 600 ชิ้น ต่อ นาที ก็สามารถใช้กล้อง Smart Camera พวกนี้ ได้ ที่ต้องบอกว่า ไม่เกิน 600 ชิ้น ต่อ นาที นั้น ก็เพราะว่า ด้วยความที่มันมีคอมพิวเตอร์ขนาดเล็กอยู่ภายในนั้น มันก็ย่อมมีข้อจำกัดในการประมวลผล ซึ่งแน่นอน ย่อมสู้คอมพิวเตอร์ตั้งโต๊ะ ไม่ได้อย่างแน่นอน
แล้วถ้าถามว่า ข้อเสียของกล้อง Smart Camera นอกจากเรื่องความเร็วในการประมวลผลหล่ะ อีกประเด็นหนึ่งก็คือ เอาหล่ะ โปรแกรม In-Sight หน่ะมันฟรี ก็จริงอยู่ แต่ ราคาโปรเจคทั้งหมด มันจะไปตกอยู่ที่กล้องครับ ซึ่งแพงมากๆ คือหลังจากผม ได้ยินเรื่องราคาแล้ว ผมเข้าใจเลยว่า งาน Machine Vision ทำไมราคา มันถึงได้มากขนาดนั้น
แต่ ถึงราคาจะแพงขนาดนั้น แต่ในแง่ การนำไปใช้งาน ก็ สะดวกสบายและคล่องตัวมากเลย นอกจากเรื่องโปรแกรมที่ง่าย และสร้างงานได้อย่างรวดเร็ว ผมขอยกตัวอย่างให้ฟัง สมมติว่า คุณไปติดตั้งระบบไว้ ณ ที่โรงงานแห่งหนึ่ง ซึ่งอยู่คนละจังหวัด เกิด วันดีคืนดี งานมีปัญหา คือ อาจจะด้วยสาเหตุอะไรก็แล้วแต่ ทำให้คุณจะต้องไปทำการแก้ไขโปรแกรมที่อยู่ในกล้อง คุณจะทำอย่างไร หากไม่ต้องเดินทางไปที่โรงงานแห่งนั้น ง่ายๆ ก็คือ คุณก็ให้คนหน้างานนั้น ทำการ capture ภาพที่ได้จากกล้อง Smart Camera ตัวนั้น ส่งกลับมาให้คุณ โดยที่คุณสามารถที่จะทำการปรับแต่งโปรแกรมที่คุณได้ Backup ไว้แล้ว กับภาพที่ได้ขณะนั้น คุณก็สามารถแก้ไขปัญหาได้ และสามารถทำการส่งไฟล์โค๊ดที่ได้รับการแก้ไขแล้วกลับไปที่หน้างาน และอัพโหลดใส่กลับไปที่ตัวกล้อง โดยที่คุณไม่ต้องเดินทางไปที่หน้างานเลย เห็นไหมหล่ะครับ ว่ามันสะดวกขนาดไหน เพราะเจ้ากล้อง Smart Camera พวกนี้ มันทำได้สบาย อยู่แล้ว บวกกับโปรแกรม In-Sight ที่โหลดมาได้ฟรีๆ มองการไกล ผมก็ว่ามันก็คุ้มอยู่นะ
ก็เป็นเรื่องที่จะมาเล่าสู่กันฟัง หลังจากที่ได้รับการอบรมมา จริงๆ ผมต้องการทราบว่าเจ้าโปรแกรม In-Sight มันต่างจากโปรแกรม VisionBuilder ที่ผมเคยใช้อยู่อย่างไร ซึ่งหลังจากที่ได้รับการอบรมแล้ว ก็มีความเข้าใจกับกล้อง Smart Camera และเจ้าตัวโปรแกรม In-Sight มากขึ้น ต้องขอขอบคุณทีมงาน Cognex Training Thailand เป็นอย่างยิ่งครับ ที่ให้ผมได้เข้ารับการอบรมในครั้งนี้

