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

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

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

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

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

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

25

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

Курсовая работа

Тема

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

Техническое задание

лифт программа управление

Разработать алгоритм и программу управления поворотной платформы. В работе предусмотреть:

1) язык программирования - Java Script;

2) среда программирования - Adobe Dreamweaver CS5;

3) ручное и автоматическое управление лифтом;

Введение

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

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

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

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

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

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

25

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

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

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

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

var web_height = 120,

web_width = 100,

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

t,

pause;

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

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

function goFloor( a )

{

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

{

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

var fThis = $('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++

var fAll = $('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 )

}

}

}

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

}

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

function goFloorManual( a )

{

if ( process == 0 )

{

var fThis = $('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 )

}

}

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

function upLift( 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

}

}

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

function downLift( 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

}

}

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

function clearList()

{

$('thisFloor').value = 1;

$('allOp').value = 0;

$('op').value = 0;

start()

}

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

function addOp( a )

{

var i = $('allOp').value;

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

if ( i == 0 )

var thisFloor = $('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)

{

var text = 'Остановка на '+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+'" />';

}

else

{

$('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="'+a+'" />'+

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

}

$('allOp').value++;

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

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

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

}

}

// Отменяем добавление операции

function backOp()

{

$('allOp').value--;

$('op'+$('allOp').value).innerHTML = '';

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

$('floorTime').value = ''

}

// Выполнить операции в списке

function startLift()

{

goFloor( 0 );

}

// Выводим модель лифта

function start()

{

var a = $('saveFloor').value = ( $('floor') ) ? $('floor').value:$('saveFloor').value,

e = '',

button = '',

res = '';

if ( !a )

{

e = 'Вы не указали колличество этажей'

}

if ( e )

{

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

$('error').innerHTML = e;

}

else

{

$('error').display = 'none';

//$('error').className = 'success';

for ( var i=a; i>0; i-- )

{

res += '<tr><td><div class="butFloor" onclick="addOp('+i+')" id="auto'+i+'" style="display:none">'+i+'</div>'+

'<div class="butFloor" onclick="goFloorManual('+i+')" id="manual'+i+'">'+i+'</div>'+

'</td><td class="line"></td><td width="100"><div id="but'+i+'"></div></td></tr>'

}

$('content').innerHTML = '<table><tr><td><div class="title">Симулятор лифта'+

'<div class="rMode" id="modeCheck" onmouseover="aBox(\'modeBox\',1)" onmouseout="aBox(\'modeBox\')" onclick="mode()"></div><div class="aBox" id="modeBox">Выбран ручной режим работы</div>'+

'</div>'+

'<div style="position:absolute;margin-left:'+(web_width*1+36)+'px;height:'+(web_height*a)+'px;width:1px;background:#000"></div><div style="position:absolute;margin-left:'+(web_width*2+36)+'px;height:'+(web_height*a)+'px;width:1px;background:#000"></div>'+

'<div id="lift" style="position:absolute;background:#ff7700;width:'+(web_width-1)+'px;height:'+(web_height-1)+'px;margin:'+((web_height*(a-1))+1)+'px 0 0 '+((web_width*1+36)+1)+'px"></div>'+

'<table>'+res+'</table></td><td>'+

'<table width="290"><tr><td width="290"><div class="title">Операции</div><div id="list" style="width:100%"></div><div id="list_error" class="error">Нет операций для выполнения</div><div id="list_but" style="display:none"><input type="button" style="width:100px" value="Очистить" onclick="clearList()" /><input type="submit" style="width:100px" value="Запустить" onclick="startLift()" /></div></td></tr></table>'+

'</td></tr></table>';

}

}

// Выбор типа паузы на этажах

function pauseType()

{

pause = $('pauseType').value;

if ( pause == 1 )

{

$('pauseTime').style.display = 'block'

}

else

{

$('pauseTime').style.display = 'none'

}

}

// Выбор режима работы

function mode()

{

var a = $('modeCheck'),

b = $('modeBox'),

c = $('mode'),

saveFloor = $('saveFloor').value;

if ( a.className == 'rMode' )

{

a.className = 'aMode';

b.innerHTML = 'Выбран автоматический режим работы';

c.value = 1;

for ( var i=1; i<=saveFloor; i++ )

{

$('auto'+i).style.display = 'block';

$('manual'+i).style.display = 'none';

}

}

else

{

a.className = 'rMode';

b.innerHTML = 'Выбран ручной режим работы';

c.value = 0;

for ( var i=1; i<=saveFloor; i++ )

{

$('auto'+i).style.display = 'none';

$('manual'+i).style.display = 'block';

}

}

}

// Вывод подсказки

function aBox( a, b )

{

$(a).style.display = ( b == 1 ) ? 'inline-block':'none';

}

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

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

Для выполнения вычислительного эксперимента в папке запускаем Opera Web Document (.html) файл. Появляется программа выполненная в виде приложения для браузера в среде программирования Adobe Dreamweaver CS5. Управление лифтом осуществляются согласно указаниям, приведенным в руководстве оператора. Задание количества этажей, этажа следования, настройка остановок осуществляется при помощи клавиатуры и манипулятора «мышь». При проведении вычислительного эксперимента проверено соответствие результатов, полученных на этапе проектирования, с результатами работы программы. Вычислительные эксперименты изображены на рисунках 7, 8 и 9.

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

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

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

Заключение

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

Данная программа состоит из 319 строк. Объем памяти занимаемый программой составляет html-файл 20 Кб.

Список литературы

1. Пауэлл, Томас; Шнайдер, Фриц М.: «Вильямс»(издание 2-е) 2007 - 960 с.

2. JavaScript и AJAX в Web-дизайне: Владимир Дронов -- Санкт-Петербург, БХВ-Петербург, 2008 г.- 736 с.

3. JavaScript на примерах: Александр Климов -- Санкт-Петербург, БХВ-Петербург, 2009 г.- 336 с.

4. JavaScript. Подробное руководство: Дэвид Макфарланд -- Санкт-Петербург, Эксмо, 2009 г.- 608 с.

5. JavaScript. Руководство программиста: Пол Вилтон, Джереми МакПик -- Санкт-Петербург, Питер, 2009 г.- 720 с.

6. WEB-программирование на Java и JavaScript: Андрей Гарнаев, Сергей Гарнаев -- Санкт-Петербург, БХВ-Петербург, 2005 г.- 1040 с.

7. Основы веб-программирования с использованием HTML, XHTML и CSS: Джон Дакетт -- Санкт-Петербург, Эксмо, 2010 г.- 768 с.

8. Полный справочник по HTML, CSS и JavaScript: Лазаро Исси Коэн, Джозеф Исси Коэн -- Москва, ЭКОМ Паблишерз, 2007 г.- 1168 с.

Приложение А

Руководство оператора

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

Рисунок 10 - Настройки модели лифта.

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

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

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

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

Все перечисленные выше элементы пронумерованы в соответствующем порядке на рисунке 11.

Рисунок 11 - Разметка рабочей области модели лифта.

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

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

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

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

Рисунок 12 - Настройки остановки на этаже.

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

Приложение Б

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

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

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

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

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

upLift - Функция передвижения лифта вверх.

downLift - Функция передвижения лифта вниз.

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

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

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

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

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

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

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

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

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


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

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

    курсовая работа [495,8 K], добавлен 09.06.2013

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

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

  • Составление алгоритма и разработка в среде программирования Delphi 7 программы, вычисляющей макроэкономические индексы цен. Реализация программы в виде 4 форм и 1 диалогового окна. Описание алгоритма решения задачи. Текст программы, руководство оператора.

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

  • Изучение основ программирования и создание полноценного приложения в среде программирования Delphi. Разработка эскизного и технического проектов программы. Внедрение выполнения программы. Разработка рабочего проекта, спецификация и текст программы.

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

  • Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.

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

  • Разработка игры "Экзамен" с применением объектно-ориентированного программирования и языка Java (в среде Eclipse Helios). Структура программы и алгоритм решения задачи. Описание методов и переменных. Экспериментальное тестирование и оценка программы.

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

  • Проведение сравнительного анализа языков программирования. Создание алгоритма и специфика составления математической модели программы "Механические часы, показывающие текущее время" в среде Microsoft Visual Studio 2010, на базе языка программирования С++.

    курсовая работа [408,9 K], добавлен 11.03.2013

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

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

  • Структура и основные операции коммерческого банка. Использование языка программирования Visual Basic for Application, математическая формулировка задачи. Разработка модуля программы расчёта кредитов и депозитов. Схема алгоритма выполнения программы.

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

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

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

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