Как написать программу для стиральной машины

Помогите пожалуйста написать программу, очень нужна ваша помощь!!!

Нужно написать в CodeVisionAVR программу для микросхемы Atmega8 которая бы управляла стиральной машиной по следующей схеме:

Выходы

14. Мотор крутится по часовой стрелке.

15. —————— против часовой стрелке.

16. Кран открывается.

17. ——- закрывается.

18. Включение нагревательного элемента.

19. Кран канализации открывается.

20. ———————— закрывается.

21. Дверь закрывается (нельзя открыть во время стирки).

Входы

1. Начало стирки

2. Хлопок лён- 30 минут стирается одежда в воде, 10м. полоскание, 10 мин.- отжим, вода- 60

3. Синтетика — 20 мин стирка. 10 мин- полоскание, 10мин- отжим вода 30 град.

4. Деликатная ткань- 50 мин- стирка. 20 мин- полоскание, 10 мин- отжим вода 25 град.

5. ПАУЗА

6. Регулировка оборотов двигателя (только для полоскания)

7. Температура воды

8. Повторное полоскание 10 мин.

Датчики

17. Температура

18. Обороты двигателя

19. Преверка закрытия двери

Может у кого то уже есть готовая программа для стиральной машины в AVR (для другого МП, другой алгоритм — без разницы) помогите пожалуйста с решением данной задачи!

post-136250-0-66805200-1302507439_thumb.jpg


Изменено 11 апреля, 2011 пользователем galiioleg

Аналогичная фигня приключилась и с моей стиралкой Аристон 2005 года в прошлом году. Года за 2 «до» она уже сигналила, что подустала, но я тупо перепаял ей усохшие кондеры и забил, пардон забыл на пару лет, как выяснилось позже.

В общем, разбор вопроса, гугление особенностей стиралок и их мозгов, привел к тому, что проще купить новую стиралку чем лечить мозги ей и тем более «ардуиной». Во-первых, найти в жизни мозги от стиралки, что отпахала больше 10 лет — это из разряда «фантастики», а если Вы их и неайдете, то цена им будет примерно в 3/4 от новой машинки, а то и «столько же».

Жаль конечно, все живое, опробованное, движок смотрел — ваще как новый .. 5кг сухого белья крутит и не жужжит, стирали даже туристические спальники «зимний вариант» .. а то что взяли взамен — «современное фуфло», хоть и написано аж «загрузка до 7 кг» .. даже 4кГ сухого белья не тянет — отключается и моргает всем чем может..

Но, проблема как раз в тех самых «циклограммах». И ещё в том, что все моторчики, датчики и пр. лабуда — стоят «свои», фиг найдешь описание в Сети. Только для популярных моделек. И то, чуть буковка модельки не та — пиши пропало.

P.S. Не, оно конечно, Мега с легкостью справится с работой стиралки (проверено), но гемморой — жуткий. И это .. не Ардуино ни разу. Нужно качественно программирование работы командоаппарата на прерываниях и конечных автоматах.

P.P.S. Думаю даже что в ПЗУ Меги (256кб) может влезть некий «универсальный» набор управления типовыми моторчиками, датчиками и т.д., по принципу «выбери комплектацию своей стиралки». Но .. кто-то возьмется за такой гемморой? Не думаю..

0 / 0 / 0

Регистрация: 14.05.2014

Сообщений: 2

1

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

14.05.2014, 11:07. Показов 2301. Ответов 6


