Работа с CODESYS

Для запуска CODESYS следует вызвать команду Пуск → Программы → 3S Software → CoDeSys V2.3. Откроется главное окно CODESYS.

Graphic
Главное окно CODESYS

Создание проекта

Для создания нового проекта (пользовательской программы) следует:

  1. В главном окне ПО CODESYS вызвать команду Файл → Создать в главного меню или нажать кнопку Graphic на панели инструментов.

  2. В открывшемся окне «Настройки целевой платформы» (Target Settings) нажатием на кнопку у правого края поля «Конфигурация» (Configuration) раскрыть список предварительно установленных на ПК target-файлов (см. раздел). В списке выделить требуемый файл и щелкнуть на его названии ЛКМ.

    Graphic
    Окно «Настройки целевой платформы» (Target Setting)
    Graphic
    Выбор конфигурации
  3. В открывшихся вкладках окна «Настройки целевой платформы» (Target Setting) отображаются установленные производителем значения параметров целевой платформы. Как правило, установленные производителем значения параметров не требуют изменения. Исключение могут составить размеры сохраняемой при отключении питания retain-памяти и памяти входов-выходов. Объем retain-памяти по умолчанию установлен «16#4000», что соответствует 16 кбайт.

    Примечание
    В предыдущей версии ПО контроллера для увеличения размера retain-памяти требовалось перейти на вкладку «Распределение памяти» (Memory Layout) окна «Настройки целевой платформы» (Target Setting) и исправить значение в строке Retain («Энергонез.»): значение «16#1000» заменить на «16#4000», в настоящей же версии это значение по умолчанию установлено «16#4000».
  4. Для увеличения размера памяти входов-выходов (%I и %Q) следует перейти на вкладку «Распределение памяти» (Memory Layout) окна «Настройки целевой платформы» (Target Setting) и исправить значение в строках «Входы»/«Выходы»: значение «16#1FFF» заменить на «16#2FFF».

    Graphic
    Увеличение размера памяти входов-выходов на вкладке «Распределение памяти» (Memory Layout)
  5. Нажать кнопку «ОК» окна «Настройки целевой платформы» (Target Setting).

  6. В открывшемся окне «Новый программный компонент» (New POU) в поле «Имя нового POU» (Name of new POU) отображается заданное по умолчанию имя новой главной программы проекта (PLC_PRG) – его не следует изменять. В группе переключателей «Тип POU » (Type of POU) отображается заданный по умолчанию тип новой главной программы проекта Программа (Program) – его также не следует изменять.

    Graphic
    Окно «Новый программный компонент» (New POU)
  7. В группе переключателей «Язык реализации» (Language of the POU) следует выбрать требуемый язык программирования (о языках программирования см. раздел). В правой верхней области главного окна программы откроется окно редактора, в котором создается программа, исполняемая контроллером. В зависимости от выбранного языка программирования это окно выглядит по-разному (на рисунке ниже пример для языка программирования LD). В верхней части окна отображается область объявления переменных – «Редактор объявлений», в нижней – область редактора собственно программы.

    Graphic
    Главное окно проекта

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

    Graphic
    Контекстное меню области редактирования программы на языке программирования LD

Основные элементы интерфейса

Graphic
Основные элементы интерфейса

Главное окно CODESYS содержит следующие элементы:

  1. Главное меню – перечень доступных групп команд ПО. В различных режимах работы группы команд главного меню дополняются специализированными командами.

  2. Панель инструментов – кнопки, дублирующие часто используемые команды программы. В различных режимах работы панель инструментов дополняется специализированными панелями.

    Примечание
    Значение команд главного меню и панели инструментов, а также горячие клавиши для вызова см. в разделе.
  3. Организатор объектов – переключатель групп режимов работы ПО (см. раздел).

  4. Рабочая область – служит для отображения окон режимов работы, кода и элементов проекта.

  5. Окно (область) сообщений – служит для отображения сообщений компилятора, результатов поиска и списка перекрестных ссылок.

  6. Окно режима работы – служит для изменения параметров проекта.

  7. Строка статуса – содержит информацию о текущем состоянии проекта (см. раздел).

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

Организатор объектов

Организатор объектов расположен в левой части главного окна программы (см. рисунок) и предназначен для вызова режимов работы ПО. Организатор объектов включает вкладки:

  • «POU»;

  • «Типы данных»;

  • «Визуализации»;

  • «Ресурсы».

В пределах вкладок отображаются иерархические списки соответствующих объектов проекта (например, режимов работы ПО или объектов в пределах одного и того же режима).

Для перехода на требуемую вкладку следует щелкнуть ЛКМ на наименовании требуемой вкладки (в нижней части организатора объектов). Для перехода к требуемому объекту в пределах выбранной вкладки следует щелкнуть ЛКМ на наименовании требуемого объекта или перейти на требуемую строку с помощью клавиш со стрелками. Для открытия окна режима (или окна одного из объектов режима) следует дважды щелкнуть ЛКМ на наименовании требуемого объекта или, выбрав наименование требуемого объекта, нажать клавишу Enter. Окно режима (или окно одного из объектов режима) откроется в рабочей области главного окна.

«POU»

На вкладке «POU» отображается иерархический список программных компонентов (POU) проекта: функциональных блоков, функций и программ. Отдельные POU могут включать действия (подпрограммы). Каждый программный компонент состоит из раздела объявлений и кода. Для написания всего кода POU используется только один из поддерживаемых CODESYS языков программирования.

«Типы данных»

На вкладке «Типы данных» отображается иерархический список типов данных, используемых в проекте. Кроме стандартных типов данных можно использовать определяемые пользователем типы данных: структуры, перечисления и ссылки.

«Визуализации»

