Рефераты
 

Расчет и анализ потерь активной мощности

p align="left"> клавиша «стрелка вправо» (VK_RIGHT) - каретка перемещается на одну позиции вправо. Если одновременно с клавишей была нажата клавиша Ctrl или каретка вышла за правую границу окна строкового редактора, оконной процедуре оконного редактора посылается сообщение WM_COMMAND с параметром wParam, равным -1;

клавиша «Delete» (VK_DELETE) - происходит удаление символа над кареткой, переменной codv присваивается значение 1;

клавиша «Home» (VK_HOME) - происходит перемещение каретки в начало окна. Если одновременно с клавишей была нажата клавиша Ctrl, оконной процедуре оконного редактора посылается сообщение WM_COMMAND с параметром wParam, равным -1;

клавиша «End» (VK_END) - происходит перемещение каретки в конец окна. Если одновременно с клавишей была нажата клавиша Ctrl, оконной процедуре оконного редактора посылается сообщение WM_COMMAND с параметром wParam, равным -1;

клавиша «F5» (VK_F5) - происходит удаление текста слева от каретки;

клавиша «F6» (VK_F6) - происходит удаление текста справа от каретки;

клавиша «F7» (VK_F7) - происходит удаление всего текста.

При изменении редактируемого текста код возврата принимает значение, равное 1, а оконная процедура строкового редактора получает сообщение WM_PAINT путем вызова функции InvalidateRect.

Третий пункт алгоритма.

При получении оконной процедурой строкового редактора сообщения WM_LBUTTONDOWN определяются координаты курсора мыши и каретка перемещается в позицию (с учетом ширины символов), соответствующую местоположению курсора мыши.

При получении оконной процедурой строкового редактора сообщения WM_RBUTTONDOWN на экран выводится всплывающее меню, вид которого представлен на рис. 3.6.

Рис. 3.6. Всплывающее меню строкового редактора

При щелчке левой кнопкой мыши на к.-л. пункте всплывающего меню оконной процедуре строкового редактора посылается сообщение WM_COMMAND, содержащее в младшем слове параметра wParam идентификатор выбранного пункта меню. Переменной sccod присваивается значение идентификатора выбранного пункта меню и вызывается подпрограмма edit.

Двойной щелчок левой кнопкой мыши на рабочей области окна строкового редактора порождает сообщение WM_LBUTTONDBLCLK. При получении этого сообщения оконная процедура строкового редактора «переправляет» его родительскому окну, т.е. оконному редактору, где оно и обрабатывается.

В рассматриваемой программе оконная процедура строкового редактора и подпрограмма edit объединены в одном модуле, что позволяет рассматривать строковый редактор как «черный ящик». «Черный ящик» получает некоторые сообщения и определенным образом на них реагирует (рис. 3.7).

Рис. 3.7. Строковый редактор

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

3.7 Оконный редактор

Оконный редактор предназначен для отображения и редактирования базы данных.

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

Создание оконного редактора.

Для создания окна оконного редактора вызывается функция CreateWch, которая определяется следующим образом:

hWch = CreateWch (hWnd, szClassName, UnschWProc, LengStr),

где: hWnd - дескриптор родительского окна (т.е. главного окна); szClassName - имя класса окна (оно же является и заголовком окна); UnschWProc - имя процедуры обработки сообщений оконного редактора; LengStr - длина строки базы данных.

В процессе выполнения этой функции вычисляется максимальная ширина окна в пикселях, регистрируется класс окна (причем устанавливается предопределенный в Windows стиль курсора «IDC_CROSS», т.е. «перекрестие»). Затем при помощи функции CreateWindowEx создается окно оконного редактора. Стиль окна - дочернее, видимое, имеет строку заголовка с кнопкой закрытия окна, вертикальную и горизонтальную полосы прокрутки.

Функция CreateWch возвращает дескриптор оконного редактора, который хранится в глобальной переменной hWch.

Оконная процедура оконного редактора определяется следующим образом:

integer function UnschWProc (hWch, mesg, wParam, lParam)

Ее параметры аналогичны параметрам оконной процедуры главного окна: hWch - дескриптор оконного редактора; mesg - переменная, идентифицирующая сообщение; параметры wParam и lParam содержат дополнительную информацию о сообщении.

Вид оконного редактора представлен на рис. 3.8 (см. на следующей странице).

Рис. 3.8. Вид оконного редактора

Входные параметры оконного редактора.