помогите разработать программу
Режимы:
Cotton – 120 минут 95 градусов
Wool – 60 минут 40 градусов
Quick wash – 30 минут 95 градусов
Общий порядок стирки: Вращать бак в каждую сторону по 5 минут до окончания стирки.
Отжимать на выбранной скорости поочередно вращая барабан во часовой и против
часовой стрелке по 3 раза.
Температура контролируется цифровым датчиком, который через I0-I7 выдает значение в
двоичной форме.
Высокий уровень на выводе контроллера тэна T0 включает подогрев воды. Если скорость
нагрева меньше 5 градусов в секунду – выдать ошибку.
Скорость вращения двигателя задается в цифровом виде через контакты D0-D7. Причем
высокий уровень на контакте D7 определяет вращение по часовой стрелке а низкий –
против часовой. Скорость вращения задается контактами D0-D6.
Высокий уровень на датчике блокировки люка L0 — блокирует открытие.
Выберите на ваше усмотрение таймер для отсчета времени работы.
Для отображения времени до окончания работы используется ЖК индикатор с
информационными выводами I0-I7 и тактирующим SCK. При срабатывании
тактирующего вывода из I0-I7 читается число в двоичной форме, которое конвертируется
в десятичную и отображается на индикаторе.
Нажатие Кнопки Страт/Пауза запускает программу. Повторное нажатие
приостанавливает.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



10229 / 6607 / 498

Регистрация: 28.12.2010

Сообщений: 21,159

Записей в блоге: 1

14.05.2014, 12:18

2

Ваши потуги?



0



205 / 143 / 27

Регистрация: 14.02.2013

Сообщений: 1,092

14.05.2014, 20:38

3

lapidus, вы бы с чего начали ваш проект?



0



Эксперт быдлокодинга

2091 / 525 / 69

Регистрация: 04.11.2010

Сообщений: 1,310

15.05.2014, 01:14

4

Цитата
Сообщение от lapidus
Посмотреть сообщение

Если скорость нагрева меньше 5 градусов в секунду – выдать ошибку.

Выдаю ошибку. Пять градусов в секунду даже электропечь для сауны не выдаст. А жрёт она не хило….

Добавлено через 1 минуту

Цитата
Сообщение от VladimirU
Посмотреть сообщение

вы бы с чего начали ваш проект?

Вестимо с принципиальной схемы. Или есть варианты?



0



0 / 0 / 0

Регистрация: 14.05.2014

Сообщений: 2

15.05.2014, 10:09

 [ТС]

5

нам задали на экзамене составить программу.Даже не знаем с чего начать.Вот обратились к экспертам.Помогите Плиз…



0



10229 / 6607 / 498

Регистрация: 28.12.2010

Сообщений: 21,159

Записей в блоге: 1

15.05.2014, 13:37

6

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



0



2 / 2 / 1

Регистрация: 20.05.2014

Сообщений: 14

23.05.2014, 11:36

7

Цитата
Сообщение от Полный 30h
Посмотреть сообщение

Выдаю ошибку. Пять градусов в секунду даже электропечь для сауны не выдаст. А жрёт она не хило….

Там наверняка ошибка. Такой механизм реализован в том числе и в накопительных водонагревателях — если скорость роста температуры больше 5 градусов в секунду — значит, нет либо мало воды в баке — выдать ошибку..

Цитата
Сообщение от lapidus
Посмотреть сообщение

нам задали на экзамене составить программу.Даже не знаем с чего начать.Вот обратились к экспертам.Помогите Плиз…

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

например:
1. Подача питания — включение.
2. Инициализация, проверка текущего состояния, проверка на прерванный цикл стирки.
3. Если стирка была прервана, то запросить продолжение у пользователя. Если да — п.4, иначе — п.5.
4. Продолжить стирку .
5. Переход в ждущий режим — ожидание команды.
6. Если активирован какой-либо режим — проверка состояния системы (люк закрыт), начало цикла.
… работа по программе выбранного цикла.
N. Завершение цикла, переход к п.5.

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



0



В подавляющем большинстве бытовой техники используются микропроцессорные технологии, одним из основных компонентов которых является программное обеспечение (ПО) или управляющая программа. ПО — это свод правил работы «железной» начинки бытового прибора. Управляющая программа, как правило, записана в специальной области памяти в составе процессора (масочное ПЗУ или Flash-память) или в отдельной микросхеме памяти (EEPROM). Например, в стиральных машинах (СМ) возможны различные комбинации размещения ПО: системный загрузчик находится в области памяти процессора, а основное ПО — в микросхеме EEPROM (СМ ARISTON и INDESIT), или — основное ПО и загрузчик находятся во встроенной памяти процессора, а в EEPROM хранятся служебные данные (СМ HANSA).

Как показала практика, неисправности СМ, связанные с управляющей программой (прошивкой) проявляются достаточно часто, причем их внешние проявления не всегда можно диагностировать, как программный сбой. В этой статье автор рассматривает особенности прошивки микросхем EEPROM, используемых в стиральных машинах ARISTON, INDESIT и CANDY, с помощью программатора PonyProg.

Программатор PonyProg достаточно прост (в том числе и при самостоятельном изготовлении, например, из наборов МАСТЕР КИТ), универсален и поэтому широко распространен — на его основе мы рассмотрим порядок работы с прошивками микросхем энергонезависимой памяти, используемых в СМ ARISTON, INDESIT и CANDY

Программатор имеет много вариантов технической реализации, однако, их объединяет общая программная поддержка. При запуске программы с аналогичным названием (PonyProg) появится заставка-приветствие (рис. 1), сопровождаемая «бодрым ржанием» (подобное неординарное звуковое сопровождение будет звучать, если галочка, показанная стрелкой на рис. 1 не снята). Сам софт для этого программатора доступен для свободного скачивания на интернет-ресурсе разработчика (http://www.lancos.com).

Заставка-приветствие при запуске программатора PonyProg

Рис. 1

После нажатия кнопки «ОК» появится основное окно программы PonyProg.

Представим, что все уже настроено и откалибровано, программа все равно предложит это сделать в самом начале работы. Для настройки выбирают вкладку УСТАНОВКИ (рис. 2) и далее действуют в соответствии с появляющимися сообщениями, благо, программа имеет русскоязычный пользовательский интерфейс.

Основное окно программы PonyProg

Рис. 2.

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

Эту информацию, например, можно найти по адресу: http://mc-prog.narod.ru/ponyprog_Doc.htm.

Возвращаясь к теме статьи, расмотрим работу с программой на примере прошивки для стиральной машины «Ariston A1635 SUK». В этой СМ используется модуль LB2000 (EVO-I), входящая в его состав микросхема EEPROM — 93с86. Перед тем как производить какие-либо операции с данной микросхемой, на вкладке УСТРОЙСТВО выбирают размер «16 бит» и тип микросхемы (рис. 3). Что мы видим, считав содержимое данной микросхемы? Для непосвященных — куча цифр в столбик и иероглифы, похожие на латинский шрифт.

Основное окно программы PonyProg

Рис. 3

Но давайте найдем логику в этой мешанине. По адресу 000030 (см. рис. 4) находится серийный номер прошивки и название модели СМ, в данном случае это — A1635 SUK. Если вы без оглядки «скачали» прошивку из просторов Интернета, то она может выгля-деть, как показано на рис. 5 — разница с первоначальной картинкой налицо. На самом деле, все можно исправить — скорее всего, подобный дамп был записан другим программатором и мы видим просто переставленные (перевернутые) байты. Как поступают в подобном случае — возвращают байты на свои места (нажав вкладку УТИЛИТЫ — ПЕРЕСТАВИТЬ БАЙТЫ) — см. рис. 6. Далее подобную измененную прошивку уже записывают в микросхему памяти (нажав кнопку ЗАПИСАТЬ УСТРОЙСТВО — см. рис. 7).

Окно программы PonyProg

Рис. 4

Окно программы PonyProg

Рис. 5

Окно программы PonyProg

Рис. 6

Окно программы PonyProg

Рис. 7

Рассмотрим еще один вариант — стиральная машина «Indesit WISL85 CSL». В этой СМ используется электронный модуль LB EVO-II, а тип входящей в его состав микросхемы EEPROM — 24с64. Как и в предыдущем случае ищем адрес 000030 — но по нему искомой информации о номере прошивки и названии модели СМ не находим (см. рис. 8). Выполнив «прокрутку», находим подобную информацию в строках 000D60 и 000D70 (рис. 9).

Окно программы PonyProg с информацией

Рис. 8

Окно программы PonyProg с информацией

Рис. 9

Чтобы избежать путаницы, отметим, что серийный номер всегда начинается с сочетания цифр 28 (см. рис. 4 и 9) и представляет собой 11-значное число — это касается всех прошивок на стиральные машины производства INDESIT COMPANY (торговые марки INDESIT и ARISTON).

В заключение остановимся на прошивке СМ «Hoover H160E UK» производства CANDY GROUP. В составе электронного модуля СМ имеется микросхема EEP-ROM 24с04. Не забываем в окнах программы 1 «I2C Bus 8bit eeprom» и 2 «2404» (рис. 10) выбрать соответствующие опции для работы с данным типом микросхемы EEPROM. В прошивке микросхемы по адресу 000100 (рис. 10) находится продуктовый код 31000007, который соответствует модели СМ «Hoover H160E UK».

Окно программы PonyProg с информацией

Рис. 10

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

Например, если в одиннадцатой строке (0000А0) стоят нули (рис. 11) — это означает, что при работе СМ не были зафиксированы ошибки. Изменение содержимого ячеек в этой строке говорит об ошибке.

Окно программы PonyProg с информацией

Рис. 11

В пятнадцатой строке 0000E0 (16 ячейка) указывается код фатальной ошибки, приводящий к остановке аппарата, как, например, на рис. 12 показана ошибка Е6 (неисправность электронного модуля).

Окно программы PonyProg с информацией

Рис. 12

В приведенной ниже таблице показаны адреса ячеек микросхемы энергонезависимой памяти СМ CANDY и HOOVER (в которых хранятся сообщения об ошибках), коды ошибок и причины их возникновения.

Таблица. Адреса ячеек микросхемы энергонезависимой памяти СМ CANDY и HOOVER, коды ошибок и причины их возникновения

Адрес

Код ошибки

Причины возникновения ошибки

0000A1

E1

Неисправны блокировочное устройство дверцы люка или электронный контроллер

0000A2

E2

Вода в баке не достигла 1 уровня прессостата за отведенное время (3,5 мин).

Возможные причины появления ошибки:

— отсутствует вода в водопроводе (перекрыт кран);

— неисправен клапан залива воды или нарушены цепи его питания;

— засор в тракте залива воды СМ

0000A3

E3

За отведенное время (3 мин) вода не была слита из бака.

Возможные причины появления ошибки:

— неисправен сливной насос или нарушены цепи его питания;

— неисправен прессостат;

— засор в тракте слива воды СМ (фильтр, сливной шланг)

0000A4

E4

Уровень воды в баке выше номинального уровня. Возможные причины появления ошибки:

— неисправен датчик уровня;

— заблокирован клапан залива воды (постоянно открыт)

0000A5

E5

Неисправен датчик температуры (NTC)

0000A6

E6

Неисправен электронный модуль

0000A7,

0000A8

E7, Е8

— барабан СМ или приводной мотор механически заблокированы;

— неисправен приводной мотор или цепи его питания;

— неисправен тахогенератор

0000A9

E9

Неисправен управляющий симистор приводного мотора на электронном модуле

0000AA

ЕА

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

0000AB

ЕВ

Неисправен электронный модуль сушки (только для СМ с сушкой)

0000AC,

0000AD

ЕС, ED

Нет обмена данными между электронными модулями

Автор: Андрей Порохов (г. Мурманск)

Источник: Ремонт и сервис

Разработка электронного блока управления стиральной машины «Иволга»

Время на прочтение
3 мин

Количество просмотров 29K

Стиральная машина «Иволга» СМП-3Э.1 производства ПО «Баррикады»

image

Рис.1. Внешний вид стиральной машины

За все время эксплуатации (порядка 30 лет) стиральная машина показала себя с хорошей стороны. Слабым местом являются насос, датчик уровня воды и электронный блок управления. В родном блоке управления вышла из строя микросхема логики. Заменил микросхему, но вскоре вылетела К556РТ1. Пришлось менять всю плату электроники на новую. В этой плате тоже после нескольких лет вылетела РТшка. Мысль разработки своей платы витала долго в голове, но как-то находились более приоритетные задачи. Хотелось что-то простое, с минимальной номенклатурой и свое. И тем не менее, этот день настал.

Подробности ниже.

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

image

Рис.2. Оригинальная плата электронного блока управления

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

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

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

Все циклограммы работы стиральной машины были в точности повторены.

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

На панели управления имелось окошко с логотипом «Иволга». Было решено вмонтировать в это окошко дисплей. Стекло с линзой было использовано от корпуса медицинского термометра очень удачно подходящего по размерам.

image

Рис.3. Окошко для OLED-дисплея

image

Рис.4. Установка датчиков температуры

image

Рис.5. Внешний вид модифицированной панели управления

Также добавлен Wi-Fi модуль ESP-12e При включении электроники происходит подключение к домашней точке доступа и запрос текущего времени с NTP-сервера. Запускается web-сервер. Управлять режимами работы стиральной машины и видеть текущее состояние и режимы также можно через Интернет с web-странички машинки.

image

Рис.6. Принципиальная схема блока управления

Мозгом является PIC-контроллер. Силовая часть гальванически развязана посредством оптронов. Применен импульсный источник питания. На Wi-Fi модуле ESP-12E запущен web-сервер, который динамически формирует страничку в соответствии с режимом работы стиральной машины. Для сокращения количества портов использую аналоговые входы.

image

Рис.7. Плата блока управления (Вид со стороны установки элементов)

image

Рис.8. Плата блока управления (Вид со стороны монтажа)

image

Рис.9. Крепление платы блока управления

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

При включении питания на дисплее отображается логотип «Иволга», подключение к точке доступа и запрос текущего времени с NTP-сервера. При нажатии на кнопку выбора режима работы включается соответствующий светодиод на панели (как и на оригинальной электронике) и на дисплее отображается название режима. Также на дисплей выводятся оставшееся время стирки/полоскания/отжима, температура двигателя, насоса, электроники. В случае нештатной ситуации на экран выводится сообщение о перегреве или о превышении допустимой вибрации центрифуги.

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

Видео демонстрации работы контроллера:

Оптовые цены на запчасти и инструмент для ВСЕХ на TexnoMag.ru + доставка по РФ от 99 руб.

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

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

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

Системы счисления — это очень важный термин в понимание архитектуры прошивки, многие знают 10 ричную систему счисления, именно её мы применяем в быту для денежных расчетов, подсчета продуктов в холодильнике или количества построенного белья, в данной системе 10 цифр от 0 до 9. Помимо этой системы есть двоичная система где вся информация это набор из 0 и 1, например число 2 это 10, а число 5 101. Данные системы исчисления применяют только машины для непосредственного выполнения команд. Прошивку очень часто просматривают в 16 личной системе счисления, это набор символов от 0 до 9 и набор английских букв от A до F, итого 16 символов.

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

прошивка

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

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

Размер файла чуть больше 2 кб и модель идет сразу после кода прошивки, который в свою очередь написан после серийного номера, почти в самом начале файла

прошивка

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

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

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

Ну и в завершение давайте посмотрим на прошивку Arcadia.

Здесь размер файла не строгий как у платформ evo1 и evo2 а может быть от 3 кб на небольших программах (для холодильников или духовых шкафов) до 12кб на последних версиях стиральных машин
Расположение модели, кода прошивки и серийного номера у данной платформы снизу, а область переменных данных (статистика ошибок) хранится вне файла конфигурации


Модель программного обеспечения стиральной машины(Прочитано 43677 раз)

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

Непосредственно само задание:
Требуется разработать средствами Rational Rose модель программного обеспечения встроенного микропроцессора стиральной машины.
Машина предназначена для автоматической стирки белья. Машина включает в себя следующие устройства: бак для белья, клапаны для забора и слива воды, мотор, устройство подогрева воды, термометр, таймер, дверца для доступа в бак, панель управления с кнопками и индикатором. В памяти машины хранятся 5 программ стирки, заданные изготовителем. Пользователи не могут вносить в них изменения. Каждая программа определяет температуру воды, длительность стирки, скорость вращения бака во время стирки и отжима.
Для использования машины необходимо открыть дверцу, поместить белье в бак, поместить моющие средства в емкости, закрыть дверцу, выбрать программу стирки и нажать на кнопку «Пуск». Перед тем как приступить к стирке машина открывает клапан для забора воды, набирает необходимое количество воды, после чего закрывает клапан. Далее машина действует по выбранной пользователем программе:
1)   Подогревает, если необходимо, воду до нужной температуры.
2)   Включает таймер и запускает вращение бака для стирки.
3)   По окончании стирки сливает воду и запускает отжим.
Во время работы машины на индикаторе высвечивается время, прошедшее с момента запуска (минуты и секунды), текущий режим работы (стирка или отжим), номер текущей программы стирки. В целях безопасности дверца бака блокируется до окончания стирки. Машина не воспринимает нажатия на кнопки, за исключением одной – пользователь имеет возможность в любой момент нажать на кнопку «Останов», чтобы принудительно остановить стирку и слить воду.


