Разработка информационной подсистемы тестирования встроенного программного обеспечения PLC-модемов для ЗАО "КИЭП "Энергомера"

Проектирование базы данных, информационной подсистемы PLC-Tester, модуля тестирования и web-приложения. Разработка логической структуры программного продукта и общие требования к техническому обеспечению. Запуск программы и описание тестовых прогонов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.06.2011
Размер файла 3,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

,(4.37)

где Зручн - затраты на ручную обработку информации, руб.;

Завтв- затраты на автоматизированную обработку информации, руб.;

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

Затраты на ручную обработку информации Зручн, руб., определяется по формуле

, (4.38)

где = 960 время, затрачиваемое на обработку информации вручную, ч;

= 60 - цена одного часа работы оператора, руб.;

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

Из (4.38) следует

(руб.). (4.39)

Затраты на автоматическую обработку информации рассчитываются по формуле

, (4.40)

где = 120 - затраты времени на автоматизированную обработку той же самой информации, ч;

= 60 - цена одного часа работы оператора, руб.;

= 1.2 - коэффициент, учитывающий дополнительные затраты

времени на логические операции.

Из (4.40) следует

(руб.). (4.41)

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

Из (4.37), (4.39) и (4.41) следует

(руб.). (4.42)

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

, (4.43)

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

(руб.). (4.44)

Затраты на обслуживание вычислительной техники рассчитываются по формуле (4.32) и складываются из затрат на обслуживания сервера и ПЭВМ оператора подсистемы

(руб.). (4.45)

Из (4.43), (4.44) и (4.45) следует

(руб.). (4.46)

Из (4.36), (4.42) и (4.46) рассчитывается прибыль за год

(руб.). (4.47)

Далее необходимо определить основные экономические показатели проекта:

- чистый дисконтированный доход (ЧДД) от использования программного продукта;

- срок окупаемости (Ток) проекта.

Срок окупаемости проекта рассчитывается по формуле

, (4.48)

Где K - капиталовложения при внедрении программного продукта, руб.;

П - прибыль от использования программного продукта за первый год его эксплуатации, руб., полученная в (4.47) при подстановке нормы дисконта E = 20%.

Срок окупаемости проекта составит

(лет). (4.49)

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

, (4.50)

где n - расчетный период, год;

- прибыль от использования программного продукта за k-й год его

эксплуатации, руб.;

Е = 20 % - норма дисконта;

K - капиталовложения при внедрении программного продукта (принимается равным затратам на создание программного продукта), руб.

Чистый дисконтированный доход за год использования программного продукта (так как продукт окупается в течении одного года) при норме дисконта составит:

(руб.) (4.51)

4.5 Основные технико-экономические показатели проекта

Основные технико-экономические показатели проекта приведены в таблице 4.1.

Таблица 4.1 - Основные технико-экономические показатели проекта

Основные характеристики

Единицы измерения

Проект

Итоговая трудоемкость разработки

чел.-ч.

1372

Полные затраты на создание программного продукта

руб.

119515,16

Годовой эффект от внедрения программного продукта

руб.

156592,64

Чистый дисконтированный доход за 3 года использования программного продукта

руб.

276316,22

Срок окупаемости проекта

год

0,79

Выводы

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

Примечание - основные технико-экономические показатели проекта представлены в таблице 4.1.

5. БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ ПРОЕКТА

5.1 Общая характеристика опасных, вредных факторов на рабочем месте оператора информационной подсистемы

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

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

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

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

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

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

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

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

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

5.2 Обеспечение безопасности на рабочем месте оператора информационной подсистемы

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

Размеры помещения представлены в таблице 5.1.

Таблица 5.1 - Размеры помещения оператора подсистемы

Величина

Размерность

Значение

Длина помещения

м

6

Ширина помещения

м

4

Высота помещения

м

3,5

Площадь

м2

24

Объем

м3

84

Из данных, представленных в таблицы 5.1 и количества человек, работающих в данном помещении видно, что на каждого сотрудника приходится по 6 м2 площади и по 21 м3 объема помещения, что удовлетворяет нормам (минимум 6 м2 площади и минимум 20 м3 объема).

Схема помещения представлена на рисунке 5.1, на ней показаны места работников. Каждое рабочее место оборудовано, предназначенным для использования ПЭВМ, столом. Для комфортной работы каждый стол удовлетворяет следующим условиям:

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

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

