Универсальная среда разработки Agava: различия между версиями

Материал из docs.kb-agava.ru
Перейти к навигации Перейти к поиску
Строка 10: Строка 10:
 
=== Создание нового проекта ===
 
=== Создание нового проекта ===
 
Создание нового проекта в среде разработки осуществляется с помощью команды «Создать проект…» в меню «Файл». После вызова данной команды откроется диалоговое окно создания нового проекта (см. Рисунок 1).
 
Создание нового проекта в среде разработки осуществляется с помощью команды «Создать проект…» в меню «Файл». После вызова данной команды откроется диалоговое окно создания нового проекта (см. Рисунок 1).
 
+
[[Файл:AgavaPLC-Создание проекта.png|мини|Рисунок 1 - Окно "Создание нового проекта"]]
Рисунок 1 Окно "Создание нового проекта"
 
 
 
 
Для создания проекта необходимо в списке типов проектов выбрать необходимый, ввести имя проекта и путь для его сохранения, после чего нажать кнопку «Создать проект».
 
Для создания проекта необходимо в списке типов проектов выбрать необходимый, ввести имя проекта и путь для его сохранения, после чего нажать кнопку «Создать проект».
  
Строка 23: Строка 21:
 
=== Редактирование существующего проекта ===
 
=== Редактирование существующего проекта ===
 
Редактирование существующего проекта начинается с открытия файла проекта путем вызова команды «Открыть…» в меню «Файл». После загрузки файла в основном окне среды разработки будут отображены свойства и параметры проекта (см. Рисунок 2).
 
Редактирование существующего проекта начинается с открытия файла проекта путем вызова команды «Открыть…» в меню «Файл». После загрузки файла в основном окне среды разработки будут отображены свойства и параметры проекта (см. Рисунок 2).
 
+
[[Файл:AgavaPLC-Основное окно среды разработки.png|мини|Рисунок 2 – Основное окно среды разработки AgavaPLC с загруженным проектом]]
Рисунок 2 – Основное окно среды разработки с загруженным проектом
 
 
 
 
По умолчанию основное окно среды разработки содержит перечисленные ниже части:
 
По умолчанию основное окно среды разработки содержит перечисленные ниже части:
  
Строка 57: Строка 53:
  
 
=== Разработка программы ===
 
=== Разработка программы ===
Перед началом разработки рекомендуется проанализировать поставленную задачи и определить подсистемы, необходимые для её реализации. Взаимодействие с подсистемами осуществляется через дерево проекта (см. Рисунок 28), в которое добавляются нужные узлы. Для добавления нового узла, необходимо нажать ПКМ на узел верхнего уровня, которому он подчинён, и выбрать «Добавить узел»:
+
[[Файл:AgavaPLC-Добавление узла в проект.png|мини|Рисунок 3 – Добавление узла в проект AgavaPLC]]
 
+
Перед началом разработки рекомендуется проанализировать поставленную задачи и определить подсистемы, необходимые для её реализации. Взаимодействие с подсистемами осуществляется через дерево проекта (см. Рисунок 28), в которое добавляются нужные узлы. Для добавления нового узла, необходимо нажать ПКМ на узел верхнего уровня, которому он подчинён, и выбрать команду «Добавить узел».
Рисунок 3 – Добавление узла в проект
 
  
 
Основные части типовой программы и способы их реализации приведены ниже.
 
Основные части типовой программы и способы их реализации приведены ниже.
Строка 65: Строка 60:
 
==== Взаимодействие с внешними устройствами ====
 
==== Взаимодействие с внешними устройствами ====
 
Реализуется через подсистему «Транспорты» в окне дерева проекта. Необходимо добавить в нее нужные протоколы, в зависимости от имеющейся конфигурации контроллера.
 
Реализуется через подсистему «Транспорты» в окне дерева проекта. Необходимо добавить в нее нужные протоколы, в зависимости от имеющейся конфигурации контроллера.
 
+
[[Файл:AgavaPLC-Транспорты.png|мини|Рисунок 4 - Транспорты в дереве проекта AgavaPLC]]
Рисунок 4 Транспорты
 
 
 
 
# Транспорт для обмена с субмодулями контроллера (для контроллеров с корзиной субмодулей). В качестве порта транспорта необходимо указать “/dev/ttyS0”. В проекте для МПР-60 присутствует по-умолчанию.
 
# Транспорт для обмена с субмодулями контроллера (для контроллеров с корзиной субмодулей). В качестве порта транспорта необходимо указать “/dev/ttyS0”. В проекте для МПР-60 присутствует по-умолчанию.
 
# Транспорт последовательный (для управления по RS-232, RS-485 и т.д.).
 
# Транспорт последовательный (для управления по RS-232, RS-485 и т.д.).
Строка 80: Строка 73:
 
|Система визуализации недоступна в проектах для  контроллеров МПР.
 
|Система визуализации недоступна в проектах для  контроллеров МПР.
 
|}
 
|}
{| class="wikitable"
+
[[Файл:AgavaPLC-Пример визуализации.png|мини|Рисунок 5 - Пример визуализации]]
| '''                                                                                                                                                                       1'''
 
|}
 
