Автоматизоване робоче місце реєстрації й документування комплексу засобів автоматизації 2

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст

Реферат

Основна частина

Введення

1. Аналіз концепції побудови комплексу засобів автоматизації

1.1 Загальна характеристика систем управління

1.2 Структурна схема комплексу засобів автоматизації

1.3 Опис функціонування АСУ комплексу засобів автоматизації

1.4 Функціональне призначення АРМ РД

1.5 Вимоги, що пред'являються до АРМ РД

2. Обгрунтування вибору технічних засобів АРМ РД

2.1 Можливість функціонувати в рамках автоматизованої системи

2.2 Вимоги щодо забезпечення надійності

2.3 Вимога цілодобової роботи

2.4 Робота в реальному масштабі часу

2.6 Зберігання та обробка даних

2.7 Можливість видачі інформації на принтер і екран монітора АРМ РД

3. Структура бази даних

3.1 Алгоритм обробки інформації

3.1.1 Організація інформаційного обміну в системі

3.2 Обгрунтування необхідності організації бази даних

3.2.1 Поняття бази даних

3.2.2 Переваги інтеграції даних

3.2.3 Проблеми інтеграції даних

3.2.4 Необхідність організації БД на АРМ РД

3.4 Вибір СУБД

3.4.1 Виділення СУБД - претендентів

4. Структура комплексу програм АРМ РД

4.1 Обгрунтування структури комплексу програм

4.1.1 ПЗ загальносистемного призначення

4.1.2 ПЗ спеціального призначення

4.1.3 Вимоги, що пред'являються до спеціального ПЗ АРМ РД

4.2 Програмна реалізація

4.3 Склад програм

4.4 Опис програм

4.5 Оцінка результатів роботи програм

Організаційно-економічна частина

Введення

1. Планування розробки з використанням мережевого графіка

2. Розрахунок вартості розробки

2.1 Розрахунок статті "матеріали, покупні вироби, напівфабрикати"

2.2 Розрахунок основної заробітної плати за темою

2.3 Розрахунок додаткової заробітної плати

2.4 Розрахунок відрахувань на соціальні потреби

2.5 Розрахунок накладних витрат

2.6 Розрахунок договірної ціни

3. Економічна ефективність розробки

4. Основні розділи господарського договору

Висновок

Охорона праці і техніка безпеки

Введення

1. Характеристика приміщення і чинники, які діють на оператора в процесі його праці

2. Розрахунок освітлення робочого місця оператора

3. Розрахунок інформаційного навантаження

Висновки

Громадянська оборона

Введення

1. Теоретична частина

1.1 Оцінка впливу ударної хвилі на об'єкт

1.1.1 Характеристики ударної хвилі

1.1.2 Вражаючі фактори ударної хвилі

1.2 Оцінка пожежної обстановки

1.2.1 Вплив ступеня вогнестійкості будівель і споруд на розвиток пожежної обстановки

1.2.2 Вплив категорій пожежонебезпеки виробництва на розвиток пожежної обстановки

1.2.3 Вплив відстаней між будівлями на поширення пожеж

1.2.4 Вплив погодних умов на поширення пожеж

1.2.5 Оцінка впливу теплового імпульсу вогняної кулі на пожежну обстановку

1.2.6 Оцінка впливу вторинних вражаючих факторів на пожежну обстановку

1.2.7 Вплив пожежі на людей і елементи об'єкта

1.3 Оцінка стійкості елементів об'єкта

2. Розрахункова частина

2.1 Вихідні дані

2.2 Розрахунок

2.2.1 Оцінка впливу повітряної ударної хвилі на елементи об'єкта

2.2.2 Оцінка пожежної обстановки

3. Пропозиції щодо захисту

3.1 Віднесення сховища на безпечну відстань від будівлі

3.2 Зменшення маси зберігається пропану

3.3 Заходи щодо недопущення аварійної ситуації на сховищі пропану

3.4 Заходи щодо захисту адміністративного будинку

3.5 Заходи щодо індивідуальний захист оператора

Ергономіка

Введення

1. Теоретична частина

1.1 Базовий підхід до конструювання робочого місця оператора

1.2 Поняття робочого місця і робочої зони оператора

1.3 Формування типового складу робочої зони

1.3.1 Організація простору робочого місця оператора

1.3.2 Умови, яким має задовольняти робоча зона

2. Реалізація ергономічної оцінки робочого місця оператора

2.1 Основні ергономічні вимоги, які пред'являються до дисплея

2.2 Основні ергономічні вимоги, які пред'являються до клавіатури

2.3 Розміщення крісла оператора в робочій зоні

2.4 Розміщення пристроїв документування

2.5 Розташування робочого місця оператора в приміщенні

Висновок

Висновок

Організаційно-економічна частина

Бізнес-план розробки

Додаток 1

Список літератури

Реферат

Дана розрахунково-пояснювальна записка складається з 5-ти основних розділів, які в цілому займають 163 друкованих аркуша. До складу п'яти основних розділів входять: спеціальна частина дипломного проекту, організаційно-економічна частина, розділи з охорони праці та техніки безпеки, цивільної оборони та ергономіки.

Текст розрахунково-пояснювальної записки супроводжується малюнками і таблицями. Розрахунково-пояснювальна записка містить 30 рисунків, з них 7 малюнків формату А1 та 8 таблиць.

У дипломному проекті на тему: "Автоматизоване робоче місце реєстрації й документування комплексу засобів автоматизації" розроблені програми обробки запитів для 3-х форм представлення байтів стану пристроїв, що входять в комплекс засобів автоматизації.

Програми здійснюють формування та обробку запитів для кожної з 3-х форм представлення байтів стану і видачу результатів запиту у файл. Програми працюють спільно з ПЗ, що здійснює видачу результатів запиту на екран монітора і принтер. Опис алгоритмів програм і самих програм, а також оцінка результатів роботи програм наведені в розрахунково-пояснювальній записці. Програма написана на мові Borland C + +, компіляція та налагодження проведені в системі програмування С + +.

Дана програма входить до складу програмного комплексу, що розробляється науково-технічним відділом, в якому створювався дипломний проект.

Основна частина

Введення

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

Положення в корені змінилося з появою електронних обчислювальних машин (ЕОМ). Перші ЕОМ використовувалися як великі автоматичні арифмометри. Принципово новий крок був здійснений, коли від застосування ЕОМ для вирішення окремих завдань перейшли до їх використання для комплексної автоматизації тих чи інших закінчених ділянок діяльності людини по переробці інформації.

Одним з перших прикладів подібного системного застосування ЕОМ у світовій практиці були так звані адміністративні системи обробки даних: автоматизація банківських операцій, бухгалтерського обліку, резервування і оформлення квитків і т.п. Вирішальне значення для ефективності систем подібного роду має та обставина, що вони спираються на автоматизовані інформаційні бази. Це означає, що в пам'яті ЕОМ постійно зберігається інформація, потрібна для вирішення тих завдань, на які розрахована система. Вона і складає вміст інформаційної бази відповідної системи.

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

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

У міру свого подальшого розвитку адміністративні системи обробки даних переростають в автоматизовані системи управління (АСУ) відповідними об'єктами, в яких, як правило, не обмежуються однією ЕОМ, а в складі двох і більше ЕОМ об'єднують в обчислювальний комплекс (ВК).

Автоматизована система управління (АСУ) - це человекомашінная система, в якій за допомогою технічних засобів забезпечується збір, накопичення, обробка інформації, формулювання оптимальної стратегії управління певними компонентами і видача результатів людині чи групі людей, що приймають рішення з управління. Під оптимальною стратегією розуміється стратегія, яка мінімізує або максимізує деякі характеристики об'єкта.

З метою забезпечення можливості взаємодії людини з ЕОМ в інтерактивному режимі з'являється необхідність реалізувати в рамках АСУ так зване АРМ - автоматизоване робоче місце. АРМ являє собою сукупність програмно-апаратних засобів, що забезпечують взаємодію людини з ЕОМ, тобто такі функції як:

можливість введення інформації в ЕОМ;

можливість виведення інформації з ЕОМ на екран монітора, принтер або інші пристрої виводу (в даний час цей перелік досить широкий - графобудівники, і т.п.).

Так звані інтелектуальні АРМ в свою чергу також містять у своєму складі ЕОМ, тим чи іншим способом приєднану до центральної ЕОМ (ВК) АСУ. Пристрої введення також повинні забезпечувати широкий спектр інформації, що вводиться: текстовій, координатної, факсимільного і т.д. Тому АРМ оснащуються при необхідності універсальної або спеціальної клавіатурою, пристроями введення координатної інформації (типу миші), різного роду сканерами і т.д.

З метою підвищити спектр форм представлення інформації, що виводиться з ЕОМ, АРМ оснащується кольоровими моніторами, засобами створення та управління звуковими сигналами аж до можливості створення та відтворення мовних сигналів.

1. Аналіз концепції побудови комплексу засобів автоматизації

1.1 Загальна характеристика систем управління

Система управління - це сукупність керованого об'єкта або процесу і пристрої керування, до якого належить комплекс засобів прийому, збору і передачі інформації і формування сигналів і команд. При цьому дія системи управління спрямоване на поліпшення та підтримку роботи процесу або об'єкта. У деяких випадках без АСУ взагалі неможливе вирішення завдання в силу складності процесу управління. Керований об'єкт - це елемент системи, який для нормального функціонування потребує систематичного контролі та регулюванні. Керуючий об'єкт - елемент системи, який забезпечує спостереження за діяльністю керованого об'єкта, виявляє можливі відхилення від заданої програми і забезпечує своєчасне приведення його до нормального функціонування.

Всі системи управління, з точки зору логіки їх функціонування, вирішують три завдання:

Збір інформації про керований об'єкт;

Обробка інформації;

Видача керуючих впливів у тій чи іншій формі.

Залежно від виду системи, управління являє собою впливу на фізичному або інформаційному рівні, спрямовані на підтримку або поліпшення функціонування керованого об'єкта відповідно до наявної програмою або метою управління.

Розрізняють два основні типи систем управління:

Системи управління технологічними процесами в широкому сенсі цього слова, призначені для безпосереднього управління виробничими процесами на фізичному рівні процесу;

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

Головна відмінність між ними полягає в характері об'єкта управління. У першому випадку це всілякі установки, прилади, верстати та інше, у другому - перш за все люди.

Інша відмінність між зазначеними системами полягає у формі передачі інформації. Якщо в системах управління технологічними процесами основною формою передачі інформації є різного роду сигнали, то в системах організаційного управління це документи. Чітку межу між двома розглянутими типами систем провести неможливо, найчастіше передача інформації здійснюється як за допомогою документів, так і за допомогою сигналів.

Автоматизація систем управління здійснюється за допомогою обчислювальної техніки. У залежності від ступеня участі людини в управлінні, системи управління можна класифікувати наступним чином:

Автоматичні;

Напівавтоматичні;

Автоматизовані.

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

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

У першому випадку ЕОМ використовується, як правило, для вирішення окремих періодично повторюваних трудомістких завдань. Збір інформації ведеться вручну, так само здійснюється і підготовка документів з керуючими впливами. Подібна система може бути названа системою обробки даних. Звернення користувачів до систем обробки даних найчастіше призводить до оновлення інформації; висновок інформації може зовсім бути відсутнім або являти собою результат програмної обробки збережених відомостей, а не самі відомості. Прикладом системи обробки даних може бути система ощадного банку міста. Вона містить відомості про вклади жителів міста, більшість обробок банківської інформації передбачає оновлення сум вкладів, розрахунок відсотків, підведення підсумків за певний період роботи й т.п.

У другому випадку основна інформація про стан керованого об'єкта збирається автоматично машиною (у загальному випадку - обчислювальним центром). ЕОМ переробляє інформацію, що надходить і в тому чи іншому вигляді готує вихідну документацію, після чого виноситься рішення про вплив на об'єкт. Автоматизовані системи управління класифікують також залежно від виду видається ними вихідний документації. Остання може бути представлена ​​у вигляді:

Переробленої, упорядкованої сукупності відомостей про керований об'єкт. На підставі їх людина (або група людей) приймає рішення про характер впливу на об'єкт. Це властиво системі обробки даних, а не власне автоматизованій системі.

Сукупності рекомендацій (варіантів рішення) щодо характеру впливу на керований об'єкт. Остаточне рішення в даному випадку приймає людина. Така реалізація найбільш типова для автоматизованих систем управління.

1.2 Структурна схема комплексу засобів автоматизації

АСУ являє собою комплекс засобів автоматизації (КСА), що виконує ряд функцій по обробці інформації.

Структурна схема КСА представлена ​​на рис.1.

На структурній схемі позначені наступні пристрої (компоненти КСА):

ВК - обчислювальний комплекс;

канали зв'язку, по яких надходить інформація від зовнішніх джерел (надалі позначаються - КС1, КС2, КС3);

АРМ1, ..., АРМ6 - спеціалізовані автоматизовані робочі місця з функціями, характерними для кожного з них, під'єднані до ВК по стику С1;

Ш1, ..., Ш3 - спеціальні пристрої;

ПУ-1, ..., ПУ-3 - пульти управління;

І-ПП, І-ВП - шафи первинного та вторинного електроживлення.

Автоматизоване робоче місце реєстрації й документування (АРМ РД) реалізовано на базі двох персональних комп'ютерів (ПК1, ПК2) і підключені до ВК по стику С2.

1.3 Опис функціонування АСУ комплексу засобів автоматизації

Представлений у дипломному проекті КСА являє собою автоматизовану систему керування інформаційними процесами, призначену реалізувати наступні функції:

прийом та обробку інформації, цілодобово надходить по КС у КСА від зовнішніх джерел;

формування і передачу необхідної інформації для видачі по КС на зовнішні пристрої;

обробку інформації, цілодобово надходить від пристроїв системи, таких як АРМ1 ... АРМ6, Ш1 ... Ш3, ПУ-1 ... ПУ-3, І-ПП, І-ВП;

формування і передачу необхідної інформації про використання системи.

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

Основним завданням автоматизованої системи є зовсім не зменшення кількості управлінського персоналу (це завдання допоміжна і вирішується вона не завжди). Основною перевагою такої системи є те, що завдяки їй підвищується якість функціонування керованого об'єкта (приблизно на 15-25%).

Незалежно від виду інформації, яка повинна бути оброблена, і типу устаткування, АСУ інформаційними процесами виконує такі основні операції:

прийом вихідної інформації;

обробку інформації;

отримання і аналіз результатів;

видачу керуючих впливів.

Збір інформації в АСУ проводиться автоматично - у ВК передається інформація від пристроїв системи і інформація від зовнішніх джерел, що надходить по каналах зв'язку КС1, КС2, КС3. ВК також передає інформацію, призначену для пристроїв системи і зовнішніх джерел.

Процес обробки інформації, що надходить виконується у ВК автоматично за заздалегідь встановленим, послідовно і логічно розробленими алгоритмами. У ВК також надходить інформація, що управляє зі спеціальних автоматизованих робочих місць АРМ1 ... АРМ6. Після обробки у ВК спеціальними алгоритмами, вона видається зовнішніх пристроїв, або пристроїв КСА системи.

Так як АСУ інформаційними процесами - це человекомашінная система, то для організації взаємодії людина - КСА необхідно забезпечити можливість спілкування людини з системою. Для цього у складі КСА передбачені автоматизовані робочі місця АРМ1-АРМ6, а також АРМ РД.

1.4 Функціональне призначення АРМ РД

Як було зазначено вище, з метою забезпечення можливості взаємодії людини з системою, з метою доступу до результатів реєстрації інформації, з'являється необхідність реалізувати в рамках АСУ АРМ РД, що представляє собою сукупність програмно-апаратних засобів, що забезпечують взаємодію людини з ЕОМ в інтерактивному режимі.

Вся інформація, що циркулює в системі, в процесі управління функціонуванням технічних засобів системи і отримання результатів реєстрації інформації після обробки у ВК спеціально розробленими алгоритмами у формалізованому вигляді надходить в АРМ РД. АРМ РД, у свою чергу, реалізує такі функції:

прийом даних, цілодобово надходять від ВК;

видачу інформації у ВК;

реєстрацію інформації, що надійшла в пам'яті ЕОМ;

документування даних, розміщених в інформаційних масивах.

Реєстрація - це збереження в пам'яті ЕОМ інформації, що надходить у систему або циркулює в системі в деяких інформаційних масивах, організованих як бази даних. Також необхідно забезпечити збереження всієї інформації про технічний стан пристроїв, що надходить у систему або циркулює в системі.

Документування - це по суті подання на екрані монітора або на принтері вибірки з цих інформаційних масивів (баз даних) в заданій, зручною для подальшого аналізу, формі.

Зберігання інформації в пам'яті ЕОМ у вигляді інформаційних масивів і можливість подання вибірок з цих інформаційних масивів на екран монітора і принтер для забезпечення успішної взаємодії людина-система - завдання реєстрації і документування інформації, які були поставлені перед творцями АРМ РД.

1.5 Вимоги, що пред'являються до АРМ РД

При виборі технічних засобів для реалізації АРМ РД і розробці ПЗ, необхідно врахувати вимоги, які пред'являються до АРМ РД:

можливість функціонувати в рамках автоматизованої системи;

цілодобова робота;

робота в реальному масштабі часу;

забезпечення вимог до часу реакції системи;

реєстрація всієї інформації, що циркулює в системі;

зберігання даних про стан пристроїв системи;

можливість видачі інформації на принтер і екран монітора АРМ РД у формі, що забезпечує ефективну роботу оператора АРМ РД;

забезпечення високої надійності як технічних засобів, так і ПЗ АРМ РД;

забезпечення взаємодії розроблюваного ПЗ з компонентами автоматизованої системи.

Представлені вище вимоги до АРМ РД можуть бути реалізовані за допомогою вибору технічних засобів і за допомогою створення програмного забезпечення, що відповідає вимогам АРМ РД.

Отже, для АСУ інформаційними процесами, з метою автоматизації збору і обробки даних, необхідно спроектувати програмне забезпечення (ПЗ) АРМ РД, задовольняє функціональному призначенню АРМ РД і вибрати технічні засоби, що задовольняють функціональним вимогам АРМ РД.

2. Обгрунтування вибору технічних засобів АРМ РД

2.1 Можливість функціонувати в рамках автоматизованої системи

Для реалізації АРМ РД обрана персональна ЕОМ IBM PC / AT, обладнана двома послідовними портами RS 232 (стик С2). При реалізації АРМ РД можливо було наявними у ПК засобами (два порти RS 232) підключитися по стику С2 до спеціалізованого ВК, без доробок ПК. Для підключення ВК був розроблений спеціальний адаптер. (Див. рис.2).


2.2 Вимоги щодо забезпечення надійності

Для підвищення надійності АРМ РД реалізовано на базі 2-х ПК в режимі паралельної роботи. Надійність забезпечується схемою підключення 2-х ПК до ВК, а також режимом паралельної роботи, при якому на кожній з ПЕОМ працює одна й та ж програма, і надходить одна й та ж інформація з ВК.

2.3 Вимога цілодобової роботи

Вимога цілодобової роботи забезпечується якістю виконання апаратури, - ЕОМ IBM PC / AT може цілодобово працювати з невеликими доопрацюваннями конструктиву. Перш за все це стосується дотримання норм теплового режиму роботи. Також передбачено додаткове джерело електроживлення, що автоматично включається у разі виходу з ладу основної системи живлення.

2.4 Робота в реальному масштабі часу

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

Робота в системі реального часу забезпечується:

швидкодією ПК (обраний процесор Intel 80386 з необхідною тактовою частотою, рівної 33 МГц),

пропускною здатністю тракту передачі між ПК і ВК (швидкість 1200 бод),

наявністю буфера для повідомлень на вході і виході ПК,

видачею документів на друк в "фоновому" режимі, не знижуючи можливостей по прийому та обробці інформації, щоб уникнути її втрати.

2.5 Забезпечення вимог до часу реакції системи

Цю характеристику можна поліпшити використанням контролера дискової подсісітеми IDE, установкою прграммное кешу, або використанням контролера диска з апаратним кешем обсягом 1Мб і вище.

2.6 Зберігання та обробка даних

Для зберігання даних, що надходять на АРМ РД, ПЗ загальносистемного призначення, ПЗ спеціального призначення необхідний мінімальний розмір дискової пам'яті 80 МБ, а також знімні магнітні носії інформації (дискети) для організації архіву даних.

2.7 Можливість видачі інформації на принтер і екран монітора АРМ РД

Для забезпечення можливості відображення інформації обидва ПК повинні бути укомплектовані кольоровими моніторами VGA і принтерами EPSON LX-100.

3. Структура бази даних

3.1 Алгоритм обробки інформації

3.1.1 Організація інформаційного обміну в системі

Після того як вимоги до системи визначені і в основному зумовлений процес, починається визначення вимог до вхідних даних, джерел даних і їхніх формах. Не менш важливим за своїм значенням є визначення форми для вихідної інформації, яка в тій чи іншій мірі зумовлює процес, метод і вимоги до вхідних даних.

В АРМ РД для обміну інформацією з ВК використовується стандартний інтерфейс RS232 (по стику С2), згідно з яким інформація передається у вигляді повідомлень змінної довжини (слів). Повідомлення складається з 2-х частин - службової та інформаційної. ПЗ АРМ РД використовує тільки інформаційну частину, т.к ВК адресує повідомлення тільки для АРМ РД. Надалі буде застосовуватися і іншого, прийнятого для цієї системи назву повідомлення, - кодограмм обміну, або просто кодограмм.

Кодограмм, які циркулюють у системі, можуть містити в собі інформацію різного роду - це може бути розпорядження адміністратора, директора, тобто керуючі впливу, які мають місце в АСУ. Крім того, в систему приходять кодограмм з КС. Всі кодограмм, які циркулюють у системі, мають формат у рамках заздалегідь обумовленого Протоколу інформаційного обміну, який є однією зі складових вихідних даних на розробку системи.

З точки зору дипломного проекту інтерес представляють кодограмм, що відображають стан пристроїв системи, або інформацію функціонального контролю.

Функціональний контроль (ФК) - це контроль працездатності пристроїв системи та виявлення несправностей, що виникають в процесі роботи. Можна сказати, що пристрої, що входять до КСА, охоплені алгоритмом функціонального контролю. Це означає, що в кодограмм обміну окремі поля, біти або групи полів відображають поточний стан пристрою з різним ступенем деталізації. Кодограмм формується і передається на АРМ РД при зміні статусу пристрою в ту або іншу сторону - було справно, стало несправне, було несправне - стало справно, тобто при будь-якій зміні статусу пристрою. Це зміна виявляється вбудованими в пристрій програмно-технічними засобами, які і формують кодограмм, що надходить від пристрою.

Кодограмм обміну містять у собі інформацію про стан системи, наприклад:

несанкціонований доступ (НСД) до пристроїв системи;

несанкціонований доступ до оперативної пам'яті (НСД ВП);

нав'язування неправдивої інформації (нли);

а також про стани технічних пристроїв, таких як:

обмін інформацією між пристроями системи;

збій в роботі пристроїв, КС, порушення зв'язку з пристроєм, тощо;

інформації функціонального контролю (ФК);

інформації байтів стану (БС) пристроїв.

По виду кодограмм обміну ПЗ АРМ РД визначає, звідки прийшла кодограмм.

Вид кодограмм обміну між ВК і АРМ РД представлений нижче.

Кодограмм обміну між ВК і АРМ РД.

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

слова

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

слово

Лічильник збоїв

(Двійковий код)

Ознака

Печатки

Годинники

(Двійковий код)

1

слово

Хвилини (двійковий код)

Секунди (двійковий код)

2

слово

0-й байт кодограмм

1-й байт кодограмм

3

слово

2-й байт кодограмм

Третій байт кодограмм

4

слово

4-й байт кодограмм

5-й байт кодограмм

5

слово

6-й байт кодограмм

7-й байт кодограмм

Рис.3. Кодограмм реєстрації № 1.

Значення поля "Лічильник збоїв" (11-15 розряди нульового слова) містить наступну інформацію: від несправного пристрою надходять кодограмм у ВК по стику С1. Поки пристрій несправний, кодограмм, що містять одну і ту ж інформацію, будуть надходити у ВК. Оскільки інформація в кодограмм не змінювалася, то програми обробки інформації (кожна для свого пристрою) виявивши, що точно така ж кодограмм вже є в черзі на обслуговування, роблять всього навсього збільшення лічильника цих надійшли однакових кодограмм. Ці лічильники розташовані в полі кодограмм з ім'ям "лічильник збоїв" . Тому, коли кодограмм буде взята на обслуговування з вхідної черги, вона може містити в собі значення "лічильника збоїв" відмінне від 1. Значення цього лічильника, крім того, дає можливість аналізувати ступінь завантаження ВК і якість обслуговування в "пікових" ситуаціях, при максимальній завантаженні ВК.

З 2-го по 5-е слово кодограмм реєстрації № 1 розташовується наступна інформація:

інформація обміну по КС1, КС2, КС3;

інформація обміну між Ш1, Ш2, Ш3 і ВК;

збійна інформація обміну по КС1, КС2, КС3;

збійна інформація між Ш1, Ш2, Ш3 і ВК;

інформація про нли.

Поле "Ознака друку" (5-9 розряди 1-го слова кодограмм реєстрації № 1) визначає, від якого пристрою прийшла інформація.

№ № розрядів


Значення поля "Ознака друку"

9

8

7

6

5


0

0

0

0

0

Інформація від КС1

0

0

0

0

1

Інформація від КС2

0

0

0

1

0

Інформація від КС3

0

0

0

1

1

Інформація від Ш1

0

0

1

0

0

Інформація від Ш2

0

0

1

0

1

Інформація від Ш3

0

0

1

1

0

Збій від КС1

0

0

1

1

1

Збій від КС2

0

1

0

0

0

Збій від КС3

0

1

0

0

1

Збій від Ш1

0

1

0

1

0

Збій від Ш2

0

1

0

1

1

Збій від Ш3

0

1

1

0

0

Інформація в КС1

0

1

1

0

1

Інформація в КС2

0

1

1

1

0

Інформація в КС3

0

1

1

1

1

Інформація на Ш1

1

0

0

0

0

Інформація на Ш2

1

0

0

0

1

Інформація на Ш3

1

0

0

1

0

Інформація нли

Рис.4. Значення поля "Ознака друку"

Загальний вигляд кодограмм реєстрацію № 2 представлений на рис.5.

слова

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

слово

0

Ознака друку

Годинники

(Двійковий код)

1

слово

Хвилини (двійковий код)

Секунди (двійковий код)

2

слово

Позиційний № ​​зовнішнього пристрою


3

слово

0

Позиційно. № зовнішнього пристрої

4

слово

Код причини відсутності зв'язку по 3-му каналу

Код типу друку по НСД та ФК

5

слово

Код причини відсутності зв'язку по 2-му каналу

Код причини відсутності зв'язку по 1-му каналу

Рис.5. Кодограмм реєстрацію № 2.

За допомогою цієї кодограмм здійснюється реєстрація:

інформації ФК (функціонального контролю);

інформації НСД;

інформації НСД ВП;

інформації БС (байтів стану) пристроїв.

Значення поля "Ознака друку" (5-9 розряди 1-го слова)

10011 - реєстрація НСД, 10101 - реєстрація НСД ВП,

10100 - реєстрація ФК, 10110 - реєстрація БС

Реєстрація НСД (ознака друку = 10011).

У молодшому байті 4-го слова кодограмм при реєстрації НСД записується код типу друку, що приймає наступні значення (Рис.6):


№ № розрядів


Текст НСД

N \ P

7

6

5

4

3

2

1

0


1

0

0

0

0

0

0

0

1

НСД

2

0

0

0

0

0

0

1

0

НСД знято

3

0

0

0

0

0

0

1

1

НСД дозволено

4

0

0

0

0

0

1

0

