Найти тему
sdt42

Структура проекта в CoDeSys

Мы продолжаем изучать программирование ПЛК ОВЕН в универсальной среде программирования CoDeSys. В этой публикации мы познакомимся со структурой проекта в CoDeSys. С предыдущей публикацией по программированию ПЛК можно ознакомиться здесь.

Рабочий цикл процессора

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

Последовательности программно заданных действий в ПЛК – это программа, которая выполняется процессором. При написании программы необходимо понимать, что выполнение самой программы в ПЛК происходит циклически. Рабочий цикл любого процессора состоит из трех этапов:

  • Загрузка в память состояния опрашиваемых входных модулей (чтение “входов”).
  • Последовательная обработка состояний в соответствии с программой и запоминание промежуточных результатов (выполнение программы).
  • Передача результатов вычислений в выходные модули (запись “выходов”).
Таким образом, работа программируемого контроллера происходит циклически с повторением рабочих циклов без дополнительных условий запуска.
Таким образом, работа программируемого контроллера происходит циклически с повторением рабочих циклов без дополнительных условий запуска.

Структура проекта в CoDeSys

Исходный код программы для ПЛК входит в состав проекта, в состав которого также входят другие компоненты, такие как: переменные, ресурсы, библиотеки, элементы визуализации, функциональные блоки и др. На рисунке ниже представлена структура проекта в CoDeSys.

Структура проекта в CoDeSys
Структура проекта в CoDeSys

Рассмотрим компоненты проекта отдельно.

Компоненты организации программ (POU)

Компоненты организации программ (POU — Program Organization Unit) — компоненты, образующие код прикладного программного обеспечения ПЛК. Каждый компонент программы имеет собственное наименование, интерфейс и описание на одном из языков программирования. Именно на уровне POU можно совмещать различные языки программирования ПЛК (о видах языков программирования для ПЛК мы говорили ранее, также можно почитать здесь). Иными словами, вы можете создавать исходный код программы ПЛК с использованием различных языков, например, управление агрегатом описать на языке LD, а программу последовательного включения агрегатов технологического комплекса — на языке SFC.

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

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

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

Реализации любого POU всегда должен предшествовать раздел объявлений. Объявления функции, функционального блока и программы начинаются соответственно с ключевых слов FUNCTION, FUNCTION_BLOCK и PROGRAM. За ним следует идентификатор (имя
компонента). Далее определяется интерфейс POU — перечень входных и выходных параметров.

К интерфейсу компонента относятся входы (блок VAR__INPUT), выходы (блок VAR__OUTPUT) и переменные типа вход-выход (блок VAR__IN_OUT). Завершают раздел объявлений локальные переменные (блок VAR). Необходимо отметить, что функции не могут иметь выходные (VAR__OUTPUT) и вход-выходные (VAR__IN_OUT) параметры — выходом функции служит единственная переменная,
совпадающая с именем функции, тип возвращаемого значения функции указывается при определении идентификатора через двоеточие.

Окно с POU в среде разработки CoDeSys
Окно с POU в среде разработки CoDeSys

Функция

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

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

Функциональный блок

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

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

Программа

Программа — глобальный программный элемент, отображающий множество значений входных параметров на множество выходных. Программа очень похожа на функциональный блок. Из всех программных компонентов МЭК-программа самый крупный. При помощи программ определяется верхний уровень проекта и реализуется управление многозадачностью. Программы являются глобальными компонентами и объявляются на уровне ресурсов.

При создании программы первый POU помещается в новый проект автоматически и получает название PLC_PRG. Именно с него и начинается выполнение процесса (по аналогии с функцией main в языке С), из него будут вызываться другие программные блоки (программы, функциональные блоки и функции).

Структура программного обеспечения ПЛК

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

Задачи

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

Задачи подразделяются на циклические и разовые (single). Выполнение разовой задачи запускается по фронту логической триггерной переменной. Циклические задачи выполняются через заданные интервалы времени.

