Редактор функциональных диаграмм

Общее описание

Режим редактора функциональных диаграмм позволяет:

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

В редакторе, предусмотрена команда пошаговой отмены последнего выполненного пользователем действия - UnDo, которая выполняется при нажатии кнопки «Отменить» панели инструментов, выборе пункта «Правка»«Отменить» главного меню программы или нажатием комбинации клавиш «Ctrl+Z», а также команда пошагового возврата ранее отмененных действий - ReDo, которая выполняется при нажатии кнопки «Вернуть» панели инструментов, выборе пункта «Правка» → «Вернуть» главного меню программы или нажатием комбинации клавиш «Ctrl+Y».

Кнопки «Отменить» и «Вернуть».

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

Примечание: Начиная с CannyLab версии 2 и выше вставка из буфера обмена производится в позиции немного правее и ниже курсора (указателя) мыши, независимо от способа вызова команды «Вставить».

Вертикальная прокрутка рабочей области осуществляется при помощи колеса мыши, клавишами управления курсором «Up» и «Down», клавишами «PageUp», «PageDown» или вертикальной полосы прокрутки, горизонтальная — клавишами управления курсором «Left» и «Right», вращением колеса мыши при нажатой клавише «Alt» или при помощи горизонтальной полосы прокрутки.

Для быстрого изменения масштаба изображения вращайте колесо мыши удерживая клавишу «Ctrl».

Для быстрого перемещения по полю диаграммы пользователь также может применить метод «Drag-and-Drop» (перетаскивание), который позволяет при нажатии и удержании средней кнопки мыши (колесика) передвигать рабочую область редактора с помощью произвольных перемещений мыши, при этом указатель мыши меняет изображение со стрелочки на сжатую в ладонь.

Добавление функциональных блоков на диаграмму

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

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

Выделение элементов функциональной диаграммы

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

Выделение элементов функциональной диаграммы.

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

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

Удаление элементов функциональной диаграммы

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

Создание соединительной линии

Построить новую соединительную линию на функциональной диаграмме, возможно:

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

Кроме того, начав построение линии, можно закончить его в любой свободной от элементов точке диаграммы постановкой конечного узла, образовав таким образом «неподключенную» линию.

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

Создание соединительной линии.

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

Соединение блоков шаг № 1.

Добавление узла (точки излома) линии или завершения линии в точке ее конечного подключения производится кликом левой кнопки мыши.

Соединение блоков шаг № 2.
Соединение блоков шаг № 3.

Оборвать линию в произвольной точке диаграммы можно двойным кликом левой кнопки мыши в этой точке, отменить построение линии — нажатием кнопки «Esc».

Незавершенная линия оканчивается «интеллектуальной» стрелкой, которая указывает в ту или иную сторону в зависимости от положения линии на плоскости и того, является ли линия источником или приемником данных (также относится к именованным сетям).

Незавершенная соединительная линия.

Изменение соединительной линии

Изменение положения и формы соединительной линии производится методом ее «перетаскивания» за прямые отрезки.

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

Изменение соединительной линии.

Неподключенные линии можно достраивать – продолжать их построение от конечного узла.

Продолжение построения соединительной линии.

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

Разветвление соединительной линии.

Сегменты и сети соединительных линий

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

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

Два сегмента сети.

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

Выделение сегмента сети.

Удаление сегмента происходит аналогично удалению любого другого элемента функциональной диаграммы.

Именованные сети

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

Создание именованных сетей.

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

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

Команды контекстного меню редактирования сегмента сети.
Пункт меню «Горячая клавиша» Описание
Разорвать разорвать сегмент, удалив отрезок между ближайшими узлами;
Переименовать задать новое имя данной сети;
Вырезать Ctrl+X вырезать выделенный сегмент или сегменты;
Копировать Ctrl+C копировать выделенный сегмент или сегменты;
Вставить Ctrl+V вставить скопированный или вырезанный сегмент или сегменты;
Удалить Del удалить выделенный сегмент или сегменты.
Команды контекстного меню редактирования сегмента сети.

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

Контекстное меню, команда «Отобразить имя сети».
Результат выполнения команды.

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

Диалоговое окно «Переименовать».

Идентификационные номера функциональных блоков

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

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

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

Примечание: Идентификационный номер блока не влияет на порядок его выполнения при работе диаграммы и служит только для его идентификации на поле функциональной диаграммы.

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

При необходимости вручную задать номер функционального блока кликните правой кнопкой мыши по любой точке в границах функционального блока и в контекстном меню выберите команду «Изменить номер»:

Команда контекстного меню для изменения номера функционального блока.

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

Диалоговое окно «Изменить номер».

В результате функциональному блоку будет задан новый номер.