0

Дозвіл НСД знято

5

0

0

0

0

0

1

0

1

Дозволена НСД

6

0

0

0

0

0

1

1

0

Дозволена НСД знято

Рис.6. Значення поля "Код типу друку по НСД"

У 2-му слові і [0-7] розряд 3-го слова передається позиційний код пристроїв, по яких надійшло повідомлення зазначене "Кодом типу друку". Наявність "1" ("0") у відповідному розряді вказує, що за даним пристрою надійшло (не надійшло) повідомлення. Відповідність розрядів пристроїв показано нижче (рис.7, рис.8).

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Рис.7. 2-е слово

0-Ш15-АРМ110-15-

1-Ш26-11-

2-7-АРМ212-АРМ5

3-8-АРМ313-АРМ6

4-Ш39-АРМ414-

Рис.8. Третій слово

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0-АРМ РД 12-І-ПП

1-АРМ РД 23-І-ВП

Реєстрація результатів ФК (ознака друку = 10100).

У 4-му слові кодограмм при реєстрації ФК записується код типу друку, що приймає наступні значення (мал. 9).


№ № розрядів


Текст ФК

N \ P

7

6

5

4

3

2

1

0


** 1

0

0

0

0

0

0

0

1

Пристрій несправне по ФК

** 2

0

0

0

0

0

0

1

0

Несправність по ФК знята

** 3

0

0

0

0

0

0

1

1

Блокування по ФК

** 4

0

0

0

0

0

1

0

0

Блокування по ФК знята

- 5

0

0

0

0

0

1

0

1

ФК КСА, несправні Ш1, Ш2, Ш3

- 6

0

0

0

0

0

1

1

0

ФК КСА, несправні АРМ1, ... АРМ6

- 7

0

0

0

0

0

1

1

1

ФК КСА, несправні АРМ-РД1, АРМ-РД2

- 8

0

0

0

0

1

0

0

0

ФК КСА, несправні ІП-П, ІВ-П

- 9

0

0

0

0

1

0

0

1

ФК КСА, несправні ПУ1, ... ПУ3

- 10

АБН

0

1

0

1

0

ФК з АБ № х немає зв'язку

- 11

АБН

0

1

0

1

1

ФК з АБ № х зв'язок відновлено

- 12

0

0

0

0

1

1

0

0

ФК, немає зв'язку по КС1, КС2, КС3

- 13

0

1

0

0

1

0

1

1

ФК, зв'язок по КС1, КС2, КС3 відновл.

- 14

0

1

0

0

1

1

0

0

ФК, з ПУ1 немає зв'язку

- 15

0

1

0

1

1

0

1

1

ФК, з ПУ1 зв'язок відновлено

- 16

0

1

0

1

1

1

0

0

ФК, з ПУ2 немає зв'язку

- 17

0

1

0

1

1

1

0

1

ФК, з ПУ2 зв'язок відновлено

- 18

0

1

0

1

1

1

1

0

ФК, з ПУ3 немає зв'язку

- 19

0

1

1

0

0

0

0

0

ФК, з ПУ3 зв'язок відновлено

Рис. 9. Значення поля "Код типу друку по ФК"

Повідомлення з кодом типу друку, помічені в цій таблиці значком "**", супроводжуються позиційним номером пристроїв в другому і третьому слові кодограмм.

Повідомлення з кодом типу друку, поміченого в цій таблиці значком "-" не супроводжуються позиційним номером пристроїв в другому і третьому слові кодограмм. Друге і третє слова кодограмм № 2 при надходженні інформації ФК призначені для позиційного коду пристроїв. Допускається будь-яке поєднання значень зазначених розрядів в цих словах.

Пристрої, по яких надходять перераховані в коді типу друку повідомлення, вказуються "1" відповідному розряді першого або другого слова. Відповідність розряду пристрою показано нижче (рис.10, 11). Розряди 15-8 другого слова завжди містять "0". Одиниця у відповідному розряді свідчить про наявність, а нуль - про відсутність повідомлень ФК по заданому пристрою.

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Рис.10. 1-е слово

0-Ш15-АРМ110-ПУ315-КС3

1-Ш26-КС111-

2-ПУ17-АРМ212-АРМ5

3-ПУ28-АРМ313-АРМ6

4-Ш39-АРМ414-КС2

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Рис.11. 2-е слово

0-АРМ-РД12-ІП-П

1-АРМ-РД23-ІВ-П


Значення поля "Код причини відсутності зв'язку"

розрядів

Причина відсутності

зв'язку з абонентом

Позна

чення

7

6

5

4

3

2

1

0



0

0

0

0

0

0

1

0

Прийом від АБН 3-х кодограмм поспіль з ознакою контролю К2

К2

0

0

0

0

0

1

0

0

Відсутність інформації від джерела на вході ПУ1 ... ПУ3 більше 12 сек.

ВР

0

0

0

0

0

1

1

0

Прийом від АБН 3-х кодограмм поспіль з ВПС-1010 (не отриманий)

НП

0

0

0

0

1

0

1

0

Відсутність зв'язку в тракті ІСТ -> КС1, КС2, КС3

(Де ІСТ - ПУ1 ... ПУ3, АБН)

ПД

0

0

0

0

1

1

1

0

Відсутність зв'язку в тракті КС1, КС2, КС3 -> ІСТ

(Де ІСТ - ПУ1 ... ПУ3, АБН)

ПМ

Рис.12. Значення поля "Код причини відсутності зв'язку"

Де К2 - ознака контролю, ВР - час очікування, ПД - тракт передачі, ПМ - тракт прийому, НП - не отримано повідомлення.

Інформація НСД ВП (ознака друку = 10101).

слова

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0 слово

пристрої

(У двійковому коді)

Ознака

Печатки

Годинники

(Двійковий код)

1 слово

Хвилини (двійковий код)

Секунди (двійковий код)

2 слово

0

0

3 слово

0

0

4 слово

Адреса пам'яті

5 слово

Вміст пам'яті

Рис.13. Кодограмм реєстрації НСД ОП.

Поля кодограмм реєстрації НСД ВП: Годинники, Хвилини, Секунди - час звернення до пам'яті, Адреса пам'яті - адреса слова ОЗУ. У слові 5 знаходиться безпосередньо вміст пам'яті.

Реєстрація БС пристроїв (ознака друку = 10110).

БС передаються в останніх 4-х словах кодограмм. Відповідні пристрої займають під БС від 1-го до 4-х слів кодограмм. Загальний вигляд кодограмм реєстрації БС пристроїв представлений на рис.14.

слова

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0 слово

пристрої

(У двійковому коді)

Ознака

друку

Годинники

(Двійковий код)

1 слово

Хвилини (двійковий код)

Секунди (двійковий код)

2 слово

1-й байт БС

0-й байт БС

3 слово

Третій байт БС

2-й байт БС

4 слово

5-й байт БС

4-й байт БС

5 слово

7-й байт БС

6-й байт БС

Рис.14. Кодограмм реєстрації БС.

Номери пристроїв при передачі БС кодуються наступним чином (рис.15):

№ № розрядів

Пристрої

Кількість слів

в кодограмм

15

14

13

12

11

10



0

0

0

0

0

0

Ш1

1

0

0

0

0

0

1

ПУ1

1

0

0

0

0

1

0

АРМ1

1

0

0

0

0

1

1

АРМ2

1

0

0

0

1

0

0

АРМ3

4

0

0

0

1

0

1

АРМ4

3

0

0

0

1

1

0

КС1

4

0

0

0

1

1

1

Ш2

1

0

0

1

0

0

0

ПУ2

1

0

0

1

0

0

1

АРМ5

1

0

0

1

0

1

0

АРМ6

1

0

0

1

0

1

1

Ш3

1

0

0

1

1

0

0

КС2

4

0

0

1

1

0

1

-

3

0

0

1

1

1

0

КС3

4

0

0

1

1

1

1

ПУ3

1

0

1

0

0

0

0

АРМ-РД1

2

0

1

0

0

0

1

АРМ-РД2

2

0

1

0

0

1

0

ІП-П

2

0

1

0

0

1

1

ІВ-П

2

Рис.15.

Кількість слів, відведений під БС, зазначено в 3-й колонці таблиці.

Залежно від типу пристрою, слова, зайняті в кодограмм під БС, кодуються різним чином. В якості прикладу розглянемо кодограмм реєстрації БС для пристроїв, охоплених ФК. Так, кодограмм реєстрації БС для ПУ1, ПУ2 і ПУ3 виглядають наступним чином (рис.16):

слова

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0 слово

пристрої

(У двійковому коді)

1

0

1

1

0

Годинники

(Двійковий код)

1 слово

Хвилини (двійковий код)

Секунди (двійковий код)

2 слово

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

3 слово

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

4 слово

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

5 слово

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Рис.16. Кодограмм реєстрації БС для ПУ1, ПУ2, ПУ3.

пристрої = 000001 для ПУ1, № пристрої = 001000 для ПУ2, № пристрої = 001111 для ПУ3.

Наявність "0" або "1" в розрядах [0-5] 2-го слова кодограмм свідчить про наявність відповідних ознак, смисловий зміст яких наступне:

для ПУ1 [0,1] розряди 2-го слова

[0] р. "1" - ПУ1 заблоковано по ФК оператором;

[0] р. "0" - ПУ1 розблоковано по ФК оператором;

[1] р. "1" - ПУ1 несправне;

[1] р. "0" - ПУ1 справно.

для ПУ2 [2,3] розряди 2-го слова

[2] р. "1" - ПУ2 заблоковано по ФК оператором;

[2] р. "0" - ПУ2 розблоковано по ФК оператором;

[3] р. "1" - ПУ2 несправне;

[3] р. "0" - ПУ2 справно.

для ПУ3 [4,5] розряди 2-го слова

[4] р. "1" - ПУ3 заблоковано по ФК оператором;

[4] р. "0" - ПУ3 розблоковано по ФК оператором;

[5] р. "1" - ПУ3 несправне;

[5] р. "0" - ПУ3 справно.

Кодограмм реєстрації БС для Ш1, Ш2, Ш3 виглядає наступним чином:

слова

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0 слово

пристрої

(У двійковому коді)

1

0

1

1

0

Годинники

(Двійковий код)

1 слово

Хвилини (двійковий код)

Секунди (двійковий код)

2 слово

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

3 слово

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

4 слово

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

5 слово

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Рис.17. Кодограмм реєстрації БС для Ш1, Ш2, Ш3.

пристрої = 000000 для Ш1, № пристрої = 000111 для Ш2, № пристрої = 001011 для Ш3.

Наявність "0" або "1" в розрядах [0-2] 2-го слова кодограмм свідчить про наявність відповідних ознак, смисловий зміст яких наступне:

для Ш1 [0] розряд 2-го слова

"1" - Ш1 несправний;

"0" - Ш1 справний.

для Ш2 [1] розряд 2-го слова

"1" - Ш2 несправний;

"0" - Ш2 справний.

для Ш3 [2] розряд 2-го слова

"1" - Ш3 несправний;

"0" - Ш3 справний.

3.2 Обгрунтування необхідності організації бази даних

3.2.1 Поняття бази даних

Сформований у минулому підхід до проектування систем збору та накопичення інформації та її ефективного використання для всіляких цілей полягав у автоматизації окремих процесів у рамках фрагментів предметної області, або як кажуть, у створенні великої кількості локальних додатків. У силу значної незалежності додатків одні й ті ж дані багаторазово представлялися в пам'яті ЕОМ, а їх відповідність дійсним значенням забезпечувалося періодичним застосуванням процедур оновлення. При зміні будь-яких відомостей доводилося коректувати від декількох до сотень і навіть тисяч записів.

При переході від автоматизації окремих процесів предметної області до створення автоматизованих інформаційних систем потрібна не тільки взаимоувязка додатків, але й якісно новий підхід до організації даних. Цей підхід полягає у використанні єдиного сховища - бази даних. Окремі користувачі перестають бути власниками тих чи інших даних. Всі дані накопичуються і зберігаються централізовано. У пам'яті ЕОМ створюється динамічно оновлювана модель предметної області.

Слова "динамічно оновлювана" означають, що відповідність БД поточному стану предметної області забезпечується не періодично (раз на місяць, тиждень, день), а в режимі реального часу.

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

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

Сучасний підхід вимагає, щоб в програмі були лише перераховані необхідні для обробки дані і задані необхідні формати їх подання. При цьому опис баз даних стає незалежним від програм користувачів і складає самостійний об'єкт зберігання. Ці описи зазвичай називають метаданими [5].

Найважливішим компонентом автоматизованої системи збору, накопичення та ефективного використання інформації є система управління базами даних (СКБД). Програми складові СУБД включають ядро і сервісні засоби. Ядро - це набір програмних модулів, необхідний і достатній для створення і підтримки БД. Сервісні програми надають користувачам ряд додаткових можливостей та послуг з обслуговування систем баз даних. Мовні засоби служать для опису БД і використовуються для обробки даних користувачами.

3.2.2 Переваги інтеграції даних

Відзначимо деякі переваги інтеграції даних.

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

По-друге, за рахунок спеціальної організації усувається можлива у файлових системах надмірність даних (відомості про об'єкт БД не дублюються). Як мінімум це призводить до скорочення обсягів пам'яті, необхідної для зберігання даних.

По-третє, завдяки скороченню або усунення дублювання даних підвищується рівень їх достовірності; істотно простіше і ефективніше стають процедури оновлення.

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

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

Зазвичай виділяються два аспекти незалежності додатків від організації даних: логічна і фізична незалежність. Перша припускає можливість "безболісного" зміни параметрів логічної організації БД, а друга - зміни зберігання даних у пам'яті ЕОМ.

3.2.3 Проблеми інтеграції даних

З переходом до концепції БД, дані стають якимось загальним ресурсом, цілісність якого необхідно захистити від руйнувань при збоях обладнання, при некоректних оновлення, від НСД і т.п.

Захист даних від руйнування при збої обладнання. Цей вид захисту часто називають забезпеченням фізичної цілісності даних. Фізична цілісність забезпечується засобами ведення системного журнального файлу і можливістю відновлення поточного стану БД на підставі копії і журнального файлу. У журнальному файлі реєструються всі зміни в базах даних з деякого періоду часу. Копія БД повинна бути виконана на момент початку ведення журнального файлу.

Захист від некоректних відновлень. Вона попереджає невірне використання даних (у першу чергу - оновлення іншими користувачами). Такий захист даних називається логічною цілісністю. Вона забезпечується шляхом розробки механізмів управління доступом користувачів до даних. Це програмні "фільтри", коли користувач має можливість обробляти лише деяку підмножину даних. По-друге, система видає користувачеві для обробки не весь запис цілком, а лише частина її даних. При цьому в прикладній програмі описуються тільки ці дані. По-третє, при описі даних деякі СУБД дозволяють задавати області допустимих значень. Тоді система автоматично перевіряє нове значення на допустимість і відкидає некоректні.

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

3.2.4 Необхідність організації БД на АРМ РД

Безпосереднє функціональне призначення АРМ РД - реєстрація та документування інформації, що надходить з ВК. АРМ РД в режимі реального часу виконує наступні функції:

прийом даних, цілодобово надходять від ВК;

видачу інформації у ВК;

реєстрацію даних, що надійшли в пам'яті ЕОМ;

документування даних, розміщених в інформаційних масивах.

Згідно з функціональним призначенням, проектування БД на АРМ РД має вирішити такі завдання:

створити "динамічну" модель предметної області системи (у якій відповідність БД поточному стану предметної області забезпечується не періодично, а в режимі реального часу);

забезпечити ефективність функціонування, тобто забезпечити вимоги до часу реакції системи на запити та оновлення БД;

забезпечити централізоване зберігання даних у пам'яті ЕОМ;

забезпечити вибірку з інформаційних масивів даних згідно з заданим критеріям;

забезпечити зручність експлуатації інформаційної системи;

забезпечити захист даних від некоректних відновлень, від руйнувань при збоях обладнання та від несанкціонованого доступу.

Ці завдання можна здійснити за допомогою створення єдиного сховища - бази даних і використання засобів СКБД.

3.3 Логічна організація бази даних

Для реалізації логічної організації БД необхідно визначити, що є об'єктом предметної області інформаційної системи. Як вже було зазначено вище (п.3.1 1), будь-яке повідомлення в системі, або кодограмм, має формат у рамках заздалегідь обумовленого Протоколу інформаційного обміну. Розряди кодограмм реєстрації містять ряд характеристик, що визначаються типом надходить по влаштуванню інформації:

інформації обміну по КС;

інформації обміну між Ш1, Ш2, Ш3, і ВК;

збійної інформації обміну по КС;

збійної інформації між Ш1, Ш2, Ш3 і ВК;

інформації про нли;

інформації ФК;

інформації НСД;

інформації НСД ВП;

інформації про БС пристроїв.

Залежно від типу переданого по влаштуванню повідомлення, вміст розрядів кодограмм різному, а, отже, різні і атрибути об'єктів інформаційної системи. Якщо розглядати інформаційну систему в частині відображення інформаційного та технічного стану пристроїв (ФК), то об'єктом предметної області є інформація про стан пристроїв.

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

Дата відправлення кодограмм;

Час відправлення кодограмм;

Напрямок (від ПУ1, інформація в КС3 і т.п.);

Режим роботи;

Джерело (звідки прийшла кодограмм);

Вид повідомлення (БП, НСД, тощо);

Кількість збійних кодограмм;

Зміст збійних кодограмм;

Тип пристрою, від якого прийшла кодограмм;

Ознака (повідомлення від декількох пристроїв приходять в одній кодограмм);

Значення контрольної суми при пуску ВК;

Значення періодично обчислюється контрольної суми;

Текст повідомлення, що міститься в кодограмм.

Після складання переліку атрибутів, чергова завдання полягає у визначенні набору відносин і складанні логічної структури БД. Логічна структура бази даних представлена ​​на рис.18 і складається з набору відносин, представлених в третій нормальній формі.

Ставлення 1: "Вся інформація". Ключовими доменами є перші два поля: "Дата", "Час".

Ставлення 2: "Оперативна інформація". Ключовими доменами в даному відношенні є "Дата", "Час", "Напрям", "Режим роботи", "Джерело", "Вид повідомлення".

Ставлення 3: "Інформація Ш" Ключовими доменами є "Дата", "Час", "Напрям", "Режим роботи".

Ставлення 4: "збійні кодограмм". Ключовими доменами є: "Дата", "Час", "Напрям", "Кількість", "Вид повідомлення", "Слово1", "Слово2", "Слово3", "Слово4".

Ставлення 5: "Функціональний контроль". Ключовими доменами є: "Дата", "Час", "Тип", "Ознака", "Вид повідомлення".

Ставлення 6: "Зв'язок з ВК". Ключовими доменами є "Дата", "Час".

Ставлення 7: "Поточна контрольна сума". Ключовими доменами є:

"Дата", "Час".

Ставлення 8: "Контрольна сума при пуску ВК". Ключовими доменами є: "Дата", "Час".

При формуванні відносин були поставлені наступні цілі: здійснити угруповання записів в такі структури, які досить малі за розміром і тому керовані. При цьому дані можуть дублюватися, наприклад, ставлення ФК може включати в себе інформацію про зв'язок з ВК. Однак створенням відносини "Зв'язок з ВК" ми виділяємо його в логічно самостійне ставлення і тим самим зменшуємо час пошуку важливою для нас інформації. Це означає, що інформація, яка вимагає до себе першорядної уваги, виділяється в окремі відносини з метою зменшення часу пошуку по БД, даючи можливість персоналу, обслуговуючому КСА своєчасно реагувати на зміни, що виникають в системі.

З такою ж метою виділяється в окремі відносини інформація контрольного підсумовування, інформація контрольного підсумовування при пуску ВК, інформація Ш.

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

Ще одна причина, по якій відносини організуються таким чином - це розмежування доступу користувачів.

Інформація фіксується у восьми не пов'язаних один з одним таблицях, і один користувач, наприклад, може мати доступ тільки до БД "Інформація контрольного підсумовування", інший - до БД "Інформація Ш". У дипломному проекті розглядається тільки та інформація, яка міститься в БД ФК.

Ставлення ФК містить інформацію про результати ФК, серед якої є інформація про БС пристроїв. Крім БС, ставлення ФК містить і іншу інформацію, наприклад, про несанкціонований доступ (НСД), про нав'язування неправдивої інформації (нли), інформацію про ФК, про звернення до пам'яті (НОП), і т.д. Інформація ФК має внутрішній формат подання для зберігання в пам'яті ЕОМ і формат для пред'явлення оператору на екрані дисплея або на принтері у вигляді таблиць і довідок.

Вид полів БД ФК представлений на рис. 19.

Структура БД ФК включає в себе наступні елементи: "Дата", "Час", "Тип пристрою", "Ознака" (ознака групування інформації), "Вид сполучення" (БС, НСД, ФК, нли, і т.д.) , "Текст повідомлення". У полі "Текст повідомлення" знаходиться повідомлення типу: "НСД знято", або "Немає зв'язку по лінії 1", або "розблоковано по ФК", і т.п., тобто розкривається конкретне значення надійшов із влаштування повідомлення. Інші елементи, перераховані раніше, є ключовими, і служать для пошуку останнього елемента "Текст повідомлення".

3.4 Вибір СУБД

3.4.1 Виділення СУБД - претендентів

Проектувальнику в даний час надається достатньо великий вибір СУБД, розроблених для різних конфігурацій і типів ЕОМ. Аналіз основних параметрів цих систем дозволяє відразу ж відкинути ряд СУБД, свідомо непридатних до використання в розробляється інформаційній системі, залишивши для подальшого розгляду не більше 2-х - 3-х систем - претендентів.

На вибір СУБД - претендентів найбільший вплив робить узгодження ряду параметрів середовища реалізації та СУБД. Найбільш значимі параметри перераховані нижче (в дужках вказані характеристики АРМ РД):

тип ЕОМ (IBM PC AT на базі процесора Intel 80386);

операційна система (MS DOS);

обсяг оперативної пам'яті (2Мб);

обсяг дискової пам'яті (160 МБ);

обрана для реалізації модель даних (реляційна).

Перерахуємо СУБД подібного класу: D-Base, Clipper, Paradox. Перед тим як приступити до порівняльного аналізу моделей баз даних, і, отже, до остаточного вибору СУБД, необхідно виділити набір чинників, які впливають на остаточний вибір варіанта.

Найбільш часто використовувані фактори оцінки моделей баз даних:

трудомісткість реалізації програм;

вартість експлуатації інформаційної системи;

можливість суміщення розробки БД з раніше виконаними програмними реалізаціями;

прогнозовані строки реалізації інформаційної системи;

витрати на навчання персоналу.

На цьому етапі необхідно дещо деталізувати вимоги до реалізованого ПЗ АРМ РД.

Як було зазначено у п.3.3.1., Обмін інформацією в системі відбувається за допомогою кодограмм, які містять інформацію про стан пристроїв в двійковому коді, тому вимоги до СУБД, і відповідно до програм-додатків досить жорсткі - необхідно забезпечити вибірку відомостей про пристрої , причому з можливістю їх подання не в двійковому вигляді, а в зручній для аналізу формі - у вигляді таблиць і довідок.

Отже, великі вимоги пред'являються навіть не до СУБД, а до мови програмування, на якому будуть створюватися програми-додатки. Реалізація програмних засобів оточення СУБД і додатків досить трудомісткий процес.

При виборі СУБД необхідно врахувати і такий чинник, як наявність досвіду у розробників у створенні прикладних програм для даної СУБД, часто він є визначальним.

В якості програмного продукту для створення ПЗ АРМ РД була обрана розробка фірми Borland - мова програмування Турбо Сі + + версії 3.0 і бібліотека стандартних програм на мові Турбо Сі + + Paradox Engine для реалізації обслуговування реляційних баз даних.

Paradox Engine є унікальним програмним засобом, що дозволяє програмістам мови Сі в повному обсязі використовувати архітектуру системи Paradox.

Engine - бібліотека стандартних програм на мові Сі, які можна об'єднати з будь-якою прикладної програмою на мові Сі. У більшості сучасних систем загальний доступ до даних можна здійснити лише при виконанні додаткових операцій - звичайно файли однієї операційної середовища переводяться у формати іншої, і навпаки. Якщо при аналізі завдання з'ясовується, що вихідні дані зберігаються в різних системах, то проблеми узагальнення стають важливою областю рішення завдання.

Engine усуває цю проблему, відкриваючи структуру даних Paradox для програм на мові Сі. Таким чином, прикладні програми на мові Сі отримують можливість обробляти дані системи Paradox.

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

Основні характеристики системи Paradox.

Таблиці Paradox - це стандартні файли DOS з розширенням ". DB". Імена таблиць відповідають стандартним угодами про ідентифікацію файлів, прийнятим в ОС MS DOS.

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

Кожен запис може включати до 255 полів, а кожне поле до 255 символів.

У Paradox використовується п'ять типів полів: алфавітно-цифрового типу, які дозволяють використовувати повний набір символів коду ASCII, числові поля даних, що дозволяють використовувати до 15-ти значущих цифр, включаючи місце для десяткового дробу в інтервал значень, а також поточні поля даних, короткі числові поля і поля дати.

Для впорядкування та пошуку ключових полів таблиці в Paradox Engine передбачені спеціальні функції, які використовують індексний метод доступу. Індекс таблиці дозволяє прискорити процес пошуку потрібного запису. Первинний індекс впорядковує записи в порядку зростання ключових полів. Paradox зберігає записи відсортованими по ключу і не дозволяє дублювати ключі. Вторинні індекси, як правило, організовуються для черг таблиць і служать для поліпшення представлення даних.

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

Звичайно, не можна однозначно сказати, що обрана СУБД ідеально відповідає поставленим перед розробниками завданню. Для ілюстрації порівняємо Paradox Engine і СУБД Paradox з внутрішнім мовою програмування PAL.

PAL - це внутрішній мова програмування системи Paradox. Порівнюючи PAL і Сі, можна відзначити, що і той і інший мають ряд переваг і недоліків.

Наприклад, PAL має великий вбудованим апаратом для обслуговування баз даних, однак не є гнучким і керуючими можливостями мови Сі. З іншого боку, Сі, забезпечуючи максимально можливий рівень управління програмою, і, отже, її гнучкість, не володіє можливістю обслуговування баз даних.

PAL вважається мовою високого рівня, гранично підігнаним до середовища Paradox. Він забезпечує можливість створення документів, зашиту в інтерфейс разом з процедурними можливостями, а також є ідеальним засобом для швидкого макетування або розробки багатокористувацьких програм обслуговування баз даних.

У свою чергу, т.к Сі є традиційним мовою програмування, то його недоцільно застосовувати для програм обслуговування баз даних - вони складніші аналогічних програм на мові PAL. З іншого боку, програми обслуговування баз даних на мові PAL більше за розміром і гірше за швидкодією, ніж ті ж програми на мові Сі, що використовують функції Engine.

Переваги мови PAL полягають в тому, що він має великий вбудованим апаратом і забезпечує негайний доступ до всіх областей системи Paradox. PAL дозволяє розробляти програми з використанням елементів меню Paradox.

Переваги Engine полягають в наступному: забезпечення високого рівня управління програмами; розширення функціональності системи Paradox (працюючи в Engine, ви обмежені тільки можливостями власної програми та доступністю допоміжних бібліотек); забезпечення максимальної ефективності програм при їх мінімальному розмірі.

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

Можна зробити висновок, що на вибір СУБД вплинули наступні фактори:

Наявність досвіду програмування на мові Турбо Сі + +, у розробників, що дозволяє знизити часові та матеріальні витрати на їх перенавчання.

Трудомісткість реалізації додатків, що дозволяє в той же час забезпечити більш високу швидкодію виконання програм (наприклад, дозволяє мінімізувати таку характеристику як час пошуку по БД, і, отже, зменшити час реакції на запит).

Забезпечення гнучкості ПЗ і високого рівня управління програмами.

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

Можливість при реалізації ПО АРМ РД для створення віконного інтерфейсу використовувати бібліотеку СXL - бібліотеку функцій на мові Сі, що дає можливість приділити більше часу вирішенню основного завдання.

4. Структура комплексу програм АРМ РД

4.1 Обгрунтування структури комплексу програм

4.1.1 ПЗ загальносистемного призначення

Структура комплексу програм АРМ РД представлена ​​на рис.20 і є логічним продовженням реалізації функціонального призначення АРМ РД.

ПО загальносистемного призначення представляє собою програмні засоби, що використовуються на етапі проектування АРМ РД.

Вихідними даними передбачено, що в якості середовища функціонування вибирається операційна система MS DOS з файловою оболонкою Norton Commander.

Для роботи з файлами у складі ПЗ АРМ РД передбачені загальносистемні утиліти (архіватори, антивіруси, тощо). Для оформлення документації, записок, звітів передбачений текстовий редактор LEXICON.

Для створення спеціального ПЗ для АРМ РД використовуються наступні програмні продукти:

Мова програмування Турбо C + + версії 3.0;

PX Engine - бібліотеки функцій на мові Borland C + +, для створення БД у форматі Paradox;

CXL - бібліотеки функцій на мові Borland C + + для створення віконного інтерфейсу користувача.

4.1.2 ПЗ спеціального призначення

ПО спеціального призначення представляє собою програмні засоби, що використовуються на етапі експлуатації АРМ РД (див. рис. 20). Його умовно можна розділити на три групи:

Операційна система MS DOS

Бібліотеки використовуваних функцій (LIB) включають бібліотеки використовуваних функцій мови Borland С + +, PX Engine - бібліотеки функцій мови С + + для створення БД у форматі Paradox, CXL - бібліотеки функцій мови С + + для створення віконного інтерфейсу.

Виповнюється модулі програм, що забезпечують наступні функції:

керуюча програма (MAIN);

функції створення прототипів БД і первинних ключів до них (INITENG);

функції запису інформації та внесення змін до БД (ZAPBD);

функції формування і виконання запитів (INQUIRY), включає програми обробки запитів для 3-х форм представлення БС (BS-INQ);

функції служби адміністрування БД (CR_ARMBD - створення бази даних адміністратора, CREAT_FA - створення файлу адміністратора, BDADM - робота з БД адміністратора - створення списку користувачів, реєстрація та видалення користувачів);

функції архівування та роботи з архівом (ARCH).

4.1.3 Вимоги, що пред'являються до спеціального ПЗ АРМ РД

1. Вимоги щодо забезпечення надійності.

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

2. Вимоги щодо забезпечення зручності експлуатації.

Програмне забезпечення АРМ РД повинно функціонувати у діалоговому режимі з видачею ієрархічних меню основних функцій підсистем, наприклад, текст запиту в міру його формування відображається на екрані. Система меню є підказкою, що виключає помилку оператора.

3. Вимоги до операційної і програмної сумісності.

Програмне забезпечення засобів реєстрації та документування АРМ повинно забезпечувати:

інформаційну сумісність в частині можливості заміни ЕОМ РС / АТ на модель більш вищого порядку, заміну принтера на більш продуктивний, і т.п.

4.2 Програмна реалізація

Постановка завдання.

Завданням даного дипломного проекту є розробка програм формування і обробки запитів для трьох форм представлення БС і видача їх на екран монітора і принтер.

Програми повинні бути розроблені для технічних засобів АРМ РД і забезпечувати інформаційну та програмну сумісність в частині можливості заміни ЕОМ на модель більш високого порядку, заміну принтера на більш продуктивний і т.п. Програми обробки запитів повинні функціонувати в складі останнього ПЗ АРМ РД і мінімізувати час обробки запиту.

Це означає, що необхідно організувати пошук по БД таким чином, щоб мінімізувати час пошуку по БД, і, отже, зменшити час відповіді на запит оператора (характеристика, розглянута в п.2.5 може бути мінімізована не тільки технічними, але і програмними засобами).

Програми обробки запитів повинні забезпечити запис перетворених форм БС у файл, і працювати спільно з програмами, що забезпечують видачу перетворених форм БС на екран монітора і принтер.

Вид подання інформації після перетворення БС на екран монітора і принтер.

Виходячи з міркувань практичного сенсу були вибрані 3 форми подання БС: компактна-символічна, таблична, довідкова (перша, друга і третя форми подання БС відповідно).

Перша форма подання БС.

Перша форма подання БС наведена на рис.21 і дозволяє видавати на екран інформацію про БС по всіх різнотипним пристроїв (по будь-якому поєднанню пристроїв, по всіх пристроях відразу, і т.д.)

1-5 поля - ключові. Поле 6 - БС технічних пристроїв у позиційному коді. Для кожного пристрою визначено фіксовану кількість цих байтів (максимальне значення 4 групи або 4слова).

Приклад кодування одного слова для пристрою i (рис.22) - значення 035007 треба інтерпретувати як:

Дана форма подання зручна для роботи з великими обсягами даних (за день тиждень, місяць..) По всіх пристроях, де для оператора важливий факт виявлення несправності (якщо значення БС не дорівнюють нулю, то в цьому пристрої відбувся якийсь збій). Але ця форма незручна тим, що вимагає розшифрування даних за допомогою інструкції. Для усунення цієї незручності вводиться друга форма вистави, де вибірка виконується по одному, обраному оператором пристрою.

Друга форма подання БС.

Приклад подання форми 2 наведено на рис.23. Як видно з рис.23, форма 2 є відображенням форми 1 для одного пристрою і вимагає менших зусиль при розшифровці даних, т.к тут "шапки" колонок таблиці містять більш-менш зрозумілі скорочення і позначення для спеціалістів, які обслуговують апаратуру, тобто . позначення даються термінах, зрозумілих для сфери діяльності оператора.

Третя форма подання БС.

Існує третя форма подання, яка є трансформованому формою 2, обраної на один момент часу, тобто вона відображає технічний стан i-го устрою в заданий момент часу. Приклад форми 3 наведено на рис.24. Як видно з рис.24, форма 3 являє собою розгорнуту довідку з переліком несправностей та рекомендацій щодо усунення цих несправностей. Довжина довідки практично обмежується при цьому тільки міркуваннями достатності інформації, представленої в довідці.

Ш-1

Несправне напрям зв'язку С1 по передачі від ВК до Ш через неотримання від Ш-1 кодограмм за часом.

ВІДСУТНІЙ СИГНАЛ мережі1

Замінити блок А4 в стійці П1

Ш-1 заблокований функціональним завданням

Рис. 24

Визначення функцій, що реалізовуються програм обробки запитів для 3-х форм представлення БС.

Програми обробки запитів для трьох форм представлення БС повинні виконувати наступні функції:

Для першої форми подання БС:

Знаходження заданих оператором записів БС в БД по будь-якому поєднанню пристроїв, використовуючи різні варіанти пошуку по БД, а саме:

по всій БД (дата і час не використовуються);

в єдиному інтервалі по даті і часу;

у зазначеному інтервалі часу по кожному дню інтервалу дат;

за один день в зазначеному інтервалі часу.

Розшифровка БС заданих оператором пристроїв, враховуючи інтервал пошуку.

Видача розшифрованих БС на монітор або принтер у першій формі подання. Як видно з описаного вище, перша форма подання БС видається, на екран монітора у вигляді, представленому на рис.21.

Для другої форми подання БС:

Знаходження необхідного запису БС в БД по конкретному пристрою, заданому оператором, використовуючи різні варіанти пошуку:

по всій БД;

в єдиному інтервалі по даті і часу;

в інтервалі часу по кожному дню інтервалу дат;

за один день в зазначеному інтервалі часу.

Можна відзначити, що варіанти пошуку по БД для першої і другої форм представлення БС збігаються.

Розшифровка БС заданого оператором пристрою враховуючи інтервал пошуку.

Видача розшифрованих БС на екран монітора або принтер у формі представленої на рис.23, причому вид екрану буде різним залежно від пристрою, що задається оператором, т.к пристрою системи не ідентичні і мають конкретними властивими лише їм характеристиками.

Для третьої форми подання БС:

1. Знаходження останнього за часом або одного запису по конкретному пристрою, заданому оператором,

2. Розшифровка БС заданого оператором пристрою,

3. Видача розшифрованих БС на екран монітора або принтер в довідковій формі, причому текст повідомлення буде залежати від характеристик кожного конкретного пристрою.

4.3 Склад програм

Структура програм представлена ​​на рис.25.

BS1_inq. exe - програма обробки запитів для першої форми подання БС;

Initsearch - модуль, що визначає вибір функції пошуку;

Interval - визначення граничних номерів записів у заданому інтервалі пошуку;

Search1 - ініціалізація функції пошуку (всі записи в заданому інтервалі);

Search2 - ініціалізація функції пошуку (не більше 1-го шуканого значення по кожному полю);

Search3 - ініціалізація функції пошуку (більше 1-го шуканого значення хоча б по 1-му полю);

Recprint. c - форматування і запис знайденої рядки у файл.

Bs2_inq. c - програма обробки запитів для другої форми подання БС;

Interval. c - визначення граничних номерів інтервалу пошуку;

Search. c - пошук;

Recprint. c - форматування і запис знайденої рядки у файл.

Form2. c - програма подання БС у текстовому вигляді;

Bs3_inq. c - програма обробки запитів для третьої форми подання БС;

Form3. c - представлення БС у вигляді довідки;

4.4 Опис програм

Функціональне призначення програм обробки запитів, вимоги, які пред'являються до них, а також вид представлення інформації на екрані монітора і принтері були розглянуті вище.

Програма обробки запиту для першої форми подання БС викликається з програми формування запиту з такими аргументами:

1) "BS1_inq. exe ";

