Ενσωμάτωση BACnet/IP
Το BACnet/IP (ASHRAE 135) είναι το κατεξοχήν πρωτόκολλο για εμπορικές εφαρμογές HVAC: κεντρικές μονάδες διαχείρισης αέρα (ΚΚΜ), κιβώτια VAV, ψύκτες, ελεγκτές αντλιών θερμότητας, μετρητές ενέργειας και συστήματα διαχείρισης κτιρίων (BMS). Το HyperVisu διαβάζει και εγγράφει τα αντικείμενα (objects) των συσκευών BACnet — αναλογική είσοδος για θερμοκρασία, αναλογική τιμή για setpoint, δυαδική τιμή για ενεργοποίηση, τιμή πολλαπλών καταστάσεων (multi-state) για βαθμίδα ανεμιστήρα — μέσω UDP στο τοπικό δίκτυο. Οι τιμές λαμβάνονται μέσω εγγραφής αλλαγής τιμής (COV subscription) όπου υποστηρίζεται από τη συσκευή, και μέσω polling σε κάθε άλλη περίπτωση. Η επιλογή γίνεται αυτόματα για κάθε αντικείμενο.
Τι χρειάζεστε: ενεργοποιημένη την υπηρεσία BACnet/IP (βλ. «Υπηρεσίες & Πρωτόκολλα»), τη διεύθυνση IP της συσκευής (ή τη διεύθυνση του BACnet router που βρίσκεται μπροστά της), τη θύρα UDP (τυπική 47808), προαιρετικά το device instance της, καθώς και τα επιθυμητά αντικείμενα (τύπο και instance) — εναλλακτικά, μπορείτε να τα εντοπίσετε μέσω της αναζήτησης και του επιλογέα αντικειμένων.
Συνδέσεις. Το BACnet/IP υποστηρίζει πολλαπλές συνδέσεις: μία σύνδεση ανά συσκευή BACnet (βλ. «Συνδέσεις»). Ο διακομιστής ανοίγει ένα κοινό socket UDP για όλες. Πεδία:
| Πεδίο | Περιγραφή |
|---|---|
| Device address | Διεύθυνση IP της συσκευής BACnet ή του router μπροστά από αυτήν. |
| Port | Η θύρα UDP στην οποία ακούει η συσκευή (τυπική 47808). |
| Device instance | Το instance του device object στο BACnet (0–4194302). Αφήστε το κενό για παράκαμψη του ελέγχου. Εάν οριστεί, τυχόν απάντηση συσκευής με διαφορετικό instance αναφέρεται ως σφάλμα. |
| COV subscription lifetime | Η διάρκεια ισχύος μιας εγγραφής αλλαγής τιμής πριν ανανεωθεί. Αφήστε το κενό για την προεπιλογή της υπηρεσίας (600 s). |
| Poll Interval (seconds) | Συχνότητα επανανάγνωσης των σημείων χωρίς εγγραφή COV (προεπιλογή 30 s). Το COV αποτελεί τη γρήγορη διαδρομή, επομένως το αργό polling είναι φυσιολογικό εδώ. |
Δημιουργία σύνδεσης. Στην Προσθήκη σύνδεσης, επιλέξτε την κάρτα BACnet και καταχωρίστε ένα Όνομα instance και τη Διεύθυνση συσκευής. Η Θύρα και το Device instance είναι προαιρετικά (κενή θύρα σημαίνει την προεπιλεγμένη 47808). Το παράθυρο διαλόγου δεν περιλαμβάνει σάρωση δικτύου και δεν δημιουργεί σύνδεση χωρίς διεύθυνση: εάν δεν γνωρίζετε ακόμη τη διεύθυνση, εισαγάγετε μια προσωρινή και διορθώστε την εκ των υστέρων μέσω σάρωσης. Κάντε κλικ στο Δημιουργία σύνδεσης. Η νέα σύνδεση ανοίγει στις ρυθμίσεις της.
Σάρωση δικτύου. Η σάρωση είναι διαθέσιμη μόνο σε αποθηκευμένη σύνδεση. Δίπλα στο πεδίο Σύνδεση σε, κάντε κλικ στο Σάρωση δικτύου. Το παράθυρο διαλόγου Συσκευές BACnet στο δίκτυο εκπέμπει ένα μήνυμα Who-Is (broadcast) και παραθέτει κάθε συσκευή που απάντησε — Device 192.168.1.255) όταν τα broadcasts φιλτράρονται μεταξύ VLAN, ή απευθείας μία συσκευή (192.168.1.70:47808) — ο μόνος τρόπος προσέγγισης συσκευής σε μη τυπική θύρα. Το Επανάληψη σάρωσης εκτελεί ξανά τη διαδικασία. Το τελευταίο αποτέλεσμα διατηρείται όσο το παράθυρο είναι κλειστό.
📘 Σημείωση: Η ένδειξη Already configured επισημαίνει μια συσκευή στην οποία αντιστοιχεί ήδη κάποια σύνδεση, βάσει διεύθυνσης και θύρας ή βάσει device instance. Η σύνδεση που επεξεργάζεστε προσμετράται κανονικά, επομένως ο δικός σας ελεγκτής μπορεί να φέρει αυτή τη σήμανση.
Η επιλογή Δοκιμή στέλνει ένα κατευθυνόμενο Who-Is στη συσκευή και ελέγχει την απάντηση — συμπεριλαμβανομένου του device instance, εφόσον έχει οριστεί. Το αποτέλεσμα αναφέρει το device instance που αποκρίθηκε. Εάν απαντήσει λάθος συσκευή, η δοκιμή αποτυγχάνει αναφέροντας και τα δύο instances. Στο παράθυρο Προσθήκη σύνδεσης, η Δοκιμή ελέγχει τις τιμές που πληκτρολογήσατε. Σε μια ήδη αποθηκευμένη σύνδεση, ελέγχει τις αποθηκευμένες τιμές και όχι τα πεδία που δεν έχετε αποθηκεύσει ακόμα: κάντε πρώτα κλικ στο Αποθήκευση σύνδεσης και μετά στο Δοκιμή.

