Технологии
Для программного обеспечения ПЛК:
  • · C#: Объектно-ориентированный язык программирования для написания логики контроллера.
  • · Avalonia: Кроссплатформенный фреймворк для создания GUI, совместимый с .NET Core.
  • · JSON: Формат для сериализации данных, используемый для конфигурации и обмена данными между устройствами.
Пакет программного обеспечения (ПО) среда разработки предназначен для выполнения полного цикла разработки и отладки прикладного программного обеспечения (ППО) для программируемого логического контроллера (ПЛК)
Назначение программного обеспечения
01
Пакет состоит из среды разработки, включающего в свой состав редактор переменных, редактор прикладной программы на языке релейно-лестничной логики LD (Ladder Diagram) входящем в состав языков программирования ПЛК стандарта МЭК 61131-3 и системного программного обеспечения «Конфигуратор», обеспечивающего конфигурацию аппаратных средств и загрузку разработанного прикладного программного обеспечения в ПЛК.
Состав программного пакета
02
Для работы с программой требуется ПК с установленной операционной системой MS Windows 10 и выше, или операционной системой на основе Linux – Debian 9 и выше, Ubuntu 16.04 и выше, Fedora 30 и выше.
Системные требования
03
Для загрузки программы в ПЛК требуется порт USB 2.0/3.0.
Для мониторинга и отладки работы прикладной программы требуется подключение к ПЛК» по Ethernet.
Среда разработки имеет однооконный интерфейс с разделением на рабочие области и обеспечивает открытие проекта ППО для ПЛК, вызов редакторов, обеспечивает навигацию в ППО, реализует справочную систему и поиск.
Среда разработки поддерживает мультиязычность (английский/русский).
Описание программного обеспечения
04
Описание среды разработки
В логическом органайзере доступно имя текущего проекта. Пользователь может создавать файлы прикладной программы. Доступно создание пользовательской иерархии файлов программы с произвольным составом папок размещения файлов прикладной программы.
Редактор переменных и редактор прикладной программы отображаются в центральной рабочей области.
Рисунок 4.1.1 – Внешний вид среды разработки
Редактор переменных предназначен для создания и редактирования прикладных переменных, использующихся при разработке ППО для ПЛК.
Описание редактора переменных
Вызов редактора переменных осуществляется по двойному нажатию на пункт «Редактор переменных» в логическом органайзере среды разработки.
Редактор переменных имеет табличный вид, где для каждой переменной отведена строка со столбцами свойств (рисунок 4.2.1).
Таблица позволяет получить доступ к редактированию отдельных свойств каждой переменной (например – имя, тип данных, описание). Редактирование свойства осуществляется по двойному нажатию на ячейку.
Создание новых переменных осуществляется в первой свободной строке внизу таблицы.
Рисунок 4.2.1 – Внешний вид редактора переменных
Для прикладных переменных, имеющих составной тип данных (например, массивы, пользовательские типы данных), доступно сворачивание/разворачивание. Разворачивание позволяет увидеть все элементы составной прикладной переменной.
Для удобства навигации по списку прикладных переменных предусмотрена сортировка по любому столбцу и фильтр.
Для создания и редактирования прикладных переменных может использоваться отдельное окно свойств (рисунок 4.2.2), вызывающееся по двойному нажатию мышью на переменной. В окне открывается полный набор свойств для выбранной переменной.
Рисунок 4.2.2 – Окно редактирования свойств отдельной переменной
Для всех пользовательских переменных имеется одинаковый набор свойств, приведённых в таблице 1.
Приведенные правила для имен прикладных переменных в среде разработки ПЛК позволяют использовать стили «верблюд» и «змея» для удобства чтения прикладных переменных.
  • имя прикладной переменной может содержать символы латиницы и цифры (не допускается кириллица);
  • имя переменной должно начинаться с символа латиницы;
  • среда разработки запоминает строчные и прописные символы в имени прикладной переменной, но при наборе в прикладной программе не различает строчные и прописные символы (при обращении к прикладной переменной допускается ввод, например, только строчных символов, с последующим отображением переменной в том виде, в каком она была создана);
  • каждая переменная имеет уникальное имя для всего тела прикладной программы (исключить повторяющиеся имена, регистр символов не влияет на уникальность имени переменной);
  • из специальных символов в имени переменной допускается использовать только знак подчёркивания «_»;
  • не допускается двойной знак подчёркивания «__»;
  • для составных типов данных используется разделитель между родительским и дочерним элементом точка «.».
