ГОСТ Р МЭК 61131-3—2016
Окончаниетаблицы 22
d>Функциипреобразования *_BCD_TO_" и **_TO_BCD_* выполняют преобразования между переменны-
ми типа BYTE. WORD. DWORD и LWORD и переменными типа USINT. UINT. UDINT и ULINT (представленными
«*» и «"». соответственно), когдасоответствующие переменные типа битовой строки закодированы в формате
BCD. Например, знамением USINT_TO_BCD_BYTE(25)будет 2#0010_0101. а значением WORD_BCD_TO_UINT
(2#0011_0110_1001) будет 396.
е)Когда входом или выходомфункции преобразования типов является тип STRING или WSTRING.
данные символьной строки соответствуют внешнему представлению соответствующихданных, какуказано в
6.3.3. в наборе символов, определенном в 6.1.1.
6.6.2.5.3 Преобразование числовых типов данных
В преобразовании числовых типов данных используются следующие правила:
1Тип данных источника расширяется до самого большого типа данных этой категории типов дан
ных.
2 Затем результат преобразуется в самый большой тип данных категории типовданных, к которой
принадлежит целевой тип данных.
3 Затем этот результат преобразуется в целевой тип данных.
Если значение исходной переменной не вмещается в целевой тип данных, то есть диапазон зна
чений слишком мал. то значение целевой переменной определяется разработчиком.
Примечание — Реализация функции преобразования может использовать более эффективную
процедуру.
Пример — Х:= REAL_TO_INT(70_000.4)
1Значение(70J000.4) типа REAL преобразуется в значение (70_000.400_000..) типа LREAL.
2Значение(70_000.4000_(Ю0..) типа LREAL преобразуется в значение(70 000)типа UNT. Здесь зна
чениеокруглено до целого.
3 Значение (70_(Ю0) типа LINT преобразуется в значение типа INT. Здесь окончательное значе
ние определяется разработчиком, поскольку максимальное значение, которое может хранить тип INT
равно 65536.
Затем результат записывается в переменную целевого типа данных. Теперь данная переменная
хранит то же значение, что и исходная переменная, если целевой тип данных в состоянии хранить это
значение.
При преобразовании чисел с плавающей точкой применяются нормальные правила округления,
то есть округление до ближайшего целого и. если результат неоднозначен, до ближайшего четного
целого.
Тип данных BOOL, используемый в качестве исходного типа данных, рассматривается как тип
данных целого без знака, который может хранить значения 0 и 1.
В таблице 23 описаны функции преобразования с деталями, вытекающими из применения опи
санных выше правил.
Таблица 23 — Преобразование числовых типовданных
Номер
Функция преобразования
типовданных
Детали преобразования
1LREAL _ТО_REAL
Преобразование с округлением, ошибки дают результат, определяе
мый разработчиком
2LREAL _ТО_LINT
Преобразование с округлением, ошибки дают результат, определяе
мый разработчиком
3LREAL _ТО_DINT
Преобразование с округлением, ошибки дают результат, определяе
мый разработчиком
4LREAL _TO_INT
Преобразование с округлением, ошибки дают результат, определяе
мый разработчиком
66