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

Дипломная работа

<#»656466.files/image019.gif»>

  • Рисунок 5.3 — Структура базы данных

Таблица 5.8 — Описание таблицы dbo.GreenhouseStat

Имя поля

Тип данных

Определение поля

Id

int

Уникальный идентификатор

GreenhouseId

int

Идентификатор теплицы

Date

smalldatetime

Дата и время записи

Temperature

float

Текущая температура

Humadity

float

Текущая влажность

Status

nvarchar(25)

Статус системы

Таблица 5.9 — Описание таблицы dbo.Controller

Имя поля

Тип данных

Определение поля

Id

int

Уникальный идентификатор

Type

nvarchar(50)

Тип контроллера

Port

nvarchar(50)

Порт для связи

IsComPort

bit

Определение типа связи COM или IP

GreenhouseId

int

Идентификатор теплицы

State

int

Статус

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

3 Реализация слоя доступа к данным

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

  • Вставка.
  • Редактирование.
  • Удаление.

На рисунке 5.4 приведена схема взаимосвязи классов, реализующих доступ к данным с внешними сборками входящими в стандартную поставку Microsoft .NET Framework 4.5. Также на этой схеме изображены взаимосвязи классов между собой, а именно использование одних классах в других. Детальная структура классов приведена на рисунке 5.5 с отображением всех полей и методов, которые реализуют классы для доступа к данным.

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

 реализация слоя доступа к данным 1

Рисунок 5.4 — Взаимосвязь классов между собой

5.4 Разработка аппаратного модуля

Для реализации проекта необходимо разработать не только программную но и аппаратную часть. В качестве базовой платформы для разработки аппаратной части была выбрана платформа Arduino по причине её доступности цены и модульности. Для реализации прошивки используется ЯВУ С с набором библиотек входящих в поставку ArduinoIDE.

 разработка аппаратного модуля 1

Рисунок 5.5 — Диаграмма классов для модуля доступа к данным

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

1. Arduino Mega 2560

  • Датчик DHT22
  • Релейный модуль
  • Запорный клапан
  • Сервопривод.

Arduino Mega построена на микроконтроллере ATmega2560. Плата имеет 54 цифровых входа/выходов (14 из которых могут использоваться как выходы ШИМ), 16 аналоговых входов,4 последовательных порта UART, кварцевый генератор 16 МГц, USB коннектор, разъем питания, разъем ICSP и кнопка перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB или подать питание при помощи адаптера AC/DC, или аккумуляторной батареей. Arduino Mega 2560 совместима со всеми платами расширения, разработанными для платформ Uno <#»656466.files/image022.gif»>

  • Рисунок 5.10 — Принципиальная схема подключения

1 Разработка программных интерфейсов

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

  • Система взаимодействия с аппаратным обеспечением.
  • Система взаимодействия с пользователем.

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

 разработка программных интерфейсов 1

Рисунок 6.1 — Базовые классы для взаимодействия с аппаратной платформой

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

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

 разработка программных интерфейсов 2

Рисунок 6.2 — диаграмма классов управления Arduino

Протокол взаимодействия представлен на рисунке 6.3. Он состоит из следующей последовательности:

1. Размер посылки (1 байт).

2. Тип устройства (1 байт).

  • Код команды (1 байт).

  • Флаг наличия адреса (1 байт).

  • Адрес (8 байт).

  • Дополнительные параметры (до 243 байт).

 разработка программных интерфейсов 3

Рисунок 6.3 — графическое представление протокола обмена

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

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

  • EcoProduct.Models — модели данных.
  • EcoProduct.Modules — визуальное представление.
  • EcoProduct.Shell — основная оболочка.

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

 разработка программных интерфейсов 4

Рисунок 6.4 — Диаграмма взаимосвязи сборок и классов

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

 разработка программных интерфейсов 5

Рисунок 6.5 — Диаграмма класса модели данных

2 Разработка пользовательских интерфейсов

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

– минимального рабочего усилия: минимальность затрат ресурсов со стороны пользователя. Человек-оператор (ЧО) должен выполнять только необходимую работу, должны исключаться повторения одних и тех же действий, возникающих, например, при вводе данных. Должно быть исключено дублирование работы.

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

  • минимального объёма оперативной памяти пользователя. От ЧО требуется, чтобы он запоминал минимум информации как текущей, так и общей. Поскольку скорость переработки информации оператором и его пропускная способность существенно ограничены.

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

  • учёт профессиональных навыков пользователя.