- высота рабочей поверхности рекомендуется в пределах 750 мм.

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

Рисунок 5.1 - Схема рабочего помещения оператора информационной подсистемы

В помещении используется смешанное освещение:

- окно, площадью 6,8 м2 (восточная сторона здания);

- 4 светильника, по 4 люминесцентных лампы (по 20 Вт каждая).

Примечание - На схеме светильники не обозначены.

Яркость естественного освещения можно регулировать (применяются регулируемые жалюзи). Освещенность на поверхности стола рабочего места оператора подсистемы не меньше 300 лк.

Для снижения шума в помещении компьютеры, принтеры установлены на амортизирующие прокладки. Уровень шума не превышает 30 дБ.

Температура в помещении составляет 22-24 °С в холодный период года и 23-25 °С - в теплый.

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

На месте оператора подсистемы имеется риск поражения электрическим током так, как осуществляется работа с PCL-модемами (используют линии электропередачи в качестве среды передачи данных).

Поражение электрическим током возникает при соприкосновении с электрической цепью, в которой присутствуют источники напряжения и/или источники тока, способные вызвать протекание тока по попавшей под напряжение части тела. Обычно чувствительным для человека является пропускание тока силой более 1 мА.

Основными поражающими воздействиями электрического тока на организм человека являются:

- термическое;

- элетролитический;

- биологическое;

- механическое.

Для обеспечения электробезопасности приняты следующие меры:

- применение малых напряжений (где это возможно);

- электрическая изоляция;

- контроль и профилактика повреждения изоляции;

- защитное зануление;

- защита от случайного прикосновения к токоведущим частям.

В помещении имеется пожарная сигнализация, так же имеется огнетушитель.

5.3 Расчет защитного зануления на отключающую способность

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

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

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

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

При замыкании фазы на зануленный корпус (стенд, с PLC-модемом), система автоматически отключится, если значение однофазного тока короткого замыкания Iк удовлетворяет условию

, (5.1)

где Iк - ток короткого замыкания;

k - коэффициент кратности тока, для автоматического выключателя, для А3161 равен 1,25;

Iном - номинальный ток срабатывания автоматического выключателя, в данном случае 15 А.

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

, (5.2)

где U - фазовое напряжение сети (используется сеть напряжением 220 В);

zT - сопротивление трансформатора (в данном случае - 0,312 Ом);

zп - сопротивление петли фаза-нуль (контура фазный проводник и нулевой защитный проводник).

Сопротивление петли нуль-фаза рассчитывается по формуле

, (5.3)

где Rф , Rн - активные сопротивления фазного и нулевого защитного проводников соответственно;

Xф , Xн - внутренние индуктивные сопротивления фазного проводника и нулевого защитного проводника соответственно;

Xп - внешнее индуктивное сопротивление петли фаза-нуль.

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

. (5.4)

Активное сопротивление рассчитывается по формуле

, (5.5)

где с - удельное сопротивление проводника (для меди 0,018·10-6 Ом·м);

l - длина проводника;

s - площадь поперечного сечения проводника.

Длина фазного проводника - 350 м, а защитного нулевого - 15 м.

Площадь поперечного сечения фазного проводника 3,14·10-6 м2, а нулевого проводника - 1,76·10-6 м2.

Соответственно, из (5.5) активное сопротивление фазного проводника:

(Ом). (5.6)

Активное сопротивление нулевого проводника:

(Ом). (5.7)

Активное сопротивление нулевого проводника намного меньше, чем у фазного из-за значительно меньшей длинны.

Тогда сила тока короткого замыкания равна

(А). (5.8)

Из (5.1) следует, что для автоматического выключения выключателя модели А3161 сила тока цепи должна составить

(А). (5.9)

Сила тока короткого замыкания, полученная в (5.8) примерно в 5 раз больше чем сила тока, полученная в (5.9), этот факт и формула (5.1) позволяют сделать вывод о том, что отключающая способность системы зануления обеспечена на должном уровне.

Выводы

Условия трудовой деятельности на рабочем месте оператора подсистемы удовлетворяют общим требованиям к организации и оборудованию рабочих мест обозначенных в СанПиН 2.2.2/2.4.1340-03.

Проведенные обследование и расчеты показывают, что на рабочем месте оператора проведены мероприятия по обеспечению на должном уровне:

- микроклимата;

- освещенности;

- уровня шума;

- электробезопасности.

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