Σύνδεση αντικειμένου (binding) (βλ. «Σύνδεση αντικειμένων BACnet/IP» παρακάτω). Για κάθε αντικείμενο επιλέγετε τον Τύπο αντικειμένου και τον Αριθμό instance. Η διαχείριση αποθηκεύει τη διεύθυνση ως <connection>:<type>:<instance>, π.χ. 5:AV:12 (Analog Value 12 στη σύνδεση 5). Τύποι αντικειμένων:
| Τύπος | Αντικείμενο BACnet | Τιμή | Σημειώσεις |
|---|---|---|---|
AI / AO / AV | Analog input / output / value | Αριθμός | Το AO δέχεται εντολές (commandable). |
BI / BO / BV | Binary input / output / value | 0/1 | Το BO δέχεται εντολές (commandable). |
MSI / MSO / MSV | Multi-state input / output / value | Ακέραιος, με αρχή το 1 | Το MSO δέχεται εντολές (commandable). |
Η συμβολοσειρά τύπου δεδομένων του αντικειμένου περιλαμβάνει τις παραμέτρους που προσφέρει ο επεξεργαστής: [TYPE][:PROP=<id>][:PRIORITY=<1-16>][:COV=AUTO | Y | N][:SCALE=<f>][:OFFSET=<f>]:
| Πεδίο | Αποθήκευση ως | Επεξήγηση |
|---|---|---|
| Value type | REAL / BOOL / UINT / INT / ENUM | Ο τύπος δεδομένων BACnet που χρησιμοποιείται κατά την εγγραφή. Αφήστε το στο Automatic — προκύπτει αυτόματα από τον τύπο του αντικειμένου — εκτός εάν απευθύνεστε σε μη τυπική ιδιότητα. |
| Property identifier | PROP= | Το 85 αντιστοιχεί στο present-value, το οποίο απαιτείται σχεδόν σε κάθε σύνδεση. Αλλάξτε το μόνο για ειδικές ιδιότητες κατασκευαστή (vendor properties). |
| Scale / Offset | SCALE= / OFFSET= | Ανάγνωση: τιμή = raw × scale + offset. Η εγγραφή χρησιμοποιεί την αντίστροφη πράξη. Εκτελείται εντός του πρωτοκόλλου, πριν από οποιονδήποτε μετασχηματισμό στο αντικείμενο (βλ. «Μετασχηματισμοί τιμών & Health») — μην εφαρμόζετε κλιμάκωση και στα δύο σημεία. |
| Change-of-value subscription | COV= | Automatic — εγγραφή, εναλλακτική σε polling (προεπιλογή). Required — προειδοποίηση εάν η συσκευή απορρίψει την εγγραφή. Never — αποκλειστικά polling. Μια εγγραφή αναφέρει μόνο την ιδιότητα 85 (present-value). Σε οποιαδήποτε άλλη ιδιότητα, το σημείο διαβάζεται μέσω polling. Εμφανίζεται στην ενότητα Λήψη ενημερώσεων, σε αντικείμενα ανάγνωσης. |
| Write priority | PRIORITY= | Προτεραιότητα εντολής BACnet 1–16 για εγγράψιμα αντικείμενα. Αφήστε το κενό για να μην σταλεί καμία, την οποία η συσκευή εκλαμβάνει ως 16. Εμφανίζεται στην ενότητα Αποστολή εντολών, σε αντικείμενα εγγραφής. |
📘 Σημείωση: Οι τιμές multi-state στο BACnet ξεκινούν από το 1, ενώ οι καταστάσεις στο HyperVisu από το 0. Ορίστε το offset σε
-1σε συνδέσεις multi-state εκτός εάν η συσκευή βασίζεται πραγματικά στο 0 — ο επεξεργαστής εμφανίζει σχετική υπενθύμιση. Οι αρχικοί αριθμοί με βάση το 1 διατηρούνται σκόπιμα, ώστε η προβολή να ταυτίζεται με ό,τι εμφανίζει το YABE ή το σύστημα BMS.
Επιλογέας αντικειμένων. Όταν η σύνδεση είναι ενεργή, ο επεξεργαστής παραθέτει τα Αντικείμενα σε αυτή τη συσκευή — την ίδια τη λίστα αντικειμένων της συσκευής με όνομα, τύπο, instance, τρέχουσα τιμή και μονάδα μέτρησης (π.χ. AI:0 · SupplyAirTemp · 21.5 °C). Χρησιμοποιήστε την Εύρεση αντικειμένου για αναζήτηση βάσει ονόματος, περιγραφής ή AV:12, κάντε κλικ σε μια γραμμή για αυτόματη συμπλήρωση τύπου και instance (καθώς και των Μονάδων, όταν το πεδίο είναι κενό και ο ελεγκτής παρέχει μονάδα), και Επανανάγνωση για ανανέωση. Η λίστα αντικειμένων διατηρείται στη μνήμη για ένα λεπτό. Η Επανανάγνωση επιβάλλει νέα ανάγνωση. Ο τύπος και το instance παραμένουν επεξεργάσιμα: εάν η λίστα εμφανίζει Λίστα αντικειμένων μη διαθέσιμη ή η συσκευή αρνείται την απαρίθμηση, το σημείο μπορεί να συνδεθεί χειροκίνητα.

