Автоматизоване робоче місце оператора автоматизованого переговорного пункту та інформаційної

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

скачати

<3><20><3><3><3><1><20><128><20><20>

Міністерство освіти України

запорізький державний технічний університет



Зав. кафедрою

Автоматизоване робоче місце оператора автоматизованого переговорного пункту та інформаційної системи

Пояснювальна записка до дипломного проекту

Розробив

ст. гр. РП-411


Коновалов І.А.

Керівник Онищенко В.Ф.
КОНСУЛЬТАНТИ:
з економіки Остапенко В.В.
з охорони праці та екології Ярош А.Г.
Нормоконтролер Башмакова Л.І.

1996р.

запорізький державний технічний університет

Факультет радіоприладобудівний Кафедра конструювання та виробництва радіоапаратури

Спеціальність ПРОГРАМНЕ забезпечення обчислювальної техніки і сапр


ЗАТВЕРДЖУЮ:


Зав. кафедрою



«___»_________________ 1996р.

ЗАВДАННЯ

НА ДИПЛОМНИЙ ПРОЕКТ СТУДЕНТУ

Коновалову Іллі Анатолійовичу

1. Тема проекту: Автоматизоване робоче місце оператора автоматизованого переговорного пункту та інформаційної системи,

затверджена наказом по інституту від «___»___________ 1996р. № ___________

2. Термін здачі студентом закінченого проекту ______________________________

3. Вхідні дані до проекту: Технічне завдання на автоматизовану програмно апаратну систему розрахунку за послуги ЕЛЕКТРОЗВ'ЯЗКУ (Апасов РУЕС)

4. Зміст розрахунково пояснювальної записки: титульний лист; завдання; анотація; зміст; основний текст, список використаних джерел; додаток.

5. Перелік графічного матеріалу:

Лист 1: загальна структура сполуки АРМ АПВ та ІС в складі АПП ГОЕС.

Лист 2: схема межзадачного обміну.

Лист 3: протоколи обміну по каналах зв'язку.

Лист 4: архітектура АПП-РК.

Лист 5: структура програми-контролера АПП-РК.


6. Консультанти по проекту із зазначенням розділів проекту, які їх стосуються.
Розділ Консультант Підпис, дата.


Завдання видав Завдання прийняв
5. Остапенко В.В.

6. Ярош А.Г.






7. Дата видачі завдання

Керівник



Завдання прийняв до виконання


Календарний план.

Пор. № Назва етапів дипломного проекту Термін виконання етапів проекту Примітка
1 Отримання технічного завдання 01.12.95
2 Розробка основних рішень з дипломного проекту 01.01.96 - 31.01.96
3 Розробка документації 01.02.96 - 29.02.96
4 Розробка програмної реалізації 01.03.96 - 31.03.96
5 Налагодження програм 10.3.96 - 31.3.96
6 Тестування 01.04.96 - 10.4.96
7 Випробування підсистеми 11.04.96 - 30.04.96
8 Випробування в системі АПП ГОЕС 20.04.96 - 30.04.96
9 Впровадження 01.05.96 - 31.05.96






Студент - дипломник



Керівник проекту



РЕФЕРАТ

Текст ПЗ 128 с., 14 табл., 16 рис., 20 джерела, 5 дод.

АВТОМАТИЧНІ КАБІНИ, РУЧНІ КАБІНИ, АВТОМАТИЗОВАНИЙ ПЕРЕГОВОРНИЙ ПУНКТ, АВТОМАТИЗОВАНЕ РОБОЧЕ МІСЦЕ АВТОМАТИЧНОГО ПЕРЕГОВОРНОГО ПУНКТУ ТА ІНФОРМАЦІЙНОЇ СИСТЕМИ, форми оформлення ручних замовлень.

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

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

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

У АПП ГОЕС реалізовані останні досягнення в цій галузі. АПП ГОЕС є комплексним виробом, які сконцентрували в собі весь спектр послуг надається сьогодні на ГОЕС.

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

  1. тривалий час оповіщення абонента про розміри і строки оплати за послуги;

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

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

ЗМІСТ

ЗАВДАННЯ НЕ ПРОЕКТ 2

РЕФЕРАТ 3

введення 6


ВИСНОВОК 91

Список використаних джерел 92

Додаток 1: Специфікація компонентів системи 94

Додаток 2: Текст програми АРМ АПП АК 95

Додаток 3: Текст програми монітора АПП-РК 102

Додаток 4: Текст програми АРМ АПП РК 111

Додаток 5: Текст програми стартера монітора 126

введення

У процесі проведених досліджень колективом програмістів СП "ПРОНАН ltd" та субпідрядними організаціями: Центром інформаційних технологій Комітету з науки і технологій України та приватним підприємством "ГЕО" (м. Москва) була розроблена концепція безпаперовій технології обробки інформації по розрахунках за послуги електрозв'язку. Розроблено організаційні заходи щодо зміни системи платежів на базі організації високоавтоматизованих міських відділень електрозв'язку та районних вузлів електрозв'язку.

У процесі виконання роботи проведено обстеження основних підрозділів Запорізького центру технічної експлуатації міжміських телеграфно телефонних зв'язків (ЦТЕ МТТЗ), безпосередньо пов'язаних з наданням послуг електрозв'язку населенню та підприємствам області. Структура ЦТЕ МТТЗ наведена на рис. 1.

Структура ЦТЕ МТТЗ.

рис. 1

На підставі розробленої та схваленої технічною радою замовника концепції розроблені основні попередні технічні пропозиції, що дозволяють:

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

  2. розробити схеми побудови мережі обчислювальних засобів на базі мікрокомп'ютерів;

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

  4. розробити і схвалити технічною радою замовника безпаперову технологію розрахунків з населенням обласного центру за послуги електрозв'язку.

Попередні спроби розробників СП "ПРОНАН ltd" автоматизувати роботу міських відділень електрозв'язку (ГОЕС) пройшли успішно. Одне з найбільш використовуваних засобів малої автоматизації АПП-РК (автоматизований переговорний пункт з ручною комутацією).

Автоматизовані системи контролю і управління веденням міжміських телефонних розмов є неодмінною атрибутикою сучасних переговорних пунктів загального користування. АПП-РК представляє нове покоління пристроїв цього класу з сімейства випускаються нами виробів: АПП-80, АПП-16, АПП-16/32, добре зарекомендували себе більш ніж за триста містах СНД, Балтії і за кордоном.

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

Характеристика об'єкту проектування

Застосовувані технічні засоби

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

Для роботи з автоматичними кабінами на ГОЕС використовуються АПП-РК як закінчений виріб. АПП-РК представляє собою мікропроцесорний пристрій на базі МПУ-80. МПУ-80 повністю сумісна зі стандартною CP \ M машиною.

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

Основні функції при ручному комутації абонентів: включення / відключення кабін з пульта оператора; реєстрація вхідного сигналу виклику по конкретній кабіні з дублюванням його для оператора; захоплення та утримання лінії абонента з видачею на його адресу тонального сигналу; контроль якості зв'язку оператором в будь-якій з вибраних кабін.

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

До складу АПП-РК входить: блок управління; принтер "Електроніка МС6313"; телефонна трубка.

Основні технічні дані АПП-РК.

  1. Тип обслуговується кінцевого пристрою телефонний апарат або МТА.

  2. Максимальна кількість обслуговуваних телефонних каналів 32.

  3. Живлення 220В + / - 10%, 50Гц.

  4. Споживана потужність, не більше 40 Вт.

  5. Вага блоку управління, не більше 12 кг.

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

Блок управління складається з:

  1. керуючої мікро-ЕОМ МПУ-80М,

  2. клавіатурі,

  3. плат комутаторів (до чотирьох штук),

  4. індикаторних панелей (по одній на кожну плату комутатора),

  5. телефонній панелі,

  6. блоку живлення,

  7. крос-плати.

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

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

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

МПУ-80М - представляє собою керуючу мікро-ЕОМ; управляє системою в цілому відповідно до записаною програмою.

Технічні дані МПУ-80М.

  1. Тип мікропроцесора КР580ВМ80А

  2. Тактова частота 2,15 мГц

  3. Обсяг ОЗУ на платі 4 Кбайт

  4. Максимально адресується обсяг ППЗУ (64 +4) Кбайт

  5. Обсяг ППЗУ на платі до 32 Кбайт

  6. Максимально адресується обсяг ОЗУ (64 +32) Кбайт

  7. Інтерфейс послідовного введення-виведення стику С2 або ИРПС

  8. Швидкість передачі інформації по інтерфейсу стику С2 і ИРПС 75, 150, 300, 600, 1200, 2400, 4800, 9600 біт / с

  9. Інтерфейс паралельного введення-виведення 48 ліній введення-виведення.

  10. Система переривань пріоритетна восьміуровневая

  11. Системна магістраль інтерфейс І-41

  12. Резидентне математичне забезпечення програма - монітор

Основні функції: управління модулями АК-8, РК-4; збір інформації про стан телефонних каналів, підключених до цих модулів; організація інтерфейсу з оператором (відпрацювання команд, що вводяться з клавіатурі; введення нових тарифів і т. д.); організація інтерфейсу з принтером (друк команд оператора, результатів їх виконання та різної іншої інформації).

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

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

Клавішна панель - призначена для введення інформації в АПВ (команди оператора, введення тарифів і т. д.).

ТЕЛЕФОННА ПАНЕЛЬ - представляє собою телефонний номеронабирач з пам'яттю на 22 номери.

ПАНЕЛЬ П8 - призначена для індикації зайнятості кабін, підключених до модулів АК-8, а також положення телефонної трубки в цих кабінах.

ПАНЕЛЬ П4 - призначена для індикації зайнятості кабін, підключених до модулів РК-4, наявності в лінії тонального сигналу виклику, а також управління модулем РК-4 (захоплення та утримання лінії абонента, підключення оператора до лінії для контролю якості зв'язку).

БЛОК ЖИВЛЕННЯ - перетворює вхідний напруга мережі 220V в набір постійних напруг: +5 V, +12 V,-12V, забезпечуючи тим самим електроживлення всієї системи.

КРОС-ПЛАТА - є сполучною ланкою між усіма перерахованими вище модулями. Крім того, містить генератор тональних сигналів, використовуваних модулями АК-8 та РК-4.

Взаємодія блоку управління з зовнішніми пристроями

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

  1. блок управління і принтер - "Centronics" (ІРПР-М);

  2. блок управління та АСУ - C2 або ИРПС;

  3. блок управління та АТС - через двухпроводную лінію;

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

Програмне забезпечення АПВ-РК розташовується в ППЗУ мікро-ЕОМ МПУ-80М. Його можна умовно розділити на дві частини:

  1. управляє;

  2. діагностичне.

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

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

Діюча методика обслуговування автоматичних кабін

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

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

Діюча методика оформлення ручних замовлень

При оформленні ручного замовлення заповнюється документ МТФ 4, що є документом суворої звітності. Документи надходять на відділення електрозв'язку у вигляді пачок по 100 примірників у кожній. Кожен документ має свій унікальний номер.

При заповненні форми МТФ 4 вказується викликається населений пункт, телефон викликається, список послуг (довідка, запросити до телефону і т.д.), час прийому замовлення, номер оператора, який прийняв замовлення, кількість замовлених хвилин.

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

При з'єднанні в форму заноситься час виконання замовлення, номер оператора, який виконував замовлення.

Після закінчення розмови оператор станції передає оператору відділення електрозв'язку кількість хвилин розмови і свій номер. Залишок суми завдатку повертається клієнтові.

У випадку невдалого розмови у формі МТФ 4 робиться відмітка про причину зняття замовлення і номер оператора, який зняв замовлення, при цьому гроші повертаються клієнту.

За відпрацьованим формам МТФ 4 ведеться статистика про відбулися і не відбулися розмовах по різних регіонах: області, України та СНД окремо.

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

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

Зняті показання з касового апарату служать для звітності щодо відділення зв'язку. Зведення з прийому оплат за квитанціями за послуги, надані в кредит знімаються в кінці кожної зміни і зшиваються разом з корінцями квитанцій для звітності з МГТС. У кінці зміни оператором проводиться також звірка корінців квитанцій із зведенням на предмет правильності справляння плати. Зведення по прийому телеграм також роздруковується у кінці зміни і зшивається з заповненими бланками телеграм з попередньою звіркою сум по зведенню. Аналогічна операція проводиться при роботі з автоматичними і ручними кабінами.

вибір і обгрунтування структури проектованої системи

Загальні відомості

АПП ГОЕС представляє собою апаратно-програмний комплекс, який включає в себе технічні та програмні засоби, що дозволяють автоматизувати ряд дій персоналу міського відділення електрозв'язку або районного вузла зв'язку.

Обгрунтування вибору технічних засобів

Після дослідження об'єктів проектування, можна прийти до висновку, що найбільш зручною для використання на ГОЕС (РУЕС) є наступна структура системи.

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

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

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

  1. звичні для операторів назви об'єктів і дій;

  2. вибір операцій за допомогою меню і функціональної клавіатури;

  3. вибір об'єктів і дій з виведених на екран їх переліків;

  4. висновок пояснювальних повідомлень на будь-якому етапі роботи;

  5. технологічно близький до природного перехід від однієї операції до іншої при вирішенні завдань.

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

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

Інформаційна станція являє собою спеціалізований інтелектуальний термінал, який підключений по каналу ИРПС до локального сервера АПП ГОЕС. ІС зібрана на базі ПК "ПРІОР-001" є серійно випускається виробом СП "ПРОНАН ltd". ПК "ПРІОР-001" являє собою 8-розрядну одноплатні мікро-ЕОМ і є аналогом широко розповсюдженого комп'ютера "Spectrum 48 +" фірми "Sinclair".

Комп'ютер "ПРІОР ® -001" виконаний на сучасній елементній базі - інтегральних мікросхемах малої і середньої ступені інтеграції. Архітектура комп'ютера базується на високопродуктивному мікропроцесорі Z80A фірми SGS-THOMPSON.

Спрощена блок - схема інформаційної станції представлена ​​на рис. 2.1

Схема інформаційної станції

рис. 2.1

Програмне забезпечення АРМ АПВ та ІС

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

Програмне забезпечення АРМ АПП і АРМ ІС підрозділяється на дві частини.

  1. Системне ПЗ, яке забезпечує роботу всього комплексу з дотриманням таких умов:

  1. функціонування операційної системи в многопользовательском режимі з мінімальними витратами ресурсів останньої;

  2. робота в реальному або псевдореального масштабі часу;

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

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

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

  6. можливість переносимості на різні технічні платформи.

  1. Прикладне програмне забезпечення задовольнять наступним вимогам:

  1. має дружній інтерфейс з непрофесійним користувачем;

  2. забезпечує адаптацію системи до мінливих умов експлуатації;

  3. має можливість швидкого розширення і зміни кола функцій, що реалізовуються;

  4. максимально зручно реалізує зв'язок всіх функцій із централізованою базою даних;

  5. забезпечує санкціонований доступ до інформації бази даних;

  6. веде докладний протокол роботи користувачів системи та обладнання;

  7. дозволяє оперативно і централізовано перерозподіляти ресурси системи адміністратора бази даних;

  8. забезпечує спадкоємність роботи на технічних засобах різної конфігурації.

Інструментальним засобом, що задовольняє наведеним вище вимогам і забезпечує гарне співвідношення вартість / продуктивність, є ОС ДТ-МАКС (DT-MAX) версії 6.0, яка і застосовані в даному комплексі.

основні рішення по реалізації компонентів системи

Загальні положення

Розроблюване автоматизоване робоче місце оператора автоматичних кабін та інформаційної системи призначене для роботи на міських відділення електрозв'язку (ГОЕС) у складі автоматизованої системи управління АПП ГОЕС. АРМ АПП реалізовані за принципом віконного інтерфейсу з використанням бібліотеки ДТМ-ПРО ("DTM PRO").

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

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

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

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

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

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

Програмне забезпечення АРМ АПВ та ІС:

  1. системне ПЗ;

  2. прикладне ПЗ.

Системне ПО являє собою операційну систему ДТМ (DTM) версії 6.0, яка забезпечує функціонування розробленого прикладного ПЗ, і мовою якої дане прикладне ПЗ реалізовано.

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

  1. редактор проектів;

  2. редактор форм;

  3. пакет програм "DTM PRO", який реалізує засоби організації екранного інтерфейсу з користувачем.

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

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

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

Принципи обслуговування автоматичних каналів

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

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

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

Взаємодія системи DTM з АПП-РК

АПП-РК спілкується з сервером по каналу ИРПС через мультипортових плату типу ASTBOARD. Обмін інформацією відбувається на швидкості 2400 бод. Цією швидкості цілком достатньо для даного обсягу переданої інформації та забезпечення надійності. Канал типу ИРПС допускає стійку передачу інформації з даної швидкість на відстань до 1км.

Кожна команда приходить в або виходить від АПП-РК закінчується символом "*". Всі команди великі латинські літери. в табл. 3.1.

Таблиця 3.1

Опис команд

Команда Призначення

E *

Дозволити передачу інформації. Цю команду слід передавати після включення або скидання АПП-РК, інакше АПП-РК буде утримувати всю інформацію у внутрішньому буфері (буфер не безрозмірний, близько 20 квитанцій).

D *

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

S *

Список вільних кабін. АПП-РК повертає список вільних кабін (див. переданої інформації).

V *

Стан кабін.

F *

Поєднана команда станів та списку кабін.

Bn_s *

Включити кабіну з номером n на суму s. Якщо кабіна ручна то s - час у хвилинах. Ручну кабіну можна увімкнути без завдання часу.

On *

Вимкнути кабіну.

L [рядок тарифів] *

Передати тарифи для АПП-РК. Формат рядка тарифів дивіться нижче.

P [рядок установок] *

Передати установки для АПП-РК. Формат рядка установок дивіться нижче.

i $ g (^ SpravUsl (61,53,4 ))="" s ^ SpravUsl (61,53,4) = "ПВ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,53,5 ))="" s ^ SpravUsl (61,53,5) = "ПС 0 0 0 0 хв."

i $ g (^ SpravUsl (61,53,6 ))="" s ^ SpravUsl (61,53,6) = "ТІ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,53,7 ))="" s ^ SpravUsl (61,53,7) = "З 0 0 0 0 хв."

i $ g (^ SpravUsl (61,53,8 ))="" s ^ SpravUsl (61,53,8) = "РВ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,53,9 ))="" s ^ SpravUsl (61,53,9) = "ВК 0 0 0 0 хв."

i $ g (^ SpravUsl (61,53,10 ))="" s ^ SpravUsl (61,53,10) = "ОДС 0 0 0 0 хв."

i $ g (^ SpravUsl (61,53,11 ))="" s ^ SpravUsl (61,53,11) = "ЗНЯ 666 0 1 0 хв."

i $ g (^ SpravUsl (61,54 ))="" s ^ SpravUsl (61,54) = "ЗНЯТТЯ З 4-Х ТЕЛЕФОНІВ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,54,1 ))="" s ^ SpravUsl (61,54,1) = "ОМС 0 0 1 0 хв."

i $ g (^ SpravUsl (61,54,2 ))="" s ^ SpravUsl (61,54,2) = "НВЛ 0 0 1 0 хв."

i $ g (^ SpravUsl (61,54,3 ))="" s ^ SpravUsl (61,54,3) = "NoНО 0 0 0 0 хв."

i $ g (^ SpravUsl (61,54,4 ))="" s ^ SpravUsl (61,54,4) = "ПВ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,54,5 ))="" s ^ SpravUsl (61,54,5) = "ПС 0 0 0 0 хв."

i $ g (^ SpravUsl (61,54,6 ))="" s ^ SpravUsl (61,54,6) = "ТІ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,54,7 ))="" s ^ SpravUsl (61,54,7) = "З 0 0 0 0 хв."

i $ g (^ SpravUsl (61,54,8 ))="" s ^ SpravUsl (61,54,8) = "РВ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,54,9 ))="" s ^ SpravUsl (61,54,9) = "ВК 0 0 0 0 хв."

i $ g (^ SpravUsl (61,54,10 ))="" s ^ SpravUsl (61,54,10) = "ОДС 0 0 0 0 хв."

i $ g (^ SpravUsl (61,54,11 ))="" s ^ SpravUsl (61,54,11) = "ЗНЯ 666 0 1 0 хв."

i $ g (^ SpravUsl (61,55 ))="" s ^ SpravUsl (61,55) = "ЗНЯТТЯ З 5-ТИ ТЕЛЕФОНІВ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,55,1 ))="" s ^ SpravUsl (61,55,1) = "ОМС 0 0 1 0 хв."

i $ g (^ SpravUsl (61,55,2 ))="" s ^ SpravUsl (61,55,2) = "НВЛ 0 0 1 0 хв."

i $ g (^ SpravUsl (61,55,3 ))="" s ^ SpravUsl (61,55,3) = "NoНО 0 0 0 0 хв."

i $ g (^ SpravUsl (61,55,4 ))="" s ^ SpravUsl (61,55,4) = "ПВ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,55,5 ))="" s ^ SpravUsl (61,55,5) = "ПС 0 0 0 0 хв."

i $ g (^ SpravUsl (61,55,6 ))="" s ^ SpravUsl (61,55,6) = "ТІ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,55,7 ))="" s ^ SpravUsl (61,55,7) = "З 0 0 0 0 хв."

i $ g (^ SpravUsl (61,55,8 ))="" s ^ SpravUsl (61,55,8) = "РВ 0 0 0 0 хв."

i $ g (^ SpravUsl (61,55,9 ))="" s ^ SpravUsl (61,55,9) = "ВК 0 0 0 0 хв."

i $ g (^ SpravUsl (61,55,10 ))="" s ^ SpravUsl (61,55,10) = "ОДС 0 0 0 0 хв."

i $ g (^ SpravUsl (61,55,11 ))="" s ^ SpravUsl (61,55,11) = "ЗНЯ 666 0 1 0 хв."

i $ g (^ SpravUsl (62 ))="" s ^ SpravUsl (62) = "ЗАМОВЛЕННЯ За повідомленням 0 0 1 0 хв."

i $ g (^ SpravUsl (62,10 ))="" s ^ SpravUsl (62,10) = "ЗВИЧАЙНИЙ 1 1 1 0 рази"

i $ g (^ SpravUsl (62,11 ))="" s ^ SpravUsl (62,11) = "ТЕРМІНОВИЙ 1 1 2 0 рази"

i $ g (^ SpravUsl (62,31 ))="" s ^ SpravUsl (62,31) = "ЗАПРОШЕННЯ 0 0 1 0 хв."

i $ g (^ SpravUsl (62,32 ))="" s ^ SpravUsl (62,32) = "ДОВІДКА 0 0 1 0 хв."

i $ g (^ SpravUsl (62,50 ))="" s ^ SpravUsl (62,50) = "ЗНЯТТЯ ЗАМОВЛЕННЯ 0 0 0 0 хв."

i $ g (^ SpravUsl (62,50,1 ))="" s ^ SpravUsl (62,50,1) = "ОМС 0 0 2 0 хв."

i $ g (^ SpravUsl (62,50,2 ))="" s ^ SpravUsl (62,50,2) = "НВЛ 0 0 2 0 хв."

i $ g (^ SpravUsl (62,50,3 ))="" s ^ SpravUsl (62,50,3) = "NoНО 0 0 2 0 хв."

i $ g (^ SpravUsl (62,50,4 ))="" s ^ SpravUsl (62,50,4) = "ПВ 0 0 0 0 хв."

i $ g (^ SpravUsl (62,50,5 ))="" s ^ SpravUsl (62,50,5) = "ПС 0 0 0 0 хв."

i $ g (^ SpravUsl (62,50,6 ))="" s ^ SpravUsl (62,50,6) = "ТІ 0 0 0 0 хв."

i $ g (^ SpravUsl (62,50,7 ))="" s ^ SpravUsl (62,50,7) = "З 0 0 0 0 хв."

i $ g (^ SpravUsl (62,50,8 ))="" s ^ SpravUsl (62,50,8) = "РВ 0 0 0 0 хв."

i $ g (^ SpravUsl (62,50,9 ))="" s ^ SpravUsl (62,50,9) = "ВК 0 0 0 0 хв."

i $ g (^ SpravUsl (62,50,10 ))="" s ^ SpravUsl (62,50,10) = "ОДС 0 0 2 0 хв."

i $ g (^ SpravUsl (62,50,11 ))="" s ^ SpravUsl (62,50,11) = "ЗНЯ 666 0 2 0 хв."

i $ g (^ SpravUsl (62,51 ))="" s ^ SpravUsl (62,51) = "ЗНЯТТЯ З ЗАПРОШЕННЯ 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,1 ))="" s ^ SpravUsl (62,51,1) = "ОМС 0 0 1 0 хв."

i $ g (^ SpravUsl (62,51,2 ))="" s ^ SpravUsl (62,51,2) = "НВЛ 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,3 ))="" s ^ SpravUsl (62,51,3) = "NoНО 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,4 ))="" s ^ SpravUsl (62,51,4) = "ПВ 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,5 ))="" s ^ SpravUsl (62,51,5) = "ПС 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,6 ))="" s ^ SpravUsl (62,51,6) = "ТІ 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,7 ))="" s ^ SpravUsl (62,51,7) = "З 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,8 ))="" s ^ SpravUsl (62,51,8) = "РВ 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,9 ))="" s ^ SpravUsl (62,51,9) = "ВК 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,10 ))="" s ^ SpravUsl (62,51,10) = "ОДС 0 0 0 0 хв."