Для реализации всех описанных выше требований и принципов мною было принято решение использовать технологию Windows Presentation Foundation от Microsoft. Преимущества данной технологии расписаны далее.

Windows Presentation Foundation (WPF) — система для построения клиентских приложений Windows <#»656466.files/image028.gif»>

  • Рисунок 7.1 — Вход в программу

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

 разработка пользовательских интерфейсов 1

Рисунок 7.2 — Главное окно

Для управления пользователями администратору необходимо нажать кнопку «Пользователи», после чего откроется окно управления пользователями изображенное на рисунке 7.3.

 разработка пользовательских интерфейсов 2

Рисунок 7.3 — Управление пользователями

Для создания пользователя необходимо нажать кнопку «Добавить» в панели управления, после этого откроется окно изображенное на рисунке 7.4.

 разработка пользовательских интерфейсов 3

Рисунок 7.4 — Добавление пользователя

Для редактирования информации о пользователе, необходимо выбрать пользователя в таблице и нажать кнопку «Редактировать», после этого откроется окно показанное на рисунке 7.5.

 разработка пользовательских интерфейсов 4

Рисунок 7.5 — Редактирование пользователя

Для предотвращения ошибок при попытке удаления пользователя появляется окно с подтверждением действия (рисунок 7.6), лишь после подтверждения пользователь удаляется.

 разработка пользовательских интерфейсов 5

Рисунок 7.6 — Подтверждение удаления пользователя

Для управления теплицами администратору необходимо нажать кнопку «Теплицы», после чего откроется окно управления теплицами изображенное на рисунке 7.7.

 разработка пользовательских интерфейсов 6

Рисунок 7.7 — Отображение сведений о теплицах

Для создания теплицы необходимо нажать кнопку «Добавить» в панели управления, после этого откроется окно изображенное на рисунке 7.8.

 разработка пользовательских интерфейсов 7

Рисунок 7.8 — Добавление данных о теплице

Для редактирования информации о теплице, необходимо выбрать теплицу в таблице и нажать кнопку «Редактировать», после этого откроется окно показанное на рисунке 7.9.

 разработка пользовательских интерфейсов 8

Рисунок 7.9 — Редактирование данных о теплице

Для предотвращения ошибок при попытке удаления теплицы появляется окно с подтверждением действия (рисунок 7.10), лишь после подтверждения теплица удаляется.

 разработка пользовательских интерфейсов 9

Рисунок 7.10 — Подтверждение удаления теплицы

Управление контроллерами осуществляется аналогично управлению теплицами, в строгом соответствии с моделями данных.

3 Руководство программиста

Данное руководство предназначено для разработчиков структура руководства приведена на рисунке 7.11.

 руководство программиста 1

Рисунок 7.11 — Структура руководства программиста

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

Здесь будет рассмотрен пример на основе модуля управления контроллерами (рисунок 7.12) полное руководство разработчика представлено виде приложения на компакт диске.

 руководство программиста 2

Рисунок 7.12 -Пример руководства программиста

Весь код имеет детальные комментарии, пример комментариев приведён ниже.

/// <summary>

  • /// Добавление сведений о контроллере.

/// </summary>

  • /// <param name=»item»>Обект контроллера который необходимо добавить <seealso cref=»Controller»/>.</param>
  • /// <returns>Идентификатор созданного контроллера.</returns>

public int AddController(Controller item)

{.Controller.Add(item);.SaveChanges();

  • return item.Id;

}

7.4 Руководство системного программиста

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

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

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

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

//Номера в последовательности коммандного массива

#define DEVICE_CODE 0x00

#define COMMAND_CODE 0x01

//Управление устройства по ИК каналу

#define IR_CONTROLED 0x01

#define IR_PROTO_NEC 0x01

#define IR_PROTO_SONY 0x02

#define IR_PROTO_RC5 0x03

#define IR_PROTO_RC6 0x04

#define IR_PROTO_PANASONIC 0x05

#define IR_PROTO_JVC 0x06

#define IR_PROTO_SAMSUNG 0x07

#define IR_PROTO_RAW 0x08

//Датчик температуры Dallas

#define DS_TEMPERATURE_SENSOR_CODE 0x03

#define DS_TEMPERATURE_GET_TEMPERATURE 0x01

#define TEMPERATURE_PRECISION 0x09

