Сложные типы данных
TIME_OF_DAY (Время суток)
TIME (Время)
S5TIME
REAL (вещественный)
Переменная типа REAL представляет дробь и хранится как 32-битное число с плавающей запятой (десятичной точкой). Целое сохраняется как переменная типа REAL при добавлении десятичной точки и нуля.
Переменная типа S5TIME используется в базовых языках STL, LAD и FBD для установки таймеров системы SIMATIC. Она занимает одно 16-битное слово с 1 + 3 декадами.
Время устанавливается в часах (hours), минутах (minutes), секундах (seconds) и миллисекундах (milliseconds). STEP 7 производит преобразование во внутренне представление, которое является BCD-числом в диапазоне 000 … 999. Интервалы времени могут принимать следующие значения: 10 мс (0000), 100 мс (0001), 1 с (0010) и 10 с (0011). Длительность складывается из временного интервала и значения времени.
Примеры:
S5TIME#500ms
S5T#2h46m30s
DATE (Дата)
Переменная типа DATE хранится в машинном слове как число с фиксированной точкой без знака. Содержимое переменной соответствует количеству дней, начиная с 01.01.1990. Ее представление показывает год, месяц и день, разделенные дефисом.
Примеры:
DATE#1990-01-01 (=0050hex)
D#2168-12-31 (=FF62hex)
Переменная типа TIME резервирует одно двойное слово. Ее представление содержит информацию о днях (d), часах (h), минутах (m), секундах (s) и миллисекундах (ms), отдельные элементы этих данных могут быть опущены. Содержимое переменной интерпретируется в миллисекундах (ms) и хранится как 32-битное число с фиксированной точкой со знаком.
Примеры:
TIME#24d20h31m23s647ms (= 7FFF_FFFFhex)
TIME#0ms (= 0000_0000hex)
T#-24d20h31m23s648ms (= 8000_0000hex)
Для типа TIME также возможно «десятичное представление», например,
TIME#2.25h или T#2.25h.
Примеры:
TIME#0.0h (= 0000_0000hex)
TIME#24.855134d (= 7FFF_FFFFhex)
Переменная типа данных TIME_OF_DAY резервирует для себя одно двойное слово. Она содержит количество миллисекунд с начала суток (со времени 00:00) в виде числа с фиксированной точкой без знака. Ее представление содержит информацию о часах, минутах и секундах, разделенных двоеточием. Миллисекунды, которые следуют за секундами, отделены от них десятичной точкой. Миллисекунды могут отсутствовать.
Примеры:
TIME_OF_DAY#00:00:00 (= 0000_0000hex)
TOD#23:59:59.999 (= 0526_5BFFhex)
STEP 7 определяет следующие четыре сложных типа данных:
- DATE_AND_TIME (DT) Дата и время (в формате BCD-числа);
- STRING Строка литер длиной до 254 знаков;
- ARRAY Переменная-массив (совокупность переменных одного типа);
- STRUCT Переменная-структура (совокупность переменных разных типов).
Контрольные вопросы
1. Дайте определения переменным и константам.
2. Какие производится абсолютная и символическая адресация переменных?
3. Перечислите типы разрядности переменных.
4. Дайте классификацию типов данных