Описание базовых классов AgavaSCADA/AgavaPLC: различия между версиями

Материал из docs.kb-agava.ru
Перейти к навигации Перейти к поиску
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
В данном документе описываются свойства, поля и методы базовых классов AgavaPLC/AgavaSCADA, взаимодействие с которыми доступно в функциях, классах и программах приложений.
 
В данном документе описываются свойства, поля и методы базовых классов AgavaPLC/AgavaSCADA, взаимодействие с которыми доступно в функциях, классах и программах приложений.
 
+
[[Файл:Иерархия классов объектной модели AgavaPLC 1.5+.png|мини|Иерархия классов объектной модели AgavaPLC 1.5+]]
 
Данный документ применим к AgavaSCADA/AgavaPLC версии 1.5 и старше (новее).
 
Данный документ применим к AgavaSCADA/AgavaPLC версии 1.5 и старше (новее).
  
 
==BasicNode==
 
==BasicNode==
 +
Базовый класс для всех узлов проекта.
 +
 
Предок: нет.
 
Предок: нет.
  
 
=== Конструкторы ===
 
=== Конструкторы ===
 +
BasicNode::BasicNode()              ///< Конструктор по умолчанию
 
  BasicNode::BasicNode(string path)    ///< Создание узла по пути в проекте
 
  BasicNode::BasicNode(string path)    ///< Создание узла по пути в проекте
  
 
===Методы===
 
===Методы===
  string BasicNode::GetName()
+
  string BasicNode::GetName()         ///< Получение имени узла
  string BasicNode::GetShortName()
+
  string BasicNode::GetShortName()     ///< Получение шифра узла
  string BasicNode::GetDescription()
+
  string BasicNode::GetDescription()   ///< Получение описания узла
  
 
  void BasicNode::SetName(string name)
 
  void BasicNode::SetName(string name)
Строка 18: Строка 21:
 
  void BasicNode::SetDescription(string description)
 
  void BasicNode::SetDescription(string description)
  
  string BasicNode::GetPath()     ///< Получение пути узла в проекте
+
  string BasicNode::GetPath()         ///< Получение пути узла в проекте
 +
 
 +
void BasicNode::Start()              ///< Запуск узла
 +
void BasicNode::Stop()              ///< Остановка узла
 +
 
 +
NodeProperty@ BasicNode::GetProperty(string prop)    ///< Получение указателя на свойство узла
 +
 
 +
=== Свойства ===
 +
{|style="width:75%" class="wikitable"
 +
|+
 +
!style="width:15%"|Имя
 +
!style="width:25%"|Описание
 +
!style="width:10%"|Тип
 +
!style="width:15%"|Доступ
 +
!Внутренний идентификатор
 +
|-
 +
|Id
 +
|Идентификатор узла
 +
|int
 +
|Чтение/Запись
 +
|CONFIGNODE_PARAM_ID
 +
|-
 +
|Name
 +
|Имя узла
 +
|string
 +
|Чтение/Запись
 +
|CONFIGNODE_PARAM_NAME
 +
|-
 +
|Description
 +
|Описание узла
 +
|string
 +
|Чтение/Запись
 +
|CONFIGNODE_PARAM_DESCRIPTION
 +
|-
 +
|ShortName
 +
|Шифр узла
 +
|string
 +
|Чтение/Запись
 +
|CONFIGNODE_PARAM_SHORTNAME
 +
|-
 +
|NodeDisabled
 +
|Узел выключен
 +
|bool
 +
|Чтение/Запись
 +
|CONFIGNODE_PARAM_DISABLED
 +
|}
  
void BasicNode::Start()
 
void BasicNode::Stop()
 
 
==SignalValue==
 
==SignalValue==
 +
Класс, хранящий значение, передаваемое между узлами.
 +
 
Предок: нет.
 
Предок: нет.
  
Строка 31: Строка 79:
  
 
===Методы===
 
===Методы===
  string SignalValue::ToString()
+
  string SignalValue::ToString()   ///< Преобразовать значение в строку
  double SignalValue::ToDouble()
+
  double SignalValue::ToDouble()   ///< Преобразовать значение в double
  int SignalValue::ToInt()
+
  int SignalValue::ToInt()         ///< Преобразовать значение в int
  
 
  void SignalValue::SetValue(string& value)
 
  void SignalValue::SetValue(string& value)
 
  void SignalValue::SetValue(int value)
 
  void SignalValue::SetValue(int value)
 
  void SignalValue::SetValue(double value)
 
  void SignalValue::SetValue(double value)
==BasicSource==
+
 
 +
bool SignalValue::IsNumber()    ///< Значение является числовым
 +
bool SignalValue::IsError()      ///< Значение является ошибкой
 +
 
 +
=== Примеры ===
 +
