This documentation is out of date.

The new version of the documentation is here: https://cannylogic.com/docs

CANNY Lab Functional Diagram Editor

From CANNY Wiki
Revision as of 14:30, 12 April 2016 by MEGA (Talk | contribs) (General description)


Jump to: navigation, search

The main operating mode of CannyLab is functional diagram editor.

General description

In the functional diagram editor mode, the user has the opportunity to:

  • Add function blocks to the diagram;
  • move function blocks within the diagram;
  • select and delete diagram elements;
  • add connections to the diagram between the functional blocks - networks;
  • add and edit names of the networks to the diagram;
  • merge, split and change networks configuration;
  • change functional blocks numbering;
  • assign input data sources and recipients of function block output data, using constant and controller resources address.


The editor provided stepwise undo command of the last action performed by the user - Undo, which is performed after selecting «Edit» → «Undo» of the main menu or by clicking shortcut keys «Ctrl+Z», as well as the command of step by step return to the previously undone action - Redo, which is performed after selecting «Edit» → «Redo» of the main menu or by clicking shortcut keys «Ctrl+Y».

To simplify development of custom diagrams in the editor provided the possibility of using the clipboard for cutting, copying and pasting fragments of the diagram within the same and between different files. Access to the commands «Cut», «Copy» and «Paste» is via the menu «Edit» or, like in other apps, using familiar keyboard shortcuts «Ctrl+X», «Ctrl+C» и «Ctrl+V» accordingly.

Vertical scrolling workspace is performed by using the mouse wheel, cursor keys ↑ ↓, keys PageUp, PageDown or the vertical scroll bar, horisontal — cursor keys ← →, rotating the mouse wheel while pressing «Alt» or by using a horizontal scrollbar.

To change quickly the image scale, rotate the mouse wheel while holding down «Ctrl».

To quickly move through the the diagram field, the user can also use the method «Drag-and-Drop», which allows by pressing and holding the middle mouse button (wheel) move editor's workspace using random mouse movements, while the mouse pointer changes from an arrow to an image of clenched hand.

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

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

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

Например:

4_6_1_2.png   - вид курсора мыши, при добавлении блока "Логическое И":

Перемещение функциональных блоков

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


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

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

4 6 3 1.png

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

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


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

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


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

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

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

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

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

4 6 5 1.png

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

4 6 5 2.png

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

4 6 5 3.png

4 6 5 4.png

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

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

4 6 5 5.png

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

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

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

4 6 6 1.png

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

4 6 6 4.png

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

4 6 6 5.png


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

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

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

4 6 7 1.png

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

4 6 7 2.png

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


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

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

4 6 8 1.png

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

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

4 6 8 2.png - разорвать сегмент, удалив отрезок между ближайшими узлами;
- задать новое имя данной сети на диаграмме;
- вырезать выделенный элемент или сегменты;
- копировать выделенный сегмент или сегменты;
- вставить скопированный или вырезанный сегмент или сегменты;
- удалить выделенный сегмент или сегменты.

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

4 6 8 3.png 4 6 8 4.png

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

4 6 8 5.png


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

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

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

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


Константы

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

4 6 10 1.png

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

4 6 10 2.png

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

4 6 10 3.png

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

4 6 10 4.png 4 6 10 5.png

4 6 10 6.png 4 6 10 7.png

Десятичное значение может быть задано 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 код в шестнадцатеричном формате.

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

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

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

4 6 10 8.png

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

4 6 10 9.png

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

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


Адреса

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

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

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

4 6 11 3.png

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

4 6 11 4.png

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

4 6 11 5.png

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

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

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