Pull to refresh

Comments 19

А кто фесто управлял ?

В системе несколько Unitronics, за Festo кажется v700 отвечал

Как мене кажется это не правильный подход решение не задукоментированнл вы поменяете место работы . И все вся кура прртухнет . Так как никто не сможет понять как это работает . Наверно надо было необходимо было это завести на унитроник и логику написать там

Вы совершенно правильно всё трактуете. Но произошло немного по другому - разработчик отказался от техобслуживания по политическим соображениям, в системе накопилось много других проблем и её закрыли. Моя ардуинка работала до конца.

На заводе оставили воздушно-капельное охлаждение.
Применяют еще один способ улучшить охлаждение - снижение скорости конвейера, но тут и скорость выхода продукции уменьшается.

Я уволился, занимаюсь другими проектами.

Возможно я не видел код полностью, но думаю, что и у вас не используется сторожевой таймер. Платы Ардуино часто виснут. Простые функции безопаснее создавать на микросхемах.

Благодарю! Это весь код, только вывод на монитор убрал. Насчёт таймера и микросхем обдумаю.

Обдумываю микросхемы. Как лучше организовать чтение показаний датчика, на какой микросхеме? Там же ещё анализ надо делать, и управление реле выдать. Вы бы что посоветовали?

Можно сделать полностью аналоговую систему - компаратор, одновибратор, таймер

Спасибо! На контроллере пока привычнее, но можно обдумать.

Делай на этом же контроллере, только не используй delay(). Посмотри как это сделать на таймерах, там не сложно.

Управление клапанами сделай на оптической развязке.

Аналоговые схемы с компараторами подвержены помехам, сейчас их не целесообразно использовать. Настраивать долго и муторно и компоненты нужно подбирать прецизионные с отклонением не более 1%.

Благодарю, да, Ардуино мне нравится.

Обдумал необходимость замены delay() на таймер

В сложных программах с несколькими циклами это оправдано, однако у меня программа простая, цикл только один. Большой необходимости в замене пока не вижу.
Если есть доводы за замену, напишите, пожалуйста.

В Вашей ситуации разумнее :
1) сделать "программный" таймер, считающий системные "тики". В основном цикле его проверять. Досчитали — принимать решение включать или не включать подачу.

2) в промежутках между проверками таймера считывать показания от датчика давления и фильтровать их подходящим образом (медиана во избежание значительных случайных выбросов, сглаживание EMA при "дрожании" сигнала и т.п.).

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

ADC повесить на прерывание, обработчиком — быстро прочитать результат в буфер, затем в основном (не заблокированном) цикле обработать новое значение в фильтре.
Возможно, даже подача давления станет не "1 секунда" и пауза не "10 секунд" благодаря быстрому реагированию на изменение давления. Еще полезно ввести программный "гистерезис" с желательными технологическими порогами, чтобы переключать подачу давления не чересчур часто. Грубо прикинуть частоту переключения можно вручную, зная средний "расход" на тушки и соответствующую возможную "подачу", чтобы модель объекта управления была понятнее.

Благодарю! Да можно попробовать. Фильтрация - очень хорошая мысль, и измерять надо почаще.
Этот проект пока закрыт - разработчик из евросоюза, техподдержку не проводит. Дай бог, вернутся через несколько лет. Я бы тогда попробовал этот алгоритм на Unitronix реализовать.

А чему там виснуть? Самый простой и надёжный МК Atmega 328. В производстве применяется часто. Сторожевой таймер, да, нужно включать сразу.

Благодарю, согласен.

я подозреваю, что проблема кроется в клонах.
Купил партию из 10 плат, поставил тест и в течении 2 месяцев 7 плат более одного раза требовали перезагрузку.
Плата 2011 года, которую я обычно для отладки держу пару лет назад крутилась почти год.

Да, я тоже заметил - платы очень отличаются друг от друга. С удивлением встретил платы, на которых нет кварца!

Нет кварца, когда на низкой частоте МК используют.

Sign up to leave a comment.

Articles