Здравствуйте уважаемые форумчане!
Прошу Вас о помощи.
Суть проблемы, есть поточная линия по которой проходят детали. Есть смарт камера НИ1772 каждая деталь проходит под смарт камерой, та в свою очередь определяет геометрические размеры детали и должна распределять по по размеру площади на четыре группы по средством клапанов сброса.
Но вся проблема в том что детали проходят под камерой каждые 150 мс, а разделяются на категории уже через несколько секунд в зависимости от категории.
Вот схема.
То есть если деталь попадает в 4 категорию и следующая деталь тоже попадает в 4ую категорию она не записывает значение и просто пропускает эту деталь.
Вот моя блок диаграмма.
Я понимаю что должен быть наверно какой нибудь циклический буфер, но не понимаю как это реализовать.
То есть если две детали подряд идут к примеру в 4категорию они записываются в буффер и переходят в новый цикл где идет сравнение по площади и если деталь попадает в диапазон компоратор выдает сигнал о том что эта та категория и ждет сигнал с оптического датчика установленного рядом с клапаном. Как только сигнал отработает данные с буффера должны удалиться
Буффер
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Буффер
Я бы для управления каждым клапаном сформировал отдельный массив Boolean, которые будут работать по принципу FIFO.
Если есть опыт, то можно использовать очередь - Queue, но получится немного не стандартно для этого функционала.
Пока рассмотрим работу со стороны камеры...
1. Пришла деталь №1, записываем в массивы управления клапанами
К1[T]
К2[ ]
К3[ ]
К4[ ]
до клапанов 2..4 деталь не должна доехать по этому в массивы ничего не пишем
2. Пришла деталь №3
К1[F, T]
К2[F]
К3[T]
К4[ ]
3. Пришла деталь №4
К1[F, F, T]
К2[F, F]
К3[F, T]
К4[T]
4. Пришла деталь Брак
К1[F, F, F, T]
К2[F, F, F]
К3[F, F, T]
К4[F, T]
т.е. ее пропускают все клапаны
5. Пришла деталь №2
К1[F, F, F, F, T]
К2[T, F, F, F]
К3[F, F, T]
К4[F, T]
и т.д., и т.п.
Надеюсь нигде не ошибся, но думаю идея понятна
Ну а циклы управления каждым клапаном работают асинхронно с циклом камеры и между собой.
Следующая итерация цикла запускается по срабатыванию "Оптического датчика". При этом удаляется из очереди "первый элемент" (в данном примере - последний элемент массива). Если там False, то деталь пропускается, если True-скидываем в соответствующий лоток.
Если деталь пришла, а массив пустой, то это повод остановить конвейер, т.к. это признак ошибки. Возможно ее сбросить в брак, но это на ваше усмотрение. Я бы остановил, т.к. эта ошибка может привести к рассинхронизации камеры и массивов управления, тогда детали полетят не в свои контейнеры.
----------------------------
Таким образом мы полностью избавляемся от необходимости поддержания постоянной скорости движения конвейера и равномерного размещения деталей на нем.
---------------------------
mM7CpBlMIy0
Если есть опыт, то можно использовать очередь - Queue, но получится немного не стандартно для этого функционала.
Пока рассмотрим работу со стороны камеры...
1. Пришла деталь №1, записываем в массивы управления клапанами
К1[T]
К2[ ]
К3[ ]
К4[ ]
до клапанов 2..4 деталь не должна доехать по этому в массивы ничего не пишем
2. Пришла деталь №3
К1[F, T]
К2[F]
К3[T]
К4[ ]
3. Пришла деталь №4
К1[F, F, T]
К2[F, F]
К3[F, T]
К4[T]
4. Пришла деталь Брак
К1[F, F, F, T]
К2[F, F, F]
К3[F, F, T]
К4[F, T]
т.е. ее пропускают все клапаны
5. Пришла деталь №2
К1[F, F, F, F, T]
К2[T, F, F, F]
К3[F, F, T]
К4[F, T]
и т.д., и т.п.
Надеюсь нигде не ошибся, но думаю идея понятна
Ну а циклы управления каждым клапаном работают асинхронно с циклом камеры и между собой.
Следующая итерация цикла запускается по срабатыванию "Оптического датчика". При этом удаляется из очереди "первый элемент" (в данном примере - последний элемент массива). Если там False, то деталь пропускается, если True-скидываем в соответствующий лоток.
Если деталь пришла, а массив пустой, то это повод остановить конвейер, т.к. это признак ошибки. Возможно ее сбросить в брак, но это на ваше усмотрение. Я бы остановил, т.к. эта ошибка может привести к рассинхронизации камеры и массивов управления, тогда детали полетят не в свои контейнеры.
----------------------------
Таким образом мы полностью избавляемся от необходимости поддержания постоянной скорости движения конвейера и равномерного размещения деталей на нем.
---------------------------
mM7CpBlMIy0
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- interested
- Сообщения: 2
- Зарегистрирован: 02 июл 2016, 09:00
- Версия LabVIEW: 14
- Контактная информация:
Re: Буффер
Спасибо, мысль уловил, но пока не представляю как реализовать. Буду мучатся, главное направление уловил