Автор: Пользователь скрыл имя, 09 Марта 2013 в 08:54, дипломная работа
С целью обеспечения возможности взаимодействия человека с ЭВМ в интерактивном режиме появляется необходимость реализовать в рамках АСУ так называемое АРМ – автоматизированное рабочее место. АРМ представляет собой совокупность программно-аппаратных средств, обеспечивающих взаимодействие человека с ЭВМ, т.е. такие функции как:
возможность ввода информации в ЭВМ;
возможность вывода информации из ЭВМ на экран монитора, принтер или другие устройства вывода (в настоящее время этот перечень достаточно широк – графопостроители, и т.п.).
РЕФЕРАТ 4
ОСНОВНАЯ ЧАСТЬ 5
ВВЕДЕНИЕ 5
1. АНАЛИЗ КОНЦЕПЦИИ ПОСТРОЕНИЯ КОМПЛЕКСА СРЕДСТВ АВТОМАТИЗАЦИИ 8
1.1. Общая характеристика систем управления 8
1.2. Структурная схема комплекса средств автоматизации. 11
1.3. Описание функционирования АСУ комплекса средств автоматизации 13
1.4. Функциональное назначение АРМ РД 14
1.5. Требования, предъявляемые к АРМ РД 15
2. ОБОСНОВАНИЕ ВЫБОРА ТЕХНИЧЕСКИХ СРЕДСТВ АРМ РД 17
2.1. Возможность функционировать в рамках автоматизированной системы 17
2.2. Требования по обеспечению надежности 17
2.3. Требование круглосуточной работы 17
2.4. Работа в реальном масштабе времени 18
2.5. Обеспечение требований ко времени реакции системы 18
2.6. Хранение и обработка данных 18
2.7. Возможность выдачи информации на принтер и экран монитора АРМ РД 19
3. СТРУКТУРА БАЗЫ ДАННЫХ 20
3.1. Алгоритм обработки информации 20
3.2. Обоснование необходимости организации базы данных 34
3.2.1. Понятие базы данных 34
3.2.2. Достоинства интеграции данных. 35
3.2.3. Проблемы интеграции данных 37
3.2.4. Необходимость организации БД на АРМ РД 38
3.3. Логическая организация базы данных 39
3.4. Выбор СУБД 45
4. СТРУКТУРА КОМПЛЕКСА ПРОГРАММ АРМ РД 51
4.1. Обоснование структуры комплекса программ 51
4.1.1. ПО общесистемного назначения 51
4.1.2. ПО специального назначения 53
4.1.3. Требования, предъявляемые к специальному ПО АРМ РД 53
4.2. Программная реализация 54
4.3. Состав программ 59
4.4. Описание программ 61
4.5. Оценка результатов работы программ 63
ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКАЯ ЧАСТЬ 66
ВВЕДЕНИЕ 66
1. ПЛАНИРОВАНИЕ РАЗРАБОТКИ С ИСПОЛЬЗОВАНИЕМ СЕТЕВОГО ГРАФИКА 67
2. РАСЧЕТ СТОИМОСТИ РАЗРАБОТКИ 79
2.1. Расчёт статьи “материалы, покупные изделия, полуфабрикаты” 79
2.2. Расчёт основной заработной платы по теме 80
2.3. Расчет дополнительной заработной платы 81
2.4. Расчёт отчислений на социальные нужды 82
2.5. Расчёт накладных расходов 82
2.6. Расчёт договорной цены 83
3. ЭКОНОМИЧЕСКАЯ ЭФФЕКТИВНОСТЬ РАЗРАБОТКИ 84
4. ОСНОВНЫЕ РАЗДЕЛЫ ХОЗЯЙСТВЕННОГО ДОГОВОРА 84
ЗАКЛЮЧЕНИЕ 86
ОХРАНА ТРУДА И ТЕХНИКА БЕЗОПАСНОСТИ 87
ВВЕДЕНИЕ 87
1. ХАРАКТЕРИСТИКА ПОМЕЩЕНИЯ И ФАКТОРЫ, ДЕЙСТВУЮЩИЕ НА ОПЕРАТОРА В ПРОЦЕССЕ ЕГО ТРУДА 88
2. РАСЧЁТ ОСВЕЩЕНИЯ РАБОЧЕГО МЕСТА ОПЕРАТОРА 89
3. РАСЧЁТ ИНФОРМАЦИОННОЙ НАГРУЗКИ 94
ВЫВОДЫ 95
ГРАЖДАНСКАЯ ОБОРОНА 97
ВВЕДЕНИЕ 97
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 98
1.1. Оценка воздействия ударной волны на объект 98
1.1.1. Характеристики ударной волны 98
1.1.2. Поражающие факторы ударной волны 99
1.2. Оценка пожарной обстановки 101
1.2.1. Влияние степени огнестойкости зданий и сооружений на развитие пожарной обстановки 102
1.2.2. Влияние категорий пожароопасности производства на развитие пожарной обстановки 102
1.2.3. Влияние расстояний между зданиями на распространение пожаров 103
1.2.4. Влияние погодных условий на распространение пожаров 103
1.2.5. Оценка воздействия теплового импульса огненного шара на пожарную обстановку 103
1.2.6. Оценка воздействия вторичных поражающих факторов на пожарную обстановку 105
1.2.7. Воздействие пожара на людей и элементы объекта 105
1.3. Оценка устойчивости элементов объекта 105
2. РАСЧЕТНАЯ ЧАСТЬ 106
2.1. Исходные данные 106
2.2. Расчет 106
2.2.1. Оценка воздействия воздушной ударной волны на элементы объекта 106
2.2.2. Оценка пожарной обстановки 107
3. ПРЕДЛОЖЕНИЯ ПО ЗАЩИТЕ 109
3.1. Отнесение хранилища на безопасное расстояние от здания 109
3.2. Уменьшение массы хранимого пропана 110
3.3. Меры по предупреждению аварийной ситуации на хранилище пропана 111
3.4. Меры по защите административного здания 112
3.5. Меры по индивидуальной защите оператора 112
ЭРГОНОМИКА 113
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 114
1.1. Базовый подход к конструированию рабочего места оператора 114
1.2. Понятие рабочего места и рабочей зоны оператора 115
1.3. Формирование типового состава рабочей зоны 115
1.3.1. Организация пространства рабочего места оператора 116
1.3.2. Условия, которым должна удовлетворять рабочая зона 116
2. РЕАЛИЗАЦИЯ ЭРГОНОМИЧЕСКОЙ ОЦЕНКИ РАБОЧЕГО МЕСТА ОПЕРАТОРА 117
2.1. Основные эргономические требования, предъявляемые к дисплею 118
2.2. Основные эргономические требования, предъявляемые к клавиатуре 120
2.3. Размещение кресла оператора в рабочей зоне 121
2.4. Размещение устройств документирования 121
2.5. Расположение рабочего места оператора в помещении 122
ЗАКЛЮЧЕНИЕ 124
ЗАКЛЮЧЕНИЕ 127
ПРИЛОЖЕНИЕ 1 128
ПРИЛОЖЕНИЕ 2 131
СПИСОК ЛИТЕРАТУРЫ 163
break;
case 16: // ВУ16
case 17: // ВУ17
case 18: // ВУ18
case 19: // ВУ19
if(bytes[5]&0x01)
write(handle,"ПУ
заблокировано оператором по ФК
if(bytes[5]&0x04)
write(handle,"Нажата КНОПКА ОБНАРУЖЕНИЯ НЕИСПРАВНОСТИ \r\n",76);
break;
case 15: // АС
//Подкорректировать после согласования
//байта состояния
if(bytes[5]&0x04)
write(handle,"АРМ-РД
НЕИСПРАВЕН - не работают обе ПЭВМ
if(bytes[4]&0x01)
write(handle,"АРМ-РД РАБОТОСПОСОБЕН - работает одна из двух ПЭВМ \r\n",76);
if(bytes[4]&0x02)
write(handle,"Нет
связи хотя бы по одной из линий связи
ЛС1,ЛС2,ЛС3,ЛС4
if(bytes[4]&0x04)
write(handle,"Неисправен
КСП-0
if(bytes[3]&0x01)
write(handle,"Неисправен
КСП-1
if(bytes[3]&0x02)
write(handle,"Неисправен
КСП-2
if(bytes[3]&0x04)
write(handle,"Нет
связи по линии связи ЛС1
if(bytes[2]&0x01)
write(handle,"Нет связи по линии связи ЛС2 \r\n",76);
if(bytes[2]&0x02)
write(handle,"Нет
связи по линии связи ЛС3
if(bytes[2]&0x04)
write(handle,"Нет
связи по линии связи ЛС4
break;
}
}
// bs2_out.prj
// bs2_out.c
// main()
// выдача результатов запроса по 2-й форме байтов состояния на экран
// ( из файла ) или форматирование и постановка в очередь для выдачи
// на принтер
#include <dos.h>
#include "cxlkey.h"
#include "disp.h"
extern void resScr(void);
// выдача результатов запроса из файла на экран
extern void resPrn(void);
// выдача результатов запроса из файла на принтер
void main(int argc,char *argv[])
{
void z(void);
setkbloop(z);
if(argv[1][0]=='э') resScr();
else resPrn();
}
void z(void)
{
union REGS r;
r.h.ah=0;
int86(DISP,&r,&r);
}
#include <dos.h>
#include "cxlkey.h"
#include "disp.h"
extern void resScr(void);
// выдача результатов запроса из файла на экран
extern void resPrn(void);
// выдача результатов запроса из файла на принтер
void main(int argc,char *argv[])
{
void z(void);
setkbloop(z);
if(argv[1][0]=='э') resScr();
else resPrn();
}
void z(void)
{
union REGS r;
r.h.ah=0;
int86(DISP,&r,&r);
}
// inq_out.prj
// INQ_OUT.C
// main()
// выдача результатов запроса на экран ( из файла )
// или форматирование и постановка в очередь для выдачи на принтер
#include <string.h>
#include <process.h>
#include "cxlkey.h"
#include "cxldef.h"
extern void resScr(void);
// выдача результатов запроса из файла на экран
extern void resPrn(void);
// выдача результатов запроса из файла на принтер
void main(int argc,char *argv[])
{
void z(void);
setkbloop(z);
if(argv[1][0]=='э') resScr();
else resPrn();
}
#include <dos.h>
#include "disp.h"
void z(void)
{
union REGS r;
r.h.ah=0;
int86(DISP,&r,&r);
}
// inq_out.prj
// res_scr.C
// res_scr()
// выдача результатов запроса на экран ( из файла )
#include <stdio.h>
#include <string.h>
#include "cxlwin.h"
#include "cxlkey.h"
#include "cxlvid.h"
#define LEN 81
#define TXTATTR _CYAN
#define UP 0x4800
#define DOWN 0x5000
#define PGUP 0x4900
#define PGDOWN 0x5100
#define ESC 0x011b
void resScr(void)
{
FILE *f; // дескриптор файла результатов
int down; // номер текущей строки в файле
int ch; // код клавиши
int i;
char string[LEN];
int mwup; // количество строк над основным окном
// вывод на экран строки запроса и шапки таблицы
f=fopen("inquiry.res","r++");
fgets(string,LEN,f);
for(mwup=0;strncmp(string+3,"
{
wopen(mwup,0,mwup,79,5,BLUE|_
wprintf("%.79s",string);
fgets(string,LEN,f);
}
wopen(mwup,0,mwup,79,5,YELLOW|
wprintf(" %.78s",string);
// основное окно
wopen(++mwup,0,25,79,5,LCYAN|_
//wshadow(LGREY);
// вывод результатов запроса из файла на экран
for(down=mwup;down<25 && fgets(string,LEN,f)!=NULL;++
wprints(down-mwup,1,TXTATTR,
hidecur();
// цикл просмотра результатов
while((ch=getxch())!=ESC)
switch(ch)
{
case UP: if(down<=25) break;
down--;
fseek(f,(long)(down-25+mwup)*
fgets(string,LEN,f);
wscroll(1,D_DOWN);
wprints(0,1,TXTATTR,string);
break;
case DOWN: if(fseek(f,(long)down*LEN,0)) break;
if(fgets(string,LEN,f)==NULL) break;
wscroll(1,D_UP);
wprints(24-mwup,1,TXTATTR,
down++;
break;
case PGUP: for(i=0;i<=24-mwup;++i)
{
if(down<=25) break;
down--;
fseek(f,(long)(down-25+mwup)*
fgets(string,LEN,f);
wscroll(1,D_DOWN);
wprints(0,1,TXTATTR,string);
}
break;
case PGDOWN: for(i=0;i<=24-mwup;++i)
{
if(fseek(f,(long)down*LEN,0)) break;
if(fgets(string,LEN,f)==NULL) break;
wscroll(1,D_UP);
wprints(24-mwup,1,TXTATTR,
down++;
}
break;
}
fclose(f);
wcloseall();
}
// bs2_out.prj
// res_scr_.c
// res_scr()
// выдача результатов запроса по 2-й форме байтов состояния на экран
// ( из файла )
#include <stdio.h>
#include <string.h>
#include "cxlwin.h"
#include "cxlkey.h"
#include "cxlvid.h"
#define LEN 100
#define TXTATTR _CYAN
#define UP 0x4800
#define DOWN 0x5000
#define PGUP 0x4900
#define PGDOWN 0x5100
#define RIGHT 0x4d00
#define LEFT 0x4b00
#define HOME 0x4700
#define END 0x4F00
#define ESC 0x011b
FILE *f; // дескриптор файла результатов
int down; // номер текущей строки в файле
char string[LEN];
int length; // длина строк в файле
int w1; // дескриптор окна
void screen_move(int right);
void resScr(void)
{
int right=0; // горизонтальное смещение
int ch; // код клавиши
int i;
// вывод на экран строки запроса и шапки таблицы
f=fopen("inquiry.res","r++");
wopen(0,0,0,79,5,BLUE|_LGREY,
fgets(string,LEN,f);
wprints(0,1,BLUE|_LGREY,
w1=wopen(1,0,1,79,5,YELLOW|_
fgets(string,LEN,f);
wprints(0,1,YELLOW|_BLUE,
length=strlen(string)+1;
// основное окно
wopen(2,0,25,79,5,LCYAN|_BLUE,
hidecur();
//wshadow(LGREY);
// вывод результатов запроса из файла на экран
for(down=2;down<25 && fgets(string,LEN,f)!=NULL;++
{
string[right+80]='\0';
wprints(down-2,1,TXTATTR,
}
// цикл просмотра результатов
while((ch=getxch())!=ESC)
switch(ch)
{
case UP: if(down<=25) break;
down--;
fseek(f,(long)(down-23)*
fgets(string,LEN,f);
string[right+79]='\0';
wscroll(1,D_DOWN);
wprints(0,1,TXTATTR,string+
break;
case DOWN: if(fseek(f,(long)down*length,
if(fgets(string,LEN,f)==NULL) break;
wscroll(1,D_UP);
string[right+80]='\0';
wprintc(22,0,TXTATTR,' ');
down++;
break;
case PGUP: for(i=0;i<=22;++i)
{
if(down<=25) break;
down--;
fseek(f,(long)(down-23)*
fgets(string,LEN,f);
wscroll(1,D_DOWN);
string[right+80]='\0';
wprints(0,1,TXTATTR,string+
wprintc(1,0,TXTATTR,' ');
}
break;
case PGDOWN: for(i=0;i<=22;++i)
{
if(fseek(f,(long)down*length,
if(fgets(string,LEN,f)==NULL) break;
wscroll(1,D_UP);
string[right+80]='\0';
wprints(22,1,TXTATTR,string+
down++;
}
break;
case LEFT: if(right) screen_move(--right);break;
case RIGHT: if(right+82<length) screen_move(++right);break;
case END: if(right+82<length) screen_move(right=length-82);
case HOME: if(right) screen_move(right=0);break;
}
fclose(f);
wcloseall();
}
// горизонтальная прокрутка
void screen_move(int right)
{
int i;
fseek(f,length,0);
fgets(string,LEN,f);
string[right+80]='\0';
wwprints(w1,0,1,YELLOW|_BLUE,
if(down-22>2) fseek(f,(long)(down-22)*
for(i=0;i<=22 && fgets(string,length,f)!=NULL;+
{
string[right+80]='\0';
wprints(i,1,TXTATTR,string+
}
}
#include <stdio.h>
#include <string.h>
#include "cxlwin.h"
#include "cxlkey.h"
#include "cxlvid.h"
#define LEN 80
#define ESC 0x011b
FILE *f; // дескриптор файла результатов
char string[LEN]; // буфер для чтения из файла
void resScr(void)
{
int i;
int maxlen; // максимальная длина строки в файле результатов запроса
int startpos; // столбец окна с которого печатается текст
// открытие файла результатов запроса и
// определение размера самой длинной строки в этом файле
f=fopen("inquiry.res","r++");
for(maxlen=0,i=0;fgets(string,
if(strlen(string)>maxlen) maxlen=strlen(string);
fseek(f,0,0);
// черный фон
wopen(0,0,24,79,5,0,0);
// открытие окна
wopen((20-i)/2,5,(20-i)/2+i+2,
hidecur();
// чтение типа устройства и его использование в качестве титула окна
fgets(string+1,LEN,f);
string[0]=' ';
for(i=2;i<=6;++i)
if(string[i]=='\r' || string[i]=='\n') string[i]=' ';
wtitle(string,TCENTER,_LGREY);
// вывод результатов запроса из файла в окно
startpos=(70-maxlen)/2;
for(i=2;fgets(string,LEN,f)!=
{
wgotoxy(i,startpos);
wprintf("%s",string);
}
// окно находится на экране пока не будет нажато ESC
while(getxch()!=ESC);
fclose(f);
wcloseall();
}
Список литературы