Бібліотеки/Рецепти - OpenSCADAWiki

# Бібліотеки/Рецепти

This page is a translated version of the page Libs/Prescriptions and the translation is 100% complete.

English • ‎mRussian • ‎Українська

Назва | Версія | Ліцензія | Джерело | Мови | Автор | Іконка | Опис
--- | --- | --- | --- | --- | --- | --- | ---
Рецепти | 1.1, 1.1 | GPLv2 | OscadaLibs.db (SQL, GZip) > DAQ.tmplb_PrescrTempl vcaBase.db (SQL, GZip) > VCA.wlb_prescr | en, uk, ru | Роман Савоченко |  | Бібліотека елементів сценаріїв технологічних процесів — рецептів. Засновано: Вересень 2011 Спонсоровано: Василь Григор'єв, Лабораторія Вакуумних Технологій Спонсоровано, щодо шаблонізації контролеру: Магомед, SAVTECH Початково створено, для кадрів: у старій Wiki Використано: Автоматизована система управління вакуумною технологічною установкою Завдання (To Do): - перевести елементи графічної частини на повну роботу через менеджер рецептів, для можливості віддаленого рознесення частин.

Бібліотека створюється для надання середовища виконання сценаріїв технологічних процесів — рецептів, та кадрів користувацького інтерфейсу довкола нього, включно з кадром створення/редагування рецептів та двома кадрами контролю виконання та звітності — "Рецепт — виконання" та "Рецепт — виконання, простий". Будується бібліотека на основі примітивів віджетів та мови внутрішнього програмування JavaLikeCalc, включно для шаблонів та команд.

Назви елементів та їх параметрів доступні на мовах: Англійська, Українська та mRussian. Їх вихідний код написано у мово(людська)-незалежному режимі з викликом функції перекладу tr() та переклад цих повідомлень також доступний Англійською, Українською та mRussian.

## 1 Концепція

Сценарій технологічних операцій — рецепт, представляє собою послідовний виклик блоку функцій — команди, які приймають до п'яти аргументів та повертають рядок результату із кодом завершення на початку: "Робота (0)", "Завершено (>0)" та "Помилка (<0)". Виклик команди кроку здійснюється циклічно, доки повертається результат "Робота (0)". Перехід до наступного кроку здійснюється у випадку результату "Завершено (>0)" та команди "Пропуск (2)". У випадку помилки, результат "Помилка (<0)", виконання рецепту переривається.

Послідовність команд, користувачем кінцевого інтерфейсу, формуються на кадрі створення/редагування та здійснюється контроль їх виконання на кадрі "Рецепт — виконання" та "Рецепт — виконання, простий", при цьому, дані рецептів зберігаються у таблиці БД рецептів-програм. Таблиця програм-рецептів поміщається в одну з БД, доступних у конкретній конфігурації OpenSCADA, наприклад, на даний час така таблиця поміщається у БД цієї бібліотеки як "PrescrProgs = (name, prgTxt)", де:

- name — назва рецепту-програми;
- prgTxt — текст програми у вигляді XML-дерева.

XML-дерево рецепту-програми починається із тегу-контейнеру "prg", який містить кінцеві теги команд "com" із атрибутами:

- id — ідентифікатор-ім'я-тип команди у основі кроку;
- name — особиста назва кроку, може бути відсутнє;
- descr — особистий опис кроку, береться із відповідного поля команди та може бути відсутнє;
- backgrnd — ознака виконання кроку у фоні, або послідовною групою кроків із цією ознакою;
- arg{N} — визначені користувачем значення аргументів від 1 до 5.

Наприклад, для рецепту із чотирма кроками матимемо:

    <prg>
      <com arg1="10" id="Таймер" />
      <com arg1="10" id="Вакуум" />
      <com arg1="20" id="Таймер" />
      <com arg1="34" id="Ввімкнути котушки" />
    </prg>

Обчислення рецепту здійснюється через параметр менеджеру рецептів, який підтримує два способи виконання команд рецепту:

- команда-параметр — розташовані у вигляді параметрів контролеру логічного рівня та з урахуванням їх контексту, якщо у менеджері рецептів вказано логічний контролер;
- команда-макрос — безпосередньо у об'єкті менеджеру рецептів за командами, що зберігаються у таблиці "PrescrComs".

