http://www.spinellis.gr/pubs/conf/1995-TEE-Control-OIS/html/teeconf1.html This is an HTML rendering of a working paper draft that led to a publication. The publication should always be cited in preference to this draft using the following reference:
|
Διομήδης Σπινέλλης
Δρ. Μηχανικός
Λογισμικού
SENA A.E.
Κύπρου 27, 152 37 Φιλοθέη
Στις επόμενες ενότητες περιγράφουμε τις λειτουργίες και τις τεχνικές υλοποίησης του συστήματος ελέγχου θερμής έλασης το οποίο αναπτύξαμε για λογαριασμό της Ελληνικής Βιομηχανίας Αλουμινίου (ΕΛΒΑΛ Α.Ε.) Το σύστημα αποτελεί βελτιωμένη υλοποίηση υπάρχοντος συστήματος το οποίο είχε αναπτυχθεί εκτός Ελλάδος. Ο ρόλος του προγράμματος είναι η διαμεσολάβηση μεταξύ του χειριστή του ελάστρου και του προγραμματιζόμενου ελεγκτή (PLC) [1, σ. 662] που καθορίζει την πορεία της έλασης (Operator Interface System - OIS). Κατά τη λειτουργία του λαμβάνει πληροφορίες από τους φούρνους και το έλαστρο σχετικά με την πορεία της προθέρμανσης και της έλασης του υλικού, επιτρέπει στο χειριστή να επιλέξει το κατάλληλο σενάριο έλασης και καταβιβάζει στο PLC του ελάστρου τις αντίστοιχες παραμέτρους. Το σύστημα είναι πλήρως παραμετρικό ως προς τη διάταξη και το περιεχόμενο των οθονών, το χειρισμό του και τα σενάρια έλασης. Για τη διασφάλιση της λειτουργίας του σε συνεχή βάση χρησιμοποιήθηκαν τεχνικές υλοποίησης με βάση το βρετανικό στρατιωτικό πρότυπο DEF STAN 00-55 ενώ για τον αρχικό έλεγχο του συστήματος αναπτύξαμε προσομοιωτή PLC.
Η διαδικασία της έλασης περιλαμβάνει την προθέρμανση πλακών αλουμινίου (βάρους μέχρι και 25 τόνων) σε φούρνους και στη συνέχεια τη μεταφορά τους στο έλαστρο όπου με μια σειρά από διαδοχικά περάσματα (πάσα) μετατρέπονται από πλάκες πάχους μέχρι και 600mm σε φύλλα ή ρολά πάχους μέχρι 2.8mm. Κάθε πάσο κάνει την πλάκα και πιο λεπτή σύμφωνα με παραμέτρους που έχουν σχέση με το αρχικό κράμα και το τελικό προϊόν. Τέτοιες παράμετροι είναι η ταχύτητα της πλάκας πάνω στο ραουλόδρομο, η τάνυση, το πομπέ, τα σαπουνέλαια, η λειτουργία του τυλικτικού (για προϊόντα που καταλήγουν σε ρολά), το ξάκρισμα και το ψαλίδισμα. Το σύνολο των παραμέτρων αυτών για όλα τα πάσα αποτελεί το πρόγραμμα έλασης. Κατά την παραγωγή ο χειριστής επιλέγει ένα πρόγραμμα έλασης σύμφωνα με τα στοιχεία της πλάκας που θα επεξεργαστεί και το τελικό προϊόν, καταβιβάζει τις παραμέτρους της έλασης στο PLC και στη συνέχεια παρακολουθεί τη διαδικασία ελέγχοντας τη λειτουργία του ελάστρου. Το πρόγραμμα λειτουργεί σε υπολογιστή IBM PS/2 επικοινωνώντας με το έλαστρο μέσω του PLC και με τους φούρνους προθέρμανσης μέσω τοπικού δικτύου.
Το νέο πρόγραμμα ελέγχου (SENA OIS) αποτελεί επανυλοποίηση και επέκταση του υπάρχοντος OIS με τις παρακάτω βελτιώσεις:
Το πρόγραμμα περιλαμβάνει 5 οθόνες ελέγχου από τις οποίες εκτελούνται 12 βασικές λειτουργίες.
Οθόνη ελάσεως Η οθόνη αυτή εμφανίζει τα στοιχεία της πλάκας προς έλαση και του τελικού προϊόντος καθώς και τις παραμέτρους για κάθε πάσο σε μορφή φύλλου εργασίας. Κατά την έλαση ένας δεύτερος δρομέας δείχνει το πάσο το οποίο εκτελείται.
Οθόνη φούρνων Η επιλογή αυτή παρουσιάζει στον χειριστή τα περιεχόμενα των φούρνων, δηλαδή τις πλάκες που προθερμαίνονται - ομογενοποιούνται. Οι οθόνη αυτή είναι απαραίτητη για να προετοιμαστεί ο χειριστής για την επόμενη πλάκα που θα επεξεργαστεί.
Οθόνη επόμενης πλάκας Η οθόνη αυτή θα είναι πανομοιότυπη με την οθόνη ελάσεως, αλλά θα δείχνει στο χειριστή τα στοιχεία και το πρόγραμμα της επόμενης προς έλαση πλάκας. Τα στοιχεία αυτά προέρχονται από το συνδυασμό της πλάκας που θα παραληφθεί από τους φούρνους και περιορισμών όπως το κράμα και οι διαστάσεις της. Από την οθόνη αυτή ο χειριστής μπορεί να επιλέξει και πρόγραμμα πάσων είτε με βάση τα στοιχεία (PDI) της πλάκας ή με επιλογή ανάμεσα σε προγράμματα για τα ίδια PDI. Ακόμα είναι δυνατή ή αλλαγή ενός προγράμματος πάσων και η αποθήκευσή του για μελλοντική χρήση.
Βοηθητικές οθόνες Το πρόγραμμα υποστηρίζει και μια σειρά από βοηθητικές οθόνες που χρησιμοποιούνται κατά τη συντήρηση (αλλαγή ραούλων) και τη ρύθμιση (δεδομένα AGC) του ελάστρου καθώς και οθόνη που περιγράφει συνοπτικά τα πλήκτρα λειτουργίας.
Το σύστημα επικοινωνεί με τον υπολογιστή που ελέγχει την προθέρμανση των πλακών μέσω τοπικού δικτύου. Με τον τρόπο αυτό το πρόγραμμα μπορεί κάθε στιγμή να παρουσιάσει το χειριστή τις επόμενες πλάκες που μπορεί να παραλάβει. Η μπορεί να γίνει είτε με τη λογική FIFO (first-in first-out) ή LIFO (last-in first-out) ανάλογα με τις δυνατότητες που παρουσιάζει ο αντίστοιχος φούρνος. Σε περίπτωση μη λειτουργίας του τοπικού δικτύου έχει ληφθεί πρόνοια έτσι ώστε το σύστημα να μεταπίπτει σε αυτόνομη λειτουργία με βάση τα τελευταία στοιχεία των φούρνων για όσο διάστημα αυτό χρειαστεί.
H επικοινωνία του συστήματος με το PLC του ελάστρου είναι αμφίδρομη μέσω δύο ομοίων αρχείων ακεραίων αριθμών τα οποία διατηρούνται σε αντιστοιχία από το PLC. Το ένα αρχείο στέλνεται από το SENA OIS στο PLC ενώ στην οθόνη εμφανίζονται πάντα τα στοιχεία από το δεύτερο για να εξασφαλίζεται έτσι ο έλεγχος της επικοινωνίας μεταξύ του SENA OIS και του PLC [5, σ. 8-24].
Για την ευκολία προσαρμογής του προγράμματος σε βελτιώσεις της παραγωγικής διαδικασίας το SENA OIS παραμετροποιείται ως προς την παρουσίαση των δεδομένων στις οθόνες, τις θέσεις των αρχείων και μερικά άλλα χαρακτηριστικά μέσω του αρχείου αρχικοποίησης. Το αρχείο αυτό περιέχει τις εντολές παραμετροποίησης ως περιγραφές των οθονών και των πεδίων τους. Άλλες παραμετροποιήσεις πραγματοποιούνται με την ανάθεση των επιθυμητών τιμών σε συγκεκριμένες μεταβλητές.
# Screen definition file
FIELD_COL = mkcolor(C_RED, C_LIGHT_GRAY) # Main screen # name row col width height screen scr_main 0 0 80 25 { back "main.scr" paint 2 2 10 4 FIELD_COL 80 # type R C wd type format var color hicolor accept output 1 2 5 INT "%-4d" num FG_NUM EDIT_HI input 2 13 7 STRING "%-6s" rllt NORM EDIT_HI NULL output 5 13 6 FLOAT "% 6.01f" last OUT_COL EDIT_HI output 1 8 70 STRING "%-69s" comment FG_PROG_SEL EDIT_HI # var row col wid hght norm high rhigh rown fixcol skip grid grid_pass 7 1 78 16 NORM HI HI 42 3 FALSE { # title width type format var color hicolor r/o accept ginput "NUMBER" 5 INT "%3d)" p_n GFNORM GRD_ED1 TRUE [1 99] ginput " VALUE" 8 FLOAT "% 7.02f" p_val GFNORM GRD_ED1 FALSE ver_val gtoggle"USE" 5 "-" "X" p_use NORM GRD_ED2 FALSE ver_pdu } }
Παράδειγμα καθορισμού οθόνης.
Το αρχείο παραμετροποίησης είναι κατά βάση ελεύθερης δομής. Οι χαρακτήρες tab, κενό και form feed δε λαμβάνονται υπ' όψη κατά την ανάγνωση. Επιπλέον όλες οι εντολές μπορούν να εκτείνονται σε περισσότερες της μιας γραμμές χωρίς κανένα περιορισμό. Ο χαρακτήρας # χρησιμοποιείται για να δηλώσει σχόλια.
Τα βασικά στοιχεία που σχηματίζουν το αρχείο παραμετροποίησης είναι τα εξής:
Σε οποιοδήποτε σημείο επιτρέπεται ένας ακέραιος επιτρέπεται να γραφεί και μια αριθμητική έκφραση χρησιμοποιώντας τους αριθμητικούς τελεστές ~ - * / % + - << >> & ^ | () με σημασία ίδια με αυτή που τους αποδίδεται και στη γλώσσα C.
Μία σειρά από εξειδικευμένες εντολές επιτρέπουν τον ορισμό των οθονών και των πεδίων του προγράμματος. Οι σημαντικότερες από αυτές είναι οι εξής:
Screen | Ορισμός μιας οθόνης |
Back | Αρχείο φόντου που αντιστοιχεί σε οθόνη |
Paint | Προσδιορισμός του χρώματος μιας περιοχής |
Input | Πεδίο εισόδου με σταθερό ή παραμετρικό έλεγχο ορίων |
Output | Πεδίο στο οποίο εμφανίζεται μια σταθερή τιμή |
Toggle | Πεδίο δύο καταστάσεων |
Toggle3 | Πεδίο τριών καταστάσεων |
Select | Πεδίο πολλαπλών επιλογών (μενού) |
Grid | Πεδίο τύπου λογιστικού φύλλου (spreadsheet grid) |
Ginput | Πεδίο εισόδου σε λογιστικό φύλλο |
Gtoggle | Πεδίο δύο καταστάσεων σε λογιστικό φύλλο |
Κατά την εκκίνηση το σύστημα διαβάζει το αρχείο αρχικοποίησης και προσπαθεί να αποκαταστήσει επικοινωνία με το PLC καθώς και με το τοπικό δίκτυο των φούρνων. Στη συνέχεια το σύστημα εισέρχεται στον κεντρικό βρόγχο του συστήματος στον οποίο δέχεται και επεξεργάζεται εντολές από το χρήστη. Το αποτέλεσμα των εντολών αυτών είναι η μεταπτώσεις του συστήματος ανάμεσα σε καταστάσεις σύμφωνα με υλοποίηση μηχανής πεπερασμένων καταστάσεων.
Το SENA OIS χωρίζεται εσωτερικά στα παρακάτω υποσυστήματα:
Κεντρική επεξεργασία Αρχικοποίηση του προγράμματος, επεξεργασία των εντολών και εμφάνιση των αποτελεσμάτων στην οθόνη. Το υποσύστημα αυτό υλοποιεί και τη μηχανή καταστάσεων (state machine) που περιγράφηκε παραπάνω.
Ρουτίνες αρχείων Ανάγνωση και εγγραφή στοιχείων από τα αρχεία των φούρνων, προτύπων πάσων και ημερομηνιών αλλαγής ραούλων. Το υποσύστημα αυτό κρατάει και το εφεδρικό αντίγραφο του αρχείου των φούρνων για την περίπτωση που διακοπεί η επικοινωνία με το δίκτυο.
PLC Επικοινωνία με το PLC καθώς και εξομοίωσή του για έλεγχο και off-line επικοινωνία του προγράμματος.
Παραμετροποίηση προγράμματος Ρουτίνες για την επεξεργασία του αρχείου αρχικοποίησης το οποίο καθορίζει με δηλωτικό τρόπο τις παραμέτρους επικοινωνίας με το χρήστη (οθόνες, μενού, χρώματα), καθώς και τα ονόματα των διαφόρων αρχείων.
Επικοινωνία με το χρήστη Για να αποφευχθούν προβλήματα συμβατότητας ξένων βιβλιοθηκών με τη βιβλιοθήκη ελέγχου του PLC την επικοινωνία με το χρήστη τη χειρίζεται εξ' ολοκλήρου το SENA OIS. Το υποσύστημα αυτό υλοποιεί βασικά πεδία εισόδου κειμένου και αριθμών, πεδία πολλαπλών καταστάσεων (toggle) καθώς και πεδία επιλογών (menu). Τα πεδία αυτά μπορούν να συντεθούν είτε ανεξάρτητα σε συγκεκριμένες οθόνες είτε να ομαδοποιηθούν πρώτα σε ένα πεδίο τύπου spreadsheet grid.
Ρουτίνες χαμηλού επιπέδου Έλεγχος της οθόνης, του πληκτρολογίου και του ήχου. Παγίδευση των κρίσιμων λαθών του DOS και μετασκευή τους σε εσωτερικά λάθη του συστήματος. Η τεχνική αυτή χρησιμοποιείται για τον άμεσο έλεγχο της επικοινωνίας με το τοπικό δίκτυο.
Από την αρχή της υλοποίησης του προγράμματος απαιτήθηκε ο σχεδιασμός των οθονών επικοινωνίας με το χρήστη με τρόπο ευέλικτο, δηλωτικό και εύκολα τροποποιήσιμο. Επιπλέον οι προδιαγραφές ποιότητας της εφαρμογής απέκλειαν τη χρήση εξωτερικών βιβλιοθηκών και τη δυναμική χρήση μνήμης μετά την εκκίνηση του προγράμματος. Το πρόβλημα λύθηκε με τον ορισμό της εξειδικευμένης γλώσσας που περιγράφηκε παραπάνω για τον προσδιορισμό της επικοινωνίας με το χρήστη. Οι διάφορες οθόνες ορίζονται ως σύνολα υπο-οντοτήτων (subwidgets) των οποίων η θέση ορίζεται σε απόλυτες συντεταγμένες.
Για την απλούστευση του προγραμματισμού στη γλώσσα αυτή επιτρέπονται οι συνηθισμένες πράξεις μεταξύ ακέραιων καθώς και η αναφορά σε μεταβλητές και συναρτήσεις που ορίζονται μέσα στο πρόγραμμα. Έτσι, για κάθε υπο-οντότητα εισόδου ή εξόδου ορίζεται και η μεταβλητή που περιέχει τα δεδομένα καθώς και η συνάρτηση που κάνει τον έλεγχο των δεδομένων (όταν αυτά δεν μπορούν να περιγραφούν απλά ως ένα όριο).
Η εφαρμογή υλοποιεί ένα διερμηνευτή (σε 457 γραμμές yacc και lex[1]) ο οποίος διαβάζει το αρχείο αρχικοποίησης και μετατρέπει τους ορισμούς στην κατάλληλη δομή δεδομένων. Για να μπορούν να εκφραστούν στον πηγαίο κώδικα της γλώσσας ορισμού τιμές μεταβλητών και συναρτήσεων του C προγράμματος ορίζονται μέσα στο C πρόγραμμα μακροεντολές του τύπου:
#define var_define(varname) \ symbol_table_add(symtab, &varname, #varname)
που προσθέτουν στον πίνακα συμβόλων τη διεύθυνση και το όνομα της μεταβλητής για την οποία καλούνται. Με τη χρήση του διερμηνευτή η εφαρμογή αποκτά πλήρη έλεγχο της υλοποίησης της διάταξης των οθονών ενώ παράλληλα διευκολύνεται τόσο ο πειραματισμός πάνω στη διάταξή τους όσο και οι αλλαγές κατά το χρόνο της λειτουργίας.
Λόγω της φύσης της παραγωγικής διαδικασίας ο αρχικός έλεγχος του συστήματος δεν μπορούσε να γίνει στο περιβάλλον πραγματικής λειτουργίας. Έτσι αναπτύξαμε ειδικό λογισμικό προσομοίωσης [6, σ. 466] του ελάστρου το οποίο προσφέρει ένα ασφαλές και οικονομικό περιβάλλον για τον έλεγχο του συστήματος. Το λογισμικό αυτό συνδέεται με το υπόλοιπο σύστημα με τη μορφή βιβλιοθήκης χωρίς να επηρεάζει την υπόλοιπη λειτουργία του. Όταν το σύστημα λειτουργεί το λογισμικό προσομοίωσης υλοποιεί τους κύκλους σάρωσης (scan cycles) του PLC και επιπλέον εμφανίζει τη διαδικασία έλασης όπως αυτή είναι ορατή από το SENA OIS δια μέσω του PLC. Επιπλέον κατά τη διάρκεια της λειτουργίας του λογισμικού προσομοίωσης ο χειριστής του SENA OIS μπορεί να δώσει εντολές για την προσομοίωση διαφόρων πραγματικών καταστάσεων. Ένα πρόσθετο χαρακτηριστικό του λογισμικού προσομοίωσης είναι η αυτόματη λειτουργία του σε συμπιεσμένο χρόνο η οποία επιτρέπει τον έλεγχο χιλιάδων παραμέτρων σε κλάσμα του χρόνου ο οποίος θα χρειαζόταν στην παραγωγή.
To SENA OIS χρησιμοποιείται με επιτυχία στην παραγωγή και διανύει ήδη τον δεύτερο κύκλο βελτιώσεων και επεκτάσεων. Μετά από μια σύντομη περίοδο προσαρμογής τόσο οι μηχανικοί παραγωγής όσο και οι χειριστές εξετίμησαν και εκμεταλλεύτηκαν τις νέες δυνατότητες που προσφέρει ενώ η δυνατότητα της εύκολης προσαρμογής, επέκτασης και υποστήριξής του έδωσαν το έναυσμα για την μελέτη πρόσθετων βελτιστοποιήσεων της παραγωγικής διαδικασίας. Το μέλλον των βιομηχανικών εφαρμογών ανήκει στα αποκεντρωμένα συστήματα ανοικτής αρχιτεκτονικής [3] · πιστεύουμε ότι η υλοποίηση του SENA OIS με βάση αυτά τα πρότυπα βοήθησε σημαντικά στην άμεση αποδοχή του αλλά και υιοθέτησή του ως βάση για την υποστήριξη νέων τεχνολογιών ελέγχου.
Στην υλοποίηση του συστήματος έχουν συμβάλλει από την πλευρά της SENA ο Ισίδωρος Κουβελάς, ο Σπύρος Μολφέτας και ο Περικλής Τσαχαγέας και από την πλευρά της ΕΛΒΑΛ ο Θεόδωρος Αραμπατζής ο Ανδρέας Μαυρουδής και ο Κώστας Χρηστίδης.