Программируемое восстановление ПК и оборудования на ARU-P2
ARU-P2 uLua позволяет изменить аппаратный WatchDog: задать интервалы Reset/Power, контроль температуры или внешнего входа, многоступенчатые попытки и передачу причин перезапуска программе на ПК.
Стандартный WatchDog ждёт контрольный сигнал и при его пропадании нажимает Reset. Но реальное оборудование восстанавливается по-разному: одному ПК нужен повторный Reset, другому — полное выключение, пауза для разряда цепей и только потом включение.
ARU-P2 uLua позволяет записать такую последовательность прямо в устройство. Аппаратные выходы Reset и Power работают независимо от зависшей операционной системы, а программа определяет условия и порядок действий.
Пример многоступенчатого восстановления
- ARU-P2 получает контрольный сигнал от программы на ПК.
- Если сигнал задержался, ждёт дополнительное время, чтобы исключить ложное срабатывание при высокой нагрузке.
- Коротко нажимает Reset.
- Ждёт загрузку и возобновление контрольного сигнала.
- Если Reset не помог, удерживает Power для выключения.
- Делает паузу и снова нажимает Power.
- После нескольких неудач прекращает цикл или включает аварийную индикацию.
- Передаёт причину, температуру и номер попытки программе на ПК для записи в журнал.
Тайминги, количество попыток и условия перехода задаются в uLua, а не жёстко зашиты в универсальный алгоритм.
Какие сигналы можно учитывать
Контрольный сигнал от программы
Сервис на ПК периодически отправляет команду по USB CDC. Пропажа команды означает зависание ОС, сервиса или всего компьютера — в зависимости от того, где формируется контрольный сигнал.
Температура
Подключённый датчик позволяет выключить оборудование при перегреве, запретить
немедленный повторный запуск или использовать разные пороги для предупреждения
и аварии. Датчик подключается к линии hw.p9.
Дополнительный вход
На линию hw.p9 можно подать внешний сигнал исправности, состояние источника
питания, двери или технологического узла. Эта же линия используется для
датчика температуры, поэтому одновременно подключить датчик и внешний контакт
нельзя. Программа решает, является ли отсутствие сигнала поводом для Reset,
Power или только для передачи события на ПК.
Команда оператора
Собственное ПО может запросить контролируемую перезагрузку, временно поставить WatchDog на паузу или прочитать состояние. Формат команд тоже можно адаптировать.
Сценарии, где стандартной логики мало
- терминал должен сначала перезапустить приложение и только затем весь ПК;
- после трёх Reset требуется полное выключение и повторное включение с длинной паузой;
- при перегреве повторное включение запрещено до охлаждения;
- одноплатный компьютер контролируется дискретным сигналом, а не USB-сервисом;
- разные причины сбоя должны попадать в журнал программы на ПК;
- внешнее оборудование перезапускается вместе с ПК или в отдельной очередности;
- после восстановления нужен тестовый импульс и ожидание подтверждения.
Почему восстановление не зависит от ОС
Программа на ПК удобна для проверки процессов, сети и сервисов, но она не может нажать физический Reset после полного зависания ОС. ARU-P2 продолжает выполнять сохранённый код на uLua независимо от состояния хоста.
Два гальванически изолированных выхода подключаются параллельно линиям Reset и Power материнской платы. Гальваническая развязка разделяет цепи WatchDog и системной платы, а параллельное подключение сохраняет обычные кнопки корпуса.
Почему здесь не нужен контроллер с полной Lua
Для сетевого шлюза, файлового журнала или обработки сложных данных полезен более крупный контроллер с полной Lua. У схемы восстановления другая задача: следить за несколькими условиями, выдерживать интервалы и в нужном порядке управлять Reset и Power.
Мы используем uLua, чтобы вам оставалось написать только скрипт с правилами работы: указать, какие сигналы контролировать, сколько ждать и когда включать Reset или Power. Работу USB, входа, выходов, таймеров и запуска программы мы уже реализовали в прошивке — программировать WatchDog с нуля не нужно.
ARU-P2 уже объединяет эти аппаратные линии, дополнительный вход и USB CDC. Программа uLua компилируется на ПК в компактный байткод и запускается внутри устройства. В контур восстановления не приходится добавлять операционную систему, файловую систему и сетевые службы, которые алгоритм всё равно не использует.
Ограничения uLua здесь становятся преимуществом: небольшой алгоритм проще проверить целиком, а компилятор заранее отклоняет синтаксис и функции, которых нет в выбранной модели. Если задача перерастает WatchDog и требует сети, файлов или сложных структур данных, нужен уже контроллер с полной Lua.
При обслуживании IDE может прочитать сохранённый в ARU-P2 байткод и показать декомпилированный код. Это полезно, если нужно понять логику уже установленного устройства, но исходный файл недоступен. Восстановленная версия не содержит исходных комментариев, форматирования и имён; после включения защиты от чтения эта возможность через IDE блокируется.
Когда достаточно Pro2
Если нужен стандартный сценарий Reset → Power, контроль процесса, ping, температуры либо двери, USB WatchDog Pro2 проще в настройке. Датчик температуры и внешний контакт у Pro2 также используют один общий вход. ARU-P2 нужен, когда требуется собственный алгоритм восстановления.
Безопасное внедрение
проверяйте выходы сначала без подключения к материнской плате;
подключайте Reset/Power только при выключенном компьютере;
ограничивайте число автоматических циклов, чтобы не получить бесконечный перезапуск;
различайте плановое обслуживание и реальный сбой;
храните рабочую версию кода на uLua вместе с документацией объекта;
моделируйте зависание, неуспешный Reset и пропадание питания до ввода в эксплуатацию.