На вкладке «Визуализации» отображается иерархический список элементов визуализации пользовательской программы – графических представлений объекта управления. Визуализация непосредственно связана с созданной в CODESYS пользовательской программой контроллера. Редактор визуализации CODESYS предоставляет набор готовых графических элементов, которые можно соответствующим образом связать с переменными проекта.

В режиме «Online» представление элементов на экране изменяется в зависимости от значений переменных (см. раздел). Визуализация может исполняться в системе программирования, в отдельном приложении «CODESYS HMI».

«Ресурсы»

На вкладке «Ресурсы» отображается иерархический список ресурсов – объектов CODESYS, обеспечивающих конфигурацию проекта:

  • глобальные переменные, используемые во всем проекте;

  • менеджер библиотек для подключения необходимых библиотек к проекту;

  • журнал записи действий во время исполнения;

  • конфигурация тревог для конфигурирования обработки тревог в проекте;

  • конфигурация ПЛК для конфигурирования аппаратуры контроллера;

  • конфигурация задач для управления задачами;

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

  • настройки целевой платформы.

Двойное нажатие ЛКМ на требуемой записи в списке «Ресурсы» приводит к открытию в рабочей области окна выбранного режима («ресурса»).

Строка статуса

В строке статуса отображаются:

  • при выборе пункта меню – его описание;

  • во время работы в текстовом редакторе – указывается позиция, в которой находится курсор (например, Line:5, Col.11);

  • в режиме визуализации – отображаются координаты курсора X и Y, которые отсчитываются относительно верхнего левого угла окна. Если указатель мыши находится на элементе, или над элементом производятся какие-либо действия, то отображается номер этого элемента;

  • при вставке элемента – отображается название элемента (например, Rectangle);

  • во время работы в режиме «Online» надпись Online в строке статуса выделяется черным цветом, в ином случае надпись серая. В режиме «Online» можно определить, в каком состоянии находится пользовательская программа:

    • SIM – в режиме эмуляции;

    • RUN – пользовательская программа запущена;

    • BP – установлена точка останова;

    • FORCE – фиксируются переменные.

Команды главного меню

Элементы управления главного меню
Команда менюКнопка панели инструментовГорячие клавишиОписание команды
Файл (File)
Создать (New)GraphicСоздает новый проект. Новый проект получает имя «Untitled»
Создать по шаблону (New from template)Открывает окно выбора файла, в котором следует выбрать требуемый файл проекта (*.pro), который послужит шаблоном нового проекта. Новый проект получает имя «Untitled»
Открыть (Open)Graphic<Ctrl + O>Открывает ранее сохраненный проект. Если в момент вызова команды какой-то проект уже открыт и в него были внесены изменения, то CODESYS предложит сохранить открытый проект
Закрыть (Close)Закрывает открытый в данный момент проект. Если с момента открытия в проект были внесены изменения, то CODESYS предложит сохранить открытый проект
Сохранить (Save)Graphic<Ctrl + S>Сохраняет файл проекта
Сохранить как… (Save as…)Сохраняет проект или библиотеку под новым именем. Исходный файл не изменяется
Сохранить/отправить архив (Save/Mail Archive…)Создает архив проекта. Все файлы, которые используются проектом CODESYS, сохраняются и сжимаются в файл с расширением *.zip, который удобно хранить и пересылать по электронной почте
Печать (Print)<Ctrl + P>Печатает содержание активного окна
Параметры печати (Printer Setup…)Открывает окно настройки печати
Выход (Exit)<Alt + F4>Закрывает CODESYS. Если в момент вызова этой команды открыт проект, то программа предложит его сохранить
Правка (Edit)
Отменить (Undo)<Ctrl + Z>Отменяет последнее изменение, сделанное в открытом редакторе или в организаторе объектов. Используя эту команду, можно отменить все изменения, выполненные после открытия окна
Вернуть (Redo)<Ctrl + Y>Возвращает последнее изменение, отмененное в открытом редакторе или в организаторе объектов командой Undo
Вырезать (Cut)Graphic<Ctrl + X>Перемещает выделенный элемент в буфер. Выделенный элемент удаляется из окна редактора
Копировать (Copy)Graphic<Ctrl + C>Копирует выделенный элемент в буфер, содержимое окна редактора не изменяется
Вставить (Paste)Graphic<Ctrl + V>Вставляет содержимое буфера, начиная с текущей позиции курсора в окне редактора. В графических редакторах команда выполняется только если содержимое буфера соответствует выбранному элементу
Удалить (Delete)<Delete>Удаляет выбранную область, содержимое буфера не изменяется
Найти (Find)Graphic<Ctrl + F>Находит введенный текст в активном окне редактора. Открывает диалоговое окно поиска
Найти далее (Find next)Graphic<F3>Начинает поиск введенного текста с текущей позиции и далее
Найти и заменить (Replace)<Ctrl + H>Находит заданный текст и заменяет его на введенный. Вызов команды открывает диалоговое окно поиска и замены выбранного текста
Ассистент ввода (Input Assistant)<F2>Открывает диалоговое окно выбора элемента, который можно ввести в текущей позиции. В левом столбце следует выбрать категорию элементов, в правом – требуемый элемент, а затем нажать «OK»
Автоматическое объявление переменных (Auto Declare)<Shift + F2>Открывает диалог объявления переменных
Следующая ошибка (Next Error)<F4>Показывает следующую ошибку, если проект скомпилирован с ошибками. Открывается соответствующий редактор в том месте, где допущена ошибка, а в окне сообщений отображается краткое описание ошибки
Предыдущая ошибка (Previous Error)<Shift + F4>Показывает предыдущую ошибку, если проект скомпилирован с ошибками. Открывается соответствующий редактор в том месте, где допущена ошибка, а в окне сообщений отображается краткое описание ошибки
Макросы (Macros)Показывает список всех определенных в проекте макрокоманд (макросов). Во время выполнения макроса открывается окно «Process Macro», в котором выводится имя макроса и имя активной команды
Проект (Project)
Компилировать (Build)<F11>Компилирует только POU, которые были изменены
Компилировать все (Rebuild all)Компилирует весь проект, даже если он не был изменен
Очистить все (Clear all)Стирает всю информацию о предыдущей компиляции и загрузке проекта в контроллер
Загрузить информацию о загрузке кода (Load Download-Information)Загружает информацию о загрузке кода в контроллер, если она была сохранена в директории, отличной от той, в которой находится проект
Перевод на другой язык (Translate into another language)Переводит текст проекта на другой язык (используется вспомогательный текстовый файл, созданный в CODESYS и переведенный в текстовом редакторе на требуемый язык)
Документ… (Document)Создает версию проекта для печати
Экспорт… (Export…)Экспортирует проект из одного инструмента МЭК программирования в другой. Можно экспортировать POU, типы данных, визуализации, описания подключенных к проекту библиотек (но не сами библиотеки) и другие ресурсы
Импорт… (Import…)Импортирует в проект данные из выбранного файла
Siemens импорт (Siemens Imports)Импортирует переменные и POU из файлов Siemens-STEP5 и Siemens-STEP7
Объединить… (Merge)Объединяет два проекта
Сравнить… (Compare)Сравнивает два проекта или разные версии одного и того же проекта
Информация о проекте (Project info)Сохраняет дополнительную информацию о проекте
Глобальный поиск (Global Search)Graphic<Ctrl + F>Находит заданный текст в POU, типах данных или разделе глобальных переменных проекта
Глобальная замена (Global Replace)Находит заданный текст в POU, типах данных или в глобальных переменных проекта и заменяет его другим
Просмотр экземпляра (View Instance)Показывает экземпляры выбранного в организаторе объектов функционального блока. Отображает список всех экземпляров выбранного функционального блока и его реализаций
Показать дерево вызовов (Show Call Tree)Показывает дерево вызовов выбранного объекта в новом окне (проект должен быть скомпилирован)
Показать перекрестные ссылки (Show Cross Reference)Открывает диалоговое окно, в котором отображены адрес, место расположения (POU, номер строки) переменной (проект должен быть скомпилирован)
Контроль (Check)Команды этого меню используются для дополнительного семантического контроля (проект должен быть скомпилирован без ошибок)
Добавить действие (Add Action)Создает действие, связанное с блоком, выделенным в организаторе объектов. Требуется задать имя действия и язык, на котором оно будет описано
Пароли Группы пользователей… (User Group Passwords)Устанавливает права доступа к объекту для различных групп пользователей
Вставить (Insert)
Ключевое слово… (Declaration keywords)Вывод списка ключевых слов для быстрого ввода ключевых слов, допускаемых в разделе объявлений POU. После выбора ключевого слова из списка, оно будет вставлено в текущую позицию курсора
Тип… (Types)Вывод списка доступных типов для их быстрого ввода
Новое объявление (New declaration)Добавляет новую переменную в таблицу редактора объявлений
Дополнения (Extras)