Режим виконання "команда-параметр"
Команди-параметри логічного рівня формуються програмістом SCADA-системи під прикладну область у вигляді шаблонів параметрів підсистеми "Збір даних", які надалі використовуються у логічному контролері рецептів, із низкою обов'язкових, службових та внутрішніх атрибутів:

- rez — команда: результат виконання; команда має повертати рядок виду "{rezCode}:{TextMess}", де rezCode має стан:
  - <0 — помилка;
  - =0 — виконання;
  - >0 — виконання завершено;
  - =10 — виконання у фоні з вказівкою оновлювати статус виконання.
- run — команда: виконання;
- pause — команда: пауза, може бути призупинена від себе встановленням цього атрибуту у TRUE;
- start — рецепт: запуск;
- stop — рецепт: коректне завершення;
- error — рецепт: завершення за помилкою;
- abort — рецепт: переривання виконання оператором;
- arg{1...5} — аргументи 1...5, у назві аргументу можливе визначення мінімальної та максимальної границі числового значення аргументу у вигляді "{назва}|{мін}|{макс}".

Особливістю використання команд-параметрів є незалежне їх виконання та можливість залишити виконання низки команд у фоні, наприклад, регулятори. Ці команди, також, можна прямо підключати до джерела даних за допомогою зв'язків, або навіть реалізовувати їх обох у одному шаблоні-параметрі.

Цей режим наразі є основним та на основі нього було реалізовано багато механізмів взаємодії із кадрами візуалізації та контролю, які можуть не працювати, або працювати помилково зі старим "команда-макрос" режимом!

Режим виконання "команда-макрос" (старий)
Команди-макроси, які користувач може обирати при формуванні рецепту-програми, формуються програмістом SCADA-системи під прикладну область що реалізується, шляхом редагування таблиці команд у OpenSCADA. Таблиця команд поміщається в одній із БД, доступних у конкретній конфігурації OpenSCADA, наприклад, наразі така таблиця поміщається у БД даної бібліотеки як "PrescrComs = (name, proc, arg1, arg2, arg3, arg4, arg5)", де:

- name — ім'я команди;
- proc — текст процедури команди, у першому рядку містить назву мови програми, наразі це "JavaLikeCalc.JavaScript", та текст програми безпосередньо за мовою; у процедурі команди доступно наступні контекстні параметри:
  - rez — результат виконання команди, по замовченню повертає "Робота" ("0:Очікування зараз ...");
  - f_start — ознака першого запуску процедури;
  - f_frq — частота періодичних викликів процедури;
  - arg{1...5} — значення аргументу 1...5;
  - tmp{1...10} — значення тимчасового параметру (контекст обчислення) 1...10;

    Приклад тексту програми для команди "Таймер", який не залежить від прикладної області:

    JavaLikeCalc.JavaScript
    if(f_start) tmp1 = arg1;
    var curTm = tmp1.toReal();
    if(curTm <= 0) { rez = "1:Час вичерпано для "+arg1+"с"; return; }
    curTm -= 1/f_frq;
    tmp1 = max(0, curTm);
    rez = "0:Очікування зараз "+curTm+"с";

- arg{1...5} — мітка аргументу 1...5, лише аргументи із міткою буде відображено при редагуванні кроку рецепту; у мітці можливе визначення мінімальної та максимальної границі числового значення аргументу у вигляді "{назва}|{мін}|{макс}".

Для спеціальних цілей зарезервовано декілька назв команд:

- "Error" — викликається після виникнення помилки протягом виконання кроку рецепту;
- "Stop" — викликається при зупинці рецепту, за нормального завершення рецепту та примусової зупинки користувачем.

## 2 Частина опрацювання та виконання

Розділ містить DAQ-шаблони менеджеру рецептів та команд режиму "команда-шаблон", які призначено до підключення у контролері логічного рівня, через створення відповідно параметрів менеджеру рецептів та команд, доступних до обрання користувачем, які і здійснюватимуть там всю роботу із рецептами-програмами щодо їх опрацювання та виконання.

Для підключення частини бібліотеки до проекту станції OpenSCADA ви можете отримати файл БД як:

- такий що постачається з готовим та відповідним пакетом дистрибутиву Linux на кшталт "openscada-libdb-main", "openscada-LibDB.Main";
- найбільш актуальний та безпосередньо отриманий з репозиторію subversion, перетворений у файл БД SQLite шляхом:

    wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql
    sqlite3 -init OscadaLibs.sql OscadaLibs.db .exit

- завантаження прикріпленого тут.

