ModBus: Τύποι δεδομένων

Τύπος δεδομένων

Περιγραφή

INT16

Ακέραιος αριθμός στην περιοχή από -32768 έως 32767.
Η πραγματικά χρησιμοποιούμενη περιοχή για ένα σημείο δεδομένων μπορεί να αποκλίνει.

UINT16

Ακέραιος αριθμός χωρίς πρόσημο στην περιοχή από 0 έως 65535.
Η πραγματικά χρησιμοποιούμενη περιοχή για ένα σημείο δεδομένων μπορεί να αποκλίνει.

ENUM

Είναι μια απαρίθμηση. Μπορεί να τεθεί μόνο μια από τις τιμές που αναφέρονται κάτω από τις παραμέτρους.

BOOL

Μια τιμή Boole είναι μια παράμετρος με ακριβώς δύο καταστάσεις (0 – ψευδές/false και 1 – αληθές/true). Γενικά όλες οι τιμές που είναι μεγαλύτερες από μηδέν λογίζονται ως true.

BITMAP*

Είναι μια ομαδοποίηση 16 τιμών Boole (bits). Οι τιμές δεικτοδοτούνται από 0 έως 15. Ο αριθμός που πρόκειται να αναγνωστεί ή να καταγραφεί στο μητρώο προκύπτει από το άθροισμα όλων των bits με την τιμή 1×2 εις τον δείκτη τους.

  • Bit 0: 20 = 1
  • Bit 1: 21 = 2
  • Bit 2: 22 = 4
  • Bit 3: 23 = 8
  • Bit 4: 24 = 16
  • Bit 5: 25 = 32
  • Bit 6: 26 = 64
  • Bit 7: 27 = 128
  • Bit 8: 28 = 256
  • Bit 9: 29 = 512
  • Bit 10: 210 = 1024
  • Bit 11: 211 = 2048
  • Bit 12: 212 = 4096
  • Bit 13: 213 = 8192
  • Bit 14: 214 = 16384
  • Bit 15: 215 = 32768

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.