Существуют ли программные системы\библиотеки резервирования работы 2х ПК?
Добрый день.
Рассматриваю системы умного дома "для себя".
Так как сам "автоматчик", то был убежден в том, что "управление" должно быть реализовано в ПЛК, а интерфейс взаимодействия и т.д - хоть на чем(на ПК).
Постепенно прихожу к выводу, что все-таки, можно обойтись и ПК в качестве "мозга" и обработчика сигналов.
Все-таки, можно купить неттопы за 10 000 рублей штука, т.е. 2 неттопа - 20 000 рублей, примерная цена примерного контроллера. Организовав резервирование мы можем достичь приемлемой надежности (для домашнего использования) с кучей дополнительного функционала.
В качестве плат ввода-вывода планирую использовать Modbus-платы. На Алиекспрессе заказал самую дешевую за 1500 рублей - 8 входов 4 выхода. Цена канала просто смешная.
Для тестов стал использовать библиотеку на C# - slave девайсы вроде опрашиваются нормально, т.е. "доступ к телу" есть.
Внимание вопрос: если я хочу организовать управляющее ядро на ПК, то как я могу предусмотреть резервирование этого ПК, т.е. предусмотреть аппаратно-программное резервирование самого ПК.
Т.е. в случае отказа первого ПК (сбой программы, зависание, синий экран и т.д.) сделать так, чтобы запускался второй ПК.
В случае работы с Modbus на канал можно сделать несколько реализаций, как мне кажется. Например:
1. Оба ПК висят на RS485, 1й ПК Мастер, 2й ПК Слейв, все платы ввода вывода - всегда Слейвы. Мастер при работе шлет команду записи в регистр ПК-Слейва. ПК-Слейв мониторит приходящие команды записи. Если записи от мастера нет дольше ХХ секунд - значит авария, ПК-Слейв становится мастером. Проблема: Как только ПК№2 становится слейвом, то если вдруг восстановится ПК№1, то в сети окажется 2 Мастера, что недопустимо.
2. Программно 1й ПК шлет по Ethernet 2му ПК команду на порт, "лайфбит". Логика такая же, как выше. Если лайфбита нет, то второй становится "Мастером".
3. Функция "синхронизаци" между "серверами".
Внимание вопрос: кто-нибудь делал похожие решения, может быть есть библиотеки для реализации таких фич?
Библиотек таких не знаю, но они по-любому у кого-то есть))
Я бы физически развязал 485-ый (Modbus RTU) через два реле - делал так на наладке, правда подменял слэйвы мастеру. При этом оба ПК будут мастерами, но одного из них будет не видно в сети. Между собой бы синхронизировал состояние мастеров по Ethernet, а для управления реле напрашиваются два варианта: отдельный контроллер с ethernet и DO, в который пишется "лайвбит", фактически контроллер АВР - так у электриков делают; либо, если есть возможность, на модбас плате фиксировать отсутствие мастера и выдавать DO для переставления реле.
1) Можно взять один ПК и raid-массив дисков.
2) У реальных контроллеров есть резервирование (делали на Allen-Bradley)
3) Распределённые сети: KNX, LON, HDL.