OpenSCADAWiki: Doc/F LibSYS
 
English (1 Kb) English
Ukrainian (1 Kb) Українська

 (2 Kb) Страница заморожена, актуальная тут.


Модуль <FLibSYS> подсистемы "Специальные"

Модуль: FLibSYS
Имя: Библиотека функций системного API.
Тип: Специальные
Источник: spec_FLibSYS.so
Версия: 1.4
Автор: Роман Савоченко
Описание: Предоставляет библиотеку системного API среды пользовательского программирования.
Лицензия: GPL


Contents

Введение

Специальный модуль FLibSYS предоставляет в систему OpenSCADA статическую библиотеку функций для работы с системой OpenSCADA на уровне её системного API. Эти функции могут использоваться в среде пользовательского программирования системы OpenSCADA для организации неординарных алгоритмов взаимодействия.

Для адресации к функциям этой библиотеки можно использовать статический адрес вызова "Special.FLibSYS.{Func}()" или динамический "SYS.Special.FLibSYS["{Func}"].call()", "SYS.Special.FLibSYS.{Func}()". Где {Func} — идентификатор функции в библиотеке.

Ниже приведено описание каждой функции библиотеки. Для каждой функции производилась оценка времени исполнения. Измерение производилось на системе со следующими параметрами: Athlon 64 3000+ (ALTLinux 4.0(32бит)) путём замера общего времени исполнения функции при вызове её 1000 раз. Выборка производилась из пяти вычислений с округлением до меньшего целого. Время заключается в угловые скобки и измеряется в микросекундах.

1. Общесистемные функции

1.1. Вызов консольных команд и утилит операционной системы (sysCall)

Описание: Осуществляет вызовы консольных команд ОС. Функция открывает широкие возможности пользователю OpenSCADA путём вызова любых системных программ, утилит и скриптов, а также получения посредством них доступа к огромному объёму системных данных. Например команда "ls -l" вернёт детализированное содержимое рабочей директории.
Параметры:
ID Имя Тип Режим По умолчанию
rez Результат Строка Возврат
com Команда Строка Вход
Пример:

1.2. DB: SQL запрос (dbReqSQL)

Описание: Формирование SQL-запроса req к БД addr, внутри (trans=true), вне (trans=false) или безразлично (trans=EVAL) к транзакции. В случае ошибки её значение помещается в свойство "err" результата.
Параметры:
ID Имя Тип Режим По умолчанию
rez Результат Объект(Массив) Возврат
addr Адрес БД, "{TypeDB}.{DB}" Строка Вход
req SQL-запрос Строка Вход
trans Транзакция Логический Вход EVAL

1.3. Узел XML (xmlNode)

Описание: Создание объекта узла XML.
Параметры:
ID Имя Тип Режим По умолчанию
rez Результат Объект(XMLNodeObj) Возврат
name Имя Строка Вход
Пример:

1.4. Запрос интерфейса управления (xmlCntrReq)

Описание: Запрос интерфейса управления к системе посредством XML. Обычный запрос записывается в виде "<get path="/OPath/%2felem"/>". При указании станции осуществляется запрос к внешней станции.
Параметры:
ID Имя Тип Режим По умолчанию
rez Результат Строка Возврат
req Запрос Объект(XMLNodeObj) Выход
stat Станция Строка Вход
Пример:

1.5. Архив значений (vArh)

Описание: Получение объекта архива значений (VArchObj) путём подключения к архиву по его адресу.
Параметры:
ID Имя Тип Режим По умолчанию
rez Результат Объект(VArchObj) Возврат
name Имя, адрес к атрибуту параметра с архивом (DAQ.{Module}.{Cntr}.{Prm}.{Attr}) или непосредственно к архиву значений (Archive.va_{ValArchive}). Строка Вход

Объект VArchObj

Функции:
Пример:

1.6. Буфер архива значений (vArhBuf)

Описание: Получение объекта буфера архива значений (VArchObj) для выполнения промежуточных операций над кадрами данных.
Параметры:
ID Параметр Тип Режим По умолчанию
rez Результат Объект(VArchObj) Возврат
tp Тип значений архива (0-Boolean, 1-Integer, 4-Real, 5-String) Целый Вход 1
sz Максимальный размер буфера Целый Вход 100
per Периодичность буфера (в микросекундах) Целый Вход 1000000
hgrd Режим "Жесткая сетка времени" Логический Вход 0
hres Режим "Высокого разрешения времени (микросекунды)" Логический Вход 0

1.7. Ввод/Вывод (IO)

Описание: Ввод/Вывод в: файл, строковый поток.
Параметры:
ID Параметр Тип Режим По умолчанию
rez Результат Объект(IO) Возврат
name Имя файла или данные (для строкового потока) Строка Вход
accs Доступ к файлу (''-строковый поток;'r[+]'-чтение;'w[+]'-запись с нуля;'a[+]'-добавление;...) Строка Вход
mFormat Формат данных машины ('n'-сист. порядок;'b'-BigEndian;'l'-LittleEndian) Целое Вход "n"
enc Кодировка строки в файле Логический Вход