Результат изменения номера функционального блока.

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

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

Константы

В качестве входных значений функциональных блоков могут быть использованы числовые константы.

Добавление новой константы на диаграмму можно осуществить следующими способами:

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

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

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

Добавление константы к свободному входу функционального блока, шаг № 1.

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

Добавление константы к свободному входу функционального блока, шаг № 2.

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

Изменение значения константы.

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

Диалоговое окно «Ввод константы».

Десятичное значение может быть задано 1..5-значным числом в интервале от 0 до 65535, шестнадцатеричное — 1..4-значным числом в интервале от 0 до FFFF (допускается вводить символы как в верхнем так и в нижнем регистре), двоичное — 1..16-значным числом в интервале от 0 до 1111111111111111, а символьное — символами основной таблицы ASCII.

Примечание: При вводе символьных значений допускается использование специальных символов в следующем формате: «\n» - код символа ASCII 0x0A (перевод строки), «\r» - код символа ASCII 0x0D (возврат каретки), «\t» - код символа ASCII 0x09 (табуляция), «\0» - код символа ASCII 0x00 (ноль, пустое значение), «\xYY» любой символ, где YY – его ASCII код в шестнадцатеричном формате.

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

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

Именованные константы представлены в виде дерева и сгруппированы по назначению.

Диалоговое окно «Выбор константы».

При выборе именованной константы, на диаграмме вместо значения будет отображено ее сокращенное наименование.

Отображение именованной константы.

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

Примечание: Переход к альтернативному способу быстрого задания значений по двойному нажатию на константе левой кнопки мыши (ручной ввод константы или использование именованных констант) можно выполнить, используя двойное нажатие левой кнопки мыши на поле константы, при удержании в нажатом состоянии клавиши «Ctrl».

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

Регистры

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

По способу доступа, регистры делятся на регистры чтения и регистры записи. Регистр чтения может являться источником данных для других элементов диаграммы, а регистр записи – приемником данных.

Добавление нового регистра чтения или записи на диаграмму можно осуществить следующими способами:

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

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

Способы назначения регистра через контекстное меню.

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

В отличие от константы, значение регистра нельзя ввести вручную, допускается только выбор из списка.

Диалоговое окно «Выбор регистра».

При выборе регистра, на диаграмме будет отображено его сокращенное наименование.

Пример отображения наименования регистра на диаграмме.

Примечание: В соответствии с соглашением, принятым в языке CFD, использовать один и тот же регистр записи в нескольких местах диаграммы не допускается. Несмотря на то, что редактор диаграмм позволяет дублирование регистров записи на диаграмме, при попытке сохранения, загрузки в контроллер или запуске в симуляторе такой диаграммы, CannyLab выведет соответствующее сообщение об ошибке.

Перемещение элементов функциональной диаграммы в рабочей области

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

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

Перемещение элемента в рабочей области функциональной диаграммы.

Перемещение функциональных блоков c присоединёнными элементами

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

Пример привязки элемента к функциональному блоку.

Примечание: Привязка начальных и конечных точек сетей можент осуществляется аналогично.

В зависимости от того привязаны элементы к функциональному блоку или нет, они будут перемещаться вместе с ним или оставаться на месте.

Перемещение функционального блока с привязанными элементами.
Перемещение функционального блока с непривязанными элементами.

Составные блоки

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

Составные функциональные блоки доступны пользователю начиная с CannyLab версии 2.0.

Составные функциональные блоки (пользовательские функциональные блоки, мультиблоки) — являются одним из ключевых новнешств CannyLab версии 2.0. Фактически, пользователю доступна возможность создавать собственные функциональные блоки и управлять их работой: включая и отключая их по необходимости, таким образом оказывая влияние на использование ресурсов контроллера и его быстродействие; воздействовать на состояние выходов блока при его включении и выключении в цикл выполнения; создавая циклы или машину состояний.

Составные блоки могут быть вложенными, т.е. содержать в своем составе другие составные функциональные блоки.

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

Добавление составных блоков на диаграмму

Добавление нового составного функционального блока на диаграмму выполняется аналогично добавлению обычного функционального блока и может быть осуществлено двумя способами:

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

Использование специального управляющего входа составного блока (вход - «EN/nRST»)

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

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

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

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

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

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

Управление включением и отключением вычисления составного функционального блока.

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

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

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

При подаче на вход «nRST» значения «0», составной блок будет исключен из цикла выполнения диаграммы (не будет выполняться), его внутреннее состояние и состояние его выходов будет сброшено - приведено к исходному (нулевому) состоянию.

Управление работой составного функционального блока с помощью входа «nRST»: слева - блок включен в цикл выполнения диаграммы; справа - блок исключен из цикла выполнения диаграммы и сброшен в исходное состояние.

Редактирование составного функционального блока

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

Данные действия доступны пользователю через контекстные меню, вызываемые на соответствующих областях составного функционального блока. Кроме того, переименование составного блока, входа или выхода доступно по двойному нажатию левой кнопки мыши на текущем названии изменяемого элемента, изменение порядка входов и выходов (перемещение их вверх и вниз) возможно с использованием “перетаскивания” (drag-and-drop) при нажатой клавише «Ctrl», вход в составной блок для редактирования может осуществляться по двойному нажатию левой кнопки мыши на его поле, незанятом другими его элементами.

Контекстные меню составного блока и области их вызова: 1 - контекстное меню заголовка составного блока; 2 - контекстное меню входа «EN» составного блока; 3 - контекстное меню входа составного блока; 4 - контекстное меню области входов составного блока; 5 - контекстное меню области выходов составного блока; 6 - контекстное меню выхода составного блока.
Выбор типа управляющего входа.

Изменение количества входов составного блока

После добавления составного функционального блока на поле диаграммы он имеет только один вход и один выход.

Исходный вид составного блока.
Добавление одного входа

Чтобы добавить новый вход составному блоку, необходимо вызвать контекстное меню входа и выбрать в нем пункт «Добавить один вход».

В результате, у составного блока будет добавлен новый вход - «Вход 1».

Результат выполнения команды «Добавить один вход».

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

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

Добавление входа между существующими.
Добавление нескольких входов

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

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

Диалоговое окно для установки количества добавляемых входов.

В результате ниже после «Входа 0» будут размещены: «Вход 1», «Вход 2», «Вход 3».

Добавление нескольких входов.
Удаление входов составного блока

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

Примечание: Удаление входа составного блока производится в точке вызова контекстного меню.

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

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

Удаление нескольких входов производится аналогично добавлению: необходимо вызвать контекстное меню входа и выбрать пункт «Удалить несколько входов ниже…»*. Откроется диалоговое окно для указания количества удаляемых входов.

Диалоговое окно для установки количества удаляемых входов.

При этом происходит удаление самого входа на котором была вызвана команда удаления и следующие за ним ниже блоки в соотвествубщем количестве. Нпример, при вызове команды для удаления трех входов на элементе «Вход 0» (см. рисунок 48), останется только «Вход 3», т.е. В результате «Вход 0», «Вход 1», «Вход 2» будут удалены.

Результат удаления нескольких входов.
Добавление и удаление входа «EN/nRST»

Добавление входа «EN» производится с помощью команды «Добавить вход EN» контекстного меню заголовка составного блока.

Результат добавления входа «EN».

Удалить вход «EN» можно аналогичным образом, с помощью команды «Убрать вход EN» контекстного меню заголовка составного блока.

Результат удаления входа «EN».

Более детально пример работы входа «EN» рассмотрен в Примере №2, к описанию составного блока

Изменение количества выходов составного блока

Добавление одного выхода

Чтобы добавить новый выход составному блоку, необходимо вызвать контекстное меню выхода и выбрать в нем пункт «Добавить один выход».

Исходный вид составного блока.

В результате, в указанном при вызове контекстного меню месте будет размещен «Выход 1».

Результат выполнения команды «Добавить один».

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

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

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

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

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

Диалоговое окно для установки количества добавляемых выходов.

В результате добавления нескольких входов исходного составного блока, после «Входа 0» будут размещены «Вход 1», «Вход 2», «Вход 3», «Вход 4».

Добавление нескольких входов.
Удаление выходов составного блока

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

Примечание: Удаление выхода составного блока производится в точке вызова контекстного меню.

Результат удаления выхода 0 составного блока.

Удаление нескольких выходов производится аналогично добавлению.

Например, для удаления элементов «Выход 0» и «Выход 1» составного блока (смю рисунок 58) необходимо вызвать контекстное меню выхода на элементе «Выходе 0» составного блока и выбрать пункт «Удалить несколько выходов ниже…». В открывшемся диалоговом окне указывается необходимое количество удаляемых выходов.

Диалоговое окно для установки количества удаляемых выходов.

В результате «Выход 0» и «Выход 1» будут удалены.

Результат удаления нескольких выходов.

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

Изменение параметров составного блока

Переименование составного блока

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

Диалоговое окно для установки нового имени исходного составного блока.
Результат переименования составного блока.
Переименование входов и выходов составного блока

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

Диалоговое окно для установки нового имени входа составного блока.
Результат переименования входа составного блока.

Переименование выхода составного блока, производится аналогичным образом.

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

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

Изменение ширины составного блока

Чтобы изменить ширину составного блока необходимо вызвать контекстное меню заголовка составного блока, выбрать команду «Изменить ширину» и в открывшемся диалоговом окне указать новое значение ширины в пикселях.

