Библиотека Standard AgavaSCADA/AgavaPLC: различия между версиями
Перейти к навигации
Перейти к поиску
(Новая страница: «Категория:AgavaSCADA/AgavaPLC») Метка: визуальный редактор отключён |
|||
| Строка 1: | Строка 1: | ||
[[Категория:AgavaSCADA/AgavaPLC]] | [[Категория:AgavaSCADA/AgavaPLC]] | ||
| + | ==Standard - стандартная библиотека== | ||
| + | ===Математические и тригонометрические функции=== | ||
| + | ====Преобразование IEEE битов==== | ||
| + | {| class="wikitable" | ||
| + | !Функция | ||
| + | !Действие | ||
| + | !Аргументы | ||
| + | |- | ||
| + | |<code>float fpFromIEEE(uint bits)</code> | ||
| + | |Преобразует 32-битное IEEE-754 представление в число float | ||
| + | |<code>bits</code> (uint) - битовое представление | ||
| + | |- | ||
| + | |<code>uint fpToIEEE(float value)</code> | ||
| + | |Преобразует число float в 32-битное IEEE-754 представление | ||
| + | |<code>value</code> (float) - исходное число | ||
| + | |- | ||
| + | |<code>double fpFromIEEE(uint64 bits)</code> | ||
| + | |Преобразует 64-битное IEEE-754 представление в число double | ||
| + | |<code>bits</code> (uint64) - битовое представление | ||
| + | |- | ||
| + | |<code>uint64 fpToIEEE(double value)</code> | ||
| + | |Преобразует число double в 64-битное IEEE-754 представление | ||
| + | |<code>value</code> (double) - исходное число | ||
| + | |} | ||
| + | ====Сравнение с допуском==== | ||
| + | {| class="wikitable" | ||
| + | !Функция | ||
| + | !Действие | ||
| + | !Аргументы | ||
| + | |- | ||
| + | |<code>bool closeTo(float a, float b, float epsilon = 0.00001f)</code> | ||
| + | |Сравнивает два числа float с заданной погрешностью | ||
| + | |<code>a</code> (float) - первое число | ||
| + | <code>b</code> (float) - второе число <code>epsilon</code> (float, опционально) - погрешность (по умолчанию 0.00001) | ||
| + | |- | ||
| + | |<code>bool closeTo(double a, double b, double epsilon = 0.0000000001)</code> | ||
| + | |Сравнивает два числа double с заданной погрешностью | ||
| + | |<code>a</code> (double) - первое число | ||
| + | <code>b</code> (double) - второе число <code>epsilon</code> (double, опционально) - погрешность (по умолчанию 1e-10) | ||
| + | |} | ||
| + | ====Тригонометрические функции==== | ||
| + | {| class="wikitable" | ||
| + | !Функция | ||
| + | !Действие | ||
| + | !Аргументы | ||
| + | |- | ||
| + | |<code>float cos(float angle)</code> | ||
| + | |Вычисляет косинус угла | ||
| + | |<code>angle</code> (float) - угол в радианах | ||
| + | |- | ||
| + | |<code>float sin(float angle)</code> | ||
| + | |Вычисляет синус угла | ||
| + | |<code>angle</code> (float) - угол в радианах | ||
| + | |- | ||
| + | |<code>float tan(float angle)</code> | ||
| + | |Вычисляет тангенс угла | ||
| + | |<code>angle</code> (float) - угол в радианах | ||
| + | |- | ||
| + | |<code>float acos(float value)</code> | ||
| + | |Вычисляет арккосинус (обратный косинус) | ||
| + | |<code>value</code> (float) - значение в диапазоне [-1, 1] | ||
| + | |- | ||
| + | |<code>float asin(float value)</code> | ||
| + | |Вычисляет арксинус (обратный синус) | ||
| + | |<code>value</code> (float) - значение в диапазоне [-1, 1] | ||
| + | |- | ||
| + | |<code>float atan(float value)</code> | ||
| + | |Вычисляет арктангенс (обратный тангенс) | ||
| + | |<code>value</code> (float) - значение | ||
| + | |- | ||
| + | |<code>float atan2(float y, float x)</code> | ||
| + | |Вычисляет арктангенс двух переменных | ||
| + | |<code>y</code> (float) - координата Y | ||
| + | <code>x</code> (float) - координата X | ||
| + | |} | ||
| + | ====Гиперболические функции==== | ||
| + | {| class="wikitable" | ||
| + | !Функция | ||
| + | !Действие | ||
| + | !Аргументы | ||
| + | |- | ||
| + | |<code>float cosh(float x)</code> | ||
| + | |Вычисляет гиперболический косинус | ||
| + | |<code>x</code> (float) - значение | ||
| + | |- | ||
| + | |<code>float sinh(float x)</code> | ||
| + | |Вычисляет гиперболический синус | ||
| + | |<code>x</code> (float) - значение | ||
| + | |- | ||
| + | |<code>float tanh(float x)</code> | ||
| + | |Вычисляет гиперболический тангенс | ||
| + | |<code>x</code> (float) - значение | ||
| + | |} | ||
| + | ====Экспоненциальные и логарифмические функции==== | ||
| + | {| class="wikitable" | ||
| + | !Функция | ||
| + | !Действие | ||
| + | !Аргументы | ||
| + | |- | ||
| + | |<code>float log(float x)</code> | ||
| + | |Вычисляет натуральный логарифм (по основанию e) | ||
| + | |<code>x</code> (float) - значение > 0 | ||
| + | |- | ||
| + | |<code>float log10(float x)</code> | ||
| + | |Вычисляет десятичный логарифм (по основанию 10) | ||
| + | |<code>x</code> (float) - значение > 0 | ||
| + | |} | ||
| + | ====Степенные функции==== | ||
| + | {| class="wikitable" | ||
| + | !Функция | ||
| + | !Действие | ||
| + | !Аргументы | ||
| + | |- | ||
| + | |<code>float pow(float base, float exponent)</code> | ||
| + | |Возводит число в степень | ||
| + | |<code>base</code> (float) - основание | ||
| + | <code>exponent</code> (float) - показатель степени | ||
| + | |- | ||
| + | |<code>float sqrt(float x)</code> | ||
| + | |Вычисляет квадратный корень | ||
| + | |<code>x</code> (float) - неотрицательное значение | ||
| + | |} | ||
| + | ====Функции округления и остатка==== | ||
| + | {| class="wikitable" | ||
| + | !Функция | ||
| + | !Действие | ||
| + | !Аргументы | ||
| + | |- | ||
| + | |<code>float ceil(float x)</code> | ||
| + | |Округляет вверх до ближайшего целого | ||
| + | |<code>x</code> (float) - значение | ||
| + | |- | ||
| + | |<code>float abs(float x)</code> | ||
| + | |Вычисляет абсолютное значение (модуль) | ||
| + | |<code>x</code> (float) - значение | ||
| + | |- | ||
| + | |<code>float floor(float x)</code> | ||
| + | |Округляет вниз до ближайшего целого | ||
| + | |<code>x</code> (float) - значение | ||
| + | |- | ||
| + | |<code>float fraction(float x)</code> | ||
| + | |Выделяет дробную часть числа | ||
| + | |<code>x</code> (float) - значение | ||
| + | |} | ||
| + | ===Специализированные функции=== | ||
| + | Специализированные функции среды разработки, доступные для использования в скриптах, приведены в таблицах ниже. | ||
| + | ====Функции для работы с узлами==== | ||
| + | {| class="wikitable" | ||
| + | !Определение функции | ||
| + | !Описание | ||
| + | |- | ||
| + | |float GetNodeValueAsFloat(string strNodePath) | ||
| + | |Получить значение узла в виде float по заданному пути | ||
| + | |- | ||
| + | |void SetNodeValueAsFloat(string strNodePath, float fValue) | ||
| + | |Установить значение узла в float по заданному пути | ||
| + | |- | ||
| + | |int GetNodeValueAsInt(string strNodePath) | ||
| + | |Получить значение узла в виде int по заданному пути | ||
| + | |- | ||
| + | |void SetNodeValueAsInt(string strNodePath, int iValue) | ||
| + | |Установить значение узла в int по заданному пути | ||
| + | |- | ||
| + | |string GetNodeValueAsString(string strNodePath) | ||
| + | |Получить значение узла в виде string по заданному пути | ||
| + | |- | ||
| + | |void SetNodeValueAsString(string strNodePath, string strValue) | ||
| + | |Установить значение узла в виде string по заданному пути | ||
| + | |- | ||
| + | |bool GetNodeValueAsBool(string strNodePath) | ||
| + | |Получить значение узла в виде bool по заданному пути | ||
| + | |- | ||
| + | |void SetNodeValueAsBool(string strNodePath, bool bValue) | ||
| + | |Установить значение узла в виде bool по заданному пути | ||
| + | |- | ||
| + | |bool NodeValueIsError(string strNodePath) | ||
| + | |Проверка значения узла на ошибку | ||
| + | |- | ||
| + | |void StartNode(string strNodePath) | ||
| + | |Запуск узла по заданному пути | ||
| + | |- | ||
| + | |void StopNode(string strNodePath) | ||
| + | |Остановка узла по заданному пути | ||
| + | |} | ||
| + | ====Функции для работы с окнами==== | ||
| + | {| class="wikitable" | ||
| + | !Определение функции | ||
| + | !Описание | ||
| + | |- | ||
| + | |<code>void CloseWindow(string strNodePath, int iDisplay)</code> | ||
| + | |Закрыть окно по заданному пути на дисплее с номером iDisplay | ||
| + | |- | ||
| + | |<code>void ShowWindow(string strNodePath, int iDisplay)</code> | ||
| + | |Отобразить окно по заданному пути на дисплее с номером iDisplay. | ||
| + | Координаты - абсолютные, установленные в свойствах окна. | ||
| + | |- | ||
| + | |<code>int LoadComposition(string strWindowPath, string strCompositionPath, int iDisplay)</code> | ||
| + | |Загрузить композицию strCompositionPath в окно strWindowPath на дисплее с номером iDisplay. | ||
| + | <code>AS 1.6.25+</code> | ||
| + | |} | ||
| + | ====Функции для работы с временем==== | ||
| + | {| class="wikitable" | ||
| + | !Определение функции | ||
| + | !Описание | ||
| + | |- | ||
| + | |int GetCurrentTime() | ||
| + | |Получение текущего времени в UNIX формате (количество секунд с 01 января 1970 года) | ||
| + | |- | ||
| + | |uint64 GetCurrentTimeMs() | ||
| + | |Получение текущего времени в UNIX формате (количество миллисекунд с 01 января 1970 года) (<code>AS 1.2.55+</code>, <code>AS 1.6.1+</code>) | ||
| + | |- | ||
| + | |int GetLocalTime() | ||
| + | |Получение текущего времени в UNIX формате (количество секунд с 01 января 1970 года) с учетом часового пояса | ||
| + | |- | ||
| + | |int GetHours(int iTime) | ||
| + | |Получение текущего часа из времени в формате UNIX | ||
| + | |- | ||
| + | |int GetMinutes(int iTime) | ||
| + | |Получение текущих минут из времени в формате UNIX | ||
| + | |- | ||
| + | |int GetSeconds(int iTime) | ||
| + | |Получение текущих секунд из времени в формате UNIX | ||
| + | |} | ||
| + | ====Функции для работы с событиями==== | ||
| + | '''int StoreMessage(int iMessageLevel, string strMessage)''' | ||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | |'''Назначение''' | ||
| + | |Генерация информационного события (типа "сообщение"). Событие помещается в группу "Системные". | ||
| + | |- | ||
| + | |'''Возвращаемое значение''' | ||
| + | |0 - успешно, иначе код ошибки | ||
| + | |- | ||
| + | | rowspan="2" |'''Аргументы''' | ||
| + | |int iMessageLevel - уровень сообщения (1-наивысший): 1=FATAL, 2=ERROR, 3=WARNING, 4=NOTICE, 5=INFO, 6=TRACE, 7=DEBUG | ||
| + | |- | ||
| + | |string strMessage - текст сообщения | ||
| + | |- | ||
| + | |'''Примечания''' | ||
| + | |функция доступна с версии <code>AS 1.2.34+</code> | ||
| + | |} | ||
| + | '''int StoreMessage(int iMessageLevel, string strMessage, string strGroup)''' | ||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | |'''Назначение''' | ||
| + | |Генерация информационного события (типа "сообщение"). Событие помещается в указанную при вызове группу. | ||
| + | |- | ||
| + | |'''Возвращаемое значение''' | ||
| + | |0 - успешно, иначе код ошибки | ||
| + | |- | ||
| + | | rowspan="3" |'''Аргументы''' | ||
| + | |int iMessageLevel - уровень сообщения (1-наивысший): 1=FATAL, 2=ERROR, 3=WARNING, 4=NOTICE, 5=INFO, 6=TRACE, 7=DEBUG | ||
| + | |- | ||
| + | |string strMessage - текст сообщения | ||
| + | |- | ||
| + | |string strGroup - имя группы, в которую должно помещаться событие. | ||
| + | |- | ||
| + | |'''Примечания''' | ||
| + | |функция доступна с версии <code>AS 1.6.20+</code> | ||
| + | |} | ||
| + | ====Функции для работы со строками==== | ||
| + | '''string EncodeMD5(string strText)''' | ||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | |'''Назначение''' | ||
| + | |Кодирование строки в MD5 хэш | ||
| + | |- | ||
| + | |'''Возвращаемое значение''' | ||
| + | |MD5 хэш параметра | ||
| + | |- | ||
| + | |'''Аргументы''' | ||
| + | |string strText - исходная строка | ||
| + | |- | ||
| + | |'''Примечания''' | ||
| + | |функция доступна с версии <code>AS 1.2.34+</code> | ||
| + | |} | ||
| + | ====Другие функции==== | ||
| + | Проверка на nan. | ||
| + | '''bool isnan(double)''' | ||
| + | Запуск процесса в операционной системе. | ||
| + | '''int LaunchProcess(string process)''' | ||
| + | Запуск производится в блокирующем режиме, то есть возврат из функции осуществляется по завершению процесса. | ||
Версия 09:42, 11 августа 2026
1 Standard - стандартная библиотека
1.1 Математические и тригонометрические функции
1.1.1 Преобразование IEEE битов
| Функция | Действие | Аргументы |
|---|---|---|
float fpFromIEEE(uint bits)
|
Преобразует 32-битное IEEE-754 представление в число float | bits (uint) - битовое представление
|
uint fpToIEEE(float value)
|
Преобразует число float в 32-битное IEEE-754 представление | value (float) - исходное число
|
double fpFromIEEE(uint64 bits)
|
Преобразует 64-битное IEEE-754 представление в число double | bits (uint64) - битовое представление
|
uint64 fpToIEEE(double value)
|
Преобразует число double в 64-битное IEEE-754 представление | value (double) - исходное число
|
1.1.2 Сравнение с допуском
| Функция | Действие | Аргументы |
|---|---|---|
bool closeTo(float a, float b, float epsilon = 0.00001f)
|
Сравнивает два числа float с заданной погрешностью | a (float) - первое число
|
bool closeTo(double a, double b, double epsilon = 0.0000000001)
|
Сравнивает два числа double с заданной погрешностью | a (double) - первое число
|
1.1.3 Тригонометрические функции
| Функция | Действие | Аргументы |
|---|---|---|
float cos(float angle)
|
Вычисляет косинус угла | angle (float) - угол в радианах
|
float sin(float angle)
|
Вычисляет синус угла | angle (float) - угол в радианах
|
float tan(float angle)
|
Вычисляет тангенс угла | angle (float) - угол в радианах
|
float acos(float value)
|
Вычисляет арккосинус (обратный косинус) | value (float) - значение в диапазоне [-1, 1]
|
float asin(float value)
|
Вычисляет арксинус (обратный синус) | value (float) - значение в диапазоне [-1, 1]
|
float atan(float value)
|
Вычисляет арктангенс (обратный тангенс) | value (float) - значение
|
float atan2(float y, float x)
|
Вычисляет арктангенс двух переменных | y (float) - координата Y
|
1.1.4 Гиперболические функции
| Функция | Действие | Аргументы |
|---|---|---|
float cosh(float x)
|
Вычисляет гиперболический косинус | x (float) - значение
|
float sinh(float x)
|
Вычисляет гиперболический синус | x (float) - значение
|
float tanh(float x)
|
Вычисляет гиперболический тангенс | x (float) - значение
|
1.1.5 Экспоненциальные и логарифмические функции
| Функция | Действие | Аргументы |
|---|---|---|
float log(float x)
|
Вычисляет натуральный логарифм (по основанию e) | x (float) - значение > 0
|
float log10(float x)
|
Вычисляет десятичный логарифм (по основанию 10) | x (float) - значение > 0
|
1.1.6 Степенные функции
| Функция | Действие | Аргументы |
|---|---|---|
float pow(float base, float exponent)
|
Возводит число в степень | base (float) - основание
|
float sqrt(float x)
|
Вычисляет квадратный корень | x (float) - неотрицательное значение
|
1.1.7 Функции округления и остатка
| Функция | Действие | Аргументы |
|---|---|---|
float ceil(float x)
|
Округляет вверх до ближайшего целого | x (float) - значение
|
float abs(float x)
|
Вычисляет абсолютное значение (модуль) | x (float) - значение
|
float floor(float x)
|
Округляет вниз до ближайшего целого | x (float) - значение
|
float fraction(float x)
|
Выделяет дробную часть числа | x (float) - значение
|
1.2 Специализированные функции
Специализированные функции среды разработки, доступные для использования в скриптах, приведены в таблицах ниже.
1.2.1 Функции для работы с узлами
| Определение функции | Описание |
|---|---|
| float GetNodeValueAsFloat(string strNodePath) | Получить значение узла в виде float по заданному пути |
| void SetNodeValueAsFloat(string strNodePath, float fValue) | Установить значение узла в float по заданному пути |
| int GetNodeValueAsInt(string strNodePath) | Получить значение узла в виде int по заданному пути |
| void SetNodeValueAsInt(string strNodePath, int iValue) | Установить значение узла в int по заданному пути |
| string GetNodeValueAsString(string strNodePath) | Получить значение узла в виде string по заданному пути |
| void SetNodeValueAsString(string strNodePath, string strValue) | Установить значение узла в виде string по заданному пути |
| bool GetNodeValueAsBool(string strNodePath) | Получить значение узла в виде bool по заданному пути |
| void SetNodeValueAsBool(string strNodePath, bool bValue) | Установить значение узла в виде bool по заданному пути |
| bool NodeValueIsError(string strNodePath) | Проверка значения узла на ошибку |
| void StartNode(string strNodePath) | Запуск узла по заданному пути |
| void StopNode(string strNodePath) | Остановка узла по заданному пути |
1.2.2 Функции для работы с окнами
| Определение функции | Описание |
|---|---|
void CloseWindow(string strNodePath, int iDisplay)
|
Закрыть окно по заданному пути на дисплее с номером iDisplay |
void ShowWindow(string strNodePath, int iDisplay)
|
Отобразить окно по заданному пути на дисплее с номером iDisplay.
Координаты - абсолютные, установленные в свойствах окна. |
int LoadComposition(string strWindowPath, string strCompositionPath, int iDisplay)
|
Загрузить композицию strCompositionPath в окно strWindowPath на дисплее с номером iDisplay.
|
1.2.3 Функции для работы с временем
| Определение функции | Описание |
|---|---|
| int GetCurrentTime() | Получение текущего времени в UNIX формате (количество секунд с 01 января 1970 года) |
| uint64 GetCurrentTimeMs() | Получение текущего времени в UNIX формате (количество миллисекунд с 01 января 1970 года) (AS 1.2.55+, AS 1.6.1+)
|
| int GetLocalTime() | Получение текущего времени в UNIX формате (количество секунд с 01 января 1970 года) с учетом часового пояса |
| int GetHours(int iTime) | Получение текущего часа из времени в формате UNIX |
| int GetMinutes(int iTime) | Получение текущих минут из времени в формате UNIX |
| int GetSeconds(int iTime) | Получение текущих секунд из времени в формате UNIX |
1.2.4 Функции для работы с событиями
int StoreMessage(int iMessageLevel, string strMessage)
| Назначение | Генерация информационного события (типа "сообщение"). Событие помещается в группу "Системные". |
| Возвращаемое значение | 0 - успешно, иначе код ошибки |
| Аргументы | int iMessageLevel - уровень сообщения (1-наивысший): 1=FATAL, 2=ERROR, 3=WARNING, 4=NOTICE, 5=INFO, 6=TRACE, 7=DEBUG |
| string strMessage - текст сообщения | |
| Примечания | функция доступна с версии AS 1.2.34+
|
int StoreMessage(int iMessageLevel, string strMessage, string strGroup)
| Назначение | Генерация информационного события (типа "сообщение"). Событие помещается в указанную при вызове группу. |
| Возвращаемое значение | 0 - успешно, иначе код ошибки |
| Аргументы | int iMessageLevel - уровень сообщения (1-наивысший): 1=FATAL, 2=ERROR, 3=WARNING, 4=NOTICE, 5=INFO, 6=TRACE, 7=DEBUG |
| string strMessage - текст сообщения | |
| string strGroup - имя группы, в которую должно помещаться событие. | |
| Примечания | функция доступна с версии AS 1.6.20+
|
1.2.5 Функции для работы со строками
string EncodeMD5(string strText)
| Назначение | Кодирование строки в MD5 хэш |
| Возвращаемое значение | MD5 хэш параметра |
| Аргументы | string strText - исходная строка |
| Примечания | функция доступна с версии AS 1.2.34+
|
1.2.6 Другие функции
Проверка на nan.
bool isnan(double)
Запуск процесса в операционной системе.
int LaunchProcess(string process)
Запуск производится в блокирующем режиме, то есть возврат из функции осуществляется по завершению процесса.