22/05/2556 06:04 น. |
จากโปรแกรมดังรูป มีหลักการคร่าวๆดังนี้ โปรแกรมนี้เป็นโปรแกรมควบคุมความเร็วดีซีมอเตอร์ขนาดใหญ่ ซึ่งเลือกได้สามระดับความเร็วและสามระดับของทอร์ค โดยใช้ดิจิตัลอินพุท(สวิทซ์)เป็นตัวเลือก เมื่อมีการเลือกแล้วโปรแกรมก็จะวิ่งมาโหลดสปีดและทอร์คตามคำสั่งที่อยู่ในบล๊อค เนื่องจากไม่ค่อยเข้าใจภาษา STL ก็เลยสงสัยว่าโปรแกรมจะโหลดค่าจากไหนส่งออกไปเป็นเอาท์พุท ระหว่างค่าที่อยู่ใน DB22.DBD80 (ในกรอบหมายเลข 1) หรือว่าจะโหลดค่า 1.500000e+001 (ในกรอบหมายเลข 2) รบกวนผู้รู้ช่วยแนะนำหน่อยครับ ส่วนที่หนึ่ง |
24/05/2556 14:58 น. |
การที่เราจะรู้ว่า ตัวโปรแกรมเอาค่าความเร็วจากไหน ให้เรา หาปลายทางของ ค่าความเร็วก่อนในที่นี้คือค่าที่สั่งงานตัวควบคุมความเร็ว(ยกตัวอย่างเป็นInvertor)ให้เราหาว่า Inv.รับค่าจาก PQW ตัวใด แล้วมองกับไปที่ต้นทาง ของ PQW นั้น โดยส่วนใหญ่ถ้าล็อคความเร็วด้วยสวิทย์ จะเป็นค่าตัวเลข (กรอบหมายเลข2)แต่ถ้ารับค่ามาจาก ทัชสกรีน รึคีย์ อื่นๆจะอ้างจาก DB ครับ เลยต้องย้อนไปดูที่มาของค่า PQW (ที่สั่ง Inv.) เพราะเราเห็นโปรแกรมแค่บางส่วน(กรอบที่1) รับค่ามาจากอะไร รึอาจมีการเซ็ตค่าไว้ก่อนแล้ว ลองดูครับ.. |
25/05/2556 22:14 น. |
จริงๆแล้วต้องดูว่า mapping ของโปรเจคที่ทำอยู่เค้าใช้ค่าไหนเป็นตัวที่จะส่งข้อมูลให้ มอเตอร์อะครับ อย่างที่คุณ Egle2 ได้บอกไว้ข้างต้อน แต่ตามที่เห็นในโปรแกรมแล้ว มันไม่จำเป็นว่าค่าที่มาจาก db22.dbd80 or 1.500000e+001 มันอาจจะใช่หรือไม่ใช่ทั้งสองก็ได้ครับเพราะเราเห็นแค่เพียงส่วนหนึ่งของโปรแกรมเท่านั้น แต่ดูเหมือนกับว่าค่า 15 ที่ส่งให้ db25.dbd34 จะเป็นค่า set point นะครับ ส่วนค่าที่ป้อนให้ db22.dbd80 นั้นเป็นค่าที่ต้องการให้ มอเตอร์ run ตามความเร็วที่เราป้อนเข้าไป อาจจะมากกว่าหรือน้อยกว่า 15 ก็ได้ |
05/09/2556 16:22 น. |
คุณต้องเขียนโปรแกรมเลือกเอาว่าจะเอาค่าไหนไปใช้ครับ |