i $ g (^ SpravUsl (62,51,11 ))="" s ^ SpravUsl (62,51,11) = "ЗНЯ 666 0 1 0 хв."

q

ДОДАТОК 5

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


; IAKoff Save,% n, 05/06/96
iapmon
iapmon ; IAKoff; 11:47 PM 23 Jan 1996;

q

; Обслуговування АПП-РК
run ()

n% nname,% d

i $ g (^ appstat ("NODE "))'=$ znode q 1

s% d = $ g (^ appstat ("DEVICE")) +0

i (% d <100)! (% d> 108) q 2


i $ $ tstjob ()'="" g endrun

s ^ appstat (1) = "F" s ^ appstat (2) = "F" s ^ appstat (3) = "F"

j ^ iapbckg (^ appstat ("DEVICE ")):( name =" APP-MON ": strstk = 8000: sysstk = 8000)
endrun

q 0

; ----------------------------------------
tstjob ()

n% c,% i,% n

s $ zp = $ c (30)

s% c = $ zjob ("*")_"*" s% i = 1
m2

s% n = $ p (% c ,",",% i)

i% n = "" g etm

i $ p ($ zjob (% n ),"|", 9) = "APP-MON" g etm

s% i =% i +1 g m2
etm

q% n

; ----------------------------------------
stop

i $ $ tstjob ()="" g endstop
nobckg1

i (^ appstat (1) = "F ")&(^ appstat (2) =" F ")&(^ appstat (3) = "F") g stopbckg

g endstop
stopbckg

s ^ appstat ("CMD") = "H"

; Нижче була помилка!

i ^ appstat ("STATUS ")'=" H" g nobckg1
endstop

q

126


відгук

на дипломний проект студента групи РП 411 Коновалова Іллі Анатолійовича "Автоматизоване робоче місце переговорного пункту та інформаційної системи".

Автоматизовані системи управління міськими відділеннями зв'язку є неодмінною атрибутикою сучасних переговорних пунктів загального користування. АПП ГОЕС представляє нове покоління АСУ цього класу

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

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

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

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

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

Вважаю, що дипломний проект заслуговує оцінки "відмінно", а студент Коновалов І.А. гідний присвоєння йому кваліфікації "інженер програміст" за спеціальністю "ВО ОТ та АС".


Керівник дипломного проекту

Онищенко В.Ф.
10 червня 1996



рецензія

на дипломний проект Коновалова Іллі Анатолійовича "Автоматизоване робоче місце переговорного пункту та інформаційної системи" (АРМ АПП та ІС).


На рецензію представлений дипломний проект з пояснювальною запискою на 113 аркушах, 5 плакатах.

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


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

Дипломантом пророблена велика робота з проектування програмного та інформаційного забезпечення зазначеного вище комплексу.

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

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

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

Загалом дипломна робота виконана на інженерному рівні. Дипломант показав високий рівень знань в області мікропроцесорної техніки і автоматизованих систем, проявив вміння грамотно вирішувати проектні завдання. Дипломна робота заслуговує відмінної оцінки, а дипломант Коновалов І.А. присвоєння йому кваліфікації "інженер програміст".


Рецензент
Головний конструктор СП "ПРОНАН ltd" А.Г. Падалка


17 червня 1996
м. Запоріжжя

Рядки тарифів представляє собою набір символів, в якому укладені пятібайтние значення тарифів. Перший байт рядка тарифів - розмір решти рядка. Другий байт рядка - номер сторінки тарифів (0 - міжміські, 1 - міжнародні). Далі по 5 байт йдуть тарифи відповідно по 0, 1, 2 .. зонам (їх може бути до 20 шт.).

Формат рядка установок наведено в табл. 3.2.

Таблиця 3.2

Формат рядка установок

Кількість байт Призначення
2

ЧАС ВІДСУТНОСТІ маніпуляцій у період TUPDOWN


2 ЧАС ОЧІКУВАННЯ У РУЧНІЙ Кабіна з Покладання Трубки в ПЕРІОДАХ TUPDOWN
2 ПАУЗА ПІСЛЯ ПІДНЯТТЯ ТРУБКИ в тиках
2 ПАУЗА ПІСЛЯ ПЕРШОЇ ЦИФРИ в тиках
2 ЧАС ПІСЛЯ НАБОРУ ВСІХ ЦИФР ДО ВІДПОВІДІ абон. У TUPDOWN
1 ЧАС БЕЗКОШТОВНОГО РОЗМОВИ У ПЕРІОДАХ TUPDOWN
1 КОД, що визначають тип НАБОРУ
1 ПРАПОР МІЖНАРОДНОЇ ЗВ'ЯЗКУ
1 ОЗНАКА ТАРИФІКАЦІЇ: 0FFh-Посекундна, 0-Щохвилини, 1-щохвилинна з переходить на посекундну
2 Дискрет ОКРУГЛЕННЯ ПРИ СЕК ТАРИФІКАЦІЇ (КОП, РУБ)
1 ПРАПОР ЧИТАННЯ перемичок
2 ДВА байт із значенням 0FFH




1 тик - 1 / 4 секунди, 1 період TUPDOWN - 1 / 80 секунди.

На події що відбуваються в кабінах АПП-РК реагує передачею повідомлень.

Формат повідомлення про початок розмови: "ВВВ NC HH.MM.SS TARIF FD PHONE". Розшифровка полів повідомлення наведено в табл. 3.3.

Таблиця 3.3

Розшифровка полів повідомлення "BBB"

Поле повідомлення Призначення

PHONE

Код + Телефон

FD

Номер цифри, з якої починається код зони

TARIF

Тариф

HH.MM.SS

Час початку розмови (фіктивне, не беріть дурного в голову.)

NC

Номер кабіни




Приклад повідомлення: "BBB 01 01.10.07 8000.00 00 0951234567 *"

Формат повідомлення про кінець розмови: "EEE NC MM.SS COSTF REST ZONE". Розшифровка полів повідомлення наведено в табл. 3.4.

Таблиця 3.4

Розшифровка полів повідомлення "EEE"

Поле повідомлення Призначення
ZONE Номер тарифної зони
REST Залишок
COST Вартість розмови
MM.SS Тривалість розмови
NC Номер кабіни




Формат повідомлення на команду списку вільних кабін: "SSS NC 1 NC 2 T 2 NC n T n *". Розшифровка полів повідомлення наведено в табл. 3.5.

Таблиця 3.5

Розшифровка полів повідомлення "SSS"

Поле повідомлення Призначення

T i

Тип кабіни (A - авт. P - ручні.)

NC i

Номер кабіни




Взаємодія оператора з АПП-РК

У АПП ГОЕС один оператор може виконувати безліч завдань: прийом кредитів, телеграм, обслуговування АК та РК і т.д. Розмови в кабінах відбуваються в часі не залежно від того, чим займається оператор і реакція на повідомлення приходять від АПП-РК повинна відбуватися відразу. Для цього між процесом оператора і АПП-РК запускається тіньовий процес який постійно підтримує зв'язок з АПП-РК. Передача інформації між процесами відбувається через глобальні змінні. Тіньовий процес реалізований в модулях iapbckg і ipabckgsub. Крім зв'язку з АПП-РК тіньовий процес займається ініціалізацією АПП-РК, завантаженням системних установок, завантаженням тарифів, відстежуванням аварійних ситуацій, формуванням записів у реєстрі, формуванням повідомлень для процесу оператори, формуванням журналу роботи АПП-РК. Опис глобальних змінних використовуються в АРМ АПП наведено в табл. 3.6.

Таблиця 3.6

Опис глобальних змінних

Назва глобальної змінної Вузол Призначення

^ Appcab

(I)

стан i-отй кабіни

^ Appcab

(I, j)

сума і кількість розмов по j-тій зоні в i-тої кабіні

^ Appstat

("CMD")

передача команди від процесу оператора в тіньовий процес

^ Appstat

("STATUS")

стан тіньового процесу

^ Appstat

("TARIF", "AUTO8", j)

тарифи для СНД по j-тій зоні

^ Appstat

("TARIF", "AUTO108", j)

тарифи для СНД по j-тій зоні

^ Appstat

("SETUP")

системні установки на АПП-РК

^ Appticket

(I, n)

квитанції по i-тої кабіні для n-го розмови







Взаємодія системи DTM з інформаційною системою

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

Крім кодів напрямків автоматичного телефонного зв'язку ІС дає інформацію користувачам про послуги МТТЗ, які він повинен сплатити, що особливо необхідно при переході на безпаперову технологію.

Серед додаткової інформації видається ІС є: тарифи на послуги телефонного зв'язку та інформація про підписних виданнях. Крім інформації ІС використовується як рекламне табло з досить багатим набором функцій MULTIMEDIA.

ІС спілкується з сервером по каналу ИРПС через мультипортових плату типу ASTBOARD. Обмін інформацією відбувається на швидкості 9600 бод. Цією швидкості цілком достатньо для даного обсягу переданої інформації та забезпечення надійності. Канал типу ИРПС допускає стійку передачу інформації з даної швидкість на відстань до 1км.

методика роботи споживача з системою

Загальні відомості

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

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

Методика роботи з автоматичними кабінами

АРМ АПП запускається з системи АПП ГОЕС допомогою вибору пункту меню УПРАВЛІННЯ АПП-РК \ УПРАВЛІННЯ АВТОМАТИЧНИМИ кабіні, або натисканням відповідної клавіші швидкого запуску. Одночасно з АПП може працювати тільки один оператор. Після запуску АРМ АПП оператор побачить список кабін (рис. 4.1).

Форма екрану при роботі з АК

Рис. 4.1

У верхній частині рамки показаний номер поточного оператора. У нижній - список можливих клавіш і їх призначення.

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

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

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

Для перегляду протоколу розмов необхідно натиснути клавішу F6 і ввести номер кабіни. Приблизна форма протокол зображена на рис. 4.2.

Протокол роботи кабіни

Рис. 4.2

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

Форма квитанції з розмов в автоматичній кабіні

Рис. 4.3

Для переходу в оформлення ручного замовлення потрібно натиснути клавішу F8. Для виходу з АРМ АПП потрібно натиснути клавішу ESC.

При виникненні збою АПП-РК або зникнення зв'язку з ним АРМ АПП виводить повідомлення показане на рис. 4.4.

Аварійне повідомлення

Рис. 4.4

При виникненні даного повідомлення необхідно на задній панелі АПП-РК натиснути кнопку скидання і потім на клавіатурі терміналу натиснути .

Методика роботи з ручними замовленнями

При виклику модуля оформлення ручного розмови на екрані з'явиться список замовлень, зображений на рис. 4.5

Список ручних замовлень

Рис. 4.5

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

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

Форма оформлення поточного замовлення

Рис. 4.6


Форма оформлення повідомлення

Рис. 4.7

Для оформлення замовлення необхідно натиснути клавішу F2 потім вибрати тип замовлення (повідомлення або поточний) і заповнити прототип форми МТФ-4 (см рис.4.6., Рис.4.7).

Приймаючи замовлення, телефоністка переговорного пункту заповнює зі слів абонента прототип форми МТФ-4 (см рис.4.6, рис.4.7), роздрукувати квитанцію про прийняття завдатку і видає її абоненту.

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

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

Сума внесеної абонентом плати за замовлений розмова визначається автоматично на підставі:

  1. тарифу;

  2. вартості хвилини розмови з викликуваним пунктом;

  3. передбачуваної абонентом тривалості розмови;

  4. вказаних у замовленні послуг.

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

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

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

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

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

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

Таблиця 4.7

Причини зняття

Код причини Опис причини
ОМС Відмова у момент з'єднання
НВЛ Ні викликається особи
NoНО Номер не відповів
ПВ Пошкодження зв'язку
ПС Погана зв'язок
ТІ Телефон зіпсований
СО Сеанс закінчено
РВ Зв'язок під радіомовленням або ДГТС
ВК Зв'язок зайнята розмовами вищої категорії або за терміновим тарифом
ОДС Відмова до з'єднання
ЗНЯ Абонент не з'явився


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

Методика роботи з інформаційною системою

Оператор інформаційної системи зобов'язаний при прийнятті зміни включити інформаційну систему. Зазвичай цю роботу виконує оператор АПВ. Перед запуском інформаційної системи оператор повинен перевірити або при необхідності внести зміни в конфігурацію ІС. При в ході в пункт меню УПРАВЛІННЯ ІНФОРМАЦІЙНОЇ СИСТЕМОЮ / КОНФІГУРАЦІЯ ІНФОРМАЦІЙНОЇ СИСТЕМИ на екрані з'явиться список пристроїв зарезервованих для ІВ і їх стан (рис. 4.8). Внизу підписані можливі клавіші і їх призначення.

Форма екран при конфігурації інформаційної системи

Рис. 4.8

При редагуванні налаштувань або створенні нової станції на екран виводиться форма, показана на рис. 4.9.

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

Рис. 4.9

Номер пристрою відповідає номеру канал, до якого підключена ІС. Якщо виставлений прапор монітора АПП, то інформаційна станція виконує функції табло розрахунків з АПП. Прапор "АКТИВНО" говорить про те, що пристрій буде запущено під час запуску інформаційної системи.

ЕКОНОМІКО-ОРГАНІЗАЦІЙНА частина

Сутність сіткового планування і управління

Призначення та галузі використання

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

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

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

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

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

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

Стрічковий графік.

Рис 5.1

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

Основні поняття і визначення.

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

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

Елемент мережевого графіка.

Рис 5.2

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

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

На рис. 5.3. зображений мережевий графік для вельми нескладного комплексу робіт з проектування та виготовлення стенду.

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

  1. шлях від вихідної події до даного проміжного події L (I - i);

  2. шлях, що з'єднує дане проміжне подію з завершальним, L (i - C);

  3. шлях між двома подіями, з яких ні одне не є, ні вихідним, ні завершальним.

Мережевий графік для комплексу робіт з проектування та виготовлення стенду.

Рис 5.3

Серед цих шляхів особливе значення має критичний шлях - послідовність робіт від вихідного до завершального події, що вимагає найбільшого часу для свого виконання t max [L (I-C)]. Таким чином, тривалість робіт, що лежать на критичному шляху, визначає загальний цикл завершення всього комплексу робіт, що плануються за допомогою мережного графіка.

Побудова мережевих графіків і оцінка часу виконання робіт