Команды данного пункта меню могут меняться в зависимости от режима работы

Онлайн (Online)
Подключение (Login)GraphicУстанавливает соединение CODESYS с контроллером (или запускает программу эмуляции) и включает режим «Online»
Отключение (Logout)GraphicРазрывает соединение с контроллером или заканчивает работу программы (в режиме эмуляции). Включает режим «Offline»
Загрузка (Download)Загружает код проекта в контроллер
Старт (Run)<F5>Запускает программу на выполнение в контроллере или в режиме эмуляции
Стоп (Stop)<Shift + F8>Останавливает программу при ее выполнении в контроллере или в режиме эмуляции
Сброс (Reset)Сброс заново инициализирует все переменные, за исключением VAR RETAIN. Если определены начальные значения переменных, они будут присвоены (включая VAR PERSISTENT). Прочие переменные приобретут стандартные значения по умолчанию (например, 0 для целых типов). Данный сброс аналогичен выключению и включению питания ПЛК, при работающей программе
Сброс (холодный) Reset (cold)Холодный сброс. Выполняет те же действия, что и при команде «Сброс», и дополнительно выполняет инициализацию энергонезависимой области памяти RETAIN
Сброс (заводской) Reset (original)Выполняет «Сброс (холодный)», а также инициализация области PERSISTENT и удаление программы пользователя. Восстанавливаются заводские настройки контроллера
Переключить точку останова (Toggle Breakpoint)<F9>Устанавливает точку останова в текущей позиции активного окна. Если в этой позиции уже стоит точка останова, то она будет удалена
Диалог точек останова (Breakpoint Dialog)GraphicОткрывает диалоговое окно управления точками останова в проекте, в нем указаны все заданные точки останова
Шаг поверху (Step over)Graphic<F10>Выполняет одну инструкцию программы. Если это инструкция вызова POU, то данный POU выполняется целиком, затем программа останавливается
Шаг детальный (Step in)<F8>Выполняет программу по шагам, с заходом в вызываемые блоки. Вызываемые POU открываются в отдельных окнах
Один цикл (Single Cycle)<Ctrl + F5>Выполняет один рабочий цикл контроллера. Команду можно повторять многократно для отслеживания работы программы по рабочим циклам
Записать значения (Write values)<Ctrl + F7>Перед началом рабочего цикла присваивает переменной (или нескольким переменным) заранее введенные значения
Фиксировать значения (Force values)<F7>

Фиксирует значения одной или нескольких переменных. Заданное значение записывается в начале и в конце каждого управляющего цикла:

  1. Чтение входов.

  2. Фиксация переменных.

  3. Выполнение кода программы.

  4. Фиксация переменных.

  5. Запись выходов.