Цей завантажений файл Ви надалі можете розмістити у теці проекту станції та створити об'єкт бази даних модуля БД "SQLite", зареєструвавши файл бази даних у конфігурації.

### 2.1 Менеджер рецептів (manager) | 2.2 | GPLv2 | * | en, uk, ru | Роман Савоченко

Основний, представницький та уніфікований шаблон менеджеру та контролеру рецептів, їх опрацювання та прямого виконання у режимі "команда-макрос". Шаблон формує структуру параметру менеджеру рецептів, який може бути легко підключений до всіх кадрів цієї бібліотеки.

Представницькою структурою менеджеру рецептів є:

- "БД: Ім'я БД з таблицями (dbDB)" — БД, на кшталт "SQLite.vcaBase", де зберігаються або мають зберігатися таблиці рецептів-програм.
- "БД: Таблиця з програмами (dbProgs)" — назва таблиці рецептів-програм, типово "PrescrProgs".
- "Перелік команд (comLs)" — перелік команд доступних до використання.
- "Ім'я обраної програми (prog)" — стан та встановлення назви обраної програми у обробці менеджером.
- "Режим (mode)", "Поточний режим (curMode)" — встановлення та поточний режим менеджеру, виконання обраного рецепту-програми: Завершення(-2); Помилка(-1); Стоп(0); Виконання(1); Пауза(2); Пропустити команду(3).
- "Час запуску (startTm)" — час запуску у секундах.
- "Поточна команда-крок (curCom)" — поточна опрацьовувана команда.
- "Робоча програма (work)" — актуальна та опрацьовувана наразі програма у об'єкті.

Функції

- Формує "Перелік команд (comLs)", доступних до використання у користувацьких рецептах-програмах.
- Опрацьовує "Ім'я обраної програми (prog)", зміна якої призводить до завантаження її послідовності команд до "Робоча програма (work)" або створення нової програми.
- Виконує програму у "Ім'я обраної програми (prog)" після отримання команди "Виконання(1)" у "Режим (mode)" та відзначає цей процес у: "Поточний режим (curMode)", "Час запуску (startTm)", "Поточна команда-крок (curCom)" та "Робоча програма (work)".
- Генерує повідомлення дій протягом виконання рецепту щодо:

  КАТЕГОРІЯ: визначає ідентифікатор користувацького рецепту-програми ProgNM у форматі "uprg{ProgNM}", де:
  - "uprg*" — типовий шаблон-ознака користувацького рецепту-програми, який може бути безпосередньо використано у фільтрі категорії для визначення у повідомленнях суто користувацьких рецептів-програм;
  - ProgNM — ім'я рецепту-програми.
  ТЕКСТ: опис дії у форматі "{ActDescr} "{ProgNM}" : {StartTm} : {ActTm}", де:
  - ActDescr — опис дії:
    - "Поточний вузол відсутній";
    - "Перерваний користувачем сеанс програми";
    - "Перерваний помилкою сеанс програми";
    - "Вдалий сеанс програми".
  - ProgNM — ім'я рецепту-програми;
  - StartTm — час запуску рецепту-програми, у форматі "2020-03-14 16:05:01";
  - ActTm — час дії рецепту-програми, у форматі "2020-03-14 16:05:52".

ВВ шаблону

Ідентифікатор | Ім'я | Тип | Режим | Атрибут | Конфігурація | Значення
--- | --- | --- | --- | --- | --- | ---
dbDB | БД: Ім'я БД з таблицями | Рядок | Вхід | Тільки читання | Константа |
dbComs | БД: Таблиця з командами | Рядок | Вхід | Не атрибут | Константа | PrescrComs
dbProgs | БД: Таблиця з програмами | Рядок | Вхід | Тільки читання | Константа | PrescrProgs
comsCntr | Контролер команд, <порожньо> - для команд у таблиці, '*' - цей параметр контролеру | Рядок | Вхід | Не атрибут | Константа | *
mode | Режим | Вибір цілих чисел | Вхід | Повний доступ | Змінна | -2 -2;-1;0;1;2;3 Завершення;Помилка;Стоп;Виконання;Пауза;Пропустити команду
curMode | Поточний режим | Вибір цілих чисел | Вхід | Тільки читання | Змінна | -2 -2;-1;0;1;2;3 Завершення;Помилка;Стоп;Виконання;Пауза;Пропустити команду
prog | Ім'я обраної програми | Рядок | Вхід | Повний доступ | Змінна |
startTm | Час запуску, секунди | Цілий | Вхід | Тільки читання | Змінна |
curCom | Поточна команда-крок | Рядок | Вхід | Тільки читання | Змінна |
work | Робоча програма | Об'єкт | Вхід | Тільки читання | Змінна |
comLs | Перелік команд | Об'єкт | Вхід | Тільки читання | Змінна |
clcCnt | Лічильник циклів | Цілий | Вхід | Не атрибут | Змінна |
this | Об'єкт | Об'єкт | Вхід | Не атрибут | Змінна |
f_err | Помилка функції | Рядок | Вхід | Не атрибут | Змінна | 0
f_frq | Частота обчислення функції, Гц | Реальний | Вхід | Не атрибут | Змінна | 1000
f_start | Прапорець запуску функції | Логічний | Вхід | Не атрибут | Змінна | 0
f_stop | Прапорець зупинки функції | Логічний | Вхід | Не атрибут | Змінна | 0

