Приведенная информация актуальна для контроллеров СПК1хх [М01] и ПЛК2xx.
В прошивке 1.0.1229.1031 для СПК1хх [М01] загрузочное приложение создавалось неявно при загрузке проекта - такой подход используется в современных версиях CODESYS по умолчанию.
Этот подход имеет существенный недостаток - пользователь не может избежать загрузочного приложения даже в тех случаях, когда оно не требуется.
Например, в процессе отладки некорректно написанная программа может привести к перезагрузке контроллера.
Неявно созданное загрузочное приложение в данном случае приведет к циклической перезагрузке контроллера - поэтому потребуется перейти в конфигуратор и удалить проект.
В прошивке 1.1.0611.1056 для СПК1хх [М01] и всех прошивках для ПЛК2хх (точнее - в таргет-файлах для этих прошивок) неявное создание загрузочного приложения отключено.
Загрузочное приложение создается только при выполнении команды Создать загрузочное приложение из меню Онлайн.
Этот подход не имеет описанного выше недостатка, но при определенных обстоятельствах может привести к неочевидному для пользователя поведению контроллера.
Предположим, в контроллере создано загрузочное приложение. Происходит загрузка нового проекта (или онлайн-изменение).
В этот момент выполняется инициализация области RETAIN-переменных - даже если они отсутствуют в проекте (потому что, например, узел таргет-файла Watchdog использует Retain-память).
Предположим, пользователь не создает загрузочного проекта и перезагружает контроллер по питанию.
При старте система исполнения определяет, что загрузочное приложение и образ retain-памяти не соответствуют друг другу.
В результате генерируется исключение RETAIN_IDENTITY_MISMATCH (его можно увидеть на дисплее, если в конфигураторе включен режим обработки ошибок TraceInfo или TraceInfoAndReboot).
Пользовательский проект, соответственно, не запускается.
Если опять перезагрузить контроллер - то retain-память будет заново проинициализирована и проект будет запущен.
Таким образом, перед перезагрузкой контроллера рекомендуется создать загрузочное приложение, чтобы избежать описанной выше ситуации.
При желании пользователь может включить неявное создание загрузочного приложения при загрузке и онлайн-изменении.
Это выполняется в настройка приложения (Application - Свойства - Установки загрузочного приложения).
27-08-2019 14-57-04.png