Освободить фиксацию (Release force)<Shift + F7>Отменяет фиксацию значений переменных
Диалог Запись/Фиксация (Write/Force-Dialog)<Ctrl + Shift + F7>Открывает окно, содержащее таблицы записываемых (Writelist) и фиксируемых (Forcelist) переменных. В левом столбце таблиц отображаются имена переменных, в правом – их установленные значения
Показать стек вызовов… (Show Call Stack)Показывает список вызванных POU, когда программа остановлена в точке останова
Отображать поток выполнения (Display Flow control)Включает режим контроля потока исполнения. Если данная возможность поддерживается целевой платформой, то каждая строка или цепь программы, которая была выполнена в контроллере в предыдущем управляющем цикле, будет выделена
Режим эмуляции (Simulation)Graphic«Старт». Включает режим эмуляции, программа будет выполнена в ПК. Если режим эмуляции выключен, программа будет запущена в контроллере
Graphic«Стоп». Останавливает программу при ее выполнении в контроллере или в режиме эмуляции
Параметры связи (Communication Parameters)Выводит диалоговое окно настройки параметров связи ПК и ПЛК (если используется OPC или DDE сервер, то эти параметры можно настроить из их конфигурации)
Загрузка исходных текстов (Sourcecode download)Загружает исходные тексты проекта в контроллер (именно исходные тексты проекта – не код проекта, который создается при компиляции)
Создание загрузочного проекта (Create bootproject)Делает код проекта автоматически загружаемым при перезапуске контроллера: проект будет выполняться автоматически при перезапуске ПЛК
Записать файл в ПЛК (Write file to PLC)Записывает в ПЛК выбранный файл (любого типа), размер файла ограничивается размером карты памяти контроллера
Читать файл из ПЛК (Read file from PLC)Считывает ранее сохраненный в контроллере файл и сохраняет его в указанную директорию на ПК
Окно (Window)
По вертикали (Tile Vertical)Упорядочивает размещение окон по вертикали так, чтобы они не перекрывали друг друга и полностью занимали рабочую область
По горизонтали (Tile Horizontal)Упорядочивает размещение окон по горизонтали так, чтобы они не перекрывали друг друга и полностью занимали рабочую область
Каскадом (Cascade)Упорядочивает окна каскадом – каждое следующее поверх остальных
Выровнять свернутые (Arrange Symbols)Выстраивает свернутые окна в ряд в нижней части Рабочего окна
Закрыть все (Close All)Закрывает все окна
Сообщения (Messages)<Shift + Escape>Открывает окно сообщений, которое содержит информацию о предыдущей компиляции, проверке или сравнении проекта
Менеджер библиотек (Library Manager)Открывает окно менеджера библиотек
Бортжурнал (Log)Открывает «бортжурнал» – детальный протокол последовательности действий, которые были выполнены во время «Online»-сессии. Бортжурнал записывается в двоичный файл формата *.log
Справка (Help)
Содержание… (Contents)Открывает окно системы оперативной помощи
Поиск… (Search)Переход к контекстному поиску по текстам оперативной помощи
О программе… (About)Открывает окно с информацией о программе CODESYS

Основные режимы (редакторы)

CODESYS предоставляет встроенные специализированные редакторы для всех пяти языков стандарта МЭК 61131-3 и дополнительный CFC редактор:

  • список инструкций (IL);

  • функциональные блоковые диаграммы (FBD);

  • релейно-контактные схемы (LD);

  • структурированный текст (ST);

  • последовательные функциональные схемы (SFC):

    • мониторинг времени исполнения шагов;

    • автоматический анализатор причин ошибок;

    • набор управляющих флагов: сброс, разрешение мониторинга, фиксация переходов и т. д.

  • непрерывные функциональные диаграммы (CFC):

    • автоматическая расстановка и соединение;

    • макроопция для структурирования больших диаграмм.

Специальные редакторы отвечают за прикладные функции рабочей среды:

  • конфигуратор задач задает:

    • циклические задачи и задачи, исполняемые по событиям;

    • параметры сторожевого таймера;

    • настройку событий.

  • конфигуратор ввода-вывода обеспечивает:

    • Profibus конфигурирование на основе GSD файлов;

    • CANopen конфигурирование на основе EDS файлов;

    • ASI конфигурирование.

Языки программирования

В соответствии с требованиями стандарта МЭК 61131-3 CODESYS поддерживает следующие языки программирования:

  • IL;

  • ST;

  • FBD;

  • LD;

  • SFC.

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

Подробное описание языков программирования приведено в документе «Руководство пользователя по программированию ПЛК в CoDeSys V2.3» на сайте owen.ru.

IL (список инструкций)

IL – текстовый язык, схожий с ассемблером STEP5 компании SIEMENS. Все операции языка производятся через аккумулятор, язык IL легко читается в случае небольших программ.

Каждая инструкция начинается с новой строки и содержит оператор и, в зависимости от типа операции, один и более операндов, разделенных запятыми.

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

Graphic
Пример программы на языке IL
ST (структурированный текст)

ST – текстовый язык высокого уровня, схожий с языком Pascal. ST оптимален для программирования циклов и условий и состоит из набора инструкций, которые могут использоваться в условных операторах (IF…THEN…ELSE) и в циклах (WHILE…DO).

Graphic
Пример программы на языке ST
FBD (функциональные блоковые диаграммы)

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

Graphic
Пример программы на языке FBD
LD (релейные диаграммы)

LD – графический язык, реализующий структуры электрических цепей. Программа на языке LD состоит из схем с последовательностью цепей, каждая из которых содержит логическое или арифметическое выражение, вызов функционального блока, переход или инструкцию возврата. Язык сложен в использовании для работы с аналоговыми типами данных.

LD лучше всего подходит для построения логических переключателей и используется для программирования большинства ПЛК. Допускается переключение между языками FBD и LD.

