Αυτή είναι η μετάφραση του κειμένου στα ελληνικά:
Σημείωση από τον Εκδότη
Όλα τα άρθρα αυτής της σειράς, γραμμένα από τον ίδιο συγγραφέα, ήταν αρχικά μέρος πολλών παρουσιάσεων που έγιναν σε μια τοπική λέσχη ενυδρειόφιλων σχετικά με τον προγραμματισμό του Neptune Apex Controller. Το άρθρο αναδημοσιεύεται με την άδεια του συγγραφέα.
Επειδή αυτό το θέμα θα ενδιαφέρει πολύ κάποιους αναγνώστες, αλλά καθόλου όσους δεν έχουν αυτοματοποιήσει τα συστήματά τους, το R2R θα δημοσιεύει αυτά τα άρθρα προγραμματισμού κάθε Παρασκευή μέχρι να ολοκληρωθεί η σειρά.
Περιεχόμενα
- Μέρος 1: Εισαγωγή
- Μέρος 2: Χρονοδιακόπτες
- Μέρος 3: Αυτόματο Σύστημα Αναπλήρωσης (ATK)
- Μέρος 4: Παρακολούθηση Κατανάλωσης Ρεύματος
- Μέρος 5: Εικονικές Έξοδοι
- Μέρος 6: Συναγερμοί
- Μέρος 7: Κύκλοι Σίτισης
- Μέρος 8 (και Συμπέρασμα): Σεληνιακό Πρόγραμμα και Προφίλ Φωτισμού
Οι φωτογραφίες, εικόνες και διαγράμματα που περιλαμβάνονται σε αυτό το άρθρο είναι ευγενική προσφορά του συγγραφέα, @SuncrestReef, ©2019. Όλα τα δικαιώματα διατηρούνται.
Πρόλογος
Έμαθα για το Neptune Apex τον Ιανουάριο του 2018, όταν ερευνούσα πώς να στήσω ένα ενυδρείο. Ήμουν εντελώς αρχάριος στη διατήρηση υφάλων και στα ενυδρεία γενικότερα. Ωστόσο, με την 30+ ετών καριέρα μου στα συστήματα πληροφορικής και την αγάπη μου για κάθε τι που αφορά την αυτοματοποίηση, συνειδητοποίησα ότι μπορούσα να αξιοποιήσω το τεχνικό μου υπόβαθρο και το Apex για να αυτοματοποιήσω τις περισσότερες λειτουργίες του ενυδρείου μου.
Όταν έλαβα το Apex, ανακάλυψα γρήγορα ότι ήταν λίγο διαφορετικό από άλλες συσκευές αυτοματισμού που είχα χρησιμοποιήσει. Η τεκμηρίωση της Neptune στο διαδίκτυο ήταν διάσπαρτη και ασύνδετη, και η γλώσσα προγραμματισμού του Apex ήταν διαφορετική από όλα τα γνωστά πρότυπα. Προχωρώντας στα τυφλά, έμαθα τα βασικά της εγκατάστασης και βελτίωσα τις γνώσεις μου στον προγραμματισμό μέσω δοκιμών και λαθών, ενώ το ενυδρείο μου βρισκόταν ακόμα στη φάση του στρωσίματος.
Όταν ανακάλυψα το Neptune Community Forum, βρήκα πολλά παραδείγματα προγραμματισμού που με βοήθησαν να πετύχω αυτό που ήθελα να κατασκευάσω. Με τον καιρό απέκτησα μεγαλύτερη άνεση και εξοικείωση με τον προγραμματισμό του Apex, και πλέον συνεισφέρω συχνά στο Neptune Community Forum και στην ομάδα Facebook του Apex Community προσπαθώντας να απαντήσω σε ερωτήσεις νέων χρηστών.
Από τις παρατηρήσεις μου στα φόρουμ, τα πιο συνηθισμένα προβλήματα αφορούν το ATK (Automatic Top-Off Kit), τους χρονοδιακόπτες, τις λειτουργίες σίτισης (Feed Mode) και τους συναγερμούς (Alerts).
Γι’ αυτό, αποφάσισα να γράψω μια σειρά μαθημάτων που ελπίζω να καλύψουν τα κενά που αφήνει η επίσημη τεκμηρίωση της Neptune. Όλες οι πληροφορίες που θα παρέχω είναι ήδη δημόσια διαθέσιμες, αλλά ελπίζω ότι ο τρόπος με τον οποίο θα τις παρουσιάσω θα τις κάνει πιο κατανοητές και συγκεντρωμένες σε ένα μέρος.
Θα ήθελα να ευχαριστήσω τον Zombie και τον RussM, δύο από τους πιο ενεργούς συνεισφέροντες στα Neptune Community Forums. Τα περισσότερα πράγματα που έχω μάθει προέρχονται από τις απαντήσεις τους, είτε σε άλλους είτε σε εμένα προσωπικά.
Χρήσιμοι Πόροι για τον Προγραμματισμό του Apex:
- Neptune Community Forums: https://forum.neptunesystems.com/forum.php
- Επίσημη Ομάδα Facebook της Neptune Apex: https://www.facebook.com/groups/neptunesystemscommunity/
- Apex Comprehensive Reference Manual: https://www.neptunesystems.com/downloads/docs/Comprehensive_Reference_Manual.pdf
Πιστεύω ότι το Apex έχει συμβάλει σημαντικά στην επιτυχία του υφάλου μου. Για περισσότερες λεπτομέρειες σχετικά με το ενυδρείο μου, μπορείτε να δείτε το νηματικό μου θέμα στο Reefer XL 425.
Εισαγωγή
Πριν περάσουμε στα συγκεκριμένα μαθήματα, ας εξηγήσουμε τα βασικά του προγραμματισμού Apex.
Ένα σύστημα Apex αποτελείται από:
- Modules (Μονάδες): Η κεντρική μονάδα Apex, οι ενεργειακές μπάρες (Energy Bars) και διάφορες πρόσθετες μονάδες.
- Inputs (Είσοδοι): Αισθητήρες θερμοκρασίας, pH, αλατότητας, αισθητήρες στάθμης νερού, ανιχνευτές διαρροών, μετρητές ροής, αισθητήρες PAR κ.λπ.
- Outputs (Έξοδοι): Πρίζες 120V/240V, αντλίες, φώτα, αυτόματες ταΐστρες, εικονικές έξοδοι κ.ά.
- Profiles (Προφίλ): Ρυθμίσεις αντλιών, φωτισμού, δοσομέτρων, προφίλ καιρικών συνθηκών κ.λπ.
Όλος ο προγραμματισμός εφαρμόζεται αποκλειστικά στις εξόδους και βασίζεται είτε σε εισόδους, είτε στην κατάσταση άλλων εξόδων, είτε σε προφίλ.
Το Apex εκτελεί τον προγραμματισμό κάθε δευτερόλεπτο, ώστε όταν αλλάξει μια συνθήκη, η έξοδος να αντιδρά μέσα σε 2 δευτερόλεπτα.
Παράδειγμα Προγραμματισμού
Αν θέλουμε να ρυθμίσουμε έναν θερμαντήρα ώστε να ενεργοποιείται και να απενεργοποιείται με βάση τη θερμοκρασία, ο κώδικας θα ήταν:
If Tmp < 25.0 Then ON
If Tmp > 25.5 Then OFF
Αν η θερμοκρασία του νερού είναι 24.9°C, τότε:
- Η πρώτη γραμμή ισχύει → Ο θερμαντήρας ενεργοποιείται.
- Η δεύτερη γραμμή δεν ισχύει.
Όμως, αν υπάρχει μια επιπλέον συνθήκη, όπως συντήρηση:
If Tmp < 25.0 Then ON
If Tmp > 25.5 Then OFF
If Output Maintenance = ON Then OFF
Αν το Maintenance Output είναι ενεργό, τότε ο θερμαντήρας θα παραμείνει κλειστός, ακόμα κι αν η θερμοκρασία είναι χαμηλή.
Η σειρά άρθρων που ακολουθεί θα καλύψει πιο εξειδικευμένα θέματα προγραμματισμού, όπως:
- Χρονοδιακόπτες (Timers)
- ATK & Αντιμετώπιση Προβλημάτων
- Παρακολούθηση Ισχύος
- Εικονικές Έξοδοι
- Συναγερμοί
- Λειτουργίες Σίτισης
- Σεληνιακό Πρόγραμμα & Φωτισμός
Μείνετε συντονισμένοι!

9 thoughts on “Neptune Apex: Μαθήματα Προγραμματισμού, Μέρος 1: Εισαγωγή”