//Сенсор температуры и влажности

#define DHT_SENSOR_CODE 0x04

#define DHT_SENSOR_BASE_PIN A0

#define DHT_SENSOR_ADRESS 0x02

#define DHT_GET_ALLDATA 0x01

#define DHT_GET_TEMPERATURE 0x02

#define DHT_GET_HUMIDITY 0x03

//Управление массивом реле через регистр

#define RELAY_CODE 0x08

#define RELAY_INVERT_CODE 0x09

#define RELAY_ADRESS 0x03 // Смещение определяющее адрес реле

#define RELAY_ON 0x01

#define RELAY_OFF 0x02

#define RELAY_STATUS 0x03

#define RELAY_RESET 0x04

#define RELAY_PIN_DS 0x28 //40

#define RELAY_PIN_SH 0x29 //41

#define RELAY_PIN_ST 0x2A //42

#define RELAY_INVERT_PIN_DS 0x2B //43

#define RELAY_INVERT_PIN_SH 0x2C //44

#define RELAY_INVERT_PIN_ST 0x2D //45

//Управление одним реле напрямую

#define PRIMARY_RELAY_CODE 0x0A

#define PRIMARY_RELAY_INVERT_CODE 0x0B

#define PRIMARY_RELAY_PIN 0x2E//46

#define PRIMARY_RELAY_INVERT_PIN 0x2F//47

//Порт шины OneWire

#define ONE_WIRE_BUS 0x01

//Размер буфера данных

#define MAX_DATA_BUFFER 64

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

5 Руководство пользователя

Для запуска программы воспользуйтесь ярлыком на рабочем столе с названием «EcoProduct». После запуска программы откроется окно изображенное на рисунке 7.13, в котором Вам необходиммо ввести имя пользователя и пароль (по умолчанию логин: Пользователь, пароль:P@ssw0rd).

 руководство пользователя 1

Рисунок 7.13 — Вход в программу

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

 руководство пользователя 2

Рисунок 7.14- Главное окно программы

Эти данные можно сортировать и группировать по усмотрению пользователя (рисунок 7.15)

 руководство пользователя 3

Рисунок 7.15 — Сортировка и группировка записей

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

 руководство пользователя 4

Рисунок 7.16 — Установка температуры

 руководство пользователя 5

Рисунок 7.17 — Установка влажности

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

 руководство пользователя 6

Рисунок 7.18 — Пример отчета

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

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

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

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

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

1 Основные этапы проекта разработки программного обеспечения

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

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

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

  • тестирование, отладка и исправление недочетов: разработка методики проведения тестирования, отладка ПО, исправление ошибок и недочетов.

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

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

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

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

2 Расчет трудоемкости проекта

Общие затраты труда на разработку и внедрение изделия (проекта) определяют следующим образом:

 расчет трудоемкости проекта 1 , (8.1)

где ti — затраты труда на выполнение i — го этапа проекта.

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

Стоимость выставляемого на рынок ПО определяется частью стоимости разработки ПО, затрат на внедрение и прибыли фирмы-разработчика.

Для того, чтобы рассчитать стоимость ПО сначала следует определить частичную стоимость разработки, приходящаяся на каждый комплект ПО, которая определяется исходя из данных о планируемом объеме установок (8.2):

 расчет трудоемкости проекта 2 , (8.2)

где К — стоимость проекта;

  • NOP — планируемое число копий ПО;
  • КСТ — ставка банковского процента по долгосрочным кредитам (более одного года).

Базовая ставка банковского процента равна 25% годовых. Подставив значения в формулу 8.3 получим частичную стоимость ПО равную 234 416 руб.

Программные продукты подобной функциональности стоят от 10 000 до 20 000 руб. Следовательно, целесообразно установить цену разрабатываемого продукта КПР равной 15 000 руб.

Стоимость ПО можно рассчитать, используя соотношение 8.3:

 расчет трудоемкости проекта 3 , (8.3)

где DK — часть стоимости разработки, приходящаяся на одну копию программы;

  • КВН — стоимость внедрения программы;
  • DПРИБ — процент прибыли, заложенный в стоимость.

Подставив значения в формулу 6 получим стоимость ПО равную 251 386 руб.

Процент прибыли от одной реализации ПО определяется из соотношения 8.4:

 расчет трудоемкости проекта 4 (8.4)

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