Диаграмма LD состоит из ряда цепей. Слева и справа схема ограничена вертикальными линиями – шинами питания. Между ними расположены цепи, образованные контактами и обмотками реле, по аналогии с обычными электронными цепями. Слева цепь начинается  набором контактов, которые посылают слева направо состояние «ON» или «OFF», соответствующие логическим значениям ИСТИНА или ЛОЖЬ. Каждому контакту соответствует логическая переменная. Если переменная имеет значение ИСТИНА, то состояние передается через контакт, если ЛОЖЬ, то правое соединение получает значение «OFF» (Выключено).

Graphic
Пример программы на языке LD
SFC (последовательные функциональные схемы)

SFC – графический язык, который используется для структурирования приложений и состоит из шагов и переходов. Действия выполняются внутри шагов. SFC не конвертируется в другие языки.

Graphic
Пример программы на языке SFC
CFC (непрерывные функциональные схемы)

CFC – язык непрерывных функциональных схем. В отличие от FBD, язык CFC не использует цепи, но дает возможность свободно размещать компоненты и соединения, что позволяет создавать, в частности, обратные связи.

Примечание
Свобода размещения компонентов и соединений приводит к тому, что требуется задавать порядок выполнения программы. Группа команд «Порядок» контекстного меню позволяет отобразить порядковые номера (по очередности выполнения) элементов программы и изменить этот порядок в случае необходимости. Порядковые номера элементов отображаются в затемненном поле у правого верхнего угла каждого элемента.
Graphic
Пример программы на языке CFC

Редактор

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

Область кода может включать графический или текстовый редактор, раздел объявлений – это всегда текст. Разделы кода и объявлений разделены горизонтальной границей, которую можно перетаскивать мышкой.

Окно редактирования открывается при входе в режим написания программного компонента. Для входа следует перейти на вкладку «POU» организатора объектов и выбрать в дереве программных компонентов проекта, отображаемом на вкладке, требуемый элемент. В рабочей области откроется окно редактора. Тип окна зависит от выбранного языка программирования (см. раздел). В каждом окне редактора становятся доступны команды контекстного меню, содержащие основные операции, доступные в выбранном языке. Панель инструментов главного окна дополняется панелью, кнопки которой аналогично командам контекстного меню вызывают основные операции, доступные в выбранном языке. Окно редактора открывается также при добавлении программного компонента.

Graphic
Пример окна редактирования: 1 – раздел объявлений; 2 – область кода

Типы данных

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

Установка связи с ПЛК

Пользовательскую программу можно загрузить в контроллер только после установки связи контроллера с ПК.

Поддерживаемые интерфейсы связи контроллера и ПК для загрузки пользовательской программы:

  • Ethernet;

  • RS-232;

  • USB.

Примечание
Интерфейс RS-485 предназначен только для обмена данными, но не для загрузки.
Примечание
В некоторых случаях может потребоваться подключение ПК разработчика к ПЛК, подключенного к другому ПК, соединенных локальной сетью, либо сетью Интернет. Вариант с локальной сетью описан в данном руководстве, вариант соединения с использованием Интернета по своим настройкам немногим отличается от соединения по локальной сети.

Настройка связи требуется однократно для определенного интерфейса. Во время отладки настройка связи может потребоваться только в случае перехода на другой интерфейс связи.

Настройка интерфейсов связи

Для настройки соединения с контроллером следует выбрать в главном меню Онлайн → Параметры связи…. Откроется окно настройки интерфейсов связи с контроллером.

Graphic
Окно настройки интерфейсов связи

В левой части окна в иерархическом списке (Channels) перечислены все созданные каналы связи.

В средней части окна отображается таблица настроек канала связи, выделенного в иерархическом списке. Таблица состоит из колонок:

  • Название параметра (Name);

  • Значение (Value);

  • Комментарий (Comment).

Каждый вид подключения имеет свой набор параметров: адрес или номер устройства, если в данный канал включено несколько устройств, а также свойства канала связи, например, скорость передачи данных, наличие защиты от помех, временные задержки, и т. п. Над таблицей расположены две панели, которые отображают текст без возможности редактирования: в левой панели – название вида (протокола) связи, используемого в текущем канале.

В правой части окна расположены кнопки для работы со списком каналов связи:

  • OK/Cancel – применить/отменить изменения, внесенные в список каналов связи;

  • New/Remove – создать новую и удалить текущую запись о канале связи;

  • Gateway – вызов окна переключения локальных/удаленных подключений (см. рисунок);

  • Update – обновление данных.

Graphic
Окно команды Gateway

В окне Gateway переключатель Connection (Соединение) устанавливает соединение при подключении:

  • «Local» – локальное;

  • «Tcp/Ip» – сетевое с использованием протокола TCP/IP.

Для локального соединения требуется установить только параметры порта. В случае подключения по сети с использованием протокола TCP/IP, в текущем диалоговом окне становятся доступными дополнительные настройки:

  • сетевой адрес компьютера (Address) с подключенным к нему контроллером (IP-адрес, имя компьютера, в случае использования в сети протокола DNS либо слово «localhost», если требуется установить соединение с контроллером, подключенным по локальной сети);

  • пароль (Password) для доступа к защищенному соединению;

  • порт (Port) указывается для введенного сетевого адреса (по умолчанию используется 1210).

Смена подключения с локального на удаленное с использованием протокола TCP/IP (и наоборот) приводит к очистке списка подключений в таблице настроек канала связи.

RS-232

Интерфейс RS-232 (последовательный порт) в промышленной автоматике является распространенным интерфейсом взаимодействия микропроцессорных устройств. В ПК такие интерфейсы обозначались, как COM-порты (порты COM1, COM2, … COMn). В современных конфигурациях ПК порты RS-232 нередко отсутствуют и для подключения различных внешних устройств используются более высокоскоростные USB-порты, обладающие, однако, меньшими возможностями в плане длины соединяющих проводов (до пяти метров).

