Internet PLC Forum
General => Technical support => Topic started by: tkidder2 on March 25, 2005, 09:07:08 AM
-
I am having a lot of difficulty receiving serial data
from a barcode scanner
using the input$(1) function.
After a bad code has been detected by the laser
the plc immediately looks for the data makeing up the
incorrect barcode. Instead of the offending barcde, I usually get previous data or half the data.
If I continue to trigger the laser, eventually the T100MD
will capture the correct data. I know that the laser is transmitting correctly because i can test its output on a terminal.
Any help would be appreciated.
-
Does a bad barcode ended with a Carriage Return (CR - ASCII 13)? INPUT$(1) only report the whole string received that is terminated with the CR character. If the bad barcode does not terminate with the CR then the data are stored in the buffer until the CR is received which means that the bad barcode could be mixed with the good bar code.
If that is a concern, then you could CALL a custom function containing the following codes to clear the buffer in the serial port before attempting to read the next barcode:
FOR I = 1 to 256
IF INCOMM(1) < 0: RETURN : ENDIF
NEXT
That will ensure that there will be no more bad character in the serial port before you attempt the next read.