Разработка алгоритма и программы управления лифтом

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 09.06.2013
Размер файла 495,8 K

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

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

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1. Разработка алгоритма
  • 2. Разработка программы
  • 3. Вычислительный эксперимент
  • Заключение
  • Приложения

Введение

Цель курсовой работы: получить практические навыки программирования в AdobeDreamweaver CS5, закрепить навыки программирования на AdobeDreamweaver CS5для управления моделью лифта.

В ходе выполнения курсовой работы разработаныалгоритм и программа управлениялифтом. Разработанная программа выполнена в виде приложения для браузера в среде программирования AdobeDreamweaver CS5.

1. Разработка алгоритма

Схема алгоритма программы управления двухмерной моделью лифта приведена на рисунке 1.

Размещено на http://www.allbest.ru/

Рисунок 1 - Схема алгоритма программы управлениямодельюлифта.

2. Разработка программы

Текст программы управлениядвухмерной моделью лифта

varweb_height = 120,web_width = 100,process = 0, // 1 - выполняется перемещение лифта

t,

pause;

function $ (a) {return document. getElementById (a) }

// Выполнениепрогрпммы

functiongoFloor (a)

{

if (a == parseInt ($ ('op'). value))

{

// if (a == 0) $ ('thisFloor'). value = 1;

varfThis = $ ('thisFloor'). value; // текущийэтаж

if ($ ('op'+ (a-1)))

{

$ ('op'+ (a-1) +'status'). innerHTML = '<font color="green">Выполнено</font>';

$ ('but'+fThis). innerHTML = '';

}

if ($ ('op'+a))

{

$ ('op'+a+'status'). innerHTML = '<font color="red">В процессе</font>'

}

if (a <parseInt ($ ('allOp'). value))

{

$ ('op'). value++

varfAll = $ ('saveFloor'). value,

fNext = $ ('op'+a+'val'). value,

fType = $ ('op'+a+'type'). value;

if (fType == 'pause')

{

t = setTimeout ('goFloor ('+$ ('op'). value+') ', fNext*1000)

}

else if (fType == 'pauseSignal')

{

// fThis = fAll-fThis;

$ ('but'+fThis). innerHTML = '<div class="butNext" onclick="goFloor ($ (\'op\'). value)">Следующаяоперация</div>'

}

else if (fType! = 'pause' &&fType! = 'pauseSignal')

{

$ ('thisFloor'). value = fNext;

fNext = fAll-fNext;

fThis = fAll-fThis;

// $ ('lift'). style. marginTop = a*web_height+1+'px';

if (fThis>fNext)

upLift (fNext*web_height+1, fThis*web_height+1, 1)

else

downLift (fNext*web_height+1, fThis*web_height+1, 1)

}

}

}

// Выводим ошибку о подаче ошибочного сигнала

}

// Отправляем лифт на этаж в ручном режиме

functiongoFloorManual (a)

{

if (process == 0)

{

varfThis = $ ('thisFloor'). value, // текущийэтаж

fAll = $ ('saveFloor'). value;

$ ('thisFloor'). value = a;

a = fAll-a;

fThis = fAll-fThis;

// $ ('lift'). style. marginTop = a*web_height+1+'px';

if (fThis> a)

upLift (a*web_height+1, fThis*web_height+1)

else

downLift (a*web_height+1, fThis*web_height+1)

}

}

// Поднятьлифт

functionupLift (a, b, c)

{

process = 1;

if (b > a)

{

b - = 1;

$ ('lift'). style. marginTop = b+'px';

t = setTimeout ('upLift ('+a+', '+b+', '+c+') ',

10)

}

else if (c == 1)

{

goFloor ($ ('op'). value);

}

else

{

process = 0

}

}

// Опустить лифт

functiondownLift (a, b, c)

{

process = 1;

if (b < a)

{

b += 10;

$ ('lift'). style. marginTop = b+'px';

t = setTimeout ('downLift ('+a+', '+b+', '+c+') ', 100)

}

else if (c == 1)

{

goFloor ($ ('op'). value);

}

else

{

process = 0

}

}

// Очищаемсписокопераций

functionclearList ()

{

$ ('thisFloor'). value = 1;

$ ('allOp'). value = 0;

$ ('op'). value = 0;

start ()

}

// Добавляемоперацию

functionaddOp (a)

{

vari = $ ('allOp'). value;

$ ('win_error'). style. display = 'none';

if (i == 0)

varthisFloor = $ ('thisFloor'). value;

else

{

var op = i*1 - 1,thisFloor = $ ('op'+op+'val'). value,

thisType = $ ('op'+op+'type'). value;

}

var thisFloor2 = ($ ('op'+ (op-1) +'val'))? $ ('op'+ (op-1) +'val'). value: thisFloor;

// alert (a+'! = '+thisFloor2);

if (a == 0) // Если добавляем остановку

{

var time = $ ('floorTime'). value;

if (time)

{

vartext = 'Остановка на '+time+' сек. ';

$ ('list'). innerHTML += '<div id="op'+i+'" style="width: 100%; border-bottom: 1px solid #ddd">'+text+

' <div style="float: right" id="op'+i+'status"><font color="#ff7700">Ожидает</font></div>'+

'<input type="hidden" id="op'+i+'val" value="'+time+'" />'+

'<input type="hidden" id="op'+i+'type" value="pause" /></div>';

$ ('allOp'). value++;

$ ('win'). style. display = 'none';

$ ('floorTime'). value = ''

}

else if (pause == 2)

{

$ ('list'). innerHTML += '<div id="op'+i+'" style="width: 100%; border-bottom: 1px solid #ddd">Cигналдляотправки'+

' <div style="float: right" id="op'+i+'status"><font color="#ff7700">Ожидает</font></div>'+

'<input type="hidden" id="op'+i+'val" value="'+thisFloor+'" />'+

'<input type="hidden" id="op'+i+'type" value="pauseSignal" /></div>';

$ ('allOp'). value++;

$ ('win'). style. display = 'none';

$ ('floorTime'). value = ''

}

else

{

$ ('win_error'). style. display = 'block';

$ ('win_error'). className = 'error';

$ ('win_error'). innerHTML = 'Вынеуказаливремяостановки';

}

}

else if (a! = thisFloor2) // Добавляемпередвижение

{

if (! thisFloor2) thisFloor2 = 1;

var text = (a > thisFloor2)? 'Поднятьсяс '+thisFloor2+' на '+a: 'Опуститьсяс '+thisFloor2+' на '+a,

type = (a > thisFloor2)? 'up': 'down';

if ($ ('op'+i))

{

$ ('op'+i). innerHTML = text+

' <div style="float: right" id="op'+i+'status"><font color="#ff7700">Ожидает</font></div>'+

'<input type="hidden" id="op'+i+'val" value="'+a+'" />'+

'<input type="hidden" id="op'+i+'type" value="'+type+'" />';

$ ('allOp'). value++;

$ ('win'). style. display = 'block';

$ ('list_but'). style. display = 'block';

$ ('list_error'). style. display = 'none';

}

}

3. Вычислительный эксперимент

Для выполнения вычислительного эксперимента в папке проекта запускаем OperaWebDocument (index.html) файл. Появляется программа, выполненная в виде приложения для браузера в среде программирования AdobeDreamweaver CS5.

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

При проведении вычислительного эксперимента проверено соответствие результатов, полученных на этапе проектирования, с результатами работы программы. Вычислительные эксперименты изображены на рисунках 7, 8 и 9.

алгоритм программа лифт модель

Рисунок 7 - Вычислительный эксперимент.

Рисунок 8 - Продолжение.

Рисунок 9 - Продолжение

Заключение

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

Приложения

Приложение А. Руководство оператора

В приложении представлены: назначение программы, условия выполнения программы.

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

Запускаем html-файл. В рабочей области представлены настройки модели лифта, а именно задаём количество этажей модели и нажимаем кнопку "Далее”.

После нажатия кнопки "Далее" в рабочей области будут показаны следующие элементы:

1. модель лифта с этажами

2. активный режим, в котором производится работа лифта

3. список операций для автоматического режима работы

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

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

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

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

1. Временная пауза - это остановка на заданное времяв секундах, которое задаётся в соответствующем поле.

2. Ожидание сигнала - это остановка, которая никак не лимитирована по времени и осуществляется до тех пор, пока не будет принят сигнал о прерывании остановки. Симуляция сигнала осуществляется кнопкой, появляющейся в процессе выполнения соответствующей остановки в заявленной программе.

После настройки остановки и нажатия кнопки "Готово” в список операций будут добавлены 2 операции: движение с текущего этажа на выбранный и остановка. Так можно добавить столько операций, сколько потребуется. После добавления всех операций следует нажать кнопку "Запустить”, которая начнёт выполнение созданных операций в той последовательности, в какой они создавались.

Приложение Б. Руководство программиста

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

Данная программа предназначена для построения и управления моделью лифта.

Программа написана на языке JavaScript, поэтому для выполнения вычислительного эксперимента необходимо запустить программу в окне браузера. При написании программы использовалась технология "Объектно-ориентированное программирование”, в результате чего все действия описаны теми или иными функциями. Разберём все функции использованные в программе.

Start - Функция отображающая модель лифта и всю рабочую область.

upLift - Функция передвижения лифта вверх. В качестве параметров принимает номер текущего этажа, номер этажа, куда нужно поднимать лифт, а также флаг режима работы лифта: 1 - автоматический режим работы, 0 - рчной режим работы.

downLift - Функция передвижения лифта вниз. В качестве параметров принимает номер текущего этажа, номер этажа, куда нужно спускать лифт, а также флаг режима работы лифта: 1 - автоматический режим работы, 0 - рчной режим работы.

goFloorManual - Функция передвижения модели лифта на заданный этаж в ручном режиме. В качестве параметра функция принимает этаж, на который нужно переместить лифт. В процессе выполнения данная функция запускает функцию upLift или downLift.

addOp - Функция добавления новых операций в список для автоматического их выполнения. В качестве паараметра принимает ID новой операции.

backOp - Функция отмены добавления операции в всплывающем окне.

mode - Функция переключения ручного и автоматического режимов работы.

pauseType - Функция выбора типа паузы в всплывающем окне.

clearList - Функция очистки списка операций для автоматического режима работы.

goFloor - Функция выполнения операции в автоматическом режиме. В качестве параметра принимает ID выполняемой операции.

startLift - Функция, запускающая выполнение списка операций путём цикличного запуска функции goFloor.

Размещено на Allbest.ru


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

  • Разработка алгоритма и программы управления поворотной платформой лифта при помощи языка программирования Java Script. Проектирование приложения к браузеру в среде Adobe Dreamweaver CS5. Схема алгоритма, текст программы для двухмерной модели лифта.

    курсовая работа [353,1 K], добавлен 18.05.2013

  • Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.

    курсовая работа [823,0 K], добавлен 18.12.2011

  • Программный комплекс для разработки программы транслирующей программу с языка Pascal на язык С++. Построение логической и арифметической модели решения. Разработка компилятора для программы. Методы отладки программы и создание для нее документации.

    курсовая работа [742,6 K], добавлен 03.07.2011

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

    курсовая работа [347,3 K], добавлен 21.01.2013

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

    курсовая работа [1,5 M], добавлен 07.07.2013

  • Исследование арифметических выражений и разработка простых программ. Таблица переменных для алгоритма и программы. Алгоритм решения, текст программы на языке С. Разработка программы вычисления значений выражений, сравнение результатов с ручным подсчетом.

    лабораторная работа [282,7 K], добавлен 30.01.2015

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

    курсовая работа [1,2 M], добавлен 10.06.2015

  • Разработка программы вычисления выражения y = (x+10)5. Ход работы, структурная схема алгоритма. Окна основных обозревателей системы, текстовый редактор. Интерфейс модели ЭВМ, методы ввода и отладки программы, действия основных классов команд, адресация.

    лабораторная работа [523,4 K], добавлен 28.12.2014

  • Принципы и алгоритмы обработки прерываний. Набор действий по реализации этапов обработки прерываний микропроцессора. Разработка структуры и алгоритма резидентной программы. Реализация программы на языке Ассемблер, методы её отладки и тестирования.

    курсовая работа [348,7 K], добавлен 22.12.2014

  • Разработка и написание программы по моделированию движения снаряда при заданных параметрах пути, максимальной высоты, времени полета и траектории. Анализ методов построения модели, разработка алгоритма, написание и отладка программы в среде Delphi.

    курсовая работа [214,5 K], добавлен 11.02.2011

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