Стадії СПУ

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

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

  2. виявлення та опис кожним відповідальним виконавцем усіх подій і робіт, необхідних для виконання поставленої перед ним кінцевої мети; побудова ("зшивання") первинної мережі, приватних і вільної мереж;

  3. визначення часу виконання кожної роботи в мережі на основі системи оцінок;

  4. розрахунки параметрів мережевого графіка;

  5. аналіз мережевого графіка і його оптимізація.

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

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

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

У відносно нескладному випадку, наприклад, при плануванні підготовки виробництва будь-якого нового виробу, відповідними рівнями можуть бути:

1-й (найвищий) рівень - управління всією технічною підготовкою виробництва;

2-й рівень - конструкторська, технологічна, матеріальна підготовка;

3-й рівень - стадії конструкторської, технологічної та матеріальної підготовки виробництва;

4-й рівень - окремі комплекси робіт по кожній стадії підготовки виробництва.

Схема ієрархічна структури керівництва створенням нової техніки

Рис 5.4

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

Первинні мережі, що будуються на рівні відповідальних виконавців, деталізуються до такої міри, щоб у них були відображені вся сукупність робіт і всі взаємозв'язку подій і робіт. Подібна деталізація не є необхідною при "зшиванні" приватних мереж, кожна з яких об'єднує первинні мережі, складені в даній організації або на даному підприємстві. Первинні мережі, що є елементами такої приватної мережі, можуть бути в ній укріплені. Окремі шляху, що складаються з цілого ряду взаємопов'язаних робіт і подій первинної мережі, можуть бути показані у вигляді однієї роботи. Наприклад, вся первинна мережа з проектування та виготовлення стенду (див. рис. 5.3) може бути представлена ​​у вигляді однієї роботи: "Проектування та виготовлення стенду" з двома подіями "Прийнято рішення про створення стенду" і "Стенд готовий і налагоджений".

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

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

Як у приватних, так і у вільних мережах бажано більш детально показувати події і роботи, пов'язані з критичного шляху.

Опис і послідовність виконання подій та робіт у первинному мережевому графі

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

Всі події і роботи, що входять до комплексу робіт, рекомендується звести до таблиці в порядку їх послідовності. Щоб уникнути неправильної оцінки надалі загальної тривалості розробки проекту необхідно ретельно перевірити цей перелік. Наприклад, для мережі з 14 подій, що входять в процес створення АПП ГОЕС, перелік може бути прийнятий наступним (табл. 5.1).

Зшивання мережі

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

При перевірці створеної мережі з неї необхідно виключати:

  1. "Тупикові події", тобто ті, від яких не починається жодна робота (природно, за винятком завершального події);

  2. події, яким не передує жодна робота (за винятком вихідної події);

  3. замкнуті контури (напрям стрілок, що відображають послідовність виконуваних робіт, утворює замкнуте кільце);

  4. однакові коди для паралельних робіт між двома подіями.

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

Таблиця 5.1

Перелік подій, що входять в процес створення АПП ГОЕС

Порядковий номер події Подія Коди робіт Робота
0 Рішення про створення АПП ГОЕС прийнято 0,1 Розробка архітектури системи
1 Архітектура АПП ГОЕС розроблена 1,2 Розробка бібліотеки функцій для роботи з користувачем


1,3 Розробка бібліотеки функцій для обслуговування роботи оператора АПП ГОЕС


1,8 Розробка стикування АПП-РК з IBM PC і програм зв'язку


1,4 Розробка програм стикування з ЄС ЕОМ
2 Бібліотека DTM-PRO створена 2,6 Створення екранних форм для прийняття оплат


2,5 Створення програми проектних рішень


2,7 Створення інтерфейсу оператора АК і РК
3 Системна бібліотека створена 3,6 Створення процедур прийняття оплат
4 Комплекс програм зв'язки з ЄС ЕОМ створено 4,10 Отримання БД необхідних для нормального функціонування системи
5 Бібліотека DPPRJ58 створена 5,11 Створення системи меню та захисту АПП ГОЕС
6 Комплекс прийому оплат створений 6,9 Розробка програм перегляду реєстрів ГОЕС
7 Комплекс програм настройки системи створений 7,10 Впровадження комплексу в систему
8 АПП-РК підключений до IBM PC 8,7 Створення програм настройки системи на роботу з АПП-РК


8,6 Створення програми оператора АК і РК

продовження табл. 5.1

Порядковий номер події Подія Коди робіт Робота
9 Комплекс програм перегляду реєстрів створений 9,10 Стикування комплексу з іншими програмами
10 Комплесах програм адміністрування створений 10,11 Об'єднання створених програм в єдину систему
11 Всі створені комплекси об'єднані в єдину систему 11,12 Тестування системи в реальних умовах роботи


11,13 Написання документації по створеній системі
12 Тестування системи закінчено 12,14 Впровадження системи у виробництво
13 Написання документації закінчено 13,14 Навчання персоналу з готової документації
14 АПП ГОЕС створений і впроваджений


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

Визначення часу виконання кожної роботи на основі системи оцінок

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

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

Мінімальний час t min - мінімально можливий час виконання даної роботи. Ймовірність виконання роботи за такий час невелика. Максимальний час t max - це максимальний час виконання даної роботи за крайньої невдалому збігу обставин, наприклад, при можливості руйнування виробу, що випробовується, виявлення неправильності шляху, обраного для дослідження, і т.д. Нарешті, найбільш ймовірний час t ч. - можливий час виконання даної роботи за умови, що не виникне ніяких особливих і несподіваних труднощів.

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

Середнє квадратичне відхилення приймається рівним 1 / 6 розмаху, тобто

Квадрат s tож називається дисперсією і служить мірою розкиду очікуваного часу:

Дослідження радянських математиків показали, що розрахунок з помилкою, що не перевищує 1%, може здійснюватися і за двома оцінками часу t min і t max. Запропоновані ними рівняння мають такий вигляд:

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

Знайдені значення t очікуван заносять в таблицю і на мережі над кожною роботою проставляють оцінки часу (див. рис. 5.3).

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


Економічний розрахунок

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

  1. управління автоматичними кабінами міжміського телефонного зв'язку;

  2. управління прийомом і обслуговуванням розмов при комутації ручних міжміських розмов;

  3. прийом і передача телеграфних повідомлень;

  4. "Перенесення на плечі" користувача інформування про коди міст далекого та ближнього зарубіжжя, міст та районів України для автоматичного телефонного зв'язку, про послуги електрозв'язку, наданих у кредит, про перелік передплатних видань, про можливість подання різного роду оголошень;

  5. виконання послуг з реклами за допомогою інформаційної системи, що входить до складу АПП ГОЕС (РУЕС)

  6. автоматизація процесів передачі телефаксів;

  7. автоматизація процесу одержання оплат за послуги поштового та електричного зв'язку;

  8. автоматизоване формування різних реєстрів і щоденника роботи АПП ГОЕС (РУЕС) з накопиченням інформації по різних періодів;

  9. завантаження і вивантаження інформації про послуги, представлених в кредит, розрахованих централізовано;

  10. ведення довідника співробітників АПП ГОЕС (РУЕС) із забезпеченням парольного захисту та рівня доступу до системи різних категорій операторів;

  11. настройка параметрів на конкретні умови застосування АПП ГОЕС (РУЕС).

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

Основна зарплата на 1 особу за 1 місяць $.

Основна зарплата на 5 чоловік за 2 місяців $.

Додаткова зарплата $ * 13% = $.

Сума відрахувань від зарплати * 52% = $.

Матеріали та обладнання 500.00 $.

Накладні витрати * 300% = $.

Прибуток (+++)* 25% = * 0.25% = $.

Податок на додану вартість * 20% = $.

Розрахунок витрат наведено в табл. 5.2.

Таблиця 5.2

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

Витрати Сума, $ Питома вага до підсумку,%
Основна зарплата

Додаткова зарплата .
Сума відрахувань від зарплати .
Матеріали та обладнання

Накладні витрати

Прибуток

ПДВ

РАЗОМ ($)



РАЗОМ (крб.) $ * 200'000 = крб.

Розрахунок експлуатаційних витрат до впровадження АПП ГОЕС наведено в табл. 5.3

Таблиця 5.3

Витрати до впровадження АПП ГОЕС при кол-ве квитанцій 150000 шт. на місяць

Розраховуємо параметр Кількість Розрахунок

Розмір квитанції, м 2

0.021

Площа витрачається папери в м 2 на місяць.

3150 0.021 * 150000

Ціна 1м 2 папери, крб.

30158
Витрати на папір на місяць, крб. 94'997'700 3150 * 30158
Вартість рознесення 1 квитанції, крб. 5000
Витрати на рознесенні квитанцій на місяць, крб. 750'000'000 5000 * 150000
Швидкість друку принтера не менш квит / хв 50
Потужність принтера кВт 0.6
Вартість 1 кВт * год, крб. 5500
Витрати на електроенергію, споживану принтером на місяць, крб.
(0.6 * 5500) * ((150000/50) / 60)
Вартість принтера, крб. 140'000'000
Амортизаційні витрати (11% від вартості принтера на рік * 1 / 12) на місяць.
140000000 * 0.11/12
Разом в місяць, крб. 846'446'033
Разом в рік (12 місяців), крб. 10'157'352'396

І довнед = 10'157'352'396 крб.

Розрахунок вартості КТЗ на одне відділення зв'язку наведені в табл. 5.4.

Таблиця 5.4

Розрахунок вартості КТЗ на одне відділення зв'язку.


Найменування Кількість, шт. Ціна за шт., $ Сума, $

Робоча станція IBM PC/AT386 1 700 700

Термінал КРОН-180 2 200 400

Принтер Panasonic KX-130 2 100 200

АПП-РК 1 500 500

Інформаційна станція 1 200 200


Разом

2'000

Разом в крб

400'000'000










Розрахунок витрат після впровадження АПП ГОЕС в табл. 5.4.

Таблиця 5.5

Витрати після впровадження АПП ГОЕС

Розраховуємо параметр Кількість Розрахунок
Кількість відділень зв'язку, шт 26
Потужність КТС одного відділення зв'язку, кВт * год 0.3
Час роботи одного відділення зв'язку на місяць (14 годин * 365.25 дні), год



Вартість 1 кВт * год, крб 5'500
Вартість електрики на всі відділення зв'язку, крб 219'390'600 26 * 0.3 * 420 * 5500
Амортизаційні витрати на всі відділення зв'язку (11% від вартості обладнання на рік), крб
400000000 * 0.11 * 26
Поточний ремонт (3% від вартості обладнання на рік), крб
400000000 * 0.3 * 26
Інші витрати (3% від вартості обладнання на рік), крб
400000000 * 0.3 * 26
Загальні витрати на рік, крб 1'987'390'600






Розрахунок капітальних вкладень наведено в табл. 5.6

Таблиця 5.6

Капітальні вкладення на АПП ГОЕС.

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

вартість

крб

Вартість КТС на 26 відділень зв'язку (КТС на відділеннях зв'язку використовуються тільки для роботи з даною системою) 10'400'000'000
Вартість розробки ПЗ 1'282'224'000
Разом 11'682'224'000

Визначення економічної ефективності

Е = І довнед - І після - S рп / (n * Т с) = 10'157'352'396-1'987'390'600-=

Т ОК = К / Е = 11'682'224'000 / =

Річна економія від впровадження АПП ГОЕС дозволяє окупити витрати на розробку комплексу протягом 1.5 року. Таким чином вже за півтора року комплекс почне приносити дохід близько 8 млрд. на рік.

ОХОРОНА ПРАЦІ

Значення охорони праці

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

Державна політика в галузі охорони праці базується на принципах:

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

  2. комплексного розв'язання завдань охорони праці на основі національних програм з цих питань з урахуванням інших напрямів економічної і соціальної політики, досягнень в галузі науки і техніки та охорони навколишнього середовища;

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

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

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

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

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

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

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

Можна виділити три основні види робіт, у процесі виконання яких використовуються дисплеї:

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

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

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

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

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

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

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

Організаційно-технічні заходи

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

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

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

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

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

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

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

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

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

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

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

Для забезпечення захисту від випадкового дотику до струмоведучих частин застосовуються такі способи і засоби:

  1. захисні оболонки;

  2. захисні огородження;

  3. безпечне розташування струмоведучих частин;

  4. ізоляція струмоведучих частин (робоча, додаткова, посилена, подвійна);

  5. ізоляція робочого місця;

  6. мала напруга;

  7. захисне відключення;

  8. попереджувальна сигналізація, блокування, знаки безпеки.

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

  1. захисне заземлення;

  2. занулення;

  3. вирівнювання потенціалів;

  4. захисне відключення;

  5. ізоляція неструмоведучих частин;

  6. електричне розділення мережі;

  7. мала напруга;

  8. контроль ізоляції та ін / 10 /

На робочих місцях операторів встановлені розетки з напругою 220В.

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

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

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

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

До основних ергономічним завданням організації робочого місця належать:

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

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

Основними параметрами робочого місця, оснащеного дисплеєм, є 20 позицій (табл. 6.1). Робоче місце зображено на рис. 6.1.

Таблиця 6.1

Просторові параметри робочого місця

Умовне позначення параметра



Параметр

Спосіб

вимірювання

параметра

Ступінь

необхід-мости регулюван-ня

Значен-

ня пара-

метра

мм (°)


Примітка

1 Висота сидіння Від підлоги до верхньої площини сидіння Необхідна 400-500 Регульований параметр
Висота клавіатури Від підлоги до нижнього ряду клавіатури Бажана

600-750


620-700

Діапазон регулювання

Для нерегульованої висоти

Те саме (від рівня столу) Від базової поверхні до нижнього ряду клавіатури - "- Близько 20 При необхідності клавіатуру можна вбудувати в поверхню столу
3 Кут нахилу клавіатури Від горизонталі Можлива (7-15) Залежить від висоти клавіатури
4 Ширина основної клавіатури Визначається оптимальною зоною моторного поля згідно ГОСТ 12.2.032-78 - "- Не більше 400 Додаткові блоки і клавіші, нечасто використовувані, можуть бути розміщені в зоні легкої досяжності за межами основної клавіатури
5 Глибина основної клавіатури Те ж - "- Не більше 200 Те ж
6 Відстань клавіатури від краю столу Від переднього краю столу до нижнього Можлива Не менш 80-100 При нерухомому кріпленні клавіатури
7 Висота екрану Від підлоги до нижнього краю екрана Бажана

950-1000


970-1050

Діапазон регулювання

При відсутності регулювання

8 Кут нахилу екрана Від вертикалі - "-

(0-30 = 15 °) опт

Залежить від висоти екрана щодо очей

Продовження табл. 6.1

Услов-ное позна-чення пара-метра

Параметр

Спосіб

вимірювання

параметра

Ступінь

необхід-мости регулюван-ня

Значен-

ня пара-

метра

мм (°)


Примітка

9 Відстань екрану від краю столу Від переднього краю столу до екрана дисплея - "-

500-700


500

Діапазон регулювання

При відсутності регулювання

10 Висота поверхні для запису Від підлоги - "-

670-860


725

Діапазон регулювання

При відсутності регулювання

11 Площа поверхні для запису Визначається оптимальною зоною моторного поля - "-

600x400


900x600

Прямокутної форми

Трикутної форми

12 Кут нахилу поверхні для запису Від горизонталі Можлива (0-10)

Для постійної письмової роботи

Для періодичних записів


13а


13б

Глибина простору для ніг на рівні:

колін


ступень

Від переднього краю столу - "-

0


Не менше 400

Не менше 600



14а


14б

Висота простору для ніг на рівні:

колін


ступень

Від підлоги Можлива

Не менше 600

Не менше 100


Для нерегульованої висоти столу


15а


15б

Ширина простору для ніг на рівні:


колін


ступень


Можлива

Не менше 500

Не менше 250

Параметр необхідний при наявності бічних тумб або аналогічного обладнання
16 Висота підставки для ніг Від підлоги до передньої частини підставки Бажана

50-130


80

Регульована величина

Нерегульована

Продовження табл. 6.1

Услов-ное позна-чення пара-метра

Параметр

Спосіб

вимірювання

параметра

Ступінь

необхід-мости регулюван-ня

Значен-

ня пара-

метра

мм (°)


Примітка

17 Кут нахилу підставки для ніг Від горизонталі - "-

(0-25)


(15)

Діапазон регулювання

Нерегульована величина

18 Глибина підставки для ніг Від переднього до заднього краю - "- 400
19 Ширина підставки для ніг
- "- 300
20 Пюпітр-підставка для документів Від горизонталі - "-

15 ° -20 °



Робоче місце користувача ЕОМ (позначення на рис 6.1 відповідають зазначеним у табл. 6.1).

Рис 6.1

Відстань від очей користувача до екрану дисплея складає 500-700мм, кут зору 10-20 °, але не більше 40 °; кут між верхнім краєм відеотерміналу та рівнем очей оператора становить менше 10 °. Кращим є розташування екрану перпендикулярно до лінії зору користувача.

Конструкцією робочого місця забезпечено оптимальне положення працюючого. Руки користувача розташовуються на робочому столі в горизонтальному положенні або злегка похило, кут ліктя повинен становити 70-90 °. Необхідна хороша опора для спини і сідниць. Стегна розташовуються паралельно підлозі. Ноги стоять плоско на підлозі або на підставці. / 13,14,15 /

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

Робочі місця, обладнані дисплеями, розташовані таким чином, щоб у полі зору оператора не потрапляли вікна і освітлювальні прилади. Відеотермінали розміщуються під кутом 90-105 ° до вікон і на відстані не менш 2.5-3 м від стіни з віконними прорізами.

У полі зору оператора, що працює з дисплеєм, не потрапляють поверхні кіл середовища, які володіють дзеркальним відображенням. Співвідношення яскравості екрана і найближчих поверхонь відображення не перевищує 5:1. Покриття столу матове з коефіцієнтом відображення 0.25-0.4. / 12 /

Заходи з виробничої санітарії та гігієни праці

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

Обсяг виробничих приміщень на одного працюючого становить не менше 15 3, а площа приміщень - не менше 4.5м 2. Відстань між робочими місцями, обладнаними дисплеями, не менше 1м між рядами.

У приміщеннях, обладнаних відеотерміналами, стіни пофарбовані фарбами пастельних тонів з коефіцієнтом відображення 40-60%. Забарвленні поверхонь додана матова фактура. / 12 /

У залах обчислювальної техніки та інших виробничих приміщеннях при виконанні робіт операторського типу, пов'язаних з нервово-емоційною напругою, дотримуються оптимальні величини температури повітря 22-24 ° при його відносної вологості 40-60% і швидкості руху повітря не більше 0.1м / с. / 16 /

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

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

Освітленість робочих місць в горизонтальній площині на рівні 0.8м від підлоги - не менше 400лк. Вертикальна освітленість у площині екранів дисплеїв - не більше 300лк. Коефіцієнт пульсації освітленості - не більше 10%. Показник дискомфорту - не більше 40. Для обмеження відбитих від екранів відблисків забезпечено зниження яскравості випромінювачів в кутовій зоні більше 55 ° від вертикалі не більше 200 кд / м 2.

Для штучного освітлення застосовуються люмінесцентні лампи типу ЛБ. Для досить високих приміщень (4м і більше) у разі влаштування відбитого освітлення застосовані метало-галогенні лампи потужності менше 250Вт і високими індексами перенесення кольорів.

Для загального освітлення використані світильники з люмінесцентними лампами і дзеркальними екрануючими гратами і відбивачами. Не застосовуються для загального освітлення приміщень з використанням дисплеїв світильників будь-якого класу світлорозподілу, за винятком світильників класу світлорозподілу О і з кривою сили світла в нижній півсфері типів Л, Ш, М і С. / 17 /

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

