Ο βρόγχος While-loop 1. Ο βρόγχος while-loop εκτελείται έως ότου ικανοποιηθεί µία προκαθορισµένη συνθήκη. 2. Ο αριθµός των επαναλήψεων ενός βρόγχου while-loop δεν είναι εκ των προτέρων προκαθορισµένος, όπως στην περίπτωση του βρόγχου for-loop. Αντιθέτως, ο βρόγχος εκτελείται έως ότου να ικανοποιηθεί η προκαθορισµένη συνθήκη. 3. Εισάγουµε ένα βρόγχο while-loop στο Block Diagram µε δεξί κλικ, επιλογή του βρόγχου από το µενού Structures (σχήµα 4.1) και χαράζοντας ένα ορθόγωνιο στην επιφάνεια του Block Diagram. Οι διαδικασίες που θα εισαχθούν εντός του ορθογωνίου καθορίζουν το περιεχόµενο του βρόγχου while-loop. Σχήµα 4.1: Εισαγωγή βρόγχου while-loop. 4. Εντός του βρόγχου while-loop υπάρχει µία µεταβλητή i, όπως και στο βρόγχο for-loop, η οποία παίρνει κάθε φορά την τιµή της τρέχουσας επανάληψης του βρόγχου, ξεκινώντας για την πρώτη επανάληψη από την τιµή 0. 5. Ο έλεγχος της συνθήκης που πρέπει να ικανοποιηθεί για να ολοκληρωθεί η εκτέλεση του βρόγχου εκτελείται µε το εικονίδιο «Loop condition» στην κάτω δεξιά γωνία του βρόγχου. Ο έλεγχος «Loop condition» µπορεί να έχει δύο µορφές οι οποίες παρουσιάζονται στο σχήµα 4.2. Στην πρώτη (σχήµα 4.2α) ο βρόγχος εκτελείται µέχρι το κριτήριο που έχει τεθεί λάβει την τιµή true. Η Loop Condition στην περίπτωση αυτή έχει την τιµή «Stop if True», η οποία µπορεί να ελεγχθεί µε δεξί κλικ πάνω στη Loop Condition (σχήµα 4.3). Στη δεύτερη (σχήµα 4.2β) ο έλεγχος θα εκτελείται έως ότου το κριτήριο λάβει την τιµή false. Η Loop Condition στην περίπτωση αυτή έχει την τιµή «Continue if True», η οποία µπορεί να ελεγχθεί µε δεξί κλικ πάνω στη Loop Condition (σχήµα 4.3).
Σχήµα 4.2: Οι δύο εναλλακτικές συνθήκες Loop condition του βρόγχου while-loop. Σχήµα 4.3: Οι δύο εναλλακτικές συνθήκες Loop condition του βρόγχου while-loop. 6. Ο βρόγχος while-loop µπορεί να χρησιµοποιηθεί για τη συνεχή εκτέλεση ενός προγράµµατος. Τούτο επιτυγχάνεται µε την εισαγωγή ενός κουµπιού ελέγχου στο Front Panel και την καλωδίωσή του µε τη Loop Condition µε την τιµή Stop if True. Η εισαγωγή του κουµπιού ελέγχου γίνεται µε δεξί κλικ στο Front Panel και επιλογή του επιθυµητού κουµπιού από το µενού Boolean (σχήµα 4.4). Η καλωδίωση του κουµπιού µε τη Loop Condition φαίνεται στο σχήµα 4.5. Σχήµα 4.4: Εισαγωγή κουµπιού ελέγχου «STOP» στο Front Panel.
Σχήµα 4.5: Καλωδίωση κουµπιού ελέγχου «STOP» στη Loop Condition µε τιµή «Stop if True». Ο βρόγχος While-loop θα εκτελείται έως να πατηθεί το κουµπί STOP. 7. Η µη καλωδίωση µε µία λογική τιµή της Loop Condition σε ένα βρόγχο while-loop συνεπάγεται ότι ο βρόγχος δεν µπορεί να εκτελεστεί και, συνεπώς, όλο το vi. Εισαγωγή γραφήµατος X-Y 1. Για την κατασκευή γραφικών παραστάσεων προτιµούµε την εισαγωγή του γραφήµατος XY graph, η οποία εκτελείται µε δεξί κλικ στο Front Panel και επιλογή του συγκεκριµένου τύπου γραφήµατος από το µενού Graph (σχήµα 4.6). Σχήµα 4.6: Εισαγωγή γραφήµατος XY Graph στο Front Panel. 2. Στο γράφηµα που έχει εισαχθεί µπορούµε να κάνουµε διάφορες αλλαγές µορφοποίησης, όπως:
i. Να αλλάξουµε τις διαστάσεις του γραφήµατος συνολικά µε τις οκτώ διαθέσιµες λαβές στο περίγραµµα του γραφήµατος ή ειδικά της περιοχές σχεδίασης, µε χρήση των αντίστοιχων λαβών. Σχήµα 4.7: Αλλαγή διαστάσεων γραφήµατος XY graph. ii. Να αλλάξουµε τους τίτλους των αξόνων µε διπλό κλικ πάνω στους προκαθορισµένους τίτλους «Time» και «Amplitude» και εισαγωγή των επιθυµητών. iii. Να αλλάξουµε το χρώµα της περιοχής σχεδίασης. Τούτο γίνεται εµφανίζοντας το παράθυρο «Tools palette» από το βασικό µενού View του Front Panel. Στο παράθυρο Tools palette κάνουµε αριστερό κλικ στο εικονίδιο χρώµατος background, στο κάτω µέρος του παραθύρου, επιλέγουµε το επιθυµητό χρώµατα από την παλέττα χρωµάτων που ανοίγει και στη συνέχεια κάνουµε κλικ στην περιοχή σχεδίασης δίνοντας σε αυτήν το επιθυµητό χρώµα (σχήµα 4.8). Σχήµα 4.8: Αλλαγή χρώµατος περιοχής σχεδίασης γραφήµατος XY graph. iv. Να αλλάξουµε το χρώµα, το πάχος και τον τύπο της γραφικής παράστασης. Τούτο γίνεται µε δεξί κλικ πάνω στην πάνω δεξιά αυτόνοµη περιοχή του γραφήµατος, η οποία ονοµάζεται plot legend. Από το
αναδυόµενο µενού µπορούµε να επιλέξουµε ανάµεσα στον τύπο γραφήµατος (common plots), στο χρώµα του γραφήµατος (color), στον τύπο της γραµµής (line type), το πάχος της γραµµή (line width) κλπ (σχήµα 4.9). Σχήµα 4.9: ιαµόρφωση του τύπου του γραφήµατος XY graph. v. Την πυκνότητα του πλέγµατος, τον τρόπο εµφάνισης των αριθµών στους άξονες και άλλες ιδιότητες µε δεξί κλικ πάνω σε κάποιον από τους άξονες του γραφήµατος και επιλογή της εντολής «Format and Precision» από το αναδυόµενο µενού (σχήµα 4.10). Στη συνέχεια από την καρτέλα «Format and Precision», αφού επιλέξουµε από το drop-down µενού στο πάνω µέρος της καρτέλας τον άξονα που θέλουµε να µορφοποιήσουµε, µπορούµενα µπορούµε να καθορίσουµε τον τρόπο εµφάνισης των αριθµών σε αυτόν, δηλαδή τη µορφή τους (floating point: δεκαδικοί αριθµοί, Scientific: εκθετική µορφή κλπ) και µε το πόσα σηµαντικά (significant digits) ή δεκαδικά ψηφία (decimal digits) θα εµφανίζονται. Επίσης, από την καρτέλα scales, αφού επιλέξουµε από το drop-down µενού στο πάνω µέρος της καρτέλας τον άξονα που θέλουµε να µορφοποιήσουµε, µπορούµε να καθορίσουµε την πυκνότητα των γραµµών πλέγµατος, επιλέγοντας αν θα εµφανίζονται οι κύριες ή και οι δευτερεύουσες γραµµές πλέγµατος. Τούτο γίνεται στο κάτω δεξί µέρος του παραθύρου, µε τίτλο «Grid Style and Colors». Κάνοντας κλικ π.χ. πάνω στο Minor grid και επιλέγοντας από την παλέττα χρωµάτων που εµφανίζεται το εικονίδιο µε το σύµβολο «T» δεξιά από την πάνω οριζόντια παλέττα µε τις αποχρώσεις του γκρι, αποκρύπτονται οι δευτερεύουσες γραµµές πλέγµατος (σχήµα 4.10).
Σχήµα 4.10: ιαµόρφωση του τύπου του γραφήµατος XY graph. 3. Για να εισάγουµε τις τιµές Χ και Y σε ένα ΧΥ Graph εργαζόµαστε το Block Diagram ως εξής. Με δεξί κλικ στο Block Diagram επιλέγουµε από το µενού «Cluster & Variant» την εντολή «Bundle» και εισάγουµε ένα bundle µε δύο εισόδους (σχήµα 4.11). Στην πάνω είσοδο του bundle θα καλωδιωθεί το array µε τις τιµές του άξονα Χ. Στην κάτω είσοδο του bundle θα καλωδιαθεί το array µε τις τιµές του άξονα Υ. Σχήµα 4.11: Εισαγωγή ενός bundle µε δύο εισόδους στο Block Diagram. 4. Γενικά τα bundle είναι το εργαλείο που δίνει το LabVIEW για την οµαδοποίηση δεδοµένων ή αποτελεσµάτων και το χειρισµό τους ως µία οντότητα. Η οµάδα δεδοµένων ή αποτελεσµάτων που κατασκευάζεται µε ένα bundle ονοµάζεται cluster. Ένα cluster µπορεί να περιέχει αριθµητικά στοιχεία (numeric controls ή indicators), πίνακες, σταθερές ή µεταβλητές κειµένου, λογικές σταθερές ή µεταβλητές κλπ. Σε ένα cluster τα αντικείµενα που περιέχονται πρέπει να είναι όλα µόνο indicators ή µόνο controls. Στην περίπτωση της εισαγωγής των τιµών των αξόνων Χ και Υ σε ένα γράφηµα XY graph, µε το bundle δηµιουργήσαµε ένα cluster µε δύο arrays indicators, το οποίο θα χρησιµοποιήσουµε ως είσοδο στο XY Graph. 5. Στο σχήµα 4.12 παρουσιάζεται η καλωδίωση των τιµών Χ και Υ της γραφικής παράστασης ενός πολυωνύµου 3 ου βαθµού σε ένα bundle και από εκεί στο XY
Graph. Το πολυώνυµο έχει κατασκευαστεί µε ένα βρόγχο for-loop. Όλο το vi έχει εισαχθεί σε ένα βρόγχο while-loop, στον οποίο η συνθήκη Loop Condition έχει «Stop if True» και έχει καλωδιωθεί µε ένα κουµπί ελέγχου «STOP». Έτσι ο βρόγχος εκτελείται συνεχώς, µέχρι ο χρήστης να πατήσει το κουµπί STOP. Με αυτό τον τρόπο η γραφική παράσταση του πολυωνύµου ενηµερώνεται συνεχώς αν αλλάζουν οι παράµετροι του πολυωνύµου a0, a1, a2 και a3, χωρίς να απαιτείται από το χρήστη να τρέχει ξανά και ξανά το vi κάθε φορά που αλλάζει κάποια από τις παραµέτρους του πολυωνύµου. Σχήµα 4.12: Κατασκευή πολυωνύµου 3 ου βαθµού µε βρόγχο for-loop και εξαγωγή των πινάκων X και Y στο διάγραµµα XY Graph. Παράδειγµα While-loop 1. Στο σχήµα 4.13 παρουσιάζεται ένα παράδειγµα χρήσης του βρόγχου whileloop. Με το βρόγχο αυτό υπολογίζονται συνεχώς οι τιµές για τη γραµµική συνάρτηση Y(Χ) = AX + B, ξεκινώντας κατά την πρώτη εκτέλεση του βρόγχου από µία ελάχιστη τιµή της ανεξάρτητης µεταβλητής Χ min και αυξάνοντας την τιµή αυτή σε κάθε επανάληψη του βρόγχου κατά 1. Σύµφωµα µε τη συνθήκη ελέγχου του βρόγχου, ο βρόγχος αυτός θα εκτελείται έως ότου η τιµή Υ(Χ) γίνει µεγαλύτερη ή ίση του µηδενός. 2. Με την ολοκλήρωση του βρόγχου εξάγουµε τις τιµές της ανεξάρτησης µεταβλητής Χ και την τιµή Υ(Χ). Η εξαγωγή γίνεται έχοντας ενεργοποιήσει την επιλογή «Enable indexing» στα αντίστοιχα tunnels εξόδου, ώστε να εξαχθούν ολόκληροι οι πίνακες µε τις τιµές των Χ και Υ(Χ) που έχουν προκύψει για όλες τις εκτελέσεις του βρόγχου while-loop. Τα δύο διανύσµατα εισάγονται σε ένα bundle και από εκεί σε ένα XY Graph. 3. Επίσης από το βρόγχο while-loop εξάγεται η µεταβλητή επανάληψης του βρόγχου i µε δύο tunnel, το ένα µε ενεργοποιηµένη την επιλογή «Enable indexing» και το άλλο µε ενεργοποιηµένη την επιλογή «Disable indexing». Με το πρώτο tunnel θα εξαχθεί ένας πίνακας που θα περιέχει όλες τις τιµές του i κατά την επαναληπτική εκτέλεση του βρόγχου. Με το δεύτερο tunnel θα εξαχθεί η τελευταία τιµή του i, δηλαδή η τιµή που θα πάρει κατά την τελευταία εκτέλεση του βρόγχου.
Σχήµα 4.13: Παράδειγµα χρήσης του βρόγχου while-loop. 4. Τα αποτελέσµατα από την εκτέλεση του ανωτέρω παραδείγµατος παρουσιάζονται στο σχήµα 4.14. Σχήµα 4.14: Τα αποτελέσµατα του παραδείγµατος χρήσης του βρόγχου while-loop. Η τιµή Χmin από την οποία ξεκινούν οι υπολογισµοί έχει οριστεί στο -100. Οι τιµές των παραµέτρων της γραµµικής συνάρτησης είναι Α = 10 και Β = 20. Η συνάρτηση µηδενίζεται για Χ = -2. Ο βρόγχος θα ξεκινήσει να εκτελείται για Χ = -100 και σε κάθε επανάληψη θα αυξάνεται κατά 1, έως η τιµή Υ(Χ) να γίνει µεγαλύτερη ή ίση του µηδενός. Η συνθήκη αυτή θα ικανοποιηθεί όταν Χ = -2, οπότε Υ(Χ) = 0. Έως τότε θα έχουν γίνει 98 επαναλήψεις. Η τιµή αυτή εξάγεται στο numeric indicator «Numeric», ενώ όλες οι τιµές της τρέχουσας
τιµής της µεταβλητής επανάληψης i του βρόγχου while-loop εξάγονται στο array «Array». Τέλος, στο γράφηµα ΧΥ Graph εξάγεται η γραµµική συνάρτηση Υ(Χ) = 10Χ + 20, µε το Χ να παίρνει τιµές από -100 έως -2. 5. Στο ανωτέρω παράδειγµα για πρώτη φορά χρησιµοποιήθηκε µία συνάρτηση λογικού ελέγχου, αυτή που χρησιµοποιήθηκε για να ελεγχθεί αν η τιµή Υ(Χ) είναι µεγαλύτερη ή ίση του µηδενός. Γενικότερα οι συναρτήσεις λογικού ελέγχου εισάγονται µε δεξί κλικ στο Block Diagram και επιλογή από το µενού «Comparison» (σχήµα 4.15). Όλες οι συναρτήσεις αυτές έχουν ως έξοδο τιµή true ή false, ανάλογα µε το αν αληθεύει ή όχι το λογικός έλεγχος που εκτελείται από αυτές. Ας σηµειωθεί ακόµα ότι τα καλώδια µεταφοράς λογικών τιµών στο Block Diagram απεικονίζονται µε πράσινο χρώµα. Σχήµα 4.15: Το µενού εισαγωγής συναρτήσεων λογικών ελέγχων. Οι διαθέσιµες συναρτήσεις είναι εύλογες και απλές στη χρήση τους. Το µενού βοήθειας (CTRL + H) µπορεί πάντα να προσφέρει οδηγίες σε περιπτώσεις αβεβαιότητας ως προς τη χρήση κάποιας λογικής συνάρτησης. Ενδεικτικά παρουσιάζονται τα µενού βοήθειας για τις συναρτήσεις
Σχήµα 4.16: Τα µενού βοήθειας των συναρτήσεων λογικών ελέγχων «Greater?», «Less or equal to 0?» και «Not a number / Path / Refnum?».