I feel the need to add something to Denis's comment "if you need address 1, 5 and 7 on the device, it is better to read 1 and set a length of 7 than to try to read using 3 separate reads."
On many devices I use, this is not possible. If the device itself doesn't have any knowledge or use of any register involved in the vector, it will often return an error. Many, many times I have to do separate reads on a single device to get all the info I need because of this quirk. It is a complete PITA, as the makers often spread the "most relevant to what the sensor does" registers many numbers apart, with gaps in b/n. Air sensors with temp at 013, Hum at 121, CO² at 217 ....... instead of all 3 in registers 2, 3 & 4; with the rest of the useless to the user garbage that they use internally but for some reason have them as register usage, placed everywhere else but often with number gaps. You get the idea. I'd really like to give the people who make the devices a big smack on the bottom and then send them to the dunce corner for the day. With NO coffee or chocolate allowed at all for the rest of the month.
The vector method is certainly much faster, but you can only do it after initial testing using the PC to see if it is "actually" possible.
You can scan barcode by Protocol FB. Scanned barcode is replaced by another one in buffer if you try to scan another barcode.
There is several options in this process:
1) Barcode 1 = Barcode 2. User can scan barcode 1 (or barcode 2) two times and it is wrong solution.
2) Barcode 1 not equal Barcode 2 but these two barcodes is an assembly unit - you can scan it and find a row in DTI where another one barcode is present.
3) Use two barcode scanner with different positions (stationary) connected to different com ports. Parts scanned if it fit correctly.
4) Barcode 1 + Barcode2 = constant. Scan barcode1 add to SUM tag, scan barcode 2 add to SUM tag and compare with CORRECT SUM tag. Reset SUM.
5) Generate different sound for different barcode (zebra motorola barcode scanner has this option embedded into firmware).
I implemented barcode scanner for wire harness checking device.
The main problem - user scan barcode - check wire harness ---OK. Then user scan barcode for another one but did not check another wire. The first OK wire harness is checked many times.
In system log all wire is checked but it is not correct.
After all we used hardware for marking good wire harness and if marking is present - user cannot check one wire many times.
This problem is the main in your system. User can scan correct part many times and use wrong one in assembly.
Hi SoCo, I don't use Unilogic at all, just a Vision man.......ooops.....person (with external gonads!)
But....on the actual reads from the sensors, are you doing your reads concurrently? What happens if you split the reads equidistant in timing? What is the actual "regular interval" time on the reads anyway?
Along the same lines, what happens if you flip-flop between 10 & 13 at a given time interval so that they are both not doing it all the time.. ie only enable rung 10 this second, only enable rung 13 the other one, perhaps with a small time buffer between each alternate. Behaviour exhibited after doing this would perhaps help in analysis.
I'm working on a scanning project that scans barcodes of 2 parts during assembly to compare them. I'm using 1 scanner connected to the serial port. I need the operator to scan the first barcode, then he should be prompted to scan second barcode, then compare the 2 strings. I need help on how to prompt to second scanning after handling and saving the first input. Should I just fill the buffer with 000 then put a rung to receive data through the port again?