Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР_Для_ТС!!.docx
Скачиваний:
4
Добавлен:
08.12.2018
Размер:
104.82 Кб
Скачать
  1. Текст програми……………………………………………………….8

  1. Контрольний приклад………………………………………………..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 – відповідно до поставленої задачі.

  1. ВХІДНІ ТА ВИХІДНІ ДАНІ

Вхідними даними заданої задачі є: поточний час в годинах, хвилинах, секундах. Ці значення вводяться програмно, як результат роботи процедури GetTime, тип даних – однаковий: Word.

Показники двох гіпотетичних приборів, які розглядаються в нашій системі – теж можна віднести до вхідних. Їх значення визначається програмно, як результат роботи процедури Random(I), Random. Значення складаються з цілої частини, яка генерується процедурою Random(I) (тип Word) і дробової, яка генерується процедурою Random (тип Real).

Вихідними даними є показники приборів (вивід згенерованих випадкових значень на екран): тип Real, а також - стан прибору після опросу: тип String, стан системи в цілому: тип String.

  1. Алгоритм програм (блок-схеми)

В програмі опитування поточного часу ведеться за процедурою 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

Ні

Кінець