Класс Zadvigka
Так как клапаны должны выполнять только функции открытия и закрытия, класс не содержит атрибутов, а содержит только два метода: Pologenie() и Zakrit().
Класс Datchik_temperatury
Класс Datchik_davlenia
Класс Datchik_dima
Класс Controller
Должен содержать в себе все введенные оператором параметры технологического процесса:
Schitat_informaciu – считывание информации с датчиков.
Stop – остановка работы системы.
Izmenit_parametr – изменение параметров работы системы .
Класс Computer
Prinat_informaciu – принимает информацию с датчиков и контроллера.
Stop – сигнал на остановку системы.
Izmenit_parametr – сигнал на изменение параметров.
Все выше сказанное представлено на диаграмме классов рис. 4.1.3
Рис. 4.1.3 Диаграмма классов системы
4.2 Построение алгоритма работы системы
Запуск системы управления котельной установкой производится по команде оператора после того, как им были введены параметры протекания процесса. Перед запуском предполагается, что все параметры норме. После запуска система начинает работать в автоматическом режиме, пока не будет остановлена оператором. При этом система должна автоматически обеспечивать предупреждение аварийных ситуаций. При необходимости изменить параметры оператор должен сначала остановить работу системы и затем изменить параметры.
Система функционирует следующим образом.
Предполагается, что все внешние параметры протекания процесса находятся в норме, тогда происходит пуск системы.
Если система во время работы обнаруживает, что какой-либо параметр выходит за установленные рамки, подается сигнализация и происходит остановка системы.
Во время работы происходит постоянная обработка входящих величин с датчиков, что говорит о том – система находится во взведенном состоянии. Дублирование данных и внешний отчет способствует анализу протекания процесса.
Алгоритм обработки данных имеет вид, представленный на рис. 4.2.1
Рис. 4.2.1 Диаграмма активности, иллюстрирующая обработку данных
4.3 Генерация программного кода
Класс в Rational Rose — это описание общей структуры (данных и связей) для дальнейшего создания объектов. Для того чтобы генератор Rational Rose имел возможность создавать на основе описанной модели программный код, для каждого класса необходимо указать язык, для которого будет создаваться код. Также необходимо определить компонент, в котором этот класс будет храниться. Если в качестве языка для создания кода указан VC++, то пользователь получает доступ ко всей иерархии классов библиотеки MFC при помощи визуальных средств Model Assistant. Поэтому прежде чем приступить к генерации кода на Visual C++, следует создать диаграмму компонентов, отражающая организацию и взаимосвязи программных компонентов, представленных в исходном коде, двоичных или выполняемых файлах. Связи в данном типе диаграммы представляют зависимости одного компонента от другого и имеют специальное отображение через значок «зависимости».
В данном проекте будет построена упрощенная диаграмма компонентов, на которой каждый из компонентов будет представлять класс или его реализацию, хотя при разработке программного кода в большинстве случаев могут использоваться другие подходы.
Для каждого из классов создается два файла: заголовочный (с расширением .h), который содержит описание класса, и файл реализации (с расширением .cpp), где содержится программная реализация методов класса.
Поэтому каждый класс на диаграмме компонентов будет представлен двумя компонентами: Package Specification и Package Body. Первый компонент представляет собой определение пакета (заголовочный файл с расширением .h), второй – тело пакета (файл с расширением.cpp).
Компоненты на диаграмме (рис. 4.3.1) для простоты имеют те же названия, что и класс, который они представляют.
Рис. 4.3.1 Диаграмма компонентов
Кроме того, при создании компонентов в спецификации каждого из них задается язык, на котором он будет реализован (в нашем случае – VC++), а также указывается какие классы включаются в компонент (вкладка Realizes спецификации компонента). На приведенной диаграмме в каждый компонент включен только один класс с тем же именем, что и компонент.
Далее определяемся с реализуемыми в классах методами.
Класс Controller.
Содержание файла *.cpp:
#include "stdafx.h"
#include "Kontroller.h"
//##ModelId=4482CEF801EF
Kontroller::Schitat_informaciu()
{
}
//##ModelId=4482D0F001AD
Kontroller::Stop()
{
}
//##ModelId=4482D19C00F6
Kontroller::Izmenit_parametr()
{
}
Содержание файла *.h:
#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_KONTROLLER_4482C7D900CB_INCLUDED
#define _INC_KONTROLLER_4482C7D900CB_INCLUDED
//##ModelId=4482C7D900CB
class Kontroller
{
public:
//##ModelId=4482CEF801EF
Schitat_informaciu();
//##ModelId=4482D0F001AD
Stop();
//##ModelId=4482D19C00F6
Izmenit_parametr();
};
#endif /* _INC_KONTROLLER_4482C7D900CB_INCLUDED */
Класс Computer.
Содержание файла *.cpp:
#include "stdafx.h"
#include "Computer.h"
//##ModelId=4482CF5D01B8
Computer::Prinat_informaciu()
{
}
//##ModelId=4482D0B90212
Computer::Ostanovka()
{
}
//##ModelId=4482D17A015C
Computer::Izmenit_parametr()
{
}
Содержание файла *.h:
#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_COMPUTER_4482C944004B_INCLUDED
#define _INC_COMPUTER_4482C944004B_INCLUDED
//##ModelId=4482C944004B
class Computer
{
public:
//##ModelId=4482CF5D01B8
Prinat_informaciu();
//##ModelId=4482D0B90212
Ostanovka();
//##ModelId=4482D17A015C
Izmenit_parametr();
};
#endif /* _INC_COMPUTER_4482C944004B_INCLUDED */
Класс Datchik_temperatury
Содержание файла *.cpp:
#include "stdafx.h"
#include "Datchik_temperatury.h"
Содержание файла *.h:
#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_DATCHIK_TEMPERATURY_4482C7F403E1_INCLUDED
#define _INC_DATCHIK_TEMPERATURY_4482C7F403E1_INCLUDED
//##ModelId=4482C7F403E1
class Datchik_temperatury
{
};
#endif /* _INC_DATCHIK_TEMPERATURY_4482C7F403E1_INCLUDED */
Класс Datchik_davlenia
Содержание файла *.cpp:
#include "stdafx.h"
#include "Datchik_davlenia.h"
Содержание файла *.h:
#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_DATCHIK_DAVLENIA_4482C83503A8_INCLUDED
#define _INC_DATCHIK_DAVLENIA_4482C83503A8_INCLUDED
//##ModelId=4482C83503A8
class Datchik_davlenia
{
};
#endif /* _INC_DATCHIK_DAVLENIA_4482C83503A8_INCLUDED */
Класс Datchik_dima
Содержание файла *.cpp:
#include "stdafx.h"
#include "Datchik_dima.h"
Содержание файла *.h:
#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_DATCHIK_DIMA_4482C8AA025C_INCLUDED
#define _INC_DATCHIK_DIMA_4482C8AA025C_INCLUDED
//##ModelId=4482C8AA025C
class Datchik_dima
{
};
#endif /* _INC_DATCHIK_DIMA_4482C8AA025C_INCLUDED */
Класс Zadvigka
Содержание файла *.cpp:
#include "stdafx.h"
#include "Zadvigka.h"
//##ModelId=4482D6C90098
Zadvigka::Pologenie()
{
}
//##ModelId=4482D795025E
Zadvigka::Zakrit()
{
}
Содержание файла *.h:
#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_ZADVIGKA_4482D4AF035B_INCLUDED
#define _INC_ZADVIGKA_4482D4AF035B_INCLUDED
//##ModelId=4482D4AF035B
class Zadvigka
{
public:
//##ModelId=4482D6C90098
Pologenie();
//##ModelId=4482D795025E
Zakrit();
};
#endif /* _INC_ZADVIGKA_4482D4AF035B_INCLUDED */
После того, как реализация и прототипы функций определены, с помощью инструмента Model Assistant в указанных классах задаем для каждого оператора тип возвращаемого им значения, передаваемых ему параметров и тело функции (Default Code Body).
Заключительным этапом в создании программного кода на Visual C++ является ассоциирование компонента с проектом Microsoft Visual Studio 6.0. Для этого используется инструмент Component Assignment Tool. Здесь в свойствах компонентов требуется либо указать существующий проект Visual Studio, либо создать новый проект (при этом используются средства Microsoft Visual Studio), в котором создаются классы, включенные в выбранные компоненты. С помощью этого инструмента можно также включать классы в компоненты и ассоциировать их с языком VC++ (если это еще не было сделано), методом Drag’n’Drop. После того как для всех компонентов был указан проект, в который они будут включены, можно приступать к генерации кода (меню Tools → Visual C++ → Update Code…). Если при этом был выделен класс или компонент, то произойдет обновление его кода (или создание, если он еще не был сгенерирован).
5. Технико-экономическое обоснование
Внедрение автоматической системы управления котельной установкой решает следующие задачи:
- Полностью автоматическая система управления котельной установкой не требует участия человека в ее рабочем цикле, вследствие чего происходит высвобождение;
- Снижение частоты обслуживания;
- Повышение надежности системы управления.
Специфика работы предусматривает непрерывный цикл производства, поэтому централизация всех контрольных функций позволяет снизить время решения проблем возникающих в результате эксплуатации и более эффективно использовать ресурсы предприятия при возникновении проблем при работе установки. Так простой в течение суток приносит убытки в сумме более 100000 рублей по причине не выработки сырья.
В широко развитой отрасли жилищно-комунального хозяйства техническое развитие стоит на одном из первых мест, которому уделяют особое внимание, т.к. владельцы сами заинтересованы в повышение энергоемкости своих предприятий. В виду чего, весь механизм работы построен на принципе высоко организованной автоматической системы, где каждый узел имеет свои правила-нормы оперативного контроля.
Как показывает многолетняя практика эксплуатации котельных установок, аварийная остановка КУ, связанная с выходом из строя оборудования, возникает менее 1 раза в году, при этом простой составляет от 4 до 24 часов в летнее время и до 1 до 7 суток в зимнее. Для скорейшего восстановления работоспособности КУ требует постоянное присутствие ремонтного персонала на установке. А это очень дорого обходится, так как персонал практически не задействован, ведь проведения обслуживания механизмов производится в установленное время и требует не более 40 часов рабочего времени в год. Введение централизованного контроля позволяют быстро выявлять причину отказа, а модульный принцип построения заменять неисправные компоненты системы. Применение системы раннего оповещения о возникающих неполадках позволяет своевременно их устранить и не останавливать КУ по причине аварии.