Входными параметрами для оконного редактора являются сообщения о нажатии кнопок мыши, перемещении мыши (сообщение WM_MOUSEMOVE), сообщения от полос прокруток (WM_VSCROLL и WM_HSCROLL). Как говорилось ранее, оконный редактор может получать сообщение WM_COMMAND от панели инструментов и строкового редактора, а также сообщение WM_LBUTTONDBLCLK.

Выходные параметры оконного редактора.

Выходными параметрами оконного редактора являются:

отображение редактируемой базы данных и строкового редактора;

реализация дополнительных функций, предоставляемых рассматриваемой программой.

Примечание: вызов дополнительных функций может осуществляться через «горячие клавиши», через панель инструментов или через всплывающее меню оконного редактора.

Алгоритм работы оконного редактора.

Отображение редактируемой базы данных и строкового редактора.

Обработка сообщений мыши.

Обработка сообщений полос прокрутки.

Обработка сообщения WM_COMMAND.

Реализация дополнительных функций, предоставляемых программой.

Смысл некоторых переменных, использующихся при работе по приведенному алгоритму, поясняется на рис. 3.9.

Рис. 3.9

js, jsMax - номер текущей записи и максимальное число полей в записи базы данных соответственно;

jsLeft, jsRight - границы отображаемого текста базы данных (содержимого оконного редактора) по горизонтали (номера столбцов);

MaxRow, MaxCol - максимальное число символов, отображаемых в оконном редакторе, по вертикали и горизонтали соответственно;

in, iv - границы отображаемого текста базы данных (содержимого оконного редактора) по вертикали (номера записей);

Row - номер записи, на которой находится строковый редактор (принимает значения от 1 до MaxRow);

Kol - количество записей (строк) в базе данных.

Используются также следующие переменные и массивы:

Text - исходный массив (база данных);

Bufv - символьный массив, отображаемый на экране (содержимое оконного редактора);

Par - целочисленный массив, содержащий границы полей базы данных (табуляция);

Ndn, Nup - минимальный и максимальный номера строк массива Bufv, в пределах которых его необходимо заполнить новыми данными из Text;

BVpol, Bhpol - логические переменные, указывающие на наличие полос прокрутки.

Все упомянутые переменные, кроме BVpol и Bhpol - целочисленные. Назначение некоторых других переменных, используемых в программе, будет пояснено далее.

Первый пункт алгоритма реализуется следующим образом.

После создания оконного редактора, но перед его отображением, оконная процедура получает сообщение WM_CREATE. При его обработке путем вызова функции SetStatePnUpr на панели инструментов активизируются доступные оконному редактору функции. Затем вызывается функция WMCREATE:

Ret = WMCREATE (hWch, NumbRowTitr, Par),

где NumbRowTitr - число строк титров (в рассматриваемой программе равно 1).

В процессе выполнения этой функции задаются шрифт и цвет выводимого в окно текста, рассчитываются значения переменных js, jsMax, jsLeft, jsRight, MaxRow, MaxCol. После этого вызывается подпрограмма коррекции данных corUnsch с параметром hWch, в которой данные подготавливаются для вывода на экран (более подробно работа подпрограммы corUnsch будет рассмотрена далее). Затем путем вызова функции CreateEdit с параметром hWch создается строковый редактор.

При получении сообщения WM_PAINT оконная процедура вызывает функцию WMPAINT:

ret = WMPAINT (hWch, TitrUnsch, NumbRowTitr, Par, Bufv),

где TitrUnsch - символьный массив, содержащий титры.

В процессе выполнения этой функции производится вывод на экран строки (строк) титров и содержимого массива Bufv. Если имеются отмеченные строки или блоки текста, они выводятся инвертированными.

При получении сообщения WM_SIZE оконная процедура вызывает функцию WMSIZE:

ret = WMSIZE (hWch, Kol, NumbRowTitr, LengStr),

в которой, исходя из нового размера рабочей области оконного редактора, пересчитываются переменные MaxRow, MaxCol, и анализируется, нужно ли отображать полосы прокрутки. Далее в оконной процедуре рассчитывается новое значение переменной jsRight, а затем, в случае необходимости, корректируется положение окна строкового редактора (при уменьшении размеров рабочей области оконного редактора) или содержимое массива Bufv (при увеличении размеров рабочей области оконного редактора).

При получении сообщения WM_DESTROY обнуляется переменная hWch, уничтожается окно строкового редактора и закрывается окно оконного редактора.

Рассмотрим более подробно подпрограмму corUnsch.

