<< Click to Display Table of Contents >> Navigation: Проект в MasterSCADA 4D > Типы, наследники и экземпляры MasterSCADA 4D |
В MasterSCADA 4D широко используются принципы ООП (объектно-ориентированного программирования).
Тип - это библиотечный элемент проекта (окно, параметр, объект, тревога и т.п.), который содержит в себе все необходимые настройки.
Экземпляр - это элемент, который имеет отношения с типом Ссылается. Экземпляр содержит в себе только элементы, необходимые для связи с другими элементами проекта. Это позволяет значительно уменьшить размер создаваемого проекта и увеличить скорость работы в режиме разработки. Разработчик не может изменить внутреннюю структуру отдельного экземпляра после его добавления в проект.
Наследник - это элемент, который имеет отношения с типом Унаследован от, является копией библиотечного элемента, содержит всю внутреннюю структуру родительского объекта, любой элемент наследника может быть изменен.
Важно! Любой элемент, который дублируется или копируется у наследника теряет унаследованные от библиотечного элемента свойства.
Если какая-то часть проекта (программа, окно, часть окна, объект) повторяется несколько раз в одном проекте или встречается в нескольких проектах, то в дерево системы и в дерево объектов обычно добавляются экземпляры, а их типы находятся в дереве библиотек. Элемент может быть добавлен в проект любым удобным способом:
•при помощи контекстного меню;
•при помощи контекстной панели;
•перетаскиванием из дерева библиотек;
•при помощи легенды какого-либо редактора.
У элементов дерева системы и дерева объектов в панели свойств в группе Отношения показано, с каким именно библиотечным типом имеется связь. Отношения между типом и экземпляром могут быть разные: Ссылается, Имеет тип, либо Унаследован от.
Рассмотрим, для каких элементов проекта какие отношения являются наиболее характерными.
Отношение |
Элементы |
Описание |
Имеет тип |
Параметры |
При назначении параметру библиотечного типа данных, в дерево автоматически добавляется необходимое количество полей структуры, в зависимости от библиотечного элемента. При изменении библиотечного типа данных, автоматически изменится вид и настройки параметра в дереве системы или в дереве объектов. Разработчик проекта может изменить свойства параметра, но не его внутреннюю структуру. |
Ссылается |
Программы, Окна, Экземпляры объектов |
Если экземпляры объектов, окна или программы изначально были созданы в библиотеке, а затем используются в объектах, в узлах, в каналах или в тегах, то в этом случае экземпляр не содержит в себе текстов, схем программ или окон, т.к. они хранятся только в типе. Экземпляр содержит в себе только элементы, необходимые для связи с другими элементами проекта. Это позволяет значительно уменьшить размер создаваемого проекта и увеличить скорость работы в режиме разработки. Разработчик не может изменить внутреннюю структуру отдельного экземпляра после его добавления в проект. |
Унаследован от |
Объекты, каналы, теги, узлы |
В библиотеке создается тип, который при добавлении в дерево системы или в дерево объектов может быть отредактирован разработчиком. Например, можно добавить окно, программу, изменить список параметров и т.п. Удалить наследование можно при помощи контекстного меню наследника Разорвать наследование. После выполнения пункта связь между наследником и типом удалится, объект станет независимым. Все настройки сохранятся. |
Нет свойства |
Параметры, Объекты, Программы, Окна |
Характерно для элементов, которые добавлены в проект в базовом виде. Например, параметр, у которого в настройках выбран простой тип данных, или объект, не содержащий по умолчанию окон, программ и параметров, или стандартные функциональные блоки, функции и др. Исключение составляют дочерние элементы экземпляра объекта; у них нет данного свойства, т.к. они являются не самостоятельными элементами, а ссылками на элементы типа. |
Например, если добавить в дерево системы узел АРМ, то у него будет указано:
Для расширения базового функционала типы могут наследоваться друг от друга. Рассмотрим узел АРМ в дереве библиотек. Несмотря на то, что он сам является типом (и мы можем добавить его в проект), в его настройках видно, что он унаследован от другого типа. От Базового узла он отличается именем и рядом предопределенных настроек.
Разработчики проектов могут создавать свои собственные типы в пользовательских библиотеках.
Важно! Если изменить библиотечный тип, то это приведет к изменению всех его наследников в проекте, за исключением тех конкретных свойств, окон и программ, которые уже были модифицированы.
При анализе элементов необходимо обращать внимание на панель свойств. В ней свойства, которые не менялись разработчиком (т.е. которые совпадают со свойствами типа), отображаются обычным шрифтом, а измененные – жирным.
Это означает, что если настройку IP-адреса изменить в типе, то она не поменяется в проекте автоматически.
Настройки и составные части экземпляра можно синхронизировать с типом несколькими способами. Во-первых, если выполнить пункт контекстного меню элемента Восстановить умолчания. В этом случае все дочерние группы и свойства элемента синхронизируются с типом. Данный пункт меню можно применить не ко всему элементу, а только к его отдельным частям, которые были выделены. Во-вторых, если нажать на кнопку, которая появляется при наведении курсора справа от того или иного свойства:
Это приведет только к синхронизации текущего свойства.
В случае необходимости, можно сменить тип. Для этого в контекстном меню элемента нужно выбрать соответствующий пункт Сменить тип.
После чего появится диалоговое окно, в котором можно будет выбрать допустимый тип:
По кнопке Разорвать наследование связь между наследником и экземпляром будет удалена. Настройки объекта останутся. Кроме того Разорвать наследование можно при помощи контекстного меню элемента. В контекстном меню элемента, который является наследником библиотечного элемента есть пункт Разорвать наследование
После выполнения пункта связь между наследником и типом удалится, объект станет независимым. Все настройки сохранятся.
Разорвать наследование между Экземпляром и типом нельзя.
Смотрите также: