Вещественный (REAL)
Вещественный тип данных (REAL) используется для хранения в памяти контроллера дробных аналоговых значений в формате числа с плавающей точкой: <целая часть>.<дробная часть>. Наличие символа точки ( . ) в вещественном значении обязательно, он позволяет разделить целую и дробную части, а также отличить вещественное значение от целочисленного.
Диапазон поддерживаемых значений.
Вещественные значения в диапазоне от -3.4 * 1038 до 3.4 * 1038.
Формы представления вещественных значений.
Вещественные значения с плавающей точкой могут быть представлены в десятичной или экспоненциальной форме.
В десятичной форме указываются все значимые цифры в целой и дробной части, что при большом количестве цифр сильно ухудшает их визуальное восприятие.
//десятичная форма записи вещественных числе
real_var := 0.0000058799;
real_var := 4500012100000.0;
real_var := 10478000.505;
|
В экспоненциальной форме числа представлены в формате: <мантисса>Е±<экспонента>. Мантисса чаще всего представлена числом с одной цифрой в целой части, а экспонента содержит положительное или отрицательное число, соответствующее количеству цифр смещения плавающей точки. Например, преобразуем число 10478000.505 в экспоненциальную форму:
-
Сместим плавающую точку влево на 7 позиций, чтобы в целой части осталась одна цифра: 10478000.505 = 1.0478000505 * 107.
-
Заменим умножение на 107 экспоненциальной формой записи: 1.0478000505 * 107 = 1.0478000505Е+7, где 1.0478000505 - мантисса, 7 - экспонента.//экспоненциальная форма записи числа 0.0000058799real_var := 5.8799Е-6;//экспоненциальная форма записи числа 4500012100000.0real_var := 4.5000121Е+12;//экспоненциальная форма записи числа 10478000.505real_var := 1.0478000505Е+7;
Вещественные константы.
Вещественные константы также должны содержать символ точки ( . ) для отделения целой части от дробной и могут быть представлены в десятичной или экспоненциальной форме. Например:
//вещественные константы в десятичной форме
real_var := 0.000587;
real_var := 450.0;
real_var := 10478.5;
//вещественные константы в экспоненциальной форме
real_var := 5.87Е-4;
real_var := 4.5Е+2;
real_var := 1.04785Е+4;
//2024 - не является вещественной константой, т.к. отсутствует дробная часть
real_var := 2024;
//правильное написание вещественной константы
real_var := 2024.0;
real_var := 2.024Е+3;
|
Объем выделяемой памяти.
В памяти контроллера каждое вещественное значение занимает 32 бита:
-
биты 0..22 содержат значение мантиссы;
-
биты 23..30 содержат значение экспоненты;
-
старший бит (31) используется для определения знака числа (false - положительное число, true - отрицательное);Например, на следующем изображении продемонстрирован формат сохранения в памяти вещественного числа 20.24.

Пример преобразования вещественного значения в двоичный формат.
|


