Типы, наследники и экземпляры MasterSCADA 4D

<< Click to Display Table of Contents >>

Navigation:  Проект в MasterSCADA 4D >

Типы, наследники и экземпляры MasterSCADA 4D

В MasterSCADA 4D широко используются принципы ООП (объектно-ориентированного программирования).

Тип - это библиотечный элемент проекта (окно, параметр, объект, тревога и т.п.), который содержит в себе все необходимые настройки.

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

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

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

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

при помощи контекстного меню;

при помощи контекстной панели;

перетаскиванием из дерева библиотек;

при помощи легенды какого-либо редактора.

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

Рассмотрим, для каких элементов проекта какие отношения являются наиболее характерными.

Отношение

Элементы

Описание

Имеет тип

Параметры

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

Ссылается

Программы, Окна, Экземпляры объектов

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

Унаследован от

Объекты, каналы, теги, узлы

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

Нет свойства

Параметры, Объекты, Программы, Окна

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

Например, если добавить в дерево системы узел АРМ, то у него будет указано:

types1

Для расширения базового функционала типы могут наследоваться друг от друга. Рассмотрим узел АРМ в дереве библиотек. Несмотря на то, что он сам является типом (и мы можем добавить его в проект), в его настройках видно, что он унаследован от другого типа. От Базового узла он отличается именем и рядом предопределенных настроек.

types2

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

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

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

objekniy_podhod_1

Это означает, что если настройку  IP-адреса изменить в типе, то она не поменяется в проекте автоматически.

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

objekniy_podhod_2

Это приведет только к синхронизации текущего свойства.

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

objekniy_podhod_3

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

objekniy_podhod_4

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

rabota_s_tipom_objecta_3

 

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

Разорвать наследование между Экземпляром и типом нельзя.

Смотрите также: