Читайте также: |
|
Вариант задания выбирается в соответствии с номером студента
В списке группы
Требования к оформлению задания:
Текст задания.
Теоретический материал, содержащий описание, соответствующего стенда и особенности его работы, знание которых необходимо для решения задачи контрольной работы.
3. Описание использованных в решении задачи функций библиотеки Advantech и Turbo C++.
Решение задачи должно включать в себя блок-схему алгоритма решения задачи и программный код с подробными комментариями.
5. Решение задачи, ее отладка и компиляция выполняется в среде Turbo C++.
Защита результатов контрольной работы выполняется на стенде.
Тексты задач
1. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- в исходном состоянии груз, перемещаемый двигателем Analog_Motor_2, находится в крайнем нижнем положении;
- после однократного нажатия кнопки Stand_by, двигатель включается в режим подъема груза вверх со средней скоростью;
- при достижении грузом крайнего верхнего положения, направление движения груза инвертируется;
- после достижения грузом крайнего нижнего положения, двигатель Analog_Motor_2 выключается;
- следующее нажатие кнопки Stand_by повторяет цикл работы контроллера;
- достижение грузом крайнего верхнего и крайнего нижнего положений контролируется при помощи датчиков Place_2_3 и Place_2_1 соответственно.
2. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- при включении контроллера груз, перемещаемый двигателем Analog_Motor_2, находится в крайнем нижнем положении;
- после нажатия кнопки Stand_by, двигатель включается в режим подъема груза вверх на 10 см., затем формируется пауза 3 сек. и так 4 раза;
- после последней остановки двигатель опускает груз вниз до исходной точки расположения груза;
- далее, после нажатия кнопки Stand_by, цикл работы контроллера повторяется;
- достижение грузом крайнего нижнего положения контролируется при помощи датчика Place_2_1.
3. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- при включении контроллера груз, перемещаемый двигателем Analog_Motor_2, находится в крайнем нижнем положении;
- после однократного нажатия кнопки Stand_by двигатель включается в режим подъема груза вверх со средней скоростью;
- при достижении грузом середины стенда двигатель выключается, ожидая следующего нажатия кнопки Stand_by, которое вновь возобновит работу двигателя с той же скоростью и направлением;
- при достижении грузом крайних положений контроллер останавливает двигатель, инвертирует направление движения груза и вновь переходит в режим ожидания нажатия кнопки Stand_by, которое возобновит работу двигателя и т.д.;
- контроль положения груза (достижение крайних точек, а также середины стенда) осуществляется при помощи датчиков Place_2_1, Place_2_2, Place_2_3.
4. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- в исходном состоянии груз, перемещаемый двигателем Analog_Motor_1, находится в крайнем нижнем положении;
- при включении контроллера двигатель Analog_Motor_1 включается в режим подъема груза вверх со средней скоростью;
- при достижении грузом крайних точек стенда, направление движения груза инвертируется;
- при искусственном кратковременном торможении груза (имитации аварийной нагрузки) и соответствующего падения напряжения на датчике Alarm_Sensor>0,45 В., включается “пищалка” Alarm_Sound.
- при стабилизации напряжения на датчике Alarm_Sensor ниже уровня 0.45 В., “пищалка” выключается;
- торможение груза допускается только при его движении вверх;
- в процессе торможения груза двигатель Analog_Motor_1 продолжает работать, поэтому торможение груза может быть только КРАТКОВРЕМЕННЫМ;
- достижение грузом крайнего верхнего и крайнего нижнего положений контролируется при помощи датчиков Place_1_3 и Place_1_1 соответственно.
5. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- в исходном состоянии грузы, перемещаемые двигателями Analog_Motor_1 и Analog_Motor_2, находятся в крайнем нижнем положении;
- после однократного нажатия кнопки Stand_by двигатель Analog_Motor_2 включается в режим подъема груза вверх со своей средней скоростью;
- после достижения грузом среднего положения стенда включается двигатель Analog_Motor_1 с такой скоростью, которая позволит перемещаемому этим двигателем грузу догнать груз, стартовавший первым, причем произойти это должно в момент достижения первым грузом крайнего верхнего положения;
- при достижении крайнего верхнего положения, оба груза синхронно спускаются вниз в точку, откуда они начинали движение и останавливаются;
- далее, после нажатия кнопки Stand_by, работа ПО циклически повторяется;
- контроль положения грузов осуществляется при помощи датчиков Place_1_1, Place_1_2, Place_1_3, Place_2_1, Place_2_2, Place_2_3.
6. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- в исходном состоянии оба груза, перемещаемые двигателями Analog_Motor_1 и Analog_Motor_2 находятся в крайнем нижнем положении;
- после однократного нажатия кнопки Stand_by двигатель Analog_Motor_1 переходит в режим подъема груза вверх со своей средней скоростью и периодически инвертирует направление движения груза при достижении им крайних точек стенда;
- при “аварии” двигателя Analog_Motor_1 (искусственном торможении и соответствующем падении напряжения на датчике Alarm_Sensor>0.4 В.) двигатель Analog_Motor_1 выключается;
- вместо Analog_Motor_1 включается двигатель Analog_Motor_2, и начинает дублировать работу двигателя Analog_Motor_1;
- искусственное торможение груза допускается только при движении груза вверх;
- достижение грузами крайних положений стенда контролируется при помощи датчиков Place_1_1, Place_1_3, Place_2_1, Place_2_3.
7. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- при включении контроллера грузы, перемещаемые двигателями Analog_Motor_1 и Analog_Motor,_2 находятся в крайнем нижнем положении;
- после однократного нажатия кнопки Stand_by груз, перемещаемый двигателем Analog_Motor_2, начинает двигаться вверх со средней скоростью;
- после достижения грузом крайнего верхнего положения двигатель Analog_Motor_2 останавливается, а двигатель Analog_Motor_1 начинает поднимать свой груз с той же линейной скоростью, что и двигатель Analog_Motor_2;
- при достижении крайнего верхнего положения вторым грузом (Analog_Motor_1), его двигатель выключается. Вместо него включается двигатель Analog_Motor_2, который опускает свой груз в исходную точку расположения. При достижении грузом (Analog_Motor_2) крайнего нижнего положения, его двигатель выключается, а двигатель Analog_Motor_1 начинает перемещать свой груз вниз в исходную точку и останавливается при ее достижении;
- далее работа ПО циклически повторяется;
- контроль положения грузов осуществляется при помощи датчиков Place_2_1, Place_2_3, Place_1_1, Place_1_3.
8. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- в исходном состоянии груз, перемещаемый двигателем Analog_Motor_2, находится в крайнем нижнем положении;
- после первого нажатия кнопки Stand_by, двигатель включается в режим подъема груза вверх с частотой вращения вала 2 Гц;
- после второго нажатия кнопки Stand_by, скорость груза увеличивается вдвое, после третьего – втрое (в сравнении с первоначальной) и так до максимальной частоты равной 10 Гц;
- при достижении грузом крайнего верхнего положения, направление его движения инвертируется, и груз продолжает двигаться в обратном направлении со скоростью, которую он приобрел на момент достижения крайней точки;
- вернувшись в исходную точку, груз останавливается (мотор Analog_Motor_2 выключается) и контроллер переходит в режим ожидания следующего нажатия кнопки Stand_by, после чего алгоритм работы программы повторяется;
- контроль положения груза осуществляется при помощи датчиков Place_2_1 и Place_2_3.
9. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- при включении контроллера программа осуществляет измерение температуры окружающей среды при помощи термодатчика Temp в диапазоне от 10 ºС до 30 ºС (необходимо предусмотреть (программно) ограничение входного сигнала, поступающего с термодатчика Temp, таким образом, чтобы диапазон его изменения соответствовал указанному диапазону изменения температуры);
- после первого нажатия кнопки Stand_by включается “система охлаждения”, которая работает так, что скорость вращения вентилятора линейно связана с температурой окружающей среды;
- после второго нажатия кнопки Stand_by “система охлаждения” выключается, после третьего – вновь включается и т.д.
10. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- при включении контроллер находится в режиме ожидания нажатия кнопки Stand_by;
- поочередные нажатия кнопки Stand_by вызывают последовательное зажигание светодиодов PWR, RUN, COMM, Work, Wait, Hot, Hot_Extrem;
- после зажигания последнего светодиода котроллер переходит в режим гашения светодиодов и каждое последующее нажатие кнопки Stand_by вызывает гашение одного светодиода в обратном порядке;
- после гашения последнего светодиода, цикл работы ПО повторяется.
11. Разработать ПО для контроллера ADAM 5510М, обеспечивающего:
- дискретное управление двумя шаговыми двигателями Channel_X, Channel_Y и приводом включения пера (графического элемента Work) для формирования графических изображений по заданным координатам, следующим образом:
- при включении контроллера считается, что перо установлено в исходное положение с известными координатами, например, в левый нижний угол поля чертежа, и находится в поднятом (не активном) положении;
- по первому нажатию кнопки Stand_by контроллер активирует перо (опускает его до соприкосновения с полем чертежа), смещается на 5см вверх и вправо и рисует фигуру, изображённую на рисунке.
- размеры фигуры выбрать самостоятельно исходя из размеров поля чертежа.
- закончив рисование фигуры, контроллер не реагирует на нажатие кнопки Stand_by.
12. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- ПО имитирует работу елочной гирлянды в режиме “бегущий огонь” (код “1 из 7”);
- для имитации используются светодиоды PWR, RUN, COMM, Work,Wait, Hot, Hot_Extrem;
- после зажигания последнего светодиода, снова зажигается PWR, и т. д.;
- гирлянда включается/выключается последовательными нажатиями кнопки Stand_by;
- длительность горения каждого светодиода 0.5 сек.;
- в исходном состоянии гирлянда выключена.
13. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- ПО имитирует работу елочной гирлянды в режиме “бегущий огонь” (код “1 из 7”) с возможностью выбора направления движения;
- после включения контроллера гирлянда включается в рабочем режиме;
- для имитации используются светодиоды PWR, RUN, COMM, Work,Wait, Hot, Hot_Extrem;
- после зажигания последнего светодиода, снова зажигается PWR, и т. д.;
- после каждого нажатия кнопки Stand_by направление движения “огня” инвертируется;
- “огонь” пробегает всю цепочку ровно за 2 сек.;
- первоначальное направление движения “огонька” сразу после включения контроллера – произвольно.
13. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- ПО функционирует по принципу счетчика, подсчитывающего число нажатий кнопки Stand_by;
- в исходном состоянии после включения контроллера на одноразрядном семисегментном индикаторе Display “горит” цифра “0”;
- после нажатия кнопки Stand_by индикатор Display отображает порядковый номер нажатия;
- после 10-го нажатия кнопки Stand_by контроллер осуществляет сброс индикатора Display в “0” и начинает считать заново.
14. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- в исходном состоянии одноразрядный семисегментный индикатор Display выключен;
- после последовательных нажатий кнопки Stand_by на Display поочередно загораются все четные цифры в интервале от 0 до 9.
- после того как зажигается последняя цифра из вышеуказанного ряда, индикатор выключается после следующего нажатия кнопки Stand_by;
- далее работа ПО циклически повторяется.
15. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- в исходном состоянии одноразрядный семисегментный индикатор Display выключен;
- после последовательных нажатий кнопки Stand_by на Display поочередно загораются все нечетные цифры в интервале от 0 до 9.
- после того как зажигается последняя цифра из вышеуказанного ряда, индикатор выключается после следующего нажатия кнопки Stand_by;
- далее работа ПО циклически повторяется.
16. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- при включении контроллера на одноразрядном семисегментном индикаторе Display горит сегмент “a”;
- после однократного нажатия кнопки Stand_by “горящий” сегмент начинает “двигаться” по кругу “a-b-c-d-e-f” с частотой 1 Гц;
- при каждом четном нажатии кнопки Stand_by индикатор выключается, при каждом нечетном – заново включается (начиная круновые движения горящих сегментов с сегмента “a”).
17. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- при включении контроллера одноразрядный семисегментный индикатор Display выключен;
- после первого нажатия кнопки Stand_by зажигается сегмент “а”, а все остальные поочередно включаются (не выключая предыдущий сегмент) после каждого последующего нажатия кнопки Stand_by в порядке “b-c-d-e-f-g”;
- после зажигания последнего светодиода и очередного нажатия кнопки Stand_by индикатор Display выключается и цикл работы ПО повторяется.
18. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- в исходном состоянии грузы, перемещаемые двигателями Analog_Motor_1 и Analog_Motor_2, находятся в крайнем нижнем положении;
- после однократного нажатия кнопки Stand_by двигатель Analog_Motor_1 включается в режим подъема груза вверх с минимальной скоростью;
- через 4 секунды включается двигатель Analog_Motor_2 с максимальной скоростью;
- после того как положения обоих грузов выровняются, двигатель Analog_Motor_2 выключается и включается снова с максимальной скоростью по истечению следующих 4-х секунд;
- повторно догнав первый груз, двигатель Analog_Motor_2 выключается на 4 сек и т.д.
- после достижения 1-м грузом крайнего верхнего положения (независимо от местонахождения второго груза в этот момент) оба груза опускаются вниз в исходное положение с максимально возможной равной скоростью и останавливаются в крайнем нижнем положении;
-после следующего нажатия кнопки Stand_by цикл работы ПО повторяется;
- контроль положения грузов осуществляется при помощи датчиков Place_1_1, Place_1_3, Place_2_1, Place_2_3.
19. Разработать ПО для контроллера ADAM 5510M, работающее по следующему алгоритму:
- при включении контроллера программа осуществляет измерение температуры окружающей среды при помощи датчика Temp в диапазоне от 0 ºС до 40 ºС (необходимо предусмотреть (программно) ограничение входного сигнала, поступающего с термодатчика Temp, таким образом, чтобы диапазон его изменения соответствовал указанному диапазону изменения температуры) и производит индикацию результата по следующим правилам:
1) значение единиц градусов измеренной температуры, отображается на семисегментном индикаторе Display;
2) для индикации числа десятков градусов измеренной температуры используются светодиоды PWR, RUN, COMM так, что в диапазоне:
0-10 ºС - PWR=RUN=COMM=0
10-20 ºС – PWR=1 RUN=COMM=0
20-30 ºС – PWR=RUN=1 COMM=0
30-40 ºС – PWR=RUN=COMM=1.
20. Разработать ПО для контроллера ADAM 5510М, обеспечивающего:
- дискретное управление двумя шаговыми двигателями Channel_X, Channel_Y и приводом включения пера (графического элемента Work) для формирования графических изображений по заданным координатам, следующим образом:
- при включении контроллера считается, что перо установлено в исходное положение с известными координатами, например, в левый нижний угол поля чертежа, и находится в поднятом (не активном) положении;
- по первому нажатию кнопки Stand_by контроллер активирует перо (опускает его до соприкосновения с полем чертежа), смещается на 5см вверх и вправо и рисует равнобокую трапецию с диагоналями, изображённую на рисунке.
- размеры фигуры выбрать самостоятельно исходя из размеров поля чертежа.
- закончив рисование фигуры, контроллер не реагирует на нажатие кнопки Stand_by.
21. Разработать ПО для контроллера ADAM 5510М, обеспечивающего:
- дискретное управление двумя шаговыми двигателями Channel_X, Channel_Y и приводом включения пера (графического элемента Work) для формирования графических изображений по заданным координатам, следующим образом:
- при включении контроллера считается, что перо установлено в исходное положение с известными координатами, например, в левый нижний угол поля чертежа, и находится в поднятом (не активном) положении;
- по первому нажатию кнопки Stand_by контроллер активирует перо (опускает его до соприкосновения с полем чертежа), смещается на 5см вверх и вправо и рисует фигуру, изображённую на рисунке.
- размеры фигуры выбрать самостоятельно исходя из размеров поля чертежа.
- закончив рисование фигуры, контроллер не реагирует на нажатие кнопки Stand_by.
22. Разработать ПО для контроллера ADAM 5510М, обеспечивающего:
- дискретное управление двумя шаговыми двигателями Channel_X, Channel_Y и приводом включения пера (графического элемента Work) для формирования графических изображений по заданным координатам, следующим образом:
- при включении контроллера считается, что перо установлено в исходное положение с известными координатами, например, в левый нижний угол поля чертежа, и находится в поднятом (не активном) положении;
- по первому нажатию кнопки Stand_by контроллер активирует перо (опускает его до соприкосновения с полем чертежа), смещается на 5см вверх и вправо и рисует фигуру, изображённую на рисунке.
- размеры фигуры выбрать самостоятельно исходя из размеров поля чертежа.
- закончив рисование фигуры, контроллер не реагирует на нажатие кнопки Stand_by.
Дата добавления: 2015-08-03; просмотров: 105 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Обід у кафе. | | | Гимн Интернетного Тролля |