Записан



Мдя, пора уже таксу назначать за консультации :)

Получил задание на курсовой.
Непосредственно само задание:
Требуется разработать средствами Rational Rose модель программного обеспечения встроенного микропроцессора стиральной машины.

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

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

Вот наша предметная область

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

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

Для использования машины необходимо открыть дверцу, поместить белье в бак, поместить моющие средства в емкости, закрыть дверцу, выбрать программу стирки и нажать на кнопку «Пуск». Перед тем как приступить к стирке машина открывает клапан для забора воды, набирает необходимое количество воды, после чего закрывает клапан. Далее машина действует по выбранной пользователем программе:
1)   Подогревает, если необходимо, воду до нужной температуры.
2)   Включает таймер и запускает вращение бака для стирки.
3)   По окончании стирки сливает воду и запускает отжим.
Во время работы машины на индикаторе высвечивается время, прошедшее с момента запуска (минуты и секунды), текущий режим работы (стирка или отжим), номер текущей программы стирки. В целях безопасности дверца бака блокируется до окончания стирки. Машина не воспринимает нажатия на кнопки, за исключением одной – пользователь имеет возможность в любой момент нажать на кнопку «Останов», чтобы принудительно остановить стирку и слить воду.

Это можно описать с помощью диаграм последовательности, деятельности и опять же состояний.

