Ответной частью данного виртуального прибора является прошивка камеры,
которая также написана на LabVIEW и запускается камерой автоматически.
Данная программа частично сгенерирована с помощью ПО NI Vision Assistant ее
упрощенный алгоритм представлен на рис.5.2.
Изображения-эталоны получены с помощью Measurement & Automation
Explorer и преобразованы в образцы (templates) с помощью инструмента Pattern
Matching ПО NI Vision Assistant.
Данные изображения находятся в памяти камеры в папке templates.
Рис.5.2 Алгоритм работы прошивки камеры
20
Алгоритм работы барабана
Общий вид (иконка)
виртуального прибора
05_Baraban.vi показана на
Рис.6.1.
Входы
виртуального прибора:
Рис.6.1 Виртуальный прибор 05_Baraban
error in – кластер
ошибок;
Ready[boolean] – вход готовности предыдущего модуля передать заготовку;
Run[boolean] – вход, обуславливающий функционирование данного модуля;
Tasks – массив кластеров для управления cDAQ;
Сверление – подлежит ли текущая заготовка (переданная с предыдущего
модуля) сверлению;
Штамповка – подлежит ли текущая заготовка (переданная с предыдущего
модуля) штамповке;
Array of billets in - Bullets[array of boolean] представляет собой олицетворение
пяти ячеек для заготовок от начальной ячейки после транспортера и до
конечник - перед манипулятором с захватом. Массив двумерный, 3
строчки и 5 столбцов. Первая строка - массив, олицетворяющий ячейки
барабана (0 - пустая, 1 - с заготовкой), вторая и третья строчка
олицетворяют действие с заготовкой в соответствующей ячейке. Вторая
строчка - сверление, третья - штамповка. Четвертая строка содержит
результаты сравнения снимков заготовок с этанолами.
Пример:
массив
1 0 1 1 1
1 0 0 0 1
0 0 1 1 0
0 0 1 0 1
Означает: в первой ячейке (приемной) находится заготовка. Ее нужно
просверлить, она еще не прошла проверку системой машинного зрения.
Вторая ячейка (под сверлом) пуста, в третьей ячейке лежит заготовка,
подлежащая штамповке и прошедшая проверку системой машинного
зрения (годная), в четвертой ячейке находится заготовка, подлежащая
штамповке на текущей итерации, признанная негодной системой
машинного зрения, и в пятой (выходной) ячейке находится
проштампованная заготовка, до которой еще не успела дойти рука с
манипулятором и прошедшая проверку системой машинного зрения
(годная).
21
Выходы виртуального прибора:
Ready[boolean] – выход готовности данного модуля передать заготовку
следующему;
Результат обработки изображения – годной (TRUE) или негодной (FALSE)
признана заготовка системой машинного зрения;
Array of billets in – см. описание входа Array of billets in.
error out – кластер ошибок.
Блок-схема работы данного модуля представлена на рис.6.2.1-6.2.2.
Описание работы данного модуля:
1. Проверка, не передает ли предыдущий модуль заготовку. Если передает –
включается транспортер до появления заготовки в приемной ячейке. В
массив Bullets в первый столбец записывается [1, Сверление, Штамповка],
где ‘Сверление’ и ‘Штамповка’ – значения соответствующих входов.
2. Подвергаем заготовку проверке системой машинного зрения.
3. Следующие действия производятся параллельно:
3.1.
3.2.
3.3.
Если в массиве Bullets в первой строке второго столбца (этот элемент
массива олицетворяет ячейку барабана, находящуюся под сверлом)
стоит 1, реализуем алгоритм сверления.
Если в массиве Bullets в первой строке четвертого столбца (этот
элемент массива олицетворяет ячейку барабана, находящуюся под
штампом) стоит 1, реализуем алгоритм штамповки.
Если в массиве Bullets в первой строке пятого столбца (этот элемент
массива олицетворяет конечную ячейку барабана, находящуюся под
манипулятором с захватом) стоит 1, значит алгоритм манипулятора с
захватом еще не закончил свою работу – ждем, пока манипулятор с
захватом не окажется в крайнем левом верхнем положении в не
раздвинутом состоянии, что означает, что заготовка находится в
захвате и манипулятор уже не препятствует движению барабана. В
массив Bullets в пятый столбец записывается [0, Х, Х], где Х означает,
что эти значения остаются без изменений.
4. Отработка алгоритма защиты. Барабан прокручивается ровно на один шаг
(одну ячейку). При этом массив Bullets меняется соответствующим образом
– “сдвигается” вправо на 1 столбец.
5.
Если в массиве Bullets в первой строке пятого столбца (этот элемент массива
олицетворяет конечную ячейку барабана, находящуюся под манипулятором с
захватом) стоит 1, на выход Ready подается 1.
23
24