Чтение данных с Mitutoyo

Простейшие вопросы в области инженерной разработки

Чтение данных с Mitutoyo

Postby jane_wild on 27 Mar 2019, 18:49

Доброго всем здравия. Испытываю трудности с чтением данных c микрометра. Суть вот в чем: Имеется микрометр, который через IT-012U USB адаптер подключен к PC. Компьютер его распознает как USB Input Device, т.е. по сути как клавиатуру. Значит, если открыть блокнот, Excel либо установить фокус ввода в numeric (LabVIEW) и нажать кнопку на адаптере, то числовое значение с микрометра там появится. Как будто вы его напечатали с клавиатуры. Ключевое здесь "установить фокус", ведь нельзя же все время держать фокус, ожидая прихода новых данных. Собственно вопрос как перехватить данные с этого адаптера и отобразить их? После передачи цифр имитируестя нажатие ввода и если активно что то, кроме поля ввода, то поведение может быть непредсказуемым. Как поступить в данном случае. Спасибо.
User avatar
jane_wild
assistant
assistant
 
Posts: 117
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

Re: Чтение данных с Mitutoyo

Postby IvanLis on 27 Mar 2019, 19:57

jane_wild wrote:Как поступить в данном случае. Спасибо.


Не знаю для чего планируется использовать, но я бы поставил между ними контроллер, который принимал бы эти символы и по Enter отправлял бы в ПК.
Все равно у Вас используется прослойка в виде адаптера, одной больше одной меньше. И сдается мне, что это именно он таким образом инфу шлет, а не железяка.
А вообще как-нибудь напрямую подключиться, минуя адаптер.
User avatar
IvanLis
professor
professor
 
Posts: 4734
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 742
hardware VIP bloggers teachers

Re: Чтение данных с Mitutoyo

Postby jane_wild on 27 Mar 2019, 21:21

Микрометер такой подключен к адаптеру вот таким кабелем Подключится напрямую? Я нашла в инете немного информации... там используется какой то не совсем понятный протокол SPC...
Хотелось бы пойти более простым путем и как то выловить данные когда я нажимаю вот на эту кнопку
Mitutoyo.PNG
User avatar
jane_wild
assistant
assistant
 
Posts: 117
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

Re: Чтение данных с Mitutoyo

Postby Alex Dem on 27 Mar 2019, 22:08

Нашел такие переходники, вроде бы понятно работа с ними описана. Денег конечно стоят, но...
http://www.microridge.com/ftp/gw_sm/gageway_sm_users_guide.pdf
Если есть кому собрать, вот видео самодельного переходника и устройства для считывания и отображения результатов измерений, там же ссылка на код для ардуино, схему и плату.
Alex Dem
user
user
 
Posts: 99
Joined: 06 May 2015, 22:24
LabVIEW Version: 2014, 2018
Karma: 11

Re: Чтение данных с Mitutoyo

Postby taras_33 on 07 Apr 2019, 19:51

Если еще актуально....
Не знаю для чего планируется использовать, но я бы поставил между ними контроллер, который принимал бы эти символы и по Enter отправлял бы в ПК.

была такая же задача пару лет назад и была решена, как советовал IvanLis. Только я не использовал адаптер, а подключил микрометр напрямую к микроконтроллеру, а тот в свою очередь по USB к компьютеру. Jane, посмотрите в приложении документ, в свое время он сильно мне помог. Если коротко, то я делал так. Вход REQ (5 pin) - запрос, подключаем к GND, это заставит Mitutoyo посылать данные непрерывно (можно и транзистор поставить) Поскольку выхода, как data, так и clock с открытым коллектором, то в контроллере конфигурируем два входа и включаем на них подтяжку к питанию "pullup". Далее в прерывании по спадающему фронту от clock, читаем вход data и записываем в массив. Посылка состоит из тринадцати цифр/символов, каждая из которых состоит из четырех бит - итого 52 бита. Получили 52 бита, проверили что первые 16 все единицы, значит все Ок, отбросили их, а остальные распарсили и далее по необходимым хотелкам…. Необходимо обратить внимание вот на что. Посылка, длится около 28 mS ( между посылками около 80 mS) т.е. достаточно медленно. Поэтому обращайте внимание на приоритет задач, если они используются, а также приоритет прерываний.
Attachments
Mitutoyo.jpg
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!
User avatar
taras_33
developer
developer
 