Сумма прибыли от продажи каждой установки ПО рассчитывается, используя следующее соотношение (8.5):

 расчет трудоемкости проекта 5 , (8.5)

где ННДС — процентная ставка налога на добавочную стоимость.

Если принять ставку налога на добавленную стоимость в 20% и учитывая стоимость программы, процент прибыли от установки и ставку налога на добавочную стоимость, сумма прибыли от каждой установки может составить 30691 рублей.

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

  • располагать рабочие места, оснащенные ПЭВМ и УВО, таким образом, чтобы естественный свет падал сбоку (с левой или правой стороны) в зависимости от расположения столов, оборудования и оконных проемов;
  • не допускать расположение рабочих мест с ПЭВМ и УВО в подвальных помещениях;
  • учитывать, что площадь на одно рабочее место с ПЭВМ и УВО должна составлять не менее 6,0 м2 , а объем — не менее 20,0 м3.

Не рекомендуется располагать рабочие места, оснащенные ПЭВМ и УВО, друг за другом. Задняя стенка монитора одного рабочего места не должна быть направлена на пользователя ПК, сидящего за другим рабочим местом.

Рабочий стол пользователя должен обеспечивать оптимальное расстояние элементов ПЭВМ. С этой целью столешница изготавливается как две раздельно регулируемые по высоте плоскости: одна — для размещения УВО, вторая — для размещения клавиатуры, пюпитра. Оптимальные размеры рабочей поверхности столешницы 1600 х 900 мм. С целью оптимального размещения ПЭВМ и УВО на рабочем месте можно рекомендовать увеличение площади столешницы за счет присоединения друг к другу двух столов или между двумя рабочими столами установить третий, более узкий. Это даст возможность оптимального размещения процессора, монитора и клавиатуры.

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

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

На рабочем месте необходимо предусматривать подставку для ног. Ее длина должна составлять 400 мм, ширина — 350 мм.

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

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

Мероприятия по снижению шума на рабочих местах, оснащенных ПЭВМ и УВО, должны включать организационные, строительно-акустические и другие мероприятия: устройство подвесных потолков, облицовка стен, ковровые покрытия. Звукопоглощающие материалы должны быть с максимальным коэффициентом звукопоглощения в диапазоне частот 63-8000 Гц.

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

  • ПЭВМ и УВО следует располагать при однорядном их размещении на расстоянии не менее 1 м от стен;
  • рабочие места с мониторами должны располагаться между собой на расстоянии не менее 1,5 м;
  • минимальная ширина проходов с передней стороны пультов и панелей управления оборудованием ПЭВМ и УВО при однорядном его расположении должна быть не менее 1 м, при двухрядном — не менее 1,2 м ;
  • расстояние между рабочими столами с видеомониторами должно быть не менее 2 м, а расстояние между боковыми поверхностями — не менее 1,2 м;
  • экран монитора ПЭВМ и УВО располагают на расстоянии 600-700 мм от пользователя, но не ближе 500 мм, с учетом размеров цифровых знаков и символов.

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

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

Во время работы оператору запрещается:

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

Оператору запрещается приступать к работе при обнаружении любой неисправности оборудования до ее устранения.

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

В данном дипломном проекте решены две задачи:

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

Были рассмотрены вопросы исследования работы предприятия с точки зрения его эффективности и уровня автоматизации.

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

Комплекс приложений и сервер БД используют локальную компьютерную сеть. Скорость передачи данных в сети является первым показателем скорости функционирования системы. Использование сервера Windows 2008 Server Database Edition на высокопроизводительной платформе Intel Xeon, пользовательские рабочие места используют стандартные «офисные» ПК с операционной системой Windows 7.

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

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

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

1. «Windows Server 2008. Для профессионалов». Вишневский Алексей Викторович[Текст] /. — СПб.: Питер, 2010. — 832 с.

2. Гамильтон, Б. ADO.NET Сборник рецептов. Для профессионалов. [Текст] / Б. Гамильтон — СПб.: Питер, 2005 — 576 с.

  • Гарнаев, А.Ю. Самоучитель QT Framework. [Текст] / А.Ю. Гарнаев — СПб.: БХВ — Петербург, 2005. — 688 с.
  • Гарнаев, А.Ю.

