OpenSCADAWiki: Home Page Uk/Doc/F LibSYS
 
English (1 Kb) English
Russian (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: HomePageUk/Doc
HomePageUk/Doc/DAQ
HomePageUk/Doc/FLibSYS