2) ім'я бази даних;

3) варіант вибірки по даті і часу:

"0" - дата і час не використовуються, "1" - єдиний інтервал по даті і часу, "2" - багато інтервалів - пошук здійснюється в зазначеному інтервалі часу для кожного значення дати з числа входять до інтервал дати, "3" - єдиний інтервал протягом одного дня (використовується тільки перше значення дати);

4) інтервал пошуку по даті, наприклад, "01/01/98-20/01/98";

5) інтервал пошуку за часом, наприклад, "06: 00: 00-09: 00: 00" і далі значення інших полів БД.

Результат обробки запиту записується у файл "inquiry. res "Після закінчення обробки повинна бути викликана програма" inq_out. exe "для відображення результатів на екран і принтер.

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

Функції пошуку search1 (всі записи в зазначеному інтервалі) і search2 (не більше одного шуканого значення по кожному полю) Пошук здійснюється по максимальному номеру запису. Наприклад, спочатку проглядається поле, що містить тип пристрою і вибираються записи з номерами 5, 10, 36, 48. Потім проводиться пошук по виду повідомлення. Якщо шуканий вид повідомлення знаходиться лише в 15-му полі, то всі поля з 1-го по 36-е пропускаються і пошук починається з 36-го поля. За допомогою такого алгоритму виробляється мінімізація часу пошуку по БД. Як тільки шукані поля збігаються, то номер знайденої запису фіксується і управління передається програмі recprint, яка форматує знайдену рядок і записує її у файл.

Функція пошуку search3 (більше одного шуканого значення хоча б по одному полю) відкриває масив буферів для пошуку, його розмірність дорівнює кількості полів у таблиці. Розмірність кожного з масивів rec [i] дорівнює кількості шуканих значень за i-му поля таблиці. У кожен буфер заноситься одне шукане значення з якого-небудь поля таблиці. Кожному буферу rec [i] [j] відповідає елемент масиву масивів z [i] [j], у котрому зберігається поточний номер знайденої запису з даного буферу (тобто записи, у відповідному полі якої знаходиться значення, рівне значенню, додали до буфер). Ще в одному масиві зберігаються поточні номери знайдених рядків по кожному полю, де max - поточний номер запису при пошуку, тобто записи з номерами, менше max вже переглянуті. Для кожного буфера знаходиться запис із значенням, рівним додали в цей буфер і з номером, більшим або рівним max. Знайдені номери заносяться у відповідні z [i] [j]. Потім для кожного поля визначається значення поточного номера знайдених рядків по кожному полю. Якщо хоча б по одному полю відбувся вихід за межі інтервалу пошуку, значить, пошук закінчений. Якщо ж значення поточних номерів знайдених рядків співпадають по всіх полях, значить, шукана запис знайдений. Знайдена рядок форматується і записується у файл.

Алгоритм програми обробки запиту для другої форми подання БС логічно вибудуваний за таким же принципом, однак він простіше, т.к пошук здійснюється для одного пристрою. Перед записом знайденої рядки в файл виробляється уявлення БС у текстовому вигляді.

Програми обробки запитів для третьої форми подання БС знаходять останню за часом запис в БД і видають перетворені БС у файл.

Алгоритми програм наведено у Додатку 1.

Тексти програм наведено у Додатку 2.

4.5 Оцінка результатів роботи програм

Результатом даного дипломного проекту є розробка програм формування і обробки запитів для 3-х форм представлення БС. Програми розроблені для технічних засобів АРМ РД і функціонують у складі спеціального ПЗ АРМ РД.

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

Вимога щодо забезпечення надійності для програмної обробки запитів забезпечується також вибором засобів програмування, - блокова структура програми на Сі забезпечує як захист даних, так і високий рівень контролю за областями дії і видимості змінних.

Вимога зручності експлуатації також є вимогою, що пред'являються до спеціального ПЗ АРМ РД вцілому і забезпечується загальною логікою організації призначеного для користувача інтерфейсу.

Ще одна вимога, яке було обумовлено в п.4.2.1 - це мінімізація часу пошуку по БД. Тут потрібно конкретизувати, що мінімізація часу відповіді на запит здійснюється на декількох рівнях:

"Технологічному" - засоби архівування БД;

"Логічному" - інформація зберігається в декількох базах даних (див. п. 3.3 - одна з причин формування подібних відносин - це мінімізація часу пошуку);

"Програмному" - виділення кордонів і інтервалів пошуку.

Крім того, вибір форми подання, для якої формується запит і заданий інтервал, будуть впливати на час пошуку записів. Якщо, наприклад, оператор вибрав 1-у форму представлення і сформував запит по декількох пристроїв, причому поставив варіант пошуку по всій БД, то час відповіді буде більше, ніж якщо б оператор сформував запит для 3-ї форми подання БС, яка забезпечує пошук лише одного запису в БД. Якщо для 3-ї форми подання БС час відповіді становитиме 2-3 сек. то для складних запитів може наближатися до десятків секунд. Тому не можна навести одне конкретне значення часу відповіді на запит оператора.

Наведемо наступні рекомендації оператору АРМ РД: чим складніше запит і чим більше кількість пристроїв, за якими сформований запит-тим довше пошук. Якщо необхідно швидко отримати інформацію, то рекомендується вибрати 3-у або 2-у форму представлення, які призначені для отримання інформації по одному пристрою. Якщо ж кількість записів в БД зросла настільки, що пошук займає відчутний час, то рекомендується користуватися засобами архівації.

Програми обробки запитів забезпечують запис перетворених форм БС у файл, і працюють спільно з програмами, що забезпечують видачу перетворених форм БС на екран монітора і принтер.

Організаційно-економічна частина

Введення

Темою організаційно-економічної частини дипломного проекту є техніко-економічне обгрунтування (ТЕО) по темі: "Бізнес-план розробки".

У дипломному проекті проводиться розробка програм обробки запитів до бази даних автоматизованого робочого місця реєстрації та документування (АРМ РД).

В ТЕО необхідно розглянути наступні питання:

Планування розробки з побудовою мережевого графіка;

Розрахунок вартості розробки;

Економічну ефективність розробки;

Склад і призначення основних розділів господарського договору.

У першій частині ТЕО необхідно розрахувати термін розробки і побудувати сітковий графік робіт зі створення програмного забезпечення АРМ РД. У даному випадку під розробкою маються на увазі не тільки програми обробки запитів до бази даних, а програмне забезпечення АРМ РД в цілому.

У другій частині ТЕО необхідно розрахувати вартість розробки програмного забезпечення АРМ РД з моменту отримання першого варіанта технічного завдання і закінчуючи оформленням документації та здачею розробки. При цьому враховується, що розробка проводиться на кошти, що виділяються з Держбюджету (фінансування за цільовими програмами).

У третій частині ТЕО необхідно обгрунтувати економічну ефективність розробки.

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

1. Планування розробки з використанням мережевого графіка

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

Планування науково-дослідних робіт із застосуванням мережевого методу ведеться в наступному порядку:

складається перелік подій і робіт;

встановлюється топологія мережі;

будується сітьовий графік з теми;

визначається тривалість робіт (t ож);

розраховуються параметри мережного графіка;

визначається тривалість критичного шляху;

проводиться аналіз та оптимізація мережного графіка, якщо це необхідно.

У переліку подій та робіт вказують кодові номери подій і їх найменування, в послідовності від вихідної події до завершального, при розташуванні кодових номерів і найменувань робіт перераховуються всі роботи, які мають загальне початкова подія.

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

t min - мінімальну;

t max - максимальну;

t нв - найбільш ймовірну або тільки перші дві.

Ці величини є вихідними для розрахунку очікуваного часу t очікуван за формулами (1) і (2).

(1)

(2)

Після побудови графіка і вибору необхідних вихідних даних розраховують параметри мережі: терміни здійснення подій, резерви часу, тривалість критичного шляху. Розрахунок параметрів мережі найбільш зручно виконувати табличним методом, якщо число подій не перевищує 100 - 150. Цій умові відповідає проведена розробка.

Для опису мережі в "термінах подій" використовуються такі поняття.

Ранній термін настання події (T pi) - мінімальний термін, необхідний для виконання всіх робіт, що передують даній події, дорівнює тривалості найбільшого із шляхів, що ведуть від вихідного події 1 до даного (формула (3)).

(3)

Критичний шлях мережі кр) - максимальний шлях від вихідної події 1 до завершального події С.

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

(4)

Всі події в мережі, за винятком подій, що належать критичного шляху, мають резерв часу (R i), наведений у виразі (5).

(5)

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

При описі мережі "в термінах робіт" визначають ранні й пізні терміни початку і закінчення робіт (формули (6) - (9)).

ранній термін початку:

(6)

пізній термін початку:

(7)

ранній термін закінчення:

(8)

пізній термін закінчення:

(9)

Роботи мережевої моделі можуть мати два види резервів часу: повний (R Пi, j) і вільний (R ci, j). Повний резерв показує, на скільки може бути збільшена тривалість даної роботи або зрушено її початок так, щоб тривалість максимального з проходять через неї шляхів не перевищила критичного шляху. Повний резерв, якщо він не використаний до кінця при виконанні даної роботи, частково може бути перерозподілений і між іншими роботами, що лежать на цьому шляху. Повний резерв розраховується за формулою (10).

(10)

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

Він є незалежним резервом часу даної роботи, т.к використання його не змінює величини вільних резервів решти робіт мережі.

Вільний резерв розраховується за формулою (11).

(11)

Відповідно до вищевикладеної методикою наведемо планування розробки.

Перелік подій та робіт по кожному етапу наводиться в таблиці 1. Процес розробки підрозділяється на п'ять етапів:

Підготовчий етап.

Вибір методів і засобів вирішення.

Розробка алгоритмів програм.

Налагодження програм та аналіз результатів.

Оформлення документації та підготовка до здачі разарботкі.

У таблиці 1 наведено перелік подій і робіт, що мають місце при розробці АРМ РД.

Перелік подій та найменування робіт

Таблиця 1.

етапу

соб.

Подія

Код

роботи

Найменування роботи

I

0

Перший варіант ТЗ отримано

0-1

0-3

Узгодження і уточнення першого варіанту ТЗ

Складання переліку матеріалів за тематикою


1

Проміжний варіант ТЗ узгоджений

1-2

Складання остаточного варіанта ТЗ


2

Остаточний варіант ТЗ затверджено

2-5

Проведення аналізу існуючих методів рішення й отримання порівняльних хар-к


3

Перелік матеріалів з ​​тематики складений

3-4

Вивчення матеріалів по тематиці

II

4

Матеріали з тематики завдання вивчені

4-8

Вибір остаточного методу розв'язання


5

Аналіз існуючих методів розв'язку проведено, порівняльні хар-ки отримані

5-6

Попередній вибір методу розв'язання


6

Метод рішення попередньо обраний

6-7

Уточнення та погодження обраного методу розв'язання


7

Обраний метод рішення узгоджено

7-8

Затвердження остаточного методу розв'язання

III

8

Остаточний метод рішення затверджено

8-9

8-10

8-11

Вивчення літератури по ЯП

Складання ескізного варіанту алгоритму

Аналіз вхідний і вихідний інформації


9

Література з ЯП вивчена

9-14

Вибір мови програмування

III

10

Ескізний варіант алг. Складено

10-12

Уточнення алгоритму рішення


11

Аналіз вхідний і вихідний інформації проведено

11-12

Уточнення алгоритму рішення


12

Алгоритм рішення опрацьований

12-13

Розробка блок-схеми алгоритму


13

Блок-схема алгоритму складена

13-14

Вибір мови програмування


14

Мова програмування обраний

14-15

14-16

Визначення структури програми

Робота над модулями програми


15

Структура програми розроблена

15-17

Робота над текстами програм


16

Модульна структура розроблена

16-17

Робота над текстами програм

IV

17

Тексти програм складені

17-18

17-19

Логічний аналіз програми і її коригування

Компіляція програм


18

Логічний аналіз програм, їх коригування завершені

18-20

Виправлення помилок у програмах

IV

19

Компіляція програм завершена

19-21

Редагування програм в єдиний модуль


20

Виправлення помилок завершено

20-21

Редагування програм в єдиний модуль


21

Редагування програм у єдиний завантажувальний модуль завершено

21-22

21-23

Виконання програм

Аналіз рез-тов виконання


22

Виконання програм завершено

22-24


Перевірка функ-ия прог-мм в різних умовах роботи

V

23

Аналіз результатів виконання програм завершено

23-24

23-25

Перевірка функ-ия прог-мм в різних умовах роботи

Випуск документації


24

Перевірка функ-ия прог-мм в різних умовах роботи завершено

24-26

Підготовка звіту про роботу


25

Випуск документації завершено

25-26

Підготовка звіту про роботу


26

Звіт про роботу підготовлений



На підставі переліку подій та робіт побудований мережевий графік робіт (рис.1).

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

Для визначення повного резерву часу роботи треба з числа в правому секторі кінцевого події відняти число в лівому секторі початкового події і тривалість роботи між кінцевим і початковим подіями. Для визначення вільного резерву треба з числа в лівому секторі кінцевого події відняти число в лівому секторі початкового події і тривалість роботи.

Розрахунок параметрів мережного графіка зручно робити, послідовно заповнюючи таблицю параметрів мережі за певними правилами.

Розрахунок очікуваного часу виконання роботи проводиться за формулою (2) з використанням мінімальної і максимальної імовірнісних оцінок тривалості робіт.

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

Раннє закінчення кожної роботи визначається за формулою (8) і фактично дорівнює сумі величин раннього початку та тривалості даної роботи.

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

Заповнення графи пізнього строку закінчення робіт , Крім її останнього рядка проводиться знизу вгору наступним чином: перебувають всі роботи, наступні за розглянутій, і визначаються різниці між пізнім закінченням цих робіт та їх тривалістю. Мінімальна з отриманих величин заноситься в графу пізнього строку закінчення робіт.

Дані графи пізнього строку початку робіт знаходяться як різниця пізнього закінчення цих робіт і їх тривалості.

Повний і вільний резерви часу визначаються за формулами (10) і (11) відповідно.

Параметри мережного графіка представлені в таблиці 2.

Параметри мережного графіка

Таблиця 2.

Код

Соб.

0-1

25

30

27

0

27

0

27

0

0

0-3

10

15

12

0

12

32

44

32

0

1-2

15

25

19

27

46

27

46

0

0

2-5

30

40

34

46

80

46

80

0

0

3-4

40

50

44

12

56

44

88

32

0

4-8

50

60

54

56

110

88

142

32

32

5-6

20

35

26

80

106

80

106

0

0

6-7

15

25

19

106

125

106

125

0

0

7-8

15

20

17

125

142

125

142

0

0

8-9

55

60

57

142

199

142

199

0

0

8-10

50

60

54

142

196

146

200

4

0

8-11

35

45

39

142

181

163

202

21

0

9-14

45

55

49

199

248

199

248

0

0

10-12

15

25

19

196

215

200

219

4

0

11-12

15

20

17

181

198

202

219

21

17

12-13

15

20

17

215

232

219

236

4

0

13-14

10

15

12

232

244

236

248

4

4

14-15

50

60

54

248

302

248

302

0

0

14-16

25

40

31

248

279

311

342

63

0

15-17

140

160

148

302

450

302

450

0

0

16-17

100

120

108

279

387

342

450

63

63

17-18

40

80

56

450

506

450

506

0

0

17-19

20

25

22

450

472

498

520

48

0

18-20

25

40

31

506

537

506

537

0

0

19-21

30

40

34

472

506

520

554

48

48

20-21

15

20

17

537

554

537

554

0

0

21-22

10

15

12

554

566

554

573

7

0

21-23

15

20

17

554

571

554

571

0

0

22-24

20

30

24

566

597

566

597

0

0

23-24

10

15

12

571

583

585

597

14

14

23-25

30

40

34

571

605

571

605

0

0

24-26

25

30

27

597

617

597

624

0

0

25-26

15

25

19

605

624

605

624

0

0

2. Розрахунок вартості розробки

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

2.1 Розрахунок статті "матеріали, покупні вироби, напівфабрикати"

На цю статтю відноситься вартість матеріалів, покупних виробів, напівфабрикатів та інших матеріальних цінностей, що витрачаються безпосередньо в процесі виконання НДР по темі. Ціна матеріальних ресурсів визначається за відповідними цінників. У вартість матеріальних витрат включаються транспортні витрати (10% від роздрібної ціни).

Розрахунок статті "матеріали, покупні вироби, напівфабрикати" наводиться в таблиці 3.

Найменування

товару

Од. Виміри

Кількість

Ціна за одиницю (руб)

Суммар. витрати (руб)

Дискети

Пачка

2

90

180

Креслярська папір

Листи

20

5

100

Папір для принтера

Пачка

3

80

240

Разом: 520

З урахуванням транспортних витрат:

520 + 0.1 * 520 = 572 (руб)

2.2 Розрахунок основної заробітної плати за темою

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

Середня кількість робочих днів у місяці дорівнює 20-ти. Отже, денна заробітна плата визначається діленням розміру окладу на кількість робочих днів у місяці.

Трудомісткість визначається наступним чином: за таблицями 1 і 2 знаходиться кількість днів, який необхідно витратити на кожен з 5-ти етапів розробки.

Наприклад, на першому етапі розробки потрібно кількість днів, що дорівнює сумі тривалостей робіт, коди яких: 0-1, 0-3, 1-2, 2-5, 3-4. Трудомісткість кожного етапу визначається для групи фахівців, що відповідають за цей етап розробки.

Твір трудомісткості на суму денної заробітної плати визначає витрати по зарплаті для кожного працівника на весь час розробки.

Розрахунок основної заробітної плати за темою наведено в таблиці 4.

Розрахунок основної заробітної плати по темі.

Таблиця 3.

Найменування етапів робіт

Виконавець

Оклад

(Руб)

Денна зар. Плата (руб)

Трудомісткість

(В людино-днях)

Витрати по

зар. платі

(Руб)

1. Підготовчий етап

Провідний інженер

Інженер

1200

1000

60

50

252

252

15120

12600







2. Розробка алгоритмів і програм


Провідний інженер

Інженер

Інженер

1200

1000

1000

60

50

50

864

864

864

51840

43200

43200