В случае, если код возврата отличен от нуля, сначала в символьный массив Bufv, а затем и в Text, заносятся изменения, произведенные в строковом редакторе. Затем вызывается функция MoveEditWithMouse:

ret = MoveEditWithMouse (Par, Kol),

Если в результате щелчка левой кнопкой мыши или действия полос прокрутки окно строкового редактора необходимо переместить, функция возвращает положительное значение, в зависимости от которого вызывается функция Metka4 или Metka5, а затем Metka6. Если в результате действия полосы прокрутки требуется изменить содержимое оконного редактора, то пересчитываются границы отображаемого текста базы данных in, iv, в соответствии с ними заполняется массив Bufv, а затем вызываются функции Metka4, Metka5, Metka6. Если функция MoveEditWithMouse возвращает 0, т.е. перемещение окна не производилось ни мышью, ни полосами прокрутки, то вызывается подпрограмма управления окном contw, и в случае перемещения строкового редактора с помощью клавиатуры или всплывающего меню (влево / вправо, вверх / вниз, в начало / конец строки, в начало / конец базы данных, листание вверх / вниз) пересчитывается положение строкового и оконного редакторов. В том случае, если перемещение строкового редактора не производилось, проверяется, был ли запрос на поиск по шаблону.

Функция Metka4 выполняет пересчет переменных jsLeft, jsRight в зависимости от того, в каком столбце (js) находится строковый редактор. Пересчитывается также его горизонтальная координата XEdit.

Функция Metka5 выполняет пересчет вертикальной координаты строкового редактора YEdit, а в символьную строку Bufed помещается редактируемый текст.

В процессе выполнения функции Metka6 в соответствующие поля панели состояния выводится количество записей в базе данных и номер текущей записи.

Второй пункт алгоритма реализуется следующим образом.

Оконная процедура оконного редактора обрабатывает пять сообщений мыши: WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MOUSEMOVE, WM_LBUTTONDBLCLK и WM_LBUTTONUP.

При получении сообщения WM_LBUTTONDOWN вызывается функция WMLBUTTONDOWN:

ret = WMLBUTTONDOWN (hWch, mesg, lParam, corUnsch).

В процессе выполнении этой функции переменной cod присваивается значение переменной mesg, т.е. идентификатор сообщения WM_LBUTTONDOWN, а переменной sccod - значение переменной lParam, содержащей горизонтальную позицию курсора мыши в младшем слове и вертикальную позицию курсора мыши в старшем слове. Затем вызывается подпрограмма corUnsch, в которой рассчитываются новые координаты окна строкового редактора. Обновляется его содержимое, каретка устанавливается на первую позицию. Для перемещения окна строкового редактора вызывается функция SetWindowPos, после чего управление возвращается в оконную процедуру, где выполняются еще несколько операторов, связанных с реализацией дополнительных функций, и о которых более подробно будет рассказано при описании четвертого пункта алгоритма.

При получении оконной процедурой оконного редактора сообщения WM_RBUTTONDOWN на экран выводится всплывающее меню. Перед его созданием для каждого пункта меню задается идентификатор и отображаемый текст. Затем вызывается подпрограмма popupm с параметром hWch, в которой происходит создание и отображение меню. Вид всплывающего меню оконного редактора представлен на рис. 3.10.

Рис. 3.10. Вид всплывающего меню оконного редактора

При щелчке левой кнопкой мыши на к.-л. пункте всплывающего меню оконной процедуре оконного редактора посылается сообщение WM_COMMAND, содержащее в младшем слове параметра wParam идентификатор выбранного пункта меню.

Обработка оконной процедурой сообщений WM_MOUSEMOVE, WM_LBUTTONDBLCLK и WM_LBUTTONUP необходима для реализации дополнительных функций, предоставляемых программой, и подробнее будет рассмотрена при описании четвертого пункта алгоритма.

Третий пункт алгоритма реализуется следующим образом.

При обработке действий пользователя вертикальная и горизонтальная полосы прокрутки посылают родительскому окну (т.е. оконному редактору) сообщения WM_VSCROLL и WM_HSCROLL соответственно. При этом переменная wParam в младшем слове содержит одну из величин, идентифицирующих действие пользователя, и определенных в файле msfwinty.f90 (приведены только те, которые обрабатываются в рассматриваемой программе):

SB_LINEDOWN - прокрутка на строку вниз;

SB_LINEUP - прокрутка на строку вверх;

