LabVIEW Driver Implementation for ifm O2I100 Vision Sensor

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Valerii
interested
interested
Сообщения: 9
Зарегистрирован: 16 июн 2015, 13:00
Версия LabVIEW: 2014
Контактная информация:

Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens

Сообщение Valerii »

Пока что решил, пока без изображения, создать простенький интерфес программы.
Решил выбрать структуру "Case" для выбора команды, которая будет выполняться.
Но к сожалению, даже простой запрос на выдачу информации об устройстве не выдает никакой информации. sub :vi: "RS232" - это тот простейший прибор, который я создал с самого начала, его блок схема присутствует в самом первом посте, где я описал свое задание.

Вопросы:
1) Почему моя структура не работает?
2) Может есть более просто метод или правильный для создания интерфейса к такому роду программ
3) Возможно лучше как-то через структуру "Event"?

Добавляю скрины программы, которую я создал.

Изображение

Изображение
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens

Сообщение dadreamer »

Valerii писал(а):1) Почему моя структура не работает?
Скорее всего, потому что ответ от сканера сразу же стирается, т.к. цикл работает с очень большой частотой. Во-первых, внесите индикатор ответа от сканера внутрь кейса, чтобы он не затирался. Во-вторых, добавьте задержку в цикл, чтобы разгрузить ЦП.
ba1f89d5ef7e.jpg
И в-третьих, постоянная инициализация COM-порта при каждой команде - это не хорошо. Зачем выполнять однотипную операцию постоянно, если можно её выполнить один раз? На мой взгляд, правильнее вынести инициализацию за основной While-цикл, а в вашем SubVI оставить только запись-чтение из порта. И не забудьте про то, что порт нужно закрывать после работы с ним.
Valerii писал(а):2) Может есть более просто метод или правильный для создания интерфейса к такому роду программ
Архитектура State Machine - почитайте на досуге.
[b][color=#FF9900]dadreamer[/color][/b] писал(а):Это такая архитектура, когда у вас вся работа программы выполняется в одном While цикле, а за каждый акт программы отвечает отдельное состояние сдвигового регистра. В зависимости от значения регистра выбирается тот или иной Case вариант, в котором размещается код, отвечающий за обработку состояния. Такая архитектура довольно гибкая в том плане, что из любого состояния можно перейти в любое, достаточно только присвоить сдвиговому регистру новое значение. Посмотрите вот такой пример, думаю, будет понятно: http://labviewportal.org/viewtopic.php?p=58200#p58200
Valerii писал(а):3) Возможно лучше как-то через структуру "Event"?
Через Event можно обрабатывать нажатия кнопок, чтобы не сканировать их в цикле постоянно. Но для начала переделайте программу, чтобы она заработала, потом можно будет поставить в цикл Event структуру.
Valerii
interested
interested
Сообщения: 9
Зарегистрирован: 16 июн 2015, 13:00
Версия LabVIEW: 2014
Контактная информация:

Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens

Сообщение Valerii »

dadreamer, премного благодарю!
сейчас буду разбираться!
Valerii
interested
interested
Сообщения: 9
Зарегистрирован: 16 июн 2015, 13:00
Версия LabVIEW: 2014
Контактная информация:

Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens

Сообщение Valerii »

Переделал блок-схему. Добавил задержку. Для наглядности убрал sub :vi: .
Информация об устройстве читается, но, к сожалению функция считывания кода (trigger image "t") выдает информацию "?", что означает "Another trigger source has been configured". Если снова переключаюсь на считывание заводской информации, то эта команда считывания сервисной информации работает. Если тестирую отдельно эту команду на более простой программе, то все работает.

В чем тут загвоздка, как получить корректную информацию от команды считывания кода?

Скрин с новой программой:
Изображение
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens

Сообщение dadreamer »

Функцию закрытия порта вынесите за цикл.
a4447ab85ac4.jpg
И что у вас там с задержками? Для внешнего цикла достаточно 50-100 мс. Задержка в кейсе вообще, по идее, не нужна.
Valerii
interested
interested
Сообщения: 9
Зарегистрирован: 16 июн 2015, 13:00
Версия LabVIEW: 2014
Контактная информация:

Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens

Сообщение Valerii »

dadreamer, задержки добавил на всякий случай для тестирования, ведь сенсору надо время что бы считать код (сейчас с QR кодом работаю). Вынес как вы советовали, не помогло все еще. Как-то странно с этой командой все идет.

Изображение
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens

Сообщение dadreamer »

Попробуйте вот такой :vi: :
Вложения
Untitled 1.vi
lv2014
(17.07 КБ) 141 скачивание
Valerii
interested
interested
Сообщения: 9
Зарегистрирован: 16 июн 2015, 13:00
Версия LabVIEW: 2014
Контактная информация:

Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens

Сообщение Valerii »

dadreamer, и ваш и мой вариант теперь работают, ошибка была в неправильном формате задания команды "t", надо было еще сделать отступ с новой строки в написании самой константы :thank: .

Продолжаю дальше развивать свой проект.
В скором времени сообщу результаты.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»