Для настройки интерфейса RS-232 следует:

  1. Выбрать Онлайн → Параметры связи… в главном меню. Откроется окно настройки интерфейсов связи с контроллером.

  2. Нажать кнопку New. Откроется окно «Communication parameters: New Channel» – задания нового канала связи.

  3. В окне задать имя нового соединения (например, Owen) и выбрать из перечня интерфейс соединения Serial (RS232) для связи по интерфейсу Debug RS-232 или USB Device.

  4. В случае выбора соединения Serial (RS232) в настройках параметров следует задать:

    • СОМ-порт (параметр Port), по которому ПЛК подключается к ПК;

    • скорость соединения (параметр Baudrate) – 115200 бит/с;

    • бит четности (параметр Parity) – No;

    • параметры Gateway → Connection – «local».

Работа с USB-портом ничем не отличается от работы с обычным последовательным портом, увидеть номер данного порта можно с помощью диспетчера устройств Windows. По умолчанию скорость передачи составляет 115200 бит/с, размер передаваемого слова 8 бит, проверка четности выключена, количество стоповых битов равно 1.

Драйвер виртуального СОМ-порта можно скачать на сайте owen.ru на странице контроллера. Для установки драйвера следует подключить включенный ПЛК к USB-порту ПК стандартным кабелем типа А-В (в комплект поставки не входит). После отключения питания или перезагрузки ПЛК для установки связи может потребоваться повторное отключение и подключение кабеля USB-порта для повторной инициализации драйвера.

Ethernet

Для установки соединения между ПЛК и ПК по интерфейсу Ethernet требуется выполнение следующих условий:

  • IP-адреса должны выбираться из значений, допустимых для частного пользования*;

  • IP-адрес ПК должен быть статическим;

  • IP-адреса и маска подсети ПК и контроллера устанавливаются так, чтобы они находились в одной IP-подсети.

Примечание
* Согласно правилам распределения IP-адресов, некоторые адреса могут использоваться свободно всеми желающими при организации подсетей с протоколом TCP/IP: адреса 10.x.y.z c маской 255.0.0.0, адреса 172.16.x.y…172.31.x.y с маской 255.240.0.0 и адреса 192.168.x. y с маской 255.255.0.0, где x, y, z – целые числа в диапазоне от 0 до 255.

IP-адрес контроллера можно изменить с помощью команды «SetIP», подаваемой в режиме «ПЛК-Браузер (PLC-Browser)» (подробнее о работе в режиме «ПЛК Браузер (PLC-Browser)» см. раздел). Для изменения IP-адреса связь с контроллером должна быть предварительно установлена через интерфейс Debug RS-232 или USB Device.

Дополнительный IP-адрес ПК задается в свойствах протокола TCP/IP в настройках сетевого окружения Windows. При изготовлении IP-адрес контроллера – 10.0.6.10, поэтому ПК следует присвоить дополнительный IP-адрес в подсети 10.0.6, отличный от адреса 10.0.6.10, маска подсети задается равной 255.255.0.0. Подробно процесс присвоения дополнительного IP-адреса для ПК приведен в видеоинструкции Подключение ПЛК к ПК по Ethernet.

TCP/IP

Для установки связи с помощью протокола TCP/IP по интерфейсу Ethernet следует:

  1. Проверить состояние сетевого подключения Ethernet на ПК.

  2. Соединить кросс-кабелем Ethernet контроллер и ПК. Если соединение установлено успешно, на экране ПК появится соответствующее сообщение, индикаторы Ethernet соединения на ПЛК начнут мигать.

Для начала работы с контроллером, подключенным по протоколу TCP/IP, следует настроить подключение контроллера к ПК:

  1. Перенастроить сетевое соединение подключенного контроллера: ввести статический IP-адрес и маску подсети (см. раздел).

  2. Выбрать Онлайн → Параметры связи… в главном меню. Откроется окно настройки интерфейсов связи с контроллером.

  3. Нажать кнопку New. Откроется окно «Communication parameters: New Channel» – задания нового канала связи.

  4. В окне задать имя нового соединения (например, TCP_IP_new) и выбрать из перечня интерфейс соединения: «Tcp/Ip (Level 2)» для связи по протоколу TCP/IP.

    Graphic
    Создание нового TCP/IP соединения
  5. В параметре Address указать значение IP-адреса контроллера и сохранить новый канал связи.

    Graphic
    Ввод IP-адреса
  6. Нажать на кнопку Gateway и в параметре Connection поставить «Tcp\Ip», нажать кнопку OK.

После задания параметров соединения по интерфейсу Ethernet по протоколу TCP/IP следует перезагрузить контроллер отключением питания контроллера и повторным его включением через пять или более секунд.

Установка связи с контроллером

Для установки связи с контроллером требуется любая пользовательская программа (подойдет простейшая).

Простейшей пользовательской программой на языке ST является символ «;» (точка с запятой) – её будет достаточно для проверки связи с контроллером. Простейшие пользовательские программы на других языках приведены на рисунке ниже.

Graphic
Примеры простейших пользовательских программ на языках FBD, LD и ST

Для установки связи с контроллером следует:

  1. Выбрать Онлайн → Подключение в главном меню. Предварительно должен быть снят флаг перед строкой меню Онлайн → Режим эмуляции (установка и снятие флага производится последовательными щелчками ЛКМ на строке). Перед установкой связи CODESYS скомпилирует пользовательскую программу, и в случае наличия в ней ошибок – прервет установку связи.

  2. После установки связи CODESYS предложит загрузить или обновить код пользовательской программы в оперативной памяти контроллера (см. рисунок).

    Graphic
    Окно предложения загрузки программы
    Примечание
    ПЛК110 поддерживает режим «ONLINE CHANGE», позволяющий обновить выполняющуюся в контроллере программу без прерывания ее работы (см. рисунок).
Graphic
Окно предложения обновления программы в режиме «ONLINE CHANGE»

