Статус документа
Статус документа

ГОСТ Р МЭК 61131-3-2016 Контроллеры программируемые. Часть 3. Языки программирования

     6.3 Литералы - внешнее представление данных

6.3.1 Общие положения

Внешние представления данных в различных языках программирования программируемых контроллеров состоят из числовых литералов, символьно-строковых литералов и литералов дат и времени.

Признана необходимость в обеспечении внешних представлений для двух различных типов данных, связанных со временем:

- данные о продолжительности времени при измерении и контроле событий;

- данные о времени суток, которые могут также включать в себя информацию о дате - для синхронизации начала и окончания событий в абсолютной временной шкале.

6.3.2 Числовые литералы и строковые литералы

Имеется два типа числовых литералов: целые литералы и действительные литералы. Числовой литерал определяется как десятичное число или число с основанием. Максимальное количество цифр для каждого вида числовых литералов должно быть достаточным для выражения всего диапазона значений с требуемой точностью для всех типов данных, которые представляются литералами в заданной реализации.

Единичные символы подчеркивания , вставленные между цифрами числового литерала не являются существенными. Никакое иное использование символов подчеркивания в числовых литералах не разрешается.

Десятичные литералы представляются в обычной десятичной нотации. Действительные литералы характеризуются наличием десятичной точки. Экспонента указывает на целую степень 10, на которую должно умножаться предшествующее число, чтобы достичь представленного значения. Десятичные литералы и экспоненты литералов могут содержать предшествующий знак или .

Литералы могут также представляться с основаниями 2, 8 и 16. Основание указывается в десятичной нотации. Для основания 16 используется расширенный набор цифр, состоящий из букв от A до F, с оговоренным десятичным значением от 10 до 15, соответственно. Числа с основанием не содержат ведущего знака или . Они интерпретируются как битово-строковые литералы.

Числовые литералы, представляющие положительные целые значения, могут использоваться как битово-строковые литералы.

Логические данные представляются числовыми литералами со значением (0) или один (1), или ключевыми словами FALSE или TRUE, соответственно.

Свойства и примеры числовых литералов приведены в таблице 5.

Тип данных логических или числовых литералов может указываться добавлением префикса типа к литералу, состоящего из имени элементарного типа данных и символа . Примеры приведены в свойстве 9 таблицы 5.


Таблица 5 - Числовые литералы

Номер

Описание

Пример

Объяснение

1

Целый литерал

-12, 0, 123_4, +986

2

Действительный литерал

0.0, 0.4560, 3.14159_26

3

Действительные литералы с экспонентой

-1.34E-12, -1.34e-12

1.0E+6, 1.0e+6

1.234E6, 1.234e6

4

Двоичный литерал

Литерал с основанием 2 для представления:

2#1111_1111

десятичного числа 255

2#1110_0000

десятичного числа 224

5

Восьмеричные литералы

Литерал с основанием 8 для представления:

8#377

десятичного числа 255

8#340

десятичного числа 224

6

Шестнадцатеричный литерал

Литерал с основанием 16 для представления:

16#FF или 16#ff

десятичного числа 255

16#E0 или 16#e0

десятичного числа 224

7

Логический ноль и единица

0 или 1

8

Логические FALSE и TRUE

FALSE TRUE

9

Типизированный литерал

INT#-123

Представление INT десятичного значения -123

INT#16#7FFF

Представление INT десятичного значения 32767

WORD#16#AFF

Представление WORD шестнадцатиричного значения 0AFF

WORD#1234

Представление WORD десятичного значения 1234=16#4D2

UINT#16#89AF

Представление UINT шестнадцатиричного значения 89AF

CHAR#16#41

Представление CHAR символа

BOOL#0

BOOL#1

BOOL#FALSE

BOOL#TRUE

Примечание 1 - Ключевые слова FALSE и TRUE соответствуют логическим значениям 0 и 1, соответственно.

Примечание 2 - Свойство 5 "Восьмеричные литералы" не рекомендуется и может не быть включено в следующую редакцию настоящего стандарта.

6.3.3 Символьно-строковые литералы

Символьно-строковые литералы содержат однобайтовые или двухбайтовые кодированные символы:

- символьно-строковый литерал однобайтовых символов является последовательностью нуля или более символов, с предшествующим и завершающим символом одиночной кавычки. В строках однобайтовых символов, трехсимвольная комбинация символа доллара ($) с двумя следующими шестнадцатиричными символами интерпретируется как шестнадцатиричное представление восьмибитового кода символа, как показано в свойстве 1 таблицы 6;

- символьно-строковый литерал двухбайтовых символов является последовательностью 0 или более символов из набора символов ИСО/МЭК 10646, с предшествующим и завершающим символом двойной кавычки . В строках однобайтовых символов, трехсимвольная комбинация символа доллара ($) с двумя следующими шестнадцатиричными символами интерпретируется как шестнадцатиричное представление восьмибитового кода символа, как показано в свойстве 2 таблицы 6.

Примечание - Отношение стандартов ИСО/МЭК 10646 и Юникод:


Несмотря на то, что коды символов и формы кодирования стандартов Юникод и ИСО/МЭК 10646 синхронизированы, стандарт Юникод налагает дополнительные ограничения на реализации, чтобы гарантировать, что они трактуют символы одинаково во всех платформах и приложениях. В связи с этим, данный стандарт предоставляет широкий набор спецификаций функциональных символов, данных символов, алгоритмов и обширный справочный материал, который отсутствует в ИСО/МЭК 10646.

Двухсимвольные комбинации, начинающиеся с символа доллара интерпретируются, как показано в таблице 7, когда они встречаются в строках символов.


Таблица 6 - Символьно-строковые литералы

Номер

Описание

Пример

Односимвольные символы и строки символов с

1a

Пустая строка (длины ноль)

1b

Строка длины 1 или символ CHAR, содержащий единственный символ


1c

Строка длины один или символ CHAR, содержащий символ пробела

1d

Строка длины один или символ CHAR, содержащий символ одиночной кавычки

$

1e

Строка длины один или символ CHAR, содержащий символ двойной кавычки


1f

Поддержка двухсимвольных комбинаций таблицы 7


1g

Поддержка представления символа с знаком доллара и двумя шестнадцатиричными цифрами

Двухбайтовые символы или символьные строки с (Примечание)

2a

Пустая строка (длины ноль)


2b

Строка длины один или символ WCHAR, содержащий единственный символ

2c

Строка длины один или символ WCHAR, содержащий символ пробела


2d

Строка длины один или символ WCHAR, содержащий символ одиночной кавычки


2e

Строка длины один или символ WCHAR, содержащий символ двойной кавычки


2f

Поддержка двухсимвольных комбинаций таблицы 7


2h

Поддержка представления символа с знаком доллара и четырьмя шестнадцатиричными цифрами


Типизированные однобайтовые символы или строковый литерал с #

3a

Типизированная строка

3b

Типизированный символ

Двухбайтовые типизированные строковые литералы с # (NOTE)

4a

Типизированные двухбайтовые строки (с использованием символа двойной кавычки)

4b

Типизированный двухбайтовый символ (с использованием символа двойной кавычки)

4d

Типизированный двухбайтовый символ (с использованием символа одиночной кавычки)

Примечание - Если конкретная реализация поддерживает свойство 4, но не поддерживает свойство 2, Реализатор может определить синтаксис и семантику для использования символа двойной кавычки.