Буффер

Простейшие вопросы в области инженерной разработки
Ответить
AIDAR
interested
interested
Сообщения: 2
Зарегистрирован: 02 июл 2016, 09:00
Версия LabVIEW: 14
Контактная информация:

Буффер

Сообщение AIDAR »

Здравствуйте уважаемые форумчане!
Прошу Вас о помощи.
Суть проблемы, есть поточная линия по которой проходят детали. Есть смарт камера НИ1772 каждая деталь проходит под смарт камерой, та в свою очередь определяет геометрические размеры детали и должна распределять по по размеру площади на четыре группы по средством клапанов сброса.
Но вся проблема в том что детали проходят под камерой каждые 150 мс, а разделяются на категории уже через несколько секунд в зависимости от категории.
Вот схема.
2016-07-02_09-04-14.png
То есть если деталь попадает в 4 категорию и следующая деталь тоже попадает в 4ую категорию она не записывает значение и просто пропускает эту деталь.
Вот моя блок диаграмма.
2016-07-02_08-58-54.png
Я понимаю что должен быть наверно какой нибудь циклический буфер, но не понимаю как это реализовать.
То есть если две детали подряд идут к примеру в 4категорию они записываются в буффер и переходят в новый цикл где идет сравнение по площади и если деталь попадает в диапазон компоратор выдает сигнал о том что эта та категория и ждет сигнал с оптического датчика установленного рядом с клапаном. Как только сигнал отработает данные с буффера должны удалиться
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5463
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Буффер

Сообщение IvanLis »

Я бы для управления каждым клапаном сформировал отдельный массив 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]

и т.д., и т.п.

Надеюсь нигде не ошибся, но думаю идея понятна :crazy:

Ну а циклы управления каждым клапаном работают асинхронно с циклом камеры и между собой.

Следующая итерация цикла запускается по срабатыванию "Оптического датчика". При этом удаляется из очереди "первый элемент" (в данном примере - последний элемент массива). Если там False, то деталь пропускается, если True-скидываем в соответствующий лоток.

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

Таким образом мы полностью избавляемся от необходимости поддержания постоянной скорости движения конвейера и равномерного размещения деталей на нем.

---------------------------

mM7CpBlMIy0
AIDAR
interested
interested
Сообщения: 2
Зарегистрирован: 02 июл 2016, 09:00
Версия LabVIEW: 14
Контактная информация:

Re: Буффер

Сообщение AIDAR »

Спасибо, мысль уловил, но пока не представляю как реализовать. Буду мучатся, главное направление уловил :super:
Ответить

Вернуться в «Для чайников»