'''void fnIncrementSource(BasicSource_t &source)'''
 +
{
 +
    SignalValue sv = source.GetValue();
 +
   
 +
    if (sv.IsNumber() == true)
 +
    {
 +
        int iVal = sv.ToInt();
 +
        iVal++;
 +
 +
        sv = SignalValue(iVal);
 +
    }
 +
    else
 +
    {
 +
        sv = SignalValue(0);
 +
    }
 +
 +
    source.SetValue(sv);
 +
}
 +
 
 +
== NodeProperty ==
 +
Класс, предоставляющий доступ к свойствам узлов.
 +
 
 +
Предок: нет.
 +
 
 +
=== Конструкторы ===
 +
NodeProperty::NodeProperty()
 +
NodeProperty::NodeProperty(NodeProperty& other)
 +
 
 +
===Методы===
 +
string NodeProperty::GetName()        ///< Получение имени свойства
 +
string NodeProperty::GetShortName()    ///< Получение шифра свойства
 +
string NodeProperty::GetDescription()  ///< Получение описания свойства
 +
string NodeProperty::GetTitle()        ///< Получение заголовка свойства
 +
 
 +
string NodeProperty::ToString()        ///< Преобразование значения свойства в строку
 +
int NodeProperty::ToInt()              ///< Преобразование значения свойства в число типа int
 +
double NodeProperty::ToDouble()        ///< Преобразование значения свойства в число типа double
 +
bool NodeProperty::ToBool()            ///< Преобразование значения свойства в булевское значение
 +
 
 +
int NodeProperty::SetValue(string val) ///< Установка значения свойства
 +
int NodeProperty::SetValue(int val)    ///< Установка значения свойства
 +
int NodeProperty::SetValue(double val) ///< Установка значения свойства
 +
int NodeProperty::SetValue(bool val)  ///< Установка значения свойства
 +
 
 +
=== Примеры ===
 +
BasicNode node("/Root/node");
 +
NodeProperty@ prop = node.GetProperty("ShortName");
 +
 +
string sn2 = prop.ToString();
 +
prop.SetValue(string(sn2+"ShortName1"));
 +
 
 +
== BasicSource ==
 
Предок: BasicNode.
 
Предок: BasicNode.
 
===Методы===
 
===Методы===
Строка 44: Строка 148:
 
  int BasicSource::SetValue(SignalValue sv)    ///< Установка собственного значения с установкой значений связанных узлов (источников).
 
  int BasicSource::SetValue(SignalValue sv)    ///< Установка собственного значения с установкой значений связанных узлов (источников).
 
  int BasicSource::UpdateValue(SignalValue sv) ///< Установка собственного значения.
 
  int BasicSource::UpdateValue(SignalValue sv) ///< Установка собственного значения.
 +
==BasicSignal==
 +
Предок: BasicSource.
 +
===Методы===
 +
SignalValue BasicSignal::GetValue()          ///< Получение значения.
 +
int BasicSignal::SetValue(SignalValue sv)    ///< Установка собственного значения с установкой значений связанных узлов (источников).
 +
int BasicSignal::UpdateValue(SignalValue sv) ///< Установка собственного значения.
 
==ModbusRegister==
 
==ModbusRegister==
 
Предок: BasicSource.
 
Предок: BasicSource.
Строка 53: Строка 163:
 
  uint16 m_wWriteRegisterNo  ///< Номер регистра записи.
 
  uint16 m_wWriteRegisterNo  ///< Номер регистра записи.
 
  uint8  m_ucSize            ///< Размер регистра в битах.
 
  uint8  m_ucSize            ///< Размер регистра в битах.
  uint8  m_ucPriority        ///< Приоритет. 0 - максимальный. Не используется.
+
  uint8  m_ucPriority        ///< Приоритет. Не используется.
 
===Методы===
 
===Методы===
  int BasicSource::WriteValue(SignalValue sv) ///< Установка собственного значения с записью значения устройство.
+
  int BasicSource::WriteValue(SignalValue sv) ///< Установка собственного значения с записью значения в устройство.
 
==<s>BasicWindow</s>==
 
==<s>BasicWindow</s>==
 
===<s>Методы</s>===
 
===<s>Методы</s>===

Версия 16:48, 2 апреля 2025

В данном документе описываются свойства, поля и методы базовых классов AgavaPLC/AgavaSCADA, взаимодействие с которыми доступно в функциях, классах и программах приложений.

Иерархия классов объектной модели AgavaPLC 1.5+

Данный документ применим к AgavaSCADA/AgavaPLC версии 1.5 и старше (новее).

1 BasicNode

Базовый класс для всех узлов проекта.

Предок: нет.

1.1 Конструкторы

BasicNode::BasicNode()               ///< Конструктор по умолчанию
BasicNode::BasicNode(string path)    ///< Создание узла по пути в проекте

1.2 Методы

