кнопки и переменные

Вопросы по встроенным блокам
Ответить
shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10.01.2020{, 00:26}
Репутация: 1
Имя: Александр

кнопки и переменные

#1

Сообщение shura2 » 11.01.2020{, 01:44}

тренируюсь на кошках так сказать

Собрал конструкцию из 3 кнопок и сервы. первый вариант - нажатие на кнопку двигает серву на заданный угол
СпойлерПоказать
3knopki.png
Все работает.

Заменил действие на третьей кнопке (поворот сервы на угол 10град по нажатию кнопки):
СпойлерПоказать
3 knopki2.png
перестали работать первые две кнопки. Почему?

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

кнопки и переменные

#2

Сообщение edyapd » 11.01.2020{, 05:45}

shura2, а вы найдите отличие в записи переменной "поворот" для первых двух кнопок и для третьей. И сразу станет всё понятно

shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10.01.2020{, 00:26}
Репутация: 1
Имя: Александр

кнопки и переменные

#3

Сообщение shura2 » 11.01.2020{, 17:41}

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

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

кнопки и переменные

#4

Сообщение dizzyy » 11.01.2020{, 17:48}

shura2, что бы не присвоилось переменной в первых случаях , то третий всегда перезапишет свое ..переделайте 3 пункт на условие записи(как в первых) и все пойдет

Отправлено спустя 3 минуты 7 секунд:
если нажата кнопка 1 то поворот на столько..
если нажата кнопка 2 то поворот на столько
по барабану нажата или нет 3 кнопка присвоить переменной значение счетчика умноженное на 10
выполнить поворот

вот ваш алгоритм

shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10.01.2020{, 00:26}
Репутация: 1
Имя: Александр

кнопки и переменные

#5

Сообщение shura2 » 12.01.2020{, 01:38}

Спасибо! Поправил - заработало.
СпойлерПоказать
3 knopki_rabochij.png
dizzyy писал(а):
11.01.2020{, 17:51}
shura2, что бы не присвоилось переменной в первых случаях , то третий всегда перезапишет свое ..переделайте 3 пункт на условие записи(как в первых) и все пойдет
сделал, но все равно не понимаю,почему не работали первые две кнопки, даже если не была нажата третья?
что означает en в переменной?

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

кнопки и переменные

#6

Сообщение edyapd » 12.01.2020{, 06:01}

En это разрешение на запись в переменную.
Просто представьте себя на месте цикла программы. И от вас требуется принести значение, на которое требуется повернуть серву.
Идёте вы с блокнотиком и опрашиваете устройства. Подходите к первой кнопке. Есть разрешение на управление? Есть. Записываете её значение в блокнотик. Шагаете дальше. Подходите ко второй кнопке. Есть разрешение на управление? Нет. Свободен. Шагаете к третьей. Есть разрешение? А ей разрешение не требуется. Ясно, вычёркиваете то, что дала вам первая кнопка и записываете значение третьей. Пришли вы к серве. Какое значение вы ей должны отдать?
А ещё, таким образом у вас на серву может быть два значения. Не одновременно конечно. А скажем нажали на кнопку. Записали значение в переменную. А считывание с переменной происходит не после того, как были опрошены все устройства, а где-то между ними. Серва у вас повернулась на заданное значение. А в следующем цикле эта переменная перезаписалась той, для которой разрешение не требуется и серва вернулась в исходное состояние. Она физически конечно не успеет даже повернуться, но конвульсии будут.

shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10.01.2020{, 00:26}
Репутация: 1
Имя: Александр

кнопки и переменные

#7

Сообщение shura2 » 14.01.2020{, 21:53}

Спасибо большое за разжеванное объяснение.

shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10.01.2020{, 00:26}
Репутация: 1
Имя: Александр

кнопки и переменные

#8

Сообщение shura2 » 18.01.2020{, 20:36}

Продолжаю тренироваться на кошках.

Сделал такую схемку:
СпойлерПоказать
3 knopki_serva.png
1 кнопка - 0град
2 кнопка - 90 град
3 кнопка - +10 градусов к текущему положению.
все работает без замечаний.

Вопрос - как лучше упростить схему?

второй вопрос, если мне нужно двигать серву вниз, то ставить новый счетчик?

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

кнопки и переменные

#9

Сообщение edyapd » 18.01.2020{, 20:46}

shura2, было бы удобней, если бы вы выложили файл проекта, а не картинку.

shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10.01.2020{, 00:26}
Репутация: 1
Имя: Александр

кнопки и переменные

