Πίνακας περιεχομένων:

Arduino PLC 32 I/O+State Machine+SCADA ή HMI: 8 Βήματα
Arduino PLC 32 I/O+State Machine+SCADA ή HMI: 8 Βήματα

Βίντεο: Arduino PLC 32 I/O+State Machine+SCADA ή HMI: 8 Βήματα

Βίντεο: Arduino PLC 32 I/O+State Machine+SCADA ή HMI: 8 Βήματα
Βίντεο: OpenPLC Part 4 - How to Connect Arduino to an HMI (SCADABR) 2024, Νοέμβριος
Anonim
Arduino PLC 32 I/O+State Machine+SCADA ή HMI
Arduino PLC 32 I/O+State Machine+SCADA ή HMI

Πολλοί τρόποι προγραμματισμού, ελέγχου και εποπτείας ενός βιομηχανικού συστήματος με arduino.

Βήμα 1: Εισαγωγή

Εισαγωγή
Εισαγωγή

Σε αυτό το διδακτικό θα ασχοληθώ με:

2 μέθοδοι για τον προγραμματισμό ενός arduino που συνδέεται με ένα είδος μηχανής, συμπεριλαμβανομένων των κουμπιών, διακόπτες και LED

1- Η πρώτη μέθοδος με το arduino 1.6.x IDE χρησιμοποιώντας βιβλιοθήκη SM (State Machine)

2-Η δεύτερη μέθοδος χρησιμοποιώντας το Yakindu, ένα πρόγραμμα επεξεργασίας digram που δημιουργήθηκε με περιβάλλον έκλειψης: σχεδιάζετε τη μηχανή κατάστασής σας και παράγει τον κώδικα για μεταφορά στον πίνακα Arduino.

Σε συνεργασία με

2 τρόποι επίβλεψης του μηχανήματος με λειτουργία SCADA ή εικονικού HMI:

1- στο Android 4.4: Unigo Evolution, μια δωρεάν εφαρμογή χωρίς στοιχεία μόνο κώδικα για τοποθέτηση σε οθόνη και modbus TCP

2-κάτω από τα Windows 8: ένα δωρεάν έργο AdvancedHMI που χρειάζεται Visual Studio 2013, χωρίς κώδικα και στοιχεία για τοποθέτηση σε οθόνη και modbus TCP

Έτσι σχεδιάζετε τις λειτουργικές σας ακολουθίες με ένα SFC (στον αυτοματισμό: Διαδοχικό διάγραμμα συναρτήσεων), το μεταφράζετε σε ένα διάγραμμα κατάστασης (πολύ πιο κοντά), το προγραμματίζετε (Yakindu ή Arduino SM lib) και στη συνέχεια το εποπτεύετε με ένα SCADA (Unigo android ή AdvancedHMI Windows).

Βήμα 2: Περιγραφή του πραγματικού πίνακα:

Περιγραφή του πραγματικού πίνακα
Περιγραφή του πραγματικού πίνακα
Περιγραφή του πραγματικού πίνακα
Περιγραφή του πραγματικού πίνακα

Το σχηματικό:

Χρησιμοποίησα έναν πίνακα Arduino UNO, όχι έναν κλώνο επειδή ο Yakindu δεν μπορεί να στείλει κανένα πρόγραμμα σε οποιονδήποτε κλώνο μόνο στον πίνακα UNO και Mega.

Θα μπορούσα να έχω 32 ψηφιακά I/O με 2 επεκτάσεις SPI όπως το MCP23S17 (2x16 I/O) και 2 ακόμη αναλογικές έξοδοι 12 bits (πραγματικό αναλογικό όχι φιλτραρισμένο PWM) με 2 SPI DAC όπως το MCP4921.

Δεν σχεδίασα την ασπίδα ethernet αλλά την χρειάζεστε για να επιβλέπετε το σύστημά σας: έτσι οι ακίδες 4, 10, 11, 12 και 13 δεν πρέπει να χρησιμοποιούνται για οτιδήποτε άλλο και προφανώς οι ακίδες 0 και 1 μόνο για RX TX.

