Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 16 из 16

Тема: RS-232 и Modbus

  1. #11

    По умолчанию

    А как вы контролируете, что пришел байт? Визуально - ничего не увидите, т.к. sz<>0 будет только 1 мс! Поставьте ловушку

  2. #12

    По умолчанию

    Поставила обычную ловушку
    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
    дальше нули.

  3. #13

    По умолчанию

    Так все правильно.
    Ловушка должна выглядеть иначе!

    sz:=SysComRead(com_num,ADR(rcvbuf)+i,100,0);
    i:=i+sz;
    Тогда байты будут складываться в буфер по мере прихода, а i - покажет число принятых байтов!

  4. #14

    По умолчанию

    Спасибо, все заработало

  5. #15

    По умолчанию

    Замечательно! Всегда рад помочь

  6. #16

    По умолчанию

    Цитата Сообщение от Klik Посмотреть сообщение
    Спасибо, все заработало
    А можно примерчик выложить чтоб можно было полностью посмотреть меня тоже интересует этот вопрос.

Страница 2 из 2 ПерваяПервая 12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •