Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών



Σχετικά έγγραφα
SIMATIC MANAGER SIMATIC MANAGER

Εισαγωγή. Εποπτικός Έλεγχος Βιοµηχανικών ιεργασιών. Στόχος συστήµατος διαχείρισης ελέγχου

Το γραφικό περιβάλλον της εφαρμογής εποπτικού ελέγχου θα πρέπει να έχει κατ ελάχιστο τις παρακάτω διακριτές περιοχές στην κεντρική γραφική οθόνη:

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ , Ελλάδα, Τηλ Φαξ

Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ. Ασκήσεις 1-2 Εισαγωγή

ΒΙΟΜΗΧΑΝΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΑΥΤΟΜΑΤΟ ΣΥΣΤΗΜΑ ΣΥΛΛΟΓΗΣ ΜΠΑΧΑΡΙΚΩΝ ΠΕΡΙΕΧΟΜΕΝΑ

Συστήματα SCADA. Τμήμα Ηλεκτρολόγων Μηχανικών Τ.Ε. ΤΕΙ Δυτ. Μακεδονίας Ακαδημαϊκό Έτος Ν. Πουλάκης

ΕΡΓΑΣΤΗΡΙΟ ΒΙΟΜΗΧΑΝΙΚΩΝ ΕΛΕΓΚΤΩΝ

POWERPOINT Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων.

MICROBOT SERVER MICROBOT MONITOR ΕΦΑΡΜΟΓΕΣ ΕΛΕΓΧΟΥ ΚΑΙ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ MICROBOT

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u

Α.2 Μαθησιακά Αποτελέσματα Έχοντας ολοκληρώσει επιτυχώς το μάθημα οι εκπαιδευόμενοι θα είναι σε θέση να:

ΘΕΜΑ : ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ. ΔΙΑΡΚΕΙΑ: 1 περίοδος

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Εγκατάσταση του Arduino IDE

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Ολοκληρωμένος Βιομηχανικός Έλεγχος

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Ο Οδηγός γρήγορης εκκίνησης

Οδηγίες για την εγκατάσταση του πακέτου Cygwin

Εκτέλεση προγράμματος

Εισαγωγή στην Πληροφορική

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP)

Epsilon Net PYLON Platform

Σχεδιαστικά Προγράμματα Επίπλου

Διαχείριση Επιλογών Διαμόρφωσης

Αυτόματος κλιμακοστασίου με τη χρήση PLC. 1 Θεωρητικό μέρος

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

PRISMA Win POS Sync Merge Replication

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής Πρόλογος... 11

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία

Εισαγωγή στο KNX. Ανακαλύψτε το KNX

Εγκατάσταση της έκδοσης 5.30

Λειτουργίες CNC-DNC. Επισκόπηση λειτουργιών CNC Επισκόπηση λειτουργιών DNC Επικοινωνίες. Λειτουργίες CNC-DNC. Γ.Βοσνιάκος-ΕΡΓΑΛΕΙΟΜΗΧΑΝΕΣ

Αναπαραγωγή με αρχεία ήχου

Εγχειρίδιο Χρήσης V3.0

Academia Financials Γενική Λογιστική ΠΕΡΙΕΧΟΜΕΝΑ

Προετοιμασία σύνδεσης του modem. Εγκατάσταση του Modem

-I/O-SYSTEM 750 BMS ΕΛΕΓΧΟΣ ΚΤΙΡΙΑΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΚΛΙΜΑΤΙΣΜΟΥ

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Ενημέρωση σε Windows 8.1 από τα Windows 8

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

MS SQL 2012 Express (Εγκατάσταση με Advanced Services)

ΕΛΕΓΧΟΣ ΒΙΟΜΗΧΑΝΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ ΚΕΦΑΛΑΙΟ 6 ΚΕΦΑΛΑΙΟ 6 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΛΕΓΧΟΥ - DCS (DISTRIBUTED CONTROL SYSTEMS)

ΥΠΗΡΕΣΙΑ : ΕΠΙΣΚΕΥΗ ΚΑΙ ΑΝΑΒΑΘΜΙΣΗ ΣΥΤΗΜΑΤΩΝ SCADA ΤΩΝ ΔΕ ΚΙΛΚΙΣ ΚΑΙ ΔΕ ΠΙΚΡΟΛΙΜΝΗΣ ΑΝΑΛΥΤΙΚΟ ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ

ΕΝΗΜΕΡΩΤΙΚΟ ΦΥΛΛΑΔΙΟ ΠΡΩΤΟΕΤΩΝ ΦΟΙΤΗΤΩΝ

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

ΕΓΚΑΤΑΣΤΑΣΗ ΣΥΝ ΕΣΗΣ DIAL-UP ΣΕ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ WINDOWS XP

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Κεφάλαιο 4: Λογισμικό Συστήματος

RobotArmy Περίληψη έργου

Τεχνική Οδηγία. Εγκατάσταση & ρύθμιση MS ISA Server 2000 στο περιβάλλον των σχολικών εργαστηρίων. Έκδοση 1.0. Ιανουάριος 2005

Με λίγα λόγια, το TCP/IP καθορίζει τον τρόπο που πακετάρονται και μεταφέρονται τα δεδομένα της σύνδεσής μας.

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Κεφάλαιο 4. Διδακτικοί Στόχοι. Για την αναγκαιότητα, τον τρόπο συνεργασίας, τις δυνατότητες και τον τρόπο εγκατάστασης των περιφερειακών συσκευών.

Πανεπιστήµιο Θεσσαλίας

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Σημειώσεις Θεωρίας

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

DIGITAL MANUFACTURING: CASE STUDY ΕΞΥΠΝΗΣ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΣΕ ΒΙΟΜΗΧΑΝΙΑ ΓΑΛΑΚΤΟΚΟΜΙΚΩΝ

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb)

Παραδείγματα Δεδομένων: Οι τιμές στο κυλικείο, μια λίστα από ονόματα, τα σήματα της τροχαίας.

Microsoft PowerPoint 2010 Πανεπιστήμιο Κύπρου

Εισαγωγή στο πρόγραμμα Microsoft word 2003

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Sricam R CONCEPTUM. SricamPC. Εγχειρίδιο εφαρμογής

Αυτόνομοι Πράκτορες. ΝΑΟ Μουσικός

Ενότητα 1η. Εισαγωγή στην Πληροφορική

ΣΥΣΤΗΜΑΤΑ SCADA. Μέρος 5. Δικτύωση για Απομακρυσμένο Έλεγχο και Μεταφορά Δεδομένων

Πρόγραμμα Πιστοποίησης Γνώσεων και Δεξιοτήτων H/Y ΕΝΟΤΗΤΑ 1: «ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Παρακάτω προτείνεται μια αλληλουχία ενεργειών την οποία ο χρήστης πρέπει να ακολουθήσει για να αξιοποιήσει τις δυνατότητες της εφαρμογής.

Ο ΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ. MS SQL Server Για τις ανάγκες των εφαρµογών της

Information Technology for Business

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Οδηγίες Χρήσης της MySQL

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

Interfox.gr. Κωδικοποίηση Κάμερας

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Επεξεργασίας Κειμένου. 2. Κύρια Οθόνη Της Εφαρμογής Κειμένου ΣΤΟΧΟΙ:

Τεχνική Οδηγία. Εγκατάσταση & ρύθµιση MS ISA Server 2000 στο περιβάλλον των σχολικών εργαστηρίων. Έκδοση 1.0. Ιανουάριος 2005

Εγκατάσταση Microsoft SQL Server

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: Συστημάτων & Αυτόματου Ελέγχου ΕΡΓΑΣΤΗΡΙΟ: Γενικής Ηλεκτροτεχνίας Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Χούντρα Θεόδωρου του Σωτηρίου Αριθμός Μητρώου: 6136 Θέμα «Συλλογή Δεδομένων και Εποπτικός Έλεγχος στο περιβάλλον Cimplicity της GeFanuc» Επιβλέπων Μάνεσης Σταμάτης Καθηγητής Αριθμός Διπλωματικής Εργασίας: Πάτρα, Φεβρουάριος 2012

ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «Συλλογή Δεδομένων και Εποπτικός Έλεγχος στο περιβάλλον Cimplicity της GeFanuc» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Χούντρα Θεόδωρου του Σωτηρίου Αριθμός Μητρώου: 6136 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 29/2/2012 Ο Επιβλέπων Σταμάτιος Μάνεσης Καθηγητής Παν. Πατρών Ο Διευθυντής του Τομέα Νικόλαος Κούσουλας Καθηγητής Παν. Πατρών

Αριθμός Διπλωματικής Εργασίας: Θέμα: «Συλλογή Δεδομένων και Εποπτικός Έλεγχος στο περιβάλλον Cimplicity της GeFanuc» Φοιτητής: Χούντρας Θεόδωρος Επιβλέπων: Μάνεσης Σταμάτιος Περίληψη Η παρούσα διπλωματική ασχολείται με το σχεδιασμό συστημάτων SCADA στο λογισμικό Proficy Cimplicity. Στο 1ο κεφάλαιο περιγράφονται οι βασικές αρχές των Βιομηχανικών Αυτοματισμών, των Βιομηχανικών Δικτύων, των Ιεραρχικών μοντέλων στην παραγωγή και των συστημάτων SCADA. Στο 2ο κεφάλαιο περιγράφονται όλες οι λειτουργικές δυνατότητες που συνθέτουν το λογισμικό παραθέτοντας παράλληλα συγκεκριμένα παραδείγματα. Στο 3ο κεφάλαιο παρουσιάζονται ενδεικτικές εφαρμογές από το βιομηχανικό περιβάλλον. Στο 4ο κεφάλαιο αναλύεται η δυνατότητα ενσωμάτωσης Videostream σε οθόνη σταθμού SCADA. Αυτό γίνεται εστιάζοντας σε τρία μοτίβα χρήσης: Αναπαραγωγή αρχείων Video, λήψη με ενσωματωμένη/συνδεδεμένη στον υπολογιστή κάμερα και τέλος παρουσίαση εφαρμογής ολοκληρωμένων λύσεων παρακολούθησης μίας βιομηχανικής εγκατάστασης. Η εφαρμογή αυτή βασίζεται στον εξοπλισμό IP Surveillance της εταιρίας MOXA. Στο 5ο κεφάλαιο επεξηγείται το πρωτόκολλο OPC και πως αυτό συμμετέχει στην ανταλλαγή δεδομένων στο Cimplicity. Επεξηγείται ο ρόλος του Cimplicity OPC Server αλλά και το πρωτόκολλο OPC Client με στόχο τη διασύνδεση του λογισμικού με διαφορετικού τύπου και κατασκευαστή εξοπλισμό. Ως παράδειγμα του πρωτοκόλλου OPC Client για την επικοινωνία με PLC, χρησιμοποιήθηκε η διάταξη του τεχνητού αναρριχητή, ο οποίος βρίσκεται στο Εργαστήριο Γενικής Ηλεκτροτεχνίας. Τέλος στο 6ο κεφάλαιο, γίνεται αναφορά σε μία μέθοδο μοντελοποίησης βιομηχανικών συστημάτων, τα Γενικευμένα Αυτόματα. Η μέθοδος αυτή αξιοποιείται με στόχο να εξαχθεί με ελάχιστο κόπο, ο κώδικας υλοποίησης της λογικής του αυτοματισμού, είτε για SCADA εφαρμογή, είτε για PLC λειτουργία. Η μέθοδος εφαρμόστηκε σε μία από τις εφαρμογές του 3ου κεφαλαίου.

Εισαγωγικά Η παρούσα διπλωματική εργασία εκπονήθηκε το ακαδημαικό έτος 2010-2011 στο Εργαστήριο Γενικής Ηλεκτροτεχνίας του τμήματος Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών. Θέλω να ευχαριστήσω ιδιαίτερα τον καθηγητή κ. Στ. Μάνεση για την ανάθεση της διπλωματικής εργασίας αλλά και για την πολύτιμη βοήθεια που μου παρείχε καθ όλη τη διάρκεια της εκπόνησης της. Επίσης, θέλω να ευχαριστήσω και το μεταπτυχιακό φοιτητή Γιώργο Ανδρικόπουλο για το χρόνο και την υπομονή του. Πάτρα, Φεβρουάριος 2012 Θόδωρος Χούντρας

. Περιεχόμενα. Σελ. Κεφάλαιο 1 - Εισαγωγή 1.1. Βιομηχανικός Αυτοματισμός και Προγραμματιζόμενοι Λογικοί 1 Ελεγκτές 1.2. Βιομηχανικά Δίκτυα 5 1.3. Ολοκληρωμένη Παραγωγή με Υπολογιστές (CIM) 6 1.4. Τα Συστήματα SCADA Κεφάλαιο 2 - Το περιβάλλον Cimplicity 2.1. Εισαγωγή 15 2.2. Το Workbench 16 2.3. Δημιουργία νέου Project 16 2.4. Points 18 2.5. Screens/Cimedit/Cimview 22 2.6. Alarms 41 2.6.1 Points Alarms 45 2.6.2 System Alarms 51 2.6.3 Alarm Features 2.6.3.1 Alarm Printer 52 2.6.3.2 Alarm Blocking 53 2.6.3.3 Alarm Translator 55 2.7. Recipes 58 2.8. Basic Control Engine / Event Editor / Program Editor 61 2.8.1 Event Editor 2.8.2 Program Editor 2.8.3 BCE UI 62 65 73 2.9. Objects/ Classes 77 2.10. Security 80 2.10.1 Resources 80 2.10.2 Roles 81 2.10.3 Users 83

2.11. Action Calendar 2.12. Καταγραφή παραμέτρων σε βάσεις δεδομένων 2.12.1 Proficy Historian 2.12.2 Microsoft Cimplicity SQL Server 2.12.3 Database Logger 2.12.4 DGR 2.13. Επικοινωνία με βιομηχανικά δίκτυα και PLCs 2.14. SPC 2.15. System Sentry 2.16. Δικτυωμένα Συστήματα / Απομακρυσμένος Έλεγχος / System Redundancy 2.16.1 WebView 2.16.2 Terminal Services 2.16.3 Redundancy 2.17. Runtime Εργαλεία 2.17.1 Login Panel 2.17.2 Point Control Panel 2.17.3 Process Control 2.17.4 Show Users 2.18. Οδηγός για τη δημιουργία μίας απλής εφαρμογής SCADA 84 98 98 102 104 106 107 114 120 124 124 127 129 130 131 132 136 138 140 Κεφάλαιο 3- Βιομηχανικές εφαρμογές SCADA στο περιβάλλον Cimplicity. 3.1 Εισαγωγή 3.2 Εφαρμογή 1 3.3 Εφαρμογή 2 3.4 Εφαρμογή 3 143 143 146 152 Κεφάλαιο 4 - Ενσωμάτωση εφαρμογής Videostream σε οθόνη σταθμού SCADA 4.1 Εισαγωγή 163 4.2 Ενσωμάτωση εφαρμογής Videostream στο περιβάλλον Cimplicity 164 4.2.1. Αναπαρωγή αρχείων Video στο Cimplicity 164 4.2.2. Αναπαραγωγή Live Video στο Cimplicity 4.3 Εξοπλισμός Industrial Video Surveillance της εταιρίας Moxa και ενσωμάτωση στο SCADA Cimplicity 167 167

Κεφάλαιο 5 - Το πρωτόκολλο OPC στο περιβάλλον CIMPLICITY 5.1 To πρότυπο OPC 5.1.1 Data Access 177 179 5.1.2 OPC XML 181 5.1.3 Ρυθμός δειγματοληψίας σε OPC Group 182 5.2 O OPC-server στο περιβάλλον CIMPLICITY 183 5.3 Σύστημα Εποπτείας εργαστηριακής εφαρμογής τεχνητού 187 αναρριχητή Κεφάλαιο 6 - Ανάπτυξη κώδικα για συστήματα SCADA με τη μέθοδο Γενικευμένων Αυτομάτων 6.1 Εισαγωγή 6.2 Τα γενικευμένα Αυτόματα 6.3 Οδηγός γραφής κώδικα για την εξομοίωση των γενικευμένων αυτομάτων 6.4 Παράδειγμα χρήσης της μεθόδου στο περιβάλλον CIMPLICITY 209 209 212 215 Επίλογος Βιβλιογραφία 229 231

Κεφάλαιο 1 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ 1.1 Βιομηχανικός Αυτοματισμός και Προγραμματιζόμενοι Λογικοί Ελεγκτές Μέσα στα επιτεύγματα του προηγούμενου αιώνα υπήρξε η ραγδαία ανάπτυξη της βιομηχανίας. Αυτό σε μεγάλο βαθμό έγινε δυνατό με την εφαρμογή των συστημάτων αυτοματισμού στο βιομηχανικό περιβάλλον, βοηθώντας καθοριστικά στη συνεχή παραγωγή και στη διεύρυνση των παραγωγικών μονάδων. Σταδιακά με την ανάπτυξη του νέου εξοπλισμού και των ηλεκτρονικών υπολογιστών, αυτοματοποιήθηκαν και οι λειτουργίες εποπτείας και ελέγχου. Η πολυπλοκότητα των σύγχρονων βιομηχανικών συστημάτων αυξήθηκε δημιουργώντας έτσι νέα ιεραρχικά μοντέλα με στόχο την περιγραφή της λειτουργίας τους. Ο Βιομηχανικός Αυτοματισμός περιλαμβάνει τους παρακάτω τρεις βασικούς παράγοντες: 1. Τους αισθητήρες που συγκεντρώνουν πληροφορίες από το περιβάλλον παραγωγής 2. Τους ενεργοποιητές που επιτρέπουν την υλοποίηση των αποφάσεων ελέγχου 3. Τα συστήματα αποφάσεων που αποφασίζουν, προγραμματίζουν και κατευθύνουν τις ενέργειες ελέγχου. Τα πρώτα χρόνια της βιομηχανικής εποχής, υπεύθυνος για τις αποφάσεις ήταν ο ίδιος ο άνθρωπος. Τα πρώτα συστήματα ελέγχου είχαν ενσωματωμένες τις λειτουργίες αισθητήρων και ενεργοποιητών. Στα μέσα της δεκαετίας του 1920 χρησιμοποιείται ο διακοπτικός έλεγχος ενώ αρχίζει και η χρήση των P αντισταθμιστών. Στα τέλη της δεκαετίας του 1930 αρχίζει η ευρεία χρήση των ελεγκτών PID. Η χρήση των ηλεκτρονικών οργάνων στον έλεγχο έρχεται μετά τον Β παγκόσμιο πόλεμο. Το σύστημα ελέγχου έγινε πιο ευέλικτο και αποκεντρωμένο αποτελούμενο από αισθητήρες, ρυθμιστές, ενεργοποιητές και καταγραφικά όργανα. Αυτά τα τυποποιημένα συστήματα χρησιμοποιούσαν έλεγχο setpoint τιμών δηλαδή διατήρηση μιας τιμής μεταβλητής όσο πιο κοντά γίνεται στην επιθυμητή. Η μεγάλη επανάσταση ήρθε στις αρχές της δεκαετίας του 1970, με τη χρησιμοποίηση των μικροϋπολογιστών. Η χρήση των μικροϋπολογιστών κάνει δυνατή την εμφάνιση των PLC. Παράλληλα αρχίζει η ανάπτυξη ιεραρχικών συστημάτων ελέγχου που περιέχουν μεγάλο αριθμό μικροϋπολογιστών. Οι βιομηχανικές εφαρμογές απέδειξαν ότι η συνύπαρξη υπολογιστών και PLC στο ίδιο σύστημα έχουν μεγάλα πλεονεκτήματα. Η σημερινή μορφή αυτοματισμού των περισσοτέρων εκσυγχρονισμένων βιομηχανιών έχει σαν βάση τα συστήματα ιεραρχικού ελέγχου που υλοποιούνται με συνδυασμό υπολογιστών και PLCs. Κάθε PLC μπορεί να οριστεί ως μία ψηφιακή συσκευή με μικροεπεξεργαστή και προγραμματιζόμενη μνήμη η οποία μπορεί να αποθηκεύσει και να εκτελέσει εντολές του χρήστη για υλοποίηση συναρτήσεων 1

Κεφάλαιο 1 λογικής Boole, ακολουθιακής λογικής, χρονισμού, απαρίθμησης και αριθμητικών πράξεων προκειμένου, μέσω ψηφιακών ή αναλογικών εισόδων/εξόδων, να ελέγξει τη λειτουργία μιας σύνθετης μηχανής ή μίας ολόκληρης διεργασίας. Το PLC έχει ως στόχο να επικοινωνεί με το βιομηχανικό περιβάλλον και πιο συγκεκριμένα είτε με τις συσκευές εισόδων με τη βοήθεια των οποίων δίνονται οι εντολές είτε με τις συσκευές εξόδου στις οποίες δρα ο έλεγχος. Τα βασικά συστατικά μέρη ενός PLC είναι: 1. Ο επεξεργαστής (CPU) 2. Οι βαθμίδες εισόδων και εξόδων 3. Η μνήμη 4. Το τροφοδοτικό ισχύος Σχήμα 1.1 Εσωτερική δομή ενός PLC Ένα PLC δεν αντικαθιστά τις συσκευές εισόδων/εξόδων. Διασυνδέεται με αυτές προκειμένου να λαμβάνει όλα τα απαιτούμενα σήματα σχετικά με την κατάσταση λειτουργίας του ελεγχόμενου συστήματος και με βάση το πρόγραμμα που είναι αποθηκευμένο στη μνήμη του να δίνει εντολές για τις απαιτούμενες δράσεις ελέγχου στις συσκευές εξόδου. Ο τρόπος λειτουργίας ενός PLC βασίζεται κυρίως στην αρχιτεκτονική των μικροϋπολογιστών. Ο μικροϋπολογιστής είναι υπεύθυνος για όλες τις εσωτερικές λειτουργίες του ελεγκτή, την εκτέλεση των εντολών του χρήστη, τη μνήμη που αποθηκεύεται το πρόγραμμα του αυτοματισμού και άλλα δεδομένα που αφορούν την εσωτερική λειτουργία λοιπών στοιχείων, τη βαθμίδα εισόδων μέσω της οποίας λαμβάνονται τα σήματα ισχύος από τις συσκευές εισόδου και τη βαθμίδα εξόδων μέσω της οποίας τα αποτελέσματα της εκτέλεσης του προγράμματος από το μικροεπεξεργαστή μετατρέπονται σε σήματα ενεργοποίησης που εφαρμόζονται στις συσκευές εξόδου. Οι βασικές λειτουργίες ενός PLC εκτελούνται με μία συγκεκριμένη σειρά όταν αυτό τίθεται σε κατάσταση RUN. Συγκεκριμένα, πρώτα εκτελείται η ανάγνωση της κατάστασης των συσκευών εισόδων, στη συνέχεια εκτελείται το πρόγραμμα που είναι αποθηκευμένο 2

Κεφάλαιο 1 στη μνήμη του PLC και τέλος οι συσκευές εξόδων τίθενται στην επιθυμητή κατάσταση. Στη συνέχεια ο μικροϋπολογιστής διαβάζει ξανά την κατάσταση των συσκευών εισόδων κοκ. Αυτή η συνεχής κυκλική λειτουργία του PLC είναι γνωστή σαν κύκλος σάρωσης. Ο προγραμματισμός του PLC γίνεται με μία συσκευή προγραμματισμού κατά το στάδιο του προγραμματισμού και απομακρύνεται μετά από αυτό. Η συσκευή προγραμματισμού μπορεί να είναι μία ειδικής κατασκευής ψηφιακή, συνήθως φορητή, συσκευή που χρησιμοποιείται για συγκεκριμένο PLC, είτε ένας κοινός υπολογιστής ο οποίος είναι εξοπλισμένος με το πρόγραμμα που προμηθεύει ο κατασκευαστής του PLC. Σχήμα 1.2 Εσωτερική λειτουργία PLC Η γενίκευση χρήσης των PLC στο βιομηχανικό αυτοματισμό αποδίδεται στα πολλά και σημαντικά πλεονεκτήματα που παρουσιάζουν. 3

Κεφάλαιο 1 Επάρκεια επαφών Οικονομία χρόνου Οικονομία χώρου Εύκολη τροποποίηση αυτοματισμού Εύκολος εντοπισμός βλαβών Σύγχρονος τρόπος και μέσα εργασίας 1.2 Βιομηχανικά Δίκτυα Μία βιομηχανική διαδικασία σήμερα, είναι σχεδόν αδύνατο να καταλαμβάνει ένα περιορισμένο χώρο ή να βρίσκεται σε ένα μόνο κτίριο. Συνήθως απαιτούνται πολλά κτίρια (τμήματα) οπότε για να είναι αποτελεσματικότερη η παραγωγή, πρέπει να υπάρχει ο μεγαλύτερος δυνατός συντονισμός μεταξύ των διαφόρων τμημάτων. Αρχικά ξοδεύαμε μεγάλο κόστος για να στέλνονται μηνύματα σε όλο το μήκος της διαδικασίας, ώστε να υπάρχει καλύτερη αξιοποίηση της. Το πρώτο βήμα για την αυτοματοποίηση ήταν η εισαγωγή των κεντρικών σταθμών ελέγχου της παραγωγής. Όμως ένας κεντρικός σταθμός ελέγχου χρειάζεται πληροφορίες από όλο το βιομηχανικό περιβάλλον που σήμαινε ένα τεράστιο όγκο καλωδιώσεων. Με αυτόν τον τρόπο το κόστος του αυτοματισμού ήταν τεράστιο. Η ιδέα της χρήσης των βιομηχανικών δικτύων βοήθησε στην επίλυση αυτού του προβλήματος. Οι δεσμίδες των καλωδίων αντικαθίστανται από ένα και μόνο καλώδιο, το οποίο περιέχει από 2 έως 4 αγωγούς αντί των χιλιάδων που είχαμε πριν. Το όφελος όμως δεν είναι μόνο οικονομικό. Με τη χρήση επικοινωνιακών δικτύων έχουμε τη δυνατότητα συλλογής και επεξεργασίας των δεδομένων που θέλουμε. Επομένως, η παραγωγή γίνεται βέλτιστη, ταχύτερη και μπορεί να ρυθμιστεί με βάση τις τιμές αναφοράς που φτάνουν στον κεντρικό σταθμό. Επίσης, έχουμε και αύξηση της λειτουργικής αξιοπιστίας αφού τα σφάλματα ανιχνεύονται σε πρόωρο στάδιο ενώ η πηγή τους μπορεί εύκολα να εντοπισθεί χρησιμοποιώντας τα υπάρχοντα δεδομένα της διαδικασίας. Τα βιομηχανικά δίκτυα συνδέουν κατά κύριο λόγο PLC και κατά δεύτερο λόγο υπολογιστές ή οποιασδήποτε άλλης μορφής ψηφιακές συσκευές με δυνατότητα επικοινωνίας όπως πχ ελεγκτής ρομποτικού βραχίονα. Η σημερινή μορφή αυτοματισμού των περισσότερων εκσυγχρονισμένων βιομηχανιών έχει σαν βάση τα συστήματα ιεραρχικού ελέγχου που υλοποιούνται με συνδιασμό υπολογιστών και PLCs. Το επικοινωνιακό έργο των PLCs το αναλαμβάνει μία ειδική βαθμίδα επικοινωνίας και υλοποιείται σε συνδυασμό με το έργο υλοποίησης του αυτοματισμού στο κύκλο σάρωσης του PLC. Το έργο αυτό έχει να κάνει με τον κύκλο ανάγνωσης γραφής των μεταβλητών που πρόκειται να μεταδοθούν μέσω του δικτύου. Η βαθμίδα επικοινωνίας διαθέτει μία ενδιάμεση μνήμη στην οποία αποθηκεύονται τα δεδομένα σύμφωνα με το πρωτόκολλο επικοινωνίας που χρησιμοποιείται. Σε κάθε κύκλο σάρωσης το PLC ενημερώνει τη μνήμη του με τα δεδομένα που έχουν αφιχθεί, εκτελεί το πρόγραμμα που είναι αποθηκευμένο στη μνήμη του και τέλος ενημερώνει εκ νέου τις τιμές που πρόκειται να μεταδωθούν στο δίκτυο. Η παραπάνω διαδικασία συνδιάζεται με το κλασσικό έργο του προγράμματος 4

