Пока что решил, пока без изображения, создать простенький интерфес программы.
Решил выбрать структуру "Case" для выбора команды, которая будет выполняться.
Но к сожалению, даже простой запрос на выдачу информации об устройстве не выдает никакой информации. sub "RS232" - это тот простейший прибор, который я создал с самого начала, его блок схема присутствует в самом первом посте, где я описал свое задание.
Вопросы:
1) Почему моя структура не работает?
2) Может есть более просто метод или правильный для создания интерфейса к такому роду программ
3) Возможно лучше как-то через структуру "Event"?
Добавляю скрины программы, которую я создал.
LabVIEW Driver Implementation for ifm O2I100 Vision Sensor
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Скорее всего, потому что ответ от сканера сразу же стирается, т.к. цикл работает с очень большой частотой. Во-первых, внесите индикатор ответа от сканера внутрь кейса, чтобы он не затирался. Во-вторых, добавьте задержку в цикл, чтобы разгрузить ЦП. И в-третьих, постоянная инициализация COM-порта при каждой команде - это не хорошо. Зачем выполнять однотипную операцию постоянно, если можно её выполнить один раз? На мой взгляд, правильнее вынести инициализацию за основной While-цикл, а в вашем SubVI оставить только запись-чтение из порта. И не забудьте про то, что порт нужно закрывать после работы с ним.Valerii писал(а):1) Почему моя структура не работает?
Архитектура State Machine - почитайте на досуге.Valerii писал(а):2) Может есть более просто метод или правильный для создания интерфейса к такому роду программ
[b][color=#FF9900]dadreamer[/color][/b] писал(а):Это такая архитектура, когда у вас вся работа программы выполняется в одном While цикле, а за каждый акт программы отвечает отдельное состояние сдвигового регистра. В зависимости от значения регистра выбирается тот или иной Case вариант, в котором размещается код, отвечающий за обработку состояния. Такая архитектура довольно гибкая в том плане, что из любого состояния можно перейти в любое, достаточно только присвоить сдвиговому регистру новое значение. Посмотрите вот такой пример, думаю, будет понятно: http://labviewportal.org/viewtopic.php?p=58200#p58200
Через Event можно обрабатывать нажатия кнопок, чтобы не сканировать их в цикле постоянно. Но для начала переделайте программу, чтобы она заработала, потом можно будет поставить в цикл Event структуру.Valerii писал(а):3) Возможно лучше как-то через структуру "Event"?
-
- interested
- Сообщения: 9
- Зарегистрирован: 16 июн 2015, 13:00
- Версия LabVIEW: 2014
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
dadreamer, премного благодарю!
сейчас буду разбираться!
сейчас буду разбираться!
-
- interested
- Сообщения: 9
- Зарегистрирован: 16 июн 2015, 13:00
- Версия LabVIEW: 2014
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Переделал блок-схему. Добавил задержку. Для наглядности убрал sub .
Информация об устройстве читается, но, к сожалению функция считывания кода (trigger image "t") выдает информацию "?", что означает "Another trigger source has been configured". Если снова переключаюсь на считывание заводской информации, то эта команда считывания сервисной информации работает. Если тестирую отдельно эту команду на более простой программе, то все работает.
В чем тут загвоздка, как получить корректную информацию от команды считывания кода?
Скрин с новой программой:
Информация об устройстве читается, но, к сожалению функция считывания кода (trigger image "t") выдает информацию "?", что означает "Another trigger source has been configured". Если снова переключаюсь на считывание заводской информации, то эта команда считывания сервисной информации работает. Если тестирую отдельно эту команду на более простой программе, то все работает.
В чем тут загвоздка, как получить корректную информацию от команды считывания кода?
Скрин с новой программой:
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Функцию закрытия порта вынесите за цикл.
И что у вас там с задержками? Для внешнего цикла достаточно 50-100 мс. Задержка в кейсе вообще, по идее, не нужна.-
- interested
- Сообщения: 9
- Зарегистрирован: 16 июн 2015, 13:00
- Версия LabVIEW: 2014
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
dadreamer, задержки добавил на всякий случай для тестирования, ведь сенсору надо время что бы считать код (сейчас с QR кодом работаю). Вынес как вы советовали, не помогло все еще. Как-то странно с этой командой все идет.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
Попробуйте вот такой :
- Вложения
-
- Untitled 1.vi
- lv2014
- (17.07 КБ) 141 скачивание
-
- interested
- Сообщения: 9
- Зарегистрирован: 16 июн 2015, 13:00
- Версия LabVIEW: 2014
- Контактная информация:
Re: LabVIEW Driver Implementation for ifm O2I100 Vision Sens
dadreamer, и ваш и мой вариант теперь работают, ошибка была в неправильном формате задания команды "t", надо было еще сделать отступ с новой строки в написании самой константы .
Продолжаю дальше развивать свой проект.
В скором времени сообщу результаты.
Продолжаю дальше развивать свой проект.
В скором времени сообщу результаты.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 3 Ответы
- 2074 Просмотры
-
Последнее сообщение PozhiloyGoblin
-
- 0 Ответы
- 344 Просмотры
-
Последнее сообщение maxim_MA
-
- 23 Ответы
- 2433 Просмотры
-
Последнее сообщение dadreamer
-
- 2 Ответы
- 391 Просмотры
-
Последнее сообщение ujin1
-
- 5 Ответы
- 848 Просмотры
-
Последнее сообщение dadreamer