Самоучитель Visual Studio .NET 2003. А.Ю. Гарнаев — СПб[Текст] /.: БХВ — Петербург, 2003.- 688 с.

  • Дейтел, Х. М. Как программировать для Internet и WWW. Х. М. Дейтел, П. Дж. Дейтел, Т. Р. Нието. Пер. с англ. [Текст] / — М.: ЗАО «Издательство БИНОМ», 2006 г. — 1184 с.
  • Макгрей, Э.

«Система безопасности Windows». [Текст] / Э. Макгрей. — СПб.: Питер, 2005. — 796 с.

  • Малкин, С. Microsoft .NET Remoting[Текст] / C. Малкин, Д. Нафтел : Microsoft Press Русская редакция Microsoft, 2005. — 384 с.
  • Малкин, С.

Microsoft .NET Remoting[Текст] / C. Малкин, Д. Нафтел : Microsoft Press Русская редакция Microsoft, 2005. — 384 с.

  • Прог раммирование для всех [Электронный ресурс] : Реализация баз даных на Microsoft SQL Server 2005 Режим доступа : http://www.realcoding.net.
  • Сборник технической документации [Электронный ресурс] : Реализация блочного шифрования в .NET : http://www.msdn.microsoft.com.
  • «Специалисты NIIT».

Использование C#. Специальное издание Специалисты NIIT [Текст] /.- М.: Издательский дом «Вильямс», 2004 г. — 528

  • «Специалисты NIIT». Использование C++. Специальное издание Специалисты NIIT.- М.: Издательский дом «Вильямс», 2006 г. — 628 с.
  • Троелсен А.

Программирвоание на языке С# 2008 [Текст] / А. Троелсен — : APRESS, 2008. — 1400 с.

  • Троелсен, Э. «C# и платформа .NET. Библиотека программиста». Э. Троелсен[Текст] /. — СПб.: Питер, 2005. — 796 с.
  • Фаронов В.В.

Система программирования Widows. [Текст] / В.В. Фаронов. — СПб.: БХВ-Петербург, 2005. — 1021 с.: ил.

  • Фаронов В.В. Система программирования С++ Builder [Текст] /. — СПб.: БХВ-Петербург, 2003. — 912 с.: ил.
  • Феррара, Ф.

Программирование web-сервисов для .NET. Библиотека программиста. Ф. Феррара, Мак-Дональд М[Текст] /. — Киев: BHV; СПб.: Питер, 2005. — 430 с.

  • Филимонов, А.Ю. Построение мультисервисных сетей Ethernet [Текст] / Филимонов А.Ю. — СПб. : BHV, 2007 г — 451c.
  • Финогенов, К.Г.

WIN32 Основы программирования[Текст] / К.Г. Финогенов. — М.: Диалог — МИФИ, 2006. — 416 с.

  • Финогенов, К.Г. WIN32 Основы программирования[Текст] / К.Г. Финогенов М.: Диалог — МИФИ, 2006. — 416 с.
  • Шлее М.

Qt4. Профессиональное программирование [Текст] / М. Шлее.- СПб.: БХВ-Петербург, 2007. — 880 с.

  • Шлендер, П.Э. Безопасность жизнедеятельности [Текст]: учебник / Шлендер П.Э., Маслова, С.И. Подгаецкий В.М. — М.: Вузовский учебник, 2008 г. — 173c.
  • Электронный журнал RSDN [Электронный ресурс] : Классы доступа к базам данных и безопастность Режим доступа : http://www.rsdn.ru.

24. Язык программирования SQL [Электронный ресурс] : Синтаксис языка SQL Режим доступа : <http://www.sql.ru>.

Листинг аппаратной прошивки

//Номера в последовательности коммандного массива

#define DEVICE_CODE 0x00

#define COMMAND_CODE 0x01

//Управление устройства по ИК каналу

#define IR_CONTROLED 0x01

#define IR_PROTO_NEC 0x01

#define IR_PROTO_SONY 0x02

#define IR_PROTO_RC5 0x03

#define IR_PROTO_RC6 0x04

#define IR_PROTO_PANASONIC 0x05

#define IR_PROTO_JVC 0x06

#define IR_PROTO_SAMSUNG 0x07

#define IR_PROTO_RAW 0x08

//Датчик температуры Dallas

#define DS_TEMPERATURE_SENSOR_CODE 0x03

#define DS_TEMPERATURE_GET_TEMPERATURE 0x01

#define TEMPERATURE_PRECISION 0x09

//Сенсор температуры и влажности

#define DHT_SENSOR_CODE 0x04