Каждая задача может включать вызов одной или нескольких программ. Если программа имеет входные параметры (VAR__INPUT), то они задаются в описании задачи. Все программы одной задачи выполняются в одном рабочем цикле ПЛК.

Определение задач в системах программирования МЭК выполняется по-разному. Это может быть текстовое описание или графическое представление. CoDeSys содержит специальный инструмент — менеджер задач (Task configuration), представляющий задачи и их программы в виде иерархического дерева.

Менеджер задач
Менеджер задач

Ресурсы

С точки зрения стандарта МЭК ресурс — это один процессор, снабженный собственной системой исполнения. То есть одна или несколько задач загружается в ресурс и исполняется им. В CoDeSys применяется понятие проект — все прикладное программное обеспечение, предоставляющее работу конкретного приложения. Слово же «ресурсы» употребляется во множественном числе и определяет набор аппаратно зависимых деталей проекта. Ресурсы содержат:

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

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

Окно ресурсов проекта
Окно ресурсов проекта

Конфигурация

Конфигурация — это множество ресурсов, взаимодействующих определенным образом (сконфигурированных). В одной системе может быть несколько интеллектуальных ресурсов, каждый из которых обладает собственным процессором, памятью и системой исполнения. Каждый из них можно программировать. Это могут быть реальные модули (возможно, удаленные) или виртуальные машины, эмулируемые одним процессором. Все они имеют доступ к определенным наборам входов-выходов и координируют свою работу посредством глобальных переменных, расположенных в общедоступной памяти.

 Яндекс.Браузер для быстрой загрузки сайтовЗакрытьУстановить0+Рекламаsdt42Изменить
Яндекс.Браузер для быстрой загрузки сайтовЗакрытьУстановить0+Рекламаsdt42Изменить

Установка среды CoDeSys и target-файлов

Вчера

Мы продолжаем изучать программирование ПЛК ОВЕН в универсальной среде программирования CoDeSys. В этой публикации мы посмотрим как произвести установку среды CoDeSys и target файла контроллера. С предыдущей публикацией по программированию ПЛК можно ознакомиться здесь.

CoDeSys (Controllers Development System) – это современный универсальный комплекс для программирования контроллеров на языках стандарта МЭК 61131-3. Среди особенностей комплекса можно отметить следующее:

  • прямая генерация машинного кода, что обеспечивает очень высокое быстродействие программ пользователя;
  • полноценная реализация МЭК-языков;
  • встроенный эмулятор контроллера позволяет проводить отладку проекта без аппаратных средств (причем эмулируется конкретный ПЛК с учетом аппаратной платформы);
  • встроенные элементы визуализации дают возможность создать модель объекта управления и проводить отладку проекта без изготовления средств имитации (в простых случаях нет необходимости приобретать отдельно SCADA-систему);
  • серверы данных (DDE и ОРС) входят в стандартный пакет поставки;
  • широкий набор сервисных функций, ускоряющих работу программиста.

Базовый состав комплекса программирования ПЛК состоит из двух обязательных частей: системы исполнения и рабочего места программиста. Система исполнения функционирует на контроллере и, кроме непосредственно исполнения управляющей программой, обеспечивает загрузку кода прикладной программы и отладочные функции.

Для привязки к конкретному ПЛК требуется адаптация, касающаяся низкоуровневых ресурсов распределение памяти, интерфейс связи и драйверы ввода-вывода. Это делается с помощью специальных target файлов.

Перед тем, как программировать ПЛК в среде разработки CoDeSyS, необходимо установить саму среду программирования и target файлы соответствующего контроллера.

Установка среды CoDeSys

Для начала необходимо установить основной дистрибутив CoDeSyS 2.3 c официального сайта ОВЕН (на момент публикации последней актуальной версией была русифицированная версия 2.3.9.41 – прямая ссылка на скачивание). Также на сайте ОВЕН можно бесплатно скачать различную документацию по программированию контроллеров ОВЕН, библиотеки и иное сервисное ПО.

