МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
Національний університет “Львівська політехніка”
Інститут Комп’ютерних наук та інформаційних технологій
Кафедра автоматизованих систем управління
Звіт
до лабораторної роботи №7
з дисципліни «Розподілені системи збору інформації
та управління»
на тему: « Ознайомлення з технікою документування технологічної інформації в програмному комплексі Trace Mode»
Тема: Ознайомлення з технікою документування технологічної інформації в програмному комплексі Trace Mode
Мета: Ознайомитися з редактором шаблонів як засобу документування та засвоїти техніку документування технологічної інформації в Trace Mode.
Теоретичні відомості
Документування технологічної інформації – одна з основних функцій систем управління. Документи повинні відповідати певним вимогам, прийнятим на підприємстві, а такі вимоги можуть суттєво відрізнятися для різних підприємств. Тому необхідно мати інструмент створення довільних форм документів.
У Трейс Моуд для документування технологічної інформації використовується спеціальний модуль – сервер документування. Цей модуль інтерпретує заздалегідь створені шаблони, запитує у МРЧ необхідні дані і формує з них документи. Шаблони створюються редактором шаблонів, що входить в інструментальну систему Трейс Моуд.
Шаблон документа розробляється у вигляді файлу формату HTML. У нього можуть бути включені довільні елементи, які підтримуються HTML, а також додаткові функції та команди, призначені для запитування даних від вузлів проекту Трейс Моуд і обробки отриманих значень.
Команди, застосовні у шаблонах, дозволяють виводити значення атрибутів каналів у потрібних областях генерованого документа, вставляти в документ растрові зображення, дані архівів Трейс Моуд у вигляді графіків, інтегральних і усереднених значень каналів.
Редактор шаблонів (представлений файлом htmpled.exe) містить головне меню, панель інструментів, статусний рядок і робоче поле.
Головне меню містить розділи:
Файл;
Редагування;
Елемент;
Звіт;
Таблиця;
Вид;
Допомога.
Меню Файл містить команди для роботи з файлами шаблонів, друку документа, а також команду виходу з редактора:
Створити – створити новий шаблон (йому присвоюється ім’я за замовчуванням, яке можна редагувати).
Відкрити – завантажити в редактор вже створений файл шаблона. Ця команда виводить на екран стандартний діалог вибору файлу.
Зберегти – зберегти шаблон під тим самим іменем.
Зберегти як – зберегти шаблон під іншим іменем.
Параметри документа – ця команда відкриває діалог настройки наступних параметрів документа: заголовок, інтервал поновлення при перегляді у браузері (в секундах), колір фону, рисунок фону. Тут можна вказати, чи документ є фрагментом і налаштувати параметри цього фрагмента.
Друк – вивід завантаженого шаблона у друк.
Вихід – завершення роботи редактора шаблонів.
Редагування
В меню Редагування включені команди редагування тексту шаблонів:
Відмінити – скасування останніх дій (Undo) .
Повернути – поновлення скасованих дій (Redo).
Вирізати – видалити виділений текст і помістити його у буфер обміну.
Копіювати – копіювати виділений текст з буфера обміну.
Видалити – видалити виділений текст.
Виділити все – виділити весь текст шаблона.
Вставити фрагмент – вставити фрагмент документа з файлу у поточну позицію курсору.
Елемент
Дане меню призначено для роботи з окремими елементами тексту шаблона і функціями, які виконуються сервером документування при підготовці документа. Елемент включає такі команди та розділи:
Вставити – розділ для вставки наступних елементів:
Рисунок.
Мітка переходу.
Гіперпосилання.
Довільний вираз.
Ім’я каналу.
Значення каналу.
Значення часу.
Статистичний вираз.
Вікно тренда.
Лінійне групування – об’єднання виділених лінійних елементів мови HTML в один елемент.
Блочне групування – об’єднання виділених блочних елементів мови HTML в один елемент.
Узагальнити вибір – виділити елементи, які знаходяться у ієрархії на рівень вище.
Властивості елемента – вивід на екран діалогу редагування властивостей поточного HTML-документа.
Мітки переходу – вивід списку міток у поточному документі і перехід до вибраної мітки.
Функції користувача – вивід на екран діалогу створення та редагування функцій користувача.
Лінійними називаються елементи, які не переривають поточний абзац. Наприклад, елементи управління параметрами шрифту, вставки зображень, динамічні вирази Трейс Моуд, компоненти ActiveX і гіперпосилання є лінійними.
Блочні елементи розміщуються в різних абзацах. Такими елементами є, наприклад, абзац, таблиця, список.
Звіт
Звіт включає одну команду – Пробний звіт. При її виконанні на екрані появляється вікно, в якому виводиться зображення згенерованого за шаблоном документа. Цей документ можна вивести на принтер як взірець. Однак дані, вставлені в нього, генеруються редактором шаблонів, а не запитуються в МРЧ.
Таблиця
Це меню містить команди для створення та редагування таблиць, що вставляються в документ:
Вставити таблицю – вставити нову таблицю у поточну позицію курсору.
Вставити рядок – додати рядок у таблицю. Створений рядок розміститься над поточним рядком.
Вставити стовпець – додати стовпець до таблиці. Створений стовпець розміститься справа від поточного стовпця.
Вставити комірку – додати комірку до таблиці. Створена комірка розміститься зліва від поточної комірки.
Видалити рядки – видалення поточного рядка таблиці.
Видалити стовпці – видалення поточного стовпця таблиці.
Склеїти комірки – об’єднати виділені комірки в одну.
Розділити комірки – розбити поточну комірку на дві у межах рядка.
Вид
Це меню призначене для управління зовнішнім виглядом вікна редактора шаблонів і містить наступні команди:
Панелі інструментів – розділ управління панелями інструментів. Має команди управління видимістю відповідних панелей:
Основна;
Форматування;
Об’єктів.
Видимі панелі відображаються в меню символом “(” лівіше від назви команди.
Статус-стрічка – управління видимістю статус-стрічки.
Приховані елементи – керування видимістю допоміжних елементів при редагуванні.
Показати рамки – керування видимістю при редагуванні рамок таблиць, оголошених невидимими.
Допомога
Це меню дозволяє отримати інформацію про редактор шаблонів і запустити довідкову систему.
Редактор шаблонів має такі панелі інструментів:
Основна інструментальна панель;
Панель форматування;
Панель об’єктів.
В ці панелі внесені команди, найбільш часто застосовуються.
Основна інструментальна панель має вигляд:
Панель форматування має стандартний вигляд.
Панель об’єктів:
Статус-стрічка розміщується в нижній частині екрана редактора шаблонів і використовується для виведення контекстної підказки щодо функцій інструментальних панелей. В неї також виводиться допоміжна інформація про стан клавіатури.
Структура файлу шаблона
Файл шаблона являє собою HTML-документ. Однак, крім стандартних елементів HTML, шаблон може містити команди форматування та запиту даних у моніторів реального часу (МРЧ).
Є три типи таких команд:
Команди, які задають загальні параметри шаблона (шлях до проекту Трейс Моуд, інтервал поновлення);
Команди, що визначають функції користувача (спільні для всього документа);
Команди, що керують форматуванням окремих HTML-елементів шаблона.
Команди перших двох типів розміщуються у заголовку документа HTML всередині тега <HEAD> .
Ось приклад таких команд:
<HEAD>
<TITLE>Приклад звіту</TITLE>
…
<!--$TM DOC PRJ=“D:\\TM5\\TEST.CTM” REFRESH=5-->
<!--$TM VAR NAME = “Вхідний канал” VALUE = %{CHAN(“input_chan”, 0, “NODE1”)}%-->
<!--$TM VAR NAME = “Значення входу” VALUE = %{GETVAL(@“Вхідний канал”)}%-->
…
</HEAD>
Символи <!- - і - - > позначають початок і кінець коментарю мови HTML. Коментарі, що містять команди сервера документування, починаються з символів $TM. Далі слідує слово, що визначає тип команди:
DOC – інформація про документ;
VAR – визначення функції користувача;
WIZ – визначення загальних властивостей фрагмента;
WPARM – опис окремого параметра фрагмента;
Далі записуються пари ІМ’Я = ЗНАЧЕННЯ, де значенням може бути довільний вираз у синтаксисі мови Техно LIST. Ці вирази повинні починатися символами %{ і закінчуватися символами %}.
Щоб виключити появу в тексті команд символів - ->, які позначають кінець коментарю, прийняті наступні правила:
Символ < записується як <
Символ > записується як >
Символ & записується як &.
Команди управління форматуванням окремих HTML елементів шаблона знаходяться в тілі документа (всередині тіла <BODY>). Вони розміщаються одразу за стартовим тегом документа. Ось приклад команди, яка вставляє значення каналу в документ:
<BODY>
...
<P>ЗНАЧЕННЯ КАНАЛУ:
<SPAN>
<!--$TM ELT VALUE=%{@“Значення входу”}% STYLE.COLOR=%{”red”}%-->
</SPAN>
</P>
...
</BODY>
Команди цього типу мають структуру, аналогічну структурі перших двох команд. Спочатку записуються символи відкриття коментарю, потім ідентифікатор команди Трейс Моуд ($TM), після цього записується тип команди – ELT, що означає інформацію про окремий елемент. Далі може бути довільне число пар ІМ’Я = ЗНАЧЕННЯ. Кожна з таких пар задає ту чи іншу характеристику елемента. Наприклад, VALUE задає текст HTML, що вставляється замість вмісту елемента, ATTR.XXX дозволяє задати значення довільного атрибута, а STYLE – стиль елемента.
Властивості елементів HTML в редакторі шаблонів поділяються на три класи:
Атрибути елементів HTML.
Стилі елементів HTML.
Спеціальні властивості, що використовуються сервером документування.
Атрибути визначають функціональні характеристики елементів. Наприклад, COLSPAN задає число стовпців, що займає елемент таблиці, а ID – ідентифікатор елемента.
Спеціальні властивості служать для задання характеристик елемента, які не можуть бути виражені стандартними атрибутами та стилями. Спеціальною є, наприклад, властивість VALUE. Вона задає вміст елемента HTML. Властивість REPEAT визначає число повторень елемента і т.д.
У редакторі шаблонів є спеціальний діалог для зміни властивостей елементів. Один зі способів відкриття цього діалогу – за допомогою команди Властивості елементів меню Елемент.
Всі властивості елементів (значення стилю, атрибута чи спеціальної властивості) можуть обчислюватися під час генерації документа. Для цього потрібно задати вираз для їх обчислення.
Нижче показано приклад виразу, що задає значення стилю WIDTH у міліметрах за значенням каналу chanwww:
<!- - $TM ELT STYLE.WIDTH=GETVAL(“chanwww”,0, “NODE1”) + “mm” - - >
Елементи документів:
Таблиця
Таблиця розміщується завжди у новому рядку і містить два стовпці і два рядки. У комірки таблиці можна вставляти довільні елементи, зокрема інші таблиці.
Растрові зображення вставляються за допомогою інструментальної панелі
Поле виведення дати і часу
Сервер документування може додавати в документ значення дати і часу з точністю до мілісекунд. При цьому можна задати заокруглення часу до потрібного розряду (секунди, хвилини, години, дні, місяці, роки).
Поля виведення значень каналів
Гіперпосилання
Мітки – мітки використовуються для переходів у рамках одного документа.
Тренди
Сервер документування Трейс Моуд дозволяє додати в документи інформацію про архівні значення каналів, представлену у вигляді трендів. Для виклику діалогу настройки параметрів тренда потрібно натиснути на ньому праву клавішу миші.
Статистична інформація про канали
У документ, що генерується, можна включати результати обробки архівних значень каналів. У спеціальному діалозі задаються канал, часовий інтервал аналізу його значень і метод обробки. Вибір каналу та границі часового інтервалу можуть формуватися динамічно.
Фрагмент
В редакторі шаблонів можна створити типовий фрагмент генерованого документа і зберегти його у файлі. Для цього в робочому полі редактора потрібно розмістити необхідні елементи, в меню Файл вибрати команду Зберегти як, задати ім’я і у вікні Тип файлу вибрати Фрагменти документів (*.htt).
Якщо задача представлення інформації не розв’язується за допомогою описаних раніше засобів, то у таких випадках застосовується мова Техно LIST. Ця мова дозволяє формувати довільні вирази, призначені для управління властивостями елементів HTML у процесі формування документа.
Основними лексичними одиницями мови Техно LIST є:
ключові слова;
ідентифікатори;
числові і рядкові константи;
символи операцій;
розділювачі;
коментарі.
Список ключових слів включає:
and, or, not, if, then, else, return, while, do, for, to, break, continue, var.
Ідентифікатори
Ідентифікатори можуть складатися з латинських літер, цифр і знака підкреслення “_”, при цьому цифра не може бути першим символом. Довжина ідентифікатора не обмежується.
Ідентифікатори чутливі до регістра (“Identifier” і “identifier” є різними ідентифікаторами).
Числові константи
Десяткові цілі константи складаються з ненульової цифри, за якою слідує послідовність десяткових цифр:
123 456 7890
Вісімкові цілі константи складаються з ненульової цифри, після якої записані цифри від 0 до 7:
0777 0123
Шістнадцяткові константи починаються з префікса 0х, за яким записані цифри чи літери a..f f, A..F:
Дійсні константи складаються з цілої і дробової частин, розділених крапкою. Або ціла, або дробова частина може бути відсутня. Числа можуть задаватися у форматі з плаваючою крапкою, при цьому вони супроводжуються суфіксом E (чи e) із зазначенням десяткового порядку:
1.23 123. .123 0.123Е3 .123е-3б 123.Е+5
Рядкові константи являють собою набір символів в одинарних чи подвійних лапках: ‘рядок1’, “рядок2”. В рядку не може бути керуючих символів, зокрема переходу на новий рядок, лапок і зворотних косих рисок “\”.
Для розміщення у рядках довільних символів застосовується механізм ескейп-послідовностей, що складаються з символу “\” і самого символу, який потрібно закодувати. Є наступні послідовності:
\r – повернення каретки, код 0x0D;
\n – переведення рядка, код 0x0A;
\t – табуляція, код 0x09;
\uXXXX – UNICODE-символ, код якого задається чотирма цифрами у форматі HEX;
\x – довільний символ.
Символи операцій та розділювачі
До розділювачів відносяться знаки пунктуації. Деякі символи операцій складаються з кількох знаків. У таких символах не допускаються пробіли.
Ось список розділювачів та символів операцій:
+ – * / % & | ^ ~ ( ) [ } < = > <= == >= != << >> @ , ;
Коментарі
Коментарі є двох типів: рядкові та блочні.
Рядковий коментар починається символами “//” і продовжується до кінця рядка.
Блочний коментар починається символами “/*” і завершується символами “*/”.
Програма, написана мовою Техно LIST, являє собою послідовність виразів та операторів.
Вирази
Вираз може складатися з наступних операцій (у порядку зменшення пріоритету) :
~, not, унарний – , унарний +
<<, >>
&, |, ^
*, /, %
+, -
==, !=, <, >, <=, >=
and
or
if-then-else
Операндами можуть бути:
Константи.
Локальні змінні.
Виклики стандартних функцій.
Виклики функцій користувача.
Підвирази в дужках.
Арифметичні операції:
Унарний мінус – зміна знаку;
Унарний плюс – пуста операція;
“+” – додавання;
“–“ – віднімання;
“*” – множення;
“/” – ділення;
“%” – ділення за модулем (обчислення залишку від ділення).
Побітові операції
’&’ – побітове “І”,
’|’ – побітове “АБО”,
’^’ – побітове “виключаюче АБО”,
унарне ’~’ – порозрядна інверсія,
’<<’ – зсув вліво на визначене число розрядів,
’>>’ – зсув вправо на визначене число розрядів (без збереження знаку).
Операції порівняння
Всі операції порівняння повертають 1, якщо умова виконується, інакше – 0.
’==’ – перевірка на рівність,
’!=’ – нерівність,
’<’ – менше,
’>’ – більше,
’<=’ – менше чи рівне,
’>=’ – більше чи рівне.
Логічні операції
and – 1, якщо обидва операнди не рівні 0, інакше 0. Якщо перший операнд рівний 0, то другий не обчислюється.
or – 1, якщо один з операндів не рівний 0, інакше 0. Якщо перший операнд не рівний 0, то другий не обчислюється.
унарний not – 1, якщо операнд рівний 0, інакше 0.
Іf-then-else
Синтаксис:
if вираз1 then вираз2
або
if вираз1 then вираз2 else вираз3.
Спочатку обчислюється вираз1, якщо він не рівний 0, обчислюється вираз2 і значення виразу2 є значенням цілого виразу if-then-else. Інакше, якщо є гілка else, то значенням всього виразу є значення виразу3, а якщо else немає, то значення виразу if-then-else прирівнюється до 0.
Оператори завершуються крапкою з комою.
Групування виразів у дужках
На відміну від інших мов у Техно LIST роль дужок розширена: в дужках можна писати не лише один вираз, але й послідовність виразів та операторів. Значенням такої послідовності є значення її останнього виразу.
Приклад:
a = a + (var sum=0; var i; for i=0 to SIZE(arr)-1 do sum = sum+arr[i]; sum) + 1;
Оператори
У послідовностях виразів можуть бути не лише вирази, але й оператори.
Список операторів:
return
while
for
break
continue
= (оператор присвоєння)
var
Оператор return
Синтаксис:
return {вираз}
Дія:
Вихід з функції Техно LIST. Значенням функції є вказаний вираз.
Оператор while
Синтаксис:
while вираз1 do вираз2
Дія:
Обчислюється значення виразу1, якщо воно рівне 0, то відбувається вихід з циклу.
Обчислюється вираз2.
Перехід до кроку 1.
Оператор for
Синтаксис:
Дія:
Вказаній змінній присвоюється значення виразу1.
Перевіряється умова: якщо значення змінної більше значення виразу2, то здійснюється вихід з циклу, якщо менше чи рівне – обчислюється вираз3.
До значення змінної додається 1.
Перехід до кроку 2.
Оператор break здійснює вихід з найближчого циклу.
Оператор continue здійснює перехід до наступної ітерації циклу (кроку 1 для while, кроку 3 для for) .
Оператор var призначений для визначення локальної змінної і присвоєння їй початкового значення. Якщо початкове значення не задане, воно вважається рівним 0.
Локальні змінні
Ім’я локальної змінної слід задавати за правилами формування ідентифікатора.
Локальні змінні можуть визначатися в будь-якому блоці, утвореному дужками. Областю видимості є блок, де вона визначена (починаючи від точки визначення), включаючи усі вкладені блоки. Визначення змінної з тим самим іменем в усіх вкладених блоках перекриває оголошення у зовнішньому блоці.
Спеціальні локальні змінні
Всередині функції Техно LIST визначена змінна ARGS, яка являє собою масив аргументів, що передаються функції. Доступ до аргументів здійснюється через звертання до елементів масиву.:
ARGS[0] – перший аргумент;
ARGS[1] – другий аргумент і т.д.
Індексування
Синтаксис:
ім’я [вираз],
де ім’я являє собою ім’я локальної змінної чи функції користувача.
Індексування починається з 0. Операція індексування визначена для масивів та рядків.
При використанні індексування в операторі присвоєння розмір масиву чи рядка коректується в міру необхідності, тому код
var Arr = LIST();
Arr[10] = 5;
створить масив з 11 елементів і присвоїть 11-ому елементу значення 5.
Виклик стандартних функцій має синтаксис:
Ідентифікатор (аргументи),
де аргументи – це послідовність виразів, відокремлених комами.
Типи даних
Існують 4 основні типи даних:
Ціле: 32-розрядне число зі знаком.
Дійсне: число з плаваючою крапкою (точність – 15 знаків, порядок – до +/- 308).
Рядок.
Масив.
Стандартні функції можуть повертати значення “розширених” типів, наприклад, CHAN() – посилання на канал, READVAL() – масив архівних значень каналу за певний проміжок часу, RTSTAT() – статистичні характеристики.
Порядок обчислень.
Вирази обчислюються в міру виникнення потреби в їхніх результатах. Значення обчислених підвиразів і функцій запам’ятовуються і, якщо це можливо, повторно не обчислюються.
Сервер документування
Існують два типи серверів документування: локальний і глобальний. Локальний може отримувати дані для документування тільки від одного МРЧ, з яким він з’єднується локально (не по мережі) і видавати документ лише на принтер. Глобальний сервер документування може працювати з усіма вузлами проекту, з’єднаними в локальну мережу, зберігати документ у файл і публікувати його на WEB-сервері.
Створення документів здійснюється за шаблонами, підготовленими у редакторі шаблонів, а час чи умова генерування, ім’я файлу шаблона, а також напрям виводу документа описуються у програмах документування – сценаріях.
Напрямом називається форма видачі документа. Можливі форми: створювані документи виводяться на принтер або зберігаються у файлі HTML-формату, або публікуються на WEB-сервері.
Найчастіше підготовка звітів прив’язується до астрономічного часу (наприклад, звіт генерується раз на добу, раз на місяць і т.д.). Для організації цього у сценаріях сервера документування задається дата і час підготовки документа. Дата у сценарії може бути відсутня. В такому випадку генерування документа буде здійснюватися кожен день у зазначений час.
Існує можливість настроїти генерування документа з необхідним періодом, наприклад, раз на 10 хв.
Будь-який монітор МРЧ у проекті може ініціювати генерування документа. Для цього при настройці сценарію треба вказати вузол, який керуватиме запуском сценарію, керуючий канал на цьому вузлі і контрольне значення.
Якщо величина каналу рівна контрольному значенню, то запускається генерування документа. Після цього сервер документування обнулює значення керуючого каналу.
Для можливості здійснити позачергове генерування документа в сервері документування передбачена можливість підготовки документа за командою оператора.
При генеруванні документа за командою оператора слід вибрати сценарій, що описує створення потрібного документа і натиснути спеціальну іконку на інструментальній панелі сервера документування.
Головний діалог сервера документування містить:
Головне меню;
Інструментальну панель;
Список запрограмованих сценаріїв;
Статус-рядок.
Головне меню містить розділи:
Сценарій;
Робота;
Вид;
Допомога
У меню Сценарій включені команди для роботи зі сценаріями, а також команда виходу з редактора:
Створити – створення нового сценарію.
Видалити видалення виділеного сценарію.
Настройка – редагування виділеного сценарію.
Вихід – завершення роботи сервера документування.
В меню Робота містяться команди керування виконанням сценаріїв. Вони реалізують наступні дії:
Призупинити – заборонити автоматичне виконання поточного сценарію.
Поновити – поновити автоматичне виконання поточного сценарію.
Запустити зараз – згенерувати документ за заданим у виділеному сценарії шаблоном і напрямами.
Надрукувати зараз – вивести на принтер документ, згенерований за шаблоном, заданим у виділеному сценарії.
Меню Вид призначене для управління зовнішнім виглядом вікна сервера документування. Воно містить наступні команди:
Панель інструментів – управління видимістю панелі інструментів;
Статус-рядок – управління видимістю статус-рядка.
Видимі елементи відображаються в меню із символом “(” лівіше від назви команди.
Меню Допомога дозволяє дізнатися про поточну реалізації сервера документування і увійти в довідкову систему.
Сервер документування має інструментальну панель, в яку внесені найбільш часто вживані команди. Ця панель має вигляд:
Сценарії – це програми документування. В них описується час чи умова генерування документа, який для цього використати файл шаблона, а також напрям виводу документів.
Висновок: на лабораторній роботі я ознайомився з редактором шаблонів як засобу документування та засвоїв техніку документування технологічної інформації в Trace Mode