Posts: 280
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 130
CLD VIP

Re: Чтение данных с Mitutoyo

Postby jane_wild on 09 Apr 2019, 14:41

Если еще актуально....
Да еще все актуально. К сожалению с микроконтроллерами я на "Вы", поэтому надеялась что возможно обойтись только средствами LabVIEW. Если в диспетчере микрометер видится как HID "USB Input Device", то думала что есть способ на системном уровне перехватить посылаемые данные... Когда я вижу как посылаются данные в блокнот или Excel, создается впечатление что кто то очень бысто печатает на том конце...
Раньше на портале я видела тему, кажется с чтением данных из сканера штрих кода, там что то похожее было. Пыталась найти и посмотреть как там решили проблему, но поиск на портале не работает...
User avatar
jane_wild
assistant
assistant
 
Posts: 117
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

Re: Чтение данных с Mitutoyo

Postby dadreamer on 09 Apr 2019, 15:43

jane_wild wrote:Раньше на портале я видела тему, кажется с чтением данных из сканера штрих кода, там что то похожее было. Пыталась найти и посмотреть как там решили проблему, но поиск на портале не работает...

Эта тема?
По запросу "hid" usb site:ni.com можно много тем найти, связанных с коммуникацией :labview: и HID-устройств (пример). Так или иначе данные можно достать через Визу или разношёрстные врапперы WinAPI. Можно и собственную обёртку написать. Однако от такого перехвата устройство не перестанет быть HID-совместимым, что значит, что оно по-прежнему будет печатать а ля клава, и программа, имеющая фокус, также примет введённые данные. С помощью хуков такие события можно фильтровать, но реализация не будет самой простой.

Возможно, на самом деле проще приобрести/изготовить промежуточное устройство, которое будет конвертировать данные в удобный формат. Может быть, существует конвертор SPC -> RS-232?
User avatar
dadreamer
professor
professor
 
Posts: 3257
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 812
I/O VIP vision internet

Re: Чтение данных с Mitutoyo

Postby jane_wild on 09 Apr 2019, 20:24

to: dadreamer, Да тема эта - почитаю.
Может быть, существует конвертор SPC -> RS-232?
Конечно существуют, только это реальный RS232
вот такой
MitutoyoRS232.PNG

А в PC, где планируется его использовать такого порта нет, т.е. еще нужно конвертер в USB искать... Вообщем буду разговаривать с схемотехниками, по поводу контроллера, посмотрим что они скажут. В любом случае Спасибо - доходчиво объяснили.
User avatar
jane_wild
assistant
assistant
 
Posts: 117
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

Re: Чтение данных с Mitutoyo

Postby jane_wild on 09 Apr 2019, 21:11

to: taras_33,
Поэтому обращайте внимание на приоритет задач, если они используются, а также приоритет прерываний.

Не могли бы Вы более детально пояснить насчет прерываний... народ тут у нас интересуется. Спасибо.
User avatar
jane_wild
assistant
assistant
 
Posts: 117
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

Re: Чтение данных с Mitutoyo

Postby dadreamer on 09 Apr 2019, 21:40

jane_wild wrote:А в PC, где планируется его использовать такого порта нет, т.е. еще нужно конвертер в USB искать...

Можно и PCI-плату воткнуть типа такой или аналогичной (не знаю, как сейчас, но года три назад в ДНС продавались).

К своему предыдущему посту: можете сравнить вывод от обычной клавы и от микрометра с помощью программы ViewKeyCode (режим WH_KEYBOARD_LL), вдруг что интересное увидите - flags, ExtraInfo. Если ничего такого не будет, то отличить этот девайс от стандартной клавиатуры не представится возможным.

upd: В принципе, вот здесь представлен концепт, о котором я изначально говорил: используется хук на события от клавиатуры, чтобы получить возможность принять или отклонить событие, в комбинации с RawInput (прямой ввод данных), чтобы сопоставить конкретное событие с ID устройства, пославшего событие (так как сам хук таких данных не предоставляет). Думаю, в :labview: можно заменить Raw Input на :vi: с вкладки Connectivity -> Input Device Control. Но для реализации хука по-прежнему нужно писать небольшую DLL. Также существует ряд "подводных камней", о которых написано в приведённой ссылке.
Last edited by dadreamer on 10 Apr 2019, 10:01, edited 1 time in total.
User avatar
dadreamer
professor
professor
 
