Области видимости информационных объектов в проекте

В проектах SimInTech используется ряд структурных объектов, с помощью которых задается состав проекта. Структурными объектами являются:

Рисунок 1. Главная и вложенные страницы проекта SimInTech

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

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

Для описания этих блоков и расширения функциональных возможностей приложения в SimInTech используется ряд типов информационных объектов:

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

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

Рисунок 2. Примеры различных вариантов обращения к информационным объектам SimInTech

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

На основании приведенных структурных объектов можно выделить следующие уровни видимости информационных объектов в проекте SimInTech:

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

Т.е. при наличии в проекте всех информационных объектов шести типов с одинаковым именем при расчете внутри графического контейнера будет учтено значение переменной скрипта этого контейнера, при ее отсутствии – значение внутреннего сигнала этого контейнера, и т.д. до сигнала базы данных. В то же время на уровне главной страницы указанные информационные объекты графического контейнера будут не видны (в отличие от глобальных свойств контейнера), а учитываться будет значение переменной скрипта страницы, при ее отсутствии – значение сигнала проекта, при его отсутствии – значение сигнала базы данных.

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

Сигналы базы данных SimInTech

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

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

Сигналы проекта SimInTech

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

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

Переменные скрипта SimInTech главной и вложенных страниц

Видны в своей и вложенных страницах, если в них нет одноименных переменных скрипта, т.к. последние имеют приоритет внутри своей и вложенных страниц.

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

Рисунок 3. Организация видимости информационных объектов в станицах проекта на примере переменных скрипта

Переменные скрипта графических контейнеров

Видны в своем и вложенных контейнерах, если в них нет одноименных переменных скрипта, т.к. последние имеют приоритет внутри своего и вложенных контейнеров.

Не видны во всех страницах проекта, в параллельных контейнерах и в контейнерах более высоких уровней.

Внутренние сигналы графических групп (отсутствуют в панелях управления)

Видны в своей и вложенных группах, если в них нет одноименных переменных скрипта, т.к. последние имеют приоритет внутри своей и вложенных групп.

Не видны во всех страницах проекта, в параллельных группах и в группах более высоких уровней.

Внутренние переменные графических контейнеров

Видны в своем и вложенных контейнерах, если в них нет одноименных переменных скрипта или внутренних сигналов, т.к. последние имеют приоритет внутри своего и вложенных контейнеров.

Не видны во всех страницах проекта, в параллельных контейнерах и в контейнерах более высоких уровней.

Рисунок 4. Организация видимости сигналов и переменных всех типов в графических группах

Свойства блоков SimInTech, в т.ч. свойства графических примитивов

Видны в своей и во всех вышестоящих страницах проекта. При обращении к свойству объекта, расположенного на нижнем уровне, к началу имени свойства необходимо прибавлять через точку имена всех вложенных страниц, содержащих данный объект последовательно от первой вложенной страницы до последней страницы, содержащей объект. Например, имеется набор вложенных страниц проекта с macro1 по macro3 и в последней странице содержится объект FillRect. Тогда для обращения к свойству color данного объекта в скрипте схемного окна проекта или главной страницы нужно записать:

macro1.macro2.macro3.FillRect.color

Видны в своем графическом контейнере.

Не видны во всех прочих графических контейнерах.

Рисунок 5. Организация видимости свойств блоков

Глобальные свойства графических контейнеров

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

Видны в своем и вышестоящем графическом контейнере.

Не видны во всех прочих графических контейнерах.

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