Установка драйвера подключения ПЛК по USB Device

Для связи контроллера с ПК следует:

  1. Скачать драйвер с сайта owen.ru из раздела CODESYS V2.

    Примечание
    Для работы драйвера требуется ОС Windows 7/8/10.
  2. Запустить установщик драйвера и следовать инструкциям мастера установки.

  3. Соединить кабелем «USB A – B» разъем «USB B» на лицевой панели контроллера и любой свободный USB-порт ПК.

  4. Подать питание на контроллер и на ПК. Если драйвер успешно установился, то в диспетчере устройств на ПК появляется новый порт «PLC110 USB Virtual Serial Port», таким образом подключение ПЛК к ПК распознается как добавление нового COM-порта к ПК с присвоением порту индивидуального порядкового номера (например, COM4).

  5. Далее подключение к контроллеру осуществляется так же, как если бы контроллер подключался через физический COM-порт ПК.

В случае успешной установки драйвера и подключения контроллера с помощью порта «USB B» окно диспетчера устройств Windows отобразит новое устройство так, как показано на рисунке ниже.

Graphic
Диспетчер устройств Windows после успешной установки драйвера

После установки можно сразу приступать к работе с CODESYS. Во время настройки подключения следует указывать номер COM-порта, соответствующий отображенному в диспетчере устройств (в рассмотренном примере, на рисунке выше это порт COM4).

Конфигурирование памяти ввода-вывода ПЛК

Перед написанием пользовательской программы рекомендуется настроить конфигурацию входов, выходов и интерфейсов связи ПЛК с внешними устройствами (модулями ввода-вывода, устройствами индикации и т. д.), обмен данными с которыми будет производиться по сети. Устройства обмениваются данными с пользовательской программой через специальную область памяти ввода-вывода. Конфигурация памяти ввода-вывода ПЛК задается в окне режима «Конфигурация ПЛК», которое вызывается на вкладке «Ресурсы» организатора объектов.

Размер памяти ввода-вывода определяется типом лицензии CODESYS контроллера ПЛК (см. раздел).

Подробное описание конфигурирования памяти ввода-вывода приведено в разделе.

Для подсчета объема памяти ввода-вывода, требуемой для работы с приборами компании «ОВЕН», следует воспользоваться данными из таблицы ниже.

Потребности ПЛК в памяти ввода-вывода, требуемой для работы с некоторыми приборами компании ОВЕН
Прибор

Объем требуемой памяти для протоколов передачи данных, байт

ОВЕНModbusDCON
%I%Q%I%Q%I%Q
ТРМ2хх (один аналоговый вход)4
ТРМ151, ТРМ148, ТРМ133 (один аналоговый вход)4
СП3хх (одна переменная на чтение с ПЛК)2
СП3хх (одна переменная на запись с ПЛК)2
МВ110-224.2А (один аналоговый вход)444
МВ110-224.8А (один аналоговый вход)444
МУ110-224.8И (один аналоговый выход)22
МУ110-224.6У (шесть аналоговых выходов)22

Рекомендации по расчету требуемой памяти ввода-вывода:

  • в случае использования приборов других производителей, работающих по протоколам Modbus или DCON, следует по руководствам по эксплуатации на эти приборы определить сколько байт данных содержат команды, посылаемые по сети. Для работы с приборами ввода требуемое количество байт надо прибавить к размеру области %I, для работы с приборами вывода требуемое количество байт надо прибавить к размеру области %Q;

  • для дискретных модулей ввода-вывода сторонних производителей, работающих по протоколу Modbus, как правило, значение одного входа или одного выхода кодируется одним битом. Соответственно, занимаемый размер памяти в области ввода-вывода следует считать в битах, но с учетом того, что на один модуль тратится целое число байт. Таким образом, на двенадцатиканальный модуль дискретного ввода потребуется два байта, из 16 бит которых только 12 будут значащими;

  • для приборов и операторских панелей, работающих по протоколу Modbus, одно значение параметра передается, как минимум, в двухбайтном регистре (даже если параметр – однобайтовый);

  • в случае использования модуля архивации на каждую архивируемую переменную следует зарезервировать в памяти %Q место, равное размеру этой переменной;

  • в случае использования модулей в режиме Master сетевых протоколов (т. е. модулей, организующих обмен с внешними устройствами и модулями) дополнительно следует учесть, что эти модули содержат ряд служебных переменных, также расположенных в области памяти вывода %Q. Один модуль в режиме Master одного сетевого протокола дополнительно требует от 4 до 8 байт;

  • после подсчета необходимого размера областей памяти %I и %Q следует провести проверку достаточности объема доступной памяти каждого типа. Следует учитывать, что часть памяти занимается собственными входами и выходами. Если расчет показал, что резерва памяти нет, то следует использовать контроллер с лицензией «М», так как из-за принятого в CODESYS способа выравнивания адресов переменных в памяти ввода-вывода может возникнуть дополнительный расход памяти. Алгоритм выравнивания описан в разделе, но учитывать особенности выравнивания во время расчета потребности в памяти ввода-вывода не рекомендуется из-за сложности расчета.

Визуализация

CODESYS позволяет создавать окна-визуализации, в которых можно располагать визуальные элементы для графического отображения данных из пользовательской программы. Данные в визуализацию передаются из контроллера, при установленной с ним связи (подробнее см. раздел).

В режиме «Online» представление элементов на экране изменяется в зависимости от значений переменных.

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

Окно визуализации можно создать во вкладке «Визуализации» организатора объектов, нажав кнопку «Добавить объект» в контекстном меню строки «Визуализации».

Graphic
Окно визуализации проекта

Сохранение проекта

Созданный проект можно сохранить в виде файла на жестком диске ПК для дальнейшей работы. Первоначально проект сохраняется вызовом команды Файл → Сохранить как… в главном меню, далее возможно сохранение вызовом команды Файл → Сохранить в главном меню или нажатием кнопки Сохранить (Graphic) на панели инструментов.

