ПрагмаСофтСтудия 2.1
В этой статье пойдёт рассказ о выходных переменных САПР, а также об окне, в котором они создаются, и обо всём, что с ним связано.
В САПР есть способ обеспечения проекта внешней информацией, внешними данными. За это ответственны входные переменные. Требовалась возможность вывода информации во внешнюю среду. В результате были созданы выходные переменные. Они очень похожи на входные, такое же дерево и опции контекстного меню, похожие поля свойств элементов. Но в отличие от входных, выходные переменные не подыгрываются и не имеют значений по умолчанию.
В рамках САПР выходные переменные - это обычные глобальные переменные, доступные для чтения и записи для всех формул в окне Прорисовка. Им не присваивается никакое значение по умолчанию, и это делает их удобным средством хранения и переноса информации между циклами моделирования. На одном цикле вы сохраняете в выходную переменную значение, а на последующих можете его прочитать, и, если необходимо, снова перезаписать.
Если рассматривать программный код создаваемый САПР, то значения выходных переменных могут сохраняться в память. Это будет происходить, если в проекте САПР в поле свойств выходной переменной было включено сохранение значения в память. При этом также задаётся адрес, по которому будет происходить сохранение, и смещение между значениями лежащими в памяти, что пригодится в случае, если размерность переменной больше 1.
Выходные переменные создаются в окне Выходные переменные. По умолчанию оно располагается в нижнем левом углу главного окна САПР и закрыто окном Входные переменные. Чтобы увидеть окно Выходные переменные, нажмите на его закладку левой кнопкой мыши, как показано на следующем рисунке.
Если вы не можете найти окно Выходные переменные на экране, проверьте, возможно, оно было закрыто. За его показ и скрытие отвечает опция главного меню {Вид → Выходные переменные}.
Всю рабочую поверхность окна занимает дерево. Оно содержит 3 столбца. В первом, расположенном слева, столбце размещаются пиктограммы, поля активности и имена элементов дерева. Во-втором столбце указываются адреса и смещения, по которым записываются значения выходных переменных в память. Это используется в создаваемом САПР программном коде, и по умолчанию для переменных отключено. Для всех остальных элементов дерева, поле во втором столбце всегда остаётся пустым. В третий столбец помещается описание элементов.
Первым и самым верхним в дереве всегда располагается элемент проекта . Он включает в себя одну или несколько задач
, а также может содержать группы
и выходные переменные
. Задачи в дереве строятся из двух видов элементов: групп
и выходных переменных
.
Элементы проекта и задач
копируют своё состояние из окна Прорисовка. Они аналогично расположены, имеют те же имена и поля свойств. Но есть отличие, поля свойств проекта
и задач
в окне Свойства не поддаются изменению, а сами элементы в дереве нельзя переместить или удалить.
Группы предназначены исключительно для возможности структурирования ветви проекта или задачи путём объединения выходных переменных и других групп.
Работа с окном происходит с помощью контекстного меню. Для вызова контекстного меню нажмите правой кнопкой мыши в области окна или клавишу на клавиатуре. Во втором случае, окно Выходные переменные должно быть активно, и меню отобразится под выделенным элементом дерева.
Опции контекстного меню описаны в таблице расположенной ниже.
![]() |
Добавить группу |
Создаёт в дереве пустой элемент группы. |
|
![]() |
Добавить переменную... |
Создаёт в дереве элемент выходной переменной. При выборе опции откроется окно Создание новой переменной. В нём необходимо ввести имя, тип и размерность будущей переменной. После закрытия окна, если это было сделано по нажатию на кнопку OK или на клавишу Enter (Ввод) на клавиатуре, будет создана новая выходная переменная. |
|
1 | 1 | 1 | 1 |
![]() |
Удалить | Del |
Удаляет выделенный элемент, а также все элементы, которые в него включены. Удаление элемента проекта |
1 | 1 | 1 | 1 |
![]() |
Вырезать | Ctrl+X |
Копирует текущий выделенный элемент дерева и все вложенные в него элементы в буфер обмена операционной системы и удаляет его. |
![]() |
Копировать | Ctrl+C |
Копирует текущий выделенный элемент дерева и все вложенные в него элементы в буфер обмена операционной системы без его удаления. |
![]() |
Вставить | Ctrl+V |
Вставляет из буфера обмена выходную переменную или группу с дочерними элементами или без. САПР всегда следит за уникальностью имён выходных переменных. При вставке может оказаться, что имя одной из вставляемых переменных соответствует имени существующей переменной. В этом случае вставка не произойдёт, и в окне Вывод появится сообщение об ошибке. |
1 | 1 | 1 | 1 |
|
Свернуть всё |
Сворачивает все элементы групп, задач, а также элемент проекта. После операции в дереве остаётся виден только элемент соответствующий проекту. |
|
Раскрыть всё |
Разворачивает (раскрывает) элемент проекта, а также все элементы задач и групп. |
В третьем столбце таблицы указаны сочетания клавиш, одновременное нажатие на которые выполняет то же действие, что и соответствующая опция меню.
При добавлении переменной или группы, а также при вставке из буфера обмена важно, какой элемент был выделен в дереве перед началом операции. Если это была выходная переменная , то элемент создаётся или вставляется последним в ту же ветвь, что и выделенная переменная. В остальных случаях элемент будет создан или вставлен последним дочерним элементом в ветвь выделенного элемента. Такими родительскими элементами в окне Выходные переменные могут быть проект
, задача
или группа
.
Элементы дерева можно перетягивать мышью. Для этого нажмите в области элемента левой кнопкой мыши и, не отпуская её, потяните указатель мыши вверх или вниз. Если перемещение в текущую позицию допустимо, то указатель мыши примет вид , и в дереве над элементом, куда возможна вставка, появится маркер в виде полосы.
Если перемещение в текущую позицию не возможно, то указатель мыши будет иметь вид .
Элемент проекта и элементы задач
не могут быть перетянуты с помощью мыши. Это должно выполняться в окне Прорисовка.
Перетягивая элемент мышью, мы меняем его положение в родительской ветви на том же иерархическом уровне. Все остальные перемещения элемента должны выполняться с помощью операций работы с буфером обмена. Например, выделите перемещаемый элемент и нажмите одновременно клавиши Ctrl и X на клавиатуре. Это скопирует элемент в буфер обмена операционной системы и удалит его из дерева. Затем, выделите новый родительский элемент и одновременно нажмите клавиши Ctrl и V. Скопированный элемент появится самым нижним в ветви своего нового родителя. Если при вставке была выделена выходная переменная , то вставляемый элемент появится в конце той же ветви, что и переменная.
В дереве может быть выделено одновременно несколько элементов. Используется это в основном для редактирования в окне Свойства общих свойств выделенных в дереве элементов. Например, есть возможность задать активность одновременно для всех выделенных элементов. Или выделить несколько переменных и поменять их тип или размерность.
Выделение выполняется нажатием левой кнопки мыши на элементе дерева с удержанием нажатой клавиши Shift или Ctrl на клавиатуре.
Клавиша Shift используется для группового выделения последовательно расположенных элементов. Вы, просто, нажимаете левую кнопку мыши и, удерживая клавишу Shift, перемещаете указатель мыши вверх или вниз. В начале операции старое выделение в дереве очищается.
Клавиша Ctrl даёт возможность поэлементного изменения выделения. При её удержании, каждое нажатие левой кнопки мыши выделяет или снимает выделение с элемента, на котором произошло нажатие. При этом выделение на других элементах дерева не изменяется.
Свойства выходной переменной отображаются в окне Свойства, как отдельные строки, и называются полями. Чтобы их увидеть, выделите элемент переменной в дереве. Окно Свойства при этом будет иметь примерно следующий вид.
Ниже описаны поля свойств выходной переменной.
Имя |
Текстовое поле для задания имени выходной переменной. Если вводимое имя недопустимо, например, начинается с цифры или переменная с таким именем уже существует, то цвет текста становится серым. Применить введённое имя по нажатию клавиши Enter (Ввод) в этом случае невозможно. |
|
Описание |
Поле позволяет пользователю задать любой произвольный текст, который с его точки зрения как-то характеризует переменную. Если поле выделено, то в его правой части отображается кнопка Описание переменной также приводится в виде одиночной строки в третьем столбце дерева справа от элемента переменной. Если описание многострочное, то его строки объединяются в одну. |
|
Активность |
Активность переменной определяется состоянием данного поля. В целом активность - это участие переменной в процессе моделирования, генерации документации и программного кода, а также во всём, что с этим связано. Отсутствие активности равносильно отсутствию самой переменной в проекте. Значение поля Есть устанавливает метку Чтобы изменить активность переменной выделите данное поле и нажмите кнопку |
|
Тип |
Поле для выбора типа переменной. Выделите данное поле и нажмите кнопку |
|
Размерность | Свойство определяет размерность переменной или, говоря иначе, число элементов в её массиве. | |
![]() |
Сохранение | |
Сохранять |
Свойство определяет, будет ли в создаваемый САПР программный код вставлен фрагмент сохранения значения выходной переменной в память или нет. При переключении свойства в значение Да, в окне Свойства дополнительно появляются два поля: Адрес и Смещение. |
|
Адрес |
Поле содержит адрес, по которому будет сохраняться в память значение переменной. В средней части поле имеет кнопку |
|
Смещение |
Поле используется только для переменных с размерностью больше 1. Если задано, что переменная сохраняет значение в память, то это значит, что значения в память сохраняются последовательно из каждого элемента массива переменной. Данное свойство при этом определяет, как плотно будут сохранены значения в памяти или сколько байт пустого пространства между ними будет находиться. Например, мы имеем переменную с типом int и размерностью 3, а также задан адрес 0x00000010 и смещение 2. Тип int занимает в памяти 32 бита или 4 байта. Соответственно, значение первого элемента в массиве переменной будет сохраняться по заданному адресу 0x00000010, значение второго элемента по адресу 0x00000016, третьего по адресу 0x0000001c. |
Поля свойств группы выходных переменных в окне Свойства имеют примерно следующий вид.
В таблице расположенной ниже описаны поля свойств группы выходных переменных.
Имя |
Текстовое поле для задания имени группы. |
Описание |
Поле позволяет пользователю задать любой произвольный текст, который с его точки зрения как-то характеризует группу в окне Выходные переменные. Если поле выделено, то в его правой части отображается кнопка Описание группы также приводится в виде одиночной строки в третьем столбце дерева справа от элемента группы. Если описание многострочное, то его строки объединяются в одну. |
Активность |
Активность группы определяется состоянием данного поля. В целом активность - это участие группы в процессе моделирования, генерации документации и программного кода, а также во всём, что с этим связано. Отсутствие активности равносильно отсутствию самой группы и всех элементов, которые она включает, в проекте. Значение поля Есть устанавливает метку Чтобы изменить активность группы выделите данное поле и нажмите кнопку |
Кодогенерация |
Свойство разрешает или запрещает участие группы в генерации программного кода. Если для поля задано значение |
Документогенерация |
Свойство разрешает или запрещает участие группы в генерации документации. Значение поля |