#define DHT_SENSOR_BASE_PIN A0

#define DHT_SENSOR_ADRESS 0x02

#define DHT_GET_ALLDATA 0x01

#define DHT_GET_TEMPERATURE 0x02

#define DHT_GET_HUMIDITY 0x03

//Управление массивом реле через регистр

#define RELAY_CODE 0x08

#define RELAY_INVERT_CODE 0x09

#define RELAY_ADRESS 0x03 // Смещение определяющее адрес реле

#define RELAY_ON 0x01

#define RELAY_OFF 0x02

#define RELAY_STATUS 0x03

#define RELAY_RESET 0x04

#define RELAY_PIN_DS 0x28 //40

#define RELAY_PIN_SH 0x29 //41

#define RELAY_PIN_ST 0x2A //42

#define RELAY_INVERT_PIN_DS 0x2B //43

#define RELAY_INVERT_PIN_SH 0x2C //44

#define RELAY_INVERT_PIN_ST 0x2D //45

//Управление одним реле напрямую

#define PRIMARY_RELAY_CODE 0x0A

#define PRIMARY_RELAY_INVERT_CODE 0x0B

#define PRIMARY_RELAY_PIN 0x2E//46

#define PRIMARY_RELAY_INVERT_PIN 0x2F//47

//Порт шины OneWire

#define ONE_WIRE_BUS 0x01

//Размер буфера данных

#define MAX_DATA_BUFFER 64

  • ino

#include «DefinitionTable.h»

#include <dht.h>

  • #include <IRremote.h>
  • #include <OneWire.h>
  • #include <DallasTemperature.h>
  • #include <RegistryController.h>

//Определение типов данных

//Определение типа объединения для передачи ИК-комманд через интерфейс данных

union irCmd

{b[4];lval;

  • } ircmd;

//Определение типа объединения для передачи температуры через интерфейс данных

union dsTemp

{b[4];fval;

  • } dstemp;

//—————————————————————-

//Определение буфера для обмена с ПК

byte data[MAX_DATA_BUFFER];

  • byte dataLength;

//—————————————————————-

//Определение датчиков и переферии

DHT sensor = DHT();irSend;oneWire(ONE_WIRE_BUS);dstSensors(&oneWire);relay;relayInvert;

//—————————————————————-

setup()

{.begin(9600);=0;.init(RELAY_PIN_DS,RELAY_PIN_SH,RELAY_PIN_ST,false);.init(RELAY_INVERT_PIN_DS,RELAY_INVERT_PIN_SH,RELAY_INVERT_PIN_ST,true);(PRIMARY_RELAY_PIN, OUTPUT);(PRIMARY_RELAY_PIN, LOW);(PRIMARY_RELAY_INVERT_PIN, OUTPUT);(PRIMARY_RELAY_INVERT_PIN, HIGH);

}

loop()

{ln=0;(Serial.available()>0)

{=Serial.read();(ln>1)

{=ln;=0;(byte l=0;l<dataLength;l++)

{(Serial.available()<1);

  • [l]=Serial.read();
  • }();=0;

}

}

}

//Обработчик комманд поступивших с ПКprocessCommand()

{

(data[DEVICE_CODE]==DHT_SENSOR_CODE)

{();;

}(data[DEVICE_CODE]==IR_CONTROLED)

{();;

}(data[DEVICE_CODE]==DS_TEMPERATURE_SENSOR_CODE)

{();;

}(data[DEVICE_CODE]==RELAY_CODE)

{();;

}(data[DEVICE_CODE]==RELAY_INVERT_CODE)

{();;

}(data[DEVICE_CODE]==PRIMARY_RELAY_CODE)

{();;

}(data[DEVICE_CODE]==PRIMARY_RELAY_INVERT_CODE)

{();;

}

}

//Обработчик сенсора типа DHTXXprocessDHTSensor()

{.attach(DHT_SENSOR_BASE_PIN+data[DHT_SENSOR_ADRESS]);(500);t,h;.update();(sensor.getLastError())

{DHT_ERROR_OK:=sensor.getTemperatureInt();= sensor.getHumidityInt();;DHT_ERROR_START_FAILED_1:DHT_ERROR_START_FAILED_2:DHT_ERROR_READ_TIMEOUT:DHT_ERROR_CHECKSUM_FAILURE:(250);.update();=sensor.getTemperatureInt();= sensor.getHumidityInt();;

}(data[COMMAND_CODE]==DHT_GET_ALLDATA)

{.write(data[COMMAND_CODE]);.write(t);.write(h);

}

(data[COMMAND_CODE]==DHT_GET_TEMPERATURE)

{.write(data[COMMAND_CODE]);.write(t);

}(data[COMMAND_CODE]==DHT_GET_HUMIDITY)

{.write(data[COMMAND_CODE]);.write(h);

}

}