Οι πραγματικές φωτογραφίες του πίνακα:

Απαιτούνται 8 κουμπιά:

  • 4 για τη χειροκίνητη λειτουργία: μία για το φως σε κάθε led
  • 1 για διακοπή έκτακτης ανάγκης: εάν πιεστείτε, είστε σε κανονική λειτουργία, απελευθερώστε: έκτακτης ανάγκης
  • 1 για αυτόματη λειτουργία που ενεργοποιεί και απενεργοποιεί τη διαδοχική λυχνία κάθε led, εάν απελευθερώνεται: χειροκίνητη λειτουργία, για τον έλεγχο κάθε led χωρίς ακολουθία
  • 1 για RUN σε αυτόματη λειτουργία
  • 1 για STOP στην αυτόματη λειτουργία

4 οδήγησε για προσομοίωση ό, τι θέλετε (ρελέ, βαλβίδα…)

Δίνω το όνομα κάθε κουμπιού και led που χρησιμοποίησα στα προγράμματα.

Βήμα 3: Ποια ακολουθία προγραμματισμού; SFC και κρατικό διάγραμμα

Τι ακολουθία στο πρόγραμμα; SFC και κρατικό διάγραμμα
Τι ακολουθία στο πρόγραμμα; SFC και κρατικό διάγραμμα
Τι ακολουθία στο πρόγραμμα; SFC και κρατικό διάγραμμα
Τι ακολουθία στο πρόγραμμα; SFC και κρατικό διάγραμμα

Έφτιαξα ένα πολύ απλό SFC για να περιγράψω τι υποτίθεται ότι πρέπει να κάνει το σύστημα.

Απαιτούνται 3 SFC:

  • SFCsecu για να ενεργοποιήσετε ή να απενεργοποιήσετε τη λειτουργία έκτακτης ανάγκης, είναι το κύριο SFC που εκκινεί τα άλλα
  • Αυτόματο εγχειρίδιο SFC που κυκλοφόρησε από το SFCsecu, μπορείτε να φτάσετε στην αυτόματη λειτουργία ή στη χειροκίνητη λειτουργία
  • Διακοπή λειτουργίας SFC, σάρωση και απομνημόνευση εάν κάποιος έσπρωξε το DCY (RUN) ή το FCY (STOP)

Αυτά τα SFC εκτελούνται σε ψευδο-πολυεπίπεδα.

Στη συνέχεια, τα μεταφράζω σε ένα διάγραμμα κατάστασης:

  • μια κύρια μηχανή (Έκτακτη ανάγκη) που εκτοξεύει 2 άλλους σκλάβους
  • ένας σκλάβος για τη σάρωση και την απομνημόνευση DCY και FCY
  • ένας σκλάβος για να φτάσει στην αυτόματη ή τη χειροκίνητη λειτουργία

Ένα άλλο πράγμα: όταν πιέζετε το DCY μπορείτε να πιλοτάρετε την αναλογική έξοδο με ένα εικονικό τρίμερ σε ένα scada, όταν πιέζετε FCY οι αναλογικές έξοδοι πέφτουν στα 0V.

Το διάγραμμα κατάστασης σάς βοηθά να προγραμματίσετε το arduino.

Βήμα 4: Προγραμματισμός με Arduino IDE 1.6. X

Προγραμματισμός με Arduino IDE 1.6. X
Προγραμματισμός με Arduino IDE 1.6. X
Προγραμματισμός με Arduino IDE 1.6. X
Προγραμματισμός με Arduino IDE 1.6. X

Σας δίνω τον κωδικό για να μεταφράσετε τα προηγούμενα διαγράμματα. Χρειαζόμουν 3 επιπλέον λίβρες, σας δίνω επίσης.

