А как вы контролируете, что пришел байт? Визуально - ничего не увидите, т.к. sz<>0 будет только 1 мс! Поставьте ловушку
Вид для печати
А как вы контролируете, что пришел байт? Визуально - ничего не увидите, т.к. sz<>0 будет только 1 мс! Поставьте ловушку
Поставила обычную ловушку
IF sz<>0 THEN i:=2;
ELSE i:=1;
END_IF;
Все равно значение не изменяется (i=1).
Через Terminal отсылаю сообщение: 02 04 01 0001
В rcvbuf следующая картина:
rcvbuf[0]=49
rcvbuf[1]=49
rcvbuf[2]=0
дальше нули.
Так все правильно.
Ловушка должна выглядеть иначе!
sz:=SysComRead(com_num,ADR(rcvbuf)+i,100,0);
i:=i+sz;
Тогда байты будут складываться в буфер по мере прихода, а i - покажет число принятых байтов!
Спасибо, все заработало:) :) :)
Замечательно! Всегда рад помочь ;)