#10

Сообщение shura2 » 18.01.2020{, 23:48}

К сожалению не сохранил.

Так как поменял логику - теперь 1 кнопка ставит серву в положение 90град, остальные две кнопки +-10 град.
СпойлерПоказать
3 knopki+-.png
и тут тоже вопрос: мне для того что бы подключить сброс (R), SP и триггер мало того, что пришлось ввести логику OR, не нужную в данном случае, так еще и соблюдать порядок в подключении. (сначала R, потом OR, потом триггер). Это фича или баг?
может есть какой то другой способ?
СпойлерПоказать
3 knopki+-.flp
(122.2 КБ) 72 скачивания

Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17.07.2017{, 18:39}
Репутация: 55
Откуда: Днепр. UA
Имя: Григорий

кнопки и переменные

#11

Сообщение grin-mpx » 19.01.2020{, 00:41}

3 knopki+-2.flp
(135.16 КБ) 80 скачиваний
СпойлерПоказать
3 кнопки.jpg
Отправлено спустя 2 минуты 57 секунд:
shura2 писал(а):
18.01.2020{, 23:48}
мне для того что бы подключить сброс (R), SP и триггер мало того, что пришлось ввести логику OR, не нужную в данном случае, так еще и соблюдать порядок в подключении. (сначала R, потом OR, потом триггер).
А зачем там вообще вверху OR нужен? Тем более одноногий?

shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10.01.2020{, 00:26}
Репутация: 1
Имя: Александр

кнопки и переменные

#12

Сообщение shura2 » 19.01.2020{, 03:20}

grin-mpx писал(а):
19.01.2020{, 00:44}
А зачем там вообще вверху OR нужен? Тем более одноногий?
grin-mpx, А он и не нужен был. я не смог 3 вывода подключить на кнопку.

А зачем на вашей схеме Rtriger? и что за Ftriger? Я попробовал к счетчику напрямую "кнопку 90гр" подключить - работает
СпойлерПоказать
3 knopki+- v2.png

Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17.07.2017{, 18:39}
Репутация: 55
Откуда: Днепр. UA
Имя: Григорий

кнопки и переменные

#13

Сообщение grin-mpx » 19.01.2020{, 13:56}

shura2 писал(а):
19.01.2020{, 03:20}
А зачем на вашей схеме Rtriger? Я попробовал к счетчику напрямую "кнопку 90гр" подключить - работает
Работает и хорошо. Rtriger для записи в 1 цикл независимо от длины нажатия на кнопку.
shura2 писал(а):
19.01.2020{, 03:20}
и что за Ftriger
viewtopic.php?f=81&t=2977

shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10.01.2020{, 00:26}
Репутация: 1
Имя: Александр

кнопки и переменные

#14

Сообщение shura2 » 01.02.2020{, 23:58}

А как сделать, что бы повторное нажатие кнопки не перезапускало какой-либо цикл снова?

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 789
Откуда: Астрахань
Имя: Сергей
Контактная информация:

кнопки и переменные

#15

Сообщение support » 02.02.2020{, 01:57}

Но можно ещё проще
Серво.PNG
Серво.PNG (9.03 КБ) 1754 просмотра
Отправлено спустя 2 минуты 7 секунд:
Да и вообще можно отказатся от R тригеров. Счетные входы счетчика и так работают по переднему фронту.

Отправлено спустя 2 минуты 34 секунды:
Серво1.PNG
Серво1.PNG (6.84 КБ) 1754 просмотра
Вложения
3 knopki+-2.flp
(87.92 КБ) 75 скачиваний
Автор программы FLProg.

shura2
Рядовой
Сообщения: 45
Зарегистрирован: 10.01.2020{, 00:26}
Репутация: 1
Имя: Александр

кнопки и переменные

#16

Сообщение shura2 » 05.02.2020{, 01:15}

А как сделать, что бы, к примеру, кнопка "90град" не "нажималась" повторно, пока выполняется поворот?

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

кнопки и переменные

#17

Сообщение edyapd » 05.02.2020{, 05:50}

shura2 писал(а):
05.02.2020{, 01:15}
А как сделать, что бы, к примеру, кнопка "90град" не "нажималась" повторно, пока выполняется поворот?
Для этого надо ввести обратную связь. В своём устройстве, делаете концевик, а выход с него заводите в проект.
А там уже в зависимости от логики схема "И" или "RS-тригер".
Просто сами подумайте, как программа может узнать, повернулась Серва или ещё нет?

Ответить

Вернуться в «Штатные блоки»