Вот с этого и можно было бы начать:
1. выделить объекты (скорее всего датчики и устройства)
2. описать как эти датчики и устройства взаимодейтсвуют при реализации каждой из 5 программ


Записан



Пока писал Галоген уже запостил правильную инструкцию и комменты ….

Мои 5 копеек:
1. Начинаем изучать ЮМЛ, надо иметь представление о всех Д и как они строятся
2. Начинаем изучать примеры имеющие на сайте
3. Начинаем строить вашу модель:
3.1 Строим ДБО
3.2 Строим СМВИ
3.3 Расписываем сценарии СВИ
3.4 Строим ДК


Записан

Не важно какой ты сейчас — большой или маленький, важно — как ты растешь.
Б.А.С.



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

Вот вам потенциальный класс:
Программа
 Идентификатор — просто номер программы
 Температура воды
 Длительность стирки
 Скорость вращения бака (стирка)
 Скорость вращения бака (отжим)

 Как мы видим программы отличаются параметрами, но не ходом выполнения. Т.е. сама программа — это типовая схема действий.

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

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

Для того чтобы сделать ПО — нужно фактически сделать модель стиралки.
Кстати отличная задача. Описание с помощью UML — релаизация в MATLAB или там другой системе. Кстати сходите на exponenta.ru, там поищите методические материалы, что-то практикум моделирования на матлаб (типа дипломной работ о задаче управления двух баков с водой) может поможет:-)


