Автоматизированная система калибровки и поверки комплекса технических средств программно-аппаратного диагностического комплекса "Луг-1"

Разработка программного обеспечения для автоматизированной системы калибровки и поверки комплекса технических средств ПАДК "Луг-1". Аналитический обзор аналогов. Проектирование пользовательского интерфейса. Средства разработки программного обеспечения.

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

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

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

6. Организационно-функциональная структура

Организационно-функциональная структура системы калибровки ПАДК "ЛУГ" представлена на рис. 5.

Рис. 5. Организационно-функциональная структура

Декомпозиция структуры системы представлена на рис.6.

Рис. 6. Декомпозиция организационно-функциональной структуры системы

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

· число образцов;

· число измерений каждого образца;

· данные измерений.

После ввода данных оператором выбирается модель калибровки: основной метод (модель 1 или модель 2), или точечный метод. На этом участие оператора в построении калибровочной функции заканчивается.

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

· калибровочная функция, построенная согласно выбранной модели;

· вывод об адекватности функции и, соответственно, ее применимости к дальнейшему использованию;

· сохранение введенных данных, сохранение результатов (параметров калибровочной функции);

· Графики полученных функций.

7. Инфологическая модель

Инфологическая модель предметной области (ПрО) представляет собой описание структуры и динамики ПрО, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Это выражается в терминах не отдельных объектов предметной области и связей между ними, а их типов, связанных с ними ограничений целостности и техпроцессов, которые приводят к переходу предметной области из одного состояния в другое.

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

Одной из наиболее популярных семантических моделей данных является модель "Сущность-связь" (ER-модель).

Основными понятиями ER-модели являются сущность, связь и атрибут.

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

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

Связь - это графически изображаемая ассоциация, устанавливаемая между двумя сущностями. Эта ассоциация всегда является бинарной и может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь) [15].

Стержневая сущность - независимая сущность.

Ассоциативная сущность - связь вида "многие-ко-многим" между двумя или более сущностями или экземплярами сущности.

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

Сущность обозначения - связь "многие-к-одной", "одна-ко-многим", не зависит от обозначаемой сущности.

Инфологическая модель процесса калибровки ПАДК "ЛУГ" представлена на рис.7.

Рис. 7 Инфологическая модель процесса калибровки

Стержневые сущности: ПАДК "ЛУГ", ОБРАЗЕЦ, МАССИВ ИЗМЕРЕНИЙ, КАЛИБРОВОЧНАЯ ФУНКЦИЯ, КАЛИБРОВОЧНАЯ МОДЕЛЬ.

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

Характеристическая сущность: расчетный критерий Фишера.

8. Виды обеспечения системы

Согласно техническому заданию (Приложение 4), которое является исходным материалом для создания информационной системы и отвечает требованиям ГОСТ 34.602.89 "Техническое задание на создание автоматизированной системы" и ГОСТ 19.201-78 "Техническое задание. Требования к содержанию и оформлению" были сформулированы и реализованы требования к следующим видам обеспечения:

· информационное обеспечение;

· лингвистическое обеспечение;

· математическое обеспечение;

· программное обеспечение;

· техническое обеспечение.

8.1 Информационное обеспечение

Информационное обеспечение - совокупность форм документов, классификаторов, нормативной базы и реализованных решений по объемам, размещению и формам существования информации, применяемой в автоматизированной системе при ее функционировании [11].

ИО системы включает в себя внемашинное и внутримашинное ИО.

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

Внутримашинное ИО выполнено в виде набора таблиц БД, составляющих файловое хранилище.

8.1.1 Структура базы данных

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

Рис. 8. Схема базы данных

Спроектированная база данных включает в себя следующие таблицы:

Таблица 1

S_PRIBOR (Справочник "Локаторы")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_PRIBOR

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

ID_PRIBORTYPE

ID типа прибора

Целое

Обязательное

Внешний ключ

MODEL

Модель

Строка (255)

Обязательное

SERIAL_NUMBER

Серийный номер

Строка (255)

Обязательное

CREATED_BY

Пользователь системы, создавший запись о приборе

Строка (30)

Обязательное

CREATE_DATETIME

Дата\Время внесения информации о приборе в систему

Дата\Время

Обязательное

MODIFIED_BY

Пользователь системы, который последним менял информацию о приборе

Строка (30)

Необязательное

MODIFY_DATETIME

Дата\Время последнего изменения информации о приборе

Дата\Время

Необязательное

CHARACTERISTICS

Характеристики прибора

Текст

Необязательное

POVERKA_PERIOD

Периодичность проведения поверки

Целое

Обязательное

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

Таблица 2

S_ETALON (Справочник "Эталонные образцы")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

ID_ETALON

ID набора эталонов

Целое

Обязательное

Внешний ключ

NUM_OBRAZETS

Номер образца

Целое

Обязательное

ETALON_VALUE

Эталонное значение

Действительное

Обязательное

Таблица содержит эталонные образцы измерений и ссылку на таблицу с эталонным набором (к которому отнесен данный эталон).

Таблица 3

T_ETALONNABOR (Справочник "Наборы эталонов")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_ETALON

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

ID_OBJECTIZMER

ID объекта измерения

Целое

Обязательное

Внешний ключ

PROFILE_NAME

Название набора

Строка (255)

Обязательное

CREATED_BY

Пользователь системы, создавший эталонный набор

Строка (30)

Обязательное

CREATE_DATETIME

Дата\Время создания эталонного набора

Дата\Время

Обязательное

MODIFIED_BY

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

Строка (30)

Необязательное

MODIFY_DATETIME

Дата\Время последнего изменения данных в эталонном наборе

Дата\Время

Необязательное

Таблица содержит основные данные по имеющимся в системе эталонным наборам.

Таблица 4

T_POVERKA (Таблица "Поверка локаторов")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_POVERKA

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

ID_PRIBOR

ID локатора

Целое

Обязательное

ID_ETALONNABOR

ID эталонного набора, по которому проводилась калибровка

Целое

Обязательное

DATE

Дата проведения

Дата

Обязательное

CREATED_BY

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

Строка (30)

Обязательное

CREATE_DATETIME

Дата\Время внесения информации в систему о проведенной поверке

Дата\Время

Обязательное

RESULT_TEXT

Результат поверки

Текст

Обязательное

KALIBR_AKT

Акт о проведенной поверке

Файл

Необязательное

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

Таблица 5

T_ZAMER_DATA (Таблица "Данные замеров")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_IZMER

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

ID_POVERKA

ID поверки

Целое

Обязательное

