Основные компоненты среды Beremiz ================================= Пользовательский интерфейс среды разработки Beremiz состоит из следующих компонент: - Главное меню программы; - Панель инструментов; - Дерево проекта; - Панель списка переменных и констант; - Панель настроек проекта; - Панель файлов проекта; - Панель отображения промежуточного кода; - Текстовые редакторы языков ST и IL; - Графические редакторы языков FBD, SFC, LD; - Панель редактирования ресурса; - Панель экземпляров проекта; - Панель библиотеки функций и функциональных блоков; - Отладочная консоль; - Поиск элементов в проекте; - Панель отладки; - Панель графика изменения значения переменной в режиме отладки. Далее подробно рассказано про каждый компонент среды разработки Beremiz в отдельности. Главное меню программы ---------------------- Главное меню программы (см. :numref:`image2`) содержит следующие пункты: - «Файл»; - «Редактировать»; - «Вид»; - «Помощь». .. figure:: ./media/image2.png :name: image2 :align: center :figclass: align-center :width: 3.53125in :height: 0.28542in \– Главное меню программы Часть операций, выполняемых с помощью выбора определённого пункта меню мышью, могут быть исполнены с помощью «горячих клавиш». На выбор пользователя представлено два механизма обработки горячих клавиш. Первый механизм использует первые буквы названия пунктов меню, для выбора пункта необходимо нажать (ALT + ‘Клавиша первой буквы названия пункта в главном меню’) затем можно выбрать операцию или подменю, нажав на клавиатуре первую букву названия соответствующего пункта. Второй механизм использует установленные клавиатурные сочетания, далее будет подробно описан каждый пункт меню и соответствующая ему (если определена) «горячая клавиша». Меню «Файл» предназначено для работы с проектом и предоставляет следующие пункты: - «Новый» - создание нового проекта (CTRL + N); - «Открыть» - открытие существующего проекта (CTRL + O); - «Недавние проекты» - быстрое открытие одного из десяти последних, недавно редактированных проектов; - «Сохранить» - сохранение текущего проекта пункт (CTRL + S); - «Сохранить как» - сохранение текущего проекта в папку отличную от той, в которой он сохранён на данный момент (CTRL + SHIFT + S); - «Закрыть вкладку» - закрытие активной вкладки (например, вкладки переменных плагина, конфигурации и т.д.) для открытого проекта (CTRL + W); - «Закрыть проект» - закрыть текущий, открытый проект (CTRL + SHIFT + W); - «Настройки страницы» - настройка параметров страницы для печати на принтере активной программы, представленной в виде диаграммы (CTRL + ALT + P); - «Просмотр» - предварительный просмотр результата перед печатью на принтере активной программы (CTRL + SHIFT + P); - «Печать» - печать на принтере активной программы (CTRL + P); - «Выход» - закрытие текущего проекта и выход из программы Beremiz (CTRL+ Q). - Меню «Редактировать» предназначено для работы с редакторами языков стандарта МЭК 61131-3 и предоставляет следующие возможности: - «Отмена» - отмена последней манипуляции в редакторе (CTRL + Z); - «Повторить» повтор отменённой манипуляции в редакторе (CTRL + Y); - «Вырезать» - удалить в буфер обмена выделенный(е) элемент(ы) в редакторе (CTRL + X); - «Копировать» - копировать в буфер обмена выделенный(е) элемент(ы) в редакторе (CTRL + C); - «Вставить» - вставить из буфера обмена находящиеся там элемент(ы) в редактор (CTRL + V); - «Поиск» - поиск в текущем функциональном блоке (CTRL + F); - «Поиск следующего» - подсветка следующего вхождения строки поиска (CTRL+K); - «Поиск предыдущего» - подсветка предыдущего вхождения строки поиска (CTRL + SHIFT + K); - «Поиск в проекте» - вызов диалога поиска данных в проекте (CTRL + SHIFT + F); - «Добавить элемент» - добавление одного из следующих элемента в текущий проект: - «Тип данных» - нового типа данных; - «Функция» - новой функции; - «Функциональный блок» - нового функционального блока; - «Программа» - новую программу; - «Ресурс» - новый ресурс; - плагины для модулей УСО; - «Выделить всё» - выделение всех элементов в активной вкладке редактора (CTRL +A); - «Удалить» - удаление программного модуля, выделенного в дереве проекта. Меню «Вид» предназначено для работы с редакторами языков стандарта IEC-61131 и предоставляет следующие возможности: - «Обновить» - обновление данных и снятие выделения в редакторе (CTRL + R); - «Очистить ошибки» - очистка указателей ошибок в редакторе (CTRL + K); - «Приближение» - пункт, в котором можно выбрать в процентах величину масштаба; - «Сменить представление» - убирает все панели, оставляя только рабочее поле(F12) - «Сброс расположения панелей» - восстановление расположения панелей Beremiz в исходное состояние. Меню «Помощь» предназначено для обращения к выводу информации в виде диалога о создателях данной среды - пункт «О программе». Панель инструментов ------------------- Панель инструментов представляет собой панель с кнопками для быстрого обращения к часто используемым функциям среды разработки Beremiz. Она состоит из нескольких панелей, содержащих кнопки: главного меню, сборки проекта и установки связи с целевым устройством. Подробнее об этих панелях рассказано ниже. При редактировании программных модулей, написанных на графических языках, появляются дополнительные панели с кнопками. Они рассмотрены при описании редакторов графических языков стандарта IEC 61131-3 (см. п. 5.7). Кнопки главного меню Панель инструментов, содержащая кнопки главного меню представлена на :numref:`image3`. Список кнопок и их функций описывается в таблице 1. .. figure:: ./media/image3.png :name: image3 :align: center :figclass: align-center :width: 4.66732in :height: 0.4584in \– Панель инструментов Таблица 1 – Кнопки панели инструментов +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image3| | Новый проект | Создать новый проект | +-----------------------+-----------------------+-----------------------+ | |image4| | Открыть проект | Открыть существующий | | | | проект | +-----------------------+-----------------------+-----------------------+ | |image5| | Сохранить | Сохранить текущий | | | | проект | +-----------------------+-----------------------+-----------------------+ | |image6| | Сохранить как | Сохранить текущий | | | | проект в определенную | | | | папку | +-----------------------+-----------------------+-----------------------+ | |image7| | Печать | Печать на принтере | | | | текущей программы | +-----------------------+-----------------------+-----------------------+ | |image8| | Отмена | Отмена последней | | | | манипуляции в | | | | редакторе | +-----------------------+-----------------------+-----------------------+ | |image9| | Повторить | Повтор отмененной | | | | манипуляции в | | | | редакторе | +-----------------------+-----------------------+-----------------------+ | |image10| | Вырезать | Удалить в буфер | | | | обмена выделенные в | | | | редакторе фрагменты | +-----------------------+-----------------------+-----------------------+ | |image11| | Вставить | Вставить фрагменты из | | | | буфера обмена в | | | | редактор | +-----------------------+-----------------------+-----------------------+ | |image12| | Поиск в проекте | Вызов диалога поиска | | | | данных в проекте | +-----------------------+-----------------------+-----------------------+ Кнопки сборки проекта и установки связи с целевым устройством Панель, содержащая кнопки сборки проекта и соединения с целевым устройством, позволяет скомпилировать и скомпоновать текущий проект и, в случае, если эта операция завершилась успешно (данную информацию можно увидеть в отладочной консоли (см. п. 5.12.)), передать и запустить полученный исполняемый файл на целевом устройстве. Часть кнопок данной панели показана на :numref:`image14`. .. figure:: ./media/image14.png :name: image14 :align: center :figclass: align-center :width: 1.70857in :height: 0.46882in \– Панель сборки проекта и соединения с целевым устройством Таблица 2 – Кнопки сборки проекта и связи с целевым устройством на панели инструментов +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image14| | Сборка проекта в | Полная | | | директории сборки | сборка(компиляция и | | | | компоновка) текущего | | | | проекта в папку | | | | build, находящийся в | | | | папке, где хранится | | | | проект | +-----------------------+-----------------------+-----------------------+ | |image15| | Очистить директорию | Удаление папки build, | | | сборки проекта | где был собран проект | +-----------------------+-----------------------+-----------------------+ | |image16| | Подключиться к | Соединиться с целевым | | | целевому ПЛК | устройством по адресу | | | | URI, который был | | | | указан в настройках | | | | проекта | +-----------------------+-----------------------+-----------------------+ | |image17| | Показать код, | Показать код | | | сгенерированный | скомпилированного | | | PLCGenerator | проекта языке ST | +-----------------------+-----------------------+-----------------------+ | |image18| | Передать ПЛК | Перенести исполняемый | | | | файл, полученный в | | | | ходе сборки проекта, | | | | на целевое устройство | +-----------------------+-----------------------+-----------------------+ | |image19| | Запустить ПЛК | Запустить на | | | | исполнение собранную | | | | прикладную программу | | | | на целевом устройстве | +-----------------------+-----------------------+-----------------------+ | |image20| | Остановить запущенный | Остановить исполнение | | | ПЛК | прикладной программы | | | | на целевом устройстве | +-----------------------+-----------------------+-----------------------+ В зависимости от того, произведено в настоящий момент времени соединение с целевым устройством или выполняется ли прикладная программа на нём, появляются и скрываются некоторые кнопки. На :numref:`image22` приведено состояние данной в панели, когда соединение с целевым устройством установлено и на нём уже есть прикладная программа. Соответственно, можно запустить с помощью кнопки «Запуск прикладной программы» её или передать новую, используя кнопку «Передача прикладной программы». .. figure:: ./media/image22.png :name: image22 :align: center :figclass: align-center :width: 2.39097in :height: 0.44792in \- Панель инструментов сборки проекта и соединения с целевым устройством В случае, когда при установке соединения произошли ошибки, данная информация будет выведена в отладочную консоль. Далее будет рассмотрен компонент «Дерево проекта», который представляет структуру элементов, составляющих проект. Дерево проекта -------------- Дерево проекта обычно расположено в левой части окна среды разработки Beremiz (см. :numref:`image23`) и отображает структуру элементов, из которых состоит проект. .. figure:: ./media/image23.png :name: image23 :align: center :figclass: align-center :width: 2.98889in :height: 3.54097in \– Дерево проекта В роли элементов могут выступать: - Ресурсы; - Программные модули (функции, функциональные блоки и программ) и их составные части; - Типы данных; - Плагины модулей УСО. Дерево проекта позволяет добавлять, удалять элементы. Операции копирования и вставки только доступны для программных модулей. Добавление элемента в дерево проекта В правом нижнем углу дерева проекта находится кнопка «+» (см. :numref:`image24`), при нажатии на которую, появляется меню для выбора добавления необходимого элемента в проект. .. figure:: ./media/image24.png :name: image24 :align: center :figclass: align-center :width: 3.31458in :height: 4.57569in \– Всплывающее меню добавления элементов проекта В случае добавления программного модуля, т.е. выбора пункта «Функция», «Функциональный блок» или «Программа», появится диалог «Создать новый программный модуль» (см. :numref:`image25`). .. figure:: ./media/image25.png :name: image25 :align: center :figclass: align-center :width: 3.13585in :height: 2.33366in \– Диалог добавления программного модуля В данном диалоге три поля: - «Имя программного модуля»; - «Тип программного модуля»; - «Язык». Имя, присвоенное по умолчанию, может быть заменено на имя, соответствующее назначению данного программного модуля. В зависимости от того, какой программный модуль был выбран во всплывающем меню, в поле «Тип программного модуля» будет подставлено именование данного программного модуля. В поле «Язык» необходимо выбрать из списка (см. :numref:`image26`) один из языков стандарта IEC 61131-3 (IL, ST, LD, FBD, SFC), на котором будут реализованы алгоритмы и логика работы данного добавляемого программного модуля. .. figure:: ./media/image26.png :name: image26 :align: center :figclass: align-center :width: 3.12544in :height: 3.41714in \– Выбор языка программного модуля В случае выбора добавления типа данных, появится диалог (см. :numref:`image27`), в котором необходимо указать механизм создания нового типа данных .. figure:: ./media/image27.png :name: image27 :align: center :figclass: align-center :width: 6.80347in :height: 2.43611in \– Добавление пользовательского типа данных Добавление нескольких элементов одного типа, например нескольких программ, функций, функциональных блоков приводит к их группировке в дереве проекта. Еще одним способом добавления нового элемента является нажатие правой клавиши мыши по определённому разделу в дереве проекта. Например, при нажатии на «Функциональные блоки», появится всплывающее меню (см. :numref:`image28`). В данном меню можно выбрать «Добавить программный модуль» или «Вставить программный модуль», если он был скопирован в буфер обмена. Добавление нового элемента или выбор существующего в дереве проекта приводит к появлению панели редактирования и настроек соответствующего элемента: - Панель настроек проекта; - Панель, содержащая текстовый редактор языков ST и IL; - Панель, содержащая графические редакторы диаграмм языков FBD, SFC, LD; - Панель настроек ресурса; - Панель редактирование типа данных; - Панели настроек плагинов модулей УСО. Каждая вышеперечисленная панель редактирования будет рассмотрена в последующих пунктах.  .. figure:: ./media/image28.png :name: image28 :align: center :figclass: align-center :width: 2.80208in :height: 3.08333in \– Всплывающее меню добавления и вставки программного модуля Удаление элемента в дереве проекта Удаление осуществляется наведением на определённый элемент в дереве проекта и нажатием на него правой клавишей мыши, а далее в появившемся меню выбирается пункт «Удалить» (см. :numref:`image29`) .. figure:: ./media/image29.png :name: image29 :align: center :figclass: align-center :width: 2.78125in :height: 1.35417in \– Удаление элемента Переименование, копирование и вставка программных модулей Дерево проекта позволяет выполнять операции переименования, копирования и вставки для программных модулей. Копирование или переименование осуществляются с помощью нажатия правой клавиши мыши на элемент (см. :numref:`img29`), соответствующий программному модулю в дереве проекта, и выбор соответствующего пункта появившегося меню. .. figure:: ./media/image29.png :name: img29 :align: center :figclass: align-center :width: 2.77083in :height: 1.35417in \– Копирование и переименование элемента Вставка программного модуля осуществляется в меню (нажатие правой клавишей мыши по данному элементу) корневого элемента дерева проекта, соответствующего проекту (см. :numref:`image30`): .. figure:: ./media/image30.png :name: image30 :align: center :figclass: align-center :width: 2.76736in :height: 1.06389in \– Вставка программного модуля Другим способом выполнения вышеописанной операции является вызов меню для элемента группировки программных модулей одного типа (см. :numref:`image31`). Далее приводится описание панели переменных и констант, которая присутствует при редактировании проекта, ресурса и программных модулей (функции, функционального блока, программы). .. figure:: ./media/image31.png :name: image31 :align: center :figclass: align-center :width: 2.67708in :height: 0.88542in \– Вставка программного модуля Панель списка переменных и констант ----------------------------------- Панель списка переменных и констант (см. :numref:`image32`) отображает с помощью таблицы переменные и константы, соответствующие выбранному программному модулю, ресурсу или в целом проекту. .. figure:: ./media/image32.png :name: image32 :align: center :figclass: align-center :width: 7.45in :height: 1.69514in \– Панель переменных и констант Каждая переменная имеет следующие параметры: - Имя, представляющее собой уникальный идентификатор переменной в пределах её области видимости и действия; - Класс: «Глобальный», «Вход», «Выход», «Вход/Выход», «Локальный», «Внешний», «Временный»; - Тип, определяющий тип переменной и может принадлежать базовому типу (в соответствии со стандартом IEC 61131-3), пользовательскому типу (псевдониму и поддиапазону существующего типа, перечислению, массиву, структуре) или типу функционального блока (стандартному или пользовательскому); - Размещение - идентификатор, необходимый для связывания данной переменной с переменной плагина модуля УСО; - Исходное значение значение - инициализация переменной некоторым начальным значением; - Настройка - задание константности, реманентности (сохранение её значения в энергонезависимой памяти) и нереманентности переменной; - Описание - комментарий к назначению данной переменной или константы. Первый символ имени переменной или константы должен быть буквой, или символом подчеркивания, далее могут следовать цифры, буквы латинского алфавита и символы подчеркивания. Набор возможных вариантов классов переменных зависит от типа элемента проекта, редактирования которого осуществляется. Двойной клик на полю «Размещение» вызывает появление кнопки «...», показанной на :numref:`image33`: .. figure:: ./media/image33.png :name: image33 :align: center :figclass: align-center :width: 1.45833in :height: 0.9375in \- Поле «Размещение» панели переменных и констант Нажатие на данную кнопку приводит к появлению диалога «Просмотр директорий» (см. :numref:`image34`), т.е. списка переменных модулей УСО, которые могут быть связанны с переменой в панели переменных и констант. При выборе в данном диалоге определённой переменной и нажатии клавиши «OK» в поле «Адрес» будет добавлен адрес переменной внешнего модуля УСО. .. figure:: ./media/image34.png :name: image34 :align: center :figclass: align-center :width: 4.79306in :height: 3.0625in \- Диалог «Просмотр адресов», вызываемый из поля «Адрес» Поле опции позволяет определить переменную как константу. Соответственно, если компилятор обнаружит в коде фрагмент, в котором происходит изменение этой переменной - будет выведена ошибка компиляции «Assignment to constant variables is not be allowed» в «Отладочной консоли». Квалификатор «Константа» не может быть использован в объявлении функциональных блоков. Добавление, удаление и перемещение переменных происходит с помощью специальных кнопок на панели переменных и констант. Описания данных кнопок представлены в таблице 3. Панель переменных и констант предоставляет возможность фильтровать отображаемые переменные по их конкретным классам («Вход» ,«Выход», «Вход/Выход», «Внешний», «Локальный», «Временный») или сгруппированным классам («Интерфейс» и «Переменные»). Данная операция выполняется с помощью функции «Фильтр класса» (см. :numref:`image35`). .. figure:: ./media/image35.png :name: image35 :align: center :figclass: align-center :width: 2.30486in :height: 2.82569in \- Фильтрация отображения переменных в панели переменных и констант Таблица 3 - Кнопки добавления, удаление и перемещения переменных на панели переменных и констант +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image38| | Добавить переменную | Добавить новую | | | | переменную в панель | | | | переменных и констант | | | | со значениями по | | | | умолчанию | +-----------------------+-----------------------+-----------------------+ | |image39| | Удалить переменную | Удалить выделенную | | | | переменную или | | | | константу | +-----------------------+-----------------------+-----------------------+ | |image40| | Переместить | Перемещение | | | переменную вверх | переменной в таблице | | | | переменных и констант | | | | вверх на одну позицию | +-----------------------+-----------------------+-----------------------+ | |image41| | Переместить | Перемещение | | | переменную вниз | переменной в таблице | | | | переменных и констант | | | | вниз на одну позицию | +-----------------------+-----------------------+-----------------------+ Панель настройки проекта ------------------------ Панель редактирования проекта (см. :numref:`image40`) состоит из панели переменных и констант, а также настроек сборки проекта и данных о проекте. .. figure:: ./media/image40.png :name: image40 :align: center :figclass: align-center :width: 4.29348in :height: 0.38641in \- Панели настройки проекта Настройки сборки проекта (см. :numref:`image41`) позволяют задать следующие параметры: - «URI системы исполнения» - унифицированный (единообразный) идентификатор ресурса, в данном случае под ресурсом понимается целевое устройство. Данный адрес необходим для режима отладки. - «Запретить расширения» - установка данного флага позволяет не учитывать при сборке проекта внешние плагины; - «Библиотеки» - подключаемые дополнительные библиотеки: «Native_Library», «Python_Library», «SVGUI_Library»; - «Целевая платформа» - выбор из списка компилятора для архитектуры целевого устройства; - «Компилятор» - имя исполняемого файла компилятора (если он определён в глобальных переменных среды), либо полный путь к нему; - «CFLAGS» - указание флагов С компилятора; - «Линковщик» - имя исполняемого файла компоновщика (если он определён в глобальных переменных среды), либо полный путь к нему; - «LDFLAGS» - указание флагов компоновщика; .. figure:: ./media/image41.png :name: image41 :align: center :figclass: align-center :width: 3.37986in :height: 3.07847in \- Панель с настройками проекта Также в настройках сборки проекта имеются две кнопки, описание которых приведено в таблице 4. Таблица 4 - Кнопки в панели настройки сборки проекта +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image44| | МЭК - код | Вызов «Панели | | | | отображения | | | | промежуточного кода» | | | | (см. п. 5.5.1), для | | | | вывода кода, из | | | | которого генерируется | | | | ST код всего проекта | +-----------------------+-----------------------+-----------------------+ | |image45| | Файлы проекта | Вызов «Панели файлов | | | | проекта», в которой | | | | можно выбрать файлы | | | | необходимые для | | | | передачи на целевое | | | | устройство вместе с | | | | исполняемым файлом | | | | (см. п. 5.5.2) | +-----------------------+-----------------------+-----------------------+ Вкладка «Проект» (см. :numref:`image44`) позволяет задать: имя проекта, версию проекта, имя продукта, версию продукта и релиз продукта. .. figure:: ./media/image44.png :name: image44 :align: center :figclass: align-center :width: 7.09167in :height: 2.40417in \– Вкладка с данными проекта Вкладка «Автор» (см. :numref:`image45`) позволяет задать: Имя компании, URL-адрес компании, Имя автора, Название организации. .. figure:: ./media/image45.png :name: image45 :align: center :figclass: align-center :width: 6.94028in :height: 1.96736in \– Вкладка данные об авторе проекта Вкладка «Графика» (см. :numref:`image46`) позволяет задать размеры страницы и разрешение сетки для редакторов диаграмм графических языков FBD, LD и SFC. .. figure:: ./media/image46.png :name: image46 :align: center :figclass: align-center :width: 6.31944in :height: 2.37431in \– Вкладка графика Вкладка «Прочее», изображенная на :numref:`image47`, позволяет выбрать язык интерфейса для среды разработки Beremiz и указать дополнительное текстовое описание для проекта. .. figure:: ./media/image47.png :name: image47 :align: center :figclass: align-center :width: 6.63207in :height: 1.61956in \– Вкладка с настройками языка и описанием проекта При запуске среды разработки Beremiz языком по умолчанию является язык, соответствующий текущей локали операционной системы, если файл для данной локали присутствуют. В случае отсутствия данных файлов, устанавливается английская локаль, которая доступна всегда. Файлы доступных локалей располагаются в папке beremiz/locale. Панель отображения промежуточного кода Данная панель (см. :numref:`image48`) представляет собой текстовый редактор, отображающий с подсветкой синтаксиса и нумерацией строк код на языке ST, доступный только для чтения, без возможности редактирования. .. figure:: ./media/image48.png :name: image48 :align: center :figclass: align-center :width: 5.40208in :height: 2.05in \– Панель отображения промежуточного кода на языке ST Открытие данной панели доступно после сборки проекта с помощью соответствующей кнопки (см. таблицу 2). Панель файлов проекта Панель файлов проекта (см. :numref:`image49`) содержит встроенный проводник файлов (справа), в котором файлы могут быть выделены и перенесены в левую часть. .. figure:: ./media/image49.png :name: image49 :align: center :figclass: align-center :width: 6.20834in :height: 2.97826in \– Вкладка файлы проекта Все манипуляции с файлами осуществляются с помощью кнопок, расположенных в середине данной панели. Их описание приведено в таблице 5. Таблица 5 - Кнопки в панели файлов проекта +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image39| | Удалить файл из левой | Удаление выделенного | | | директории | файла из левого | | | | списка добавленных | | | | файлов в проект | +-----------------------+-----------------------+-----------------------+ | |image52| | Скопировать файл из | Добавить выделенный | | | правой директории в | файл из проводника | | | левую | файлов в проект | +-----------------------+-----------------------+-----------------------+ | |image53| | Скопировать файл из | Добавить в текущую | | | левой директории в | папку проводника | | | правую | файлов слева | | | | выделенный файл в | | | | списке файлов проекта | +-----------------------+-----------------------+-----------------------+ Данные файлы будут переданы на целевое устройство вместе с исполняемым файлом. Как правило, этими дополнительными файлами проекта являются сторонние библиотеки, необходимые для корректной работы плагинов модулей УСО. Текстовый редактор языков ST и IL --------------------------------- Текстовый редактор языков ST и IL (см. :numref:`image52`) позволяет создавать и редактировать алгоритмы и логику выполнения программных модулей на языках ST и IL. .. figure:: ./media/image52.png :name: image52 :align: center :figclass: align-center :width: 6.10833in :height: 2.63889in \– Текстовый редактор языков ST и IL Он обеспечивают следующие возможности: - Подсветку синтаксиса кода, написанного пользователем, т.е. выделения особыми параметрами шрифта ключевых слов данных языков; - Нумерации строк, что может быть полезным при возникновении ошибок в программе, т.к. транслятор кода ST в C выдаёт номер строки, в которой найдена ошибка; - Сворачивание кода структурных элементов языка: определения функции, определение типа и т. Д. Увеличение или уменьшение размера шрифт выполняется с помощью Ctrl + <колёсико мыши>. Описание синтаксиса, основных конструкций и примеров использования языков ST и IL приведены в описании языков стандарта МЭК 61131-3. Графические редакторы диаграмм языков FBD, SFC, LD -------------------------------------------------- Данные редакторы позволяют создавать и редактировать алгоритмы и логику выполнения программных модулей, написанных на языках FBD, SFC и LD. Редактор языка FBD Основными элементами языка FBD являются: переменные, функциональные блоки и соединения. При редактировании FBD диаграммы, в панели инструментов появляется следующая панель (см. :numref:`image53`). .. figure:: ./media/image53.png :name: image53 :align: center :figclass: align-center :width: 2.44826in :height: 0.48965in \– Панель редактирования FBD диаграмм С помощью данной панели можно добавить все элементы языка FBD (назначение каждой кнопки описано в таблице 6). Таблица 6 - Кнопки в панели файлов проекта +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image56| | Выделение объектов на | Перевод указателя | | | диаграмме | мыши в состояние, при | | | | котором можно | | | | осуществлять | | | | выделение объектов | | | | редакторе одного из | | | | графических языков | +-----------------------+-----------------------+-----------------------+ | |image57| | Перемещение | Перевод указателя | | | | мыши в состояние, при | | | диаграммы | котором можно | | | | изменять размеры | | | | редактора одного из | | | | графических языков, с | | | | помощью его | | | | перемещения | +-----------------------+-----------------------+-----------------------+ | |image58| | Создать новый | Вызов диалога | | | комментарий | создания комментария | | | | | +-----------------------+-----------------------+-----------------------+ | |image59| | Добавить переменную | Вызов диалога | | | | добавления переменной | | | | | +-----------------------+-----------------------+-----------------------+ | |image60| | Добавить | Вызов диалога | | | | добавления | | | функциональный блок | функционального блока | +-----------------------+-----------------------+-----------------------+ | |image61| | Добавить подключение | Вызов диалога | | | | добавления соединения | | | | | +-----------------------+-----------------------+-----------------------+ Для этого необходимо указателем мыши выбрать необходимую кнопку и нажать на свободное место в области редактирования FBD диаграммы. В зависимости от выбранного элемента появятся определённые диалоги добавления данного элемента. Аналогичные действия можно выполнить с помощью всплывающего меню в области редактирования FBD диаграмм. Вызов данного меню происходит нажатием правой клавишей мыши и выбором пункта «Добавить», в котором будет: «Блок», «Переменная», «Подключение», «Комментарий» (см. :numref:`image60`). .. figure:: ./media/image60.png :name: image60 :align: center :figclass: align-center :width: 3.20605in :height: 1.53261in \- Всплывающее меню редактора языка FBD Далее рассмотрено добавление каждого элемента в отдельности. Добавление функционального блока При добавлении функционального блока одним из описанных выше способов, появится диалог «Свойства блока» (см. :numref:`image61`). .. figure:: ./media/image61.png :name: image61 :align: center :figclass: align-center :width: 4.60833in :height: 3.31181in \– Свойства функционального блока В данном диалоге приведено краткое описание функционального блока и предоставлена возможность задать некоторые свойства (имя, количество входов, порядок выполнения и т.д.). Опция «Управление исполнением» добавляет в функциональный блок дополнительные параметры EN/ENO, о которых подробнее рассказано в приложении 5. Для сохранения изменений необходимо нажать «OK». Одним из свойств является «Порядок исполнения». Добавление (путем копирования существующего блока), удаление и переименование функционального блока осуществляется при помощи команд меню «Редактирование» в главном меню или с помощью всплывающего меню диаграммы (см. :numref:`image61`). Следует отметить, что функциональный блок может быть так же добавлен из «Панели библиотеки функций и функциональных блоков», перетаскиванием мыши (Drag&Drop) выбранного блока на панель редактирования диаграммы FBD. Добавление переменной Переменные добавляются из панели переменных и констант с помощью перетаскивания (Drag&Drop) левой клавишей мыши за область, выделенную красным цветом на :numref:`image62`, в область редактирования FBD диаграмм. .. figure:: ./media/image62.png :name: image62 :align: center :figclass: align-center :width: 6.77639in :height: 2.9125in \– Добавление переменной из панели переменных и констант Изменить параметры переменной можно в диалоге «Свойства переменной» (см. :numref:`image63`), нажав на неё два раза левой клавишей мыши. .. figure:: ./media/image63.png :name: image63 :align: center :figclass: align-center :width: 3.02083in :height: 2.75486in \– Свойства переменной В данном диалоге можно задать порядок исполнения переменной и изменить её класс («Вход», «Выход», «Вход/Выход»). Добавление подключения В тех случаях, когда необходимо передать выходное значение одного функционального блока на один из входов другого, удобно использовать элемент «Подключение». При прямом соединении с помощью перетаскивания выхода одного функционального блока к входу другого получится прямое соединение с помощью чёрной соединительной линии. На схемах с большим количеством функциональных блоков элемент «Подключение» позволяет избежать пересечения прямых соединений, которые приводит к тому, что схема становится менее понятной. После выбора добавления элемента «Подключение» появится диалог «Свойства подключения» (см. :numref:`image64`). .. figure:: ./media/image64.png :name: image64 :align: center :figclass: align-center :width: 2.79525in :height: 1.88235in \- Диалог добавления подключения для FBD В данном диалоге можно выбрать тип соединения: «Выходное соединение» - для выходного значения, «Входное соединение» - для входного значения, а так же необходимо указать имя данного соединения. На :numref:`image65` представлен пример использования соединений. .. figure:: ./media/image65.png :name: image65 :align: center :figclass: align-center :width: 4.11667in :height: 1.57708in \- Пример FBD диаграммы с использованием подключений Функция «MAX» на выходе «OUT» имеет некоторое значение, которое с помощью соединения «RESULT» передаётся на вход «IN1» в функцию «MIN». В функции «MAX» используется соединение типа «Выходное соединение», в функции «MIN» - типа «Входное соединение». Имена у этих соединений, соответственно, одинаковые. Добавление комментариев Редактор FBD диаграмм (и остальные редакторы, о которых будет рассказано ниже) позволяют добавлять комментарии на диаграмму. После выбора на панели редактирования комментария и добавления его в область редактирования появится диалог (см. :numref:`image66`) для ввода текста комментария. .. figure:: ./media/image66.png :name: image66 :align: center :figclass: align-center :width: 3.38235in :height: 1.87814in \– Диалог добавления комментария После нажатия кнопки «ОК» комментарий появится на диаграмме(см. :numref:`image67`) .. figure:: ./media/image67.png :name: image67 :align: center :figclass: align-center :width: 4.20069in :height: 1.88194in \– Добавленный комментарий к FBD диаграмме Порядок выполнения функций и функциональных блоков Последовательность исполнения функций и функциональных блоков определяется порядком их выполнения. Автоматически он регламентируется следующим образом: чем выше и левее расположен верхний левый угол, описывающего функцию или функциональный блок прямоугольника, тем раньше данная функция или функциональный будет выполнен. Если обратиться к :numref:`image68`, то порядок выполнения функций будет следующим: 1 – CounterST0; 2 – CounterFBD0; 3 – CounterSFC0. .. figure:: ./media/image68.png :name: image68 :align: center :figclass: align-center :width: 5.60875in :height: 1.55208in \- Схема, содержащая функции с порядком выполнения (обсчета) по расположению Данная опция «Порядок выполнения» выделена красным цветом на :numref:`image69`. .. figure:: ./media/image69.png :name: image69 :align: center :figclass: align-center :width: 3.88194in :height: 2.79444in \- Свойство порядок выполнения функции или функционального блока После задания порядка выполнения для каждой функции или функционального блока на схеме в правом нижнем углу будет указан его порядковый номер выполнения. Пример представлен на :numref:`image70`. .. figure:: ./media/image70.png :name: image70 :align: center :figclass: align-center :width: 5.40555in :height: 1.66667in \- Схема, содержащая функции с порядком выполнения заданным вручную Описание языка FBD, основных его конструкций и пример использования приведены в приложении 5. Редактор языка LD Язык LD или РКС (Релейно-Контактные Схемы) представляет собой графическую форму записи логических выражений в виде контактов и катушек реле. Основными элементами языка LD являются: шина питания, катушка, контакт. Добавить данные элементы, так же как и элементы языка FBD, можно несколькими способами. Как только активной становится вкладка с редактированием LD диаграммы, в панели инструментов появляется панель (см. :numref:`image71`) с элементами языка LD. .. figure:: ./media/image71.png :name: image71 :align: center :figclass: align-center :width: 3.54216in :height: 0.46882in \- Панель редактирования LD диаграмм Аналогично редактору языка FBD с помощью данной панели можно добавить все элементы языка LD, а так же и FBD, т.к. есть возможность комбинированного применения языков на одной диаграмме. В таблице 7 приведено описание кнопок данной панели. Описание остальных кнопок, относящихся к языку FBD, находится в таблице 6. Таблица 7 - Кнопки панели редактирования LD диаграммы +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image74| | Создать новую шину | Вызов диалога | | | питания | создания новой шины | | | | питания | +-----------------------+-----------------------+-----------------------+ | |image75| | Создать новую катушку | Вызов диалога | | | | создания новой | | | | катушки | +-----------------------+-----------------------+-----------------------+ | |image76| | Создать новый контакт | Вызов диалога | | | | создания нового | | | | контакта | +-----------------------+-----------------------+-----------------------+ Во всплывающем меню для редактора LD диаграмм (см. :numref:`image75`), так же как и в панели инструментов помимо элементов LD языка, доступны элементы языка FBD. .. figure:: ./media/image75.png :name: image75 :align: center :figclass: align-center :width: 2.51667in :height: 1.92153in \- Всплывающее меню редактора языка LD Добавление шины питания При добавлении шины питания, одним из описанных выше способов, появится диалог «Свойства шины питания» (см. :numref:`image76`). В данном диалоге указываются следующие свойства: - Тип шины питания: шина питания слева или шина питания справа; - Количество контактов на добавляемой шине питания. .. figure:: ./media/image76.png :name: image76 :align: center :figclass: align-center :width: 2.69608in :height: 1.88726in \- Свойство шины питания На :numref:`image77` приведены две добавленные шины питания: левая с тремя контактами и правая с одним контактом. .. figure:: ./media/image77.png :name: image77 :align: center :figclass: align-center :width: 1.36275in :height: 1.4875in \- Шины питания на LD диаграмме Добавление контакта При добавлении контакта на LD диаграмму появится диалог «Редактирование значения контакта» (см. :numref:`image78`). .. figure:: ./media/image78.png :name: image78 :align: center :figclass: align-center :width: 2.3625in :height: 2.04167in \- Редактирование контакта Данный диалог позволяет определить модификатор данного контакта: - «Обычный»; - «Инверсия»; - «Нарастающий фронт»; - «Спадающий фронт». Кроме того, диалог позволяет выбрать из списка «Имя» переменную, «связываемую» с данным контактом. Следует отметить, что «связываемые» переменные должны быть определены в панели переменных и констант для данного программного модуля типом BOOL. Еще одним способом добавления контакта на диаграмму является метод Drag&Drop из панели переменных и констант переменной типа BOOL и класса: «Вход», «Вход/Выход», «Внешний», «Локальный», «Временный». Для этого необходимо зажать левой кнопкой мыши за первый столбец (который имеет заголовок #) переменную, удовлетворяющую описанным выше критериям и перенести в область редактирования диаграммы (см. :numref:`image79`). .. figure:: ./media/image79.png :name: image79 :align: center :figclass: align-center :width: 2.01944in :height: 2.20278in \- Добавление контакт на диаграмму из панели переменных и констант Добавление катушки При добавлении катушки на LD диаграмму появится диалог «Редактирование значения катушки» (см. :numref:`image80`). .. figure:: ./media/image80.png :name: image80 :align: center :figclass: align-center :width: 2.51389in :height: 2.60764in \– Редактирование катушки В данном диалоге можно определить модификатор данного контакта: - «Обычный»; - «Инверсия»; - «Установить»; - «Сброс»; - «Нарастающий фронт»; - «Спадающий фронт». Кроме того, производится выбор из списка «Имя» переменной, «связываемой» с данным контактом. Эти переменные, как и для контактов, должны быть определены в панели переменных и констант для данного программного модуля типом BOOL. Аналогично добавлению контакта с помощью Drag&Drop можно добавить и катушки, но в данном случае переменная должна относиться к классу «Выход» (см. :numref:`image81`). .. figure:: ./media/image81.png :name: image81 :align: center :figclass: align-center :width: 1.97485in :height: 2.07843in \- Добавление катушки на диаграмму из панели переменных и констант Описание языка LD, основных конструкций и примера его использования приведены в описании яызков стандарта МЭК 61131-3. Редактор языка SFC Основными элементами языка SFC являются: начальный шаг, шаг, переход, блок действий, дивергенции, «прыжок». Программа на языке SFC состоит из набора шагов, связанных переходами. Как только активной становится вкладка с редактированием SFC диаграммы, в панели инструментов появляется следующая панель (см. :numref:`image82`). .. figure:: ./media/image82.png :name: image82 :align: center :figclass: align-center :width: 4.54902in :height: 0.40959in \- Панель редактирования SFC диаграмм В таблице 8 приведено описание кнопок данной панели. Описание остальных кнопок, относящихся к языку FBD и LD (за исключением катушки) и так же находящихся на этой панели, приведены в таблицах 6 и 7 соответственно. Таблица 8 - Кнопки панели редактирования LD диаграммы +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image85| | Создать новый | Вызов диалога | | | начальный шаг | редактирования шага | | | | | +-----------------------+-----------------------+-----------------------+ | |image86| | Создать новый шаг | Вызов диалога | | | | редактирования шага | +-----------------------+-----------------------+-----------------------+ | |image87| | Создать новый переход | Вызов диалога | | | | редактирования | | | | перехода | +-----------------------+-----------------------+-----------------------+ | |image88| | Создать новый блок | Вызов диалога | | | действий | редактирования блока | | | | действий | +-----------------------+-----------------------+-----------------------+ | |image89| | Создать новое | Вызов диалога | | | ветвление | создания новой | | | | дивергенции и | | | | конвергенции | +-----------------------+-----------------------+-----------------------+ | |image90| | Создать новый | Вызов диалога | | | безусловный переход | создания «прыжка» | +-----------------------+-----------------------+-----------------------+ Далее даётся описание добавления приведённых в таблице 8 элементов языка SFC. Добавление шага инициализации и шага Процедура добавления шага инициализации и обычного шага ничем не отличается. В обоих случаях вызывается диалог «Редактировать шаг» (см. :numref:`image89`). .. figure:: ./media/image90.png :name: image90 :align: center :figclass: align-center :width: 2.91111in :height: 1.92917in \- Диалог редактирования шага инициализации SFC диаграммы Согласно стандарту IEC 61131-3, на SFC диаграмме должен быть один шаг инициализации, который характеризует начальное состояние SFC-диаграммы и отображается со сдвоенными линиями на границах (см. :numref:`image91`). .. figure:: ./media/image91.png :name: image91 :align: center :figclass: align-center :width: 0.85429in :height: 0.6876in \- Шаг инициализации языка SFC В случае, если при добавлении шага не указано его имя - будет выдана ошибка (см. :numref:`image92`). .. figure:: ./media/image92.png :name: image92 :align: center :figclass: align-center :width: 3.12544in :height: 1.58355in \– Ошибка отсутствия имени шага при его добавлении в диаграмму При добавлении шага появляется диалог, в котором можно указать, с помощью галочек его соединители (см. :numref:`image89`): - «Вход»; - «Выход»; - «Действие». .. figure:: ./media/image89.png :name: image89 :align: center :figclass: align-center :width: 2.91111in :height: 1.92917in \– Добавление шага SFC на диаграмму «Действие» добавляет соединитель для связывания данного шага с блоком действий. «Вход» и «Выход» соединители, как правило, соединены с переходом. Соответственно, после нажатия кнопки OK, на диаграмму будет добавлен шаг с указанными соединителями (см. :numref:`image93`). .. figure:: ./media/image93.png :name: image93 :align: center :figclass: align-center :width: 0.77394in :height: 0.54862in \- Шаг SFC диаграммы с соединителями входа и действия Добавление перехода При добавлении на SFC диаграмму перехода, появится диалог «Редактировать переход» (см. :numref:`image94`). .. figure:: ./media/image94.png :name: image94 :align: center :figclass: align-center :width: 2.66597in :height: 2.53125in \– Добавление нового перехода в диаграмму В данном диалоге необходимо выбрать тип перехода и его приоритет. Тип перехода может быть: - «Ссылка»; - «Встроенный код»; - «Соединение». При выборе типа перехода «Ссылка» в открывающемся списке (см. :numref:`image95`) будут доступны переходы, предопределённые в дереве проекта для данного программного модуля, написанного на языке SFC. Добавление предопределённого перехода описывается ниже после описания всех добавляемых элементов языка SFC. .. figure:: ./media/image95.png :name: image95 :align: center :figclass: align-center :width: 2.71865in :height: 2.57843in \- Всплывающий список с доступными предопределёнными переходами При выборе типа перехода «Непосредственно» (см. :numref:`image96`), условие перехода можно написать в виде выражения на языке ST. .. figure:: ./media/image96.png :name: image96 :align: center :figclass: align-center :width: 2.65625in :height: 2.54097in \- Условие перехода в виде встроенного кода, написанного на языке ST Реализация перехода таким способом удобна в случае, когда необходимо короткое условие, например: переменные «F3» и «F4» типа INT равны. Встроенный код для такого условия выглядит следующим образом (см. :numref:`image96`): F3 = F4 Так же например можно в качестве условия просто указать переменную. В случае её значения равного 0 - будет означать FALSE, все остальные значения - TRUE. При выборе типа перехода «Соединение» (см. :numref:`image97`), в качестве условия перехода можно использовать выходные значения элементов языка FBD или LD. .. figure:: ./media/image97.png :name: image97 :align: center :figclass: align-center :width: 2.71667in :height: 2.60764in \- Выбор условия перехода как соединение с элементами других графических языков IEC 61131-3 При выборе типа перехода «Подключение», у добавленного перехода появится слева контакт, который необходимо соединить с выходным значением, например, функционального блока языка FBD или катушки LD диаграммы. Стоит отметить, что данное выходное значение должно быть типа BOOL. Ниже, на :numref:`image98` красным цветом выделен пример перехода, условия которого задано с помощью языка LD. .. figure:: ./media/image98.png :name: image98 :align: center :figclass: align-center :width: 5.88859in :height: 1.52941in \– Пример SFC диаграммы, в которой один из переходов задан с помощью языка LD Добавление блока действий При добавлении блока действий на диаграмму появится диалог «Редактировать свойство блока действий» (см. :numref:`image99`). .. figure:: ./media/image99.png :name: image99 :align: center :figclass: align-center :width: 3.70588in :height: 2.11019in \- Диалог «Редактировать свойство блока действий» Данный блок действий может содержать набор действий. Добавить новое действие можно нажав кнопку «Добавить» и установив необходимые параметры: - «Спецификатор»; - «Длительность»; - «Тип»: «Действие», «Переменная», «Непосредственно»; - «Значение»; - «Индикатор». Поле «Спецификатор» определяет момент времени, когда действие начинается, сколько времени продолжается и когда заканчивается. Выбрать квалификатор можно из списка (см. :numref:`image100`). .. figure:: ./media/image100.png :name: image100 :align: center :figclass: align-center :width: 3.52941in :height: 3.41013in \- Меню выбора спецификатора для действия в диаграмме SFC Подробное описание спецификаторов, которые выбираются из предлагаемого списка при добавлении действия приведено в таблице 9. Таблица 9 - Квалификаторы действий SFC диаграммы +-----------------------------------+-----------------------------------+ | Имя спецификатора | Поведение блока действия | +===================================+===================================+ | D | Действие начинает выполняться | | | через некоторое заданное время | | | (если шаг еще активен) и | | | выполняется до тех пор, пока | | | данный шаг активен | +-----------------------------------+-----------------------------------+ | L | Действие выполняется в течение | | | некоторого заданного интервала | | | времени, после чего выполнение | | | действия останавливается | +-----------------------------------+-----------------------------------+ | N | Действие выполняется, пока данный | | | шаг активен | +-----------------------------------+-----------------------------------+ | P | Действие выполняется один раз, | | | как только шаг стал активен | +-----------------------------------+-----------------------------------+ | P0 | Действие выполняется один раз, | | | как только шаг стал неактивен | +-----------------------------------+-----------------------------------+ | P1 | Действие выполняется один раз, | | | как только шаг стал активен | +-----------------------------------+-----------------------------------+ | S | Действие активируется и остается | | | активным пока SFC диаграмма | | | выполняется | +-----------------------------------+-----------------------------------+ | R | Действие выполняется, когда | | | диаграмма деактивизируется | +-----------------------------------+-----------------------------------+ | DS | Действие начинается выполняться | | | через некоторое заданное время, | | | только в том случае если шаг еще | | | активен | +-----------------------------------+-----------------------------------+ | SL | Действие активно в течении | | | некоторого, заданного интервала | +-----------------------------------+-----------------------------------+ | SD | Действие начинается выполняться | | | через некоторое время, даже в том | | | случае если шаг уже не активен | +-----------------------------------+-----------------------------------+ Поле «Длительность» необходимо для установки интервала времени необходимого для некоторых квалификаторов, описанных выше в таблице 9. «Тип» определяет код или конкретную манипуляцию, которая будет выполняться во время активации действия. В случае выбора «Действия» появляется возможность, как и в случае с переходом, использовать предопределённые действия в дереве проекта для данного программного модуля, написанного на языке SFC (см. :numref:`image101`). .. figure:: ./media/image101.png :name: image101 :align: center :figclass: align-center :width: 3.7451in :height: 2.14006in \- Выбор предопределённого действия Добавление предопределённого действия также как добавление предопределённого перехода описывается ниже после описания всех добавляемых элементов языка SFC. В случае выбора типа действия «Переменная» в поле «Значение» появляется возможность выбрать переменные (см. :numref:`image102`), относящиеся к данному программному модулю. .. figure:: ./media/image102.png :name: image102 :align: center :figclass: align-center :width: 3.68611in :height: 2.00972in \- Выбор предопределённой переменной Как только шаг становится активным, данная переменная в зависимости от своего типа принимает значение 0, 0.0, FALSE и другие нулевые значения типов. Как только действие начинает выполняться, переменная принимает значение 1, 1.0, TRUE и другие единичные значения типов. В случае если действие прекратило своё выполнение переменная снова принимает значение 0, 0.0, FALSE и другое нулевое значение, в зависимости от своего типа. В случае выбора «Непосредственно», появляется возможность в поле «Значение» написать на языке ST код, который будет выполняться, когда действие становится активным (см. :numref:`image103`). .. figure:: ./media/image103.png :name: image103 :align: center :figclass: align-center :width: 3.83333in :height: 2.14861in \- Написание встроенного кода для действия Следует отметить, что в конце встроенного кода для действия необходимо поставить «;», в отличие от встроенного кода для перехода. После добавления блока действия на диаграмму необходимо его ассоциировать с конкретным шагом. Данная операция выполняется обычным соединением правого контакта у шага и левого контакта у действия (см. :numref:`image104`). .. figure:: ./media/image104.png :name: image104 :align: center :figclass: align-center :width: 3.16279in :height: 1.11494in \- Ассоциирование шага ORANGE блоком действия, содержащим четыре действия Добавление дивергенции и конвергенции При добавлении ветвления, появится диалог «Создать новое ветвление» (см. :numref:`image105`). .. figure:: ./media/image105.png :name: image105 :align: center :figclass: align-center :width: 3.66667in :height: 2.08786in \– Добавление альтернативного ветвления(дивергенции) В первую очередь следует выбрать тип ветвления: - «Альтернативное ветвление»; - «Альтернативное объединения»; - «Параллельное ветвление»; - «Параллельное объединение». Вторым параметром является количество разветвлений, которое определяет на сколько ветвей будет либо расходится (в случае выбора типа дивергенции «Альтернативное ветвление» или «Параллельное ветвление») одна ветвь, либо сколько ветвей будет сходиться в одну ветвь (в случае выбора типа дивергенции «Альтернативное объединения» или «Параллельное объединение») Пример дивергенции с двумя разветвлениями показан на :numref:`image106` и выделен красным цветом. .. figure:: ./media/image106.png :name: image106 :align: center :figclass: align-center :width: 4.9186in :height: 2.27907in \– Пример SFC диаграммы, содержащей альтернативное ветвление Пример конвергенции выделен красным цветом на :numref:`image106_2`. .. figure:: ./media/image106.png :name: image106_2 :align: center :figclass: align-center :width: 4.39216in :height: 2.19608in \– Пример SFC диаграммы, содержащей альтернативное объединение Пример параллельного ветвления показан на :numref:`image107` и выделен красным цветом. .. figure:: ./media/image107.png :name: image107 :align: center :figclass: align-center :width: 2.87255in :height: 2.31373in \– Пример SFC диаграммы с параллельным ветвлением Согласно стандарту IEC 61131-3, каждая ветвь альтернативного ветвления должна оканчиваться переходом, при альтернативном объединении переход должен быть перед каждой ветвью. При параллельном ветвлении переход должен быть перед ветвлением, а при параллельном объединении переход необходим после объединения. Добавление безусловного перехода Элемент «безусловный переход» на SFC диаграмме подобен выполнению оператора GOTO при переходе на определённую метку в коде в различных языках программирования. После выбора добавления «прыжка» на SFC диаграмму, появится диалог (см. :numref:`image108`), в котором необходимо выбрать из списка шаг, к которому будет происходить «прыжок» - переход от одного шага SFC диаграммы к другому. .. figure:: ./media/image108.png :name: image108 :align: center :figclass: align-center :width: 2.54214in :height: 1.94792in \– Диалог добавления безусловного перехода В данном диалоге также присутствует и шаг инициализации (начальный шаг). После выбора шага и нажатия кнопки OK. На SFC диаграмме появится стрелочка, которую нужно соединить с переходом (см. :numref:`image109`). Справа от стрелочки находится имя шага, к которому осуществляется переход в случае выполнения условия перехода, находящегося выше и соединённого с ней. .. figure:: ./media/image109.png :name: image109 :align: center :figclass: align-center :width: 2.95278in :height: 2.725in \– Безусловный переход с шага Stop на начальный шаг Start Согласно стандарту IEC 61131-3, между шагом и «прыжком» должен обязательно быть определён переход. Предопределённые условия перехода и действия в дереве проекта В случае, если необходимо использовать определённое условие перехода между множеством шагов, есть возможность определить данное условие перехода в структуре SFC диаграммы. Данная операция выполняется нажатием на данную SFC диаграмму на дереве проекта правой клавишей мыши и выбором «Добавить переход» (см. :numref:`image110`). .. figure:: ./media/image110.png :name: image110 :align: center :figclass: align-center :width: 2.63681in :height: 2.62431in \- Всплывающее меню SFC диаграммы в панели проекта Далее появится диалог под названием «Создать новый переход» (см.:numref:`image111`). В нём необходимо выбрать уникальное имя перехода и язык, в котором будет описано данное условие. .. figure:: ./media/image111.png :name: image111 :align: center :figclass: align-center :width: 3.03889in :height: 1.60694in \- Диалог «Создать новый переход» В случае, если переходы с введённым именем уже существуют, то будет выведено сообщение об ошибке (см. :numref:`image112`). .. figure:: ./media/image112.png :name: image112 :align: center :figclass: align-center :width: 3.93103in :height: 1.26593in \- Сообщение об ошибке добавления существующего программного модуля Добавление действия в структуру SFC диаграммы (см. :numref:`image113`) происходит аналогично добавлению перехода в данную структуру. .. figure:: ./media/image113.png :name: image113 :align: center :figclass: align-center :width: 3.25862in :height: 1.81131in \- Всплывающее меню SFC для структуры диаграммы После выбора «Добавить действие» во всплывающем меню, вызванном с помощью нажатия правой клавиши мыши по программному модулю, написанном с помощью языка SFC, появится диалог «Создать новое действие» (см. :numref:`image114`). .. figure:: ./media/image114.png :name: image114 :align: center :figclass: align-center :width: 2.48958in :height: 1.42039in \- Диалог «Создать новое действие» В данном диалоге необходимо указать «Имя действия» (должно быть уникальным) и выбрать язык (ST, IL, FBD, LD), на котором будет написано данное действие. Если имя действия не заполнено будет выведено сообщение об ошибке (см. :numref:`image115`). .. figure:: ./media/image115.png :name: image115 :align: center :figclass: align-center :width: 3.125in :height: 1.23355in \- Ошибка не заполнения имени действия при его добавлении После того как действие добавлено, необходимо реализовать его код на текстовом или графическом языке, в зависимости от языка, который был выбран в диалоге «Создать новое действие» (см. :numref:`image114`). После добавления переходов и действий в дерево проекта они будут доступны для множественного использования. Описание языка SFC, основных конструкций и примера его использования приведены в приложении 7. Панель редактирования ресурса ----------------------------- Панель редактирования ресурса (см. :numref:`image116`) содержит панель переменных и констант, которая позволяет определять глобальные переменные на уровне ресурса и панели, содержащие задачи и экземпляры. .. figure:: ./media/image116.png :name: image116 :align: center :figclass: align-center :width: 6.56815in :height: 4.17708in \- Вкладка ресурс главной рабочей области Добавление переменных в ресурс ничем не отличается от добавления переменных в программные модули, единственное исключение - переменные могут быть только класса «Глобальная». Основной задачей данной панели является возможность добавить экземпляр, указать для него программный модуль типа «Программа», из ранее определённых в проекте, для поля «Тип» и выбрать задачу из добавленных в список «Задачи». Панель редактирования типа данных --------------------------------- Панель редактирования типа данных (см. :numref:`image117`) позволяет определить различные параметры создаваемого пользовательского типа данных. .. figure:: ./media/image117.png :name: image117 :align: center :figclass: align-center :width: 4.3125in :height: 2.10947in \- Вкладка создания нового типа данных Главным параметром является список под названием «Механизм создания нового типа», позволяющим выбрать следующие типы: - Синоним; - Поддиапазон существующего типа (выделение диапазона значений стандартного типа); - Перечисление (перечисляемый тип); - Массив; - Структура, позволяющая определять тип, основанный на объединении несколько типов. Далее рассмотрены подробнее параметры для каждого из вышеперечисленных типов. Синоним При выборе «Синоним» (см. :numref:`image118`), из списка указывается базовый тип и его начальное значение. .. figure:: ./media/image118.png :name: image118 :align: center :figclass: align-center :width: 4.38542in :height: 1.48496in \- Добавление псевдонима типа данных Созданный тип представляет собой псевдоним (например, аналогично использованию typedef в языке C) уже существующего типа. Поддиапазон существующего типа В случае выбора механизма создания нового типа «Поддиапазон существующего типа», помимо базового типа и начального значения производится установка параметров «Минимум» и «Максимум» (см. :numref:`image119`), т.е. соответственно минимального и максимального значения, которое может принимать создаваемый тип данных. .. figure:: ./media/image119.png :name: image119 :align: center :figclass: align-center :width: 4.28125in :height: 2.08966in \- Добавление нового типа данных, представляющего поддиапазон существующего типа Перечисляемый тип При выборе механизма создания нового типа «Перечисляемый тип» (см. :numref:`image120`), появится панель, содержащая таблицу, в которой можно задать список возможных значений данного перечисляемого типа. .. figure:: ./media/image120.png :name: image120 :align: center :figclass: align-center :width: 4.13542in :height: 2.99656in \– Добавление перечисляемого типа данных Добавление, редактирование, удаление, перемещение данных значений осуществляется с помощью кнопок, описание которых приведено в таблице 10 Таблица 10 - Кнопки редактирования значений перечисляемого типа +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image129| | Редактировать | Редактировать | | | | выделенное поле в | | | | таблице | +-----------------------+-----------------------+-----------------------+ | |image130| | Добавить | Добавить новое поле в | | | | таблицу | +-----------------------+-----------------------+-----------------------+ | |image131| | Удалить | Удалить выделенное | | | | поле в таблице | +-----------------------+-----------------------+-----------------------+ | |image132| | Переместить вверх | Переместить вверх | | | | выделенное поле в | | | | таблице | +-----------------------+-----------------------+-----------------------+ | |image133| | Переместить вниз | Переместить вниз | | | | выделенное поле в | | | | таблице | +-----------------------+-----------------------+-----------------------+ Также есть возможность задать начальное значение данного перечисляемого типа в поле «Начальное значение». Массив При выборе механизма создания нового типа «Массив» (см. :numref:`image122`) появится панель, в которой необходимо указать базовый тип, начальное значение, а также размерность массива. .. figure:: ./media/image122.png :name: image122 :align: center :figclass: align-center :width: 3.61769in :height: 2.71875in \- Добавление типа данных - массива Размерность массива задаётся в следующем формате: <начальное значение>..<конечное значение> Структура При выборе механизма создания нового типа «Структура» (см. :numref:`image123`), в появившейся таблице необходимо добавить необходимое количество полей структуры. Каждое поле имеет своё имя, тип и начальное значение. .. figure:: ./media/image123.png :name: image123 :align: center :figclass: align-center :width: 4.06191in :height: 2.48194in \– Добавление типа данных – структура Добавленные типы данных могут использоваться также как и стандартные при реализации алгоритмов и логики выполнения программных модулей. Выше были рассмотрены варианты редактирования различных элементов, из которых состоит проект, согласно стандарту IEC 61131-3. Далее будет продолжено рассмотрение остальных компонент среды разработки Beremiz. Панель экземпляров проекта -------------------------- Панель экземпляров проекта (см. :numref:`image124`) обычно располагается слева в среде разработки Beremiz и отображаемые в ней экземпляры зависят от выбранного элемента в дереве проекта. .. figure:: ./media/image124.png :name: image124 :align: center :figclass: align-center :width: 3.24386in :height: 3.44776in \– Панель экземпляров проекта При выборе в дереве проекта элемента, соответствующего ресурсу, в панели экземпляров проекта будут отображены экземпляры, определённые в данном ресурсе, а так же глобальные переменные ресурса. На :numref:`image125` показано, как в панели редактирования ресурса определен экземпляр для программного модуля «main_program»: .. figure:: ./media/image125.png :name: image125 :align: center :figclass: align-center :width: 6.40556in :height: 3.07361in \– Экземпляр main_instance для программного модуля main_program Соответственно, при выборе в дереве проекта ресурса, в котором определены экземпляры (описанные выше) и глобальная переменная, панель экземпляров будет выглядеть, как показано на :numref:`image126`: .. figure:: ./media/image126.png :name: image126 :align: center :figclass: align-center :width: 3.01042in :height: 1.17988in \- Панель экземпляров при выборе элемента ресурса в дереве проекта При выборе в дереве проекта элемента, соответствующего программным модулям «Программа» и «Функциональный блок» в панели экземпляров будут отображены переменные, определённые в них. Ниже на :numref:`image127` приведён пример программного модуля типа «Программа» с именем «program0», в котором определено 8 переменных различных пользовательских классов. .. figure:: ./media/image127.png :name: image127 :align: center :figclass: align-center :width: 6.91896in :height: 2.75978in \- Программный модуль типа «Программа» Соответственно, при выборе в дереве проекта данного программного модуля в панели экземпляров будут отображены, определённые выше переменные (см. :numref:`image128`). .. figure:: ./media/image128.png :name: image128 :align: center :figclass: align-center :width: 3.49844in :height: 2.23864in \- Панель экземпляров проекта при выборе в дереве проекта программного модуля main_program В случае выбора других элементов в дереве проекта, панель отладки будет пустой. Как можно заметить, с правой стороны от каждого элемента в панели отладки располагаются кнопки, назначение которых описано в таблице 11. Таблица 11 - Кнопки на панели экземпляров проекта +-----------------------+-----------------------+-----------------------+ | Внешний вид кнопки | Название кнопки | Функция кнопки | +=======================+=======================+=======================+ | |image141| | Отладка экземпляра | Кнопка запуска режима | | | | отладки для | | | | экземпляра | +-----------------------+-----------------------+-----------------------+ | |image142| | Двойной щелчок по | Отображение графика | | | кнопке «Отладка | изменения значения | | | экземпляра» | переменной в режиме | | | | отладки | +-----------------------+-----------------------+-----------------------+ | |image143| | Родительский | Переход к | | | экземпляр | родительскому | | | | экземпляру и его | | | | локальным переменным | +-----------------------+-----------------------+-----------------------+ В случае нажатия кнопки запуска режима отладки, для экземпляра программы, написанной на одном из графических языков (FBD, LD или SFC), откроется вкладка с панелью, на которой диаграмма будет отображена в режиме отладки. Если кнопка запуска режима отладки нажимается для элемента переменной, то переменная будет добавлена в панель отладки. Описанные выше кнопки доступны только в режиме отладки прикладной программы. Про данный режим подробнее рассказывается в п. 8. Панель библиотеки функций и функциональных блоков ------------------------------------------------- Панель библиотеки функций и функциональных блоков (см. :numref:`image131`), как правило, располагается справа в среде разработки Beremiz. Она содержит коллекцию стандартных функций и функциональных блоков, разделённых по разделам в соответствии с их назначением, которые доступны при написании алгоритмов и логики работы программных модулей. .. figure:: ./media/image131.png :name: image131 :align: center :figclass: align-center :width: 2.83582in :height: 4.78215in \– Панель библиотеки функций и функциональных блоков Выделены следующие разделы для функций и функциональных блоков: стандартные, дополнительные, преобразования типов данных, операций с числовыми данными, арифметических операций, временных операций, побитовых и смещения бит, операций выбора, операций сравнения, строковых операций, модулей «Python» и «SVGUI». Помимо стандартных функций и функциональных блоков, данная панель содержит раздел «пользовательские программные модули». В него попадают функции и функциональные блоки, добавленные в конкретный проект, т. е. содержащиеся в дереве проекта. Использование данных функций и функциональных блоков осуществляется перетаскиванием необходимого блока с помощью зажатой левой кнопки мыши (Drag&Drop) в область редактирования: либо текстовый редактор, либо графический редактор.Имеется специальное поле поиска функционального блока по имени. Отладочная консоль ------------------ Панель, содержащая отладочную консоль (см. :numref:`image132`), как правило, располагается в правом нижнем углу среды разработки Beremiz. .. figure:: ./media/image132.png :name: image132 :align: center :figclass: align-center :width: 6.21844in :height: 2.31343in \– Успешная сборка в отладочной консоли Она служит для отображения в виде текстовых сообщений: - Результатов генерации ST и C кода; - Результатов компиляции и компоновки прикладной программы; - Процесса соединения и передачи прикладной программы на целевое устройство; - Различных промежуточных манипуляций в процессы создания прикладной программы. В случае, если необходимо вывести предупреждения среды разработки Beremiz или ошибки компиляторов (MatlEC или C кода) во время их работы цвет вывода текстовых сообщений становится красным. Критические ошибки также выделяется красным цветом, но при этом еще желтым фоном (см. :numref:`image133`). .. figure:: ./media/image133.png :name: image133 :align: center :figclass: align-center :width: 6.3125in :height: 2.31319in \- Ошибка сборки проекта в отладочной консоли Поиск элементов в проекте ------------------------- Для поиска интересующего элемента в проекте используется диалог «Поиск в проекте» (см. :numref:`image134`). Его вызов происходит с помощью главного меню программы или панели инструментов. .. figure:: ./media/image134.png :name: image134 :align: center :figclass: align-center :width: 5.14861in :height: 2.87083in \– Диалог поиска в проекте В появившемся диалоге можно установить различные параметры поиска: шаблон поиска, область поиска, чувствительность к регистру при поиске, а так же записать шаблон поиска в виде регулярного выражения. После того как все параметры установлены, необходимо нажать кнопку «Поиск» в этом диалоге. Ниже на :numref:`image135` приведен пример поиска элемента с именем «LIGHT». .. figure:: ./media/image135.png :name: image135 :align: center :figclass: align-center :width: 5.17847in :height: 5.52292in \– Результаты поиска элемента с именем LIGHT Результат поиска выводится в иерархической структуре. При двойном щелчке по одному из результатов - данный элемент будет выделен в проекте оранжевым цветом. Панель отладки -------------- Панель отладки располагается в правой части среды разработки Beremiz (см. :numref:`image136`). .. figure:: ./media/image136.png :name: image136 :align: center :figclass: align-center :width: 2.45833in :height: 1.81181in \– Панель отладки Данная панель представляет собой таблицу с двумя столбцами «Переменная» и «Значение». Соответственно, столбец «Переменная» содержит экземпляры переменных, значения которых во время исполнения, отображаются в поле «Значение» и могут изменяться. Добавление переменных осуществляется с помощью панели экземпляров проекта. Изменение значений переменной во время отладки прикладной программы осуществляется нажатием левой клавишей мыши на иконку замка напротив интересующей переменной (см. :numref:`image137`). .. figure:: ./media/image137.png :name: image137 :align: center :figclass: align-center :width: 2.42708in :height: 1.86875in \– Установка значения переменной Далее появится диалог ввода значения для выбранной переменной (см. :numref:`image138`). .. figure:: ./media/image138.png :name: image138 :align: center :figclass: align-center :width: 2.97083in :height: 1.48958in \– Диалог установки значения для переменной В режиме отладки форсированное значение переменной будет подсвечено синим цветом. Для того чтобы освободить значение переменной, необходимо нажать на иконку открытого замка (см. :numref:`image139`) .. figure:: ./media/image139.png :name: image139 :align: center :figclass: align-center :width: 4.0625in :height: 1.71944in \– Освобождение значения переменной На данной панели присутствует кнопка удаления переменной из панели отладчика, перемещать и передавать ссылку на переменные можно в Drag&Drop режиме. Панель графика изменения значения переменной в режиме отладки ------------------------------------------------------------- Данная панель (см. :numref:`image140`) открывается во вкладке отладчика напротив выбранной переменной в случае, если в панели отладчика нажать на переменную двойным щелчком мыши. Напротив переменной появляется график изменения значения переменной в режиме отладки (см. таблицу 11). .. figure:: ./media/image140.png :name: image140 :align: center :figclass: align-center :width: 3.06181in :height: 4.80972in \– Графики изменения значений счетчиков Cnt На данной панели есть возможность установить: - «Интервал» - временной отрезок, за который отображается изменений графика; - «Масштаб» - задание приближения отображения графика; - «Позиция» - перемещение по отображению графика, от начала и до конца. Также на данной панели в правом нижнем углу располагаются вспомогательные кнопки. Описание данных кнопок приведено в таблице 12: Таблица 12 - Кнопки на панели графика изменения значения переменной +-----------------------------------+-----------------------------------+ | Внешний вид кнопки | Функция кнопки | +===================================+===================================+ | |image154| | Очистка отображения графика | | | | +-----------------------------------+-----------------------------------+ | |image155| | Переход к отображению текущего | | | значения графика, т.е. сдвиг | | | параметра «Позиция» максимально | | | вправо | +-----------------------------------+-----------------------------------+ | |image156| | Сброс настроек масштаба до | | | настроек по умолчанию: x 1.0 | +-----------------------------------+-----------------------------------+ .. |image3| image:: ./media/image4.png :width: 0.27153in :height: 0.27153in .. |image4| image:: ./media/image5.png :width: 0.27153in :height: 0.27153in .. |image5| image:: ./media/image6.png :width: 0.27153in :height: 0.27153in .. |image6| image:: ./media/image7.png :width: 0.27153in :height: 0.27153in .. |image7| image:: ./media/image8.png :width: 0.27153in :height: 0.27153in .. |image8| image:: ./media/image9.png :width: 0.27153in :height: 0.27153in .. |image9| image:: ./media/image10.png :width: 0.27153in :height: 0.27153in .. |image10| image:: ./media/image11.png :width: 0.27153in :height: 0.27153in .. |image11| image:: ./media/image12.png :width: 0.27153in :height: 0.27153in .. |image12| image:: ./media/image13.png :width: 0.27153in :height: 0.27153in .. |image14| image:: ./media/image15.png :width: 0.27153in :height: 0.27153in .. |image15| image:: ./media/image16.png :width: 0.27153in :height: 0.27153in .. |image16| image:: ./media/image17.png :width: 0.27153in :height: 0.27153in .. |image17| image:: ./media/image18.png :width: 0.27153in :height: 0.27153in .. |image18| image:: ./media/image19.png :width: 0.27153in :height: 0.27153in .. |image19| image:: ./media/image20.png :width: 0.27153in :height: 0.27153in .. |image20| image:: ./media/image21.png :width: 0.27153in :height: 0.27153in .. |image38| image:: ./media/image36.png :width: 0.27153in :height: 0.27153in .. |image39| image:: ./media/image37.png :width: 0.27153in :height: 0.27153in .. |image40| image:: ./media/image38.png :width: 0.27153in :height: 0.27153in .. |image41| image:: ./media/image39.png :width: 0.27153in :height: 0.27153in .. |image44| image:: ./media/image42.png :width: 0.27153in :height: 0.27153in .. |image45| image:: ./media/image43.png :width: 0.27153in :height: 0.27153in .. |image52| image:: ./media/image50.png :width: 0.27153in :height: 0.27153in .. |image53| image:: ./media/image51.png :width: 0.27153in :height: 0.27153in .. |image56| image:: ./media/image54.png :width: 0.27153in :height: 0.27153in .. |image57| image:: ./media/image55.png :width: 0.27153in :height: 0.27153in .. |image58| image:: ./media/image56.png :width: 0.27153in :height: 0.27153in .. |image59| image:: ./media/image57.png :width: 0.27153in :height: 0.27153in .. |image60| image:: ./media/image58.png :width: 0.27153in :height: 0.27153in .. |image61| image:: ./media/image59.png :width: 0.27153in :height: 0.27153in .. |image74| image:: ./media/image72.png :width: 0.26458in :height: 0.26458in .. |image75| image:: ./media/image73.png :width: 0.26458in :height: 0.26458in .. |image76| image:: ./media/image74.png :width: 0.26458in :height: 0.26458in .. |image85| image:: ./media/image83.png :width: 0.26458in :height: 0.26458in .. |image86| image:: ./media/image84.png :width: 0.26458in :height: 0.26458in .. |image87| image:: ./media/image85.png :width: 0.26458in :height: 0.26458in .. |image88| image:: ./media/image86.png :width: 0.26458in :height: 0.26458in .. |image89| image:: ./media/image87.png :width: 0.26458in :height: 0.26458in .. |image90| image:: ./media/image88.png :width: 0.26458in :height: 0.26458in .. |image129| image:: ./media/image121.png :width: 0.29167in :height: 0.29167in .. |image130| image:: ./media/image121_1.png :width: 0.27778in :height: 0.27761in .. |image131| image:: ./media/image121_2.png :width: 0.27083in :height: 0.27753in .. |image132| image:: ./media/image121_3.png :width: 0.27083in :height: 0.27778in .. |image133| image:: ./media/image121_4.png :width: 0.28403in :height: 0.2771in .. |image141| image:: ./media/image129.png :width: 0.26875in :height: 0.26875in .. |image142| image:: ./media/image129.png :width: 0.26654in :height: 0.26654in .. |image143| image:: ./media/image130.png :width: 0.26654in :height: 0.26654in .. |image154| image:: ./media/image141.png :width: 0.26736in :height: 0.26736in .. |image155| image:: ./media/image142.png :width: 0.26736in :height: 0.26736in .. |image156| image:: ./media/image143.png :width: 0.17431in :height: 0.17431in