При влаштуванні місцевого освітлення застосовуються повертаються, пересувні лампи на гнучкому шлангу або пересувних шарнірах. Світло падає зліва. Рекомендована потужність ламп - не менше 50-70Вт. Одне місцеве освітлення неприпустимо, оскільки пов'язано з неминучою адаптацією зору. Необхідно стежити за чистотою світильників і вікон. Брудна поверхню електричних ламп затримує до 80% світла, а злегка покрите пилом віконне скло - до 30% світла (чисте віконне скло пропускає до 80% світлових променів).

Робочі місця програмістів обчислювальних машин не мають рівні звуку та еквівалентні рівні звуку вище 50дБА, а в приміщеннях телефонних і телеграфних станцій, в залах обробки інформації на обчислювальних машинах - не вище 65ДбА, в приміщеннях для розміщення гучних агрегатів обчислювальних машин - 75ДбА. Нормування параметрів середовища проводиться з урахуванням виду трудової діяльності, зважаючи на схожість механізмів дії на організм людини шуму і напруженості праці. При виконанні робіт з вироблення концепцій нових програм рівні звуку не перевищують 40ДбА; при виконанні операторської роботи - 65ДбА. / 18 /

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

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

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

  1. вони встановлені для попередження стомлення;

  2. короткі й часті, а не довгі й рідкі;

  3. перерви проводяться поза робочого місця з відеотерміналом.

Різні види робіт вимагають різного підходу до організації перерв. Частота і тривалість (мікропаузи або більш тривалі перерви) перерв залежить від типу і інтенсивності виконуваної роботи. Для робіт, що виконуються з великим навантаженням, рекомендований 10-15-хвилинну перерву після кожної години роботи, а при інтенсивній і монотонної роботи 10-15 хвилин через кожні 2 години. Кількість мікропауз (тривалістю до 1 хвилини) регулюється індивідуально.

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

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

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

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


Заходи забезпечення пожежної безпеки

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

Власник підприємства, установи або організації зобов'язаний:

  1. розробити комплексні заходи щодо забезпечення пожежної безпеки;

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

  3. забезпечити дотримання протипожежних вимог, норм, правил, а також виконання вимог, приписів і постанов органів державного пожежного нагляду;

  4. організувати навчання працівників правилам пожежної безпеки та пропаганду заходів щодо їх забезпечення;

  5. за відсутності в нормативних актах вимог, необхідних для забезпечення пожежної безпеки, вживати відповідних заходів, погоджуючи їх з органами державного пожежного нагляду;

  6. утримувати в справному стані засоби протипожежного захисту і зв'язку, пожежну техніку, обладнання та інвентар, не допускати їх використання не за призначенням;

  7. представити на вимогу державної пожежної охорони відомості та документи про стан пожежної безпеки об'єктів та їхньої продукції;

  8. здійснювати заходи щодо впровадження автоматичних засобів виявлення і гасіння пожеж і використання для цієї мети виробничої автоматики;

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

  10. проводити службове розслідування у випадку пожеж. / 19 /

Усі працівники при прийомі на роботу щорічно за місцем роботи проходять інструктажі з питань пожежної безпеки.

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

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

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

У разі необхідності проведення дрібного ремонту або технічного обслуговування ЕОМ безпосередньо в робочому приміщенні і з використанням горючих речовин дозволяється мати не більше 0.5 л в тарі, яка не розбивається і щільно закривається.

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

Персональні комп'ютери після закінчення роботи на них вимикаються з мережі.

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

Не дозволяється:

  1. розміщувати ЕОМ у підвалах;

  2. проводити роботу по ремонту вузлів чи блоків ЕОМ безпосередньо в машинному залі;

  3. зберігати постійно в залах ЕОМ машинні носії інформації, запасні блоки й деталі;

залишати без нагляду включену в мережу електронну апаратуру, яка використовується для випробування та контролю ЕОМ. / 20 /

ВИСНОВОК

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

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

Перша версія системи запущена в експлуатацію в серпні 1995 року на двох центральних відділеннях зв'язку. До кінця 1995 року система успішно експлуатувалася на 19 відділеннях зв'язку м. Запоріжжя.

Список використаних джерел

1. Керівництво системного менеджера з ДТ-МАКС. Кембридж. ІнтерСістеми, 1994 р.

2. Керівництво програміста по ДТ-МАКС. Кембридж. ІнтерСістеми, 1994 р.

3. Міжміські телефонні правила. Міністерство зв'язку СРСР. "Зв'язок". 1968

4. Закон України "Про охорону праці", Постанова Верховної Ради України від 14.10.92 р. N 2696-XII

5. Державний реєстр міжгалузевіх І галузевим нормативних актів про охорону праці (Реєстр ДНАОП). За станом на 01.02.95 р. Затверджено наказом Державного комітету України по нагляд за охороною праці від 06.02.95 р. N 12, Київ, 1995 р.

6. Законодавство України про охорону праці. Збірник нормативних ДОКУМЕНТІВ. Том 1,2,3,4. Київ, 1995 р.

7. В.Ф. Кобевнік. Охорона праці. Київ. "Вища школа" 1990 г.

8. ГОСТ 12.0.002-80 ССБТ Терміни та визначення.

9. ГОСТ 12.0.003-74 * ССБТ Небезпечні і шкідливі виробничі фактори.

10. ГОСТ 12.1.019-79 * ССБТ Електробезпека. Загальні вимоги і номенклатура видів захисту.

11. Створення сприятливих умов праці користувачів ЕОМ, що працюють з дисплеями на інформаційно-обчислювальних центрах. Методичні рекомендації. Схвалені Постановою Держкомпраці УРСР 15.10.86 р. N 134.

12. Тимчасові санітарні норми і правила для працівників обчислювальних центрів, затв. Гол. державної реєстрацiї. сан. лікарем СРСР від 2.03.88 р. N 4559-88.

13. ГОСТ 12.2.032-78 ССБТ. Робоче місце при виконанні робіт сидячи.

14. ГОСТ 12.2.049-80 ССБТ. Устаткування виробниче. Загальні ергономічні вимоги.

15. ГОСТ 21689-76 "Система" Людина-машина. "Крісло людини-оператора. Загальні ергономічні вимоги."

16. ГОСТ 12.1.005-88 ССБТ. Загальні санітарно-гігієнічні вимоги до повітря робочої зони.

17. СНиП 11-4-79. Природне і штучне освітлення. Норми проектування. Зміни, затверджені Держбудом СРСР від 4.12.1985 р. N 205.

18. ГОСТ 12.1.003-83 ССБТ. Шум. Загальні вимоги безпеки.

19. Закон України "Про пожежну безпеку" від 17.12.93.

20. Правила пожежної безпеки України. Затверджені: В.О. головного державного інспектора України з пожежно нагляд 14.06.95. Київ "Укрархбудінформ" 1995

ДОДАТОК 1

Специфікація компонентів системи

Позначення Найменування Примітка
iap АРМ АПП АК Інтерфейсна секція роботи з оператором автоматичних кабін
iapbckg Монітор АПП-РК Модуль комунікації з АПП-РК
iapbckgsub Монітор АПП-РК Набір прцедур для модуля комунікації з АПП-РК
iaphand АРМ АПП РК Інтерфейсна секція роботи з оператором ручних кабін
iaphandsub АРМ АПП РК Набір прцедур для інтерфейсної секції роботи з оператором ручних кабін
iaphandinit АРМ АПП РК Модуль ініціалізація довідника послуг для ручних кабін
iapmon Стартер могітора АПП-РК Модуль ініціалізації і запуску

ДОДАТОК 2

Текст програми АРМ АПП АК

iap
iap ; IAKoff; 4:04 PM 6 Mar 1996
; Обслуговування АПП-РК
n% res,%,% NCAB,% OLDTRAPER,% BEEP,% LON,% LOFF
s% BEEP = $ c (7) _ $ c (7) _ $ c (7) _ $ c (7) _ $ c (7) _ $ c (7) _ $ c (7) _ $ c (7 )
s% = $ c (30) s% OLDTRAPER = $ ztrap
s $ ztrap = "ERROR ^ iap"
s% LON = 0,% LOFF = 0 reinit

i $ $ INITAPP () = 0 q
s% NCAB = $ $ INITCAB ()
i% NCAB = 0 s% res = $ $ ^ dp58msg (12,30, "Помилка у визначенні кабін", 1) q
i% NCAB> 16 s% NCAB = 16
w / color (7,0) d ^ dp58box (0,0,24,79,0, $ c (177))
w / color (0,7), / c (0,0), $ zzr ($ $ DAYNAME ^ dp58sys () _ "" _ $ $ FULLDATE ^ dp58sys (), 80) redraw

s% res = $ $ LIST ^ dp58Sel ("^ appstat (" "CABLIST" ",% i )","% i", 0,1,78,% NCAB +1, "N", 1, "DOUBLE" , "опреатора:" _% APPSYS ("NOM_OPER") _ $ c (30) _ "N ЗАДАТОК ЗАЛИШОК ТАРИФ ЧАС КОД + ТЕЛЕФОН Сост." _ $ c (30) _ "F3-Увімк. F4 Вимк. F5- Кв. F6-Прткл. F8-Ручн.заказ. ESC-Вихід "," DrawCab ^ iap | | OutCab ^ iap "," KEYF3, KEYF4, KEYCRASH, KEYF5, KEYF6, KEYF8 ")
i $ p (% res, $ c (30), 2) = "KEYCRASH" d CRASH q
i $ p (% res, $ c (30), 2) = "KEYENTER"
i $ p (% res, $ c (30), 2) = "KEYF3" s% LON = $ $ OPENCAB (% LOFF) s% LOFF = ""
i $ p (% res, $ c (30), 2) = "KEYF4" s% LOFF = $ $ CLOSECAB (% LON) s% LON = ""
i $ p (% res, $ c (30), 2) = "KEYF5" s% LOFF = $ $ TICKETS (% LOFF)
i $ p (% res, $ c (30), 2) = "KEYF6" s% LOFF = $ $ HISTORY (% LOFF)
i $ p (% res, $ c (30), 2) = "KEYF8" d ^ iaphand
i $ p (% res, $ c (30), 2) = "KEYESC" s ^ appstat (1) = "F" q
g redraw

DrawCab

n% s, I, P,% CAB
i% dpINDEX = "DRAWFREE" w $ j ("",% dpSX) q
s% CAB = ^ appcab (% i)


s% s = $ p (% CAB, $ c (30), 1)
s I = $ s (% s =- 1:7,% s = 0:14,% s = 1:0,% s = 2:14,% s = 3:14,% s = 4:0,1 : 7)
s P = $ s (% s =- 1:0,% s = 0:0,% s = 1:15,% s = 2:7,% s = 3:0,% s = 4:15,1 : 7)
w / color (I, P)
w ""
w $ j (^ appstat ("CABLIST",% i), 2) _ ""
w / color ($ p (% dpCOLORS ,",", 7), $ p (% dpCOLORS ,",", 8))


w "|"
i% LON =% iw / color (0,15)
w $ p ($ zzc ($ p (% CAB, $ c (30), 3), 18 ),".", 1)
w / color ($ p (% dpCOLORS ,",", 7), $ p (% dpCOLORS ,",", 8)), "|"


