1-RU-164160-1.1

Адаптация проектов Codesys V2.3

Цель документа

Настоящее руководство представляет собой сборник рекомендаций по ручной адаптации готового проекта из CODESYS V2.3 в ALTA IDE, с учетом особенностей нашей среды.

В планах развития ALTA IDE инструмент автоматической миграции проектов из CODESYS. Если у вас есть идеи, как улучшить это руководство, или предложения по будущему инструменту автоматической миграции, напишите нам. Если после прочтения у вас останутся вопросы обратитесь в техническую поддержку: support@owendigital.ru

Все документы доступны на сайте компании ОВЕН Цифровые решения.

Правила адаптации

Ниже описан пошаговый порядок адаптации проекта из CODESYS V2.3 в ALTA IDE. Рекомендуется соблюдать последовательность переноса программных объектов и настройки проекта.

Глобальные переменные

Адаптацию проекта рекомендуется начинать с переноса списка глобальных переменных. При последующем переносе программных объектов (PRG, FB, FUN), содержащих обращение к листу глобальных переменных, связь образуется сразу.

Graphic
Глобальные переменные в CODESYS V2.3

VAR_GLOBAL можно экспортировать аналогично программным объектам (описано ниже) и вставить после ключевого слова конца программного объекта ALTA IDE.

Создадим программу, в которой будут находится только глобальные переменные и для удобства назовем ее GVL (Global Variables List).

Graphic
Создание программы для объявления GVL
Graphic
Список глобальных переменных ALTA IDE внутри PRG

Перенос VAR_CONFIG не поддержан, т.к. используются для прямой адресации* переменных экземпляров ФБ.

* Прямая адресация к памяти не поддержана в ALTA IDE.

Примечание
В будущих версиях ALTA IDE компонент GVL (глобальные переменные) будет вынесен как отдельный объект в дерево проекта.
Примечание
Переменные, привязанные к таргет-файлу в проекте CODESYS V2.3, также являются глобальными и рекомендуются к переносу до вставки программных компонентов.Graphic

Программные объекты (PRG, FB, FUN)

Внимание
Ограничения миграции
Язык проектаЕсли проект написан на любом языке, кроме ST, его необходимо полностью переписать на ST (или на CFC, с момента поддержки в ALTA IDE)
Прямая адресацияЕсли проект использует прямую адресацию AT к ячейкам памяти ПЛК , его необходимо переработать
Псевдонимы (alias), диапазоныЕсли проект активно использует псевдонимы типов или ограничение диапазона, необходимо проверить работоспособность после переноса

Исходная программа PLC_PRG Codesys V2.3:

Graphic

Существует 2 способа копирования программы:

  • Ctrl+C/Ctrl+V — вставка в редактор ST компонента программа в ALTA IDE;

  • Экспорт .EXP файла (подробно рассмотрен ниже).

Процесс экспорта PRG/FB/FUN
Graphic
Graphic

Выберите Проект -> Экспорт...

Graphic
Graphic

Выберите необходимый объект (в нашем случае программу)

Graphic
Graphic

Введите имя и сохраните файл с расширением .exp

Graphic
Graphic

Откройте сохраненный файл и скопируйте код

Graphic
Graphic

Создайте в дереве проекта ALTA IDE необходимый программный объект (в нашем случае это программа programm_1).

Вставьте скопированный код в редактор ST, подсветка укажет на места коррекции

Graphic
Graphic

Скорректируйте код (объявление переменных таргета, проверка синтаксиса)

Примечание

Рекомендуем пользоваться вариантом через экспорт по следующим причинам:

а) При прямом копировании из редактора ST CODESYS V2.3 возможно нарушение кодировки комментариев на русском языке. Чтобы этого избежать, перед копированием переключите раскладку клавиатуры на русский язык.

б) В текстовом редакторе объединяются области VAR и кода программы, аналогично редактору ST ALTA IDE.

После вставки кода, необходимо проверить ключевые слова PRG/FB/FUN.

ПрограммаФункцияФункциональный блок
GraphicGraphicGraphic

Примечание
При переносе программных объектов не торопитесь импортировать все объекты сразу. Вставляйте по одной программе/ФБ/функции, исправляйте, следуя диагностике ошибок (подсветке), и переходите к следующему программному объекту.

Переменные, типы данных

Переменные, привязанные в таргет-файле в CODESYS V2.3 (Конфигурация ПЛК) следует создать в программе ALTA IDE, соблюдая исходный тип данных. В CODESYS V2.3 при привязке переменной к узлу таргету происходит автоматическое объявление. Дополнительное объявление в программе не требуется. В ALTA IDE требуется сначала объявить переменную с типом данных в программном объекте, а далее привязать в таблицу таргет-файла (мы сделали это в примере выше)

Основные типы данных в обеих IDE совпадают и соответствуют МЭК61131-3. Но существуют некоторые различия (улучшения) во временных и особых типах данных:

Тип данных / Особенности

ALTA IDE

CODESYS V2.3

Различия

TIME

64 бита, ns, T#213503d23h34m33s709ms551us615ns

32 бита, ms, максимум T#49d17h2m47s295ms)

+

TIME_OF_DAY (TOD)

32 бита, ms, 4 294 967 295 ms

32 бита, ms, 4 294 967 295 ms

-

DATE

32 бита, ms, битовая маска, D#0000-0-0 - D#9999-12-31

32 бита, D#1970-00-00 - D#2106-02-06

+

DATE_AND_TIME (DT)

64 бита, ms, DT#9999-12-31-23:59:59.999

32 бита, s, DT#1970-00-00-00:00:00 - DT#2106-02-06-06:28:15

+

INSTANT

64 бита, ns, T#213503d23h34m33s709ms551us615ns

Отсутствует

+

WSTRING, CHAR, WCHAR

Поддерживаются, UCS-2

Отсутствуют

+

STRING

UTF-8

Однобайтовая

+

Указатели

64 бита (ULINT), `REF_TO`/`POINTER TO

32 бита, `POINTER TO`

+

Структуры (Литералы)

Имена полей обязательны `(x:=1, y:=2)`

Имена полей можно опускать `(1, 2)`

+

Библиотеки

Основные библиотеки для ALTA IDE аналогичны библиотекам CODESYS V2.3, за исключением минорных исправлений. Более подробно с составом библиотек можно ознакомиться в документации на конкретную библиотеку ALTA IDE.

Перед вызовом функции или функционального блока из библиотеки в ALTA IDE необходимо указать имя библиотеки через точку (необязательно для библиотеки Standard). Например, вызов функции округления из библиотеки OSCAT_BASIC в коде будет выглядеть так: OSCAT_BASIC.CEIL

Важно сохранить регистр именования библиотеки - UTIL.HYSTERESIS вызовет ошибку компиляции, util.HYSTERESIS - нет. Примеры вызова и использования функций и ФБ из библиотек описаны в документации на библиотеки.

Наличие библиотекиStandardUtilSysLibComSysLibSocketOSCAT_BASICSysLibTime
ALTA IDE

+

+

+

+

+

+

CODESYS V2.3

+

+

+

+

+

+

Вызов функции/ФБ

util.

SysLibCom.

SysLibSocket.

OSCAT_BASIC.

SysLibTime.

Задачи

На текущий момент в ALTA IDE поддержано только циклическое выполнение задач. Следует учитывать это и при адаптации создавать задачи вручную.

Graphic
Менеджер задач в ALTA IDE