Конфігурація та використання

  1. Створити та запустити об'єкт логічного контролеру з потрібними властивостями планування.
  - [JavaLikeCalc] або безпосередньо об'єкт JavaLikeCalc контролеру.
  2. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
  - [JavaLikeCalc] або обрати цей шаблон для JavaLikeCalc контролеру; ввімкнути контролер; створити параметр "manager" віддзеркалення репрезентативних атрибутів:

    dbDB
    dbProgs
    comLs
    prog
    mode
    curMode
    startTm
    curCom
    work

  3. У вкладці "Конфігурація шаблону" об'єкту логічного параметру, або контролеру для [JavaLikeCalc], ви маєте встановити:
    - БД: Ім'я БД з таблицями — у БД, на кшталт "SQLite.vcaBase", де зберігаються або мають зберігатися таблиці рецептів-програм. Порожнє значення не дозволене та викличе помилку!
    - БД: Таблиця з програмами — у назву таблиці рецептів-програм, по замовченню це "PrescrProgs".
    - Контролер команд — залишити у значенні по замовченню "*" для використання контролеру параметрів також для команд. Ви маєте змінити це поле у випадку виконання об'єкту контролера менеджеру у окремому від команд логічному контролері!
  - [JavaLikeCalc] або та додатково:
    - Контролер команд — змінити це поле у окремий логічний контролер для команд!
  - [Команда-макрос] або та додатково:
    - БД: Таблиця з командами — у назву таблиці команд, по замовченню це "PrescrComs".
    - Контролер команд — встановити <порожньо>.
  4. Розташувати потрібні параметри команд разом із параметром менеджеру.
  - [Команда-макрос] або підготувати потрібні команди у "БД: Таблиця з командами" згідно до концепції; порожню таблицю команд має бути створено автоматично після запуску об'єкту параметру, або контролеру для [JavaLikeCalc]!
  5. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) маємо отримати оперативні дані у вкладці "Атрибути", для: перелік доступних команд, поточний режим, робоча програма, поточна команда-крок та час запуску.
  - [JavaLikeCalc] або безпосередньо об'єкт контролеру JavaLikeCalc.
  6. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату, можна здійснювати оперативне налаштування та контроль щодо:
  - Ім'я обраної програми — встановлення назви обраної програми у обробці менеджером;
  - Режим — встановлення режиму менеджеру, виконання обраного рецепту-програми: Завершення(-2); Помилка(-1); Стоп(0); Виконання(1); Пауза(2); Пропустити команду(3).

### 2.2 Шаблони команд

#### 2.2.1 Команда — Таймер (timer) | 2.0 | GPLv2 | * | en, uk, ru | Роман Савоченко

Шаблон команди типового таймеру рецепту. Таймер розроблено лише для витримки часу між іншими дієвими кроками та для прикладу, відтак він містить лише один атрибут, це "Час" у секундах.

ВВ шаблону