3. Oформленіе докум-ії і підготовка до здачі


Інженер


1000


50


46


2300

РАЗОМ:





168260

2.3 Розрахунок додаткової заробітної плати

На цю статтю відносяться виплати, передбачені законодавством про працю за невідпрацьований з поважних причин час: оплата чергових і додаткових відпусток і т.п. (Приймається в розмірі 20% від суми основної заробітної плати):

168260 * 0.2 = 33652 руб.

2.4 Розрахунок відрахувань на соціальні потреби

Витрати за цією статтею визначаються у відсотковому відношенні від суми основної та додаткової заробітної плати (40.5%):

(168260 +33652) * 0.405 = 81774 руб.

2.5 Розрахунок накладних витрат

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

Накладні витрати приймаються у розмірі 250% від суми основної заробітної плати.

168260 * 2.5 = 420650 руб.

2.6 Розрахунок договірної ціни

Калькуляція вартості розробки наведена в таблиці 5.

Повна собівартість розробки визначається підсумовуванням пп.1 - 5 таблиці 5.

Оптова ціна визначається таким чином:

Ц опт = собівартість + прибуток.

Прибуток складає 30% від собівартості:

Прибуток = 704732 * 0.3 = 211420 руб.

Ц опт = 704732 + 211420 = 916152 руб.

При розрахунку договірної ціни у загальну вартість закладається сума податку на додану вартість, рівного 20% від оптової ціни.

Розробка фінансується державою, отже, податок на додану вартість при розрахунку договірної ціни не враховується.

Отже, договірна ціна розробки становитиме 916152 крб.

Таблиця 5.

п / п

Найменування статті витрат

Витрати (в крб)

1.

Матеріали, покупні вироби, напівфабрикати

396

2.

Основна заробітна плата

168260

3.

Додаткова заробітна плата

33652

4.

Відрахування на соціальні потреби

81774

5.

Накладні витрати

420650

6.

Повна собівартість

704732

7.

Прибуток

211420

8.

Оптова ціна

916152

9.

ПДВ

-------

10.

Договірна ціна

916152

3. Економічна ефективність розробки

Основне завдання, поставлене перед розробником - це створення програмного забезпечення (ПЗ) для автоматизованого робочого місця реєстрації та документування комплексу засобів автоматизації. Розробка не мала раніше подібних аналогів і є спеціалізованим ПЗ, яке забезпечує наступні функції:

отримання та реєстрацію даних про стан об'єкта управління;

дозволяє людині робити аналіз отриманих даних і на підставі їх оперативно реагувати на зміни, що у системі;

підвищує ефективність роботи оператора за рахунок доступу представлення даних на екрані монітора і тим самим скорочує роботу оператора з паперами (інструкціями).

4. Основні розділи господарського договору

Останнім розділом техніко-економічного обгрунтування по темі: "Бізнес-план розробки" є формування основних розділів господарського договору.

Господарський договір - це двостороння угода, яка укладається юридичними особами (виконавцем і замовником) для досягнення будь-якої мети.

У даному випадку укладання господарського договору переслідує своєю метою створення програм, що дозволяють оператору АРМ РД оперативно отримувати інформацію про стан системи, швидко реагувати на зміни, що відбуваються в системі, різко скоротити роботу з паперами (інструкціями).

Основні розділи господарського договору:

Предмет договору.

У цьому пункті обмовляється предмет договору та терміни проведення робіт.

Вартість робіт, порядок і умови платежів і розрахунків.

У даному пункті обмовляється вартість розробки, яким чином проводиться оплата і передбачаються дії обох сторін у тому випадку, якщо умови з оплати розробки не виконуються.

Підготовка робіт.

У цьому пункті господарського договору обумовлюються умови, які зобов'язується забезпечити замовник для виконавця робіт. Це може бути надана апаратура, програмне забезпечення, приміщення і т.п.

Порядок і строки здачі та приймання робіт.

Визначає тимчасові рамки дії даного договору, а також порядок і терміни здачі робіт.

Особливі умови.

У цьому пункті обмовляється, як проводяться зміни та доповнення до цього договору і їх узгодження сторонами.

Юридичні адреси та реквізити сторін.

Даний пункт містить юридичні адреси сторін, а також їх банківські реквізити.

Умови господарського договору (пп.1-5) попередньо обговорюються обома сторонами і у випадку, якщо всі умови господарського договору задовольняють вимогам виконавця і замовника, то керівні особи обох сторін підписують договір і скріплюють його печатками.

Висновок

У даному розділі дипломного проекту було представлено техніко-економічне обгрунтування (ТЕО) по темі: "Бізнес-план розробки".

В ТЕО були розглянуті наступні питання:

Планування розробки з побудовою мережевого графіка;

Розрахунок вартості розробки;

Економічна ефективність розробки;

Склад і призначення основних розділів господарського договору.

У першій частині ТЕО розраховані параметри мережного графіка робіт зі створення програмного забезпечення АРМ РД і по цих параметрах побудований мережевий графік робіт. Розрахунок параметрів мережі був виконаний табличним методом, знайдені терміни звершення подій, резерви часу, тривалість критичного шляху.

Час розробки комплексу програм АРМ РД складе 624 дні (приблизно 2.6 року).

У другій частині ТЕО розрахована вартість розробки програмного забезпечення АРМ РД з моменту отримання першого варіанта технічного завдання і закінчуючи оформленням документації та здачею розробки.

Величина витрат на науково-дослідні роботи визначена на основі методу калькуляцій. Розрахунок зроблений у цінах 1998р. Вартість розробки складе 916 152 руб.

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

Охорона праці і техніка безпеки

Введення

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

На робочому місці інженера-програміста повинні бути створені умови для високопродуктивної праці. В даний час все більше застосування знаходять автоматизовані робочі місця, які оснащуються персональними ЕОМ з графічними дисплеями, клавіатурами та принтерами.

У даному дипломному проекті розробляються програми, що складають частину ПО АРМ реєстрації та документування даних. Оператор АРМ реєстрації та документування відчуває значне навантаження, як фізичну (сидяче положення, навантаження на очі), так і розумову, що призводить до зниження його працездатності до кінця робочого дня.

1. Характеристика приміщення і чинники, які діють на оператора в процесі його праці

Приміщення, в якому знаходиться робоче місце оператора, має такі характеристики:

довжина приміщення: 6.5 м;

ширина приміщення: 3.7 м;

висота приміщення: 3.5 м;

число вікон: 4;

число робочих місць: 2;

освітлення: природне (через бічні вікна) і загальне штучне;

вид виконуваних робіт: безперервна робота з прикладної програмою в діалоговому режимі.

Напруга зору:

освітленість РМ, лк300;

розміри об'єкта, мм0.3 - 0.5;

розряд зорової работиIII - IV.

На робочому місці оператор піддається впливу наступних несприятливих факторів:

недостатнє освітлення;

шум від працюючих машин;

електромагнітне випромінювання;

виділення надлишків теплоти.

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

Розвитку стомлюваності на виробництві сприяють наступні чинники:

неправильна ергономічна організація робочого місця, нераціональні зони розміщення обладнання по висоті від підлоги, по фронту від осі симетрії і т.д.;

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

2. Розрахунок освітлення робочого місця оператора

Одним з основних питань охорони праці є організація раціонального освітлення виробничих приміщень та робочих місць.

Для освітлення приміщення, в якому працює оператор, використовується змішане освітлення, тобто поєднання природного і штучного освітлення.

Природне освітлення - здійснюється через вікна в зовнішніх стінах будівлі.

Штучне освітлення - використовується при недостатньому природному освітленні і здійснюється за допомогою двох систем: загального і місцевого освітлення. Загальним називають освітлення, світильники якого висвітлюють всю площу приміщення. Місцевим називають освітлення, призначене для певного робочого місця.

Для приміщення, де знаходиться робоче місце оператора, використовується система загального освітлення.

Нормами для даних робіт встановлено необхідну освітленість робочого місця Е Н = 300 лк (для робіт високої точності, коли найменший розмір об'єкта розрізнення дорівнює 0.3 - 0.5 мм).

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

Загальний світловий потік визначається за формулою:

,

де Е Н - необхідна освітленість робочого місця за нормою Н = 300 лк);

S - площа приміщення, м 2;

z 1 - коефіцієнт запасу, який враховує знос і забруднення світильників (z 1 = 1.5, табл. VII-5, [15]);

z 2 - коефіцієнт, що враховує нерівномірність освітлення (z 2 = 1.1, стор.139 [15]);

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

Визначимо площа приміщення, якщо його довжина становить L д = 6.5 м, а ширина L ш = 3.7 м:

= 6.5   3.7 = 24 м 2

Виберемо з таблиці коефіцієнт використання світлового потоку за наступними даними:

коефіцієнт відбиття побілені стелі R п = 70%;

коефіцієнт відбиття від стін, забарвлених в світлу фарбу R ст = 50%;

= 0.7,

де h П - висота приміщення = 3.5 м. Тоді по табл.7 [16] знаходимо (для люмінесцентних ламп i = 0.7) h = 0.38.

Визначаємо загальний світловий потік:

лм

Найбільш прийнятними для приміщення ВЦ є люмінесцентні лампи ЛБ (білого світла) або ЛТБ (тепло-білого світла), потужністю 20, 40 або 80 Вт.

Світловий потік однієї лампи ЛТБ40 складає F 1 = 3100 лм, отже, для отримання світлового потоку F заг = 31263.2 лм необхідно N ламп, число яких можна визначити за формулою

Підставимо значення, отримані вище:

ламп.

Таким чином, необхідно встановити 10 ламп ЛТБ40.

Електрична потужність всієї освітлювальної системи обчислюється за формулою:

, Вт,

де P 1 - потужність однієї лампи = 40 Вт, N - число ламп = 10.

Вт

Для виключення засвічення екранів дисплеїв прямими світловими потоками світильники загального освітлення мають в своєму розпорядженні збоку від робочого місця, паралельно лінії зору оператора і стіні з вікнами. Таке розміщення світильників дозволяє виробляти їх послідовне включення в залежності від величини природної освітленості і виключає роздратування очей чергуються смугами світла і тіні, що виникає при поперечному розташуванні світильників [17].

Розрахунок місцевого світлового потоку не виробляється, так як в даному випадку рекомендується система загального освітлення щоб уникнути відображеної блесткості від поверхні столу і екрану монітора.

Коефіцієнт пульсації освітленості:

,

де E max, E min і E ср показники освітленості для газорозрядних ламп при живленні їх змінним струмом - соответстсвенно максимальна, мінімальна і середня.

Візьмемо за аналогією [16], табл.4 люмінесцентну лампу ЛХБ приблизно тієї ж потужності. Включенням суміжних ламп в різні фази (групи) трифазної електричної мережі можливо добитися зменшення коефіцієнта пульсації До П з 35 до 3 - тобто майже у 12 разів (рис.1). На рис.1 вказані три вимикачі (по одному на кожну фазу - групу ламп) - це необхідно для забезпечення можливості незалежного управління групами ламп.

Рівномірність розподілу яскравості в полі зору. Характеризується ставленням (Дане відношення вважається оптимальним) або . У даному випадку , Отже ставлення .

Отже, для забезпечення нормальних умов роботи програміста, відповідно до нормативних вимог, необхідно використовувати дане число світильників зазначеної потужності для освітлення робочого приміщення.

3. Розрахунок інформаційного навантаження

Розрахунок інформаційного навантаження оператора необхідний для того, щоб з'ясувати, чи буде оператор справлятися із завданням.

Розрахуємо інформаційну навантаження оператора. Скористаємося табл.4 [18].

Кількість операцій, що здійснюються оператором за 3 години (табл.1):

Таблиця 1.

Члени алгоритму

Символ

Кількість членів

Частота повторення p i

Аферентні:



1

Спостереження результатів

F

10

1

Усього:


10


Еферентні:



1

Вибір найкращого варіанта з декількох

C

3

0,04

Виправлення помилок

D

1

0,01

Аналіз отриманих результатів

M

40

0,54

Виконання механічних дій

K

30

0,41

Усього:


74


Разом:


84


Розрахуємо ентропію інформації:

Сумарна ентропія:

біт / с.

Потік інформаційного навантаження дорівнює

,

де:

N - сумарна кількість всіх членів алгоритму;

t - тривалість виконання всієї роботи, хв.

.

Висновок:

.

Отже, інформаційна навантаження оператора укладається в норму [19], табл.13.2

Висновки

У даному розділі дипломного проекту був проведений розрахунок освітленості робочого місця (з вибором типу ламп та їх кількості), а також оцінка інформаційного навантаження.

Розрахунки показали, що оператор отримує інформаційну навантаження, яке дорівнює

.

Крім того, необхідно протягом 8-ми годинного робочого дня передбачити один годинну перерву на обід, 5-ти хвилинні перерви кожні півгодини і 15-ти хвилинні перерви кожні 1.5 - 2 години. Роботу необхідно організувати таким чином, щоб найбільш складні завдання вирішувалися з 11: 00 до 16: 00 - в період найбільшої активності людини, а не на початку дня, коли оператор ще не досяг максимальної активності, і не в кінці дня, коли вже розвивається стомлення .

Так як робота оператора не пов'язана з рішенням великих логічних завдань і досить одноманітна, то рекомендується по-можливості чергувати види діяльності. Приклад чергування видів робіт і її інтенсивності наведено у графіку праці та відпочинку (табл.2).

Таблиця 2.

Час

Вид роботи та її інтенсивність

9: 00

Початок роботи

9: 00 - 9: 30

Вхід до системи, рішення загальних організаційних завдань

9: 30 - 9: 35

5-ти хвилинну перерву

9: 35 - 10: 10

Рішення нескладних завдань, формування запитів до системи

10: 10 - 10: 15

5-ти хвилинну перерву

10: 15 - 10: 45

Рішення нескладних завдань, вивчення літератури

10: 45 - 11: 00

15-ти хвилинну перерву

11: 00 - 11: 55

Рішення логічних, найбільш трудомістких завдань

11: 55 - 12: 00

5-ти хвилинну перерву

12: 00 - 13: 00

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

13: 00 - 14: 00

Перерва на обід

14: 00 - 14: 40

Спостереження отриманих результатів, виправлення помилок

14: 40 - 14: 45

5-ти хвилинну перерву

14: 45 - 15: 10

Виконання механічних дій, аналіз результатів, виправлення помилок

15: 10 - 15: 30

20-ти хвилинну перерву

15: 30 - 16: 10

Аналіз результатів, виправлення помилок

16: 10 - 16: 15

5-ти хвилинну перерву

16: 15 - 17: 10

Виконання механічних дій, оформлення звітів, підведення результатів

17: 10 - 17: 15

5-ти хвилинну перерву

17: 15 - 18: 00

Вихід із системи, підготовка до наступного робочого дня (план робіт і т.д.)

18: 00

Кінець роботи

Громадянська оборона

Введення

У сучасних містах з-за високої щільності забудови адміністративну будівлю з розташованим у ньому обчислювальним центром може опинитися поблизу одного з небезпечних промислових підприємств, таких як:

нафтопереробний завод;

газоперекачувальних станцій;

ТЕЦ;

різного роду хімічні заводи;

підприємства по роботі з радіоактивними матеріалами.

Всі ці об'єкти є джерелами підвищеної небезпеки для близько розташованих будівель. Небезпечними можуть бути наступні фактори:

витік СДОР;

витік радіоактивних речовин;

небезпека вибуху і пожежі легко займистих речовин.

Розглядається наступна ситуація: поблизу від адміністративної будівлі розташоване сховище скрапленого газу великої ємності. У результаті порушення цілісності контейнера зі зрідженим газом і його витоку відбувається вибух. При цьому можливі руйнування будівлі внаслідок ураження його ударною хвилею і розвиток пожежної обстановки.

Дана ситуація може виникнути у разі стихійних лих і техногенних факторів, терористичних актів, порушення правил зберігання, а також необережності робочого персоналу.

У представленому розділі дипломного проекту проводиться оцінка наслідків вибуху і визначаються заходи захисту оператора і апаратури ПЕОМ від впливу високих температур у разі розвитку пожежної обстановки.

1. Теоретична частина

Джерелом вибуху є сховище скрапленого пропану. При порушенні ємності зі скрапленим пропаном, що зберігаються під високим тиском, відбувається його закипання з швидким випаровуванням, викид в атмосферу і утворення хмари газопаровоздушних суміші. Коли об'ємна концентрація пропану перевищує 7-9%, може статися вибух.

Для визначення наслідків вибуху газопаровоздушних суміші (ГПВС) необхідно оцінити фізичну стійкість об'єкта до вражаючих факторів вибуху ГПВС. У ситуації, що розглядається вражаючими чинниками є ударна хвиля і можливість розвитку пожежної обстановки на об'єкті.

1.1 Оцінка впливу ударної хвилі на об'єкт

1.1.1 Характеристики ударної хвилі

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

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

Зону вогнища вибуху ГПВС можна представити у вигляді 3-х концентричних кіл з центром у точці вибуху, які мають радіуси , і (Рис.1), де:

- Радіус зони детонаційної хвилі;

- Радіус зони ураження продуктами вибуху;

- Зона дії повітряної ударної хвилі.

Для кожної з цих зон вважають надмірний тиск, за яким визначають наслідки вибуху.

, М,

де - Кількість зрідженого газу, т.

У межах діє = 1700кПа.

, М, у межах змінюється від 1650 до 300кПа.

, КПа,

де - Відстань від центру вибуху до місця розташування об'єкта.

У третій зоні визначається в залежності від величини :

при ,

при

1.1.2 Вражаючі фактори ударної хвилі

Поразка ударною хвилею виникає внаслідок впливу надлишкового тиску і швидкісного напору повітря і призводить до руйнування будівель і поразкам людей (безпосереднім, якщо людина знаходиться на відкритому просторі, або непрямим, в результаті ударів уламками зруйнованих будівель і споруд).

Стосовно до цивільних і промислових будівель ступеня руйнування характеризуються наступним станом конструкції:

Cлабое руйнування: руйнуються віконні та дверні заповнення, легкі перегородки, частково покрівля, можливі тріщини в стінах верхніх поверхів. Будівля може експлуатуватися після проведення поточного ремонту.

Середнє руйнування: руйнування дахів, внутрішніх перегородок, вікон, обвалення окремих ділянок горищних перекриттів. Для відновлення будівлі необхідний капітальний ремонт.

Сильне руйнування: характеризується руйнуванням несучих конструкцій і перекриттів верхніх поверхів, освітою тріщин у стінах і деформацією перекриттів нижніх поверхів. Використання приміщень стає неможливим, а ремонт недоцільним.

Повне руйнування: руйнуються всі основні елементи будівлі, включаючи несучі конструкції. Використовувати будинку неможливо.

Ступінь руйнування будівель залежить від стійкості конструкції будівель до впливу надлишкового тиску у фронті ударної хвилі.

1.2 Оцінка пожежної обстановки

Залежно від потужності вибуху і викликаних ним руйнувань в адміністративній будівлі може розвинутися пожежна обстановка. Імовірність виникнення і поширення пожеж залежить від:

ступеня вогнестійкості будівель і споруд;

категорії пожежонебезпеки виробництва;

відстані між будівлями та спорудами;

погодних умов.

1.2.1 Вплив ступеня вогнестійкості будівель і споруд на розвиток пожежної обстановки

Ступінь вогнестійкості будівель і споруд залежить від опірності матеріалів будівель до вогню. По вогнестійкості будівлі і споруди поділяються на п'ять категорій. I - основні елементи виконані з негорючих матеріалів, а несучі конструкції мають підвищену опірність до дії вогню; II - основні елементи виконані з негорючих матеріалів; III - з кам'яними стінами і дерев'яними оштукатуреними перегородками та перекриттями; IV - оштукатурені дерев'яні будівлі; V - дерев'яні неоштукатурені будови. Орієнтовний час розвитку пожежі до повного охоплення будівлі вогнем: для будівель і споруд I і II ступеня - не більш 2ч, будівель і споруд III ступеня - не більш 1.5ч, для будівель і споруд IV та V ступенів - не більше 1 год.

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

1.2.2 Вплив категорій пожежонебезпеки виробництва на розвиток пожежної обстановки

За пожежною небезпекою об'єкти відповідно до характеру технологічного процесу поділяють на п'ять категорій: А, Б, В, Г, Д. Об'єкти категорій А - Г пов'язані з нафтопереробним, хімічним, столярним, текстильною та подібного роду виробництвом. Об'єкти категорії Д пов'язані зі зберіганням і переробкою негорючих матеріалів. Найбільш пожежонебезпечні перші дві категорії.

1.2.3 Вплив відстаней між будівлями на поширення пожеж

Поширення пожеж визначається щільністю забудови території. Для будівель I і II ступенів вогнестійкості щільність забудови має бути більше 30%, для будинків III ступеня - більше 20%, для будівель IV і V ступенів - більше 10%.

1.2.4 Вплив погодних умов на поширення пожеж

Швидкість вітру також впливає на швидкість розповсюдження пожежі. При зазначених у п.2.2.3 поєднаннях швидкість розповсюдження вогню при швидкості вітру 3-5 м / с буде складати: при забудові II і III ступеня вогнестійкості 60-120 м / год, IV і V ступеня - 120-300 м / год

1.2.5 Оцінка впливу теплового імпульсу вогняної кулі на пожежну обстановку

Величина теплового потоку від вогняної кулі характеризується: радіусом вогняної кулі: , М, і часом його існування , Сек, де - Половина маси зрідженого палива, т.

Потік випромінювання кВт / м 2 від вогняної кулі, що падає на елемент об'єкта, визначається за формулою: , КВт/м2, де = 270кВт/м2 - потужність поверхневої емісії вогняної кулі, - Коефіцієнт, що враховує фактор кута падіння, - Провідність повітря. Коефіцієнт і провідність визначаються за формулами:

, ,

де .

Імпульс теплового потоку випромінювання визначається за формулою:

, КДж / м 2.

Займання різного роду матеріалів залежить від величини теплового імпульсу, а гранична величина імпульсу теплового потоку для шкіри людини становить 42 кДж / м 2.

Гранично безпечний радіус (радіус евакуації) для людини становить , М.

1.2.6 Оцінка впливу вторинних вражаючих факторів на пожежну обстановку

При виникненні пожежі необхідно враховувати вторинні вражаючі фактори, такі як руйнування газопроводів, пробої і прориви електропроводки, кабелів і т.п.

1.2.7 Вплив пожежі на людей і елементи об'єкта

Під час пожежі елементи об'єкта і люди піддаються тепловому випромінюванню. Можливість виникнення вогнищ займання і горіння встановлюється за даними займистості матеріалів. Опіки, отримані людиною під час пожежі, поділяються на чотири ступені по тяжкості поразки організму і викликаються тепловими імпульсами певної величини. Так, опіки першого ступеня можуть бути викликані тепловим імпульсом 80-160кДж, другого ступеня - 160-400кДж, третьої - 400-600кДж, четвертої - 600кДж і вище. Ступінь отриманих опіків визначається і характером одягу людини і ступенем її возгораемости.

1.3 Оцінка стійкості елементів об'єкта

На підставі розрахунків необхідно визначити ступінь пошкодження об'єкта та виявити необхідні заходи щодо підвищення стійкості роботи об'єкта.

У даній роботі приймається допущення, що при масі газу 100 і більше тонн наслідки вибуху і горіння порівнянні з наслідками застосування ядерної зброї.

2. Розрахункова частина

2.1 Вихідні дані

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

2.2 Розрахунок

2.2.1 Оцінка впливу повітряної ударної хвилі на елементи об'єкта

м,

т.к отже, вважаємо :

м

, Отже, припускаємо, що будівля потрапляє в зону повітряної ударної хвилі і вважаємо надлишковий тиск для цієї зони. Визначимо величину

; Так як , То

кПа.

Висновки:

будівля потрапляє в зону сильних і повних руйнувань. При надмірному тиску кПа будівлю отримає сильні і повні руйнування, тобто порушення несучих конструкцій і перекриттів верхніх поверхів, з утворенням тріщин у стінах і деформацією перекриттів нижніх поверхів. Використання приміщень стає неможливим, а ремонт недоцільним.

Велика ймовірність того, що будівля буде повністю зруйновано і єдиним чинником, що пом'якшує дію повітряної ударної хвилі, є великі віконні прорізи. Будівлі з великою кількістю і великою площею прорізів більш стійкі, тому що в першу чергу руйнуються заповнення премії, а несучі конструкції при цьому відчувають менше навантаження, отже при вибуху ГПВС будуть вибиті стекла. При цьому можливі ураження оператора і техніки як зруйнованими перекриттями, так і осколками скла.

Так як щільність забудови невелика (менше 50%), то екранує, прилеглих будівель незначно і тиск ударної хвилі на будівлі не зменшується.

2.2.2 Оцінка пожежної обстановки

Радіус вогняної кулі:

м,

час його існування

сек.

Потік випромінювання від вогняної кулі:

, = 270кВт / м 2, ,

,

кВт / м 2.

Імпульс теплового потоку випромінювання дорівнює:

, КДж / м 2.

Висновки: так як розрахункова величина імпульсу теплового потоку дорівнює 470кДж / м 2, а гранична величина імпульсу теплового потоку для шкіри людини становить 42кДж/м2 [Л2], то людина отримає опіки третього ступеня. Одяг на людині повинна бути щільна і переважно з натуральних матеріалів, так як синтетичні тканини спалахують набагато швидше. Гранично безпечний радіус (радіус евакуації) для людини становить м, так що можна зробити висновок, що будівля знаходиться в неприпустимій близькості від сховища зріджених вуглеводнів. Техніка, розміщена в будинку, також отримає пошкодження, оплавитися пластмасові частини. Крім того, можливе виникнення пожеж через вторинних вражаючих факторів: пробоїв і порушення електропроводки. Так як при цьому будівля має I - II ступінь вогнестійкості і за категоріями пожежонебезпеки виробництво відноситься до категорії Д, то можливі не суцільні пожежі, а тління і горіння в завалах, з урахуванням того, що будівля отримає сильні і повні руйнування.

Так як середня відстань між будівлями 40-50м, а при I і II ступенях вогнестійкості будівель для виникнення суцільних пожеж відстань між будівлями повинна бути не більше 10-15м, то ймовірність виникнення суцільних пожеж мала. Швидкість вітру також буде мало впливати на поширення пожежі, так як вона невелика, а суцільних пожеж, як було сказано вище, не виникне.

3. Пропозиції щодо захисту

3.1 Віднесення сховища на безпечну відстань від будівлі

Знайдемо відстань видалення, при якому будівлю отримає слабкі руйнування. Приймемо кПа.

Після перетворень, вважаючи кПа, слід:

, Звідси , Т.к , Отже

м. -

відстань, на яке необхідно перемістити склад зі зрідженими вуглеводнями від адміністративної будівлі, щоб воно отримало слабкі пошкодження.

Захист оператора:

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

Знайдемо мінімальне відстань видалення, при якому будівля не отримає руйнувань. Приймемо кПа.

Після перетворень, вважаючи кПа, слід:

,

звідси , Т.к , Отже

м. -

відстань, на яке необхідно перемістити склад зі скрапленим пропаном, щоб будівля не отримала пошкоджень.

3.2 Зменшення маси зберігається пропану

В якості ще однієї запобіжні заходи можна зменшити масу зберігається пропану.

Порахуємо масу пропану, при якій імпульс теплового потоку випромінювання , КДж / м 2, мінімальний. Приймемо кДж / м 2, як граничне значення чутливості шкіри людини, при якому він не отримує опіків.

, кВт / м 2, ,

отже,

,

Складемо систему рівнянь:

Підставимо в друге рівняння значення , і , Висловимо через . Отримаємо рівняння:

,

підставимо

,

після деяких перетворень отримаємо:

,

звідси т, отже загальна маса газу т.

