Режим резервирования и восстановления (Failover) в ISaGRAF 6.1
Режим резервирования и восстановления (Failover) в ISaGRAF 6.1<br />
<br />
В ISaGRAF 6.1 реализована поддержка режима резервирования и восстановления после отказа (Failover). Восстановление после отказа – это режим работы, при котором функции системы управления принимает на себя вторичная система управления в том случае, когда главная система становится недоступной из-за отказа оборудования или при запланированном простое. Использование этой функции повышает отказоустойчивость системы управления. Функция восстановления после отказа в ISaGRAF 6.1 дает воз¬можность пользователям модифицировать систему управления и менять условия, при которых контроллер получает или теряет управление. В режиме Failover среда ISaGRAF 6.1 реализует следующие ключевые возможности: безударный переход на резервную машину, работа с любым типом POU (SFC, FBD, LD, ST, 61499), автоматическая загрузка проекта (одновременно на первичную и вторичную станцию), ав¬томатическое переключение из Workbench на нужную станцию в режиме отладки, автоматическое переклю¬чение OPC-серверов. В данный момент не реализована поддержка хранимых (retain) переменных. <br />
Рассмотрим реализацию режима Failover в ядре исполнительной системы ISaGRAF. После загрузки приложения на активный контроллер автоматически выполняется его передача на резервный контроллер. Оба контроллера начинают параллельно выполнять одно и то же приложение. Входные переменные пере¬даются из основного контроллера в резервный контроллер перед каждым циклом выполнения. В конце каждого цикла выполняется проверка по вычисленной контрольной сумме, чтобы гарантировать це¬лостность данных и результатов. В случае расхождения на резервный контроллер передается вся область данных активного (основного) контроллера. При сбое на активном контроллере резервный контроллер становится активным (основным) и начинает управлять процессом. Для связи между основным и резервным контролером по умолчанию используется сеть TCP/IP, но могут быть использованы и другие сети (последовательный канал, UDP, оптоволокно). Допускается настройка условия, при котором происходит смена основного контроллера. Конфигурирование Failover состоит из установки следующих параметров: IP-адрес, номер порта и значения тайм-аутов. <br />
<br />
Результаты тестирования режима Failover компанией ISaGRAF Inc. <br />
Условия тестирования: 85 тыс. переменных пользователя, 4 тыс. входных переменных, объем TIC-кода равен 247k, размер буферов связи 64k, основной контроллер работает под управлением ОС Windows 7, резервный под управлением VMware ОС Windows XP. Результаты тестирования: время цикла 1 мс с отключенным режимом Failover, время цикла 13 мс с включенным режимом Failover и полной синхронизацией данных (88102 байта в 2 фреймах), время цикла 6 мс с включенным режимом Failover и частичной синхронизацией данных (4127 байт в одном фрейме). <br />
Результаты тестирования режима Failover на контроллерах LinPAC (ICP DAS) специалистами компании «ФИОРД»<br />
Исходные данные:<br />
1. Контроллер LP-5131 (ICP DAS) – 1 шт.<br />
2. Контроллер LP-8441 (ICP DAS) – 1 шт.<br />
3. Исполнительная система ISaGRAF5++ ACE Target<br />
4. Среда разработки проектов ISaGRAF Workbench v. 6.1.<br />
Для проверки опции резервирования в среде разработки приложений ISaGRAF Workbench v 6.1 был создан проект и программа, где переменная-счётчик на каждом цикле (200мс) инкрементируется, включен режим Failover и значения таймаутов выставлены по умолчанию.<br />
Загрузка проекта осуществлялась на первичный контроллер (“Primary Device”), после чего встроенный механизм Failover передавал код проекта на вторичный контроллер (“Secondary Device”) автоматически. Каждый из контроллеров находился в одном из трех состояний: Running (активный), Standby (резервный), Error (ошибка). Но в каждый момент времени один и только один из них находился в состоянии Running (активный). <br />
Моделирование ситуаций. <br />
Ситуация 1.<br />
Остановка вторичного контроллера, его статус меняется с Standby на Error. Перезапуск вторичного контроллера – его статус снова Standby. Вывод: При работающем первичном контроллере вторичный контроллер восстанавливает свой статус после перезагрузки.<br />
Ситуация 2:<br />
Остановка первичного контроллера: статус первичного контроллера Running меняется на Error; статус вторичного контроллера Standby меняется на Running. Перезапуск первичного контроллера приводит к тому, что статус первичного контроллера меняется с Error на Standby, первичный контроллер становится резервным.<br />
Вывод: После выхода из строя первичного контроллера вторичный контроллер становится активным контроллером. После восстановления или перезагрузки первичного контроллера, вторичный контроллер остается активным до момента его остановки или выхода из строя.<br />
Ситуация 3:<br />
Разрыв физической связи(Ethernet) между контроллерами без остановки контроллеров. Статус первичного контроллера из Running переходит в Error, статус вторичного контроллера переходит из Standby в Running.<br />
После восстановления связи между контроллерами статус вторичного контроллера из Running переходит в Standby, а статус первичного контроллера из Error переходит в Running. Вывод: При обрыве связи активным становится вторичный контроллер, но после её восстановления первичный контроллер снова становится активным, а вторичный контроллер возвращается в режим резервного.<br />
NB. На данный момент нельзя использовать в проекте одновременно прерывания и Failover.<br />
<br />
<br />
<br />
<br />
<br />
<br />