ID_OBRAZETS

ID эталонного образца, по которому проводилось измерение

Целое

Обязательное

NUM_ZAMER

Порядковый номер замера

Целое

Обязательное

VALUE_ZAMER

Результат замера

Обязательное

Таблица содержит данные проведенных замеров и их соответствие к прибору, образцу и т.п.

Таблица 6

T_RESULT_POVERKA (Таблица "Результаты калибровки")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_RESULT

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

ID_POVERKA

ID поверки

Целое

Обязательное

RESULT_MAIN_A

Параметр a по основному методу

Действительное

Обязательное

RESULT_MAIN_ B

Параметр b по основному методу

Действительное

Обязательное

RESULT_MAIN_G

Параметр ?2 по основному методу

Действительное

Обязательное

RESULT_DOT_A

Параметр a по "точечному" методу

Действительное

Обязательное

RESULT_DOT_ B

Параметр b по "точечному" методу

Действительное

Обязательное

RESULT_DOT_G

Параметр ?2 по "точечному" методу

Действительное

Обязательное

RESULT_FORK_A

Параметр a по методу "вилки"

Действительное

Обязательное

RESULT_FORK_ B

Параметр b по методу "вилки"

Действительное

Обязательное

RESULT_FORK_G

Параметр ?2 по методу "вилки"

Действительное

Обязательное

Таблица содержит результаты построений калибровочных моделей ISO 11095.

Таблица 7

SPRIBORTYPE (Справочник "Тип прибора")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_TYPE

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

PRIBOR_TYPE

Наименование типа

Строка (255)

Обязательное

COMMENT

Расширенное описание

Текст

Необязательное

TEX_XARAKTERIST

Технические характеристики

Текст

Необязательное

KALIBR_INSTRUCTIONS

Порядок проведения калибровки\поверки

Текст

Обязательное

Таблица содержит типы приборов, зарегистрированные в системе.

Таблица 8

S_OBJECTIZMER (Справочник "Объект измерения")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_IZMER

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

OBJECT_IZMER

Объект измерения

Строка (255)

Обязательное

COMMENT

Расширенное описание

Текст

Необязательное

Таблица содержит список объектов, измерение которых предусмотрено приборами.

Таблица 9

TPRIBORIZMER (Таблица "Соответствия "Типы приборов-объекты измерений")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_PS

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

ID_PRIBORTYPE

ID типа прибора

Целое

Обязательное

ID_IZMER

ID объекта измерения

Целое

Обязательное

Таблица содержит соответствия типов приборов (например, "ЛУГ-1", "Бутон" и объектов измерения этих приборов (метан и этанол соответственно).

Таблица 10

TPRIBORDOCUMENT (Таблица "Документация к прибору")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_DOC

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

ID_PRIBOR

ID прибора

Целое

Обязательное

DocName

Название документа

Строка (255)

Обязательное

FILEDOCUMENT

Документ

Файл

Обязательное

Comment

Комментарий к документу

Текст

Необязательное

CREATED_BY

Имя пользователя, создавшего документ

Строка (255)

Обязательное

CREATE_DATETIME

Дата\Время включения документа в систему

Дата\Время

Обязательное

Таблица содержит документы, приложенные к прибору в ходе работы с ним (например, тех. паспорт, инструкция использования, акты техсостояния, акты ремонта и т.п.).

Таблица 11

S_USERS (Таблица "Пользователи системы")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

ID_USER

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

LOGIN

Логин пользователя

Строка

Обязательное, уникальное

Password

Пароль пользователя

Строка

Обязательное, уникальное

FIO

ФИО пользователя

Строка

Обязательное

USER_TYPE

Тип пользователя

Строка

Обязательное

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

Таблица 12

S_USERSRIGHTS (Таблица "Таблица доступа к операциям")

Атрибут

Наименование

Тип данных

Обязательность поля

Ключ

USER_ID

Ключевое поле

Целое

Обязательное, уникальное

Первичный ключ

OPERATION

Наименование операции

Текст

Обязательное

PERMISSION

Уровень доступа

Текст

Озязательное

Таблица отвечает за хранение настроек учетных записей системы.

8.2 Лингвистическое обеспечение

Лингвистическое обеспечение - совокупность средств и правил для формализации естественного языка [11].

Для построения инфологической модели предметной области использовалось средство разработки структуры БД - ERWin. С помощью наглядной модели БД можно оптимизировать ее структуру и добиться полного соответствия требованиям и задачам организации.

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

При создании автоматизированной системы использовался язык программирования Visual C#, входящий в состав пакета Microsoft Visual Studio 2012.

При создании базы данных в качестве СУБД использовалась Microsoft SQL Server 2012. Работа с информацией, содержащейся в базе данных, осуществлялась с использованием языка структурированных запросов SQL.

8.3 Математическое обеспечение

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

(14)

(15)

(16) где

(17)

(18)

(19)

(20)

(21)

(22)

Калибровочная функция при предположении о пропорциональности остатка стандартного отклонения в общем случае записывается так:

(23)

где

xnпринятое значение n-ого образца (n = 1,…,N)

ynkk-ое измерение n-ого образца (k = 1,…,K)

отображение вероятного значения n-ого образца

отклонение между ynk и вероятным значением n-ого образца (эти отклонения приняты независимыми и нормально распределенными со средним равным нулю и дисперсией пропорциональной xn2), то есть var () = var () = xn2 ф2

, и три параметра для оценки данных, собранных в течение калибровки

, отрезок и наклон калибровочной функции

точность измерения из измерительной системы

Эта модель может быть преобразована в эквивалентную модель 2, то есть с ошибками имеющими постоянную дисперсию. Преобразование состоит из деления на обеих сторон уравнения (23):

. Это дает

(24) или эквивалентное

(25) где

(26)

(27)

(28)

(29)

(30)

(31), где

(32)

(33)

(34)

(35)

(36)

(37)

(38)

(39)

Если используется модель с пропорциональным остатком стандартного отклонения, тогда строится, как показано на таблице 1, ANOVA таблица.

8.4 Программное обеспечение

Программное обеспечение - совокупность программ на носителях данных и программных документов, предназначенная для отладки, функционирования и проверки работоспособности АС. [11]

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

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

Базовым ПО является:

§ операционная система Microsoft Windows XP;

§ СУБД Microsoft SQL Server 2012;

§ среда программирования Microsoft Visual Studio 2012.

Прикладное ПО предназначено для решения конкретных задач пользователя. Прикладным ПО является:

· Разрабатываемое приложение;

· Табличный процессор Microsoft Excel, версии не ниже 2003.

Разработанная система калибровки состоит из одного исполняемого файла с именем ASK_KTS. EXE. Исходный код приложения частично приведен в Приложении 4.

8.5 Техническое обеспечение

Технические средства предназначены для решения следующих задач:

· выполнение программного обеспечения системы;

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

· хранение на магнитных (оптических) носителях баз данных и программ;

· визуализация информации.

Разрабатываемая система в техническом ракурсе состоит из двух комплексов:

· Рабочая станция. На рабочей станции устанавливается разрабатываемая АС;

· Сервер базы данных. На сервере базы данных должна быть установлена СУБД.

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

Минимальные технические характеристики для рабочей станции:

· процессор Pentium 2GHz или аналогичный;

· оперативная память 1024MB;

· видеоадаптер с объёмом памяти 64MB;

· жесткий диск объёмом 80GB;

· минимальное разрешение экрана монитора 1024x768;

· сетевой адаптер 100 Мбит;

· клавиатура, манипулятор "мышь";

· цветной принтер для распечатки отчетов и графиков калибровочных функций; тип принтера неважен.

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

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

9. Структура программного обеспечения системы

Общая схема организации программного обеспечения представлена на рис.9.

Рис. 9. Структура программного обеспечения.

Разрабатываемая система логически состоит из 7 подсистем:

1) Подсистема ввода статичных данных. Данная подсистема должна выполнять следующие функции:

· ввод данных и контроль ввода данных;

· передача введённых данных в подсистему работы с БД для сохранения;

· загрузка данных из БД;

· проверка корректности введённых данных;

· Ведение новых стандартных образцов;

· Ведение учета зарегистрированных приборов-локаторов.

2) Подсистема ввода измерений. Данная подсистема должна выполнять следующие функции:

· ввод данных и контроль ввода данных;

· автоматизированное добавление необходимого числа измерений.

3) Подсистема вычисления калибровочной функции. Данная подсистема должна выполнять следующие функции:

· Анализ введенных данных;

· Вычисление калибровочной функции.

4) Подсистема вычисления результатов калибровки. Данная подсистема должна выполнять следующие функции:

· Анализ найденных калибровочных функций;

· Нахождение области действия калибровочной функции;

· Принятие решения об адекватности функции и применимости в работе;

· Принятие решения о работоспособности локатора утечек газа;

· Передача данных в подсистемы статистики и учета поверок.

5) Подсистема статистики, экспорта данных и учета поверок, выполняет следующие функции:

· формирование и вывод отчёта о результатах калибровки\поверки;

· сохранение результатов проведенных калибровок и поверок для каждого прибора;

· сохранение отчёта;

· вывод отчёта на печать в табличном виде и в виде графиков;

· вывод сохраненных ранее результатов диагностики;

· вывод объяснений о выданном отчёте;

· экспорт данных в табличном и графическом виде;

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

6) Подсистема редактирования БД. Подсистема редактирования БД должна выполнять следующие функции:

· выбор и просмотр таблиц базы данных;

· редактирование записей в таблице;

· добавление записей;

· удаление записей;

· контроль корректности вводимых данных;

При вводе некорректных данных будет выведено соответствующее предупреждение.

7) Подсистема администрирования. Подсистема администрирования должна выполнять следующие функции:

· добавление новых пользователей;

· назначение и изменение уровня доступа пользователей;

· удаление пользователей.

10. Алгоритмическая модель процесса калибровки

Блок-схема процесса калибровки представлена на рис. 10.

Рис. 10 Алгоритм модели процесса калибровки

11. Интерфейс системы

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

На рис. 11.1 изображена форма входа в систему.

Рис. 11.1 Форма входа в систему

При нажатии на кнопку "Вход" происходит проверка пары "Логин-пароль". В случае успешного прохождения проверки, Пользователь попадает на форму "Главное меню" (рис 11.2). В случае не прохождения проверки, пользователь получает соответствующее сообщение.

Рис. 11.2 Главное меню системы

На рис. 11.2 изображена форма "Главное меню".

Блок "Работа со справочниками" содержит кнопки вызова редактора соответствующего справочника системы.

Кнопка "Стандартные образцы" вызывает форму работы с наборами эталонов (стандартных образцов) (рис. 11.3, 11.4).

Кнопка "Объекты измерений" позволяет вызвать форму работы со справочником "Объекты измерений" (Рис. 11.5, 11.6).

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

Кнопка "Приборы" вызывает форму работы с приборами, зарегистрированными в системе (Рис. 11.9-11.12).

Кнопка "Типы приборов" вызывает форму работы со справочником "Типы приборов" (Рис. 11.7, 11.8).

Кнопка "Добавить прибор" вызывает форму регистрации в системе нового прибора (Рис. 11.10).

Блок "Прочее" содержит две кнопки: "Статистика" и "О программе".

Кнопка "Статистика" вызывает форму отображения статистики по ключевым параметрам системы.

Кнопка "О программе" вызывает форму "О программе", сообщающую краткую информацию о программе (Рис. 11.22).

Блок "Работа с пользователями" содержит кнопки для работы с зарегистрированными в системе пользователями.

Кнопка "Пользователи системы" вызывает форму работы с пользователями, зарегистрированными в системе (Рис. 11.17).

Кнопка "Добавить пользователя" вызывает форму добавления нового пользователя системы. (Рис. 11.18-11.20)

Кнопка "Настройки пользователя" вызывает форму просмотра и изменения личных данных текущего пользователя (Рис. 11.18-11.20).

Следует отметить, что кнопки "Пользователи системы" и "Добавить пользователя" недоступны для пользователей с ролью "Оператор системы".

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

Кнопка "Выход" - закрывает программу.

Форма "Наборы стандартных образцов" отображает существующие в системе наборы стандартных образцов.

Представленная на форме информация позволяет определить названия наборов, а также определить даты создания и последнего изменения каждого из наборов. Нажатие на кнопку "Добавить" или "Изменить" вызывает форму для добавления или изменения набора стандартных образцов кнопка "Удалить" производит удаление набора стандартных образцов; кнопка "Обновить" вызывает обновление на экране представленных данных.

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

Форма "Объекты измерений" содержит список объектов измерений, зарегистрированных в системе. а также представлены инструменты для работы с данными типами (кнопки "Добавить", "Изменить", "Удалить", "Обновить").

При нажатии на кнопки "Добавить" или "Удалить" вызывается форма редактирования объекта измерения. При нажатии на кнопку "Удалить" происходит вызов процедуры удаления. Кнопка "Обновить" позволяет обновить представленную на экране информацию. Кнопка "Закрыть" позволяет закрыть данную форму.