Κεφάλαιο 1 αυτοματισμού το οποίο εκτελεί το PLC. Ωστόσο, ο κύκλος σάρωσης ενός δικτύου είναι διαφορετικός από το κύκλο σάρωσης του PLC. Για παράδειγμα ένα δίκτυο Profibus, με τη μικρότερη δυνατή ταχύτητα και ένα μέσο αριθμό κόμβων, είναι δυνατόν να πραγματοποιούνται 2-3 κύκλοι σάρωσης ανά κύκλο σάρωσης ενός PLC. Τα πλεονεκτήματα της χρήσης δικτύων στη βιομηχανία είναι: Αισθητή μείωση του κόστους καλωδίωσης. Μείωση του όγκου των ταμπλό χειρισμού λόγω αποκέντρωσης και χρήσης οθονών. Μείωση των επιπρόσθετων εξαρτημάτων διασύνδεσης. Μείωση του κόστους εγκατάστασης. Μείωση του κόστους συντήρησης. Κεντρική επεξεργασία και συγκέντρωση δεδομένων. Μεγαλύτερη λειτουργική αξιοπιστία και παραγωγικότητα. 1.3 Ολοκληρωμένη Παραγωγή με Υπολογιστές (CIM) Η τεχνολογία που χρησιμοποιείται σήμερα στη σύγχρονη βιομηχανία ονομάζεται Computer Integrated Manufacturing (CIM) και αποτελεί τη νέα ιεραρχική μορφή ελέγχου των παραγωγικών μονάδων. Το βασικό στοιχείο αυτής της τεχνολογίας είναι πως οι βασικές λειτουργίες όπως η συλλογή πληροφοριών, η λειτουργία ψηφιακού αυτόματου ελέγχου, η εποπτεία και ο προγραμματισμός της παραγωγής γίνονται από αντίστοιχα υπολογιστικά συστήματα με διαφορετικούς βαθμούς ευθύνης όπου οι αποφάσεις των υψηλότερων επιπέδων μεταδίδονται για εκτέλεση στις κατώτερες βαθμίδες. Η στρατηγική CIM αποτελείται από 4 επίπεδα όπως φαίνεται στο παρκάτω σχήμα. Το επίπεδο της οργάνωσης παράγει αποφάσεις που έχουν σχέση με τη διαχείρηση της παραγωγής. Το επίπεδο της εποπτείας δέχεται αυτές τις αποφάσεις και δρομολογεί τη στρατηγική ελέγχου βασισμένο κυρίως στις ποιοτικές απαιτήσεις της παραγωγής. Το επίπεδο του ελέγχου υλοποιεί τις προηγούμενες αποφάσεις έχοντας στενή φυσική σύνδεση με τις διεργασίες και εξασφαλίζει τη λειτουργική ευστάθεια των διεργασιών. Τα τρία επίπεδα λειτουργούν αυτόνομα και η βλάβη ενός δεν επηρεάζει τη λειτουργία των υπολοίπων. Πηγαίνοντας από τη βάση στην κορυφή της ιεραρχίας έχουμε συνεχή αύξηση της σοβαρότητας των αποφάσεων αλλά και μείωση του ρυθμού των αποφάσεων. Επίσης, καθώς πάμε από τη βάση στην κορυφή της ιεραρχίας έχουμε συνεχή αύξηση του όγκου της πληροφορίας προς επεξεργασία. Τα τοπικά δίκτυα παίζουν καθοριστικό ρόλο στην επίτευξη του μοτέλου CIM αφού μέσω αυτών συνδέονται τα διάφορα επίπεδα μεταξυ τους. Η υλοποίηση γίνεται, για τα δύο πρώτα επίπεδα με τα PLC, ενώ για το ανώτατο επίπεδο έχουμε ισχυρούς υπολογιστές για η λήψη των απαραίτητων αποφάσεων. Το Βιομηχανικό Πληροφοριακό Σύστημα θα πρέπει να έχει: Ολοκληρωμένη αρχιτεκτονική επικοινωνίας Κετρική οργάνωση και επίβλεψη Κατανεμημένο και ιεραρχικό έλεγχο 5

Κεφάλαιο 1 Συνύπαρξη συσκευών μηχανών κάθε είδους Ανοικτές και διαφανείς επικοινωνίες Διάλογο μεταξύ ανθρώπου και συστήματος Σχήμα 1.3 Ιεραρχία μοντέλου CIM 1.4 Τα συστήματα SCADA Τα τελευταία 30 χρόνια η ανάπτυξη στο χώρο των βιομηχανικών συστημάτων υπήρξε ιδιαίτερα σημαντική, έχοντας συμβάλλει καθοριστικά σε αυτό η τεχνολογία των ψηφιακών συσκευών, είτε με τη χρησιμοποίηση των PLC είτε με τη χρήση ηλεκτρονικών υπολογιστών, αλλά και των επικοινωνιακών δικτύων. Η ανάγκη για αξιόπιστη ανταλλαγή δεδομένων σε πραγματικό χρόνο και οι ενέργειες ελέγχου που απαιτούνται σε ένα ολοκληρωμένο σύστημα παραγωγής, είχαν ως αποτέλεσμα την ανάπτυξη των συστημάτων SCADA. Με τον όρο SCADA (Supervisory Control And Data Acquisition) εννοούμε το σύστημα εκείνο που χρησιμοποιείται για την παρακολούθηση και τον έλεγχο ενός συστήματος παραγωγής με την ευρεία έννοια του όρου (plant). Συνίσταται στη συλλογή της πληροφορίας, της μεταφοράς της σε ένα κεντρικό σταθμό, τη διεξαγωγή της αναγκαίας ανάλυσης, και του ελέγχου (συμπεριλαμβανομένης της δράσης ελέγχου) και τέλος την ένδειξη των δεδομένων σ έναν αριθμό οθονών χειριστού. Πρόκειται δηλαδή για ένα μεγάλο λογισμικό πακέτο που συγκεντρώνει μέσω ενός δικτύου μεγάλη κλίμακας, όλες τις απαιτούμενες πληροφορίες από το ελεγχόμενο σύστημα ώστε να μπορεί να υλοποιήσει μία σειρά από λειτουργικές συναρτήσεις όπως λήψη και αποθήκευση δεδομένων, παραγωγή γραφημάτων, γραφική απεικόνιση της διαδικασίας με κινούμενη εξομοίωση των μηχανών, αναγγελία σημαντικών καταστάσεων και καταστάσεων κινδύνου, παρουσίαση σημαντικών τιμών σε ενεργά πεδία, στατιστική επεξεργασία των δεδομένων (ακόμα και off-line), παρακολούθηση της κατάσταση του βιομηχανικού 6

Κεφάλαιο 1 δικτύου, επικοινωνία με εξωτερικές βάσεις δεδομένων και άλλες οι οποίες καθιστούν πραγματικότητα τη ρήση με το σύστημα SCADA έχω το εργοστάσιο στην οθόνη μου. Παρακάτω παρατίθενται δύο σημαντικοί ορισμοί της έννοιας SCADA και η προέλευση τους. Με τον όρο SCADA αναφερόμαστε στην τεχνολογία που επιτρέπει στο χρήστη να «συλλέγει» δεδομένα από μία ή περισσότερες εγκαταστάσεις και/ή να αποστείλει στοιχειώδεις εντολές ελέγχου σε αυτές. (SCADA: Supervisory Control and Data Acquisition, Stuart A. Boyer, ISA The Instrumentation, Systems, and Automation Society; 3rd edition) Σύστημα το οποίο λειτουργεί με κωδικοποιημένα σήματα σε διαύλους επικοινωνίας με σκοπό την παροχή ενεργειών ελέγχου σε εξοπλισμό συσκευών RTU. (IEEE Standard C37.1-1994, Definition, Specification, and Analysis of System Used for Supervisory Control, Data Acquisition, and Automatic Control) Με τον όρο SCADA αναφερόμαστε στα κεντρικά συστήματα ελέγχου τα οποία ελέγχουν και απεικονίζουν συστήματα ολόκληρων πόλεων ή συμπλέγματος κτιρίων, οτιδήποτε μπορεί να εκτείνεται από ένα απλό εργοστάσιο έως μία ολόκληρη χώρα (πχ έλεγχος κατανομής φορτίου σε συστήματα ηλεκτρικής ενέργειας). Ωστόσο οι περισσότερες ενέργειες ελέγχου εκτελούνται αυτόματα από τα PLCs (ή τα RTUs). Εντολές που προέρχονται από τον κεντρικό υπολογιστή εκτελούνται στο στάδιο του Εποπτικού Ελέγχου. Για παράδειγμα, ένα PLC μπορεί να ελέγχει τη ροή ψυχρού υγρού σε ένα τμήμα μιας βιομηχανικής διεργασίας, αλλά το σύστημα SCADA είναι αυτό που δίνει εντολή για αλλαγή των τιμών αναφοράς για τη ροή υγρού, την ενεργοποίηση καταστάσεων και Σχήμα 1.4 Αίθουσα χειρισμού σταθμών SCADA σε βιομηχανία 7

Κεφάλαιο 1 σήμανσης κινδύνου (alarms), αποθήκευση των απαραίτητων μεταβολών σε μία βάση δεδομένων κλπ. Τα συστήματα SCADA χρονολογούνται όσο και τα πρώτα συστήματα ελέγχου. Αρχικά αποτελούνταν από διάφορους μετρητές, συσκευές ένδειξης, καταγραφικά. Εντολές ελέγχου μπορούσαν να εκτελεστούν χειροκίνητα από το χρήστη. Ορισμένες εγκαταστάσεις χρησιμοποιούν ακόμα τέτοια συστήματα. Ωστόσο στα σύγχρονα βιομηχανικά περιβάλλοντα η Τηλεμετρία είναι αυτή που χρησιμοποιείται ώστε να δικτυωθούν οι διάφορες συσκευές μεταξύ τους ειδικά όταν αυτές βρίσκονται σε πολύ μεγάλες αποστάσεις μεταξύ τους (από μερικά μέτρα μέχρι χιλιάδες χιλιόμετρα). Η Τηλεμετρία χρησιμοποιείται για να γίνεται διάδοση δεδομένων όπως εντολές, προγράμματα, δεδομένα και φυσικές μεταβλητές. Με τον όρο Τηλεμετρία εννοούμε μία τεχνική για τη μετάδοση ή λήψη πληροφορίας ή δεδομένων μέσω ενός φυσικού μέσου. Το μέσο για τη μετάδοση των δεδομένων μπορεί να είναι απλό καλώδιο, τηλεφωνική γραμμή, ραδιοεκπομπή ενώ ο τρόπος διευθυνσιοδότησης των διαφορετικών πηγών της πληροφορίας είναι ενσωματωμένος στο σύστημα SCADA. Τα συστήματα SCADA λοιπόν συνδυάζουν μαζί την Τηλεμετρία και τη συλλογή δεδομένων. Η αρχιτεκτονική SCADA ξεκινάει με τη συλλογή δεδομένων, τη μεταφορά τους σε ένα κεντρικό σταθμό όπυ γίνεται η απαραίτητη ανάλυση και επεξεργασία, η απεικόνιση σημαντικών πληροφοριών και ενδείξεων σε μία ή περισσότερες οθόνες και τέλος η εκτέλεση και αποστολή εντολών ελέγχου πίσω στο πραγματικό περιβάλλον. Αρχικά, για τη δικτύωση των PLC στο βιομηχανικό περιβάλλον χρησιμοποιήθηκαν τα συστήματα κατανεμημένου ελέγχου (DCS- Distributed Control Systems). Τα DCS χρησιμοποιούν υψηλής ταχύτητας επικοινωνιακά δίκτυα τύπου LAN σε βιομηχανικές μονάδες περιορισμένης γεωγραφικά έκτασης. Τα συστήματα SCADA ασκούν εποπτικό έλεγχο πάνω σε δίκτυα PLC είτε σε συστήματα DCS. Τα πλεονεκτήματα της αρχιτεκτονικής PLC/DCS/SCADA είναι: Ο κεντρικός υπολογιστής μπορεί να καταγράψει και να αποθηκεύσει μεγάλο όγκο δεδομένων. Τα δεδομένα μπορούν να απεικονιζονται με όποιο τρόπο επιθυμεί ο χρήστης. Χιλιάδες αισθητήρες σε μέγαλη γεωγραφική κλίμακα μπορούν να συνδεθούν. Διαφορετικοί τύποι δεδομένων μπορούν να συλλέγονται από τους ελεγκτές. Υπάρχει η δυνατότητα πρόσβασης στα δεδομένα από οπουδήποτε όχι μόνο από τον κεντρικό σταθμό. 8

Κεφάλαιο 1 Σχήμα 1.5 Καταγραφικά συστήματα 1ης γενιάς Τα συστήματα SCADA αναπτύχθηκαν σε τρεις γενιές: 1 ης Γενιάς: Μονολιθικά συστήματα SCADA Τα συστήματα πρώτης γενιάς είχαν ως κύριο στοιχείο έναν Mainframe υπολογιστή μεγάλης ισχύος μέσα από τον οποίο γινόταν οι απαραίτητες λειτουργίες ανάλυσης και συλλογής δεδομένων. Ήταν τελείως ανεξάρτητα μεταξύ τους αφού τα πρώτα Δίκτυα Ευρείας Κλίμακας (WAN) χρησιμοποιηθήκαν πολύ αργότερα. Ωστόσο, υπήρχε η δυνατότητα εγκατάστασης εφεδρικού συσήματος σε περίπτωση αστοχίας ή βλάβης του κύριου υπολογιστή. 2 ης Γενιάς: Κατανεμημένα συστήματα SCADA Στα συστήματα δεύτερης γενιάς η παραγωγική διαδικασία είναι πλέον κατανεμημένη σε διάφορους σταθμούς οι οποίοι είναι συνδεδεμένοι μεταξύ τους μέσω LAN δικτύων. Κάθε σταθμός είναι επιφορτισμένος με μία συγκεκριμένη εργασία οπότε το κόστος αλλά και το μέγεθος τους είναι σαφώς μικρότερο από αυτό της πρώτης γενιάς. Χρησιμοποιούνται επίσης και τα πρώτα πρωτόκολλα επικοινωνίας από συγκεκριμένους κατασκευαστές. Αυτό οδήγησε σε σοβαρά προβλήματα ασφάλειας, αφού πέρα από τους σχεδιαστές κάθε συστήματος, κανείς άλλος δεν μπορούσε να ξέρει πόσο απλή είναι η πρόσβαση σε ένα σύστημα SCADA. Έτσι, τα συστήματα ασφαλείας αρχικά ήταν υποτιμημένα, κάνοντας έτσι σε επίδοξους hackers πιο εύκολο το έργο τους. 3 ης Γενιάς: Δικτυωμένα συστήματα SCADA Στα συστήματα τρίτης γενιάς περνάμε πλέον σε χρήση «ανοιχτών» προτύπων επικοινωνίας. Στα συστήματα SCADA χρησιμοποιούνται αρχιτεκτονικές τύπου WAN όπως το Internet Protocol (IP) με στόχο την επικοινωνία ενός κεντρικού σταθμού και των υπόλοιπων συσκευών. Απ την άλλη η συνδεσιμότητα με το Internet κάνει ευάλωτο το σύστημα σε «επιθέσεις». Τα αναβαθμισμένα συστήματα ασφάλειας, η συχνή συντήρηση και η συχνή ενημέρωση των λογισμικών χρησιμοποιούνται για την αντιμετώπιση τέτοιων προβλημάτων. 9

Κεφάλαιο 1 Τα συστατικά μέρη ενός συστήματος SCADA είναι τα παρακάτω. ΕΞΟΠΛΙΣΜΟΣ ΠΕΔΙΟΥ: Με το όρο εξοπλισμός πεδίου αναφερόμαστε στους αισθητήρες και ενεργοποιητές της ελεγχόμενης διαδικασίας. Αυτοί παράγουν/δέχονται αντίστοιχα, τα αναλογικά και ψηφιακά σήματα τα οποία παρακολουθούνται από τον απομακρυσμένο σταθμό. Τα σήματα είναι συμβατά με τις εισόδους/εξόδους του PLC ή του RTU (Remote Terminal Unit). ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΣΤΑΘΜΟΣ: Ο απομακρυσμένος σταθμός είναι ένα PLC ή ένα RTU που παρακολουθείται ή συντονίζεται από το κεντρικό σύστημα ελέγχου (Central Host Computer). ΔΙΚΤΥΟ ΕΠΙΚΟΙΝΩΝΙΑΣ: Το δίκτυο επικοινωνίας είναι το φυσικό μέσο για τη μετάδοση της πληροφορίας (τηλεφωνική γραμμή, ραδιοσήμα, καλώδιο) ΚΑΙ λογισμικό οργάνωσης της επικοινωνίας. ΚΕΝΤΡΙΚΟ ΣΥΣΤΗΜΑ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ : Το κεντρικό σύστημα παρακολούθησης είναι το κεντρικό υπολογιστικό σύστημα που μπορεί να περιλαμβάνει περισσότερους του ενός σταθμού εργασίας. Εδώ εγκαθίσταται το λογισμικό SCADA. Σχήμα 1.6 Τα συστατικά μέρη ενός συστήματος SCADA 10

Κεφάλαιο 1 Η καρδιά ενός συστήματος SCADA είναι το Human Machine Interface (HMI) που εγκαθίσταται στον κεντρικό σταθμό. Οι κύριες λειτουργικές συναρτήσεις του κεντρικού συστήματος SCADA είναι: Συλλογή δεδομένων από τα PLCs και τις Απομακρυσμένες Τερµατικές Μονάδες (RTU). Όλα τα επιθυμητά σήµατα μεταδίδονται προς το σύστηµα SCADA µέσω του δικτύου βιομηχανικού αυτοματισμού. Αποθήκευση των πληροφοριών στη βάση δεδομένων και αναπαράστασή τους µέσω γραφημάτων. Οι επιλεγμένες πληροφορίες αναπαρίστανται είτε αυτούσιες είτε έπειτα από κατάλληλη επεξεργασία. Ανάλυση δεδομένων και ειδοποίηση του προσωπικού σε περιπτώσεις σφάλματος. Όταν τα δεδομένα πάρουν τιµές µη κανονικές το σύστηµα SCADA ειδοποιεί µε οπτική ή ακουστική σήµανση τους χειριστές, ώστε να αποφευχθούν δυσάρεστες επιπτώσεις. Έλεγχος κλειστού βρόχου διεργασιών. Υπάρχει η δυνατότητα εφαρμογής τεχνικών ελέγχου, αυτόµατες ή χειροκίνητες. Γραφική απεικόνιση των τµηµάτων της διεργασίας σε µιµικά διαγράµµατα και παρουσιάσεις των δεδομένων σε ενεργά πεδία. Τα µιµικά διαγράµµατα απεικονίζουν ρεαλιστικά τµήµατα της διεργασίας µε στόχο την ευκολότερη εποπτεία και την κατανόηση των δεδομένων από τους χειριστές του συστήματος. Καταγραφή όλων των συμβάντων κανονικών και µη για την δημιουργία ιστορικού αρχείου. Σε κάθε βιομηχανία υπάρχει καταγραφή όλων των κρίσιµων παραµέτρων. Παλιότερα γινόταν µε χειρόγραφη καταγραφή, ενώ σήµερα την ευθύνη αυτή έχει αναλάβει η βάση δεδομένων του συστήματος SCADA. Υποστήριξη διπλού υπολογιστικού συστήματος µε αυτόµατη εναλλαγή, αν αυτό κρίνεται σκόπιµο βάση της υπό έλεγχο διεργασίας. Σε διεργασίες υψηλής επικινδυνότητας πρέπει να ελαχιστοποιηθεί όσο το δυνατόν περισσότερο η εµφάνιση σφάλματος λόγω βλάβης του εξοπλισμού. Για τον λόγο αυτό τα συστήµατα SCADA υποστηρίζουν δεύτερο υπολογιστικό σύστηµα που αναλαμβάνει σε περίπτωση σφάλματος. Μεταφορά δεδομένων σε άλλα τµήµατα του κεντρικού συστήματος πληροφόρησης και διαχείρισης. Έλεγχος της πρόσβασης χειριστών στα διάφορα υποσυστήματα του συστήματος SCADA. Ειδικές εφαρμογές λογισµικού όπως εκτέλεση κώδικα C++ ή ανάπτυξη ευφυών συστηµάτων. 11

Κεφάλαιο 1 Σχήμα 1.7 Αρχιτεκτονική συστημάτων SCADA 12

Κεφάλαιο 1 Η σχεδίαση SCADA εφαρμογών γίνεται μέσα από ειδικά λογισμικά πακέτα που προορίζονται για αυτόν το σκοπό. Τα λογισμικά αυτά υλοποιούν το σημαντικότερο έργο των προιόντων με την ορολογία Automation Software. Συνήθως οι κατασκευαστές βιομηχανικού εξοπλισμού (αισθητήρια όργανα, ελεγκτές, δίκτυα κλπ.) παρέχουν και αντίστοιχο λογισμικό ελέγχου διεργασιών τύπου SCADA ή άλλου τύπου όπως Human - Machine Interface (HMI), οπτικοποίησης μεγεθών, καταγραφής συμβάντων, γραφικής απεικόνισης κλπ. Παρακάτω παρατίθεται ένας ενδεικτικός πίνακας με διάφορα λογισμικά SCADA και τους αντίστοιχους κατασκευαστές. ΛΟΓΙΣΜΙΚΟ SCADA RsView InTouch WinCC Cimplicity CX-Supervisor CitectSCADA AutomationX Genesis32 MicroScada SattGraph 5000 ScadaNet ProccessNet ElipseScada Intellution Factorylink PcVue Adroit Advantech Studio P-CIM ISaGRAF Prodigy GlobalSCREEN IGSS AGP 3000 Wizcon TRACE MODE Entivity VLC FactoryTack Πίνακας 1.1 Λογισμικά SCADA ΠΑΡΟΧΟΣ RsView Wonderware Siemens GeFanuc Omron Schneider Electric AutomationX Iconics ABB Matrikon Elipse Software Santis Engineering Siemens ARC Informatique Adroit Technologies Advantech AFCON ISaGRAF TASCOMP Ordinal Technologies 7-Technologies Pro-face ELUTIONS AdAstra entivity Rockwell Automation Σήμερα, όλο και περισσότερα λογισμικά SCADA εμφανίζονται από διάφορους κατασκευαστές (όπως το TopKapi Vision της Areal) με σκοπό να καλυφθούν οι απαιτήσεις της σύγχρονης βιομηχανίας. Η παρούσα διπλωματική ασχολείται με το σχεδιασμό συστημάτων SCADA στο περιβάλλον Proficy HMI SCADA CIMPLICITY 8.0 της εταιρίας GEFanuc. 13

Κεφάλαιο 1 14

ΚΕΦΑΛΑΙΟ 2 Το περιβάλλον Cimplicity ΕΙΣΑΓΩΓΗ 2.1 Εισαγωγή Στον παρακάτω υπολογιστή εγκαταστάθηκε το Proficy Cimplicity 8.0. ΠΕΡΙΓΡΑΦΗ PC ΕΡΓΑΣΤΗΡΙΟΥ SML ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ CPU Intel Core 2 @1.86 GHz PENTIUM 4 @ 1 GHz GRAPHICS CARD Intel 82945G Express Chipset - RAM MEMORY 2 GB RAM 1 GB HARD DRIVE 25 GB 800 MB OPERATING SYSTEM MS WINDOWS XP SP3 MS WINDOWS 2003 SP1 & R2 Το πρόγραμμα εκτός από το CD εγκατάστασης περιλαμβάνει και ένα USB Hardware Licence Key. Το USB Stick πιστοποιεί την αυθεντικότητα του λογισμικού και πρέπει συνεχώς να είναι συνδεδεμένο στον υπολογιστή. Αν αυτό δε συμβαίνει, το πρόγραμμα μπορεί να χρησιμοποιηθεί για σχεδίαση, ωστόσο δεν μπορεί κάποια εφαρμογή να τεθεί σε κατάσταση RUN για πάνω από 2 ώρες. Μπορούμε μέσα από την τοποθεσία "C:\Program Files (x86)\ge Fanuc\Proficy Common\M4 Common Licensing\ProficyLicenseViewer\Proficy.ManagementConsole.exe" να ενημερωθούμε για τα δικαιώματα χρήσης του λογισμικού. Η έκδοση που χρησιμοποιήθηκε είναι πιστοποιημένη για 75 Device I/O Points και απεριόριστα Virtual Points. Γενικώς το Cimplicity χρησιμοποιεί την Client/Server αρχιτεκτονική για να επικοινωνεί με το εξωτερικό περιβάλλον είτε πρόκειται για τα PLCs του εξοπλισμού, είτε για άλλους υπολογιστές που αποκτούν πρόσβαση στις SCADA εφαρμογές "από μακριά". Έτσι ένας χρήστης του Cimplicity μπορεί να είναι ένα εκ των παρακάτω: 1. Cimplicity Server Συλλογή δεδομένων από τα PLC, Απεικόνιση εφαρμογών, Ανάπτυξη εφαρμογών, Αποθήκευση σημαντικών στοιχείων σε βάσεις δεδομένων. 2. Development Viewer Επεξεργασία εφαρμογών σε απομακρυσμένο server, απεικόνιση δεδομένων. 3. Runtime Viewer Απεικόνιση εφαρμογών (ακόμα και χωρίς να είναι εγκατεστημένο το Cimplicity) μέσω Web Browser. 15

2.2 Το Workbench Το Workbench είναι το βασικότερο εργαλείο, το επίκεντρο της σχεδίασης. Μέσα από αυτό γίνεται η ανάπτυξη των project, η εγκατάσταση των ρυθμίσεων του συστήματος, η σύνθεση κάθε στοιχείου της εφαρμογής SCADA, η εποπτεία και το "τρέξιμο" του κάθε project. Πάντα η σχεδίαση ενός συστήματος SCADA ξεκινάει από το workbench. Τα επιμέρους παράθυρα (Alarms, Program Editor, CimEdit κλπ) είναι προσπελάσιμα και εκτός workbench, ωστόσο οτιδήποτε σχεδιαστεί αυτόνομα (όπως πχ ένας κώδικας) πρέπει να αποθηκευτεί στο φάκελο scripts ενός project για να μπορεί να αξιοποιηθεί. Ανοίγοντας το Workbench στην αριστερή στήλη φορτώνονται πάντα οι ιδιότητες του συστήματος. Από εκεί παίρνουμε χρήσιμες πληροφορίες όπως το ιστορικό χρήσηςσυνδέσεων και ποια προγράμματα τρέχουν. Τα υπόλοιπα στοιχεία ανοίγουν μόλις εισαχθεί κάποιο Project (παλιό ή καινούργιο). 2.3 Δημιουργία νέου Project Για να ξεκινήσει νέο Project : File New Project Ανοίγει η οθόνη του νέου Project όπου πρέπει να δοθούν τα απαραίτητα στοιχεία. Η αριστερή στήλη (options) ζητάει τα συστατικά που θα περιέχει η SCADA εφαρμογή. Αν για παράδειγμα η νέα εφαρμογή περιλαμβάνει recipes πρέπει να σημειωθεί η αντίστοιχη επιλογή όπως φαίνεται στο σχήμα. Η δεξιά στήλη (protocols) περιλαμβάνει τα πρωτόκολλα επικοινωνίας που χρησιμοποιεί το βιομηχανικό δίκτυο. Ανεξαρτήτως του εξοπλισμού, καλό είναι να επιλέγεται το OPC Client αφού, όπως εξηγείται και στο 5ο κεφάλαιο, είναι ένα πρωτόκολλο που ρυθμίζει την επικοινωνία συσκευών 16