Σημαντικές λεπτομέρειες λειτουργίας
- Προτεραιότητα στο COV, το polling ως δικλίδα ασφαλείας. Τα σημεία με ενεργή εγγραφή αναφέρονται από τη συσκευή κατά την αλλαγή τους και εξαιρούνται από τον κύκλο polling. Η εγγραφή ανανεώνεται πριν από τη λήξη της. Εάν μια συσκευή απορρίψει την εγγραφή, διαβάζεται μέσω polling. Ένα αργό polling επαλήθευσης (κάθε 10 διαστήματα polling) διαβάζει τα σημεία COV, αποκαθιστώντας εγγραφές που χάθηκαν σιωπηλά μετά από επανεκκίνηση της συσκευής.
- Ομαδοποιημένο polling (batched): Εκτελείται ομαδοποίηση πολλών ιδιοτήτων ανά αίτημα, με αυτόματη μετάπτωση σε μία ανάγνωση ανά ιδιότητα για συσκευές που δεν υποστηρίζουν batching.
- Ανάδραση εγγραφής (Write feedback). Μετά από μια εγγραφή, ένα σημείο χωρίς ενεργή εγγραφή COV εμφανίζει άμεσα την εγγραφείσα τιμή αντί να επανέλθει στην προηγούμενη μέχρι το επόμενο poll. Με ενεργό COV, επιβεβαιώνεται μέσω της ειδοποίησης της ίδιας της συσκευής.
- Κατάσταση (Status). Το πρωτόκολλο UDP είναι connectionless, επομένως η ένδειξη up σημαίνει «αποκρίθηκε πρόσφατα» (εντός διπλάσιου διαστήματος polling, τουλάχιστον 90 s) και η ένδειξη down σημαίνει απουσία απόκρισης. Εάν μια συσκευή σταματήσει να αποκρίνεται, γίνονται νέες δοκιμές (κάθε 30 s μετά από πέντε αποτυχημένα polls) και επανέρχεται αυτόματα σε κατάσταση up.
- Πίνακες προτεραιοτήτων (Priority arrays). Ένα commandable αντικείμενο διαθέτει 16 θέσεις προτεραιότητας. Εάν ένα σύστημα BMS γράφει σε χαμηλότερο αριθμό προτεραιότητας (υψηλότερη ιεραρχικά), υπερισχύει του HyperVisu και η συσκευή φαίνεται να αγνοεί το widget — ο επεξεργαστής προειδοποιεί σχετικά στους commandable τύπους. Το πεδίο Write priority επιτρέπει την παράκαμψη αυτού του περιορισμού.
Τυπικές αντιστοιχίσεις: διακόπτης σε BV/BO, dimmer ή θέση ρολού σε AV/AO (0–100), θερμοκρασία κλιματισμού σε AI (Είσοδος), setpoint σε AV (Είσοδος/Έξοδος) και κατάσταση λειτουργίας σε MSV με offset -1, μετρητής σε AI με κλιμάκωση αντίστοιχη της μονάδας της συσκευής, βαθμίδα ανεμιστήρα σε MSV/MSO με offset -1.
Παράδειγμα εφαρμογής — ελεγκτής κεντρικής μονάδας διαχείρισης αέρα (ΚΚΜ)
Ο ελεγκτής είναι η συσκευή BACnet 1234 στη διεύθυνση 192.168.1.70:47808, με θερμοκρασία προσαγωγής αέρα AI:0, setpoint AV:1, εντολή ενεργοποίησης BV:2 και ταχύτητα ανεμιστήρα MSV:3 (1–4).
- Ενεργοποιήστε το BACnet/IP στις Υπηρεσίες (βλ. «Υπηρεσίες & Πρωτόκολλα»).
- Δημιουργήστε μια σύνδεση BACnet (βλ. «Συνδέσεις»): στην Προσθήκη σύνδεσης, καταχωρίστε τη Διεύθυνση συσκευής
192.168.1.70και κάντε κλικ στο Δημιουργία σύνδεσης. Στην αποθηκευμένη σύνδεση, κάντε κλικ στο Σάρωση δικτύου, επιλέξτε το Device 1234 και κάντε κλικ στο Χρήση αυτής της συσκευής. Αφήστε το διάστημα polling στο30. Κάντε κλικ στο Αποθήκευση σύνδεσης και μετά στο Δοκιμή: το αποτέλεσμα αναφέρει το device instance 1234. - Στις Συσκευές, προσθέστε μια Αναλογική είσοδο «Προσαγωγή αέρα ΚΚΜ» και επιλέξτε τη σύνδεση BACnet στο πεδίο Πρωτόκολλο — στο αντικείμενο τιμής επιλέξτε
AI:0από τον επιλογέα αντικειμένων. - Προσθέστε μια Αναλογική έξοδο «Setpoint ΚΚΜ»: αντικείμενο
AV:1, κατεύθυνση In/Out, τύπος τιμής Automatic. - Προσθέστε έναν Διακόπτη «Ενεργοποίηση ΚΚΜ»: αντικείμενο
BV:2. - Προσθέστε μια συσκευή Αναλογικής εξόδου με όνομα «ΚΚΜ-2 Ταχύτητα ανεμιστήρα» για τη βαθμίδα του ανεμιστήρα: συνδέστε το αντικείμενο τιμής στο
MSV:3με offset-1(οι καταστάσεις BACnet 1–4 μετατρέπονται σε 0–3). Ένα αντικείμενο multi-state απαιτεί αριθμητικό widget — το widget Εξαερισμού οδηγεί τις ταχύτητες μέσω ξεχωριστών αντικειμένων on/off, επομένως δεν μπορεί να δεχτεί τιμή multi-state. - Κάντε κλικ στο Αποθήκευση αντικειμένου σε κάθε αντικείμενο, έπειτα στο Εφαρμογή αλλαγών στην πλευρική γραμμή και επιβεβαιώστε. Η θερμοκρασία προσαγωγής λαμβάνεται μέσω COV καθώς μεταβάλλεται. Τα υπόλοιπα ακολουθούν το polling ή τη δική τους εγγραφή COV.
Σύνδεση αντικειμένων BACnet/IP
Τα αντικείμενα BACnet παραμετροποιούνται στο παράθυρο ρυθμίσεων αντικειμένου (βλ. «Ρυθμίσεις αντικειμένων, Καταγραφή & Ειδοποιήσεις»). Οι διαθέσιμες καρτέλες είναι:
Αντικείμενο BACnet
| Πεδίο | Περιγραφή |
|---|---|
| Objects on this device | Η λίστα αντικειμένων της συσκευής — AI:0 · όνομα · present value μονάδα — με επιλογές Εύρεση αντικειμένου (όνομα, περιγραφή ή AV:12) και Επανανάγνωση. Κάντε κλικ σε μια γραμμή για να συμπληρωθούν τα παρακάτω δύο πεδία. Εμφανίζεται όταν η σύνδεση είναι ενεργή και η υπηρεσία BACnet/IP εκτελείται. Διαφορετικά, εισαγάγετε τον τύπο και το instance χειροκίνητα. |
| Object type | Analog input / output / value (AI/AO/AV), Binary input / output / value (BI/BO/BV), Multi-state input / output / value (MSI/MSO/MSV). |
| Instance number | Το instance του αντικειμένου στη συσκευή (0–4194302). Η αποθηκευμένη διεύθυνση είναι <connection>:<type>:<instance>, π.χ. 5:AV:12. |
Τιμή και κλιμάκωση
| Πεδίο | Περιγραφή |
|---|---|
| Value type | Automatic (εξάγεται αυτόματα από τον τύπο αντικειμένου — REAL για analog, ENUM για binary, UINT για multi-state) ή ρητή επιλογή REAL / BOOL / UINT / INT / ENUM, για χρήση κατά την εγγραφή. |
| Property identifier | Το 85 αντιστοιχεί στο present-value και απαιτείται σχεδόν σε κάθε περίπτωση. Αλλάξτε το μόνο για vendor properties. |
| Scale / Offset | τιμή = raw × scale + offset στην ανάγνωση, το αντίστροφο στην εγγραφή. Εκτελείται εντός του πρωτοκόλλου, πριν από οποιονδήποτε μετασχηματισμό στο αντικείμενο (βλ. «Μετασχηματισμοί τιμών & Health») — μην εφαρμόζετε κλιμάκωση και στα δύο σημεία. Σε αντικείμενα multi-state, ο επεξεργαστής υπενθυμίζει να ορίσετε το offset σε -1 (οι καταστάσεις BACnet ξεκινούν από 1, του HyperVisu από 0). |
Λήψη ενημερώσεων
| Πεδίο | Περιγραφή |
|---|---|
| Change-of-value subscription | Automatic — εγγραφή, εναλλακτική σε polling (προεπιλογή), Required — προειδοποίηση εάν η συσκευή απορρίψει την εγγραφή, ή Never — αποκλειστικά polling. Οι εγγραφές COV αναφέρουν μόνο το present-value, επομένως μια σύνδεση σε άλλη ιδιότητα διαβάζεται μέσω polling. |
Αποστολή εντολών (commandable τύποι αντικειμένων)
| Πεδίο | Περιγραφή |
|---|---|
| Write priority | Προτεραιότητα εντολής BACnet 1–16. Αφήστε το κενό για να μην σταλεί καμία, την οποία η συσκευή εκλαμβάνει ως 16. Εάν ένα άλλο σύστημα γράφει σε χαμηλότερο αριθμό προτεραιότητας, υπερισχύει του HyperVisu και η συσκευή φαίνεται να αγνοεί το widget. |
Οι τύποι αντικειμένων, η συμβολοσειρά τύπου δεδομένων και ένα αναλυτικό παράδειγμα εφαρμογής περιλαμβάνονται στην παραπάνω ενότητα BACnet/IP.