Ідентифікатор | Ім'я | Тип | Режим | Атрибут | Конфігурація | Значення
--- | --- | --- | --- | --- | --- | ---
start | Рецепт: старт | Логічний | Вхід | Повний доступ | Змінна | 0
stop | Рецепт: стоп | Логічний | Вхід | Повний доступ | Змінна | 0
error | Рецепт: помилка | Логічний | Вхід | Повний доступ | Змінна | 0
abort | Рецепт: перервано | Логічний | Вхід | Повний доступ | Змінна | 0
run | Команда: виконання | Логічний | Вхід | Повний доступ | Змінна | 0
pause | Команда: пауза | Логічний | Вхід | Повний доступ | Змінна | 0
rez | Команда: результат | Рядок | Вхід | Повний доступ | Змінна | 1
arg1 | Час, секунд | Реальний | Вхід | Повний доступ | Змінна |
tmp1 | Тимчасово 1 | Реальний | Вихід | Не атрибут | Змінна | 0
f_stop | Прапорець зупинки функції | Логічний | Вхід | Не атрибут | Змінна | 0
f_frq | Частота обчислення функції, Гц | Реальний | Вхід | Не атрибут | Змінна | 1000
f_err | Помилка функції | Рядок | Вхід | Не атрибут | Змінна | 0
f_start | Прапорець запуску функції | Логічний | Вхід | Не атрибут | Змінна | 0

Конфігурація та використання

  1. Створити та запустити об'єкт логічного контролеру з потрібними властивостями планування, або використати створений для менеджера рецепту.
  2. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
  3. РЕЗУЛЬТАТ: Запустивши маємо отримати оперативні дані у вкладці "Атрибути" для результату команди.
  4. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату, можна здійснювати оперативне налаштування та контроль щодо репрезентативних атрибутів команд рецепту та додаткових:
  - Час — встановлення часу таймеру, у секундах.

#### 2.2.2 Команда — Фоновий таймер (timer) | 2.0 | GPLv2 | * | en, uk, ru | Роман Савоченко

Шаблон команди фонового таймеру рецепту. Таймер розроблено лише для витримки часу у фоні для прикладу, відтак він містить лише один атрибут, це "Час" у секундах.

ВВ шаблону

Ідентифікатор | Ім'я | Тип | Режим | Атрибут | Конфігурація | Значення
--- | --- | --- | --- | --- | --- | ---
start | Рецепт: старт | Логічний | Вхід | Повний доступ | Змінна | 0
stop | Рецепт: стоп | Логічний | Вхід | Повний доступ | Змінна | 0
error | Рецепт: помилка | Логічний | Вхід | Повний доступ | Змінна | 0
abort | Рецепт: перервано | Логічний | Вхід | Повний доступ | Змінна | 0
run | Команда: виконання | Логічний | Вхід | Повний доступ | Змінна | 0
pause | Команда: пауза | Логічний | Вхід | Повний доступ | Змінна | 0
rez | Команда: результат | Рядок | Вхід | Повний доступ | Змінна | 1
arg1 | Час, секунд | Реальний | Вхід | Повний доступ | Змінна |
tmp1 | Тимчасово 1 | Реальний | Вихід | Не атрибут | Змінна | 0
f_stop | Прапорець зупинки функції | Логічний | Вхід | Не атрибут | Змінна | 0
f_frq | Частота обчислення функції, Гц | Реальний | Вхід | Не атрибут | Змінна | 1000
f_err | Помилка функції | Рядок | Вхід | Не атрибут | Змінна | 0
f_start | Прапорець запуску функції | Логічний | Вхід | Не атрибут | Змінна | 0

Конфігурація та використання

  1. Створити та запустити об'єкт логічного контролеру з потрібними властивостями планування, або використати створений для менеджера рецепту.
  2. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
  3. РЕЗУЛЬТАТ: Запустивши маємо отримати оперативні дані у вкладці "Атрибути" для результату команди.
  4. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату, можна здійснювати оперативне налаштування та контроль щодо репрезентативних атрибутів команд рецепту та додаткових:
  - Час — встановлення часу таймеру, у секундах.

## 3 Графічна частина

Містить елементи-кадри рецептів кінцевого типу та елементи-віджети, що призначені для розташування у розділі мнемосхем (вид відображення) дерева сторінок проекту, побудованого за концепцією об'єктів сигналізації кореневої сторінки "RootPgSo" та для розташування на інших комплексних кадрах. Однак, елементи-кадри можуть бути розташовані як окремі сутності або у складі власної концепції керування сторінками, але тут треба враховувати, що кадри часто посилаються та викликають панель документів!

Для підключення частини бібліотеки до проекту станції OpenSCADA ви можете отримати файл БД як:

- такий що постачається з готовим та відповідним пакетом дистрибутиву Linux на кшталт "openscada-libdb-vca", "openscada-LibDB.VCA";
- найбільш актуальний та безпосередньо отриманий з репозиторію subversion, перетворений у файл БД SQLite шляхом:

    wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql
    sqlite3 -init vcaBase.sql vcaBase.db .exit

- завантаження прикріпленого тут.

Цей отриманий файл Ви надалі можете розмістити у теці проекту станції та створити об'єкт бази даних модуля БД "SQLite", зареєструвавши файл бази даних у конфігурації.

### 3.1 Рецепт — редагування (prescrEdit) | 1.3 | GPLv2 | * | en, uk, ru | Роман Савоченко

Кадр, представлений на рисунку 3.1, є одним із групи кадрів роботи із рецептами, який слугує для користувацького редагування рецептів-програм. Кадр загалом використовує та представляє представницьку структуру менеджеру рецептів.

Кадр містить, зліва праворуч:

- "Бібліотека" — бібліотека із переліком програм та елементами управління бібліотекою.
- "Програма" — перелік кроків-команд обраного у бібліотеці рецепту-програми з елементами управління.
- "Команда" — поле редагування обраного кроку рецепту у складі вибору команди та встановлення ім'я, опису, прапорця фонового виконання та значень доступних атрибутів, а також кнопки збереження змін.

Рис.3.1a. Кадр "Рецепт — редагування" у режимі розробки.

Використання — розробка
Кадр призначено для виконання ролі сторінки, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. До кадру може бути підключено один параметр менеджеру рецептів, шляхом встановлення зв'язків.

Використання — виконання
У режимі виконання користувач може додавати нові рецепти-програми, видаляти, копіювати та експортувати існуючі, а також імпортувати рецепти інших станцій OpenSCADA. У обраному рецепті-програмі користувач може виконати: додання або вставку нового кроку, видалення або зміну положення обраного кроку. Для обраного кроку рецепту-програми користувач може встановити команду та ввести ім'я, опис, прапорець фонового виконання та значення доступних аргументів обраної команди, після чого зберегти зміну кроку.

Операції видалення супроводжуються появою діалогу-вікна підтвердження.

Рис.3.1b. Кадр "Рецепт — редагування" у режимі виконання.

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Конфігурація | Конфігураційний шаблон
--- | --- | --- | --- | ---
dbDB | БД: База даних | Рядок | Вхідний зв'язок | Controller|dbDB
dbProgs | БД: Таблиця програм | Рядок | Вхідний зв'язок | Controller|dbProgs
prExtComLs | Перелік доступних команд рецепту | Об'єкт | Вхідний зв'язок | Controller|comLs

### 3.2 Рецепт — виконання (prescrRun) | 1.3 | GPLv2 | * | en, uk, ru | Роман Савоченко

Кадр, представлений на рисунку 3.2, є одним із групи кадрів роботи із рецептами, який слугує для контролю та спостереження за виконанням програм-рецептів, раніш сформованих у кадрі "Рецепт — редагування". Кадр загалом використовує та представляє представницьку структуру менеджеру рецептів. Додатково до цього повноформатного кадру виконання рецептів, передбачено спрощений — "Рецепт — виконання, простий", який дозволяє компактно керувати та відстежувати виконання рецептів у складі інших кадрів технологічного процесу.

Кадр містить, зліва праворуч:

- "Запуск/зупинка/пропуск" — дві кнопки запуску та зупинки обраної програми, а також кнопка пропуску виконання поточного кроку.
- "Бібліотека" — бібліотека із переліком програм.
- "Програма" — документ переліку кроків-команд, обраного у бібліотеці рецепту-програми. При виконання у цьому полі відстежується поточний стан виконання шляхом відповідного підсвітлення кроків.

Рис.3.2a. Кадр "Рецепт — виконання" у режимі розробки.

Використання — розробка
Кадр призначено для виконання ролі сторінки, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. До кадру може бути підключено один параметр менеджеру рецептів, шляхом встановлення зв'язків.

Для можливості архівування завершених сеансів, доки оператор перемикається між іншим кадрам, необхідно, для цього повноформатного кадру у дереві проекту, встановити параметр "Стор.: обробляти не відкритою".

За завершенням рецепту-програми відбувається генерація менеджером рецептів повідомлень із параметрами сеансу, а також архівування документу сеанса. Повідомлення із параметрами сеансу можуть бути використані або просто для перегляду історії сеансів, або-ж для формування переліку сеансів, наприклад, у групі графіків для переходу до історії на час сеансу. По замовченню архів звітів налаштовано на глубину 10 документів, що ви можете змінити встановлення атрибуту "Розмір архіву (n)" віджету документа.