Записан



Пока писал Галоген уже запостил правильную инструкцию и комменты ….

Мои 5 копеек:
1. Начинаем изучать ЮМЛ, надо иметь представление о всех Д и как они строятся
2. Начинаем изучать примеры имеющие на сайте
3. Начинаем строить вашу модель:
3.1 Строим ДБО
3.2 Строим СМВИ
3.3 Расписываем сценарии СВИ
3.4 Строим ДК

оффтоп:
объясните пару позиции:
1. было предложено действовать по сценарию выше, то есть порядок рисования (описания) диаграмм, по какому принципу это было предложено? (то есть в каком порядке что делать при разработке модели ПО, и почему)
2. что значит СМВИ, был в факи, там такого нету =(

спасибо!


Записан



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

Есть несколько подходов в методологиях разработки ПО, см. мою презентацию:
http://www.uml2.ru/index.php?option=com_smf&Itemid=45&topic=334.msg3352#msg3352

2. что значит СМВИ, был в факи, там такого нету =(

добавил

« Последнее редактирование: 26 Июля 2007, 13:59:17 от bas »


Записан

Не важно какой ты сейчас — большой или маленький, важно — как ты растешь.
Б.А.С.



объясните пару позиции:
1. было предложено действовать по сценарию выше, то есть порядок рисования (описания) диаграмм, по какому принципу это было предложено? (то есть в каком порядке что делать при разработке модели ПО, и почему)
2. что значит СМВИ, был в факи, там такого нету =(

Уважаемый LMZ! Давайте для начал проясним позицию.
Мы консультируем, советуем, но делаете ВЫ!

Поскольку Вы не знакомы с UML, а Вас заставляют сделать именно в UML (наверное полагается по программе — ничего плохо в этом нет, стоит поучится ей-Богу), то уважаемый BAS Вам предложил начать с изучения основ UML для начала.
Далее он предлагает построить диаграмму бизнес-объектов (но я бы не стал замарачиваться, тут лучше начать с классов Вашей предметной области: т.е. стиральная машина и ее компонеты),
далее предлагает построить модель системных вариантов использования — т.е. как пользователь или другие внешние по отношению к системе используют систему в терминах реакции системы на внешние раздражители (но мне думается тут они ни к чему, все работает по программе, кнопку нажал и вперед).
далее описать системные варианты использования — но я бы заменил расстрелом :-) на самом деле тут следует сосредоточиться на диаграмме состояний. Просто описать какие состояния принимает СМ и когда. Хотя можно наверное описать и сценарий — т.е. некоторую последовательность действий в ответ на внешнее раздражение — пользователь нажал кнопочку (конечно грубо — но примерно). Все-таки СМ система не интерактивная, это и в описание указано — 5 каких-то программ.


Записан



Уважаемый Galogen, не я автор топика ;)
«Мы консультируем, советуем, но делаете ВЫ!» я полностью согласен с этим, и не в коем случае не хочу что бы мою работу кто-то делал за меня (тогда я никогда не научусь!)

мне просто не понятен процесс выбора диаграмм (то есть почему в некоторых случаях строят сначало ДВИ а в некоторых диаграмму классов).

2 BAS, спасибо за линк, я скачал, пока не нашёл, то что искал (я надеюсь, найду ;) )


