This documentation is out of date.

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

Difference between revisions of "CANNY Lab Functional Diagram Editor"

From CANNY Wiki
Jump to: navigation, search
[unchecked revision][unchecked revision]
(Изменение соединительной линии)
(Сегменты и сети соединительных линий)
Line 103: Line 103:
 
[[File:4_6_6_5.png]]
 
[[File:4_6_6_5.png]]
  
=== Сегменты и сети соединительных линий ===
+
=== Segments and networks of connecting lines ===
  
При реализации алгоритма в виде функциональной диаграммы, обычной практикой является связывание одного выхода функционального блока с несколькими входами функциональных блоков, включая свои собственные входы. Таким образом, на диаграмме образуются разветвленные соединительные линии. Соединительную линию, имеющую на функциональной диаграмме ноль или более разветвлений, будем в дальнейшем называть сегментом сети. На рисунке ниже представлено два сегмента.
+
When implementing the algorithm in the form of a functional diagram, the usual practice is to link the output of one function block with multiple functional blocks inputs, including their own inputs. Thus, forming branched connecting lines on the diagram. The connecting line having a zero or more branches on the functional diagram, shall henceforth call network segment. The illustration below shows the two segments.
  
 
{|
 
{|
|valign="top" style="padding-left:0.5em;"|''Примечание:''
+
|valign="top" style="padding-left:0.5em;"|''Note:''
|valign="top" style="padding-left:0.5em;"|''В соответствие с соглашением принятым в языке CFD, любой выход функционального блока может быть соединен единой сетью с несколькими входами других блоков или своими собственными, но никакой вход функционального блока не может быть соединен с несколькими выходами. Несмотря на то, что редактор диаграмм позволяет производить такие соединения, при попытке сохранения, записи в контроллер или запуске в симуляторе такой диаграммы, CannyLab выведет соответствующее сообщение об ошибке.''
+
|valign="top" style="padding-left:0.5em;"|''In accordance with the agreement adopted in the CFD language, any output of the function block can be connected a single network with multiple inputs of other blocks, or their own, but there is no input of the function block can be connected to multiple outputs. Despite the fact that the diagram editor allows you to make such connection, when you try to save, entries in the controller or running in the simulator such diagrams, CannyLab displays an error message. ''
 
|}
 
|}
  
 
[[File:4_6_7_1.png]]
 
[[File:4_6_7_1.png]]
  
При нажатии левой кнопкой мыши на соединительную линию, принадлежащую какому-либо сегменту, происходит выделение всего сегмента.
+
By clicking the left mouse button on the connection line belonging to any segment, entire segment will be highlighted.
  
 
[[File:4_6_7_2.png]]
 
[[File:4_6_7_2.png]]
  
Удаление сегмента происходит аналогично удалению любого другого элемента функциональной диаграммы.
+
Segment removal is analogically to removal of any other element of the functional diagram.
 
+
  
 
=== Именованные сети ===
 
=== Именованные сети ===

Revision as of 13:32, 21 April 2016

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.

Adding functional blocks to the diagram

Adding a new functional block to the diagram, actually creates a new instance of the functional block the type you selected. Addition can be accomplished in two ways:

  • highlight a block by clicking the left mouse button in the functional blocks panel, then right click in the working area of the diagram, and select from the shortcut menu 4 6 1 1.png;
  • press and hold down the left mouse button on the block in the functional blocks panel, «drag and drop» it in the diagram editor workspace then release the left mouse button. During dragging a block image will be added to the cursor icon.

For example:

4_6_1_2.png   - the mouse cursor, adding a block "Logical AND":

Moving functional blocks

Moving functional blocks located in the diagram editor workspace is performed by "dragging": вhighlight a block, located in the diagram workspace by clicking the left mouse button (when you select the background color of the block turns yellow), and holding down the mouse button, move the mouse pointer. To complete block relocation release the left mouse button. In the same way, you can exercise a simultaneous relocation of multiple elements on the diagram by group highlighting.

Selecting elements of functional diagram

Select multiple items on the diagram is possible by "frame" - by clicking the left mouse button on the diagram area free from elements and dragging the mouse without releasing the left button, until all the elements to be captured would be in selection area. Even a partial hit of a diagram element by the "frame" leading to its selection.

4 6 3 1.png

Selecting multiple objects can also be performed using the method of highlighting with the mouse pointer while holding down the «Ctrl» key . Pressing again the left mouse button on the selected element by holding down the «Ctrl» button will lead to its exclusion from selected group.

Clear blocks selection is executed by clicking the left mouse button on an area of diagram workspace free from elements.

Deleting functional diagram elements

Removing functional blocks or diagram networks is performed by highlighting object or group of objects to be deleted, and pressing the «Delete» key on the keyboard, or by selecting «Delete» from context menu, calling of wich is performed by pressing the right mouse button on the selected diagram element.

Creating a connection line

Create a new connecting line on the functional diagram, may:

  • from the output of one to the input of the same or another function block;
  • from the output of one to the output of the same or another function block;
  • from the input or output to the functional block to already existing line;
  • from constant output to function block input or output or to an existing line.

In addition, starting the construction of the line, it is possible to end it at any point free of the diagram elements setting the final node, thus forming "unconnected" line.

To begin building a connection line is necessary to hover the mouse pointer to the point of the expected start of the line, press and release the left mouse button.

4 6 5 1.png

After the start of mouse pointer moving on the editor working area it will begin drawing connecting line, automatically adding line turn, depending on the current position of the mouse pointer.

4 6 5 2.png

Adding a line node (kink point) or end line at the point of its final connection is made by clicking the left mouse button.

4 6 5 3.png

4 6 5 4.png

Break the line at an arbitrary point on the diagram is possible by double clicking the left mouse button at this point, to cancel the line building - by pressing the Esc button.

Unfinished line ends with "intellectual" arrow that points in one direction or another depending on the position of the line on the plane and whether the line is a source or receiver of data (also applies to the named networks).

4 6 5 5.png

Modifying connection line

Modifying position and shape of the connecting line is carried by its "drag and drop" at its straight sections.

To modify the connecting line is necessary to move the mouse pointer to the area requiring changes, press the left mouse button and holding it down, move the pointer to a new location, let go of the left mouse button.

4 6 6 1.png

It is possible to finish building unconnected lines - continue their creation from the final node.

4 6 6 4.png

For line branching, need to click on the desired node, and continue to build the line from a given point.

4 6 6 5.png

Segments and networks of connecting lines

When implementing the algorithm in the form of a functional diagram, the usual practice is to link the output of one function block with multiple functional blocks inputs, including their own inputs. Thus, forming branched connecting lines on the diagram. The connecting line having a zero or more branches on the functional diagram, shall henceforth call network segment. The illustration below shows the two segments.

Note: In accordance with the agreement adopted in the CFD language, any output of the function block can be connected a single network with multiple inputs of other blocks, or their own, but there is no input of the function block can be connected to multiple outputs. Despite the fact that the diagram editor allows you to make such connection, when you try to save, entries in the controller or running in the simulator such diagrams, CannyLab displays an error message.

4 6 7 1.png

By clicking the left mouse button on the connection line belonging to any segment, entire segment will be highlighted.

4 6 7 2.png

Segment removal is analogically to removal of any other element of the functional diagram.

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

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

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 выведет соответствующее сообщение об ошибке.

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