24. Типы данных
24 - 8 Automating with STEP 7 in STL and SCL
Автоматизация посредством STEP 7
с использованием STL и SCL
Пример для SCL: в формате REAL Вы можете определить значение
константы в любом численном представлении. Значение 100, например, в
случаях, когда предстоит выполнить операцию с данным числом и
переменной REAL-формата, редактор автоматически преобразует данное
число в REAL-формат ("неявное" преобразование типа).
В экспоненциальном представлении Вы можете определить целое или
дробное число с помощью 7 значащих цифр со знаком с последующим
символом "е" или "Е". Вслед за символом "е" или "Е" пишется значение
показателя степени по основанию 10 ("экспонента"). Преобразование
числа REAL-формата во внутреннее представление числа с плавающей
запятой выполняется системой STEP 7.
Для REAL-чисел существует раз личие между числами, которые могут
быть представлены с общей точностью ("нормированные" или
"нормализованные" ("normalized") числа с плавающей запятой) и числами,
которые представляются как числа с ограниченной точностью
("ненормированные" или "денормализованные" ("denormalized") числа с
плавающей запятой). Диапазон значений нормированных чисел с
плавающей запятой составляет:
от - 3.402 823 · 10
+38
до -1.175 494 · 10
-38
и
от +1.175 494 · 10
-38
до + 3.402 823 · 10
+38
.
Диапазон значений ненормированных чисел с плавающей запятой
составляет:
от -1.175 494 · 10
-38
до
-1.401 298 · 10
-45
и
от +1.401 298 · 10
-45
до + 1.175 494 · 10
-38
.
S7-300 CPU не могут выполнять вычисления с ненормированными
числами с плавающей запятой. Битовая структура в этом случае такова,
что ненормированное число с плавающей запятой представляется как
ноль. Если результат вычисления попадает в диапазон ненормированных
чисел с плавающей запятой, то значение этого результата
представляется нулевым с установкой битов состояния OV и OS
("нарушение численного диапазона").
CPU выполняет вычисления с полной точностью представления чисел с
плавающей запятой. Из-за ошибок округления при преобразовании
результаты, отображаемые программатором, могут отличаться от
теоретически точного представления результата.
Переменная типа REAL внутренне состоит из трех компонентов:
- знак,
- 8-разрядная экспонента по основанию 2,
- 32-разрядная мантисса.
Знак может принимать значения "0" (положительное число) и "1"
(отрицательное число). Экспонента сохраняется как константа,
увеличенная на 1 (смещена на +127), так что она имеет диапазон
значений от 0 до 255. Мантисса представляет собой дробную часть.
Целая часть мантиссы (integer component) не хранится, так как она или
всегда равна 1 (в случае нормированных чисел с плавающей запятой),
или всегда равна 0 (в случае ненормированных чисел с плавающей