ЗАКЛЮЧЕНИЕ

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

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

В состав подсистемы входит модуль, который, по сути, является автоматизированным рабочим местом её оператора, что инкапсулировать все необходимые функции в едином целом и освобождает пользователя-оператора от большинства рутинных работ.

Подсистема способна функционировать практически полностью на свободном программном обеспечении (исключение - операционная система Windows).

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

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

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

В результате проектирования были выполнены все поставленные, на начальном этапе, задачи.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Петров, А. И. Информационные системы [Текст] / А. И. Петров. - М.: Горячая линия-Телеком, 2000. - 300 с., ил..

2. Федорченко, А.А., Синдеев, Ю.Г. Электротехника с основами электроники [Текст] / А.А. Федорченко, Ю.Г. Синдеев - М.: Издательско-торговая корпорация "Дашков и К", 2009. - 416 с..

3. Информационная система,

ru.wikipedia.org/wiki/Информационная_система.

4. Автоматизированная система коммерческого учета электроэнергии,

www.energomera.ru/products/askue.

5. PLC модем СЕ832С, /www.energomera.ru/products/askue/ce832c.

6. Автоматизированная система контроля и учёта энергоресурсов.

ru.wikipedia.org/wiki/Автоматизированная_система_контроля_и_учета_ энергоресурсов.

7. Связь по ЛЭП, ru.wikipedia.org/wiki/Связь_по_ЛЭП.

8. Буч, Г., Рамбо, Д., Джекобсон, А. Язык UML для пользователя: Пер. с англ [Текст] / Г. Буч, Д. Рамбо, А. Джекобсон. - М.: ДМК, 2000. ? 432 с., ил. (Серия "для программистов").

9. Буч, Г., Рамбо, Д., Джекобсон, А. Язык UML для пользователя: Пер. с англ [Текст] / Г. Буч, Д. Рамбо, А. Джекобсон. - М.: ДМК, 2000. ? 432 с., ил. (Серия "для программистов").

10. MySQL, ru.wikipedia.org/wiki/MySQL.

11. Apach, ru.wikipedia.org/wiki/Apache.

12. SharpDevelop, ru.wikipedia.org/wiki/SharpDevelop.

13. NetBeans IDE, ru.wikipedia.org/wiki/NetBeans.

14. Олифер, В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы [Текст] / В.Г. Олифер, Н.А. Олифер - СПб.: Питер 2001. - 672 с..

15. Кульгин, М.В. Компьютерные сети. Практика построения для профессионалов, 2-е изд.[Текст] / М.В. Кульгин. - СПб.: Питер 2003. - 462 с..

16. Кухарчик А. PHP: обучение на примерах [Текст] / А. Кухарчик. - Мн.: Новое знание, 2004. - 237 с..

17. Именованный канал, ru.wikipedia.org/wiki/Именованный_канал.

18. К расчету зануления на отключающую способность, ftemk.mpei.ac.ru/bgd/_private/Sanul_2/Zan_raschet.htm.

19. ГОСТ 2.104 - 68. ЕСКД. Основные надписи.

20. ГОСТ 2.106 - 68. ЕСКД. Текстовые документы.

21. ГОСТ 2.109 - 73. ЕСКД. Основные требования к чертежам.

22. ГОСТ 2.301 - 68. ЕСКД. Форматы.

23. ГОСТ 2.301 - 81. ЕСКД. Шрифты чертежные.

24. ГОСТ 2.316 - 68. ЕСКД. Правила нанесения на чертежах надписей, технических требований и таблиц.

25. ГОСТ 2.321 - 84. ЕСКД. Обозначения буквенные.

26. ГОСТ 2.503 - 90. ЕСКД. Правила внесения изменений.

Приложение А

Схема автоматизированной системы коммерческого учета электроэнергии

Рисунок А.1 - Схема АСКУЭ

Приложение Б

Диаграмма размещения информационной подсистемы

Рисунок Б.1 - Диаграмма размещения информационной подсистемы

Приложение В

Логическая схема базы данных

Рисунок В.1 - Логическая схема базы данных

Приложение Г

Код базы данных на языке SQL

Отключение внешних ключей

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

Установка кодировки, с использованием которой клиент будет посылать запросы на сервер

SET NAMES 'utf8';

Установка базы данных по умолчанию

USE plctesterdb;

DROP TABLE IF EXISTS endcode;

