09-08-2016 07:55 AM
So I have a customer who needs help to connect the Keyence SR-1000 barcode reader using TCP/IP to a LabVIEW application. After researching Keyence's 'Connection document' for TCP, I realize it's based on their utility software alone.
Since I have no experience with barcode readers I'd appreciate any hints on what to look out for and how to go about implementing a VISA-based 'driver' for this device. Or generally, how barcode scanners are best hooked up to LabVIEW.
Thanks
Ifeanyi
Solved! Go to Solution.
09-08-2016 08:06 AM
@michifez wrote:Since I have no experience with barcode readers I'd appreciate any hints on what to look out for and how to go about implementing a VISA-based 'driver' for this device. Or generally, how barcode scanners are best hooked up to LabVIEW.
You would need to get in touch with the manufacturer of the barcode reader and ask them for some documentation on the TCP communications. Without that, the best you could do is use a tool like WireShark to 'sniff' the TCP data and try to figure out what data the scanner is reading/writing to their own software and try to replicate it.
There are lots of manufacturers/types of barcode scanners - some have their own drivers (e.g. DLL) you can call, some use RS-232/Ethernet, some simply emulate a keyboard and 'type' the characters of the barcode.
09-08-2016 09:19 AM
Sam_Sharp thanks for the suggestions. I've written Keyence and now waiting for a response.
07-13-2017 03:44 PM
11-02-2017 12:56 PM
I make this vi to use the SR-752, I think could be usefull
05-10-2019 01:56 AM - edited 05-10-2019 02:14 AM
Hello,
Could you please send your code with all controls and upload it in LV12?
thanks in advance.
Thomas.
Note : Sorry, I was thinking that was french post. Sorry.
05-10-2019 02:12 AM
05-10-2019 04:29 AM - edited 05-10-2019 04:56 AM
For all of the Keyence devices they use their own software which uses generally a DLL to communicate with the device. Amazingly the DLL used is for each of the Keyence class its own specific version too, I can't really imagine what software development strategy they have. It seems each device group is developed at a different place with a separate software development team for each of them too.
For most of their devices they do have a minimalistic C header file for that interface DLL they can send out to customers but you need to find someone inside Keyence who is willing to go through the trouble of optaining that information internally and sending it to you. For a few device groups there even exist (customer made) LabVIEW libraries that interface to the according DLL that Keyence can sometimes share with other interested users. Lacking such a driver you can still develop your own when you manage to sweet talk your Keyence sales representative to find those C header files for the DLL internally. Using the Call Library Node it is not that difficult to develop such a driver, provided you do have some fundamental C programming knowledge, or access to a person with such knowledge.
Last option is to develop your own driver entirely based on the TCP/IP functions of LabVIEW. Complication here is that most Keyence devices use binary command/response protocols, so eavesdropping on the communication through tools like Wireshark is a very cumbersome and painstaking experience.
I did that for a different Keyence device (a laser distance meter) in the past since the driver had to run on a realtime controller which can't use DLLs, but that driver only works for that specific Keyence controller SI-F100x and is not something I can share. I did have some idea to develop a modular driver that might work for different Keyence class devices since they do use mostly similar (but not exactly the same) binary protocols over TCP/IP but lacking any other devices to test with that never went anywhere.
On this site all the way down they do provice some sample program for Visual C/Basic that use a .Net interface. You could also try to interface that with the LabVIEW .Net functionality.
04-16-2020 10:01 AM
Referring to user manual (see link , in document revision 6.0 see chapter 12) you can also communicate with ASCII commands.
E.g.
command: "FTUNE{0D}"
response 1 (immediately) "OK,FTUNE{0D}"
response 2 (after success) "Focus Tuning SUCCEEDED{0D}"
Martin Schwarzgruber
05-20-2020 12:49 PM
I had success using the TCP VI's
The scanner just needs to be setup using the wizard in the Ethernet tab of the Network Navigator