i% LOFF =% iw / color (0,15)
w $ p ($ zzc ($ p (% CAB, $ c (30), 4), 18 ),".", 1)
w / color ($ p (% dpCOLORS ,",", 7), $ p (% dpCOLORS ,",", 8))
w "|", $ p ($ zzc ($ p (% CAB, $ c (30), 6), 12 ),".", 1)
n% time
s% time = $ p (% CAB, $ c (30), 14)
i% time =- 1 s% time = $ p (% CAB, $ c (30), 13)
ed
. s% time = $ p ($ h ,",", 2) -% time
. s% s =% time \ 60
. s% time = $ zzj (% s, 2 )_":"_$ zzj (% time # 60,2)
w "|", $ j (% time, 5)


w "|", $ j ($ p (% CAB, $ c (30), 7 )_"-"_$ p (% CAB, $ c (30), 5), 11)


s% s = $ p (% CAB, $ c (30), 2)
w "|", $ s (% s = 0: "к",% s = 1: "А",% s = 2: "Р")
s% s = $ p (% CAB, $ c (30), 15) +0
w $ s (% s = 0 :"..",% s = 1 :"..",% s = 2 :"--", 1: "/ \")
q

OutCab

i (^ appstat ("STATUS") = "A") s% dpKEYCODE = "KEYCRASH"
s% str = $ $ TIME ^ dp58sys ()
w / c (80 - $ l (% str), 0), / color (0,7),% str
i% dpKEYCODE = "KEYNOPRESS" s% dpKEYCODE = "KEYREDRAW"
i% dpKEYCODE = "KEYDOWN" s% dpKEYCODE = "KEYEND"
i% dpKEYCODE = "KEYUP" s% dpKEYCODE = "KEYHOME"
i% dpKEYCODE = "KEYPAGEDOWN" s% dpKEYCODE = "KEYEND"
i% dpKEYCODE = "KEYPAGEUP" s% dpKEYCODE = "KEYHOME"
q
; ------------------------------------------------- ---------- INITCAB ()

n% i,% n
s% i ="",% n = 0 initcab1

s% i = $ o (^ appstat ("CABLIST",% i))
i% i = "" q% n
s% n =% n +1
g initcab1
; ------------------------------------------------- ---------- INITAPP ()

n% res,% ws
i $ $ tstjob ^ iapmon ()'="" g initapp3
w / color (14,0)
s% res = $ $ ^ dp58msg (12,30, "Запуск монітора", 0.1)
s% res = $ $ run ^ iapmon
i% res = 1 s% res = $ $ ^ dp58msg (12,30, "АПП не підключений "_%_" до вашої станції ."_%_" Опишіть в устаноквх на АПП", 0) q 0
i% res = 2 s% res = $ $ ^ dp58msg (12,30, "Не вірний номер пристрою ."_%_" Опишіть в устаноквх на АПП", 0) q 0
h 3 initapp2

s% ws = 10 initapp1

w / color (14,0)
s% res = $ $ ^ dp58msg (12,35, "Очікування готовності монітора:" _% ws, 0.1) h 1
i ^ appstat ("STATUS") = "A" s% res = $ $ ^ dp58msg (12,30, "Проблеми!! !"_%_" Аварія АПП-РК "_%_" Сбросте АПП-РК" _ % _ "і спробуйте ще раз.", 0) q 0
i ^ appstat ("STATUS") = "H" s% res = $ $ ^ dp58msg (12,30, "Проблеми!! !"_%_" Сбросте АПП-РК "_%_" і спробуйте ще раз." , 0) q 0
s% ws =% ws-1 i% ws = 0 q 0
i ^ appstat ("CMD ")'=" R" g initapp1 initapp3

i (^ appstat (1) '= "F") s% res = $ $ ^ dp58msg (12,30, "Другий зайвий.", 1) q 0
s ^ appstat (1) =% APPSYS ("NOM_OPER")
s ^ appstat (1, "NOM_OPER") =% APPSYS ("NOM_OPER")
s ^ appstat (1, "NOM_GOES") =% APPSYS ("NOM_GOES")
s ^ appstat (1, "NOM_MESS") =% APPSYS ("NOM_MESS")
s ^ appstat (1, "NOM_DENN") =% APPSYS ("NOM_DENN")
s ^ appstat (1, "NOM_SMEN") =% APPSYS ("NOM_SMEN")
s ^ appstat ("USD_KURS") =% APPSYS ("USD_KURS")
q 1


; ------------------------------------------------- ---------- CRASH

i $ $ ^ dp58msg (8,30, "А В А Р І Я!! !"_%_" Натисніть на задній панелі АПП-РК "_%_" маленьку біленьку кнопочку "_%_" і потім натисніть на клавіатурі ", 0) '=" KEYENTER "g CRASH


s ^ appstat (1) = "F"
q
; ------------------------------------------------- ---------- OPENCAB (% cab)

n% forma,% res
i (^ appstat ("STATUS") = "A ")!(^ appstat (" STATUS ") =" H ") s% res = $ $ ^ dp58msg (12,35," АВАРІЙНА СИТУАЦІЯ! "_ $ c ( 30) _ "ВКЛЮЧАТИ КАБІНИ НЕ МОЖНА.", 0) q% cab
i $ g (% cab )'="" s% forma ("CABNUM") = $ g (^ appstat ("CABLIST",% cab))
s% forma ("SUMMA") = 0
d drscr ^ uf58 ("iap! OPEN")
i $ $ get ^ uf58 ("iap! OPEN", "% forma") = "ESC" q% cab
s% cab = $ $ phys (% forma ("CABNUM"))
i (^ appcab (% cab) .2 = 2) d ^ AppOnRk58 (% cab, "ON") q% cab
d cabon (% cab,% forma ("SUMMA"))
q% cab OutOPCN ()

n% res,% cab
s% cab = $ $ phys ($ p (% ufNEWDATA, $ c (30), 1))
i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q% ufNEWDATA
i $ g (^ appcab (% cab ))="" s% res = "Невірний номер кабіни!" g OPCN1
i ^ appcab (% cab) .1 =- 1 s% res = "Кабіна на ремонті!" g OPCN1
i ^ appcab (% cab) .1 = 1 s% res = "Кабіна зайнята!" g OPCN1
i ^ appcab (% cab) .1 = 2 s% res = "У кабіні решту!" g OPCN1
q% ufNEWDATA OPCN1

s% res = $ $ ^ dp58msg (3,35,% res, 0)
d drscr ^ uf58 ("iap! OPEN")
d redraw ^ uf58 ("iap! OPEN", "% forma")
q "PROBLEM" InOPSM ()

n% cab
s% cab = $ $ phys ($ p (% ufNEWDATA, $ c (30), 1))
i (^ appcab (% cab) .2 = 2) q "FIELDOFF"
q% ufOLDDATA
; ------------------------------------------------- ---------- CLOSECAB (% cab)

n% forma,% res
i $ g (% cab )'="" s% forma ("CABNUM") = $ g (^ appstat ("CABLIST",% cab))
d drscr ^ uf58 ("iap! CLOSE")
i $ $ get ^ uf58 ("iap! CLOSE", "% forma") = "ESC" q% cab
s% cab = $ $ phys (% forma ("CABNUM"))
i (^ appcab (% cab) .2 = 2) d ^ AppOnRk58 (% cab, "OFF") q% cab
d caboff (% cab)
q% cab OutCLCN ()

n% res,% cab
s% cab = $ $ phys ($ p (% ufNEWDATA, $ c (30), 1))
i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q% ufNEWDATA
i $ g (^ appcab (% cab ))="" s% res = "Невірний номер кабіни!" g CLCN1
i ^ appcab (% cab) .1 =- 1 s% res = "Кабіна на ремонті!" g CLCN1
i ^ appcab (% cab) .1 = 0 s% res = "Кабіна вільна!" g CLCN1
q% ufNEWDATA CLCN1

s% res = $ $ ^ dp58msg (3,35,% res, 0)
d drscr ^ uf58 ("iap! CLOSE")
d redraw ^ uf58 ("iap! CLOSE", "% forma")
q "PROBLEM"
; ------------------------------------------------- ---------- phys (% l)

n% i
s% i = "" phys1

s% i = $ o (^ appstat ("CABLIST",% i))
i% i = "" q 0
i% l = ^ appstat ("CABLIST",% i) q% i
g phys1
; ------------------------------------------------- ---------- cabon (% numcab,% zadat)

k ^ appticket (% numcab)
n% hl
s% hl = "1" i% numcab> 16 s% hl = "2"
s% cmd = "B" _% numcab_ "" _% zadat cabon1

i ^ appstat ("CMD ")'=" R" g cabon1
s ^ appstat ("CMD") = "WRQ" _% hl
i ^ appstat ("CMD") = "WEN" _% hl g cabon3
i ^ appstat ("CMD") = "R" g cabon1 cabon3

s ^ appstat ("CMD", "COM") =% cmd
s ^ appstat ("CMD") = "WAC" _% hl
q


; ------------------------------------------------- ---------- caboff (% numcab)

n% hl,% kk
s% hl = "1" i% numcab> 16 s% hl = "2"
i ^ appstat ("STATUS") = "A" g caboff6
s% cmd = "O" _% numcab caboff1

i ^ appstat ("CMD ")'=" R" g caboff1
s ^ appstat ("CMD") = "WRQ" _% hl
i ^ appstat ("CMD") = "WEN" _% hl g caboff3
i ^ appstat ("CMD") = "R" g caboff1 caboff3

s ^ appstat ("CMD", "COM") =% cmd
s ^ appstat ("CMD") = "WAC" _% hl caboff4

r *% kk: 0.1 i% kk '=- 1 g caboff5 caboff6

i (^ appcab (% numcab) .1 '= 0) & (^ appcab (% numcab) .1' = 2) & (^ appcab (% numcab) .1 '= 1) g caboff4 caboff5

q
; ------------------------------------------------- ---------- TICKETS (% cab)

n% forma,% res,% sel,% sid,% id
i $ g (% cab) = "" s% cab = 0
s% forma ("CABNUM") = $ g (^ appstat ("CABLIST",% cab))
d drscr ^ uf58 ("iap! TICKET")
i $ $ get ^ uf58 ("iap! TICKET", "% forma") = "ESC" q% cab
s% cab = $ $ phys (% forma ("CABNUM"))
s% id = "" f ds% id = $ o (^ appticket (% cab,% id)) s:% id '= ""% sel (% id) =% id q:% id = ""
i (^ appcab (% cab) .2 = 2) q% cab; друк квитанцій ПО РУЧНИЙ КАБІНА tickets1

s% res = $ $ SELECT ^ dp58Sel ("^ appticket (% cab,% id )","% id", "% sel (% sid )","% sid", 10,12,61,9, " ", 0," SINGLE "," Квитанції по кабіні N "_% cab_ $ c (30) _" ПРОД. КОД МІСТО РЕГІОН ТЕЛЕФОН СУМА "_ $ c (30) _" -ВІДМІТКА -ДРУК "," DrawTicket ^ iap "," KEYF4 ")


i $ p (% res, $ c (30), 2) = "KEYESC" q% cab
i $ p (% res, $ c (30), 2) = "KEYF4" d TICKPRINT q% cab
g tickets1

DrawTicket

i% dpINDEX = "DRAWFREE" w $ j ("",% dpSX) q
w $ j ($ p (^ appticket (% cab,% id), $ c (30), 3), 5) _ ""
w $ j ($ p (^ appticket (% cab,% id), $ c (30), 4), 3) _ ""
w $ j ($ p (^ appticket (% cab,% id), $ c (30), 5), 12) _ ""
w $ j ($ p (^ appticket (% cab,% id), $ c (30), 8), 14) _ ""
w $ j ($ p (^ appticket (% cab,% id), $ c (30), 6), 10) _ ""
w $ zzc ($ p (^ appticket (% cab,% id), $ c (30), 7), 12,2)
q

OutTCCN ()

n% res,% cab
s% cab = $ $ phys ($ p (% ufNEWDATA, $ c (30), 1))
i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q% ufNEWDATA
i $ g (^ appcab (% cab ))="" s% res = "Невірний номер кабіни!" g TCCN1
i ^ appcab (% cab) .1 =- 1 s% res = "Кабіна на ремонті!" g TCCN1
i ^ appcab (% cab) .1 = 1 s% res = "Кабіна зайнята!" g TCCN1
i $ d (^ appticket (% cab)) = 0 s% res = "Ні квитанції!" g TCCN1
i ^ appcab (% cab) .1 = 2 s% res = "У кабіні решту!" g TCCN1
q% ufNEWDATA TCCN1

s% res = $ $ ^ dp58msg (3,35,% res, 0)
d drscr ^ uf58 ("iap! TICKET")
d redraw ^ uf58 ("iap! TICKET", "% forma")
q "PROBLEM"

; ------------------------------------------------- ----------
TICKPRINT

n% KVIT,% sid
s% sid = $ o (% sel ("")) i% sid = "" q tickprn1

i $ g (% sel (% sid)) = 0 g tickprn3

s% KVIT (% sid) = <9, $ p (^ appticket (% cab,% sid),%, 7), $ p (^ appticket (% cab,% sid),%, 4 )_"-" _ $ p (^ appticket (% cab,% sid),%, 6) _ "" _ $ p (^ appticket (% cab,% sid),%, 3)>

tickprn3

s% sid = $ o (% sel (% sid)) i% sid '= "" g tickprn1
d PrintKvit ^ AppSysd
q
; ------------------------------------------------- ---------- HISTORY (% cab) ; IAKoff; 10:34 PM 26 Aug 1995;
n% ll,% ee,% id
i $ g (% cab) = "" s% cab = 0
s% forma ("CABNUM") = $ g (^ appstat ("CABLIST",% cab))
d drscr ^ uf58 ("iap! HISTORY")
i $ $ get ^ uf58 ("iap! HISTORY", "% forma") = "ESC" q% cab
s% cab = $ $ phys (% forma ("CABNUM"))
s% ee = "C" _% cab

i $ d (^ appjrn (% ee)) = 0 g ihlp1

s% ll = "^ appjrn (% ee,% id)" s% id = "" s% id = $ o (^ appjrn (% ee,% id), -1)

s% rr = $ $ LIST ^ dp58Sel (% ll, "% id", 1,10,76,12, "", 0, "DOUBLE", "Журнал", "DrawHist ^ iap")
ihlp1

q% cab


OutHSCN ()

n% res,% cab

s% cab = $ $ phys ($ p (% ufNEWDATA, $ c (30), 1))

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q% ufNEWDATA

i $ g (^ appcab (% cab ))="" s% res = "Невірний номер кабіни!" g HSCN1

i ^ appcab (% cab) .1 =- 1 s% res = "Кабіна на ремонті!" g HSCN1

q% ufNEWDATA
HSCN1

s% res = $ $ ^ dp58msg (3,35,% res, 0)

d drscr ^ uf58 ("iap! HISTORY")

d redraw ^ uf58 ("iap! HISTORY", "% forma")

q "PROBLEM"


DrawHist

n% rrr,% time,% date

i% dpINDEX = "DRAWFREE" w $ j ("",% dpSX) q

s% rrr = ^ appjrn (% ee,% id, "MSG")

s% time = $ j ($ p (^ appjrn (% ee,% id, "TIME"), $ c (30), 1), 8)

s% date = $ j ($ p (^ appjrn (% ee,% id, "TIME"), $ c (30), 2), 5)

i $ p (% rrr, "", 1) = "ON" g drwh1

i $ p (% rrr, "", 1) = "OFF" g drwh2

i $ p (% rrr, "", 1) = "BBB" g drwh3

i $ p (% rrr, "", 1) = "EEE" g drwh4

i $ p (% rrr, "", 1) = "AAA" g drwh5

w $ zzr (% rrr, 61) _% time_ "" _% date_ "" q
drwh1

w $ zzr ("Вкл." _ $ p (% rrr, "", 2), 61) _% time_ "" _% date_ "" q
drwh2

w $ zzr ("Викл." _ $ p (% rrr, "", 2), 61) _% time_ "" _% date_ "" q
drwh3

w $ zzr ("Нач. разг. тариф:" _ $ p (% rrr, "", 4) _ "тел:" _ $ p (% rrr, "", 6), 61) _% time_ "" _ % date_ "" q
drwh4

w $ zzr ("Кон. разг. часом:" _ $ p (% rrr, "", 3) _ "сума:" _ $ p (% rrr, "", 5), 61) _% time_ "" _ % date_ ""

q
drwh5

w $ zzr ("аварії. зав. часом:" _ $ p (% rrr, "", 3) _ "сума:" _ $ p (% rrr, "", 5), 61) _% time_ "" _ % date_ ""

q



; ------------------------------------------------- ----------
ERROR

s $ ztrap =% OLDTRAPER

s ^ appstat (1) = "F"

g @ $ ztrap

ДОДАТОК 3

Текст програми монітора АПП-РК

iapbckg
iapbckg (% an) ; IAKoff; 3:44 PM 6 Mar 1996

n% cc,% free,% zone,% cmd,% i,% summ,% tsec,% tmin,% min,% hour,% sec,% cod,% idev

n% cabspis,% to,% hl,% SHARE,% noper,% nsmen

s% SHARE = ​​$ $ SHARE ^ AppSyst ()

s $ zp = $ c (30) s $ ztrap = "errhndr ^ iapbckgsub"

s ^ appstat ("CMD") = "WAIT"

s ^ appstat ("STATUS") = "INIT"

o% an u% an: (ixxlate = 0: speed = 2400: parity = "none": stopbits = 1)

d addjrn ^ iapbckgsub ("APPRK", "Запуск апп монітор ","")

w "E *"

k ^ appzxcab

k ^ appcab

f% i = 1:1:32 d

. s ^ appcab (% i) = "-1" _ $ zp_ "0" _ $ zp_ "00.00" _ $ zp_ "00.00" _ $ zp_ "" _ $ zp

. s ^ appcab (% i) = ^ appcab (% i) _ "00.00" _ $ zp_ "" _ $ zp_ "0" _ $ zp_ "0" _ $ zp

. s ^ appcab (% i) = ^ appcab (% i) _ "0" _ $ zp_ "0" _ $ zp_ "0" _ $ zp_ "00.00" _ $ zp

. s ^ appcab (% i) = ^ appcab (% i) _ "-1" _ $ zp_ "0"

. w "O" _% i_ "*"

. f% zone = 0:1:20 s ^ appcab (% i,% zone) = "0" _ $ zp_ "0"

. f% zone = 128:1:148 s ^ appcab (% i,% zone) = "0" _ $ zp_ "0"



s% ws = 0
freecab ; Отримати список кабін

s% ws =% ws +1

i% ws = 20 g thlt

s ^ appstat ("STATUS") = "CAB OFF"

w "I *"

s ^ appstat ("STATUS") = "LIST"

w "S *"

s% free = $ $ gres ^ iapbckgsub () i% free = "HALT" g thlt

i% free = "TIME" g thlt

s% i = 1
ncab

s% cmd = $ p (% free, "",% i +1)

s% cc = $ e (% cmd, 1,2) +0

s% cod = $ e (% cmd, 3,3)

i% cmd = "" g lastcab

i (% cc> 32)! (% cc <1) d addjrn ^ iapbckgsub ("APPRK", "InitError Cab",% free) g freecab


i (% cod '= "A ")&(% cod' =" P ") d addjrn ^ iapbckgsub (" APPRK "," InitError Stat ",% free) g freecab



s% cabspis (% i) =% cc

s ^ appcab (% cc) .1 = 0

s ^ appcab (% cc) .2 = 2 i% cod = "A" s ^ appcab (% cc) .2 = 1

s% i =% i +1

g ncab
lastcab

; ---------------------------

; Завантаження системних установок

s ^ appstat ("STATUS") = "SETUP"

w "P" _ ^ appstat ("SETUP ")_"*"

; ---------------------------

; Завантаження тарифів по СНД
LoadTarif

s ^ appstat ("STATUS") = "TARIF"

i $ d (^ appstat ("TARIF", "AUTO8")) = 0 g nosngtarif

s% zone = "" s% cmd = ""
nx1tarif

s% zone = $ o (^ appstat ("TARIF", "AUTO8",% zone))

i% zone = "" g ldtarif1

s% sec = $ p (^ appstat ("TARIF", "AUTO8",% zone), $ c (30),% SHARE +1)

i% sec <20 s% sec =% sec * ^ AppSys58 ("USD_KURS")


s% cmd =% cmd_ $ $ dec2hex ^ iapbckgsub (% sec) g nx1tarif
ldtarif1

w "L" _ $ c ($ l (% cmd)) _ $ c (0) _% cmd_ "*"

; Завантаження міжнародних тарифів
nosngtarif

i $ d (^ appstat ("TARIF", "AUTO810")) = 0 g nofgrtarif

s% zone = "" s% cmd = ""
nx2tarif

s% zone = $ o (^ appstat ("TARIF", "AUTO810",% zone))

i% zone = "" g ldtarif2

s% sec = $ p (^ appstat ("TARIF", "AUTO810",% zone), $ c (30),% SHARE +1)

i% sec <20 s% sec =% sec * ^ AppSys58 ("USD_KURS")


s% cmd =% cmd_ $ $ dec2hex ^ iapbckgsub (% sec) g nx2tarif
ldtarif2

w "L" _ $ c ($ l (% cmd)) _ $ c (255) _% cmd_ "*"
nofgrtarif

s ^ appstat ("CMD") = "R"

s% to = 0
mainloop

i% SHARE '= $ $ SHARE ^ AppSyst () s% SHARE = ​​$ $ SHARE ^ AppSyst () g LoadTarif

s ^ appstat ("STATUS") = "GET"

s% free = $ $ gres ^ iapbckgsub ()

s ^ appstat ("STATUS") = "SEL"

i% free = "HALT" g thlt

i% free = "TIME" g inerror

i $ $ instat ^ iapbckgsub ($ p (% free, "", 1)) = "B" s% to = 0 g talkbeg

i $ $ instat ^ iapbckgsub ($ p (% free, "", 1)) = "E" s% to = 0 g talkend

i $ $ instat ^ iapbckgsub ($ p (% free, "", 1)) = "L" g life

d addjrn ^ iapbckgsub ("APPRK", "Unknown command",% free)

g mainloop


life

s% to =% to +1

s ^ appstat ("STATUS") = "L"

s% i = 1
lf1

s% cmd = $ p (% free, "",% i +1)

i% cmd = "" g lf3

s% cod = $ e (% cmd, 3,4) +0

i $ d (% cabspis (% i)) = 0 d addjrn ^ iapbckgsub ("APPRK", "Unknown Life",% free) g mainloop

s% cc =% cabspis (% i)

s ^ appcab (% cc) .15 =% cod; номер автомата

i ^ appcab (% cc) .2 = 1 g lfa

; Ручна кабіна

i $ e (% cmd, 1,1) = "B" s ^ appcab (% cc) .1 = 1 s% to = 0 g lf2

i ($ e (% cmd, 1,1)) = "F" w "B" _% cc_ "*" d addjrn ^ iapbckgsub ("C" _% cc, "ON")

; РУЧНІ КАБІНИ ЗАВЖДИ ВКЛЮЧЕНІ

i ($ e (% cmd, 1,1) = "F ")&(^ appcab (% cc) .1 = 0) s ^ appcab (% cc) .1 = 0 g lf2

i ($ e (% cmd, 1,1) = "F ")&(^ appcab (% cc) .1 = 1) s ^ appcab (% cc) .1 = 2 g lf2

d addjrn ^ iapbckgsub ("APPRK", "US Cab" _% cc,% cmd) g lf2
lfa ; Автоматична кабіна

i (^ appcab (% cc) .1 '= 0)! ($ e (% cmd, 1,1)' = "F") s% to = 0

i (^ appcab (% cc) .1 = 0) & ($ e (% cmd, 1,1) = "B") s ^ appcab (% cc) .1 = 1 g lf2

i (^ appcab (% cc) .1 = 0) & ($ e (% cmd, 1,1) = "F") s ^ appcab (% cc) .1 = 0 g lf2

i (^ appcab (% cc) .1 = 1) & ($ e (% cmd, 1,1) = "B") s ^ appcab (% cc) .1 = 1 g lf2

i (^ appcab (% cc) .1 = 1) & ($ e (% cmd, 1,1) = "F") s ^ appcab (% cc) .1 = 2 g lf2

i (^ appcab (% cc) .1 = 2) & ($ e (% cmd, 1,1) = "B") s ^ appcab (% cc) .1 = 1 g lf2

i (^ appcab (% cc) .1 = 2) & ($ e (% cmd, 1,1) = "F") s ^ appcab (% cc) .1 = 2 g lf2

i (^ appcab (% cc) .1 = 3) & ($ e (% cmd, 1,1) = "B") s ^ appcab (% cc) .1 = 3 g lf2

i (^ appcab (% cc) .1 = 3) & ($ e (% cmd, 1,1) = "F") s ^ appcab (% cc) .1 = 0 g lf2

i (^ appcab (% cc) .1 = 4) & ($ e (% cmd, 1,1) = "B") s ^ appcab (% cc) .1 = 1 g lf2

i (^ appcab (% cc) .1 = 4) & ($ e (% cmd, 1,1) = "F") s ^ appcab (% cc) .1 = 4 g lf2

i (^ appcab (% cc) .1 =- 1) & ($ e (% cmd, 1,1) = "B") s ^ appcab (% cc) .1 = 1 g lf2

i (^ appcab (% cc) .1 =- 1) & ($ e (% cmd, 1,1) = "F") s ^ appcab (% cc) .1 = 0 g lf2

d addjrn ^ iapbckgsub ("APPRK", "USS Cab" _% cc, $ p (^ appcab (% cc), $ zp, 1) _% cmd)
lf2

s% i =% i +1

g lf1
lf3

i% to> 50 g timeout

g mainloop


talkbeg

s ^ appstat ("STATUS") = "TB"

s% cc = $ j ($ p (% free, "", 2), 1,0)

i (% cc> 32)! (% cc <1) d addjrn ^ iapbckgsub ("C99", "Шо це таке?",% free) g mainloop


s% i = $ j ($ p (% free, "", 5), 1,0)

s ^ appcab (% cc) .6 = $ p (% free, "", 4)

i $ p (^ appcab (% cc), $ c (30), 2) = 2 g tbegrk

s% tsec = $ p (% free, "", 6)

s ^ appcab (% cc) .5 = $ e (% tsec, 4, $ l (% tsec)) s ^ appcab (% cc) .7 = $ e (% tsec, 1,3)
tbegrk

s ^ appcab (% cc) .1 = 1

s% tsec = $ p ($ h ,",", 2); --- системний час у секундах

s ^ appcab (% cc) .14 =% tsec; фіксуємо час початку розмови

d addjrn ^ iapbckgsub ("C" _% cc,% free)

g mainloop


talkend

s ^ appstat ("STATUS") = "TE"

s% cc = $ j ($ p (% free, "", 2), 1,0)

i (% cc> 32)! (% cc <1) d addjrn ^ iapbckgsub ("C99", "Шо це таке?",% free) g mainloop


s ^ appcab (% cc) .14 =- 1

i $ p (^ appcab (% cc), $ c (30), 2) = 1 g acabin

s ^ appcab (% cc) .4 = $ p (% free, "", 3)

s ^ appcab (% cc) .1 = 2

g mainloop
acabin

s% zone = $ j ($ p (% free, "", 6), 1,0)

s% summ = $ zzoo ($ p (% free, "", 4))

s ^ appcab (% cc) .4 = $ p (^ appcab (% cc), $ zp, 4) -% summ

s ^ appcab (% cc) .8 = ^ appcab (% cc) .8 +1

s ^ appcab (% cc) .9 = ^ appcab (% cc) .9 +1

s ^ appcab (% cc) .10 = ^ appcab (% cc) .10 +% summ

s ^ appcab (% cc) .11 =% summ

s ^ appcab (% cc) .12 = ^ appcab (% cc) .12 +% summ

s ^ appcab (% cc) .13 = $ p (% free, "", 3)

i ($ p (% free, "", 5) +0) = 0 s ^ appcab (% cc) .1 = 0

d AFTERTE

s ^ appcab (% cc) .14 =- 1

d addjrn ^ iapbckgsub ("C" _% cc,% free)

g mainloop
; ------------------------------------
inerror

d addjrn ^ iapbckgsub ("APPRK", "Аварія АПП-РК.")

s% i = 1
ie1

i $ d (% cabspis (% i)) = 0 g ie2

s% cc =% cabspis (% i)

i ^ appcab (% cc) .1 =- 1 g ie3

i ^ appcab (% cc) .1 = 0 g ie3

i ^ appcab (% cc) .1 = 2 g ie3

i ^ appcab (% cc) .14 =- 1 s ^ appcab (% cc) .1 = 2 g ie3



s% tsec = $ p ($ h ,",", 2) - $ p (^ appcab (% cc), $ zp, 14)

s% tmin =% tsec \ 60 s% sec = $ tr ($ j (% tsec # 60,2), "", 0)

s% min = $ e (% tmin # 60 +100,2,3)

s% tmin =% min +1

i $ p (^ appcab (% cc), $ c (30), 2) = 1 g ieac

s ^ appcab (% cc) .4 = $ j (% min, 2 )_"."_$ j (% sec, 2)

s ^ appcab (% cc) .1 = 0

s ^ appcab (% cc) .14 =- 1

d htalkend ^ iapbckgsub (% cc)

s% i =% i +1

g ie1
ieac

s% zone = 3

s% summ = $ p (^ appcab (% cc), $ zp, 4)

i (% tmin * $ p (^ appcab (% cc), $ zp, 6))> $ p (^ appcab (% cc), $ zp, 4) g aie1

s% summ = $ zzoo ($ p (^ appcab (% cc), $ zp, 6) *% tmin)
aie1

s ^ appcab (% cc) .4 = $ p (^ appcab (% cc), $ zp, 4) -% summ

s ^ appcab (% cc) .8 = ^ appcab (% cc) .8 +1

s ^ appcab (% cc) .9 = ^ appcab (% cc) .9 +1

s ^ appcab (% cc) .10 = ^ appcab (% cc) .10 +% summ

s ^ appcab (% cc) .11 =% summ

s ^ appcab (% cc) .12 = ^ appcab (% cc) .12 +% summ

s ^ appcab (% cc) .13 = $ j (% min, 2 )_"."_$ j (% sec, 2)

s ^ appcab (% cc) .1 = 2

i ^ appcab (% cc) .4 = 0 s ^ appcab (% cc) .1 = 0

d addjrn ^ iapbckgsub ("C" _% cc, "AAA" _% cc_ "" _ $ p (^ appcab (% cc), $ zp, 13) _ "" _% summ_ "" _ $ p (^ appcab (% cc), $ zp, 4) _ "UNKNOWN")

d AFTERTE

s ^ appcab (% cc) .14 =- 1
ie3

s% i =% i +1

g ie1
ie2

s ^ appstat ("STATUS") = "A"

g thlt1

; ------------------------------------
timeout

d addjrn ^ iapbckgsub ("APPRK", "Монітор зупинений.", "Timeout")

s ^ appstat ("STATUS") = "H"

; ------------------------------------
thlt

d addjrn ^ iapbckgsub ("APPRK", "Монітор зупинений .","")

s ^ appstat ("STATUS") = "H"
thlt1

c% an

k% cc,% free,% zone,% cmd,% i,% summ,% tsec,% tmin,% min,% hour,% sec,% cod,% idev

q

; ---------------------------------- КІНЕЦЬ
AFTERTE

s% tsec = $ p (^ appcab (% cc), $ c (30), 14)

s% tmin =% tsec \ 60; --- системний час у хвилинах

s% sec = $ tr ($ j (% tsec # 60,2), "", 0); --- кількість секунд

s% min = $ e (% tmin # 60 +100,2,3); --- кількість хвилин

s% hour =% tmin \ 60 +23 # 24 +1; --- кількість годин

s% hour = $ tr ($ j (% hour, 2), "", 0)

; Заповнення журналу ====================================

i% zone = 0 s ^ appcab (% cc) .5 = $ p (^ appcab (% cc), $ zp, 7) _ $ p (^ appcab (% cc), $ zp, 5) s ^ appcab ( % cc) .7 = "ГІР"

i% zone> 127 s ^ appcab (% cc) .7 = $ e ($ p (^ appcab (% cc), $ zp, 7), 3,3) _ $ e ($ p (^ appcab (% cc ), $ zp, 5), 1,2) s ^ appcab (% cc) .5 = $ e ($ p (^ appcab (% cc), $ zp, 5), 3,11)

; Заповнення квитанцій ==================================

s ^ appticket (% cc, $ o (^ appticket (% cc ,""),- 1) +1) = $ zd_ $ zp_% hour_ ":"_% min_ $ zp_ "0" _ $ zp_ "КОД" _ $ zp_ "МІСТО" _ $ zp_ "ТЕЛЕФОН" _ $ zp_ "0000.00"

s ^ appticket (% cc, $ o (^ appticket (% cc ,""),- 1)) .3 = ^ appcab (% cc) .13

s ^ appticket (% cc, $ o (^ appticket (% cc ,""),- 1)) .4 = ^ appcab (% cc) .7

s% cmd = ""

s% cod = $ p (^ appcab (% cc), $ c (30), 7)

i% zone> 127 g COUNTRY

s% i = $ e ($ p (^ appcab (% cc), $ c (30), 5), 1,3)

i $ e (% cod, 1,1) = "2" s% i = $ e (% cod, 2,3) s% cod = ^ AppSys58 ("KOD_OBLS")

i $ d (^ app8DCAC (% cod))> 0 s% cmd = $ p (^ app8DCAC (% cod), $ c (30), 2)

s ^ appticket (% cc, $ o (^ appticket (% cc ,""),- 1)) .8 = $ e (% cmd, 1,14)

i $ d (^ app8DCAC (% cod, $ e (% i, 1,2)))> 0 d

. s% cmd = ^ app8DCAC (% cod, $ e (% i, 1,2))

s ^ appticket (% cc, $ o (^ appticket (% cc ,""),- 1)) .5 = $ e (% cmd, 1,12)

g cntick
COUNTRY

s% i =% cod_ $ p (^ appcab (% cc), $ c (30), 5)

s% cmd = ""
cntry1

i% i = "" g cntry2

i $ g (^ appDCAC (% i ))="" s% i = $ e (% i, 1, $ l (% i) -1) g cntry1

s% cmd = $ g (^ appDCAC (% i))
cntry2

s ^ appticket (% cc, $ o (^ appticket (% cc ,""),- 1)) .5 = $ e ($ p (% cmd, $ c (30), 2), 1,12)

s ^ appticket (% cc, $ o (^ appticket (% cc ,""),- 1)) .8 = $ e ($ p (% cmd, $ c (30), 1), 1,14)
cntick

s ^ appticket (% cc, $ o (^ appticket (% cc ,""),- 1)) .6 = ^ appcab (% cc) .5

s ^ appticket (% cc, $ o (^ appticket (% cc ,""),- 1)) .7 = ^ appcab (% cc) .11

; Заповнення реєстру =======================================

s% gs = ^ appstat (1, "NOM_GOES") s% ms = ^ appstat (1, "NOM_MESS") s% dn = ^ appstat (1, "NOM_DENN")

d inreestr ^ iapbckgsub (% summ,% zone)

s% noper = ^ appstat (1, "NOM_OPER")

s% nsmen = ^ appstat (1, "NOM_SMEN")

i $ d (^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "ACAB",% cc)) = 0 s ^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen , "ACAB",% cc) .1 =% summ_ $ zp_1 g after1

s ^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "ACAB",% cc) .1 = $ p (^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "ACAB",% cc), $ zp, 1) +% summ

s ^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "ACAB",% cc) .2 = $ p (^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "ACAB",% cc), $ zp, 2) +1
after1

i $ d (^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "AZONE",% zone)) = 0 s ^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen , "AZONE",% zone) .1 =% summ_ $ zp_1 g after2

s ^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "AZONE",% zone) .1 = $ p (^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "AZONE",% zone), $ zp, 1) +% summ