CREATE TABLE endcode (

end_code_id INT(11) UNSIGNED NOT NULL,

end_code_name VARCHAR(30) NOT NULL,

description VARCHAR(255) DEFAULT NULL,

PRIMARY KEY (end_code_id)

)

ENGINE = INNODB

AVG_ROW_LENGTH = 5461

CHARACTER SET utf8

COLLATE utf8_general_ci;

DROP TABLE IF EXISTS logtype;

CREATE TABLE logtype (

log_type_id INT(11) UNSIGNED NOT NULL,

log_type_name VARCHAR(31) NOT NULL,

description VARCHAR(255) DEFAULT NULL,

PRIMARY KEY (log_type_id)

)

ENGINE = INNODB

AVG_ROW_LENGTH = 4096

CHARACTER SET utf8

COLLATE utf8_general_ci;

DROP TABLE IF EXISTS nncldata;

CREATE TABLE nncldata (

nncl_data_id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,

first_mac INT(11) UNSIGNED NOT NULL,

last_mac INT(11) UNSIGNED NOT NULL,

host_mac INT(11) UNSIGNED DEFAULT NULL,

PRIMARY KEY (nncl_data_id)

)

ENGINE = INNODB

AUTO_INCREMENT = 4

AVG_ROW_LENGTH = 5461

CHARACTER SET utf8

COLLATE utf8_general_ci;

DROP TABLE IF EXISTS testmode;

CREATE TABLE testmode (

test_mode_id INT(11) UNSIGNED NOT NULL,

test_mode_name VARCHAR(30) NOT NULL,

description VARCHAR(255) DEFAULT NULL,

nncl_only TINYINT(1) NOT NULL,

PRIMARY KEY (test_mode_id)

)

ENGINE = INNODB

AVG_ROW_LENGTH = 5461

CHARACTER SET utf8

COLLATE utf8_general_ci;

DROP TABLE IF EXISTS usertype;

CREATE TABLE usertype (

user_type_id INT(11) UNSIGNED NOT NULL,

user_type_name VARCHAR(50) NOT NULL,

description VARCHAR(255) DEFAULT NULL,

can_add TINYINT(1) NOT NULL,

can_delete TINYINT(1) NOT NULL,

PRIMARY KEY (user_type_id)

)

ENGINE = INNODB

AVG_ROW_LENGTH = 5461

CHARACTER SET utf8

COLLATE utf8_general_ci;

DROP TABLE IF EXISTS user;

CREATE TABLE user (

login VARCHAR(30) NOT NULL DEFAULT '',

`password` VARCHAR(50) NOT NULL,

email VARCHAR(100) NOT NULL,

user_type INT(11) UNSIGNED NOT NULL,

first_name VARCHAR(255) NOT NULL,

second_name VARCHAR(255) NOT NULL,

third_name VARCHAR(255) NOT NULL,

PRIMARY KEY (login),

INDEX FK_user_usertype_user_type_id (user_type),

CONSTRAINT FK_user_usertype_user_type_id FOREIGN KEY (user_type)

REFERENCES usertype(user_type_id) ON DELETE CASCADE ON UPDATE RESTRICT

)

ENGINE = INNODB

AVG_ROW_LENGTH = 5461

CHARACTER SET utf8

COLLATE utf8_general_ci;

DROP TABLE IF EXISTS attest;

