Перенос проекта между несовместимыми версиями встроенного ПО контроллера

Если проект создан для контроллера со встроенным ПО, версия которого несовместима с имеющейся на доступном контроллере, можно вручную, с помощью двух открытых экземпляров CODESYS, преобразовать проект к нужной версии встроенного ПО. Фактически, такое преобразование есть поэтапное копирование различных частей проекта из одного его экземпляра, для несовместимой версии, в другой, вновь созданный, где target-файл выбран верно.

Во время конвертирования следует учесть, что причины несовместимости могут быть следующими:

  • различие имен и допустимых диапазонов значений переменных конфигурации, одинаковых по своему назначению;

  • различия в обозначении адресов соответствующих входов и выходов;

  • разница в наличии необходимых входов и выходов, в том числе служебного назначения;

  • разница в объемах доступной памяти.

Перечисленные причины влекут за собой возможную необходимость исправления исходных текстов POU внутри нового проекта, или даже нереализуемость некоторых функций (в случае отсутствия в конфигурации). Проект, который нужно перенести, далее будет называться «старый проект», а проект, в который происходит копирование – «новый проект».

Для переноса проекта между несовместимыми версиями встроенного ПО контроллера следует:

  1. Перед переносом установить target-файлы для тех версий встроенного ПО, для которых существует старый вариант проекта и будет сформирован его новый вариант.

  2. Открыть два экземпляра CODESYS. В обоих открыть старую версию проекта, одно окно далее будет использоваться как источник данных по проекту («старый проект»), второй – как приемник («новый проект»). Рекомендуется в окне с проектом-приемником сохранить проект под другим именем.

  3. В новом проекте изменить конфигурацию оборудования, то есть выбрать target-файл, соответствующий контроллеру и версии прошивки, которые планируется использовать далее. Target-файл выбирается на вкладке «Ресурсы» в режиме «Настройки целевой платформы», нажатием на кнопку селектора «Конфигурация».

    Graphic
    Смена target-файла в режиме «Настройки целевой платформы»
  4. В новом проекте выбрать Дополнения → Стандартная конфигурация в главном меню и подтвердить сброс конфигурации проекта до стандартной.

  5. Последовательно, сохраняя порядок, создать в новом проекте все те модули, что были в старом проекте. Модули следует добавлять в том, порядке, в котором они перечислены сверху вниз в старом проекте.

  6. Задать модулям параметры в соответствии со старым проектом, с учетом различий в требуемых значениях временных и иных параметров в новой версии конфигурации. Во время конфигурирования следует учитывать, что некоторые параметры могут отсутствовать, а у других параметров может смениться способ их представления или диапазоны значений, в частности по-другому могут задаваться временные параметры модуля ШИМ.

    Примечание
    Например, могут отсутствовать некоторые параметры портов передачи данных RS-232, RS-485, или дискретных входов и выходов, например, в некоторых случаях, такой параметр, как Visibility.
    Примечание
    К параметрам, у которых может измениться способ их представления или диапазоны значений, относится постоянная времени фильтра быстрых входов-выходов. Постоянная времени фильтра может уменьшится в связи с увеличением быстродействия фильтра.
  7. Задать каналам ввода-вывода имена в соответствии со старым проектом. Возможность задавать каналам ввода-вывода имена и использовать их в разработанной программе, избегая таким образом использования адресов, существенно облегчает перенос проекта между платформами. Если в старом проекте использовались имена каналов, то следует задать их в настройках объектов точно в том же виде и на тех же местах, как это было в старом проекте.

  8. Проверить распределение памяти входов-выходов. Конфигурация входов и выходов могла измениться. Новая версия контроллера ПЛК110 [М02] (target-файл версии 3.04) имеет следующие изменения:

    • отсутствуют некоторые переменные в модуле «Статистика»: нет внутренней температуры контроллера и переменной оставшегося времени работы при работе от батареи;

    • не требуется создание подмодулей в случае использования переменных типа unsigned;

    • все адреса Modbus для устройств master и slave обозначаются как %Q.

    Если в пользовательской программе использовались переменные внутренней температуры контроллера и оставшегося времени работы при работе от батареи, подпрограммы, их использующие, необходимо реализовать другим способом или не задействовать при компиляции проекта.

    Подпрограммы, которые используют переменные типа unsigned, и в которых имеется обращение к переменным по адресам, могут нуждаться в модификации в связи с тем, что вид адресов переменных типа unsigned изменится. Также изменится вид адресов входов и выходов в модулях Modbus. Если данные адреса присутствуют в программе в чистом виде (например, в блоке объявления переменных, хотя могут и во всем тексте программы), то необходимо произвести замену адреса там, где это необходимо.

    Если в конфигурации старой версии проекта входам и выходам присвоены имена и в тексте программы обращение к входам и выходам осуществляется только по присвоенным именам, то достаточно будет изменить конфигурацию входов и выходов контроллера, введя соответствующие имена соответствующим ячейкам памяти, связанным с вводом-выводом.

  9. Если требуется, то скорректировать код программы, если используются значения из модуля статистики или модуля ШИМ (см. выше). Изменения могут коснуться не только конфигурации ПЛК, но и текста программы. Поэтому, при наличии обращениий к параметрам модуля ШИМ или модуля статистики в тексте конвертируемой программы следует проконтролировать каждый из фрагментов кода, содержащий данные обращения и модифицировать код, с целью сохранения его работоспособности, либо исключить его из проекта с целью сохранения работоспособности остального проекта.

  10. Скомпилировать программу, настроить канал связи и загрузить проект в ПЛК.