Записан



Уважаемый Galogen, не я автор топика ;)

Ой, действительно. Извините

мне просто не понятен процесс выбора диаграмм (то есть почему в некоторых случаях строят сначало ДВИ а в некоторых диаграмму классов).

Все зависит от задачи.
Если цель построения некой ИС, то очевидно надо плясать от потребностей пользователя. Тогда имеет смысл начинать с ДВИ.
Если как в случае со СМ — то зачем там ДВИ. Пользователь 1, да и пользует он ее просто — нажал на кнопку получил результат. В этом случае мы проектируем не ИС, а ПО для автомата. Потому и нет нужды в ДВИ на мой взгляд.
Совет потратьтесь на книгу Рамбо и Блаха «Объектно-ориентированное моделирование и разработка. UML 2.0» Там интересно все расписано


Записан



2 BAS, спасибо за линк, я скачал, пока не нашёл, то что искал (я надеюсь, найду ;) )

Там как раз это «Облегченный подход «Шмуллера»». Если что-то еще будет не понятно, то спрашивайте.


Записан

Не важно какой ты сейчас — большой или маленький, важно — как ты растешь.
Б.А.С.



Если как в случае со СМ — то зачем там ДВИ. Пользователь 1, да и пользует он ее просто — нажал на кнопку получил результат. В этом случае мы проектируем не ИС, а ПО для автомата.