{| class="wikitable"
 
|'''2'''
 
|}
 
Рисунок 5 Пример реализации визуализации данных
 
 
 
 
Визуализация содержит одно или несколько окон, описанных ниже.
 
Визуализация содержит одно или несколько окон, описанных ниже.
  

Версия 15:52, 24 августа 2021

Универсальная среда разработки предназначена для создания и редактирования программного обеспечения для панелей оператора АГАВА ПО, многоканальных программируемых реле АГАВА МПР-60 и систем диспетчеризации на базе SCADA-системы AgavaSCADA.

1 Введение

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

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

2 Разработка проекта

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

Создание нового проекта в среде разработки осуществляется с помощью команды «Создать проект…» в меню «Файл». После вызова данной команды откроется диалоговое окно создания нового проекта (см. Рисунок 1).

Рисунок 1 - Окно "Создание нового проекта"

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

Доступны несколько типов проектов:

  • «Пустой проект» – проект без узлов для создания произвольного проекта;
  • «Локальный проект» – предварительно настроенный проект, содержащий необходимые подсистемы и предназначенный для реализации простой системы для одного устройства, при выборе данного типа пользователь имеет возможность выбрать нужные ему подсистемы и получить полностью рабочий проект в минимальной конфигурации.
  • «Проект АГАВА МПР-60» - проект, применяемый для реализации задач, предназначенных для исполнения на МПР-60.

2.2 Редактирование существующего проекта

Редактирование существующего проекта начинается с открытия файла проекта путем вызова команды «Открыть…» в меню «Файл». После загрузки файла в основном окне среды разработки будут отображены свойства и параметры проекта (см. Рисунок 2).

Рисунок 2 – Основное окно среды разработки AgavaPLC с загруженным проектом

По умолчанию основное окно среды разработки содержит перечисленные ниже части:

  1. Строка заголовка приложения, панель меню и панель инструментов.
  2. Окно дерева проекта. Предоставляет доступ ко всей структуре проекта (см. раздел 4).
  3. Окно свойств (см. раздел 2.5.1).Раздел 2.5.1
  4. Область для отображения содержимого, например графического представления окна или задачи ПЛК.
  5. Область вспомогательных окон (окна наблюдения, ошибок и сообщений)

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

По завершению всех операций по редактированию необходимо выполнить проверку проекта на корректность с помощью команды «Проверить проект», расположенной в меню «Проект» (см. 6.1).

2.3 Структура и состав проекта

Типичный проект содержит следующие части:

  • станция – важнейший объект, управляющий работой собственных подсистем и осуществляющий обмен данными с другими станциями;
  • транспортная подсистема, выполняющая сбор данных с УСО;
  • подсистема визуализации, обеспечивающая отображение информации в различных видах.

Проект также может содержать следующие части:

  • подсистема архивирования, сохраняющая данные в БД для последующего извлечения и анализа;
  • подсистема проверки прав пользователей, предназначенная для контроля доступа пользователя к объектам в режиме исполнения;
  • подсистема тревог, предназначенная для оповещения пользователя об обнаруженных нарушениях;
  • подсистема журналирования, выполняющая архивирование зарегистрированных событий в БД для последующего извлечения и анализа.

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

Описание всех частей проекта и их узлов приведено в разделе 4.

2.4 Разработка программы

Рисунок 3 – Добавление узла в проект AgavaPLC

Перед началом разработки рекомендуется проанализировать поставленную задачи и определить подсистемы, необходимые для её реализации. Взаимодействие с подсистемами осуществляется через дерево проекта (см. Рисунок 28), в которое добавляются нужные узлы. Для добавления нового узла, необходимо нажать ПКМ на узел верхнего уровня, которому он подчинён, и выбрать команду «Добавить узел».

Основные части типовой программы и способы их реализации приведены ниже.

2.4.1 Взаимодействие с внешними устройствами

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

Рисунок 4 - Транспорты в дереве проекта AgavaPLC
  1. Транспорт для обмена с субмодулями контроллера (для контроллеров с корзиной субмодулей). В качестве порта транспорта необходимо указать “/dev/ttyS0”. В проекте для МПР-60 присутствует по-умолчанию.
  2. Транспорт последовательный (для управления по RS-232, RS-485 и т.д.).
  3. Транспорт TCP/IP (для управления по Ethernet).

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

2.4.2 Визуализация данных

Визуализация данных технологических процессов реализуется с помощью элементов подсистемы «Визуализация».

Система визуализации недоступна в проектах для контроллеров МПР.
Рисунок 5 - Пример визуализации

Визуализация содержит одно или несколько окон, описанных ниже.

1.       Форма, которая может использоваться как меню или панель инструментов. Также применяется в небольших проектах, в которых нет необходимости изменения выводимого набора виджетов.

2.       Окно с композицией, которое позволяет переключаться между различными экранами (например мнемосхемой, настройками, архивированием и т.д). Каждый из этих экранов реализуется на отдельной композиции.

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

Редактирование содержимого окна или композиции осуществляется в его графическом представлении (см. раздел 2.6).

