Чтение данных с Mitutoyo
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Чтение данных с Mitutoyo
Доброго всем здравия. Испытываю трудности с чтением данных c микрометра. Суть вот в чем: Имеется микрометр, который через IT-012U USB адаптер подключен к PC. Компьютер его распознает как USB Input Device, т.е. по сути как клавиатуру. Значит, если открыть блокнот, Excel либо установить фокус ввода в numeric (LabVIEW) и нажать кнопку на адаптере, то числовое значение с микрометра там появится. Как будто вы его напечатали с клавиатуры. Ключевое здесь "установить фокус", ведь нельзя же все время держать фокус, ожидая прихода новых данных. Собственно вопрос как перехватить данные с этого адаптера и отобразить их? После передачи цифр имитируестя нажатие ввода и если активно что то, кроме поля ввода, то поведение может быть непредсказуемым. Как поступить в данном случае. Спасибо.
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Чтение данных с Mitutoyo
Не знаю для чего планируется использовать, но я бы поставил между ними контроллер, который принимал бы эти символы и по Enter отправлял бы в ПК.jane_wild писал(а):Как поступить в данном случае. Спасибо.
Все равно у Вас используется прослойка в виде адаптера, одной больше одной меньше. И сдается мне, что это именно он таким образом инфу шлет, а не железяка.
А вообще как-нибудь напрямую подключиться, минуя адаптер.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
Микрометер такой подключен к адаптеру вот таким кабелем Подключится напрямую? Я нашла в инете немного информации... там используется какой то не совсем понятный протокол SPC...
Хотелось бы пойти более простым путем и как то выловить данные когда я нажимаю вот на эту кнопку
Хотелось бы пойти более простым путем и как то выловить данные когда я нажимаю вот на эту кнопку
-
- assistant
- Сообщения: 119
- Зарегистрирован: 06 май 2015, 22:24
- Версия LabVIEW: 2014, 2018
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
Нашел такие переходники, вроде бы понятно работа с ними описана. Денег конечно стоят, но...
http://www.microridge.com/ftp/gw_sm/gag ... _guide.pdf
Если есть кому собрать, вот видео самодельного переходника и устройства для считывания и отображения результатов измерений, там же ссылка на код для ардуино, схему и плату.
http://www.microridge.com/ftp/gw_sm/gag ... _guide.pdf
Если есть кому собрать, вот видео самодельного переходника и устройства для считывания и отображения результатов измерений, там же ссылка на код для ардуино, схему и плату.
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
Если еще актуально....
была такая же задача пару лет назад и была решена, как советовал IvanLis. Только я не использовал адаптер, а подключил микрометр напрямую к микроконтроллеру, а тот в свою очередь по USB к компьютеру. Jane, посмотрите в приложении документ, в свое время он сильно мне помог. Если коротко, то я делал так. Вход REQ (5 pin) - запрос, подключаем к GND, это заставит Mitutoyo посылать данные непрерывно (можно и транзистор поставить) Поскольку выхода, как data, так и clock с открытым коллектором, то в контроллере конфигурируем два входа и включаем на них подтяжку к питанию "pullup". Далее в прерывании по спадающему фронту от clock, читаем вход data и записываем в массив. Посылка состоит из тринадцати цифр/символов, каждая из которых состоит из четырех бит - итого 52 бита. Получили 52 бита, проверили что первые 16 все единицы, значит все Ок, отбросили их, а остальные распарсили и далее по необходимым хотелкам…. Необходимо обратить внимание вот на что. Посылка, длится около 28 mS ( между посылками около 80 mS) т.е. достаточно медленно. Поэтому обращайте внимание на приоритет задач, если они используются, а также приоритет прерываний.Не знаю для чего планируется использовать, но я бы поставил между ними контроллер, который принимал бы эти символы и по Enter отправлял бы в ПК.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
So far, the Universe is winning!
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
Да еще все актуально. К сожалению с микроконтроллерами я на "Вы", поэтому надеялась что возможно обойтись только средствами LabVIEW. Если в диспетчере микрометер видится как HID "USB Input Device", то думала что есть способ на системном уровне перехватить посылаемые данные... Когда я вижу как посылаются данные в блокнот или Excel, создается впечатление что кто то очень бысто печатает на том конце...Если еще актуально....
Раньше на портале я видела тему, кажется с чтением данных из сканера штрих кода, там что то похожее было. Пыталась найти и посмотреть как там решили проблему, но поиск на портале не работает...
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
Эта тема?jane_wild писал(а):Раньше на портале я видела тему, кажется с чтением данных из сканера штрих кода, там что то похожее было. Пыталась найти и посмотреть как там решили проблему, но поиск на портале не работает...
По запросу "hid" usb site:ni.com можно много тем найти, связанных с коммуникацией и HID-устройств (пример). Так или иначе данные можно достать через Визу или разношёрстные врапперы WinAPI. Можно и собственную обёртку написать. Однако от такого перехвата устройство не перестанет быть HID-совместимым, что значит, что оно по-прежнему будет печатать а ля клава, и программа, имеющая фокус, также примет введённые данные. С помощью хуков такие события можно фильтровать, но реализация не будет самой простой.
Возможно, на самом деле проще приобрести/изготовить промежуточное устройство, которое будет конвертировать данные в удобный формат. Может быть, существует конвертор SPC -> RS-232?
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
to: dadreamer, Да тема эта - почитаю.
вот такой А в PC, где планируется его использовать такого порта нет, т.е. еще нужно конвертер в USB искать... Вообщем буду разговаривать с схемотехниками, по поводу контроллера, посмотрим что они скажут. В любом случае Спасибо - доходчиво объяснили.
Конечно существуют, только это реальный RS232Может быть, существует конвертор SPC -> RS-232?
вот такой А в PC, где планируется его использовать такого порта нет, т.е. еще нужно конвертер в USB искать... Вообщем буду разговаривать с схемотехниками, по поводу контроллера, посмотрим что они скажут. В любом случае Спасибо - доходчиво объяснили.
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
to: taras_33,
Не могли бы Вы более детально пояснить насчет прерываний... народ тут у нас интересуется. Спасибо.Поэтому обращайте внимание на приоритет задач, если они используются, а также приоритет прерываний.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
Можно и PCI-плату воткнуть типа такой или аналогичной (не знаю, как сейчас, но года три назад в ДНС продавались).jane_wild писал(а):А в PC, где планируется его использовать такого порта нет, т.е. еще нужно конвертер в USB искать...
К своему предыдущему посту: можете сравнить вывод от обычной клавы и от микрометра с помощью программы ViewKeyCode (режим WH_KEYBOARD_LL), вдруг что интересное увидите - flags, ExtraInfo. Если ничего такого не будет, то отличить этот девайс от стандартной клавиатуры не представится возможным.
upd: В принципе, вот здесь представлен концепт, о котором я изначально говорил: используется хук на события от клавиатуры, чтобы получить возможность принять или отклонить событие, в комбинации с RawInput (прямой ввод данных), чтобы сопоставить конкретное событие с ID устройства, пославшего событие (так как сам хук таких данных не предоставляет). Думаю, в можно заменить Raw Input на с вкладки Connectivity -> Input Device Control. Но для реализации хука по-прежнему нужно писать небольшую DLL. Также существует ряд "подводных камней", о которых написано в приведённой ссылке.
Последний раз редактировалось dadreamer 10 апр 2019, 10:01, всего редактировалось 1 раз.
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
В контроллере крутится несколько задач ADC, USB, GUI - графический интерфейс с тачскрином (emWin), а также чтение и парсинг данных с микрометра. У каждой задачи свои прерывания. И если одно имеет более высокий приоритет, то другое с более низким приоритетом, даже если оно произошло чуть ранее, будет ждать своей очереди. В результате когда она дойдет, входной сигнал может быть уже другим, как результат данные будут неверные. Поэтому нужно играться с настройками, что бы и тач был отзывчивым, график на LCD рисовался не дергаясь и данные передавались исправно по USB. В моем случае идея была использовать устройство как с компом, так и без. В вашем случае будет проще, две задачи - USB и разбор данных с микрометра. Так что проблем скорее всего не будет. Возьмите самый дешевый контроллер с аппаратным USB и вперед. Удачи!Не могли бы Вы более детально пояснить насчет прерываний...
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
So far, the Universe is winning!
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
dadreamer, Спасибо за программку - в хозяйстве пригодится. Сделала скриншот, первые идут данные с микрометра, затем я нажала пробел и ввела те же значения с клавиатуры в конце нажала Enter. Не вижу никаких отличий, за исключением скорости ввода и нажатием Enter - Mitutoyo "нажимает" его на цифровой клавиатуре.
taras_33, спасибо за объяснение. Написала в личку.
Ребята спасибо - всем по плюсику, будем думать к каком направлении двигаться дальше.
Ребята спасибо - всем по плюсику, будем думать к каком направлении двигаться дальше.
-
Vitekkz88
- expert
- Сообщения: 1100
- Зарегистрирован: 21 янв 2014, 15:45
- Награды: 3
- Версия LabVIEW: 12,13,14
- Откуда: Томск
- Контактная информация:
Re: Чтение данных с Mitutoyo
jane_wild, если еще актуально и хочется разрулить программно, то давайте попробуем хуками.
Запустите от имени администратора(а можно попробовать и без, может отработать)Hook_key.exe и отправьте данные с Вашего устройства. Если данные будут сохраняться в файл keys.txt, то далее попробую помочь Вам доработать ПО, чтобы фильтровать данные с конкретного устройства по его VID и PID.
В текущем варианте данные не фильтруются по VID и PID, программа построена на использовании функции SetWindowsHookEx и событий KEYDOWN.
Если всё отработает корректно, то можно продумать алгоритм использования текущей реализации в таком ключе:
Запустили программу, запустили Hook_key.exe в фоновом режиме, проверяем содержимое файла раз в секунду(или чаще, как хотите).
Если данные появились в файле, то вычитываем их и сохраняем в регистре до следующей проверки. Сам файл очищаем с помощью Set File Size.vi(задав размер = 0). Поскольку хук без фильтрации, то в файле получите все события нажатия кнопок на клавиатуре от момента нажатия и до считывания/очистки .
Исходники логера у меня есть, собирал в QT Creator 4.5.0 x32, проверял в Win10 x64. Если не будет хватать каких-то библиотек - говорите, я их подтяну.
Запустите от имени администратора(а можно попробовать и без, может отработать)Hook_key.exe и отправьте данные с Вашего устройства. Если данные будут сохраняться в файл keys.txt, то далее попробую помочь Вам доработать ПО, чтобы фильтровать данные с конкретного устройства по его VID и PID.
В текущем варианте данные не фильтруются по VID и PID, программа построена на использовании функции SetWindowsHookEx и событий KEYDOWN.
Если всё отработает корректно, то можно продумать алгоритм использования текущей реализации в таком ключе:
Запустили программу, запустили Hook_key.exe в фоновом режиме, проверяем содержимое файла раз в секунду(или чаще, как хотите).
Если данные появились в файле, то вычитываем их и сохраняем в регистре до следующей проверки. Сам файл очищаем с помощью Set File Size.vi(задав размер = 0). Поскольку хук без фильтрации, то в файле получите все события нажатия кнопок на клавиатуре от момента нажатия и до считывания/очистки .
Исходники логера у меня есть, собирал в QT Creator 4.5.0 x32, проверял в Win10 x64. Если не будет хватать каких-то библиотек - говорите, я их подтяну.
- Вложения
-
- Hook_key.zip
- (576.75 КБ) 82 скачивания
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
-А. И. Солженицын
- jane_wild
- master
- Сообщения: 459
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 83 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
Да, еще актуально. Попробовала Вашу програмку. Да данные сохраняются в текстовый файл в фоновом режеме (без его открытия). Вот как он выглядит
P.S. Windows 7-64
Спасибо за готовность помочь.P.S. Windows 7-64
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Чтение данных с Mitutoyo
Vitekkz88, я правильно понимаю, что раз события не фильтруются, то они уходят тем окнам/контролам, у которых был фокус в момент нажатия? Если так, то анализировать VID/PID надо непосредственно в колбэке LowLevelKeyboardProc, чтобы иметь возможность отделить нажатия микрометра от нажатий обычной клавы и не дать им пройти дальше. В предыдущем своём сообщении я ссылку кидал, там чел долго возился, чтобы похожую штуку реализовать, т.е. блок нажатий одних кнопок на одной клаве и блок нажатий других кнопок на другой клаве (обе одновременно подключены, ессно). Получилось, но с рядом нюансов, т.е. решение не на 100% надёжное, к сожалению.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 0 Ответы
- 502 Просмотры
-
Последнее сообщение Juri
-
- 3 Ответы
- 870 Просмотры
-
Последнее сообщение IvanLis
-
- 13 Ответы
- 1224 Просмотры
-
Последнее сообщение Boxa
-
- 3 Ответы
- 272 Просмотры
-
Последнее сообщение AndreyDmitriev
-
- 13 Ответы
- 2451 Просмотры
-
Последнее сообщение rsv