Т.е. фактически ДВИ д.б. одна? Или их вообще не надо?
А если пойти дальше и создать ДВИ для автомата?

Во вложениях картинки двух диаграмм Main и Washing. Первая как раз общая, а вторая для автомата.


Записан



Вторая ДВИ в корне не правильная, Вы на ней хотите показать последовательность действий что в корне не правильно.
Не надо спешить рисовать.
Во первых опреджеляемся, что будем рисовать уровень СВИ, а детализиорвать ВИ будем по Коберну
Что делаем:
1. Выделяем актеров: Пользователь, Вода, Слив, Электричество
2. Выделяем цели этих актеров. Это уже сами.
3. Рисуем ДВИ


Записан

Не важно какой ты сейчас — большой или маленький, важно — как ты растешь.
Б.А.С.



Вообще не понимаю для чего рисовать такую диаграмму где 1 ВИ? Ну если только преподы настаивают :-).
Вот смотрите — стирка — вариант использования, конечно можно сделать так стирка х/б белого, стирка х/б цветного, стрика шерстяных изделий, стирка деликатных тканей, стирка особо грязного белья.
Т.е. самой по себе стирки нет, есть стирка по конкретной программе. Однако в чем отличие для пользователя в этом случае?
Пользовтель загружает белье, выбирает программу, закрывает дверцу, нажимает программы.
Что тут можно описать?
П: закладывает белье и выбирает нужную программу стирки, закрывает дверцу, запускает машину
СМ: действует согласно программе.
Исключения
1.Дверца не закрыта
  СМ — подает звуковой и световй сигнал, программа стирки не запускается
  П — закрывает дверцу, запускает машину вновь
  СМ: действует согласно программе.
2. Перегруз
  СМ — подает звуковой или световой сигнал и сообщает о перегрузе
  П — убирает лишнее, запускает машину вновь
  СМ: действует согласно программе.

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

Вторая диаграмма — вообще не понятна, кто тут кого использует?


Записан



Эд, я думаю, что ДВИ нужна для препода, поэтому ее надо строить, причем можно использовать включения/расширения, наследования и т.п.


Записан

Не важно какой ты сейчас — большой или маленький, важно — как ты растешь.
Б.А.С.



По-моему, я что-то не допонимаю.
Я догадывался, конечно, что какая то это диаграмма (рис 1.) неправильная, но надеялся, что может ошибаюсь.

Что делаем:
1. Выделяем актеров: Пользователь, Вода, Слив, Электричество
2. Выделяем цели этих актеров. Это уже сами.
3. Рисуем ДВИ

Вода??? Электричество??? Тоже могут быть актерами со своими целями???
Сдается мне, что мой мозг еще не достиг такого уровня абстракции, как у мудрецов Омара Хайяма :)


Записан



Понравилась статья? Поделить с друзьями:
  • Как написать программу для составления расписания
  • Как написать программу на фортране
  • Как написать программу для смартфона
  • Как написать программу на телефоне андроид
  • Как написать программу для слежки