Автоматическое выключение питания

Добрый день! Вопрос - какими командами можно реализовать безопасное отключение питания контроллера, с учётом того, что сама подача питания управляется с модулей WBIO.

Грубо говоря на выходе висит реле с самоблокировкой или бистабильное - контроллеру даётся команда из правил (командной строки) на завершение работы и потом он сам коммутирует выход.

Или можно забить на завершение работы и так рубить питание? В принципе, сейчас так и сделано, при чем контактом на замыкание (чтобы при перезагрузке контроллер не рвал сам себе питание). Произойти такое, по идее может раз в год, а то и вовсе не произойти - тот случай, когда система более суток стояла бы без внешнего питания и все АКБ бы потихоньку разряжались.

Добрый день.
Для контроллеров с Embedded Controller - управление питанием описано в Wiren Board Embedded Controller — Wiren Board
Для более ранних - достаточно выполнить стандартный shutdown -h now и выключить питание через 10-15 секунд.

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

Те статьи я читал, но температурный диапазон и сроки службы встроенных источников не очень вдохновляют. Ионистор ещё куда ни шло, но всё равно как-то не очень, со временем деградирует. Мне тогда уже проще забить, или сделать на внешнем таймере.

Добрый день!

Возможно, вам поможет данная функция:

rtcwake -m off -s 60

Необходимо сделать правило, которое сначала сохраняет все сервисы, затем отключает систему, и при подаче напряжения контроллер автоматически включается.

1 Like

А что значит сохраняет все сервисы? Какой командой это делается?

И что именно вы подразумеваете под командой отключения питания?

Предложенную документацию я читал, она может быть применена только при наличии хоть какого-то внутреннего модуля, в ином случае я не увидел возможности использования тех функций.

Раньше у меня было сделано так: контроллер запитывался от маломощного источника питания и цифровым выходом включал питание всей системы (ИБП и пр.), а моломощный источник отключался. Когда контроллер делал reboot, то отключал сам себе питание, потому что WBIO отваливаются при перезагрузке. Я переделал на обратную логику, терерь единицей питание отключается (через инвертирубщее реле с нормально замкнутым контактом). Но получается, что нет команды контроллеру, чтобы он мог завершить работу сервисов и только потом выдать команду отключения, активировав цифровой выход.

Была мысль взять таймер-задержку на динрейку, но в этом тоже есть минусы.

Все зависит, что вы хотите сохранять и какие сервисы развернуты.
Можете уточнить, для чего именно надо безопасное отключение? Имеется внутри сервис, который реагирует на отключение системы?

Не, стороннего софта я пока не ставил. И конечно мне чем проще, тем лучше. Я так понимаю сам производитель просит не рубить контроллер по питанию.
Я не знаю связано с этим или нет, но пару раз на горячую я его отключал. Затем тех поддержка нашла у меня какой-то битый файл, из-за которого были проблемы управления выходами.

На контроллерах 7.4\8.4 мягкое включение по идее не требуется, если с нашим софтом все.
А так shutdown еще можно применить, если сильно хочется, тогда при подаче тока контроллер сам включиться.

Я правильно понял, что речь о мягком отключении, а не включении?

А так да, спасибо, думаю разобрались с вопросом!

Да все так, при включении можно отдельно использовать сценарии проверки статусов системы, но это уже по мене надобности настраивать если реально не успевает например контейнер запуститься адекватно. Для штатного ПО контролера такое на моей практике не требуется совсем, я на горячую с ним работаю.

В части включения: в правилах у меня стоит задержка запуска секунд 30, потому что после запуска правил и даже веб - достаточно продолжительное время в логах формировались ошибки правил - Толи входы, Толи выходы внутренних модулей были недоступны, не помню. Правда у меня в правилах де-факто бесконечный цикл, поэтому ничего критично не происходило, отрабатывало позже, но чтобы всё было в порядке я сделал задержку. Это было на ВБ84, 2404.

1 Like

Добрый день!

Мы смогли вам помочь? Есть ли у вас ещё вопросы?

Да, спасибо, пока вопросов нет.