LabVIEW Driver Implementation for ifm O2I100 Vision Sensor
-
- interested
- Сообщения: 9
- Зарегистрирован: 16 июн 2015, 13:00
- Версия LabVIEW: 2014
- Контактная информация:
LabVIEW Driver Implementation for ifm O2I100 Vision Sensor
Здравствуйте уважаемые посетители форума!
Я студент,изучаю LabVIEW в университете...
И вот один из моих проектов это написания драйвера для коммуникации с мультиридером ifm O2I100 через RSR 232, который читает разные типы штрихкодов, баркодов, QR.
Мои задачи это:
- Implementation of RS232-communication
- Set/Get Vision Sensor functions such as:
Implement process data protocol e.g.
1) Set trigger mode
2) Trigger image
3) Set output
4) Read Barcodes
Все чего мне удалось достичь на на данный момент это научится подключать прибор O2I100 через специальную интерфейсную программу, где я могу сделать определённые настройки и конфигурации. А так же в LabVIEW удалось написать простой прибор для установки связи и считывания заводской информации с прибора.
А теперь главный вопрос, как вообще я могу получить информацию с моего сенсора?
К примеру, туже самую картинку штрихкода, которую я могу получить через специальную интерфейсную программу, которая в наборе с сенсором?
Как задать настройки и т.д.?
Какие есть идеи и советы по поводу решения моего проекта?
Буду очень благодарен за любую информацию и в свою очередь могу предоставить любую интересующую информацию для решения задачи.
Прилагаю так же мою программку.
Вот еще так же ссылка на архив с документацией по сенсору ifm O2I100
https://cloud.mail.ru/public/8whQ/3LWkqSiNj
Я студент,изучаю LabVIEW в университете...
И вот один из моих проектов это написания драйвера для коммуникации с мультиридером ifm O2I100 через RSR 232, который читает разные типы штрихкодов, баркодов, QR.
Мои задачи это:
- Implementation of RS232-communication
- Set/Get Vision Sensor functions such as:
Implement process data protocol e.g.
1) Set trigger mode
2) Trigger image
3) Set output
4) Read Barcodes
Все чего мне удалось достичь на на данный момент это научится подключать прибор O2I100 через специальную интерфейсную программу, где я могу сделать определённые настройки и конфигурации. А так же в LabVIEW удалось написать простой прибор для установки связи и считывания заводской информации с прибора.
А теперь главный вопрос, как вообще я могу получить информацию с моего сенсора?
К примеру, туже самую картинку штрихкода, которую я могу получить через специальную интерфейсную программу, которая в наборе с сенсором?
Как задать настройки и т.д.?
Какие есть идеи и советы по поводу решения моего проекта?
Буду очень благодарен за любую информацию и в свою очередь могу предоставить любую интересующую информацию для решения задачи.
Прилагаю так же мою программку.
Вот еще так же ссылка на архив с документацией по сенсору ifm O2I100
https://cloud.mail.ru/public/8whQ/3LWkqSiNj
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
У Вас в архиве имеется файл "Programming manual".
Там имеется глава "4.4.2 Establish the RS-232 connection", где приведен пример настроек, для подключения, но это видимо у Вас уже получилось.
А в главе "14 Process data protocol" где описаны протокол и команды взаимодействия.
Вам необходимо реализовать необходимые функции, которые там описаны.
Там имеется глава "4.4.2 Establish the RS-232 connection", где приведен пример настроек, для подключения, но это видимо у Вас уже получилось.
А в главе "14 Process data protocol" где описаны протокол и команды взаимодействия.
Вам необходимо реализовать необходимые функции, которые там описаны.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- interested
- Сообщения: 9
- Зарегистрирован: 16 июн 2015, 13:00
- Версия LabVIEW: 2014
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Спасибо!
Да, запросы по некоторым командам я могу получить задав их в окне "write buffer" и ответ в "read buffer", но если мне нужно получить окно, где отображается то, что видит сенсор или задать настройки этого сенсора, то я не могу сообразить через какие функции это реализовать...
Да, запросы по некоторым командам я могу получить задав их в окне "write buffer" и ответ в "read buffer", но если мне нужно получить окно, где отображается то, что видит сенсор или задать настройки этого сенсора, то я не могу сообразить через какие функции это реализовать...
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Немного странный вопрос, Вам нужно подойти к нему с другой стороны. Окно - это подприбор, или sub . То что видит сенсор - Вы уже реализовали, ведь на скрине, что Вы добавили, есть строка Read Buffer. На лицевой панели ее ведь видно, вот и есть уже что Вам нужно.Valerii писал(а):Спасибо!
Да, запросы по некоторым командам я могу получить задав их в окне "write buffer" и ответ в "read buffer", но если мне нужно получить окно, где отображается то, что видит сенсор или задать настройки этого сенсора, то я не могу сообразить через какие функции это реализовать...
Для отображения используйте индикаторы, для настроек - контролы; из введенных в них значений формируйте строку для комманды баркод сканеру.
Мы делили апельсин - много наших полегло...
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Valerii писал(а):мне нужно получить окно, где отображается то, что видит сенсор
Valerii писал(а):или задать настройки этого сенсора
-
- interested
- Сообщения: 9
- Зарегистрирован: 16 июн 2015, 13:00
- Версия LabVIEW: 2014
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Спасибо за ответы!Kosist писал(а): Для отображения используйте индикаторы, для настроек - контролы; из введенных в них значений формируйте строку для комманды баркод сканеру.
Просто если использовать программку, которая в наборе с сенсором, то там появляется специальное окно, которое отображает то, что видит сенсор.
Про эту программу я могу забыть, она мне нужна только что бы посмотреть как должен работать сенсор и какие функции я должен реализовать в .
Но вот каким или саб можно было бы это отобразить? Ведь обычные для отображени ХУ графиков и т.д. не подходят...?
И сигнал выполненной операции, которая была задана в окне "write buffer", будет выполненна после узла "Visa Read" в стринговом формате?
Простите за глупые вопросы, только начинаю разбираться с
-
ladik
- developer
- Сообщения: 275
- Зарегистрирован: 18 ноя 2014, 11:45
- Награды: 1
- Версия LabVIEW: 2015, 2019
- Откуда: Екатеринбург
- Благодарил (а): 4 раза
- Поблагодарили: 3 раза
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Valerii, в LabVIEW есть функции для работы с изображениями (палитра Graphics & Sounds). Чтобы увидеть баркод, Вам нужно преобразовать данные из приёмного буфера в картинку (2D Picture). Если у Вас идут "сырые" данные в буфер (в простейшем случае), то решение - создать массив нулей и единиц (1 - чёрный, 0 - белый) и превратить его в 2D Picture. Вот Вам ссылка на пример как из массива сделать 2D Picture: http://forums.ni.com/t5/Machine-Vision/ ... d-p/430748.
Дорогу осилит идущий.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Valerii, выложите сюда ответ от сенсора на команду I?, попробуем разобраться
-
- advanced
- Сообщения: 150
- Зарегистрирован: 30 мар 2011, 22:41
- Награды: 1
- Версия LabVIEW: 8.2-2013
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Valerii, а почему бы вам не использовать уже имеющуюся у вас в примерах LabVIEW программу для чтения баркодов?
Она расположена здесь:
C:\Program Files\National Instruments\LabVIEW 2014\examples\Vision\Barcodes\Read 1D Barcode.vi
Она расположена здесь:
C:\Program Files\National Instruments\LabVIEW 2014\examples\Vision\Barcodes\Read 1D Barcode.vi
- Вложения
-
- Read 1D Barcode.pdf
- (121.26 КБ) 164 скачивания
-
- VIP
- Сообщения: 1337
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 42 раза
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Потому что:ESeid писал(а):Valerii, а почему бы вам не использовать уже имеющуюся у вас в примерах LabVIEW программу для чтения баркодов?
Она расположена здесь:
C:\Program Files\National Instruments\LabVIEW 2014\examples\Vision\Barcodes\Read 1D Barcode.vi
а) аппаратный сенсор как правило распознаёт коды значительно лучше пакета Vision
б) передача картинки по RS232 занимает довольно много времени
в) это просто удобнее - он сам переключается между различными типами кодов и т.д.
г) стоимость одной только рантайм лицензии Vision может запросто превысить стоимсть самого сенсора
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Я вообще не понимаю, в чем проблема. Зачем нужен баркодсканнер? Чтобы прочитать баркод, зашифрованную в нем информацию. Вот и показывайте оператору уже расшифрованный код, зачем ему картинка баркода?
Тут все просто. Хотите изображение - используйте камеру. Хотите расшифровать баркод - используйте баркод ридер. Зачем городить велосипед?
Тут все просто. Хотите изображение - используйте камеру. Хотите расшифровать баркод - используйте баркод ридер. Зачем городить велосипед?
Мы делили апельсин - много наших полегло...
-
- VIP
- Сообщения: 1337
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 42 раза
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Ну иногда бывает полезно посмотреть, как "видит" баркод сенсор сканера, чтобы подрегулировать освещение, или параметры получше настроить. Я в прошлом месяце работал с ридером HAWK - так там четыре варианта освещения (разного цвета), и они влияли на контраст, а смотреть картинку в сторонней программе было неудобно, так как свою приходилось закрывать - порт-то RS232 у нас всего один. Но в нормальной работе это, конечно, не нужно - для этого строка с результатом передаётся. Вообще все сканеры с которыми я работал, передавали строку немедленно после чтения - то есть в сканер вообще ничего записывать не нужно, чтобы получить от него результат - надо просто ждать байтов с последовательного порта, как только сканер прочитает код, он результат сам отдаст.Kosist писал(а):Я вообще не понимаю, в чем проблема. Зачем нужен баркодсканнер? Чтобы прочитать баркод, зашифрованную в нем информацию. Вот и показывайте оператору уже расшифрованный код, зачем ему картинка баркода?
Тут все просто. Хотите изображение - используйте камеру. Хотите расшифровать баркод - используйте баркод ридер. Зачем городить велосипед?
-
- interested
- Сообщения: 9
- Зарегистрирован: 16 июн 2015, 13:00
- Версия LabVIEW: 2014
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
dadreamer, ответ на эту команду:
А когда читаю произвольный QR код скачанный из сети по команде "t", то получаю вот такую информацию:
Где,
- это заводские данные сенсора, которые я могу считать по команде "D?".
Сейчас только получил доступ к лаборатории. Буду пытаться что-то реализовать, завтра отпишусь о результатах и задам новые вопросы.
Благодарю всех за активное участие!
Код: Выделить всё
"BMP000308278BM6\B4\04\00\00\00\00\006\04\00\00(\00\00\00\80\02\00\00\E0\01\00\00\01\00\b\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01\00\00\
00\00\00\00\00\00\00\00\01\01\01\01\02\02\02\02\03\03\03\03\04\04\04\04\05\05\05\05\06\06\06\06\07\07\07\07\b\b\b\b\t\t\t\t\n"
Код: Выделить всё
"start\D0\A1\D0\BF\D1\80\D0\B0\D0\B2\D0\BE\D1\87\D0\BD\D0\BE-\D0\B8\D0\BD\D1\84\D0\BE\D1\80\D0\BC\D0\B0\D1\86\D0\B8\D0\BE\D0\BD\D0\BD\D1\8B\D0\B9\s\D0\98\D0\BD\D1\82\D0\B5\D1\80\D0\BD\D0\B5\D1\82-\D0\BF\D0\BE\D1\80\D1\82\D0\B0\D0\BB\shttp://www.abcibc.comstopIFM\sELECTRONIC\tO2I100AC\tMulticode\sReader\tMy\slocation\t192.168.95.20\t255.255.25
5.0\t192.168.95.201\t00:02:01:20:3e:68\t0\t08080\r\n"
Код: Выделить всё
"IFM\sELECTRONIC\tO2I100AC\tMulticode\sReader\tMy\slocation\t192.168.95.20\t255.255.255.0\t192.168.95.201\t00:02:01:20:3e:68\t0\t08080\r\n"
Сейчас только получил доступ к лаборатории. Буду пытаться что-то реализовать, завтра отпишусь о результатах и задам новые вопросы.
Благодарю всех за активное участие!
Последний раз редактировалось IvanLis 20 июн 2015, 23:47, всего редактировалось 1 раз.
Причина: выделил тегом Code, а то за страницу ушел текст
Причина: выделил тегом Code, а то за страницу ушел текст
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Valerii
Очевидно, что в ответ приходит файл в формате BMP (первые три символа). Следующие 9 байт согласно инструкции - это длина файла, в вашем случае 308278 байт. Ну, а после этого идёт обычный BMP, по спецификации видим метку начала (0x4D42 = BM), размер файла (0x00 04 B4 36 = 308278d) и так далее. Файл вы получаете не полностью, пакет режется на терминальном символе 0xA = \n = LF, который задан по умолчанию для VISA Configure Serial Port. Чтобы такого не происходило, нужно отключить терминальный символ: Enable Termination Char = FALSE. Кроме того, нужно подумать над логикой чтения. Допустим, вы выполняете запись команды I? через VISA Write, после чего читаете через VISA Read только первые 12 байт. Из них вы выделяете размер файла и снова читаете уже необходимое число байт. В хорошем случае можно обойтись двумя VISA Read, однако если не получится, то можно добавить VISA Bytes At Port и читать данные в While-цикле, пока не будет набрано нужное число байт. Также проверьте в терминале, как будет отсылаться файл: сразу одним пакетом или по кускам. В первом случае большой файл не поместится в буфер порта (по дефолту он равен 4096 байт), нужно будет увеличивать размер буфера (VISA Set I/O Buffer Size). Во втором случае может поместиться, а может и нет.
Очевидно, что в ответ приходит файл в формате BMP (первые три символа). Следующие 9 байт согласно инструкции - это длина файла, в вашем случае 308278 байт. Ну, а после этого идёт обычный BMP, по спецификации видим метку начала (0x4D42 = BM), размер файла (0x00 04 B4 36 = 308278d) и так далее. Файл вы получаете не полностью, пакет режется на терминальном символе 0xA = \n = LF, который задан по умолчанию для VISA Configure Serial Port. Чтобы такого не происходило, нужно отключить терминальный символ: Enable Termination Char = FALSE. Кроме того, нужно подумать над логикой чтения. Допустим, вы выполняете запись команды I? через VISA Write, после чего читаете через VISA Read только первые 12 байт. Из них вы выделяете размер файла и снова читаете уже необходимое число байт. В хорошем случае можно обойтись двумя VISA Read, однако если не получится, то можно добавить VISA Bytes At Port и читать данные в While-цикле, пока не будет набрано нужное число байт. Также проверьте в терминале, как будет отсылаться файл: сразу одним пакетом или по кускам. В первом случае большой файл не поместится в буфер порта (по дефолту он равен 4096 байт), нужно будет увеличивать размер буфера (VISA Set I/O Buffer Size). Во втором случае может поместиться, а может и нет.
-
- VIP
- Сообщения: 1337
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 42 раза
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Кстати, наличие строк location\t192.168.95.20\t255.255.255.0\t192.168.95.201\t00:02:01:20:3e:68\t0\t08080
наводит на мысль, что у сканера есть и tcp соединение. Если это так, имеет смысл попробовать подключиться к нему именно таким способом.
наводит на мысль, что у сканера есть и tcp соединение. Если это так, имеет смысл попробовать подключиться к нему именно таким способом.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 0 Ответы
- 1893 Просмотры
-
Последнее сообщение Anastasia
-
- 3 Ответы
- 2065 Просмотры
-
Последнее сообщение PozhiloyGoblin
-
- 0 Ответы
- 343 Просмотры
-
Последнее сообщение maxim_MA
-
- 23 Ответы
- 2387 Просмотры
-
Последнее сообщение dadreamer
-
- 2 Ответы
- 390 Просмотры
-
Последнее сообщение ujin1