Показано с 1 по 5 из 5

Тема: ТРМ138Р "подвисает"

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию ТРМ138Р "подвисает"

    По прошествии некоторого времени опрос ТРМ-138 замедляется, т. е. если в самом начале (при старте Execute) опрос происходит 34-35 раз в сек, то минут через 5-10 1 раз в 2-3 сукунды и новые значения не считываются в данный момент tm = 32086 и неизменяется. Помогает только отключение от питания ТРМ. Ошибка - "Устройство неотвечает". Как это победить ?
    Адаптер АС3
    owen_io.dll от 13 декабря 2006 г., 13:19:54

    Ниже привожу код опроса:

    Код:
    procedure TSborCom1.Execute;
    var
      value: Single;
      difference,beg: Cardinal;
      mwSum: Double;
    begin
      Com1Open:= false;
      count:= 0;
      mwSum:= 0;
      difference:= 1001;
      if (OpenPort(COM_1,spd_115200,prty_NONE,databits_8,stopbit_1,RS485CONV_MANUAL) <> (-1)) then begin
        Com1Open:= true;
        while Com1Open do begin
          if difference>1000 then beg:= GetTickCount;
          if ReadIEEE32(0,0,'rEAd',value,tm1,0)>=0 then begin
            mwUnit1:= value;
          end;
          if ReadIEEE32(1,0,'rEAd',value,tm2,1) >=0 then begin
            mwUnit2:= value;
          end;
          mwSumm:= mwUnit1 + mwUnit2;
          mwSum:= mwSum + mwSumm;
          difference:= GetTickCount-beg;
          inc(count);
          //if difference<=1000 then inc(count)
          //else begin
            Form1.AverageDL.Caption:= FloatToStrF(mwSum / count,ffFixed,6,2);
          //  mwSum:= 0;
          //  count:= 0;
          //end;
          //Form1.StatusBar1.SimpleText:= IntToStr(count);
          Synchronize(ShowMW);
        end;
      end;
      Terminate;
    end;
    Последний раз редактировалось balepa; 09.10.2007 в 09:18. Причина: ППП

Ваши права

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