Posts: 3257
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 812
I/O VIP vision internet

Re: Чтение данных с Mitutoyo

Postby taras_33 on 10 Apr 2019, 05:42

Не могли бы Вы более детально пояснить насчет прерываний...

В контроллере крутится несколько задач 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!
User avatar
taras_33
developer
developer
 
Posts: 280
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 130
CLD VIP

Re: Чтение данных с Mitutoyo

Postby jane_wild on 10 Apr 2019, 15:28

dadreamer, Спасибо за программку - в хозяйстве пригодится. Сделала скриншот, первые идут данные с микрометра, затем я нажала пробел и ввела те же значения с клавиатуры в конце нажала Enter. Не вижу никаких отличий, за исключением скорости ввода и нажатием Enter - Mitutoyo "нажимает" его на цифровой клавиатуре.
Vk.PNG

taras_33, спасибо за объяснение. Написала в личку.
Ребята спасибо - всем по плюсику, будем думать к каком направлении двигаться дальше.
User avatar
jane_wild
assistant
assistant
 
Posts: 117
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

Re: Чтение данных с Mitutoyo

Postby Vitekkz88 on 15 Apr 2019, 10:56

jane_wild, если еще актуально и хочется разрулить программно, то давайте попробуем хуками.
Запустите от имени администратора(а можно попробовать и без, может отработать)Hook_key.exe и отправьте данные с Вашего устройства. Если данные будут сохраняться в файл keys.txt, то далее попробую помочь Вам доработать ПО, чтобы фильтровать данные с конкретного устройства по его VID и PID.
В текущем варианте данные не фильтруются по VID и PID, программа построена на использовании функции SetWindowsHookEx и событий KEYDOWN.
Если всё отработает корректно, то можно продумать алгоритм использования текущей реализации в таком ключе:
Запустили программу, запустили Hook_key.exe в фоновом режиме, проверяем содержимое файла раз в секунду(или чаще, как хотите).
Если данные появились в файле, то вычитываем их и сохраняем в регистре до следующей проверки. Сам файл очищаем с помощью Set File Size.vi(задав размер = 0). Поскольку хук без фильтрации, то в файле получите все события нажатия кнопок на клавиатуре от момента нажатия и до считывания/очистки :crazy: .
Исходники логера у меня есть, собирал в QT Creator 4.5.0 x32, проверял в Win10 x64. Если не будет хватать каких-то библиотек - говорите, я их подтяну.
Attachments
Hook_key.zip
(576.75 KiB) Downloaded 9 times
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1055
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: Чтение данных с Mitutoyo

Postby jane_wild on 15 Apr 2019, 18:06

Да, еще актуально. Попробовала Вашу програмку. Да данные сохраняются в текстовый файл в фоновом режеме (без его открытия). Вот как он выглядит
keys.txt
(60 Bytes) Downloaded 10 times

Спасибо за готовность помочь.

P.S. Windows 7-64
User avatar
jane_wild
assistant
assistant
 
Posts: 117
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 5

Re: Чтение данных с Mitutoyo

Postby dadreamer on 15 Apr 2019, 18:08

Vitekkz88, я правильно понимаю, что раз события не фильтруются, то они уходят тем окнам/контролам, у которых был фокус в момент нажатия? Если так, то анализировать VID/PID надо непосредственно в колбэке LowLevelKeyboardProc, чтобы иметь возможность отделить нажатия микрометра от нажатий обычной клавы и не дать им пройти дальше. В предыдущем своём сообщении я ссылку кидал, там чел долго возился, чтобы похожую штуку реализовать, т.е. блок нажатий одних кнопок на одной клаве и блок нажатий других кнопок на другой клаве (обе одновременно подключены, ессно). Получилось, но с рядом нюансов, т.е. решение не на 100% надёжное, к сожалению.
User avatar
dadreamer
professor
professor
 
Posts: 3257
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 812
I/O VIP vision internet

Next

Return to Для чайников

Who is online

Users browsing this forum: No registered users and 3 guests

cron