Основные компоненты среды Beremiz¶
Пользовательский интерфейс среды разработки Beremiz состоит из следующих компонент:
- Главное меню программы;
- Панель инструментов;
- Дерево проекта;
- Панель списка переменных и констант;
- Панель настроек проекта;
- Панель файлов проекта;
- Панель отображения промежуточного кода;
- Текстовые редакторы языков ST и IL;
- Графические редакторы языков FBD, SFC, LD;
- Панель редактирования ресурса;
- Панель экземпляров проекта;
- Панель библиотеки функций и функциональных блоков;
- Отладочная консоль;
- Поиск элементов в проекте;
- Панель отладки;
- Панель графика изменения значения переменной в режиме отладки.
Далее подробно рассказано про каждый компонент среды разработки Beremiz в отдельности.
Главное меню программы¶
Главное меню программы (см. Рисунок 2 ) содержит следующие пункты:
- «Файл»;
- «Редактировать»;
- «Вид»;
- «Помощь».
Часть операций, выполняемых с помощью выбора определённого пункта меню мышью, могут быть исполнены с помощью «горячих клавиш». На выбор пользователя представлено два механизма обработки горячих клавиш. Первый механизм использует первые буквы названия пунктов меню, для выбора пункта необходимо нажать (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).
Кнопки главного меню
Панель инструментов, содержащая кнопки главного меню представлена на Рисунок 3 .
Список кнопок и их функций описывается в таблице 1.
Таблица 1 – Кнопки панели инструментов
Кнопки сборки проекта и установки связи с целевым устройством
Панель, содержащая кнопки сборки проекта и соединения с целевым устройством, позволяет скомпилировать и скомпоновать текущий проект и, в случае, если эта операция завершилась успешно (данную информацию можно увидеть в отладочной консоли (см. п. 5.12.)), передать и запустить полученный исполняемый файл на целевом устройстве.
Часть кнопок данной панели показана на Рисунок 4 .
Таблица 2 – Кнопки сборки проекта и связи с целевым устройством на панели инструментов
В зависимости от того, произведено в настоящий момент времени соединение с целевым устройством или выполняется ли прикладная программа на нём, появляются и скрываются некоторые кнопки.
На Рисунок 5 приведено состояние данной в панели, когда соединение с целевым устройством установлено и на нём уже есть прикладная программа. Соответственно, можно запустить с помощью кнопки «Запуск прикладной программы» её или передать новую, используя кнопку «Передача прикладной программы».
В случае, когда при установке соединения произошли ошибки, данная информация будет выведена в отладочную консоль. Далее будет рассмотрен компонент «Дерево проекта», который представляет структуру элементов, составляющих проект.
Дерево проекта¶
Дерево проекта обычно расположено в левой части окна среды разработки Beremiz (см. Рисунок 6 ) и отображает структуру элементов, из которых состоит проект.
В роли элементов могут выступать:
- Ресурсы;
- Программные модули (функции, функциональные блоки и программ) и их составные части;
- Типы данных;
- Плагины модулей УСО.
Дерево проекта позволяет добавлять, удалять элементы. Операции копирования и вставки только доступны для программных модулей.
Добавление элемента в дерево проекта
В правом нижнем углу дерева проекта находится кнопка «+» (см. Рисунок 7 ), при нажатии на которую, появляется меню для выбора добавления необходимого элемента в проект.
В случае добавления программного модуля, т.е. выбора пункта «Функция», «Функциональный блок» или «Программа», появится диалог «Создать новый программный модуль» (см. Рисунок 8 ).
В данном диалоге три поля:
- «Имя программного модуля»;
- «Тип программного модуля»;
- «Язык».
Имя, присвоенное по умолчанию, может быть заменено на имя, соответствующее назначению данного программного модуля. В зависимости от того, какой программный модуль был выбран во всплывающем меню, в поле «Тип программного модуля» будет подставлено именование данного программного модуля. В поле «Язык» необходимо выбрать из списка (см. Рисунок 9 ) один из языков стандарта IEC 61131-3 (IL, ST, LD, FBD, SFC), на котором будут реализованы алгоритмы и логика работы данного добавляемого программного модуля.
В случае выбора добавления типа данных, появится диалог (см. Рисунок 10 ), в котором необходимо указать механизм создания нового типа данных
Добавление нескольких элементов одного типа, например нескольких программ, функций, функциональных блоков приводит к их группировке в дереве проекта. Еще одним способом добавления нового элемента является нажатие правой клавиши мыши по определённому разделу в дереве проекта. Например, при нажатии на «Функциональные блоки», появится всплывающее меню (см. Рисунок 11 ). В данном меню можно выбрать «Добавить программный модуль» или «Вставить программный модуль», если он был скопирован в буфер обмена.
Добавление нового элемента или выбор существующего в дереве проекта приводит к появлению панели редактирования и настроек соответствующего элемента:
- Панель настроек проекта;
- Панель, содержащая текстовый редактор языков ST и IL;
- Панель, содержащая графические редакторы диаграмм языков FBD, SFC, LD;
- Панель настроек ресурса;
- Панель редактирование типа данных;
- Панели настроек плагинов модулей УСО.
Каждая вышеперечисленная панель редактирования будет рассмотрена в последующих пунктах.
Удаление элемента в дереве проекта
Удаление осуществляется наведением на определённый элемент в дереве проекта и нажатием на него правой клавишей мыши, а далее в появившемся меню выбирается пункт «Удалить» (см. Рисунок 12 )
Переименование, копирование и вставка программных модулей
Дерево проекта позволяет выполнять операции переименования, копирования и вставки для программных модулей. Копирование или переименование осуществляются с помощью нажатия правой клавиши мыши на элемент (см. Рисунок 13 ), соответствующий программному модулю в дереве проекта, и выбор соответствующего пункта появившегося меню.
Вставка программного модуля осуществляется в меню (нажатие правой клавишей мыши по данному элементу) корневого элемента дерева проекта, соответствующего проекту (см. Рисунок 14 ):
Другим способом выполнения вышеописанной операции является вызов меню для элемента группировки программных модулей одного типа (см. Рисунок 15 ).
Далее приводится описание панели переменных и констант, которая присутствует при редактировании проекта, ресурса и программных модулей (функции, функционального блока, программы).
Панель списка переменных и констант¶
Панель списка переменных и констант (см. Рисунок 16 ) отображает с помощью таблицы переменные и константы, соответствующие выбранному программному модулю, ресурсу или в целом проекту.
Каждая переменная имеет следующие параметры:
- Имя, представляющее собой уникальный идентификатор переменной в пределах её области видимости и действия;
- Класс: «Глобальный», «Вход», «Выход», «Вход/Выход», «Локальный», «Внешний», «Временный»;
- Тип, определяющий тип переменной и может принадлежать базовому типу (в соответствии со стандартом IEC 61131-3), пользовательскому типу (псевдониму и поддиапазону существующего типа, перечислению, массиву, структуре) или типу функционального блока (стандартному или пользовательскому);
- Размещение - идентификатор, необходимый для связывания данной переменной с переменной плагина модуля УСО;
- Исходное значение значение - инициализация переменной некоторым начальным значением;
- Настройка - задание константности, реманентности (сохранение её значения в энергонезависимой памяти) и нереманентности переменной;
- Описание - комментарий к назначению данной переменной или константы.
Первый символ имени переменной или константы должен быть буквой, или символом подчеркивания, далее могут следовать цифры, буквы латинского алфавита и символы подчеркивания. Набор возможных вариантов классов переменных зависит от типа элемента проекта, редактирования которого осуществляется. Двойной клик на полю «Размещение» вызывает появление кнопки «...», показанной на Рисунок 17 :
Нажатие на данную кнопку приводит к появлению диалога «Просмотр директорий» (см. Рисунок 18 ), т.е. списка переменных модулей УСО, которые могут быть связанны с переменой в панели переменных и констант. При выборе в данном диалоге определённой переменной и нажатии клавиши «OK» в поле «Адрес» будет добавлен адрес переменной внешнего модуля УСО.
Поле опции позволяет определить переменную как константу. Соответственно, если компилятор обнаружит в коде фрагмент, в котором происходит изменение этой переменной - будет выведена ошибка компиляции «Assignment to constant variables is not be allowed» в «Отладочной консоли». Квалификатор «Константа» не может быть использован в объявлении функциональных блоков. Добавление, удаление и перемещение переменных происходит с помощью специальных кнопок на панели переменных и констант. Описания данных кнопок представлены в таблице 3.
Панель переменных и констант предоставляет возможность фильтровать отображаемые переменные по их конкретным классам («Вход» ,«Выход», «Вход/Выход»,
«Внешний», «Локальный», «Временный») или сгруппированным классам («Интерфейс» и «Переменные»). Данная операция выполняется с помощью функции «Фильтр класса» (см. Рисунок 19 ).
Таблица 3 - Кнопки добавления, удаление и перемещения переменных на панели переменных и констант
Панель настройки проекта¶
Панель редактирования проекта (см. Рисунок 20 ) состоит из панели переменных и констант, а также настроек сборки проекта и данных о проекте.
Настройки сборки проекта (см. Рисунок 21 ) позволяют задать следующие параметры:
- «URI системы исполнения» - унифицированный (единообразный) идентификатор ресурса, в данном случае под ресурсом понимается целевое устройство. Данный адрес необходим для режима отладки.
- «Запретить расширения» - установка данного флага позволяет не учитывать при сборке проекта внешние плагины;
- «Библиотеки» - подключаемые дополнительные библиотеки: «Native_Library», «Python_Library», «SVGUI_Library»;
- «Целевая платформа» - выбор из списка компилятора для архитектуры целевого устройства;
- «Компилятор» - имя исполняемого файла компилятора (если он определён в глобальных переменных среды), либо полный путь к нему;
- «CFLAGS» - указание флагов С компилятора;
- «Линковщик» - имя исполняемого файла компоновщика (если он определён в глобальных переменных среды), либо полный путь к нему;
- «LDFLAGS» - указание флагов компоновщика;
Также в настройках сборки проекта имеются две кнопки, описание которых приведено в таблице 4.
Таблица 4 - Кнопки в панели настройки сборки проекта
Вкладка «Проект» (см. Рисунок 22 ) позволяет задать: имя проекта, версию проекта, имя продукта, версию продукта и релиз продукта.
Вкладка «Автор» (см. Рисунок 23 ) позволяет задать: Имя компании, URL-адрес компании, Имя автора, Название организации.
Вкладка «Графика» (см. Рисунок 24 ) позволяет задать размеры страницы и разрешение сетки для редакторов диаграмм графических языков FBD, LD и SFC.
Вкладка «Прочее», изображенная на Рисунок 25 , позволяет выбрать язык интерфейса для среды разработки Beremiz и указать дополнительное текстовое описание для проекта.
При запуске среды разработки Beremiz языком по умолчанию является язык, соответствующий текущей локали операционной системы, если файл для данной локали присутствуют. В случае отсутствия данных файлов, устанавливается английская локаль, которая доступна всегда. Файлы доступных локалей располагаются в папке beremiz/locale.
Панель отображения промежуточного кода
Данная панель (см. Рисунок 26 ) представляет собой текстовый редактор, отображающий с подсветкой синтаксиса и нумерацией строк код на языке ST, доступный только для чтения, без возможности редактирования.
Открытие данной панели доступно после сборки проекта с помощью соответствующей кнопки (см. таблицу 2).
Панель файлов проекта
Панель файлов проекта (см. Рисунок 27 ) содержит встроенный проводник файлов (справа), в котором файлы могут быть выделены и перенесены в левую часть.
Все манипуляции с файлами осуществляются с помощью кнопок, расположенных в середине данной панели. Их описание приведено в таблице 5.
Таблица 5 - Кнопки в панели файлов проекта
Данные файлы будут переданы на целевое устройство вместе с исполняемым файлом. Как правило, этими дополнительными файлами проекта являются сторонние библиотеки, необходимые для корректной работы плагинов модулей УСО.
Текстовый редактор языков ST и IL¶
Текстовый редактор языков ST и IL (см. Рисунок 28 ) позволяет создавать и редактировать алгоритмы и логику выполнения программных модулей на языках ST и IL.
Он обеспечивают следующие возможности:
- Подсветку синтаксиса кода, написанного пользователем, т.е. выделения особыми параметрами шрифта ключевых слов данных языков;
- Нумерации строк, что может быть полезным при возникновении ошибок в программе, т.к. транслятор кода ST в C выдаёт номер строки, в которой найдена ошибка;
- Сворачивание кода структурных элементов языка: определения функции, определение типа и т. Д.
Увеличение или уменьшение размера шрифт выполняется с помощью Ctrl + <колёсико мыши>.
Описание синтаксиса, основных конструкций и примеров использования языков ST и IL приведены в описании языков стандарта МЭК 61131-3.
Графические редакторы диаграмм языков FBD, SFC, LD¶
Данные редакторы позволяют создавать и редактировать алгоритмы и логику выполнения программных модулей, написанных на языках FBD, SFC и LD.
Редактор языка FBD
Основными элементами языка FBD являются: переменные, функциональные блоки и соединения. При редактировании FBD диаграммы, в панели инструментов появляется следующая панель (см. Рисунок 29 ).
С помощью данной панели можно добавить все элементы языка FBD (назначение каждой кнопки описано в таблице 6).
Таблица 6 - Кнопки в панели файлов проекта
Для этого необходимо указателем мыши выбрать необходимую кнопку и нажать на свободное место в области редактирования FBD диаграммы. В зависимости от выбранного элемента появятся определённые диалоги добавления данного элемента.
Аналогичные действия можно выполнить с помощью всплывающего меню в области редактирования FBD диаграмм. Вызов данного меню происходит нажатием правой клавишей мыши и выбором пункта «Добавить», в котором будет: «Блок», «Переменная», «Подключение», «Комментарий» (см. Рисунок 30 ).
Далее рассмотрено добавление каждого элемента в отдельности.
Добавление функционального блока
При добавлении функционального блока одним из описанных выше способов, появится диалог «Свойства блока» (см. Рисунок 31 ).
В данном диалоге приведено краткое описание функционального блока и предоставлена возможность задать некоторые свойства (имя, количество входов, порядок выполнения и т.д.).
Опция «Управление исполнением» добавляет в функциональный блок дополнительные параметры EN/ENO, о которых подробнее рассказано в приложении 5. Для сохранения изменений необходимо нажать «OK». Одним из свойств является «Порядок исполнения».
Добавление (путем копирования существующего блока), удаление и переименование функционального блока осуществляется при помощи команд меню «Редактирование» в главном меню или с помощью всплывающего меню диаграммы (см. Рисунок 31 ).
Следует отметить, что функциональный блок может быть так же добавлен из «Панели библиотеки функций и функциональных блоков», перетаскиванием мыши (Drag&Drop) выбранного блока на панель редактирования диаграммы FBD.
Добавление переменной
Переменные добавляются из панели переменных и констант с помощью перетаскивания (Drag&Drop) левой клавишей мыши за область, выделенную красным цветом на Рисунок 32 , в область редактирования FBD диаграмм.
Изменить параметры переменной можно в диалоге «Свойства переменной» (см. Рисунок 33 ), нажав на неё два раза левой клавишей мыши.
В данном диалоге можно задать порядок исполнения переменной и изменить её класс («Вход», «Выход», «Вход/Выход»).
Добавление подключения
В тех случаях, когда необходимо передать выходное значение одного функционального блока на один из входов другого, удобно использовать элемент «Подключение». При прямом соединении с помощью перетаскивания выхода одного функционального блока к входу другого получится прямое соединение с помощью чёрной соединительной линии. На схемах с большим количеством функциональных блоков элемент «Подключение» позволяет избежать пересечения прямых соединений, которые приводит к тому, что схема становится менее понятной.
После выбора добавления элемента «Подключение» появится диалог «Свойства подключения» (см. Рисунок 34 ).
В данном диалоге можно выбрать тип соединения: «Выходное соединение» - для выходного значения, «Входное соединение» - для входного значения, а так же необходимо указать имя данного соединения. На Рисунок 35 представлен пример использования соединений.
Функция «MAX» на выходе «OUT» имеет некоторое значение, которое с помощью соединения «RESULT» передаётся на вход «IN1» в функцию «MIN». В функции «MAX» используется соединение типа «Выходное соединение», в функции «MIN» - типа «Входное соединение». Имена у этих соединений, соответственно, одинаковые.
Добавление комментариев
Редактор FBD диаграмм (и остальные редакторы, о которых будет рассказано ниже) позволяют добавлять комментарии на диаграмму. После выбора на панели редактирования комментария и добавления его в область редактирования появится диалог (см. Рисунок 36 ) для ввода текста комментария.
После нажатия кнопки «ОК» комментарий появится на диаграмме(см. Рисунок 37 )
Порядок выполнения функций и функциональных блоков
Последовательность исполнения функций и функциональных блоков определяется порядком их выполнения. Автоматически он регламентируется следующим образом: чем выше и левее расположен верхний левый угол, описывающего функцию или функциональный блок прямоугольника, тем раньше данная функция или функциональный будет выполнен.
Если обратиться к Рисунок 38 , то порядок выполнения функций будет следующим: 1 – CounterST0; 2 – CounterFBD0; 3 – CounterSFC0.
Данная опция «Порядок выполнения» выделена красным цветом на Рисунок 39 .
После задания порядка выполнения для каждой функции или функционального блока на схеме в правом нижнем углу будет указан его порядковый номер выполнения. Пример представлен на Рисунок 40 .
Описание языка FBD, основных его конструкций и пример использования приведены в приложении 5.
Редактор языка LD
Язык LD или РКС (Релейно-Контактные Схемы) представляет собой графическую форму записи логических выражений в виде контактов и катушек реле. Основными элементами языка LD являются: шина питания, катушка, контакт. Добавить данные элементы, так же как и элементы языка FBD, можно несколькими способами.
Как только активной становится вкладка с редактированием LD диаграммы, в панели инструментов появляется панель (см. Рисунок 41 ) с элементами языка LD.
Аналогично редактору языка FBD с помощью данной панели можно добавить все элементы языка LD, а так же и FBD, т.к. есть возможность комбинированного применения языков на одной диаграмме. В таблице 7 приведено описание кнопок данной панели. Описание остальных кнопок, относящихся к языку FBD, находится в таблице 6.
Таблица 7 - Кнопки панели редактирования LD диаграммы
Во всплывающем меню для редактора LD диаграмм (см. Рисунок 42 ), так же как и в панели инструментов помимо элементов LD языка, доступны элементы языка FBD.
Добавление шины питания
При добавлении шины питания, одним из описанных выше способов, появится диалог «Свойства шины питания» (см. Рисунок 43 ).
В данном диалоге указываются следующие свойства:
- Тип шины питания: шина питания слева или шина питания справа;
- Количество контактов на добавляемой шине питания.
На Рисунок 44 приведены две добавленные шины питания: левая с тремя контактами и правая с одним контактом.
Добавление контакта
При добавлении контакта на LD диаграмму появится диалог «Редактирование значения контакта» (см. Рисунок 45 ).
Данный диалог позволяет определить модификатор данного контакта:
- «Обычный»;
- «Инверсия»;
- «Нарастающий фронт»;
- «Спадающий фронт».
Кроме того, диалог позволяет выбрать из списка «Имя» переменную, «связываемую» с данным контактом. Следует отметить, что «связываемые» переменные должны быть определены в панели переменных и констант для данного программного модуля типом BOOL.
Еще одним способом добавления контакта на диаграмму является метод Drag&Drop из панели переменных и констант переменной типа BOOL и класса: «Вход»,
«Вход/Выход», «Внешний», «Локальный», «Временный». Для этого необходимо зажать левой кнопкой мыши за первый столбец (который имеет заголовок #) переменную, удовлетворяющую описанным выше критериям и перенести в область редактирования диаграммы (см. Рисунок 46 ).
Добавление катушки
При добавлении катушки на LD диаграмму появится диалог «Редактирование значения катушки» (см. Рисунок 47 ).
В данном диалоге можно определить модификатор данного контакта:
- «Обычный»;
- «Инверсия»;
- «Установить»;
- «Сброс»;
- «Нарастающий фронт»;
- «Спадающий фронт».
Кроме того, производится выбор из списка «Имя» переменной, «связываемой» с данным контактом. Эти переменные, как и для контактов, должны быть определены в панели переменных и констант для данного программного модуля типом BOOL.
Аналогично добавлению контакта с помощью Drag&Drop можно добавить и катушки, но в данном случае переменная должна относиться к классу «Выход» (см. Рисунок 48 ).
Описание языка LD, основных конструкций и примера его использования приведены в описании яызков стандарта МЭК 61131-3.
Редактор языка SFC
Основными элементами языка SFC являются: начальный шаг, шаг, переход, блок действий, дивергенции, «прыжок». Программа на языке SFC состоит из набора шагов, связанных переходами.
Как только активной становится вкладка с редактированием SFC диаграммы, в панели инструментов появляется следующая панель (см. Рисунок 49 ).
В таблице 8 приведено описание кнопок данной панели. Описание остальных кнопок, относящихся к языку FBD и LD (за исключением катушки) и так же находящихся на этой панели, приведены в таблицах 6 и 7 соответственно.
Таблица 8 - Кнопки панели редактирования LD диаграммы
Далее даётся описание добавления приведённых в таблице 8 элементов языка SFC.
Добавление шага инициализации и шага
Процедура добавления шага инициализации и обычного шага ничем не отличается. В обоих случаях вызывается диалог «Редактировать шаг» (см. Рисунок 53 ).
Согласно стандарту IEC 61131-3, на SFC диаграмме должен быть один шаг инициализации, который характеризует начальное состояние SFC-диаграммы и отображается со сдвоенными линиями на границах (см. Рисунок 51 ).
В случае, если при добавлении шага не указано его имя - будет выдана ошибка (см. Рисунок 52 ).
При добавлении шага появляется диалог, в котором можно указать, с помощью галочек его соединители (см. Рисунок 53 ):
- «Вход»;
- «Выход»;
- «Действие».
«Действие» добавляет соединитель для связывания данного шага с блоком действий. «Вход» и «Выход» соединители, как правило, соединены с переходом. Соответственно, после нажатия кнопки OK, на диаграмму будет добавлен шаг с указанными соединителями (см. Рисунок 54 ).
Добавление перехода
При добавлении на SFC диаграмму перехода, появится диалог «Редактировать переход» (см. Рисунок 55 ).
В данном диалоге необходимо выбрать тип перехода и его приоритет. Тип перехода может быть:
- «Ссылка»;
- «Встроенный код»;
- «Соединение».
При выборе типа перехода «Ссылка» в открывающемся списке (см. Рисунок 56 ) будут доступны переходы, предопределённые в дереве проекта для данного программного модуля, написанного на языке SFC. Добавление предопределённого перехода описывается ниже после описания всех добавляемых элементов языка SFC.
При выборе типа перехода «Непосредственно» (см. Рисунок 57 ), условие перехода можно написать в виде выражения на языке ST.
Реализация перехода таким способом удобна в случае, когда необходимо короткое условие, например: переменные «F3» и «F4» типа INT равны. Встроенный код для такого условия выглядит следующим образом (см. Рисунок 57 ):
F3 = F4
Так же например можно в качестве условия просто указать переменную. В случае её значения равного 0 - будет означать FALSE, все остальные значения - TRUE.
При выборе типа перехода «Соединение» (см. Рисунок 58 ), в качестве условия перехода можно использовать выходные значения элементов языка FBD или LD.

Рисунок 58 - Выбор условия перехода как соединение с элементами других графических языков IEC 61131-3
При выборе типа перехода «Подключение», у добавленного перехода появится слева контакт, который необходимо соединить с выходным значением, например, функционального блока языка FBD или катушки LD диаграммы. Стоит отметить, что данное выходное значение должно быть типа BOOL. Ниже, на Рисунок 59 красным цветом выделен пример перехода, условия которого задано с помощью языка LD.
Добавление блока действий
При добавлении блока действий на диаграмму появится диалог «Редактировать свойство блока действий» (см. Рисунок 60 ).
Данный блок действий может содержать набор действий. Добавить новое действие можно нажав кнопку «Добавить» и установив необходимые параметры:
- «Спецификатор»;
- «Длительность»;
- «Тип»: «Действие», «Переменная», «Непосредственно»;
- «Значение»;
- «Индикатор».
Поле «Спецификатор» определяет момент времени, когда действие начинается, сколько времени продолжается и когда заканчивается. Выбрать квалификатор можно из списка (см. Рисунок 61 ).
Подробное описание спецификаторов, которые выбираются из предлагаемого списка при добавлении действия приведено в таблице 9.
Таблица 9 - Квалификаторы действий SFC диаграммы
Имя спецификатора | Поведение блока действия |
---|---|
D | Действие начинает выполняться через некоторое заданное время (если шаг еще активен) и выполняется до тех пор, пока данный шаг активен |
L | Действие выполняется в течение некоторого заданного интервала времени, после чего выполнение действия останавливается |
N | Действие выполняется, пока данный шаг активен |
P | Действие выполняется один раз, как только шаг стал активен |
P0 | Действие выполняется один раз, как только шаг стал неактивен |
P1 | Действие выполняется один раз, как только шаг стал активен |
S | Действие активируется и остается активным пока SFC диаграмма выполняется |
R | Действие выполняется, когда диаграмма деактивизируется |
DS | Действие начинается выполняться через некоторое заданное время, только в том случае если шаг еще активен |
SL | Действие активно в течении некоторого, заданного интервала |
SD | Действие начинается выполняться через некоторое время, даже в том случае если шаг уже не активен |
Поле «Длительность» необходимо для установки интервала времени необходимого для некоторых квалификаторов, описанных выше в таблице 9.
«Тип» определяет код или конкретную манипуляцию, которая будет выполняться во время активации действия. В случае выбора «Действия» появляется возможность, как и в случае с переходом, использовать предопределённые действия в дереве проекта для данного программного модуля, написанного на языке SFC (см. Рисунок 62 ).
Добавление предопределённого действия также как добавление предопределённого перехода описывается ниже после описания всех добавляемых элементов языка SFC.
В случае выбора типа действия «Переменная» в поле «Значение» появляется возможность выбрать переменные (см. Рисунок 63 ), относящиеся к данному программному модулю.
Как только шаг становится активным, данная переменная в зависимости от своего типа принимает значение 0, 0.0, FALSE и другие нулевые значения типов. Как только действие начинает выполняться, переменная принимает значение 1, 1.0, TRUE и другие единичные значения типов. В случае если действие прекратило своё выполнение переменная снова принимает значение 0, 0.0, FALSE и другое нулевое значение, в зависимости от своего типа.
В случае выбора «Непосредственно», появляется возможность в поле «Значение» написать на языке ST код, который будет выполняться, когда действие становится активным (см. Рисунок 64 ).
Следует отметить, что в конце встроенного кода для действия необходимо поставить «;», в отличие от встроенного кода для перехода.
После добавления блока действия на диаграмму необходимо его ассоциировать с конкретным шагом. Данная операция выполняется обычным соединением правого контакта у шага и левого контакта у действия (см. Рисунок 65 ).
Добавление дивергенции и конвергенции
При добавлении ветвления, появится диалог «Создать новое ветвление» (см. Рисунок 66 ).
В первую очередь следует выбрать тип ветвления:
- «Альтернативное ветвление»;
- «Альтернативное объединения»;
- «Параллельное ветвление»;
- «Параллельное объединение».
Вторым параметром является количество разветвлений, которое определяет на сколько ветвей будет либо расходится (в случае выбора типа дивергенции «Альтернативное ветвление» или «Параллельное ветвление») одна ветвь, либо сколько ветвей будет сходиться в одну ветвь (в случае выбора типа дивергенции «Альтернативное объединения» или «Параллельное объединение»)
Пример дивергенции с двумя разветвлениями показан на Рисунок 67 и выделен красным цветом.
Пример конвергенции выделен красным цветом на Рисунок 68 .
Пример параллельного ветвления показан на Рисунок 69 и выделен красным цветом.
Согласно стандарту IEC 61131-3, каждая ветвь альтернативного ветвления должна оканчиваться переходом, при альтернативном объединении переход должен быть перед каждой ветвью. При параллельном ветвлении переход должен быть перед ветвлением, а при параллельном объединении переход необходим после объединения.
Добавление безусловного перехода
Элемент «безусловный переход» на SFC диаграмме подобен выполнению оператора GOTO при переходе на определённую метку в коде в различных языках программирования. После выбора добавления «прыжка» на SFC диаграмму, появится диалог (см. Рисунок 70 ), в котором необходимо выбрать из списка шаг, к которому будет происходить «прыжок» - переход от одного шага SFC диаграммы к другому.
В данном диалоге также присутствует и шаг инициализации (начальный шаг). После выбора шага и нажатия кнопки OK. На SFC диаграмме появится стрелочка, которую нужно соединить с переходом (см. Рисунок 71 ). Справа от стрелочки находится имя шага, к которому осуществляется переход в случае выполнения условия перехода, находящегося выше и соединённого с ней.
Согласно стандарту IEC 61131-3, между шагом и «прыжком» должен обязательно быть определён переход.
Предопределённые условия перехода и действия в дереве проекта
В случае, если необходимо использовать определённое условие перехода между множеством шагов, есть возможность определить данное условие перехода в структуре SFC диаграммы. Данная операция выполняется нажатием на данную SFC диаграмму на дереве проекта правой клавишей мыши и выбором «Добавить переход» (см. Рисунок 72 ).
Далее появится диалог под названием «Создать новый переход» (см.:numref:image111). В нём необходимо выбрать уникальное имя перехода и язык, в котором будет описано данное условие.
В случае, если переходы с введённым именем уже существуют, то будет выведено сообщение об ошибке (см. Рисунок 74 ).
Добавление действия в структуру SFC диаграммы (см. Рисунок 75 ) происходит аналогично добавлению перехода в данную структуру.
После выбора «Добавить действие» во всплывающем меню, вызванном с помощью нажатия правой клавиши мыши по программному модулю, написанном с помощью языка SFC, появится диалог «Создать новое действие» (см. Рисунок 76 ).
В данном диалоге необходимо указать «Имя действия» (должно быть уникальным) и выбрать язык (ST, IL, FBD, LD), на котором будет написано данное действие. Если имя действия не заполнено будет выведено сообщение об ошибке (см. Рисунок 77 ).
После того как действие добавлено, необходимо реализовать его код на текстовом или графическом языке, в зависимости от языка, который был выбран в диалоге «Создать новое действие» (см. Рисунок 76 ). После добавления переходов и действий в дерево проекта они будут доступны для множественного использования.
Описание языка SFC, основных конструкций и примера его использования приведены в приложении 7.
Панель редактирования ресурса¶
Панель редактирования ресурса (см. Рисунок 78 ) содержит панель переменных и констант, которая позволяет определять глобальные переменные на уровне ресурса и панели, содержащие задачи и экземпляры.
Добавление переменных в ресурс ничем не отличается от добавления переменных в программные модули, единственное исключение - переменные могут быть только класса «Глобальная». Основной задачей данной панели является возможность добавить экземпляр, указать для него программный модуль типа «Программа», из ранее определённых в проекте, для поля «Тип» и выбрать задачу из добавленных в список «Задачи».
Панель редактирования типа данных¶
Панель редактирования типа данных (см. Рисунок 79 ) позволяет определить различные параметры создаваемого пользовательского типа данных.
Главным параметром является список под названием «Механизм создания нового типа», позволяющим выбрать следующие типы:
- Синоним;
- Поддиапазон существующего типа (выделение диапазона значений стандартного типа);
- Перечисление (перечисляемый тип);
- Массив;
- Структура, позволяющая определять тип, основанный на объединении несколько типов.
Далее рассмотрены подробнее параметры для каждого из вышеперечисленных типов.
Синоним
При выборе «Синоним» (см. Рисунок 80 ), из списка указывается базовый тип и его начальное значение.
Созданный тип представляет собой псевдоним (например, аналогично использованию typedef в языке C) уже существующего типа.
Поддиапазон существующего типа
В случае выбора механизма создания нового типа «Поддиапазон существующего типа», помимо базового типа и начального значения производится установка параметров «Минимум» и «Максимум» (см. Рисунок 81 ), т.е. соответственно минимального и максимального значения, которое может принимать создаваемый тип данных.
Перечисляемый тип
При выборе механизма создания нового типа «Перечисляемый тип» (см. Рисунок 82 ), появится панель, содержащая таблицу, в которой можно задать список возможных значений данного перечисляемого типа.
Добавление, редактирование, удаление, перемещение данных значений осуществляется с помощью кнопок, описание которых приведено в таблице 10
Таблица 10 - Кнопки редактирования значений перечисляемого типа
Также есть возможность задать начальное значение данного перечисляемого типа в поле «Начальное значение».
Массив
При выборе механизма создания нового типа «Массив» (см. Рисунок 83 ) появится панель, в которой необходимо указать базовый тип, начальное значение, а также размерность массива.
Размерность массива задаётся в следующем формате: <начальное значение>..<конечное значение>
Структура
При выборе механизма создания нового типа «Структура» (см. Рисунок 84 ), в появившейся таблице необходимо добавить необходимое количество полей структуры. Каждое поле имеет своё имя, тип и начальное значение.
Добавленные типы данных могут использоваться также как и стандартные при реализации алгоритмов и логики выполнения программных модулей.
Выше были рассмотрены варианты редактирования различных элементов, из которых состоит проект, согласно стандарту IEC 61131-3. Далее будет продолжено рассмотрение остальных компонент среды разработки Beremiz.
Панель экземпляров проекта¶
Панель экземпляров проекта (см. Рисунок 85 ) обычно располагается слева в среде разработки Beremiz и отображаемые в ней экземпляры зависят от выбранного элемента в дереве проекта.
При выборе в дереве проекта элемента, соответствующего ресурсу, в панели экземпляров проекта будут отображены экземпляры, определённые в данном ресурсе, а так же глобальные переменные ресурса. На Рисунок 86 показано, как в панели редактирования ресурса определен экземпляр для программного модуля «main_program»:
Соответственно, при выборе в дереве проекта ресурса, в котором определены экземпляры (описанные выше) и глобальная переменная, панель экземпляров будет выглядеть, как показано на Рисунок 87 :
При выборе в дереве проекта элемента, соответствующего программным модулям «Программа» и «Функциональный блок» в панели экземпляров будут отображены переменные, определённые в них. Ниже на Рисунок 88 приведён пример программного модуля типа «Программа» с именем «program0», в котором определено 8 переменных различных пользовательских классов.
Соответственно, при выборе в дереве проекта данного программного модуля в панели экземпляров будут отображены, определённые выше переменные (см. Рисунок 89 ).

Рисунок 89 - Панель экземпляров проекта при выборе в дереве проекта программного модуля main_program
В случае выбора других элементов в дереве проекта, панель отладки будет пустой. Как можно заметить, с правой стороны от каждого элемента в панели отладки располагаются кнопки, назначение которых описано в таблице 11.
Таблица 11 - Кнопки на панели экземпляров проекта
В случае нажатия кнопки запуска режима отладки, для экземпляра программы, написанной на одном из графических языков (FBD, LD или SFC), откроется вкладка с панелью, на которой диаграмма будет отображена в режиме отладки. Если кнопка запуска режима отладки нажимается для элемента переменной, то переменная будет добавлена в панель отладки.
Описанные выше кнопки доступны только в режиме отладки прикладной программы. Про данный режим подробнее рассказывается в п. 8.
Панель библиотеки функций и функциональных блоков¶
Панель библиотеки функций и функциональных блоков (см. Рисунок 90 ), как правило, располагается справа в среде разработки Beremiz. Она содержит коллекцию стандартных функций и функциональных блоков, разделённых по разделам в соответствии с их назначением, которые доступны при написании алгоритмов и логики работы программных модулей.
Выделены следующие разделы для функций и функциональных блоков: стандартные, дополнительные, преобразования типов данных, операций с числовыми данными, арифметических операций, временных операций, побитовых и смещения бит, операций выбора, операций сравнения, строковых операций, модулей «Python» и «SVGUI».
Помимо стандартных функций и функциональных блоков, данная панель содержит раздел «пользовательские программные модули». В него попадают функции и функциональные блоки, добавленные в конкретный проект, т. е. содержащиеся в дереве проекта.
Использование данных функций и функциональных блоков осуществляется перетаскиванием необходимого блока с помощью зажатой левой кнопки мыши (Drag&Drop) в область редактирования: либо текстовый редактор, либо графический редактор.Имеется специальное поле поиска функционального блока по имени.
Отладочная консоль¶
Панель, содержащая отладочную консоль (см. Рисунок 91 ), как правило, располагается в правом нижнем углу среды разработки Beremiz.
Она служит для отображения в виде текстовых сообщений:
- Результатов генерации ST и C кода;
- Результатов компиляции и компоновки прикладной программы;
- Процесса соединения и передачи прикладной программы на целевое устройство;
- Различных промежуточных манипуляций в процессы создания прикладной программы.
В случае, если необходимо вывести предупреждения среды разработки Beremiz или ошибки компиляторов (MatlEC или C кода) во время их работы цвет вывода текстовых сообщений становится красным. Критические ошибки также выделяется красным цветом, но при этом еще желтым фоном (см. Рисунок 92 ).
Поиск элементов в проекте¶
Для поиска интересующего элемента в проекте используется диалог «Поиск в проекте» (см. Рисунок 93 ). Его вызов происходит с помощью главного меню программы или панели инструментов.
В появившемся диалоге можно установить различные параметры поиска: шаблон поиска, область поиска, чувствительность к регистру при поиске, а так же записать шаблон поиска в виде регулярного выражения. После того как все параметры установлены, необходимо нажать кнопку «Поиск» в этом диалоге. Ниже на Рисунок 94 приведен пример поиска элемента с именем «LIGHT».
Результат поиска выводится в иерархической структуре. При двойном щелчке по одному из результатов - данный элемент будет выделен в проекте оранжевым цветом.
Панель отладки¶
Панель отладки располагается в правой части среды разработки Beremiz (см. Рисунок 95 ).
Данная панель представляет собой таблицу с двумя столбцами «Переменная» и «Значение». Соответственно, столбец «Переменная» содержит экземпляры переменных, значения которых во время исполнения, отображаются в поле «Значение» и могут изменяться. Добавление переменных осуществляется с помощью панели экземпляров проекта.
Изменение значений переменной во время отладки прикладной программы осуществляется нажатием левой клавишей мыши на иконку замка напротив интересующей переменной (см. Рисунок 96 ).
Далее появится диалог ввода значения для выбранной переменной (см. Рисунок 97 ).
В режиме отладки форсированное значение переменной будет подсвечено синим цветом. Для того чтобы освободить значение переменной, необходимо нажать на иконку открытого замка (см. Рисунок 98 )
На данной панели присутствует кнопка удаления переменной из панели отладчика, перемещать и передавать ссылку на переменные можно в Drag&Drop режиме.
Панель графика изменения значения переменной в режиме отладки¶
Данная панель (см. Рисунок 99 ) открывается во вкладке отладчика напротив выбранной переменной в случае, если в панели отладчика нажать на переменную двойным щелчком мыши. Напротив переменной появляется график изменения значения переменной в режиме отладки (см. таблицу 11).
На данной панели есть возможность установить:
- «Интервал» - временной отрезок, за который отображается изменений графика;
- «Масштаб» - задание приближения отображения графика;
- «Позиция» - перемещение по отображению графика, от начала и до конца.
Также на данной панели в правом нижнем углу располагаются вспомогательные кнопки. Описание данных кнопок приведено в таблице 12:
Таблица 12 - Кнопки на панели графика изменения значения переменной