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

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

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

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

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

Контроллер (класс Controller) - посылает запросы датчикам и исполняющим устройствам;

Таймер (класс timer) хранит время опроса датчиков;

Датчик высоты блока пены (класс sen_uroven) - измеряет высоту блока пены на транспортере;

Датчик скорости транспортера (класс sen_transporter) - измеряет скорость транспортера и выводит эту информацию на дисплей;

Задвижка подачи смеси на транспортер (класс zadvijka) Имеет два состояния: open и closed;

Двигатель транспортера (класс dvigatel) приводит в движение транспортер, может увеличивать и уменьшать скорость. Имеет состояния: ON, OFF, speedup, speeddown;

Датчик состояния процесса (класс sen_process) при остановке процесса (нажатию кнопки STOP), он сигнализирует об этом контроллеру;

Краны подачи компонентов (класс kran_"компонент" ). Краны подачи компонентов в смеситель;

Насосы подачи компонентов (класс nasos_"компонент"). Насосы подачи компонентов в смеситель.

Продолжением создания процесса будет диаграмма взаимодействия между объектами.

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

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

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

На основе приема-передачи сообщений основана многозадачность Windows, а в нашем случае для простоты демонстрации создания приложения будем считать, что сообщения обрабатываются немедленно в той последовательности, в которой они выдаются клиентами. На рисунке 3.4 изображен фрагмент Sequence Diagram.

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

Второй, уже упоминавшийся тип диаграмм взаимодействия, - это Collaboration Diagram "сотрудничество". Диаграмма сотрудничества изображена на рисунке 3.5. Эта диаграмма отличается от предыдущей тем, что она не акцентирует внимание на последовательности передачи сообщений, она отражает наличие взаимосвязей вообще, то есть на этой диаграмме отражается наличие сообщений от клиентов к серверам.

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

На диаграмме видно, что всем объектам классов: dvigatel, zadvijka, kran_"компонент", nasos_"компонент" контроллер посылает управляющие сигналы на выключение (OFF(); closed()) и включение (ON(); open()) соответствующих устройств. Датчикам sen_uroven, sen_process, sen_transporter контроллер (Controller) посылает запросы на выдачу соответственных значений. Контроллер, через интервалы времени задаваемые таймером m_period, производит обмен информацией с датчиками.

Каждая связь Link Message имеет свойства, позволяющие настроить область видимости для связанных объектов.

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

    - Класс Timer содержит в себе переменную m_Period типа double, которая определяет интервал времени. Для защиты от доступа извне атрибут объявлен как private. Поэтому для задания этой переменной следует использовать функцию Set_period(), доступную для других объектов. - Класс dvigatel выполняет функции включения, выключения двигателя; увеличения и уменьшения скорости. Класс не содержит атрибутов, а содержит методы: speedup(); speeddown(); ON(); OFF(). - Класс zadvijka выполняет только функции открытия и закрытия, класс не содержит атрибутов, а содержит только два метода: open() и closed(). - Класс sen_uroven имеет атрибуты управления. m_sen_uroven - высота блока пены. Все переменные данного класса определены типом double. Для возвращения значений атрибутов используется единственная функция get_sen_uroven(). - Класс kran_"компонент" выполняет только функции открытия и закрытия, класс не содержит атрибутов, а содержит только два метода: open() и closed(). - Класс nasos_"компонент" выполняет только функции включения и выключения, класс не содержит атрибутов, а содержит только два метода: ON() и OFF(). - Класс sen_transporter имеет атрибуты управления. m_sen_transporter - измерение скорости транспортера. Все переменные данного класса определены типом double. Для возвращения значений атрибутов используется единственная функция get_sen_transporter (). - Класс Sen_process имеет атрибуты управления. m_sen_process - наличие или отсутствие факта остановки техпроцесса. Все переменные данного класса определены типом boolean. Для возвращения значений атрибутов используется единственная функция Get_sen_process(). - Класс Controller содержит в себе все параметры для производства поролона. Класс Controller должны иметь доступ к атрибутам других классов для обеспечения управления технологическим процессов. Из этого следует, что класс Controller зависит от других классов, или в терминах UML, находится с ними в отношении зависимости.

Похожие статьи




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

Предыдущая | Следующая