SB_PAGEDOWN - прокрутка на страницу вниз;

SB_PAGEUP - прокрутка на страницу вверх;

SB_THUMBTRACK - перетаскивание бегунка. Номер текущей позиции бегунка содержится в старшем слове wParam.

При обработке сообщения WM_VSCROLL вызывается функция WMVSCROLL:

ret = WMVSCROLL (hWch, mesg, wParam, corUnsch).

При обработке сообщения WM_HSCROLL вызывается функция WMHSCROLL:

ret = WMHSCROLL (hWch, mesg, wParam, corUnsch).

Алгоритмы работы этих функций схожи. В случае, если младшее слово wParam содержит идентификатор SB_LINEDOWN, SB_LINEUP, SB_PAGEDOWN или SB_PAGEUP, переменная cod обнуляется, а переменной sccod присваивается значение идентификатора соответствующего пункта всплывающего меню. Если младшее слово wParam содержит идентификатор SB_THUMBTRACK, переменной cod присваивается значение переменной mesg, а переменной sccod - значение переменной wParam. (Во всех остальных случаях управление возвращается оконной процедуре.) Затем вызывается подпрограмма corUnsch, в которой рассчитываются новые координаты окна строкового редактора. Обновляется его содержимое, каретка устанавливается на первую позицию. Для перемещения окна строкового редактора вызывается функция SetWindowPos, после чего управление возвращается оконной процедуре.

Если указанное сообщение поступило от горизонтальной полосы прокрутки, то соответствующие операции осуществляются влево / вправо.

Четвертый пункт алгоритма.

При получении сообщения WM_COMMAND вспомогательной переменной ret присваивается значение младшего слова wParam. Дальнейшая работа программы организуется с помощью конструкции Select Case, тест-выражением для которой является переменная ret.

Если ret = -1, т.е. сообщение пришло от оконной процедуры строкового редактора, или ret является идентификатором пункта всплывающего меню оконного редактора (кроме последних пяти), вызывается функция MYCASE:

ret = MYCASE (hWch, ret, corUnsch).

При выполнении функции сначала анализируется значение переменной ret, и если ret является идентификатором пункта всплывающего меню, переменная cod обнуляется, а sccod присваивается значение ret. Затем вызывается подпрограмма corUnsch. Обновляется содержимое строкового редактора, каретка устанавливается на первую позицию. Для перемещения окна строкового редактора вызывается функция SetWindowPos и управление возвращается оконной процедуре.

Если ret является идентификатором радиокнопки или одного из органов управления панели инструментов, т.е. была вызвана одна из функций, доступных данному дочернему окну, выполняется соответствующая переменной ret Case_секция.

Во всех остальных случаях (по оператору Case Default) управление передается функции DefWindowProc.

Пятый пункт алгоритма.

В рассматриваемой программе реализованы следующие дополнительные функции:

«Выбор титров».

«Вызов Протокола».

«Ввод названий узлов».

«Отметить строку (строки)».

«Отметить блок».

«Снять маркировку».

«Поиск по шаблону вниз / вверх».

Рассмотрим работу каждой из них подробнее.

1. «Выбор титров».

Назначение - предоставление пользователю возможности задавать порядок отображения параметров в любой комбинации и в любой последовательности.

При вызове этой функции на экран выводится окно модального диалога, в котором предлагается выбрать желаемый порядок следования полей записей базы данных. Вид модального диалога представлен на рис. 3.11 (см. на следующей странице).

Рис. 3.11. Вид модального диалога «Выбор титров»

Оконная процедура диалога и подпрограммы, необходимые для реализации данной функции, объединены в модуле Titr.

При инициализации диалога оконная процедура вызывает подпрограмму TitreInit, в которой инициализируются необходимые переменные и на экран выводится список титров, доступных для выбора.

В процессе работы с данным диалогом пользователь может выполнять следующие действия.

Нажать кнопку переноса титра вправо. Оконная процедура диалога получает соответствующее сообщение, по которому вызывает подпрограмму Move, где выполняются операции переноса выделенного титра из одного окна списка в другой. Если ни один титр в левом окне списка не выбран или список пуст, кнопка недоступна.

Нажать кнопку переноса титра влево. Вызывается подпрограмма Move, где выполняются операции переноса выделенного титра из одного окна списка в другой. Если ни один титр в правом окне списка не выбран или список пуст, кнопка недоступна.

Нажать кнопку «Выбрать все». Все содержимое левого окна списка добавляется в правый, после чего левый список очищается. Если левый список пуст, кнопка недоступна.

