Число с плавающей запятой, Формат числа с двойной точностью (dp), Формат числа с тройной точностью (tp) – Инструкция по эксплуатации Basler Electric DGC-2020
Страница 485: Контрольная сумма
Число с плавающей запятой
Формат числа с плавающей запятой в Modbus™ использует два рядом расположенных регистра
хранения. Первый регистр содержит младшие 16 бит следующего 32-битного формата:
•
Наиболее значащий бит представляет знак числа (0 = положительное).
•
Следующие 8 бит являются экспонентой, дополненной до 127.
•
Следующие 23 бита представляют нормализованную мантиссу. Наиболее значащий бит
мантиссы всегда предполагается равным 1 и не хранится непосредственно, увеличивая
эффективную точность до 24 бит.
Таблица B-2. Формат с плавающей запятой
Знак
Экспонента + 127
Мантисса
1 бит
8 бит
23 бит
Формат числа с плавающей запятой позволяет хранить значения в диапазоне от 8.43X10
-37
до
3.38X10
38
. Все нулевые биты в числе с плавающей запятой говорят о нулевом значении числа. Все
единичные биты в числе с плавающей запятой говорят о неприменимом значении.
Пример: значение 95800 представленное в данном формате равно 47BB1C00. Это число
прочтется из регистров хранения следующим образом:
Регистр хранения
Значение
K (ст. байт)
hex 1C
K (мл. байт)
hex 00
K+1 (ст. байт)
hex 47
K+1 (мл. байт)
hex BB
Аналогичное выравнивание требуется и при записи.
Формат числа с двойной точностью (DP)
Формат числа с двойной точностью в Modbus™ (DP) использует два соседних регистра для
представления значения. Первый регистр содержит старшие 16 бит и являются значением числа
деленным на 10000.
Второй регистр содержит младшие 16 бит числа и являются остатком от деления на 10000.
Формат числа с тройной точностью (TP)
Формат числа с тройной точностью в Modbus™ (TP) использует три соседних регистра для
представления значения. Первый регистр содержит старшие 16 бит и являются значением числа
деленным на 100000000. Остаток от деления далее делится на 10000 и результат представляет
собой второй регистр, а остаток от этого деления помещается в третий регистр.
Контрольная сумма
Это поле содержит двубайтовую контрольную сумму CRC для обнаружения ошибок передачи.
Ведущий вычисляет значение CRC и добавляет его в сообщение. DGC-2020 также вычисляет
значение CRC и сравнивает с принятым для определения целостности сообщения. При наличии
ошибки ответное сообщение не формируется. Если сообщение было принято корректно, ведомый
вычисляет CRC для ответного сообщения и присоединяет его к своему ответу.
См. "Modicon Modbus™ Protocol Reference Guide", PI-MBUS-300 Rev. E, страницы 112 - 115 для
более точного описания принципа и реализации алгоритма CRC-16.
Вычисление CRC происходит по всем байтам адреса устройства, кода функции и полям данных.
Шестнадцатибитное значение регистра CRC инициализируется единицами. Затем каждые восемь
бит сообщения используются в следующем алгоритме:
Сначала, производится операция «исключающего» ИЛИ с байтом сообщения и младшим байтом
CRC. Результат, сохраненный в регистре CRC, далее сдвигается вправо на восемь бит. Таким
9400273990 Bep. X1
DGC-
2020 Протокол Modbus
B-7