Производство по чертежам Подбор аналогов Цены производителя Оригинальная продукция в короткие сроки
INNERпроизводство и поставка промышленных комплектующих и оборудования
Бесплатно Личный кабинет — избранное и расчёты ★ Регистрация →
Новинка Симуляторы и тренажёры — ЧПУ, допуски, ПИД Попробовать →
Правовая информация →

INNER
Контакты

Таблица типов данных МЭК 61131-3

  • 14.07.2026
  • Познавательное
Таблицы в статье
Таблица 1. Логический и целочисленные типы данных МЭК 61131-3
ТипНазначениеРазрядность, битДиапазон значенийТипичное применение
BOOLЛогический1FALSE / TRUEФлаги, дискретные входы-выходы, состояния
SINTКороткое целое со знаком8−128 … 127Компактные счётчики и коды, экономия памяти
USINTКороткое целое без знака80 … 255Байтовые счётчики, индексы
INTЦелое со знаком16−32 768 … 32 767Счётчики, «сырые» отсчёты аналоговых сигналов
UINTЦелое без знака160 … 65 535Беззнаковые отсчёты, адреса, коды
DINTДвойное целое со знаком32−2 147 483 648 … 2 147 483 647Счётчики большой ёмкости, позиционирование
UDINTДвойное целое без знака320 … 4 294 967 295Большие беззнаковые счётчики, адресация
LINTДлинное целое со знаком64−9 223 372 036 854 775 808 … 9 223 372 036 854 775 807Очень большие значения, метки времени
ULINTДлинное целое без знака640 … 18 446 744 073 709 551 615Большие беззнаковые величины

Диапазоны целочисленных типов следуют из разрядности и представления со знаком (дополнительный код) либо без знака. Значение по умолчанию для перечисленных типов — 0, для BOOL — FALSE. Логически BOOL занимает 1 бит, но в памяти в зависимости от реализации может отводиться целый байт.

К списку таблиц
Таблица 2. Типы с плавающей точкой
ТипНазначениеРазрядность, битДиапазон (по модулю, приблизительно)Значащих цифр
REALВещественное, одинарная точность321,18·10−38 … 3,40·1038~7
LREALВещественное, двойная точность642,23·10−308 … 1,80·10308~15

Формат чисел с плавающей точкой соответствует ИСО/МЭК/IEEE 60559 (одинарная и двойная точность). Диапазон указан для абсолютного значения; типы хранят как положительные, так и отрицательные величины, а также ноль. Применение: REAL — технологические величины (температура, давление, расход), масштабирование сигналов; LREAL — вычисления повышенной точности (интегрирование, координаты, длительные накопления).

К списку таблиц
Таблица 3. Битовые строки
ТипРазрядность, битДиапазонТипичное применение
BYTE816#00 … 16#FF (0 … 255)Набор из 8 флагов, байтовый обмен
WORD1616#0000 … 16#FFFF (0 … 65 535)Регистры, маски, слова обмена с полевыми устройствами
DWORD3216#00000000 … 16#FFFFFFFF (0 … 4 294 967 295)Двойные слова, наборы флагов, регистры
LWORD6416#0 … 16#FFFFFFFFFFFFFFFF (0 … 18 446 744 073 709 551 615)Длинные битовые поля

Битовые строки предназначены прежде всего для хранения наборов битов и масок, а не для арифметики. К отдельным битам возможен прямой доступ по индексу. Значение по умолчанию — 0.

К списку таблиц
Таблица 4. Типы даты и времени
ТипНазначениеПример литералаПримечание
TIMEДлительность (интервал времени)T#1h30m, T#500msХранит интервал, а не дату; значение по умолчанию T#0s
DATEКалендарная датаD#2026-01-01Без времени суток
TIME_OF_DAY (TOD)Время сутокTOD#12:30:00Без даты
DATE_AND_TIME (DT)Дата и время сутокDT#2026-01-01-12:30:00Объединяет дату и время

TIME задаёт длительность и используется в таймерах и выдержках. Разрядность и предельный диапазон типов даты и времени зависят от реализации: в распространённом 32-битном представлении TIME хранится в миллисекундах со знаком, что даёт диапазон порядка ±24 суток. В третьей редакции стандарта дополнительно введены 64-битные варианты (LTIME, LDATE, LTOD, LDT) с наносекундным разрешением и существенно более широким диапазоном.

К списку таблиц
Таблица 5. Строковые типы
ТипСимволКодировкаТипичное применение
STRINGОднобайтовыйПо одному байту на символСообщения, идентификаторы, обмен с панелью оператора
WSTRINGДвухбайтовыйUnicode (UTF-16)Многоязычный текст, расширенные наборы символов

Строка хранит символьную последовательность; предельная длина задаётся при объявлении (при отсутствии явного указания действует значение по умолчанию, определяемое реализацией). STRING отводит один байт на символ, WSTRING — два байта (для части символов может использоваться больше).

