- •Інформаційні технології -1. Основи інформаційних технологій та програмування
- •03056, Київ-56, просп.. Перемоги, 37
- •Передмова
- •Основні розділи пояснювальної записки.
- •Алгоритм (блок-схеми).
- •3. Алгоритм (блок-схема).
- •3.1. Блок-схема програми upr.
- •1.5.Текст програми.
- •1.6.Контрольний приклад.
- •1.7. Висновки.
- •1.8. Список використаної літератури.
- •Список використаної літератури
- •Рейтинг оцінювання розрахунково-графічної роботи.
- •Післямова.
- •Текст програми……………………………………………………….8
- •Контрольний приклад………………………………………………..9
- •Алгоритм програм (блок-схеми)
- •Опитування поточного часу
- •Текст програми
- •Контрольний приклад
- •5. Висновки
- •Список використаної літератури
-
Текст програми……………………………………………………….8
-
Контрольний приклад………………………………………………..9
Висновки………………………………………………………………….10
Список використаної літератури………………………………………..10
ВСТУП
Темою даної роботи є «Програмування процесів в реальному масштабі часу»
Завдання: написати програму, яка імітує опитування показань двох приладів. Перший прилад – працює в діапазоні [0.00; 100.00], другий - [0.00; 100.00]. Дискретність, з якою відбувається опитування – в секундах вводиться в діалоговому режимі з клавіатури. Якщо в процесі опитування значення показань першого приладу – більше 85 – виводиться повідомлення жовтим кольором про відключення приладу, якщо по другому показання більше 90 – виводиться аналогічне повідомлення – і опитування приборів продовжується. Якщо ж відключенні будуть обидва прилади – червоним кольором виводиться повідомлення про аварію, включається звуковий сигнал і програма завершує роботу.
Мета даної роботи – навчитись програмувати задачі в реальному масштабі часу. Задача, подібна до моєї, ставиться і розв’язується в АСК ТП на теплових та атомних електричних станціях, коли в реальному масштабі часу керуюча програма в визначеній послідовності запускає програми опитування датчиків, визначення техніко-економічних показників роботи блоків (15-хвилинних, годинних, змінних,добових), регістрації аварійних ситуацій, задач оптимізації ведення технологічного процесу, тощо. Звичайно, задача, яку я рзв’язую, - студентська робота, але в ній відображені деякі основні аспекти побудови керуючих програм АСК ТП ТЕС та АЕС.
Програма, яка розв’язує поставлену задачу, реалізована на алгоритмічній мові високого рівня – Паскаль. Програма звертається до стандартної бібліотеки DOS, а саме – до процедури GetTime, яка визначає поточний час в системі в годинах, хвилинах, секундах,міллісекундах. Використовується і бібліотека Crt, а саме процедури встановлення кольору вивода
повідомлень – TextColor, очистки екрану ClrScr, переведення курсору в
певну частину вікна екрана GoToXY, визначення положення курсора в вікні екрана дисплейного модуля WhereX, WhereY.
Показники приборів імітуються за допомоги процедури Random(I),
-3-
Random – відповідно до поставленої задачі.
-
ВХІДНІ ТА ВИХІДНІ ДАНІ
Вхідними даними заданої задачі є: поточний час в годинах, хвилинах, секундах. Ці значення вводяться програмно, як результат роботи процедури GetTime, тип даних – однаковий: Word.
Показники двох гіпотетичних приборів, які розглядаються в нашій системі – теж можна віднести до вхідних. Їх значення визначається програмно, як результат роботи процедури Random(I), Random. Значення складаються з цілої частини, яка генерується процедурою Random(I) (тип Word) і дробової, яка генерується процедурою Random (тип Real).
Вихідними даними є показники приборів (вивід згенерованих випадкових значень на екран): тип Real, а також - стан прибору після опросу: тип String, стан системи в цілому: тип String.
-
Алгоритм програм (блок-схеми)
В програмі опитування поточного часу ведеться за процедурою GetTime. Дискретність опитування в секундах вводиться в діалоговому режимі на початку роботи програми. Перший запуск визначається за формулою:
PS=S-DZ_S (1), де
S - значення часу (секунд), яке визначено в момент запуску програми за процедурою GetTime.
Наступні запуски визначаються при повторних опитуваннях часу, коли поточне значення часу (секунди – S) мінус попереднє дорівнює значенню дискретності опросу. Можлива ситуація, коли попереднє значення часу дорівнюють 3 год 18 хв 59 сек, а наступне має бути 3 год 18 хв 01 сек (при дискретності опросу 2 секунди), тобто різниця поточного значення секунд міну попереднє – менше нуля. Тому формула, за якою обирається час наступного опитування показань приборів визначається:
D=(PS+DS_S)/60 (2).
Якщо D = S - настав час опросу приборів, якщо ні – очікується наступний час опросу (коли рівність (2) дорівнювала б S).
Відомо, що функція Random генерує випадкові дійсні числа в межах від 0.00 до 0.99, а функція Random(I) – випадкові цілі числа в межах від 0 до I-1. В програмі значення показань приборів, які визначаються при опитуванні мають бути в межах від 0.00 до 100.00, а тому – визначаються як випадкові числа за формулою:
P=Random+Random(100)+Random(2)*0.01 (3)
З формули (3) мінімальне значення показника прибору дорівнює:
Pmin = 0 + 0 + 0*0.01 = 0.
З формули (3) максимальне значення показника прибору дорівнює:
Pmax = =0.99 + 99 + 1*0.01 = 100
1
Початок (W)
2
START
6
11
Вихід з програми?
13
Так
6
12
6
16
14
3
Ні
Кінець