Форма "Добавление\изменение" вызывается из формы "Объекты измерений" и предназначена для добавления нового или редактирования существующего объекта измерения (газа или газовой смеси).

На форме "Типы приборов" отображен список зарегистрированных в системе типов приборов, а также представлены инструменты для работы с данными типами (кнопки "Добавить", "Изменить", "Удалить", "Обновить").

При нажатии на кнопки "Добавить" или "Удалить" вызывается форма редактирования типа прибора. При нажатии на кнопку "Удалить" происходит вызов процедуры удаления. Кнопка "Обновить" позволяет обновить представленную на экране информацию. Кнопка "Закрыть" позволяет закрыть данную форму.

Форма "Тип прибора" предназначена для создания нового или редактирования существующего типа прибора. На форме представлены блоки "Технические характеристики", "Калибровочная инструкция", "Среда применения", "Дополнительная информация".

Блок "Технические характеристики" предназначен для ввода технических данных данного типа приборов.

Блок "Калибровочная инструкция" предназначен для ввода калибровочной инструкции к данному типу приборов.

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

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

Форма "Приборы" отображает приборы, зарегистрированные в системы.

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

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

1) По типу прибора. Если пользователь установит чекбокс "Тип прибора" в активное положение и выберет тип в выпадающем списке, в таблице окажутся только те приборы, которые совпадают по заданному условию "Тип прибора".

2) По требованию поверки. Установка чекбокса "Показать только требующие поверки" ограничит вывод приборов - будут показаны только те, срок поверки которых уже наступил либо наступит в течении ближайших 7 дней.

Кнопки "Добавить прибор" и ""Просмотреть\изменить прибор" выводит форму работы с выбранным прибором (Рис.11.10).

Кнопка "Выполнить калибровку" вызывает форму "Подготовка к калибровке" для выбранного прибора.

При создании нового прибора на представленной форме необходимо заполнить поля "Тип прибора", "Что измеряет?", "Модель", "Серийный номер", "Периодичность поверки".

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

На закладке "Характеристики" оператор может указать основные данные прибора. Информация является сугубо справочной и не влияет на проведение процедур калибрования и поверки.

На закладке "Документы" представлен список документов, закрепленных за данным прибором.

Предполагаемые документы: Акты поверки, Инструкция по пользованию прибором, инструкция проведения калибровки и. т.д. Система позволяет хранить документы любого типа и любого размера.

Кнопка "Добавить" позволяет добавить новый документ; кнопка "Удалить" позволяет удалить из системы выбранный документ; кнопка "Скачать" позволяет выгрузить из базы данных локальную копию документа на компьютер; кнопка "Обновить" позволяет обновить список представленных документов.

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

Нажатие на кнопку "Калибровочный акт" напротив соответствующей записи позволяет просмотреть соответствующий калибровочный акт (если он был предварительно загружен оператором в систему).

Форма "Подготовка к калибровке" (Рис.11.13) вызывается по нажатию на кнопку "Выполнить калибровку" формы "Приборы" (рис.11.9).

Рис. 11.13 Форма "Подготовка к калибровке"

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

Нажатие на кнопку "Старт" вызывает форму "Калибровка\поверка" (Рис.11.14). Нажатие на кнопку "Отмена" закрывает форму.

Рис. 11.14 Форма "Калибровка\поверка"

На форме "Калибровка\Поверка" (рис.14.1) производится ввод данных, полученных от калибруемого прибора в ходе измерения стандартных калибровочных образцов. По горизонтали заданы стандартные образцы, по вертикали - число измерений стандартных образцов. Имеется возможность добавлять количество измерений с помощью кнопки "Добавить измерение".

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

Кнопка "График" построить график с указанием измеренных значений и калибровочной функции (Рис. 11.15), а также график остатков (Рис. 11.16).

Рис. 11.15 График функции калибровки

Рис. 11.16 График остатков

На форме "Список пользователей" (Рис.11.17) представлен список всех пользователей, зарегистрированных в системе.

Рис. 11.17 Форма "Список пользователей"

Всего в системе существует два типа пользователей - Администратор" и "Оператор". Чекбоксы "Показывать роль "Администратор" и "Показывать роль "Оператор" отвечают за отображение в списке пользователей, имеющих роли "Администратор" и "Оператор" соответственно.

Кнопка "Удалить пользователя" вызывает процедуру удаления зарегистрированного пользователя.

Кнопка "Обновить" обновляет список перечисленных пользователей.

Кнопки "Добавить пользователя" и "Изменить пользователя" открывают форму "Пользователь" (Рис. 11.18) в режиме добавления нового, либо редактирования существующего пользователя.

Рис. 11.18 Форма "Пользователь". Данные пользователя.

На закладке "Данные пользователя" имеются поля для ввода основных данных (ФИО пользователя, логин пользователя, Роль в системе). При создании или изменении данных поле "логин пользователя" проверяется на уникальность, т.е. в системе не может и не должно быть нескольких пользователей с одним и тем же логином.

Кнопка "Изменить пароль" вызывает форму изменения пароля (Рис.11.21). Данная кнопка доступна только в том случае, если пользователь просматривает информацию о самом себе.

На закладке "Настройки доступа роли "Оператор" (Рис.11.19) представлены инструменты для задания полномочий к основным операциям.

Рис.11.19 Закладка "Настройки доступа роли "Оператор".

Каждая из операций, перечисленных на данной закладке, имеет 4 уровня ограничения: "Полный запрет", "Чтение", "Изменение", "Полный доступ". Так как пользователи с ролью "Администратор" обладают функциями пользователей роли "Оператор", то для администраторов системы также возможно задание данных ограничений.

На закладке "Настройки доступа роли "Администратор" (Рис.11.20) представлены инструменты для задания полномочий к работе с ролями.

Рис.11.20 Закладка "Настройки доступа роли "Администратор".

Операции на данной закладке имеет два уровня доступа: "Запретить" и "Разрешить".

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

Форма "Изменения пароля" служит для изменения пароля пользователя при необходимости.

Рис.11.21 Форма "Изменение пароля"

При смене пароля обязательно заполнение всех полей ввода.

Форма "О программе" содержит справочную информацию о программе и её создателе.

Рис.11.22. Форма "О программе"

Заключение

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

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

