как сделать самоподстраивающийся макрос ?
На примере роллет чтобы было проще. Вот открыты роллеты полностью, есть сигнал с концевика "открыто", даем команду "закрыть" и ждем N секунд (у меня 25 сек), а роллета закрылась допустим за 22 сек.
Как эти 22 сек потом записать в переменную N чтобы при очередных махинациях мы ждали уже 22 сек. ???
Секунды взял для простоты, вообще надо будет мс измерять...
Может мс это круто, учитывая еще и время цикла, хотя бы 10-тые...
Так если концевики останутся ,то это не к чему .А так сделать не сложно ...
электронщик до мозга костей и не только
rovki ну роллету я привел образно, чтобы проще было понимать...
а то мне тут генератор попался капризный, не хочет запускаться горячий без закрытия заслонки, единственный сигнал, который могу с него снять это наличие 220В (через схемку контроля).
если заслонку держать закрытой он тоже заводиться не хочет.
руками такая комбинация. закрываем заслонку, крутим стартером и открываем заслонку. Чуть передержал, не завелся. Не додержал - не завелся.
Вот как-то нужно научить менять время и сохранять его для следующего запуска. В общем чтобы был режим адаптации что ли.....
Да нет проблем ...только кто скажет первый раз что заслонка закрыта\открыта если нет концевика .Ну или замерьте как то время ,а потом уточните .Но только такая система работает при постоянном моменте ,а то у вас следячка только и будет делать ,что подбирать новое значение времени ...
электронщик до мозга костей и не только
так мне и надо, чтобы система не следила постоянно.
в ПР нет такого понятия, как выход ET у таймеров, по которым можно было бы сохранять время совершенного действия.
А следячка должна только сравнивать в последующем это время и вносить корректировки.
Например попытка 1, неудачная, время было 1,2 сек. (шаг добавления например 0,2 сек)
Увеличиваем время до 1,4, попытка, неудачная
Увеличиваем время до 1,6, попытка, удачная - сохранили это время.
При следующих попытках сразу начинаем с 1,6
Мне сейчас важно понять, как в ПР можно вот этот шаг устроить и главное, чтобы следующий пуск начинался с удачного шага (времени) то есть сохранить в энергонезависимую переменную удачный шаг. И если последующие пуски будут успешными, то больше ничего и не менять, если вдруг не заведется, то делать пару шагов назад. Ну или задать некий диапазон мин и макс значений который потом опытным путем подберется.
То есть чтобы программа каждый раз не шагала от минимума до максимума а начинала с некоего подобранного значения самостоятельно.
Кто будет говорить что удачно ,концевик или глаз ? остальное просто ...
электронщик до мозга костей и не только
только наличие 220В если запустиля.
Вот и интересно, как сделать элемент, чтобы он высчитывал время и при этом еще и сохранял успешное.
Пока на ум ничего не приходит, не ставить же кучу таймеров...
Счетчик который считает от блинка тики (0,01 период ,например) от момента пуска ,до момента появления напряжения и сохраняет это значение при выключении питания .Насчитанное число является уставкой для таймера .Если есть несколько пусков без выключения питания ,то данные складываются в стек и усредняются в нем и сохраняются в энергонезависимой переменной .После включения питания уставка сохраненная переписывается в таймер .В таком случае счетчик делается не энергонезависимый ....
электронщик до мозга костей и не только
смысл понят, только есть поправочка - неизвестно запустился или нет, пока не бросишь стартер и не закроешь заслонку.... вот такой он бывает "Фу Баг"