Скидка на подшипники из наличия!
Новое поступление товара в 2026 году!
Диапазоны целочисленных типов следуют из разрядности и представления со знаком (дополнительный код) либо без знака. Значение по умолчанию для перечисленных типов — 0, для BOOL — FALSE. Логически BOOL занимает 1 бит, но в памяти в зависимости от реализации может отводиться целый байт.
Формат чисел с плавающей точкой соответствует ИСО/МЭК/IEEE 60559 (одинарная и двойная точность). Диапазон указан для абсолютного значения; типы хранят как положительные, так и отрицательные величины, а также ноль. Применение: REAL — технологические величины (температура, давление, расход), масштабирование сигналов; LREAL — вычисления повышенной точности (интегрирование, координаты, длительные накопления).
Битовые строки предназначены прежде всего для хранения наборов битов и масок, а не для арифметики. К отдельным битам возможен прямой доступ по индексу. Значение по умолчанию — 0.
TIME задаёт длительность и используется в таймерах и выдержках. Разрядность и предельный диапазон типов даты и времени зависят от реализации: в распространённом 32-битном представлении TIME хранится в миллисекундах со знаком, что даёт диапазон порядка ±24 суток. В третьей редакции стандарта дополнительно введены 64-битные варианты (LTIME, LDATE, LTOD, LDT) с наносекундным разрешением и существенно более широким диапазоном.
Строка хранит символьную последовательность; предельная длина задаётся при объявлении (при отсутствии явного указания действует значение по умолчанию, определяемое реализацией). STRING отводит один байт на символ, WSTRING — два байта (для части символов может использоваться больше).
Таблица типов данных МЭК 61131-3 сводит воедино элементарные типы данных ПЛК: логический BOOL, целочисленные INT и DINT, вещественные REAL и LREAL, временной TIME, строковый STRING и другие. Для каждого типа важны три характеристики: разрядность, диапазон представимых значений и назначение. Ниже — справочные таблицы по действующей редакции стандарта и развёрнутые пояснения к ним.
Тип данных определяет род информации, диапазон представления и множество допустимых операций над переменной. Стандарт делит типы на элементарные (встроенные) и производные (пользовательские — перечисления, структуры, массивы, ограниченные поддиапазоны). Каждый элементарный тип характеризуется фиксированной разрядностью и, как следствие, диапазоном значений; при объявлении без явной инициализации переменная получает значение по умолчанию (для чисел — 0, для BOOL — FALSE).
Разрядность типа задаёт и объём занимаемой памяти, и предельный диапазон значений — это отправная точка при выборе типа.
Элементарные типы удобно рассматривать группами: логический и целочисленные, вещественные, битовые строки, дата и время, строковые. Именно в таком порядке они сведены в таблицы выше.
Логический тип BOOL принимает два значения — TRUE и FALSE — и служит для флагов, дискретных входов-выходов и признаков состояния. Целочисленные типы различаются разрядностью (8, 16, 32, 64 бита) и наличием знака. Знаковые типы (SINT, INT, DINT, LINT) хранят и положительные, и отрицательные значения: старший разряд отведён под знак. Беззнаковые типы (USINT, UINT, UDINT, ULINT) при той же разрядности вдвое расширяют положительный диапазон.
Приставки в обозначениях отражают разрядность и знак: S — короткий (short, 8 бит), D — двойной (double, 32 бита), L — длинный (long, 64 бита), U — без знака (unsigned). Базовый INT — 16 бит.
Выбор разрядности — это компромисс между диапазоном и памятью. Занижение разрядности приводит к переполнению, завышение — к неоправданному расходу памяти. Отсчёты аналоговых сигналов обычно укладываются в INT или UINT, счётчики большой ёмкости требуют DINT.
Для дробных величин применяют REAL (32 бита, одинарная точность) и LREAL (64 бита, двойная точность). Формат соответствует ИСО/МЭК/IEEE 60559. REAL обеспечивает порядка семи значащих десятичных цифр, LREAL — около пятнадцати. REAL подходит для большинства технологических величин; LREAL используют там, где важна высокая точность или широкий динамический диапазон.
Вещественные значения хранятся приближённо, поэтому прямое сравнение двух чисел REAL или LREAL на равенство ненадёжно: результат округления может дать расхождение. Корректнее сравнивать модуль разности с заданным допуском.
Типы BYTE, WORD, DWORD и LWORD — это битовые строки длиной 8, 16, 32 и 64 бита. Они предназначены не для арифметики, а для хранения наборов битов, масок и регистров, в том числе при обмене с полевыми устройствами. К отдельным битам такой переменной можно обращаться напрямую по индексу, что удобно для упаковки нескольких дискретных признаков в одно машинное слово.
Тип TIME описывает длительность — интервал времени, а не календарную дату. Он применяется в таймерах, задержках и выдержках; литералы записываются с префиксом T# (например, T#1h30m). Для календарных значений служат отдельные типы: DATE — дата, TIME_OF_DAY (TOD) — время суток, DATE_AND_TIME (DT) — дата вместе со временем суток.
Предельный диапазон этих типов зависит от реализации. В распространённом 32-битном представлении TIME хранится в миллисекундах, что ограничивает интервал примерно двумя десятками суток. В третьей редакции стандарта введены 64-битные типы (LTIME, LDATE, LTOD, LDT) с наносекундным разрешением и значительно более широким диапазоном.
Строковые типы хранят последовательности символов. STRING отводит один байт на символ и подходит для сообщений, идентификаторов и обмена с панелью оператора. WSTRING использует двухбайтовое представление (Unicode, UTF-16) и нужен для многоязычного текста и расширенных наборов символов. Предельная длина строки задаётся при объявлении; при её отсутствии действует значение по умолчанию, определяемое средой разработки.
Помимо конкретных элементарных типов стандарт вводит обобщённые (родовые) типы — общие имена для групп: ANY_INT объединяет целочисленные, ANY_REAL — вещественные, ANY_NUM — числовые в целом, ANY_BIT — логический и битовые строки, ANY_DATE — типы даты и времени, ANY_STRING — строковые. Обобщения используются при описании стандартных функций, применимых к нескольким типам.
На основе элементарных типов создают пользовательские: перечисления, ограниченные поддиапазоны, структуры и массивы (в том числе многомерные). Это позволяет описывать прикладные данные в терминах предметной области, оставаясь в рамках базовой системы типов.
Элементарные типы: логический BOOL; целочисленные со знаком (SINT, INT, DINT, LINT) и без знака (USINT, UINT, UDINT, ULINT); вещественные REAL и LREAL; битовые строки BYTE, WORD, DWORD, LWORD; типы даты и времени TIME, DATE, TIME_OF_DAY, DATE_AND_TIME; строковые STRING и WSTRING. На их основе создаются пользовательские типы.
INT — 16-битное целое со знаком с диапазоном от −32 768 до 32 767. DINT — 32-битное со знаком, диапазон от −2 147 483 648 до 2 147 483 647. DINT занимает вдвое больше памяти, но вмещает значительно большие значения.
REAL — 32-битное число с плавающей точкой (одинарная точность по ИСО/МЭК/IEEE 60559). По модулю оно охватывает примерно от 1,18·10⁻³⁸ до 3,40·10³⁸ и обеспечивает около семи значащих десятичных цифр. Для большей точности применяют 64-битный LREAL.
Логически BOOL — это один бит (TRUE или FALSE). Физически в памяти под него в зависимости от реализации может отводиться целый байт, поэтому для больших наборов признаков экономичнее использовать битовые строки.
Нет. TIME хранит длительность (интервал), а не календарную дату. Для даты предназначен DATE, для времени суток — TIME_OF_DAY, для их сочетания — DATE_AND_TIME.
STRING кодирует каждый символ одним байтом, WSTRING — двумя байтами (Unicode, UTF-16). WSTRING нужен для многоязычного текста и расширенных наборов символов, STRING достаточно для служебных сообщений и идентификаторов.
Когда величина заведомо неотрицательна (адрес, код, счётчик), беззнаковый тип при той же разрядности даёт вдвое больший положительный диапазон: например, UINT — до 65 535 против 32 767 у INT.
Вы можете задать любой вопрос на тему нашей продукции или работы нашего сайта.