CREATE TABLE attest (

at_test_id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,

at_test_mode INT(11) UNSIGNED NOT NULL,

`begin` DATETIME NOT NULL,

end DATETIME NOT NULL,

end_code INT(11) UNSIGNED NOT NULL,

user_login VARCHAR(255) NOT NULL,

PRIMARY KEY (at_test_id),

INDEX FK_attest_endcode_end_code_id (end_code),

INDEX FK_attest_testmode_test_mode_id (at_test_mode),

INDEX FK_attest_user_login (user_login),

CONSTRAINT FK_attest_endcode_end_code_id FOREIGN KEY (end_code)

REFERENCES endcode(end_code_id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT FK_attest_testmode_test_mode_id FOREIGN KEY (at_test_mode)

REFERENCES testmode(test_mode_id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT FK_attest_user_login FOREIGN KEY (user_login)

REFERENCES user(login) ON DELETE CASCADE ON UPDATE CASCADE

)

ENGINE = INNODB

AUTO_INCREMENT = 12

AVG_ROW_LENGTH = 1489

CHARACTER SET utf8

COLLATE utf8_general_ci;

DROP TABLE IF EXISTS nncltest;

CREATE TABLE nncltest (

nncl_test_id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,

nncl_test_mode INT(11) UNSIGNED NOT NULL,

`begin` DATETIME NOT NULL,

end DATETIME NOT NULL,

command_count INT(11) UNSIGNED NOT NULL,

no_answer_count INT(11) UNSIGNED NOT NULL,

user_login VARCHAR(30) NOT NULL,

end_code INT(11) UNSIGNED NOT NULL,

error_count INT(11) UNSIGNED NOT NULL,

input_data INT(11) UNSIGNED NOT NULL,

PRIMARY KEY (nncl_test_id),

INDEX FK_nncltest_endcode_end_code_id (end_code),

INDEX FK_nncltest_nncl_data_nncl_data_id (input_data),

INDEX FK_nncltest_testmode_test_mode_id (nncl_test_mode),

INDEX FK_nncltest_user_login (user_login),

CONSTRAINT FK_nncltest_endcode_end_code_id FOREIGN KEY (end_code)

REFERENCES endcode(end_code_id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT FK_nncltest_nncl_data_nncl_data_id FOREIGN KEY (input_data)

REFERENCES nncldata(nncl_data_id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT FK_nncltest_testmode_test_mode_id FOREIGN KEY (nncl_test_mode)

REFERENCES testmode(test_mode_id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT FK_nncltest_user_login FOREIGN KEY (user_login)

REFERENCES user(login) ON DELETE CASCADE ON UPDATE CASCADE

)

ENGINE = INNODB

AUTO_INCREMENT = 7

AVG_ROW_LENGTH = 4096

CHARACTER SET utf8

COLLATE utf8_general_ci;

DROP TABLE IF EXISTS atlog;

CREATE TABLE atlog (

at_log_id INT(11) UNSIGNED NOT NULL,

at_test INT(11) UNSIGNED NOT NULL,

at_log_type INT(11) UNSIGNED NOT NULL,

at_log_file VARCHAR(255) NOT NULL,

description VARCHAR(255) DEFAULT NULL,

PRIMARY KEY (at_log_id),

INDEX FK_atlog_attest_at_test_id (at_test),

INDEX FK_atlog_logtype_log_type_id (at_log_type),

CONSTRAINT FK_atlog_attest_at_test_id FOREIGN KEY (at_test)

REFERENCES attest(at_test_id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT FK_atlog_logtype_log_type_id FOREIGN KEY (at_log_type)

REFERENCES logtype(log_type_id) ON DELETE CASCADE ON UPDATE CASCADE

)

ENGINE = INNODB

CHARACTER SET utf8

COLLATE utf8_general_ci;

DROP TABLE IF EXISTS nncllog;

CREATE TABLE nncllog (

nncl_log_id INT(11) UNSIGNED NOT NULL,

nncl_test INT(11) UNSIGNED NOT NULL,

nncl_log_file MEDIUMBLOB NOT NULL,

nncl_log_type INT(11) UNSIGNED NOT NULL,

description VARCHAR(255) DEFAULT NULL,

PRIMARY KEY (nncl_log_id),

INDEX FK_nncllog_logtype_log_type_id (nncl_log_type),

INDEX FK_nncllog_nncltest_nncl_test_id (nncl_test),

CONSTRAINT FK_nncllog_logtype_log_type_id FOREIGN KEY (nncl_log_type)

REFERENCES logtype(log_type_id) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT FK_nncllog_nncltest_nncl_test_id FOREIGN KEY (nncl_test)

REFERENCES nncltest(nncl_test_id) ON DELETE CASCADE ON UPDATE CASCADE)

ENGINE = INNODB

AVG_ROW_LENGTH = 147456

CHARACTER SET utf8

COLLATE utf8_general_ci;

DELIMITER $$

DROP PROCEDURE IF EXISTS get_at_logs_list$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_at_logs_list(test_id INT(11))

BEGIN

SELECT LOG.at_log_file, LT.log_type_name, LOG.description

FROM plctesterdb.atlog AS LOG, plctesterdb.logtype AS LT

WHERE LOG.at_test = test_id AND LOG.at_log_type = LT.log_type_id;

END

$$

DROP PROCEDURE IF EXISTS get_at_tests_list$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_at_tests_list(begin_date DATE, end_date DATE, login VARCHAR(30), end_code INT(11), test_mode INT(11))

BEGIN

CASE

/*Все данные*/

WHEN login <> '' AND end_code <> -1 AND test_mode <> -1 THEN

SELECT TS.at_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.attest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.at_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.user_login = login AND TS.end_code = end_code AND TS.at_test_mode = test_mode;

/*Только логин и завершение*/

WHEN login <> '' AND end_code <> -1 THEN

SELECT TS.at_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.attest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.at_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.user_login = login AND TS.end_code = end_code;

WHEN login <> '' AND test_mode <> -1 THEN

SELECT TS.at_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.attest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.at_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.user_login = login AND TS.at_test_mode = test_mode;

/*Только режим и завершение*/

WHEN end_code <> -1 AND test_mode <> -1 THEN

SELECT TS.at_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.attest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.at_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.end_code = end_code AND TS.at_test_mode = test_mode;

/*Только логин*/

WHEN login <> '' THEN

SELECT TS.at_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.attest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.at_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.user_login = login;

/*Только завершение*/

WHEN end_code <> -1 THEN

SELECT TS.at_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.attest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.at_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.end_code = end_code;

/*Только режим*/

WHEN test_mode <> -1 THEN

SELECT TS.at_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.attest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.at_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.at_test_mode = test_mode;

ELSE

SELECT TS.at_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.attest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.at_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date;

END CASE;

END

$$

Описание для процедуры get_at_test_info

DROP PROCEDURE IF EXISTS get_at_test_info$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_at_test_info(test_id INT)

BEGIN

SELECT TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.attest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.at_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.at_test_id = test_id;

END $$

Описание для процедуры get_end_codes_list

DROP PROCEDURE IF EXISTS get_end_codes_list$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_end_codes_list()

BEGIN

SELECT end_code_name, description FROM endcode; END

$$

Описание для процедуры get_log_types_list

DROP PROCEDURE IF EXISTS get_log_types_list$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_log_types_list()

BEGIN

SELECT log_type_name, description FROM logtype;

END

$$

Описание для процедуры get_nncl_logs_list

DROP PROCEDURE IF EXISTS get_nncl_logs_list$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_nncl_logs_list(test_id INT(11))

BEGIN

SELECT LOG.nncl_log_file, LT.log_type_name, LOG.description

FROM plctesterdb.nncllog AS LOG INNER JOIN plctesterdb.logtype AS LT ON(LOG.nncl_log_type = LT.log_type_id)

WHERE LOG.nncl_test = test_id;

END

$$

DROP PROCEDURE IF EXISTS get_nncl_tests_list$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_nncl_tests_list(begin_date DATE, end_date DATE, login VARCHAR(30), end_code INT(11), test_mode INT(11))

BEGIN

CASE

/*Все данные*/

WHEN login <> '' AND end_code <> -1 AND test_mode <> -1 THEN

SELECT TS.nncl_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.nncltest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.nncl_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.user_login = login AND TS.end_code = end_code AND TS.nncl_test_mode = test_mode;

/*Только логин и завершение*/

WHEN login <> '' AND end_code <> -1 THEN

SELECT TS.nncl_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.nncltest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.nncl_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.user_login = login AND TS.end_code = end_code;

/*Только логин и режим*/

WHEN login <> '' AND test_mode <> -1 THEN

SELECT TS.nncl_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.nncltest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.nncl_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.user_login = login AND TS.nncl_test_mode = test_mode;

/*Только режим и завершение*/

WHEN end_code <> -1 AND test_mode <> -1 THEN

SELECT TS.nncl_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.nncltest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.nncl_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.end_code = end_code AND TS.nncl_test_mode = test_mode;

/*Только логин*/

WHEN login <> '' THEN

SELECT TS.nncl_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.nncltest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.nncl_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.user_login = login;

WHEN end_code <> -1 THEN

SELECT TS.nncl_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.nncltest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.nncl_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.end_code = end_code;

/*Только режим*/

WHEN test_mode <> -1 THEN

SELECT TS.nncl_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.nncltest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.nncl_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date AND TS.nncl_test_mode = test_mode;

ELSE

SELECT TS.nncl_test_id, TS.begin, TS.end, TM.test_mode_name, EC.end_code_name, TS.user_login

FROM plctesterdb.nncltest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.nncl_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

WHERE TS.begin BETWEEN begin_date AND end_date;

END CASE;

END

$$

DROP PROCEDURE IF EXISTS get_nncl_test_info$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_nncl_test_info(test_id INT)

BEGIN

SELECT TS.begin, TS.end, TM.test_mode_name, DA.first_mac, DA.last_mac, DA.host_mac, EC.end_code_name, TS.command_count, TS.error_count, TS.no_answer_count, TS.user_login

FROM plctesterdb.nncltest AS TS

INNER JOIN plctesterdb.testmode AS TM ON (TS.nncl_test_mode = TM.test_mode_id)

INNER JOIN plctesterdb.endcode AS EC ON (TS.end_code = EC.end_code_id)

INNER JOIN plctesterdb.nncldata AS DA ON (TS.input_data = DA.nncl_data_id)

WHERE TS.nncl_test_id = test_id;

END

$$

DROP PROCEDURE IF EXISTS get_test_modes_list$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_test_modes_list()

BEGIN

SELECT test_mode_name, description FROM testmode;

END

$$

DROP PROCEDURE IF EXISTS get_users_list$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_users_list()

BEGIN

SELECT login, first_name, second_name, third_name, email FROM user;

END

$$

DROP PROCEDURE IF EXISTS get_user_info$$

CREATE DEFINER = 'root'@'localhost'

PROCEDURE get_user_info(user_login VARCHAR(30))

BEGIN

SELECT US.first_name, US.second_name, US.third_name, US.email, UST.user_type_name FROM plctesterdb.user AS US INNER JOIN plctesterdb.usertype AS UST ON (US.user_type = UST.user_type_id) WHERE US.login = user_login;

END

$$

DELIMITER;

Включение внешних ключей

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

Приложение Д

Графический интерфейс модуля PLCTester и web-приложения

Рисунок Д.1 - Главная форма модуля PLCTester (тест AT-команд)

Рисунок Д.2 - Главная форма модуля PLCTester (конфигурирование)

Рисунок Д.3 - Главная форма модуля PLCTester (настройки и запланированные задачи)

Рисунок Д.4 - Форма авторизации web-приложения

Рисунок Д.5 - Основная часть главной страницы web-приложения

Рисунок Д.6 - Основная часть страницы информации о тестировании

Размещено на Allbest.ru


Подобные документы

  • Оценка организационной структуры и процесс реализации информационной подсистемы отдела менеджмента предприятия. Требования к информационной подсистеме и техническому обеспечению. Технико-экономическое обоснование разработки информационной подсистемы.

    дипломная работа [2,1 M], добавлен 29.06.2011

  • Описание особенностей подсистемы обеспечения медикаментами. Разработка структуры базы данных, схемы алгоритма и программного модуля, структуры реестра. Обоснование выбора языка программирования. Оценка надежности и классификация ошибок программы.

    дипломная работа [1,3 M], добавлен 25.12.2014

  • Разработка автоматизированной информационной подсистемы учета свидетельств обязательного пенсионного страхования для Управления Пенсионного фонда России. Атрибуты сущностей базы данных, создание интерфейса формы и описание логической структуры программы.

    дипломная работа [7,5 M], добавлен 24.06.2011

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

    курсовая работа [1,1 M], добавлен 16.01.2013

  • Общие сведения о платформе Microsoft NET Framework. Разработка приложения "Поставка и реализация программного обеспечения", содержащего базу данных о каталогах адресов в Internet. Описание логической структуры. Требования к техническому обеспечению.

    курсовая работа [2,4 M], добавлен 28.06.2011

  • Моделирование предметной области. Состав программного модуля. Разработка логической структуры единой базы данных банковской информационной системы "БИС". Создание экранных форм для ввода и корректировки информации. Разработка интерфейса пользователя.

    курсовая работа [1,8 M], добавлен 17.05.2016

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

    курсовая работа [926,7 K], добавлен 20.05.2015

  • Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.

    курсовая работа [81,7 K], добавлен 18.08.2014

  • Проектирование функциональной структуры подсистемы "Склад". Даталогическое проектирование информационной базы данных и описание применяемых средств защиты информации. Особенности работы с NET Framework. Расчет экономической эффективности проекта.

    дипломная работа [5,6 M], добавлен 29.06.2011

  • Создание логической модели базы данных информационной подсистемы "Computers". Ввод атрибутов, первичных ключей сущностей базы данных. Требования к центральному процессору, монитору, принтеру. Оценка экономической эффективности внедрения программы.

    дипломная работа [1,2 M], добавлен 01.07.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.