διαφορετικού κατασκευαστή. Μόλις πατηθεί το Create ανοίγει το νέο project στο Workbench. Οι παραπάνω ρυθμίσεις μπορούν να αλλάξουν στο Project Properties. Μαζί με τις δύο καρτέλες (Computer, Runtime) τώρα προστέθηκε και το Project. Κάτω από αυτό είναι τα συστατικά μέρη που συνθέτουν πλήρως την εφαρμογή SCADA σύμφωνα και με τις προηγούμενες ρυθμίσεις. Επιλογή Save-Save As δεν υπάρχει αφού ότι ρυθμίσεις γίνονται αποθηκεύονται στις επιμέρους διεπαφές (CimEdit, Event Editor, Program Editor κλπ) και κατόπιν αποθηκεύονται αυτόματα στο Project. Όταν πρόκειται να πατηθεί το RUN πρέπει πριν να πατηθεί το Configuration Update για να φορτωθούν οι αλλαγές στο CimView (Runtime) περιβάλλον. 17

Το Cimplicity έχει μία επιλογή που είναι εξαιρετικά χρήσιμη στο χρήστη και χωρίς αυτή, τόσο η σχεδίαση όσο και η λειτουργία των εφαρμογών SCADA θα ήταν πιο κουραστική. Τόσο η έναρξη όσο και η παύση ενός project απαιτεί αρκετή υπολογιστική ισχύ από τη CPU με αποτέλεσμα να διαρκεί αρκετά δευτερόλεπτα. Υπάρχει ωστόσο η επιλογή Dynamic. Στην ουσία πατώντας το dynamic μπορούμε να κάνουμε αλλαγές στο project ενώ αυτό είναι σε κατάσταση RUN. Αυτό γλιτώνει από κόπο και χρόνο καθώς στη φάση της σχεδίασης χρειάζεται ένα project να το τρέξουμε πολλές φορές μέχρι να βεβαιωθούμε για την σωστή λειτουργία του. Αντίστοιχα ένα project που είναι σε κατάσταση RUN σε κάποιο βιομηχανικό περιβάλλον, δεν χρειάζεται να σταματήσει τη λειτουργία του (με όποιες συνέπειες θα είχε κάτι τέτοιο) για να γίνει κάποια επεξεργασία στις ρυθμίσεις του. Οι αλλαγές μπορούν να γίνονται on-line. 2.4 Points Καθ' όλη τη διάρκεια της σχεδίασης χρειάζεται να ορίζονται συνεχώς Points ώστε να υλοποιείται η λογική που διέπει το σύστημα. Τα points είναι δύο ειδών. Τα device που είναι πραγματικά και αντιστοιχούν σε κάποια I/O διεύθυνση PLC και τα virtual που είναι στοιχεία μνήμης του υπολογιστή και βοηθούν στην υλοποίηση της εφαρμογής. Κάποια points ορίζονται από την αρχή (όπως τα device points που είναι γνωστά) ενώ κάποια άλλα προκύπτει η ανάγκη δημιουργίας τους στην πορεία. Το πρόγραμμα έχει προεγκατεστημένα ένα σύνολο από points που αντιπροσωπεύουν σημαντικές πληροφορίες του συστήματος όπως ημερομηνία, το όνομα του υπολογιστή, το όνομα του project, τον αριθμό των συνδεδεμένων χρηστών, τον αριθμό των εμφανισθέντων Alarms κλπ. Για να δημιουργηθεί ένα νέο virtual point : δεξί κλικ στο POINTS New. Επιλέγουμε virtual, δίνουμε όνομα και πατάμε ΟΚ 18

Ανοίγει το παράθυρο των ρυθμίσεων. Αποτελείται από τέσσερις καρτέλες General, Virtual, Conversion, Alarm. Στην ταμπέλα General πρέπει να τεθεί ο τύπος δεδομένων που ανήκει το νέο point. Υπάρχουν οι εξής τύποι δεδομένων: ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ (VIRTUAL) 1. ANALOG DINT 32-bit ακέραιοι με εύρος [-2.147.483.648, 2.147.483.648 ] INT Ακέραιοι με εύρος [-32.768, 32.767] REAL Κινητής υποδιαστολής SINT Ακέραιοι με εύρος [-128, 127] UDINT Μη προσημασμένοι ακέραιοι με εύρος [0, 4,294,967,295] UINT Μη προσημασμένοι ακέραιοι με εύρος [0, 65,535] USINT Μη προσημασμένοι ακέραιοι με εύρος [0, 255] 19

2. BOOLEAN BOOL {0,1} BYTE 8-bits δεδομένων WORD 16-bits δεδομένων DWORD 32-bits δεδομένων 3. TEXT STRING STRING_20 STRING_8 STRING_80 1-χαρακτήρα αλφαριθμητική συμβολοσειρά 20-χαρακτήρων αλφαριθμητική συμβολοσειρά 8-χαρακτήρων αλφαριθμητική συμβολοσειρά 80-χαρακτήρων αλφαριθμητική συμβολοσειρά Πολύ σημαντική ρύθμιση είναι στην ταμπέλα virtual, η αρχικοποίηση (Initialization), όπου μπορεί να επιλεγεί μία αρχική τιμή ή τελευταία τιμή πριν ένα project σταματήσει να "τρέχει". Στην ταμπέλα Conversion μπορεί να επιλεγεί και μονάδα μέτρησης από τις προεγκατεστημένες (m, cm, inches, kgr κλπ) είτε να εισαχθεί νέα μονάδα μέτρησης. Παράδειγμα 2.1 Παρακάτω φαίνεται το παράθυρο τουpoint_1: 20

To point αυτό αποθηκεύει τις 10 τελευταίες τιμές του και τις εισάγει σε όποιο Trend Control του ζητηθεί. Χρησιμοποιεί το point Α1 για την ενεργοποίηση του. Αν το A1 ισούται με 0, τότε δε μπορεί ο χρήστης να κάνει setpoint στο Α1 στο περιβάλλον RUNTIME. Αν το point OUT_2 ισούται με 0, τότε το POINT_1 αυτομάτως γίνεται μηδιαθέσιμο στο RUNTIME. Στο πεδίο Extra Info συμπληρώνεται ο αριθμός 15, που είναι καθαρά βοηθητικός και μπορεί να έχει οποιαδήποτε σημασία στο χρήστη, όπως μία προεπιλεγμένη τιμή. Το Level (=50) καθορίζει το επίπεδο ασφαλείας του συγκεκριμένου point. Για να μπορεί ένας χρήστης να κάνει setpoint στο POINT_1 πρέπει να έχει level πάνω από 50. Περισσότερα για τα θέματα ασφάλειας στην παράγραφο 2.10.2 Ένα project SCADA κατά πάσα πιθανότητα θα χρησιμοποιεί πολλά points σε διάφορες εφαρμογές όπως προγράμματα, οθόνες,events κλπ. Το παράθυρο το οποίο δίνει πλήρη εικόνα για τη λειτουργία των Points είναι το Point Cross Reference και φαίνεται παρακάτω: 21

2.5 Screens / CimEdit / CimView H οθόνη SCADA αποτελεί την καρδιά της επικοινωνίας Ανθρώπου - Μηχανής (HMI) και η σχεδίαση της γίνεται από ένα ειδικό περιβάλλον, το CimEdit. Το περιβάλλον αυτό αποτελεί το σχεδιαστικό εργαλείο με το οποίο δημιουργείται το γραφικό περιβάλλον το οποίο εξομοιώνει την μονάδα παραγωγής και παρέχει τις απαιτούμενες πληροφορίες στην κατάλληλη μορφή. Τα αρχεία στο CimEdit αποθηκεύονται με την επέκταση.cim. Όταν μία οθόνη είναι έτοιμη και αφού ο υπολογιστής έχει τεθεί σε κατάσταση RUN τότε με το περιβάλλον CimView ανοίγει η οθόνη SCADA σε εκτελέσιμη μορφή. Από το CimView o μηχανικός επικοινωνεί με το βιομηχανικό περιβάλλον στέλνοντας εντολές ελέγχου (sliders, buttons, διακόπτες) και παρατηρώντας τις ενδείξεις (αριθμητικές, γραφικές, μετρητές, αισθητήρες κλπ). Το περιβάλλον CimEdit: Το περιβάλλον CimView: 22

Η πρόσβαση στο CimEdit γίνεται πατώντας με διπλό κλικ την ετικέτα screens ή ανοίγοντας κατευθείαν το CimEdit από το αντίστοιχο εικονίδιο. Όπως φαίνεται υπάρχουν 5 ταμπέλες: Home, Drawning, Format, Arrange, Tools 23

Η καρτέλα Home περιλαμβάνει επιλογές όπως Clipboard(Cut, Copy, Undo, Redo), Zoom, Grid. Το Screen properties ανοίγει την καρτέλα με τις βασικές ρυθμίσεις της οθόνης, το Point(Expression) View εμφανίζει τα Points (Expressions) που χρησιμοποιούνται στο screen. Τέλος, με το Test τίθεται σε κατάσταση RUN το Project και ανοίγει κατευθείαν το CimView με τη συγκεκριμένη οθόνη ή ανοίγει μόνο η οθόνη αν δεν έχει σωθεί πάνω σε κάποιο Project. Τέλος, με το Dynamic (όταν επιλεγεί) μπορούν να γίνονται αλλαγές σε κατάσταση RUN και αυτές αυτομάτως τίθενται σε εφαρμογή. Η καρτέλα Drawing είναι η πιο σημαντική αφού περιέχει τα εργαλεία σχεδίασης της γραφικής απεικόνισης για το σύστημα SCADA. Περιέχει τις διαφορετικές μορφές του κέρσορα, την εισαγωγή γνωστών γεωμετρικών σχημάτων μαζί με τη σχεδίαση εύκαμπτου σωλήνα Τα υπόλοιπα στοιχεία επεξηγούνται παρακάτω: Picture: Εισαγωγή εικόνας Object Explorer: Η βασική βιβλιοθήκη αντικειμένων που περιλαμβάνει σύμβολα, Smart Object, OLE controls, ActiveX controls 24

Class Object: Εισαγωγή ενός Class Object Text Button: Εισαγωγή button Text string: Εισαγωγή επιγραφής OLE: Eισαγωγή OLE αντικειμένων Trend: Εισαγωγή γραφικής παράστασης Alarm Viewer: Εισαγωγή ActiveX control για απεικόνιση των Alarms Alarm Historical Viewer: Ομοίως με το παραπάνω με τη διαφορά ότι τα στοιχεία που εμφανίζονται προέρχονται από την συνδεδεμένη βάση δεδομένων. Proficy Portal: Εισάγει το Proficy Portal H καρτέλα Format περιέχει επιλογές που σχετίζονται με τη μορφή που εμφανίζονται τα διάφορα αντικείμενα όπως η παλέτα χρωμάτων, το μέγεθος, το πάχος του αντικειμένου κλπ. 25

Η καρτέλα Arrange είναι επίσης σημαντική αφού περιέχει επιλογές για τη σωστή στοίχιση των αντικειμένων, την περιστροφή τους, την ομαδοποίηση(group - Ungroup) τους ώστε πολλά αντικείμενα μαζί να αντιμετωπίζονται ως ένα και την επιλογή για τις πρέπουσες επικαλύψεις (Bring back, Bring forward κλπ) Για την καρτέλα Tools περιλαμβάνονται η εισαγωγή Global Scripts και Linked Objects. Τα Global scripts είναι προγράμματα τα οποία επενεργούν σε όλα τα αντικείμενα που υπάρχουν στη συγκεκριμένη οθόνη. ΔΕΝ είναι τα προγράμματα τα οποία αντιπροσωπεύουν τις λειτουργικές απαιτήσεις της εφαρμογής SCADA. Αυτά συντάσσονται στον Program Editor. Ένα Object μπορεί να εισαχθεί από το χρήστη πολλές φορές και σε διαφορετικά screens. Προκειμένου να αποφευχθεί η συνεχής παραμετροποίηση του αντικειμένου (Δεξί κλικ στο αντικείμενο Properties) μπορεί να χρησιμοποιηθεί ένα "μητρικό" αντικείμενο και χρησιμοποιώντας την ετικέτα Linked Objects ρυθμίζεται η σύνδεση με τα υπόλοιπα. Οποιεσδήποτε αλλαγές γίνουν στο μητρικό Object μεταφέρνονται αυτομάτως και στα υπόλοιπα. Μόλις εισαχθεί ένα αντικείμενο στο CimEdit μπορεί να γίνει η παραμετροποίηση του πατώντας πάνω του με δεξί κλικ και επιλέγοντας Properties. 26

Κάθε φορά που πρέπει να εισαχθεί κάποιο Point στις ιδιότητες ενός αντικειμένου θα συναντάται το παρακάτω πεδίο: Στο πεδίο συμπληρώνεται η συνθήκη σύμφωνα με την οποία πραγματοποιείται η περιστροφή (για την παραπάνω φωτογραφία) του αντικειμένου. Το πεδίο αυτό τις περισσότερες (αν όχι όλες) φορές θα περιέχει (μόνο) Points. H εισαγωγή των Points μπορεί να γίνει είτε με το δεξί βελάκι (Browse Points - New Points κλπ) είτε πληκτρολογώντας απευθείας το όνομα του Point. To button ανάμεσα στο πεδίο και το βελάκι, ανοίγει το παράθυρο Edit Expression στο οποίο εισάγονται οι συνθήκες χρησιμοποιώντας μαθηματικούς τελεστές και γνωστές αλγεβρικές συναρτήσεις. 27

Για παράδειγμα, μία μεταβλητή ΤΑΝΚ αντιπροσωπεύει την τιμή της ποσότητας υγρού σε μία δεξαμενή. Το υγρό ρέει προς τη δεξαμενή από δύο διαφορετικές αντλίες. Τα Points Pump_1 και Pump_2 δείχνουν την ποσότητα που χύνεται στη δεξαμενή. Η εισαγωγή της συνθήκης πλήρωσης στο Point ΤΑΝΚ θα είναι η παρακάτω: Τα παρακάτω παραδείγματα αναφέρονται στη σχεδίαση βασικών διεργασιών που συναντώνται σε εφαρμογές SCADA. Παράδειγμα 2.2 Μία οθόνη SCADA περιέχει μία φωτεινή σήμανση η οποία ελέγχεται με δύο τρόπους. Με ένα διακόπτη ΟΝ-OFF και με δύο μπουτόν START-STOP. Επίσης περιέχει μία δεξαμενή μαζί με μία ένδειξη για την % πληρότητά της και ένα slider που ελέγχει τη στάθμη στη δεξαμενή. Θα χρειαστούν τα εξής Points: 28

Ανοίγουμε τον Object Explorer και τοποθετούμε τα αντικείμενα που θα χρειαστούν όπως φαίνεται παρακάτω. Δίπλα από τη δεξαμενή τοποθετήθηκε ένα ορθογώνιο μαζί με μία κλίμακα (από το Object Explorer) το οποίο χρησιμοποιείται για την οπτική (και όχι μετρική) απεικόνιση της πληρότητάς της. Tα START - STOP τοποθετήθηκαν από την καρτέλα Drawing Text Button. Η παραμετροποίηση των αντικειμένων (με δεξί κλικ πάνω τους) γίνεται ως εξής: 29

LAMP ON-OFF SWITCH START-STOP BUTTONS Για το Button START. Oρίζουμε το Event Mouse Up το οποίο σημαίνει ότι μόλις ο κέρσορας φτάσει πάνω στο button, μετατρέπεται σε βελάκι προς τα πάνω και μπορεί πλέον το button να πατηθεί. 30

Ως action ορίζεται: 31

Ομοίως για το Button STOP. TANK INDICATOR SLIDER Σώζουμε την οθόνη, στο Workbench πατάμε Configuration Update και τέλος πατάμε Test Screen στο CimEdit. Ανοίγει το CimView : 32

Παράδειγμα 2.3 Πολλές φορές σε σταθμούς επεξεργασίας αντικειμένων, αντικείμενα μεταφέρονται μεταξύ 2 ή περισσοτέρων σημείων πάνω σε μεταφορικές ταινίες. Το παράδειγμα επεξηγεί πως απεικονίζεται η αυτή η μετατόπιση. Ένα βαρέλι πρέπει να μετακινηθεί από τη μία άκρη ως την άλλη της παρακάτω μεταφορικής ταινίας. Το παράθυρο των Properties για το βαρέλι είναι το παρακάτω: 33

Μία μεταβλητή (BARREL_MOVE) αποτελεί τον μετρητή της κίνησης. Όσο αυξάνεται η τιμή της τόσο προχωράει το αντικείμενο. To πεδίο min/max ορίζει το εύρος αυτής της μεταβλητής όπου οδηγεί το αντικείμενο σε μετατόπιση, ενώ το offset είναι η οριακή θέση που φτάνει το αντικείμενο. Στην ουσία το offset θα τεθεί στο δεξιό άκρο της μεταφορικής ταινίας. Επειδή δεν είναι εύκολο να βρεθεί η τιμή στην οποία αντιστοιχεί η επιθυμητή θέση, χρησιμοποιείται το πλήκτρο με τα αποσιωπητικά δίπλα στο πεδίο offset. Πατώντας αυτό το πλήκτρο μπορεί να επιλεγεί με τον κέρσορα το επιθυμητό σημείο πάνω στην οθόνη και αυτομάτως το πεδίο offset συμπληρώνεται με την αντίστοιχη τιμή. Το σημείο αυτό είναι για το παραπάνω παράδειγμα το 362. Αν συμπληρώσουμε και τη μέγιστη τιμή επίσης 362 το αποτέλεσμα είναι ότι όταν BARREL_MOVE = 362 τότε το αντικείμενο βρίσκεται στο δεξί άκρο της μεταφορικής ταινίας, ενώ για BARREL_MOVE = 0 το αντικείμενο βρίσκεται στο αριστερό άκρο της μεταφορικής ταινίας. Για της ενδιάμεσες τιμές το αντικείμενο κινείται στο πάνω στην μεταφορική ταινία. 34

Παράδειγμα 2.4 Όταν ένα τμήμα της σχεδιαζόμενης οθόνης πρέπει να αλλάζει συνεχώς τη γραφική απεικόνισή του, τότε μπορεί να χρησιμοποιηθεί το Frame Container. Σε μία οθόνη απεικονίζεται η κατάσταση λειτουργίας ενός κλίβανου. Σε μία κενή οθόνη στο CimEdit πληκτρολογούμε New Frame Container. Αυτομάτως η κενή οθόνη αποθηκεύεται ως το πρώτο frame. Ότι σχέδιο έχει γίνει στο πρώτο frame θα φαίνεται και στα υπόλοιπα. Γι' αυτό αν θέλουμε κάθε frame να εμφανίζει τα δικά του γραφικά το πρώτο πρέπει να είναι πάντα το κενό. Στη συνέχεια πατάμε New Frame και σχεδιάζουμε το παρακάτω. 35

Ξανά New Frame: Με τον ίδιο τρόπο σχεδιάζονται τα παρακάτω: 36

Τέλος πατάμε Close Container. Με διπλό κλικ πάνω στην περιοχή ανοίγει το παράθυρο των ρυθμίσεων. 37

Με δεξί κλικ πάνω στα Frames δίνουμε το επιθυμητό όνομα: Στη συνέχεια πατώντας Expressions ορίζονται οι συνθήκες εμφάνισης του κάθε frame. Για το παράδειγμα είναι οι παρακάτω συνθήκες: 38

Ορίζονται τρία Points: COOL DOWN (Boolean), TREND(Boolean), HEAT201(Uint) Το παράθυρο των Expressions είναι το παρακάτω: Τα buttons COOL DOWN-TREND-EXIT TREND κάνουν SET (0-1) τις boolean μεταβλητές COOLDOWN, TREND όπως ακριβώς και στο προηγούμενο παράδειγμα. Τέλος προστίθενται ένα Slider ώστε να ελέγχεται η τιμή της θερμοκρασίας του κλίβανου. Πατάμε διαδοχικά Save στο CimEdit Configuration Update στο Workbench Test Screen. Μεταβάλλοντας την τιμή του slider παρατηρούμε και την αλλαγή των frames σύμφωνα με τις ορισθέντες συνθήκες. Πατώντας επίσης το button Τrend εμφανίζεται το γράφημα με την μεταβολή της θερμοκρασίας. 39

40

2.6 Alarms Η σχεδίαση των Alarms αποτελεί μία φάση σημαντική φάση στη σχεδίαση των συστημάτων SCADA. Κάθε σχεδιαστής πρέπει να έχει πλήρη εικόνα όλων των πιθανών καταστάσεων άμεσης ειδοποίησης που μπορεί να υπάρχουν σε ένα βιομηχανικό περιβάλλον και να γνωρίζει και τα αίτια τους. Κάθε λογισμικό SCADA έχει η δική του λογική να παρουσιάζει τα Alarms και στο πως αυτά ρυθμίζονται. Τα Alarms στο Cimplicity: Πατώντας την καρτέλα Alarms στο Workbench εμφανίζονται στη λίστα δεξιά τα System Alarms τα οποία είναι προεγκατεστημένα και ενημερώνουν για την κατάσταση του συστήματος, όπως για σφάλματα στην επικοινωνία, έναρξη - τερματισμό προγραμμάτων κλπ. Τα Alarms αυτά δεν πρέπει να διαγραφούν ούτε να επεξεργαστούν. Τα Alarms που μπορεί ένας χρήστης να σχεδιάσει είναι τα παρακάτω: 1. System Alarms (όπως τα παραπάνω) 2. Points Alarms (Alarms που ενεργοποιούνται ανάλογα με την κατάσταση των Points) 41

Υπάρχουν δύο τρόποι για να παρακολουθεί ο χειριστής της εφαρμογής SCADA τα Alrams. Ο πρώτος είναι να τοποθετήσει στο CimEdit screen το AMV Control Object όπως φαίνεται στην εικόνα παρακάτω. 42

Ο δεύτερος τρόπος είναι μέσω εργαλείων Runtime και συγκεκριμένα του Alarm Viewer το οποίο εκτελεί την ίδια λειτουργία με το AMV Control με τη διαφορά ότι η πρόσβαση σε αυτό γίνεται εκτός οθόνης CimView: Αντίστοιχα με το Alarm Viewer υπάρχει και το Alarm Sound Manager το οποίο πρέπει να το ανοίγει ο χρήστης της εφαρμογής ώστε να έχει και ηχητική σήμανση για την ενεργοποίηση των Alarms. Κάτι τέτοιο ενδείκνυται κατά τη σχεδίαση ειδικά σε Alarms που έχουν υψηλό δείκτη Severity. 43

Αποκατάσταση Σύνδεσης Προσωρινή Σίγαση Συνθήκη Παύσης ηχητικής σήμανσης Κάθε project που εισάγεται έχει αυτή την προτεραιότητα 44

Μόλις εμφανιστεί ένα Alarm τότε ο χρήστης πρέπει να αποφασίσει τι εντολή θα δώσει για το συγκεκριμένο Alarm. Μπορεί να πατήσει στον Alarm Viewer κάποιο από τα Delete, Reset, Acknowledge. Η επιλογή Acknowledge (Ask) ειδοποιεί το σύστημα ότι ο χειριστής έλαβε γνώση της σήμανσης και ότι άμεσα θα προβεί στις απαραίτητες ενέργειες. Άμεσα απενεργοποιούνται οι ηχητικές σημάνσεις, ενώ η κατάσταση της σήμανσης αλλάζει από ALARM STATE σε NORMAL STATE. Ωστόσο το Alarm δε διαγράφεται αφού η συνθήκη που οδήγησε στην ενεργοποίηση του εξακολουθεί να υφίσταται. Πρέπει ή να σταματήσει η συνθήκη να ικανοποιείται, κάνοντας κάποιες ενέργειες πάνω στην εφαρμογή (πχ μειώνοντας τον αριθμό στροφών σε μία γεννήτρια) ή να πατηθεί το Delete το οποίο δε συνίσταται αφού μπορεί να οδηγήσει σε άγνοια του χειριστή επικίνδυνων καταστάσεων. Το παρακάτω διάγραμμα επεξηγεί αυτή τη λειτουργία. 2.6.1. Points Alarms Τα Points Alarms ορίζονται από την ταμπέλα Alarm στο Point Dialog Box. Για κάθε Alarm πρέπει να συμπληρωθούν τα πεδία Alarm Classes και Alarm Strings. 45

Tα Alarm Classes έχουν στόχο την ομαδοποίηση των Alarms. Κάθε class μπορεί να προσδιορίζει μία ομάδα Alarms ανάλογα με τις προδιαγραφές ενεργοποίησης τους (σήμανση προειδοποίησης, κινδύνου ή απλής ενημέρωσης), την τοπολογία των συμβάντων (χώρος εργοστασίου), τύπος λειτουργίας (στάθμη δεξαμενής, ισχύς μηχανής ως προς την ονομαστικής λειτουργίας της, ποσότητα παραγόμενων προϊόντων) κλπ. Παρακάτω φαίνεται το παράθυρο ορισμού ενός νέου Alarm Class. 46

Στο πεδίο Order αντιστοιχεί ένας αριθμός 0-9999 που αντιπροσωπεύει την προτεραιότητα εμφάνισης των Alarms. Το 0 αντιστοιχεί στη μέγιστη προτεραιότητα, ενώ το 9999 στην ελάχιστη. H εισαγωγή ηχητικής σήμανσης γίνεται πατώντας την καρτέλα Audio. Τα Alarm Strings είναι πίνακες οι οποίοι χρησιμοποιούνται για να ονομάζεται η διαφορετική κατάσταση στην οποία βρίσκεται ένα Point και οδηγεί στην εμφάνιση ενός Alarm. Για παράδειγμα όταν στο πεδίο Lo-2 βρίσκεται η τιμή 0, η αντίστοιχη κατάσταση πρέπει να ονομαστεί Empty. Το string πρέπει λοιπόν να είναι όπως παρακάτω: Επειδή δεν είναι δυνατόν να γνωρίζουμε από την αρχή όλα τα strings που θα χρειαστούν στο projects, είναι δυνατόν αυτά να ορίζονται από την ταμπέλα Alarms στα Point Properties. 47

Στο παρακάτω παράθυρο εμφανίζεται το Point ENGINE το οποίο δημιουργεί Alarm όταν είναι OFF εμφανίζοντας το μήνυμα Engine is On HOLD. 48

Στα Boolean Points όπως το παραπάνω επιλέγεται μία από τις δύο καταστάσεις ως κατάσταση Alarm (Λογικό "1" - Alarm High, Λογικό "0" - Warning High) και η άλλη αντιστοιχεί στην κατάσταση Normal. Το αντίστοιχο παράθυρο για Analog Points είναι το παρακάτω θεωρώντας τις οριακές τιμές της στάθμης μιας δεξαμενής: 49

To Alarm Message είναι: CAPACITY = %STATE - TANK_LEVEL IS %LIMIT. Δηλαδή, αν η πλήρωση έχει τιμή 15 το μήνυμα στον Alarm Viewer θα είναι: CAPACITY = 15 - TANK_LEVEL IS ALMOST EMTY. Τα όρια με βάση τα οποία αντιστοιχίζεται το κατάλληλο Alarm Limit είναι: 50

[0,5] EMTY (5,25] ALMOST EMTY [25,70) NORMAL [70,95) ALMOST FULL [95,100] FULL 2.6.2 System Alarms Πατώντας Δεξί κλικ New πάνω στην καρτέλα Alarms του Workbench ανοίγει το παρακάτω παράθυρο: Για να ενεργοποιηθεί ένα τέτοιο Alarm πρέπει να υπάρξει η παρακάτω κατάλληλη εντολή σε κάποιο υπό εκτέλεση script: AlarmGenerate "RANDOM","HIGH_TEMP","$SYSTEM","Temperature is HIGH!" 51