Нажать кнопку «Очистить все». Содержимое обоих окон списков уничтожается, а затем вызывается подпрограмма TitreInit. Данная кнопка недоступна, если левый список пуст.

Нажать кнопку «Отмена». Восстанавливается прежний порядок следования титров, окно диалога завершает свою работу и управление передается оконной процедуре оконного редактора.

Нажать кнопку «Ок». В переменную jsMax записывается количество выбранных титров. После этого последовательно вызываются подпрограмма Change_By_Places_Titr, в которой производится коррекция символьного массива TitrUnsch, содержащего титры, и подпрограмма Change_By_Places_Text, в которой производится коррекция символьного массива Bufv и целочисленного массива табуляции Par в соответствии с выбранным порядком отображения параметров. Окно модального диалога уничтожается и управление передается оконной процедуре оконного редактора. Данная кнопка недоступна, пока не будет выбран по крайней мере один титр.

Модуль Titr также содержит подпрограмму Vosvrat_Titr, в которой производится восстановление первоначального порядка следования титров, и подпрограмму Vosvrat_Text, в которой производится восстановление первоначального порядка следования элементов массивов Bufv и Par.

Глобальная логическая переменная TitrFlag по умолчанию устанавливается в FALSE и принимает значение TRUE только в том случае, если порядок отображения параметров был изменен. В процессе работы оконного редактора перед началом обмена данными между массивами Bufv и Text анализируется состояние переменной TitrFlag и, если она установлена в TRUE, вызывается подпрограмма Vosvrat_Text, а при завершении обмена вызывается подпрограмма Change_By_Places_Text.

2. «Вызов Протокола».

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

При вызове протокола на экран выводится модальное окно диалога. Вид модального диалога представлен на рис. 3.12.

Рис. 3.12. Вид модального диалога «Вызов Протокола»

Оконная процедура диалога и подпрограмма ProtocolInit, которая вызывается при инициализации диалога, объединены в модуле ProtMod.

Каждому сообщению об ошибке соответствует одна строка. Общее количество строк (сообщений) и номер текущей строки указываются в соответствующих полях («Всего записей» и «Запись №»).

Предусмотрены три группы сообщений: «!» - использование данных, как правило, при решении технологических задач приводит к их аварийному завершению; «?» - возможны ошибки при решении ряда технологических задач; «» - предупреждения, не обязательно связанные с ошибками.

Для удаления какого либо сообщения необходимо отметить его с помощью клавиатуры или щелчком левой кнопки мыши, а затем нажать кнопку «Удалить». Удаление является мнимым: все удаленные сообщения легко восстанавливаются - следует закрыть, а затем повторно вызвать протокол.

Автоматический поиск источника ошибки осуществляется следующим образом: сначала необходимо отметить нужное сообщение, а затем нажать кнопку «Перейти». Окно протокола закрывается, в оконный редактор выводится нужная страница данных, а окно строкового редактора устанавливается на записи, содержащей ошибку. Переход к месту ошибки возможен также по двойному щелчку левой кнопкой мыши на сообщении об ошибке.

Выход из окна протокола осуществляется автоматически, если удалены все сообщения об ошибках, или по нажатию кнопки «Выход из Протокола».

При изменении редактируемых данных вызов функции «Протокол» становится недоступен до тех пор, пока измененные данные не будут вновь оттранслированы.

3. «Ввод названий узлов».

Данная функция доступна только при редактировании параметров узлов и дает возможность пользователю редактировать названия узлов.

Ее вызов осуществляется щелчком левой кнопкой мыши на соответствующей радиокнопке панели инструментов. В нижней части экрана непосредственно над панелью состояния выводится немодальное окно диалога, вид которого представлен на рис. 3.13.

Рис. 3.13. Вид немодального диалога «Ввод названий узлов».

Размеры оконного редактора соответствующим образом корректируются. В случае, если при отображении немодального диалога «Ввод названий узлов» оконному редактору останется недостаточно места для отображения хотя бы одной записи, выводится соответствующее сообщение, немодальный диалог не создается, а вызов функции игнорируется.

Оконная процедура диалога содержится в модуле NameUzlMod.

В окно диалога выводится номер узла, соответствующего записи, на которой установлено окно строкового редактора, и название этого узла (не более 50 символов). При перемещении строкового редактора по записям эта информация обновляется.

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

