Эту задачу решает спецификация CiA 302-3 Firmware Update Process, разработанная организацией CAN in Automation (CiA). Она описывает стандартизированный механизм обновления встроенного программного обеспечения поверх CAN/CANopen и определяет «последнюю милю» доставки прошивки от системы управления обновлениями до конечного контроллера.
В отличие от простого копирования файла, CiA 302-3 регламентирует весь жизненный цикл обновления. Спецификация определяет, как проверить готовность устройства к обновлению, каким образом передавать прошивку по каналу с ограниченной пропускной способностью, как контролировать выполнение каждой стадии процесса, обрабатывать ошибки и подтверждать успешное завершение операции.
Одним из ключевых элементов стандарта является машина состояний, описывающая последовательность переходов между этапами Idle → Preparing → Downloading → Verifying → Activating → Rollback/Success. Переход к следующему состоянию происходит только после успешного завершения предыдущего этапа, что исключает активацию не полностью загруженной или непроверенной прошивки. Такой подход позволяет синхронизировать процесс обновления с фактическим состоянием контроллера.
Передача данных выполняется посредством Segmented или Block SDO, что соответствует особенностям CANopen. Прошивка разбивается на небольшие блоки, каждый из которых подтверждается устройством. При временной потере связи процесс может быть продолжен с последнего успешно переданного сегмента, без необходимости повторной передачи всего образа.
Отдельное внимание в спецификации уделено вопросам надежности и безопасности. CiA 302-3 предусматривает контроль целостности образа с использованием контрольных сумм, а современные реализации дополняют его проверкой цифровых подписей. Если проверка завершается неуспешно, устройство не активирует новую прошивку и сообщает о возникшей ошибке. Стандарт предусматривает механизм rollback, позволяющий автоматически вернуться к предыдущей рабочей версии программного обеспечения в случае сбоя питания, аппаратной ошибки или невозможности корректного завершения обновления.
Важным преимуществом CiA 302-3 является совместимость с существующей инфраструктурой CANopen. Для внедрения механизма обновлений не требуется модернизация кабельной сети или изменение топологии системы: взаимодействие осуществляется через стандартные объекты словаря CANopen и сервисы SDO. Более того, принципы, заложенные в CiA 302-3, успешно применяются и в других промышленных сетях, таких как CANopen over EtherCAT, Ethernet POWERLINK и других реализациях семейства CiA.
Практическое применение такой архитектуры требует еще одного важного компонента — промышленного шлюза, который связывает систему оркестрации обновлений с полевой сетью. В нашем случае такой шлюз был разработан для платформы
RITMS UP2DATE, построенной на базе Eclipse HawkBit. Его задача — принимать артефакты обновлений от системы верхнего уровня, применять политики развертывания и выполнять доставку прошивок до устройств по протоколу CiA 302-3, возвращая результаты выполнения обратно в систему управления.
Фактически шлюз становится исполнителем команд, сформированных оркестратором. Перед запуском обновления он определяет доступность устройств в сети CANopen, проверяет совместимость целевой версии прошивки, убеждается, что оборудование находится в состоянии, допускающем обновление, и только после этого инициирует процесс Firmware Update Process. Далее шлюз организует передачу данных через SDO, контролирует прохождение всех этапов машины состояний, обрабатывает ошибки, тайм-ауты и возможные откаты, а затем синхронизирует результаты с RITMS UP2DATE. Благодаря этому инженер работает не с отдельными CANopen-сообщениями, а с понятным жизненным циклом обновления устройства.
Подобное разделение ответственности является одним из ключевых преимуществ архитектуры. RITMS UP2DATE отвечает за управление версиями, политиками, группами устройств, кампаниями обновлений и аудитом. Сетевая инфраструктура обеспечивает доставку данных, резервирование каналов и безопасность передачи. Шлюз реализует требования CiA 302-3, взаимодействует с CANopen-узлами и выполняет стандартизированный процесс обновления. В результате каждый компонент решает собственную задачу, а вся система остается масштабируемой, отказоустойчивой и удобной в эксплуатации.
ЦПР РТСофт разрабатывает промышленное программное обеспечение, нацеленное на решение реальных производственных и экономических задач вашего бизнеса. Мы имеем масштабный опыт реализации проектов в энергетике, металлургии и нефтехимии, предлагая профессиональный дизайн и интеграцию эффективных IT-решений для промышленных предприятий и корпораций. Если вам требуется объединить различные системы управления, перейти на открытые архитектуры или обеспечить совместимость оборудования от разных вендоров, отправьте запрос на
info@list.dev.rtsoft.ru. Мы обязательно поможем найти оптимальное решение.