Comments 19
А кто фесто управлял ?
В системе несколько Unitronics, за Festo кажется v700 отвечал
Как мене кажется это не правильный подход решение не задукоментированнл вы поменяете место работы . И все вся кура прртухнет . Так как никто не сможет понять как это работает . Наверно надо было необходимо было это завести на унитроник и логику написать там
Вы совершенно правильно всё трактуете. Но произошло немного по другому - разработчик отказался от техобслуживания по политическим соображениям, в системе накопилось много других проблем и её закрыли. Моя ардуинка работала до конца.
На заводе оставили воздушно-капельное охлаждение.
Применяют еще один способ улучшить охлаждение - снижение скорости конвейера, но тут и скорость выхода продукции уменьшается.
Я уволился, занимаюсь другими проектами.
Возможно я не видел код полностью, но думаю, что и у вас не используется сторожевой таймер. Платы Ардуино часто виснут. Простые функции безопаснее создавать на микросхемах.
Благодарю! Это весь код, только вывод на монитор убрал. Насчёт таймера и микросхем обдумаю.
Обдумываю микросхемы. Как лучше организовать чтение показаний датчика, на какой микросхеме? Там же ещё анализ надо делать, и управление реле выдать. Вы бы что посоветовали?
Можно сделать полностью аналоговую систему - компаратор, одновибратор, таймер
Делай на этом же контроллере, только не используй delay(). Посмотри как это сделать на таймерах, там не сложно.
Управление клапанами сделай на оптической развязке.
Аналоговые схемы с компараторами подвержены помехам, сейчас их не целесообразно использовать. Настраивать долго и муторно и компоненты нужно подбирать прецизионные с отклонением не более 1%.
Благодарю, да, Ардуино мне нравится.
Обдумал необходимость замены delay() на таймер
В сложных программах с несколькими циклами это оправдано, однако у меня программа простая, цикл только один. Большой необходимости в замене пока не вижу.
Если есть доводы за замену, напишите, пожалуйста.
В Вашей ситуации разумнее :
1) сделать "программный" таймер, считающий системные "тики". В основном цикле его проверять. Досчитали — принимать решение включать или не включать подачу.
2) в промежутках между проверками таймера считывать показания от датчика давления и фильтровать их подходящим образом (медиана во избежание значительных случайных выбросов, сглаживание EMA при "дрожании" сигнала и т.п.).
Код увеличится незначительно, зато возможности при отсутствии блокировки основного потока команд возрастут на порядок.
ADC повесить на прерывание, обработчиком — быстро прочитать результат в буфер, затем в основном (не заблокированном) цикле обработать новое значение в фильтре.
Возможно, даже подача давления станет не "1 секунда" и пауза не "10 секунд" благодаря быстрому реагированию на изменение давления. Еще полезно ввести программный "гистерезис" с желательными технологическими порогами, чтобы переключать подачу давления не чересчур часто. Грубо прикинуть частоту переключения можно вручную, зная средний "расход" на тушки и соответствующую возможную "подачу", чтобы модель объекта управления была понятнее.
А чему там виснуть? Самый простой и надёжный МК Atmega 328. В производстве применяется часто. Сторожевой таймер, да, нужно включать сразу.
DIY и C++ в системе охлаждения кур