Каждая переменная в ПЛК автоматически получает правильный тип данных. Преобразование нужно устанавливать только в интерфейсе. В этом разделе объясняются различные типы Antcas Control.
Этот тип может иметь только два состояния: истинное или ложное. Вместо переменной в приложении можно определить значение с TRUE (истина) или FALSE (ложь).
Кроме того, используется специальный тип NULL. Это состояние устанавливается при инициализации переменной, то есть неопределенной. Кроме того, с помощью NULL возможны специальные функции. Например, если значение не должно передаваться через интерфейс.
Целое число — это целое число, например, 0 или 26. Кроме того, значение может быть отрицательным. Antcas Control работает с 64-битным ПЛК, который позволяет вычислять очень большие числа. Самое большое число определено константой INT_MAX (9223372036854775807). Самое маленькое число указано в INT_MIN или INT_MAX+1, так как знак использует один бит. Все числа за пределами этого диапазона применяются в виде Float с экспонентой. Тогда вычисление становится неточным.
Целое число может получить значение -0, которое не равно FALSE. Однако проверка с функцией EQ(-0,0) дает TRUE. При этом -0 может быть определено только как строка '-0'.
Также можно напрямую определить шестнадцатеричное значение. Оно начинается с 0x или 0X. Например, из 0xFF получается 255.
Число с плавающей точкой или вещественное число — это число с плавающей точкой, например, 0.1 или 22.005 (с точкой). Также поддерживаются экспоненты. Например, 10E2 для 1'000 или 10e-2 для 0.1. Регистр не имеет значения. Пытается преобразовать число в целое, так как вычисление проще для ПЛК. Может случиться так, что при больших числах вычисления становятся неточными. Максимальное количество знаков после запятой фиксировано на 14, чтобы повысить производительность ПЛК.
Числа с плавающей точкой имеют ограниченную точность. Хотя это зависит от системы, Antcas Control обычно использует Формат двойной точности IEEE 754, который дает максимальную относительную погрешность округления порядка 1.11e-16. Однако неэлементарные арифметические операции могут вызывать более крупные ошибки, и естественно, необходимо учитывать распространение ошибок, если несколько операций объединены.
Кроме того, существуют рациональные числа, которые могут быть точно представлены как числа с плавающей точкой по основанию 10, например 0.1 или 0.7, но для которых нет точного представления как чисел с плавающей точкой по основанию 2, которое используется внутренне независимо от размера мантиссы. Поэтому они не могут быть преобразованы в их внутреннее двоичное представление без небольшой потери точности. Это может привести к запутывающим результатам: FLOOR((0.1+0.7)*10) обычно даст 7 вместо ожидаемого результата 8, так как внутреннее представление похоже на 7.9999999999999991118.
Поэтому никогда не следует полагаться на числа с плавающей точкой до последней десятичной цифры и никогда напрямую проверять их на равенство.
Строка или строка определяется с помощью одинарной кавычки ' ' или двойной кавычкой " ". Например, 'Текст 1' или "Тест!". С помощью функционального блока CONCAT можно объединить несколько строк.
Перевод строки или новая строка может быть создана с помощью CTRL+Enter. Это затем отображается как стрелка ↵.
Символ экранирования для указания ' или " внутри самой строки не требуется. Строку можно напрямую указать как "Здесь есть знак "".
Возможно прямое объявление специальных символов. Для этого внутри строки указывается следующая последовательность с двойными кавычками:
| Последовательность экранирования | Сокращение ASCII |
|---|---|
| \\ | Экранированный \ |
| \n | LF |
| \r | CR |
| \r\n | CRLF |
| \0 | NUL |
| \t | TAB |
| \e | ESC |
| \f | FORMFEED |
| \x## | Произвольный байт |
Чтобы, например, объявить произвольный байт 126 или 7E как шестнадцатеричное число, используется следующее выражение: "\x7E". Эта строка соответствует "~".
Здесь 7E служит в качестве заполнителя. Можно указать все значения в пределах шестнадцатеричных значений от 00 до FF. При этом обратите внимание, что UTF-8 BOM "\xEF\xBB\xBF" обычно автоматически удаляется большинством браузеров. Возможно скрыть строку. Для этого используется ведущая обратная косая черта: "\\x7E", что соответствует '\x7E'.
Внимание: Все строки за пределами области UTF-8 не могут быть сохранены постоянно. В режиме реального времени они отображаются темно-фиолетовым цветом.
См. также статью Конвертация строк в числа.
Определяет дату и время с помощью DT#, например, DT#2016-03-25-22:12:00. Время преобразуется в целое число в миллисекундах от даты 01.01.1970 (это значение находится в часовом поясе UTC/GMT).
Определяет дату с полуночи с помощью D#, например, D#2016-03-25. Время преобразуется в целое число в миллисекундах от даты 01.01.1970 (это значение находится в часовом поясе UTC/GMT).
Определяет время в миллисекундах с помощью T#, например, T#5d3h5m11s500ms. Время преобразуется в целое число в миллисекундах.
Массив нельзя определить напрямую. Однако можно сопоставить переменную с точкой. См. Переменные.
ОЧЕНЬ ВАЖНО: Никогда не определяйте значение ниже в массиве. Например, set и set.p - ПЛК будет здесь аварийно остановлен. И поэтому не будет работать. Кроме того, это может привести к непредвиденным ошибкам.