string BasicNode::GetName()          ///< Получение имени узла
string BasicNode::GetShortName()     ///< Получение шифра узла
string BasicNode::GetDescription()   ///< Получение описания узла
void BasicNode::SetName(string name)
void BasicNode::SetShortName(string shortname)
void BasicNode::SetDescription(string description)
string BasicNode::GetPath()          ///< Получение пути узла в проекте
void BasicNode::Start()              ///< Запуск узла
void BasicNode::Stop()               ///< Остановка узла
NodeProperty@ BasicNode::GetProperty(string prop)     ///< Получение указателя на свойство узла

1.3 Свойства

Имя Описание Тип Доступ Внутренний идентификатор
Id Идентификатор узла int Чтение/Запись CONFIGNODE_PARAM_ID
Name Имя узла string Чтение/Запись CONFIGNODE_PARAM_NAME
Description Описание узла string Чтение/Запись CONFIGNODE_PARAM_DESCRIPTION
ShortName Шифр узла string Чтение/Запись CONFIGNODE_PARAM_SHORTNAME
NodeDisabled Узел выключен bool Чтение/Запись CONFIGNODE_PARAM_DISABLED

2 SignalValue

Класс, хранящий значение, передаваемое между узлами.

Предок: нет.

2.1 Конструкторы

SignalValue::SignalValue(int value)
SignalValue::SignalValue(double value)
SignalValue::SignalValue(string value)

2.2 Методы

string SignalValue::ToString()   ///< Преобразовать значение в строку
double SignalValue::ToDouble()   ///< Преобразовать значение в double
int SignalValue::ToInt()         ///< Преобразовать значение в int
void SignalValue::SetValue(string& value)
void SignalValue::SetValue(int value)
void SignalValue::SetValue(double value)
bool SignalValue::IsNumber()     ///< Значение является числовым
bool SignalValue::IsError()      ///< Значение является ошибкой

2.3 Примеры

void fnIncrementSource(BasicSource_t &source)
{
    SignalValue sv = source.GetValue();
    
    if (sv.IsNumber() == true)
    {
        int iVal = sv.ToInt();
        iVal++;

        sv = SignalValue(iVal);
    }
    else
    {
        sv = SignalValue(0);
    }

    source.SetValue(sv);
}

3 NodeProperty

Класс, предоставляющий доступ к свойствам узлов.

Предок: нет.

3.1 Конструкторы

NodeProperty::NodeProperty()
NodeProperty::NodeProperty(NodeProperty& other)

3.2 Методы

string NodeProperty::GetName()         ///< Получение имени свойства
string NodeProperty::GetShortName()    ///< Получение шифра свойства
string NodeProperty::GetDescription()  ///< Получение описания свойства
string NodeProperty::GetTitle()        ///< Получение заголовка свойства
string NodeProperty::ToString()        ///< Преобразование значения свойства в строку
int NodeProperty::ToInt()              ///< Преобразование значения свойства в число типа int
double NodeProperty::ToDouble()        ///< Преобразование значения свойства в число типа double
bool NodeProperty::ToBool()            ///< Преобразование значения свойства в булевское значение
int NodeProperty::SetValue(string val) ///< Установка значения свойства
int NodeProperty::SetValue(int val)    ///< Установка значения свойства
int NodeProperty::SetValue(double val) ///< Установка значения свойства
int NodeProperty::SetValue(bool val)   ///< Установка значения свойства

3.3 Примеры

BasicNode node("/Root/node");
NodeProperty@ prop = node.GetProperty("ShortName");

string sn2 = prop.ToString();
prop.SetValue(string(sn2+"ShortName1"));

4 BasicSource

Предок: BasicNode.

4.1 Методы

SignalValue BasicSource::GetValue()          ///< Получение значения.
int BasicSource::SetValue(SignalValue sv)    ///< Установка собственного значения с установкой значений связанных узлов (источников).
int BasicSource::UpdateValue(SignalValue sv) ///< Установка собственного значения.

5 BasicSignal

Предок: BasicSource.

5.1 Методы

SignalValue BasicSignal::GetValue()          ///< Получение значения.
int BasicSignal::SetValue(SignalValue sv)    ///< Установка собственного значения с установкой значений связанных узлов (источников).
int BasicSignal::UpdateValue(SignalValue sv) ///< Установка собственного значения.

6 ModbusRegister

Предок: BasicSource.

6.1 Поля

uint8  m_ucDeviceNo        ///< Номер устройства.
uint8  m_ucReadFunctionNo  ///< Номер функции чтения.
uint16 m_wReadRegisterNo   ///< Номер регистра чтения.
uint8  m_ucWriteFunctionNo ///< Номер функции записи.
uint16 m_wWriteRegisterNo  ///< Номер регистра записи.
uint8  m_ucSize            ///< Размер регистра в битах.
uint8  m_ucPriority        ///< Приоритет. Не используется.

6.2 Методы

int BasicSource::WriteValue(SignalValue sv) ///< Установка собственного значения с записью значения в устройство.

7 BasicWindow

7.1 Методы

void BasicWindow::Show()  ///< Отображение окна.
void BasicWindow::Hide()  ///< Сокрытие окна.