К списку таблиц
Содержание статьи

Таблица типов данных МЭК 61131-3 сводит воедино элементарные типы данных ПЛК: логический BOOL, целочисленные INT и DINT, вещественные REAL и LREAL, временной TIME, строковый STRING и другие. Для каждого типа важны три характеристики: разрядность, диапазон представимых значений и назначение. Ниже — справочные таблицы по действующей редакции стандарта и развёрнутые пояснения к ним.

Основа

Как устроены типы данных в МЭК 61131-3

Тип данных определяет род информации, диапазон представления и множество допустимых операций над переменной. Стандарт делит типы на элементарные (встроенные) и производные (пользовательские — перечисления, структуры, массивы, ограниченные поддиапазоны). Каждый элементарный тип характеризуется фиксированной разрядностью и, как следствие, диапазоном значений; при объявлении без явной инициализации переменная получает значение по умолчанию (для чисел — 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 — строковые. Обобщения используются при описании стандартных функций, применимых к нескольким типам.

На основе элементарных типов создают пользовательские: перечисления, ограниченные поддиапазоны, структуры и массивы (в том числе многомерные). Это позволяет описывать прикладные данные в терминах предметной области, оставаясь в рамках базовой системы типов.

Наверх, к оглавлению Практика

Как выбрать тип данных

  1. Определите характер величины. Признак (да/нет) — BOOL; целое — целочисленные типы; дробное — REAL или LREAL; набор битов — битовая строка; интервал — TIME; текст — STRING или WSTRING.
  2. Оцените диапазон. Подберите наименьшую разрядность, гарантированно вмещающую рабочий диапазон с запасом, чтобы исключить переполнение.
  3. Учтите знак. Если отрицательные значения невозможны, беззнаковый тип даёт вдвое больший положительный диапазон при той же разрядности.
  4. Не завышайте точность без нужды. LREAL и 64-битные целые оправданы только при реальной потребности в точности или диапазоне — иначе это лишний расход памяти.
  5. Помните о специфике вещественных. Для REAL и LREAL используйте сравнение с допуском, а не на строгое равенство.
Наверх, к оглавлению

Вопросы и ответы

Какие типы данных есть в МЭК 61131-3?

Элементарные типы: логический 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 от DINT?

INT — 16-битное целое со знаком с диапазоном от −32 768 до 32 767. DINT — 32-битное со знаком, диапазон от −2 147 483 648 до 2 147 483 647. DINT занимает вдвое больше памяти, но вмещает значительно большие значения.

Какой диапазон у типа REAL?

REAL — 32-битное число с плавающей точкой (одинарная точность по ИСО/МЭК/IEEE 60559). По модулю оно охватывает примерно от 1,18·10⁻³⁸ до 3,40·10³⁸ и обеспечивает около семи значащих десятичных цифр. Для большей точности применяют 64-битный LREAL.

Сколько бит занимает BOOL?

Логически BOOL — это один бит (TRUE или FALSE). Физически в памяти под него в зависимости от реализации может отводиться целый байт, поэтому для больших наборов признаков экономичнее использовать битовые строки.

Можно ли хранить дату в типе TIME?

Нет. TIME хранит длительность (интервал), а не календарную дату. Для даты предназначен DATE, для времени суток — TIME_OF_DAY, для их сочетания — DATE_AND_TIME.

Чем STRING отличается от WSTRING?

STRING кодирует каждый символ одним байтом, WSTRING — двумя байтами (Unicode, UTF-16). WSTRING нужен для многоязычного текста и расширенных наборов символов, STRING достаточно для служебных сообщений и идентификаторов.

Зачем нужны беззнаковые типы (UINT, UDINT)?

Когда величина заведомо неотрицательна (адрес, код, счётчик), беззнаковый тип при той же разрядности даёт вдвое больший положительный диапазон: например, UINT — до 65 535 против 32 767 у INT.

Статья носит ознакомительный характер и не заменяет действующих стандартов и документации конкретной среды разработки. Разрядность и предельные диапазоны отдельных типов (в частности, времени и строк) могут зависеть от реализации; при разработке следует сверяться с документацией применяемой системы программирования. Автор и издатель не несут ответственности за возможные последствия использования изложенной информации.

Источники

  1. ГОСТ Р МЭК 61131-3-2016 — Контроллеры программируемые. Часть 3. Языки программирования.
  2. ГОСТ Р МЭК 61131-1-2016 — Контроллеры программируемые. Часть 1. Общая информация.
  3. ИСО/МЭК/IEEE 60559 — Информационная технология. Микропроцессорные системы. Арифметика с плавающей точкой.
  4. Петров И. В. Программируемые контроллеры. Стандартные языки и приёмы прикладного проектирования.
  5. Техническая документация систем программирования ПЛК стандарта МЭК 61131-3 — описание элементарных типов данных.
Появились вопросы?

Вы можете задать любой вопрос на тему нашей продукции или работы нашего сайта.