Термин · Глоссарий B2B-ПО

LRC (Проверка продольного избыточности) (LRC (Longitudinal Redundancy Check))

LRC (Longitudinal Redundancy Check, проверка продольной избыточности) – метод обнаружения ошибок в блоках передаваемых данных, при котором контрольный байт вычисляется как XOR (исключающее ИЛИ) всех байт блока. Применяется в промышленных протоколах передачи данных, последовательных интерфейсах и системах хранения.

Буква «L» В категориях: 3 Платформ: 6+

Введение

Longitudinal Redundancy Check (LRC), или проверка продольной избыточности, – один из классических алгоритмов обнаружения ошибок при передаче и хранении цифровых данных. Суть метода состоит в вычислении контрольного байта для блока данных путём применения операции XOR (исключающее ИЛИ) ко всем байтам блока. Полученное значение (LRC-байт) добавляется к блоку и передаётся вместе с данными. На принимающей стороне аналогичная операция выполняется заново, и если результат совпадает с принятым LRC-байтом – блок считается переданным без ошибок.

LRC относится к классу методов контроля чётности. В отличие от однобитовой вертикальной проверки чётности (VRC), LRC применяется ко всему блоку, что повышает вероятность обнаружения пакетных ошибок (burst errors).

История и контекст

Проверка продольной избыточности сформировалась как стандартный инструмент в эпоху рулонных лент и накопителей на магнитных лентах (1960–1970-е годы), когда каждый байт записывался поперёк ленты (вертикально), а контрольный символ в конце блока суммировал ошибки вдоль ленты (продольно). Отсюда и название – «продольная» избыточность.

С развитием более мощных алгоритмов (CRC – Cyclic Redundancy Check) LRC постепенно вышел из широкого применения в телекоммуникациях, однако сохранился в ряде промышленных протоколов. В частности, Modbus ASCII до сих пор использует LRC как обязательный механизм контроля целостности фреймов.

Как это работает

Алгоритм вычисления LRC состоит из трёх шагов:

  1. Сложить все байты блока данных по модулю 256 (8-битное сложение без учёта переполнения).
  2. Взять двоичное дополнение результата: LRC = (256 − сумма) mod 256, что эквивалентно побитовому отрицанию плюс 1.
  3. Присоединить LRC-байт к блоку данных.

Проверка на приёмнике: сложить все байты блока включая LRC-байт. Если результат равен нулю – ошибок не обнаружено.

Ограничения LRC: если два бита в разных байтах, находящиеся на одинаковых позициях, повреждены одновременно (симметричная ошибка), XOR-операция обнулит их вклад, и ошибка останется невидимой. Для более надёжной защиты используется CRC-16 или CRC-32.

Где применяется

  • Modbus ASCII: промышленный протокол для связи ПЛК и SCADA-систем использует LRC для защиты ASCII-фреймов.
  • Последовательные интерфейсы RS-232/RS-485: в устаревших системах автоматизации производства.
  • Системы хранения данных: исторически применялся на магнитных лентах и перфокартах.
  • Банковские и платёжные протоколы: ряд стандартов ISO для банкоматов и терминалов использовал LRC.
  • Медицинское оборудование: в некоторых устаревших устройствах мониторинга.

Преимущества и ограничения

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

Ограничения: низкая помехозащищённость по сравнению с CRC; не обнаруживает симметричные ошибки в разных байтах одного блока; не исправляет ошибки (только обнаруживает); современные системы почти повсеместно заменили LRC на CRC-16 или CRC-32.

Связь с другими понятиями

LRC – один из простейших алгоритмов в семействе методов обнаружения ошибок, к которым также относятся CRC (Cyclic Redundancy Check), контрольные суммы (checksum) и коды с исправлением ошибок (ECC). В контексте передачи данных LRC дополняет VRC (Vertical Redundancy Check) – проверку чётности отдельных байт. В промышленной автоматизации LRC неразрывно связан с протоколом Modbus и системами АСУ ТП.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «LRC (Проверка продольного избыточности)».

Платформы класса «LRC (Проверка продольного избыточности)»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

IS-SCADA - высокотехнологичный инструмент для решения задач комплексной автоматизации и диспетчеризации инжене...
Цена по запросу
Подробнее →

OPC-сервер протоколов MODBUS

Инженерное и производственное ПО
OPC-сервер протоколов MODBUS — программный сервер от ООО ЭнергоКруг (аффилирован с НПФ КРУГ-2000). Обеспечивае...
Цена по запросу
Подробнее →
08.16 Программное обеспечение для управляемых логических контроллеров (PLC)
Цена по запросу
Подробнее →
РУ

РИТМ.Системы управления

Инженерное и производственное ПО
РИТМ.СУ — российский программный пакет для разработки и настройки систем автоматического управления. Разработа...
Цена по запросу
Подробнее →
MasterSCADA 4D

MasterSCADA 4D

Инженерное и производственное ПО
MasterSCADA 4D — современная российская SCADA/HMI/DCS платформа нового поколения от ООО МПС Софт. В отличие от...
Цена по запросу
★ 4.6
Подробнее →

SCADA КРУГ-2000

Инженерное и производственное ПО
SCADA КРУГ-2000 — российская система диспетчерского управления и сбора данных (SCADA) для промышленных объекто...
Цена по запросу
★ 4.3
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «LRC (Проверка продольного избыточности)».

Где применяется

Отрасли, в которых «LRC (Проверка продольного избыточности)» используется на практике. Откройте отраслевой раздел Цифрового маркетплейса, чтобы увидеть подходящие решения, кейсы и новости.

Частые вопросы про LRC (Проверка продольного избыточности)

Что такое LRC (Longitudinal Redundancy Check)?

Метод обнаружения ошибок, при котором контрольный байт вычисляется операцией XOR всех байт блока данных. Принимающая сторона повторяет вычисление для проверки целостности.

Чем LRC отличается от CRC?

LRC – простая XOR-сумма байт, обнаруживает одиночные и часть пакетных ошибок. CRC использует полиномиальное деление и значительно надёжнее обнаруживает burst errors.

Где сегодня используется LRC?

Главным образом в протоколе Modbus ASCII для промышленной автоматизации, а также в ряде устаревших последовательных протоколов передачи данных.

Почему LRC не обнаруживает некоторые ошибки?

Если в двух разных байтах повреждены биты в одинаковых позициях, их вклад в XOR взаимно уничтожается, и LRC не изменится – ошибка остаётся невидимой.

Как вычислить LRC для блока данных?

Сложить все байты по модулю 256, затем вычесть результат из 256 (или применить побитовое NOT и прибавить 1). Результат – однобайтовый LRC.