Сложные типы данных

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. Дайте классификацию типов данных