При использовании стиля «верблюд», каждое слово в переменной начинается с большой буквы – OilPump.
При использовании стиля «змея», слова разделяются знаком подчёркивания «_» – OilPump_Stop.
Доступные для среды разработки базовые типы данных приведены в таблице 2. Базовые типы данных могут являться элементами составных типов данных (массивов, пользовательских типов данных).
Таблица 2. Перечень базовых типов данных
Редактор LD предназначен для создания и редактирования пользовательской программы с использованием языка релейно-лестничной логики и является основным языком разработки прикладной программы для ПЛК.Среда разработки поддерживает мультиязычность (английский/русский).
Описание редактора LD
Вызов редактора LD осуществляется по двойному нажатию на файле программы в логическом органайзере среды разработки.
Редактор переменных и редактор прикладной программы отображаются в центральной рабочей области.
Прикладная программа пользователя состоит из цепей, каждая цепь состоит из операторов языка LD, цепь может иметь ветвление.
Рисунок 4.3.1 – Окно редактора LD
Цепь имеет порты – точки вставки операторов языка LD и ветвления. Изначально на пустой цепи присутствует только один порт в левой крайней точке. После добавления оператора LD, порты появляются слева и справа от оператора. Порт отображается на цепи при наведении указатели мыши (рисунок 4.3.3).
Вставка оператора в цепь осуществляется в первый порт, после выбранного элемента. Если цепь пустая, то оператор вставляется в крайний левый порт.
Вставка ветвления в цепь доступна через контекстное меню, вызываемое при нажатии по правой кнопке мыши на порте (рисунок 4.3.2).
Операторы языка LD можно добавить в цепь по контекстному меню через правую кнопку мыши на порте или из верхнего меню операторов.
Рисунок 4.3.2 – Контекстное меню в редакторе LD
Операторы языка LD условно разделены на условные операторы (условные операторы, операторы сравнения и др.) и операторы присвоения (операторы присвоения, математические операторы и др.). Условные операторы выравниваются по левому краю цепи. Операторы присвоения выравниваются по правому краю цепи.
Копирование, вставка и удаление операторов осуществляется через контекстное меню, вызываемое при нажатии по правой кнопке мыши на порте.
Рисунок 4.3.3 – Порт на цепи в редакторе LD
Для присвоения пользовательской переменной оператору LD необходимо двойным нажатием левой кнопки мыши вызвать контекстное меню (рисунок 4.3.4). В меню выбора переменной доступен фильтр по имени переменной в верхней части меню (рисунок 4.3.5). При выборе пользовательской переменной автоматически включается фильтр по типу переменной (например для бинарных операторов, доступен выбор только бинарных переменных).
Рисунок 4.3.4 – Контекстное меню выбора пользовательской переменной в редакторе LD
При вводе константного числового значения в оператор LD, введённое значение вводится в поле оператора и подтверждается правой клавишей Shift (рисунок 4.3.6). Вещественные значения вводятся с разделением целой и дробной части запятой «,».
Рисунок 4.3.5 – Фильтр в меню выбора переменной в редакторе LD
Рисунок 4.3.6 – Ввод константных значений в оператор языка LD.
После завершения редактирования прикладной программы, необходимо сохранить разработанную программу нажав кнопку сохранить в среде разработки и произвести компиляцию программы нажав на кнопку сгенерировать код в верхней панели редактора LD.
Описание работы
05
Разработка прикладного программного обеспечения в среде разработки разделена на следующие этапы:
  • конфигурация аппаратного обеспечения ПЛК с помощью программного обеспечения «Конфигуратор»;
  • разработка прикладной пользовательской программы в среде разработки с последующей генерацией кода в формате ST;
  • формирование файла загрузки для ПЛК с помощью программного обеспечения «Конфигуратор» на основе сгенерированного кода ST;
  • загрузка бинарного файла в ПЛК с помощью программного обеспечения «Конфигуратор».
После создания нового проекта вид главного окна программы представлен на рисунке 5.1.2. Основная часть графического интерфейса разделяется на три группы. Первая группа «Project structure» отвечает за настройки текущего проекта. Вторая «Hardware items» содержит перечень устройств для конфигурации шины. Третья окно с полем сборки шины с устройствами.
Для начала конфигурирования необходимо из «Hardware items» выбрать одну из шин во вкладке «Bus». Возможно три вида шины, различающиеся количеством слотов для дочерних устройств. Размер шины может быть 4,8,12 (3,7,11 – дочерних устройства). Для установки шины на поле надо левой кнопкой мыши перетащить её в окно «PLC Bus». На рисунке 5.1.3 представлен вид интерфейса программного обеспечения при установленной шине размеров 8.
Дальнейшая работа по конфигурированию состоит в наполнении шины устройствами из списка «Hardware items».

Блок питания и центральный процессор (ПЛК) могут занимать на шине только строго отведенные им места. На рисунке 3 цифрой 1 обозначен двойной слот для блоков питания, под цифрой 2 обозначен слот, в который вставляется только CPU. В остальные слоты шины могут быть вставлены любые устройства:
  • модуль дискетных входов/выходов (МДВВ);
  • модуль аналоговых входов/выходов (МАВВ);
  • модуль коммуникационный (МК).

