Ответная часть программы - Pattern Matching with acquire.vi

 

Ответной частью данного виртуального прибора является прошивка камеры,

которая также написана на 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