ModBus: Τύποι δεδομένων
Τύπος δεδομένων | Περιγραφή |
---|---|
INT16 | Ακέραιος αριθμός στην περιοχή από -32768 έως 32767. |
UINT16 | Ακέραιος αριθμός χωρίς πρόσημο στην περιοχή από 0 έως 65535. |
ENUM | Είναι μια απαρίθμηση. Μπορεί να τεθεί μόνο μια από τις τιμές που αναφέρονται κάτω από τις παραμέτρους. |
BOOL | Μια τιμή Boole είναι μια παράμετρος με ακριβώς δύο καταστάσεις (0 – ψευδές/false και 1 – αληθές/true). Γενικά όλες οι τιμές που είναι μεγαλύτερες από μηδέν λογίζονται ως true. |
BITMAP* | Είναι μια ομαδοποίηση 16 τιμών Boole (bits). Οι τιμές δεικτοδοτούνται από 0 έως 15. Ο αριθμός που πρόκειται να αναγνωστεί ή να καταγραφεί στο μητρώο προκύπτει από το άθροισμα όλων των bits με την τιμή 1×2 εις τον δείκτη τους.
|
BITMAP32 | Είναι μια ομαδοποίηση 32 τιμών Boole (bits). Για λεπτομέρειες σχετικά με τον υπολογισμό συμβουλευτείτε το Bitmap. |
* Επεξηγηματικό παράδειγμα:
Τα bit 3, 6, 8, 15 είναι 1 και όλα τα υπόλοιπα είναι 0. Το άθροισμα είναι τότε 23+26+28+215 = 8+64+256+32768 = 33096. Η αντίστροφη διαδρομή είναι επίσης εφικτή. Εδώ εξετάζεται ξεκινώντας από το bit με τον μεγαλύτερο δείκτη αν ο αριθμός που αναγνώστηκε είναι μεγαλύτερος ή ίσος της εκθετικής δύναμης του δύο. Σε αυτή την περίπτωση τίθεται το bit 1 και αφαιρείται η εκθετική δύναμη του δύο από τον αριθμό. Στη συνέχεια επαναλαμβάνεται ο έλεγχος με το bit με τον αμέσως μικρότερο δείκτη και τον μόλις υπολογισμένο υπόλοιπο αριθμό μέχρι να φτάσουμε στο bit 0 ή να γίνει μηδέν το υπόλοιπο. Ακολουθεί επεξηγηματικό παράδειγμα: Ο αριθμός που αναγνώστηκε είναι 1416. Το bit 15 γίνεται 0, αφού 1416<32768. Τα bits 14 έως 11 γίνονται επίσης 0. Το bit 10 γίνεται 1, αφού 1416>1024. Το υπόλοιπο γίνεται 1416-1024=392. Το bit 9 γίνεται 0, αφού 392<512. Το bit 8 γίνεται 1, αφού 392>256. Το υπόλοιπο γίνεται 392-256=136. Το bit 7 γίνεται 1, αφού 136>128. Το υπόλοιπο γίνεται 136-128=8. Τα bit 6 έως 4 γίνονται 0. Το bit 3 γίνεται 1, αφού 8=8. Το υπόλοιπο γίνεται 0. Οπότε τα υπόλοιπα bits 2 γίνονται όλα 0.