Ввиду того, что при разработке АС использовались универсальные алгоритмы калибровки, было принято решение не ограничивать область работы программы локатором утечек газа ЛУГ-1. Разработанная система калибровки имеет возможность работать с приборами различных типов и различных моделей, работать с различными стандартными образцами, а также имеет инструменты для распределения и ограничения полномочий.

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

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

В качестве перспектив развития можно отметить возможность увеличения функционала - как в части новых алгоритмов калибровки, так и в прикладной области: например, путем создания алгоритма автоматической калибровки ПАДК "ЛУГ".

Созданный программный продукт успешно прошел тестовые испытания и готов к внедрению в опытную эксплуатацию.

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

1. Плюснин И.И., Бушмелева К.И., Бушмелев П. Е МОБИЛЬНАЯ СИСТЕМА ДИАГНОСТИЧЕСКОГО ОБСЛУЖИВАНИЯ И МОНИТОРИНГА ГАЗОПРОВОДНЫХ СИСТЕМ [Электронный ресурс] / Режим доступа: http://rae.ru/fs/? section=content&op=show_article&article_id=1635

2. Локатор утечек газа. Техническое описание и инструкция по эксплуатации.

3. Бушмелева, К.И. Дистанционное зондирование магистральных газопроводов: учеб. Пособие/К.И. Бушмелева, И.И. Плюснин; Сургут. Гос. Ун-т ХМАО Югры. - ИЦ СурГУ, 2013. - 121 с.

4. Померанцев, А. Калибровка [Электронный ресурс] /Российское хемометрическое общество. - Режим доступа: http://www.chemometrics.ru/materials/textbooks/calibration. htm

5. Яценко, Е.А. Методика калибровки измерительных приборов по набору стандартных образцов // Канд. диссертация. - 2003.

6. Калибровка [Электронный ресурс] /Режим доступа: http://ru. wikipedia.org/wiki/Калибровка

7. Государственные стандартные образцы - поверочные газовые смеси - http://ooo-monitoring.ru›products/gases/standards

8. Калибровка средств измерений [Электронный ресурс] /Режим доступа: http://www.rostest.ru/termins/detail. php? ELEMENT_ID=171

9. ГОСТ 34.602.89 "Техническое задание на создание автоматизированной системы"

10. ГОСТ 19.201-78 "Техническое задание. Требования к содержанию и оформлению"

11. ГОСТ 34.003-90 - Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения.

12. ГОСТ Р ИСО 11095-2007 "Статистические методы. Линейная калибровка с использованием образцов сравнения".

13. Программное обеспечение "Поверка сид" / http://www.metran.ru/netcat_files/1038/1009/Poverka_SID_Programmnoe_obespechenie. pdf

14. Beamex, world-class calibration solutions / http://www.beamex.com/

15. СИТФорум. Базы данных. Вводный курс. / http://citforum.ru/database/advanced_intro.

Приложения

Приложение 1

Таблица дисперсионного анализа ANOVA

Источники

ошибок

Число степеней свободы DF

Сумма квадратов SS

Деление столбцов

SS/DF

F - критерий (расчет. значен.)

F-критерий (табличное значение)

Функция калибровки

1

SSR=SST-SSE

Остатки

(Residual)

NK2-2

SSE

Неадекватность (Lack of fit)

N-2

SSE-SSP

"Чистая ошибка" (Pure error)

NK2-N

SSP

Общая

NK2-1

SST

, где N - количество СО, K - количество измерений каждого СО

Приложение 2

Значение F-критерия Фишера

При уровне значимости 0,05

d. f.2

d. f.1

1

2

3

4

5

6

7

8

1

161

200

216

225

230

234

237

239

2

18.51

19

19.16

19.25

19.30

19.33

19.36

19.37

3

10.13

9.55

9.28

9.19

9.01

8.94

8.88

8.84

4

7.71

6.94

6.59

6.39

6.26

6.16

6.09

6.04

5

6.61

5.79

5.41

5.19

5.05

4.95

4.88

4.82

6

5.99

5.14

4.76

4.53

4.39

4.28

4.21

4.15

7

5.59

4.74

4.35

4.12

3.97

3.87

3.79

3.73

8

5.32

4.46

4.07

3.84

3.69

3.58

3.5

3.44

9

5.12

4.26

3.86

3.63

3.48

3.37

3.29

3.23

10

4.96

4.1

3.71

3.48

3.33

3.22

3.14

3.07

11

4.84

3.98

3.59

3.36

3.2

3.09

3.01

2.95

12

4.75

3.88

3.49

3.26

3.11

3

2.92

2.85

13

4.67

3.8

3.41

3.18

3.02

2.92

2.84

2.77

14

4.6

3.74

3.34

3.11

2.96

2.85

2.77

2.7

15

4.54

3.68

3.29

3.06

2.9

2.79

2.7

2.64

16

4.49

3.63

3.24

3.01

2.85

2.74

2.66

2.59

17

4.45

3.59

6.2

2.96

2.81

2.7

2.62

2.55

18

4.41

3.55

3.16

2.93

2.77

2.66

2.58

2.51

19

4.38

3.52

3.13

2.9

2.74

2.63

2.55

2.48

20

4.35

3.49

3.1

2.87

2.71

2.6

2.52

2.45

21

4.32

3.47

3.07

2.84

2.68

2.57

2.49

2.42

22

4.3

3.44

3.05

2.82

2.66

2.55

2.47

2.4

23

4.28

3.42

3.03

2.8

2.64

2.53

2.45

2.38

24

4.26

3.4

3.01

2.78

2.62

2.51

2.43

2.36

25

4.24

3.88

2.99

2.76

2.6

2.49

2.41

2.34

26

4.22

3.37

2.98

2.74

2.59

2.47

2.39

2.32

27

4.21

3.35

2.96

2.73

2.57

2.46

2.37

2.3

28

4.2

3.34

2.95

2.71

2.56

2.44

2.36

2.29

29

4.18

3.33

2.93

2.7

2.54

2.43

2.35

2.28

30

4.17

3.32

2.92

2.69

2.53

2.42

2.34

2.27

40

4.08

3.23

2.84

2.61

2.45

2.34

2.25

2.18

50

4.03

3.18

2.79

2.56

2.4

2.29

2.2

2.13

60

4

3.15

2.76

2.52

2.37

2.25

2.17

2.1

100

3.94

3.09

2.7

2.46

2.3

2.19

2.1

2.03

?

3.84

2.99

2.6

2.37

2.21

2.09

2.01

1.94

d. f.2

d. f.1

9

10

11

12

14

16

20

30

?

1

241

242

243

244

245

246

248

250

254

2

19.38

19.39

19.4

19.41

19.42