CoDeSys для пользователей ПЛК ОВЕН предоставляется бесплатно. Файлы можно скачать с официального сайта компании ОВЕН или с иного ресурса.

Стандартная установка среды мало чем отличается от установки любой другой программы под операционную систему Windows – необходимо согласиться с информацией по установке, выбрать язык интерфейса, ознакомиться и согласиться с лицензионным соглашением, указать путь размещения файлов установленной программы, выбрать компоненты среды для установки и нажимать кнопку “Далее”. Также можно посмотреть руководство по установке CoDeSys 2.3 на официальном сайте ОВЕН.

Начало установки
Начало установки

Здесь отметим несколько моментов.

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

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

Выбор языка пользовательского интерфейса CoDeSys
Выбор языка пользовательского интерфейса CoDeSys
  • При выборе устанавливаемых компонентов согласитесь с предлагаемым набором устанавливаемых компонентов.
  • В конце установки операционная система выдаст следующее сообщение:
Предупреждение демонстрационных версий
Предупреждение демонстрационных версий

Вместе с бесплатной системой программирования CoDeSys устанавливаются дополнительные программные компоненты в формате демонстрационных версий. Часть из них будем использовать в дальнейшем. Другие окажутся невостребованными. В данном сообщении как раз и указывается, что демонстрационные версии требуют покупки лицензий для полнофункционального использования. Сама система программирования CoDeSys 2.3 в отличие от дополнительных компонентов устанавливается на ваш компьютер без ограничений абсолютно бесплатно. Таким образом, можно смело нажать на кнопку “ОК”.

После окончания необходимо перезагрузить компьютер, чтобы могли автоматически запуститься некоторые компоненты среды программирования, такие как: Gateway Server, ENI Server и др.

После окончания установки на рабочем столе компьютера появится ярлык с тремя разноцветными шестиугольниками  для запуска CoDeSys.

Иконка CoDeSys
Иконка CoDeSys

Можно воспользоваться ярлыком или выбрать в меню «Пуск» следующий путь «Все программы – 3S Software – CoDeSys 2.3». После запуска CoDeSys появится серое окно со строчкой меню сверху.

Запущенная среда программирования CoDeSys
Запущенная среда программирования CoDeSys

Можно приступать к программированию. Но, как отмечено выше, универсальная среда должна быть “привязана” к конкретному ПЛК. Это делается с помощью специальных target-файлов.

Инсталляция target-файлов

В target-файлах содержится информация о ресурсах программируемых контроллеров, с которыми работает CoDeSys. Target-файл поставляется производителем контроллера. Например, target-файл для контроллера ОВЕН GKR160 можно скачать на странице с сервисным ПО ОВЕН (или по прямой ссылке на архив).

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

  • Откройте папку, соответствующую модели необходимо контроллера. Запустите файл InstallTarget.bat. После этого на экране на короткое время появится окно загрузки. Затем процедура установки будет завершена, необходимый файл будет установлен в соответствующие директории.
  • С помощью отдельной программы – установщика InstallTarget.exe. Запустить его можно как из папки со скаченным target-файлом , так и через меню “Пуск: Все программы – 3S Software – InstallTarget».

После запуска InstallTarget.exe появится окно.

Установщик target-файлов
Установщик target-файлов

В появившемся окне нажимаем кнопку “Open”. В диалоговом окне открытия файла находим скаченную и разархивированную ранее папку с необходимым target-файлом, в которой выберите файл с расширением .tnf (Target Information File).

Далее в поле “Possible Targets” выберите контроллер и нажмите кнопку “Install”.

После подтверждения необходимости создания каталога, куда будет помещен файл, target-файл будет инсталлирован и его можно будет увидеть в поле “Installed Targets” в списке Owen. Диалоговое окно можно закрыть.

Продолжение уроков по программированию ПЛК ОВЕН с помощью среды CoDeSys будут в дальнейшем выкладываться на данном канале (подписывайтесь) и на нашем сайте sdt42.ru.

Подписывайтесь в социальных сетях: facebook, instagram.