Επομένως ένας κώδικας που ελέγχει την κατάσταση της θερμοκρασίας ενός συστήματος και ειδοποιεί για την υπέρβαση του άνω ορίου είναι: Sub Main() Dim L As Integer L=1 While L=1 If PointGet("TEMP")>=180 Then AlarmGenerate "RANDOM","HIGH_TEMP","$SYSTEM","Temperature is HIGH!" End If Wend End Sub 2.6.3 Alarm Features Τα παρακάτω μπορούν να χρησιμοποιηθούν για να διευκολύνουν το χρήστη στη καλύτερη διαχείριση των Alarms. Alarm Printer Alarm OPC Client Alarm Blocking Alarm Translator Εκτύπωση Alarms Αποστολή / Λήψη Alarms μέσω Α&Ε OPC Server Ιεράρχηση των Alarms ανάλογα με τη σημαντικότητα τους Δυνατότητα καταχώρησης Alarms σε διάφορες γλώσσες 2.6.3.1 Alarm Printer Αν είναι απαραίτητο να εκτυπώνονται τα Alarms σε έναν εκτυπωτή που συνδέεται με τους σταθμούς SCADA τότε αυτό μπορεί να γίνει πατώντας πάνω στο Alarm Printer. Το παρακάτω παράθυρο δείχνει πως επιλέγουμε στο Cimplicity να εκτυπώνονται σε σειριακό εκτυπωτή συνδεδεμένο στη θύρα LPT1, τα Αlarms από το Alarm Class CDMHI αμέσως μόλις ενεργοποιηθούν (Generate). 52

2.6.3.2 Alarm Blocking Η δυνατότητα να μπλοκάρεται η εμφάνιση Alarms κάτω από συγκεκριμένες συνθήκες είναι σημαντική υπόθεση για τα συστήματα SCADA. Για παράδειγμα ας θεωρηθεί μία μεταφορική ταινία η οποία μεταφέρει αντικείμενα σε διαφορετικούς σταθμούς επεξεργασίας. Αν η μεταφορική ταινία για κάποιο λόγο απενεργοποιηθεί επηρεάζοντας τη λειτουργία των υπόλοιπων μηχανημάτων, θα έχει ως αποτέλεσμα τη συνεχή εμφάνιση Alarms στην οθόνη SCADA. Αυτό κάνει πολύπλοκη και άρα χρονοβόρα το έργο του χρήστη στο να βρει την αιτία του προβλήματος. Αν όμως εμφανιστεί ένα μοναδικό Alarm που ειδοποιεί για το πρόβλημα στη μεταφορική ταινία τα πράγματα απλοποιούνται. Εκτός λοιπόν από τον καθορισμό των έκτακτων συμβάντων σε μία βιομηχανική διαδικασία χρειάζεται και η κατάλληλη πολιτική σχεδίασης των Alarms που θα επιτρέπει τον άμεσο εντοπισμό των προβλημάτων εστιάζοντας στην αιτία τους χωρίς να αποσπάται η προσοχή των χειριστών σε μικρότερης σημασίας σημάνσεις. Το Alarm Blocking είναι το παρακάτω: 53

Στη λίστα Priority πληκτρολογούμε έναν αριθμό στο διάστημα [0, 32767] ο οποίος καθορίζει την προτεραιότητα εμφάνισης. Όσο μεγαλύτερος ο αριθμός τόσο μεγαλύτερη η προτεραιότητα. Για την παραπάνω εικόνα η εμφάνιση του TANK_A στον Alarm Viewer έχει ως συνέπεια τον αποκλεισμό όλων των άλλων από τη λίστα σε περίπτωση που γίνει Generate κάποιο από αυτά, έως ότου το TANK_A γίνει Delete από τη λίστα. Η εμφάνιση του Conveyor αποκλείει τα ROBOT, CONNECT κ.ο.κ. Σε περίπτωση που δύο ή περισσότερα Alarms έχουν τον ίδιο αριθμό προτεραιότητας τότε: Αν το Peer Block είναι ενεργοποιημένο τότε εμφανίζεται στη λίστα το πρώτο χρονικά Alarm που έγινε Generate, αποκλείοντας όλα τα άλλα με μικρότερη ή ίδια προτεραιότητα. Αν είναι απενεργοποιημένο τότε τα Alarms ίδιας προτεραιότητας δεν μπλοκάρονται. Παράδειγμα 2.5 Μία εφαρμογή χρησιμοποιεί τα Alarms: Alarm_1, Alarm_2, Alarm_3, Alarm_4, Alarm_5_Alarm_6. Tο κάθε Alarm με μονό αριθμό πρέπει να μπλοκάρει το αμέσως επόμενο με ζυγό αριθμό, δηλαδή το 1 μπλοκάρει το 2, το 4 μπλοκάρει το 4 κ.ο.κ. Η δήλωση στο Alarm Blocking φαίνεται παρακάτω. 54

2.6.3.3 Alarm Translator O Alarm Translator είναι ένα εργαλείο στο οποίο τα μηνύματα που συνοδεύουν τα alarms μπορούν να μεταφραστούν σε διάφορες γλώσσες οι οποίες ορίζονται από το χρήστη. Αυτή η δυνατότητα μπορεί να επεκταθεί και πέρα από τα Alarms, όπως στα διάφορα text strings στις οθόνες CimEdit. Κάθε στοιχείο που συνδέεται με τον ορισμό των Alarms αυτομάτως μεταφέρεται σε ένα translation αρχείο (.clm). Αντίστοιχα το ίδιο συμβαίνει όταν επιλέγουμε το Translate στα text strings όπως φαίνεται παρακάτω. 55

Η εισαγωγή του μεταφρασμένου μηνύματος σε κάποια άλλη γλώσσα γίνεται μέσα από το Alarm Translator. 56

Η μετάφραση μέσα στο CimView περιβάλλον γίνεται με τον εξής τρόπο: Εισάγουμε όσα text buttons αντιστοιχούν στις διάφορες γλώσσες. Σε κάθε text button κάνουμε την εξής παραμετροποίηση. Ανοίγουμε το properties και στα Events επιλέγουμε ένα Event Mouse Up. Με δεξί κλικ στο popup menu δίπλα από το πεδίο Action επιλέγουμε New Script και εισάγουμε τις παρακάτω εντολές: 57

Η CimView οθόνη με το αποτέλεσμα των παραπάνω ρυθμίσεων: 2.7 Recipes Η δημιουργία των recipes γίνεται από το περιβάλλον Recipe Configuration. Για να υπάρξουν recipes σε ένα project πρέπει να έχει γίνει η αντίστοιχη επιλογή στο project properties. Ανοίγουμε τον RecipeConfig με διπλό κλικ στην ετικέτα Recipes. 58

Με δεξί κλικ επιλέγουμε Insert Parameters και από εκεί τον αριθμό των παραμέτρων που χρησιμοποιεί η κάθε συνταγή. Κάθε παράμετρος θα αντιστοιχεί και σε ένα point. Το παρακάτω παράδειγμα χρησιμοποιεί 12 παραμέτρους. Με δεξί κλικ στα attributes ανοίγουν οι στήλες που παρέχουν χρήσιμες πληροφορίες. Δεξί κλικ στο recipes New Recipe Δίνουμε όνομα Διπλό κλικ στη νέα συνταγή για να ανοίξει η στήλη. Αντίστοιχα προσθέτουμε και άλλες συνταγές. 59

Στη λίστα ID αναγράφεται η περιγραφή του κάθε στοιχείου που χρησιμοποιείται, στη λίστα των recipes (SKYRODEMA 1,2,3) είναι οι τιμές που γίνονται SET στις αντίστοιχες μεταβλητές όταν ζητηθεί η συγκεκριμένη συνταγή. Τέλος, η ετικέτα Maps εμφανίζει τη λίστα με τα Points που αντιστοιχίζονται στις συγκεκριμένες παραμέτρους. Δεξί κλικ στο Maps New Map Δίνουμε όνομα Διπλό κλικ στο νέο Map για να εμφανιστεί. Ακολουθώντας όλα τα βήματα στις 3 συνταγές για παραγωγή 3 διαφορετικού τύπου σκυροδέματος θα έχουν την παρακάτω μορφή. Ένας συνήθης τρόπος για να εισαχθούν οι συνταγές στο σύστημα SCADA είναι ο παρακάτω. Ανοίγουμε ένα OLE Object και επιλέγουμε CIMPLICITY Recipe Control. 60

Στην ουσία το CIMPLICITY Recipe Control είναι ένα button που επικοινωνεί με το RecipeConfig. Με διπλό κλικ πάνω στο object ανοίγει το παρακάτω παράθυρο. Συμπληρώνοντας την φόρμα αυτή κάθε φορά που θα πατιέται αυτό το button θα αποκρίνεται ανάλογα. Για να φορτωθεί μία συγκεκριμένη συνταγή επιλέγουμε το download. 2.8 Basic Control Engine / Event Editor / Program Editor Το Basic Control Engine είναι η διεπαφή που ενσωματώνει τη λογική λειτουργίας και τον προγραμματισμό της εφαρμογής SCADA. Αποτελείται από 3 εφαρμογές, τον Event 61

Editor, τα Scripts και το BCE UI. Τα δύο πρώτα είναι αυτά που χρησιμοποιούνται για τον καθορισμό των συμβάντων και των απαιτούμενων ενεργειών ενώ το τρίτο είναι περισσότερο εποπτικό-διαγνωστικό εργαλείο καθώς χρησιμοποιείται μόνο σε κατάσταση RUN και παρακολουθεί την εξέλιξη των Events όσο αυτά συμβαίνουν. 2.8.1 Event Editor Στον Event Editor πρέπει να οριστούν τα όλα τα συμβάντα, επιθυμητά και μη, που περιλαμβάνει η εφαρμογή. Ο σχεδιαστής πρέπει να είναι σε θέση να γνωρίζει όλα τα πιθανά συμβάντα που ενδέχεται ή πρέπει να συμβούν. Κάθε συμβάν οδηγεί σε μία ή περισσότερες ενέργειες (actions) οι οποίες τίθενται σε λειτουργία αμέσως μόλις το συμβάν λάβει χώρα. Το παρακάτω παράθυρο δείχνει τον Event Editor. A Τα Events τα οποία μπορούν να επιλεγούν είναι: Alarm Acknowledged Alarm Deleted Alarm Generated Alarm Reset Alarm Change Point Equals Point Transition High 62

Point Transition Low Point Update Run Once Timed Τα Actions τα οποία μπορούν να επιλεγούν είναι: Alarm Look-Up Log Only Point Alarm Acknowledged Point Alarm Disable Point Alarm Enable Recipe Upload / Download Run Script Set Point Source Transition High Transition Set Παράδειγμα 2.6 Έστω η εικόνα που φαίνεται παρακάτω και η οποία λειτουργεί ως εξής. Μόλις ο διακόπτης ΟΝ-ΟFF γίνει OFF ON τότε οι τρεις ενδείξεις πρέπει να δείχνουν από πάνω προς κάτω τις τιμές 1000, 2000, 3000. O διακόπτης ΟΝ-OFF οδηγείται από μία boolean μεταβλητή ONOFF. Τα τρία indicators διαδοχικά από 3 ΙΝΤ μεταβλητές VAR1, VAR2, VAR3 (αρχικοποιημένες στο 0). 63

Στον Εvent Εditor ορίστηκε το συμβάν Event 1: Και στη συνέχεια 3 actions ACTION1, ACTION2, ACTION3 : O Event Editor είναι έτοιμος. Αφού πατηθεί το Configuration Update, πατάμε RUN και στη συνέχεια θέτουμε το διακόπτη στο ΟΝ. 64

2.8.2 Program Editor O Program Editor είναι το περιβάλλον στο οποίο συντάσσονται τα προγράμματα που υλοποιούν την προδιαγραφή λειτουργίας της εφαρμογής SCADA. Η γλώσσα προγραμματισμού που χρησιμοποιείται στο Cimplicity είναι η Visual Basic. Εκτός από 500 βασικές συναρτήσεις που περιλαμβάνει η συγκεκριμένη γλώσσα, υπάρχει και ένα σετ εντολών που αφορούν αποκλειστικά την επικοινωνία με το Cimplicity. Τα προγράμματα αποθηκεύονται σαν αρχεία με επέκταση ".bcl". Για να τρέξει ένα πρόγραμμα πρέπει πρώτα να έχει οριστεί ως action (Run Script) σε κάποιο event. Είναι ο μόνος τρόπος για να εκτελεστεί ένας κώδικας. Κάθε project περιλαμβάνει στα scripts δύο κώδικες: em_init.bcl και em_term.bcl. Τα δύο αυτά scripts αφορούν την έναρξη και τον τερματισμό του προγράμματος και δεν πρέπει ούτε να αλλάξουν ούτε να διαγραφούν. Το περιβάλλον του Program Editor φαίνεται παρακάτω: Ο Program Editor είναι μία εφαρμογή που λειτουργεί παράλληλα αλλά ανεξάρτητα από το Cimplicity. Προκειμένου να γίνει προσπέλαση Cimplicity δεδομένων από ένα κώδικα, πρέπει αυτό να ζητηθεί από τις κατάλληλες υπορρουτίνες που περιλαμβάνονται στη βιβλιοθήκη Cimplicity Extensions to VB. Η πιο απλή εφαρμογή κώδικα είναι η ανάκληση και η ανάθεση της τιμής ενός Point από το Cimplicity. 65

Αυτό γίνεται χρησιμοποιώντας τις συναρτήσεις PointGet, Pointset. Η σύνταξή τους γίνεται ως εξής: PointSet pointid$, value PointGet(pointId$) Παράδειγμα 2.7 Ο παρακάτω κώδικας: Sub Main() Dim L As Integer ' Dhlwsh metavlhths L=PointGet("CONTROL") PointSet "CONTROL", L+1 End Sub Ανακαλεί από το Cimplicity την INT μεταβλητή CONTROL, της αυξάνει την τιμή κατά 1 και επιστρέφει την νέα τιμή στο Cimplicity. O κώδικας παρακάτω: Sub Main() Dim L As Integer CONTROL=CONTROL+1 End Sub έχει λογικό σφάλμα αφού δεν έχει δηλωθεί καμία μεταβλητή CONTROL παρά μόνο η μεταβλητή L. O παρακάτω κώδικας : Sub Main() Dim L As Integer Dim CONTROL as boolean CONTROL=12 CONTROL=CONTROL+1 End Sub θα αυξήσει την τιμή του CONTROL κατά 1, αλλά αυτό δεν θα αποθηκευτεί στο Cimplicity αφού άλλο είναι το CONTROL που δηλώθηκε στο VB Script και άλλο το point CONTROL του Cimplicity. H επικοινωνία με τα points γίνεται αποκλειστικά με το σετ εντολών PointSet, PointGet. 66