19.43

19.44

19.46

19.5

3

8.81

8.78

8.76

8.74

8.71

8.69

8.66

8.62

8.53

4

6

5.96

5.93

5.91

5.87

5.84

5.8

5.74

5.63

5

4.78

4.74

4.7

4.68

4.64

4.6

4.56

4.5

4.36

6

4.1

4.06

4.03

4

3.96

3.92

3.87

3.81

3.67

7

3.68

3.63

3.6

3.57

3.52

3.49

3.44

3.38

3.23

8

3.39

3.34

3.31

3.28

3.23

3.2

3.15

3.08

2.93

9

3.18

3.13

3.1

3.07

3.02

2.98

2.93

2.86

2.71

10

3.02

2.97

2.94

2.91

2.86

2.82

2.77

2.7

2.54

11

2.9

2.86

2.82

2.79

2.74

2.7

2.65

2.57

2.4

12

2.8

2.76

2.72

2.69

2.64

2.6

2.54

2.46

2.3

13

2.72

2.67

2.63

2.6

2.55

2.51

2.46

2.38

2.21

14

2.65

2.6

2.56

2.53

2.48

2.44

2.39

2.31

2.13

15

2.59

2.55

2.51

2.48

2.43

2.39

2.33

2.25

2.07

16

2.54

2.49

2.45

2.42

2.37

2.33

2.28

2.2

2.01

17

2.5

2.45

2.41

2.38

2.33

2.29

2.23

2.15

1.96

18

2.46

2.41

2.37

2.34

2.29

2.25

2.19

2.11

1.92

19

2.43

2.38

2.34

2.31

2.26

2.21

2.15

2.07

1.88

20

2.4

2.35

2.31

2.28

2.23

2.18

2.12

2.04

1.84

21

2.37

2.32

2.28

2.25

2.2

2.15

2.09

2

1.81

22

2.35

2.3

2.26

2.23

2.18

2.13

2.07

1.98

1.78

23

2.32

2.28

2.24

2.2

2.14

2.1

2.04

1.96

1.76

24

2.3

2.26

2.22

2.18

2.13

2.09

2.02

1.94

1.73

25

2.26

2.24

2.2

2.16

2.11

2.06

2

1.92

1.71

26

2.27

2.22

2.18

2.15

2.1

2.05

1.99

1.9

1.69

27

2.25

2.2

2.16

2.13

2.08

2.03

1.97

1.88

1.67

28

2.24

2.19

2.15

2.12

2.06

2.02

1.96

1.87

1.65

29

2.22

2.18

2.14

2.1

2.05

2

1.94

1.85

1.64

30

2.21

2.16

2.12

2.09

2.04

1.99

1.93

1.84

1.62

40

2.12

2.07

2.04

2

1.95

1.9

1.84

1.74

1.51

50

2.07

2.02

1.98

1.95

1.9

1.85

1.78

1.69

1.44

60

2.04

1.99

1.95

1.92

1.86

1.81

1.75

1.65

1.39

100

1.97

1.92

1.88

1.85

1.79

1.75

1.68

1.57

1.28

?

1.88

1.83

1.79

1.75

1.69

1.64

1.57

1.46

1

Приложение 3

Государственные стандартные образцы - поверочные газовые смеси (ГСО-ПГС)

№ ГСО (№ ЭМ ВНИИМ)

Компонентный состав

Номинальное значение объемной (молярной) доли определяемого компонента

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

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

Пределы допускаемой погрешности ±Д *

Разряд

3896-87 (06.01.187)

метан [CH4]

2.5-7.5

ppm об.

1 абс.

(-1.6X+18.5) % отн.

2

воздух [воздух]

остальное

-

-

9071-2012 (06.01.1150)

метан [CH4]

5-500

ppm об.

16 % отн.

8 % отн.

2

воздух [воздух]

остальное

-

-

3897-87 (06.01.188)

метан [CH4]

9

ppm об.

1 абс.

0.7 абс.

2

воздух [воздух]

остальное

-

-

3898-87 (06.01.189)

метан [CH4]

10.5-15.0

ppm об.

1.0 абс

(-0.4X+10.0) % отн.

1

воздух [воздух]

остальное

-

-

3899-87 (06.01.190)

метан [CH4]

18

ppm об.

2 абс.

0.7 абс.

1

воздух [воздух]

остальное

-

-

3900-87 (06.01.191)

метан [CH4]

21-30

ppm об.

3 абс.

(-0.2X+11.0) % отн.

2

воздух [воздух]

остальное

-

-

3901-87 (06.01.192)

метан [CH4]

36-45

ppm об.

4 абс.

(-0.1X+7.8) % отн.

1

воздух [воздух]

остальное

-

-

3902-87 (06.01.193)

метан [CH4]

48-75

ppm об.

8 абс.

4 абс.

2

воздух [воздух]

остальное

-

-

3903-87 (06.01.194)

метан [CH4]

90-120

ppm об.

10 абс.

6 абс.

2

воздух [воздух]

остальное

-

-

4445-88 (06.01.439)

метан [CH4]

0.08-0.10

% об.

0.01 абс.

0.002 абс.

1

воздух [воздух]

остальное

-

-

9806-2011 (06.01.951)

метан [CH4]

0.1-0.2

% об.

0.03 абс.

5 % отн.

2

воздух [воздух]

остальное

-

-

4446-88 (06.01.440)

метан [CH4]

0.16-0.20

% об.

0.02 абс.

0.004 абс.

1

воздух [воздух]

остальное

-

-

3904-87 (06.01.195)

метан [CH4]

0.2-0.7

% об.

0.04 абс.

(-4X+5.6) % отн.

2

воздух [воздух]

остальное

-

-

9072-2012 (06.01.1151)

метан [CH4]

0.2

% об.

0.03 абс.

0.009 абс.

1

воздух [воздух]

остальное

-

-

3905-87 (06.01.196)

метан [CH4]

0.3-1.4

% об.

5 % отн.

(-1.8X+5.3) % отн.

2

воздух [воздух]

остальное

-

-

4272-88 (06.01.392)

метан [CH4]

0.75-2.50

% об.

0.06 абс.

(-0.6X+2.3) % отн.

1

воздух [воздух]

остальное

-

-

3907-87 (06.01.198)

метан [CH4]

0.8-2.5

% об.

0.15 абс.

(-0.9X+5.2) % отн.

2

воздух [воздух]

остальное

-

-

Приложение 4

ИСХОДНЫЙ КОД Приложения

// Форма входа в систему

using System;

using System. Collections. Generic;