IO объект

Значения:

Свойства:

Функции:

2. Функции для работы с астрономическим временем

2.1. Строка времени (tmFStr) <3047>

Описание: Преобразует абсолютное время в строку нужного формата. Запись формата соответствует POSIX-функции strftime.
Параметры:
IDПараметрТипРежимПо умолчанию
valСтрока полной датыСтрокаВозврат
secСекундыЦелыйВход0
formФорматСтрокаВход%Y-%m-%d %H:%M:%S
Пример:

2.2. Полная дата (tmDate) <973>

Описание: Возвращает полную дату в секундах, минутах, часах и т.д, исходя из абсолютного времени в секундах от эпохи 1.1.1970.
Параметры:
IDПараметрТипРежимПо умолчанию
fullsecПолные секундыЦелыйВход0
secСекунды [0...59]ЦелыйВыход0
minМинуты [0...59]ЦелыйВыход0
hourЧасы [0...23]ЦелыйВыход0
mdayДень месяца [1...31]ЦелыйВыход0
monthМесяц [0...11]ЦелыйВыход0
yearГод, от 1900ЦелыйВыход0
wdayДень недели [0...6]ЦелыйВыход0
ydayДень в году [0...365]ЦелыйВыход0
isdstЛетнее времяЦелыйВыход0
Пример:

2.3. Абсолютное время (tmTime) <220>

Описание: Возвращает абсолютное время в секундах от эпохи 1.1.1970 и микросекундах, если usec установлен в неотрицательное значение.
Параметры:
IDПараметрТипРежимПо умолчанию
secСекундыЦелыйВозврат0
usecМикросекундыЦелыйВыход-1

2.4. Конвертация времени из символьного представлении во время в секундах, от эпохи 1.1.1970 (tmStrPTime) <2600>

Описание: Возвращает время в секундах от эпохи 1.1.1970, исходя из строковой записи времени, в соответствии с указанным шаблоном. Например, шаблону "%Y-%m-%d %H:%M:%S" соответствует время "2006-08-08 11:21:55". Описание формата шаблона можно получить из документации на POSIX-функцию "strptime".
Параметры:
IDПараметрТипРежимПо умолчанию
secСекундыЦелыйВозврат0
strСтрока датыСтрокаВход
formФормат записи датыСтрокаВход%Y-%m-%d %H:%M:%S
Пример:

2.5. Планирование времени в формате Cron (tmCron)

Описание: Возвращает время спланированное в формате стандарта Cron начиная от базового времени или от текущего если базовое не указано.
Параметры:
ID Параметр Тип Режим По умолчанию
res Результат Целый Возврат 0
str Запись в стандарте Cron Строка Вход * * * * *
base Базовое время Целый Вход 0

2.6. Сон (tmSleep)

Описание: Короткий сон от наносекунд и до STD_INTERF_TM (5 секунд).
Параметры:
ID Параметр Тип Режим По умолчанию
res Результат Целый Возврат 0
tm Время Вещественный Вход 0

3. Функции работы с сообщениями

3.1. Запрос сообщений (messGet)

Описание: Запрос системных сообщений.
Параметры:
IDПараметрТипРежимПо умолчанию
rezРезультатОбъект(Массив)Возврат
btmВремя началаЦелоеВход
etmВремя концаЦелоеВход
catКатегория сообщенияСтрокаВход
levУровень сообщенияЦелыйВход
archАрхиваторСтрокаВход

3.2. Генерация сообщения (messPut)

Описание: Формирование системного сообщения.
Параметры:
IDПараметрТипРежимПо умолчанию
catКатегория сообщенияСтрокаВход
levУровень сообщенияЦелыйВход
messТекст сообщенияСтрокаВход
Пример:

4. Функции работы с строками

4.1. Получение размера строки (strSize) <114>

Описание: Используется для получения размера.
Параметры:
IDПараметрТипРежимПо умолчанию
rezРезультатЦелыйВозврат
strСтрокаСтрокаВход
Пример:

4.2. Получение части строки (strSubstr) <413>

Описание: Используется для получения части строки.
Параметры:
IDПараметрТипРежимПо умолчанию
rezРезультатСтрокаВозврат
strСтрокаСтрокаВход
posПозицияЦелыйВход0
nКоличествоЦелыйВход-1
Пример:

4.3. Вставка одной строки в другую (strInsert) <1200>

Описание: Используется для вставки одной строки в другую.
Параметры:
IDПараметрТипРежимПо умолчанию
strСтрокаСтрокаВыход
posПозицияЦелыйВход0
insВставляемая строкаСтрокаВход

4.4. Замена части строки другой (strReplace) <531>

Описание: Используется для замены части строки другой строкой.
Параметры:
IDПараметрТипРежимПо умолчанию
strСтрокаСтрокаВыход
posПозицияЦелыйВход0
nКоличествоЦелыйВход-1
replЗаменяющая строкаСтрокаВход