Γενικότερα οι τύποι δεδομένων που αναγνωρίζονται στον Program Editor είναι: Boolean Data type representing True of False values Currency Data type used to hold monetary values Date Data type used to hold dates and times Double Data type used to hold real number with 15-16 digits of precision HWND Data type used to hold windows Integer Data type used to hold whole numbers with 4 digits of precision Long Data type used to hold whole numbers with 10 digits of precision Object Data type used to hold OLE automation objects Single Data type used to hold real number with 7 digits of precision String Data type used to hold sequences of characters Variant Data type that holds a number, string, or OLE automation objects Η εισαγωγή σχολίων γίνεται πληκτρολογώντας την απόστροφο ('). Το τμήμα των σχολίων έχει πράσινο χρώμα όπως ακριβώς και στο MATLAB. Μία άλλη εντολή που είναι σημαντική είναι η εντολή Sleep. Η εντολή αυτή μόλις διαβαστεί, παγώνει την εκτέλεση του προγράμματος για κάποιο χρονικό διάστημα. Η σύνταξη της είναι: Sleep Ν, όπου Ν ο χρόνος (σε msec) στη διάρκεια του οποίου παγώνει η ροή του προγράμματος. Οι παρακάτω εντολές υλοποιούν το έργο της εκκένωσης μίας δεξαμενής υλικού. While PointGet("TANK")>0 PointSet " TANK",PointGet("TANK")-20 SLEEP 1000 Wend Κάθε δευτερόλεπτο που διαρκεί ο βρόχος η ποσότητα της δεξαμενής μειώνεται κατά 20 μονάδες μέχρι να ικανοποιηθεί η συνθήκη και να μηδενιστεί τελείως η μεταβλητή TANK οπότε και η δεξαμενή θα έχει αδειάσει Παράδειγμα 2.8 Θέλουμε με το πάτημα ενός Button να ανάβουν διαδοχικά 5 φωτινές σημάνσεις με διαφορά 5 sec η μία από την άλλη: H SCADA οθόνη είναι: 67

Ορίζονται 6 boolean points. Το point CONTROL αλλάζει από 0 σε 1 μέσα από το πάτημα του μπουτόν. Τα points L1, L2, L3, L4, L5 αντιπροσωπεύουν τις φωτεινές σημάνσεις. Ακόμα στον timer ανατέθηκε το Read-Only Point $LOCAL.DATE.SECOND. Στον Event Editor ορίζεται ένα νέο event που θα έχει ως action την εκτέλεση του επιθυμητού κώδικα. 68

Basic1.bcl Sub Main() PointSet "L1", true sleep 5000 PointSet "L1", false PointSet "L2", true sleep 5000 PointSet "L2", false PointSet "L3", true sleep 5000 PointSet "L3", false PointSet "L4", true sleep 5000 PointSet "L4", false PointSet "L5", true sleep 5000 PointSet "L5", false End Sub 'delay 'delay 'delay 'delay 'delay Πατάμε Configuration Update και στη συνέχεια RUN. 69

Παρατήρηση: Στον Program Editor το πεδίο τιμών μιας boolean μεταβλητής δεν είναι το {0,1} αλλά το {False,True}. Αυτό ισχύει μόνο στον Program Editor. Σε όλα τα άλλα περιβάλλοντα του Cimplicity, όπως στον Event Editor χρησιμοποιείται το {0,1}. Παράδειγμα 2.9 Απεικόνιση ενός ημιτονοειδούς σήματος σε γραφική παράσταση. Σε αυτό το παράδειγμα έχει σχεδιαστεί ένα ημιτονοειδές σήμα της μορφής: x(t) = 100 sin (10-3 t). Ορίζεται η μεταβλητή DEMO_SINE (Real) και η μεταβλητή ONOFF (Boolean). Αναπτύσσεται ο παρακάτω κώδικας: Basic1.bcl Sub Main() Dim L As Integer Dim K As Integer L=1 While L=1 K=0 For K=0 To 360 ' xronos mias periodou PointSet "DEMO_SINE", Sin(0.001*(K*180/pi)) * 100 SLEEP 250 70

Next Wend End Sub Η υπορρουτίνα SIN δέχεται ως ορίσματα γωνίες σε ακτίνια (rad). Επομένως όταν η γωνία είναι σε μοίρες πρέπει να πολλαπλασιαστεί με τον όρο 180/pi για να μετατραπεί σε ακτίνια. Ορίζεται ένα Event (Point Equals ON0FF=1) και Action (Run Script Basic1.bcl). Πατάμε Configuration Update, RUN. Στο Workbench, στα Points πατάμε δεξί κλικ πάνω στο ONOFF και επιλέγουμε Point Control Panel. Ανοίγει μία λίστα με το point ONOFF και δίπλα την τιμή 0. Με διπλό κλικ στο ONOFF ανοίγει το παράθυρο με της ρυθμίσεις και στο πεδίο set value πατάμε 1. Τώρα ενεργοποιήθηκε το event και ο κώδικας ξεκινάει να τρέχει. Πατώντας δεξί κλικ πάνω στο point DEMO_SINE, και μετά QuickTrends. Στο γράφημα που ανοίγει παρατηρούμε το ημιτονοειδές σήμα να εξελίσσεται σε πραγματικό χρόνο: 71

Παρατήρηση Αν ένας κώδικας θέλουμε να τρέχει συνεχώς όσο η εφαρμογή είναι σε RUN, τότε αυτό γίνεται τοποθετώντας τον κώδικα μέσα σε ένα ατέρμονα βρόχο όπως φαίνεται παρακάτω: Sub Main() Dim L As Integer L=1 While L=1..... Wend End Sub Το παραπάνω πρόγραμμα εισέρχεται στο βρόχο While και δεν εξέρχεται ποτέ αφού η μεταβλητή L δεν αλλάζει ποτέ τιμή. Ο μόνος τρόπος για να σταματήσει να τρέχει το πρόγραμμα, είναι να τεθεί το Project σε κατάσταση STOP. Το παράθυρο του Program Editor στην αριστερή στήλη περιλαμβάνει μία εργαλειοθήκη με την οποία εισάγονται απευθείας οι βασικές εντολές όπως φαίνεται παρακάτω: 72

2.8.3 Basic Control Engine User Interface To BCE UI είναι ένα εργαλείο με το οποίο μπορούμε να παρακολουθούμε την αλληλουχία των Events καθώς αυτά πραγματοποιούνται και να πραγματοποιούμε επεξεργασίες σε αυτά. Συγκεκριμένα μπορούμε: Να παρακολουθούμε τις ενέργειες (Actions) που εκτελούνται σε πραγματικό χρόνο και για περισσότερα από ένα Project. Να σταματήσουμε, να συνεχίσουμε και να τερματίσουμε την εκτέλεση προγραμμάτων. Να επεξεργαστούμε τα Events. Ο BCE UI φαίνεται παρακάτω: 73

Τα Events που θα φαίνονται τα ορίζει ο χρήστης με τον εξής τρόπο. Events Add 74

Στη συνέχεια επιλέγονται τα Events: Και πατάμε ΟΚ. Μόλις συμβεί ένα Event, αμέσως θα εμφανιστεί στη λίστα μαζί με τις πληροφορίες για την κατάσταση του (Running, Done, Error). Ο BCE UI αποτελεί ιδιαίτερα χρήσιμο εργαλείο για την επίβλεψη και επεξεργασία των προγραμμάτων. Όταν ένα Action περιλαμβάνει εκτέλεση κώδικα, τότε στη στήλη STATUS βλέπουμε και την κατάσταση του προγράμματος στη φάση που τίθεται σε RUN. Αν το πρόγραμμα τρέχει τότε εμφανίζεται η ένδειξη Running. Αν το πρόγραμμα έχει ολοκληρώσει την εκτέλεση του τότε εμφανίζεται το μήνυμα Done. Το σημαντικό είναι όταν το πρόγραμμα έχει κάποιο λογικό σφάλμα και αναγκαστικά σταματάει η λειτουργία του στη γραμμή εντολών που εμφανίστηκε το σφάλμα. Στη στήλη STATUS το μήνυμα που εμφανίζεται είναι Error και στη στήλη Message εμφανίζεται ο κωδικός σφάλματος και η γραμμή του κώδικα στην οποία βρίσκεται το σφάλμα. Αυτός είναι και ο μόνος τρόπος να εντοπιστούν λογικά λάθη στα προγράμματα, αφού τα συντακτικά εντοπίζονται όταν γίνεται Compile στον Program Editor. Δηλαδή ο BCEUI είναι ένα διαγνωστικό εργαλείο για εντοπισμό σφαλμάτων στα προγράμματα που έχουν αναπτυχθεί στο Cimplicity. Παράδειγμα 2.10 Ανοίγουμε ένα καινούργιο Project, στο οποίο ορίζονται δύο Points: START(Boolean, initialized=0) και POINT_1 (Real, initialized=13.2). Στη συνέχεια στο Program Editor φτιάχνουμε το παρακάτω πρόγραμμα: 75

Sub Main() ' POINT_1 IS A REAL POINT PointSet "POINT_1",ABC End Sub Ο παραπάνω κώδικας δίνει την εντολή να τεθεί η μεταβλητή POINT_1 η τιμή ABC. Αυτό θα οδηγήσει σε σφάλμα στην εκτέλεση του προγράμματος αφού το POINT_1 είναι τύπου Real και όχι Text. Στον Event Editor ορίζεται ένα event : EVENT1(Point Equals, START=1) με ACTION: ACT1, όπου το action type είναι Run Script και επιλέγουμε τον παραπάνω κώδικα. Μόλις τεθεί το Project σε κατάσταση RUN ανοίγουμε το BCEUI και επιλέγουμε το EVENT1. Τέλος θέτουμε τη μεταβλητή START την τιμή 1 για να ενεργοποιηθεί το Event και να ξεκινήσει ο κώδικας να τρέχει. Ο BCEUI εντοπίζει το σφάλμα όπως φαίνεται παρακάτω: Ενημερώνει δηλαδή ότι στην τρίτη σειρά του προγράμματος υπάρχει σφάλμα με κωδικό σφάλματος 35. Στο manual του Cimplicity υπάρχουν όλοι οι κωδικοί σφάλματος με τις απαραίτητες διευκρινήσεις. Συνολικά είναι 135 τύποι σφαλμάτων. Ενδεικτικά, το παραπάνω σφάλμα 35 επεξηγείται ως: Expression is not constant. Για να διορθωθεί το παραπάνω σφάλμα υπάρχουν δύο επιλογές. Η πρώτη είναι να σταματήσουμε το Project και να διορθώσουμε είτε το πρόγραμμα θέτοντας στην μεταβλητή POINT_1 κάποιο έγκυρο όρισμα τύπου Real, ή να αλλάξουμε τον τύπο του POINT_1 σε Text. Αφού ολοκληρωθούν οι αλλαγές πατώντας Configuration Update και μετά RUN ξανατρέχουμε την εφαρμογή. Αυτή είναι η 76

χρονοβόρα λύση διότι απαιτεί το Project να γίνει πρώτα Stop και μετά Run που όπως αναφέρθηκε αποτελούν χρονοβόρες διαδικασίες. Η δεύτερη και πιο ευέλικτη λύση είναι η εξής: Ενεργοποιούμε ενώ είναι σε κατάσταση RUN, την επιλογή Dynamic και πραγματοποιούμε τις αλλαγές που θέλουμε. Αν ανοιχτεί και ο Program Editor ή όποιο άλλο παράθυρο χρειαστεί, τότε πρέπει ΚΑΙ εκεί να ενεργοποιηθεί το Dynamic. Στον Program Editor αυτό γίνεται πατώντας Tools Dynamic. Αφού ολοκληρωθούν οι αλλαγές, θέτουμε αμέσως στη μεταβλητή START την τιμή 0 και αμέσως την τιμή 1 ώστε να ενεργοποιηθεί από την αρχή το Event1. Τέλος πρέπει να σημειωθεί ότι πατώντας δεξί κλικ πάνω στο Event υπάρχουν οι επιλογές Stop, Pause, Resume. Όταν το action περιλαμβάνει τρέξιμο κώδικα τότε αυτό σημαίνει πως μπορεί ο χρήστης να σταματήσει προσωρινά, να τερματίσει και να συνεχίσει την εκτέλεση του προγράμματος. 2.9 Objects / Classes Κατά τη φάση της σχεδίασης μπορεί να είναι εξαιρετικά κουραστικό και χρονοβόρο το να ρυθμίζονται ξανά και ξανά τα ίδια points, τα ίδια alarms, τα ίδια events κλπ. Αυτό γιατί συχνά αναγκαζόμαστε να σχεδιάζουμε ξανά και ξανά πανομοιότυπα πρότυπα. Για παράδειγμα ένα σύστημα που απεικονίζει τον έλεγχο στάθμης σε μία δεξαμενή περιέχει πάντα μία μεταβλητή για τη στάθμη, μία μεταβλητή για START - STOP, ένα Event που ορίζει την εκκίνηση, ένα Script που ελέγχει τη ροή, Alarms για το επίπεδο στάθμης, η γραφική απεικόνιση της δεξαμενής (CimEdit) κλπ. Χρησιμοποιώντας τα classes, μπορεί ο χρήστης να ανακαλεί ανά πάσα στιγμή το configuration τέτοιων εφαρμογών χωρίς να τα σχεδιάζει συνεχώς από την αρχή. Η φόρμα που περιέχει τα απαιτούμενα στοιχεία ονομάζεται Class και τα περιέχομενα Objects. Objects μπορεί να είναι οτιδήποτε από CimEdit οθόνες μέχρι Scripts. Τα classes αποθηκεύονται σε αρχεία τύπου.soc. Έτσι όταν χρειάζεται να προστεθεί το γραφικό περιβάλλον για έλεγχο στάθμης σε μία δεξαμενή, αρκεί να εισαχθεί το αντίστοιχο class με την προϋπόθεση ότι έχει αποθηκευτεί από μία προηγούμενη εφαρμογή. 77

Παράδειγμα 2.11 Το παραπάνω Class συγκεντρώνει τα δεδομένα που χρειάζονται για την εγκατάσταση ενός συστήματος ελέγχου στάθμης μιας δεξαμενής. 78

79

Μόλις εισαχθεί το GefTank.soc στο workbench, φορτώνονται στις αντίστοιχες λίστες τα αντίστοιχα Objects (για παράδειγμα στη λίστα των scripts προστίθεται το level.bcl ). 2.10 Security Η ασφάλεια στα λογισμικά SCADA είναι πρωτεύουσας σημασίας και θα μπορούσε να αποτελεί ξεχωριστό αντικείμενο για μελέτη. Μία εφαρμογή SCADA ενσωματώνει τις βασικές λειτουργίες που αποτελούν την μονάδα παραγωγής και ως εκ τούτου η πρόσβαση σε αυτή από μη εγκεκριμένα άτομα θα μπορούσε να προκαλέσει σοβαρά προβλήματα. Στο περιβάλλον Cimplicity καθορίζονται ρητά οι χρήστες, όροι χρήσης του κάθε χρήστη και οι πρόσβαση σε συγκεκριμένους πόρους που επικοινωνούν με το λογισμικό. Αυτό επιτυγχάνεται ρυθμίζοντας τις παρακάτω τρία στοιχεία: RESOURCES- ROLES-USERS. 2.10.1 Resources Τα Resources δεν είναι τίποτα άλλο παρά οι μονάδες οι οποίες παρέχουν τα δεδομένα στον σταθμό SCADA. Τέτοια μπορεί να είναι ελεγκτές, σύνθετες μηχανές, σταθμοί εργασίας κλπ. Για παράδειγμα μία μεταβλητή TANK_LEVEL μπορεί να αντιστοιχεί σε ένα αναλογικό σήμα PLC το οποίο μας δείχνει στην οθόνη SCADA τη στάθμη υγρού σε μία δεξαμενή. Ανάλογα με το αν το resource είναι TANK_A, TANK_B, TANK_C βγάζουμε συμπέρασμα για την προέλευση του σήματος αυτού. 80

Τα τρία πρώτα ($SYSTEM, $PTM_FR, $MAC_FR) είναι προεγκατεστημένα resources και αναφέρονται στα υπάρχοντα από το σύστημα Points και Alarms. Τα resources καλό είναι να ορίζονται στην αρχή και πριν οριστούν τα points. Αυτό γιατί στον ορισμό ενός Point, ζητείται και το resource του. Ωστόσο υπάρχει και η επιλογή για New Resource στο pop-up menu δίπλα από το πεδίο Resource ID. Για τα Virtual Points τα resources μπορεί να χρησιμοποιηθούν για την ομαδοποίηση τους. Για παράδειγμα όταν ένας αριθμός εικονικών μεταβλητών αναφέρεται στη λειτουργία του PLC1, αντιστοιχίζονται σε αυτό το resource. 2.10.2 Roles Οι ρόλοι περιγράφουν τα δικαιώματα χρήσης και τις δυνατότητες λειτουργίας και πρόσβασης του κάθε χρήστη. Υπάρχουν τρεις default roles: OPER, SYSMGR, USER (δηλαδή OPERATOR, SYSTEM MANAGER, USER). Εννοείται ότι μπορεί να προστεθούν και άλλοι εισάγοντας τις απαραίτητες παραμέτρους όπως φαίνεται παρακάτω για τον Role Engineer. 81

H ένδειξη level είναι ένας βαθμός ασφαλείας που σχετίζεται με την πρόσβαση στα Points. Ο αριθμός που θα τεθεί εδώ πρέπει να είναι μεγαλύτερος ή ίσος με το level που έχει ένα point ώστε να μπορεί ο κάθε χρήστης με τον συγκεκριμένο ρόλο να κάνει μία τιμή SET. 82

2.10.3 Users Οι Users είναι οι εγκεκριμένοι χρήστες που θα έχουν πρόσβαση στο project όταν θα τρέχει. Κάθε φορά που ανοίγει ένα νέο project αυτομάτως δημιουργείται ένας χρήστης, ο ADMINISTRATOR. Στη συνέχεια ορίζονται ένας ένας οι υπόλοιποι χρήστες. Στο πεδίο Authentification Type μπορούμε είτε να επιλέξουμε None για κενό password (το οποίο αυστηρά δεν συνίσταται), CIMPLICITY για να προσθέσουμε password, Windows authenticated users για να χρησιμοποιηθούν τα username/password των Windows σε περίπτωση που ο υπολογιστής ανήκει σε κάποιο Windows Group. Μόλις πατηθεί το RUN για κάποια εφαρμογή, αμέσως ζητείται το username & password του χρήστη. H επιλογή Save UserID + Password σημαίνει κάθε πρόσβαση στο project θα γίνεται πλέον με το συγκεκριμένο χρήστη και δεν θα υπάρξει ανάλογη ερώτηση. Για να απενεργοποιηθεί ο συγκεκριμένος χρήστης, πρέπει να υπάρξει εντολή για LOG - OUT μέσα από το Login Panel όπως θα αναφερθεί στην παράγραφο 2.18.1. 83

Το Cimplicity κάθε φορά που δημιουργείται ένα project, δημιουργεί αυτομάτως έναν default χρήστη, τον ADMINISTRATOR με κενό password. Αυτός ο λογαριασμός αν παραμείνει ως έχει θα δημιουργήσει μεγάλο κίνδυνο ασφάλειας αφού το password είναι κενό και μπορεί να συνδεθεί οποιοσδήποτε. Επομένως κάθε φορά που ανοίγει ένα νέο project, η πρώτη κίνηση πρέπει να είναι πάντα η διαγραφή αυτού του λογαριασμού, ή η επεξεργασία του με τον ορισμό ενός password εάν επιθυμούμε την διατήρηση του. Σε διαφορετική περίπτωση κάθε τείχος ασφαλείας θα είναι άχρηστο. 2.11 Action Calendar To Action Calendar είναι μία διεπαφή με την οποία μπορούμε να δημιουργήσουμε ένα πρόγραμμα ενεργειών σύμφωνα με ένα ημερολόγιο-ωρολόγιο και να το θέτουμε σε εφαρμογή για επιθυμητά χρονικά διαστήματα. Στην ουσία προκαθορίζονται οι απαραίτητες ενέργειες της μονάδας παραγωγής και εκτελούνται στον χρόνο για τον οποίο έχουν προγραμματιστεί. 84

Αυτό είναι το παράθυρο του Action Calendar. Οι πρώτες ρυθμίσεις που πρέπει να γίνουν είναι: 1. Areas : Ορίζονται οι περιοχές όπου θα αναφέρονται οι επιθυμητές ενέργειες. Τέτοιες περιοχές μπορεί να είναι ο χώρος σε μία βιομηχανία που εκτελεί τη διαδικασία της συσκευασίας, ή ο έλεγχος του φωτισμού σε μία αίθουσα. 2. Schedule Type : Μπορεί να είναι Day Type ή Calendar. Το πρώτο καθορίζει τις ενέργειες που θα λάβουν χώρα ανάλογα με το είδος της εργασίας που καθορίζει η συγκεκριμένη μέρα, ενώ το δεύτερο καθορίζει τις ενέργειες για κάθε μέρα ξεχωριστά ανάλογα με το ημερολόγιο. 3. Day Type Legend : Οι μέρες μπορούν να ομαδοποιηθούν ανάλογα με το είδος εργασίας που θα εκτελεστεί. Για παράδειγμα μπορεί να είναι WeekDay, WeekEnd, Holiday, Maintenance κλπ. Στη συνέχεια ορίζονται τα Events που θα πραγματοποιηθούν χρονοπρογραμματισμένα. Κάθε event οδηγεί σε ένα action όπως ακριβώς και στον Event Editor. Ωστόσο τα events που φτιάχνονται στο Action Calendar δεν είναι προσπελάσιμα στον Event Editor και κατ' επέκταση στον BCE UI. Για να ξεκινήσει μία μηχανή στις 7.30 το πρωί στις 29/12/2011 κάνουμε διπλό κλικ στο κατάλληλο πεδίο: 85

Σε σχέση με τον Event Editor υπάρχει μία βασική διαφορά στον ορισμό των Events. Αφού τα πάντα είναι χρονοκαθορισμένα μπορούμε αντί να γράφουμε συνεχώς επαναλαμβανόμενα events που σχετίζονται με το ίδιο συμβάν, να χρησιμοποιήσουμε την καρτέλα Offsets. Η λογική είναι πως μπορούμε όταν ορίζεται ένα event να υπάρξει και καταχώρηση μιας ακολουθίας νέων events που αναμένεται να προκληθούν. 86

Παράδειγμα 2.12 Έστω ότι μία βιομηχανία περιλαμβάνει έναν κλίβανο η λειτουργία του οποίου ελέγχεται από την εφαρμογή SCADA και συγκεκριμένα το action calendar. Η λειτουργία του περιλαμβάνει τα εξής στάδια - events. 1. Kiln_Start. Έναρξη κλίβανου 2. Kiln_Preheat. Προθέρμανση κλίβανου (10 λεπτά μετά) 3. Kiln_On_Full. Ονομαστική λειτουργία κλίβανου (20 λεπτά μετά) Ο συμβατικός τρόπος θα ήταν να φτιαχτούν 3 events τις χρονικές στιγμές 7:00, 7:10, 7:30 όπου το κάθε event θα έχει το αντίστοιχο αποτέλεσμα. Με τη χρησιμοποίηση της επιλογής offsets τα πράγματα είναι πιο απλά. Ορίζεται ένα event KILN_Start και στη συνέχεια τα υπόλοιπα ως offset events. 87

88

Η μέθοδος αυτή δεν είναι η βέλτιστη. Και αυτό γιατί αν για παράδειγμα η διαδικασία της προθέρμανσης καθυστερήσει για κάποιο λόγο πρέπει αμέσως να υπάρξει παρέμβαση στο Action Calendar για να καθυστερήσει και η έναρξη του κλίβανου. Ο καλύτερος τρόπος είναι ο εξής: 1. Ορίζεται ένα point KILN_ON χωρίς Actions. Στην καρτέλα των offsets καταγράφουμε τα 3 events έτσι ώστε το KILN_START να συμβεί 30 min νωρίτερα, το KILN_PREHEAT 20 λεπτά νωρίτερα ενώ το KILN_ON_FULL ταυτόχρονα με το KILN_ON. To KILN_ON τοποθετείται τη χρονική στιγμή 7:30. Η διαδικασία αυτή φαίνεται στις παρακάτω εικόνες: 89

Η ρύθμιση των offsets δεν προβλέπεται για events επόμενων ημερών, παρά μόνο για την τρέχουσα ημέρα του μητρικού event. Αυτός είναι και ο λόγος που στο παραπάνω παράθυρο το "30 min μπροστά" ορίζεται ως "23:30:00" και όχι π.χ "-00:30:00". Επίσης τα offset events δε μπορεί να διαγραφούν / επεξεργαστούν από το calendar παρά μόνο από το παράθυρο properties του μητρικού event. 90

Παράδειγμα 2.13 Έστω μία βιομηχανική μονάδα που λειτουργεί ως εξής: 1. Με το ίδιο πρόγραμμα πέντε μέρες της εβδομάδας 2. Δε λειτουργεί η παραγωγή τα σαββατοκύριακα 3. Έχει προσωπικό συντήρησης που εργάζεται 7 μέρες την εβδομάδα Το πρόγραμμα λειτουργίας μίας τυπική μέρας είναι το εξής: Τα Points που χρησιμοποιηθήκαν είναι: 91

Ορίστηκαν 3 areas: 1. PLANTWIDE 2. KILN_AREA 3. ASSEMBLY Τα events που πραγματοποιούνται ανά area ανά διακριτά χρονικά διαστήματα είναι: PLANTWIDE area KILN_ONLY area 92

ASSEMBLY area Τα Day Types είναι: PLANTWIDE area Day Types KILN_ONLY & ASSEMBLY area Ο χαρακτήρας της εργασίας ανάλογα με τη μέρα είναι : 93

Οπότε ορίζουμε ως εξής: Με διπλό κλικ πάνω στο μπάρα με τις μέρες της εβδομάδας: 94

Πατάμε ΟΚ και το αποτέλεσμα είναι: Αντιθέτως για τα KILNS_ONLY και ASSEMBLY areas το Day type Legend είναι: 95

Plantwide area Screenshots 96

KILN_ONLY area screenshots ASSEMBLY area screenshots 97

2.12 Καταγραφή Παραμέτρων σε Βάση Δεδομένων 2.12.1 Proficy Historian Το Proficy Historian είναι το λογισμικό πακέτο αρχειοθέτησης δεδομένων της GEFanuc το οποίο συλλέγει, αποθηκεύει, ανακτά χρονισμένα πληροφορίες σε υψηλή ταχύτητα. Το λογισμικό αναγνωρίζει τρεις οντότητες: 1. Historian Server: Είναι ο server ο οποίος έχει την ευθύνη για την ανταλλαγή δεδομένων (Points) μεταξύ του Historian και άλλων εφαρμογών όπως το Cimplicity. 2. Collectors: Είναι η εφαρμογή που υλοποιεί τη συλλογή δεδομένων και τα οποία αποστέλλει στο Historian 3. Clients: Το Historian αποθηκεύει τα δεδομένα μίας εφαρμογής SCADA (points, alarms) δίνει τη δυνατότητα για offline και online επεξεργασία. H έκδοση που χρησιμοποιήθηκε είναι η Proficy Historian 3.1. 98

Στόχος είναι μία σειρά από Points (για το Historian ονομάζονται Tags) να συλλέγονται και να αρχειοθετούνται από το Historian. Πριν απ' όλα πρέπει στο Cimplicity να οριστούν τα points τα οποία θα αποθηκεύονται στη βάση δεδομένων. Αυτό γίνεται σε κάθε Point ξεχωριστά με την παρακάτω επιλογή: Αφού επιλεγούν όλα τα επιθυμητά points στη συνέχεια η ρύθμιση γίνεται μέσα από το Historian. Πρώτα επιλέγεται ο collector δηλαδή η εφαρμογή από την οποία τα δεδομένα ανακτώνται. Για το Cimplicity ο Tags (Points) collector είναι ο OPC Server και για τα Alarms/Events ο OPC Alarm & Event Server. O OPC Server (περισσότερα για τον OPC Server στο κεφάλαιο 5) συλλέγει δεδομένα από τις Runtime εφαρμογές και στη συνέχεια τα αποστέλλει στο Historian. Πρέπει λοιπόν πρώτα να παραμετροποιηθεί ο OPC Server ώστε να "διαβάζει" τα ζητούμενα points, και στη συνέχεια ρυθμίζεται ο collector, όπως φαίνεται παρακάτω: 99

Η κατάσταση του collector τίθεται αυτομάτως σε κατάσταση "Start Collecting" μόλις το project τεθεί σε κατάσταση RUN. Το επόμενο βήμα είναι να εισαχθούν τα points ώστε να είναι προσβάσιμα από το χρήστη. Πατάμε το Tags: Πατώντας Add Tags ανοίγει το παρακάτω παράθυρο ώστε να επιλεγούν τα points (tags): 100

Το ιστορικό κάθε point λαμβάνεται πατώντας στη λίστα Tag Names (προηγούμενη εικόνα) δεξί κλικ και στη συνέχεια είτε trend, είτε last 10 values. 101

2.12.2 Microsoft Cimplicity SQL Server Όπως αναφέρθηκε μαζί με το Cimplicity και το Historian παραλήφθηκε και το Microsoft Cimplicity SQL 2005. Η εγκατάσταση κρίνεται απαραίτητη, αφού μέσω της SQL βάσης δεδομένων το Cimplicity αποθηκεύει δεδομένα τα οποία ανακαλεί συχνά όπως στο DataBase Logger ή στο Statistical Process Control. Αφού εγκατασταθεί η SQL, στη συνέχεια πατάμε στην αναζήτηση των Windows ODBC (Διαχείριση βάσεων δεδομένων): Η εισαγωγή παραμέτρων για κάθε βάση δεδομένων γίνεται ως εξής. Πατάμε Configure: 102

Είναι πολύ βασικό να επιλεγεί ο σωστός server: (όνομα του υπολογιστή)\cimplicity ` Καταχωρούμε username και password για τη βάση δεδομένων. Το default όνομα sa προέρχεται από το system administrator. Πατάμε Next στα υπόλοιπα παράθυρα και τελικά: 103

2.12.3 DataBase Logger To database logger είναι μία εφαρμογή που ομαδοποιεί τα δεδομένα της παραγωγής σε πίνακες κάνοντας τους διαθέσιμους για offline επεξεργασία. Τα δεδομένα αντλούνται από τη χρησιμοποιούμενη βάση δεδομένων (συνήθως SQL Server). H παραμετροποίηση γίνεται ως εξής: 104

Το πρώτο βήμα είναι ο ορισμός της βάσης δεδομένων όπου ανακτώνται τα δεδομένα. Πατάμε Edit Logging Properties Στην επόμενη εικόνα φαίνεται το ALARM_LOG: Οι πίνακες αυτοί αποθηκεύονται στον φάκελο report που βρίσκεται στην θέση: C:\Program Files (x86)\ge Fanuc\Proficy Cimplicity\report. Στο φάκελο είναι 3 έγγραφα excel (SQLALARM.XLS, SQLDATA.XLS, SQLGROUP.XLS) τα οποία μπορούν να χρησιμοποιηθούν για να δημιουργήσουμε Reports όπως φαίνεται παρακάτω: 105

2.12.4 Digital Graphical Replay Το Digital Graphical Replay είναι μία εφαρμογή η οποία εκμεταλλεύεται την αποθήκευση των δεδομένων του project σε μία βάση δεδομένων, με σκοπό να απεικονίσει σε οθόνες CimEdit τη φυσική τους εξέλιξη σε περασμένες χρονικές στιγμές. Επιλέγουμε τα Points (που πρέπει να είναι επιλεγμένα ως logged) και στη συνέχεια σχεδιάζουμε μία CimEdit οθόνη (ή και κρατάμε την ίδια). Όταν τεθεί σε κατάσταση Historical Replay τότε η εφαρμογή εξελίσσεται όχι σε πραγματικό χρόνο αλλά αντλώντας τα αποθηκευμένα δεδομένα. Με αυτόν τον τρόπο ο χειριστής μπορεί εύκολα να εντοπίζει τα σφάλματα και τις αιτίες τους χωρίς να μπλέκει με πίνακες και αριθμούς που με πρώτη ματιά δεν οδηγούν σε ασφαλή συμπεράσματα. Τα παραπάνω επιτυγχάνονται ως εξής: 106

Η εφαρμογή SCADA ή θα τρέχει σε πραγματικό χρόνο όπως έχει περιγραφεί έως τώρα, είτε θα τρέχει ως Historical Replay. Ο χρήστης μπορεί να επιλέξει και το χρόνο που θα εκτυλίσσεται (Playback Speed). H επιλογή Enable Start Search όταν πατηθεί οδηγεί σε παύση της λειτουργίας playback μόλις ικανοποιηθεί η συνθήκη. 2.13 Επικοινωνία με Βιομηχανικά Δίκτυα και PLCs Για να αποκατασταθεί η επικοινωνία με ένα ή περισσότερα PLC πρέπει πρώτα να επιλεγεί το πρωτόκολλο επικοινωνίας το οποίο χρησιμοποιείται. Αυτό γίνεται από την τοποθεσία Project Properties. 107

Τα προεγκατεστημένα βιομηχανικά πρωτόκολλα επικοινωνίας στο Cimplicity είναι τα παρακάτω. Allen-Bradley Communications. Allen Bradley DF-1 Communications Allen-Bradley Intelligent Antenna Communications CCM2 (As-Is) DDE (Local only) FloPro/FloNet Honeywell IPC 620 Johnson Control N2 Marquee Mitsubishi A-Series Serial Mitsubishi TCP/IP Modbus RTU Modbus RTU Slave Modbus TCP/IP Modbus TCP Slave OMRON Host Link OMRON TCP/IP OPC Client (As-Is) Series 90 TCP/IP Sharp TCP/IP Siemens TI Serial Smarteye Electronic Assembly SNP and SNPX Square D SyMax SyNet Toyopuc Ethernet Device S90 Triplex Ως παράδειγμα επιλέχθηκε το Siemens TI Serial. To επόμενο βήμα είναι να οριστούν τα Ports, Devices. 108

Τα ports είναι οι υποδοχές του υπολογιστή στις οποίες συνδέεται το καλώδιο επικοινωνίας με το PLC ή το καλώδιο του δικτύου. Τα ports πρέπει να ορίζονται πριν από τα Devices, δηλαδή τα PLC. Στη συνέχεια ορίζονται τα Devices. 109

Τώρα έχει πλέον οριστεί το PLC, το πρωτόκολλο επικοινωνίας, και η θύρα επικοινωνίας. Είναι πλέον εφικτή η δημιουργία Device Points. 110

Τα πεδία Address - Address Offset συμπληρώνονται με βάση τις φυσικές διευθύνσεις που χρησιμοποιεί κάθε βιομηχανικό δίκτυο. Για το Siemens TI Serial οι διευθύνσεις εξάγονται σύμφωνα με τον παρακάτω πίνακα: 111

Αντίστοιχα για τα υπόλοιπα πρωτόκολλα υπάρχει στο manual του Cimplicity η διεθυνσιοδότηση των I/O Points για κάθε άλλου τύπου μοντέλο. Το επόμενο βήμα είναι να ανοιχθεί o Project Wizard ώστε να αποκατασταθεί η επικοινωνία. Αυτό γίνεται στην τοποθεσία Project Project Wizard. 112

113

Η εγκατάσταση είναι τώρα έτοιμη και τα Points μπορούν να χρησιμοποιηθούν στο Project. 2.14 Statistical Process Control (SPC) Το SPC είναι ένα εργαλείο το οποίο χρησιμοποιεί στατιστικές μεθόδους με στόχο την ποιοτική ανάλυση των δεδομένων της υπό υλοποίηση εφαρμογής με στόχο να εντοπίζει το κατά πόσο είναι εντός των επιθυμητών ορίων. Ενώ τα Alarms ειδοποιούν 114

για αστοχίες της διεργασίας τα SPC διαγράμματα υποδεικνύουν έγκαιρα ποσοτικές αποκλίσεις των επιθυμητών στοιχείων ώστε αυτά να διορθωθούν άμεσα, πριν οδηγήσουν σε αρνητικά αποτελέσματα. Μέχρι τα επιθυμητά στατιστικά δεδομένα να φτάσουν στην οθόνη του υπολογιστή, εκτελούνται οι παρακάτω ενέργειες: Ανάλογα με την παραμετροποίηση των SPC δεδομένων που έχει προηγηθεί, ζητείται από το SPC Data Collector να ανακληθούν τα απαιτούμενα δεδομένα. O SPC Data Collector συλλέγει τα δεδομένα από το Cimplicity, τις έγκυρες ODBC δεδομένων και απευθείας καταχωρήσεις από το χρήστη, πραγματοποιεί τους απαιτούμενους υπολογισμούς και καταχωρεί τα αποτελέσματα στην SPC-ODBC βάση δεδομένων (πχ Cimplicity Logging-SPC). Τα αποτελέσματα είναι προσπελάσιμα στο χρήστη από τις οθόνες CimView χρησιμοποιώντας το εργαλείο SPC ActiveX Control. To παρακάτω σχήμα περιγράφει τη δομή και λειτουργία της εφαρμογής SPC: Τα γραφήματα τα οποία εξάγει το SPC ανά τύπο δεδομένων είναι τα παρακάτω: Quality Variable Data Attribute Data Defect Data Reports X-Individual chart P Pareto chart Sample Report Xbar-R chart Np Xbar-S chart C Histogram U Moving Average EWMA Moving Range EWMA 115

Κάθε διάγραμμα περιέχει τρεις χαρακτηριστικές ποσότητες που σημειώνονται με μία οριζόντια γραμμή και βοηθούν στην ποιοτική κατανόηση των αποτελεσμάτων: CL-Center Line: Η Μέση τιμή σύμφωνα με την οποία η χαρακτηριστική λειτουργίας θα έπρεπε να βρίσκεται UCL-Upper Control Limit: Άνω όριο χαρακτηριστικής LCL-Lower Control Limit: Κάτω όριο χαρακτηριστικής Το εργαλείο με το οποίο ορίζονται οι ζητούμενες στατιστικές αναπαραστάσεις είναι μοιάζει πολύ με το Recipe Configuration. Η παραμετροποίηση του SPC αρχείου drink.spc είναι η παρακάτω: Μία νέα μεταβλητή(variable Quality Characteristics) VAR δηλώνεται ως εξής: 116

117

Το επόμενο βήμα είναι η εισαγωγή του SPC ActiveX Control στην οθόνη SCADA: 118

119

Το αναμενόμενο αποτέλεσμα όταν τεθεί σε κατάσταση RUN, είναι να δημιουργηθεί το διάγραμμα XBar-S(μέσης τιμής & τυπικής απόκλισης) που να απεικονίζει τα 25 κατά μέγιστο δειγμάτων από το point DISCRETE_FILL_LEVEL. 2.15 System Sentry Το System Sentry αποτελεί ένα διαγνωστικό εργαλείο το οποίο συνοδεύει το Cimplicity με στόχο τον καθορισμό και την εύρεση οποιασδήποτε δυσλειτουργίας παρουσιαστεί στο σύστημα και μπορεί να προέρχεται από ανεπάρκεια χώρου στο σκληρό δίσκο, της μνήμης RAM, της διαθεσιμότητας της CPU κλπ. Επίσης αποτελεί ένα εργαλείο παρουσίασης των πόρων και των δεδομένων του συστήματος περιλαμβάνοντας τον αριθμό των συνδεδεμένων χρηστών ή συσκευών, τον αριθμό των Points, τον αριθμό των Alarms κ.ά. 120

Πρόκειται για ένα σύνολο από CimEdit Screens τα οποία είναι ενσωματωμένα στο Workbench και απλά ο χρήστης μπορεί να τα ανοίξει αναζητώντας οποιαδήποτε πληροφορία επιθυμεί. Το System Sentry είναι το παρακάτω: Για να είναι διαθέσιμο σε κάποιο Project πρέπει να έχει επιλεγεί από την τοποθεσία: Project Properties Options. 121

H κύρια οθόνη είναι το _Main.cim και ανοίγει πατώντας διπλό κλικ στο System Sentry: Παρατίθενται οι εικόνες των Point Manager και Alarm Manager: 122

123

To System Sentry μπορεί να χρησιμοποιηθεί ως αυτόνομο σύστημα SCADA, σε ξεχωριστό υπολογιστικό σύστημα, που εποπτεύει είτε το δίκτυο είτε τα Projects που είναι σε εφαρμογή, όπως φαίνεται παρακάτω. 2.16 Δικτυωμένα Συστήματα / Απομακρυσμένος Έλεγχος / System Redundancy 2.16.1 WebView Το WebView μία εύχρηστη εφαρμογή η οποία επιτρέπει σε ένα χρήστη να αλληλεπιδρά με τις οθόνες CimView μέσω του Internet Explorer. H πρόσβαση γίνεται χρησιμοποιώντας την κοινή άδεια χρήσης του Cimplicity για ομάδα χρηστών εντός του ίδιου δικτύου. Χρησιμοποιείται η μέθοδος πρόσβασης με πέρασμα κουπονιού, όπου κάθε χρήστης μόλις ολοκληρώσει την εργασία του παραχωρεί το δικαίωμα πρόσβασης στον επόμενο κόμβο που θα το ζητήσει. Η δημιουργία μίας WebView HTML Home Page που θα εμφανίζεται στον Internet explorer γίνεται ως εξής: 124

Το δημιουργηθέν html αρχείο μπορεί να ενσωματωθεί σε οποιονδήποτε server που έχει εγκατεστημένο το Cimplicity. To επόμενο βήμα είναι να οριστούν στο Cimplicity οι εφαρμογές που θα είναι διαθέσιμες σε απομακρυσμένους χρήστες. Αυτό γίνεται ως εξής: 125

126

Οι οθόνες που είναι προσβάσιμες μέσω Internet (δηλαδή Webview) είναι read-only, δηλαδή ο χρήστης μπορεί να διαβάσει τα δεδομένα αλλά δε μπορεί να στείλει εντολές στη SCADA εφαρμογή, δηλαδή να πατήσει buttons, switches, να κάνει setpoint τιμές κλπ. 2.16.2 Terminal Services Χρησιμοποιώντας τα Microsoft Terminal Services και τις ιστοσελίδες που αναπτύσσονται στο Cimplicity είναι δυνατόν, ένας απομακρυσμένος χρήστης να αποκτήσει πρόσβαση σε όλες τις εφαρμογές του Cimplicity όπως το workbench, το point control editor, alarm viewer κλπ. 127

Χρειάζεται ειδική άδεια χρήσης του Cimplicity από τη GEFanuc προκειμένου ένα δίκτυο από Terminal Services Clients να συνδεθεί με τον Cimplicity Server. Τα διαθέσιμα licences: Single 5-pack (5-sessions) 10-pack (10-sessions) 25-pack (25-sessions) 50-pack (50-sessions) Κάθε session μπορεί να είναι μία σύνδεση με το project ή το άνοιγμα του workbench. Ακόμα και η απόπειρα σύνδεσης απαιτεί την εκχώρηση ενός session. H αποκατάσταση της σύνδεσης με τον Cimplicity Server γίνεται ως εξής: Όταν ο υπολογιστής που επιχειρεί να συνδεθεί έχει εγκατεστημένο το Remote Desktop Protocol, τότε στην τοποθεσία: Programs>Accessories>Communications>Remote Desktop Connection ανοίγουμε το RDP: Η σύνδεση αποκαθίσταται και ο έλεγχος του Cimplicity Server περνάει στον έλεγχο του Terminal Services Client. 128

2.16.3 System Redundancy Μέσα από την εφαρμογή System Redundancy καθίσταται δυνατή η εγκατάσταση και λειτουργία ενός δεύτερου υπολογιστικού συστήματος (Secondary Server) το οποίο αναλαμβάνει το έργο της συλλογής δεδομένων και του εποπτικού ελέγχου μέχρι να επανέλθει ο πρωτεύον Server σε περίπτωση αστοχίας, π.χ. από κάποια βλάβη. Το Cimplicity υποστηρίζει 2 επίπεδα τέτοιας εναλλαγής τα οποία είναι: 1. Server Redundancy Πραγματοποιείται σε περίπτωση βλάβης του κύριου υπολογιστή, όταν και ο έλεγχος της εφαρμογής περνάει στο δευτερεύον υπολογιστικό σύστημα. 2. Computer Cabling Redundancy Όταν το δίκτυο των συνδεδεμένων υπολογιστών (Cimplicity Servers & Cimplicity Viewers) υποστηρίζει διπλή διεύθυνση IP. Έτσι η ανταλλαγή δεδομένων μεταξύ των υπολογιστών γίνεται μέσω δύο καναλιών επικοινωνίας, όπου η αστοχία της μίας μετάδοσης σημαίνει αυτομάτως την αποδοχή της δεύτερης ώστε να μην υπάρξει απώλεια δεδομένων. Όταν ο κύριος υπολογιστής δουλεύει κανονικά τότε στέλνει πληροφορίες σε διάφορους viewers του δικτύου ενώ ο δεύτερος υπολογιστής είναι σε κατάσταση αναμονής. όταν ο κύριος υπολογιστής βγει offline, τότε κύριος υπολογιστής γίνεται ο δεύτερος και αναλαμβάνει τη συλλογή δεδομένων και την αποστολή δεδομένων σε viewers. Όταν 129

επανεκκινηθεί ο πρώτος υπολογιστής τότε ο δεύτερος μεταφέρει στον πρώτο πληροφορίες για τους Users και τα Alarms, ωστόσο συνεχίζει να είναι ο κύριος υπολογιστής μέχρι να ολοκληρωθεί ο συγχρονισμός μεταξύ των δύο. Τα χαρακτηριστικά μιας SCADA εφαρμογής τα οποία πρέπει να εξασφαλίζονται σε μία αστοχία του πρωτεύοντος υπολογιστικού συστήματος, είναι : Η συλλογή δεδομένων, η επικοινωνία με τον εξοπλισμό, η διαχείριση των Alarms και η πρόσβαση των χρηστών στην εφαρμογή. Η παραμετροποίηση του Server Redundancy είναι η παρακάτω: Μόνο UNC διεύθυνση 2.17 RUNTIME εργαλεία To Cimplicity διαθέτει μια ομάδα από εργαλεία τα οποία βοηθούν στην εποπτεία της συνολικής διεργασίας. Τα εργαλεία αυτά είναι προσπελάσιμα μόνο σε κατάσταση RUN, επικοινωνούν άμεσα με το περιβάλλον CimView και παρέχουν χρήσιμες πληροφορίες για την κατάσταση της εφαρμογής SCADA. Τα δύο πρώτα στοιχεία (Alarm Viewer, Alarm Sound Manager) αναφέρθηκαν στην παράγραφο 2.6, είναι στην ουσία τα εργαλεία με τα οποία επιτυγχάνεται η εποπτεία της κατάστασης των Alarms ανεξάρτητα αν στα screens έχουν τοποθετηθεί AMV Controls. 130

2.17.1 Login Panel Το περιβάλλον Lοgin Panel επιτρέπει την παρακολούθηση των χρηστών οι οποίοι συνδέονται με τον υπολογιστή που τρέχει την εφαρμογή SCADA και παρέχει πληροφορίες σχετικά με το συγκεκριμένο project και την κατάσταση της σύνδεσης. Μέσα από αυτό το περιβάλλον επίσης, υπάρχει η δυνατότητα για ενέργειες LOG IN - LOG OUT. Παράδειγμα 2.14 Έστω ότι πρέπει να ανοιχτεί το project ΒARREL_FILL από το χρήστη SML_USER. To project τίθεται σε κατάσταση RUN και στη συνέχεια για να ανοιχτεί ένα screen ζητούνται τα στοιχεία του χρήστη. Αν ανοιχτεί τώρα το Login Panel φαίνεται η σύνδεση που έγινε πριν από λίγο. 131

Με τον ίδιο τρόπο μπορούμε να έχουμε περισσότερες συνδέσεις μέσω δικτύου όπως φαίνεται παρακάτω: Πάνω αριστερά τα δύο μπλε εικονίδια συνδέουν και αποσυνδέουν ένα χρήστη από το αντίστοιχο project. Με αυτό τον τρόπο επιτυγχάνεται και η σύνδεση διαφορετικού χρήστη σε περίπτωση που σε κάποιο project έχει ενεργοποιηθεί η επιλογή Save UserID + Password. Επίσης πατώντας Edit Saved Logins ανοίγει το παράθυρο με όλους τους καταγραφέντες χρήστες και τα αντίστοιχα Projects. 132

2.17.2 Point Control Panel Το Point Control Panel είναι ένα ισχυρό εργαλείο με το οποίο μπορούμε να βλέπουμε αλλά και να επεξεργαστούμε την τρέχουσα κατάσταση και τιμή των points. Το παράθυρο του Point Control Panel είναι το παρακάτω: Το άνοιγμα του παραθύρου γίνεται όπως και στα προηγούμενα από το Workbench. Ωστόσο ο πιο ενδεδειγμένος τρόπος είναι κάνωντας δεξί κλικ και επιλέγοντας Point Control Panel πάνω σε ένα αντικείμενο στο CimView. To αποτέλεσμα είναι να ανοίξει το Point Control Panel με μόνο τα points που χρησιμοποιούνται από το συγκεκριμένο αντικείμενο. 133

Για να ανοίξουν όλα τα Points που χρησιμοποιούνται στο τρέχον Screen, απλά πατάμε δεξί κλικ και Point Control Panel σε τυχαίο σημείο πάνω στην οθόνη (και όχι πάνω σε αντικείμενο). Τα Points μπορούν να ομαδοποιηθούν ανάλογα με τις ιδιότητες τους και με βάση αυτή την ομαδοποίηση εμφανίζονται και με διαφορετικό χρώμα. Αυτό ρυθμίζεται στο Font Colors. Το παράθυρο που ανοίγει είναι το παρακάτω. 134

Αν στο Point Control Panel, πατηθεί με διπλό κλικ κάποιο Point τότε ανοίγει το παράθυρο με τα Point Properties: Στο πεδίο Set Value μπορούμε να πληκτρολογήσουμε την επιθυμητή τιμή και αυτή να αλλάξει αμέσως. Κάτι τέτοιο μπορεί να έχει άμεση επενέργεια πάνω στην εφαρμογή καθώς μπορεί να οδηγήσει σε αλυσιδωτά events, alarms, scripts κλπ. Επομένως πρέπει να γίνεται με προσοχή, ειδικά αν τα Points είναι Device και επικοινωνούν με τον βιομηχανικό εξοπλισμό. 135

Επίσης για να μπορεί να γίνει μία τιμή set, ο χρήστης που θα την πραγματοποιήσει πρέπει να έχει το δικαίωμα να το κάνει και αυτό ρυθμίζεται από το παράθυρο Role Properties (παρ. 2.10.2) για τον εκάστοτε χρήστη. 2.17.3 Process Control Το Process Control είναι ένα εργαλείο υπεύθυνο για τη διαχείριση των διεργασιών που περιλαμβάνει το κάθε Project. Είναι η αντίστοιχη εφαρμογή με το περιβάλλον των Windows όπου πατώντας Ctrl+Alt+Del, ανοίγει η διαχείριση Εργασιών και επιλέγοντας την ταμπέλα διεργασίες βλέπουμε τις τρέχουσες διεργασίες. Η χρήση του γίνεται ως εξής: Ανοίγουμε το Process Control: 136

Αποκαθιστούμε τη σύνδεση με το Project: Ο χρήστης μπορεί να σταματήσει ή να εκκινήσει από την αρχή κάποια διεργασία. Ωστόσο αυτό πρέπει να γίνεται από εξειδικευμένους χρήστες καθώς εσφαλμένη επεξεργασία των διεργασιών μπορεί να οδηγήσει σε αστοχία του προγράμματος. Οι διεργασίες που αναπτύσσονται στο Cimplicity μαζί με την επεξήγηση της καθεμιάς είναι: AMRP APSM_RP CAL_RP CNCALM DL_RP Alarm Management Resident Process APSM Resident Process Action Calendar CNC Alarm Process Data Logger Resident Process 137

DYNCFG Dynamic Configuration Process EM_RP Event Manager Resident Process MTCPSI_RP Modbus TCP Slave Interface MRTUSI_RP Modbus RTU Slave Interface MASTER_<port> Device Communications Interfaces MASTER_<printer_name> Alarm Manager Line Printer Process MASTER_PTDP_RP Point Management Virtual Point Resident Process MASTER_PTM<n>_RP Point Management Resident Process PDC_DS Tracker - Decision Control Data Server PROF_RP Profile Trending PRT_CNT Tracker Tracking Attribute Counts PRT_CLNT Tracker Client (communicates from one project to another) PRT_DS Tracker Tracking Data Server PRT_GRD Tracker Tracking Graphic Display PTDL_RP Point Data Logger Resident Process PTX_RP Point Translation Resident Process <rcositename> Tracker Tracker Routing Control Objects Site RCODB_RP RCO Configuration Provider to RCO Runtime User Interface Για παράδειγμα τερματίζοντας την διεργασία CAL_RP το Action Calendar δε θα μπορεί πλέον να επιδράσει πάνω στην εφαρμογή που τρέχει. 2.17.4 Show Users Το περιβάλλον Show Users μοιάζει πολύ με αυτό του Lοgin Panel. Είναι ένα παράθυρο που ενημερώνει για τους χρήστες που είναι συνδεδεμένοι στο δίκτυο εκείνη τη στιγμή. Δεν υπάρχει η δυνατότητα για ενέργειες παρά μόνο για αναζήτηση κάποιου χρήστη. 138

139

2.18 Οδηγός για τη δημιουργία μίας απλής εφαρμογής SCADA Το πως θα σχεδιαστεί μία εφαρμογή είναι θέμα του κάθε χρήστη και έχει να κάνει κυρίως με την εμπειρία του και τις απαιτήσεις του συστήματος. Ωστόσο, μπορεί να υπάρξει ένα μοτίβο το οποίο σε γενικές γραμμές να μπορεί να καθοδηγήσει έναν άπειρο χρήστη στο να εξοικειωθεί με τη σχεδίαση εφαρμογών SCADA στο Cimplicity. Mόλις ανοιχτεί το Workbench με το νέο project, η πρώτη εργασία πρέπει να είναι να σχεδιαστεί η οθόνη SCADA στο περιβάλλον CimEdit. Η γραφική απεικόνιση πρέπει να περιέχει όλες τις απαραίτητες πληροφορίες σε κατάλληλη μορφή (γραφήματα, ενδείξεις, indicators) και να μην περιέχει περιττά στοιχεία που μπορεί να αποσπούν τη προσοχή του χρήστη. Τα ActiveX στοιχεία(trends, SPC, Alarm Viewer κλπ) μπορεί να μπαίνουν και σε ξεχωριστές οθόνες για να παρατηρούνται καλύτερα. Η διαδικασία συνεχίζεται μέχρι να συμπληρωθούν όλα τα απαραίτητα screens. 140

To επόμενο βήμα είναι ο ορισμός των Points. Στην αρχή, τις περισσότερες φορές, δε είναι δυνατόν ο σχεδιαστής να γνωρίζει το σύνολο των Points που θα χρειαστούν, επομένως σε αυτό το στάδιο θα χρειαστεί να επανέλθει πολλές φορές κατά τη φάση της σχεδίασης για να ορίσει νέα Points. Ωστόσο τα βασικά Points που περιγράφουν την εφαρμογή μπορούν να οριστούν από την αρχή. Χωρίς points είναι αδύνατο να αναπτυχθούν animation εφαρμογές στις οθόνες SCADA, αφού για κάτι τέτοιο ζητείται πάντα μία συνθήκη ικανοποίησης (Edit Expression). Αν υπάρχουν Device Points τότε πρέπει πρώτα να έχει δηλωθεί στο Cimplicity το πρωτόκολλο επικοινωνίας και η συσκευή προέλευσης σύμφωνα με την παράγραφο 2.13. Σε αντίθεση με άλλα λογισμικά SCADA, στο Cimplicity τα alarms ορίζονται ταυτόχρονα με τα points, στο ίδιο παράθυρο. Στο πεδίο Alarm Limits συμπληρώνονται οι τιμές κατά τις οποίες ενεργοποιείται το Alarm, ενώ το Alarm String προσδιορίζει το μήνυμα που συνοδεύει το συγκεκριμένο Alarm. Στη συνέχεια επιστρέφουμε στις οθόνες SCADA για να οριστούν τα διάφορα animations που μπορεί να είναι κίνηση ενός αντικειμένου πάνω στην οθόνη, εναλλαγή χρωμάτων σε ένα αντικείμενο, αλλαγή καρέ εικόνων ανάλογα με την ικανοποίηση κάποιας συνθήκης κ.ά. Κάθε μοτίβο περιλαμβάνει την εισαγωγή κάποιας έκφρασης και γι' αυτό χρειάζεται να έχουν ήδη οριστεί τα Points της εφαρμογής. 141

Το επόμενο βήμα είναι και το πιο σημαντικό. Περιλαμβάνει τη λογική αυτοματοποίησης της διεργασίας που επιτελεί η εφαρμογή SCADA. Αυτό γίνεται μέσα από τον Event Editor και τον Program Editor. Τα προγράμματα πρέπει να πρέπει να συντάσσονται πριν οριστούν τα Events, ώστε αν κάποιο action είναι τύπου Run Script, τότε να καλείται ο επιθυμητός κώδικας. Μόλις ολοκληρωθεί αυτό το βήμα η εφαρμογή είναι έτοιμη και μπορεί να "τρέξει" σύμφωνα με τις απαιτήσεις. Πατάμε RUN και δοκιμάζουμε αν η εφαρμογή λειτουργεί όπως θα έπρεπε. Τα runtime εργαλεία όπως το QuickTrends, το Point Control Panel, το BCE UI χρησιμοποιούνται για τον εντοπισμό τυχόν σφαλμάτων. Τα τελευταία βήματα που πρέπει να γίνουν είναι: Να οριστούν οι χρήστες και τα δικαιώματα χρήσης του καθενός. Αν πρέπει να εισαχθεί ένα SPC Control στην εφαρμογή, τότε πρέπει να δημιουργηθεί το.spc αρχείο που αποθηκεύει τις επιθυμητές ρυθμίσεις για στατιστική επεξεργασία δεδομένων της εφαρμογής. Τέλος, αν αυτό κρίνεται αναγκαίο, ορίζονται και τα recipes που χαρακτηρίζουν διαφορετικού τύπου παραγωγική διαδικασία. 142

Κεφάλαιο 3 ΚΕΦΑΛΑΙΟ 3 Βιομηχανικές εφαρμογές SCADA στο περιβάλλον Cimplicity ΕΙΣΑΓΩΓΗ 3.1 Εισαγωγή Στο κεφάλαιο αυτό παρουσιάζονται παραδείγματα σχεδίασης συστημάτων SCADA στο Cimplicity. Εκτός από τα screenshots που απεικονίζουν το γραφικό περιβάλλον παρουσιάζονται τα συστατικά στοιχεία κάθε εφαρμογής, όπως παρουσιάστηκαν και στο δεύτερο κεφάλαιο. 3.2 Εφαρμογή 1 Στην παρούσα εφαρμογή ακολουθείται το εξής σενάριο. Μία μεταφορική ταινία μεταφέρει συνεχώς και αδιαλλείπτως άδεια βαρέλια μπροστά από έναν ειδικό σωλήνα πλήρωσης με σκοπό να γεμίσει με κάποιο επιθυμητό υλικό (πχ πετρέλαιο). Η έναρξη και η παύση λειτουργίας της μεταφορικής ταινίας ελέγχεται μέσα από ένα διακόπτη ON - OFF. Η επιθυμητή θέση όπου πραγματοποιείται η πλήρωση των βαρελιών, ανιχνεύεται από έναν οριακό διακόπτη ο οποίος μόλις ενεργοποιηθεί αλλάζει χρώμα (από κίτρινο σε κόκκινο) και δίνει εντολή να ξεκινήσει η διαδικασία του γεμίσματος που διαρκεί 1,5 δευτερόλεπτo. Αμέσως μετά το κάθε βαρέλι απομακρύνεται από τη μεταφορική ταινία χωρίς κάποια ειδική σήμανση εκτός από το αντίστοιχο ALARM. Όταν τεθεί ο διακόπτης στη θέση OFF τότε το πρόβλημα δεν αρχικοποιείται, αλλά το βαρέλι που είναι εκείνη τη στιγμή πάνω στη μεταφορική ταινία ακινητοποιείται. Η αρχικοποίηση επιτυγχάνεται πατώντας το RESET που βρίσκεται αριστερά και αφού δοθεί και η σχετική επιβεβαίωση. Ο πίνακας που υπάρχει αριστερά, ενημερώνει για τον αριθμό των βαρελιών που έχουν παραχθεί αλλά και τον όγκο (σε γαλόνια) του υλικού που έχει χρησιμοποιηθεί. 143

Κεφάλαιο 3 Τα Points που χρησιμοποιήθηκαν είναι: 144

Κεφάλαιο 3 Στον Event Editor ορίστηκαν δύο events: EVENT ΣΥΝΘΗΚΗ ΙΚΑΝΟΠΟΙΗΣΗΣ ACTION ACTION DETAILS OFF_ON ON_OFF == 0 PUMP_OFF SET PUMP_POWER = 0 ON_OFF ON_OFF == 1 PUMP_ON SET PUMP_POWER = 100 ON_OFF ON_OFF == 1 PROCESS RUN SCRIPT "BASIC1.bcl" Script : BASIC1.bcl Sub Main() '---------------------- Dim A As Integer A=1 While A=1 '----------------------------- While POINTGET("ON_OFF")=TRUE If POINTGET("BARREL_MOVE")<=362 Then POINTSET "PS", FALSE R=POINTGET("BARREL_MOVE")+1 POINTSET "BARREL_MOVE", R Sleep 10 Else POINTSET "PS", TRUE SLEEP 1500 POINTSET "BARRELS", POINTGET("BARRELS")+1 POINTSET "GALLONS", POINTGET("GALLONS")+12.36 POINTSET "VIS", FALSE SLEEP 500 POINTSET "VIS", TRUE POINTSET "BARREL_MOVE", 0 If POINTGET("BARRELS")=2 Then AlarmGenerate "BARREL_FILL","EVENTALARM","SML","2 BARRELS PRODUCED" End If End If '----------------------------- Wend Wend End Sub 145

Κεφάλαιο 3 3.3 Εφαρμογή 2 Στην παρούσα εφαρμογή, η διαδικασία περιλαμβάνει τη μεταφορά στερεώδους κοκκώδους υλικού από ένα σιλό αποθήκευσης σε δύο άλλα σιλό παραγωγής από τα οποία γίνεται η διανομή. Αφού περάσει σπό μία περιστροφική βαλβίδα εκκένωσης στη βάση του σιλό αποθήκευσης, το προιόν μετακινείται με ένα μεταφορέα "έλικας του Αρχιμήδη" στην κορυφή των σιλό παραγωγής, όπου ένας κεκλιμένος αγωγός εκφόρτωσης καθορίζει ποιο σιλό θα γεμίσει πρώτο. Ένα διαφορετικό στάδιο της διαδικασίας καθορίζει την απομάκρυνση του προιόντος από τα σιλό παραγωγής. Κάθε κινητήρας, έχει το σχετικό αυτόματο διακόπτη για τη λειτουργία του, και ένα διακόπτη κυκλώματος για τη προστασία (τοποθετούνται βοηθητικές επαφές). Tο κιβώτιο μετάδοσης κίνησης του μεταφορέα εφοδιάζεται με έναν αισθητήρα ταχύτητας για την ανίχνευση της περιστροφής ορθής φοράς. Ο συνολικός έλεγχος γίνεται μέσα από ένα διακόπτη ON - OFF. Επίσης υπάρχουν στα δύο σιλό παραγωγής αισθητήρες υψηλής και χαμηλής στάθμης. Οι προδιαγραφές λειτουργίας του αυτοματισμού είναι οι εξής: 1. Η διαδικασία ξεκινάει με την περιστροφή του διακόπτη στη θέση ON και μπορεί να σταματήσει άμεσα θέτωντας το διακόπτη στη θέση OFF. Η παύση έχει ως αποτέλεσμα την εκκένωση των δύο σιλό παραγωγής. 2. Ξεκινάει η λειτουργία του μεταφορέα (Κ2) και επομένως ο αισθητήρας ταχύτητας (Β5) δίνει θετικό σήμα. 3. Με τη λήψη αυτού του σήματος αυτού, ενεργοποιείται ο κινητήρας της βαλβίδας (Κ1) και αρχίζει η εκκένωση του προιόντος. 4. Όταν γεμίσει το σιλό 1 τότε αυτόματα ο αγωγός εκφόρτωσης μετατοπίζεται στο σιλό 2. 5. Όταν γεμίσει και το σιλό 2 τότε σταματούν οι κινητήρες του μεταφορέα και της βαλβίδας εκκένωσης. 146

Κεφάλαιο 3 Τα Points είναι: Για να γίνει κατανοητή η λογική του αυτοματισμού παρατίθεται το παράθυρο του Basic Control Engine User Interface με το πέρας ενός κύκλου εργασίας, δηλαδή μόλις αδειάσουν και τα δύο σιλό παραγωγής. Στο προηγούμενο παράδειγμα, μέσα από ένα 147

Κεφάλαιο 3 πρόγραμμα ελέγχεται όλη η διαδικασία. Αντίθετα εδώ, υπάρχουν πολλά events τα οποία οδηγούν πολλούς μικρούς κώδικες. Αυτό αυξάνει την πολυπλοκότητα μεν στη φάση της σχεδίασης, ωστόσο γίνεται πολύ πιο έυκολο να υπάρξει εποπτεία, συντήρηση και δυνατότητα επεξεργασίας του συστήματος SCADA, αφού μπορεί κανείς να επέμβει μόνο στο τμήμα (event, action ή script) που τον αφορά και όχι να αλλάξει όλο τον κώδικα. Στην ουσία ο προγραμματισμός που περιγράφει τη λογική λειτουργίας υποδιαιρείται σε επιμέρους λειτουργίες, με βάση τη δυνατότητα που δίνει ο Event Editor. Τα Actions ορίζονται ως εξής (με σειρά εμφάνισης στον BCEUI): ACTION NAME ACTION DETAILS STORAGE_RUN RUN SCRIPT Basic1. bcl CONV RUN SCRIPT conveyor_func.bcl SILO_1 RUN SCRIPT SILO_1.bcl K1_SET POINTSET K1 = 1 SILO2 RUN SCRIPT SILO_2.bcl SWITCH RUN SCRIPT SWITCH VIS 1.bcl EMTY_1 RUN SCRIPT EMTY_1.bcl SWITCH2 RUN SCRIPT SWITCH VIS 2.bcl B5_STOP POINTSET B5 = 0 K2_STOP POINTSET K2 = 0 K1_STOP POINTSET K1 = 0 148

Κεφάλαιο 3 HALF STORAGE ALARM EMTY_2 B1234 RUN SCRIPT ALARM 50.bcl RUN SCRIPT EMTY_2.bcl RUN SCRIPT B1234.bcl Τα scripts που χρησιμοποιούνται είναι τα παρακάτω: Basic1.bcl Sub Main() While TRUE = PointGet("ON_OFF") And TRUE = PointGet("K1") PointSet "WEIGHT",PointGet("WEIGHT")-2.26 sleep 2150 Wend End Sub conveyor_func.bcl Sub Main() If true = PointGet("A1") And false = PointGet("B1") And false = PointGet("B3") Then PointSet "B5",TRUE PointSet "K2",TRUE End If End Sub SILO_1.bcl Sub Main() While PointGet("SILO_1")<=190 And TRUE = PointGet("ON_OFF") PointSet "B1",TRUE PointSet "SILO_1",PointGet("SILO_1")+19.4 SLEEP 2000 Wend If PointGet("SILO_1")>=190 Then PointSet "B2",TRUE End If SLEEP 300 End Sub 149

Κεφάλαιο 3 SILO_2.bcl Sub Main() While PointGet("SILO_2")<=190 And TRUE = PointGet("ON_OFF") PointSet "SILO_2",PointGet("SILO_2")+19.4 PointSet "B3",TRUE SLEEP 2000 Wend If PointGet("SILO_2")>=190 Then PointSet "B4",TRUE End If SLEEP 300 End Sub SWITCH VIS 1.bcl Sub Main() PointSet "VIS_1",FALSE PointSet "VIS_2",TRUE End Sub EMTY_1.bcl Sub Main() If PointGet("SILO_1")<>0 Then Do PointSet "SILO_1",PointGet("SILO_1")-40 SLEEP 500 Loop While PointGet("SILO_1")>10 If PointGet("SILO_1")<>0 Then PointSet "SILO_1",0 End If End If End Sub SWITCH VIS 2.bcl Sub Main() PointSet "VIS_1",TRUE 150

Κεφάλαιο 3 PointSet "VIS_2",FALSE End Sub ALARM 50.bcl 'ALARM GIA 50% PLHROTHTA STO SILO APOTHIKEYSHS Sub Main() Do If PointGet("WEIGHT")<=175 Then AlarmGenerate "RAW_MATERIALS","HALF_STORAGE","RAW_MATERIALS","" Exit Do End If Loop While PointGet("WEIGHT")<=175 End Sub EMTY_2.bcl Sub Main() If PointGet("SILO_2")<>0 Then Do PointSet "SILO_2",PointGet("SILO_2")-40 SLEEP 500 Loop While PointGet("SILO_2")>10 If PointGet("SILO_2")<>0 Then PointSet "SILO_2",0 End If End If End Sub B1234.bcl Sub Main() ' Epanafora sthn arxikh katastash ' thetontas B1=B2=B3=B4=0 PointSet "B1",false PointSet "B2",false PointSet "B3",false PointSet "B4",false End Sub 151

Κεφάλαιο 3 3.4 Εφαρμογή 3 Το παρακάτω παράδειγμα προσομοιώνει τη λειτουργία ενός συστήματος παραγωγής έτοιμου σκυροδέματος. Η κύρια λειτουργία του είναι η ακριβής ζύγιση των συστατικών του μίγματος και η εισαγωγή αυτών στον αναμίκτη για μία πλήρη παραγωγή έτοιμου σκυροδέματος. Τα προς ανάμιξη υλικά είναι : Αδρανή υλικά, τσιμέντο, χημικά πρόσθετα και νερό. Υπάρχουν 5 διαφορετικά είδη αδρανών υλικών, τρία διαφορετικά είδη τσιμέντου τοποθετημένα στα αντίστοιχα σιλό, τα πρόσθετα είναι τριών ειδών σε υγρή μορφή, ενώ η κατανάλωση του νερού μετριέται από έναν ειδικό αισθητήρα ροής. κάτω από τις δεξαμενές των αδρανών υπάρχει μία ζυγαριά ακριβείας και κάθε υλικό ζυγίζεται ξεχωριστά. Η ανάμιξη των συστατικών γίνεται από έναν ειδικό αναμίκτη διπλού άξονα και είναι υπεύθυνος για την ανάμιξη στο τέλος της παραγωγής. Με το πέρας της ανάμιξης το σκυρόδεμα είναι έτοιμο να φορτωθεί σε ειδκά οχήματα κατόπιν ζήτησης. 152

Κεφάλαιο 3 153

Κεφάλαιο 3 Για να ξεκινήσει η διαδικασία πατάμε NEW στην κύρια οθόνη. Αφού επιλέξουμε την κατάλληλη συνταγή πατάμε το START. Μετά από μερικά δευτερόλεπτα ξεκινάει η ζύγιση των αδρανών υλικών με βάση τις απαιτούμενες από τη συνταγή ποσότητες. Στη συνέχεια τα υλικά μεταφέρονται μέσω ειδικής μεταφορικής ταινίας στον αναμίκτη ενώ προστίθεται και το νερό. Στη συνέχεια τα τρία διαφορετικά είδη τσιμέντου εκκενώνονται σε μία μεγάλη δεξαμενή, η οποία με τη σειρά της αδειάζει το περιεχόμενο της στον αναμίκτη. Τέλος προστίθενται και τα χημικά πρόσθετα. Αμέσως μετάξεκινάει η διαδικασία της ανάμιξης. Μόλις ολοκληρωθεί και αυτή, το σκυρόδεμα μπορεί να φορτωθεί στα ειδικά οχήματα. Αυτό γίνεται πατώντας το TRUCKS για να μεταφερθούμε στην αντίστοιχη οθόνη. Τέλος πατώντας τα RECIPES, ALARMS, GRAPH PAGE μεταφερόμαστε στις αντίστοιχες οθόνες οι οποίες παρέχουν στο χρήστη τις απαραίτητες για εκείνον πληροφορίες. Για την οθόνη με τα recipes έγινε εισαγωγή ενός αρχείου Excel όπως φαίνεται στην αντίστοιχη εικόνα. 154

Κεφάλαιο 3 Τα Points που χρησιμοποιήθηκαν είναι : Στον Event Editor ορίστηκαν δύο Events (START,TRUCKS) που αντίστοιχα οδηγούν στην εκτέλεση δύο διαφορετικών scripts. Το ένα (AGGR. bcl) είναι υπεύθυνο για την κύρια λειτουργία του συστήματος SCADA σύμφωνα με τις προδιαγραφές λειτουργίας που περιγράφτηκαν παραπάνω, το άλλο (TRUCKS.bcl) επιτελεί τη λειτουργία του γεμίσματος των φορτηγών στο αντίστοιχο screen. Tα δύο scripts είναι: 155

Κεφάλαιο 3 AGGR. bcl Sub Main() SLEEP 3100 'ADMIXTURES DAMPING While PointGet("WEIGH")<PointGet("A1_REQ") PointSet "BLINK1",TRUE PointSet "WEIGH",PointGet("WEIGH")+25 PointSet "K1",PointGet("K1")-25 SLEEP 800 Wend PointSet "BLINK1",FALSE SLEEP 800 PointSet "WEIGH",0 '---------------- While PointGet("WEIGH")<PointGet("A2_REQ") PointSet "BLINK2",TRUE PointSet "WEIGH",PointGet("WEIGH")+25 PointSet "K2",PointGet("K2")-25 SLEEP 800 Wend PointSet "BLINK2",FALSE SLEEP 800 PointSet "WEIGH",0 '---------------- While PointGet("WEIGH")<PointGet("A3_REQ") PointSet "BLINK3",TRUE PointSet "WEIGH",PointGet("WEIGH")+25 PointSet "A3",PointGet("A3")-25 SLEEP 800 Wend PointSet "BLINK3",FALSE SLEEP 800 PointSet "WEIGH",0 '---------------- While PointGet("WEIGH")<PointGet("A4_REQ") PointSet "BLINK4",TRUE PointSet "WEIGH",PointGet("WEIGH")+25 PointSet "A4",PointGet("A4")-25 SLEEP 800 Wend PointSet "BLINK4",FALSE SLEEP 800 PointSet "WEIGH",0 '---------------- 156

Κεφάλαιο 3 While PointGet("WEIGH")<PointGet("A5_REQ") PointSet "BLINK5",TRUE PointSet "WEIGH",PointGet("WEIGH")+25 PointSet "A5",PointGet("A5")-25 SLEEP 800 Wend PointSet "BLINK5",FALSE SLEEP 800 PointSet "WEIGH",0 '---------------- 'CONVEYOR ON SLEEP 200 PointSet "VIS_AGGR",TRUE SLEEP 7000 PointSet "VIS_AGGR",FALSE '----------------- 'WATER FLOW Dim N As Integer N=0 While N<PointGet("WATER_REQ") PointSet "VIS1", TRUE PointSet "VIS2", TRUE N=N+30 PointSet "WATER_FLOW",N PointSet "WATER",PointGet("WATER")-30 SLEEP 1200 Wend PointSet "VIS1", FALSE PointSet "VIS2", FALSE SLEEP 1200 '----------------- 'CEMENT TANK FILLING Dim K As Integer K=0 While K<PointGet("CE1A_REQ") PointSet "VIS5",TRUE K=K+40 PointSet "CE1A",PointGet("CE1A")-40 PointSet "CEMENT_TANK",PointGet("CEMENT_TANK")+20 SLEEP 600 Wend PointSet "VIS5",FALSE K=0 While K<PointGet("CE1B_REQ") PointSet "VIS6",TRUE 157

Κεφάλαιο 3 K=K+40 PointSet "CE1B",PointGet("CE1B")-40 PointSet "CEMENT_TANK",PointGet("CEMENT_TANK")+20 SLEEP 600 Wend PointSet "VIS6",FALSE K=0 While K<PointGet("CE2_REQ") PointSet "VIS7",TRUE K=K+40 PointSet "CE2",PointGet("CE2")-40 PointSet "CEMENT_TANK",PointGet("CEMENT_TANK")+20 SLEEP 600 Wend PointSet "VIS7",FALSE K=0 'CEMENT TANK EMTYING While PointGet("CEMENT_TANK")>0 PointSet "CEMENT_TANK",PointGet("CEMENT_TANK")-20 SLEEP 1000 If FALSE = PointGet("VIS3") Then SLEEP 400 PointSet "VIS3",TRUE PointSet "VIS4",FALSE Else PointSet "VIS3",FALSE PointSet "VIS4",TRUE End If Wend PointSet "VIS3",FALSE PointSet "VIS4",FALSE SLEEP 2000 '--------------- 'CHEMICAL MATERIALS DAMPING Dim L As Integer L=0 While L<PointGet("P1_REQ") PointSet "FILL_P1",TRUE PointSet "FILL_PIPES",TRUE L=L+15 PointSet "P1",PointGet("P1")-15 PointSet "CHEM_TANK",PointGet("CHEM_TANK")+15 SLEEP 600 Wend PointSet "FILL_P1",FALSE 158

Κεφάλαιο 3 L=0 While L<PointGet("P2_REQ") PointSet "FILL_P2",TRUE L=L+15 PointSet "P2",PointGet("P2")-15 PointSet "CHEM_TANK",PointGet("CHEM_TANK")+15 SLEEP 600 Wend PointSet "FILL_P2",FALSE L=0 While L<PointGet("P3_REQ") PointSet "FILL_P3",TRUE L=L+15 PointSet "P3",PointGet("P3")-15 PointSet "CHEM_TANK",PointGet("CHEM_TANK")+15 SLEEP 600 Wend PointSet "FILL_P3",FALSE PointSet "FILL_PIPES",FALSE 'CHEMICAL MATERIALS TANK EMPTING While PointGet("CHEM_TANK")>0 PointSet "VIS8",TRUE PointSet "CHEM_TANK",PointGet("CHEM_TANK")-15 SLEEP 300 Wend PointSet "VIS8",FALSE K=0 N=0 L=0 '----------------- 'MIXING PROCESS Dim M As Integer M=0 While M<100 PointSet "ROTATE1",PointGet("ROTATE1")+50 PointSet "ROTATE2",PointGet("ROTATE2")+50 If 1000 = PointGet("ROTATE1") Then PointSet "ROTATE1",0 End If If 1000 = PointGet("ROTATE2") Then PointSet "ROTATE2",0 End If 159

Κεφάλαιο 3 sleep 100 M=M+1 Wend sleep 1000 End Sub TRUCKS. bcl Sub Main() Dim Y As Integer Dim X As Integer X=PointGet("TRUCKS_DEMAND") For Y= 1 To X SLEEP 3000 PointSet "VIS_TRUCK",TRUE Z=2.0 While Z>0 PointSet "SKYRODEMA_FILL",PointGet("SKYRODEMA_FILL")-0.2 Z=Z-0.2 SLEEP 400 Wend PointSet "VIS_TRUCK",FALSE PointSet "TRUCKS",PointGet("TRUCKS")+1 Next Y End Sub Το αρχείο για τα recipes είναι το παρακάτω: 160

Κεφάλαιο 3 Πατώντας NEW στην κύρια οθόνη ανοίγει το παράθυρο που επιλέγονται τα recipes. Για να γίνει η επιλογή υπάρχουν τρία Cimplicity Recipe Controls. Πατώντας το κατάλληλο φορτώνεται και η αντίστοιχη συνταγή. Τα περιεχόμενα της επιλεγμένης συνταγή εμφανίζονται στο διπλανό πίνακα, όπως ακριβώς ορίστηκαν και στον Recipe Editor. 161

Κεφάλαιο 3 162

Κεφάλαιο 4 ΚΕΦΑΛΑΙΟ 4 Ενσωμάτωση εφαρμογής Videostream σε οθόνη σταθμού SCADA ΕΙΣΑΓΩΓΗ 4.1 Εισαγωγή Τα ζητήματα ασφάλειας σε βιομηχανικές και παραγωγικές μονάδες είναι ιδιαίτερα σημαντικά και αφορούν άμεσα τους χρήστες των συστημάτων SCADA. Η εγκατάσταση καμερών σε διάφορους χώρους της μονάδας αποτελεί μία χρήσιμη λύση χωρίς την οποία ο έλεγχος τέτοιων μονάδων θα ήταν ιδιαίτερα δύσκολος και δαπανηρός. Όταν στην οθόνη ενός σταθμού SCADA ανάβει μία ενδεικτική λυχνία που προειδοποιεί για κάποιον κίνδυνο, ο μόνος τρόπος για να αντιμετωπιστεί ο κίνδυνος, είναι να ανατεθεί σε κάποιον μηχανικό, να πάει στο συγκεκριμένο σημείο και ύστερα από αρκετές ώρες ή και ημέρες (αν μιλάμε για απομακρυσμένα σημεία) να αποκαλυφθεί ότι η σήμανση ήταν λανθασμένη. Το συμπέρασμα είναι ότι οι πληροφορίες που προσλαμβάνει ένα πρόγραμμα SCADA δεν είναι πάντα αξιόπιστες ώστε να ληφθούν κρίσιμες αποφάσεις. Τέτοιες περιπτώσεις μπορεί να είναι : Όταν η οθόνη «γεμίζει» με Alarms, τότε η πραγματική αιτία του προβλήματος δεν είναι πάντα ξεκάθαρο να εξακριβωθεί. Σε βιομηχανικές εγκαταστάσεις με μεγάλη γεωγραφική κατανομή, όπως εγκαταστάσεις ύδρευσης, συστήματα διανομής ηλεκτρικής ενέργειας, πετρελαιοβιομηχανίες, το να έχουμε ζωντανή εικόνα από το περιβάλλον, σημαίνει αποστολή εξειδικευμένου προσωπικού στο χώρο πράγμα που είναι δαπανηρό χρονοβόρο και επικίνδυνο. Η αδυναμία να αγνοήσουμε «λανθασμένα» Alarms οδηγεί στη διασπορά του προσωπικού το ποίο ήδη μπορεί να είναι περιορισμένο. 163

Κεφάλαιο 4 Η ανάπτυξη των δικτύων είχε ως αποτέλεσμα τη δυνατότητα να ελέγχουμε μέσω κινητών τηλεφώνων ή υπολογιστών ασύρματες κάμερες. Για την εγκατάσταση συστημάτων παρακολούθησης σε μία μονάδα παραγωγής, αποτέλεσε ζητούμενο η ενσωμάτωση της ζωντανής εικόνας (δηλαδή της Videostream εφαρμογής) στην πλατφόρμα SCADA. Ο λόγος είναι ότι ο κεντρικός υπολογιστής όταν εκτός από το να συλλέγει πληροφορίες, δεδομένα, συμβάντα, προσφέρει live απεικόνιση της παραγωγής, τότε μειώνεται το κόστος από λάθος alarms. Τα πλεονεκτήματα της ενσωμάτωσης εφαρμογών live videostream σε πλατφόρμα SCADA είναι : 1. Μείωση του λειτουργικού κόστους και αποφυγή τραυματισμών του προσωπικού αφού πλέον δε χρειάζεται να αποστέλλεται κάποιος στο σημείο όπου ένα κόκκινο λαμπάκι μας ειδοποιεί. 2. Βελτίωση της παραγωγικότητας αφού υπάρχει καλύτερη εποπτεία και έτσι μειώνεται η πιθανότητα να προκληθεί κάποια σοβαρή βλάβη. 3. Οι χρήστες μπορούν να πάρουν άμεσα κρίσιμες αποφάσεις και με ακρίβεια απλά και μόνο χρησιμοποιώντας τις πληροφορίες που του παρέχει η εφαρμογή. 4. Ο μηχανικός που είναι υπεύθυνος για την επίβλεψη, έχει πιο εύκολο έργο αφού πλέον η προσοχή δε χρειάζεται να αποσπάται μεταξύ δύο διαφορετικών μόνιτορ αφού όλα έχουν ενσωματωθεί στον κεντρικό σταθμό. 4.2 Ενσωμάτωση εφαρμογής Videostream στο περιβάλλον Cimplicity 4.2.1 Αναπαρωγή αρχείων Video στο Cimplicity Υπάρχουν περιπτώσεις όπου μία εφαρμογή SCADA πρέπει να είναι σε θέση να αναπαράγει αρχεία video (όπως αρχεία τύπου.avi) με στόχο την επίδειξη της λειτουργίας μίας διάταξης σε ένα συγκεκριμένο χώρο. Για παράδειγμα μια γραμμή συναρμολόγησης αντικειμένων που αποτελείται από 5 ρομποτικούς βραχίονες ο καθένας από τους οποίους εκτελεί διαφορετική εργασία. Η SCADA εφαρμογή πέρα από τη γραφική απεικόνιση της συγκεκριμένης διάταξης περιέχει και 5 Objects (τύπου Windows Media Player) τα οποία δείχνουν τις ενέργειες που εκτελεί ο κάθε βραχίονας. 164

Κεφάλαιο 4 Με τα επόμενα βήματα φαίνεται πως εισάγουμε αρχεία video στο περιβάλλον Cimplicity. Βήμα 1 Ανοίγουμε ένα OLE Control και στην συνέχεια επιλέγουμε Windows Media Player. Βήμα 2 Στο WMP Object πηγαίνουμε στα properties και εκεί ορίζουμε ένα νέο event (Smart Object) και ένα αντίστοιχο action ( OnScreenOpen(Script) ). 165

Κεφάλαιο 4 Βήμα 3 Στην ετικέτα Scripts ανοίγουμε το OnScreenOpen και γράφουμε τον παρακάτω κώδικα. Private cimoleobj As WMPLib.IWMPPlayer4 Sub OnScreenOpen() cimoleobj.url = "c:\robotic machine.avi" ' entos agkylwn vazoume to path tou arxeiou End Sub Βήμα 4 Αποθηκεύουμε και πατάμε Test. Στο περιβάλλον CimView, δεξί κλικ πάνω στο WMP και Trigger Smart Object. H αναπαραγωγή ξεκινάει. 166

Κεφάλαιο 4 4.2.2 Αναπαραγωγή Live Video στο Cimplicity Σε ορισμένες περιπτώσεις μπορεί να χρειαστεί η εισαγωγή ενός παραθύρου από τη λήψη μίας Webcam Κάμερας ενσωματωμένης στον υπολογιστή, στην οθόνη SCADA. Το Cimplicity δεν έχει έτοιμο κάποιο εργαλείο για απευθείας εισαγωγή live video στο CimEdit περιβάλλον. Κάτι τέτοιο μπορεί να συμβεί αναπτύσσοντας ένα ActiveX Control το οποίο ενσωματώνει τη λήψη της κάμερας. Ένα τέτοιο Control μπορεί να εισαχθεί στο CimEdit πολύ εύκολα όπως φάνηκε στο κεφάλαιο 2. 4.3 Eξοπλισμός Industrial Video Surveillance της εταιρίας Moxa και ενσωμάτωση στο SCADA Cimplicity Με βάση τα παραπάνω γίνεται σαφές ότι οι SCADA εφαρμογές πρέπει να έχουν τη δυνατότητα επικοινωνίας με τον αντίστοιχο Video Surveillance εξοπλισμό, και ενσωμάτωσης στον κύριο υπολογιστή. Παίρνοντας ενδεικτικά τον εξοπλισμό της 167

Κεφάλαιο 4 εταιρίας MOXA και το περιβάλλον Cimplicity, δημιουργούμε ολοκληρωμένες εφαρμογές παρακολούθησης, μέσω Live Video, των βιομηχανικών συστημάτων. Τα προιόντα της MOXA για IP Video Surveillance for Industrial Applications είναι: 1. IP Cameras Περιλαμβάνει κάμερες οι οποίες είναι κατασκευασμένες ώστε να λειτουργούν σε βιομηχανικό περιβάλλον κάτω από δυσμενείς συνθήκες περιβάλλοντος (όπως υψηλή θερμοκρασία, υγρασία). VPort 16-M12 Series EN 50155 compliant, high quality CCD image, compact IP cameras VPort 16-M12 Series 2. Video Servers Περιλαμβάνει τους Encoders και τους Decoders. Οι Encoders διασυνδέονται με τις κάμερες, παρέχουν τη δυνατότητα μετάδοσης πολλών καναλιών ταυτόχρονα, παρέχουν διαφορετικές εξόδους όπως RS 232/422/485 και Ethernet με στόχο την κωδικοποίηση του σήματος Video και τη μετάδοση του. Οι Decoders χρησιμοποιούνται για να μετατραπούν κανάλια Video τύπου MPEG4/MJPEG από IP Κάμερες και Video Encoders σε σήματα αναλογικού Video για καταγραφή, αποθήκευση και προβολή σε ειδικά monitors. 168

Κεφάλαιο 4 Encoders Vport 461 Vport 451 Vport 351 Vport 251 Vport 364 Series Vport 354 Vport 254 1-channel H.264 Industrial Video Encoder for IP surveillance 1-channel MPEG4/MJPEG Industrial Video Encoder for IP surveillance Full motion, 1-channel MJPEG/MPEG4 industrial video encoder Full motion, 1-channel MJPEG/MPEG4 video encoder Excellent video quality, 4-channel H.264/MJPEG industrial video encoders Full motion, 4-channel MJPEG/MPEG4 industrial video encoders Rugged 4-channel MJPEG/MPEG4 industrial video encoders VPort 461 Encoder Decoders VPort D361 VPort D351 1-channel H.264/MJPEG industrial video decoder 1-channel MJPEG/MPEG4 industrial video decoder 169

Κεφάλαιο 4 VPort D351 Decoder 3. Industrial Network Video Recorder Οι Recorders χρησιμοποιούνται για να καταγράφουν τις λήψεις από διαφορετικά κανάλια ώστε να είναι διαθέσιμα ανά πάσα στιγμή στους χρήστες και λειτουργούν κάτω από δυσμενείς συνθήκες περιβάλλοντος. MxNVR-IA8 SerieS MxNVR-MO4 SerieS 8-channel industrial network video recorders for harsh environments 4-channel H.264/MJPEG streaming video recorder for mobile video surveillance MxNVR-IA8 Series 170

Κεφάλαιο 4 4. IP Surveillance Software SoftNVR-IA SoftCMS SoftNVR SoftDVR Pro VPort SDK PLUS 32-channel IP video surveillance software designed for industrial automation 100/200/500-channel central management software for large scale surveillance systems Expandable IP surveillance software for managing up to 64 video channels 16-channel IP surveillance software for viewing and recording Software Development Kit Εφαρμογή SoftNVR-IA MOXA ActiveX Control SDK PLUS Από την ιστοσελίδα της MOXA παρέχεται δωρεάν το MOXA ActiveX Control SDK PLUS το οποίο χρησιμοποιεί ActiveX Controls με στόχο την επικοινωνία του λογισμικού SCADA 171

Κεφάλαιο 4 με τον IP Surveillance εξοπλισμό. Αυτό γίνεται μέσω της εφαρμογής Videogadget που βρίσκεται μέσα στο MOXA ActiveX Control SDK PLUS. To Videogadget είναι στην ουσία μία εφαρμογή που παρέχει έτοιμα τα ActiveX Videostream στοιχεία για τέσσερα λογισμικά SCADA: Citect, Elipse, InTouch και Cimplicity. Για το περιβάλλλον Cimplicity παρέχεται ένα.cim αρχείο με όλα τα απαραίτητα Objects που χρησιμοποιούνται για απεικόνιση Live Video. Μπορούμε είτε να το ανοίξουμε μεμονωμένα, όπως φαίνεται στην παρακάτω εικόνα είτε να εγκαταστήσουμε τα ActiveX στοιχεία στη βιβλιοθήκη του Object Explorer. Αυτό γίνεται ως εξής: Αντιγράφουμε το αρχείο VideoGadget.cim σε ένα φάκελο με την ονομασία VideoGadget και στη συνέχεια τον μεταφέρουμε στην τοποθεσία C:\Program Files\GE Fanuc\Proficy CIMPLICITY \symbols\cimplicity SmartObjects. 172

Κεφάλαιο 4 Τα Objects του VPort VideoGadget for Cimplicity είναι: VPORT_VIEWER Το στοιχείο αυτό είναι το display της κάμερας με την οποία συνδέεται αυτόματα. Παρακάτω φαίνεται η παραμετροποίηση του στοιχείου. 173

Κεφάλαιο 4 VPORT_AUDIOPOST Αποκαθιστά τον ήχο στην υπάρχουσα σύνδεση. VPORT_CAPTION Εμφάνιση / Απόκρυψη της λήψης μιας εικόνας. VPORT_CLOSE Απόκρυψη της λήψης Video σε όλους τους viewers. VPORT_CONNECT Αποκατάσταση της σύνδεσης. VPORT_DISCONNECT Διακοπή της σύνδεσης VPORT_SNAPSHOT Αποθήκευση στιγμιότυπου σε προκαθορισμένο αρχείο. VPORT_PTZ PTZ Camera Control VPORT_MULTIVIWER_DISPLAY Πολλαπλή μετάδοση live video χρησιμοποιώντας I-Frame κωδικοποίηση. 174

Κεφάλαιο 4 VPORT_MULTIVIWER_BUTTON Λειτουργία σε πολλαπλές λήψεις χρησιμοποιώντας I-Frame κωδικοποίηση. Το VideoGadget σε RUN: 175

Κεφάλαιο 4 176

Κεφάλαιο 5 ΚΕΦΑΛΑΙΟ 5 Το πρωτόκολλο OPC στο περιβάλλον CIMPLICITY 5.1 Το πρότυπο OPC ΕΙΣΑΓΩΓΗ Τα συστήματα SCADA δε θα γνώριζαν την ανάπτυξη που υπάρχει σήμερα, αν πρώτα δεν είχε αναπτυχθεί η δυνατότητα δικτύωσης και επικοινωνίας μεγάλης κλίμακας συσκευών (PLC, RTU, DCS). Η εγκατάσταση διαφορετικών λογισμικών προκειμένου ελεγχθούν διαφορετικά είδη συσκευών απαιτούσε περισσότερο κόπο, κόστος και χρόνο. Αυτό σήμαινε ότι οποιαδήποτε software εφαρμογή (όπως και οι εφαρμογές SCADA) ήταν άμεσα εξαρτημένες από τον κατασκευαστή και τον τύπο του υλικού. Κάτι τέτοιο έθετε περιορισμούς και έβαζε εμπόδια στις δυνατότητες σχεδίασης και λειτουργίας του συνολικού συστήματος. Λύση σε αυτό το πρόβλημα δείνει η τεχνολογία OPC, OLE for Process Control ή Open Process Control. To OPC είναι ουσιαστικά ένα πρότυπο που επιτρέπει ανταλλαγές δεδομένων υλικού/λογισμικού ανεξάρτητα από τον τύπο του κατασκευαστή. Το πρότυπο OPC υπήρξε για τα βιομηχανικά δίκτυα, ό,τι και τα drivers ενός εκτυπωτή για το περιβάλλον των Windows. Αμέσως γίνεται κατανοητή η χρησιμότητα της συγκεκριμένης τεχνολογίας στο Βιομηχανικό Περιβάλλον και στον Αυτοματισμό. Διαφορετικού τύπου PLC μπορούν να συνδεθούν σε ένα κεντρικό υπολογιστή, ο οποίος λειτουργώντας ως server παρέχει δεδομένα σε συστήματα εποπτείας και συλλογής δεδομένων (HMI, HISTORIAN, SCADA κλπ). Το μόνο που απαιτείται από τα διάφορα αυτά software που υλοποιούν τον Εποπτικό Έλεγχο, είναι να έχουν ενσωματωμένη την εφαρμογή OPC client ώστε να ανακτούν τα δεδομένα από τον OPC server. Σχήμα 5.1 Αρχιτεκτονική πρωτοκόλλου OPC 177

Κεφάλαιο 5 OPC Data Access OPC Alarms & Events OPC Batch OPC Data exchange OPC Historical Data Access OPC Security OPC XML-DA OPC Complex Data OPC Commands OPC Unified Architecture Χρησιμοποιείται για συνεχή μετάδοση δεδομένων σε πραγματικό χρόνο μεταξύ PLC,RTU,DCS και εφαρμογών ΗΜΙ/SCADA. Χρησιμοποιείται για αναγγελία σημαντικών συμβάντων και σημάνσεων σύμφωνα με τις απαιτήσεις του χρήστη. Η μετάδοση δεν εξαρτάται από το χρόνο αλλά από συμβάντα. Παρέχει δεδομένα σημαντικά για τη φιλοσοφία της παραγωγής όπως δυνατότητες εξοπλισμού, συνθήκες λειουργίας, συνταγές, καταγραφή δεδομένων Απομακρυσμένος έλεγχος, ανταλλαγή δεδομένων server-to-server Δικαίωμα πρόσβασης για ανάκτηση αποθηκευμένων δεδομένων σε SCADA εφαρμογές Έλεγχος δικαιωμάτων πρόσβασης κάθε χρήστη σε ευαίσθητα για τη λειτουργία δεδομένα με στόχο να αποτραπεί η πρόσβαση σε παραμέτρους του συστήματος από κακοπροαίρετους χρήστες Παρέχει δεδομένα σε κατάλληλα formats χρησιμοποιώντας τη γλώσσα XML με στόχο την επικοινωνία μέσω υπηρεσιών διαδικτύου Εφαρμογή μέσω Data Access/XML-DA με στόχο την περιγραφή πολύπλοκων δομών δεδομένων όπως διαδικές δομές και XML έγγραφα Διεπαφή με στόχο την αναγνώριση, αποστολή και εποπτεία εντολών ελέγχου στον εξοπλισμό του συστήματος Το πρότυπο OPC νέας γενιάς 178

Κεφάλαιο 5 OPC Compliance Πίνακας 5.1 Βασικές εφαρμογές OPC Πιστοποίηση από την OPC-Foundation μέσω προγραμμάτων που εξετάζουν τη συμβατότητα με το πρωτόκολλο OPC Το πρότυπο OPC βασίζεται στην κλασσική αρχιτεκτονική Client/Server. Ουσιαστικά ο OPC server συλλέγει τα δεδομένα από τα διάφορα PLC και τα μεταδίδει σε διάφορες εφαρμογές κατά ζήτηση που συμπεριφέρονται ως clients. Σχήμα 5.1 Αρχιτεκτονική πρωτοκόλλου OPC 5.1.1 Data Access Με την εφαρμογή Data Access δημιουργείται η δυνατότητα για συλλογή δεδομένων από τις διάφορες συσκευές εισόδων/εξόδων. Ο χρήστης τώρα μπορεί: 1. Να μπορεί να διαβάσει μία ή περισσότερες μεταβλητές της διεργασίας. 179

Κεφάλαιο 5 2. Να μεταβάλλει την τιμή μίας ή περισσοτέρων μεταβλητών της διεργασίας αποθηκεύοντας την νέα τιμή. 3. Να παρακολουθεί τις μεταβολές μίας ή περισσοτέρων μεταβλητών της διεργασίας. 4. Να ενημερωθεί για αλλαγή στην τιμή μίας μεταβλητής. Το παρακάτω μοντέλο (Data Access Class Model) περιγράφει τη φιλοσοφία που διέπει το πρότυπο OPC σχετικά με τη συλλογή και εποπτεία των επιθυμητών μεταβλητών του συστήματος. Σχήμα 5.2 Data Access Class Model Αυτή η δενδρική μορφή περιέχει τρία βασικά συστατικά στοιχεία: OPC Server OPC Group OPC Item Στην πρώτη κλάση ανήκουν όλοι οι OPC serves που μπορεί να τρέχουν σε έναν υπολογιστή. Μπορούμε μέσα από τους servers να ανακτήσουμε οποιαδήποτε πληροφορία σχετικά με τις μεταβλητές του συστήματος όπως η κατάστασή τους, η τιμή τους κλπ. 180

Κεφάλαιο 5 Η δεύτερη κλάση βρίσκεται ιεραρχικά αμέσως μετά τους OPC servers και χρησιμοποιείται για να ομαδοποιούνται κατάλληλα τα επιθυμητά αντικείμενα. Για παράδειγμα οι μεταβλητές που χρησιμοποιούνται σε μία οθόνη SCADA και περιγράφουν τη λειτουργία μιας συγκεκριμένης παραγωγικής μονάδας μπορούν να συγκεντρωθούν στο ίδιο group. Αυτό έχει σαν αποτέλεσμα την καλύτερη πρόβαση στα δεδομένα από το χρήστη και την εκλογίκευση στη διαχείρηση τους. Επίσης όταν χρησιμοποιούμε κάποιο δίκτυο για μετάδοση δεδομένων η μετάδοση ως group class επιτυγχάνει μέγιστη ταχύτητα διάδοσης αφού τα δεδομένα μεταφέρνοται ως ενιαία «πακέτα» και όχι ανεξάρτητα το ένα από το άλλο. Η τρίτη κλάση αντιπροσωπεύει τις πραγματικές μεταβλητές που δειγματοληπτούνται από τους ελεγκτές. Κάθε item προσδιορίζεται μονοσήματα από ένα ItemID το οποίο εξαρτάται από τον τύπο του server. Οι παρακάτω ιδιότητες χαρακτηρίζουν τα items. 1. Η τελευταία γνωστή τιμή που αποθηκεύτηκε 2. Η αξιοπιστία της ανακτώμενης τιμής 3. Ο χρόνος που ανακτήθηκε η τελευταία τιμή της μεταβλητής 5.1.2 OPC XML Χρησιμοποιώντας την εφαρμογή OPC XML μας δίνεται η δυνατότητα προσπέλασης αλλά και παρακολούθησης των δεδομένων του συστήματος, μέσω internet. Αυό είναι εφικτό μέσα από το πρωτόκολλο SOAP (Simple Object Access Protocol) το οποίο χρησιμοποιείται για μετάδοση δεδομένων που βασίζονται στη γλώσσα XML. Μπορούμε να πούμε ότι για τα παραπάνω πρωτόκολλα ισχύει: SOAP = HTTP + XML To OPC XML είναι ένα πρότυπο το οποίο επιτρέπει την επικοινωνία μέσω internet παρακάμπτωτας έτσι τους περιορισμούς που έχουν οι διάφοροι clients, να λειτουργούν αποκλειστικά στο περιβάλλον των Windows. Είναι πλέον εφικτή και η διασύνδεση με άλους υπολογιστές που χρησιμοποιούν δαφορετικά λειτουργικά συστήματα όπως LINUX. Υπάρχουν και ορισμένα μειονεκτήματα. Χρειάζεται καταρχήν να εγκατασταθεί σστον υπολογιστή ένας Internet Server που θα διαχειρίζεται τη μετάδοση των δεδομένων. Ένα δεύτερο μειονέκτημα είναι ότι για το OPC XML δεν προβλέπεται η 181

Κεφάλαιο 5 μετάδοση μηνυμάτων που που σχετίζονται με τις αλλαγές των δεδομένων εξαιτίας της κακής ποιοτικά σύνδεσης που μπορείνα να υπάρχει με το internet. Σχήμα 5.3 OPC XML 5.1.3 Ρυθμός δειγματοληψίας σε OPC Group Το σχήμα 5.4 παριστάνει ακριβώς τον τρόπο με τον οποίο η τιμή ενός μετρήσιμου μεγέθους φτάνει στην οθόνη του υπολογιστή χρησιμοποιώντας το πρότυπο OPC. H διαδικασία αυτή περνά από τρεις χρόνους δειγματοληψιας. Ο πρώτος αντιπροσωπεύει τη δειγματοληψία από το φυσικό επίπεδο στις συσκευές (PLCs). Ο χρόνος αυτός είναι πολύ μικρός (της τάξης των msec), σχετίζεται με το χρόνο σάρωσης των PLCs και αντιπροσωπεύει την συχνότητα με την οποία ο ελεγκτής ανακτά δεδομένα από τα αισθητήρια όργανα. Η δεύτερη δειγματοληψία αντιπροσωπεύει τη συχνότητα με την οποία ο OPC server κάνει update στα δεδομένα μέσα από το δίαυλο του βιομηχανικού δικτύου. Ο χρόνος αυτός ορίζεται από το χρήστη μέσα από τη διεπαφή του OPC server. Ο τρίτος χρόνος δειγματοληψίας είναι η ο χρόνος που κάποια software εφαρμογή όπως SCADA, Historian κλπ λειτουργώντας ως client ανακτά δεδομένα από τον OPC server. 182

Κεφάλαιο 5 Σχήμα 5.4 Δειγματοληψία OPC 5.2 O OPC-server στο περιβάλλον CIMPLICITY Το περιβάλλον CIMPLICITY διαθέτει ενσωματωμένο έναν OPC server ο ο οποίος επιτρέπει την ανάγνωση και την ανάγνωση στις μεταβλητές των υπό εκτέλεση projects. Αποτελεί ένα ισχυρό εργαλείο με τις παρακάτω βασικές ιδιότητες: Αποθηκεύει τις επιθυμητές ρυθμίσεις του server από το χρήστη δεδομένα σε ένα XML αρχείο στην τοποθεσία c:\program Files\GE Fanuc\Proficy CIMPLICITY\data. Τρέχει ως κρυφό πρόγραμμα στο περιβάλλον των Windows Ξεκινάει τη συλλογή δεδομένων με την έναρξη ή την επανεκκίνηση ενός project χωρίς να χρειάζεται το ίδιο να σταματήσει και να ξεκινήσει εκ νέου Παρέχει μία χαρακτηριστική διεπαφή η οποία περιλαμβάνει δεδομένα για την κατάσταση των project αλλά και ένα έναν Point Control Panel, παρόμοιο με αυτόν που υπάρχει στο περιβάλλον CimView. To παράθυρο του OPC Server φαίνεται παρακάτω: 183

Κεφάλαιο 5 Σχήμα 5.5 Το πρώτο βήμα είναι να προστεθούν τα projects που θέλουμε να παρακολουθούνται από τον server. Ακολουθούμε την εξής διαδικασία: Edit Server Configuration Σχήμα 5.6 184

Κεφάλαιο 5 Προσθέτουμε τα projects που επιθυμούμε και πατάμε ΟΚ. Τώρα πρέπει να εμφανίζοναι στην οθόνη. Χρειάζεται λίγη προσοχή το κουτάκι στο κάτω μέρος που ζητείται αν θέλουμε να τσεκάρουμε. Το επιλέγουμε όταν τα project που συνδέονται στον server εναλλάσονται συνεχώς από εμάς μεταξύ RUN STOP προκειμένου να διορθωθούν κάποια από τα στοιχεία του. Ως αποτέλεσμα ο server κάθε φορά που ξεκινάει ένα νέο πρόγραμμα κάνει update στα δεδομένα του. Επομένως, κατά τη διάρκεια της σχεδίασης πρέπει να τσεκάρουμε το κουτάκι. Το αντίθετο πράττουμε, όταν η εφαρμογή μας προορίζεται να τρέχει αδιαλλείπτως στο βιομηχανικό περιβάλλον. Η μη επιλογή αυτής της λειτουργίας βελτιστοποιεί την απόκριση του server και καταναλώνει λιγότερη μνήμη υπολογιστή. Δίπλα από κάθε project υπάρχει ένα χρωματισμένο εικονίδιο με ένα από τα τρία χρώματα: Πράσινο, κίτρινο,κόκκινο. Κάθε ένα από αυτά τα χρώματα προσδιορίζει την κατάσταση λειτουργίας του project. Το πράσινο χρώμα εμφανίζεται είτε όταν το πρόγραμμα είναι σε RUN και η επικοινωνία έχει αποκατασταθεί, είτε όταν το πρόγραμμα είναι μεν σε κατάσταση RUN αλλά έχει επιλεγεί να μην εμφανίζονται τα points που το αποτελούν. Αυτό γίνεται όταν μέσα από το server configuration επιλέξουμε το Hide this name space (σχήμα 5.6). Το κίτρινο χρώμα εμφανίζεται είτε όταν το πρόγραμμα δεν τρέχει ωστόσο τα στοιχεία του είναι προσβάσιμα στους clients, είτε όταν το πρόγραμμα τρέχει αλλά η ανάκτηση των δεδομένων δεν ολοκληρώθηκε λόγω κάποιου σφάλματος. Τέτοια μπορεί να είναι η απώλεια σύνδεσης αν ο server βρίσκεται σε άλλο υπολογιστή ή συνηθέστερα όταν το πρόγραμμα βρίσκεται σε διαφορετικό file path από αυτό που είχε τρέξει αρχικά. Τέτοια σφάλματα είναι συχνά όταν μεταφέρουμε projects από τον έναν υπολογιστή στον άλλο. Τέλος το κόκκινο χρώμα εμφανίζεται όταν το πρόγραμμα δεν είναι σε κατάσταση RUN και δεν έχει πρόσβαση ο server στα στοιχεία του. Η πιο συνήθης τέτοια περίπτωση είναι όταν μόλις έχει δημιουργηθεί ένα project και ακόμα δεν έχει τεθεί σε κατάσταση RUN. Αμέσως μόλις ξεκινήσουμε ένα project τότε αποκαθίσταται η σύνδεση με τον server, και το εικονίδιο αλλάζει από κόκκινο σε πράσινο. Επεκτείνοντας το project στην αριστερή στήλη, εμφανίζονται τα points που το αποτελούν. O server τώρα και αφού επιλέξουμε τα επιθυμητά points, μπορεί να λειτουργήσει ως point control panel σε πραγματικό χρόνο. 185

Κεφάλαιο 5 Κάθε φορά που ανοίγουμε τον OPC Server αυτομάτων φορτώνεται και ένα project με το όνομα STATISTICS. Αυτό είναι ένα read-only project το oποίο δε μπορεί να μετακινηθεί και το οποίο παρέχει πληροφορίες για την κατάσταση του server. Τέτοιες είναι: CLIENTS : Αριθμός των συνδεδεμένων clients. EVENTS : Αριθμός των updates που πραγματοποιήθηκαν την τελευταία περίοδο (1 δευτερόλεπτο). GROUPS : Αριθμός των OPC Groups που έχουν δημιουργηθεί από τους συνδεδεμένους clients. ITEMS : Αριθμός των points που εμπεριέχει το συγκεκριμένο group. PERIOD : Χρόνος δειγματοληψίας 1 sec Σχήμα 5.7 READS : Αριθμός των αιτήσεων ανάκτησης της τιμής ενός point από τους συνδεδεμένους clients κατά την τελευταία περίοδο. 186

Κεφάλαιο 5 RUNNING PROJECTS : Αριθμός των συνδεδεμένων project που βρίσκονται σε κατάσταση RUN. TOTAL PROJECTS : Αριθμός των συνολικών project που είναι συνδεδεμένα, ανεξάρτητα την κατασταση λειτουργίας τους. WRITES : Αριθμός εντολών τύπου SETPOINT που έχουν γίνει από συνδεδεμένους clients κατά την τελευταία περίοδο. 5.3 Σύστημα Εποπτείας εργαστηριακής εφαρμογής τεχνητού αναρριχητή Μία απλή μέθοδος οπτικοποιημένης παρακολούθησης θα ήταν ο σχεδιαμός ενός συστήματος SCADA για κάποια εφαρμογή βιομηχανικού αυτοματισμού. Έτσι λοιπόν στο εργαστήριο Γενικής Ηλεκτροτεχνίας χρησιμοποιήθηκε η διάταξη του μηχανικού αναρριχητή με στόχο την απεικόνιση σημαντικών δεδομένων και σημάνσεων για τη λειτουργία της διάταξης. Η διάταξη αποτελείται από 4 έμβολα τεχνητούς μύες πεπιεσμένου αέρα προσαρμοσμένα στο ένα τους άκρο σε μια κοινή βάση (σώμα του αναρριχητή). Στο άλλο άκρο υπάρχει κατάλληλος μηχανισμός ολίσθησης που τους επιτρέπει να κινηθούν πάνω στην επιφάνεια των κάθετων δοκών αλουμινίου που συνθέτουν τη βάση αναρρίχησης. Κάθε μηχανισμός ολίσθησης διαθέτει μικρό έμβολο πεπιεσμένου αέρα με χρήση του οποίου επιτυγχάνουμε την παύση της ολίσθησης του άκρου. Η συνδιασμένη και διαδοχική έκταση συστολή των εμβόλων προκαλεί την κίνηση του σώματος προς τα πάνω ή προς τα κάτω, το οποίο μιμείται κατά έναν τρόπο την αναρρίχηση του ανθρώπου σε σκάλα. Η λειτουργία της διάταξης έχει σχεδιαστεί έτσι ώστε ο αναρριχητής να φθάνει στο επιθυμητό ύψος το οποίο και θα ορίζεται από το χρήστη. Τη βάση αναρρίχησης συνιστούν δύο δοκοί αλουμινίου ύψους 3 μέτρων και πλάτους 40 χιλιοστών, οι οποίες είναι τοποθετημένες σε απόσταση 40 εκατοστών η μία από την άλλη. Ακόμα οι δύο κάθετοι δοκοί διατηρούνται σε σταθερή και ακριβή απόσταση 40 εκατοστών μεταξύ τους με τη βοήθεια τεσσάρων οριζόντιων συμπαγών δοκών (διαστάσεων 480mm x 10mm x 100mm). Οι τελευταίες χρησιμοποιήθηκαν και για τη στερέωση του αισθητήρα μήκους των βαλβίδων και άλλων μικροεξαρτημάτων. 187

Κεφάλαιο 5 Σχήμα 5.8 Ο τεχνητός αναρριχητής 188

Κεφάλαιο 5 Το ρόλο των φρένων παίζουν 4 πνευματικά έμβολα καθένα από τα οποία έχει τοποθετηθεί πάνω σε έναν από τους 4 μηχανισμούς ολίσθησης του αναρριχητή. Οι πνευματικοί κύλινδροι που χρησιμοποιήθηκαν είναι απλής δράσης με αυτόματη επαναφορά. Η παύση της κίνησης επιτυγχάνεται με την τοποθέτηση ενός μεταλλικού εξαρτήματος στην άκρη του εμβόλου. Πάνω στο μεταλλικό εξάρτημα υπάρχει ειδικό ανθεκτικό υλικό η τριβή του οποίου με το αλουμίνιο προκαλεί την παύση τη κίνησης. Η αναρρίχηση επιτυγχάνεται με τη ροή πεπιεσμένου αέρα στους τέσσερις μύες μέσω 4 αναλογικών ρυθμιστών πίεσης της εταιρίας Festo. Για τη λειτουργία των φρένων χρειάστηκαν αντίστοιχα τέσσερις ψηφιακοί ρυθμιστές πίεσης της εταιρίας CEME. Για την ανίχνευση της θέσης του αναρριχητή χρησιμοποιήθηκε ένας αισθητήρας μήκους γραμμικής κίνησης. Ο αισθητήρας λειτουργεί ως εξής: Ένα λεπτό συρματόσχοινο που είναι τυλιγμένο στο εσωτερικό του ξετυλίγεται καθώς υπάρχει κίνηση. Ο εσωτερικός περιστροφικός μηχανισμός καταλήγει σε ενα ποτενσιόμετρο το οποίο ανάλογα με τις στροφές του μεταβάλλει την τάση εξόδου στο εύρος 0-10 V. Η τιμή της τάσης αυτής είναι η τιμή εισόδου στο PLC για το διανυθέν μήκος. Ο εξοπλισμός της διάταξης περιλαμβάνει ακόμα: Μία λυχνία τοποθετημένη στο σώμα του αναρριχητή και η οποία αναβοσβήνει όταν ολοκληρωθεί η επιθυμητή ανάβαση. Μία υψομετρική ταινία τοποθετημένη κατά μήκος των δοκών της διάταξης και βοηθητικός δείκτης με σκοπό τον οπτικό έλεγχο της κατακόρυφης θέσης. Ένα μπουτόν χειρισμού του αναρριχητή μέσω του οποίου επιλέγουμε χειροκίνητα το κάθε μοτίβο ανάβασης (είναι τέσσερα και αναφέρονται στη συνέχεια). Τέσσερα μανόμετρα ένδειξης της πίεσης του αέρα από 0-6 bar. Ένα εύκαμπτο κανάλι μέσα στο οποίο τοποθετήθηκαν οι σωλήνες και οι απαιτούμενοι ηλεκτρικοί αγωγοί. Σχήμα 5.9 Σχήμα 5.10 189

Κεφάλαιο 5 Ο έλεγχος της διάταξης γίνεται μέσα από έναν Προγραμματιζόμενο Λογικό Ελεγκτή τύπου Siemens Simatic S7-300. Τα τεχνικά χαρακτηριστικά ειναι τα παρακάτω: ΤΡΟΦΟΔΟΤΙΚΟ PS 307 POWER SUPPLY MODULE (2A) ΜΟΝΑΔΑ ΨΗΦΙΑΚΩΝ ΕΙΣΟΔΩΝ SM321 - DI 16XDC24V ΜΟΝΑΔΑ ΑΝΑΛΟΓΙΚΩΝ ΕΙΣΟΔΩΝ SM331 AI 8x12BIT ΜΟΝΑΔΑ ΨΗΦΙΑΚΩΝ ΕΞΟΔΩΝ SM322 D4 16xDC24V/0.5A ΜΟΝΑΔΑ ΑΝΑΛΟΓΙΚΩΝ ΕΞΟΔΩΝ SM332 A4 8x12BIT ΜΟΝΑΔΑ ΕΛΕΓΧΟΥ (CPU) CPU 313 ΜΟΝΑΔΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Siemens MPI PG-PC ADAPTER, SIMATIC STEP 7 V5.3 SP1 Πίνακας 5.2 Πριν από το περιβάλλον του προγραμματισμού στο περιβάλλον της STEP 7, δηλώνουμε τις διευθύνσεις για τις μονάδες Εισόδων / Εξόδων. Το στάδιο αυτό είναι σημαντικό όχι μόνο για την αποτελεσματική λειτουργία του PLC αλλά στην αποκατάσταση της επικοινωνίας ενός σταθμού SCADA με τις επιθυμητές μεταβλητές. Έτσι λοιπόν για τη συγκεκριμένη διάταξη του αναρριχητή ανατέθηκαν τα εξής: Για τη CPU η MPI διεύθυνση 2. Για τη μονάδα ψηφιακών εισόδων το εύρος διευθύνσεων I 0... 1, δηλαδή 0.0-0.7 και 1.0-1.7. Για τη μονάδα ψηφιακών εξόδων το εύρος διευθύνσεων Q 4...5, δηλαδή οι διεθύνσεις 4.0-4.7 και 5.0-5.7. Για τη μονάδα αναλογικών εισόδων το εύρος διευθύνσεων I 288...303. Για τη μονάδα αναλογικών εξόδων το εύρος διεθύνσεων I 304...319. Στα παρακάτω διαγράμματα φαίνονται οι ηλεκτρικές συνδεσμολογίες. 190

Κεφάλαιο 5 Σχήμα 5.10 Σχήμα 5.11 1 191

Κεφάλαιο 5 Σχήμα 5.12 Σχήμα 5.13 192

Κεφάλαιο 5 Η κίνηση του αναρριχητή γίνεται μέσα από 4 μοτίβα κίνησης. 1. Αναρρίχηση με λειτουργία μόνο των άνω άκρων. 2. Αναρρίχηση με λειτουργία μόνο των κάτω άκρων. 3. Αναρρίχηση με ταυτόχρονη λειτουργία των άνω και κάτω άκρων. 4. Αναρρίχηση με λειτουργία των άνω και κάτω άκρων και PID έλεγχος θέσης. Η επιθυμητή θέση αναρρίχησης που επιλέγει ο χρήστης επιλέγεται μεταξύ 600mm 2400 mm. Η πίεση με την οποία τροφοδοτούνται η μύες μπορεί να κυμένεται στα 1-5 bar. Στόχος είναι να αναπτύξουμε ένα σύστημα εποπτείας τύπου SCADA από το περιβάλλον Cimplicity, για την απεικόνιση σε έναν υπολογιστή χαρακτηριστικών μεγεθών και φυσικών μεταβλητών της διάταξης του αναρριχητή. Αυτά είναι: 1. Η κατάσταση (ON-OFF) των 4 φρένων της διάταξης. 2. Η επιθυμητή τελική θέση του αναρριχητή. 3. Η πραγματική (μετρούμενη) θέση του αναρριχητή. 4. Το σφάλμα επιθυμητής και πραγματικής τιμής. 5. Η σήμανση της λυχνίας. Το πρώτο στάδιο αφορά την επικοινωνία του PLC με τον υπολογιστή που θα τρέχει το σύστημα SCADA. Αφού το PLC είναι κατασκευής Siemens η πρώτη σκέψη αφορά την συνδεση με υπολογιστή μέσω δικτύου Profibus. Δεν είναι ωστόσο η σωστή επιλογή. Κάτι τέτοιο θα στοίχιζε σε κόστος λόγω αγοράς του ειδικού καλωδίου, της κάρτας δικτύου για το PLC, τον προγραμματισμό της κάρτας δικτύου, ενώ η επικοινωνία που θέλουμε δεν είναι για μεγάλης κλίμακας βιομηχανικό δίκτυο αλλά εκφυλίζεται σε απλή ανταλλαγή δεδομένων μεταξύ PLC - PC. Η σωστή επιλογή είναι η εγκατάσταση στον υπολογιστή ενός OPC Server για εξοπλισμό Siemens. Μία πλατφόρμα SCADA σχεδιασμένη στο περιβάλλον Cimplicity υποστηρίζει λειτουργία σαν OPC client. 193

Κεφάλαιο 5 Στον ίδιο υπολογιστή που θα τρέχει η εφαρμογή SCADA εγκαταστάθηκε το ΙΒΗ Softec GmbH σε δοκιμαστική έκδοση. Αυτός θα είναι και ο OPC Server μέσω του οποίου θα αποκατασταθεί η επικοινωνία με το PLC. Ανοίγουμε το IBH OPC Editor. Με δεξί κλικ στο OPC_Editor1 πατάμε Insert new PLC. Στη συνέχεια εισάγουμε τις παραμέτρους του PLC όπως δείχνουν οι παρακάτω εικόνες. 194

Κεφάλαιο 5 Αφού η CPU είναι στη θέση 2 επιλέγουμε slot number=2 195

Κεφάλαιο 5 Πατάμε Test PLC connection για να σιγουρευτούμε ότι αποκαταστάθηκε η επικοινωνία και προχωρούμε στο επόμενο στάδιο που είναι η δήλωση των μεταβλητών. Πρώτα για τα φρένα. Το ηλεκτρολογικό διάγραμμα στο σχήμα υποδεικνύει ότι η διευθύνσεις για τα 4 φρένα είναι DO 4.1-4.4. Στο PLC1 δεξί κλικ και στη συνέχεια Define new variables. Η παρακάτω εικόνα δείχνει πως γίνεται η δήλωση της μεταβλητής που αντιστοιχεί στην κατάσταση του πρώτου φρένου. Ομοίως για τη μεταβλητή που αντιστοιχεί στον αισθητήρα μήκους: 196

Κεφάλαιο 5 Και η μεταβλητή για την ενδεικτική λυχνία: Τελικώς η δήλωση των μεταβλητών στον Server είναι η παρακάτω: Πατάμε Transfer to OPC server και τώρα οι 6 μεταβλητές του PLC είναι προσπελάσιμες και από τον υπολογιστή. Στη συνέχεια ανοίγουμε ένα νέο project στο Cimplicity και φροντίζουμε να έχει επιλεγεί το πρωτόκολλο OPC Client όπως αναφέρθηκε παραπάνω. Μόλις πατήσουμε ΟΚ θα ανοίξει o Project Wizard για να αποκατασταθεί η επικοινωνία του Cimplicity με τις μεταβλητές που «βλέπει» ο OPC Server. 197

Κεφάλαιο 5 Βήμα 1 Βήμα 2 198

Κεφάλαιο 5 Βήμα 3 Βήμα 4 199

Κεφάλαιο 5 Πατάμε Exit και η επικοινωνία είναι έτοιμη. Στο επόμενο στάδιο πρέπει να οριστούν τα Device Points (και όχι Virtual). 200