using System.componentModel;

using System. Data;

using System. Drawing;

using System. Text;

using System. Windows. Forms;

using System. Data. SqlClient;

namespace AsuLug

{

public partial class OperatorMenuForm: Form

{

string lv_user_mode;

public OperatorMenuForm (string user_mode)

{

lv_user_mode = user_mode;

InitializeComponent ();

}

private void button6_Click (object sender, EventArgs e)

{

Form PriborsForm = new PriborsForm ();

PriborsForm. ShowDialog ();

PriborsForm. Dispose ();

}

private void button1_Click (object sender, EventArgs e)

{

Form EtalonNaborForm = new EtalonNaborForm ();

EtalonNaborForm. ShowDialog ();

EtalonNaborForm. Dispose ();

}

private void button4_Click (object sender, EventArgs e)

{

Form FillCalibrationForm = new FillCalibrationForm ("","");

FillCalibrationForm. ShowDialog ();

FillCalibrationForm. Dispose ();

}

private void button7_Click (object sender, EventArgs e)

{

Application. Exit ();

}

private void button2_Click (object sender, EventArgs e)

{

Form TypePriborListForm = new TypePriborListForm ();

TypePriborListForm. ShowDialog ();

TypePriborListForm. Dispose ();

}

private void button3_Click (object sender, EventArgs e)

{

Form SredaUsingListForm = new SredaUsingListForm ();

SredaUsingListForm. ShowDialog ();

SredaUsingListForm. Dispose ();

}

private void button9_Click (object sender, EventArgs e)

{

Form UserForm = new UserForm ("MODIFY", Program. id_user);

UserForm. ShowDialog ();

UserForm. Dispose ();

}

private void OperatorMenuForm_Load (object sender, EventArgs e)

{

if (lv_user_mode == "operator")

{

groupBox5. Visible = false;

this. Height = this. Height - 100;

}

}

private void button11_Click (object sender, EventArgs e)

{

Form UserForm = new UserForm ("CREATE", "");

UserForm. ShowDialog ();

UserForm. Dispose ();

}

private void button10_Click (object sender, EventArgs e)

{

Form UsersListForm = new UsersListForm ();

UsersListForm. ShowDialog ();

UsersListForm. Dispose ();

}

private void button8_Click (object sender, EventArgs e)

{

Form AboutForm = new AboutForm ();

AboutForm. ShowDialog ();

AboutForm. Dispose ();

}

}

}

using System;

using System. Collections. Generic;

using System.componentModel;

// Форма работы с прибором

using System. Data;

using System. Drawing;

using System. Text;

using System. Windows. Forms;

using System. Data. SqlClient;

using System. IO;

using System. Data.common;

namespace AsuLug

