Читайте несколько раз за скан

WHILE <здесь можно ограничить чтение, например, не более 20 байт за скан> DO
pbuf:=GetByte(id);
IF pbuf<>0
<сохраняем в буфер>;
ELSE EXIT;
END_IF;
END_WHILE