Γλώσσες Προγραμματισμού των Προγραμματιζόμενων Λογικών Ελεγκτών: Από την ίδια περιγραφή λειτουργίας σε διαφορετικές αναπαραστάσεις Κεντρικό διερευνητικό ερώτημα Μπορούμε να προγραμματίσουμε τον ίδιο αυτοματισμό με διαφορετικές γλώσσες και να έχουμε ακριβώς την ίδια λειτουργία; Οι μαθητές δεν ξεκινούν απομνημονεύοντας εντολές. Αντιμετωπίζουν πρώτα ένα πραγματικό πρόβλημα αυτοματισμού, προτείνουν λύσεις και στη συνέχεια ανακαλύπτουν πώς η ίδια λογική εκφράζεται σε LADDER, FBD και STL. Σύνδεση με προηγούμενες γνώσεις Μέχρι τώρα οι μαθητές έχουν γνωρίσει: τις εισόδους και τις εξόδους ενός PLC, τις λογικές πράξεις AND, OR και NOT, τη δημιουργία πίνακα αλήθειας, τη λειτουργία του κύκλου σάρωσης, τη μετατροπή μιας περιγραφής λειτουργίας σε λογικό κύκλωμα. Στο νέο μάθημα θα διερευνήσουν αν η ίδια λογική λύση μπορεί να παρουσιαστεί με διαφορετικό τρόπο, χωρίς να μεταβληθεί η πραγματική συμπεριφορά του αυτοματισμού. Φάση Α — Παρατήρηση χωρίς εξηγήσεις Ο εκπαιδευτικός παρουσιάζει στους μαθητές τρία προγράμματα: Πρόγραμμα Α — LADDER |----[ I1 ]----[ I2 ]----------------( Q1 )----| Πρόγραμμα Β — FBD I1 ──┐ AND ─── Q1 I2 ──┘ Πρόγραμμα Γ — STL LD I1 AND I2 ST Q1 Δεν αναφέρεται αρχικά ότι τα προγράμματα είναι ισοδύναμα. Διερευνητική ερώτηση 1: Ποιο πρόγραμμα μοιάζει περισσότερο με ηλεκτρολογικό σχέδιο; Διερευνητική ερώτηση 2: Ποιο θυμίζει λογικές πύλες; Διερευνητική ερώτηση 3: Ποιο μοιάζει περισσότερο με συνηθισμένο κώδικα; Διερευνητική ερώτηση 4: Ποιες ομοιότητες εντοπίζετε; Διερευνητική ερώτηση 5: Ποιος πιστεύετε ότι είναι ο ρόλος των I1, I2 και Q1; Διερευνητική ερώτηση 6: Πότε θεωρείτε ότι ενεργοποιείται η Q1; Διερευνητική ερώτηση 7: Πιστεύετε ότι τα τρία προγράμματα εκτελούν την ίδια λειτουργία; Οι ομάδες καταγράφουν αρχικά μόνο υποθέσεις. Δεν χρειάζεται ακόμη να βρουν τη σωστή απάντηση. Φάση Β — Το πρόβλημα Σε έναν εργαστηριακό χώρο ένας ανεμιστήρας πρέπει να λειτουργεί μόνο όταν: πατηθεί το μπουτόν λειτουργίας και ο προφυλακτήρας ασφαλείας είναι κλειστός. Ορίζονται: Αρχική πρόβλεψη Κάθε ομάδα απαντά: Διερευνητική ερώτηση 8: Τι θα συμβεί αν πατηθεί το μπουτόν ενώ ο προφυλακτήρας είναι ανοικτός; Διερευνητική ερώτηση 9: Τι θα συμβεί αν ο προφυλακτήρας κλείσει χωρίς να πατηθεί το μπουτόν; Διερευνητική ερώτηση 10: Πότε ακριβώς πρέπει να ενεργοποιηθεί η Q1; Διερευνητική ερώτηση 11: Ποια λογική πράξη περιγράφει τη λειτουργία; Διερευνητική ερώτηση 12: Χρειάζεται το κύκλωμα να θυμάται προηγούμενη κατάσταση; Φάση Γ — Κατασκευή πίνακα αλήθειας Οι ομάδες συμπληρώνουν πρώτα τον πίνακα χωρίς τη βοήθεια λογισμικού. Οι μαθητές καταλήγουν στη λογική σχέση: Q1=I1 I2 Κρίσιμο ερώτημα: Ο πίνακας αλήθειας εξαρτάται από τη γλώσσα προγραμματισμού ή από τη λειτουργία που θέλουμε να πετύχουμε; Αναμενόμενη διαπίστωση: ο πίνακας περιγράφει τη λειτουργία. Η γλώσσα αλλάζει μόνο τον τρόπο με τον οποίο την αναπαριστούμε. Φάση Δ — Πρώτη αναπαράσταση σε LADDER Οι μαθητές κατασκευάζουν το πρόγραμμα: |----[ I1 ]----[ I2 ]----------------( Q1 )----| Διερευνητική ερώτηση 13: Γιατί οι επαφές τοποθετήθηκαν σε σειρά; Διερευνητική ερώτηση 14: Τι λογική πράξη δημιουργεί η σύνδεση σε σειρά; Διερευνητική ερώτηση 15: Τι θα άλλαζε αν τοποθετούνταν παράλληλα; Διερευνητική ερώτηση 16: Από ποια κατεύθυνση «διαβάζεται» το δίκτυο; Διερευνητική ερώτηση 17: Η επαφή I1 είναι το πραγματικό μπουτόν ή μια λογική αναπαράσταση της κατάστασής του; Διερευνητική ερώτηση 18: Η έξοδος Q1 τροφοδοτεί απευθείας τον κινητήρα ή συνήθως το πηνίο ενός επαφέα; Μικρό πείραμα Οι μαθητές αντικαθιστούν τη σύνδεση σε σειρά με παράλληλη σύνδεση: |----+----[ I1 ]----+---------------( Q1 )----| | | | | | +----[ I2 ]----+ | Καταγράφουν τον νέο πίνακα αλήθειας και αναγνωρίζουν τη λειτουργία OR. Φάση Ε — Η ίδια λειτουργία σε FBD Οι μαθητές δημιουργούν το πρόγραμμα: I1 AND I2 = Q1 Διερευνητική ερώτηση 19: Ποιο στοιχείο του FBD αντιστοιχεί στις δύο επαφές σε σειρά της LADDER; Διερευνητική ερώτηση 20: Πού εμφανίζεται άμεσα η πράξη AND; Διερευνητική ερώτηση 21: Ποια αναπαράσταση σας βοηθά περισσότερο να κατανοήσετε τη λογική; Διερευνητική ερώτηση 22: Αν η συνθήκη περιλάμβανε τέσσερις εισόδους, ποια γλώσσα θα ήταν πιο ευανάγνωστη; Διερευνητική ερώτηση 23: Θα αλλάξει η συμπεριφορά της εξόδου επειδή άλλαξε η αναπαράσταση; Οι μαθητές εκτελούν τους ίδιους τέσσερις συνδυασμούς εισόδων και συγκρίνουν τα αποτελέσματα με τη LADDER. Φάση ΣΤ — Μετάφραση σε STL Παρουσιάζεται το πρόγραμμα: LD I1 AND I2 ST Q1 Οι μαθητές επιχειρούν πρώτα να ερμηνεύσουν κάθε γραμμή. Διερευνητική ερώτηση 24: Ποιο μέρος κάθε γραμμής είναι η λειτουργία; Διερευνητική ερώτηση 25: Ποιο μέρος είναι ο τελεστής ή η παράμετρος; Διερευνητική ερώτηση 26: Σε ποια σειρά εκτελούνται οι εντολές; Διερευνητική ερώτηση 27: Ποια γραμμή αντιστοιχεί στην έξοδο του LADDER; Διερευνητική ερώτηση 28: Μπορούμε να αλλάξουμε τη σειρά των LD I1 και AND I2; Διερευνητική ερώτηση 29: Θα προκύψει το ίδιο αποτέλεσμα για μια πράξη AND; Διερευνητική ερώτηση 30: Θα μπορούσαμε να καταλάβουμε εύκολα ένα μεγάλο πρόγραμμα μόνο από τη λίστα εντολών; Φάση Ζ — Πείραμα με τη λογική NOT Η απαίτηση αλλάζει: Η λυχνία Q2 πρέπει να ανάβει όταν ο προφυλακτήρας δεν είναι κλειστός. Οι μαθητές προβλέπουν την έξοδο: Αναμενόμενη σχέση: Q2 = ¬ I2 LADDER |----[/ I2 ]-------------------------( Q2 )----| FBD I2 ─── NOT ─── Q2 STL LDN I2 = Q2 Κρίσιμη διερεύνηση Ο εκπαιδευτικός αλλάζει μόνο τη φυσική καλωδίωση του αισθητήρα από κανονικά ανοικτή σε κανονικά κλειστή επαφή. Οι μαθητές καλούνται να διακρίνουν: τη φυσική κατάσταση της πραγματικής επαφής, την ηλεκτρική κατάσταση της εισόδου PLC, τη λογική εξέταση της εισόδου μέσα στο πρόγραμμα. Το κρίσιμο συμπέρασμα είναι ότι η κανονικά ανοικτή ή κλειστή επαφή στο πρόγραμμα δεν περιγράφει αναγκαστικά τον φυσικό τύπο του εξαρτήματος. Περιγράφει τον τρόπο με τον οποίο εξετάζεται η λογική τιμή της αντίστοιχης εισόδου. Φάση Η — Συνδυαστικό ή ακολουθιακό κύκλωμα; Πείραμα 1: Χωρίς μνήμη Q1 = I1 AND I2 Μόλις η I1 γίνει 0, η Q1 απενεργοποιείται. Πείραμα 2: Με αυτοσυγκράτηση Ο κινητήρας πρέπει να ξεκινά με στιγμιαίο START και να συνεχίζει να λειτουργεί μέχρι να πατηθεί το STOP. Ορίζονται: I1: START I2: STOP Q1: επαφέας κινητήρα LADDER |----[ I2 ]----+----[ I1 ]----------( Q1 )----| | | | | +----[ Q1 ]--------------------| Διερευνητική ερώτηση 31: Τι συμβαίνει όταν αφήσουμε το START; Διερευνητική ερώτηση 32: Ποια επαφή διατηρεί την έξοδο ενεργοποιημένη; Διερευνητική ερώτηση 33: Εξαρτάται η Q1 μόνο από τις τρέχουσες τιμές των εισόδων; Διερευνητική ερώτηση 34: Ποια προηγούμενη κατάσταση επηρεάζει τη λειτουργία; Διερευνητική ερώτηση 35: Το κύκλωμα είναι συνδυαστικό ή ακολουθιακό; Διερευνητική ερώτηση 36: Πού βρίσκεται η «μνήμη» του κυκλώματος; Αναμενόμενο συμπέρασμα Στο συνδυαστικό κύκλωμα η έξοδος καθορίζεται μόνο από τις τρέχουσες εισόδους. Στο ακολουθιακό κύκλωμα η έξοδος επηρεάζεται και από προηγούμενη κατάσταση. Η αυτοσυγκράτηση εισάγει μνήμη στη λειτουργία. Φάση Θ — Διερεύνηση βοηθητικής μνήμης Δίνεται η απαίτηση: Η έξοδος Q1 ενεργοποιείται όταν είναι ενεργές ταυτόχρονα οι I1 και I2 ή όταν είναι ενεργές ταυτόχρονα οι I3 και I4. Οι μαθητές προτείνουν: Q1=(I1 AND I2) OR (I3 AND I4) Στη συνέχεια χρησιμοποιούν ενδιάμεσες μνήμες: M1=I1 AND I2 M2=I3 AND I4 Q1=M1 OR M2 Διερευνητική ερώτηση 37: Γιατί χρησιμοποιούμε M1 και M2 αφού μπορούμε να γράψουμε απευθείας όλη τη σχέση; Διερευνητική ερώτηση 38: Κάνουν οι μνήμες το πρόγραμμα πιο σύντομο ή πιο κατανοητό; Διερευνητική ερώτηση 39: Τι θα συμβεί αν η M1 χρησιμοποιηθεί και σε δεύτερη έξοδο; Διερευνητική ερώτηση 40: Είναι η βοηθητική μνήμη πραγματική έξοδος του PLC; Διερευνητική ερώτηση 41: Μπορούμε να μετρήσουμε τάση σε μια εσωτερική μνήμη; Φάση Ι — Πρόκληση εντοπισμού σφάλματος Δίνεται το ακόλουθο πρόγραμμα: |----+----[ I1 ]----+----[ I2 ]-----( Q1 )----| | | | | | +----[ Q1 ]----+ | Η απαίτηση είναι: Το START ενεργοποιεί τον κινητήρα. Η έξοδος αυτοσυγκρατείται. Το STOP σταματά τον κινητήρα. Ο προφυλακτήρας πρέπει να παραμένει κλειστός. Στο πρόγραμμα όμως η I2 έχει δηλωθεί ως START δεύτερης θέσης αντί ως STOP. Διαδικασία διάγνωσης Οι ομάδες καταγράφουν: Η ομάδα δεν επιτρέπεται να αλλάξει αμέσως το πρόγραμμα. Πρέπει πρώτα να εξηγήσει ποια δοκιμή θα αποδείξει την υπόθεσή της. Φάση ΙΑ — Η μεγάλη πρόκληση Περιγραφή λειτουργίας Ένας εξαεριστήρας πρέπει να λειτουργεί όταν: πατηθεί το START, ο προφυλακτήρας είναι κλειστός, δεν έχει ενεργοποιηθεί το θερμικό, και να παραμένει σε λειτουργία μέχρι να πατηθεί το STOP. Μια κόκκινη λυχνία πρέπει να ανάβει όταν ενεργοποιηθεί το θερμικό. Αντιστοίχιση σημάτων Αποστολή ομάδων Ομάδα Α: δημιουργεί τη λύση σε LADDER. Ομάδα Β: δημιουργεί τη λύση σε FBD. Ομάδα Γ: δημιουργεί τη λύση σε STL. Ομάδα Δ: σχεδιάζει τις δοκιμές επαλήθευσης. Στη συνέχεια οι ομάδες ανταλλάσσουν λύσεις και προσπαθούν να μεταφράσουν το πρόγραμμα μιας άλλης ομάδας στη δική τους γλώσσα. Υποχρεωτικές δοκιμές Φάση ΙΒ — Σύγκριση των γλωσσών Οι μαθητές βαθμολογούν κάθε γλώσσα από 1 έως 5. Δεν υπάρχει μία απάντηση σωστή για όλα τα κριτήρια. Οι μαθητές πρέπει να αιτιολογήσουν κάθε βαθμολογία με παράδειγμα από τα πειράματά τους. Προκλήσεις επέκτασης Επέκταση Α — Δύο τρόποι εκκίνησης Ο κινητήρας ξεκινά από I1 ή I5, αλλά μόνο όταν οι I3 και I4 επιτρέπουν τη λειτουργία: Q1=(I1 OR I5) AND I3 AND I4 Οι μαθητές υλοποιούν τη σχέση και στις τρεις γλώσσες. Επέκταση Β — Επιλογή χειροκίνητης ή αυτόματης λειτουργίας Με I6 = 0 επιλέγεται χειροκίνητη λειτουργία. Με I6 = 1 επιλέγεται αυτόματη λειτουργία από αισθητήρα I7. Οι μαθητές διερευνούν αν χρειάζονται κοινή έξοδο, βοηθητικές μνήμες ή ξεχωριστά τμήματα προγράμματος. Επέκταση Γ — Καθυστέρηση εκκίνησης Η Q1 ενεργοποιείται πέντε δευτερόλεπτα μετά την ικανοποίηση των συνθηκών. Ερώτημα: Μπορεί ο νέος αυτοματισμός να περιγραφεί μόνο με AND, OR και NOT ή χρειάζεται νέα κατηγορία εντολών; Επέκταση Δ — Προτεραιότητα ασφάλειας Αν ενεργοποιηθούν ταυτόχρονα START και STOP, η έξοδος πρέπει να παραμένει απενεργοποιημένη. Οι μαθητές κατασκευάζουν δύο διαφορετικά προγράμματα και ελέγχουν ποιο δίνει πραγματική προτεραιότητα στο STOP. Επέκταση Ε — Μετάφραση άγνωστου προγράμματος Κάθε ομάδα δημιουργεί ένα μικρό πρόγραμμα χωρίς να αποκαλύψει την περιγραφή λειτουργίας. Η επόμενη ομάδα πρέπει: να το αναλύσει, να κατασκευάσει τον πίνακα αλήθειας, να γράψει την περιγραφή λειτουργίας, να το μεταφέρει σε άλλη γλώσσα, να επαληθεύσει ότι οι δύο εκδοχές είναι ισοδύναμες. Ρόλοι μέσα στην ομάδα Κάθε ομάδα μπορεί να αποτελείται από τέσσερις μαθητές: Αναλυτής λειτουργίας: μετατρέπει την περιγραφή σε λογικές συνθήκες. Προγραμματιστής: κατασκευάζει το πρόγραμμα. Χειριστής προσομοίωσης: μεταβάλλει τις εισόδους και εκτελεί τις δοκιμές. Ελεγκτής–καταγραφέας: συγκρίνει προβλέψεις και αποτελέσματα και καταγράφει αποκλίσεις. Οι ρόλοι αλλάζουν σε κάθε νέα δραστηριότητα. Ερωτήσεις αναστοχασμού Τι παραμένει σταθερό όταν αλλάζουμε γλώσσα προγραμματισμού; Τι αλλάζει; Ποια γλώσσα σας βοήθησε περισσότερο να εντοπίσετε το σφάλμα; Γιατί δύο οπτικά διαφορετικά προγράμματα μπορούν να είναι ισοδύναμα; Είναι δυνατό ένα συντακτικά σωστό πρόγραμμα να λειτουργεί λανθασμένα; Ποια είναι η διαφορά μεταξύ προσομοίωσης και δοκιμής σε πραγματική εγκατάσταση; Γιατί πρέπει να ελέγχουμε όλους τους κρίσιμους συνδυασμούς εισόδων; Πότε χρειαζόμαστε βοηθητική μνήμη; Πώς αναγνωρίζουμε ότι ένα κύκλωμα είναι ακολουθιακό; Ποια μέρη της εγκατάστασης δεν αντικαθίστανται από το πρόγραμμα PLC; Αναμενόμενο συμπέρασμα Ο ίδιος αυτοματισμός μπορεί να προγραμματιστεί με διαφορετικές γλώσσες, αρκεί να διατηρείται η ίδια λογική σχέση μεταξύ εισόδων, εσωτερικών καταστάσεων και εξόδων. Η LADDER αναπαριστά τη λειτουργία με επαφές και πηνία, η FBD με λογικές βαθμίδες και η STL με διαδοχικές εντολές. Η επιλογή της γλώσσας επηρεάζει κυρίως τον τρόπο σχεδίασης, ανάγνωσης και διάγνωσης του προγράμματος — όχι την επιθυμητή λειτουργία του αυτοματισμού. Πριν από τον προγραμματισμό πρέπει να αναλύουμε την περιγραφή λειτουργίας, να καθορίζουμε εισόδους και εξόδους και να προβλέπουμε τις κρίσιμες καταστάσεις. Μετά τον προγραμματισμό απαιτείται συστηματική επαλήθευση. Τέλος, το PLC υλοποιεί το λογικό μέρος του ελέγχου. Δεν αντικαθιστά το κύκλωμα ισχύος, τους επαφείς, τις ηλεκτρικές προστασίες, την ασφαλή καλωδίωση ούτε τις ειδικές διατάξεις ασφαλείας μιας εγκατάστασης.
Στοιχείο
Διεύθυνση
Κατάσταση 1
Μπουτόν λειτουργίας
I1
Πατημένο
Επαφή προφυλακτήρα
I2
Κλειστός προφυλακτήρας
Επαφέας ανεμιστήρα
Q1
Ενεργοποιημένος
I1 – START
I2 – Προφυ λακτήρ ας
Πρόβλεψη Q1
Πειραματικό Q1
Επιβεβαίωση
0
0
0
1
1
0
1
1
Γραμμή
Υπόθεση μαθητών
Ερμηνεία
LD I1
One
OneΦόρτωσε τη λογική κατάσταση της I1
AND I2
Two
Εκτέλεσε AND με την I2
= Q1
Three
Αποθήκευσε το αποτέλεσμα στην Q1
I2
Q2
0
One
1
Two
Στοιχείο διερεύνησης
Καταγραφή
Παρατηρούμενο σύμπτωμα
One
Αναμενόμενη λειτουργία
Two
Κατάσταση εισόδων
Three
Κατάσταση εξόδου
Four
Ύποπτη εντολή ή επαφή
Five
Πιθανή αιτία
Six
Προτεινόμενη διόρθωση
Six
Δοκιμή επιβεβαίωσης
Six
Σήμα
Διεύθυνση
START
I1
STOP
I2
Προφυλακτήρας κλειστός
I3
Θερμικό
I4
Επαφέας κινητήρα
Q1
Κόκκινη λυχνία
Q2
Δοκιμή
Αναμενόμενη Q1
Αναμενόμενη Q2
START με ανοικτό προφυλακτήρα
0
0
START με ενεργοποιημένο θερμικό
0
1
START με όλες τις άδειες ενεργές
1
0
Απελευθέρωση START
1
0
Πάτημα STOP
0
0
Άνοιγμα προφυλακτήρα κατά τη λειτουργία
0
0
νεργοποίηση θερμικού κατά τη λειτουργία
0
1
Table Caption
Κριτήριο
LADDER
FBD
STL
Ομοιότητα με ηλεκτρολογικό σχέδιο
One
One
One
Άμεση αναγνώριση λογικών πράξεων
Two
Two
Two
Ευκολία πρώτης εκμάθησης
Three
Three
Three
Ευκολία διάγνωσης βλάβης
Four
Four
Four
Ευκολία ανάγνωσης μεγάλου προγράμματος
Five
Five
Five
Ευκολία μετατροπής από πίνακα αλήθειας
Six
Six
Six
ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΛΟΓΙΑΣ, ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΑΥΤΟΜΑΤΙΣΜΟΥ                                                                                                                       1o ΕΠΑΛ ΑΜΑΡΟΥΣΙΟΥ ΤΕΧΝΙΚΟΣ ΗΛΕΚΤΡΟΛΟΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ, ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΔΙΚΤΥΩΝ                                                                                                 3ο ΕΚ Β ΑΘΗΝΑΣ (ΑΜΑΡΟΥΣΙΟΥ)
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΙΚΩΝ ΑΥΤΟΜΑΤΙΣΜΩΝ
Διδακτικοί στόχοι Με την ολοκλήρωση της δραστηριότητας οι μαθητές θα μπορούν: Γνώσεις Να αναγνωρίζουν τις γλώσσες LADDER, FBD και STL. Να εξηγούν τις βασικές διαφορές τους. Να διακρίνουν τη λειτουργία από τον τελεστή μιας εντολής. Να εξηγούν τη χρήση εισόδων, εξόδων και βοηθητικών μνημών. Να διακρίνουν ένα συνδυαστικό από ένα ακολουθιακό κύκλωμα. Δεξιότητες Να μετατρέπουν μια περιγραφή λειτουργίας σε πίνακα αλήθειας. Να σχεδιάζουν τον ίδιο αυτοματισμό σε LADDER και FBD. Να ερμηνεύουν ένα απλό πρόγραμμα STL. Να δοκιμάζουν διαφορετικούς συνδυασμούς εισόδων. Να εντοπίζουν σφάλματα σε ένα πρόγραμμα. Να επιλέγουν την καταλληλότερη γλώσσα για μια συγκεκριμένη εφαρμογή. Στάσεις Να αιτιολογούν τις επιλογές τους. Να ελέγχουν μια λύση πριν τη μεταφέρουν σε πραγματική εγκατάσταση. Να συνεργάζονται και να συγκρίνουν διαφορετικές προσεγγίσεις. Να αντιμετωπίζουν το πρόγραμμα ως λογικό μοντέλο μιας πραγματικής λειτουργίας.