При цьому кПа. Можна зробити висновок, що при масі газу 12.72т будівлю піддасться слабким руйнувань, а імпульс теплового потоку буде безпечним для техніки і здоров'я людини.

Захист оператора:

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

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

Приймемо

кПа, , ,

м,

підставляємо в , І знаходимо т. Можна зробити висновок, що при даній масі газу сховище можна залишити на відстані 315м від адміністративної будівлі без яких би то не було наслідків.

У будь-якому випадку рекомендується проводити подібні розрахунки при плануванні розташування адміністративних будівель в безпосередній близькості від небезпечних об'єктів.

3.3 Заходи щодо недопущення аварійної ситуації на сховищі пропану

Необхідно також передбачити заходи щодо запобігання аварійної ситуації на сховищі пропану:

Датчики високої чутливості, що реагують на перевищення норми концентрації газу в повітрі при пошкодженні ємності з пропаном. При цьому повинна спрацьовувати сигналізація в диспетчерській або аварійній службі.

Датчики високої чутливості, що реагують на перевищення норми температури в сховищі, навіть забезпечені сигналізацією.

Датчики високої чутливості, що реагують на перевищення норм тиску в сховище пропану, забезпечені сигналізацією.

Наявність систем вентиляції.

Система автоматичних клапанів на газопроводах, які автоматично перекриваються при різкому зростанні витрат газу (різке зростання витрат газу як правило свідчить про прорив газапровода).

3.4 Заходи щодо захисту адміністративного будинку

Будівництво будівель і споруд відповідної вогнестійкості і стійкості до вражаючих факторів ударної хвилі.

Конструювання і проектування будинку з урахуванням вимог протипожежної безпеки.

3.5 Заходи щодо індивідуальний захист оператора

Наявність засобів індивідуального захисту у персоналу на виробництві.

Навчання персоналу наданню першої медичної допомоги.

Наявність плану евакуації.

Наявність засобів пожежогасіння.

Ергономіка

Введення

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

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

Ергономіка - це дисципліна, комплексно вивчає людину (групу людей) у конкретних умовах його (їх) діяльності, пов'язаної з використанням технічних засобів.

Під час роботи часто виникають ситуації, в яких оператор ЕОМ повинний за короткий термін прийняти правильне рішення. Для успішної роботи в таких умовах необхідна раціонально організована навколишнє середовище, огороджувальна працівника від впливу сторонніх подразників, якими можуть бути похмура забарвлення ЕОМ і приміщення ПЦ, незручне розташування сигналізації, клавіш управління і т.п. Тому всіма засобами треба знижувати стомлення і напруга оператора ЕОМ, створюючи обстановку виробничого комфорту.

Аналіз перспектив розвитку технічних засобів показує, що поліпшення їх ергономічних характеристик становить важливий резерв підвищення ефективності діяльності оператора. Метою ергономічного аналізу є не тільки підвищення продуктивності праці людини й усунення його помилок, але й збереження при цьому здоров'я людини, розвиток його особистості. Необхідний грамотний підхід, перш за все до робочих місць, як до функціонально і конструктивно закінченим виробам, а також до розміщення і взаємного розташування окремих технічних засобів в робочій зоні, тобто на столах операторів і навколо них.

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

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

1. Теоретична частина

1.1 Базовий підхід до конструювання робочого місця оператора

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

дозволяє спростити процес конструювання та макетування;

забезпечує можливість безперервного вдосконалення апаратури без докорінних змін конструкції;

скорочує обсяг конструкторської документації на етапі виробництва;

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

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

1.2 Поняття робочого місця і робочої зони оператора

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

Якщо робоче місце оператора не є конструктивно закінченого вироби, а складається з набору окремих технічних засобів, то говорять про робочих зонах операторів. Для робочих зон операторів характерна гнучкість, перестраіваемость, нарощування функцій технічних засобів при їх експлуатації.

1.3 Формування типового складу робочої зони

У загальному випадку в типовий склад робочої зони включають:

засоби відображення інформації індивідуального користування (блоки відображення дисплеїв, екрани персональних ЕОМ, і т.п.);

засоби керування та вводу інформації (пульти дисплеїв, клавіатура і пристрої позиціонування курсора);

пристрою друку, документування і зберігання інформації;

допоміжне обладнання (засоби оргтехніки, сховища для носіїв інформації, пристрої місцевого освітлення і т.д.)

стіл і крісло оператора.

При ергономічної оцінки робочого місця оператора необхідно вибрати два-три ергономічних принципу в якості ведучих. Ергономічними принципами, які необхідно враховувати при формуванні робочої зони оператора, можуть бути наступні:

облік послідовності і частоти використання окремих засобів протягом робочої зміни;

врахування вимог до швидкості і точності прийому інформації оператором;

врахування особливостей конструктивного виконання технічних засобів та апаратури.

1.3.1 Організація простору робочого місця оператора

Робоче місце оператора складається з [Л2]:

простору, займаного обладнанням;

простору необхідного для технічного обслуговування і ремонту;

зони проходів, що забезпечує нормальне функціонування обладнання;

сенсомоторного простору (частини простору робочого місця, в якій здійснюється рухова та сенсорна робота людини).

1.3.2 Умови, яким має задовольняти робоча зона

Просторові і розмірні співвідношення між елементами робочого місця повинні бути достатніми для:

розміщення працюючої людини з урахуванням його робочих рухів і переміщень згідно технологічного процесу;

розташування засобів управління в межах максимальної і мінімальної кордонів моторного простору;

оптимального огляду візуальної інформації,

зміни робочої пози і робочого положення;

вільного доступу до обладнання при ремонті і наладки;

раціонального розміщення основних і допоміжних засобів праці;

ведення записів, роботи з документами і приладами.

У даному дипломному проекті провідні ергономічні принципи, характерні для робочого місця оператора і його реалізація, будуть розглянуті в розділі 2.

2. Реалізація ергономічної оцінки робочого місця оператора

Виберемо в якості основних ергономічних вимог організації робочого місця оператора наступні:

особливості конструктивного виконання і розташування технічних засобів та апаратури;

тривалість роботи з даною апаратурою;

точність і ефективність прийому інформації.

Перший принцип визначається обраною апаратурою, тоді як другий і третій залежать від першого і визначають функціональний стан оператора.

2.1 Основні ергономічні вимоги, які пред'являються до дисплея

Екран монітора повинен розміщуватися на столі або на підставці так, щоб відстань спостереження інформації на його екрані не перевищувало 700мм, оптимальне відстань - 450-500мм.

Екран дисплея по висоті повинен бути розташований на столі або підставці так, так, щоб кут між нормаллю до центра екрана та горизонтальною лінією погляду становив 20 градусів.

Зоровий комфорт в основному визначається наступними чинниками:

розмірами знаків;

відстань між знаками по горизонталі: 0,25 висоти знака;

відстань між рядками: 0,5-1,0 висоти знака;

кількістю знаків у рядку: 4-80;

максимально допустимою кількістю рядків для кольорового зображення: не більше 25.

Схема розміщення алфавітно-цифрового дисплея (АЦД) наведена на малюнку 1.

Рис. 1

Кут спостереження екрана, а також інших засобів відображення в горизонтальній площині (кут розвороту блоку відображення АЦД щодо оператора) в загальному випадку не повинен перевищувати 60 градусів. При наявності трьох і більше дисплеїв в робочій зоні допускається збільшення цього кута, але він не повинен перевищувати 90 градусів. При цьому має використовуватися обертове крісло.

2.2 Основні ергономічні вимоги, які пред'являються до клавіатури

Пульт дисплея повинен бути розміщений на столі або підставці так, щоб висота клавіатури пульта по відношенню до підлоги становила 650-720 мм. При розміщенні пульта на стандартному столі висотою 750 мм необхідно використовувати крісло з регульованою висотою сидіння і підставку під ноги. Пульт рекомендується розміщувати прямо перед оператором або лівіше, якщо передбачається робота оператора з документами та ведення записів.

Для оператора введення даних документ (бланк) рекомендується розташовувати на відстані 450-500 мм від очей оператора, переважно зліва, при цьому кут між екраном АЦД і документом у горизонтальній площині не повинен перевищувати 30-40 градусів.

Клавіатуру, маніпулятор "миша" слід розташовувати в оптимальній зоні - частини простору робочого місця, обмеженого дугами, описуваними передпліччями при русі в ліктьових суглобах з опорою в точці ліктя і з відносно нерухомим плечем. Ця зона складає не більше 300 - 400мм від точки опори ліктя оператора [23].

2.3 Розміщення крісла оператора в робочій зоні

Крісло оператора має бути стійким. Його конструкція, розміри, форма, нахил сидіння і спинки повинні дозволяти сидіти, випроставшись, підтримуючи тяжкість верхньої частини тулуба не напругою м'язів спини, а шляхом опори на спинку. Кращою є квадратна форма сидіння зі сторонами рівними 400 мм, і з виїмкою, відповідній формі стегна.

Сидіння повинно мати певний нахил назад (на 5-6 градусів), що забезпечує стійкість пози, висота сидіння крісла від поля 400-450 мм. Якщо за умовами роботи сидіння розташовано вище, необхідно мати підставку для ніг. Спинка крісла повинна мати увігнуту форму.

Рекомендована ширина спинки 300 мм. Кут нахилу спинки слід вибирати залежно від призначення крісла. Для оператора, що працює за пультом з ЗПТ, оптимальним є нахил 5-10 градусів. При тривалій роботі за пультом (більше 6 годин), якщо під час роботи необхідний відпочинок, доцільно мати можливість змінити за бажанням оператора кут нахилу спинки стільця, але не більше ніж на 45 градусів.

2.4 Розміщення пристроїв документування

Пристрої документування, введення-виведення інформації рекомендується розташовувати праворуч від оператора в зоні максимальної досяжності. Шумливі пристрої слід виносити за межі робочої зони.

2.5 Розташування робочого місця оператора в приміщенні

Під час роботи часто виникають ситуації, в яких оператор ЕОМ повинний за короткий термін прийняти правильне рішення. Для успішної роботи в таких умовах необхідна раціонально організована навколишнє середовище.

У ВЦ, як правило, застосовують одностороннє природне бічне освітлення, причому светопроеми з метою зменшення сонячної інсоляції влаштовують з північної, північно-східною або північно-західною орієнтацією. У машинних залах робочі місця операторів, що працюють з дисплеями, розташовують подалі від вікон і таким чином, щоб віконні прорізи перебували збоку. Якщо екран дисплея звернений до віконного отвору, необхідні спеціальні екрануючі пристрої (рис.2). Вікна рекомендується забезпечувати светорассеивающими шторами, регульованими жалюзі або сонцезахисної плівкою з металізованим покриттям [17].

Екран АЦД, документи, клавіатура пульта повинні бути розташовані так, щоб перепад яскравостей їх поверхонь, що залежить від їх розташування відносно джерел світла, не перевищував 1: 10 при рекомендованому значенні 1: 3. При яскравості зображення на екрані 50-100 кд / м (номінальне значення) освітленість документа повинна становити 300-500 лк. Повинні бути виключені сліпучі яскравості, відблиски і відображення від скла екрану.

Для виключення засвічення екранів дисплеїв прямими світловими потоками світильники загального освітлення мають в своєму розпорядженні збоку від робочого місця, паралельно лінії зору оператора і стіні з вікнами.

Також розміщення світильників дозволяє виробляти їх послідовне включення в залежності від величини природної освітленості і виключає роздратування очей чергуються смугами світла і тіні, що виникає при поперечному розташуванні світильників. [17].

Для забезпечення оптимальних умов роботи операторів дисплейних пристроїв необхідна певна колірна обробка приміщень. Так, при використанні екранів червонувато-жовтого кольору з яскравістю світіння до 15кд/м2 стіну, протилежну екранів, фарбують у насичений темно-коричневий колір з коефіцієнтом відбиття = 0.2, а інші стіни - в червоно-коричневий колір з = 0.35. При сприйнятті інформації на екрані зеленого кольору доцільно фарбувати стіну, на яку спрямований погляд оператора, в оливково-зелений колір з = 0.4. Забарвленні поверхонь слід надавати матову фактуру [17].

Висновок

Отже, при ергономічної оцінки робочого місця оператора в якості основних ергономічних вимог були обрані наступні:

особливості конструктивного виконання і розташування технічних засобів та апаратури;

тривалість роботи з даною апаратурою;

точність і ефективність прийому інформації.

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

Таблиця 1.

Елементи робочого місця оператора

Технічні характеристики, які пред'являються до елемента робочого місця оператора

На яку вимога впливає дана характеристика

Екран монітора

Оптимальна відстань спостереження інформації на екрані монітора - 450-500мм.

2


Відстань між знаками по горизонталі: 0,25 висоти знака;

відстань між рядками: 0,5-1,0 висоти знака;

кількість знаків у рядку: 4-80;

максимально допустима кількість рядків для кольорового зображення: не більше 25.


2, 3


Кут спостереження екрана не повинен перевищувати 60 градусів. При наявності трьох і більше дисплеїв в робочій зоні допускається збільшення цього кута, але він не повинен перевищувати 90 градусів.

2


Клавіатура

Клавіатура повинна бути розміщена на столі або підставці так, щоб висота клавіатури пульта по відношенню до підлоги становила 650-720мм. При розміщенні пульта на стандартному столі висотою 750мм необхідно використовувати крісло з регульованою висотою сидіння і підставку під ноги.

Клавіатуру, маніпулятор "миша" слід розташовувати в оптимальній зоні-не більше 300 - 400мм від точки опори ліктя оператора.


1, 2



Бланк даних

Для оператора введення даних документ (бланк) рекомендується розташовувати на відстані 450-500 мм від очей оператора, переважно зліва, при цьому кут між екраном АЦД і документом у горизонтальній площині не повинен перевищувати 30-40 градусів.


2, 3


Крісло оператора

Конструкція крісла оператора повинна дозволяти сидіти, підтримуючи тяжкість верхньої частини тулуба не напругою м'язів спини, а шляхом опори на спинку. Форма сидіння - квадратна зі сторонами 400 мм, і з виїмкою, за формою стегна. Нахил сидіння назад - 5-6 градусів, висота сидіння крісла від статі 400-450 мм. Якщо сидіння розташовано вище, необхідно мати підставку для ніг. Спинка крісла повинна мати увігнуту форму, ширина спинки - 300 мм. Кут нахилу спинки 5-10 градусів. При роботі більше 6ч на час відпочинку кут нахилу спинки можна змінити, але не більше ніж на 45 градусів.


1, 2


Пристрої документи-

Вання

Пристрої документування інформації рекомендується розташовувати праворуч від оператора в зоні максимальної досяжності, шумливі виносити за межі робочої зони.

1, 3

Навколишній приміщення

Екран АЦД, документи, клавіатура пульта повинні бути розташовані так, щоб перепад яскравостей їх поверхонь, що залежить від їх розташування відносно джерел світла, не перевищував 1: 10 при рекомендованому значенні 1: 3. При яскравості зображення на екрані 50-100 кд / м (номінальне значення) освітленість документа повинна становити 300-500 лк. Повинні бути виключені сліпучі яскравості, відблиски і відображення від скла екрану.

При використанні екранів червонувато-жовтого кольору з яскравістю світіння до 15кд/м2 стіну, протилежну екранів, фарбують у насичений темно-коричневий колір з коефіцієнтом відбиття = 0.2, а інші стіни - в червоно-коричневий колір з = 0.35. При сприйнятті інформації на екрані зеленого кольору стіну, на яку спрямований погляд оператора, забарвлюють в оливково-зелений колір з = 0.4. Забарвленні поверхонь слід надавати матову фактуру.

1, 2, 3

Висновок

Результатом даного дипломного проекту є розробка програм формування і обробки запитів. Програми розроблені для технічних засобів АРМ РД і функціонують спільно з рештою ПЗ АРМ РД.

У процесі розробки програм виконані вимоги до функціональних характеристик, умови експлуатації та вимоги до операційної і програмної сумісності. У заключній частині дипломного проекту була дана оцінка результатів роботи програм і дані рекомендації оператору АРМ РД.

Обсяг пам'яті, займаний програмою дорівнює: V = 64 Кбайта.

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

Договірна ціна розробки складає: Цд = 916 152 руб. у цінах 1998р.

У розділі "Охорона праці та техніка безпеки" був вибраний оптимальний режим освітленості та проведено розрахунок інформаційного навантаження оператора.

Значення інформаційного навантаження оператора АРМ РД становить 0.6 біт / с.

У розділі "Громадянська оборона" були наведені вимоги щодо інженерного захисту оператора та обладнання ПЕОМ від впливу високих температур під час вибухів у НС мирного часу.

У розділі "Ергономіка" була проведена оцінка робочого місця оператора і розроблено оптимальне робоче місце оператора.

Організаційно-економічна частина

Бізнес-план розробки

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

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

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

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

Даний розділ проекту включає в себе розрахунок витрат на тему, визначення договірної ціни розробки і складання мережного графіка робіт.

ВИЗНАЧЕННЯ ВИТРАТ НА ТЕМУ.

Для визначення витрат на тему необхідно розрахувати наступні статті витрат:

основна заробітна плата персоналу,

додаткова заробітна плата,

відрахування на соціальні потреби,

виробничі відрядження,

оплата робіт, виконуваних сторонніми організаціями,

накладні витрати,

основні матеріали і покупні вироби.

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

Результати розрахунку приводяться в таблиці 2.1

Таблиця 2.1 Основна заробітна плата персоналу по темі

N

п / п

Найменування

етапів

Виконавці

Трудомісткість, в чол. міс.

Посадовий оклад, крб.

Витрати по зарплаті, руб.

1.

Проведення НДР.

Поч.

Відділу

Вед. інж

Інж.1 кат.

5

5

15

2000

1200

1000

10000

6000

15000


2.

Монтаж мережі.

Монтажник

Робочий

Інж.1 кат.

5

5

2

700

700

1000

3500

3500

2000

3.

Налагодження мережі.

Вед. інж

Монтаж-ник

Інж.1 кат.

2

2

7

1200

700

1000

2400

1400

7000


Разом




50800

Таким чином, основна заробітна плата персоналу становить 50800 руб.

Зосн = 50800 руб.

Додаткова заробітна плата наукового і виробничого персоналу складає 20% від основної.

Здоп = Зосн * 0.2 = 50800 * 0.2 = 10160 руб.

Відрахування на соціальні потреби становлять 38.5% від суми основної та додаткової зарплат.

ЗСН = 0.385 * (Зосн + Здоп) =

= 0.385 * (50800 + 10160) = 23470 руб.

Розрахунок витрат на матеріали і покупні вироби проводиться на основі зведеної відомості (табл.2.2). (Ціни на вироби прийняті на початок жовтня 1998р).

Таблиця 2.2. Витрати на матеріали і покупні вироби

Матеріал,

покупне виріб

Кількість,

од.

Ціна за од.,

руб.

Сума,

руб.

Сервер

4

36000

144000

Раб. станція

60

18000

1080000

Мережеве обладнання

8

1260

100800

Кабель

500 (м)

36

18000

Разом



1342800

У вартість матеріальних витрат включаються також і транспортно-заготівельні витрати. Вони становлять 10% від Змат.

Зтр = 0.1 * Змат

Зтр = 0.1 * 1342800 = 134280 руб.

Загальна вартість матеріальних витрат визначається як сума Змат і Зтр.

Змато = Змат + Зтр

Змато = 1342800 + 134280 = 1477080 крб.

Накладні витрати складають 250% від основної зарплати виробничого пресонала і вважаються за формулою:

Зн = 2.5 * Зосн = 2ю5 * 50800 = 127000 руб.

Витрати, пов'язані з послугами суміжних організацій становлять 20% від Зосн. У даній роботі до послуг суміжників не вдаються, і, отже, ця стаття не враховується при подальших розрахунках калькуляції на тему.

Відрядження становлять 20% від суми основної та додаткової заробітних палат:

Зком = 0.2 * (Зосн + Здоп); Зком = 0.2 * (50800 + 10160) = 12192 руб.

Всі розрахунки за статтями калькуляції роботи зведені в таблицю 2.3.

Таблиця 2.3 Кошторисна калькуляція по темі.

N п / п

Стаття витрати

Сума, руб.

1.

Основна заробітна плата

50800

2.

Додаткова заробітна плата

10160

3.

Відрахування на соціальні потреби

23470

4.

Виробничі відрядження

12192

5.

Оплата робіт, виконуваних сторонніми організаціями

-

6.

Накладні витрати

127000

7.

Матеріали й куплені вироби

1477080


Разом

1700702

Таким чином собівартість розробки складає 1700702 крб.

С = 1700702 крб.

ВИЗНАЧЕННЯ ДОГОВІРНОЇ ЦІНИ РОЗРОБКИ.

За допомогою розрахованої вище собівартістю розробки можна визначити її договірну ціну. Вона розраховується за формулою:

Цд = С + Фз. п. * Нр * К / 100, де (2.1)

С - собівартість розробки,

Фз. п. - заробітку плата співробітників, що безпосередньо беруть участь у виконанні роботи, руб.,

Нр - рентабельність,%,

К - коефіцієнт, що враховує заробітну плату обслуговуючих та управлінських підрозділів.

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

При С = 1700702 крб., Фз. п. = Зосн + Здоп = 60960 руб., Нр = 15%, К = 5

визначимо договірну ціну на розробку:

Цд = 1700702 + 60960 * 15 * 5 / 100 =

= 1746422 крб.

Договірна ціна розробки становила 1746422 крб.

ПЛАНУВАННЯ РОБІТ ПО ТЕМІ З ЗАСТОСУВАННЯМ МЕРЕЖЕВИХ МЕТОДІВ.

Як правило, планування робіт по темі ускладнюється тим, що в роботі беруть участь кілька виконавців, початок багатьох робіт залежить від результатів інших і т.д. У таких умовах найбільш зручними є системи мережевого планування і управління (СПУ).

Планування НДР із застосуванням мережевого методу ведеться в наступному порядку:

складається перелік подій і робіт,

встановлюється топологія мережі,

будується сітьовий графік по темі,

визначається тривалість робіт,

розраховуються параметри мережного графіка,

визначається тривалість критичного шляху,

проводиться аналіз та оптимізація мережного графіка.

Перелік подій наведено в таблиці 2.4, перелік робіт та їх тривалості - у таблиці 2.5. На підставі цих переліків будується сітьовий графік, зображений на рис.2.1.

Таблиця 2.4 Перелік подій мережевого графіка.

Код події

Подія

1.

ТЗ на систему розроблено.

2.

ТЗ на систему затверджено.

3.

Специфікація закуповуваних ТЗ розроблена.

4.

Специфікація закуповуваного ПО розроблена.

5.

Специфікація закуповуваних ТЗ затверджена.

6.

Специфікація закуповуваного ПО затверджена.

7.

Вхідний контроль закуповуваних ТЗ проведений.

8.

Вхідний контроль закуповуваного ПО проведений.

9.

Стенд створений.

10.

Встановлено і налаштована мережева ОС.

11.

Встановлено антивірусне ПЗ.

12.

Встановлені та налагоджені спеціальні програмні засоби захисту інформації.

13.

Розроблена і випущена інструкція з використання антивірусного ПЗ.

14.

Розроблена і випущена інструкція з використання вбудованих засобів захисту мережевої ОС.

15.

Визначено вимоги до додаткових програмних засобів по захисту інформації.

16.

Розроблена інструкція системного адміністратора по застосуванню спеціальних засобів захисту інформації.

17.

Розробка рекомендацій з використання засобів захисту на ЛВС замовника.

18.

Закінчено роботи по створенню системи захисту інформації на ЛВС замовника.

19.

Закінчено роботи по випробуванню та здачі замовникові системи.

20.

Оформлений протокол і акт випробувань.

Таблиця 2.5 Перелік робіт мережного графіка.

ij

Робота

tmin

tmax

to

1-2

Затвердження ТЗ на систему.

25

30

27

2-3

Розробка специфікації закуповуваних ТЗ.

5

7

6

2-4

Розробка специфікації закуповуваного ПЗ.

10

12

11

3-5

Затвердження специфікації закуповуваних ТЗ.

2

3

2

4-6

Затвердження специфікації закуповуваного ПЗ.

3

4

3

5-7

Проведення вхідного контролю закуповуваних ТЗ.

5

7

6

6-8

Проведення вхідного контролю закуповуваного ПЗ.

10

14

12

7-9

Монтаж стенда.

10

15

12

9-10

Налагодження стенду.

3

4

3

8-10

Установка мережевої ОС.

2

3

2

10-11

Установка антивірусного ПЗ.

2

3

2

10-12

Встановлення спеціальних програмних засобів захисту інформації.

2

3

2

11-13

Розробка інструкції з використання антивірусного ПЗ.

8

10

9

10-14

Розробка інструкції з використання вбудованих засобів захисту мережевої ОС.

20

24

22

12-15

Формування вимог до додаткових програмних засобів по захисту інформації.

22

26

24

ij

Робота

tmin

tmax

to

12-16

Розробка інструкції адміністратора щодо застосування спеціальних засобів захисту інформації.

25

29

27

13-17

Випуск інструкції з використання антивірусного ПЗ.

5

8

6

14-17

Випуск інструкції з використання вбудованих засобів захисту мережевих ОС.

7

9

8

15-17

Випуск інструкції із застосування додаткових програмних засобів захисту.

5

6

5

16-17

Випуск інструкції адміністратора щодо застосування спеціальних засобів захисту.

5

7

6

17-18

Проведення робіт зі створення системи захисту інформації на ЛВС замовника.

35

42

38

18-19

Проведення випробувань і здача системи замовнику.

24

30

27

19-20

Оформлення протоколу та акту випробувань.

4

6

5

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

to = (3tmin + 2tmax) / 5, (2.2)

де to - очікувана тривалість робіт,

tmin - оптимістична оцінка,

tmax - песимістична оцінка.

Після побудови графіка і збору необхідних даних розраховують параметри мережі: терміни звершення подій, резерви часу, тривалість критичного шляху.

Будь-яка послідовність робіт в мережі називається шляхом. Шлях, що має найбільшу тривалість називається критичним (Tкр). У даній роботі критичний шлях дорівнює 161 дня і виділений на рис.2.1 жирною лінією.

Для розрахунку мережі "в термінах подій" використовуються такі поняття. Ранній термін настання події (Tpi) - мінімальний термін, необхідний для виконання всіх робіт, що передують даній події. Ранній термін настання події i визначається за формулою:

Tpi = max å toij. (2.3)

Пізній термін настання події (Tni) - максимально допустимий термін настання події i, при якому зберігається можливість дотримання ранніх строків настання наступних подій. Пізній строк визначається за формулою:

Tni = Tкр - max å to. (2.4)

Всі події в мережі, крім лежать на критичному шляху мають резерв часу (Ri), який визначається за формулою:

Ri = Tni - Tpi. (2.5)

При описі мережі "в термінах робіт визначаються ранні та пізні терміни початку і закінчення роботи. Ранній термін початку - Трнij = Трi, пізній строк початку - Тпнij = Tni - tij, ранній термін закінчення - Троij = Трi + tij, пізній термін закінчення - Тпоij = Tnj.

Роботи мережевої моделі можуть мати два види резервів: повний (Rnij) і вільний (Rcij). Повний резерв показує, на скільки може бути збільшена тривалість даної роботи або зрушено її початок так, щоб тривалість максимального з проходить через неї шляхів не перевищила критичного шляху. Повний резерв визначається

Rnij = Tnj - Tpi - tij. (2.6)

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

Rcij = Tpj - Tpi - Tij. (2.7)

Результати розрахунку параметрів мережного графіка представлені в таблиці 2.6

Таблиця 2.6 Тимчасові параметри робіт мережевого графіка.

ij

toij

Tрнij

Троij

Тпнij

Tпоij

Rnij

Rcij

1-2

27

0

27

0

27

0

0

2-3

6

27

33

27

33

0

0

2-4

11

27

38

27

38

