PDA

Просмотр полной версии : Инициализация (очистка данных) порта RS-232



Dias2004
08.02.2018, 16:37
Подсоединил к ПЛК110 сканер штрих-кода через RS-232.

Все отлично работает, код из сканера (строка) считывается следующим образом:
----------------------------------------------------------------------------------------------
vBytesRcv:= SysComRead(gSettings.Port,ADR(vRcvStr),255,0);
IF vBytesRcv>0 THEN
vRcvBuf:=CONCAT(vRcvBuf, LEFT(vRcvStr,DWORD_TO_INT(vBytesRcv)));
vRcvBuf:=LEFT(vRcvBuf,BAR_CODE_LENGTH);
vCodeLength:=LEN(vRcvBuf);

IF vCodeLength=BAR_EAN13_LENGTH THEN (* принят код EAN13 ? *)
gEAN13Code:=LEFT(vRcvBuf,12);
vRcvBuf:='';
----------------------------------------------------------------------------------------------

В некоторые моменты необходимо очищать буфер порта от штрих-кодов, случайно прочитанных сканером между моментами времени, когда действительно нужно прочесть штрих-код. Как это можно сделать? Как очистить (вероятно, аппаратный?) буфер порта контроллера?

Можно было бы "принять всё" из буфера и, таким образом, его очистить. Как определить момент, что всё принято?
Под отладчиком я наблюдал значение строки vRcvStr и, к сожалению, так ине понял, как читаются данные из буфера порта.

Sergi2712
07.01.2019, 07:12
Здравствуйте. Можете поделится проектом?

capzap
07.01.2019, 09:27
В некоторые моменты необходимо очищать буфер порта от штрих-кодов, случайно прочитанных сканером между моментами времени

посмотрите в бибке modbus.lib, там это есть