//Обработчик контроле ИК диапазонаprocessIRControl()

{(byte b=0;b<4;b++)

{.b[b]=data[b+3];

}(data[COMMAND_CODE+1]==IR_PROTO_NEC)

{.sendNEC(ircmd.lval, 32);

}(data[COMMAND_CODE+1]==IR_PROTO_SONY)

{.sendSony(ircmd.lval, 12);

}(data[COMMAND_CODE+1]==IR_PROTO_RC5)

{(dataLength==5)

{.b[2]=0;.b[3]=0;(byte z=0;z<3;z++)

{.sendRC5(ircmd.lval, 12);(50);

}

}

{long long cmd=0;(byte b=0;b<6;b++)

{<<=8;|=data[b+5];

  • }.sendRC5x( cmd, data[4],data[3]);

}

}(data[COMMAND_CODE+1]==IR_PROTO_RC6)

{.sendRC6(ircmd.lval, 20);

}(data[COMMAND_CODE+1]==IR_PROTO_PANASONIC)

{.sendPanasonic(ircmd.lval, 48);

}(data[COMMAND_CODE+1]==IR_PROTO_JVC)

{.sendJVC(ircmd.lval, 16,1);

}(data[COMMAND_CODE+1]==IR_PROTO_SAMSUNG)

{.sendSamsung(ircmd.lval, 32);

}(data[COMMAND_CODE+1]==IR_PROTO_RAW)

{

//irSend.sendRaw(ircmd.lval, 12);

}

}

//Обработчик сенсора температуры DallasprocessDSTemperature()

{(data[COMMAND_CODE]==DS_TEMPERATURE_GET_TEMPERATURE)

{thermAddr;(byte i=0;i<8;i++)

{[i]=data[i+2];

  • }.setResolution(thermAddr, TEMPERATURE_PRECISION);.fval=dstSensors.getTempC(thermAddr);.write(data[COMMAND_CODE]);(byte i=0;i<4;i++)

{.write(dstemp.b[i]);

}

}

}

//Обработчика управления реле через регистрprocessRelay()

{(data[COMMAND_CODE]==RELAY_ON)

{.on(data[RELAY_ADRESS]);

}(data[COMMAND_CODE]==RELAY_OFF)

{.off(data[RELAY_ADRESS]);

}(data[COMMAND_CODE]==RELAY_RESET)

{.reset();

}(data[COMMAND_CODE]==RELAY_STATUS)

{.write(relay.status(data[RELAY_ADRESS]));

}

}

//Обработчика управления инвертированного реле через регистр

void processInvertRelay()

{(data[COMMAND_CODE]==RELAY_ON)

{.on(data[RELAY_ADRESS]);

}(data[COMMAND_CODE]==RELAY_OFF)

{.off(data[RELAY_ADRESS]);

}(data[COMMAND_CODE]==RELAY_RESET)

{.reset();

}(data[COMMAND_CODE]==RELAY_STATUS)

{.write(relayInvert.status(data[RELAY_ADRESS]));

}

}

//Обработчика управления реле напрямуюprocessPrimaryRelay()

{(data[COMMAND_CODE]==RELAY_ON)

{(PRIMARY_RELAY_PIN, HIGH);

}(data[COMMAND_CODE]==RELAY_OFF)

{(PRIMARY_RELAY_PIN, LOW);

}

}

//Обработчика управления инвертированного реле напрямуюprocessPrimaryInvertRelay()

{(data[COMMAND_CODE]==RELAY_ON)

{(PRIMARY_RELAY_INVERT_PIN, LOW);

}(data[COMMAND_CODE]==RELAY_OFF)

{(PRIMARY_RELAY_INVERT_PIN, HIGH);

}

}

Реферат

Объект исследования — предприятие сельского хозяйства ООО «Экопродукт» Краснодарский край, ст. Новотиторовская.

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

Методы исследования — методы обобщения и анализа, теории систем, математические и логико-комбинаторные методы, имитационное моделирование.

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

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