Диалоговое окно для установки ширины составного блока (400 пикселей).
Результат изменения ширины составного блока.

Функциональная диаграмма составного блока

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

Переход к функциональной диаграмме составного блока

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

  • двойным кликом левой кнопки мыши на поле составного блока, незанятом его элементами (входами, выходами, заголовком и т.п.):
Вход в составной блок двойным кликом ЛКМ.
  • с помощью пункта «Войти в блок» контекстного меню составного блока.

После входа в режим редактирования функциональной диаграммы составного блока отобразится рабочая область диаграммы, а также её уровень вложенности:

Функциональная диаграмма составного блока.
Вложение одного составного блока в другой

Допускается многократное вложение одного составного блока в другой.

Вложенный составной блок.

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

Функциональная диаграмма «Составного блока 2».

Для перехода на более высокий уровень иерархии (вложенности) составных блоков, необходимо сделать клик левой кнопкой мыши по его названию:

Переход на более высокий уровень иерархии диаграмм.

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

Кроме того, возможен переход на более высокие уровни вложенности последовательно, по одному уровню, с использованием иконки “Выйти из блока” или аналогичного пункта контекстного меню текущего составного блока.

Взаимодействие с функциональной диаграммой составного блока

Принцип работы с функциональной диаграммой составного блока аналогичен принципу работы с обычной функциональной диаграммой.

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

Взаимодействие с рабочей областью функциональной диаграммы составного блока.

При работе с функциональной диаграммой составного блока есть некоторые особенности:

  1. Внутри составного блока невозможно использование:
  2. Для взаимодействия с диаграммой более высокого уровня используются:

Работа с входами и выходами составного блока

Работа с входами и выходами составного блока рассмотрена на примере передачи произвольных констант с «Входа 0» и «Входа 1» на «Выход 1» и «Выход 0» соответственно:

Установка значения на входах составного блока.

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

Размещение элемента «Внешний вход составного блока» в рабочей области диаграммы.

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

Команда контекстного меню для добавления элемента «Внешний вход составного блока».

Чтобы задать значение элементу «Внешний вход составного блока», необходимо сделать двойной клик левой кнопки мыши на нём или нажать правую кнопку мыши и выбрать соответствующую команду в контекстном меню:

Вызов меню для назначения элементу составного блока соответствующего входа.

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

Далоговое окно для для назначения элементу составного блока соответствующего входа.

Кроме того с помощью этого диалогового окна возможно добавлять, изменять (переименовывать), удалять, перемещать (менять порядок их отображения на составном блоке) входы. Результаты работы с этим диалоговым окном будут отображены на редактируемом составном блоке.

Назначение входа составного блока добавленному внешнему входу диаграммы составного блок выполняется путем выбора нужного названия из предложенного списка.

Результат установки значения на внешних входах составного блока.

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

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

Для выполнения задачи поставленной в данном примере, соединим «Вход 0» и «Выходом 1», а также «Вход 1» и «Выход 0»:

Итоговая функциональная диаграмма составного блока.

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

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

Запрет на изменение составного блока

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

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

Также в данном режиме невозможно изменение функциональной диаграммы составного блока.

Для включения запрета изменения составного блока выполняется вызовом контекстного меню заголовка блока и выбором пункта «Запрет изменений»:

Команда контекстного меню для запрета изменения составного блока.

Если установлен запрет изменения составного блока, то его контекстное меню доступно в сокращенном виде, а рядом с его номером, в заголовке блока, отображается значок «замочек».

Результат применения команды «Запрет изменений».

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

При попытке добавить объект на рабочую область функциональной диаграммы составного блока блок будет отмечен иконкой запрета добавления:

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

Особенности размещения одноименных составных функциональных блоков в рабочей области

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

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

Разместить в рабочей области редактора составной функциональный блок:

Составной функциональный блок в рабочей области редактора.

Задать составному блоку следующую функциональную диаграмму:

Функциональная диаграмма составного блока.

Копировать составной функциональный блок и провести проверку функциональной диаграммы на наличие ошибок командой меню «Сервис» → «Проверить диаграмму»:

Копирование составного блока и проверка диаграммы на наличие ошибок.

Для демонстрации некорректного подхода к размещению одноименных составных блоков в рабочей области редактора необходимо изменить функциональную диаграмму любого из составных блоков. В данном случае в функциональной диаграмме составного блока №2 будет заменен «T-триггер» на «D-триггер»:

Измененная функциональная диаграмма составного блока №2.

Проверка функциональной диаграммы выявит наличие ошибок:

Проверка функциональной диаграммы показала наличие ошибок.

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

СМОТРИ ТАКЖЕ