Ошибка переполнения SLC 500 Trap 0020: устранение защёлки S:5/0
Серьёзная ошибка SLC 500 0020 означает, что после некорректного математического вычисления сработал фиксируемый бит ловушки переполнения S:5/0. Сброс с помощ...
Каждые несколько дней SLC переходит в состояние неисправности. Критическая ошибка 0020. Операторы разводят руками, специалисты по обслуживанию сбрасывают её, производство возобновляется — пока та же математическая ошибка снова не возникает в ночную смену. Это срабатывает бит ловушки переполнения S:5/0, именно так, как задумала Rockwell: он фиксирует ошибку, чтобы нельзя было сделать вид, будто неверного вычисления не было.
В контроллере 5/04, например 1747-L524, код 0020 означает, что инструкция выдала результат за пределами допустимого диапазона целых чисел. Для знаковых 16-разрядных вычислений допустим диапазон от −32768 до +32767. Если превысить этот предел с помощью ADD или MUL, выполнить деление на ноль, выйти за пределы буфера FIFO/LIFO или применить NEG к значению −32768, процессор устанавливает S:5/0, а затем остаётся в состоянии неисправности, пока этот бит не будет снят. Руководства семейства публикаций 1747-UM011 / 1747-UM001 описывают эту ловушку; на производстве просто видят неработающий ЦП.
Устаревшие процессоры SLC по-прежнему управляют множеством дискретных машин. Ловушки переполнения почти всегда вызваны математикой приложения, а не неисправностью объединительной платы.
Инструкция OTU, которая останавливает распространение проблемы
Для быстрого восстановления обычно добавляют OTU к S:5/0, чтобы сканирование могло продолжиться после срабатывания ловушки. Ключевое значение имеет размещение. Поместите её на последнюю ступень LAD 2 — файла, в котором находятся вызовы JSR, — чтобы все подпрограммы успели завершиться до снятия фиксации. Тогда переполнение обнаруживается во время сканирования, а затем один раз сбрасывается перед переходом в режим простоя.
LAD 2 — последняя ступень S:5/0 ----] [----(OTU)----
Если поместить ту же OTU внутрь переполняющей подпрограммы, появится новый режим отказа: бит будет снят слишком рано, позднее в том же сканировании произойдёт повторное переполнение, и контроллер немедленно снова перейдёт в неисправность. Или OTU сработает по ветви, которая в этом сканировании вообще не выполняет ошибочное вычисление, и вам покажется, что проблема «исправлена», хотя настоящая ступень по-прежнему дважды в неделю вызывает остановку.
| Элемент | Назначение |
|---|---|
| Бит |
S:5/0 ловушка переполнения (с фиксацией) |
| Инструкция | OTU |
| Файл | LAD 2 (основной) |
| Позиция | После каждого JSR, последняя ступень |
Переведите контроллер в RUN и понаблюдайте, остаётся ли S:5/0 сброшенным в течение нескольких смен. Если он не срабатывает, вы выиграли время, но не устранили первопричину.
Найдите вычисление, которое действительно вызвало переполнение
Считайте OTU ремнём безопасности. Затем начинайте поиск:
- Любые недавние изменения, затрагивающие целые числа: счётчики партий, масштабированные аналоговые значения, записанные в N-файлы, или «временная» MUL для преобразования единиц измерения
- ADD / SUB / MUL / DIV / DDV без ограничителей диапазона
- Места, где после выхода значений за комфортный 16-разрядный диапазон следовало использовать LADD / LMUL (32-разрядные инструкции)
- NEG для значения, которое может достигать −32768
- Длина FIFO/LIFO по сравнению с фактически зарезервированным буфером
Полезные биты состояния, о которых стоит помнить при отладке: S:5/1 — разрешение ловушки переполнения, S:1/0 — первое сканирование, S:2/0 — неисправность процессора. Не сбрасывайте ловушки вслепую при онлайн-редактировании, не выяснив, какая ступень вызывает проблему.
Проверка аппаратной части
Процессоры 5/04 класса 1747-L524 давно сняты с производства. Если вы продолжаете использовать это шасси, держите на складе проверенный запасной 5/04 — предприятия, которые по-прежнему закупают оборудование этого семейства, часто выбирают модули вроде 1747-L542. Небольшие машины иногда переводят на 5/03, например 1747-L532, но это решение отдельного проекта, а не способ устранить переполнение. В долгосрочной перспективе большинство предприятий переводят процесс на CompactLogix или ControlLogix и избавляются от ловушек 16-разрядной арифметики вместе с платформой. Стратегия хранения запасных частей для смешанных парков Logix по-прежнему зависит от того, как вы комплектуете системы PLC и PAC.
Пока миграция не завершена, принцип прост: OTU в конце LAD 2, затем докажите, какая ADD/MUL неверно обрабатывает свой диапазон.
Об авторе
Mark Townsend | Ведущий инженер по автоматизации — системы Allen-Bradley
Mark Townsend — ведущий инженер по автоматизации с более чем 18-летним опытом работы с платформами Allen-Bradley, включая ControlLogix, CompactLogix и устаревшие системы SLC-500. В его повседневную работу входят разработка логики RSLogix / Studio 5000 и запуск HMI FactoryTalk View на устаревших и смешанных парках оборудования.