4.5. Разбор строки по разделителю (strParse) <537>

Описание: Используется в разборе строки по разделителю.
Параметры:
IDПараметрТипРежимПо умолчанию
rezРезультатСтрокаВозврат
strСтрокаСтрокаВход
levУровеньЦелыйВход
sepРазделительСтрокаВход"."
offСмещениеЦелыйВыход
Пример:

4.6. Разбор пути (strParsePath) <300>

Описание: Используется в разборе пути на элементы.
Параметры:
IDПараметрТипРежимПо умолчанию
rezРезультатСтрокаВозврат
pathПутьСтрокаВход
levУровеньЦелыйВход
offСмещениеЦелыйВыход
Пример:

4.7. Путь в строку с разделителем (strPath2Sep)

Описание: Используется для преобразования пути в строку с разделителем.
Параметры:
IDПараметрТипРежимПо умолчанию
rezРезультатСтрокаВозврат
srcИсточникСтрокаВход
sepРазделительСтрокаВход"."
Пример:


4.8. Кодирование строки в HTML (strEnc2HTML)

Описание: Используется для кодирования строки для использования в исходнике HTML.
Параметры:
IDПараметрТипРежимПо умолчанию
rezРезультатСтрокаВозврат
srcИсточникСтрокаВход

4.9. Кодирование текста в бинарный вид (strEnc2Bin)

Описание: Используется для кодирования текста в бинарный вид, из формата <00 A0 FA DE>.
Параметры:
IDПараметрТипРежимПо умолчанию
rezРезультатСтрокаВозврат
srcИсточникСтрокаВход

4.10. Декодирование текста из бинарного вида (strDec4Bin)

Описание: Используется для декодирования текста из бинарного вида в формат <00 A0 FA DE>.
Параметры:
IDПараметрТипРежимПо умолчанию
rezРезультатСтрокаВозврат
srcИсточникСтрокаВход

4.11. Преобразование вещественного в строку (real2str)

Описание: Используется для преобразования вещественного в строку.
Параметры:
IDИмяТипРежимПо умолчанию
rezРезультатСтрокаВозврат
valЗначениеВещественноеВход
prcТочностьЦелоеВход4
tpТипСтрокаВход"f"

4.12. Преобразование целого в строку (int2str)

Описание: Используется для преобразования целого в строку.
Параметры:
IDИмяТипРежимПо умолчанию
rezРезультатСтрокаВозврат
valЗначениеЦелоеВход
baseБаза, поддерживаются: 8, 10, 16ЦелоеВход10

4.13. Преобразование строки в вещественное (str2real)

Описание: Используется для преобразования строки в вещественное.
Параметры:
IDИмяТипРежимПо умолчанию
rezРезультатВещественноеВозврат
valЗначениеСтрокаВход

4.14. Преобразование строки в целое (str2int)

Описание: Используется для преобразования строки в целое.
Параметры:
IDИмяТипРежимПо умолчанию
rezРезультатЦелоеВозврат
valЗначениеСтрокаВход
baseОсноваЦелыйВход0

4.15. Циклический Избыточный Код (CRC)

Описание: Реализация Циклического Избыточного Кода для длин 8-64 бит.
Параметры:
ID Параметр Тип Режим По умолчанию
rez Результат Целое Возврат
data Данные Строка Вход
poly Полином (реверсивный) Целый Вход 40961 (0xA001)
width Ширина Целый Вход 16
init Инициализация Целый Вход -1 (0xFFFFFFFFFFFFFFFF)

4.16. Слепок сообщения 5 (MD5)

Описание: Расчёт слепка сообщения 5.
Параметры:
ID Параметр Тип Режим По умолчанию
rez Результат Строка Возврат
data Данные Строка Вход

5. Функции работы с вещественным

5.1. Float: Разделение на слова (floatSplitWord)

Описание: Разделение float (4 байтов) на слова (2 байта).
Параметры:
ID Параметр Тип Режим По умолчанию
val Значение Вещественное Вход
w1 Слово 1 Целый Выход
w2 Слово 2 Целый Выход

5.2. Float: Объединение из слов (floatMergeWord)

Описание: Объединение float (4 байтов) из слов (2 байта).
Параметры:
ID Параметр Тип Режим По умолчанию
rez Результат Вещественное Возврат
w1 Слово 1 Целый Вход
w2 Слово 2 Целый Вход

5.3. Float: Извлечение (floatExtract)

Описание: Извлечение мантиссы и экспоненты из вещественного значения.
Параметры:
ID Параметр Тип Режим По умолчанию
magn Размер Вещественный Возврат
val Значение Вещественный Вход
exp Экспонента Целый Выход

6. API пользовательского программирования

Некоторые объекты модуля предоставляют функции пользовательского программирования.


Объект "Библиотека функций" (SYS.Special.FLibSYS)

Объект "Пользовательская функция" (SYS.Special.FLibSYS["funcID"])

Ссылки

Referring pages: Doc
Doc/DAQ
Doc/FLibSYS