Використання — виконання
У режимі виконання користувач може обрати потрібний рецепт-програму та запустити його на виконання, після чого відстежувати процес виконання або перейти до інших кадрів. Виконувану програму користувач може призупинити шляхом натиску кнопки "Пауза" у місці кнопки "Запуск" або перервати шляхом натиску кнопки "Зупинка". Крім цього, користувач може пропустити виконання поточного кроку, натиснувши кнопку "Пропустити". Також користувач може переглянути або роздрукувати звіти раніш виконуваних рецептів цього повноформатного кадру, для чого потрібно натиснути лівою клавишею миші на полі документу та погортати по архіву виконуваних рецептів, на панелі навігації, що виникла праворуч.

Рис.3.2b. Кадр "Рецепт — виконання" у режимі виконання.

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Конфігурація | Конфігураційний шаблон
--- | --- | --- | --- | ---
dbDB | БД: База даних | Рядок | Вхідний зв'язок | Controller|dbDB
dbProgs | БД: Таблиця програм | Рядок | Вхідний зв'язок | Controller|dbProgs
prExtCurCom | Контролер: поточна команда | Рядок | Вхідний зв'язок | Controller|curCom
prExtMode | Контролер: режим | Цілий | Повний зв'язок | Controller|mode
prExtProg | Контролер: програма | Рядок | Повний зв'язок | Controller|prog
prExtStartTm | Контролер: час запуску | Цілий | Вхідний зв'язок | Controller|startTm
prExtWork | Контролер: робочий | Об'єкт | Вхідний зв'язок | Controller|work

### 3.3 Рецепт — виконання, простий (prescrRunSimple) | 1.3 | GPLv2 | * | en, uk, ru | Роман Савоченко

Віджет, представлений на рисунку 3.3, це спрощений варіант кадру "Рецепт — виконання", який розроблено для розташування як віджет мнемосхем та він переважно і працює доповненням кадру "Рецепт — виконання". Кадр загалом використовує та представляє представницьку структуру менеджеру рецептів.

Віджет містить, зліва праворуч та додолу:

- "Запуск/зупинка/пропуск" — дві кнопки запуску та зупинки обраної програми, а також кнопка пропуску виконання поточного кроку.
- "Бібліотека" — кнопка відображення поточного рецепту-програми та виклику діалогу обрання програми у дереві.
- "Програма" — документ із рядками активних наразі команд.

Рис.3.3. Кадр "Рецепт — виконання, простий" у режимі розробки та виконання.

Використання — виконання
Цей віджет може бути використано розробником при створені мнемосхем з відображенням активності виконання рецептів та швидкого контролю ними. Для використання потрібно додати цей віджет на мнемосхему, підлаштувати горизонтальний, вертикальний розмір масштабом та підключити один параметр менеджеру рецептів, шляхом встановлення зв'язків.

Використання — виконання
У режимі виконання користувач може обрати потрібний рецепт-програму, у діалозі обрання програми у дереві що з'являється за натиском кнопки рецепту, та запустити його на виконання, після чого відстежувати процес виконання або перейти до інших кадрів. Виконувану програму користувач може призупинити шляхом натиску кнопки "Пауза" у місці кнопки "Запуск" або перервати шляхом натиску кнопки "Зупинка". Крім цього, користувач може пропустити виконання поточного кроку, натиснувши кнопку "Пропустити".

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Конфігурація | Конфігураційний шаблон
--- | --- | --- | --- | ---
dbDB | БД: База даних | Рядок | Вхідний зв'язок | Controller|dbDB
dbProgs | БД: Таблиця програм | Рядок | Вхідний зв'язок | Controller|dbProgs
prExtCurCom | Контролер: поточна команда | Рядок | Вхідний зв'язок | Controller|curCom
prExtMode | Контролер: режим | Цілий | Повний зв'язок | Controller|mode
prExtProg | Контролер: програма | Рядок | Повний зв'язок | Controller|prog
prExtStartTm | Контролер: час запуску | Цілий | Вхідний зв'язок | Controller|startTm
prExtWork | Контролер: робочий | Об'єкт | Вхідний зв'язок | Controller|work

Libs/Prescriptions/uk - GFDL | July 2026 | OpenSCADA 1+r3070