Sample Title Slide

Download Report

Transcript Sample Title Slide

‫הודעות‬
‫• שי שרעבי‬
‫• ‪[email protected]‬‬
‫• חדר ‪201‬‬
‫• שעות קבלה לפי תאום‪.‬‬
‫מבוא לסביבת ‪LabVIEW -‬‬
‫מטרת הסדנה‪:‬‬
‫• הבנת תהליך לכידת והצגת אותות פיזיקאליים‪.‬‬
‫• הכרת ה ‪ MAX‬וסביבת הפיתוח של ‪.LabVIEW‬‬
‫• להקנות יכולת לבנות אפליקציה ללכידת אותות‪ ,‬עיבודם‬
‫והצגתם‪.‬‬
:‫חומר עזר‬
NI ‫ של התקנת‬manuals ‫ בתיקיית‬pdf ‫• קבצי‬
.)LV_Fundamentals.pdf(
‫ של דר' אלכס קופמן באתר‬Labview ‫• סרטוני הדרכה לתוכנת‬
.http://www.bgu.ac.il/me/courses/labview/lvid.html
.http://www.ni.com/labview/ ‫• באתר החברה‬
‫תהליך לכידת והצגת אותות ‪:‬‬
‫הפעלת תוכנת ה‪MAX-‬‬
‫הפעלת תוכנת ה‪LabVIEW-‬‬
‫תכנות ב‪ LabVIEW -‬מייצר כלים וירטואלים )‪: (VI’s‬‬
‫צג משתמש ‪Front Panel -‬‬
‫• ‪Controls = Inputs‬‬
‫• ‪Indicators = Outputs‬‬
‫צג התוכנית ‪Block Diagram -‬‬
‫• תכנות גרפי ‪ -‬תכנות טקסטואלי‪.‬‬
‫• כל רכיבי התוכנית מקושרים‬
‫בחיווט ‪.‬‬
‫צג המשתמש ( ‪( Front Panel‬‬
‫צלמית‬
‫סרגל הכלים‬
‫פה נצור ונעצב את כל המתגים‪ ,‬שעונים‪ ,‬מיני תפריטים וגרפים לתצוגה‪.‬‬
‫צג התוכנית (‪)Block Diagram‬‬
‫סרגל הכלים‬
‫פונקצית‬
‫חיבור‬
‫‪Nodes‬‬
‫‪Express vi‬‬
‫טרמינל גרף‬
‫חיווט‬
‫טרמינל משתנה בולאני‬
‫פקודת השהיה‬
‫טרמינל קבוע נומרי‬
‫לולאת ‪While‬‬
Express VIs, VIs and Functions
.‫ אינטראקטיבי עם דף דיאלוג לקונפיגורציות‬VI :Express Vis •
.‫ סטנדרטי מודולרי‬VI:Standard Vis •
.‫ כלי הפעלה אלמנטרי‬:Functions •
Function
Express VI
Standard VI
‫סרגל הכלים‬
‫כפתור הרצה‬
‫כפתור הרצה מתמשכת‬
‫הפסקת הרצה‬
‫כפתור ‪Pause/Continue‬‬
‫כפתור טקסט‬
‫הפעלה איטית‬
‫סידור צלמיות‬
‫מרחק בין צלמיות‬
‫בטל סידור‬
‫הגדל ‪ /‬הקטן צלמיות‬
‫לוח הפקדים ולוח הפונקציות‬
‫לוח הפקדים‬
‫‪Controls Palette‬‬
‫)‪(Front Panel Window‬‬
‫"קליק" ימני בצג במשתמש‬
‫לוח הפונקציות‬
‫‪Functions Palette‬‬
‫)‪(Block Diagram Window‬‬
‫"קליק" ימני בצג התוכנית‬
‫לוח הפקדים‪:‬‬
‫‪ -Control‬קלט‬
‫‪ -Indicator‬פלט‬
‫צור נובה והעבר את הסמן באזורים שונים סביבה‪.‬‬
‫קלטים ופלטים – ‪controllers & indicators‬‬
‫‪ –Indicator‬חץ נכנס‬
‫מסגרת לא מודגשת‬
‫*הערה במשתנים מסוימים אין חץ‬
‫‪ –Controller‬חץ יוצא‬
‫מסגרת מודגשת‬
‫לוח הכלים‬
‫משמש לעריכה‪.‬‬
‫ראה סמן עכבר בעריכה במצב אוטומטי‬
‫חיווי על מצב מעבר אוטומטי‬
‫גלילה‬
‫הפעלה‬
‫‪ Breakpoint‬הפסקת הרצה יזומה‬
‫מיקום‪ ,‬הגדלה‪,‬הקטנה‬
‫הצגת מצב‪/‬ערך‬
‫כיתוב‬
‫העתקת צבע‬
‫חיווט‬
‫צביעה‬
‫קיצור דרך להפעלת לוחות‬
‫קלטים ופלטים – ‪controllers & indicators‬‬
‫ניתן להפוך קלט לפלט וההפך‪:‬‬
‫"קליק" ימני על האיקון ‪change to indicator >--‬‬
‫צג המשתמש‬
‫ הדגמה‬:‫בניית תוכנית‬
‫צג התוכנית‬
Control
Terminals
Indicator
Terminals
‫משתנה מקומי‬
‫ניתן ליצר לקלט או לפלט משתנה מקומי‪:‬‬
‫"קליק" ימני על האיקון ‪local Variable >-- Create >--‬‬
Multitasking Principle
?‫מה יתבצע קודם‬
‫עזרה ודוגמאות‬
‫לחיצה על ‪ Ctrl+H‬תפתח מסך עזרה המתעדכן על פי מיקומינו במסך‬
‫מסך העזרה‬
‫• עזרה ברשת‬
‫• נעל מסך עזרה‬
‫תרגול‬
‫‪ TC‬ליניארי מוציא ערכים של ‪0-2.023mv‬‬
‫לטמפרטורות של ‪ .0-40°C‬בצע תרגום של‬
‫המרת היחידות‪.‬‬
‫פתרון‬
‫כניסות ויציאות‬
‫כניסה נקראת ‪.sink‬‬
‫יציאה נקראת ‪.source‬‬
‫אין משמעות לחיבור יציאות אחת לשנייה‬
‫טיפוסים פשוטים‬
‫טכניקות לגילוי תקלות‪:‬‬
‫• מציאת התקלה‬
‫לחיצה על החץ השבור תגרום להופעת מסך פירוט התקלה‬
‫(תקלת קומפילציה)‬
‫• הפעלה בשלבים‬
‫לחיצה על המנורה תפעיל את התוכנית באיטיות תוך‬
‫הצגת מיקום וערך (תקלת אלגוריתם)‬
‫• הצגת מצב‪/‬ערך‬
‫לחיצה ימנית על חוט תגרום להופעת חלון המציג את‬
‫הערך העובר דרכו ומספור המקום‬
‫(ניתן להפעיל פונקציה זו גם מלוח הכלים )‬
(Structures) ‫מבנים‬
‫• לולאת ‪While‬‬
‫– כולל טרמינל שסופר איטרציות‬
‫– "רץ" פעם אחת לפחות‬
‫– "ירוץ" עד לשינוי בתנאי‬
‫העצירה‬
‫• לולאת ‪For‬‬
‫– כולל טרמינל שסופר איטרציות‬
‫– "ירוץ" בהתאם למספר‬
‫הפעמים המוגדר בטרמינל‬
‫התנאי‬
‫מתגים – עקרון מכני‬
‫מצב המתג‬
‫הסיגנל היוצא‬
‫קבלת אישור‬
‫ע"י התוכנה‬
‫‪Race Condition‬‬
‫קלט בוליאני (‪ )control‬בעל משתנה מקומי (‪ )local variable‬אינו יכול‬
‫להיות מסוג ‪ .latch‬מדוע?‬
‫רמז‪ :‬הזכר בעיקרון ה ‪multitask‬‬
‫התוכנה מאפשרת להשתמש באותו שם למשתנה ‪ -‬לא מומלץ!‬
‫‪ – Sequence‬סידור הפעולות בתוכנית‬
‫‪Stacked sequence‬‬
‫‪Flat sequence‬‬
‫הערה‪ :‬מומלץ מאוד לשלב ‪ sequence‬בתוכנית למניעת תקלות ולהבנת התוכנית‬
‫תרגול – ‪sequence‬‬
‫קבע ערכים התחלתיים לקלט ‪ Y‬ו ‪.X‬‬
‫סיים עם הודעה למשתמש‬
‫כאשר ‪.X-Y≥0‬‬
‫פתרון‬
‫אתחול‬
‫משתנים‬
‫פעולות‬
‫בסיום‬
‫הקוד‬
‫‪ – Case‬ביצוע פעולה בהתאם לתנאי‬
‫‪ – Formula node‬חישובים מנוסחה‬
‫הערה‪ :‬כיצד מזינים נוסחה??‬
‫ראה ב"עזרה"!!‬
‫חשוב מאוד‪ :‬כל שורה חייבת להסתיים ב‪; -‬‬
‫תרגול – ‪Case-formula node‬‬
‫תרגם מעלות לרדיאנים ולהפך‬
‫ע"י בחירת ‪ mode‬פעולה‪.‬‬
‫תזכורת‪ ,‬נוסחת המעבר מרדיאנים למעלות‪y=x/pi*180 :‬‬
‫פתרון‬
‫‪Hide controller/ indicator‬‬
‫הסתרת איקוני קלט פלט במסך המשתמש‬
‫הדגמת סידור חיווט‬
‫"קליק" ימני על האייקון בחלון התוכנית מאפשר להעלים את‬
‫ההצגה של האובייקט ממסך המשתמש‬
‫• פעולה הפוכה תגרום להופעתו מחדש‬
Property Node
‫תרגול‬
‫בנה משתנה קלט המשנה מצבו משמיש‬‫(‪ )Enable‬ללא שמיש (‪ )Disable‬בהתאם למצב‬
‫מתג בוליאני‪.‬‬
‫מצב ב מצב א‬
‫פתרון‬
‫ומה עושה הקוד הבא?‬
‫מערך ‪Array-‬‬
‫יצירת שלד מערך במסך המשתמש‪:‬‬
‫יצירת מערך משתני מספר‬
‫גרור משתנה מספרי אל‬
‫שטח שלד המערך‬
‫מימד מערך‬
‫ניתן לראות את הערכי המערך על ידי‪:‬‬
‫•שינוי הערך במס' האלמנט‬
‫•גרירת גבולות המערך ימינה‬
‫הוספת מימד‪" :‬קליק ימני" על מס' אלמנט >> ‪add‬‬
‫‪dimension‬‬
‫פונקציות המערך‬
‫גבולות הלולאה ומערכים‬
‫‪Auto Indexing property‬‬
‫איזור לא מאותחל‬
‫של המערך‬
‫ממדי בעזרת לולאה‬-‫יצירת מערך דו‬
What will happen if
I disable the outer
loop indexing?
‫פעולות בסיסיות במערכים‬
‫תרגול‬
‫בנו מערך ‪ 5X5‬שערכיו מוזנים על ידי‬‫המשתמש‪ .‬השתמשו בלולאות ‪.While &For‬‬
‫‪-‬הציגו את הערך הגבוה ביותר ואת מקומו‪.‬‬
‫פתרון‬
‫בניית מערך באמצעות‬
Feedback Node - Shift Register
‫תרגול‬
‫חשב !‪ n‬עם שימוש בתכונות הלולאה‬‫ופונקציות כפל חיבור בלבד‪.‬‬
‫פתרון‬
‫נטרול קוד בעזרת מבנה ‪Enable-Disable‬‬
‫ שימושי בזמן פיתוח לאיתור תקלות‪.‬‬‫ ניתן להוסיף מסגרות נוספות ולבחור את‬‫המסגרת שתשמש כ ‪.enable‬‬
‫ערכים בוליאנים‪:‬‬
‫משתנים המקבלים ערך ‪ true‬או ‪false‬‬
‫צג משתמש‪:‬‬
‫‪ -Control‬קלט‬
‫‪ -Indicator‬פלט‬
‫עבודה עם ערכים בוליאניים‬
‫צג תוכנית‪:‬‬
‫פונקציות‬
‫בוליאניות‬
‫תרגול‬
‫בנו מערך מפסקים ו ‪ Led‬אחד‪ .‬האירו את ה‬
‫‪ led‬רק כאשר המערך מייצג ‪ 5‬בינארי‪.‬‬
‫כדאי להשתמש ב ‪.case‬‬
‫פתרון‬
Chart
‫תצורות שונות של ‪Chart‬‬
‫בטל כיול אוטומטי של ציר ‪ x‬ונסה את התצורות שבתמונה הנ"ל‬
‫עוד על ‪Chart‬‬
‫תמונת גרף למאמר‬
‫תרגול‬
‫בנו את התוכנית הנ"ל והריצו אותה‪.‬‬
‫‪Graph vs Chart‬‬
‫‪ - Chart‬שומר נתונים שנרשמו בו ומוסיף אליהם חדשים‪.‬‬
‫‪ - Graph‬מאתחל נתונים בכל פעם שמתקבל מידע חדש‪.‬‬
‫גרף ‪XY‬‬
‫ גרף ‪ XY‬מציג את נקודות הצמדים )‪ (xi,yi‬של מערכים ‪ X‬ו‪Y-‬‬‫המוזנים אליו‪.‬‬
‫ ניתן לעבוד בגרף זה עם נתונים קיימים (קודם אוספים ואח"כ‬‫מציגים) או בעבודה ‪ ,ONLINE‬כלומר עדכון הגרף תוך כדי איסוף‬
‫הנתונים‪.‬‬
‫גרף ‪Online-XY‬‬
‫ בחירה בגרף ‪ XY‬מצג המשתמש תגרור הופעה של ‪ vi-express‬בצג‬‫התוכנית‪.‬‬
‫‪-‬כשמזינים נקודות בודדות ‪ Online‬יש לחווט ‪ False‬לכניסת ה ‪.Reset‬‬
‫‪Simulate Signal‬‬
‫‪ -‬משמש להזנת אותות ולבדיקת התוכנה‪.‬‬
‫לצפייה נוחה יותר‬
‫רצוי לקבע את‬
‫מספר הדגימות‬
‫‪Cluster‬‬
‫ מיכל לאוסף של אובייקטים‪.‬‬‫‪ -‬נדמה אות שנשלח לגרף ‪ XY‬בתוך ‪.cluster‬‬
‫‪Menu Ring‬‬
‫ מעין ייצוג גרפי למערך של מחרוזות הניתן‬‫לבנייה מראש‪.‬‬
‫תרגול‬
‫בנו מחולל אותות‬
‫כמתואר כאן‪.‬‬
‫פתרון‬
‫כתיבה לקובץ‬
‫לכידת קול ממיקרופון‬
‫תוכנית ללכידת קול‬
‫הנתונים זורמים לגרף בפורמט של ‪.waveform‬‬
‫הדמית כרטיס – ‪Simulated Device‬‬
‫נגדיר כרטיס וירטואלי ב ‪.MAX‬‬
‫לכידה מכרטיס דמה‬
‫נגדיר ‪ ,VI‬בצג התוכנית‪ ,‬הלוכד נתונים מכרטיס‪.‬‬
‫המשך הגדרה של לכידה מכרטיס‬
‫נגדיר ‪ VI‬הלוכד נתונים מכרטיס‪.‬‬
‫תוכנית לכידה מכרטיס‬
‫מכרטיסים נקבל נתונים מסוג‬
‫‪.waveform‬‬