Все время, пока активен режим ввода названий узлов, соответствующая радиокнопка на панели инструментов остается отмеченной. При повторном ее нажатии осуществляется выход из этого режима: считывается и запоминается содержимое окна редактирования, окно немодального диалога уничтожается, корректируются размеры оконного редактора, а радиокнопка разотмечается.

4. «Отметить строку (строки)».

Для удобства работы пользователя реализована возможность отметки строки (строк). Маркировать можно отдельную строку или несколько строк. В последнем случае при использовании «горячей клавиши» (ALT+L) или всплывающего меню оконного редактора отмечаются верхняя и нижняя строки в произвольной последовательности, допускается расширение отмеченного блока вверх и вниз.

Реализована возможность маркировки строки (строк) с помощью мыши путем ее перемещения с нажатой левой кнопкой. В момент отпускания кнопки операция выделения прекращается.

Отмеченная строка (строки) выводится на экран инвертированной.

5. «Отметить блок».

Для удобства работы пользователя реализована возможность отметки блока с помощью клавиатуры (используется «горячая клавиша» ALT+B) и с помощью мыши (используется двойной щелчок левой кнопкой или всплывающее меню оконного редактора). Маркировать можно отдельное поле или группу (блок) полей; в последнем случае отмечается левый верхний и правый нижний угол в произвольной последовательности. Допускается расширение отмеченного блока вверх и влево, вниз и вправо.

При отметке начала блока (к.-л. поля) оно инвертируется, а на панель состояния выводится надпись «Отметьте конец блока». При отметке конца блока отмеченная группа полей выводится на экран инвертированной, а надпись в панели состояния стирается.

6. «Снять маркировку».

Снять маркировку уже отмеченного блока или строки (строк) можно с помощью клавиатуры («горячая клавиша» ALT+U) и с помощью мыши (используется щелчок левой кнопкой мыши над рабочей областью оконного редактора или всплывающее меню оконного редактора).

7. «Поиск по шаблону вниз / вверх».

Данная функция облегчает и ускоряет поиск нужного параметра.

Шаблон поиска вводится в окно редактирования на панели инструментов (см. п. 3.4). Затем с помощью соответствующих органов панели инструментов («поиск по шаблону вниз», «поиск по шаблону вверх»), которые продублированы «горячими клавишами» (ALT+P и CTRL+P соответственно) и всплывающим меню оконного редактора, производится поиск.

Поиск ведется по столбцам, начиная с поля, на котором находится окно строкового редактора. «Листание» вверх / вниз производится автоматически, если это необходимо. Если поиск успешный, то окно строкового редактора устанавливается на поле, найденное первым; в противном случае пользователь информируется о том, что поиск неуспешен, а местоположение окна не изменяется.

Введенный последним шаблон сохраняется неизменным до тех пор, пока не будет введен новый.

4. Разработка мероприятий по безопасной эксплуатации ПЭВМ

Государственный комитет санитарно-эпидемиологического надзора Российской Федерации осуществляет разработку и надзор за исполнением федеральных санитарных правил, норм и гигиенических нормативов, которые:

содержат нормативные акты, устанавливающие критерии безопасности и (или) безвредности для человека факторов среды его обитания и требования к обеспечению благоприятных условий его жизнедеятельности;

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

Федеральные санитарные правила и нормы в числе прочих включают в себя раздел «Гигиенические требования к видеодисплейным терминалам (ВДТ) и ПЭВМ и организация работы с ними», на основе которого разрабатываются мероприятия по безопасной эксплуатации ПЭВМ.

Рассмотрим некоторые наиболее важные с точки зрения безопасной эксплуатации ПЭВМ требования, устанавливаемые федеральными санитарными правилами и нормами.

4.1 Требования к ВДТ и ПЭВМ

Конструкция ВДТ и ПЭВМ должна обеспечивать соответствие санитарно-гигиеническим нормам следующих параметров:

мощность экспозиционной дозы рентгеновского излучения;

уровень ультрафиолетового излучения на рабочем месте пользователя;

напряженность электромагнитного поля на рабочем месте пользователя по электрической и по магнитной составляющей;

напряженность электростатических полей на поверхностях ВДТ;

уровень звука при работе ВДТ и ПЭВМ и при включении их в сеть.

Конструкция ВДТ ПЭВМ должна предусматривать:

возможность поворота корпуса в горизонтальной и в вертикальной плоскостях с фиксацией в заданном положении;

антибликовое покрытие экрана и другие конструктивные решения для обеспечения оптимального качества изображения при наличии внешних источников освещения.

