Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
На сегодняшний день практически невозможно найти отрасль промышленности, в которой не существовало бы потребности в автоматизации технологических процессов. Автоматизированная система контроля и управления технологическими процессами (АСУ ТП) это совокупность аппаратно-программных средств, осуществляющих контроль и управление производственными и технологическими процессами; поддерживающих обратную связь и активно воздействующих на ход процесса при отклонении его от заданных параметров; обеспечивающих регулирование и оптимизацию управляемого процесса.
Одним из основных преимуществ использования на производстве АСУ ТП является существенное снижение, а в некоторых случаях и полное исключение влияния на управляемый процесс человеческого фактора, сокращение численности персонала, минимизация расходов сырья, повышение качества производимого продукта, и, в конечном счете, существенное повышение эффективности производства.
Основные функции систем АСУ ТП: контроль и управление, обмен данными, обработка, накопление и хранение информации, формирование сигналов тревоги, построение графиков и отчетов.
Внедрение АСУ ТП получает широкое распространение в различных секторах отечественной экономики, таких как нефтяная и газовая промышленность, химия и нефтехимия, металлургия, энергетика. В последнее время АСУ ТП начинают проникать в такие сферы, как управление дорожным движением, медицина, машиностроение, жилищно-коммунальное хозяйство. Отдельное направление их применения составляет военная и космическая техника, где системы автоматизации используются в качестве встроенных средств контроля и управления. [1]
На западном рынке системы промышленной автоматизации получили широкое распространение в середине 70-х годов, когда компьютерные технологии вышли на уровень, сделавший оправданным их массовое использование в производстве. В нашей стране формирование сектора АСУ ТП началось в конце 80-х начале 90-х годов.
Несмотря на то, что современные компьютерные технологии позволяют решать практически любые задачи автоматизации, многие небольшие предприятия до сих пор работают на том же оборудовании, что и 15-20 лет назад. Это обусловлено тем, что переход на новый уровень автоматизации требует значительных материальных вложений в закупку оборудования, переподготовку персонала, разработку и реализацию программных средств автоматизации. На тех предприятиях, где износ имеющегося оборудования близок к ста процентам и закупка нового оборудования неизбежна, представляется целесообразным полностью обновить не только материально-технологическую базу, но и сами принципы организации производственного процесса.
Сегодня на рынке программного обеспечения представлено большое количество пакетов программного обеспечения, предназначенных для решения задач автоматизации (SCADA-системы). Однако применение этих систем на небольших объектах управления чаще всего экономически не обосновано. Поэтому имеется потребность в разработке недорогих, узкоспециализированных программных комплексов автоматизации.
Целью данной дипломной работы является разработка, реализация и внедрение системы диспетчерского контроля состояния котельной.
Системный подход к проектированию программных продуктов состоит в том, что на каждом этапе жизненного цикла программного обеспечения разработчик на основании системного анализа вариантов решения выбирает наилучший с точки зрения получения максимального частного критерия. При этом предполагается, что если на каждом этапе производства программного продукта будет достигнут наивысший критерий качества, то и в целом ПО будет обладать наивысшим значением показателя качества.
Система диспетчерского контроля состояния технологического процесса «NordVision» предназначена для автоматизации контроля за параметрами технологического процесса и обеспечения оперативного персонала всей необходимой информацией для принятия решений по управлению технологическим процессом.
Система обеспечивает выполнение следующих функций:
1. опрос измерительных приборов и преобразование полученных сигналов в соответствии с заданной конфигурацией;
2. отображение значений технологических параметров на мнемосхеме и на графиках в режиме реального времени;
3. генерация сообщений о возникновении аварийных ситуаций и неполадок в работе оборудования;
4. сохранение истории значений технологических параметров и истории аварийных сообщений в базе данных;
5. генерация отчетов и отображение истории изменения значений технологических параметров в виде графиков.
АРМ «NordVision» предназначен для диспетчера котельной. Программа будет поддерживать выполнение следующих функций:
Целью данного дипломного проекта является разработка удобного и надежного программного обеспечения для операторов котельной. Под созданием программного обеспечения подразумевается обеспечение определенных характеристик, выдвинутых в качестве требований.
Чтобы определить, как можно решить поставленную задачу необходимо четко представлять требования, предъявляемые к решаемой задаче. Требования к исходному программному продукту могут быть представлены в виде двух основных групп:
Рассмотрим каждую из этих категорий подробно и применительно к поставленной задаче.
Создание автоматизированной системы позволит сократить уменьшить трудозатраты и количество ошибок при обработке информации. В социальном плане это должно привести к снижению количества случаев аварийных ситуаций из-за более оперативного реагирования на изменение информации.
В экономическом плане создание программного продукта «NordVision» должно уменьшить трудозатраты на обслуживание котельной.
Технические требования являются наиболее значимые при разработке программного обеспечения. Ведь это тот инструмент, с помощью которого будет реализована поставленная задача и выполнены поставленные цели.
Технические требования, предъявляемые к программному продукту, следующие:
Управление программным обеспечением должно быть наиболее простым и интуитивно понятным пользователю. Следует избегать чрезмерной вложенности меню или выбора управляющих форм.
Оценка качества программного обеспечения производится с позиций пользователя, разработчика и руководителя проекта. В качестве требований к программным системам можно выделить следующие [6]:
Теперь остановимся на каждом из этих показателей подробнее.
Данный показатель характеризует степень удовлетворения потребностей пользователя в смысле возможности решения конкретных задач, стоящих перед ним, т.е. это набор атрибутов, определяющий назначение, номенклатуру, основные, необходимые и достаточные функции ПО, указанные в техническом задании заказчика или потенциального пользователя.
Практика показывает, что конечный пользователь, не имеющий специальной подготовки в области программирования, просто не будет использовать программную систему, если эта система оказывается неудобной для него. Удобство использования ПО характеризуются следующими частными показателями:
удобство пользовательского интерфейса (удобство расположения и представления часто используемых элементов экрана, способов ввода данных и др.);
Под надежностью понимают, прежде всего, обеспечение достаточно низкой вероятности отказа в процессе функционирования в реальном времени. Можно выделить два основных аспекта надежности:
В процессе опытной эксплуатации невозможно выявить все ошибки, например, непредусмотренное сочетание данных. В связи с этим в промышленной эксплуатации проявляются не выявленные ошибки, и разработчик вынужден модифицировать ПО для их исправления, добавляя или изменяя некоторые функции.
Другой аспект надежности заключается в степени защищенности ПП от:
Надежная программа не реагирует на нажатие неразрешенных клавиш; ненадежная может завершиться аварийно, поставив пользователя в трудное положение. Не совершая неправильных действий, пользователь, тем не менее, может ввести недопустимое сочетание исходных данных, приводящих к аварийному завершению программы. Надежная программа должна выполнять соответствующие проверки и не допускать вычислений с этими данными, предупреждая пользователя о невозможности выполнения его требований и возвращаясь в исходное состояние.
Сюда же следует отнести устойчивость программы при попытках несанкционированного доступа, а также вирусоустойчивость.
Этот показатель характеризует объемы требующихся для программы ресурсов вычислительной системы, таких как:
Практически все эти показатели могут получить числовую оценку. Однако, далее не всегда справедливо утверждение: чем меньше, тем лучше. Ведь его можно легко довести до абсурда, например, сказав, что лучше всего такой ПП, который требует ноль байтов оперативной памяти или ноль секунд процессорного времени.
Тем не менее, верно следующее: из двух программ с функциональными одинаковыми свойствами лучше та, которая потребляет меньше ресурсов.
Таким образом, эффективность ПО следует рассматривать по следующим двум характеристикам:
Требования к оптимальному размеру внешней и оперативной памяти, типу и производительности процессора, обеспечивающие приемлемый уровень производительности.
Под адаптивностью программного обеспечения подразумевается возможность его модификации в случае изменения параметров решаемых задач операционного окружения, аппаратурного состава или вообще типа ЭВМ. При изменении характера и параметров решаемых задач, как правило, требуется изменить количественные и структурные параметры программы. Эти изменения можно сделать либо изменяя управляемые параметры программы, если она является параметрической, либо меняя исходный текст.
Мощным методом адаптации программного обеспечения является генерация - процесс сборки и настройки рабочей версии ПО из заведомо избыточного набора программных модулей. Обычно генерируемые программные системы являются наиболее сложными программными системами, как, например, ОС, СУБД и т.п. Уровень адаптивности таких систем следует считать весьма высоким.
Под этим показателем качества понимают простоту сопровождения программы, т.е. ее обслуживания программистом на различных этапах жизненного цикла программного обеспечения, в основном на этапе его эксплуатации.
Характеризуется следующими показателями:
Универсальность ПО характеризуется ограничениями на применение ПО. Эти ограничения могут относиться к типам и элементному составу анализируемых или синтезируемых структур, диапазонам числовых значений внутренних и внешних параметров, перечню выполняемых проектных операций и процедур. Универсальность связана с надёжностью ПО - чем тщательнее и полнее выявлены и оговорены ограничения, тем ниже степень универсальности программы, но выше её надёжность. Поэтому эксплуатация нескольких узкоспециализированных, но надёжных программ предпочтительнее применения одной универсальной программы, если за повышение степени универсальности приходится платить снижением надёжности.
Следует различать два аспекта этого показателя: стоимость приобретения и стоимость эксплуатации (стоимость владения). В этом плане пользователь всегда стоит перед дилеммой: приобрести типовой готовый ПП или заказать индивидуальную разработку.
В первом случае стоимость приобретения сравнительно невелика, однако настройка ПП на класс решаемых задач потребует определенных затрат, в ряде случаев многократно превосходящих начальные. Главной особенностью готовых ПП является то, что с функциональной точки зрения они редко полностью удовлетворяют пользователя.
Созданный по индивидуальному заказу ПП как правило заметно дороже готового, но полнее отвечает требованиям пользователя. В этом случае стоимость его приобретения значительно выше, но стоимость настройки и эксплуатации существенно ниже, чем в первом варианте.
Понимается возможность модификации ПО в случае изменения параметров решаемых задач, операционного окружения, аппаратурного состава или вообще типа ЭВМ. При изменении характера и параметров решаемых задач, как правило, требуется изменить количественные и структурные параметры программы, т.е. изменить ее исходный текст. Если же программа не снабжена исходными текстами или мощным средством по внесению изменений в параметры программы без затрагивания исходных текстов, переносимость (адаптируемость), близка к нулю.
Данный показатель качества ПО характеризуют следующие частные показатели:
В настоящее время системный анализ содержит уже широкий спектр разнообразных методов, которые можно объединить в следующие группы: эвристическое программирование, методы аналогий, аналитические методы и имитационное моделирование.
Учитывая вышеприведенные достоинства и недостатки каждого метода, целесообразно дать оценку эффективности проекта с помощью метода экспертной оценки, а также использовать метод аналогий.
Метод экспертной оценки, будет использоваться в качестве помощи при определении важности целей, показателей эффективности, критериев и предпочтений. Основная идея этого метода состоит в том, чтобы использовать интеллект специалистов, их способность искать и находить решения слабо формализованных задач.
Метод аналогий позволит использовать лучшие характеристики прототипа.
Для того чтобы функционирование программы осуществлялось наиболее эффективно, требуется спроектировать те характеристики и с учетом тех факторов, которые обеспечат приемлемое совершенство программы. Для этого сформируем обобщенный показатель эффективности программы, составив группу экспертов.
На основании анализа технического задания, спецификации и назначения разрабатываемого программного обеспечения, выберем для реализации следующие требования:
Для ранжирования характеристик экспертам было предложено оценить значимость критериев показателей эффективности, описанных в пункте 2.2.3, и выставить им оценки. При этом каждый эксперт индивидуально осуществляет расстановку показателей по рангам с первого, предоставляющегося наиболее важным, до последнего, который, по мнению эксперта, наименее значим [6].
Среднее значение ранга по данным всех экспертов рассчитаем по формуле:
(.) |
где cij - ранг i-го показателя, назначенный j-м экспертом,
m количество экспертов.
Средне квадратичное отклонение i-го показателя места от его среднего значения zi рассчитаем по формуле:
(.) |
Далее осуществим выставление предварительных рангов по всем показателям по схеме:
, |
(.) |
то всем им назначаем одинаковые предварительные ранги, как среднее по числу их возможных порядковых мест.
Правильность назначения предварительных рангов проверяем по их сумме, которая должна быть равна
(.) |
Следующей важной характеристикой является - среднеквадратическое отклонение, позволяющее сформировать доверительный интервал:
(.) |
Результаты опроса экспертов и расчетов приведены в таблицах 2.1 и 2.2.
Для проведения оценки удобства программного обеспечения при проектировании была проведена экспертиза. Пяти экспертам был предложен список требований к данному показателю качества с предложением ранжировать их по принципу «чем меньше, тем лучше».
Список содержит следующие требования:
Результат опроса экспертов
Таблица .
Показатели |
Эксперты |
Среднее значение |
Средне-квадратическое отклонение |
Предвари-тельный ранг |
||||
1 |
2 |
3 |
4 |
5 |
||||
1 |
1 |
4 |
3 |
2 |
1 |
2,2 |
1,7 |
1,5 |
2 |
2 |
3 |
2 |
4 |
2 |
2,6 |
0,8 |
3 |
3 |
3 |
1 |
2 |
1 |
3 |
2 |
1 |
1,5 |
4 |
4 |
4 |
7 |
8 |
7 |
6 |
3,5 |
5,5 |
5 |
8 |
7 |
5 |
4 |
3 |
5,4 |
4,3 |
4 |
6 |
5 |
6 |
8 |
6 |
6 |
6,2 |
1,2 |
5,5 |
7 |
7 |
7 |
5 |
7 |
6 |
6,4 |
0,8 |
7 |
8 |
8 |
7 |
8 |
8 |
6 |
7,4 |
0,8 |
8 |
Произведем проверку правильности назначения рангов:
36=36
из этого следует, что окончательные ранги для удобства программного обеспечения назначены правильно.
Для того чтобы оценить надежность программного обеспечения, была проведена экспертиза. Пяти экспертам предложили список требований к функциональности ПО с предложением ранжировать их по принципу «чем меньше, тем лучше».
Список требований к надежности ПО:
Результат опроса экспертов.
Таблица 2.2.
Показатели |
Эксперты |
Среднее значение |
Средне-квадратическое отклонение |
Предвари-тельный ранг |
||||
1 |
2 |
3 |
4 |
5 |
||||
1 |
1 |
2 |
3 |
3 |
2 |
2,2 |
0,7 |
3 |
2 |
2 |
3 |
1 |
2 |
1 |
1,8 |
0,7 |
1 |
3 |
2 |
2 |
3 |
2 |
1 |
2 |
0,5 |
2 |
4 |
4 |
4 |
5 |
4 |
5 |
4,4 |
0,3 |
4 |
5 |
5 |
5 |
4 |
5 |
4 |
4,6 |
0,3 |
5 |
Произведем проверку правильности назначения рангов:
15 = 15
из этого следует, что окончательные ранги для надежности программного обеспечения назначены правильно.
Оценки экспертов в значительной степени определяются их квалификацией в данной области, то есть компетентностью.
Определение компетентности экспертов выполнятся по коэффициентам ранговой корреляции.
Коэффициент ранговой корреляции рассчитывается по формуле Спирмена:
(.) |
где и
Коэффициент компетентности рассчитывается по формуле:
(.) |
Результаты вычислений значения величины di2 , коэффициента ранговой корреляции и коэффициента компетентности сведены в таблицы 2.3 и 2.4.
Таблица 2.3
Эксперты |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
ρ j |
α j |
Значение di2 |
||||||||||
1 |
1,44 |
0,36 |
1 |
4 |
6,76 |
1,44 |
0,36 |
0,36 |
0,81 |
0,19 |
2 |
3,24 |
0,16 |
1 |
4 |
2,56 |
0,04 |
0,36 |
0,16 |
0,86 |
0,20 |
3 |
0,64 |
0,36 |
0 |
1 |
0,16 |
3,24 |
1,96 |
0,36 |
0,91 |
0,20 |
4 |
0,04 |
1,96 |
1 |
4 |
1,96 |
0,04 |
0,36 |
0,36 |
0,88 |
0,20 |
5 |
1,44 |
0,36 |
1 |
1 |
5,76 |
0,04 |
0,16 |
1,96 |
0,86 |
0,20 |
Таблица 2.4
Эксперты |
1 |
2 |
3 |
4 |
5 |
ρ j |
α j |
Значение di2 |
|||||||
1 |
1,44 |
0,04 |
0 |
0,16 |
0,16 |
0,91 |
0,20 |
2 |
0,04 |
1,44 |
0 |
0,16 |
0,16 |
0,91 |
0,20 |
3 |
0,64 |
0,64 |
1 |
0,36 |
0,36 |
0,85 |
0,19 |
4 |
0,64 |
0,04 |
0 |
0,16 |
0,16 |
0,95 |
0,21 |
5 |
0,04 |
0,64 |
1 |
0,36 |
0,36 |
0,88 |
0,20 |
Повторное ранжирование показателей с учетом компетентности экспертов осуществляется на основе таблиц 2.3 и 2.4, приведенной в пункте 2.2.5, а соответствующие оценки определяются по формулам:
(.) |
(.) |
Далее аналогично формированию графы i предварительных рангов таблиц 2.1 и 2.2, сформируем графу *I - окончательных рангов с учетом и если она равна 0,5n(n+1), то значит, что окончательные ранги определены правильно и можно переходить к определению показателя согласия экспертов, что позволит заключить, состоялась или нет экспертиза. При этом используются доверительные интервалы, которые дают представление о степени точности и надежности оценки установленных рангов рассматриваемых величин.
Полученные характеристики занесены в таблицы 2.5. и 2.6.
Таблица 2.5.
Показатели |
Среднее значение |
Среднеквадратичное отклонение |
Предварительный ранг |
1 |
2,21 |
1,35 |
2 |
2 |
2,60 |
0,64 |
3 |
3 |
1,99 |
0,80 |
1 |
4 |
6,02 |
2,79 |
5,5 |
5 |
5,38 |
3,40 |
4 |
6 |
6,21 |
0,97 |
5,5 |
7 |
6,39 |
0,65 |
7 |
8 |
7,40 |
0,64 |
8 |
Произведем проверку правильности назначения рангов:
36=36
из этого следует, что окончательные ранги для удобства программного обеспечения назначены правильно.
Таблица 2.6.
Показатели |
Среднее значение |
Среднеквадратичное отклонение |
Предварительный ранг |
1 |
2,20 |
0,56 |
3 |
2 |
1,81 |
0,56 |
1 |
3 |
2,00 |
0,39 |
2 |
4 |
4,39 |
0,24 |
4 |
5 |
4,61 |
0,24 |
5 |
Произведем проверку правильности назначения рангов:
15 = 15
из этого следует, что окончательные ранги для надежности программного обеспечения назначены правильно.
Определение коэффициентов значимости частных показателей осуществляется по формуле:
(.) |
где r*i окончательный ранг i-го показателя.
Данные для расчетов сведены в таблицы 2.7 и 2.8.
Таблица 2.7.
Коэффициенты значимости, |
№ показателя |
|||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
0,18 |
0,12 |
0,37 |
0,07 |
0,09 |
0,07 |
0,05 |
0,05 |
Таблица 2.8.
Коэффициенты значимости, |
№ показателя |
||||
1 |
2 |
3 |
4 |
5 |
|
0,15 |
0,44 |
0,22 |
0,11 |
0,09 |
Степень согласованности экспертов определим с помощью коэффициента конкордации Кендалла [3].
(.) |
где
Определим согласованность экспертов для m=5, n=8
Согласованность экспертов хорошая, т.к. . Следовательно, результаты экспертизы можно считать действительными.
Согласно экспертной оценке выберем три самых важных с точки зрения экспертов критерия:
Определим согласованность экспертов для m=5, n=5
Согласованность экспертов хорошая, т.к. . Следовательно, результаты экспертизы можно считать действительными.
Согласно экспертной оценке выберем три самых важных с точки зрения экспертов критерия:
Системы создается для удовлетворения возникших у общества потребностей. Стремление к возможно более полному удовлетворению этих потребностей и является целевым назначением или целью системы. Степень соответствия системы поставленным перед ней целям называют эффективностью. Эффективность это понятие, связанное с качеством выполнения объектом своих функций. Сложность и разнообразие функций, выполняемых современными системами, требует учета количества целей, каждая из которых описывается своим критерием. Поэтому многокритериальность есть естественное свойство такой системы и вопросы повышения эффективности системы не могут быть разрешены кардинальным образом без решения проблемы многокритериальности.
Так как оценка системы по набору показателей очень сложна, нужно произвести свертку вектора показателей в некоторую функцию так, что число η может служить оценкой эффективности системы. При этом называют частным показателем, а функцию u в этом случае называют интегральным показателем эффективности. Наиболее распространенной формой интегрального критерия является мультиаддитивная форма, и такие ее частные случаи, как аддитивный и мультипликативный критерий, причем аддитивный критерий используется чаще, и его использование предпочтительнее, но только в том случае, если интегральный критерий не содержит частных критериев, имеющих мультипликативное, а не аддитивное влияние на результат в целом.
Поскольку использование таких частных критериев не предусматривается, целесообразным будет оценить варианты с помощью аддитивного интегрального критерия эффективности
, (.)
где
- весовые коэффициенты, учитывающие важность частного критерия, они также определяют степень влияния i частного критерия на эффективность системы в целом;
- частный критерий.
В качестве частных критериев выберем следующие показатели:
Показатели оцениваются при помощи бальной шкалы.
Показатели оцениваются при помощи балльной шкалы. Для них установлены пределы 1-2 баллов. Данный список был предложен пяти экспертам с предложением ранжировать их по принципу “чем больше, тем лучше”. Результаты сведены в таблицу 2.9.
Таблица 2.9
Показатели |
Эксперты |
Среднее значение |
Средне-квадратич.отклонение |
Предвари-тельный ранг |
||||
1 |
2 |
3 |
4 |
5 |
||||
Удобство программного обеспечения |
1 |
1 |
1 |
2 |
1 |
1,2 |
0,2 |
1 |
Надежность программного обеспечения |
1 |
2 |
1 |
1 |
2 |
1,4 |
0,3 |
2 |
Произведем повторное вычисление с учетом компетентности экспертов. Полученные результаты занесены в таблицу 2.10.
Таблица 2.10
Показатели |
Среднее значение |
Средне-квадратич.отклонение |
Предвари-тельный ранг |
Коэфф. значимости |
Удобство программного обеспечения |
1,15 |
0,13 |
1 |
0,67 |
Надежность программного обеспечения |
1,40 |
0,24 |
2 |
0,33 |
Произведем нормирование характеристик путем отнесения показателя к его интервалу изменений. Нормирование по диапазону изменений частных показателей, удовлетворяющих принципу “чем больше, тем лучше”, производится по формуле:
(.) |
Состав показателей (оцениваются с помощью бальной шкалы) и их значения приведены в таблицу 2.11.
Таблица 2.11.
Показатели |
Минимальное |
Максимальное |
Требуемое значение |
Нормиро-ванное значение |
Удобство программного обеспечения |
0 |
6 |
5 |
0,83 |
Надежность программного обеспечения |
0 |
5 |
5 |
1 |
Таким образом, требуемое значение аддитивного интегрального показателя эффективности вычисляется по формуле:
(.) |
и имеет значение: = 0,67 * 0,83 + 0,33 * 1= 0,88
Выбрав в качестве методики модульное проектирование, произведем оценку исходных данных на основании спецификации [6].
n1* - минимальное число операторов, которое может иметь работоспособная программа
n1* = 2 ед.
n2* - минимальное количество операторов, которое может быть в программе в идеале
n2* = 150 ед.
n1 - число различных операторов, которое предположительно по спецификации может иметь место в программе
n1 = 200 ед.
n2 - фактически предполагаемое число простых или отдельных операндов в системе, вычисляется по формуле:
, (.)
Подставляя числовые значения, получим: n2 = 1367 ед.
- словарь
n = 1567 ед.
Длина реализации программы N рассчитывается по формуле:
, (.)
N = 1529+ 14241 = 15769 бит.
n ≤ N ≤ n1n1 x n2n2, (.)
1567 ≤ 15769 ≤ 200200 x 13671367
Максимально возможный объем программы Vmax вычисляется по следующей формуле:
, (.)
Vmax = 167375 бит
Минимально возможный объем программы Vmin вычисляется по формуле:
, (.)
Vmin = 1102 бит
Средняя характеристика объема программы рассчитывается следующим образом:
, (.)
причем действует соотношение
= 7861 бит
167375 ≥ 7861 ≥ 1102
Уровень программы определяет отношение числа строк (или символов) в машинных кодах к той записи, которая получена на языке высокого уровня:
= 0.0066
Уровень программы тем ниже, чем больше в ней простых операторов. Окончательную оценку уровня программы можно получить следующим образом:
где
= 0,01
= 0,096 (N2 = n2 log2 n2) , следовательно,
= 0,00096
Произведем квантификацию интеллектуального (информационного) содержания программного обеспечения. Определяется следующим образом:
I = 161 ед.
= 25428646 ед.
,
где k = 5..25 количество различений в секунду, которое может реализовать человек k = 15.
При подстановке числовых значений в формулу получим:
= 613868,2 с = 471 ч.
Уровень языка определим как .
= 7,3 ед.
По полученному значению можно определить, что используемый язык является языком достаточно высокого уровня.
Экспериментально установлено, что уровень появления ошибок соответствует величине кр = 3000, т.е. на 3000 мыслительных операций приходится 1 ошибка. Тогда количество ошибок в программе можно вычислить следующим образом:
= 849 ошибок
Определим необходимое число модулей в программе для минимизации числа ошибок:
= 19 модулей.
Подведем итог раздела «Системное проектирование», в котором были рассмотрены и выбраны следующие требования к разрабатываемому программному обеспечению:
Конкретные требования для этих показателей изложены в п. 2.2.3.
АРМ оператора котельной включает в себя:
Рассмотрев предметную область разрабатываемого ПО «Nordvision», составим структуру системы, которая будет представлена на рисунке 3.1.
Рис. 3.1. Структура движения информации АРМ «NordVision».
Описание предметной области, выполненное с использованием естественного языка, математических формул, таблиц, графиков и диаграмм, называют инфологической моделью данных.
Используя описание и анализ предметной области, можно разработать инфологическую модель предметной области по учету обращений граждан в муниципальное образование с целью более подробного изучения всех происходящих процессов и выделения основных объектов и атрибутов для дальнейшего проектирования.
Выделим следующие объектные группы:
Act_values содержит текущие значения параметров котлоагрегата.
Arc_values содержит архивные значения параметров котлоагрегата.
Arc_alarms содержит архив аварийных ситуаций.
Mb_desc описание переменных типа boolean;
Mi_desc описание переменных типа integer;
Alarms_desc описание аварий;
Инфологическая модель разрабатываемого приложения приведена на рисунке 3.2.
Рис. 3.2. Инфологическая модель ПО «Статист».
Для выполнения требований предъявленных в п. 2.2.3, разработаем структуру программного обеспечения.
Разработка структуры информационного обеспечения (ИО) является одним из наиболее ответственных этапов разработки программного обеспечения, состоящая в разработке такой структуры ИО, которая была бы наиболее адекватна поставленным задачам. Удачный выбор такой структуры является залогом быстрого и успешного программирования и включает в себя разработку эффективной структуры хранения данных и программы.
Под эффективной структурой подразумевается уменьшение времени доступа к данным и объемных характеристик базы данных.
Следующим этапом проектирования базы данных является логическое проектирование базы данных.
Логическая модель строится на основании инфологической модели и выполняется на языке описания данных конкретной СУБД. Описывается структура каждой таблицы. Каждому полю таблицы назначается имя, тип и размер. Ниже приведено описание структуры таблиц: act_values (таблица 2.1), arc_values (таблица 2.2), arc_alarms (таблица 2.3) , mb_desc (таблица 2.4), mi_desc(таблица 2.5),alarms_desc(таблица 2.6).
Act_values Таблица 2.1
Имя |
Тип данных |
Не NULL? |
Первичный ключ? |
По умолчанию |
Комментарий |
id |
Integer |
Да |
Да |
nextval('"DOGOV_ID_seq"'::regclass) |
|
Values_mi |
Integer[] |
Да |
Нет |
Массив текущих целочисленных значений |
|
Values_mb |
Boolean[] |
Да |
Нет |
Массив текущих состояний |
|
Komm |
Boolean[] |
Нет |
Нет |
Массив аварий |
Arc_values Таблица 2.2
Имя |
Тип данных |
Не NULL? |
Первичный ключ? |
По умолчанию |
Комментарий |
Id |
integer |
Да |
Да |
nextval('"OBJS_ID_seq"'::regclass) |
|
name |
character(9) |
Нет |
Нет |
Код переменной |
|
value |
integer |
Да |
Нет |
Значение |
|
dt |
Timestamp |
Нет |
Нет |
Дата и время |
Arc_alarms Таблица 2.3
Имя |
Тип данных |
Не NULL? |
Первичный ключ? |
По умолчанию |
Комментарий |
Id |
integer |
Да |
Да |
nextval('"OBJS_ID_seq"'::regclass) |
|
name |
character(9) |
Нет |
Нет |
Код переменной |
|
value |
integer |
Да |
Нет |
Значение |
|
dt |
Timestamp |
Нет |
Нет |
Дата и время |
|
n |
integer |
Нет |
Нет |
Mb_desc Таблица 2.4
Имя |
Тип данных |
Не NULL? |
Первичный ключ? |
По умолчанию |
Комментарий |
id |
integer |
Да |
Да |
nextval('"sotr_ID_seq"'::regclass) |
|
n |
integer |
Нет |
Нет |
||
desc |
character(100) |
Нет |
Нет |
описание |
|
name |
character(2) |
Нет |
Нет |
Otch_p Таблица 2.5
Имя |
Тип данных |
Не NULL? |
Первичный ключ? |
По умолчанию |
Комментарий |
id |
integer |
Да |
Да |
nextval('"sotr_ID_seq"'::regclass) |
|
n |
integer |
Нет |
Нет |
||
desc |
character(100) |
Нет |
Нет |
описание |
|
name |
character(2) |
Нет |
Нет |
||
offset |
integer |
Да |
Да |
смещение |
alarms_desc Таблица 2.4
Имя |
Тип данных |
Не NULL? |
Первичный ключ? |
По умолчанию |
Комментарий |
id |
integer |
Да |
Да |
nextval('"sotr_ID_seq"'::regclass) |
|
n |
integer |
Нет |
Нет |
||
desc |
character(100) |
Нет |
Нет |
описание |
|
name |
character(2) |
Нет |
Нет |
Согласно техническому заданию, программное обеспечение «Статист» должно разрабатываться в интегрированной среде разработки Visual studio 2010, написана на языке c# и использовать СУБД postgree.
Проектирование программного обеспечения является одним из самых сложных видов интеллектуальной деятельности человека и до сих пор остается во многом искусством, а не наукой.
При проектировании программных продуктов нельзя точно разделить этапы постановки задачи и собственно проектирования, так как в процессе выработки полной и точной формулировки задачи (на этапе разработки технического задания) проводится определенная работа по проектированию ПО.
Но, несмотря на это, можно выделить три основных этапа собственно разработки программного обеспечения:
Прежде чем разработать структуру программного обеспечения необходимо выбрать метод проектирования. Существует несколько методов проектирования программного обеспечения. Основные из них:
Метод «сверху вниз» подразумевает под собой проектирование основной программы и набора подпрограмм, реализующих решение подзадач, т.е. этапов решения основной задачи. В результате чего получается структура, состоящая из набора определенным образом связанных программных модулей.
Объектно-ориентированный подход к проектированию ПО построен на объектах и операциях над ними, где объект содержит определенные свойства и выполняемые функции. Под объектом понимается группа подпрограмм с определенным входным и выходным набором данных.
Язык программирования C# поддерживает объектно-ориентированный подход, поэтому воспользуемся одноименным методом.
ПО «NordVision» состоит из двух независимых программ серверной и клиентской. Серверная часть осуществляет сбор информации с исполнительных устройств и управление ими, сохраниение в БД текущих и архивных значений. Клиентская часть считывает данные из БД и выводит на экран пользователя данные в графическом формате.
Для выполнения требования удобства ПО, предъявленного в п. 2.2.4.1, необходимо разработать простой и интуитивный пользовательский интерфейс. Экранный интерфейс программы во многом определяет удобство работы пользователя и является одним из важных факторов, влияющих на эффективность его труда. Программа, выполняющая все возложенные на нее функции, обладающая высоким быстродействием может быть полностью непригодной для работы из-за неприемлемого интерфейса с пользователем.
Важнейшей частью эстетического оформления является правильный выбор цветовой палитры, не раздражающей пользователя, а наоборот вызывающей у него положительную реакцию. При это следует учитывать следующие рекомендации по оформлению экрана:
Для удобства работы пользователя разработаем экранные формы.
Данные были разбиты на следующие группа (экранные формы):
Экранные формы приведены в приложении № 1.
Важнейшим шагом для получения эффективной и правильной программы является составление алгоритма, т.е. четко определенной и понятной исполнителю последовательности шагов, приводящих в итоге к решению поставленной задачи. При разработке алгоритма воспользуемся оговоренным выше методом проектирования «сверху вниз», который предусматривает определение задачи в общих чертах, после чего данная задача разбивается на ряд подзадач. Последовательное разбиение задачи на все более мелкие и более простые производится до тех пор, пока элементарная задача не станет реализуемой непосредственно операторами языка программирования.
Исходя из рассмотрения структуры ПО «Nordvision», разработаем основные алгоритмы работы программы (некоторые их них представлены ниже). Главный цикл программы представлен на рисунке 3.6
Рис. 3.6. Блок-схема программы.
Рис. 3.7. Блок-схема модуля «Журнал событий».
Рис. 3.8. Блок-схема модуля «графики».
Рис. 3.9. Блок-схема модуля «Сервер связи с исполнительными устройствами».
В данном разделе дипломного проектирования, посвященного структурному проектированию, были выполнены следующие задачи:
После того, как была сформирована структура разрабатываемой системы, можно приступить к этапу кодирования. Данный этап обычно является наиболее, простым, а его реализация существенно облегчается при использовании алгоритмических языков высокого уровня и методов структурного проектирования.
Для выполнения требования простоты освоения и использования, предъявленного в пункте 2.1.4.2.1, в проектируемом ПО должна быть организована контекстно-зависимая помощь. Пример выполнения данного требования показан на рисунке 4.1.
Рис. 4.1. Пример контекстно-зависимой помощи.
ПО «NordVision» предназначено для автоматизации работы диспетчера котельной.
ПО «NordVision» позволяет повысить эффективность работы диспетчеров за счет своевременной и полной выводимой информации о состоянии котлоагрегата.
Программное обеспечение «NordVision» разработано для персональных компьютеров типа IBM PC и совместимых с ними. Для работы программы необходимо:
персональный компьютер типа IBM PC или совместимый с ним на базе процессора Технические требования, предъявляемые к программному продукту, следующие:
При запуске ПО «NordVision» на экран выводится актуальная информация о состоянии котельной в псевдотрехмерном режиме(основной экран) по нажатию кнопки «2D» информация выводится в двухмерном режиме.
При нажатии кнопки «журнал событий» выводится экранная форма журнала событий:
В данной форме присутствуют списки выбора диапазона дат за которые выводятся события, а также кнопка «Выгрузить в EXCEL» по нажатию которой создается файл формата xls.
При нажатии левой кнопкой мыши по любому из параметров вызывается окно архивных графиков:
Данное окно позволяет просматривать архивные значения в виде графиков.
При нажатии на кнопку «Управление» на экран выводится форма «управление»
Здесь осуществляется удаленное управление котлоагрегатом (пуск, останов. Задание мощности котлоагрегата, задание температуры на выходе котельной)
При выборе вкладки «Управление задвижками»
Осуществляется управление задвижками входной и выходной воды, а также газовой задвижкой
Успешное завершение процесса компиляции не означает, что в программе нет ошибок. Убедиться, что программа работает правильно можно только в процессе проверки ее работоспособности, который называется тестирование.
Обычно программа редко сразу начинает работать так, как надо, или работает правильно только на некотором ограниченном наборе исходных данных. Это свидетельствует о том, что в программе есть алгоритмические ошибки. Процесс поиска и устранения ошибок называется отладкой.
При тестировании программного обеспечения «NordVision» в соответствии с предъявленными требованиями технического задания, а также для обеспечения выполнения поставленных требований к программному продукту, были проведены следующие мероприятия по оценки работоспособности и устойчивости системы:
Во всех режимах система работает стабильно и корректно, без каких либо замечаний. Пользовательский интерфейс не вызывает нареканий со стороны заказчика. Наличие контекстно-зависимой помощи, способствует быстрому освоению пользователем данной программы и наименьшей его утомляемости в процессе работы.
Тестирование программного продукта проводилось в отделе АСУиТП ООО «Норд Крафт» в течение трех недель, и все обнаруженные, в течение периода тестирования, недостатки и ошибки были устранены. Несмотря на возможное содержание в программе необнаруженных ошибок, программный продукт в целом соответствует предъявляемым требованиям, и может быть принят в эксплуатацию.
Характеристики этого требования, согласно п. 2.2.10.1. предусматривают:
Характеристика № 1.
Пользовательский интерфейс не вызывает нареканий со стороны заказчика.
Характеристика № 2.
Для выполнения этого требования в программе присутствует контекстно-зависимая помощь, которая способствует быстрому освоению пользователем данной программы и наименьшей его утомляемости в процессе работы.
Характеристика № 3.
На экране пользователю предоставлены только те сведения и данные, которые необходимы пользователю в определенный момент работы.
Учитывая вышесказанное, можно сказать, что показатель «Удобство ПО» согласно бальной шкале, приведенной в таблице 2.11, получает 5,5 баллов.
Характеристики этого требования, согласно п. 2.2.10.2. предусматривают:
Характеристика № 1.
На том уровне, на котором было проведено тестирование программного обеспечения «NordVision», в нем отсутствуют ошибки проектирования и программирования.
Характеристика № 2.
Для выполнения этого требования в программе предусмотрены предупредительные сообщения.
Учитывая вышесказанное, можно сказать, что показатель «Надежность ПО» согласно бальной шкале, приведенной в таблице 2.11, получает 5 баллов.
Все характеристики требований программного обеспечения выполнены (см. п. 4.3.2.1 и п. 4.3.4.2), значит требования функциональной полноты, реализованы.
Теперь, когда были разработаны главное меню, основные алгоритмы, пользовательский интерфейс, проведено тестирование ПО, можно провести его окончательную оценку.
Сведем оценки реализованных требований показателей в таблицу 4.1, рассчитав нормированное значение по формуле 2.11 и весовые коэффициенты соответствующих характеристик.
Таблица 4.1.
Показатели |
Оценки |
Нормированное значение |
Весовые коэффициенты |
Удобство программного обеспечения |
5,5 |
0,89 |
0,67 |
Надежность программного обеспечения |
5 |
1 |
0,33 |
Таким образом, требуемое значение аддитивного интегрального показателя эффективности вычисляется по формуле:
(.)
и имеет значение: = 0,83 * 0,67 + 0,33 * 1= 0,92
Рассчитанная оценка программного обеспечения разработанной программы позволяет сделать вывод о жизнеспособности разработки.
В данном разделе дипломного проектирования выполнены следующие задачи:
С широкомасштабным внедрением во все сферы человеческой деятельности вычислительной техники вообще и персональных компьютеров в частности постоянно возрастает количество пользователей этой техники, а также круг задач, решаемых с ее помощью. Автоматизация рабочего места оператора котельной необходима для контроля за состоянием котлоагрегата. В любом случае вложения в компьютеризацию при правильном подходе к делу окупают себя многократно.
Развитие использования вычислительной техники для выполнения выше указанных задач в основном подчиняется общим законам развития и распространения вычислительной техники в стране. Повсеместное же распространение персональных компьютеров делает эту задачу более легко решаемой. .
В процессе деятельности диспетчера котельной решаются задачи, связанные с контролем за состоянием оборудования и своевременному принятию контраварийных мер.
В данном разделе будет построена сетевая модель выполнения всего комплекса работ, ее расчет и оптимизация. Методы сетевого планирования и управления имеют следующие преимущества [15]: сокращение сроков работ, их четкая увязка во времени, выявление решающих работ (что позволяет сосредоточить внимание на них), обеспечение тесной организационной связи всего коллектива и подчинения его одному центральному органу.
Исходные данные для расчета и числовые характеристики, определение длительности работ приведены в таблице 5.1.
Таблица 5.1.
№ п/п. |
Наименование работы |
Конец работы |
Длительность работы |
|||
начальное событие i |
конечное событие j |
Наименьшая tijmin |
Наибольшая tijmax |
Наиболее вероятное tijож |
||
|
Согласование темы дипломного проекта с руководителем |
1 |
2 |
1 |
3 |
2 |
|
Оформление задания на дипломный проект |
2 |
3 |
1 |
2 |
1 |
|
Утверждение темы у заведующего кафедрой |
3 |
4 |
1 |
2 |
1 |
|
Подбор научно-технической литературы |
4 |
5 |
3 |
10 |
6 |
|
Анализ предметной области |
5 |
6 |
6 |
25 |
14 |
|
Изучение научно-технической литературы |
4 |
11 |
14 |
40 |
24 |
|
Разработка мероприятий по разделу «Безопасность жизнедеятельности» |
11 |
12 |
3 |
7 |
5 |
|
Разработка мероприятий по организационно-экономической части дипломного проекта |
6 |
7 |
2 |
4 |
3 |
|
Системное проектирование |
6 |
8 |
1 |
3 |
2 |
|
Системный анализ |
7 |
13 |
2 |
5 |
3 |
|
Разработка технического задания |
13 |
14 |
4 |
8 |
6 |
|
Консультация по структурному проектированию |
14 |
15 |
6 |
15 |
10 |
|
Разработка структурных схем |
15 |
16 |
3 |
7 |
5 |
|
Разработка алгоритмов |
16 |
17 |
6 |
8 |
7 |
|
Оптимизация алгоритмов |
17 |
18 |
1 |
3 |
2 |
|
Нормализация данных |
18 |
19 |
25 |
35 |
29 |
|
Выбор языка программирования |
19 |
20 |
3 |
7 |
5 |
|
Написание программы |
19 |
21 |
2 |
4 |
3 |
|
Тестирование программы |
19 |
22 |
4 |
12 |
7 |
|
Отладка программы |
22 |
23 |
6 |
9 |
7 |
|
Разработка программной документации |
5 |
9 |
4 |
8 |
6 |
|
Корректировка программы и программной документации по результатам испытаний |
5 |
10 |
6 |
10 |
8 |
|
Оформление расчетно-пояснительной записки |
23 |
24 |
8 |
12 |
10 |
Продолжение табл. 5.1.
|
Оформление графического материала (плакатов) |
23 |
25 |
3 |
5 |
4 |
|
Обсуждение с руководителем расчетно-пояснительной записки и графического материала |
25 |
26 |
3 |
5 |
4 |
|
Исправление и добавление расчетно-пояснительной записки и графического материала |
26 |
27 |
6 |
10 |
8 |
|
Сдача дипломного проекта на рецензию и получение его |
27 |
28 |
4 |
6 |
5 |
|
Предварительное обсуждение дипломного проекта на кафедре |
28 |
29 |
1 |
2 |
1 |
|
Защита дипломного проекта |
29 |
30 |
1 |
1 |
1 |
Примечание: наиболее вероятное время выполнения работы рассчитано и округлено по формуле
, (.)
Исходный сетевой график (макет) с указанием ожидаемой длительности работ на рисунке 5.1.
Рис. 5.1. Исходный сетевой график (макет) с указанием ожидаемой длительности работ.
В соответствии со временем, отведенным на дипломное проектирование, директивный срок, за который должно быть выполнено проектирование зададим как L = 140 дней.
Нормирование длительности работ.
В исходных данных для каждой работы назначены три временные оценки с размерностью «рабочий день» в виде натуральных чисел:
наименьшая длительность работы , при которой вероятность выполнения работы за время, меньшее наименьшей длительности работы очень мала;
наибольшая длительность работы , при которой вероятность выполнения работы за время, равное наибольшей длительности работы близка к единице;
наиболее вероятная длительность работы , при которой вероятность выполнения работы лежит в пределах (0,35 0,65). Она рассчитана по формуле:
, (.)
Основные временные параметры сети:
Продолжительность работы ;
Ранний возможный срок наступления события ;
Поздний допустимый срок наступления события ;
Ранний возможный срок начала работы ;
Поздний допустимый срок начала работы ;
Ранний возможный срок окончания работы ;
Поздний допустимый срок окончания работы ;
Резерв времени события ;
Полный резерв времени работы ;
Длина пути ;
Критический путь;
Длина критического пути ;
Вероятность выполнения работы к директивному сроку .
В сетевом графике индекс i обозначает номер начального события работы, а индекс j номер ее конечного события.
Поздний допустимый срок наступления события.
Поздний допустимый срок наступления события , где , определяется как разность между длиной критического пути и максимального по продолжительности пути, следующего из этого события в конечное событие n:
, (.)
следует отметить, что для событий, лежащих на критическом пути:
.
Наиболее позднее время наступления события имеет смысл вычислять лишь при соблюдении следующих условий:
Оно фиксирует верхнюю календарную границу свершения события, совместимую с длиной критического пути. Вычисления позднего допустимого срока наступления события принципиально аналогично вычислению возможного раннего срока наступления события. Добавляется лишь вычитание всех ответов из длины критического пути.
Расчет сроков начала и окончания работ.
Ранний возможный срок начала работы определяется ранним возможным сроком наступления предшествующего этой работе события:
Ранний возможный срок окончания работы определяется суммой раннего возможного срока наступления предшествующего этой работе события и продолжительностью этой работы:
, (.)
Поздний допустимый срок начала работы определяется как разность между поздним допустимым сроком наступления завершающего эту работу события и продолжительностью этой работы:
, (.)
Поздний допустимы срок окончания работы определяется поздним допустимым сроком наступления завершающего ее события:
Необходимо учитывать, что для всех работ, лежащих на критическом пути,
, , так как для всех событий .
Расчет резервов времени.
Резерв времени события определяется как разность между поздним и ранним сроками наступления события и показывает, на какое предельно допустимое время можно задержать наступление этого события, не увеличивая общего срока окончания всех работ
, (.)
Следует отметить, что события критического пути не имеют резервов, так как
, (.)
Полный резерв времени работы определяется как разность между поздними и ранними сроками начала или окончания работы:
, (.)
он показывает, на какое максимально допустимое время можно увеличивать продолжительность работы без изменения длины критического пути, .
Состав критического пути.
По схеме сетевой модели со сроками длительности работ (рис. 5.1) находим длины различных путей, исключая заведомо короткие:
L11=1,2,3,4,11,12,13=2+1+1+24+5=33
L12=1,2,3,4,5,6,7,13=2+1+1+6+14+3+3=30
L13=1,2,3,4,5,6,8,13=2+1+1+6+14+2=26
L14=13,14,15,16,17,18,19=10+7+5+7+2+29=61
L15=19,20,22,23=4+7=11
L16=19,22,23=7+7=14
L17=19,21,22,23=3+7=10
L18=23,25,26=4+4=8
L19=22,24,25,26=10+4=12
L20=26,27,28,29,30=8+5+1+1=15
Lкр.= L11 + L14 + L16 + L19 + L20 =33+61+14+12+15=135
Вершины, принадлежащие критическому пути, устанавливаются из условий . Рассчитанные временные параметры событий и работ сведены в таблицы 5.2 и 5.4 соответственно. Сетевой график с учетом этих параметров, а также с указанием количества исполнителей для каждой работы и критический путь приведен на рис. 5.2. Критический путь выделен толстой линией.
Основные временные параметры сетевой модели (по кодам событий)
Таблица 5.2
Номер события I |
Ранний возможный срок наступления события tp(i) |
Поздний допустимый срок наступления события tП(i) |
Резерв времени события R(i) |
1 |
0 |
0 |
0 |
2 |
2 |
2 |
0 |
3 |
3 |
3 |
0 |
4 |
4 |
7 |
3 |
5 |
4 |
4 |
0 |
6 |
10 |
13 |
3 |
7 |
10 |
101 |
91 |
8 |
10 |
99 |
89 |
9 |
24 |
27 |
3 |
10 |
24 |
31 |
7 |
11 |
27 |
30 |
3 |
12 |
28 |
28 |
0 |
13 |
33 |
33 |
0 |
14 |
43 |
43 |
0 |
15 |
50 |
50 |
0 |
16 |
55 |
55 |
0 |
17 |
62 |
62 |
0 |
18 |
64 |
64 |
0 |
19 |
93 |
95 |
2 |
20 |
93 |
97 |
4 |
21 |
93 |
93 |
0 |
22 |
100 |
100 |
0 |
23 |
107 |
107 |
0 |
24 |
107 |
113 |
6 |
25 |
117 |
117 |
0 |
26 |
121 |
121 |
0 |
27 |
129 |
129 |
0 |
28 |
134 |
134 |
0 |
29 |
135 |
135 |
0 |
Основные временные параметры сетевой модели (по кодам работ).
Таблица 5.3
№ п/п |
Наименование работы |
Код работы |
Продолжи-тельность работы |
Ранний возможный срок начала работы |
Ранний возможный срок окончания работы |
Поздний допусти-мый срок начала работы |
Поздний допусти-мый срок окончания работы |
Полный резерв времени работы |
1 |
Согласование темы дипломного проекта с руководителем |
1-2 |
2 |
0 |
2 |
0 |
2 |
0 |
2 |
Оформление задания на дипломный проект |
2-3 |
1 |
2 |
3 |
2 |
3 |
0 |
3 |
Утверждение темы у заведующего кафедрой |
3-4 |
1 |
3 |
4 |
3 |
4 |
0 |
4 |
Подбор научно-технической литературы |
4-5 |
6 |
4 |
10 |
7 |
13 |
3 |
5 |
Анализ предметной области |
4-11 |
24 |
4 |
28 |
4 |
28 |
0 |
6 |
Изучение научно-технической литературы |
5-6 |
14 |
10 |
24 |
13 |
27 |
3 |
7 |
Разработка мероприятий по разделу «Безопасность жизнедеятельности» |
5-9 |
6 |
10 |
16 |
101 |
107 |
91 |
8 |
Разработка мероприятий по организационно-экономической части дипломного проекта |
5-10 |
8 |
10 |
18 |
99 |
107 |
89 |
9 |
Системное проектирование |
6-7 |
3 |
24 |
27 |
27 |
30 |
3 |
10 |
Системный анализ |
6-8 |
2 |
24 |
26 |
31 |
33 |
7 |
11 |
Разработка технического задания |
7-13 |
3 |
27 |
30 |
30 |
33 |
3 |
12 |
Консультация по структурному проектированию |
11-12 |
5 |
28 |
33 |
28 |
33 |
0 |
13 |
Разработка структурных схем |
13-14 |
10 |
33 |
43 |
33 |
43 |
0 |
Продолжение табл. 5.3
14 |
Разработка алгоритмов |
14-15 |
7 |
43 |
50 |
43 |
50 |
0 |
15 |
Оптимизация алгоритмов |
15-16 |
5 |
50 |
55 |
50 |
55 |
0 |
16 |
Нормализация данных |
16-17 |
7 |
55 |
62 |
55 |
62 |
0 |
17 |
Выбор языка программирования |
17-18 |
2 |
62 |
64 |
62 |
64 |
0 |
18 |
Написание программы |
18-19 |
29 |
64 |
93 |
64 |
93 |
0 |
19 |
Тестирование программы |
19-20 |
5 |
93 |
98 |
95 |
100 |
2 |
20 |
Отладка программы |
19-21 |
3 |
93 |
96 |
97 |
100 |
4 |
21 |
Разработка программной документации |
19-22 |
7 |
93 |
100 |
93 |
100 |
0 |
22 |
Корректировка программы и программной документации по результатам испытаний |
22-23 |
7 |
100 |
107 |
100 |
107 |
0 |
23 |
Оформление расчетно-пояснительной записки |
23-24 |
10 |
107 |
117 |
107 |
117 |
0 |
24 |
Оформление графического материала (плакатов) |
23-25 |
4 |
107 |
111 |
113 |
117 |
6 |
25 |
Обсуждение с руководителем расчетно-пояснительной записки и графического материала |
25-26 |
4 |
117 |
121 |
117 |
121 |
0 |
Продолжение табл. 5.3
26 |
Исправление и добавление расчетно-пояснительной записки и графического материала |
26-27 |
8 |
121 |
129 |
121 |
129 |
0 |
27 |
Сдача дипломного проекта на рецензию и получение его |
27-28 |
5 |
129 |
134 |
129 |
134 |
0 |
28 |
Предварительное обсуждение дипломного проекта на кафедре |
28-29 |
1 |
134 |
135 |
134 |
135 |
0 |
29 |
Защита дипломного проекта |
29-30 |
1 |
135 |
136 |
135 |
136 |
0 |
Условные обозначения на рисунке 5.2.
Рис. 5.2.
Если первоначальный вариант сетевого графика не обеспечит соблюдение директивного срока, следует изменить планируемые параметры сетевой модели, т.е. оптимизировать его.
Вычислим коэффициенты напряженности работ. Эти коэффициенты показывают, насколько свободно можно располагать имеющимися резервами времени. Формула для их вычисления имеет вид:
, причем , (.)
где - совпадающая с длиной критического пути величина отрезка пути, проходящего через данную работу.
Кроме того, рассчитаем вероятность свершения конечного события в заданный срок Pk, причем 0,35<Pk<0,65. Если Pk < 0,35, то опасность нарушения срока настолько велика, что необходимо повторное планирование с перераспределением ресурсов. При Pk > 0,65 работы критического пути имеют избыточные ресурсы, что вызывает необходимость повторного расчета сетевого графика.
Дисперсии (мера разброса ожидаемого времени выполнения) работ, лежащих на критическом пути, находится по формуле:
, (.)
Коэффициенты напряженности и дисперсии работ, приведены в таблице 5.4.
Таблица 5.4.
Код работы |
Наименование работы |
Коэффициент напряженности |
|
1-2 |
Согласование темы дипломного проекта с руководителем |
1 |
0,16 |
2-3 |
Оформление задания на дипломный проект |
1 |
0,04 |
3-4 |
Утверждение темы у заведующего кафедрой |
1 |
0,04 |
4-5 |
Подбор научно-технической литературы |
0,9 |
1,96 |
4-11 |
Изучение научно-технической литературы |
1 |
14,44 |
5-6 |
Анализ предметной области |
0,9 |
27,04 |
5-9 |
Консультация по структурному проектированию |
0,11 |
0,64 |
5-10 |
Системное проектирование |
0,13 |
0,16 |
6-7 |
Системный анализ |
0,9 |
0,16 |
6-8 |
Разработка технического задания |
0,76 |
0,36 |
7-13 |
Разработка структурных схем |
0,9 |
0,64 |
11-12 |
Разработка алгоритмов |
1 |
3,24 |
13-14 |
Оптимизация алгоритмов |
1 |
0,64 |
14-15 |
Нормализация данных |
1 |
0,16 |
15-16 |
Выбор языка программирования |
1 |
0,16 |
16-17 |
Написание программы |
1 |
4 |
17-18 |
Тестирование программы |
1 |
0,64 |
18-19 |
Отладка программы |
1 |
0,16 |
19-20 |
Разработка программной документации |
0,71 |
2,56 |
19-21 |
Корректировка программы и программной документации по результатам испытаний |
0,43 |
0,36 |
19-22 |
Разработка мероприятий по разделу «Безопасность жизнедеятельности» |
1 |
0,64 |
22-23 |
Разработка мероприятий по организационно-экономической части дипломного проекта |
1 |
0,64 |
Продолжение табл. 5.4.
23-24 |
Оформление расчетно-пояснительной записки |
1 |
0,64 |
23-25 |
Оформление графического материала (плакатов) |
0,4 |
0,16 |
25-26 |
Обсуждение с руководителем расчетно-пояснительной записки и графического материала |
1 |
0,16 |
26-27 |
Исправление и добавление расчетно-пояснительной записки и графического материала |
1 |
0,64 |
27-28 |
Сдача дипломного проекта на рецензию и получение его |
1 |
0,16 |
28-29 |
Предварительное обсуждение дипломного проекта на кафедре |
1 |
0,04 |
29-30 |
Защита дипломного проекта |
1 |
0 |
Введем нормировочную переменную с математическим ожиданием, равным нулю, и дисперсией, равной единице.
, (.)
где Z - аргумент функции нормального распределения,
t(Lдир) - директивный срок выполнения проекта (140 дней),
t(Lкр)- протяженность критического пути (136 дней).
Подставив в формулу численные значения переменных, и произведя вычисления, получаем:
Z = (140 136) / 8,79 = 0,45 График нормального распределения вероятностей выглядит следующим образом:
Рис. 5.3. График нормального распределения вероятностей.
По графику функции нормального распределения (см. рис. 5.3.) находим вероятность свершения конечного события в заданный срок: Pk≈0,64. Полученное значение Pk удовлетворяет неравенству 0,35<Pk<0,65, т.к. он попадает в заданный промежуток, и, следовательно, оптимизация по временным параметрам не нужна и повторное планирование или повторный расчет сетевого графика производить также нет необходимости.
Затраты на проведение работы включают в себя:
Затраты на основную заработную плату исполнителей работы определяются умножением размера месячной зарплаты на число месяцев, отводимых на выполнение данной работы, или на количество фактически затраченного ими времени. Расчет количества исполнителей и фонда заработной платы приведен в таблице 5.5.
Также необходимо рассчитать отчисления:
в пенсионный фонд РФ 22 %
в Федеральный фонд обязательного медицинского страхования 5,1 %
в фонд социального страхования 3,1 %
от суммы основной и дополнительной заработной платы. Расчет затрат на социальные отчисления приведен в таблице 5.6.
Расчет количества исполнителей и фонда заработной платы
Таблица 5.5.
Наименование должности |
Число рабочих дней |
Месячный оклад |
Сумма з/пл факт дней |
Число штатных единиц |
Сумма з/пл с учётом штата |
Итого начислено |
Руководитель |
4 |
40 000,00 |
5161,29 |
1 |
5161,29 |
5161,29 |
Консультант |
7 |
30 000,00 |
6774,19 |
1 |
6774,19 |
6774,19 |
Исполнитель |
136 |
35 000,00 |
153548,39 |
1 |
153548,39 |
153548,39 |
|
|
|
|
3 |
165483,87 |
165483,87 |
Расчет затрат на социальные отчисления
Таблица 5.6.
Наименование должности |
НДФЛ (13%) |
К выдаче |
Отчисление в ПФ РФ |
Отчисление в ФФОМС |
Отчисление в ФСС |
Итого отчислено |
Фонд заработной платы |
Руководитель |
670,97 |
4490,32 |
987,87 |
229,01 |
139,20 |
1356,08 |
5846,40 |
Консультант |
880,65 |
5893,55 |
1296,58 |
300,57 |
182,70 |
1779,85 |
7673,40 |
Исполнитель |
19961,29 |
133587,10 |
29389,16 |
6812,94 |
4141,20 |
40343,30 |
173930,40 |
|
21512,90 |
143970,97 |
31673,61 |
7342,52 |
4463,10 |
43479,23 |
187450,20 |
Затраты на освещение, отопление, водоснабжение и другие нужды рассчитаем на основании расходования электроэнергии, тепловой энергии, воды и стоимости их единиц.
Расход тепловой энергии на отопление определяется по норме расхода тепла (0,00002 Гкал/год на 1 м3 отапливаемого помещения) и длительности отопительного сезона по формуле:
Пот = 0,00002 *24*90*Vпомещ., (.)
где V помещ. объем отапливаемого помещения по внешнему замеру, равный (5*8*3) =120 м3.
На 136 дней расход тепловой энергии составит
Пот = (136/365)* 0,00002 *24*90*120= 1,93 Гкал, (.)
Расход воды на хозяйственные нужды (мытье помещений и аппаратуры) вычисляется по формуле:
Wх = Н*Sп*В, (.)
где Н норма расхода воды на 1 м2 площади пола в сутки (0,0015 м3),
Sп площадь пола (30 м2), В число дней.
Wх = 0,0015*30*136= 6,12 м3, (.)
Расход воды на санитарно-технические нужды рассчитывается:
Wc = H*Ряв*В, (.)
где Н - норма расхода воды в сутки на 1 человека, принимаемая равной 0,1 м2;
Ряв - явочное число работников.
Wc = 0,1*1*136 = 13,6 м3
Расход электроэнергии на освещение может быть определен по формуле:
Qосв = Нэ*Sп*В*Восв, (.)
где Нэ - норма расхода электроэнергии на освещение 1 м2 площади, которую принимаем равной 0,03 кВтч/м2;
Sп - площадь освещаемого помещения, равная 30 м2;
Восв - время искусственного освещения в сутки, равное 8 часам.
Qосв = 0,03*30*136*8 = 979,2 кВтч
Расчет количества электроэнергии, потребляемой используемым оборудованием, производится по формуле:
Qоб = П * К * Т, (.)
где П - паспортная мощность электрооборудования, кВт;
К - коэффициент использования мощности оборудования, равный 0,8;
Т - время работы электрооборудования в часах.
Расчет электроэнергии, потребляемой оборудованием, сведем в таблицу 5.7.
Таблица 5.7.
Наименование машины |
Паспортная мощность, кВт |
Число единиц оборудования |
Суммарная потребляемая мощность |
Кол-во часов работы |
Расход эл/энергии кВтч |
IBM PC |
0,7 |
1 |
0,7 |
704 |
492,8 |
Лазерный принтер |
0,2 |
1 |
0,2 |
57 |
11,4 |
ИТОГО: |
504,2 |
Суммарное количество электроэнергии на освещение и работу оборудования:
Qобщ. = Qосв. + Qоб. = 979,2 + 504,2 = 1483,2 (.)
Полученные расходы различных видов энергии, а также материалы, необходимые для поддержания процесса создания проекта, свожу в таблицу 5.8.
Таблица 5.8
Наименование материалов и энергии |
Единица измерения |
Кол-во израсходов. материала |
Плановая цена (руб.) |
Суммарная стоимость (руб.) |
Расходные материалы: |
||||
Картридж для принтера |
шт. |
1 |
1250 |
1250 |
Бумага для принтера |
пачка |
1 |
130 |
130 |
Дискета HD 3,5” |
упаковка |
1 |
15 |
15 |
CD-RW |
шт. |
1 |
6 |
6 |
CD-R |
шт. |
2 |
1250 |
1250 |
ВСЕГО по расходным: |
1401 |
|||
Энергия: |
||||
Теплоэнергия |
Гкал |
1,93 |
656,57 |
1267,18 |
Водоснабжение |
м3 |
6,12 |
3,8 |
23,26 |
Канализация |
м3 |
13,6 |
1,55 |
21,08 |
Электроэнергия |
кВТч |
1483,4 |
0,9 |
1335,06 |
ВСЕГО по энергии: |
2646,58 |
|||
ИТОГО по затратам на материалы и виды энергии: |
4047,58 |
Амортизацию оборудования рассчитаю исходя из числа дней проекта и годовых норм амортизации оборудования. Расходы на амортизацию сведу в таблицу 5.9.
Таблица 5.9.
Наименование оборудования |
Число единиц (шт.) |
Стоимость единицы (руб.) |
Суммарная стоимость (руб.) |
Годовая норма (%) |
Сумма амортизации (руб.) |
Компьютер |
1 |
21520,00 |
21520,00 |
20,00 |
4304,00 |
Принтер |
1 |
6725,00 |
6725,00 |
20,00 |
1345,00 |
ИТОГО: |
5649,00 |
Результаты расчетов свожу в таблицу 5.10 сметы затрат на создание и ввод в эксплуатацию автоматизированного программного обеспечения. Смета рассчитывается по отдельным статьям, отражающим состав текущих затрат. К основным расходам относятся затраты на материалы, энергию и заработную плату, к накладным все затраты на содержание административно - управленческого персонала, канцелярские и прочие хозяйственные расходы (30-35 % от суммы основной и дополнительной заработной платы).
Смета затрат на создание и ввод в эксплуатацию комплекса.
Таблица 5.10.
№ п/п. |
Наименование затрат |
Сумма, руб. |
Удельный вес отдельных статей в общей сумме затрат, % |
1. |
Материалы |
1401,00 |
0,52 |
2. |
Энергетические затраты в т.ч.: |
2646,58 |
0,99 |
а) электроэнергия |
1335,06 |
||
б) теплоэнергия |
1267,18 |
||
в) водоснабжение |
23,26 |
||
г) канализация |
21,08 |
||
3. |
Основная заработная плата в т.ч.: |
165483,87 |
61,68 |
а) руководителя |
5161,29 |
||
б) консультанта |
6774,19 |
||
В) исполнителей |
153548,39 |
||
4. |
Амортизационные отчисления |
5649,00 |
2,11 |
ИТОГО |
175180,45 |
65,29 |
|
5. |
Отчисления на социальное страхование |
43479,23 |
16,21 |
6. |
Накладные расходы (30%) |
49645,16 |
18,50 |
ВСЕГО ЗАТРАТ |
268304,84 |
100.00 |
Так как данная система является расширяющей функции существующего программного модуля и предназначена для внутреннего использования, то ее дальнейшее распространение не планируется и расчет оптовой цены разработки производить нецелесообразно.
Конкурентоспособность для любой продукции определяется только в результате сравнения с другими товарами. Так как за базу сравнения берется конкретная потребность, возможно сопоставление и неоднородных товаров, поскольку они представляют только различные способы удовлетворения одной и той же потребности.
Данное программное обеспечение разрабатывалось непосредственно для конкретного предприятия и под конкретную структуру базы данных, в точном соответствии с предъявляемыми к нему требованиями, поэтому, учитывая его специфику, данный программный продукт не может быть использован для другой организации, в этом случае его необходимо будет полностью переписать, что естественно потребует немалых денежных и временных затрат.
Рассмотрим свойства продукта, делающие его конкурентоспособным:
Что касается социального эффекта от внедрения АРМ «NordVision», нельзя не отметить следующие пункты:
В экономическом плане создание программного обеспечения:
В данном разделе настоящего дипломного проекта был проведен технико-экономический анализ, и обоснована необходимость разработки данной темы. Построен и рассчитан сетевой график выполнения дипломной работы, по графику функции нормального распределения была найдена вероятность свершения конечного события в заданный срок (п.5.3.3), после чего был сделан вывод, что оптимизация по временным параметрам не нужна и повторное планирование или повторный расчет сетевого графика производить также нет необходимости.
Была определена себестоимость ПО, конкурентная способность разработанной системы, рассмотрен социально-экономический аспект решения проблемы. В ходе работы над этим разделом было выявлено, что внедрение и использование данного программного продукта экономически эффективно.
Безопасность жизнедеятельности БЖД (более распространенный термин охрана труда) представляет собой систему знаний, направленных на обеспечение безопасности в производственной и непроизводственной среде с учетом влияния человека на среду обитания.
Безопасность человека определяется отсутствием производственных и непроизводственных аварий, стихийных и других природных бедствий, опасных факторов, вызывающих травмы или резкое ухудшение здоровья, вредных факторов, вызывающих заболевания человека и снижающих его работоспособность.
С появлением на рабочих местах персональных вычислительных машин, стало возможным использование целевого программного обеспечения различной направленности, способного в значительной мере облегчить и качественно улучшить деятельность на рабочем месте.
Но кажущая простота работы на ПК обманчива, на что указывают субъективные ощущения работников, в основном в зарубежной литературе, которые, опираясь на многочисленные исследования, констатируют вредность этой работы и наряду со всеми положительными сторонами, внедрение вычислительной техники внесло в нашу жизнь и ряд проблем, требующих особого внимания.
Данный раздел дипломного проекта посвящен рассмотрению следующих вопросов:
При использовании человеком даже самой передовой технологии у него могут возникнуть соответствующие профессиональные заболевания, если, работая, он будет пренебрегать элементарными правилами техники безопасности. В данном разделе дипломного проекта будут рассмотрены опасные и вредные производственные факторы, которые могут стать причиной заболеваний пользователей персональных компьютеров.
При организации условий труда необходимо также учитывать воздействие на работающих опасных и вредных производственных факторов. Опасным называется производственный фактор, воздействие которого на работающего в определенных условиях приводит к травме или другому внезапному резкому ухудшению здоровья. Если же производственный фактор приводит к заболеванию или снижению работоспособности, то его считают вредным.
Типичными ощущениями, которые испытывают к концу рабочего дня работающие на персональных компьютерах, являются: головная боль, резь в глазах, тянущие боли в мышцах шеи, рук, спины и т.д. испытываемые днем за днем, они могут привести к мигреням, частичной потере зрения и другим нежелательным явлениям. По данным Национальной академии наук США, а также по результатам исследований, проведенных учеными ряда международных центров, выявлена определенная связь между работой на компьютерах и такими недомоганиями, как: астенопия (быстрая утомляемость глаз), боли в спине и шее, запястный синдром (болезненное поражение срединного нерва запястья), тендениты (воспалительные процессы в тканях сухожилий), стенокардия и различные стрессовые состояния, сыпь на коже лица, хронические головные боли, головокружение, повышенная возбудимость и депрессивные состояния, снижение концентрации внимания, нарушение сна и немало других, которые не только ведут к снижению трудоспособности, но и подрывают здоровье людей.
В связи с постоянным внедрением новых технологических процессов и интенсификацией существующих, человеку уже никогда не удастся полностью избежать пагубного влияния передовых технологий, но, как и во многих других случаях, сами пользователи персональных компьютеров, по крайней мере, могут свести их к минимуму. Большинство проблем решаются сами собой при правильной организации рабочего места, соблюдении правил техники безопасности и разумном распределении рабочего времени.
В процессе труда на работающего с ПЭВМ оказывают действие следующие опасные и вредные производственные факторы:
Электромагнитные поля (ЭМП).
Основным источником эргономических проблем, связанных с охраной здоровья людей, использующих в своей работе автоматизированные информационные системы на основе персональных компьютеров, являются дисплеи (мониторы), особенно дисплеи с электронно-лучевыми трубками. Они представляют собой источники наиболее вредных излучений, неблагоприятно влияющих на здоровье операторов.
Действие ЭМП проявляется: снижение белковой куагуляции, нарушении регуляции функций организма, угнетении обменных процессов вследствие изменения ферментной активности, ослаблении репродуктивной функции, гиперфункции щитовидной железы, уменьшения лактации у кормящих матерей, гипотонии, изменении проводимости сердечной мышцы, трофических расстройствах, похудении, выпадении волос, ломкости костей.
Отрицательное воздействие ЭМП вызывает обратимые (на ранних стадиях) и необратимые изменения в организме: торможение рефлексов, понижение кровяного давления (гипотония), замедление сокращений сердца (брадикардия), изменение состава крови в сторону увеличения лейкоцитов и уменьшения количества эритроцитов.
Субъективным критерием отрицательного воздействия ЭМП являются: головные боли, повышенная утомляемость, раздражительность, нарушения сна, нарушение рефлекторной деятельности мозга, ухудшение памяти, сердечно-сосудистые расстройства, ухудшение зрения, повышение температуры тела.
Изменения в тканях.
У работающих с дисплеями были установлены случаи нарушения кожного покрова лица, затылка, верхней части груди. Легкое покраснение сопровождается шелушением кожи. Аллергическая реакция исчезала, как только человек на несколько дней расставался с дисплеем. Объясняется это тем, что под действием статических полей экрана монитора ионы и частицы пыли приобретают заряд и устремляются к ближайшему заземленному предмету. Обычно им оказывается лицо пользователя. Результатом может быть непреходящая сыпь. Излучение дисплея вызывает также появление морщин и дряблости кожи.
Электромагнитные поля дисплеев могут инициировать изменения в клетках вплоть до нарушения синтеза ДНК.
Влияние шума.
Шумом называют всякий неблагоприятный действующий на человека звук. Обычно под шумом понимают сочетание звуков различной частоты и интенсивности.
Многочисленными исследованиями установлено, что шум является общебиологическим раздражителем и в определенных условиях может влиять на все органы и системы организма человека. Наиболее изучено влияние шума на слуховой орган человека. Интенсивный шум при ежедневном воздействии приводит к возникновению профессионального заболевания тугоухости, основным симптомом которого является постепенная потеря слуха на оба уха, первоначально лежащая в области высоких частот (4000 Гц), с последующим распространении на более низкие частоты, определяющие способность воспринимать речь.
Кроме непосредственного воздействия на орган слуха шум влияет на различные отделы головного мозга, изменяя нормальные процессы высшей нервной деятельности. Это так называемое неспецифическое воздействие шума может возникнуть даже раньше, чем изменения в органе слуха. Характерными являются жалобы на повышенную утомляемость, общую слабость, раздражительность, апатию, ослабление памяти потливость и т.д.
Исследованиями последних лет установлено, что под влиянием шума наступают изменения в органе зрения человека (снижается устойчивость ясного видения и острота зрения, изменяется чувствительность к различным цветам и др.) и вестибулярном аппарате; нарушаются функции желудочно-кишечного тракта; повышается внутричерепное давление; происходят нарушения в обменных процессах организма и т.п.
В результате неблагоприятного воздействия шума на работающего человека происходит снижение производительности труда, увеличивается брак в работе, создаются предпосылки к возникновению несчастных случаев. Все это обуславливает большое оздоровительное и экономическое значение мероприятий по борьбе с шумом.
Влияние на опорно-двигательный аппарат.
Из всех недомоганий, обусловленных работой на компьютере, наибольшее внимание привлекает множество мучительных и часто приводящих к нетрудоспособности болезней рук, спины, плеч и шеи, которые связаны с использованием клавиатуры и длительным пребыванием в статической позе. Этот набор болезней, к числу которых относятся и тендевиты, (воспалительные процессы тканей сухожилий), имеет общее название синдром длительных статических нагрузок (СДСН).
Этот вид заболеваний является наиболее распространенным среди пользователей ПК, так как при работе с компьютером приходится делать тысячи нажатий на клавиши при вводе текста. Пользователи ПК жалуются на болезненные ощущения в руках. Помимо этого, существует прямая связь между работой на компьютере и такими заболеваниями, как боли в спине и шее, запястный синдром. Длительное пребывание в сидячем положении приводит к возникновению напряжения мышц спины и ног. Более половины операторов испытывают неприятные ощущения в поясничном отделе, возникающие несколько раз в неделю или ежедневно.
Однако не только кисти, локти, плечи представляют собой "опасные зоны". Не менее важной причиной возникновения СДСН может быть длительное пребывание в статическом положении при работе с видеотерминалом, которое приводит к сильному перенапряжению мышц спины и нижних конечностей, что вызывает у абсолютного большинства операторов неприятные ощущения в поясничном отделе.
Влияние на орган зрения.
Однако самый большой вред компьютер наносит нашему зрению. Дело в том, что человеческие глаза абсолютно не подготовлены для восприятия компьютерной "картинки". Все окружающие предметы мы видим в отраженном свете. А изображения, возникающие на мониторе, имеют дискретный характер, то есть состоят из миллионов светящихся частичек, которые загораются и потухают через определенные промежутки времени. Поэтому восприятие светящегося монитора становится огромным испытанием для наших глаз.
Существующий компьютерный зрительный синдром стал настоящим бичом всех пользователей. Он появляется у всех, кто регулярно проводит у экрана компьютера более шести часов в день. Симптомы этого заболевания можно поделить на две группы.
В первую - зрительную - включены снижение остроты зрения, замедленная перефокусировка, двоение предметов, быстрое утомление во время чтения.
Вторая группа условно именуется глазной. К ней относятся чувство жжения в глазах, так называемый "песок под веками", боли в области глазниц и лба, боли во время движения глаз, их покраснение. Эта картина знакома большинству "компьютерщиков". И ничего удивительного, ведь все эти болезненные признаки появляются у части пользователей через 2 часа, у большинства - через 4 и у каждого - через 6 часов.
Надо сказать, что появление всех этих неприятных симптомов можно предотвратить. Нужно лишь знать элементарные правила работы с компьютером.
Во-первых, нельзя сидеть близко к экрану. Расстояние от 15-дюймового монитора до глаз не должно быть меньше 60-70 сантиметров, а 17-дюймового - 1,5 метра.
Ни в коем случае нельзя работать с установленными на максимум яркостью и контрастностью. Нужно "подгонять" эти функции под себя. Здесь могут помочь "компьютерные" линзы и очки, специальное покрытие которых повышает контрастность изображения. Эти оптические приспособления позволяют снизить утомляемость глазных мышц и улучшить аккомодацию хрусталика.
Увеличивать контрастность вынуждает слой пыли, поэтому надо ежедневно протирать монитор или влажной тряпкой или специальным химическим раствором.
Переутомление и стрессы.
Сложность трудовой деятельности пользователя ПК, требующая постоянного активного внимания, высокой ответственности за результат, который может привести к крупным потерям технических средств и экономических ресурсов, а в ряде случаев к авариям и гибели людей, вызывает реакцию психического напряжения (стресс).
В состоянии стресса у операторов в начале отмечается повышение работоспособности, общая собранность, более четкие действия, ускоряется двигательная реакция. Однако механизм эмоциональной стимуляции имеет физиологический предел, за которым наступает отрицательный эффект, когда психическое напряжение, достигая максимального уровня, утрачивает свое прямое, выработанное в процессе эволюции назначение повышение физической и психической активности человека. Такие запредельные формы напряжения ведут к срывам, сопровождаются утомлением человека, и даже переутомлением.
Стрессы являются причиной головокружения, тошноты, депрессии, стенокардии, снижения трудоспособности, легкой возбудимости, невозможности долго концентрировать внимание, хронических головных болей, нарушений сна, отсутствия аппетита.
Изменения в женском организме.
Более серьезные последствия вредных воздействий на организм были получены при обследовании женщин. Оказалось, что для тех, кто проводит за дисплеем не менее 20 часов в неделю, вероятность преждевременного прерывания беременности оказалось на 60% выше, чем для выполняющих аналогичную работу без применения компьютеров. Исследования, проведенные в США, Швеции, Японии, показали, что из числа беременных женщин, работающими за компьютерами, около 30% имели осложнения беременности, около 20% имели выкидыши. Канадские исследователи показали, что для женщин, работающих на компьютере, вероятность нормального протекания беременности уменьшается уже при продолжительности работы более 4 часов в неделю. По данным шведских исследователей у операторов ПК рождаются дети с выраженными пороками в 2,5 раза чаще, чем у других женщин.
Проанализировав вредные факторы и их влияние на человеческий организм, вследствие работы на ПЭВМ, разработаем в следующем пункте ряд мероприятий, обеспечивающих безопасность труда и производственную санитарию.
Условия труда пользователя имеют частные и общие характеристики, обусловленные спецификой производства и операторской деятельности.
Основной подход к решению проблемы уменьшения опасных и вредных влияний на организм человека при работе на ПК заключается в реализации рекомендаций, разработанных группой по проблемам охраны здоровья лиц, работающих с дисплеями, созданной при Всемирной организации здравоохранения. Эти рекомендации разбиты на 4 группы:
Рабочая поза, освещение, мебель, организация работы, а также привычки конкретного пользователя ЭВМ могут оказывать влияние на самочувствие и качество работы. При правильном обустройстве рабочего места можно снизить усталость и дискомфорт, и тем самым уменьшить риск возникновения напряжений, приводящих к болезням.
1) Общие организационные мероприятия:
Для обеспечения комфортной и безопасной работы при работе с компьютером рекомендуется следовать следующим основным принципам:
Необходимо найти удобное для себя положение тела относительно компьютера и оснащения на рабочем месте.
Необходимо спланировать выполнение заданий так, чтобы можно было чаще находиться в движении. Избегать сидения в одной позе целый день.
Необходимо создавать позитивные отношения с коллегами на работе, расслабляться и стараться устранять причины возникновения стресса. Не забывать о физической разрядке, расслаблении мускулов, пожимании плечами. Регулярно стараться устранять напряжение и чаще устраивать короткие паузы.
Необходимо прислушиваться к своему телу. Быть внимательным к возникновению любого напряжения. Чувству дискомфорта или возможной боли и постараться предпринять что-либо для их устранения.
Следует отметить еще несколько немаловажных факторов:
2) Требования к размещению рабочих мест с видеотерминалами и к техническим характеристикам дисплеев:
3) Освещение помещений и рабочих мест:
4) Снижение уровня электромагнитного излучения:
5) Организация и оборудование рабочих мест с видеодисплейными терминалами (ВДТ) и ПЭВМ:
Помимо безопасности пользователя, необходимо сказать несколько слов и о безопасности компьютера. Прежде всего, нужна его защита по сети питания, для этого применяются так называемые источники бесперебойного питания, поддерживающие напряжение питания в течение некоторого времени при аварийных ситуациях в электрической сети (этого времени обычно бывает достаточно, чтобы сохранить информацию и выключить персональный компьютер), и фильтры-стабилизаторы, защищающие от выбросов и скачков напряжения. Ни в коем случае нельзя загораживать заднюю стенку системного блока или ставить персональный компьютер вплотную к стене это приводит к «тяжелому» режиму охлаждения системного блока и его перегреву. То же самое относится к дисплею нельзя класть на него бумаги, книги и вообще все, что может закрыть его вентиляционные отверстия. Не рекомендуется курить в помещении, где установлены персональные компьютеры, поскольку мельчайшие твердые и смолистые частицы дыма могут повредить тонкие электронные компоненты, в первую очередь, головки и механизм накопителей на магнитных дисках. Наконец, такая мелочь, о которой принято забывать каждый день пыль и электроника плохо совместимы друг с другом, поэтому нужно чаще протирать основные устройства системы персонального компьютера, закрывать их полиэтиленовыми чехлами по окончании работы и вообще следить за толщиной слоя пыли в рабочем помещении. Наконец, не рекомендуется часто переставлять компоненты системы персональных компьютеров в помещении, в частности, таскать с места на место системный блок (если уж возникает необходимость в этом, то надо, как минимум, «запарковать» головки дискового накопителя, аккуратно отсоединить все кабели и по отдельности перенести процессорный блок, дисплей, принтер и пр.).
Соблюдение перечисленных в этом разделе дипломного проекта элементарных правил позволит сохранить здоровье, как пользователям персональной компьютерной техники, так и ей самой.
Пожары в ВЦ представляют особую опасность, так как сопряжены с большими материальными потерями. Характерная особенность ВЦ небольшие площади помещений. Как известно, пожар может возникнуть при взаимодействии горючих веществ, окисления и источников зажигания. В помещениях ВЦ присутствуют все три основные фактора, необходимые для возникновения пожара.
Горючими компонентами на ВЦ являются: строительные материалы для акустической и эстетической отделки помещений, перегородки, двери, полы, перфокарты и перфоленты, изоляция кабелей и др.
Пожаром называется неконтролируемое горение вне специального очага, наносящее материальный ущерб. Особенностью пожаров в закрытых помещениях является сравнительно медленное горении в течение первых 30-40 минут из-за недостаточного притока воздуха в зону горения. После разрушения остекления интенсивность пожара резко возрастает. Скорость горения различных веществ колеблется в широких пределах.
Под пожарной безопасностью понимается такое состояние объекта, при котором с большой вероятностью предотвращается возможность возникновения пожара, а в случае его возникновения обеспечивается эффективная защита людей от опасных и вредных факторов пожара и спасение материальных ценностей. Пожарная безопасность производственных объектов обеспечивается разработкой и осуществлением систем предотвращения пожаров и систем пожарной защиты. Для предотвращения пожаров необходимо исключить возникновение источников (импульсов) зажигания.
Источниками зажигания в ВЦ могут быть электронные схемы от ЭВМ, приборы, применяемые для технического обслуживания, устройства электропитания, кондиционирования воздуха, где в результате различных нарушений образуются перегретые элементы, электрические искры и дуги, способные вызвать загорания горючих материалов.
В современных ЭВМ очень высока плотность размещения элементов электронных схем. В непосредственной близости друг от друга располагаются соединительные провода, кабели. При протекании по ним электрического тока выделяется значительное количество теплоты. При этом возможно плавление изоляции. Для отвода избыточной теплоты от ЭВМ служат системы вентиляции и кондиционирования воздуха. При постоянном действии эти системы представляют собой дополнительную пожарную опасность.
Опасна перегрузка электропитающих сетей, что влечет за собой разогрев токоведущих проводников и возгорание электроизоляции, а также примыкающих материалов, способных воспламениться. Ослабленный электрический контакт в месте соединения проводников приводит к возникновению больших переходных сопротивлений и повышенному выделению теплоты.
Для большинства помещений ВЦ установлена категория пожарной опасности Е.
Одной из наиболее важных задач пожарной защиты является защита строительных помещений от разрушений и обеспечение их достаточной прочности в условиях воздействия высоких температур при пожаре. Учитывая высокую стоимость электронного оборудования ВЦ, а также категорию его пожарной опасности, здания для ВЦ и части здания другого назначения, в которых предусмотрено размещение ЭВМ, должны быть 1 и 2 степени огнестойкости.
Для изготовления строительных конструкций используются, как правило, кирпич, железобетон, стекло, металл и другие негорючие материалы. Применение дерева должно быть ограниченно, а в случае использования необходимо пропитывать его огнезащитными составами.
Каждое предприятие должно быть оснащено определенным количеством тех или иных видов пожарной техники в соответствии с принятыми нормами.
На производствах категории Е, к которым относятся вычислительные центры, для обеспечения пожаробезопасности принимаются следующие меры:
применяются стационарные аэрозольные (галоидоуглеводородные) и порошковые установки пожаротушения, в которых все элементы смонтированы и постоянно находятся в готовности к действию. Такие установки подразделяются на автоматические (приводятся в действие и при отсутствии в здании людей) и дистанционные (приводятся в действие людьми);
Для ликвидации небольших загораний используются огнетушители:
воздушно-пенные ОВП-5 и ОВП-10 (давление в корпусе создается сжатым диоксидом углерода);
СО2-огнетушители (углекислотные для тушения электроустановок под напряжением до 10 кВ) типа ОУ-2, ОУ-5, ОУ-8;
порошковые типа ОП-1 «Момент», ОП-2А, ОП10-А и т.д.
Для обнаружения загорания служат пожарные извещатели, реагирующие на дым, свет, температуру или сразу на несколько факторов.
В производственных помещениях ВЦ применяются главным образом углекислотные огнетушители, достоинством которых является высокая эффективность тушения пожара, сохранность электронного оборудования, диэлектрические свойства углекислого газа, что позволяет использовать эти огнетушители даже в том случае, когда сразу не удается обесточить электроустановку.
В соответствии с «Типовыми правилами пожарной безопасности для промышленных предприятий» залы ЭВМ, помещения для внешних запоминающих устройств, подготовки данных, сервисной аппаратуры, архивов, копировально-множительного оборудования и т.п. необходимо оборудовать дымовыми пожарными вещателями. В этих помещениях в начале пожара при горении различных пластмассовых, изоляционных материалов и бумажных изделий выделяется значительное количество дыма и мало теплоты.
Объекты ВЦ кроме АПС необходимо оборудовать установками стационарного автоматического пожаротушения. Наиболее целесообразно применять в ВЦ установки газового тушения пожара, действие которых основано на быстром заполнении помещения огнетушащим газовым веществом с резким снижением содержания в воздухе кислорода.
Кроме того, на руководителей предприятия возлагается ответственность за организацию пожарной охраны объекта и проведение мероприятий, в частности, инструктажа работающих по пожарной безопасности.
В процессе разработки программного продукта «NordVision» были учтены требования предъявляемые к программному обеспечению (п.2.2.3).
Рассчитаем полученное в результате дипломного проектирования значение (критерий) эффективности системы для частных показателей качества согласно методике и коэффициентам, определенных в п. 2.2.9.
Для частных показателей качества были получены следующие значения:
Удобство программного обеспечения 5,5 баллов (п. 4.3.2.1).
Надежность программного обеспечения 5 баллов (п. 4.3.2.2).
Произведем нормирование коэффициентов путем отнесения показателя к его интервалу изменений (интервал изменений приведен в таблице 2.11). Нормирование по диапазону изменений частного показателя производится по формуле, удовлетворяющих принципу «чем больше, тем лучше»:
, (.)
Нормированные значения показателей приведены в таблице 7.1.
Таблица 7.1.
Показатели |
Минимальное |
Максимальное |
Требуемое значение |
Нормиро-ванное значение |
Удобство программного обеспечения |
0 |
6 |
5 |
0,83 |
Надежность программного обеспечения |
0 |
5 |
5 |
1 |
Определим эффективность системы, по нормированным значениям из таблицы 8.1 и согласующим коэффициентам из таблицы 2.10:
= 0,5 * 0,83 + 0,5 * 1= 0,92
Поскольку в концепции проекта (п.2.4) было определено, что показатель эффективности, рассчитанный для частных показателей качества согласно методике и коэффициентам, определенным в п. 2.2.9, для разрабатываемого программного комплекса должен составить не ниже критерия =0,92. Согласно п. 2.3.2.3, можно сделать вывод, что проектирование было выполнено успешно.
Достоинства спроектированного ПО «NordVision», на наш взгляд, заключаются в следующем:
Таблица . Источник Авария Время Котел 1: Авария УПП первичного воздуха k1 03.11.2011 16:26:17 Котел 1: Давление пара максимальное k1 03.11.2011 16:26:17 Котел 1: Авария нет напряжения k1 03.11.2011 16:26:17 Котел 1: Уровень воды максимальный k1 03.11.2011 16:26:17 Котел 1: Авария нет напряжения k1 03.11.2011 16:22:55 Котел 1: Авария УПП первичного воздуха k1 03.11.2011 16:22:55 Котел 1: Давление пара максимальное k1 03.11.2011 16:22:55 Котел 1: Уровень воды максимальный k1 03.11.2011 16:22:55 Деаэратор 2: Ошибка клапана питательной воды dr 03.11.2011 16:20:41 Деаэратор: Ошибка ПЧ насоса 3 dr 03.11.2011 16:20:41 Деаэратор: Ошибка ПЧ насоса 2 dr 03.11.2011 16:20:41 Деаэратор: Ошибка ПЧ насоса 1 dr 03.11.2011 16:20:41 Деаэратор: Ошибка клапана подогрева dr 03.11.2011 16:20:41 Деаэартор 2: Ошибка клапана пара в водяное пространство dr 03.11.2011 16:20:41 Деаэратор 1: Ошибка клапана пара в водяное пространство dr 03.11.2011 16:20:41 Деаэратор 1: Ошибка клапана пара в паровое пространство dr 03.11.2011 16:20:41 Деаэратор: Насос 1: Давление минимальное dr 03.11.2011 16:20:41 Котел 1: Авария нет напряжения k1 03.11.2011 16:20:37 Котел 1: Авария УПП первичного воздуха k1 03.11.2011 16:20:37 |
MainWindow.xaml.cs
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Threading;
using Npgsql;
namespace cherepovec
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public class ObservableCollectionEx<T> : ObservableCollection<T>
{
// Override the event so this class can access it
public override event System.Collections.Specialized.NotifyCollectionChangedEventHandler CollectionChanged;
protected override void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
// Be nice - use BlockReentrancy like MSDN said
using (BlockReentrancy())
{
System.Collections.Specialized.NotifyCollectionChangedEventHandler eventHandler = CollectionChanged;
if (eventHandler == null)
return;
Delegate[] delegates = eventHandler.GetInvocationList();
// Walk thru invocation list
foreach (System.Collections.Specialized.NotifyCollectionChangedEventHandler handler in delegates)
{
DispatcherObject dispatcherObject = handler.Target as DispatcherObject;
// If the subscriber is a DispatcherObject and different thread
if (dispatcherObject != null && dispatcherObject.CheckAccess() == false)
{
// Invoke handler in the target dispatcher's thread
dispatcherObject.Dispatcher.Invoke(DispatcherPriority.DataBind, handler, this, e);
}
else // Execute handler as is
handler(this, e);
}
}
}
}
Thread thr1;
DispatcherTimer _timer;
bool running = true;
bool playAlarm = false;
bool[] oldAlarmsK1 = new bool[300];
bool[] oldAlarmsK2 = new bool[300];
bool[] oldAlarmsK3 = new bool[300];
bool[] oldAlarmsTk = new bool[300];
bool[] oldAlarmsDr = new bool[300];
private NpgsqlConnection conn = new NpgsqlConnection(Properties.Settings.Default.connString);
public ObservableCollection<int> k1ActMi = new ObservableCollection<int>();
public ObservableCollection<bool> k1ActMb = new ObservableCollection<bool>();
public ObservableCollectionEx<alarms> _AlarmsCollection = new ObservableCollectionEx<alarms>();
public ObservableCollectionEx<alarms> AlarmsCollection
{ get { return _AlarmsCollection; } }
public Dictionary<string, points> variables = new Dictionary<string, points>();
public Dictionary<string, showAlarms> showAl = new Dictionary<string, showAlarms>();
public Dictionary<string, alarms[]> alarmsDescription = new Dictionary<string, alarms[]>();
//
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
if (playAlarm) media.Play();
else media.Stop();
}
void m_MediaEnded(object sender, RoutedEventArgs e)
{
media.Position = TimeSpan.FromSeconds(0);
media.Play();
}
//Чтение из БД описания аварий
private void addAlarmsDescriptions(string Name)
{
alarms[] al = new alarms[300];
alarmsDescription.Add(Name, new alarms[300]);
NpgsqlDataReader dr;
conn.Open();
NpgsqlCommand command = new NpgsqlCommand("SELECT \"N\", 'name', \"desc\" FROM alarms_desc WHERE name='" + Name + "' ORDER BY \"N\";", conn);
//try
{
dr = command.ExecuteReader();
while (dr.Read())
{
al[(int)dr["N"]] = new alarms { alarmSender = Name, alarmDescripton = dr["desc"].ToString() };
}
}
alarmsDescription[Name] = al;
try
{
for (int i = 0; i < 300; i++)
variables[Name].Mb_desc.Add("");
command = new NpgsqlCommand("SELECT n, description FROM mb_desc WHERE name='" + Name + "' ORDER BY n;", conn);
dr = command.ExecuteReader();
while (dr.Read())
{
variables[Name].Mb_desc[(int)dr["n"]] = dr["description"].ToString();
}
command = new NpgsqlCommand("SELECT n, description, _offset FROM mi_desc WHERE name='" + Name + "' ORDER BY n;", conn);
dr = command.ExecuteReader();
for (int i = 0; i < 300; i++)
{
variables[Name].Mi_offset.Add(1);
variables[Name].Mi_desc.Add("");
}
while (dr.Read())
{
variables[Name].Mi_offset[(int)dr["n"]] = ((int)dr["_offset"]);
variables[Name].Mi_desc[(int)dr["n"]] = dr["description"].ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
conn.Close();
}
/// <summary> чтение данных из БД
/// Поток чтения данных из БД
/// </summary>
private void thrSqlRead()
{
bool[] actAlarmsK1 = new bool[300];
bool[] actAlarmsK2 = new bool[300];
bool[] actAlarmsK3 = new bool[300];
bool[] actAlarmsDr = new bool[300];
bool[] actAlarmsTk = new bool[300];
bool[] al = new bool[10];
int[] mi_values = new int[300];
float[] float_mi_values = new float[1];
while (running)
{
try
{
conn.Open();
#region Чтение данных котел 1
NpgsqlCommand command = new NpgsqlCommand("SELECT id, values_mi, values_mb, alarms, name FROM act_values WHERE name='k1'", conn);
NpgsqlDataReader dr = command.ExecuteReader();
while (dr.Read())
{
actAlarmsK1 = ((bool[])dr["alarms"]);
mi_values = ((int[])dr["values_mi"]);
variables["k1"].Mb = ((bool[])dr["values_mb"]).ToList();
variables["k1"].alarms = ((bool[])dr["alarms"]).ToList();
}
float_mi_values = new float[mi_values.Length];
for (int i = 0; i < mi_values.Length; i++)
float_mi_values[i] = (float)mi_values[i] / variables["k1"].Mi_offset[i];
variables["k1"].Mi = float_mi_values.ToList();
Thread.Sleep(100);
#endregion
/*
#region Чтение данных котел 2
command = new NpgsqlCommand("SELECT id, values_mi, values_mb, alarms, name FROM act_values WHERE name='k2'", conn);
dr = command.ExecuteReader();
while (dr.Read())
{
actAlarmsK2 = ((bool[])dr["alarms"]);
mi_values = ((int[])dr["values_mi"]);
// variables["k3"].Mi = ((int[])dr["values_mi"]).ToList();
variables["k2"].Mb = ((bool[])dr["values_mb"]).ToList();
variables["k2"].alarms = ((bool[])dr["alarms"]).ToList();
}
float_mi_values = new float[mi_values.Length];
for (int i = 0; i < mi_values.Length; i++)
float_mi_values[i] = (float)mi_values[i] / variables["k2"].Mi_offset[i];
variables["k2"].Mi = float_mi_values.ToList();
Thread.Sleep(100);
#endregion
#region Чтение данных котел 3
command = new NpgsqlCommand("SELECT id, values_mi, values_mb, alarms, name FROM act_values WHERE name='k3'", conn);
dr = command.ExecuteReader();
while (dr.Read())
{
actAlarmsK3 = ((bool[])dr["alarms"]);
mi_values = ((int[])dr["values_mi"]);
// variables["k3"].Mi = ((int[])dr["values_mi"]).ToList();
variables["k3"].Mb = ((bool[])dr["values_mb"]).ToList();
variables["k3"].alarms = ((bool[])dr["alarms"]).ToList();
}
float_mi_values = new float[mi_values.Length];
for (int i = 0; i < mi_values.Length; i++)
float_mi_values[i] = (float)mi_values[i] / variables["k3"].Mi_offset[i];
variables["k3"].Mi = float_mi_values.ToList();
Thread.Sleep(100);
#endregion
#region Чтение данных деаэратор
command = new NpgsqlCommand("SELECT id, values_mi, values_mb, alarms, name FROM act_values WHERE name='dr'", conn);
dr = command.ExecuteReader();
while (dr.Read())
{
actAlarmsDr = ((bool[])dr["alarms"]);
mi_values = ((int[])dr["values_mi"]);
// variables["dr"].Mi = ((int[])dr["values_mi"]).ToList();
variables["dr"].Mb = ((bool[])dr["values_mb"]).ToList();
variables["dr"].alarms = ((bool[])dr["alarms"]).ToList();
}
float_mi_values = new float[mi_values.Length];
for (int i = 0; i < mi_values.Length; i++)
float_mi_values[i] = (float)mi_values[i] / variables["dr"].Mi_offset[i];
variables["dr"].Mi = float_mi_values.ToList();
Thread.Sleep(100);
#endregion
#region Чтение данных тепловой контур
command = new NpgsqlCommand("SELECT id, values_mi, values_mb, alarms, name FROM act_values WHERE name='tk'", conn);
dr = command.ExecuteReader();
while (dr.Read())
{
actAlarmsTk = ((bool[])dr["alarms"]);
mi_values = ((int[])dr["values_mi"]);
// variables["tk"].Mi = ((int[])dr["values_mi"]).ToList();
variables["tk"].Mb = ((bool[])dr["values_mb"]).ToList();
variables["tk"].alarms = ((bool[])dr["alarms"]).ToList();
}
float_mi_values = new float[mi_values.Length];
for (int i = 0; i < mi_values.Length; i++)
float_mi_values[i] = (float)mi_values[i] / variables["tk"].Mi_offset[i];
variables["tk"].Mi = float_mi_values.ToList();
Thread.Sleep(100);
#endregion
*/
#region составление списка текущих аварий
// если список аварий изменился - то обновить
if (!actAlarmsK1.SequenceEqual(oldAlarmsK1))
{
_AlarmsCollection.Clear();
oldAlarmsK1 = actAlarmsK1;
for (int i = 0; i < actAlarmsK1.Length; i++)
{
if (actAlarmsK1[i]) _AlarmsCollection.Add(alarmsDescription["k1"][i]);
}
if (actAlarmsK1.Contains(true) )
playAlarm = true;
else playAlarm = false;
}
if (variables["k1"].alarms.Contains(true) ) al[0] = true;
else al[0] = false;
variables["al"].alarms = al.ToList();
#endregion
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "Ошибка чтения данных из БД");
Thread.Sleep(1000);
}
finally
{
conn.Close();
}
}
}
public MainWindow()
{
InitializeComponent();
}
private void button6_Click(object sender, RoutedEventArgs e)
{
playAlarm = false;
/*
NpgsqlConnection connx = new NpgsqlConnection("Server=192.168.1.144;Port=5432;User Id=postgres;Password=57Jrtg63;Database=otradnoe;");
connx.Open();
NpgsqlCommand command;
for (int i = 0; i < 300; i++)
{
command = new NpgsqlCommand("INSERT INTO mi_desc(n, decription, \"offset\", name) VALUES ("+i.ToString()+" , 'Тепловой контур переменная mi "+i.ToString()+"', 10, 'tk');", connx);
// try
{
int dr = command.ExecuteNonQuery();
}
}
connx.Close();
*/
// _AlarmsCollection.Add(new alarms { alarmSender = "Vasia", alarmDescripton = DateTime.Now.ToString() });
}
/// <summary> Вызов архивных графиков
/// Вызов wpf chart
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void border37_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
bool wind_OK = true;
Border btn = sender as Border;
foreach (Window control in this.OwnedWindows)
{
wpfToolkitChart b = control as wpfToolkitChart;
if (b != null)
{
if (b.WindowState == System.Windows.WindowState.Minimized) b.WindowState = System.Windows.WindowState.Normal;
if (!b.checkSeries(btn.Tag.ToString()))
{
b.addSeries(btn.Tag.ToString(), "hell");
b.changeData();
}
wind_OK = false;
}
}
if (wind_OK)
{
wpfToolkitChart wpGr = new wpfToolkitChart();
if (System.Windows.Forms.Screen.AllScreens.Length > 1)
{
System.Drawing.Rectangle scr = System.Windows.Forms.Screen.AllScreens[1].WorkingArea;
wpGr.Left = scr.Left;
wpGr.Top = scr.Top;
wpGr.Height = scr.Height / 2;
wpGr.Width = scr.Width;
}
else
{
wpGr.Left = this.Left;
wpGr.Top = this.Top;
wpGr.Height = this.Height / 2;
wpGr.Width = this.Width;
}
wpGr.Owner = this;
wpGr.Show();
wpGr.addSeries(btn.Tag.ToString(), "hello");
}
/*
wpfToolkitChart wpGr = new wpfToolkitChart();
wpGr.Owner = this;
wpGr.Show();
*/
}
//Закрытие программы останавливаем все потоки
private void Window_Closing(object sender, CancelEventArgs e)
{
running = false;
thr1.Join();
}
/// <summary>
/// Вызов журнала аварий
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, RoutedEventArgs e)
{
bool wind_OK = true;
Border btn = sender as Border;
foreach (Window control in this.OwnedWindows)
{
journal b = control as journal;
if (b != null)
{
if (b.WindowState == System.Windows.WindowState.Minimized) b.WindowState = System.Windows.WindowState.Normal;
wind_OK = false;
}
}
if (wind_OK)
{
journal wpGr = new journal();
if (System.Windows.Forms.Screen.AllScreens.Length > 1)
{
System.Drawing.Rectangle scr = System.Windows.Forms.Screen.AllScreens[1].WorkingArea;
wpGr.Left = scr.Left;
wpGr.Top = scr.Top;
wpGr.Height = scr.Height / 2;
wpGr.Width = scr.Width;
}
else
{
wpGr.Left = this.Left;
wpGr.Top = this.Top;
wpGr.Height = this.Height / 2;
wpGr.Width = this.Width;
}
wpGr.Owner = this;
wpGr.Show();
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
showAl.Add("mainAlarm", new showAlarms());
variables.Add("k1", new points());
variables.Add("al", new points());
addAlarmsDescriptions("k1");
thr1 = new Thread(new ThreadStart(thrSqlRead));
thr1.Name = "sqlRead";
// Запуск нового потока.
for (int i = 0; i < 1000; i++)
{
k1ActMi.Add(0);
}
thr1.Start();
_timer = new DispatcherTimer();
_timer.Interval = TimeSpan.FromMilliseconds(1000);
_timer.Tick += new EventHandler(dispatcherTimer_Tick);
_timer.Start();
variables["k1"].MbSave.Add(false);
this.DataContext = variables;
listBox1.DataContext = this;
media.MediaEnded += new RoutedEventHandler(m_MediaEnded);
media.Position = TimeSpan.FromSeconds(0);
// media.Play();
//Загрузка контролов из внешних файлов
try
{
mainLabel.Content = externalLoad("controls\\boiler1.xaml");
}
catch (Exception ex)
{
System.IO.File.AppendAllText("client.log", DateTime.Now.ToString() + "\t : ошибка загрузки boiler_1.xaml - \t " + ex.Message.ToString() + " \r\n");
}
}
/// <summary>
/// Загрузка контролов из внешних файлов
/// </summary>
/// <param name="path">Путь к файлу</param>
/// <returns></returns>
private DependencyObject externalLoad(string path)
{
// Get the XAML content from an external file.
DependencyObject rootElement;
using (FileStream fs = new FileStream(path, FileMode.Open))
{
rootElement = (DependencyObject)XamlReader.Load(fs);
//rootElement = (DependencyObject)XamlReader.Load(fs);
}
FrameworkElement frameworkElement = (FrameworkElement)rootElement;
Grid gr = (Grid)frameworkElement.FindName("mGrid");
foreach (Object brd in gr.Children)
{
Border br = brd as Border;
if (br != null) br.MouseLeftButtonDown += new MouseButtonEventHandler(border37_MouseLeftButtonDown); ;
}
return rootElement;
}
private void button3_MouseDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("open");
//variables["k1"].MbSave[0] = true;
}
private void button3_MouseUp(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("close");
}
//Вызов окна управления
private void button3_Click(object sender, RoutedEventArgs e)
{
bool wind_OK = true;
Border btn = sender as Border;
foreach (Window control in this.OwnedWindows)
{
upravlenie b = control as upravlenie;
if (b != null)
{
if (b.WindowState == System.Windows.WindowState.Minimized) b.WindowState = System.Windows.WindowState.Normal;
wind_OK = false;
}
}
if (wind_OK)
{
upravlenie wpGr = new upravlenie(variables["k1"].Mi[36],variables["k1"].Mi[37]);
if (System.Windows.Forms.Screen.AllScreens.Length > 1)
{
System.Drawing.Rectangle scr = System.Windows.Forms.Screen.AllScreens[1].WorkingArea;
wpGr.Left = scr.Left;
wpGr.Top = scr.Top;
}
else
{
wpGr.Left = this.Left;
wpGr.Top = this.Top;
wpGr.sPercentsValue.Value = Convert.ToDecimal(variables["k1"].Mi[36]);
wpGr.sTempValue.Value = Convert.ToDecimal(variables["k1"].Mi[37]);
}
wpGr.Owner = this;
wpGr.Show();
}
}
private void button5_Click(object sender, RoutedEventArgs e)
{
//Загрузка контролов из внешних файлов
try
{
mainLabel.Content = externalLoad("controls\\boiler2d.xaml");
}
catch (Exception ex)
{
System.IO.File.AppendAllText("client.log", DateTime.Now.ToString() + "\t : ошибка загрузки boiler2d.xaml - \t " + ex.Message.ToString() + " \r\n");
}
}
private void button4_Click(object sender, RoutedEventArgs e)
{
//Загрузка контролов из внешних файлов
try
{
mainLabel.Content = externalLoad("controls\\boiler1.xaml");
}
catch (Exception ex)
{
System.IO.File.AppendAllText("client.log", DateTime.Now.ToString() + "\t : ошибка загрузки boiler_1.xaml - \t " + ex.Message.ToString() + " \r\n");
}
}
}
}