Как работают функции резервного копирования, восстановления, клонирования, автозагрузки и автозапуска в программируемых логических контроллерах (ПЛК)
Каждое устройство ПЛК хранит в своей памяти управляющую программу и данные конфигурации оборудования. Оба эти элемента необходимы для его правильного функционирования.
У пользователя в большинстве случаев есть два варианта: программа и данные могут храниться во Flash-памяти (флэш памяти) или в RAM-памяти (оперативной памяти).
Флэш-память является энергонезависимой памятью и хранит данные без необходимости в резервной аккумуляторной батарее. Оперативная память, в свою очередь, является энергозависимой памятью и требует постоянного питания для поддержания своего содержимого, а это значит, что после выключения контроллера необходимо резервировать память.
Казалось бы, с учетом этого следует использовать только Flash-память и полностью отказаться от оперативной памяти. Но это не так. Flash--память имеет одно очень важное ограничение по отношению по сравнению с оперативной памятью. А именно, это свободная память, намного медленнее ОЗУ как по скорости записи, так и по скорости чтения. Также у него совсем другая специфика работы — разные механизмы записи и чтения данных.
Все это означает, что флэш-память не может быть использована в качестве оперативной памяти, т.е. памяти, которую можно постоянно использовать во время работы ПЛК. Это связано с тем, что любое изменение любых значений, отработанных в программе управления, потребовало бы остановки ПЛК и каждый раз перезаписи флэш-памяти.
Таким образом, новые значения должны были бы записываться миллионы раз в минуту. При таком использовании срок службы Flash-памяти составит несколько месяцев, а не несколько лет, что является минимумом, ожидаемым от типичного ПЛК.
По этой причине оперативная память должна использоваться параллельно с флэш-памятью. Эта память, помимо быстрого сохранения данных, генерируемых программой, также используется для запуска самой программы.
На практике это означает, что программа, которую программатор загрузил во Flash-память при программировании контроллера, перед запуском копируется контроллером в RAM-память, и эта память используется при нормальной работе ПЛК.
Все работает нормально, когда ПЛК включен. Если нам придется отключить его от источника питания или произойдет сбой, в действие вступает аккумуляторная батарея, которая позволит сохранить оперативную память, в том числе значения процесса, отработанные в ПЛК.
Здесь тоже все работает как надо при исправном аккумуляторе. Проблема возникает, когда батарея разряжена или повреждена. В этом случае перезапуск ПЛК приведет к тому, что он запустится с управляющей программой (поскольку она будет скопирована из флэш-памяти), но без значений процесса.
Для того чтобы этого не случилось, на помощь приходят механизмы поддержки памяти и восстановления приложений, которыми поставщики оснащают свои устройства управления.
Резервное копирование приложений
Резервное копирование (бэкап) — это механизм, который позволяет создавать копию управляющей программы и значений процесса из ПЛК на съемном носителе данных, установленном в контроллере.
Бэкап готовится только для того устройства, на котором он был создан и только на основе значений, которые были сохранены в оперативной памяти контроллера на момент резервного копирования. Невозможно использовать вашу резервную копию на устройстве, отличном от того, на котором она была создана.
На практике мы создаем резервную копию с уровня меню ПЛК и сохраняем ее на карте памяти, в основной директории, в виде файла с именем «Резервная копия». Такую копию можно использовать для перезапуска ПЛК в случае, если его внутренняя память по каким-то причинам была удалена.
Также стоит упомянуть, что резервная копия управляющего приложения, созданная с уровня ПЛК, представляет собой исполняемый файл в машинной форме, понятной только для ПЛК. Этот файл нельзя запустить в утилите для редактирования программы.
Резервная копия, подготовленная на уровне ПЛК, создает резервную копию на карте памяти, установленной в устройстве. Такое резервное копирование включает в себя:
- программу управления,
- контрольную сумма программы,
- значения всех переменных/регистров оперативной памяти,
- все системные настройки.
Подготовленный таким образом файл позволит нам запустить ПЛК, когда его память пуста.
Резервное копирование может быть запущено из меню контроллера по запросу пользователя, а может осуществляться в автоматическом режиме благодаря функции AutoLoad.
Запуску резервного копирования может дополнительно предшествовать необходимость ввода пароля, настроенного на уровне подготовки управляющего приложения в служебной программе.
Механизм автозагрузки
Функцию автозагрузки можно активировать для резервной копии приложения, хранящейся на карте памяти (установленной в ПЛК). Этот механизм создает специальный файл на карте памяти, что позволит автоматически загружать резервную копию в память контроллера при каждом включении устройства.
Этот механизм очень полезен в беспилотных приложениях, то есть в тех, в которых система работает автономно в удаленных местах. В этом случае на месте обычно нет местного оператора, который мог бы выполнить обслуживание. Примером может служить любая насосная станция или гидрофорная станция.
Включение этого механизма приведет к тому, что устройство будет автоматически загружать резервную копию в память в случае пропадания питания контроллера после его восстановления. Благодаря этому у нас есть гарантия, что в случае повреждения аккумулятора и потери программы устройство будет готово к дальнейшей работе.
Механизм автозапуска
Это функция, которая автоматически запускает ПЛК в режиме RUN, т.е. в режиме, в котором осуществляется управление объектом.
Следует иметь в виду, что включение данной опции будет автоматически запускать процесс контроля при каждом перезапуске контроллера, без проверки того, находится ли объект в безопасном состоянии и не представляет ли его запуск угрозы кому-либо или чему-либо. Так что если речь идет, например, о вышеупомянутом необслуживаемом приложении, таком как канализационная насосная станция, такой механизм можно использовать без опаски.
Однако в случае объектов, где вводу в эксплуатацию должна предшествовать проверка соблюдения всех правил техники безопасности, использование этой функции может быть запрещено. Примером может служить машина, которая перемещает нож, гибочную машину или тестомес.
Сочетание резервного копирования данных программы и контроллера с функциями AutoLoad и AutoRun дает в необслуживаемых приложениях гарантию запуска ПЛК после каждого перезапуска питания, даже в случае отсутствия или повреждения батареи, поддерживающей оперативную память.
Пользователи таких систем могут быть уверены, что даже после очень длительного периода бездействия системы управления ее следующий запуск приведет к автоматическому запуску системы со значениями, которые были у ПЛК на момент резервного копирования. И что это произойдет без вмешательства внешнего оператора.
Механизм клонирования приложений
Функция клонирования приложения — это механизм, который позволяет дублировать вашу копию программы и конфигурации на другие устройства.
Следует подчеркнуть, что перенос приложения возможен только для идентичных моделей контроллеров. Невозможно загрузить клон приложения в устройство, например, с другой конфигурацией входных и выходных сигналов.
Система автоматически проверит совместимость целевого устройства с устройством, с которого был сделан клон приложения. Если такого совпадения нет, клон не будет загружен в ПЛК.
Клон приложения переносится на другие устройства через съемные носители данных, например карту MicroSD. Механизм клонирования широко используется OEM-производителями, которые производят идентичные машины с одинаковой конфигурацией, сокращая процесс программирования и настройки устройства, поскольку программирование устройства с карты памяти устраняет необходимость в ПК с служебным программным обеспечением.
Также стоит подчеркнуть, что клон приложения, как и резервная копия приложения, готовится в виде машинного исполняемого файла и его редактирование в инструментальном программном обеспечении невозможно.
Файл клона приложения, помимо управляющей программы и конфигурации, также содержит значения инициализации для устройства, т.е. данные, с которыми ПЛК должен запускаться в первый раз. Эти значения настраиваются при подготовке логики в утилите.
Это тоже очень полезная функция, ведь процесс первоначальной, ручной параметризации устройства при его первом запуске может выполняться автоматически вместе с запуском клона приложения.
В чем разница между клоном и резервной копией управляющего приложения?
Бэкап, в отличие от клона приложения, можно сделать в любой момент. Вместе с подготовкой копии программы и конфигурации также сохраняются текущие значения из регистров и битовых переменных контроллера. Более того, резервное копирование можно запустить только на том устройстве, на котором оно было создано.
Клон приложения, с другой стороны, делает копию логики, конфигурации и уставок и может быть запущен на другом совместимом целевом устройстве.
Что делать, если резервное копирование данных не было выполнено?
Бывает, что программатор загрузит программу во Flash-память, но забудет подготовить резервную копию приложения при программировании контроллера. В этом случае все работает нормально, когда ПЛК подключен к источнику питания.
Что можно сделать, чтобы не забыть выполнить резервное копирование? В системных регистрах ПЛК доступна информация о том, было ли выполнено резервное копирование для приложения и как настроены параметры автозагрузки и автозапуска.
Стоит размещать состояние таких битов состояния на экране оператора, что позволит вам легко заметить, включены ли механизмы безопасности в ПЛК. Если мы забыли об этом во время программирования ПЛК, ничего страшного не происходит — описанные процедуры можно выполнять на уже запущенном приложении.
Как производители защищают резервное копирование памяти в ПЛК?
Наиболее часто используется механизм резервного питания от аккумуляторной батареи. Стандартно используются батареи 3 В.
Учитывая относительно небольшой объем резервируемой памяти, срок службы такой батареи обычно составляет от 3 до 4 лет, после чего ее необходимо заменить, так как падение напряжения батареи ниже 3 В означает отсутствие резервной копии памяти при отключении питания ПЛК. Если система обнаруживает ошибку в своей памяти при включении, скорее всего, это вызвано неисправностью или низким зарядом батареи.
В ПЛК, где имеется больше памяти для резервного копирования, производители решают использовать аккумуляторы с функцией зарядки. Такой аккумулятор позволяет сохранить память до 5 лет. Механизмы, встроенные в ПЛК, непрерывно измеряют ряд его рабочих параметров (температура, уровень напряжения) и заряжают их до нужного уровня во время работы ПЛК.
Стоит напомнить, что уровень заряда батареи в новеньком контроллере не будет поддерживать оперативную память. После первого запуска такое устройство необходимо включить примерно на 8 часов, чтобы аккумулятор полностью зарядился.