Конструкция клавиатуры должна предусматривать:

исполнение в виде отдельного устройства;

опорное приспособление, позволяющее изменять угол наклона поверхности клавиатуры.

4.2 Требования к помещениям для эксплуатации ВДТ и ПЭВМ

Помещения с ВДТ и ПЭВМ должны иметь естественное и искусственное освещение. Естественное освещение должно осуществляться через светопроемы, ориентированные преимущественно на север и северо-восток и обеспечивать нормированные для различных климатических поясов значения коэффициенты естественной освещенности (КЕО).

Расположение рабочих мест с ВДТ и ПЭВМ в цокольных и подвальных помещениях допускается только по согласованию с органами Государственного санитарно-эпидемиологического надзора.

Звукоизоляция ограждающих конструкций помещений с ВДТ и ПЭВМ должна отвечать гигиеническим требованиям и обеспечивать нормируемые параметры шума.

Помещения с ВДТ и ПЭВМ должны оборудоваться системами отопления, кондиционирования воздуха или эффективной приточно-вытяжной вентиляцией.

Поверхность пола в помещениях эксплуатации ВДТ и ПЭВМ должна быть ровной, без выбоин, нескользкой, удобной для очистки и влажной уборки, обладать антистатическими свойствами.

4.3 Требования к защите от шума и вибрации

В производственных помещениях, в которых работа на ВДТ и ПЭВМ является основной (диспетчерские, операторские, расчетные, кабины и посты управления, залы вычислительной техники и др.), в дошкольных и всех учебных помещениях с ВДТ и ПЭВМ фоновый уровень шума не должен превышать 40 дБА, (при работе систем воздушного отопления, вентиляции и кондиционирования - 35 дБА), а во время работы на ВДТ и ПЭВМ 50 дБА. Вибрация также не должна превышать нормируемых значений.

4.4 Требования к освещению помещений и рабочих мест с ВДТ и ПЭВМ

Искусственное освещение в помещениях эксплуатации ВДТ и ПЭВМ должно осуществляться системой общего равномерного освещения. В производственных и административно-общественных помещениях, в случаях преимущественной работы с документами, допускается применение системы комбинированного освещения (к общему освещению дополнительно устанавливаются светильники местного освещения, предназначенные для освещения зоны расположения документов).

Искусственное освещение должно обеспечивать на рабочих местах с ВДТ и ПЭВМ в производственных, административно-общественных, дошкольных и учебных помещениях освещенность не ниже нормируемых значений.

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

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

4.5 Общие требования к организации и оборудованию рабочих мест с ВДТ и ПЭВМ

Рабочие места с ВДТ и ПЭВМ должны размещаться в помещениях с естественным освещением при ориентации оконных проемов на север или северо-восток.

Рабочие места с ВДТ и ПЭВМ при выполнении творческой работы, требующей значительного умственного напряжения или высокой концентрации внимания, следует изолировать друг от друга перегородками высотой 1,5-2,0 м.

Шумящее оборудование (АЦПУ и др.), следует размещать вне помещений с использованием ВДТ и ПЭВМ.

При конструировании оборудования и организации рабочего места пользователя ВДТ и ПЭВМ следует обеспечить соответствие конструкции элементов рабочего стола и их взаимного расположения, конструкции стула (кресла) гигиеническим и эргономическим требованиям с учетом характера выполняемой деятельности, комплексности технических средств, форм организации труда и основного рабочего положения пользователя.

Экран видеомониторов должен находиться от глаз пользователя на оптимальном расстоянии 700 мм, но не ближе 500 мм.

В помещениях с ВДТ и ПЭВМ ежедневно должна проводиться влажная уборка.

4.6 Требования к организации режима труда и отдыха при работе с ПЭВМ и ВДТ

Режимы труда и отдыха при профессиональной работе с ПЭВМ и ВДТ должны организовываться в зависимости от вида и категории трудовой деятельности. Виды трудовой деятельности разделяются на 3 группы:

группа А - работа по считыванию информации с экрана ВДТ или ПЭВМ с предварительным запросом;

группа Б - работа по вводу информации;

группа В-творческая работа в режиме диалога с ЭВМ.

Для видов трудовой деятельности устанавливается 3 категории тяжести и напряженности работы с ВДТ и ПЭВМ, которые определяются:

для групп А и Б - по суммарному числу считываемых или вводимых знаков за рабочую смену;

для группы В-по суммарному времени непосредственной работы с ВДТ и ПЭВМ за рабочую смену.