Внимание
Проект может быть также сохранен на встроенный в контроллер Flash-диск, что позволяет хранить проект непосредственно в контроллере и снижает вероятность его потери. Для загрузки проекта на встроенный Flash-диск контроллера следует после установки связи с контроллером (подробнее об установке связи см. раздел) выбрать команду Онлайн → Загрузки исходных текстов главного меню.

Проект может быть сохранен совместно с конфигурацией, т. е. со структурой, описанной в target-файле, загруженном при вызове проекта. Сохранение с конфигурацией на несколько килобайт увеличивает сохраняемый файл проекта, но позволяет в дальнейшем не заботиться о совместимости проекта и версии target-файла, установленного в системе на момент редактирования проекта. Рекомендуется сохранять проект в таком режиме, если предполагается возможность редактирования проекта по прошествии значительного времени с момента его создания. Режим сохранения проекта совместно с конфигурацией включается в окне «Конфигурация ПЛК» на вкладке «Ресурсы» организатора объектов, установкой флажка переключателя «Сохранять конф. файлы в проекте».

Graphic
Установка режима сохранения конфигурации в файл проекта в окне «Конфигурация ПЛК»

Индикация состояния контроллера

Во время работы с контроллером (программирование, отладка, работа с Flash-памятью) следует отслеживать его состояние по светодиодным индикаторам на передней панели корпуса контроллера.

Индикация контроллера
ИндикаторСостояние индикатораОписание
«Работа»СветитсяЯдро ОС загружено успешно, пользовательская программа загрузилась и запустилась
Не светитсяПользовательская программа не работает, остановлена или не загружена
Слабо светитсяЯдро ОС еще не загрузилось после включения питания прибора
Мигает раз в 500 мсЯдро ОС повреждено (не совпадает контрольная сумма)
Мигает раз в 200 мсПерегрузка центрального процессора
«Питание»СветитсяНаличие питания у контроллера
Не светитсяОтсутствие питания у контроллера
«Связь»СветитсяНаличие связи с CODESYS
Не светитсяОтсутствие связи с CODESYS
«Бат.»СветитсяТребуется замена батарейки
Не светитсяЗамена батарейки не требуется

Также на передней панели контроллера расположены светодиодные индикаторы состояний дискретных входов и выходов. Каждый индикатор соответствует одному дискретному (как быстрому, так и обычному) входу или выходу. Во время работы контроллера индикатор светится в случае значения логической единицы на соответствующем ему входе или выходе и не светится, когда на входе или выходе значение логического нуля. Уровни напряжений, соответствующие логическим нулю и единице, приведены в руководстве по эксплуатации контроллера.

Запуск пользовательской программы (отладка)

Для отладочного запуска загруженной пользовательской программы следует выбрать команду Онлайн → Старт в главном меню.

Примечание
Установка трехпозиционного переключателя «Работа – Стоп – Сброс» в положение «Работа» или «Стоп» на подключенном контроллере не приведет к запуску или остановке загруженной программы.

Запуск текущей пользовательской программы, записанной в ПЗУ, после выключения контроллера или сброс контроллера из CODESYS (сброс текущей пользовательской программы, записанной в ОЗУ, выбором команд Онлайн → Сброс (горячий) или Онлайн → Сброс (горячий) происходит, если трехпозиционный переключатель находится в положении «Работа». Если трехпозиционный переключатель находится в положении «Стоп», то запуск или сброс не происходят.

Предупреждение
Положение трехпозиционного переключателя анализируется контроллером при подаче питания или после сброса с помощью трехпозиционного переключателя.
Положения переключателя
Положение переключателяСостояние прибораОписание
Перевод в верхнее положение «Работа»Во включенном состоянии Пользовательская программа не запустится
До включения Со стартом контроллера запустится пользовательская программа, если она настроена на автозапуск*
Перевод в среднее положение «Стоп»Во включенном состоянии Пользовательская программа не будет остановлена
До включения Во время старта прибора пользовательская программа не будет загружена в ОЗУ контроллера и запущена**
Перевод в нижнее (нефиксируемое) положение «Сброс»Во включенном состоянииЧерез 6 секунд удержания произойдет перезагрузка прибора
В отключенном состоянииНичего не произойдет
Примечание

* Для настройки пользовательская программы на автозапуск следует заранее подключить контроллер к CODESYS и создать загрузочный проект (Онлайн → Создание загрузочного проекта).

** В случае попытки подключения к контроллеру из CODESYS будет выдаваться сообщение об отсутствии пользовательской программы.

После запуска загруженной пользовательской программы следует проверить ее работоспособность, эмулировав или воссоздав необходимые сигналы на входах контроллера или на подключенных модулях ввода и удостовериться в правильности управления выходами или модулями вывода.

Сохранение пользовательской программы в памяти контроллера

После написания и отладки пользовательскую программы можно записать во внутреннюю Flash-память контроллера командой Онлайн → Создание загрузочного проекта в главном меню. Пользовательская программа сохраняется в памяти контроллера и после отключения питания или перезагрузки контроллера будет автоматически запускаться после перезагрузки или включения питания.

Внимание
Ресурс встроенной Flash-памяти контроллера ограничен (около 50 000 циклов записи), поэтому не рекомендуется во время отладки пользовательской программы каждый раз записывать ее во Flash-память контроллера.

Если контроллер циклически перезагружается из-за ошибок в пользовательской программе, сохраненной во Flash-памяти, или некорректной записи программы во Flash-память, следует до или сразу после перезагрузки контроллера установить трехпозиционный переключатель в положение «Стоп». Пользовательская программа из Flash-памяти не будет автоматически запущена, что даст возможность подключиться к контроллеру и загрузить в него корректно работающую пользовательскую программу.