NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

USB扫描枪程序编写

最近使用的是Datalogic的USB扫描枪, 希望实现的是提取  条形码  数据并进行通讯传输。

 

第一种办法是使用串口直接操作,已经实现并且无问题。

 

第2种办法是希望使用USB直接读取数据,这里遇到了问题。

 

USB操作有两种方式: 1.  光标读取数据 (类似于键盘输入至记事本中)

                                         2.  使用Driver wizzard 安装VISA驱动后, 操作中断USB Interrupt 读取中断数据 (适用于USB RAW类型的仪器)

 

1.  第一种读取数据方式, 编程中遇到的问题:   举例 --  使用串口读取数据, 数据是一闪就消失

                                                                                                   使用USB读取数据, 数据读取到后不消失,

                                                                                                   与串口的方式不一致,所以数据的后期传输出现问题。

                                                                                                   且无法标记设备名称如: USB1口/USB2口

 

 

2.  使用VISA读取中断数据, 数据为空或者ASCII码的"   #  ", 未知数据,不解其中意思。

 

 

希望有经验人士帮助分析并解答,  是否USB设备不适用于工业类数据的传输操作 (只使用串口更好)?

如果可以使用USB传输方式, 以上哪种方法更合适, 如何实现更方便。 

 

谢谢,望及时给与帮助

新添加附件 

 

 

 

下载全部
0 项奖励
1 条消息(共 11 条)
10,656 次查看

关于USB读取的第一个问题,你这边能确定每次读进来的是一个条码么,也就是虽然文本框中数据没有消失,但是只是新的条码增加。

关于第二个问题,条码枪USB原始输出的话,请看下厂家是否有相应的通讯协议,我觉得不会是字符串输出,是需要手动处理的

0 项奖励
2 条消息(共 11 条)
10,637 次查看

感谢您的回复。

 

第一个问题:  我一直在用扫描枪扫描条形码, 读取的就是条形码的数字。  没读取一次新增加一次新的数据, 不断行累加

 

第二个问题:  厂家方面我已经咨询过了,至今也没给我回复,我不清楚USB协议具体有多麻烦, 但是目前看起来好像并不适用于工业领域, 不知道有没有应用的先例。  请问下,图片中 扫描到的中断数据“  #  ”   是什么含义? 是否 本来应该是 条形码数据??  

 

如果USB确实麻烦,不适用,请告知,万分感谢

0 项奖励
3 条消息(共 11 条)
10,632 次查看

第一个问题,应该是数据流的问题,在串口下数据一直在刷新,这样读到条码后,在下个条码枪刷新周期,被刷掉了。但是在USB下数据平时不刷新。你可以手动的清除数据(在你处理完该数据之后),例如使用属性节点“重置为初始值”。 但是有一点我不太明白,为什么会累积,labview中文本框输入,新数据会把旧数据覆盖的。

第二个问题,请把您的条码枪型号发一下,我给您查查。您也可以找个usb调试工具,去抓一下条码枪发的数据,看看到底是什么数据。当然厂家对这些应该比我们了解

0 项奖励
4 条消息(共 11 条)
10,615 次查看

万分感谢您的回复;我不知道能不能说清楚,尽量描述下目前我需要做的。

 

第一个问题: 

我 选择了 第一种方式 直接使用光标输入记录数据, 由于USB的数据是不刷新的 -- 这个可以参照直接在txt文件中的记录 也是一行行累计的 (这个可能也与我的扫描枪有关)。 型号为 Datalogic -959 Terry st . Eugene. OR.    //S/N G14E78480   Class: QD2130-BK (不知道型号写的确切否)。  

目前的项目需要的是将USB 的数据流传输方式 做成 和 串口一样。  所以您所说的 手动清除数据 我也做了, 尝试了很多方式, 但是效果很不理想 会丢数。 感觉好像是硬性的改变了什么, 有时候扫描速度过快就会丢数。

 

第二个问题:

选择 USB RAW方式, 中断数据是不能理解的数据, 请问下这种方式是否可行, 还是第一种方式更适用?

 

另外, 第一种方式需要带上USB 的端口型号作为ID名称,比如USB1/USB2 类似的,可能好像很难做到。

            第二种方式是使用NI-VISA 是可以带上ID名称的, 但是目前为止抓不到正确数据。

             最后还希望提供一些经验, 是否USB作为工业数据传输可行?    我查过相关资料, USB好像并不如串口好,而且USB口多的话会出现ID资源名难以识别等问题。

 

希望可以提供帮助,谢谢

 

0 项奖励
5 条消息(共 11 条)
10,611 次查看

感谢您之前的电话:

 

这边我还有最后一个问题,希望您那边帮查询下, USB RAW方式是否可行, 为什么我读取到的是错误数据, 怎么能找到支持,是否需要询问厂家? 

 

由于我们的设备USB的较多,如果可行的话还是希望能尝试下此方式。

 

望能再电联我下,谢谢

0 项奖励
6 条消息(共 11 条)
10,592 次查看

usb raw只是建立了lv与设备的一个通讯通道,具体如何与设备通讯,是需要知道设备的通讯协议的。

http://blog.csdn.net/tryanother/article/details/216936 这个帖子中,博主使用usb sniffer捕获串口数据,来破解协议。可以试一试。

0 项奖励
7 条消息(共 11 条)
10,584 次查看

能介绍一下串口方式是怎么实现的吗?

0 项奖励
8 条消息(共 11 条)
4,946 次查看

我也是遇到相同的问题,用RS232串口通讯是可以的,但用USB我不知道怎么搞,一直在找资料!像霍尼韦尔的条码枪直接查到电脑上驱动就自动装好了,我也尝试过用NI-VISA Driver Wizard连接但都不成功。

0 项奖励
9 条消息(共 11 条)
3,020 次查看

这个需要用 Windows 的驱动来解决,不是 LabVIEW 这种 application 层面的任务。

 

George Zou
0 项奖励
10 条消息(共 11 条)
3,008 次查看