{

public partial class PriborForm: Form

{

static string connect_str = @"Data Source=COMPUTER; Initial Catalog=Asu_LUG; Integrated Security=True";

SqlConnection cn;

SqlDataAdapter dataAdapter;

DataSet dsPriborType, dsIzmer, dsInsert;

string lv_Mode, lv_PriborId;

public PriborForm (string TypeValue, string _Mode, string _PriborId)

{

InitializeComponent ();

lv_Mode = _Mode;

lv_PriborId = _PriborId;

this. Text = TypeValue;

if ( (lv_Mode == "CREATE") || (lv_Mode == "MODIFY"))

{

cn = new SqlConnection (connect_str);

cn. Open ();

dataAdapter = new SqlDataAdapter ();

SqlCommand sqlPriborType = new SqlCommand ("select * from SPriborType", cn);

dataAdapter. SelectCommand = sqlPriborType;

dsPriborType = new DataSet ();

dataAdapter. Fill (dsPriborType, "SPriborType");

PriborTypeBox. DataSource = dsPriborType. Tables [0]. DefaultView;

PriborTypeBox. DisplayMember = "PriborType";

PriborTypeBox. ValueMember = "id_type";

SqlCommand sqlIzmer = new SqlCommand ("select * from S_ObjectIzmer", cn);

dataAdapter. SelectCommand = sqlIzmer;

dsIzmer = new DataSet ();

dataAdapter. Fill (dsIzmer, "S_ObjectIzmer");

IzmerBox. DataSource = dsIzmer. Tables [0]. DefaultView;

IzmerBox. DisplayMember = "Object_Izmer";

IzmerBox. ValueMember = "id_Izmer";

sqlIzmer = new SqlCommand ("select * from S_pribor", cn);

dataAdapter. SelectCommand = sqlIzmer;

dsInsert = new DataSet ();

dataAdapter. Fill (dsInsert, "S_Pribor");

}

}

private void tabControl1_DoubleClick (object sender, EventArgs e)

{

// dataGridView2. Rows. Add (4);

}

private void PriborForm_Load (object sender, EventArgs e)

{

// TODO: This line of code loads data into the 'view_T_PoverkaDataSet. View_T_Poverka' table. You can move, or remove it, as needed.

this. view_T_PoverkaTableAdapter. Fill (this. view_T_PoverkaDataSet. View_T_Poverka);

viewTPoverkaBindingSource. Filter = " id_pribor = " + lv_PriborId. ToString ();

// TODO: This line of code loads data into the 't_PoverkaDataSet. T_Poverka' table. You can move, or remove it, as needed.

// TODO: This line of code loads data into the 'dataSet3. TPriborDocument' table. You can move, or remove it, as needed.

this. tPriborDocumentTableAdapter. Fill (this. dataSet3. TPriborDocument);

tPriborDocumentBindingSource. Filter = " id_pribor = " + lv_PriborId. ToString ();

if (lv_Mode == "MODIFY")

{

cn = new SqlConnection (connect_str);

cn. Open ();

dataAdapter = new SqlDataAdapter ();

SqlCommand sqlPriborType = new SqlCommand ("select * from s_pribor where id_pribor = " + lv_PriborId. ToString (), cn);

dataAdapter. SelectCommand = sqlPriborType;

dsPriborType = new DataSet ();

dataAdapter. Fill (dsPriborType, "S_Pribor");

SNBox. Text = dsPriborType. Tables ["S_Pribor"]. Rows [0]. ItemArray [3]. ToString ();

ModelBox. Text = dsPriborType. Tables ["S_Pribor"]. Rows [0]. ItemArray [2]. ToString ();

TehCharactBox. Text = dsPriborType. Tables ["S_Pribor"]. Rows [0]. ItemArray [8]. ToString ();

PriborTypeBox. SelectedValue = dsPriborType. Tables ["S_Pribor"]. Rows [0]. ItemArray [1]. ToString ();

pictureBox1_Click (sender, e);

}

}

private void dataGridView2_CellClick (object sender, DataGridViewCellEventArgs e)

{

}

private void button1_Click (object sender, EventArgs e)

{

ActiveForm. Dispose ();

}

private void SaveButton_Click (object sender, EventArgs e)

{

if (lv_Mode == "CREATE")

{

cn = new SqlConnection (connect_str);

cn. Open ();

dataAdapter = new SqlDataAdapter ();

SqlCommand sqlInsert = new SqlCommand ("insert into s_pribor (id_priborType, model, serial_number, created_by, create_datetime, characteristics)" +

" values (@id_priborType, @model, @serial_number, @created_by, @create_datetime, @characteristics)", cn);

SqlParameter param = new SqlParameter ("@id_priborType", SqlDbType. Int);

param. Value = PriborTypeBox. SelectedValue. ToString ();

sqlInsert. Parameters. Add (param);

param = new SqlParameter ("@model", SqlDbType. NVarChar);

param. Value = ModelBox. Text;

sqlInsert. Parameters. Add (param);

param = new SqlParameter ("@serial_number", SqlDbType. NVarChar);

param. Value = SNBox. Text;

sqlInsert. Parameters. Add (param);

param = new SqlParameter ("@created_by", SqlDbType. NVarChar);

param. Value = sqlInsert. Parameters. Add (param);

sqlInsert. Parameters. Add (param);

param = new SqlParameter ("@create_datetime", SqlDbType. NVarChar);

param. Value = sqlInsert. Parameters. Add (param);

sqlInsert. Parameters. Add (param);

param = new SqlParameter ("@characteristics", SqlDbType. NVarChar);

param. Value = TehCharactBox. Text;

sqlInsert. Parameters. Add (param);

try

{

sqlInsert. ExecuteNonQuery ();

MessageBox. Show ("Прибор добавлен!");

Close ();

}

catch

{

MessageBox. Show ("Ошибка. Сообщите администратору системы. ");

}

}

if (lv_Mode == "MODIFY")

{

cn = new SqlConnection (connect_str);

cn. Open ();

dataAdapter = new SqlDataAdapter ();

SqlCommand sqlUpdate = new SqlCommand ("update s_pribor set id_priborType = @id_priborType, " +

" model = @model, " +

" serial_number = @serial_number, " +

" modified_by = @modified_by, " +

" modify_datetime = @modify_datetime, " +

" characteristics = @characteristics " +

" where id_pribor = @id_pribor", cn);

SqlParameter param = new SqlParameter ("@id_priborType", SqlDbType. Int);

param. Value = PriborTypeBox. SelectedValue. ToString ();

sqlUpdate. Parameters. Add (param);

param = new SqlParameter ("@model", SqlDbType. NVarChar);

param. Value = ModelBox. Text;

sqlUpdate. Parameters. Add (param);

param = new SqlParameter ("@serial_number", SqlDbType. NVarChar);

param. Value = SNBox. Text;

sqlUpdate. Parameters. Add (param);

param = new SqlParameter ("@modified_by", SqlDbType. NVarChar);

param. Value = sqlInsert. Parameters. Add (param);

sqlUpdate. Parameters. Add (param);

param = new SqlParameter ("@modify_datetime", SqlDbType. NVarChar);

param. Value = sqlInsert. Parameters. Add (param);

sqlUpdate. Parameters. Add (param);

param = new SqlParameter ("@characteristics", SqlDbType. NVarChar);

param. Value = TehCharactBox. Text;

sqlUpdate. Parameters. Add (param);

param = new SqlParameter ("@id_pribor", SqlDbType. NVarChar);

param. Value = lv_PriborId;

sqlUpdate. Parameters. Add (param);

try

{

sqlUpdate. ExecuteNonQuery ();

MessageBox. Show ("Изменения приняты!");

Close ();

}

catch

{

MessageBox. Show ("Ошибка. Сообщите администратору системы. ");

}

}

}

private void TehCharactBox_TextChanged (object sender, EventArgs e)

{

}

private void button1_Click_1 (object sender, EventArgs e)

{

if (lv_Mode == "Create")

{

MessageBox. Show ("Добавление фото доступно только в режиме изменения!");

return;

}

if (openPic. ShowDialog () == DialogResult. OK)

{

cn = new SqlConnection (connect_str);

cn. Open ();

dataAdapter = new SqlDataAdapter ();

try

{

SqlCommand sqlCommand = new SqlCommand ("Delete from t_photos where id_pribor = " + lv_PriborId, cn);

sqlCommand. ExecuteNonQuery ();

sqlCommand = new SqlCommand ("INSERT INTO t_photos (id_pribor, photo) VALUES (" + lv_PriborId +", @img)", cn);

SqlParameter sqlParameter = new SqlParameter ("@img", SqlDbType. VarBinary);

string fileName = openPic. FileName; // Путь к файлу

Image image = Image. FromFile (fileName); // Изображение из файла.

MemoryStream memoryStream = new MemoryStream (); // Поток в который запишем изображение

image. Save (memoryStream, System. Drawing. Imaging. ImageFormat. Bmp);

sqlParameter. Value = memoryStream. ToArray ();

sqlCommand. Parameters. Add (sqlParameter);

// sqlConnection. Open ();

sqlCommand. ExecuteNonQuery ();

// sqlConnection. Close ();

memoryStream. Dispose ();

}

catch

{

MessageBox. Show ("error");

}

}

}

private void pictureBox1_Click (object sender, EventArgs e)

{

if (lv_Mode == "Create")

{

return;

}

cn = new SqlConnection (connect_str);

SqlCommand sqlCommand = new SqlCommand ("SELECT photo FROM t_photos WHERE id_pribor = " + lv_PriborId, cn);

cn. Open ();

// sqlConnection. Open ();

SqlDataReader sqlDataReader = sqlCommand. ExecuteReader ();

if (sqlDataReader. HasRows)

{

MemoryStream memoryStream = new MemoryStream ();

foreach (DbDataRecord record in sqlDataReader)

memoryStream. Write ( (byte []) record ["photo"], 0, ( (byte []) record ["photo"]). Length);

pictureBox1. Image = Image. FromStream (memoryStream);

memoryStream. Dispose ();

}

}

private void button2_Click (object sender, EventArgs e)

{

if (lv_Mode == "Create")

{

MessageBox. Show ("Добавление фото доступно только в режиме изменения!");

return;

}

if (openPic. ShowDialog () == DialogResult. OK)


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

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