Более подробное описание подсистемы визуализации приведено в разделе 4.4.

2.4.3 Пользовательские алгоритмы

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

Рисунок 6 – Инструменты программирования

  1. Операции в группе «Сигналы» – отдельные логические операции. В основном используются для небольших проектов, не требующих сложных методов управления;
  2. Задачи ПЛК – графическое программирование с помощью связывания между собой различных функциональных блоков. Подходит для больших проектов. Реализуется в узле «Задача ПЛК» группы «Задачи». Подробное описание приведено в разделе 4.12.1.
  3. Скрипты С++ – текстовое программирование на языке высокого уровня. Подходит для больших проектов. Реализуется с помощью операций «Скрипт С++», расположенных в группе «Сигналы» (см. раздел 4.11.3) или в задаче ПЛК (см. раздел 4.12.1.1). Описание языка С++ приведено в Приложении Б.

2.5 Редактирование свойств узлов

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

2.5.1 Редактирование свойств узлов с помощью окна «Свойства»

Редактирование свойств всех узлов осуществляется с помощью окна «Свойства».

Рисунок 7 – Окно «Свойства» виджета «Кнопка»

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

2.5.1.1 Редактирование свойств группы узлов

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

2.5.2 Массовое редактирование свойств узлов

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

Рисунок 8 – Окно «Список узлов»

Открытие окна выполняется с помощью вызова команды «Открыть список узлов» в контекстном меню дерева конфигурации. Открытое окно содержит все узлы, вложенные в выбранные при вызове команды.

Окно позволяет редактировать свойства непосредственно в ячейках таблицы, без переключения на окно «Свойства». Групповое редактирование свойств узлов через окно «Свойства» также доступно.

Щелчок правой кнопкой мыши на списке вызывает контекстное меню, содержащее команды:

  • “Свойства”;
  • “Экспорт в *.txt”;
  • “Импорт из *.txt”;
  • “Удалить узел”.

Команда «Свойства» открывает диалоговое окно выбора отображаемых свойств.

Команды «Экспорт», «Импорт» выполняют экспорт списка свойств узлов в текстовый файл и импорт соответственно.

Команда «Удалить узел» производит удаление выделенного узла (узлов).

2.5.3 Функция групповой замены источников в узлах

При разработке сложных проектов может возникнуть необходимость заменить источники сразу в большом количестве узлов. Для этой цели используется функция групповой замены источников.  Необходимо перейти в редактирование свойств типа «Список источников», которое производится в соответствующем окне (см. Рисунок 9).

Рисунок 9 – Окно редактирования свойств типа «Список источников»

Затем необходимо использовать функцию групповой замены (см. Рисунок 10), выделив нужные узлы, нажав на них ПКМ и выбрав «Групповая замена».

Рисунок 10 – Окно функции «Групповая замена»

2.6 Редактирование графического представления узла

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

  • фрейм;
  • форма;
  • окно с композицией;
  • слой.

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

Рисунок 11 – Открытое графическое представление окна «winMain»

На рисунке выше представлено графическое представление окна «winMain», обведенное пунктирной рамкой серого цвета, обозначающей внешнюю границу открытого узла. Тип рамки пользователь может выбрать по своему усмотрению, выбор производится в окне настроек среды разработки, доступном через команду «Настройки» в меню «Параметры».

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

Добавление новых виджетов также может осуществлять путем их перестаскивания в рабочую область из панели виджетов.

Графическое представление позволяет перемещать выделенные виджеты кнопками перемещения курсора на клавиатуре, а также изменять их размеры кнопками перемещения курсора при нажатой кнопке Shift.

2.6.1 Связывание источников и виджетов

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

Для связи виджетов с источниками данных можно воспользоваться обычным способом связывания через окно «Свойства». К примеру, связывание размещенного на форме виджета «Текстовая метка» с регистром Modbus осуществляется добавлением регистра Modbus в свойство виджета «Источник».

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

Рисунок 12 – Связывание узла «sourceModbusRegister0» и виджета

При помещении курсора над виджетом последний будет заштрихован сеткой зеленого или красного цвета, а курсор изменит свой вид на стрелку с квадратиком.

Зеленая штриховка виджета означает отсутствие связи выделенного виджета с источником данных. Красная означает наличие такой связи.

Рисунок 13 – Связывание узла «sourceModbusRegister0» и виджета.

2.6.2 Редактирование многослойных композиций

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

Рисунок 14 – Пример структуры композиции «Composition1», состоящей из трех слоев

Для открытия графического представления слоя нужно воспользоваться командой «Открыть графическое представление» аналогично открытию графического представления формы или композиции.

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

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

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

Сохранение проекта производится в следующих форматах:

  • Файл xml – используется средой разработки для хранения и редактирования проекта. Для сохранения в данном формате нажмите на кнопку «Сохранить проект» или «Сохранить проект как».
  • Рисунок 15 – Кнопки для сохранения проекта в формате xml файла
  • Бинарный файл – откомпилированный файл, предназначенный для исполнения рантаймом. Подробная информация приведена в разделе 6.2.

2.8 Установка пароля на проект

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

Рисунок 16 – Установка пароля

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