Продолжительность работы педагогов при ведении занятий с ВДТ и ПЭВМ во всех учебных заведениях не должна превышать 4 часов в день.

Продолжительность работы с ВДТ и ПЭВМ инженеров, обслуживающих занятия в кабинетах вычислительной техники или дисплейных классах высших учебных заведений, не должна превышать 6 часов в день.

Для обеспечения оптимальной работоспособности и сохранения здоровья профессиональных пользователей, на протяжении рабочей смены должны устанавливаться регламентированные перерывы. Время регламентированных перерывов в течение рабочей смены следует устанавливать в зависимости от ее продолжительности, вида и категории трудовой деятельности с ВДТ и ПЭВМ. Продолжительность непрерывной работы с ВДТ и ПЭВМ без регламентированного перерыва не должна превышать 2 часов.

Для профилактики зрительного утомления после каждых 25 минут работы следует выполнять комплекс упражнений для глаз.

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

4.7 Требования к организации медицинского обслуживания пользователей ВДТ и ПЭВМ

Профессиональные пользователи ВДТ и ПЭВМ должны проходить обязательные предварительные (при поступлении на работу) и периодические медицинские осмотры в порядке и в сроки, установленные Министерством здравоохранения Российской Федерации и Государственным комитетом санитарно-эпидемиологического надзора Российской Федерации. К непосредственной работе с ВДТ и ПЭВМ допускаются лица, не имеющие медицинских противопоказаний.

Женщины со времени установления беременности и в период кормления ребенка грудью к выполнению всех видов работ, связанных с использованием ВДТ и ПЭВМ, не допускаются.

Медицинское освидетельствование студентов высших учебных заведений и учащихся средних специальных учебных заведений должно проводиться в соответствии с действующими нормативно-методическими документами Министерства здравоохранения Российской Федерации.

Медицинское освидетельствование детей дошкольного и школьного возраста проводится в порядке и в сроки, установленные Министерством здравоохранения Российской Федерации и Министерством образования Российской Федерации. [8]

Заключение

В ходе работы над проектом была дана математическая формулировка задачи оценивания и рассмотрены ее вычислительные аспекты, приведены концепции построения математического обеспечения информационно-вычислительной подсистемы, в соответствии с которыми должна формироваться единая математическая модель режима ЭЭС. Описаны также назначение и основные функции КП Компоновщик расчетных схем.

Рассмотрены требования, предъявляемые к системам подготовки, отладки и поддержания данных.

Приведен алгоритм формирования расчетной схемы, удовлетворяющий этим требованиям.

Описан пользовательский интерфейс КП Компоновщик расчетных схем в операционной системе MS DOS.

Реализованы основные элементы пользовательского интерфейса в операционной системе Windows: панель инструментов, панель состояния, строковый и оконный редакторы, модальные и немодальные диалоговые окна.

Рассмотрены некоторые наиболее важные с точки зрения организации безопасной эксплуатации ПЭВМ требования, устанавливаемые федеральными санитарными правилами и нормами.

Разработанные программы насчитывают порядка трех с половиной тысяч операторов.

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

Унароков А.А. Управление режимом энергосистемы в реальном времени. // Докторская диссертация. - М.: МЭИ, 1997 г.

Унароков А.А. Вычислительные аспекты оценки состояния ЭЭС. // Известия РАН. Энергетика, 1995 г., №2.

Унароков А.А. Математическое обеспечение информационно-вычислительной подсистемы: состав, концепции построения и технические характеристики. // Сборник научных трудов №9. - Смоленск: СФ МЭИ, 1996 г.

Петзолд Ч. Программирование для Windows 95; в двух томах. / Пер. с англ. - СПб.: BHV - Санкт-Петербург, 1997 г.

Бартеньев О.В. Современный Фортран. - М.:Диалог-МИФИ, 1998 г.

Гладков С.А., Фролов Г.В. Программирование в Microsoft Windows, в двух частях. Часть 1. - М.: Диалог-МИФИ, 1992 г.

Руководство по программированию в среде Microsoft Windows. - М.: Наука, 1991 г.

Федеральные санитарные правила, нормы и гигиенические нормативы. Гигиенические требования к видеодисплейным терминалам и персональным электронно-вычислительным машинам и организация работы с ними. - ГК СЭН РФ, М.: СанПин, 1994 г.

Страницы: 1, 2, 3, 4


© 2010 BANKS OF РЕФЕРАТ