Для установки устройства в шину необходимо левой кнопкой мыши перетащить устройство из дерева в нужный слот. В программном обеспечении реализована возможность перемещать устройства между слотами шины.
Шина с набором различных устройств
На рисунке 5.1.4 представлен вид программного обеспечения, когда пользователь сконфигурировал шину с различными устройствами.
Конфигурирование ПЛК
Для удобства пользователя при конфигурации системы системное программное обеспечение «Конфигуратор» построено в виде графического приложения. Вид главного окна графического приложения представлен на рисунке 5.1.1.
Таблица распределения памяти среди переменных.
В программном обеспечении конфигурации ПЛК в меню «Project structure» присутствует пункт «Variables & FB instances». При нажатии на данный пункт откроется окно, представленное на рисунке 5.1.5, редактирования адресного пространства ПЛК. В данном окне отображаются переменные, которые относятся к устройствам, расположенным на шине конфигуратора. Каждое устройство обладает набором своих переменных. Таблица содержит ряд столбцов, позволяющих задавать следующие параметры:
Value – начальное значение переменной;
Comment – комментарий/описание переменной;
Address – адрес в памяти ПЛК отведенный под эту переменную.
В данном окне так же можно добавлять пользовательские переменные, которые не относятся ни к одному устройству, расположенному на шине. Для этого надо нажать на таблице правой кнопкой мыши и в контекстном меню выбрать пункт «Add». Пример добавления пользовательской переменной показан на рисунке 5.1.6.
Рисунок 5.1.1 – Главное окно программы конфигурации ПЛК
Рисунок 5.1.2 – Главное окно программы после создания нового проекта
Рисунок 5.1.4 – Внешний вид при конфигурации шины различными устройствами
Рисунок 5.1.3 – Окно «PLC Bus» с установленной шиной размером 8
Рисунок 5.1.5 – Внешний вид окна распределения адресного пространства ПЛК между переменными
После того, как шина сконфигурирована и произведено распределение памяти ПЛК между переменными можно переходить к созданию программного кода в среде разработке ППО. Для этого необходимо в верхнем меню программы выбрать пункт «Build» и затем «Build for Armees». После этого произойдет генерация .json файла для среды разработки ППО и генерация конфигурационных файлов (.ini) для ПЛК.

Для создания кода пользовательских программ под ПЛК необходимо создать или открыть уже имеющийся проект, загрузить файл .json редактором среды разработки ППО. На рисунке 5.2.1 представлено окно создания проекта.
Рисунок 5.1.6 – Добавление пользовательской переменной в таблицу распределения адресов ПЛК
Создание проекта в среде разработки
После создания проекта будет возможно создание дополнительных переменных и написание кода на языке LD. На рисунке 5.2.2 и 5.2.3 представлены редактор языка LD и редактор переменных соответственно.
Рисунок 5.2.1 – Создание проекта в среде разработки ППО
Рисунок 5.2.2 – Редактор языка LD
Рисунок 5.2.3 – Редактор переменных
Рисунок 5.3.1 – Запуск компиляции ВМПО
После генерации пользовательской программы на языке ST можно производить компиляцию бинарного файла для ПЛК. Для этого необходимо в главном меню конфигуратора выбрать пункт «Build» и затем «Compile», см. рисунок 5.3.1.

После этого программное обеспечение конфигурации ПЛК автоматически начнет компиляцию ВМПО из файла ST, ранее созданного в среде разработки. При этом в окне вывода информации о сборке «Build» выводятся сообщения о статусе компиляции. Вид данного окна при начале компиляции приведён на рисунке 5.3.2.

При успешной работе компилятора результатом будет встроенное микрокропрограммное обеспечение (бинарный файл) для ПЛК. О чем будет сообщено в окне «Build» выводом сообщения «Code compilation…Done!». На рисунке 5.3.3 приведен результат успешной компиляции ВМПО для ПЛК.
Компиляция кода для ПЛК с помощью «Конфигуратор»
Рисунок 5.3.2 – Процесс компиляции ВМПО
Рисунок 5.3.3 – Успешная компиляции ВСПО для ПЛК
Когда встроенное микрокропрограммное обеспечение (бинарный файл) скомпилировано можно произвести его загрузку в ПЛК. Для этого необходимо подключить компьютер к ПЛК с помощью кабеля USB, в главном меню конфигуратора выбрать пункт «Build» и затем «Upload», см. рисунок 5.3.1. После успешной загрузки ВМПО в ПЛК в окне «Build» будет выведено сообщение «Firmware flashing…Done!». Пример успешной загрузки ВМПО в ПЛК приведен на рисунке 5.4.1.
Рисунок 5.4.1 – Успешная загрузка ВМПО в ПЛК
Загрузка ВМПО в ПЛК