0

0

3-5

2

33

35

33

35

0

0

4-6

3

38

41

39

42

1

0

5-7

6

35

41

35

41

0

0

6-8

12

41

53

42

54

1

0

7-9

12

41

53

41

53

0

0

9-10

3

53

56

53

56

0

0

8-10

2

53

55

54

56

1

1

10-12

2

56

58

56

58

0

0

10-11

2

56

58

56

58

0

0

11-13

9

58

67

76

85

18

0

ij

toij

Tрнij

Троij

Тпнij

Tпоij

Rnij

Rcij

10-14

22

56

78

56

78

0

0

12-15

24

58

82

62

86

4

0

12-16

27

58

85

58

95

10

0

13-17

6

67

73

85

91

18

18

14-17

8

78

86

83

91

5

5

15-17

5

82

87

86

91

4

4

16-17

6

85

91

85

91

0

0

17-18

38

91

129

91

129

0

0

18-19

27

129

156

128

156

0

0

19-20

5

156

161

156

161

0

0

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

Коефіцієнт напруженості шляху Кн (L) визначається за формулою

Т (L) - Т'кр (L)

Кн (L) = - ---------- -, (2.8)

Ткр - Т'кр (L)

де Т (L) - тривалість шляху, для якого визначається коефіцієнт напруженості,

Т'кр (L) - тривалість робіт даного шляху (L), що збігаються з роботами критичного шляху.

Коефіцієнти напруженості робіт даної розробки наведені в таблиці 2.7

Знайдемо ймовірність виконання всього комплексу робіт (Рк) за директивний термін 162 дні. Ця ймовірність визначається за допомогою аргументу нормальної функції розподілу ймовірностей:

Tд - Tкр

x = - ------- -, (2.9)

Ö å s tкрij

де n - число робіт, що лежать на критичному шляху, тд - директивний термін, s = 0,04 (tmax - tmin) - дисперсія роботи i, j критичного шляху (значення дисперсій наведені в таблиці 2.7).

Значення Рк знаходимо за її аргументу х, використовуючи таблицю інтегралів Фур'є.

Таблиця 2.7 Параметри мережного графіка.

ij

Кн

s tкрij

ij

Кн

s tкрij

1-2

1,0

1,0

10-12

1,0

0,04

2-3

1,0

0,16

10-14

0,2

0,64

2-4

0,08

0,16

11-13

0,1

0,16

3-5

1,0

0,04

12-15

0,23

0,64

4-6

0,1

0,04

12-16

1,0

0,64

5-7

1,0

0,16

13-17

0,16

0,36

6-8

0, 19

0,64

14-17

0,29

0,16

7-9

1,0

1,0

15-17

0,28

0,04

8-10

0,2

0,04

16-17

1,0

0,16

9-10

1,0

0,04

17-18

1,0

1,96

10-11

0,02

0,04

18-19

1,0

1,44




19-20

1,0

0,16

Аргумент нормальної функції розподілу ймовірностей дорівнює 0,32. Використовуючи таблицю інтеграла Фур'є, знаходимо значення функції Рк = 0,63. Так як значення Рк потрапляє в інтервал 0,35 <Рк <0,65, то мережний графік не потребує оптимізації.

Рис.2.1 Мережевий графік.

Додаток 1

Тексти програм

/ / Inquiry. prj

/ / INQUIRY \ inquiry. c

/ / Main (), initsearch (), mem_args ()

/ / Програма обробки запитів

# Include <stdio. H>

# Include <stdlib. h>

# Include <string. h>

# Include <fcntl. h>

# Include <sys / stat. h>

# Include <io. h>

# Include <dos. h>

# Include <alloc. h>

# Include "pxengine. H"

TABLEHANDLE tblh; / / дескриптор таблиці

RECORDNUMBER low, high; / / межі інтервалу пошуку

int nflds; / / кількість полів в таблиці

int nformat; / / формат результату

int handle; / / дескриптор файлу

void interval (long date1, long date2, char * time1, char * time2); / / визначення кордонів інтервалу пошуку

void search3 (char * argv [], int * x); / / пошук з перерахуваннями

void search2 (char * argv [], int * x, int n); / / пошук без перерахувань

void search1 (void); / / пошук тільки по даті і часу

void initsearch (char * argv [], int * x, int p, int n); / / вибір варіанту пошуку

void recprint (int nformat); / / розшифровка запису БД в рядок і запис цього рядка в файл

char sag [7] [81] = {

"ДАТА ЧАС ТЕКСТ ПОВІДОМЛЕННЯ \ r \ n",

"ДАТА ЧАС Напр-Е А N РР ІСТ НД ТЕКСТ ПОВІДОМЛЕННЯ \ r \ n",

"ДАТА ЧАС Напр-Е N РР ТЕКСТ ПОВІДОМЛЕННЯ \ r \ n",

"ДАТА ЧАС Напр-Е К-ВО НД 1СЛ 2СЛ 3СЛ 4СЛ ТЕКСТ ПОВІДОМЛЕННЯ \ r \ n",

"ДАТА ЧАС ТИП-У П НД ТЕКСТ ПОВІДОМЛЕННЯ \ r \ n",

"ДАТА ЧАС КСУМ0 КСУМ1 КСУМ2 КСУМ3 \ r \ n",

"ДАТА ЧАС КСУП1 КСУС1 КСУП2 КСУС2 КСУП3 КСУС3 \ r \ n"

}; / / Шапки таблиць

char * inqstr; / / рядки запиту

/ * Рядок аргументів функції main:

argv [1] - ім'я файлу БД, або "!", що означає, що рядок аргументів передається через пам'ять;

argv [2] - варіант пошуку; 0 - пошук по всій БД, 1 - пошук в єдиному інтервалі по даті і часу, 2 - пошук в інтервалі часу по кожному дню інтервалу дат, 3 - пошук за один день в інтервалі часу;

argv [3] - дата;

argv [4] - час;

argv [5] і далі - шукані значення полів БД (argv [5] - третього поля, argv [6] - четвертого поля і т.д.); "-" обоз-

начає будь-яке значення даного поля;, якщо є кілька шуканих значень по одному полю (перерахування) вони розділяються комами; прогалини в значеннях замінені на '_'. * /

void main (int argc, char * argv [])

{

int * x; / / x [i] - кількість шуканих значень за i-му полю

int n = 0; / / кількість полів, для яких задані значення для пошуку

int p = 0; / / кількість полів c перерахуваннями

/ / Значення x, n, p визначаються без обліку полів дати і часу

char * name [] = {"all_inf", "opi", "shk", "sbkdg", "fk", "ksum", "ksum0"};

/ / Імена баз даних

long date1, date2; / / граничні значення інтервалу дат

int a, i, j, k;

char * c;

char ** mem_args (void);

RECORDHANDLE rech;

RECORDNUMBER num;

/ / Отримання аргументів у разі їх передачі через пам'ять

if (argv [1] [0] == '!')

{

argv = mem_args ();

for (argc = 0; argv [argc]! = NULL; + + argc);

}

/ / Визначення формату запису для бази даних, до якої

/ / Вироблений запит

for (i = 0; i <= 6; + + i)

if (! strcmp (name [i], argv [1]) | |! strcmp (name [i], argv [1] +5))

{Nformat = i; break;}

/ / Відкриття файлу результатів запиту (inquiry. res) і

/ / Запис до нього рядків запиту і шапки таблиці

for (i = argc-1; argv [i] [0] =='-'; --i) argc -;

handle = open ("inquiry. res",

O_CREAT | O_TRUNC | O_WRONLY, S_IREAD | S_IWRITE);

for (i = 1, j = 0; i <argc;)

{

inqstr = (char *) calloc (82,1);

memset (inqstr +1, '', 79);

inqstr [79] = '\ r';

inqstr [80] = '\ n';

inqstr [81] = '\ 0';

for (c = inqstr; i <argc; + + i)

{

if (strlen (inqstr) + strlen (argv [i])> 78 + j)

{

if (strlen (argv [i])> 50 & & (strlen (inqstr) <70 | | strlen (argv [i])> 78))

{

for (k = j +77- strlen (inqstr); argv [i] [k]! =','; --k);

strcat (c, "");

strncat (c, argv [i] + j, k +1- j);

j = k +1;

}

break;

}

strcat (c, "");

strcat (c, argv [i] + j);

j = 0;

}

inqstr [strlen (inqstr)] = '';

_write (handle, inqstr, 81);

free (inqstr);

}

_write (handle, sag [nformat], 81);

/ / Ініціалізація роботи з БД

j = coreleft () / 1024-50;

if (j> 256) j = 256;

if (a = PXSetDefaults (j, 1,30, MAXLOCKHANDLES, 3, SortOrderAscii)) printf ("\ n% s", PXErrMsg (a));

if (a = PXInit ()) printf ("\ n% s", PXErrMsg (a));

if (a = PXTblOpen (argv [1], & tblh, 0,0)) printf ("\ n% s", PXErrMsg (a));

PXRecNFlds (tblh, & nflds);

x = (int *) calloc (argc +1, sizeof (int));

/ / Розбір аргументів запиту

for (i = 5; i <argc; + + i)

{

if (argv [i] [0] =='-') continue;

+ + N;

for (c = argv [i], j = 1; * c! = '\ 0', + + c)

{

if (* c ==',') + + j;

if (* c =='_') * c = '';

}

x [i-2] = j;

if (j> 1) + + p;

}

/ / Головний блок

switch (argv [2] [0])

{

case '0 ': low = 1; PXTblNRecs (tblh, & high);

initsearch (argv, x, p, n);

break;

case '1 ':

PXDateEncode (atoi (argv [3]), atoi (argv [3] +3), atoi (argv [3] +6), & date1);

PXDateEncode (atoi (argv [3] +11), atoi (argv [3] +14), atoi (argv [3] +17), & date2);

interval (date1, date2, argv [4], argv [4] +9);

initsearch (argv, x, p, n);

break;

case '2 ':

PXDateEncode (atoi (argv [3]), atoi (argv [3] +3), atoi (argv [3] +6), & date1);

PXDateEncode (atoi (argv [3] +11), atoi (argv [3] +14), atoi (argv [3] +17), & date2);

interval (date1, date2, argv [4], argv [4] +9);

if (low == 1 & &! high) break;

if (low == 1)

{

PXRecBufOpen (tblh, & rech);

PXRecGet (tblh, rech);

PXGetDate (rech, 1, & date1);

PXRecBufClose (rech);

}

PXTblNRecs (tblh, & num);

if (high == num)

{

PXRecBufOpen (tblh, & rech);

PXRecLast (tblh);

PXRecGet (tblh, rech);

PXGetDate (rech, 1, & date2);

PXRecBufClose (rech);

}

for (; date1 <= date2; + + date1)

{

interval (date1, date1, argv [4], argv [4] +9);

if (low> high) continue;

initsearch (argv, x, p, n);

}

break;

case '3 ':

PXDateEncode (atoi (argv [3]), atoi (argv [3] +3), atoi (argv [3] +6), & date1);

interval (date1, date1, argv [4], argv [4] +9);

initsearch (argv, x, p, n);

}

free (x);

if (a = PXTblClose (tblh)) printf ("\ n% s", PXErrMsg (a));

PXExit ();

close (handle);

}

/ / Initsearch

/ / Вибір функції пошуку

void initsearch (char * argv [], int * x, int p, int n)

{

if (low> high) return;

if (p) search3 (argv +5, x);

else if (n) search2 (argv, x, n);

else search1 ();

}

/ / Функція mem_args повертає адресу рядка параметрів у випадку її передачі через пам'ять

# Include "conn_mem. H"

char ** mem_args ()

{

char *** dat;

dat = (char ***) conn_mem ();

return dat [ARGS_OFF / 4];

}

/ / Bs2_inq. prj

/ / INQUIRY \ interval. c

/ / Interval ()

/ / Визначення граничних номерів інтервалу пошуку

# Include <stdio. h>

# Include <stdlib. h>

# Include "pxengine. H"

# Include "def. H"

void interval (long date1, long date2, char * time1, char * time2)

{

RECORDHANDLE rech;

itoa (atoi (time2 +6) +1, time2 +6,10);

PXRecBufOpen (tblh, & rech);

PXPutDate (rech, 1, date2);

PXPutAlpha (rech, 2, time2);

if (PXRecInsert (tblh, rech)) printf ("error");

PXRecNum (tblh, & high);

high;

PXRecDelete (tblh);

PXPutDate (rech, 1, date1);

PXPutAlpha (rech, 2, time1);

if (PXRecInsert (tblh, rech)) printf ("error");

if (PXRecNum (tblh, & low)) printf ("error");

PXRecDelete (tblh);

PXRecBufClose (rech);

}

/ / Inquiry. prj

/ / INQUIRY \ recprint. c

/ / Recprint ()

/ / Форматування і запис у файл знайденої рядки

# Include <stdio. h>

# Include <mem. h>

# Include <io. h>

# Include <dos. h>

# Include "pxengine. H"

# Include "def. H"

# Include "disp. H"

void recprint ()

{

long date;

int month, day, year;

int format [7] [7] = {{21,0,0,0,0,0,0}, {21,28,30,35,38,42,46},

{21,29,34,37,0,0,0}, {21,29,35,38,43,48,53},

{21,27,29,33,0,0,0}, {21,28,35,42,49,0,0},

{21,28,35,42,49,56,63}};

static char string [82]; / / результуюча рядок

RECORDHANDLE rech;

union REGS r;

int a, i;

memset (string, '', 82);

PXRecBufOpen (tblh, & rech);

PXRecGet (tblh, rech);

PXGetDate (rech, 1, & date);

PXDateDecode (date, & month, & day, & year);

sprintf (string, "% .02 d \ \% .02 d \ \% .04 d", month, day, year);

PXGetAlpha (rech, 2,10, string +11);

for (i = 3; i <= nflds; + + i)

PXGetAlpha (rech, i, sizeof (string) - format [nformat] [i-2],

string + format [nformat] [i-3] -1);

for (i = 0; i <= 80; + + i) if (string [i] == '\ 0') string [i] = '';

string [79] = '\ r';

string [80] = '\ n';

_write (handle, string, 81);

PXRecBufClose (rech);

/ / Передача управління диспетчеру

/ / (Тільки для передачі Символи на принтер!)

/ / Після кожної знайденої запису

rh ah = 1;

int86 (DISP, & r, & r);

}

/ / Inquiry. prj

/ / INQUIRY \ search12. c

/ / Search1 (), search2 (), (search3 () см в файлі search3. c)

/ / Search1 - всі записи в заданому інтервалі

/ / Search2 - задано не більше одного шуканого значення по кожному полю

/ / Search3 - більше одного шуканого значення Хоч би по одному полю

/ * Вихідні дані:

int * x;, де x [i] - кількість шуканих значень за i-му полю (тільки для search2)

char * argv [] - див коментарі в inquiry. c (тільки для search2)

RECORDNUMBER low, high; - межі інтервалу пошуку * /

# Include <stdlib. h>

# Include "pxengine. H"

# Include "def. H"

void search2 (char * argv [], int * x, int n)

{

int a, i, j = 0, * y;

int yes;

char * c, * c2;

char arg [10];

RECORDHANDLE * rec;

RECORDNUMBER * s, max = low;

s = (long *) calloc (n, sizeof (RECORDNUMBER));

rec = (unsigned int *) calloc (n, sizeof (RECORDHANDLE));

y = (int *) calloc (n, sizeof (int));

for (i = 3; j <n; + + i)

{

if (! x [i]) continue;

PXRecBufOpen (tblh, rec + j);

PXPutAlpha (rec [j], i, argv [i +2]);

y [j + +] = i;

}

while (1)

{

for (i = 0; i <n; + + i)

{

if (max == 1)

{

if (! (a = PXSrchFld (tblh, rec [i], y [i], SEARCHFIRST)))

PXRecNum (tblh, & s [i]);

}

else

if (s [i] <max)

{

PXRecGoto (tblh, max-1);

if (! (a = PXSrchFld (tblh, rec [i], y [i], SEARCHNEXT)))

PXRecNum (tblh, & s [i]);

}

if (a | | s [i]> high)

{

free (s); free (rec); free (y);

return;

}

}

for (i = 1, yes = 1, max = s [0]; i <n; + + i)

{

if (s [i]! = max) yes = 0;

if (s [i]> max) max = s [i];

}

if (yes) {+ + max; recprint ();}

}

}

void search1 (void)

{

RECORDNUMBER i;

for (i = low; i <= high; + + i)

{

recprint ();

PXRecNext (tblh);

}

}

/ / Inquiry. prj

/ / INQUIRY \ search3. c

/ / Search3 ()

/ / Пошук

/ * Вихідні дані:

int * x;, де x [i] - кількість шуканих значень за i-му полю

char * args [] - шукані значення полів БД (args [0] - третього поля, argv [1] - четвертого поля і т.д.);

RECORDNUMBER low, high; - межі інтервалу пошуку * /

/ / Search1 - всі записи в заданому інтервалі

/ / Search2 - не більше одного шуканого значення по кожному полю

/ / Search3 - більше одного шуканого значення Хоч би по одному полю

# Include <stdlib. h>

# Include <stdio. h>

# Include "pxengine. H"

# Include "def. H"

void search3 (char * args [], int * x)

{

/ *

rec - масив масивів буферів для пошуку, його розмірність дорівнює кількості полів у таблиці. Розмірність кожного з масивів rec [i] дорівнює кількості шуканих значень за i-му поля таблиці (тобто == х [i]). У кожен буфер заноситься одне шукане значення (наприклад, в rec [3] [0] - заноситься першим шукане значення по 3-му полю таблиці).

Кожному буферу (rec [i] [j]) відповідає елемент масиву масивів z (z [i] [j]), в якому зберігається поточний номер

знайденої запису з даного буферу (тобто записи, у відповідному полі якої знаходиться значення, рівне значенню, додали до буфер).

У масиві s зберігаються поточні номери знайдених рядків по кожному полю (s [i] мінімум з усіх z [i] [j] з цього i).

max - поточний номер запису при пошуку (тобто записи з номерами менше max вже переглянуті).

* /

RECORDHANDLE ** rec;

int i, j, k;

int yes;

char * c1, c2 *;

char arg [10];

RECORDNUMBER * s, ** z, max = low;

int a;

/ / Виділення пам'яті під масиви rec, z, s

/ / І відкриття буферів

s = (long *) calloc (nflds, sizeof (RECORDNUMBER));

rec = (unsigned int **) calloc (nflds, sizeof (RECORDHANDLE *));

z = (long **) calloc (nflds, sizeof (RECORDNUMBER *));

for (i = 3; i <= nflds; + + i)

if (x [i])

{

rec [i] = (unsigned int *) calloc (x [i], sizeof (RECORDHANDLE));

z [i] = (long *) calloc (x [i], sizeof (RECORDNUMBER));

for (j = 0; j <x [i]; + + j) PXRecBufOpen (tblh, rec [i] + j);

}

/ / Заносимо в буфера значення з args

/ / (Значення для одного поля розділені в args комами)

for (i = 3; i <= nflds; + + i)

{

if (! x [i]) continue;

if (x [i] == 1)

PXPutAlpha (rec [i] [0], i, args [i-3]);

else

{

c1 = args [i-3];

for (k = 0; k <x [i]; + + k)

{

c2 = arg;

while (* c1! = ',' & & * c1! = '\ 0') * c2 + + =* c1 + +;

* C2 = '\ 0', + + c1;

PXPutAlpha (rec [i] [k], i, arg);

}

}

}

/ / Цикл пошуку

while (1) {

for (i = 3; i <= nflds; + + i)

{

/ / 1) Для кожного буфера знаходимо запис із значенням рівним додали в цей буфер і з номером> = max.

/ / Знайдені номери заносимо в відповідні z [i] [k]

/ / Якщо шуканих записів по даному буферу немає, заносимо в z [i] [k] номер, що перевищує верхню

/ / Межу інтервалу пошуку

if (! x [i]) continue;

for (k = 0; k <x [i]; + + k)

{

if (max == 1)

{

if (PXSrchFld (tblh, rec [i] [k], i, SEARCHFIRST)) z [i] [k] = high +1;

else PXRecNum (tblh, & z [i] [k]);

}

else

if (z [i] [k] <max)

{

PXRecGoto (tblh, max-1);

if (PXSrchFld (tblh, rec [i] [k], i, SEARCHNEXT)) z [i] [k] = high +1;

else PXRecNum (tblh, & z [i] [k]);

}

}

/ / 2) Для кожного поля визначаємо значення s [i]

/ / Якщо хоча б по одному полю відбувся вихід за межі інтервалу пошуку, значить пошук закінчено

s [i] = z [i] [0];

for (k = 1; k <x [i]; ++k) if (s [i]> z [i] [k]) s [i] = z [i] [k];

if (s [i]> high)

{

for (i = 3; i <= nflds; + + i)

if (x [i])

{

for (j = 0; j <x [i]; + + j) PXRecBufClose (rec [i] [j]);

free (rec [i]); free (z [i]);

}

free (s); free (rec); free (z);

return;

}

}

/ / 3),

4)

/ / Перевіряємо збіг значень s [i].

/ / Якщо значення s [i] збігаються для всіх полів по яких проводиться пошук, значить знайдена шукана

/ / (Тобто задовольняє заданим умовам) запис, в цьому випадку викликаємо функцію recprint

/ / Визначаємо значення max для наступної ітерації, це значення дорівнює максимуму з s [i].

for (i = 3;! x [i]; + + i);

max = s [i];

for (+ + i, yes = 1; i <nflds; + + i)

{

if (! x [i]) continue;

if (s [i]! = max) yes = 0;

if (s [i]> max) max = s [i];

}

if (yes) {PXRecGoto (tblh, max); + + max; recprint ();}

}

}

/ / Bs2_inq. prj

/ / BS2_INQ \ bs2_inq. c

/ / Main ()

/ / Програма обробки запитів для другої форми байтів станів

# Include <stdio. h>

# Include <stdlib. h>

# Include <string. h>

# Include <fcntl. h>

# Include <sys / stat. h>

# Include <io. h>

# Include <alloc. h>

# Include "pxengine. H"

# Include "devices. H"

TABLEHANDLE tblh; / / дескриптор таблиці

RECORDNUMBER low, high; / / межі інтервалу пошуку

int nflds; / / кількість полів в таблиці

int handle; / / дескриптор файлу

void interval (long date1, long date2, char * time1, char * time2); / / визначення кордонів інтервалу пошуку

void search (char * type); / / пошук

void recprint (void); / / розшифровка запису БД в рядок і запис цього рядка в файл

char * sag; / / шапкa таблиці

char * sag2; / / шапкa таблиці-другий рядок

char * inqstr; / / рядок запиту

int length; / / довжина рядка в таблиці

/ * Рядок аргументів функції main:

argv [1] - не використовується

argv [2] - варіант пошуку; 0 - пошук по всій БД, 1 - пошук в єдиному інтервалі по даті і часу, 2 - пошук в інтервалі

часу по кожному дню інтервалу дат, 3 - пошук за один день в інтервалі часу;

argv [3] - дата;

argv [4] - час;

argv [5] - тип пристрою * /

void main (int argc, char * argv [])

