Объектная модель AgavaPLC/AgavaSCADA: различия между версиями

Материал из docs.kb-agava.ru
Перейти к навигации Перейти к поиску
(Новая страница: «== Введение == Данный документ описывает объектную модель AgavaSCADA/AgavaPLC версии 1.5 и старше (но...»)
 
Строка 7: Строка 7:
 
Узел для организации алгоритмов.
 
Узел для организации алгоритмов.
  
Позволяет хранить внутри себя алгоритмы и структуры, а также узлы (окна, формы, регистры и т. д.) <s>в группе Globals</s>.
+
Позволяет хранить внутри себя алгоритмы и структуры, а также узлы (окна, формы, регистры и т. д.).
  
 
==== Типы вложенных узлов ====
 
==== Типы вложенных узлов ====
  
* Класс (С++). Можно использовать в функции и процедуре. Аналог в Codesys – функциональный блок. Возможно объявление экземпляров в дереве проекта.
+
* Класс (С++).  
 
* Структура ''(С++).'' Можно использовать в функции, процедуре и классе. Возможно объявление экземпляров в дереве проекта.
 
* Структура ''(С++).'' Можно использовать в функции, процедуре и классе. Возможно объявление экземпляров в дереве проекта.
 
* Функция (С++). Можно использовать в другой функции, процедуре и методах класса.
 
* Функция (С++). Можно использовать в другой функции, процедуре и методах класса.
Строка 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()