s ^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "AZONE",% zone) .2 = $ p (^ ReestrApp (% gs,% ms,% dn,% noper,% nsmen, "AZONE",% zone), $ zp, 2) +1
after2

q



; IAKoff Save,% n, 05/06/96
iapbckgsub
iapbckgsub ; IAKoff; 09:47 PM 28 Feb 1996

q
instat (% s)

n% res

i $ l (% s)> 3 s% res = "?" g ins1

i ($ l (% s) <2) g ins2


i ($ e (% s, 1,1) = $ e (% s, 2,2)) s% res = $ e (% s, 2,2) g ins1

i ($ l (% s) <3) g ins2


i ($ e (% s, 1,1) = $ e (% s, 3,3)) s% res = $ e (% s, 1,1) g ins1

i ($ e (% s, 2,2) = $ e (% s, 3,3)) s% res = $ e (% s, 2,2) g ins1
ins2

i "EBSL" [$ e (% s, 1,1) s% res = $ e (% s, 1,1) g ins1

i ($ l (% s) <2) s% res = "?" g ins1


i "EBSL" [$ e (% s, 2,2) s% res = $ e (% s, 2,2) g ins1

i "EBSL" [$ e (% s, 3,3) s% res = $ e (% s, 3,3) g ins1

s% res = "?"
ins1

q% res



; ------------------------------------
gres () ; Отримати рядок від АПП

i $ $ CHECK ^ dp58ups () = "S" q "TIME"

n% res,% cc,% cnt

s% res = "" s% cnt = 0
nxtchr

r *% cc: 1 i% cc '=- 1 g getchr

i (^ appstat ("CMD ")'=" R ")&(^ appstat (" CMD ")'=" WAIT ") g ghlt

s% cnt =% cnt +1

i% cnt = 10 w "V *"

i% cnt <20 g nxtchr


s% res = "TIME" g gend
getchr

i $ c (% cc )'="*" s% res =% res_ $ c (% cc) g nxtchr

g gend
ghlt

i ^ appstat ("CMD") = "H" s% res = "HALT" g gend

i $ e (^ appstat ("CMD"), 1,3) '= "WRQ" g mbewac

s ^ appstat ("CMD") = "WEN" _ $ e (^ appstat ("CMD"), 4,4) g nxtchr
mbewac

i $ e (^ appstat ("CMD"), 1,3) '= "WAC" g oprcmderr

w ^ appstat ("CMD", "COM ")_"*"

s% to = 0

d addjrn ("OPER", "Прихід", ^ appstat ("CMD", "COM"))

s% cc = $ e (^ appstat ("CMD", "COM"), 2,3) +0

i $ e (^ appstat ("CMD", "COM"), 1,1) = "B" d

. d addjrn ("C" _% cc, "ON" _ $ p (^ appstat ("CMD", "COM"), "", 2))

. i ^ appcab (% cc) .2 = 1 d

. . s ^ appcab (% cc) .3 = $ p (^ appstat ("CMD", "COM"), "", 2)

. . s ^ appcab (% cc) .4 = $ p (^ appstat ("CMD", "COM"), "", 2)

. . s ^ appcab (% cc) .6 = 0

. . s ^ appcab (% cc) .7 = ""

. . s ^ appcab (% cc) .8 = 0

. . s ^ appcab (% cc) .10 = 0

. . s ^ appcab (% cc) .11 = 0

. . s ^ appcab (% cc) .13 = 0

. . s ^ appcab (% cc) .1 = 1

. i ^ appcab (% cc) .2 = 2 d

. . s ^ appcab (% cc) .1 = 1

. . s ^ appcab (% cc) .3 = $ p (^ appstat ("CMD", "COM"), "", 2)

. . s ^ appcab (% cc) .4 = ""

. . s ^ appcab (% cc) .6 = 0

. . s ^ appcab (% cc) .7 = ""

. . s ^ appcab (% cc) .8 = 0

. . s ^ appcab (% cc) .10 = 0

. . s ^ appcab (% cc) .11 = 0

. . s ^ appcab (% cc) .13 = 0

i $ e (^ appstat ("CMD", "COM"), 1,1) = "O" d

. d addjrn ("C" _% cc, "OFF" _ $ p (^ appcab (% cc), $ zp, 4))

. s ^ appcab (% cc) .14 =- 1

. i ^ appcab (% cc) .2 = 1 d

. . s ^ appcab (% cc) .1 = 3

. . s ^ appzxcab (% cc) = ^ appcab (% cc)

. i ^ appcab (% cc) .2 = 2 d

. . i ^ appcab (% cc) .1 = 1 s ^ appcab (% cc) .4 = 0 d ^ iaphcabbckg (% cc)

. . s ^ appcab (% cc) .1 = 0

. . s ^ appcab (% cc) .5 = "Вільно"

s ^ appstat ("CMD") = "R"

w "V *"; життєвий тік-так

g nxtchr
oprcmderr

d addjrn ("OPER", "Unknown command", ^ appstat ("CMD"))

g nxtchr
gend

q% res

; -----------------------------------
dec2hex (% dec) ; Конвертор з десяткового числа в 5 байт для АПП

n% hex,% kop,% hh,% hl,% lh,% ll,% al

s% hh =% dec \ 16777216

s% hl = (% dec-(% hh * 16777216)) \ 65536

s% lh = (% dec-(% hh * 16777216) - (% hl * 65536)) \ 256

s% ll = (% dec-(% hh * 16777216) - (% hl * 65536) - (% lh * 256)) \ 1

s% al = (% dec-(% dec \ 1) * 100) \ 1

s% hex = $ c (% al,% ll,% lh,% hl,% hh)

q% hex

; ----------------------------------
errhndr

n% ei,% iiii

s% ei = $ zzerr

d addjrn ("ERROR", $ zename ($ p (% ei ,",", 1 )),$$ GetDTQ ^ AppSys ())

d init ^% errlog

g inerror ^ iapbckg

; ----------------------------------
inreestr (% increment,% z)

n% mess,% denn,% oper,% smen

s% mess = ^ appstat (1, "NOM_MESS")

s% denn = ^ appstat (1, "NOM_DENN")

s% oper = ^ appstat (1, "NOM_OPER")

s% smen = ^ appstat (1, "NOM_SMEN")

; ЗАГАЛЬНИЙ

l + ^ AppSmena

s ^ AppSmena (% mess,% denn,% oper,% smen) .6 = $ p (^ AppSmena (% mess,% denn,% oper,% smen), $ zp, 6) +% increment

; ЧИСТО ВСЕ ПО АК

i% z = 0 s ^ AppSmena (% mess,% denn,% oper,% smen) .30 = $ p (^ AppSmena (% mess,% denn,% oper,% smen), $ zp, 30) +% increment g inree1

i% z <128 s ^ AppSmena (% mess,% denn,% oper,% smen) .22 = $ p (^ AppSmena (% mess,% denn,% oper,% smen), $ zp, 22) +% increment g inree1


s ^ AppSmena (% mess,% denn,% oper,% smen) .29 = $ p (^ AppSmena (% mess,% denn,% oper,% smen), $ zp, 29) +% increment
inree1

l - ^ AppSmena

q

; ------------------------------------
addjrn (% ind,% txt,% res)

n% id

s% id = $ o (^ appjrn (% ind ,""),- 1) +1

s ^ appjrn (% ind,% id, "MSG") = $ g (% txt)

s ^ appjrn (% ind,% id, "RES") = $ g (% res)

s ^ appjrn (% ind,% id, "TIME ")=$$ GetDTQ ^ AppSys

k ^ appjrn (% ind,% id-200)

q

; ----------------------------------

ДОДАТОК 4

Текст програми АРМ АПП РК


; IAKoff Save,% n, 05/06/96
iaphand
iaphand ; IAKoff; 12:49 PM 2 Mar 1996

n% T,% DEMO

s% DEMO = "DEMO VERSION FOR DOORS"

l + ^ ReestrIndRK: 1

s% T = $ TEST

i% T = 0 l - ^ ReestrIndRK q

d ^ iaphandinit

d ORDERLIST ^ iaphandsub

l - ^ ReestrIndRK

q
; ------------------------------------------------- ----------
ADDORDER (% nord)

n% f,% addtime,% zone,% tarif,% tarif1,% notify,% key,% ef,% DDDD,% HHHH

n% month,% ltarif

s% ltarif = 0

s% DDDD = $ p ($ h ,",", 1)

s% HHHH = $ p ($ h ,",", 2)

s% f ("FAST") = 0 s% f ("TOTAL") = 0 s% f ("TIME") = 3

i $ g (% nord) = "" g add



i $ p (^ appstat ("ORDERS",% nord), $ c (30), 20 )'="" g VIEWORDER

d str2frm ^ uf58 ("% f", ^ appstat ("ORDERS",% nord), $ c (30), "iap! HORD")

s% notify = $ p (^ appstat ("ORDERS",% nord), $ c (30), 18)

s% ef = 1

g edd
add

s% ef = 0

s% key = $ $ ^ dp58dlg (10,30,15,50, "ОФОРМЛЕННЯ ЗАМОВЛЕННЯ", "ПОТОЧНИЙ "_%_" ПОВІДОМЛЕННЯ ","", 2 ,""," VC") i $ p (% key ,%, 2) = "KEYESC" q

s% notify = $ p (% key,%, 1) -1

s% nord = $ g (^ appstat ("LASTORDER")) +1

s% month = $ g (^ appstat ("LASTORDER", "MONTH"))

i ($ p ($ zdate ,"/", 1) +0) '=% month s% nord = 1 s% month = ($ p ($ zdate ,"/", 1) +0)
edd

d drscr ^ uf58 ($ s (% notify = 0: "iap! HORD",% notify = 1: "iap! NORD"))

w / color (7,0), / c (20,3), $ j (% nord, 3)

i $ $ get ^ uf58 ($ s (% notify = 0: "iap! HORD",% notify = 1: "iap! NORD "),"% f") = "ESC" q

s% f ("X") =% addtime,% f ("Y") =% tarif,% f ("Z") =% zone,% f ("ZZ") =% notify

s ^ appstat ("ORDERS",% nord) = $ $ frm2str ^ uf58 ("% f ",%)_%_$ h_ %_""_%_% APPSYS (" NOM_OPER ")

s $ p (^ appstat ("ORDERS",% nord), $ c (30), 25) =% ltarif

i% ef = 0 s ^ appstat ("LASTORDER") =% nord s ^ appstat ("LASTORDER", "MONTH") =% month

q
; ------------------------------------------------- ----------
VIEWORDER

d str2frm ^ uf58 ("% f", ^ appstat ("ORDERS",% nord), $ c (30), "iap! HORD")

s% notify = $ p (^ appstat ("ORDERS",% nord), $ c (30), 18)

s% tarif1 = $ p (^ appstat ("ORDERS",% nord), $ c (30), 16)

s% addtime = $ p (^ appstat ("ORDERS",% nord), $ c (30), 15)

d drscr ^ uf58 ($ s (% notify = 0: "iap! HORD",% notify = 1: "iap! NORD",% notify = 2: "iap! FORD"))

w / color (7,0), / c (20,3), $ j (% nord, 3)

d redraw ^ uf58 ($ s (% notify = 0: "iap! HORD",% notify = 1: "iap! NORD",% notify = 2: "iap! FORD "),"% f")

w / c (57,5), / color (7,0), $ zzc (% tarif1, 13)

w / color (7,0), / c (38,10), $ j (% addtime, 3)

w / color (7,0), / c (26,3), "Оператор МТТЗ:" _ $ j ($ p (^ appstat ("ORDERS",% nord), $ c (30), 24), 3 )
vo1

s% key = $ $ RKey ^ uf58 () i% key = "KEYNOPRESS" g vo1

q
; ------------------------------------------------- ----------


OutCOUNTRY ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q% ufNEWDATA

i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"

i $ p (% ufNEWDATA, $ c (30), 1) = "" q "СНД" _ $ c (30) _ $ p (% ufNEWDATA, $ c (30), 2)

i $ p (% ufNEWDATA, $ c (30), 1) = "СНД" q% ufNEWDATA

n% id,% res

s% id = $ p (% ufNEWDATA, $ c (30), 1)

i $ d (^ appACDC (% id))> 0 q% ufNEWDATA

s% res = $ $ LIST ^ dp58Sel ("^ appACDC (% id )","% id", 20,13,40,8, "", 0, "SINGLE ",""," DrawCOUNTRY ^ iaphand")

i $ p (% res, $ c (30), 2) = "KEYESC" q "PROBLEM"

q% id_ $ c (30) _ "KEYENTER"


DrawCOUNTRY

i% dpINDEX = "DRAWFREE" w $ j ("",% dpSX) q

w $ j (% id,% dpSX) q


OutSHTAT ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"

i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"

n% id,% id1,% res

s% id = $ p (% ufNEWDATA, $ c (30), 1)

s% id1 =% f ("COUNTRY") i% id1 = "СНД" g OutSHT1

i% id = "" g OutSHT0

i $ d (^ appACDC (% id1,% id))> 0 q% ufNEWDATA
OutSHT0

s% res = $ $ LIST ^ dp58Sel ("^ appACDC (% id1,% id )","% id", 20,13,40,8, "", 0, "SINGLE ",""," DrawCOUNTRY ^ iaphand ")

g OutSHT2
OutSHT1

i% id = "" g OutSHT3

i $ d (^ app8ACDC (% id))> 0 q% ufNEWDATA
OutSHT3

s% res = $ $ LIST ^ dp58Sel ("^ app8ACDC (% id )","% id", 20,13,40,8, "", 0, "SINGLE ",""," DrawCOUNTRY ^ iaphand")
OutSHT2

i $ p (% res, $ c (30), 2) = "KEYESC" q "PROBLEM"

q% id_ $ c (30) _ "KEYENTER"




InREGION ()

s% f ("REGION ")=""

i% f ("COUNTRY ")'=" СНД" q "FIELDOFF"

q% ufOLDDATA


OutREGION ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"

i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"

n% id1,% id,% res

s% id1 =% f ("SHTAT")

s% id = $ p (% ufNEWDATA, $ c (30), 1)

i% id = "" q% ufNEWDATA

i $ d (^ app8ACDC (% id1,% id))> 0 q% ufNEWDATA

s% res = $ $ LIST ^ dp58Sel ("^ app8ACDC (% id1,% id )","% id", 20,13,40,8, "", 0, "SINGLE ",""," DrawCOUNTRY ^ iaphand ")

i $ p (% res, $ c (30), 2) = "KEYESC" q "PROBLEM"

q% id_ $ c (30) _ "KEYENTER"


OutTARGET ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"

i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
q% ufNEWDATA

InCODE ()

i% f ("COUNTRY ")'=" СНД" q ^ appACDC (% f ("COUNTRY"),% f ("SHTAT"))
i (^ app8ACDC (% f ("SHTAT "))=^ AppSys58 (" KOD_OBLS "))&(% f ("REGION ")="") q 2
i% f ("REGION ")="" q ^ app8ACDC (% f (" SHTAT "))
i ^ app8ACDC (% f ("SHTAT "))=^ AppSys58 (" KOD_OBLS ") q 2_ ^ app8ACDC (% f (" SHTAT "),% f (" REGION "))
q ^ app8ACDC (% f ("SHTAT "))_^ app8ACDC (% f (" SHTAT "),% f (" REGION "))

OutCODE ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"

i $ l ($ p (% ufNEWDATA, $ c (30), 1)) <3 q "PROBLEM"


n% code s% code = $ e ($ p (% ufNEWDATA, $ c (30), 1), 1,3)
i% f ("COUNTRY") = "СНД" g outcod
i $ g (^ appMGTRF (% code ))="" s ^ appMGTRF (% code) = 3
s% zone = ^ appMGTRF (% code)
i $ g (^ appstat ("TARIF", "HAND810",% zone ))="" s ^ appstat ("TARIF", "HAND810",% zone) = ^ appstat ("TARIF", "HAND810", 3 )
s% tarif1 = $ $ NTARIF (^ appstat ("TARIF", "HAND810",% zone))
g outcod1 outcod

i $ e (% code, 1,1) = "2" s% code = ^ AppSys58 ("KOD_OBLS")
i $ g (^ app8MTRF (% code ))="" s ^ app8MTRF (% code) = 3
s% zone = ^ app8MTRF (% code)
i $ g (^ appstat ("TARIF", "HAND8",% zone ))="" s ^ appstat ("TARIF", "HAND8",% zone) = ^ appstat ("TARIF", "HAND8", 3 )
s% tarif1 = $ $ NTARIF (^ appstat ("TARIF", "HAND8",% zone)) outcod1

w / c (57,5), / color (7,0), $ zzc (% tarif1, 13)
q% ufNEWDATA

NTARIF (Str)

s% ltarif = $ $ SHARE ^ AppSyst (% DDDD,% HHHH)
s Str = $ p (Str, $ c (30),% ltarif +1)

i Str <20 s Str = Str * ^ AppSys58 ("USD_KURS")


q Str
q% ufNEWDATA

InPH1 ()

i% notify s% f ("PH1 ")="" q" FIELDOFF "
q% ufOLDDATA

OutPH1 ()

i% notify q $ p (% ufNEWDATA, $ c (30), 1 )_%_" KEYENTER "
i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
; I $ p (% ufNEWDATA, $ c (30), 1) = "" q "PROBLEM"
q% ufNEWDATA

InDATE ()

; N% dd s% dd = $ $ DATE ^ dp58sys ()
; I% ufOLDDATA = "" q $ p (% dd ,"/", 1) _ $ p (% dd ,"/", 2) _ $ p (% dd ,"/", 3)
q% ufOLDDATA

OutDATE ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
i $ e ($ p (% ufNEWDATA, $ c (30), 1), 5,6) = "" s $ p (% ufNEWDATA, $ c (30), 1) = $ p (% ufNEWDATA, $ c (30), 1) _ "96"
n% ds% d = $ p (% ufNEWDATA, $ c (30), 1)
s% DDDD = $ $ DATE2SYS ^ dp58sys ($ e (% d, 1,2 )_"/"_$ e (% d, 3,4 )_"/"_$ e (% d, 5,6) )
q% ufNEWDATA

InNTIME ()

; N% dd s% dd = $ $ TIME ^ dp58sys ()
; I% ufOLDDATA = "" q $ p (% dd ,":", 1) _ $ p (% dd ,":", 2)
q% ufOLDDATA

OutNTIME ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
n% ts% t = $ p (% ufNEWDATA, $ c (30), 1)
s% HHHH = $ $ TIME2SYS ^ dp58sys ($ e (% t, 1,2 )_":"_$ e (% t, 3,4))
i% f ("COUNTRY") = "СНД" s% tarif1 = $ $ NTARIF (^ appstat ("TARIF", "HAND8",% zone))
i% f ("COUNTRY ")'=" СНД" s% tarif1 = $ $ NTARIF (^ appstat ("TARIF", "HAND810",% zone))
w / c (57,5), / color (7,0), $ zzc (% tarif1, 13)
q% ufNEWDATA

InADDR ()

q ""

OutADDR ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
q% ufNEWDATA

InPH ()

i% notify s% f (% ufII) = "" q "FIELDOFF"
i% f ("PH" _ ($ e (% ufII, 3,3) -1 ))="" s% f (% ufII) = "" q "FIELDOFF"
q% ufOLDDATA

OutPH ()

i% notify q ""_%_" KEYENTER "
i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
q% ufNEWDATA

OutCALL ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
i (% notify) & ($ p (% ufNEWDATA, $ c (30), 1 )="") q "PROBLEM"
q% ufNEWDATA

OutTIME ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
i ($ p (% ufNEWDATA, $ c (30), 1 )="")&(% f ("PH1 ")="") g outime2

i ($ p (% ufNEWDATA, $ c (30), 1) +0) <3 q "PROBLEM"


i ($ p (% ufNEWDATA, $ c (30), 1) +0)> 255 q "PROBLEM" outime2

s% addtime = 0
s% addtime = $ p (^ SpravUsl (61 +% notify),%, 4)
i% f ("CALL ")'="" s% addtime =% addtime + $ p (^ SpravUsl (61 +% notify, 31),%, 4)
i% notify g outime1
i% f ("PH1 ")="" s% addtime =% addtime + $ p (^ SpravUsl (61,32),%, 4) g outime1
i% f ("PH5 ")'="" s% addtime =% addtime + $ p (^ SpravUsl (61,35),%, 4) g outime1
i% f ("PH4 ")'="" s% addtime =% addtime + $ p (^ SpravUsl (61,34),%, 4) g outime1
i% f ("PH3 ")'="" s% addtime =% addtime + $ p (^ SpravUsl (61,33),%, 4) g outime1 outime1

w / color (7,0), / c (38,10), $ j (% addtime, 3)
q% ufNEWDATA

OutFAST ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
q% ufNEWDATA

InTOTAL ()

n% summ
s% tarif =% tarif1 * $ p (^ SpravUsl (61 +% notify, 10 +% f ("FAST ")),%, 4)
s% summ =% tarif * (% f ("TIME") +% addtime)
w / c (57,5), / color (7,0), $ zzc (% tarif, 13)
q $ zzoo (% summ)

OutTOTAL ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q $ p (% ufNEWDATA, $ c (30), 1) _ $ c (30) _ "KEYUP"
i $ p (% ufNEWDATA, $ c (30), 2) '= "KEYENTER" q "PROBLEM"
q% ufNEWDATA

AskPrint ()

n% Ret askdel

s% Ret = $ $ ^ dp58dlg (20,42,23,77, "ПІДТВЕРДІТЬ ДРУК", "Друкувати "_%_" Не друкувати ","", 2," 7,0,7,0,0,7 , 7,0 ")
w / color (0,8)
d ^ dp58box (20,42,23,77,0, "")
i $ p (% Ret,%, 2) = "KEYENTER" q (2 -% Ret)
i $ p (% Ret,%, 2) = "KEYESC" q 0
g askdel


; IAKoff Save,% n, 05/06/96 iaphandsub
iaphandsub ; IAKoff; 02:41 PM 2 Mar 1996;
q

SYSH () q% APPSYS ("NOM_OPER ")_","_% APPSYS (" NOM_SMEN ")_","_% APPSYS ("NOM_DENN ")_","_% APPSYS (" NOM_MESS ")



ORDERLIST

n% key,% title,% id
s% "Nзк Опр" _ $ zzr ("КРАЇНА", 7) _ $ zzr ("ОБЛАСТЬ", 8) _ $ zzr ("РЕГІОН", 7) _ $ zzr ("НАС.ПУНКТ", 10) _ $ zzr ("ПРИЙНЯТИЙ", 9) _ $ zzr ("ПЕРЕДАНО", 9) _ $ zzr ("ЧЕКАЄ", 6) ordlist

s% key = $ $ LIST ^ dp58Sel ("^ appstat (" "ORDERS" ",% id )","% id", 2,3,65,8, "", 0, "SINGLE", "Список замовлень "_%_$ zzr (% title, 58 )_%_" F2-Прийняти F4-Ред/Смтр F8-Зняти -Прд/Вип/Ост "," DrawORDERS ^ iaphandsub "," KEYF2, KEYF8, KEYF4 ")


i $ p (% key,%, 2) = "KEYESC" q
i $ p (% key,%, 2) = "KEYF2" d ADDORDER ^ iaphand () g ordlist
i% id = "" g ordlist
i $ p (% key,%, 2) = "KEYF4" d ADDORDER ^ iaphand (% id) g ordlist
i ($ p (% key,%, 2) = "KEYENTER ")&($ p (^ appstat (" ORDERS ",% id),%, 23 )'="") d REST (% id) g ordlist
i ($ p (% key,%, 2) = "KEYENTER ")&($ p (^ appstat (" ORDERS ",% id),%, 20 )="") d SENT (% id) g ordlist
i $ p (% key,%, 2) = "KEYENTER" d EXECUTE (% id) g ordlist
i $ p (% key,%, 2) = "KEYF8" d ABORT (% id) g ordlist
g ordlist

DrawORDERS

i% dpINDEX = "DRAWFREE" w $ j ("",% dpSX) q
i% id = "" w $ zzr ("НІ ЗАМОВЛЕНЬ",% dpSX) q
w $ zzr (% id, 4)
w $ zzr ($ e ($ p (^ appstat ("ORDERS",% id),%, 21), 1,3), 4)
w $ zzr ($ e ($ p (^ appstat ("ORDERS",% id),%, 3), 1,6), 7)
w $ zzr ($ e ($ p (^ appstat ("ORDERS",% id),%, 11), 1,7), 8)
w $ zzr ($ e ($ p (^ appstat ("ORDERS",% id),%, 10), 1,6), 7)
w $ zzr ($ e ($ p (^ appstat ("ORDERS",% id),%, 12), 1,9), 10)
i $ p (^ appstat ("ORDERS",% id),%, 23) = "" g drord3
w "Залишок:" _ $ zzc ($ p (^ appstat ("ORDERS",% id),%, 23), 17) g drord2 drord3

i $ p (^ appstat ("ORDERS",% id),%, 18) g drord1
w $ $ TIME ^ dp58sys ($ p ($ p (^ appstat ("ORDERS",% id),%, 19 ),",", 2)) _ ""
i $ p (^ appstat ("ORDERS",% id),%, 20) = "" w "----- "
ew $ $ TIME ^ dp58sys ($ p ($ p (^ appstat ("ORDERS",% id),%, 20 ),",", 2)) _ ""
w $ zzr (($ p ($ h ,",", 2) - $ p ($ p (^ appstat ("ORDERS",% id),%, 19 ),",", 2)) \ 60, 3) _ "хв"
g drord2 drord1

n% ds% d = $ p (^ appstat ("ORDERS",% id), $ c (30), 5)
w $ j ($ e (% d, 1,2 )_"/"_$ e (% d, 3,4 )_"/"_$ e (% d, 5,6), 9)
s% d = $ p (^ appstat ("ORDERS",% id), $ c (30), 6) w $ j ($ e (% d, 1,2 )_":"_$ e (% d , 3,4), 9)
w $ j ("", 7) drord2

q



SENT (% nord)

n% key,% msg,% notify,% ord,% reestr,% fff
s% ord = ^ appstat ("ORDERS",% nord)
s% notify = $ p (% ord,%, 18)
s% msg =% APPSYS ("NOM_GOES ")_"- му отд. зв'язку" _%
i $ p (% ord,%, 4) = 1 s% msg =% msg_ "ТЕРМІНОВИЙ" _%
s% msg =% msg_ $ p (% ord,%, 3) _%
i% notify s% msg =% msg_ $ p (% ord,%, 11) _%
i% notify s% msg =% msg_ $ p (% ord,%, 10) _%
i% notify s% msg =% msg_ $ p (% ord,%, 12) _%
i '% notify s% msg =% msg_ "Код:" _ $ p (% ord,%, 2) _%
i% notify s% msg =% msg_ $ tr ($ p (% ord,%, 7), "",%)_%
i% notify s% msg =% msg_ "Дата:" _ $ p (% ord,%, 5) _%
es% msg =% msg_ "Тел:" _ $ p (% ord,%, 5) _%
i% notify s% msg =% msg_ "Час:" _ $ p (% ord,%, 6) _%
i '% notify f% key = 6:1:9 i $ p (% ord,%,% key )'="" s% msg =% msg_ "або" _ $ p (% ord,%,% key) _%
i $ p (% ord,%, 1 )'="" s% msg =% msg_ "Запросити" _ $ p (% ord,%, 1) _%
s% msg =% msg_ $ p (% ord,%, 13) _ "хвилин" _%
s% key = $ $ ^ dp58dlg (3,20,5 + $ l (% msg,%), 60,% msg, "ПЕРЕДАНО "_%_" ВІДМОВА ","", 2 ,"","")
i $ p (% key, $ c (30), 2) = "KEYESC" q
i $ p (% key, $ c (30), 1) = 2 q
s% fff ("NOPER ")=""
d drscr ^ uf58 ("iap! HSENT")
i $ $ get ^ uf58 ("iap! HSENT", "% fff") = "ESC" q
s $ p (% ord,%, 24) =% fff ("NOPER")
s $ p (% ord,%, 20) = $ p ($ h ,",", 2 - $ p (% ord,%, 18))
s $ p (% ord,%, 28) = $ $ SYSH
s ^ appstat ("ORDERS",% nord) =% ord
s% reestr = $ $ REESTR ^ iaphandsub ("ПРН",% nord, $ p (% ord,%, 13),, $ p (% ord,%, 14),,)
d AddOplata ^ AppSys ($ s ($ p (% ord,%, 3) = "СНД": 81,1:881), $ p (% ord,%, 14),% reestr ,"",$$ KVITAN (% nord,% ord, 0))
d ADDRRR (% reestr)
i $ $ AskPrint ^ iaphand () d PrintKvit ^ AppSysd
ed NewKvit ^ AppSysd
q

InTIME ()

i ($ p (^ appstat ("ORDERS",% id),%, 13) +0) <3 s% fff ("TIME") = 0 q "FIELDOFF"


i $ p (^ appstat ("ORDERS",% id),%, 13) '> 3 s% fff ("TIME") = 3 q "FIELDOFF"
q $ p (^ appstat ("ORDERS",% id),%, 13)

OutTIME ()

i $ p (% ufNEWDATA, $ c (30), 2) = "KEYESC" q% ufNEWDATA

i ($ p (% ufNEWDATA, $ c (30), 1) +0) <3 q "PROBLEM"


i ($ p (% ufNEWDATA, $ c (30), 1) +0)> $ p (^ appstat ("ORDERS",% id),%, 13) q "PROBLEM"
q% ufNEWDATA

InTEL ()

n% ntel,% i
i $ p (^ appstat ("ORDERS",% id),%, 18) = 1 s% fff ("TEL") = 0 q "FIELDOFF"
s% ntel = 0 f% i = 5:1:9 i $ p (^ appstat ("ORDERS",% id ),%,% i )'="" s% ntel =% ntel +1
i% ntel = 1 s% fff ("TEL") = 1 q "FIELDOFF"


q% ntel

OutTEL ()

n% ntel,% i
s% ntel = 0 f% i = 5:1:9 i $ p (^ appstat ("ORDERS",% id ),%,% i )'="" s% ntel =% ntel +1
i% ntel = 0 q% ufNEWDATA

i ($ p (% ufNEWDATA, $ c (30), 1) +0) <1 q "PROBLEM"


i ($ p (% ufNEWDATA, $ c (30), 1) +0)>% ntel q "PROBLEM"
q% ufNEWDATA

EXECUTE (% nord)

n% fff,% reestr,% tsumm,% ord,% ntel,% i,% key
s% ntel = 0
i $ p (^ appstat ("ORDERS",% nord),%, 18) g exec2
f% i = 5:1:9 i $ p (^ appstat ("ORDERS",% id ),%,% i )'="" s% ntel =% ntel +1 exec2

s% ord = ^ appstat ("ORDERS",% nord)
s% fff ("TIME") = $ p (% ord,%, 13)
d drscr ^ uf58 ("iap! HEXEC")
i $ $ get ^ uf58 ("iap! HEXEC", "% fff") = "ESC" q


s% fff ("NOPER") = $ p (% ord,%, 24)
d drscr ^ uf58 ("iap! HSTOL")
i $ $ get ^ uf58 ("iap! HSTOL", "% fff") = "ESC" q
s $ p (% ord,%, 24) =% fff ("NOPER")


s% key = $ $ ^ dp58dlg (7,20,11,60, "Підтвердіть виконання", "ВИКОНАТИ "_%_" СКАСУВАННЯ ","", 2 ,"","")
i $ p (% key, $ c (30), 2) = "KEYESC" g exec2
i $ p (% key, $ c (30), 1) = 2 q
s $ p (% ord,%, 22) =% fff ("TIME")
i% ntel = 0 s $ p (% ord,%, 27) =% fff ("TEL") g exec1
s% i = 0 i% ntel> 2 s% i = $ p (^ SpravUsl (61,30 +% ntel),%, 4)
s $ p (% ord,%, 15) = $ p (% ord,%, 15) -% i
s% i = 0 i% fff ("TEL")> 2 s% i = $ p (^ SpravUsl (61,30 +% fff ("TEL ")),%, 4)
s $ p (% ord,%, 15) = $ p (% ord,%, 15) +% i
s $ p (% ord,%, 27) =% fff ("TEL") exec1

s% tsumm = $ zzoo ((% fff ("TIME") + $ p (% ord,%, 15)) * $ p (% ord,%, 16))
s% rest = $ p (% ord,%, 14) -% tsumm
s $ p (% ord,%, 23) =% rest
i% rest = 0 s% key = 1 g exec11
s% key = $ $ ^ dp58dlg (3,20,7,60, "Невже клієнт з'явився за залишком?", "з'явився "_%_" не з'явився ","", 2 ,"","")
i $ p (% key, $ c (30), 2) = "KEYESC" g exec2 exec11

s ^ appstat ("ORDERS",% nord) =% ord
s% reestr = $ $ REESTR ("вип",% nord, $ p (% ord,%, 13), $ p (% ord,%, 22),,% tsumm,)
; D AddOplata ^ AppSys ($ s ($ p (% ord,%, 3) = "СНД": 82,1:882),% tsumm,% reestr)
d AddOplata ^ AppSys ($ s ($ p (% ord,%, 3) = "СНД": 82,1:882), 0,% reestr)
d ADDRRR (% reestr)


i $ p (% key, $ c (30), 1) = 1 g exec4
s% reestr = $ $ REESTR ("нев",% nord, $ p (% ord,%, 13), $ p (% ord,%, 22 ),,,% rest)
d AddOplata ^ AppSys ($ s ($ p (% ord,%, 3) = "СНД": 84,1:884), 0,% reestr ,""," Замовлення "_% nord)
d ADDRRR (% reestr)
g exec3 exec4

s% reestr = $ $ REESTR ("ОСТ",% nord, $ p (% ord,%, 13), $ p (% ord,%, 22 ),,,% rest)
s% i = $ s ($ p (% ord,%, 3) = "СНД": 85,1:885)
s% i =% i + ($ $ SYSH = $ p (% ord,%, 28))
d AddOplata ^ AppSys (81, $ p (% ord,%, 14 ),"","",$$ KVITAN (% nord,% ord, 1), "p")
d AddOplata ^ AppSys (% i, -% rest,% reestr)
d ADDRRR (% reestr)
i% rest> 0 s% key = $ $ ^ dp58msg (3,20, "Панночка ,"_%_" поверніть будь ласка клієнтові залишок "_%_$ zzc (% rest), 0)
k ^ appstat ("ORDERS",% nord)
i $ $ AskPrint ^ iaphand () d PrintKvit ^ AppSysd
ed NewKvit ^ AppSysd exec3

q

ABORT (% nord)

n% ord,% notify,% tarif,% key,% id,% tsumm,% rest,% reestr,% ttime,% fff
s% ord = ^ appstat ("ORDERS",% nord) s% notify = $ p (% ord,%, 18)
i $ p (% ord,%, 20) = "" s% key = $ $ ^ dp58msg (3,20, "Дівчина з двома веслами ,"_%_" не можна знімати замовлення "_%_" якщо ви його ще НЕ педералі ", 0) q
s% tarif = $ p (% ord,%, 16) abr2

s% id = ""
s% key = $ $ LIST ^ dp58Sel ("^ SpravUsl (61 +% notify, 51,% id )","% id", 60,3,10,11, "", 0, "SINGLE", "Причина "," DrawREASON ^ iaphandsub ")
i $ p (% key,%, 2) = "KEYESC" q
s $ p (% ord,%, 26) = $ p (^ SpravUsl (61 +% notify, 51,% id),%, 1)
s% ttime = $ p (^ SpravUsl (61 +% notify, 50,% id),%, 4)
i $ p (% ord,%, 1 )'="" s% ttime =% ttime + $ p (^ SpravUsl (61 +% notify, 51,% id),%, 4)
i% notify g abr1
i $ p (% ord,%, 5) = "" s% ttime =% ttime + $ p (^ SpravUsl (61,52,% id),%, 4) g abr1
i $ p (% ord,%, 9 )'="" s% ttime =% ttime + $ p (^ SpravUsl (61,55,% id),%, 4) g abr1
i $ p (% ord,%, 8 )'="" s% ttime =% ttime + $ p (^ SpravUsl (61,54,% id),%, 4) g abr1
i $ p (% ord,%, 7 )'="" s% ttime =% ttime + $ p (^ SpravUsl (61,53,% id),%, 4) g abr1 abr1

s% fff ("NOPER") = $ p (% ord,%, 24)
d drscr ^ uf58 ("iap! HSTOL")
i $ $ get ^ uf58 ("iap! HSTOL", "% fff") = "ESC" g abr2
s $ p (% ord,%, 24) =% fff ("NOPER")
s% tsumm = $ zzoo (% ttime * $ p (% ord,%, 16))
s% rest = $ p (% ord,%, 14) -% tsumm
s $ p (% ord,%, 23) =% rest
s% key = $ $ ^ dp58dlg (3,20,7,60, "Невже клієнт з'явився за залишком?", "з'явився "_%_" не з'явився ","", 2 ,"","")
i $ p (% key, $ c (30), 2) = "KEYESC" g abr2


s ^ appstat ("ORDERS",% nord) =% ord


s% reestr = $ $ REESTR ("СНТ",% nord, $ p (% ord,%, 13), $ p (% ord,%, 22),,% tsumm,)
d AddOplata ^ AppSys ($ s ($ p (% ord,%, 3) = "СНД": 82,1:882), 0,% reestr)
d ADDRRR (% reestr)


i $ p (% key, $ c (30), 1) = 1 g abr4
s% reestr = $ $ REESTR ("нев",% nord, $ p (% ord,%, 13), $ p (% ord,%, 22 ),,,% rest)
d AddOplata ^ AppSys ($ s ($ p (% ord,%, 3) = "СНД": 84,1:884), 0,% reestr ,""," Замовлення "_% nord)
d ADDRRR (% reestr)
g abr3 abr4

s% reestr = $ $ REESTR ("ОСТ",% nord, $ p (% ord,%, 13), $ p (% ord,%, 22 ),,,% rest)
s% i = $ s ($ p (% ord,%, 3) = "СНД": 85,1:885)
s% i =% i + ($ $ SYSH = $ p (% ord,%, 28))
d AddOplata ^ AppSys (81, $ p (% ord,%, 14 ),"","",$$ KVITAN (% nord,% ord, 1), "p")
d AddOplata ^ AppSys (% i, -% rest,% reestr)
d ADDRRR (% reestr)
i% rest> 0 s% key = $ $ ^ dp58msg (3,20, "Панночка ,"_%_" поверніть будь ласка клієнтові залишок "_%_$ zzc (% rest), 0)
k ^ appstat ("ORDERS",% nord)
i $ $ AskPrint ^ iaphand () d PrintKvit ^ AppSysd
ed NewKvit ^ AppSysd abr3

q

DrawREASON

i% dpINDEX = "DRAWFREE" w $ j ("",% dpSX) q
w $ zzr ($ p (^ SpravUsl (61 +% notify, 51,% id),%, 1),% dpSX) q

REST (% nord)

n% ord,% notify,% tarif,% key,% id,% tsumm,% rest,% reestr,% ttime,% i
s% ord = ^ appstat ("ORDERS",% nord) s% notify = $ p (% ord,%, 18)


s% key = $ $ ^ dp58dlg (3,20,7,60, "Невже клієнт з'явився за залишком?", "з'явився "_%_" не з'явився ","", 2 ,"","")
i $ p (% key, $ c (30), 2) = "KEYESC" q
i $ p (% key, $ c (30), 1) = 2 q


s% rest = $ p (% ord,%, 23)
s% reestr = $ $ REESTR ("ВЗВ",% nord, $ p (% ord,%, 13), $ p (% ord,%, 22 ),,,% rest)
s% i = $ s ($ p (% ord,%, 3) = "СНД": 85,1:885)
s% i =% i + ($ $ SYSH = $ p (% ord,%, 28))
d AddOplata ^ AppSys (81, $ p (% ord,%, 14 ),"","",$$ KVITAN (% nord,% ord, 1), "p")
d AddOplata ^ AppSys (% i, -% rest,% reestr)
d ADDRRR (% reestr)
i% rest> 0 s% key = $ $ ^ dp58msg (3,20, "Дівчина з веслом ,"_%_" поверніть будь ласка клієнтові залишок "_%_$ zzc (% rest), 0)
k ^ appstat ("ORDERS",% nord)
i $ $ AskPrint ^ iaphand () d PrintKvit ^ AppSysd
ed NewKvit ^ AppSysd
q

REESTR (% SUBJECT,% NORD,% FULLTIME,% TOTALTIME,% DEPOSIT,% TOTAL,% REST)
n% r,% z,% t
s% z = ^ appstat ("ORDERS",% NORD)
s% r.1 = 8
s% r.2 =% APPSYS ("NOM_GOES")
s% r.3 =% APPSYS ("NOM_OPER")
s% r.4 = $ p ($ $ GetDTQ ^ AppSys,%, 1)
s% r.5 =% NORD
s% r.6 =% APPSYS ("NOM_KVIT"); НОМЕР КВИТАНЦІЇ
s% r.7 = "" i% SUBJECT = "ПРН" s% r.7 =% APPSYS ("NOM_OPER")
s% r.8 = "" i% SUBJECT = "ПРН" s% r.8 = $ p (% z,%, 19); $ h прийняття замовлення
s% r.9 = $ p (% z,%, 24); номер опреатора який прийняв замовлення на столі
s% r.10 = "" i% SUBJECT = "ПРН" s% r.10 = $ p (% z,%, 20); $ h передачі замовлення
s% r.11 = "" i% SUBJECT '= "ПРН" s% r.11 =% APPSYS ("NOM_OPER")
s% r.12 = "" i% SUBJECT '= "ПРН" s% r.12 = $ h; виконання замовлення
s% r.13 = $ g (% FULLTIME)
s% r.14 = $ g (% TOTALTIME)
s% r.15 = $ p (% z,%, 17)
s% r.16 =% SUBJECT
s% r.17 = $ p (% z,%, 2)
s% r.18 = $ p (% z,%, 16)
s% r.19 = $ p (% z,%, 3)
s% r.20 = "ЗВИЧАЙНИЙ" i $ p (% z,%, 4) = 1 s% r.20 = "ТЕРМІНОВИЙ"
s% r.21 = $ p (% z,%, 11)
s% r.22 = $ p (% z,%, 15)
s% r.23 = $ g (% DEPOSIT)
s% r.24 = $ g (% TOTAL)
s% r.25 = $ g (% REST)
s% r.26 = "" i $ p (% z,%, 25) = 1 s% r.26 = "ПІЛЬГОВИЙ"
s% r.27 = $ p (% z,%, 10)
s% r.28 = $ p (% z,%, 12)
s% r.29 = ""
i $ p (% z,%, 18) d
. s% r.29 = $ $ DATE2SYS ^ dp58sys ($ e ($ p (% z,%, 5), 1,2 )_"/"_$ e ($ p (% z,%, 5), 3 , 4 )_"/"_$ e ($ p (% z,%, 5), 5,6 ))_","_$$ TIME2SYS ^ dp58sys ($ e ($ p (% z,%, 6 ), 1,2 )_":"_$ e ($ p (% z,%, 6), 3,4))
s% t = $ p (% z,%, 5 )_","_$ p (% z,%, 6 )_","_$ p (% z,%, 7 )_","_$ p (% z,%, 8 )_","_$ p (% z,%, 9)
i $ p (% z,%, 27 )'="" s $ p (% t ,",",$ p (% z,%, 27 ))="["_$ p (% t, ", ", $ p (% z,%, 27 ))_"]"
s% r.30 =% t
i $ p (% z,%, 18) s% r.30 = $ p (% z,%, 7)
s% r.31 = $ p (% z,%, 1)
s% r.32 = $ p (% z,%, 24)
s% r.33 = $ p (% z,%, 26)
i $ p (% z,%, 27 )'="" s% r.33 = $ p (% z,%, 27) _ "" _ $ p (% z,%, 26)
s% r.34 = $ p (% z,%, 23)
q% r ADDRRR (% RRR)

s ^ ReestrIndRK ($ p (% RRR, $ c (30), 5), $ p (% RRR, $ c (30), 16)) =% APPSYS ("LAST_IND")
q

KVITAN (% NORD,% ORD,% RESTF)

n% kv,% ds% kv = "Замовлення N" _% NORD
s% kv =% kv_ $ c (13) _ $ p (% ORD,%, 11)
s% d = $ p (% ORD,%, 5)
i $ p (% ORD,%, 18) s% kv =% kv_ $ c (13) _ $ e (% d, 1,2 )_"/"_$ e (% d, 3,4 )_"/"_$ e (% d, 5, 6)

s% d = $ p (% ORD,%, 6)
i $ p (% ORD,%, 18) s% kv =% kv_ $ c (13) _ $ e (% d, 1,2 )_":"_$ e (% d, 3,4)

i% RESTF s% kv =% kv_ $ c (13) _ $ p (% ORD,%, 2 )_"-"_$ p (% ORD,%, 4 + $ p (% ORD,%, 27) )
q% kv
; IAKoff Save,% n, 05/06/96 iaphandinit
iaphandinit ; IAKoff; 2:06 PM 12 Feb 1996;
i $ g (^ SpravUsl (61 ))="" s ^ SpravUsl (61) = "РУЧНИЙ ЗАМОВЛЕННЯ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,10 ))="" s ^ SpravUsl (61,10) = "ЗВИЧАЙНИЙ 1 1 1 0 рази"
i $ g (^ SpravUsl (61,11 ))="" s ^ SpravUsl (61,11) = "ТЕРМІНОВИЙ 1 1 2 0 рази"
i $ g (^ SpravUsl (61,31 ))="" s ^ SpravUsl (61,31) = "ЗАПРОШЕННЯ 0 0 1 0 хв."
i $ g (^ SpravUsl (61,32 ))="" s ^ SpravUsl (61,32) = "ДОВІДКА 0 0 2 0 хв."
i $ g (^ SpravUsl (61,33 ))="" s ^ SpravUsl (61,33) = "ВИКЛИК ПО 3 ТЛФ. 0 0 1 0 хв."
i $ g (^ SpravUsl (61,34 ))="" s ^ SpravUsl (61,34) = "ВИКЛИК ПО 4 ТЛФ. 0 0 2 0 хв."
i $ g (^ SpravUsl (61,35 ))="" s ^ SpravUsl (61,35) = "ВИКЛИК ПО 5 ТЛФ. 0 0 3 0 хв."
i $ g (^ SpravUsl (61,50 ))="" s ^ SpravUsl (61,50) = "ЗНЯТТЯ ЗАМОВЛЕННЯ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,1 ))="" s ^ SpravUsl (61,50,1) = "ОМС 0 0 1 0 хв."
i $ g (^ SpravUsl (61,50,2 ))="" s ^ SpravUsl (61,50,2) = "НВЛ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,3 ))="" s ^ SpravUsl (61,50,3) = "NoНО 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,4 ))="" s ^ SpravUsl (61,50,4) = "ПВ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,5 ))="" s ^ SpravUsl (61,50,5) = "ПС 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,6 ))="" s ^ SpravUsl (61,50,6) = "ТІ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,7 ))="" s ^ SpravUsl (61,50,7) = "З 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,8 ))="" s ^ SpravUsl (61,50,8) = "РВ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,9 ))="" s ^ SpravUsl (61,50,9) = "ВК 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,10 ))="" s ^ SpravUsl (61,50,10) = "ОДС 0 0 0 0 хв."
i $ g (^ SpravUsl (61,50,11 ))="" s ^ SpravUsl (61,50,11) = "ЗНЯ 666 0 1 0 хв."
i $ g (^ SpravUsl (61,51 ))="" s ^ SpravUsl (61,51) = "ЗНЯТТЯ З ЗАПРОШЕННЯ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,51,1 ))="" s ^ SpravUsl (61,51,1) = "ОМС 0 0 1 0 хв."
i $ g (^ SpravUsl (61,51,2 ))="" s ^ SpravUsl (61,51,2) = "НВЛ 0 0 1 0 хв."
i $ g (^ SpravUsl (61,51,3 ))="" s ^ SpravUsl (61,51,3) = "NoНО 0 0 0 0 хв."
i $ g (^ SpravUsl (61,51,4 ))="" s ^ SpravUsl (61,51,4) = "ПВ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,51,5 ))="" s ^ SpravUsl (61,51,5) = "ПС 0 0 0 0 хв."
i $ g (^ SpravUsl (61,51,6 ))="" s ^ SpravUsl (61,51,6) = "ТІ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,51,7 ))="" s ^ SpravUsl (61,51,7) = "З 0 0 0 0 хв."
i $ g (^ SpravUsl (61,51,8 ))="" s ^ SpravUsl (61,51,8) = "РВ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,51,9 ))="" s ^ SpravUsl (61,51,9) = "ВК 0 0 0 0 хв."
i $ g (^ SpravUsl (61,51,10 ))="" s ^ SpravUsl (61,51,10) = "ОДС 0 0 0 0 хв."
i $ g (^ SpravUsl (61,51,11 ))="" s ^ SpravUsl (61,51,11) = "ЗНЯ 666 0 1 0 хв."
i $ g (^ SpravUsl (61,52 ))="" s ^ SpravUsl (61,52) = "ЗНЯТТЯ ЗІ ДОВІДКИ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,52,1 ))="" s ^ SpravUsl (61,52,1) = "ОМС 0 0 1 0 хв."
i $ g (^ SpravUsl (61,52,2 ))="" s ^ SpravUsl (61,52,2) = "НВЛ 0 0 1 0 хв."
i $ g (^ SpravUsl (61,52,3 ))="" s ^ SpravUsl (61,52,3) = "NoНО 0 0 0 0 хв."
i $ g (^ SpravUsl (61,52,4 ))="" s ^ SpravUsl (61,52,4) = "ПВ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,52,5 ))="" s ^ SpravUsl (61,52,5) = "ПС 0 0 0 0 хв."
i $ g (^ SpravUsl (61,52,6 ))="" s ^ SpravUsl (61,52,6) = "ТІ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,52,7 ))="" s ^ SpravUsl (61,52,7) = "З 0 0 0 0 хв."
i $ g (^ SpravUsl (61,52,8 ))="" s ^ SpravUsl (61,52,8) = "РВ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,52,9 ))="" s ^ SpravUsl (61,52,9) = "ВК 0 0 0 0 хв."
i $ g (^ SpravUsl (61,52,10 ))="" s ^ SpravUsl (61,52,10) = "ОДС 0 0 0 0 хв."
i $ g (^ SpravUsl (61,52,11 ))="" s ^ SpravUsl (61,52,11) = "ЗНЯ 666 0 1 0 хв."
i $ g (^ SpravUsl (61,53 ))="" s ^ SpravUsl (61,53) = "ЗНЯТТЯ З 3-Х ТЕЛЕФОНІВ 0 0 0 0 хв."
i $ g (^ SpravUsl (61,53,1 ))="" s ^ SpravUsl (61,53,1) = "ОМС 0 0 1 0 хв."
i $ g (^ SpravUsl (61,53,2 ))="" s ^ SpravUsl (61,53,2) = "НВЛ 0 0 1 0 хв."
i $ g (^ SpravUsl (61,53,3 ))="" s ^ SpravUsl (61,53,3) = "NoНО 0 0 0 0 хв."
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
381.3кб. | скачати


Схожі роботи:
Автоматизоване робоче місце оператора валютно-обмінних операцій у режимі off-line
Автоматизоване робоче місце
Робоче місце оператора ЕОМ
Автоматизоване робоче місце менеджера
Автоматизоване робоче місце бухгалтера
Автоматизоване робоче місце менеджера з реклами
Автоматизоване робоче місце та перспективи його розвитку
Автоматизоване робоче місце Логістика ЗАТ Пріосколье
Автоматизоване робоче місце інженера станції технічного обслуговування автомобілів
© Усі права захищені
написати до нас