{

long date1, date2; / / граничні значення інтервалу дат

int a, i;

char * c;

RECORDHANDLE rech;

RECORDNUMBER num;

/ / Відкриття файлу результатів запиту (inquiry. res) і запис у нього рядка запиту і шапки таблиці

handle = open ("inquiry. res",

O_CREAT | O_TRUNC | O_WRONLY, S_IREAD | S_IWRITE);

for (i = 0; strcmp (devices [i]. type, argv [5]) & & i <20; + + i);

switch (i)

{

case 0: / / Ше -00

case 8: / / Ше -08

sag = (char *) calloc (81,1);

strcpy (sag, "ДАТА ЧАС ТИП _ У П НД СТАН _ ШАФИ МЕРЕЖА 1 МЕРЕЖА 2 \ r \ n ");

break;

case 1: / / ШП -01

case 9: / / ШП -09

sag = (char *) calloc (81,1);

strcpy (sag, "ДАТА ЧАС ТИП _ У П НД СТАН _ ШАФИ \ r \ n ");

break;

case 4: / / ШК -04

case 12: / / ШК -12

sag = (char *) calloc (100,1);

strcpy (sag, "ДАТА ЧАС ТИП _ У П НД КАНАЛИ ЛІНІЇ КНОН ФКДТ НСПД ФЗ ХАРЧУВАННЯ Д - Ж К - И Б --- ті К - И \ r \ n ");

break;

case 2: / / РМ -02

sag = (char *) calloc (81,1);

sag2 = (char *) calloc (81,1);

strcpy (sag, "ДАТА ЧАС ТИП _ У П НД БЛОКУВАННЯ Є ЗВ'ЯЗОК З ВК \ r \ n ");

strcpy (sag2, "ПЕВМ1 по ФК за ЛС1 по ЛС3 \ r \ n");

break;

case 10: / / РМ -10

sag = (char *) calloc (81,1);

sag2 = (char *) calloc (81,1);

strcpy (sag, "ДАТА ЧАС ТИП _ У П НД БЛОКУВАННЯ Є _ _ ЗВ'ЯЗОК З _ ВК \ r \ n ");

strcpy (sag2, "ПЕВМ2 по ФК за ЛС2 по ЛС4 \ r \ n");

break;

case 5: / / РМ 05 Г

case 13: / / РМ 13 П

sag = (char *) calloc (81,1);

strcpy (sag, "ДАТА ЧАС ТИП _ У П НД ЛІНІЇ КНОН ФКДТ НСПД ФЗ \ r \ n ");

break;

case 3: / / В

case 6: / / КС 1

case 14: / / КС 2

case 15: / / АС

sag = (char *) calloc (81,1);

strcpy (sag, "ДАТА ЧАС ТИП _ У П НД КАНАЛИ ЛІНІЇ ФКДТ НСПД ФЗ \ r \ n ");

break;

case 7: / / ВМ

sag = (char *) calloc (81,1);

strcpy (sag, "ДАТА ЧАС ТІП_У П НД АВАРІЯ ХАРЧУВАННЯ неиспр КАН КАНАЛИ \ r \ n");

break;

case 16: / / ВУ 16

case 17: / / ВУ 17

case 18: / / ВУ 18

case 19: / / ВУ 19

sag = (char *) calloc (81,1);

strcpy (sag, "ДАТА ЧАС ТІП_У П НД МАГІСТРАЛЬ ПРИЙОМУ КНОН \ r \ n");

break;

}

length = strlen (sag);

inqstr = (char *) calloc (length +1,1);

memset (inqstr +1, '', length);

for (c = inqstr, i = 1; i <argc; + + i)

{

strcat (c, "");

strcat (c, argv [i]);

}

inqstr [strlen (inqstr)] = '';

strcpy (inqstr + length-2, "\ r \ n");

_write (handle, inqstr, length);

_write (handle, sag, length);

_write (handle, sag2, length);

/ / Ініціалізація роботи з БД

i = coreleft () / 1024-50;

if (i> 256) i = 256;

if (a = PXSetDefaults (i, 1,30, MAXLOCKHANDLES, 3, SortOrderAscii)) printf ("\ n% s", PXErrMsg (a));

if (a = PXInit ()) printf ("\ n% s", PXErrMsg (a));

if (a = PXTblOpen ("fk", & tblh, 0,0)) printf ("\ n% s", PXErrMsg (a));

PXRecNFlds (tblh, & nflds);

/ / Головний блок

if (argv [2] [0] == 0 ")

{

low = 1; PXTblNRecs (tblh, & high);

search (argv [5]);

}

else

if (argv [2] [0] == "1")

{

PXDateEncode (atoi (argv [3]), atoi (argv [3] +3), atoi (argv [3] +6), & date1);

PXDateEncode (atoi (argv [3] +11), atoi (argv [3] +14), atoi (argv [3] +17), & date2);

interval (date1, date2, argv [4], argv [4] +9);

search (argv [5]);

}

else

if (argv [2] [0] == '2 ')

{

PXDateEncode (atoi (argv [3]), atoi (argv [3] +3), atoi (argv [3] +6), & date1);

PXDateEncode (atoi (argv [3] +11), atoi (argv [3] +14), atoi (argv [3] +17), & date2);

interval (date1, date2, argv [4], argv [4] +9);

if (low == 1 & &! high)

if (low == 1)

{

PXRecBufOpen (tblh, & rech);

PXRecGet (tblh, rech);

PXGetDate (rech, 1, & date1);

PXRecBufClose (rech);

}

PXTblNRecs (tblh, & num);

if (high == num)

{

PXRecBufOpen (tblh, & rech);

PXRecLast (tblh);

PXRecGet (tblh, rech);

PXGetDate (rech, 1, & date2);

PXRecBufClose (rech);

}

for (; date1 <= date2; + + date1)

{

interval (date1, date1, argv [4], argv [4] +9);

if (low> high) continue;

search (argv [5]);

}

}

else

if (argv [2] [0] == '3 ')

{

PXDateEncode (atoi (argv [3]), atoi (argv [3] +3), atoi (argv [3] +6), & date1);

interval (date1, date1, argv [4], argv [4] +9);

search (argv [5]);

}

if (a = PXTblClose (tblh)) printf ("\ n% s", PXErrMsg (a));

PXExit ();

close (handle);

}

/ / Bs2_inq. prj

/ / BS2_INQ \ form2. c

/ / Form2 ()

/ / Розшифровка байтів стану

# Include <string. h>

# Include "devices. H"

void form2 (char * Type, char * bytes, char * text)

{

/ * Type; тип пристрою

bytes; нерозшифровані байти стану

text; буфер для розшифрованих БС * /

int i;

for (i = 0; strcmp (devices [i]. type, Type) & & i <20; + + i);

switch (i)

{

case 0: / / Ше -00

if (bytes [5] & 0x04) strcpy (text, "несправний");

else strcpy (text, "виправити");

if (bytes [4] & 0x02) strcpy (text +16, "CET Ь 1");

break;

case 8: / / Ше -08

if (bytes [5] & 0x04) strcpy (text, "несправний");

else strcpy (text, "виправити");

if (bytes [4] & 0x04) strcpy (text +22, "МЕРЕЖА 2");

break;

case 1: / / ШП -01

case 9: / / ШП -09

if (bytes [5] & 0x04) strcpy (text, "несправний");

else strcpy (text, "виправити");

break;

case 4: / / ШК -04

case 12: / / ШК -12

if (bytes [4] & 0x04) strcpy (text, "До 1");

if (bytes [4] & 0x02) strcpy (text +2, "К 2");

if (bytes [4] & 0x01) strcpy (text +4, "До 3");

if (bytes [5] & 0x04) strcpy (text +7, "Л 1");

if (bytes [5] & 0x02) strcpy (text +9, "Л 2");

if (bytes [5] & 0x01) strcpy (text +11, "Л 3");

if (bytes [3] & 0x01) strcpy (text +14, "КНОН");

if (bytes [3] & 0x02) strcpy (text +19, "ФКДТ");

if (bytes [3] & 0x04) strcpy (text +24, "НСПД");

if (bytes [2] & 0x01) strcpy (text +29, "ФЗ");

if (bytes [12] & 0x04) strcpy (text +32, "П 1");

if (bytes [12] & 0x02) strcpy (text +34, "П 2");

if (bytes [12] & 0x01) strcpy (text +36, "П 3");

if (bytes [11] & 0x04) strcpy (text +40, "ДК 1");

if (bytes [11] & 0x02) strcpy (text +43, "ДК 2");

if (bytes [11] & 0x01) strcpy (text +46, "ДК 3");

if (bytes [10] & 0x04) strcpy (text +51, "БК 1");

if (bytes [10] & 0x02) strcpy (text +54, "БК 2");

if (bytes [10] & 0x01) strcpy (text +57, "БК 3");

break;

case 3: / / В

case 6: / / КС 1

case 14: / / КС 2

if (bytes [4] & 0x04) strcpy (text, "До 1");

if (bytes [4] & 0x02) strcpy (text +2, "К 2");

if (bytes [4] & 0x01) strcpy (text +4, "До 3");

if (bytes [5] & 0x04) strcpy (text +7, "Л 1");

if (bytes [5] & 0x02) strcpy (text +9, "Л 2");

if (bytes [5] & 0x01) strcpy (text +11, "Л 3");

if (bytes [3] & 0x02) strcpy (text +14, "ФКДТ");

if (bytes [3] & 0x04) strcpy (text +19, "НСПД");

if (bytes [2] & 0x01) strcpy (text +24, "ФЗ");

break;

case 2: / / РМ -02

if (bytes [5] & 0x01) strcpy (text +3, "Є");

else strcpy (text +3, "НІ");

if (bytes [3] & 0x04) strcpy (text +17, "НІ");

else strcpy (text +17, "Є");

if (bytes [2] & 0x02) strcpy (text +24, "НІ");

else strcpy (text +24, "Є");

break;

case 10: / / РМ -10

if (bytes [5] & 0x01) strcpy (text +3, "Є");

else strcpy (text +3, "НІ");

if (bytes [2] & 0x01) strcpy (text +17, "НІ");

else strcpy (text +17, "Є");

if (bytes [2] & 0x04) strcpy (text +24, "НІ");

else strcpy (text +24, "Є");

break;

case 5: / / РМ 05 Г

case 13: / / РМ 13 П

if (bytes [5] & 0x04) strcpy (text, "Л 1");

if (bytes [5] & 0x02) strcpy (text +2, "Л 2");

if (bytes [5] & 0x01) strcpy (text +4, "Л 3");

if (bytes [3] & 0x01) strcpy (text +7, "КНОН");

if (bytes [3] & 0x02) strcpy (text +12, "ФКДТ");

if (bytes [3] & 0x04) strcpy (text +17, "НСПД");

if (bytes [2] & 0x01) strcpy (text +22, "ФЗ");

break;

case 7: / / ВМ

if (bytes [5] & 0x02) strcpy (text, "АВАРІЯ ХАРЧУВАННЯ ");

if (bytes [5] & 0x04) strcpy (text +15, "неиспр КАН ");

if (bytes [4] & 0x04) strcpy (text +26, "До 1");

if (bytes [4] & 0x01) strcpy (text +28, "К 2");

if (bytes [4] & 0x02) strcpy (text +30, "До 3");

break;

case 16: / / ВУ 16

case 17: / / ВУ 17

case 18: / / ВУ 18

case 19: / / ВУ 19

if (bytes [5] & 0x04) strcpy (text, "неиспр МАГ ПРИЙОМУ ");

if (bytes [3] & 0x01) strcpy (text +18, "КНОН");

break;

case 15: / / АС

/ / Підкоригувати після узгодження байта стану

if (bytes [4] & 0x04) strcpy (text, "До 1");

if (bytes [4] & 0x02) strcpy (text +2, "К 2");

if (bytes [4] & 0x01) strcpy (text +4, "До 3");

if (bytes [5] & 0x04) strcpy (text +7, "Л 1");

if (bytes [5] & 0x02) strcpy (text +9, "Л 2");

if (bytes [5] & 0x01) strcpy (text +11, "Л 3");

if (bytes [3] & 0x02) strcpy (text +14, "ФКДТ");

if (bytes [3] & 0x04) strcpy (text +19, "НСПД");

if (bytes [2] & 0x01) strcpy (text +24, "ФЗ");

break;

}

}

/ / Bs2_inq. prj

/ / BS2_INQ \ interval. c

/ / Interval ()

/ / Визначення граничних номерів інтервалу пошуку

# Include <stdio. h>

# Include <stdlib. h>

# Include "pxengine. H"

# Include "def. H"

void interval (long date1, long date2, char * time1, char * time2)

{

RECORDHANDLE rech;

itoa (atoi (time2 +6) +1, time2 +6,10);

PXRecBufOpen (tblh, & rech);

PXPutDate (rech, 1, date2);

PXPutAlpha (rech, 2, time2);

if (PXRecInsert (tblh, rech)) printf ("error");

PXRecNum (tblh, & high);

high;

PXRecDelete (tblh);

PXPutDate (rech, 1, date1);

PXPutAlpha (rech, 2, time1);

if (PXRecInsert (tblh, rech)) printf ("error");

if (PXRecNum (tblh, & low)) printf ("error");

PXRecDelete (tblh);

PXRecBufClose (rech);

}

/ / Bs2_inq. prj

/ / Recprint. c

/ / BS2_INQ \ recprint ()

/ / Форматування і запис у файл знайденої рядки

# Include <stdio. h>

# Include <io. h>

# Include <string. h>

# Include <stdlib. h>

# Include <dos. h>

# Include "pxengine. H"

# Include "def. H"

# Include "disp. H"

void form2 (char *, char *, char *);

/ / Розшифровка байтів стану

void recprint ()

{

long date; / / дата в форматі БД

int month, day, year; / / розшифрована дата

char * string; / / результуюча рядок

char * bytes; / / нерозшифровані байти стану

RECORDHANDLE rech; / / дескриптор запису

int a, i;

union REGS r;

string = (char *) calloc (length +1,1);

bytes = (char *) calloc (45,1);

PXRecBufOpen (tblh, & rech);

PXRecGet (tblh, rech);

PXGetDate (rech, 1, & date);

PXDateDecode (date, & month, & day, & year);

sprintf (string, "% .02 d \ \% .02 d \ \% .04 d", month, day, year);

PXGetAlpha (rech, 2,9, string +11); / / t

PXGetAlpha (rech, 3,6, string +20); / / тип _ у

PXGetAlpha (rech, 4,2, string +26); / / п

PXGetAlpha (rech, 5,4, string +28); / / НД

PXGetAlpha (rech, 6,45, bytes); / / бс

form2 (string +20, bytes +16, string +31);

for (i = 0; i <= length; + + i) if (string [i] == '\ 0') string [i] = '';

strcpy (string + length-2, "\ r \ n");

_write (handle, string, strlen (string));

PXRecBufClose (rech);

free (bytes);

free (string);

/ / Передача управління диспетчеру

/ / (Тільки для передачі Символи на принтер!)

/ / Після кожної знайденої запису

/ / Rh ah = 1;

/ / Int86 (DISP, & r, & r);

}

/ / Bs2_inq. prj

/ / BS2_INQ \ search. c

/ / Search ()

/ / Пошук

# Include <stdlib. h>

# Include "pxengine. H"

# Include "def. H"

void search (char * type)

{

int a, i, y [2];

RECORDHANDLE rec [2];

RECORDNUMBER s [2], max = low;

PXRecBufOpen (tblh, & rec [0]);

PXRecBufOpen (tblh, & rec [1]);

PXPutAlpha (rec [0], 3, type);

PXPutAlpha (rec [1], 5, "БС");

y [0] = 3; y [1] = 5; s [1] = s [0] = 0;

while (1)

{

for (i = 0; i <= 1; + + i)

{

if (max == 1)

{

if (! (a = PXSrchFld (tblh, rec [i], y [i], SEARCHFIRST)))

PXRecNum (tblh, & s [i]);

}

else

if (s [i] <max)

{

PXRecGoto (tblh, max-1);

if (! (a = PXSrchFld (tblh, rec [i], y [i], SEARCHNEXT)))

PXRecNum (tblh, & s [i]);

}

if (a | | s [i]> high)

{

PXRecBufClose (rec [0]);

PXRecBufClose (rec [1]);

return;

}

}

if (s [1] == s [0]) {+ + max; recprint ();}

else if (s [1]> s [0]) max = s [1];

else max = s [0];

}

}

/ / Bs3_inq. prj

/ / BS3_INQ \ bs3_inq. c

/ / Main ()

/ / Програма обробки запитів для третьої форми байтів стану

/ / Викликається з:

/ / 1) main. prj, mloop2. c, bszapros ()

/ / 2) makeinq. prj, makeinq. c, makeinq ()

# Include <stdio. h>

# Include <fcntl. h>

# Include <sys / stat. h>

# Include <io. h>

# Include "pxengine. H"

# Include <string. h>

void form3 (char *, char *, int);

/ / Розшифровка байтів стану для третьої форми подання та їх запис в файл результатів

/ * Аргументи функції main:

argv [1] - тип пристрою * /

void main (int argc, char * argv [])

{

int a;

int i;

int handle; / / дескриптор файлу результатів пошуку

static char bytes [45]; / / буфер для нерозшифрованих байтів стану

RECORDHANDLE rec; / / дескриптор запису

TABLEHANDLE tblh; / / дескриптор таблиці

/ / Відкриття файлу результатів ізапісь в нього типу пристрою

handle = open ("inquiry. res",

O_CREAT | O_TRUNC | O_WRONLY, S_IREAD | S_IWRITE);

write (handle, argv [1], strlen (argv [1]));

/ / If (strlen (argv [1]) == 1) write (handle, "", 2);

/ / If (strlen (argv [1]) == 2) write (handle, "", 1);

write (handle, "\ r \ n", 2);

/ / Пошук та обробка результатів пошуку

/ * Знаходиться остання за часом запис байтів

стану для даного пристрою * /

if (a = PXInit ()) printf ("\ n% s", PXErrMsg (a));

if (a = PXTblOpen ("fk", & tblh, 0,0)) printf ("\ n% s", PXErrMsg (a));

PXRecBufOpen (tblh, & rec);

PXPutAlpha (rec, 5, "БС");

PXPutAlpha (rec, 3, argv [1]);

if ((a = PXSrchFld (tblh, rec, 3, SEARCHFIRST))! = PXSUCCESS)

{If (a == PXERR_RECNOTFOUND)

PXRecBufClose (rec);

if (a = PXTblClose (tblh)) printf ("\ n% s", PXErrMsg (a));

PXExit ();

close (handle);

return;

}

else while (! (a = PXSrchFld (tblh, rec, 3, SEARCHNEXT)));

PXRecGet (tblh, rec);

PXGetAlpha (rec, 6,45, bytes);

form3 (argv [1], bytes +16, handle);

PXRecBufClose (rec);

if (a = PXTblClose (tblh)) printf ("\ n% s", PXErrMsg (a));

PXExit ();

close (handle);

}

/ / Bs3_inq. prj

/ / BS3_INQ \ form3. c

/ / Form3 ()

/ / Розшифровка байтів стану

# Include <io. h>

# Include <string. h>

# Include "devices. H"

# Include <dos. h>

void form3 (char * Type, char * bytes, int handle)

{

/ * Type - тип пристрою

bytes - нерозшифровані байти стану

handle - дескриптор файлу результатів * /

int i;

/ *

struct date d;

struct time t;

getdate (& d);

gettime (& t);

z. bd1. date [0] = d. da_mon;

z. bd1. date [1] = d. da_day;

z. bd1. date [2] = d. da_year;

PXRecBufOpen (tblh, & rech);

PXRecGet (tblh, rech);

PXGetDate (rech, 1, & date);

PXDateDecode (date, & month, & day, & year);

sprintf (string, "% .02 d \ \% .02 d \ \% .04 d", month, day, year);

* /

for (i = 0; strcmp (devices [i]. type, Type) & & i <CHDEV; + + i);

switch (i)

{

case 0: / / Ше -00

if (bytes [5] & 0x04)

write (handle, "Шафа Несправний \ r \ n ", 76);

else

write (handle, "Шафа ВИПРАВИТИ \ r \ n ", 76);

if (bytes [4] & 0x02)

write (handle, "НЕСПРАВНІСТЬ первинної мережі електроживлення МЕРЕЖА 1 \ r \ n", 76);

break;

case 8: / / Ше -08

if (bytes [5] & 0x04)

write (handle, "Шафа Несправний \ r \ n ", 76);

else

write (handle, "Шафа ВИПРАВИТИ \ r \ n ", 76);

if (bytes [4] & 0x02)

write (handle, "НЕСПРАВНІСТЬ первинної мережі електроживлення МЕРЕЖА 2 \ r \ n", 76);

break;

case 1: / / ШП -01

case 9: / / ШП -09

if (bytes [5] & 0x04)

write (handle, "Шафа Несправний \ r \ n ", 76);

else

write (handle, "Шафа ВИПРАВИТИ \ r \ n ", 76);

break;

case 4: / / ШК -04

case 12: / / ШК -12

if (bytes [0] & 0x01)

write (handle, "ОСНОВНИЙ - шафа ШК -12 \ r \ n ", 76);

else

write (handle, "ОСНОВНИЙ - шафа ШК -04 \ r \ n ", 76);

write (handle, "\ r \ n", 76);

write (handle, "ТЕХНІЧНЕ СТАН ШАФИ \ r \ n ", 76);

write (handle, "\ r \ n", 76);

if (bytes [5] & 0x01)

write (handle, "Шафа Працездатний \ r \ n ", 76);

if (bytes [5] & 0x02)

write (handle, "Шафа Несправний \ r \ n ", 76);

if (bytes [5] & 0x04)

write (handle, "Шафа ЗАБЛОКОВАНІ по НСД \ r \ n ", 76);

if ((! (bytes [5] & 0x01)) & & (! (bytes [5] & 0x02)) & & (! (bytes [5] & 0x04)))

write (handle, "Шафа ВИПРАВИТИ \ r \ n ", 76);

write (handle, "\ r \ n", 76);

if (bytes [4] & 0x01)

write (handle, "несправний 1 - й канал АТ \ r \ n ", 76);

if (bytes [4] & 0x02)

write (handle, "несправний 2 - й канал АТ \ r \ n ", 76);

if (bytes [4] & 0x04)

write (handle, "несправний третій канал АТ \ r \ n ", 76);

if (bytes [3] & 0x01)

write (handle, "несправний 1 - й канал УХК \ r \ n ", 76);

if (bytes [3] & 0x02)

write (handle, "несправний 2 - й канал УХК \ r \ n ", 76);

if (bytes [3] & 0x04)

write (handle, "несправний третій канал УХК \ r \ n ", 76);

if (bytes [2] & 0x01)

write (handle, "НЕСПРАВНІСТЬ логічної частини ШК \ r \ n", 76);

if (bytes [2] & 0x02)

{Write (handle, "несправний хоча б один або кілька елементів ІГП \ r \ n", 76);

write (handle, "Для уточнення вважай клітинку ВБШК1. ПФЗ для ШК1 або ВБШК2. ПФЗ для ШК2 \ r \ n", 76);

}

if (bytes [2] & 0x04)

{Write (handle, "несправні УХК - встановлена ​​одиниця у 8-му розряді уточнення слів \ r \ n", 76);

write (handle, "стану УХК \ r \ n ", 76);

}

if (bytes [1] & 0x01)

write (handle, "Бозу зайнято більше 3 - х секунд \ r \ n ", 76);

if (bytes [1] & 0x02)

{Write (handle, "несправні УХК (неправильне поєднання 3 і 10 розрядів уточнення слів \ r \ n", 76);

write (handle, "стану УХК) \ r \ n ", 76);

}

if (bytes [1] & 0x04)

{Write (handle, "УХК ЗАБЛОКОВАНІ через роботи з носієм 83т015. Отримано 9 або 11 \ r \ n", 76);

write (handle, "розряд в ІДС УХК (див. п.4.7 1. протоколу інв.30337) \ r \ n", 76);

}

if ((! (bytes [12] & 0x01)) & & (! (bytes [12] & 0x02)))

write (handle, "ПУ -1 ВИПРАВИТИ \ r \ n", 76);

if (bytes [12] & 0x01)

write (handle, "Натиснуто кнопка Виявлена ​​несправність на ПУ-1 \ r \ n", 76);

if (bytes [12] & 0x02)

write (handle, "Несправне напрямок зв'язку, що з'єднує з ПУ-1 \ r \ n", 76);

if ((! (bytes [12] & 0x04)) & & (! (bytes [11] & 0x01)))

write (handle, "ПУ -2 ВИПРАВИТИ \ r \ n", 76);

if (bytes [12] & 0x04)

write (handle, "Натиснуто кнопка Виявлена ​​несправність на ПУ-2 \ r \ n", 76);

if (bytes [11] & 0x01)

write (handle, "Несправне напрямок зв'язку, що з'єднує з ПУ-2 \ r \ n", 76);

if ((! (bytes [11] & 0x04)) & & (! (bytes [11] & 0x02)))

write (handle, "ПУ -3 ВИПРАВИТИ \ r \ n", 76);

if (bytes [11] & 0x02)

write (handle, "Натиснуто кнопка Виявлена ​​несправність на ПУ-3 \ r \ n", 76);

if (bytes [11] & 0x04)

write (handle, "Несправне напрямок зв'язку, що з'єднує з ПУ-3 \ r \ n", 76);

if ((! (bytes [10] & 0x01)) & & (! (bytes [10] & 0x02)))

write (handle, "ПУ -4 ВИПРАВИТИ \ r \ n", 76);

if (bytes [10] & 0x01)

write (handle, "Натиснуто кнопка Виявлена ​​несправність на ПУ-4 \ r \ n", 76);

if (bytes [10] & 0x02)

write (handle, "Несправне напрямок зв'язку, що з'єднує з ПУ-4 \ r \ n", 76);

if (bytes [10] & 0x04)

write (handle, "Несправний 1-й канал схемних вузлів БО-695 \ r \ n", 76);

if (bytes [9] & 0x01)

write (handle, "Несправний 2-й канал схемних вузлів БО-695 \ r \ n", 76);

if (bytes [9] & 0x02)

write (handle, "Несправний 3-й канал схемних вузлів БО-695 \ r \ n", 76);

if (bytes [9] & 0x04)

write (handle, "Несправний 1 - й канал ПРЦ \ r \ n ", 76);

if (bytes [8] & 0x01)

write (handle, "Несправний 2 - й канал ПРЦ \ r \ n ", 76);

if (bytes [8] & 0x02)

write (handle, "Несправний третій канал ПРЦ \ r \ n ", 76);

if (bytes [8] & 0x04)

{Write (handle, "Несправне напрям зв'язку С1 по передачі від ВМ до ШК і / або з прийому \ r \ n", 76);

write (handle, "від ШК до ВМ і / або через не отримання від ШК кодограмм за часом. \ r \ n", 76);

write (handle, "Формує ФК-читай слово пам'яті ВБШК1 (2). ПФЗ \ r \ n", 76);

if (bytes [7] & 0x01)

write (handle, "ШК забракований функціональним завданням - читай слово пам'яті ВБШК1 (2). ПФЗ \ r \ n", 76);

write (handle, "\ r \ n", 76);

write (handle, "ІНФОРМАЦІЙНИЙ СТАН ШАФИ \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [26] & 0x02)

write (handle, "Шафа Несправний ПО ІНФОРМАЦІЙНОГО СТАНОМ \ r \ n", 76);

else

write (handle, "Шафа виправити по ІНФОРМАЦІЙНОГО СТАНОМ \ r \ n", 76);

write (handle, "\ r \ n", 76);

write (handle, "Стан БХХХХХ ШХХХХХ і КХХХХ \ r \ n ", 76);

write (handle, "\ r \ n", 76);

write (handle, "БХХХХХ ШХХХХХ 1 - го масиву СХХ \ r \ n ", 76);

if ((! (bytes [15] & 0x01)) & & (! (bytes [15] & 0x02)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [15] & 0x01) & & (bytes [15] & 0x02))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [15] & 0x01) & & (! (bytes [15] & 0x02)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [15] & 0x02) & & (! (bytes [15] & 0x01)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "БХХХХХ ШХХХХХ 2 - го масиву СХХ \ r \ n ", 76);

if ((! (bytes [17] & 0x04)) & & (! (bytes [16] & 0x01)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [17] & 0x04) & & (bytes [16] & 0x01))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [17] & 0x04) & & (! (bytes [16] & 0x01)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [16] & 0x01) & & (! (bytes [17] & 0x04)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "БХХХХХ КХХХХ Охх \ r \ n ", 76);

if ((! (bytes [18] & 0x04)) & & (! (bytes [18] & 0x02)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [18] & 0x04) & & (bytes [18] & 0x02))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [18] & 0x02) & & (! (bytes [18] & 0x04)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [18] & 0x04) & & (! (bytes [18] & 0x02)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "БХХХХХ КХХХХ УХХ \ r \ n ", 76);

if ((! (bytes [19] & 0x02)) & & (! (bytes [19] & 0x01)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [19] & 0x02) & & (bytes [19] & 0x01))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [19] & 0x01) & & (! (bytes [19] & 0x02)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [19] & 0x02) & & (! (bytes [19] & 0x01)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "БХХХХХ КХХХХ УХ \ r \ n ", 76);

if ((! (bytes [22] & 0x02)) & & (! (bytes [22] & 0x01)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [22] & 0x02) & & (bytes [22] & 0x01))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [22] & 0x01) & & (! (bytes [22] & 0x02)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [22] & 0x02) & & (! (bytes [22] & 0x01)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "БХХХХХ КХХХХ РХХ \ r \ n ", 76);

if ((! (bytes [23] & 0x01)) & & (! (bytes [24] & 0x04)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [23] & 0x01) & & (bytes [24] & 0x04))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [24] & 0x04) & & (! (bytes [23] & 0x01)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [23] & 0x01) & & (! (bytes [24] & 0x04)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "\ r \ n", 76);

write (handle, "Стан УХХХХХ ШХХХХХ і КХХХХ \ r \ n ", 76);

write (handle, "\ r \ n", 76);

write (handle, "УХХХХХ ШХХХХХ 1 - го масиву СХХ \ r \ n ", 76);

if ((! (bytes [14] & 0x01)) & & (! (bytes [15] & 0x04)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [14] & 0x01) & & (bytes [15] & 0x04))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [15] & 0x04) & & (! (bytes [14] & 0x01)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [14] & 0x01) & & (! (bytes [15] & 0x04)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "УХХХХХ ШХХХХХ 2 - го масиву СХХ \ r \ n ", 76);

if ((! (bytes [16] & 0x04)) & & (! (bytes [16] & 0x02)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [16] & 0x04) & & (bytes [16] & 0x02))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [16] & 0x02) & & (! (bytes [16] & 0x04)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [16] & 0x04) & & (! (bytes [16] & 0x02)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "УХХХХХ КХХХХ Охх \ r \ n ", 76);

if ((! (bytes [17] & 0x02)) & & (! (bytes [17] & 0x01)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [17] & 0x02) & & (bytes [17] & 0x01))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [17] & 0x01) & & (! (bytes [17] & 0x02)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [17] & 0x02) & & (! (bytes [17] & 0x01)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "УХХХХХ КХХХХ УХХ \ r \ n ", 76);

if ((! (bytes [19] & 0x04)) & & (! (bytes [18] & 0x01)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [19] & 0x04) & & (bytes [18] & 0x01))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [19] & 0x04) & & (! (bytes [18] & 0x01)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [18] & 0x01) & & (! (bytes [19] & 0x04)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "УХХХХХ КХХХХ УХ \ r \ n ", 76);

if ((! (bytes [21] & 0x01)) & & (! (bytes [22] & 0x04)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [21] & 0x01) & & (bytes [22] & 0x04))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [22] & 0x04) & & (! (bytes [21] & 0x01)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [21] & 0x01) & & (! (bytes [22] & 0x04)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "УХХХХХ КХХХХ РХХ \ r \ n ", 76);

if ((! (bytes [23] & 0x02)) & & (! (bytes [23] & 0x04)))

write (handle, "НЕ ЗАПИСАНІ \ r \ n ", 76);

if ((bytes [23] & 0x02) & & (bytes [23] & 0x04))

write (handle, "ЗНИЩЕНІ \ r \ n", 76);

if ((bytes [23] & 0x02) & & (! (bytes [23] & 0x04)))

write (handle, "ЗБЕРЕЖЕНІ \ r \ n", 76);

if ((bytes [23] & 0x04) & & (! (bytes [23] & 0x02)))

