Объектная модель AgavaPLC/AgavaSCADA: различия между версиями
(Новая страница: «== Введение == Данный документ описывает объектную модель AgavaSCADA/AgavaPLC версии 1.5 и старше (но...») |
|||
Строка 7: | Строка 7: | ||
Узел для организации алгоритмов. | Узел для организации алгоритмов. | ||
− | Позволяет хранить внутри себя алгоритмы и структуры, а также узлы (окна, формы, регистры и т. д.) | + | Позволяет хранить внутри себя алгоритмы и структуры, а также узлы (окна, формы, регистры и т. д.). |
==== Типы вложенных узлов ==== | ==== Типы вложенных узлов ==== | ||
− | * Класс (С++) | + | * Класс (С++). |
* Структура ''(С++).'' Можно использовать в функции, процедуре и классе. Возможно объявление экземпляров в дереве проекта. | * Структура ''(С++).'' Можно использовать в функции, процедуре и классе. Возможно объявление экземпляров в дереве проекта. | ||
* Функция (С++). Можно использовать в другой функции, процедуре и методах класса. | * Функция (С++). Можно использовать в другой функции, процедуре и методах класса. | ||
Строка 18: | Строка 18: | ||
==== Класс ==== | ==== Класс ==== | ||
Класс – это основополагающая сущность объектно-ориентированного программирования. | Класс – это основополагающая сущность объектно-ориентированного программирования. | ||
+ | |||
+ | Можно использовать в функции и процедуре. Аналог в Codesys – функциональный блок. Возможно объявление экземпляров в дереве проекта. | ||
Узлы типа «Класс» позволяют реализовывать создание объектов определённого типа, описывая их структуру (набор полей и их начальное состояние) и определять алгоритмы (функции или методы) для работы с этими объектами. | Узлы типа «Класс» позволяют реализовывать создание объектов определённого типа, описывая их структуру (набор полей и их начальное состояние) и определять алгоритмы (функции или методы) для работы с этими объектами. | ||
===== Вложенные узлы ===== | ===== Вложенные узлы ===== | ||
+ | |||
+ | * Метод. | ||
+ | * Свойство. Специальный метод, предоставляющий доступ к полям через функции-сеттеры/геттеры. | ||
+ | * Действие. Специальный метод, доступный для использования в проекте как другие узлы типа "Действие". | ||
+ | |||
+ | ==== Структура ==== | ||
+ | |||
+ | ==== Функция ==== | ||
+ | |||
+ | ==== Программа ==== | ||
== Наследование == | == Наследование == |
Версия 11:41, 3 ноября 2023
1 Введение
Данный документ описывает объектную модель AgavaSCADA/AgavaPLC версии 1.5 и старше (новее).
2 Узлы
2.1 Приложение
Узел для организации алгоритмов.
Позволяет хранить внутри себя алгоритмы и структуры, а также узлы (окна, формы, регистры и т. д.).
2.1.1 Типы вложенных узлов
- Класс (С++).
- Структура (С++). Можно использовать в функции, процедуре и классе. Возможно объявление экземпляров в дереве проекта.
- Функция (С++). Можно использовать в другой функции, процедуре и методах класса.
- Программа (С++) – имеет возможность объявления внутренних объектов (аналог блока VAR), которые сохраняют свое значение при циклическом выполнении алгоритма. Позволяет задавать входные переменные (аналог блока VAR_IN). Возможно использование всех декларативных типов узлов. Аналог в Codesys – программа. Возможно добавление дополнительных вложенных функций, не доступных вне процедуры.
2.1.2 Класс
Класс – это основополагающая сущность объектно-ориентированного программирования.
Можно использовать в функции и процедуре. Аналог в Codesys – функциональный блок. Возможно объявление экземпляров в дереве проекта.
Узлы типа «Класс» позволяют реализовывать создание объектов определённого типа, описывая их структуру (набор полей и их начальное состояние) и определять алгоритмы (функции или методы) для работы с этими объектами.
2.1.2.1 Вложенные узлы
- Метод.
- Свойство. Специальный метод, предоставляющий доступ к полям через функции-сеттеры/геттеры.
- Действие. Специальный метод, доступный для использования в проекте как другие узлы типа "Действие".
2.1.3 Структура
2.1.4 Функция
2.1.5 Программа
3 Наследование
3.1 Иерархия классов/объектов/узлов
- BasicNode – базовый класс узла.
- BasicSource – базовый класс узла-источника.
- BasicSignal – базовый класс узла-сигнала.
- BasicWindow – базовый класс узла-окна.
- BasicWidget – базовый класс узла-виждета.
и т.д.
3.2 Взаимодействие с узлами проекта.
В функции, программы и методы можно передавать ссылки и указатели на узлы проекта и вызывать методы, определенные в узлах.
3.2.1 BasicNode
Методы
string BasicNode::GetName() string BasicNode::GetShortName() string BasicNode::GetDescription() string BasicNode::GetPath()
void BasicNode::Start() void BasicNode::Stop()
3.2.2 BasicSource
Методы
SignalValue BasicSource::GetValue() void BasicSource::SetValue(SignalValue sv)
3.2.3 BasicWindow
Методы
void BasicWindow::Show() void BasicWindow::Hide()