Спасибо большое, то, что надо.
Хотелось бы разобраться с данным алгоритмом.
Ответьте, пожалуйста на пару вопросов новичка:
1. Почему периодически не срабатывает включение/выключение? Если подряд нажимать кнопку (любую), то периодически не изменяется значение на выходе.(не срабатывает при быстром нажатии)
2. В макросе СТМ что означает цифра 31? Смотрел предыдущие примеры, там Вы так же устанавливает 31.
3. Каким образом устанавливается величина цикла до сброса? В данном случае СТМ сбрасывается на цифре 7, где указать, что сброс будет, допустим после 4?
Я пока не въехал как с квадратиками работать, поэтому любое что-то более-менее замороченное дается не просто, надож понять как обойти ограничения привычной логики ))
Спасибо за идею. Сейчас работает лампа в 3-х режимах и управляется с 2-х кнопок, как показала практика, довольно удобно. Единственная задержка 1с, перед переключением режимов (хотя, я бы и от нее отказался, но в квадратиках пока не понял как это реализовать). Из плюсов отсутствия задержек возможность сразу включать\выключать лампу или сразу менять режимы второй лампы.
1. : если Вы в железе проверяете(в симуляторе много зависит от настроек симулятора и я пока это не хочу даже обсуждать), то я предлагаю уменьшить время импульса до 0,5 секунд, как у меня в последнем проекте про лампы, если не устроит, то до 0,3-0,2 секунд:
Длительность импульса.PNG
Дело в том, что функциональный блок "Импульс включения заданной длительности" не может перезапустится до истечении этого времени!
Или как-то так сделать:
Длительность импульса_2.PNG
2-3. : в свойствах макроса таятся настройки:
Свойства макроса_8.PNG
"0" и "31" - значения назначенные в макросе, а не свойствах макроса и значения не имеют!
Последний раз редактировалось Сергей0308; 04.11.2018 в 16:05.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Я пока тестировал только на компе, может на устройстве будет по другому.
Этот баг выскакивает когда ТР досчитывает до конца и сбрасывается на 0, если нажать кнопку в этот момент, то она не сработает.
Спасибо за разъяснения.
Как параметры макроса связаны с самим макросом? В лоджике не увидел как макрос учитывает эти парметры и где идет обнуление.
Не нашел в помощи про параметры макроса. Где почитать как их задавать и как они будут влиять на выполнение программы?
Последний раз редактировалось Sel; 04.11.2018 в 15:31.
Надо понимать только одно: что значения назначенные в свойствах макроса имеют преимущество над значением назначенным в макросе, всё!
Это кольцевой инкрементный счётчик, назначаются минимальное и максимальные значения, достигнув максимального значения с приходом следующего счётного импульса счёт начнётся заново с минимального значения, при сбросе счётчик примет минимальное значение, а не "0", всё!
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Логично. С этим счетчиком я все понял и как параметры задаются и как он отрабатывает.
Мне интересно как делать такие макросы (сдается они не в лоджике сделаны). Сейчас я столкнулся с проблемой, если я решу изменить первоначальные условия, то я не смогу переделать эти макросы под новую задачу. Первоначальная задача это пример, разобрав который, я смогу реализовать часть задуманного. В реальности у меня 15 ламп и порядка 20 схем их работы и этим всем надо управлять с 2х выключателей. Но поправить макрос EXTRACT8 под реальную задачу я не могу, ведь параметры рассчитаны на 8 ламп. Даже добавив дополнительный выход, надо добавить и его описание в параметрах, иначе на него сигнал не приходит. А я не знаю как это сделать.
Я за то, чтобы разобраться в работе алгоритма и самому его повторить. Отсюда и пытаюсь понять как делать макросы с параметрами. Кстати, очень полезная функция, помогает обойти некоторые ограничения лоджика.
Если Вам не сложно, объясните, пожалуйста, как работать (создавать, редактировать) подобные макросы с параметрами. Если это секрет, спасибо за помощь, Ваши решения помогли мне кое в чем разобраться.
Сначала по макросу извлечения(чтения бита): Вам ничего не надо там переделывать, в свойствах макроса, как и для счётчика, есть настройки, можно задавать значения извлекаемого(читаемого) бита в диапазоне 0-31, дальше всё будет циклически повторятся с кратностью 32, короче поставьте сколько Вам нужно экземпляров макроса 1-4 и настройками "рулите", в принципе у меня есть и на 16, 32 выхода, но никакой разницы нет, подобно я делал в третьей версии проекта ламп(где все сигналы в одну переменную собирал), посмотрите!
Теперь о создании: при создании, редактировании макроса в свойствах константы есть пункт использовать в макросе - ставите "Да":
Создание свойств макроса.PNG
Также можете переименовать(подписать), как вам угодно, строчка выше преведущей, всё!
Последний раз редактировалось Сергей0308; 04.11.2018 в 17:45.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Доброй ночи.
Квадратики даются с трудом.
Подскажите, как осуществить алгоритм: Кнопка без фиксации. При обычной работе с кнопкой, выход меняет статус. При удержании кнопки в нажатом состоянии более 3-х секунд, при отпускании кнопки статус выхода не именяется.
Суть: С кнопки включаем/выключаем лампу. Нажали кнопку, включается лампа, отпустили кнопку. Потом нажимаем кнопку на удержание 3 сек. И нужно, чтобы отпустив кнопку лампа не погасла.
Вроде все просто, но прога меняет статус выхода как ТОН меняет свой.
1.jpg
Посмотрел ранее, мне отвечали на этот вопрос, предложив добавить ТР. Но я хочу полностью уйти от таймеров в последствии. Есть ли другие способы не считывать изменение статуса кнопки, при длительном нажатии.
(год назад я решил этот вопрос без ТР. Но не помню как, а исходники проекта умерли вместе с винтом)
Последний раз редактировалось Sel; 05.11.2018 в 00:48.
Можно не мудрить, есть же Д-триггер, делайте как хочется, я до конца не понял, как Вы хотите, лучше диаграмму состояний, для ясности!
Т-триггер_4.PNG
Насколько смог Вас понять, у меня так и было, поэтому мне непонятно, что Вы хотите!
Вот мой последний вариант, в преведущих аналогично и уставка времени в мс, при превышении времени нажатия выше этого времени импульс не проходит:
Уставка времени.PNG
Последний раз редактировалось Сергей0308; 05.11.2018 в 01:10.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.