write (handle, "Зруйнувати \ r \ n", 76);

write (handle, "\ r \ n", 76);

write (handle, "нав'язування ЛОЖНО ІНФОРМАЦІЇ \ r \ n ", 76);

write (handle, "\ r \ n", 76);

if (bytes [24] & 0x02)

write (handle, "Є Нли по масиву N1 шххххх СХХ \ r \ n ", 76);

if (bytes [24] & 0x01)

write (handle, "Є Нли по масиву N2 шххххх СХХ \ r \ n ", 76);

if (bytes [25] & 0x04)

write (handle, "Є Нли по масиву кхххх УХХ \ r \ n ", 76);

if (bytes [25] & 0x01)

write (handle, "Є Нли по масиву кхххх УХ \ r \ n ", 76);

if (bytes [26] & 0x04)

write (handle, "Є Нли по масиву кхххх РХХ \ r \ n ", 76);

if ((! (bytes [24] & 0x02)) & & (! (bytes [24] & 0x01)) & & (! (bytes [25] & 0x04))

& & (! (Bytes [25] & 0x02)) & & (! (Bytes [25] & 0x01)) & & (! (Bytes [26] & 0x04)))

write (handle, "нли ВІДСУТНІЙ по всіх масивів \ r \ n", 76);

break;

case 3: / / В

case 6: / / КС 1

case 14: / / КС 2

if (bytes [5] & 0x04)

write (handle, "КС Несправний \ r \ n ", 76);

else

write (handle, "КС ВИПРАВИТИ \ r \ n ", 76);

write (handle, "\ r \ n", 76);

if (bytes [19] & 0x01)

write (handle, "Прийом від АК1 трьох кодограмм поспіль з ознакою К2 \ r \ n", 76);

if (bytes [19] & 0x02)

write (handle, "Прийом від АК1 трьох кодограмм поспіль з ВВС = 1010 \ r \ n", 76);

if (bytes [19] & 0x04)

write (handle, "Відсутність інформації від АК1 на вході ПУ більше 12 сек \ r \ n", 76);

if (bytes [18] & 0x01)

write (handle, "Прийом від АК1 трьох кодограмм поспіль з ознакою отримання УС \ r \ n", 76);

if (bytes [18] & 0x02)

write (handle, "Відсутність зв'язку в тракті від ЦКС1 до АК1 \ r \ n", 76);

if (bytes [18] & 0x04)

write (handle, "Відсутність зв'язку в тракті від ЦКС1 до ЦКС2 для АК1 \ r \ n", 76);

if (bytes [17] & 0x01)

write (handle, "Відсутність зв'язку в тракті від АК1 до ЦКС1 \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [23] & 0x01)

write (handle, "Прийом від АК3 трьох кодограмм поспіль з ознакою К2 \ r \ n", 76);

if (bytes [23] & 0x02)

write (handle, "Прийом від АК3 трьох кодограмм поспіль з ВВС = 1010 \ r \ n", 76);

if (bytes [23] & 0x04)

write (handle, "Відсутність інформації від АК3 на вході ПУ більше 12 сек \ r \ n", 76);

if (bytes [22] & 0x01)

write (handle, "Прийом від АК3 трьох кодограмм поспіль з ознакою отримання УС \ r \ n", 76);

if (bytes [22] & 0x02)

write (handle, "Відсутність зв'язку в тракті від ЦКС1 до АК3 \ r \ n", 76);

if (bytes [22] & 0x04)

write (handle, "Відсутність зв'язку в тракті від ЦКС1 до ЦКС2 для АК3 \ r \ n", 76);

if (bytes [21] & 0x01)

write (handle, "Відсутність зв'язку в тракті від АК3 до ЦКС1 \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [26] & 0x01)

write (handle, "Прийом від АК6 трьох кодограмм поспіль з ознакою К2 \ r \ n", 76);

if (bytes [26] & 0x02)

write (handle, "Прийом від АК6 трьох кодограмм поспіль з ВВС = 1010 \ r \ n", 76);

if (bytes [26] & 0x04)

write (handle, "Відсутність інформації від АК6 на вході ПУ більше 12 сек \ r \ n", 76);

if (bytes [25] & 0x01)

write (handle, "Прийом від АК6 трьох кодограмм поспіль з ознакою отримання УС \ r \ n", 76);

if (bytes [25] & 0x02)

write (handle, "Відсутність зв'язку в тракті від ЦКС1 до АК6 \ r \ n", 76);

if (bytes [25] & 0x04)

write (handle, "Відсутність зв'язку в тракті від ЦКС1 до ЦКС2 для АК6 \ r \ n", 76);

if (bytes [24] & 0x01)

write (handle, "Відсутність зв'язку в тракті від АК6 до ЦКС1 \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [16] & 0x01)

write (handle, "Прийом від ВПУ трьох кодограмм поспіль з ознакою К2 \ r \ n", 76);

if (bytes [16] & 0x02)

write (handle, "Прийом від ВПУ трьох кодограмм поспіль з ВВС = 1010 \ r \ n", 76);

if (bytes [16] & 0x04)

write (handle, "Відсутність інформації від ВПУ на вході ПУ більше 12 сек \ r \ n", 76);

if (bytes [15] & 0x01)

write (handle, "Прийом від АК6 трьох кодограмм поспіль з ознакою отримання УС \ r \ n", 76);

if (bytes [15] & 0x02)

write (handle, "Відсутність зв'язку в тракті від ЦКС1 до ВПУ \ r \ n", 76);

if (bytes [15] & 0x04)

write (handle, "Відсутність зв'язку в тракті від ЦКС1 до ЦКС2 для ВПУ \ r \ n", 76);

if (bytes [14] & 0x01)

write (handle, "Відсутність зв'язку в тракті від ВПУ до ЦКС1 \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [17] & 0x04)

write (handle, "Відсутність зв'язку в тракті від ЦКС1 до ПУ \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [10] & 0x02)

write (handle, "Відсутність прийому кодограмм в заданий інтервал часу \ r \ n", 76);

write (handle, "\ r \ n", 76);

if ((bytes [12] & 0x07) & & (! (bytes [11] & 0x07)))

write (handle, "Прийом кодограмм з ознакою відсутності зв'язку від ПУ до М486 \ r \ n", 76);

if ((bytes [11] & 0x07) & & (! (bytes [12] & 0x07)))

{

write (handle, "Прийом кодограмм з ознакою спотворення інформації від ЦКШ до М486 та / або \ r \ n", 76);

write (handle, "прийом кодограмм з ознакою відсутності імпульсу БІ \ r \ n", 76);

}

if ((bytes [11] & 0x07) & & (bytes [12] & 0x07))

{

write (handle, "Прийом кодограмм з ознакою відсутності зв'язку від ПУ до М486 та / або \ r \ n", 76);

write (handle, "прийом кодограмм з ознакою спотворення інформації від ЦКШ до М486 та / або \ r \ n", 76);

write (handle, "прийом кодограмм з ознакою відсутності імпульсу БІ \ r \ n", 76);

}

break;

case 2: / / РМ -02

write (handle, "\ r \ n", 76);

if (bytes [5] & 0x01)

write (handle, "АРМ заблокувати ФК оператором \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [5] & 0x04)

write (handle, "НІ ЗВ'ЯЗКУ МІЖ ПЕВМ1 і ВК \ r \ n", 76);

if (bytes [4] & 0x02)

write (handle, "Немає зв'язку з ВК по одній з ліній зв'язку ЛС1 або ЛС3 \ r \ n", 76);

if (bytes [3] & 0x04)

write (handle, "Немає зв'язку з ВК по лінії зв'язку ЛС1 \ r \ n", 76);

if (bytes [2] & 0x02)

write (handle, "Немає зв'язку з ВК по лінії зв'язку ЛС3 \ r \ n", 76);

break;

case 10: / / РМ -10

write (handle, "\ r \ n", 76);

if (bytes [5] & 0x01)

write (handle, "АРМ заблокувати ФК оператором \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [5] & 0x04)

write (handle, "НІ ЗВ'ЯЗКУ МІЖ ПЕВМ2 і ВК \ r \ n", 76);

if (bytes [4] & 0x02)

write (handle, "Немає зв'язку з ВК по одній з ліній зв'язку ЛС2 або ЛС4 \ r \ n", 76);

if (bytes [2] & 0x01)

write (handle, "Немає зв'язку з ВК по лінії зв'язку ЛС2 \ r \ n", 76);

if (bytes [2] & 0x04)

write (handle, "Немає зв'язку з ВК по лінії зв'язку ЛС4 \ r \ n", 76);

break;

case 5: / / РМ 05 Г

case 13: / / РМ 13 П

if (bytes [19] & 0x01)

write (handle, "ОСНОВНИЙ АРМ - РМ -13 П \ r \ n ", 76);

else

write (handle, "ОСНОВНИЙ АРМ - РМ-05Г \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [5] & 0x04)

write (handle, "АРМ Несправний \ r \ n ", 76);

else

write (handle, "АРМ ВИПРАВИТИ \ r \ n ", 76);

write (handle, "\ r \ n", 76);

if (bytes [16] & 0x02)

write (handle, "Основне АРМ СПРАВНОСТІ \ r \ n", 76);

if (bytes [16] & 0x01)

write (handle, "Основне АРМ НЕСПРАВНІСТЬ \ r \ n ", 76);

if (bytes [16] & 0x04)

write (handle, "Основне АРМ ЗАБЛОКОВАНІ \ r \ n", 76);

if (bytes [15] & 0x01)

write (handle, "Основне АРМ РОЗБЛОКУВАТИ \ r \ n ", 76);

if (bytes [19] & 0x04)

write (handle, "Резервне АРМ СПРАВНОСТІ \ r \ n", 76);

if (bytes [19] & 0x02)

write (handle, "Резервне АРМ НЕСПРАВНІСТЬ \ r \ n ", 76);

if (bytes [18] & 0x01)

write (handle, "Резервне АРМ ЗАБЛОКОВАНІ \ r \ n ", 76);

if (bytes [18] & 0x02)

write (handle, "Резервне АРМ РОЗБЛОКУВАТИ \ r \ n ", 76);

if (bytes [5] & 0x01)

write (handle, "АРМ заблокувати ФК оператором \ r \ n", 76);

write (handle, "\ r \ n", 76);

if (bytes [4] & 0x02)

write (handle, "Несправна одна з трьох ліній магістралі обміну \ r \ n", 76);

else

write (handle, "Всі три лінії магістралі обміну справні \ r \ n", 76);

if (bytes [12] & 0x04)

write (handle, "Несправна 1-я лінія магістралі прийому \ r \ n", 76);

if (bytes [12] & 0x02)

write (handle, "Несправна 2-я лінія магістралі прийому \ r \ n", 76);

if (bytes [12] & 0x01)

write (handle, "Несправна 3-я лінія магістралі прийому \ r \ n", 76);

if (bytes [10] & 0x02)

write (handle, "Відсутня прийом інформації у ВМ від даного АРМ-1 \ r \ n", 76);

break;

case 7: / / ВМ

if (bytes [5] & 0x02)

write (handle, "Аварія електроживлення в одному або декількох каналах ШП-614 \ r \ n", 76);

if (bytes [4] & 0x04)

write (handle, "Несправність 1 каналу ШП -614 \ r \ n ", 76);

if (bytes [3] & 0x01)

write (handle, "Несправність 2 канали ШП-614 \ r \ n", 76);

if (bytes [3] & 0x02)

write (handle, "Несправність 3 канали ШП -614 \ r \ n ", 76);

if (bytes [3] & 0x04)

write (handle, "Стався ПРОГРАМНИЙ ЗБІЙ \ r \ n", 76);

if (bytes [2] & 0x01)

write (handle, "Аварія харчування 1 каналу \ r \ n ", 76);

if (bytes [2] & 0x02)

write (handle, "Аварія харчування 1 каналу \ r \ n", 76);

if (bytes [2] & 0x04)

write (handle, "Аварія харчування 1 каналу \ r \ n ", 76);

if (bytes [0] & 0x01)

write (handle, "Порушена цілісність програмного вироби-касети КП-610 - \ r \ n", 76);

write (handle, "підрахована контрольна сума не збігається з еталоном \ r \ n", 76);

break;

case 16: / / ВУ 16

case 17: / / ВУ 17

case 18: / / ВУ 18

case 19: / / ВУ 19

if (bytes [5] & 0x01)

write (handle, "ПУ заблоковано оператором по ФК \ r \ n", 76);

if (bytes [5] & 0x04)

write (handle, "Натиснуто КНОПКА ВИЯВЛЕННЯ НЕСПРАВНОСТІ \ r \ n", 76);

break;

case 15: / / АС

/ / Підкоригувати після узгодження

/ / Байта стану

if (bytes [5] & 0x04)

write (handle, "АРМ-РД несправний - не працюють обидві ПЕОМ \ r \ n", 76);

if (bytes [4] & 0x01)

write (handle, "АРМ-РД працездатний - працює одна з двох ПЕОМ \ r \ n", 76);

if (bytes [4] & 0x02)

write (handle, "Немає зв'язку хоча б по одній з ліній зв'язку ЛС1, ЛС2, ЛС3, ЛС4 \ r \ n", 76);

if (bytes [4] & 0x04)

write (handle, "Несправний КСП -0 \ r \ n ", 76);

if (bytes [3] & 0x01)

write (handle, "Несправний КСП -1 \ r \ n ", 76);

if (bytes [3] & 0x02)

write (handle, "Несправний КСП -2 \ r \ n ", 76);

if (bytes [3] & 0x04)

write (handle, "Немає зв'язку по лінії зв'язку ЛС1 \ r \ n", 76);

if (bytes [2] & 0x01)

write (handle, "Немає зв'язку по лінії зв'язку ЛС2 \ r \ n", 76);

if (bytes [2] & 0x02)

write (handle, "Немає зв'язку по лінії зв'язку ЛС3 \ r \ n", 76);

if (bytes [2] & 0x04)

write (handle, "Немає зв'язку по лінії зв'язку ЛС4 \ r \ n", 76);

break;

}

}

/ / Bs2_out. prj

/ / Bs2_out. c

/ / Main ()

/ / Видача результатів запиту по 2-ю формою байтів стану на екран

/ / (З файлу) або форматування і постановка в чергу для видачі

/ / На принтер

# Include <dos. h>

# Include "cxlkey. H"

# Include "disp. H"

extern void resScr (void);

/ / Видача результатів запиту з файлу на екран

extern void resPrn (void);

/ / Видача результатів запиту з файлу на принтер

void main (int argc, char * argv [])

{

void z (void);

setkbloop (z);

if (argv [1] [0] == 'е') resScr ();

else resPrn ();

}

void z (void)

{

union REGS r;

rh ah = 0;

int86 (DISP, & r, & r);

}

# Include <dos. h>

# Include "cxlkey. H"

# Include "disp. H"

extern void resScr (void);

/ / Видача результатів запиту з файлу на екран

extern void resPrn (void);

/ / Видача результатів запиту з файлу на принтер

void main (int argc, char * argv [])

{

void z (void);

setkbloop (z);

if (argv [1] [0] == 'е') resScr ();

else resPrn ();

}

void z (void)

{

union REGS r;

rh ah = 0;

int86 (DISP, & r, & r);

}

/ / Inq_out. prj

/ / INQ_OUT. C

/ / Main ()

/ / Видача результатів запиту на екран (з файлу)

/ / Або форматування і постановка в чергу для видачі на принтер

# Include <string. h>

# Include <process. h>

# Include "cxlkey. H"

# Include "cxldef. H"

extern void resScr (void);

/ / Видача результатів запиту з файлу на екран

extern void resPrn (void);

/ / Видача результатів запиту з файлу на принтер

void main (int argc, char * argv [])

{

void z (void);

setkbloop (z);

if (argv [1] [0] == 'е') resScr ();

else resPrn ();

}

# Include <dos. h>

# Include "disp. H"

void z (void)

{

union REGS r;

rh ah = 0;

int86 (DISP, & r, & r);

}

/ / Inq_out. prj

/ / Res_scr. C

/ / Res_scr ()

/ / Видача результатів запиту на екран (з файлу)

# Include <stdio. h>

# Include <string. h>

# Include "cxlwin. H"

# Include "cxlkey. H"

# Include "cxlvid. H"

# Define LEN 81

# Define TXTATTR _CYAN

# Define UP 0x4800

# Define DOWN 0x5000

# Define PGUP 0x4900

# Define PGDOWN 0x5100

# Define ESC 0x011b

void resScr (void)

{

FILE * f; / / дескриптор файлу результатів

int down; / / номер поточного рядка у файлі

int ch; / / код клавіші

int i;

char string [LEN];

int mwup; / / кількість рядків над основним вікном

/ / Вивід на екран рядка запиту і шапки таблиці

f = fopen ("inquiry. res", "r ++");

fgets (string, LEN, f);

for (mwup = 0; strncmp (string +3, "ДАТА", 4); + + mwup)

{

wopen (mwup, 0, mwup, 79,5, BLUE | _LGREY, BLUE | _LGREY);

wprintf ("% .79 s", string);

fgets (string, LEN, f);

}

wopen (mwup, 0, mwup, 79,5, YELLOW | _BLUE, YELLOW | _BLUE);

wprintf ("% .78 s", string);

/ / Основне вікно

wopen (+ + mwup, 0,25,79,5, LCYAN | _BLUE, TXTATTR);

/ / Wshadow (LGREY);

/ / Вивід результатів запиту з файлу на екран

for (down = mwup; down <25 & & fgets (string, LEN, f)! = NULL; + + down)

wprints (down-mwup, 1, TXTATTR, string);

hidecur ();

/ / Цикл перегляду результатів

while ((ch = getxch ())! = ESC)

switch (ch)

{

case UP: if (down <= 25) break;

down -;

fseek (f, (long) (down-25 + mwup) * LEN, 0);

fgets (string, LEN, f);

wscroll (1, D_DOWN);

wprints (0,1, TXTATTR, string);

break;

case DOWN: if (fseek (f, (long) down * LEN, 0)) break;

if (fgets (string, LEN, f) == NULL) break;

wscroll (1, D_UP);

wprints (24-mwup, 1, TXTATTR, string);

down + +;

break;

case PGUP: for (i = 0; i <= 24-mwup; + + i)

{

if (down <= 25) break;

down -;

fseek (f, (long) (down-25 + mwup) * LEN, 0);

fgets (string, LEN, f);

wscroll (1, D_DOWN);

wprints (0,1, TXTATTR, string);

}

break;

case PGDOWN: for (i = 0; i <= 24-mwup; + + i)

{

if (fseek (f, (long) down * LEN, 0)) break;

if (fgets (string, LEN, f) == NULL) break;

wscroll (1, D_UP);

wprints (24-mwup, 1, TXTATTR, string);

down + +;

}

break;

}

fclose (f);

wcloseall ();

}

/ / Bs2_out. prj

/ / Res_scr_. c

/ / Res_scr ()

/ / Видача результатів запиту по 2-ю формою байтів стану на екран

/ / (З файлу)

# Include <stdio. h>

# Include <string. h>

# Include "cxlwin. H"

# Include "cxlkey. H"

# Include "cxlvid. H"

# Define LEN 100

# Define TXTATTR _CYAN

# Define UP 0x4800

# Define DOWN 0x5000

# Define PGUP 0x4900

# Define PGDOWN 0x5100

# Define RIGHT 0x4d00

# Define LEFT 0x4b00

# Define HOME 0x4700

# Define END 0x4F00

# Define ESC 0x011b

FILE * f; / / дескриптор файлу результатів

int down; / / номер поточного рядка у файлі

char string [LEN];

int length; / / довжина рядків в файлі

int w1; / / дескриптор вікна

void screen_move (int right);

void resScr (void)

{

int right = 0; / / горизонтальне зміщення

int ch; / / код клавіші

int i;

/ / Вивід на екран рядка запиту і шапки таблиці

f = fopen ("inquiry. res", "r ++");

wopen (0,0,0,79,5, BLUE | _LGREY, BLUE | _LGREY);

fgets (string, LEN, f);

wprints (0,1, BLUE | _LGREY, string);

w1 = wopen (1,0,1,79,5, YELLOW | _BLUE, YELLOW | _BLUE);

fgets (string, LEN, f);

wprints (0,1, YELLOW | _BLUE, string);

length = strlen (string) +1;

/ / Основне вікно

wopen (2,0,25,79,5, LCYAN | _BLUE, TXTATTR);

hidecur ();

/ / Wshadow (LGREY);

/ / Вивід результатів запиту з файлу на екран

for (down = 2; down <25 & & fgets (string, LEN, f)! = NULL; + + down)

{

string [right +80] = '\ 0';

wprints (down-2, 1, TXTATTR, string);

}

/ / Цикл перегляду результатів

while ((ch = getxch ())! = ESC)

switch (ch)

{

case UP: if (down <= 25) break;

down -;

fseek (f, (long) (down-23) * length, 0);

fgets (string, LEN, f);

string [right +79] = '\ 0';

wscroll (1, D_DOWN);

wprints (0,1, TXTATTR, string + right);

break;

case DOWN: if (fseek (f, (long) down * length, 0)) break;

if (fgets (string, LEN, f) == NULL) break;

wscroll (1, D_UP);

string [right +80] = '\ 0';

wprintc (22,0, TXTATTR, '');

down + +;

break;

case PGUP: for (i = 0; i <= 22; + + i)

{

if (down <= 25) break;

down -;

fseek (f, (long) (down-23) * length, 0);

fgets (string, LEN, f);

wscroll (1, D_DOWN);

string [right +80] = '\ 0';

wprints (0,1, TXTATTR, string + right);

wprintc (1,0, TXTATTR, '');

}

break;

case PGDOWN: for (i = 0; i <= 22; + + i)

{

if (fseek (f, (long) down * length, 0)) break;

if (fgets (string, LEN, f) == NULL) break;

wscroll (1, D_UP);

string [right +80] = '\ 0';

wprints (22,1, TXTATTR, string + right);

down + +;

}

break;

case LEFT: if (right) screen_move (- right); break;

case RIGHT: if (right +82 <length) screen_move (+ + right); break;

case END: if (right +82 <length) screen_move (right = length-82); break;

case HOME: if (right) screen_move (right = 0); break;

}

fclose (f);

wcloseall ();

}

/ / Горизонтальна прокрутка

void screen_move (int right)

{

int i;

fseek (f, length, 0);

fgets (string, LEN, f);

string [right +80] = '\ 0';

wwprints (w1, 0,1, YELLOW | _BLUE, string + right);

if (down-22> 2) fseek (f, (long) (down-22) * length, 0);

for (i = 0; i <= 22 & & fgets (string, length, f)! = NULL; + + i)

{

string [right +80] = '\ 0';

wprints (i, 1, TXTATTR, string + right);

}

}

# Include <stdio. h>

# Include <string. h>

# Include "cxlwin. H"

# Include "cxlkey. H"

# Include "cxlvid. H"

# Define LEN 80

# Define ESC 0x011b

FILE * f; / / дескриптор файлу результатів

char string [LEN]; / / буфер для читання з файлу

void resScr (void)

{

int i;

int maxlen; / / максимальна довжина рядка у файлі результатів запиту

int startpos; / / стовпчик вікна з якого друкується текст

/ / Відкриття файлу результатів запиту і

/ / Визначення розміру самої довжини рядка в цьому файлі

f = fopen ("inquiry. res", "r ++");

for (maxlen = 0, i = 0; fgets (string, LEN, f)! = NULL; + + i)

if (strlen (string)> maxlen) maxlen = strlen (string);

fseek (f, 0,0);

/ / Чорний фон

wopen (0,0,24,79,5,0,0);

/ / Відкриття вікна

wopen ((20-i) / 2,5, (20-i) / 2 + i +2,75,1, YELLOW | _BLUE, _CYAN);

hidecur ();

/ / Читання типу пристрою та його використання в якості титулу вікна

fgets (string +1, LEN, f);

string [0] = '';

for (i = 2; i <= 6; + + i)

if (string [i] == '\ r' | | string [i] == '\ n') string [i] = '';

wtitle (string, TCENTER, _LGREY);

/ / Вивід результатів запиту з файлу у вікно

startpos = (70-maxlen) / 2;

for (i = 2; fgets (string, LEN, f)! = NULL; + + i)

{

wgotoxy (i, startpos);

wprintf ("% s", string);

}

/ / Вікно знаходиться на екрані поки не буде натиснуто ESC

while (getxch ()! = ESC);

fclose (f);

wcloseall ();

}

Список літератури

Глушков В.М. "Основи безпаперової інформатики", М. Наука, 1987 р.;

"Людина і обчислювальна техніка" під ред. Глушкова В.М., М. Наука, 1971 р.;

"Організаційні питання автоматизації управління" (переклад з англійської) Глушкова В.М., М. Економіка, 1972 р.;

Мартін Дж. "Організація баз даних в обчислювальних системах", М. Світ, 1980 р.;

Бойко В.В., Савінков В.М. "Проектування баз даних інформаційних систем", М. Фінанси і статистика, 1989 р.;

Шураков В.В. "Надійність програмного забезпечення систем обробки даних", М. Фінанси і статистика, 1987 р.;

Уінер Р. "Мова Турбо СІ", М. Світ, 1991 р.;

Paradox Engine. Документація: опис, список функцій для створення і роботи з БД.;

"Турбо СІ. Опис редактора, стандартні і графічні функції ", вид. Іституту проблем інформатики, М. 1989 р.;

Хьюз Дж., Мічтом Дж. "Структурний підхід до програмування". Вид. Світ, М., 1980 р.;

"Виконання організаційно-економічної частини дипломних проектів". Навчальний посібник, вид. МІРЕА, 1994 р.;

"Виконання організаційно-економічної частини дипломних проектів". Навчальний посібник, вид. МІРЕА, 1987 р.;

"Мережеві графіки в плануванні". Разумов І.М., Бєлова Л.Д., та ін, М. Вища школа, 1981 р.;

"Основи фінансового менеджменту. Як управляти капіталом? "Балабанов І.Т., М." Фінанси і статистика ", 1994 р.;

Мотузко Ф.Я. "Охорона праці", М. Вища школа, 1969 р.;

Самгін Е.Б. "Висвітлення робочих місць", вид. МІРЕА, 1989 р.;

Сібаров Ю.Б. "Охорона праці в обчислювальних центрах" та інші, М. Машинобудування, 1990 р.;

Методичні вказівки з дипломного проектування розділу "Охорона праці та навколишнього середовища" під ред. Мотузко Ф.Я., МІРЕА, 1980 р.;

"Основи інженерної психології" під ред. Ломова Б.Ф., М. Вища школа, 1986 р.;

Демиденко та ін "Захист об'єктів народного господарства від зброї масового ураження" Довідник, Київ "Вища школа" 1989 р.;

Методичні вказівки з безпеки життєдіяльності. "Особливості ведення аварійно-рятувальних робіт на промисловому об'єкті в НС мирного часу", вид. МІРЕА.;

Атаманюк В.Г., Ширшев Л.Г. та ін "Громадянська оборона. Підручник для Втузов ", М. Вища школа. 1987р.;

"Введення в практичну ергономіку. Навчальний посібник. "Під ред. Зінченко В.П., Моргунова Є.Б., вид. МІРЕА, 1990р.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
919.9кб. | скачати


Схожі роботи:
Автоматизоване робоче місце реєстрації й документування комплексу засобів автоматизації
Автоматизоване робоче місце
Автоматизоване робоче місце бухгалтера
Автоматизоване робоче місце менеджера
Автоматизоване робоче місце менеджера з реклами
Автоматизоване робоче місце та перспективи його розвитку
Автоматизоване робоче місце Логістика ЗАТ Пріосколье
Автоматизоване робоче місце оператора автоматизованого переговорного пункту та інформаційної
Автоматизоване робоче місце інженера станції технічного обслуговування автомобілів
© Усі права захищені
написати до нас