Θα χρειαστείτε επίσης τον πίνακα διευθύνσεων για να καταλάβετε ποιες καρφίτσες χρησιμοποιείτε για τι και το modbus καταχωρίζει αντίστοιχες διευθύνσεις.

Βήμα 5: Προγραμματισμός με το YAKINDU

Προγραμματισμός με το YAKINDU
Προγραμματισμός με το YAKINDU
Προγραμματισμός με το YAKINDU
Προγραμματισμός με το YAKINDU
Προγραμματισμός με το YAKINDU
Προγραμματισμός με το YAKINDU

Κατεβάστε πρώτα την δωρεάν έκδοση του έργου 2.9 (όχι pro) σε:

www.itemis.com/en/yakindu/state-machine/

Στη συνέχεια, ακολουθήστε το παρεχόμενο σεμινάριο: υπάρχουν ορισμένες τροποποιήσεις σε σχέση με την τελευταία φορά που κατέβασα το πρόγραμμα, μόνο για να ολοκληρωθούν τα ονόματα διαφορετικών τμημάτων του αρχείου "xxxconnector.cpp".

Οι φωτογραφίες: το σχέδιο του μηχανήματος κατάστασης, η προβολή του φακέλου στο έργο και οι εισαγόμενες βιβλιοθήκες του από το arduino, η προβολή του "xxxconnector.cpp" για σύνδεση μεταξύ των μεταβάσεων/καταστάσεων και των πραγματικών εισόδων/εξόδων του του συμβουλίου ή των SCADA.

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

Παρέχονται επίσης: τα απαραίτητα λίβρα για εισαγωγή στο Yakindu και μερικές αλλαγές που πρέπει να κάνετε που περιγράφονται στο σεμινάριο.

Βήμα 6: Εποπτεύστε το με AdvancedHMI

Εποπτεύστε το με AdvancedHMI
Εποπτεύστε το με AdvancedHMI

Πρώτη λήψη του Visual studio Express 2013 ή περισσότερο στο:

www.microsoft.com/fr-fr/download/details.a…

Στη συνέχεια, κατεβάστε το έργο AdvancedHMI στο:

sourceforge.net/projects/advancedhmi/?SetF…

Σας δίνω τις φωτογραφίες του SCADA που σχεδίασα (με τις αντίστοιχες διευθύνσεις καταχωρήσεων modbus) και προγραμματίστηκαν χωρίς κώδικα, το έργο τροποποιήθηκε και ένα σύντομο σεμινάριο.

Βήμα 7: Εποπτεύστε το με το Unigo Evolution

Εποπτεύστε το με το Unigo Evolution
Εποπτεύστε το με το Unigo Evolution

Χρειάζεστε ένα android devide με android 4.4 (kit kat) και οθόνη 7 ιντσών.

Σας δίνω τις φωτογραφίες του SCADA που σχεδίασα (και τις αντίστοιχες διευθύνσεις καταχωρεί το modbus) και ένα σύντομο σεμινάριο για τη χρήση του Unigo, δεν απαιτείται κώδικας, ένας φάκελος ο οποίος περιέχει εικόνες βιομηχανικών φωτιστικών και κουμπιών για τοποθέτηση στο φάκελο UniGOPictures που δημιουργήθηκε στο εσωτερικό σας SD από την εφαρμογή και το έργο.

Βήμα 8: Συμπέρασμα

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

Χάρη σε πολλά μαθήματα σε όλο τον κόσμο, στον Archie (AdvancedHMI), στον RenéB2 (Yakindu) και στον Mikael Andersson (Unigo Evolution) και στους προγραμματιστές βιβλιοθηκών arduino που μου επιτρέπουν να κάνω ένα τέτοιο έργο "τεχνολογικής καταιγίδας".

Sans eux j'aurais peut être souffert d'un sentiment d'incomplétude infinie pour l'éternité. J'exagère un peu.

Ευχάριστες οδηγίες.